论文理解 R-FCN:基于区域的全卷积网络来检测物体
本文轉(zhuǎn)載自:
http://blog.csdn.net/shadow_guo/article/details/51767036
原文標(biāo)題為“R-FCN: Object Detection via Region-based Fully Convolutional Networks ”,作者代季峰?1,14年畢業(yè)的清華博士到微軟亞洲研究院的視覺計算組,CVPR 16 兩篇一作的會議主持人~ ╰(°▽°)╯ 同時公布了源碼~?2
后面主要內(nèi)容為原文隨便的翻譯或概括。必有不緊貼原文原意之處,曲解請指出,否則求放過~
1. 簡介
物體檢測的深度網(wǎng)絡(luò)按感興趣區(qū)域 (RoI) 池化層分為兩大主流:共享計算的全卷積子網(wǎng)絡(luò) (每個子網(wǎng)絡(luò)與 RoI 無關(guān)) 和 不共享計算的作用于各自 RoI 的子網(wǎng)絡(luò)。工程分類結(jié)構(gòu) (如 Alexnet 和 VGG Nets) 造成這樣的分流。而工程上的圖像分類結(jié)構(gòu)被設(shè)計為兩個子網(wǎng)絡(luò)——1個后綴1個空間池化層的卷積子網(wǎng)絡(luò)和多個全連接層。因此,圖像分類網(wǎng)絡(luò)中最后的空間池化層自然變成了物體檢測網(wǎng)絡(luò)中的 RoI 池化層。
近年來,諸如殘差網(wǎng)絡(luò)和 GoogLeNets 等先進(jìn)的圖像分類網(wǎng)絡(luò)為全卷積網(wǎng)絡(luò)。類似地,自然會想到用在物體檢測中用全卷積網(wǎng)絡(luò) (隱藏層不包含作用于 RoI 的子網(wǎng)絡(luò))。然而,物體檢測工作中的經(jīng)驗表明,這樣天真的解決方案的檢測效果遠(yuǎn)差于該網(wǎng)絡(luò)的分類效果。?為彌補(bǔ)尷尬,更快 R-CNN 檢測器不自然地在兩卷積層間插入RoI 池化層,這樣更深的作用于各 RoI 的子網(wǎng)絡(luò)雖精度更高,但各個 RoI 計算不共享所以速度慢。
尷尬在于:物體分類要求平移不變性越大越好 (圖像中物體的移動不用區(qū)分),而物體檢測要求有平移變化。所以,ImageNet 分類領(lǐng)先的結(jié)果證明盡可能有平移不變性的全卷積結(jié)構(gòu)更受親睞。另一方面,物體檢測任務(wù)需要一些平移變化的定位表示。比如,物體的平移應(yīng)該使網(wǎng)絡(luò)產(chǎn)生響應(yīng),這些響應(yīng)對描述候選框覆蓋真實物體的好壞是有意義的。我們假設(shè)圖像分類網(wǎng)絡(luò)的卷積層越深,則該網(wǎng)絡(luò)對平移越不敏感。
我曾看到的尷尬包括:
a)?Kaggle 中的白鯨身份識別。剛開始很多人嘗試從圖像到坐標(biāo)的直接回歸,到后面有幾位心善的大哥分享了自己手動標(biāo)定后白鯨的圖像坐標(biāo),后來顯著的進(jìn)展大多是因為把白鯨的位置檢測和身份識別問題簡化為白鯨的身份識別問題。?
b)?Caffe 用于物體檢測時的均值收斂問題。
為消除尷尬,在網(wǎng)絡(luò)的卷積層間插入 RoI 池化層。這種具體到區(qū)域的操作在不同區(qū)域間跑時不再有平移不變性。然而,該設(shè)計因引入相當(dāng)數(shù)目的按區(qū)域操作層 (region-wise layers) 而犧牲了訓(xùn)練和測試效率。
本文,我們?yōu)槲矬w檢測推出了基于區(qū)域的全卷積網(wǎng)絡(luò) (R-FCN),采用全卷積網(wǎng)絡(luò)結(jié)構(gòu)作為 FCN,為給 FCN 引入平移變化,用專門的卷積層構(gòu)建位置敏感分?jǐn)?shù)地圖 (position-sensitive score maps)。每個空間敏感地圖編碼感興趣區(qū)域的相對空間位置信息。?在FCN上面增加1個位置敏感 RoI 池化層來監(jiān)管這些分?jǐn)?shù)地圖。
2. 方法
(1) 簡介
效仿 R-CNN,采用流行的物體檢測策略,包括區(qū)域建議和區(qū)域分類兩步。不依賴區(qū)域建議的方法確實存在 (SSD 和 Yolo 弟兄),基于區(qū)域的系統(tǒng)在不同 benchmarks 上依然精度領(lǐng)先。用更快 R-CNN 中的區(qū)域建議網(wǎng)絡(luò) (RPN) 提取候選區(qū)域,該 RPN 為全卷積網(wǎng)絡(luò)。效仿更快 R-CNN,共享 RPN 和 R-FCN 的特征。
RPN 給出感興趣區(qū)域,R-FCN 對該感興趣區(qū)域分類。R-FCN 在與 RPN 共享的卷積層后多加1個卷積層。所以,R-FCN 與 RPN 一樣,輸入為整幅圖像。但?R-FCN 最后1個卷積層的輸出從整幅圖像的卷積響應(yīng)圖像中分割出感興趣區(qū)域的卷積響應(yīng)圖像。
R-FCN 最后1個卷積層在整幅圖像上為每類生成k2個位置敏感分?jǐn)?shù)圖,有C類物體外加1個背景,因此有k2(C+1)個通道的輸出層。k2個分?jǐn)?shù)圖對應(yīng)描述位置的空間網(wǎng)格。比如,k×k=3×3,則9個分?jǐn)?shù)圖編碼單個物體類的 {top?left,top?center,top?right,...,bottom?right}。
R-FCN 最后用位置敏感 RoI 池化層,給每個 RoI 1個分?jǐn)?shù)。選擇性池化圖解:看上圖的橙色響應(yīng)圖像 (top?left),摳出橙色方塊 RoI,池化橙色方塊 RoI 得到橙色小方塊 (分?jǐn)?shù));其它顏色的響應(yīng)圖像同理。對所有顏色的小方塊投票 (或池化) 得到1類的響應(yīng)結(jié)果。
選擇性池化是跨通道的,投票部分的池化為所有通道的池化。而一般池化都在通道內(nèi)。
R-FCN 最后1個卷積層的輸出為什么會具有相對空間位置這樣的物理意義 (top-left,top-center,…,bottom-right)?
原文為“With end-to-end training, this RoI layer shepherds the last convolutional layer to learn specialized position-sensitive score maps.”。所以,假設(shè)端到端訓(xùn)練后每層真有相對位置的意義,那么投票前的輸入一定位置敏感。投票后面的內(nèi)容用作分類。
端到端訓(xùn)練先自行腦補(bǔ):?
假設(shè)已知原圖像與真實物體的邊界框中心坐標(biāo)和寬高,把1個物體的邊界框中心坐標(biāo)分成k2個網(wǎng)格的中心坐標(biāo),寬高縮放為物體寬高的1k倍,得到每個網(wǎng)格的掩碼。用原圖像和每類物體的網(wǎng)格在整幅圖像中的掩碼端到端訓(xùn)練全卷積網(wǎng)絡(luò)。挺像圖像分割~
(2) 基礎(chǔ)結(jié)構(gòu)
ResNet-101 網(wǎng)絡(luò)有100個卷積層,1個全局平均池化層和1個1000類的全連接層。僅用ImageNet預(yù)訓(xùn)練的該網(wǎng)絡(luò)的卷積層計算特征圖。
(3) 位置敏感分?jǐn)?shù)圖
對 R-FCN 的卷積響應(yīng)圖像按 RPN 的結(jié)果分割出來感興趣區(qū)域,對單通道的感興趣區(qū)域分成k×k個網(wǎng)格,每個網(wǎng)格平均池化,然后所有通道再平均池化。?
其實不是這樣的~?因為 RoI 覆蓋的所有面積的橙色方片都是左上位置的響應(yīng)。
“To explicitly encode position information into each RoI, we divide each RoI rectangle into?k×k?bins by a regular grid.” 這句話應(yīng)對應(yīng)下圖 (對應(yīng)后面效果圖的黃色虛線部分):
對1個大小為w×h的 RoI,1個桶 (bin) 的大小為wk×hk,最后1個卷積層為每類產(chǎn)生k2個分?jǐn)?shù)圖。對第(i,j)個桶 (0≤i,j≤k?1),定義1個位置敏感 RoI 池化操作:?
其中,rc(i,j|Θ)為第c類第(i,j)個箱子的池化響應(yīng),zi,j,c為k2(C+1)個分?jǐn)?shù)圖中的輸出,(x0,y0)為 RoI 的左上角坐標(biāo),n為桶里的像素總數(shù),且Θ為網(wǎng)絡(luò)的參數(shù)。
桶對應(yīng)后面效果圖的黃色實線部分,1個桶只摳了每類的每個相對空間位置通道中 RoI 的對應(yīng)相對空間位置的分?jǐn)?shù)圖,其它的部分丟棄。
(4) 分類
對該 RoI 每類的所有相對空間位置的分?jǐn)?shù)平均池化 (或投票)。?
Softmax 回歸分類。
(5) 定位
k2(C+1)維的卷積層后,增加1個4k2維的卷積層來回歸邊界框。每個 RoI 產(chǎn)生的4k2維向量經(jīng)平均投票后,用快速 R-CNN 的參數(shù)化得到1個4維向量(tx,ty,tw,th)。
(6) 訓(xùn)練
每個 RoI 的損失函數(shù)為交叉熵?fù)p失與邊界框回歸損失的和。
L(s,tx,y,w,h)=Lcls(sc?)+λ[c?>0]Lreg(t,t?)=?log(erc?(Θ)∑Cc′=0erc′(Θ))+λ[c?>0]Lreg(t,t?)
其中,c?=0說明 RoI 的真實標(biāo)簽為背景。Lreg與快速 R-CNN 中的邊界框損失回歸相同。RPN 產(chǎn)生的區(qū)域建議當(dāng) RoI 與 真實邊框的 IoU 超過0.5時,標(biāo)定為正樣本。
在線難例挖掘?(OHEM)。假設(shè)每個圖像前向產(chǎn)生N個區(qū)域建議,計算所有建議的損失。按損失排序所有 RoIs,選擇損失最高的B個 RoIs?3。
(7) 可視化
RoI 分類的可視化。RPN 剛好產(chǎn)生包含 person 類的 RoI。經(jīng)過 R-FCN 的最后1個卷積層后產(chǎn)生9個相對空間位置的分?jǐn)?shù)圖,對 person 類的每個相對空間位置通道內(nèi)的 RoI 桶平均池化得到3×3的池化分?jǐn)?shù),投票后送入分類器判斷屬于 person 類。當(dāng)分類正確時,該類通道的位置敏感分?jǐn)?shù)圖 (中間) 的大多數(shù)橙色實線網(wǎng)格內(nèi)的響應(yīng)在整個 RoI 位置范圍內(nèi)最強(qiáng)。
3. 相關(guān)工作
R-CNN 證實用深度網(wǎng)絡(luò)產(chǎn)生區(qū)域建議是有效的。R-CNN 在剪切變形的區(qū)域上評價卷積網(wǎng)絡(luò),區(qū)域間不共享計算。SPP 網(wǎng)絡(luò),快速 R-CNN 和更快速 R-CNN 為”半卷積” (卷積子網(wǎng)絡(luò)在整幅圖像上共享計算,另1個子網(wǎng)絡(luò)評價各個區(qū)域)。
一些物體檢測器被認(rèn)為是”全卷積“模型。OverFeat 在共享卷積特征圖上滑窗操作來檢測物體。類似地,快速 R-CNN 等也用滑動窗口,它們的1個單尺度的滑動窗口可看作1個卷積層。更快 R-CNN 的 RPN 部分為1個預(yù)測關(guān)于多尺寸參考盒 (錨) 的邊界框的全卷積檢測器。更快 R-CNN 的 RPN 未知區(qū)域建議的類,但 SSD 該部分已知特定的類。
另一類物體檢測器采用全連接層,在整個圖像上產(chǎn)生整體物體的檢測結(jié)果。
4. 實驗
(1) PASCAL VOC
訓(xùn)練VOC 07?trainval?和 VOC 12?trainval,測試VOC 07?test。
a. 與其它全卷積策略比較
樸素更快 R-CNN?
ResNet-101 的共享特征圖,最后1個卷積層后用 RoI 池化。每個 RoI 上用21類全連接層。?
ResNet-101 (conv4 與 conv5 間插入 RoI 池化層),樸素更快 R-CNN (conv5 后插入 RoI 池化層)。mAP 升 7.5%。。經(jīng)驗證實更快 R-CNN 系統(tǒng)的卷積層間插入 RoI 池化層能提高相關(guān)空間信息的重要性。
特定類 RPN?
訓(xùn)練 RPN 與 更快 R-CNN 部分相同,2類卷積分類層 (物體或背景) 改為 21類卷積分類層 (20類物體+1背景)。?
特定類 RPN 類似于快速 R-CNN 的特殊形式 (用稠密的滑窗替換區(qū)域建議)。mAP 跌 8.8%。效果不如2類 RPN。
無位置敏感的 R-FCN?
k=1時,位置不敏感。相當(dāng)于每個 RoI 全局池化。?
位置敏感的 R-FCN 相對于 ResNet-101,mAP 升0.02 %~
b. 與用 ResNet-101 的更快 R-CNN 比較
所要比較的檢測器為各大 Benchmark 上的最強(qiáng)競爭者。名字太長,后面簡稱暫時最強(qiáng)檢測器。
原作者的意思可能是這樣:結(jié)合 MS COCO 訓(xùn)練后,R-FCN 僅需多尺度訓(xùn)練 mAP 就能到 82%,而暫時最強(qiáng)檢測器,除了多尺度訓(xùn)練,還要迭代盒回歸和上下文才比 R-FCN 多 2.0% 和 1.8%;而且,即使不帶 MS COCO 訓(xùn)練,沒有上述附加的”+++”工作,R-FCN 也比暫時最強(qiáng)檢測器的 mAP 還要至少高 3%。而且,R-FCN 快得多。
帶 MS COCO 訓(xùn)練數(shù)據(jù)后,mAP 大漲~ P.S. 該數(shù)據(jù)集由微軟發(fā)起~
c. 深度的影響
深度為50~101時 mAP 會增加,到152層時飽和。
d. 區(qū)域建議的影響
RPN 即使用選擇搜索和邊緣盒 (Edge Boxes) 也有 77% 以上的 mAP。
(2) MS COCO
IoU 為0.5時,R-FCN和暫時最強(qiáng)檢測器的 mAP 僅有剛過50%。說明 MS COCO 與 PASCAL VOC 相比有更大的挑戰(zhàn)性~
5. 小結(jié)
R-FCN 在數(shù)據(jù)集 VOC 07 和 12 上的 mAP 分別為?83.6%?和?82%,測試時每張圖像耗時 170ms。微軟的視覺計算組其實每年在領(lǐng)先的成果上改進(jìn)了一點(diǎn)點(diǎn),但原理簡單,分析角度又新,實驗規(guī)模也不小。該團(tuán)隊不僅明星云集,且力往一塊使,容易出大片~ ( ̄﹏ ̄)
總結(jié)
以上是生活随笔為你收集整理的论文理解 R-FCN:基于区域的全卷积网络来检测物体的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: YOLOv2训练:制作VOC格式的数据集
- 下一篇: 论文翻译 基于R-FCN的物体检测