amazon picking challenge(APC)2016中識別和運動規劃的主流演算法是什麼?


去年實驗室幾個小夥伴一起調研了前兩屆(2015-2016)APC,正好有些結論可以分享一下,也歡迎大家在評論區討論。

首先,我們需要明確一下APC比賽中識別與運動規劃的難點在哪裡:

  • 識別

如上圖所示,APC比賽中的物體種類很多,而且不乏礦泉水瓶(透明)、網格筆筒(表面不完整)、毛絨玩具(變形)這類難以識別的物體。所以,基本上傳統的物體識別演算法都無法完全識別所有物體。

除此之外,物品放在柜子里,也會有遮擋、亮度較低等問題。

而且,為了讓機器人能抓取物體,我們要求演算法具有兩個功能:物體識別+位姿估計。

  • 規劃

對運動規劃比較了解的同學應該清楚,就目前學界主流的規劃演算法來說,貨架這種窄開口環境基本上是規劃不出來的(要麼時間特別特別長)。

當然, 在這裡,運動規劃的環境基本上固定,這就可以採用簡化的方法了。

其次,我們先看看2015年的情況吧。

↑排名按照比賽名次

因為2015年大家都還是第一次參加, 所以參考意義可能不如2016年 。我就簡單概括一下:

  • 識別+位姿估計

簡單的說,在物體識別上,大部分隊伍都還是採用顏色直方圖、局部特徵點(SIFT等)、BoF等傳統方法;而位姿估計則多採用點雲配准(ICP等)或 bounding box 提取等的簡單方法。

  • 運動規劃

由於前面提到,現有的規劃器基本上不可能用於柜子內部的在線規劃。所以,2015年,基本上所有隊伍都沒有採用學術上的 state-of-art 的方法。大部分隊伍都是採用類似直接逆解插值、預先計算的軌跡/運動元的簡單方法,只在開放空間(柜子以外)會採用 RRT 等規劃方法。

最後,再看看2016年。

由於2016年大家已經有了一定經驗,這次的比賽也更有參考意義。所以,我們仔細看看其中三個排名靠前的隊伍: DELFT、NimbRo 和 MIT

  • DELFT

(具體參考這個 http://roscon.ros.org/2016/presentations/ROSCon2016_Plan_to_Win.pdf )

去年的 ROSCon 上聽了 DELFT 隊的彙報,他們是2016年兩項比賽的雙料冠軍

對於識別,DELFT採用一個 Faster R-CNN 網路進行物體識別,訓練數據是 20K RGB圖像;而位姿估計則是採用 CAD 模型與 3D 點雲的配准。

對於規劃,DELFT完全是基於 MoveIt 做的。簡單地說,他們在工作空間內定義了一系列 keypoint,點與點之間的規劃用 RRT-Connect,進入柜子則是用的在線笛卡爾規劃(對末端進行規劃)。

  • NimbRo

(具體參考這個: https://www.ais.uni-bonn.de/nimbro/Picking/APC_Presentation_NimbRo_CASE_2016.pdf )

NimbRo 的 Stow 成績第二,Pick 成績第三。

他們的識別採用的是 Deep Features + SVM 的策略。簡單地說,Deep Features 就是用已經訓練好的 CNN 網路的前面幾層(除去最後全連接層)作為特徵提取方式;再用 SVM 進行分類(數據量較少時,SVM的分類效果遠遠好於全連接神經網路)。

對於位姿估計,則是採用『生成位姿假設--&>3D模型配準的方法』(我忘了這類方法具體叫什麼名字了)。

而對於運動規劃,他們也是極度簡化:在柜子前定幾個 keypoint,然後運動過去後進行檢測,採用『如果能看到抓取點,那麼直接往前走就能抓到』的策略(相機在手上),直接笛卡爾插值過去,當然,會考慮避障。

  • MIT

(這是他們的報告:https://www.youtube.com/watch?v=PpbvNeairZQamp;feature=youtu.be )

MIT的 stow 比賽第二,pick 比賽第四,從第一屆開始成績就一直不錯。

先看識別:MIT利用CNN做物體識別與分割,用 ICP 配准做位姿估計

而在規劃方面,MIT與2015年一樣,並沒有採用規劃方法,而是用預先計算好的動作元。

簡而言之,2016年與2015年相比,運動規划上並沒有太多變化,都還是採用極度簡化的方法(針對該固定環境);而在視覺方面,2016年的前幾名隊伍大量使用了深度神經網路,而這也使得識別效果大大提升。(在Pick方面,有兩支隊伍都成功抓取了全部物體)。

然而,2017年的比賽,將會增加未知物體的識別,柜子也可以自己定製。想必會出現更多好玩的改進。

最後,感謝實驗室小夥伴們的調研。


前幾天去Maxim的lab講了個dl tutorial, 和Venkat也聊了不少(樓上[6]的作者們),他們也帶了幾個master組了個cmu隊參加了今年apc,不過成績不太理想(好像是第六還是第五),說是並沒有怎麼較真搞。

聊完後大概的結論是,6d pose estimation作為research來說還是個挺有意思的問題,然, 實際比賽都是各種hack。不同物體picking的策略是不同的,有能估計pose的去抓,也有很多不估計pose的。可以設計不同的gripper,抓不了可以用吸的,吸不了可以推到一邊再吸。然後是motion planning 很重要並不懂。

作為一個vision的人表示還是得實際的多玩玩robot,才能知道有啥問題可以挖掘,然而只是baxter的話有點不夠玩。


自己來強答一下,首先是文不對題,沒有參加16年的比賽。主要談一下15年比賽1)我們是怎麼做的;2)別人是怎麼做的;3)16年大家可能會怎麼做以及4)可能會存在哪些問題?

其實這個問題可能需要細分成三個小問題:1)物體識別怎麼做的?2)姿態怎麼估計的/可抓取的位置是怎麼估計的?3)怎麼做規劃的?

自己負責的是前兩個問題,第三個不是主要研究的方向,先簡單說一下,從文獻一中可以看出,我們和NUS的用的是MOVEIT,還有其他的隊伍用的是已經計算好的PRM,所以這一點上用的應該都是挺經典的演算法。

我們的perception module硬體上來說是由兩組RGB-D+RGB相機構成的,同時還添加了一個為了保證illumination穩定的光源。演算法部分主要包含了四個recogniser: 1) RGB recogniser, 2) RGB-D recogniser 3) Kernel descriptor recogniser and 4) eblearn recogniser. 其中第一個工作主要借鑒11年CMU, MOPED[5]的工作,有些許改進。第二個主要是利用了RGB-D sensor來做,原理上和MOPED大同小異,但是感覺上好用一點。簡單來說,這兩種方法都是傳統的物體識別和姿態估計的方法,特徵點提取,聚類,特種trick找到屬於一個物體的特徵點,PNP或者close form找到3D的relative pose。MOPED的主要貢獻就是一個叫做iterative clustering estimation的東西。說實話,三五年後的今天,看當時的工作,真的是。。。尤其是最近幾年DL的爆炸。前兩個的優點主要就是可以出來一個估計出來的3D relative pose,而且是連續的。這裡簡單補充一句,Liefeng Bo 做多很多工作,包括我們也是用的kernel descriptor,他的不少文章里也提到了姿態「估計」的問題,但是說白了,他的工作並不是估計一個姿態,而是「分類」一個觀測到的物體的姿態,是離散的,所以這一點上還是有不同的。這兩種方法的缺點太明顯了,必須是紋理豐富的剛性物體,所以當年那25個物體裡面能用的並不多。

後面兩種都算是先進一點的,但是現在看看也先進不到哪去,kernel descriptor算是對之前histogram的一種新的理解,eblearn則是可能是最年長的基於神經網路的物體識別工具箱了。兩者的優點都是可以處理所有的物體,缺點也差不多,出不了pose。必須需要一個後面的icp或者模板匹配來估計pose。但是,這兩種方法在使用中效果都還挺好,最起碼我們測試的時候對於那25個物體,成功率還是相當高的。還有一個額外問題就是怎麼選擇candidature area,saliency, object proposal工作都已經很多了,也沒必要贅述了,其實在很多簡單問題的設定下,比如說環境標定好的情況下,簡單的圖像操作就可以很便利的找到可能存在物體的區域。

=====================================================================================

關心別人怎麼做的,可以仔細看看參考文獻1-4了,MIT 和TUBERLIN都寫了比較好的report。

到了deep learning的時代,作為一個門外漢,我覺得物體識別和抓取位置識別基本上都已經被攻克了,物體識別自不必說,RCNN, FASTER-RCNN, RNN, YOLO已經做成那樣子,日常生活下的物體識別問題感覺能剩下的就是諸如遮擋和光照變化的挑戰了。抓取位置識別Ashutosh Saxena已經做了足夠多的工作,不知道速度如何,文章沒有詳細看過。但是如何處理識別過後的姿態估計問題彷彿還是沒有找到一個足夠優雅的解決方案,deep learning確實有做這個問題,但是感覺不好說。今年有幸在RSS中審了文獻6,把姿態估計formulate 成一個最優姿態的搜索問題,配合的是fast-rcnn,貌似效果不錯。真的覺得ICP在物體姿態的估計上並不是最終的答案啊

借這個地方,希望能提個自己感興趣的問題,歡迎提出解答和私信啊:

有沒有針對instance level object detection 的最新工作,需要能夠識別相似物體,例如不同口味的兩個麥片;或者有人能夠指條明路,給個大概的方向也好。

Reference:

[1] Correll, Nikolaus, et al. "Lessons from the amazon picking challenge." arXiv preprint arXiv:1601.05484 (2016).

[2] Rennie, Colin, et al. "A dataset for improved rgbd-based object detection and pose estimation for warehouse pick-and-place." IEEE Robotics and Automation Letters 1.2 (2016): 1179-1185.

[3] Yu, Kuan-Ting, et al. "A Summary of Team MIT"s Approach to the Amazon Picking Challenge 2015." arXiv preprint arXiv:1604.03639 (2016).

[4] Eppner, Clemens, et al. "Lessons from the Amazon Picking Challenge: Four Aspects of Building Robotic Systems."

[5] Collet, Alvaro, Manuel Martinez, and Siddhartha S. Srinivasa. "The MOPED framework: Object recognition and pose estimation for manipulation." The International Journal of Robotics Research (2011): 0278364911401765.

[6] Discriminatively-guided Deliberative Perception for Pose Estimation of Multiple 3D Object Instances Venkatraman Narayanan, Maxim Likhachev


Update:

Approach from the winning team (Deft) : teamdelft-apc.blogspot.nl 的頁面

Vision

We decided to use two industrial stereo camera"s with rgb overlay camera"s. One camera for detection of objects in the tote and one on the robot gripper to scan the bins. Detection went in two steps. For object recognition we used a deep learning neural network based on Faster RCNN. Next we performed localization using an implementation of super4PCS to do a global optimization of the pose estimation. After this the estimation is refined using ICP.

Motion

To make the robot motions as fast as possible, yet accurate enough for our sense-plan-act approach, we divided the problem into the motions outside the shelf and inside its bins. Outside there is no need for dynamic path planning: the environment is static and known a priori. We created a database of collision-free trajectories between the relevant fixed locations, e.g. image-capture and approach locations in front of the shelf』s bin and over the tote. To move inside the bins we simplified the dynamic path planning problem by using cartesian trajectories. To implement our solution we developed customized ROS-services on top of the ROS framework for motion planning MoveIt!

---------------------------------------

Not sure if there"s a "mainstream" motion planning algorithm in APC.

For object recognition:

CNN for object detection and segmentation, then using ICP to estimate the object pose for grasping.


參加過2015年的第一屆比賽,我主要負責手臂運動規劃這一塊,是上面答主 @Kache的隊友。我大致描述規劃這塊的方法:sampling based motion plan + 人工示教軌跡。

我們的手臂系統是兩條自己搭的8個自由度manipulator。最開始做規劃的時候用的是RRT的那套方法,但是後來出現了規劃成功率不高的問題。仔細分析了一下就是手臂從外面伸進貨櫃拿東西,以及把東西從貨櫃拿出來的這兩個過程的成功率非常低。最終我們的hack方案就是選了幾個準備位姿,手工示教並記錄從準備位置到貨櫃裡面的軌跡。最終的規劃方案就是先規划到準備位置,再從準備位置執行示教好的軌跡。


正好認識冠軍隊伍Delft做Motion planning 的老師。簡而言之,RRT*。當然是有一些改進在裡面的。主要是降維,configuration space 有點龐大,要想高效的找到解,降維是關鍵。還有一點是採樣的分布(distribution of sampling),當然不能單純是隨機的,或者biased,Delft 團隊在採樣分布上也有改進。


推薦閱讀:

48個深度學習相關的平台和開源工具包,一定有很多你不知道的?
如何看待Baidu的Deep Speech 2語音識別系統入選MIT科技評論十大突破?
對於圖像識別和語音識別,其各自的深度學習框架的實現差異大嗎,假如理解了其中之一,轉向另一邊容易嗎?
現有的語音識別技術能否達到自動輸出嚴式國際音標的水平?
行為識別(action recognition)目前的難點在哪?

TAG:機器人 | 控制 | 深度學習DeepLearning | 運動規劃MotionPlanning |