德國學生用 AI 打造真實版「瓦力」,我的房間超級需要阿!

【為什麼我們要挑選這篇文章】瓦力是電影裡虛構的機器人,負責清掃地球上的垃圾,然而這個虛構角色在 2019 年成為現實。德國慕尼黑工業大學的學生看到啤酒節過後的滿地垃圾,有感而發而開發了掃垃圾機器人,使用 AI 訓練它識別垃圾的能力。如果這款機器人大規模應用,將可以大幅省下清垃圾的人力成本。(責任編輯:郭家宏)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至 [email protected]

喜歡科幻的小夥伴肯定看過《瓦力》,男主角「瓦力」是一名地球垃圾分裝員,每天在已經成為了「垃圾場」的地球兢兢業業的收拾人類留下的「爛攤子」。

瓦力是名副其實的智慧機器人,除了動作靈活之外,還擁有意識和情感。要不然也不會愛上有著雞蛋外形的 Eve。

但是,畢竟那是發生在 2805 年的事情,那時候人類都已經可以開啟宇宙之旅了,設計個智慧機器人只是小 case。

只不過現在是 2019 年,造不出擁有情感的機器人,但是用 AI 模型訓練出收拾垃圾的機器人,還是可以的。

一位名叫 Damian Bogunowicz 的慕尼黑工業大學碩士生,和他的小夥伴一起利用電腦視覺、深度強化學習和 Unity 3D 遊戲引擎開發了一款自主收集垃圾的機器人。

據 Damian 的博客介紹,他的這個想法最初來自慕尼黑工業大學博士研究會。這群參會的「高端玩家」都很愛喝啤酒,也是慕尼黑啤酒節的常客。但是,看到每年慕尼黑啤酒節狂歡過後一片狼藉,他們陷入了深思……..

通常,這些垃圾都是清潔工人收拾,會耗費大量的人力、物力。

Damian 由此想到,是否能開發出一款智慧機器人,全天候、高效率的幫助這些清潔工人,那麼他們的工作效率就會成幾何倍數增長。

使用 Unity 3D 遊戲引擎模擬機器人,並讓遊戲場景成為訓練環境

說幹就幹!

他們的第一步是使用 Unity 3D 遊戲引擎模擬機器人,此外,還使用 Unity Machine Learning Agents Toolkit(ML-Agents)插件,使遊戲場景成為訓練智慧體的環境。

在這個實驗中,他們將機器人的目標設置為探索環境並學習正確的策略。然後設定一系列的獎勵和懲罰。

主要來說,機器人有兩個目標:
1. 接近並收集垃圾,例如麵包屑、塑料袋以及香腸等食物殘渣。
2. 不要與桌子和椅子發生碰撞,不要回收木托盤等物品,因為這不屬於垃圾。

在模擬環境中,機器人的形狀是正方體,主要有三個動作:
1. 平移運動(向前、向後以及保持靜止)
2. 轉向運動(左轉、右轉)
3. 抓取狀態。

前兩個動作非常簡單,抓取狀態需要設計。總的來說,每次機器人決定收集一個物體時候需要滿足下面兩個條件:
1. 物體必須靠近機器人的前部(限制在具有綠色邊緣的體積內)
2. 機器人必須決定啟用「抓取器」。當抓取狀態被啟用時,機器人的顏色從白色變為紅色。

機器人透過與環境交互和回饋信號,學習正確的策略

機器人可以透過與環境的交互和回饋的信號來學習正確的策略。對此系統來說,懲罰值在 -1 ~ 0 之間浮動,獎勵值在 0 ~ 1 之間浮動。與其他強化學習不同的是,要在訓練數據的時候迅速獲得最好的策略,次要目標給予較小的獎勵值。當學習複雜任務時,從簡單任務入手,逐漸增加任務難度。

這些都可以在 Unity ML-Agents 中輕鬆能夠實現,具體來說將任務分為兩個子目標,在環境中尋找垃圾、判斷何時激發抓取狀態。

使用 RBG 圖像映射與語義分割圖訓練垃圾歸類

機器人最初不太能分清楚要將哪種物品歸為垃圾,後來,通過網絡將 RBG 圖像映射到語義分割圖,能夠有效獲得此信息。用數據透過 Semantic Segmentation Suite 訓練 SegNet,易於調試和修改,從而節省算力。

另外,語義分割訊息不是來自外部神經網絡。它是使用 Unity 中的著色器生成的,使用標籤對對象進行分段。這意味著智能體在訓練期間可以快速接收有關對象類的可靠,無雜訊的信息。

