傳統的RCNN可以大致框出定位物體在圖片中的位置,但是如何將這個圖片中的位置轉化為物理世界的位置?

最近在做一個機器人智能抓取物品的項目,機器人可以用一個雙目攝像頭將他看到的圖片傳回來,這裡我們使用了RCNN處理圖片,識別圖片上的物體。但是RCNN只能在2d的圖片中框出來目標物體,我們可以利用雙目攝像頭,將rcnn框出來的那一部分的3d坐標都拿到,但是如何確定物體的中心具體在哪裡?


我理解的題主的問題應該是這樣的:

已經通過RCNN在雙目圖像中定位到了物體位置,並且通過雙目視覺方法得到了一個區域的3D點雲(一堆點),要怎麼通過這些點雲來獲取機器人的抓取姿態?

也即Grasp pose
detection in point clouds問題。

不知道我的審題是否正確。如果正確的話,請繼續往下看我的答案;不正確的話,請修改問題,我重新答: )

因為機器人通過雙目視覺得到的點雲並不完整,所以直接把點雲坐標求平均找中心的方法並不可行。

先說比較傳統的做法:

首先,機器人眼中的一片點雲大概長成下圖這樣:

由於之前的物體識別模塊已經確定了這片點雲對應的物體,如果我們有物體的3D模型,便可以直接用ICP演算法將這片點雲與物體的3D模型對齊。

既然知道3D模型的位姿那就好辦了。之後就是各種抓取姿態生成、力封閉之類的東西了:

然後直接去抓就好了。

當然,我們也可以不用這樣的方法

我博一的時候原本也想做類似方向的東西,當時已經完成了利用Bag-of-Features (BoF)原理做的圖像物體定位演算法。就類似題主現在做的利用RCNN在圖像中定位了物體的大概位置。於是就想,我能不能直接利用這樣的圖像粗定位,然後根據一堆點雲做抓取,而不用知道物體的3D模型。當然,後來,我換了方向,所以這方面沒繼續往下做。但是最近看到不少類似的研究工作。

1、Using Geometry to Detect Grasp Poses in 3D
Point Clouds

上面這個是ICRA 2015中的一篇論文,他們利用SVM分類器,直接對3D點雲進行訓練,判斷其可抓取方向:

當時測試過他們的方法,感覺效果並不是特別好,需要較為完整的點雲,同時訓練庫對結果影響也很大。2、High precision grasp pose detection in dense clutter

最近,深度學習之類的東西這麼火,所以,今年出了個新的方法。

這篇論文採用卷積神經網路訓練一小片點雲的可抓取性,

我們實驗室有同學也測試了這個方法,效果果然好不少:

上圖按順序依次是:彩色圖片、點雲圖片、隨機生成的抓取姿態、CNN判斷可行的抓取姿態。


謝邀,一會兒來答


額 一般camera都是先calibrate好吧。。就是拿張棋盤一樣的紙在上面踩點,然後拿來算你camera坐標系轉換到機器人坐標系的一個矩陣就好了。算好了就別亂動了哦 :p


按照我的想法,只要願意打標籤,然後一切交給網路自己去學習~~~事實上各種生活物品也就那麼多,設計的把手位置大同小異,


瀉藥

這個問題還是用傳統方法解決比較好了。既然你已經知道物體在雙攝像頭的位置了,那麼在你的空間的位置就是立刻可以知道的

假設攝像頭的玻璃鏡片是理想透鏡構成的光學系統,那麼攝像頭的呈現其實就是一個仿射變換。你可以通過標定點求出攝像頭的變換矩陣,然後你要做的事情就是聯立求解還原點在空間中的位置了。

當然,猶豫時間有限以及手機不方便就只說以上的這些了,如果繼續了解還是參考專門搞三維場景還原的書籍和論文吧。


如果目標是機器人抓取,基於圖像特徵的控制 比 基於位置測量的控制 更魯棒一些。

如果關鍵問題是物體中心點的獲取,我覺得可以根據detection結果,再做一次中心位置的prediction。


1. camera calibration

2. extract feature points

3. triangulation

搞定。


推薦閱讀:

深度學習(DNN)是逆向模擬了人類視覺皮層結構嗎? 還是訓練過程中自然演變成類似視覺皮層的結構?
雙目視覺感測器和神經網路能否逼近人眼視覺?
如何快速學習 MATLAB BP 神經網路?
神經網路訓練時對輸入有什麼特別的要求嗎?

TAG:計算機視覺 | 神經網路 |