目標檢測中的Anchor Box演算法
阿新 • • 發佈:2018-12-31
引入
無論是基於滑動視窗
,還是基於網格YOLO
的目標檢測演算法,都有可能存在同一個問題:有可能一個BOX中有多個目標,如下圖所示:
這樣的圖中,行人和車同時存在,並且他們的中心位置都位於同一個網格中。這種情況下,傳統檢測方法的輸出,就無法勝任了。怎麼解決這個問題呢?
Anchor Box演算法
對於這個例子,我們引入Anchor Box,如下圖所示,我們這裡只用兩個Anchor Box,說明同一個網格中最多可能存在兩類物體。Anchor Box的個數與每個網格中可能出現的最多物體數量相同,也就是Y值的標註需要標註的物體個數。實際專案中,會用更多的Anchor Box。如下圖:
圖中用了兩個Anchor Box,所以Y值的標註,就需要標註兩類物體(標註的成本是升高的)。Y值中:
- pc:網格中是否含有目標物件
- bx:目標物件中心點的x座標
- by:目標物件中心點的y座標
- bh:目標物件的高度
- bw:目標物件的寬度
- c1,c2,c3:目標物件的類別
可見,標註中,Y值中的每個引數,都是由0/1組成的。對於本文這個例子,Y值的輸出為:3x3x8x2。其中3x3是影象上的網格大小,8是每個物件的輸出,2說明用了兩個Anchor Box。
總結
Anchor Box的概念,是為了解決同一個網格中有多個目標物件的情況。現實情況中,你的網格劃分越細,比如將3x3的網格變為10x10,這種同一個網格中有多個目標物件的情況就越少。
參考
AndrewNG的deep learning