3D目標識別與定位技術的最新進展?有哪些技術瓶頸?

這個方向的paper看了一些,感覺解決大部分項目的演算法覆蓋了現如今的通用演算法,那這個方向的下一階段的發展又將往何處去呢?


謝邀。

首先,個人認為完整的3D物體識別/檢測(full 3D object detection)這個task的輸出應該包括:

1)2D boxes

2)3D pose

3)3D location

4)3D boxes

實際上如果能輸出3D boxes,前面三個自然也可以得到。

根據這個定義,傳統的3D物體識別大部分工作實際上只輸出2D boxes和3D pose,有一些工作可以輸出3D location,最近才出現少數工作可以輸出完整的3D boxes。

其中,正如 @李濟深 所言,大部分的工作都依賴於CAD模型或訓練multi-view的模板(如Multi-view DPM)來做的。個人並不喜歡這類思路,特別是基於CAD模型速度極慢,不易擴展到多類別,並不實用。

有趣的是, Is 2D Information Enough For ViewpointEstimation? BMVC"14.

這篇文章實驗指出,對於3D pose estimation,2D特徵並不比已有的各種又複雜又慢的基於CAD的3D模型差,甚至更好。

那麼,其實我更關注的是full 3D object detection,即輸出3D boxes。這個task可以基於單目RGB來做,也可以基於RGB-D來做。當然前者要難得多。這方面的工作並不多,但目測會有越來越多的工作出來。這裡先推薦幾個工作:

  • Jianxiong Xiao 組的系列工作(主要針對indoor scene):

    • Deep Sliding Shapes for Amodal 3D Object Detection in RGB-D Images. arXiv"15.

      • ECCV"14的Sliding Shapes的deep版本,也是Faster R-CNN的3D版本。整個pipeline比較優美,速度也快了很多。

    • 3D ShapeNets: A Deep Representation for Volumetric Shapes. CVPR"15.

      • 一個voxel2label的DBN model,用於3D物體classification,不是detection。
  • Saurabh Gupta Jitendra Malik 組的系列工作(indoor scene):

    • Learning Rich Features from RGB-D Images for
      Object Detection and Segmentation. ECCV"14.

    • Aligning 3D Models to RGB-D Images of Cluttered Scenes. CVPR"15.

    • Cross Modal Distillation for Supervision Transfer. arXiv"15.

這三篇文章都是基於R-CNN和CAD,可以一看。

  • 對於outdoor scene 的full 3D detection的工作,我看到的不多,只好捂臉推薦一下我們最近的工作:
    • 3D Object Proposals for Accurate Object Class Detection. NIPS"15.
      • 自動駕駛場景下的3D object detection,pipeline是3D object proposals + Fast R-CNN,在KITTI上效果還不錯。

總的來說,full 3D detection對於機器人等應用是非常關鍵的,然而這方面已有的工作離應用還有點遠。個人認為,如何將deep model應用於RGB-D數據是一個值得研究的點。在這個點上,如何做到既好又快是重點。


好久沒有答題了,寫了一天代碼,頭昏眼花之際,過來看到這個題目,剛好有些經驗,遂答之。拋磚引玉。

目標的3D姿態估計是一個非常有意思的問題……當然得先把問題定義一下:給定目標,在當前攝像頭裡面找出其三維姿態。對於剛性的目標,我們的三維姿態可能是一個6DoF的Pose,對於柔性的物體,這個姿態就複雜一點,通常直接給出重建出來的目標模型(mesh)。

如果你上述兩者都解決好了,那你毫無疑問可以走上人生巔峰迎娶……當然,這是不實際的,第二個問題比第一個問題要難很多。即便是第一個問題,考慮到那些沒有什麼紋理,反光的物體,其實也是蠻難的。這裡著重說前者。

如果是紋理豐富,特徵點比較多的物體,最簡單直接的方式莫過於直接通過特徵點對來直接計算Pose了。如果沒有特徵點,現在流行的做法應該是使用梯度信息了。比較流行的是LINEMod。 LINEMOD的基本思路是以CAD模型為出發點,提取離散的normal(就是與梯度方向垂直的一個方向向量),然後去原圖裡面做金字塔搜索。思路很樸實,技巧主要在於實現上,畢竟速度還是很重要的。LINEMOD使用了圖像normal和來自於深度攝像頭的曲面normal,兩個都是離散採樣的。在實際中如果場景比較複雜,由於normal本身只有位置和方向屬性,很容易出現誤檢,所以也有人在這一點上下功夫,回過頭來利用顏色等信息來減少一些誤檢。

另外,現在能買到的商業深度感測器的精度和範圍都存在較強的限制,所以還是有很多人在想著直接使用雙目視覺的方式來估算梯度,甚至加入一些Bias,通過單張圖來估計物體表面的Normal。但是這些方法現在大多比較慢,在實際中很難用上。因為這些演算法對精度要求高,並且不需要dense,所以工業上會有廠商用激光掃描獲取一個稀疏的深度圖,然後利用這個深度圖來做一些工作。

基於CAD模型的3D目標姿態估計的另外一個方向是減少CAD生成的模型跟實際模型之間的差異性,畢竟CAD出來的圖,跟現實中圖的光照條件等還是很不一樣的,這個時候,哎,討巧的人就幸運了,比如最新的ICCV2015有一篇論文,學習一個卷積網路來比較CAD出來的圖像和實際中的圖像,期望能去掉光照等因素的影響,典型的老思路用在新地方……是值得在實際中嘗試的。

當你發現大部分論文充滿都讓人肅然起敬的各種公式的時候,也許實際上他們真正有價值的貢獻可能僅僅是演算法實現時候的一個小小的技巧……特別是現在工程和「科研」傻傻分不清的時候,大部分人其實埋頭苦幹的是優化,比如當你生成了不同視角下的圖,提了特徵,訓練了網路,然後去圖上做sliding window,你突然發現你手上有成千上萬個模板需要匹配,一張圖下來要二十秒……你嚇哭了……所以有些人開始借用一些其他的思路來優化性能,比如cascade tree來做匹配,比如生成binary feature code來匹配,這些都是正在被人做的方向。

工業場景一般來說,環境是可控的,而對於機器人的話,還會用到一些前段的前景檢測或者分割技術來減少匹配區域。還有人想著把經典的匹配演算法移植到GPU上,做成伺服器,如果速度能比之前快十倍,那麼就意味著……你能以不同模型檢測十次……確實是不錯的工程實踐。

下班了要。關於剛性目標的,就到這裡吧。關於柔性的物體,今年PAMI上有一篇文章做這方面工作的,使用的數學模型比較複雜,如果你之前玩過ASM之類的主動模型,對流形和李群比較熟悉,看起來應該不困難,順便留個方式交流一下……主要是我向您請教教啦。

冬天天黑早,中午吃得少,肚子早餓了,先把代碼提交,再收拾書包,鎖門回家咯。


知乎第一個長答

看了前面兩個答案,覺得自己答跑題了。昨天晚上失眠,抱著手機一看就亂答了,迷迷糊糊理解成3D tracking了。但是既然得到了來到知乎的第一個贊,謝謝題主!那我就整理下就好好答。

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

Tracking的paradigm很多,我做過的tracking, 主要是對多行人tracking-by-detection.

[LZK14] 把CV領域的tracking分為兩類,category free tracking 和association based tracking。兩者區別如下

簡單來說前者可以在同一幀追蹤不同類別的目標,比如同時追蹤貓和人,要追蹤物體的數量在整個視頻中是固定的,需要人為在第一幀標註需要追蹤物體的位置。第二類主要是通過tracking by detection實現的,首先要用一個特定目標的detector來判定每幀出現的目標,再用data association的技術和前面幀數的目標匹配,這種方法,不需要人為標註,被追蹤物體的數量可以隨時變化,目標可以隨時離開,也可能隨時有新的目標出現。

由於第二種追蹤限制較少,我做過的實驗只是針對第二種。3D的定位,一般都需要雙目相機,這樣可以獲取深度信息,也就是RGB—D圖像,有了深度,根據估計的ground plane的方程確定目標的坐標。

因而,影響或制約目標3D位置的因素,主要有對演算法方面的和:

1. similar appearance

相似的外觀,相近的距離,也就意味著更少的constraints, 附近frames里的detections 的association就會變得複雜很多

2. 光照

首先detection 就很難了,對人眼來說也是有挑戰的

3. 鏡子上的反射或者是影子

4.遮擋

遮擋對於2D的detector或者是depth信息的獲取都是很大的挑戰

與model這些複雜的環境不同的是,我在實驗過程中,覺得相機的calibration和ground plane方程的估計是更大的問題

兩種camera, 一種是靜態的,類似監控相機(PETS09系列視頻),兩外一種是動態的(ETH系列視頻),類似機器人或各種頭部穿戴的設備,因為地面不平,相機的x,y,z坐標都會有對於時間的變化。靜態視頻環境簡單,各種演算法精度不錯。動態相機,地面崎嶇不平,攝像頭高低變化,這都給相機的calibration 和ground plane方程estimation帶來了很大挑戰。這種情況下,即便depth得到的是精準的,project到ground plane上也會很大的誤差。更何況,現在depth的估計也受到光照等各種因素的影響。

舉個例子,動態相機的ETH-Sunnyday(ETH-Bahnhof結果更差,因為視頻太長,大部分目標距離相機距離太遠).

左邊是2D tracking的結果bounding box overlap (50%)來確定是否是valid estimation,右邊是ground plane上的3D位置,Euclidean距離(1米)來確定是否是valid estimation. 黑色是ground truth,別的顏色是追蹤結果,不同顏色表示false positive, true positive 和false negative. 我們可以看出: 即便在2D追蹤比較精準的情況下,project到ground plane上3D坐標的效果也很差。當目標離camera較遠時,detector給的2D error(即便只是幾個像素值的差別),camera calibration 和ground plane estimation error就會propagate,預測坐標和真實坐標差遠遠大於默認閾值1米,往往就被算了一個false positive一個false negative。

[LZK14] Wenhan Luo, Xiaowei Zhao, and Tae-Kyun Kim. Multiple object tracking: A review. In arXiv:1409.7618, 201


這篇3D物體檢測的作品真讓人印象深刻

請問作者可否開放源碼讓我們下載?


我是剛開始看3D物體檢測,最不懂的是:在使用卷積網路檢測物體時,3D box 是怎麼得到的?


推薦閱讀:

什麼是One/zero-shot learning?
從人臉識別 到 行人重識別,下一個風口
GAN能合成2k高清圖了!還能手動改細節 | 論文+代碼,英偉達出品
《面經篇》一個深度腦殘的實習面試經歷
Mask R-CNN源代碼終於來了,還有它背後的物體檢測平台Detectron

TAG:計算機視覺 | 機器視覺 |