論文地址:https://arxiv.org/pdf/1901.03278.pdf
代碼地址:GitHub - open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark
1.RPN
RPN即Region Proposal Network,是用RON來選擇感興趣區(qū)域的,即proposal extraction。例如,如果一個區(qū)域的p>0.5,則認為這個區(qū)域中可能是80個類別中的某一類,具體是哪一類現(xiàn)在還不清楚。到此為止,網(wǎng)絡(luò)只需要把這些可能含有物體的區(qū)域選取出來就可以了,這些被選取出來的區(qū)域又叫做ROI(Region of Interests),即感興趣的區(qū)域。當然RPN同時也會在feature map上框定這些ROI感興趣區(qū)域的大致位置,即輸出Bounding Box。
RPN詳細介紹:https://mp.weixin.qq.com/s/VXgbJPVoZKjcaZjuNwgh-A
2.Guided Anchoring
通常用(x,y,w,h)來描述一個anchor,即中心點坐標和寬高。文章將anchor的分布用條件概率來表示,公式為:
p(x,y,w,h|I)=p(x,y|I)p(w,h|x,y,I)
兩個條件概率的分布,代表給定圖像特征之后anchor的 中心點概率分布 ,和給定圖像特征和中心點之后的 形狀概率分布 。這樣看來,原來我們所獲取anchor的方法就可以看成上述條件概率分布的一個特例,即p(x,y|I)是均勻分布而p(w,h|x,y,I)是沖激函數(shù)。
根據(jù)上面的公式,anchor的生成過程可以分解為兩個步驟,anchor位置預(yù)測和形狀預(yù)測。
論文中用到的方法如下:
這個框架就是在原始的RPN的特征圖基礎(chǔ)上,采用兩個分值分別預(yù)測anchor的位置和形狀,然后再結(jié)合到一起得到anchor。之后采用一個Feature Adaption模塊進行anchor特征的調(diào)整,得到新的特征圖供之后的預(yù)測使用(anchor的分類和回歸)。整個方法可以端到端訓(xùn)練,而且相比之前只是增加了3個1×1 conv 和一個3×3 deformable conv,帶來的模型參數(shù)量變化很小。
(1)位置預(yù)測
位置預(yù)測分支的目標是預(yù)測哪些區(qū)域應(yīng)該作為中心點來生成anchor,也是一個二分類問題,但是不同于RPN的分類,我們并不是預(yù)測每個點是前景還是背景,而是預(yù)測是不是物體中心。
我們將整個feature map的區(qū)域分為物體中心區(qū)域、外圍區(qū)域和忽略區(qū)域,大致思路就是將groundtruth 框的中心一小塊對應(yīng)在feature map上的區(qū)域標為物體中心區(qū)域,在訓(xùn)練的時候作為 正樣本 ,其余區(qū)域按照離中心的距離標為忽略或者 負樣本 。最后通過選擇對應(yīng)概率值高于預(yù)定閾值的位置來確定可能存在對象活動的區(qū)域。F1 對輸入的特征圖使用 1×1 的卷積,得到與 F1 相同分辨率的輸出,N_L 得到輸出的每個位置的值表示原圖I上對應(yīng)位置出現(xiàn)物體的可能性,也就是概率圖,最后通過選擇對應(yīng)概率值高于預(yù)定閾值的位置來確定可能存在對象活動的區(qū)域。
通過位置預(yù)測,我們可以篩選出一小部分區(qū)域作為anchor的候選中心點位置,使得anchor數(shù)量大大降低。這樣在最后我們就可以只針對有anchor的地方進行計算。
(2)形狀預(yù)測
形狀預(yù)測分支是目標是給定anchor中心點,預(yù)測最佳的長和寬,這是一個回歸問題。
采用1×1的卷積網(wǎng)絡(luò) N_s 輸入 F_1,輸出與 F_1 尺寸相同的2通道的特征圖,每個通道分別代表 dw 和 dh,表示每個位置可能的最好的 anchor 尺寸。雖然我們的預(yù)測目標是 w 和 h,但是直接預(yù)測這兩個數(shù)字不穩(wěn)定,因為范圍很大,所以將空間近似 [0,1000] 映射到了 [-1,1] 中,公式為:
w=\\sigma \\times s \\times e^{dw},w=\\sigma \\times s \\times e^{dh}
其中 s 是步幅,σ 是經(jīng)驗因子,實驗中取 σ=8。實驗中產(chǎn)生 dw,dh 的雙通道映射,通過這個方程實現(xiàn)了逐像素轉(zhuǎn)換。文章中直接用 IOU 作為監(jiān)督來學習 w 和 h。
對于 anchor 和 ground truth 匹配問題,傳統(tǒng) RPN 都是直接計算 anchor 和所有 ground truth 的 IOU,然后將anchor 匹配給 IOU 最大的那個 ground truth,但是現(xiàn)在由于我們的改進,anchor 的 w 和 h 都是不確定的,是一個需要預(yù)測的變量。文中將這個 anchor 和某個 ground truth 的 IOU 表示為:
vIOU(a_{wh},gt)=\\max_{w>0,h>0}IOU_{normal}(a_{wh},gt)
我們不可能把所有可能的 w 和 h 遍歷一遍求 IOU 的最大值,文中采用了9組可能的 w 和 h 作為樣本,近似效果已經(jīng)足夠。
到這里我們就可以生成 anchor 了。這時所生成的 anchor 就是稀疏而且每個位置不一樣的。實驗可得此時的平均 recall 已經(jīng)超過普通的 RPN 了,僅僅是增加了兩個 conv。
(3)特征精調(diào)模塊
由于每個位置的形狀不同,大的anchor對應(yīng)較大感受野,小的anchor對應(yīng)小的感受野。所以不能像之前基于anchor的方法那樣直接對feature map進行卷積來預(yù)測,而是要對feature map進行feature adaptation。作者利用可變形卷積(deformable convolution)的思想,根據(jù)形狀對各個位置單獨進行轉(zhuǎn)換。
方法就是把anchor的形狀信息直接融入到特征圖當中,得到新的特征圖去適應(yīng)每個位置anchor的形狀。這里就利用了上述的3×3的可變形卷積進行對原始特征圖的修正,可變形卷積的變化量是通過anchor的w和h經(jīng)過一個1×1 conv得到的。
f'_i=N_t(f_i,w_i,h_i)
其中,fi 是第 i 個位置的特征,(wi, hi) 是對應(yīng)的 anchor 形狀。NT 通過 3×3 的變形卷積實現(xiàn)。首先通過形狀預(yù)測分支預(yù)測偏移字段 offset field,然后對帶偏移的原始 feature map 做變形卷積獲得 adapted features。之后進一步做分類和 bounding box 回歸。
通過這樣的操作,達到了讓 feature 的有效范圍和 anchor 形狀更加接近的目的,同一個 conv 的不同位置也可以代表不同形狀大小的 anchor 了。
文中實驗結(jié)果示例:
學習更多編程知識,請關(guān)注我的公眾號:
[代碼的路]
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100720 -
代碼
+關(guān)注
關(guān)注
30文章
4780瀏覽量
68539
發(fā)布評論請先 登錄
相關(guān)推薦
評論