三維計算機視覺 —— 中層次視覺 —— RCNN Family

  RCNN是從圖像中檢測物體位置的方法,嚴格來說不屬於三維計算機視覺。可是這種方法卻又很是很是重要,對三維物體的檢測很是有啓發,因此在這裏作個總結。網絡

一、RCNN - the original idea

  —— <Rich feature hierarchies for accurate object detection and semantic segmentation>ide

    這篇文章提出了用CNN網絡來對物體進行檢測的思路。函數

Q:優化

  a. CNN網絡中存在卷積層和池化層,每次池化都會弱化物體的位置信息,強化物體的特徵信息,因此CNN網絡最終會告訴咱們是什麼,而不是在哪兒idea

  b. 要使用CNN網絡來檢測,直覺上咱們能夠訓練一個識別某物體的網絡,來對小方塊進行分類。可是這須要大量的訓練集,可能對於待檢測物體,咱們沒有收集大量訓練集的機會spa

  c. CNN網絡的圖像輸入層具備固定的維度,任意大小的小方塊是沒法直接輸入到CNN網絡裏的設計

A:blog

  a. 文章提出了能夠在已經訓練好的網絡上利用小規模的訓練集進行優化,也能達到很好的效果。圖片

  b.經過 selective search來肯定可能含有物體的小方塊it

  c.將消方塊進行拉伸(warp),送入CNN進行分類,最終實現檢測

細節:

  一、使用了ILSVRC 2012對網絡進行預訓練,步長0.01

  二、精訓練使用的步長是0.001

  三、mini-batch size = 128, 其中背景96,帶東西的32。有意的bias,讓網絡更大機率判爲背景

  四、loss function 中,IoU超過50%判爲1,不然爲0

  五、使用svm對物體類別進行判斷

  六、對box進行線性迴歸,得到更高的精度(後面還會提到)

二、SPPNet - 結合金字塔

  —— <Spatial pyramid pooling in deep convolutional networks for visual recognition>

  在第一步使用rcnn中,檢測須要將圖片拉伸成特定的大小,便於輸入網絡。這顯然很不合理,不少東西拉伸之後就徹底變形了,這會下降檢測的精度。因此須要一種不拉伸方塊的方法,來對物體進行檢測。

Q:

  a.拉伸圖像會帶來識別精度的降低,在r-cnn中尤爲明顯

A:

  a.金字塔池化:將任意維度的圖片池化成同一維度。例如,圖片爲256*256,金字塔接受的就是maxpool2dlayer(16,'stride',16),若是圖片爲128*128,金字塔接受的就是maxpool2dlayer(8,'stride',8)

  

細節:

  只用了兩種bin size 來構建訓練集,180 * 180, 224 * 224. 由於只有兩種狀況,因此能夠很方便的構建bp函數

三、FastCNN - 要啥金字塔,一層就夠啦

  —— <Fast R-CNN>

Q: 

  a.對於每一個 box/proposal 都須要進行一次feed forward.

  b.訓練時須要對分類函數和迴歸函數分開訓練

A:

  a.對圖像進行一次總體的feed forward,獲得總的卷積結果;對總結果中的box,每一個box一次,分別進行ROI pooling (其實就是金字塔的第一層)

  b. ROI pooling 後會獲得固定維度的向量,送入屢次全鏈接層,直接映射成類別和box的迴歸

細節:

  一、訓練時,全部的權重都獲得迭代

 

四、Faster R-CNN — 這纔是顛覆

  ——<Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks>

Q:

  a. 對每張圖都要進行一次 selective search 以得到proposal太耗時了

A:

  a.設計一個神經網絡 Region Proposal Net 自動來提出proposal 吧!

RPN 本質上能夠看做一個很是獨立的部分,雖然它號稱使用了整幅圖像的feature,但功能上RPN是獨立的。RPN的任務是輸入圖像,輸出一系列Proposal(四點座標+是否有物體)

一、使用卷積網絡的最後一個卷積層卷積完的結果 Last_Image * final_convolution2dlayer(n,d). 做爲RPN的真正輸入(前面都是公用的,後面纔是RPN)

二、使用一個3*3的小卷積掩模將1中的結果抽象成d 維向量。

三、將該向量送入2個全鏈接層——分類全鏈接(2K輸出)和座標全鏈接(4K輸出)————k個proposal (3 scale,2 aspect ratio)

四、在2中,掩模的位置決定了全鏈接輸出參數的"原點"

 

五、總結

  在神經網絡中,全鏈接是最強的非線性映射方式,也是花費最重的。在結果層少許的使用全鏈接以換取強大的映射方程是頗有意義的。

  說了那麼多,和三維視覺有毛關係?其實關係在這裏,在二維圖像中檢測物體位置和在三維圖像中檢測物體位姿是對偶的。不信?見 <Deep Sliding Shapes for amodal 3D object detection in RGB-D images>

相關文章
相關標籤/搜索