目標檢測:anchor box

目前,幾乎所有流行的通用目標檢測方法,如經典的兩步方法Faster-RCNN,一步方法SSD和YOLO等,都需要根據經驗設計不同尺度(可以看成是物體面積)和高寬比的anchor box(有的方法中叫做default box或prior box)。實際上,anchor box是一系列經過設計的、尺寸不同的物體邊框。一般情況下,如果我們需要在模型中某層特徵圖上檢測某個特定尺度的物體,可以先爲anchor box固定一個面積S,然後變換anchor box的寬、高比,如1:3,1:2,1:1,2:1,3:1(一般會增加一個1:1 的框),從而得到6個尺度的anchor box,最後使用經典的sliding window(滑窗·)的方法得到特徵圖上每個位置的anchor box。如果該層特徵圖的尺寸爲H×W,總共會產生H×W×6個anchor box(6個尺度)。

圖1.SSD中設計的anchor box。(a) 訓練集中物體真實邊框(藍色和紅色實線)。(b)考慮到接收域,面積較小的物體在較大的特徵圖中匹配到相應的anchor box(藍色虛線)。(c)較大的物體在較小的特徵圖中匹配到相應的anchor box(紅色虛線)。

在模型訓練時,對於訓練集中某類物體的某個樣例,選擇一個與其交叉面積(IoU)最大的anchor box作爲基準點,這個anchor box的面積和高寬比與待測物體的真實邊框最爲接近,然後將該物體的真實邊框向這個anchor box對齊,也就是計算物體真實邊框與這個anchor box邊框的偏移量和高寬比,作爲模型邊框迴歸分支的學習目標。因此模型對某個物體邊框的預測輸出是一個4元組Δ(cx,cy,w,h)。如圖1(c)所示,Δ(cx,cy) 對應預測目標邊框相對某個anchor box邊框的偏移量,Δ(w,h) 對應預測目標邊框的高和寬相對同一anchor box高和寬的比,從這個4元組的輸出很容易反推出物體在原圖中的邊框尺寸。

通過引入anchor box,一方面,模型學習到的是物體真實邊框與對應的anchor box的偏移量,而不是目標物體在圖像中的絕對座標,保證了檢測任務的平移不變性;另一方面,通過這種對齊,可以使模型對多尺度物體檢測的訓練變得容易,因爲物體邊框對相應anchor box的偏移量的值分佈於有限範圍內。

然而,anchor box也隨之帶來一些問題,比如模型的輸出變得非常稠密,因爲對應特徵圖中每個anchor box,都要輸出一個4元組的位置預測和對應這個位置的物體分類的預測分數(C類),這樣就會生成(C+4)×H×W×6個輸出。考慮在多個特徵圖上進行檢測,模型的輸出會進一步增加。另外,anchor box需要手動設計,涵蓋的尺度有限,一般通過對訓練集中目標物體邊框尺寸的真實值進行聚類得到,這樣會造成對一些形變較爲嚴重的物體檢測造成困難。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章