CVPR2019论文看点:自学习Anchor原理
CVPR2019論文看點:自學習Anchor原理
原論文鏈接:https://arxiv.org/pdf/1901.03278.pdf
CVPR2019的一篇對anchor進行優化的論文,主要將原來需要預先定義的anchor改成直接end2end學習anchor位置和size。首先anchor的定義通常為(x, y, w, h) (x, y為中心點),formulate一下:
本文所提的guided
anchoring利用兩個branch分別預測anchor的位置和w、h:
guided anchoring的主要內容有如下幾點:
Anchor
Location Prediction
邏輯很簡單,利用一個1x1的conv將輸入的feature map轉換成 W x H x 1的heatmap,通過卡閾值t來得到anchor可能出現的位置,在訓練的時候可以通過gt的框來生成heatmap的groudtruth,negtive、positive、ignore的pixel定義論文中有比較詳細的介紹。
Anchor Shape Prediction
這一部分邏輯和上一部分一樣,也是通過一個1x1的conv將輸入的feature map轉換成W x H x 2的heatmap,只是考慮到如果直接回歸w和h范圍太廣會比較不穩定,作者做了一定的轉化將預測值約束到[-1,1], 實際使用的時候再映射回去,s為feature map的stride,sigma為8:
需要注意的是和傳統的anchor設置不一樣的是,guider anchoring在某一個pixel下只會設置一個anchor。
這一部分的訓練其實會是比較需要特別注意的地方,論文中使用來IoU
loss來監督,但是這樣存在一個問題,因為這個分支本身是預測w,h的,所以IoU Loss的計算無法知道match的具體gt,作者提出的方法是sample 9組常見的w、h,這樣就可以利用這9組w、h構建9個不同的anchor去和gt匹配,IoU最大的匹配gt就是當前需要去計算IoU Loss的gt,然后直接用heatmap的w、h和這個gt計算IoU Loss即可:
Anchor-Guided
Feature Adaptation
這一個模塊主要是針對feature有可能和anchor不一致而提出的,因為對于原先預定義的anchor而言,每一個pixel對應位置的anchor其實都是一樣的,所以也就無所謂feature的異同,但是guided
anchoring邏輯下不同的pixel有可能anchor的size差別很大,仍然像之前那樣直接出cls和reg很顯然是不合適的,所以作者就提出了adaptation的模塊,利用deformable
conv來處理不同形狀的anchor對應的feature。
論文的最后作者也提了一下因為GA-RPN可以得到很多高質量的porposal,通過提高閾值可以進一步優化檢測的效果。
實驗結果:
高質量 proposal 的正確打開方式
故事到這里其實也可以結束了,但是我們遇到了和之前一些改進
proposal 的
paper 里相同的問題,那就是
proposal 質量提升很多(如下圖),但是在
detector 上性能提升比較有限。在不同的檢測模型上,使用
Guided Anchoring 可以提升 1
個點左右。明明有很好的 proposal,但是 mAP 卻沒有漲很多,讓人十分難受。
經過一番探究,我們發現了以下兩點:1.
減少 proposal 數量,2.
增大訓練時正樣本的 IoU 閾值(這個更重要)。既然在 top300 里面已經有了很多高 IoU 的 proposal,那么何必用
1000 個框來訓練和測試,既然
proposal 們都這么優秀,那么讓
IoU 標準嚴格一些也未嘗不可。
這個正確的打開方式基本是
獨立調出來的,讓
performance 一下好看了很多。通過這兩個改進,在
Faster R-CNN 上的漲點瞬間提升到了
2.7 個點(沒有加任何
trick),其他方法上也有大幅提升。
生成 anchor
在得到
anchor 位置和中心點的預測之后,我們便可以生成
anchor 了,如下圖所示。這時的
anchor 是稀疏而且每個位置不一樣的。采用生成的
anchor 取代
sliding window,AR
(Average Recall) 已經可以超過普通
RPN 4 個點了,代價僅僅是增加兩個
1x1 conv。
實驗結結果
總結
以上是生活随笔為你收集整理的CVPR2019论文看点:自学习Anchor原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CVPR2018论文看点:基于度量学习分
- 下一篇: 3D-camera结构光原理