最前沿:聰明的機械臂就應該你說什麼就做什麼
說到機械臂,大家肯定會想到鋼鐵俠裡面的賈維斯,鋼鐵俠可以通過語言和它交流,非常有意思。今天Flood就和大家分享一個日本人工智慧公司Preferred Networks的工作《Interactively Picking Real-World Objects with Unconstrained Spoken Language Instructions 》也就是通過語言互動式的命令機械臂來撿取物體,在簡單環境中實現了很酷的人機互動效果。這篇paper是今年ICRA2018 人機互動板塊的最佳論文。
我們先看一下官方提供的視訊吧:
ofollow,noindex">
看起來效果非常不錯。那麼這個系統是怎麼實現的呢?
簡單分解一下,大概有以下幾步:
1)讀入人類的語音資訊,通過Google Chrome 的Web Speech API將語音轉為文字。
2)輸入影象和文字到一個深度學習系統當中,輸出目標物體和目標位置資訊。這部分是這篇文章的關鍵。
3)將目標物體和目標位置資訊提供給機械臂,機械臂採用傳統控制規劃路徑,執行整個操作。
所以,這個工作的核心在於影象和文字資訊的處理(機器人的眼睛和耳朵),機械臂只是最終的演示機構,並不涉及太多的控制問題。
對於機器人的問題,能夠work是最重要的。由於深度學習在CV和NLP領域上的突破,將深度學習應用到機器人問題上,解決機器人的視覺和聽覺問題,就能大幅度提升機器人的應用效果了。當然,我們更喜歡的是完全端到端(End-to-End)的機器人系統,不過用深度學習來完全取代原有的控制系統還依然是比較困難的。所以我們可以發現很多ICRA會議上的paper都不是端到端的系統,而是根據需要使用深度學習技術,達到work的效果。
看到這個工作,其實還是很讓人眼前一亮的,我們有理由期待未來更復雜更酷的機器人應用。
====================================================
下面我們就來更詳細的看一下這個工作設計的深度學習系統吧。

上圖就是這個深度學習系統了,相信熟悉物體檢測object detection和NLP的朋友會覺得這個神經網路的設計非常直接而簡單:
1)先使用物體檢測演算法SSD來檢測影象中的每一個物體,然後對物體進行裁剪,得到每一個物體的影象。
2)接下來我們需要根據文字找到對應的物體是哪一個。基本的思路就是相似度比較:每次拿一個物體圖片和文字輸入到神經網路進行比較,如果文字就是描述這個物體,那麼輸出就應該是1,反之是-1。基於此進行訓練。那麼為了構造這個網路,影象就用CNN和MLP提取特徵,而文字則使用word embedding和LSTM來提取特徵,然後把影象和文字的特徵進行一個cosine 相似度比較。這裡不管是影象的處理還是文字的處理都是非常直接簡單的做法。
3)獲取目標位置。目標位置只需要通過文字資訊獲取,那麼也一樣簡單粗暴一點,對文字單獨額外構造一個神經網路來輸出目標位置就行了。
重點說說第二部分的實現,這個two branch network通過訓練各種不同物體和文字的相似度,實際上也訓練一個Meta的Zero-shot learning系統(無處不在的Meta Learning),意味著即使有從未見過的物體,也能夠根據文字資訊找到。這個就比較酷了。核心在於zero-shot learning的設定,每一個word的word embedding都是其semantic representation,這個向量互相之間有距離,從而使用新的物體也能夠進行識別。可以閱讀 https:// arxiv.org/abs/1711.0602 5 對於zero-shot learning進一步瞭解。
另外,萬一分不清楚怎麼辦呢?paper也採用了很簡單的margin-based方法。也就是每一個物體都可以輸出一個目標score,如果score差異很小,那麼可以認為機器人沒有識別清楚,反之只有一個物體的score特別高,那麼這個物體就可以比較確定了。
然後具體的實驗他們先構造了一個數據集,包含了1180張圖片,25900個物體和91590個文字命令,然後訓練這個神經網路。這裡就不具體說了,雖然實際上對於機器人的工作怎麼訓練出來,訓練到什麼程度才是最重要的。而這個網路結構的設計反倒是簡單的。
這篇paper就介紹到這,喜歡就點贊吧!
最後,歡迎各位感興趣的朋友關注我新開的公眾號 FloodSung的AI遊樂場 ,相比於知乎專欄,我可以更快速的為大家分享最前沿AI,謝謝!所有文章都將首先在公眾號釋出!
https:// github.com/floodsung/so ngrotek.github.io/blob/master/gallery/qrcode.jpg