轉自:打開鏈接
Bounding-Box regression
最近一直看檢測有關的Paper, 從rcnn, fast rcnn, faster rcnn, yolo, r-fcn, ssd,到今年cvpr最新的yolo9000。這些paper中損失函數都包含了邊框回歸,除了rcnn詳細介紹了,其他的paper都是一筆帶過,或者直接引用rcnn就把損失函數寫出來了。前三條網上解釋比較多,后面的兩條我看了很多paper,才得出這些結論。
- 為什么要邊框回歸?
- 什么是邊框回歸?
- 邊框回歸怎么做的?
- 邊框回歸為什么寬高,坐標會設計這種形式?
- 為什么邊框回歸只能微調,在離Ground Truth近的時候才能生效?
為什么要邊框回歸?
這里引用王斌師兄的理解,如下圖所示:

對於上圖,綠色的框表示Ground Truth, 紅色的框為Selective Search提取的Region Proposal。那么即便紅色的框被分類器識別為飛機,但是由於紅色的框定位不准(IoU<0.5), 那么這張圖相當於沒有正確的檢測出飛機。 如果我們能對紅色的框進行微調, 使得經過微調后的窗口跟Ground Truth 更接近, 這樣豈不是定位會更准確。 確實,Bounding-box regression 就是用來微調這個窗口的。
邊框回歸是什么?
繼續借用師兄的理解:對於窗口一般使用四維向量(x,y,w,h) 來表示, 分別表示窗口的中心點坐標和寬高。 對於圖 2, 紅色的框 P 代表原始的Proposal, 綠色的框 G 代表目標的 Ground Truth, 我們的目標是尋找一種關系使得輸入原始的窗口 P 經過映射得到一個跟真實窗口 G 更接近的回歸窗口
。




對於IoU大於指定值這塊,我並不認同作者的說法。我個人理解,只保證Region Proposal和Ground Truth的寬高相差不多就能滿足回歸條件。x,y位置到沒有太多限制,這點我們從YOLOv2可以看出,原始的邊框回歸其實x,y的位置相對來說對很大的。這也是YOLOv2的改進地方。詳情請參考我的博客YOLOv2。
總結
里面很多都是參考師兄在caffe社區的回答,本來不想重復打字的,但是美觀的強迫症,讓我手動把latex公式巴拉巴拉敲完,當然也為了讓大家看起來順眼。后面還有一些公式那塊資料很少,是我在閱讀paper+個人總結,不對的地方還請大家留言多多指正。




