關於RPN中proposal的座標迴歸引數的一點理解及Faster R-CNN的學習資料
在Faster R-CNN的區域生成網路RPN中為了能夠以目標真實框(Ground Truth box)為監督訊號去訓練RPN網路依據anchor預測proposal的位置,作者並不是直接回歸proposal的(x,y,w,h),而是採用了以下形式的引數化座標偏移向量
,其具體計算公式如下:
其中(x,y,w,h)代表預測的proposal的座標引數,
代表anchor的座標引數,
代表真實框的座標引數。
之所以這麼做個人覺得有兩點原因:
-
這裡是要依據anchor去預測proposal的位置,而anchor並非真實框,所以沒辦法直接對座標引數進行迴歸,而是轉而利用proposal與anchor的偏差(offset,t向量)去迴歸anchor與真實框的偏差(t*向量)。這就是上面公式中為什麼出現 和 的原因。
-
關於上面公式的原理可以詳細看下一文讀懂Faster RCNN-知乎中bounding box regression原理部分以及邊框迴歸詳解這篇部落格。假定可以對anchor進行修正使其儘可能接近真實框,則只要對anchor進行平移和縮放即可。
設 為anchor的中心點座標和寬、高, 為對anchor修正後接近真實框的相應位置引數,則- 平移變換可以用下式表示
上面乘以anchor的寬、高是為了保證學習到的變換引數具有尺度不變性,因為這些變換引數學習完成後是固定的,而要預測的目標框卻有大有小,乘以anchor的寬、高後就能實現對目標尺寸的自適應 - 縮放變換可以用下式表示
上面取了指數是為了保證縮放倍數是大於0的
實際上就是相應的平移和縮放參數 ,也是RPN網路迴歸部分要學習的目標。
- 平移變換可以用下式表示
關於Faster R-CNN的學習資料,除了上面連結中的從原理上詳細解釋Faster R-CNN的那一篇外,還有就是從程式碼實現的角度講解Faster R-CNN的從程式設計實現角度學習Faster R-CNN(附極簡實現),希望對想弄清楚Faster R-CNN原理的朋友有所幫助。