機器人的認知,決定智能體如何行動。鑒於當前的環境狀況和要實現的目標,採用以下兩種方法:
1. 近端策略優化,它通過與環境的交互作用在採樣數據之間進行交互,並利用隨機梯度上升優化目標函數。
2. 讓系統觀察正確的行為併進行模仿。這可以視為監督學習,研究人員先「玩遊戲」一段時間,以便智能體能夠學習正確的策略。

另外,利用 Unity ML-Agents 提供的另外兩個解決方案:
1. 使用循環神經網絡的內存增強代理 ,這可以允許智能體不僅可以對當前的輸入進行操作,還可以「記住」最後的輸入並在做出決策時將此附加訊息包含在其推理決策中。
2. 利用好奇心,賦予智能體一種好奇心,每當它發現與其當前知識不同的東西時,它會給予機器人內部獎勵。這鼓勵智能體探索世界時,更加「冒險」。

到目前為止,智能體已經設法自己弄清楚了這兩項任務。但只是為了好玩(或者為了加快訓練過程),可以「硬編碼」第二個目標 。關於是否啟動抓取機制設定一個簡單的函數,它考慮了兩個因素:我們面前的對象類(由語義分割圖定義);物體與機器人的距離(由深度圖提供)。

此功能可以通過以下方式進行硬編碼:從當前深度圖中,僅濾除屬於「可收集」類的那些。另外檢查像素最大值是否大於某個設定閾值。如果是,可收集物體足夠接近智能體,完成收集。

啟發模式後的決策

大規模應用前,需要做哪些優化?

以上模擬在虛擬環境中有較好的效果,但是如果想要大規模的應用到商業,還需一系列的改進。

Damian 也給出了一些自己的想法:
1. 安裝一系列用於垃圾回收的硬體,在機械設計上應該考慮到足夠的細節,例如安裝一個「鏟子」,可以無縫地將垃圾推入機器人的「腹部」,又或者在容器滿了之後,如何處理垃圾。
2. 將該算法部署在一台能夠處理實時語義分割的機器上,語義分割模型的推理時間太慢,一般的筆記本電腦無法進行實時仿真。
3. 用 RealSense 攝影機將信息從仿真平台傳遞給真實的機器人,這一部分工作是將在物理環境中部署機器人,這意味著透過在現實世界中運行機器人來微調算法,目前,強化學習在機器人技術中的應用還處於實驗階段。

「撿垃圾」機器人的其他妙用

收拾東西這件事情,可不僅僅是「慕尼黑啤酒節」才需要,應用場景還相當多,比如:自己的房間。

其實,在幫你疊衣服,幫你把散落在地上的物品規整起來方面,智慧機器人也已經可以做的很成熟。

在 CEATEC JAPAN 2018 會展上,由豐田汽車有限公司開發的生活支援機器人 HSR(Human Support Robot),展示了全自動整理機器人系統。

其利用深度學習技術開發的畫面識別引擎,哪怕數百種物品散亂在房間各處,引擎也能夠識別出物品的位置和種類。基於該識別引擎,人們可以規劃什麼物體應該怎麼去抓取以及如何整理等等。

該圖像識別引擎是通過採用了深度學習框架 Chainer,ChainerMN 以及 ChainerCV 的 CNN(卷積神經網絡)來實現的。

這是安裝在機器人上的鏡頭的視點圖像以及識別結果的可視化動畫。透過顯示機器人所識別的房間地圖和當前位置,我們可以看到機器人是如何識別房間的。

系統能夠穩定地抓取各種形狀和材質的物體並且放置到規定的地方。例如在整理圓珠筆時,鏡頭尋找筆筒位置,識別圓珠筆的方向,調整方向,放入筆筒。

系統透過不斷地重複人類在無意識中做出的一系列的判斷,最終使之成為可能。

通過擴增實境(AR),我們可以看到機器人是如何思考的,例如顯示機器人是如何識別房間裡的狀況,接著會如何行動等訊息。通過 AR 畫面,我們能夠更加直觀地把握機器人的狀態,從而發出更確切的指令。

在大會上,這款機器人獲得了 CEATEC AWARD 2018 的獎項裡的行業/市場部門的二等獎。

可能以後不僅清潔工,連收拾房子的保潔阿姨都不需要了。

(本文經 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈 被啤酒节遗留垃圾吓到,德国小哥发明现实版“瓦力”清洁机器人 〉 。首圖來源: 大數據文摘

更多有趣的機器人

全台首家「機器人餐廳」開幕!機器人煮牛肉麵,3 分鐘立馬上桌

【iPhone 淘金術】看!蘋果 Daisy 機器人高速拆解舊 iPhone,500 小時掏出黃金 1 公斤

Sweeper 研發自動採收機器人!農夫不用親自下田,機器人自己把蔬果送上來

點關鍵字看更多相關文章: