喜歡科幻的小夥伴肯定看過《機器人總動員》,男主角“瓦力”是一名地球廢品分裝員,每天在已經成為了“垃圾場”的地球兢兢業業的收拾人類留下的“爛攤子”。
瓦力是名副其實的智慧機器人,除了動作靈活之外,還擁有意識和情感。要不然也不會泡上了有著雞蛋外形的Eva。
但是,畢竟那是發生在2805年的事情。那時候人類都已經可以開啟宇宙之旅了,設計個智慧機器人還不是分分鐘的事情。
在2019年,造不出擁有情感的機器人,但是用AI模型訓練出收拾垃圾的機器人,還是可以的。
一位名叫Damian Bogunowicz的慕尼黑工業大學碩士生,和他的小夥伴一起利用計算機視覺、深度強化學習和Unity 3D遊戲引擎開發了一款自主收集垃圾的機器人。
據Damian的部落格介紹,他的這個想法最初來自慕尼黑工業大學博士研究會。這群參會的“高階玩家”都很愛喝啤酒,也是慕尼黑啤酒節的常客。但是,看到每年慕尼黑啤酒節狂歡過後一片狼藉,他們陷入了深思........
通常,這些垃圾都是清潔工人收拾,會耗費大量的人力、物力。
Damian由此想到,是否能開發出一款智慧機器人,全天候、高效率的幫助這些清潔工人,那麼他們的工作效率就會成幾何倍數增長。
環境和目標設定
說幹就幹!
他們的第一步是使用Unity 3D遊戲引擎模擬機器人,此外,還使用Unity Machine Learning Agents Toolkit(ML-Agents)外掛,使遊戲場景成為訓練智慧體的環境。
在這個實驗中,他們將機器人的目標設定為探索環境並學習正確的策略。然後設定一系列的獎勵和懲罰。
主要來說,機器人有兩個目標:
接近並收集垃圾,例如麵包渣、塑料袋以及香腸等食物殘渣。
不要與桌子和椅子發生碰撞,不要回收木托盤等物品因為這不屬於房間內的垃圾。
在模擬環境中,機器人的形狀是正方體,主要有三個動作:
平移運動(向前、向後以及保持靜止)
轉向運動(左轉、右轉)
抓取狀態。
前兩個動作非常簡單,抓取狀態需要設計。總的來說,每次機器人決定收集一個物體時候需要滿足下面兩個條件:
1.物體必須靠近機器人的前部(限制在具有綠色邊緣的體積內)
2.機器人必須決定啟用“抓取器”。當抓取狀態被啟用時,機器人的顏色從白色變為紅色。
懲罰和獎勵
懲罰和獎勵
機器人可以通過與環境的互動和反饋的訊號來學習正確的策略。對此係統來說,懲罰值在-1~0之間浮動,獎勵值在0~1之間浮動。與其他強化學習不同的是,要在訓練資料的時候迅速獲得最好的策略,次要目標給予較小的獎勵值。當學習複雜任務時,從簡單任務入手,逐漸增加任務難度。
這些都可以在Unity ML-Agents中輕鬆能夠實現,具體來說將任務分為兩個子目標,在環境中搜尋垃圾、判斷何時啟用抓取狀態。
演算法訓練與模擬
演算法訓練與模擬
機器人最初不太能分清楚要將哪種物品歸為垃圾,後來,通過網路將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”的獎項裡的行業/市場部門的二等獎。
可能以後不僅清潔工,連收拾房子的保潔阿姨都不需要了。