當前位置:
首頁 > 新聞 > Anchor Boxes——目標檢測質量的關鍵

Anchor Boxes——目標檢測質量的關鍵

雷鋒網 AI 科技評論按:隨著計算機視覺技術逐年火熱,利用計算機圖像處理技術對目標進行實時跟蹤的研究越來越熱門。那麼如何提高目標檢測的質量?Anders Christiansen 認為,正確地調整 Anchor Boxes 可以大大提高模型檢測某些未知大小和形狀的對象的能力。下面是他的觀點, 雷鋒網 AI 科技評論編譯整理。

在學慣用於目標檢測的卷積神經網路時,Anchor Boxes 是最難掌握的概念之一。它還是你在提高數據集的性能的時候,能夠調優的最重要的參數之一。事實上,如果 Anchor Boxes 沒有正確地調整,你的神經網路將永遠不會知道某些小的、大的或不規則對象的存在,並且永遠不會有機會檢測它們。幸運的是,你可以採取一些簡單的步驟來確保你不會掉進這個陷阱。

當你使用像 YOLO 或 SDD 這樣的神經網路來檢測一幅圖像中的多個對象時,這個網路實際上正在進行數千個檢測,並且只顯示出它確定為一個對象的那些檢測結果。多個檢測以以下格式輸出:

預測 1:(x,y,高度,寬度),類

預測~(80000):(x,y,高度,寬度),類

其中,(X,Y,高度,寬度) 被稱為「bounding box」。該框和對象類由人類注釋人員手動標記。

在一個極其簡化的示例中,假設我們有一個模型,該模型具有兩個預測並接收以下圖像:

Anchor Boxes——目標檢測質量的關鍵

打開今日頭條,查看更多圖片

我們需要告訴我們的網路,它的每一個預測是否正確,以便它能夠學習。但是我們應該告訴神經網路它的預測類是什麼呢?預測類應該是:

預測 1:梨

預測 2:蘋果

或者是:

預測 1:蘋果

預測 2:梨

如果網路預測為:

我們需要我們網路的兩個預測器能夠分辨出梨和蘋果,這是它們的工作。要做到這一點,有幾個工具。預測器可以專門用於特定大小的對象、具有一定縱橫比(高和寬)的對象,或者圖像上不同部分的對象。大多數網路使用所有三個標準。在我們的梨/蘋果圖像的示例中,我們可以使用 Prediction 1 表示左側的對象,使用 Prediction 2 表示右側的對象。然後我們就可以回答網路應該預測什麼:

預測 1:梨

預測 2:蘋果

目前最先進的物體檢測系統如下:

  1. 為每個預測器創建數千個「bounding box」或「prior boxes」,它們表示它專門用於預測對象的理想位置、形狀和大小。

  2. 對於每個 bounding boxes,計算哪個對象的 bounding boxes 具有最高的重疊除以非重疊。這被稱為交叉或聯合。

  3. 如果最高 IOU 大於 50%,則告訴 anchor box 它應該檢測出最高 IOU 的對象。

  4. 否則,如果 IOU 大於 40%,則告訴神經網路,真正的檢測是模糊的,不要從該示例中學習。

  5. 如果最高 IOU 小於 40%,那麼 anchor box 應該預測為沒有對象。

這個方法在實踐中表現得很好,並且數千個預測器在判斷它們的對象類型是否出現在圖像中這方面做得非常好。看一下 RetinaNet 的開源實現,它是一個最先進的對象檢測器,我們可以可視化 anchor box。有太多對象時不能同時可視化,但是這裡只有 1% 個:

Anchor Boxes——目標檢測質量的關鍵

使用默認 anchor box 配置可以創建過於專用的預測器,並且圖像中出現的對象可能無法使用任何 anchor box 獲得 50% 的 IOU。在這種情況下,神經網路將永遠不會知道這些對象的存在,也永遠不會學習預測它們。我們可以調整我們的 anchor box 使它變得小得多,比如這 1% 個樣本:

Anchor Boxes——目標檢測質量的關鍵

在視網膜網配置中,最小錨盒大小為 32×32。這意味著許多比這個小的物體都不會被檢測到。這裡是來自 WiderFace 數據集的一個示例,我們在其中將邊界框匹配到它們各自的錨定框,但有些則陷入了裂縫中。數據集的網址為:

http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/

Anchor Boxes——目標檢測質量的關鍵

在這種情況下,只有四個地面真值邊界框與任何 anchor boxs 重疊。神經網路永遠也學不會預測其他人臉。我們可以通過更改默認的 anchor box 配置來修復這個問題。

因為我們有非常小的面部,其預測依賴於其周圍的像素(如果存在手臂和腿,則更有可能是面部),所以我們減小了最小的 anchor box 大小,同時保持了用於預測 32x32 對象的相同接收欄位。使用我們的新配置,所有的面與至少一個 anchor box 排列,我們的神經網路可以學習如何檢測它們!

Anchor Boxes——目標檢測質量的關鍵

作為一般規則,在開始訓練模型之前,您應該問自己關於數據集的下列問題:

  1. 我想檢測的最小尺寸的 box 是什麼?

  2. 我想要檢測的最大尺寸的 box 是什麼?

  3. box 和檢測區域之間的比例應該是多少?即,每個 bounding box 在預測時有多少依賴於它周圍的數據?

  4. 這個 box 能做什麼形狀?例如,汽車檢測器可能具有短而寬的 anchor boxes,只要汽車或照相機沒有機會側轉。

您可以通過實際計算數據集中最極端的大小和長寬比來粗略估計這些參數。另一個對象檢測器 YOLO v3 使用 K-means 來估計理想的 bounding boxes。另一個選擇是學習 anchor box 配置。然而,重要的是要記住,您不僅希望優化對象到 anchor boxs 的映射。您還必須考慮需要多少來自周圍像素的信息才能正確檢測對象。例如,檢測一個小小的臉部,你需要依賴於對整個人體的檢測。

一旦你仔細考慮過這些問題,你就可以開始設計你的 anchor boxs 了。一定要通過編碼你的實際參考標準來測試它們,然後解碼,它們太多了。你應該能夠恢復 bounding boxes。

此外,請記住,如果 bounding boxes 和 anchor boxs 的中心不同,這將降低 IOU。即使你有小 anchor boxs,如果 anchor boxs 之間的距離很大,你可能會錯過一些符合標準的檢測對象。改善這一點的一種方法是將 IOU 閾值從 50% 降低到 40%。

要了解為什麼 anchor boxs 如此重要,請參閱 David Pacassi Torrico 的文章,比較當前人臉檢測的 API 實現方法和效果。你可以看到,除了檢測小臉部,這些演算法效果不錯。下面是一些照片,其中沒有檢測到一張臉。David Pacassi Torrico 的文章地址為:

https://www.liip.ch/en/blog/face-detection-an-overview-and-comparison-of-different-solutions-part1

Anchor Boxes——目標檢測質量的關鍵

Anchor Boxes——目標檢測質量的關鍵

Anchor Boxes——目標檢測質量的關鍵

這是我們新模型對相同圖片的檢測效果:

Anchor Boxes——目標檢測質量的關鍵

Anchor Boxes——目標檢測質量的關鍵

Anchor Boxes——目標檢測質量的關鍵

更多關於 anchor boxs 的知識,您可以參考 Andrew Ng 的 Deep Learning Specialization。

雷鋒網

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

牙膏時代結束!Intel發布全新Sunny Cove架構,最快2019年下半年面世
2018年星際爭霸AI挑戰賽中科院自動化所奪得季軍,三星與FB獲冠亞軍

TAG:雷鋒網 |