1. 程式人生 > >關於RPN中proposal的座標迴歸引數的一點理解及Faster R-CNN的學習資料

關於RPN中proposal的座標迴歸引數的一點理解及Faster R-CNN的學習資料

在Faster R-CNN的區域生成網路RPN中為了能夠以目標真實框(Ground Truth box)為監督訊號去訓練RPN網路依據anchor預測proposal的位置,作者並不是直接回歸proposal的(x,y,w,h),而是採用了以下形式的引數化座標偏移向量 ( t x ,

t y , t w , t h
) (t_x,t_y,t_w,t_h) ,其具體計算公式如下:
在這裡插入圖片描述
其中(x,y,w,h)代表預測的proposal的座標引數, ( x a ,
y a , w a , h a ) (x_a,y_a,w_a,h_a)
代表anchor的座標引數, ( x , y , w , h ) (x^*, y^*,w^*,h^*) 代表真實框的座標引數。
之所以這麼做個人覺得有兩點原因:

  1. 這裡是要依據anchor去預測proposal的位置,而anchor並非真實框,所以沒辦法直接對座標引數進行迴歸,而是轉而利用proposal與anchor的偏差(offset,t向量)去迴歸anchor與真實框的偏差(t*向量)。這就是上面公式中為什麼出現 x x a x-x_a x x a x^*-x_a 的原因。

  2. 關於上面公式的原理可以詳細看下一文讀懂Faster RCNN-知乎中bounding box regression原理部分以及邊框迴歸詳解這篇部落格。假定可以對anchor進行修正使其儘可能接近真實框,則只要對anchor進行平移和縮放即可。
    A x , A y , A w , A h A_x,A_y,A_w,A_h 為anchor的中心點座標和寬、高, G x , G y , G w , G h G'_x,G'_y,G'_w,G'_h 為對anchor修正後接近真實框的相應位置引數,則

    • 平移變換可以用下式表示
      在這裡插入圖片描述
      上面乘以anchor的寬、高是為了保證學習到的變換引數具有尺度不變性,因為這些變換引數學習完成後是固定的,而要預測的目標框卻有大有小,乘以anchor的寬、高後就能實現對目標尺寸的自適應
    • 縮放變換可以用下式表示
      在這裡插入圖片描述
      上面取了指數是為了保證縮放倍數是大於0的

    ( t x , t y , t w , t h ) (t_x,t_y,t_w,t_h) 實際上就是相應的平移和縮放參數 d x ( A ) , d y ( A ) , d w ( A ) , d h ( A ) d_x(A),d_y(A),d_w(A),d_h(A) ,也是RPN網路迴歸部分要學習的目標。

關於Faster R-CNN的學習資料,除了上面連結中的從原理上詳細解釋Faster R-CNN的那一篇外,還有就是從程式碼實現的角度講解Faster R-CNN的從程式設計實現角度學習Faster R-CNN(附極簡實現),希望對想弄清楚Faster R-CNN原理的朋友有所幫助。