1. 程式人生 > >RCNN中的bounding box regression詳解

RCNN中的bounding box regression詳解

1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

總結下上面大神所陳述的內容:

1.關於 公式1~4是怎麼來的,從原paper來看,作者是引入了scale-invariant translation 分別對於x和y,即對於xy座標引入同一個scale,加上作者在他的另一篇論文Rich feature hierarchies for accurate object detection and semantic segmentation 中闡述的“ proposal region不能和ground truth相差太遠”(兩者iou>0.6)如果相差太遠是無法得到boundingbox regression的,所以在公式1~2中相當於將dx和dy regularize 在一定的數值範圍內,即dx = (Gx-Px)/Pw 這裡Gx是近似groundtruth 的 predicted 值。

同理對於dw和dh,作者引入log-space translation, 也是將(Gw,Pw)這對差距規劃入一個小的範圍內,即 dw = log(Gw/Pw)。所以在最終的loss function中就相當於平均分配了xy 和wh的loss比例,不會因為wh的loss過大忽略了xy的loss,反之亦然。

2. 訓練該regression 輸入為((G, P)一組訓練example) + (CNN pool5的feature 即 lossfunction中的 SITA(P), 為了得到 parameter w* 。 其中(G,P) pair用來求出 t* 。lossfunction 第一部分為資料loss 第二部分為正則化。

測試階段 輸入為CNN pool5提取出的feature SITA(P), 通過線性模型 w* 乘以 SITA(P)就得出 dx,dy,dw,dh,這四個值有了就有了新的 bounding box