目標檢測:Anchor-Free時代

2021-01-20 計算機視覺life

點擊上方「計算機視覺life」,選擇「星標」

快速獲得最新乾貨

本文轉自Smarter

自從2018年8月CornerNet開始,Anchor-Free的目標檢測模型層出不窮,最近達到了井噴的狀態,宣告著目標檢測邁入了Anchor-Free時代。

其實Anchor-Free並不是一個新概念了,大火的YOLO算是目標檢測領域最早的Anchor-Free模型,而最近的Anchor-Free模型如FASF、FCOS、FoveaBox都能看到DenseBox的影子。

下面主要講一下有代表性的Anchor-Free模型(包括DenseBox、YOLO、CornerNet、ExtremeNet、FSAF、FCOS、FoveaBox),分成3個部分來介紹(早期探索、基於關鍵點、密集預測),具體細節就不展開了~

早期探索1.DenseBox

最早知道這篇文章,是在去年剛接觸目標檢測的時候,看了一篇地平線對DenseBox作者的採訪,當時因為剛接觸感觸不深,但是從當前的時間節點回頭看,DenseBox的想法是多麼的超前啊。採訪中說道,當年DenseBox其實早在2015年初就已經開發出來了,這比同期的Faster-RCNN系列提前數月,但是論文直到9月才在arxiv上發布。如果DenseBox能在2015年初就發表,那麼最近幾年目標檢測的發展會不會是另外一番景象呢~~

地平線HorizonRobotics:黃李超:讓算法成為一種生活方式 | 地平線算法工程師特稿zhuanlan.zhihu.com

兩點貢獻:

1.證明單個FCN可以檢測出遮擋嚴重、不同尺度的目標。

2.通過多任務引入landmark localization,能進一步提升性能。

如圖1所示,單個FCN同時產生多個預測bbox和置信分數的輸出。測試時,整個系統將圖片作為輸入,輸出5個通道的feature map。每個pixel的輸出feature map得到5維的向量,包括一個置信分數和bbox邊界到該pixel距離的4個值。最後輸出feature map的每個pixel轉化為帶分數的bbox,然後經過NMS後處理。

Ground Truth Generation

第一個通道ground truth map的正標籤區域由半徑為r的圓填充,圓的中心點位於bbox的中點。而剩下的4個通道由bbox的2個角點決定。

Refine with Landmark Localization

在FCN結構中添加少量層能夠實現landmark localization,然後通過融合landmark heatmaps和score map可以進一步提升檢測結果。

2.YOLO

YOLO將目標檢測作為一個空間分離的邊界框和相關的類概率的回歸問題。可以直接從整張圖片預測出邊界框和分類分數。

三個優點:

1.速度快

2.通過整幅圖進行推理得到預測結果

3.能學到目標的一般特徵

Unified Detection

YOLO將輸入圖片分成SXS個網格,如果某個目標的中心點落到其中一個格點,那麼該格點就負責該目標的檢測。每個格點預測出B個bbox和每個bbox的置信分數。

定義置信度為:

每個bbox由5個預測值組成:x,y,w,h 和 置信度。每個格點也預測C個類概率

測試的時候,將類概率和置信分數相乘,得到類置信分數

舉個例子,在Pascal VOC數據集上評估YOLO,使用S=7,B=2,VOC有20類,所以C=20,那麼最終的預測結果是7x7x30的向量。

DenseBox和YOLO的區別:

1.DenseBox應用於人臉檢測,相當於只有兩類,而YOLO是通用檢測,通常大於兩類。

2.DenseBox是密集預測,對每個pixel進行預測,而YOLO先將圖片進行網格化,對每個grid cell進行預測。

3.DenseBox的gt通過bbox中心圓形區域確定的,而YOLO的gt由bbox中心點落入的grid cell確定的。

基於關鍵點3.CornerNet

兩點貢獻:

1.通過檢測bbox的一對角點來檢測出目標。

2.提出corner pooling,來更好的定位bbox的角點。

Detecting Corners

首先預測出兩組heatmaps,一組為top-left角點,另一組為bottom-right角點。每組heatmaps有C個通道,表示C個類別,尺寸為HxW。每個通道是一個binary mask,表示一個類的角點位置。

對於每個角點來說,只有一個gt正例位置,其他都為負例位置。訓練時,以正例位置為圓心,設置半徑為r的範圍內,減少負例位置的懲罰(採用二維高斯的形式),如上圖所示。

Grouping Corners

受到多人姿態估計論文的啟發,基於角點embedding之間的距離來對角點進行分組。

Corner Pooling

在每個pixel位置,最大池化第一個feature map右方的所有特徵向量,最大池第二個feature map下方的所有特徵向量,然後將兩個池化結果相加。

4.ExtremeNet

兩個貢獻:

1.將關鍵點定義為極值點。

2.根據幾何結構對關鍵點進行分組。

作者使用了最佳的關鍵點估計框架,通過對每個目標類預測4個多峰值的heatmaps來尋找極值點。另外,作者使用每個類center heatmap來預測目標中心。僅通過基於幾何的方法來對極值點分組,如果4個極值點的幾何中點在center map上對應的分數高於閾值,則這4個極值點分為一組。

offset的預測是類別無關的,而極值點的預測是類別相關的。center map沒有offset預測。網絡的輸出是5xC heatmaps和4x2offset maps,C是類別數。

Center Grouping

分組算法的輸入是每個類的5個heatmaps,一個center heatmap和4個extreme heatmaps,通過檢測所有的峰值來提取出5個heatmaps的關鍵點。給出4個極值點,計算幾何中心,如果幾何中心在center map上對應高響應,那麼這4個極值點為有效檢測。作者使用暴力枚舉的方式來得到所有有效的4個關鍵點。

CornerNet和ExtremeNet的區別:

1.CornerNet通過預測角點來檢測目標的,而ExtremeNet通過預測極值點和中心點來檢測目標的。

2.CornerNet通過角點embedding之間的距離來判斷是否為同一組關鍵點,而ExtremeNet通過暴力枚舉極值點、經過中心點判斷4個極值點是否為一組。

密集預測5.FSAF

Motivation

讓每個實例選擇最好的特徵層來優化網絡,因此不需要anchor來限制特徵的選擇。

一個anchor-free的分支在每個特徵金字塔層構建,獨立於anchor-based的分支。和anchor-based分支相似,anchor-free分支由分類子網絡和回歸子網絡。一個實例能夠被安排到任意層的anchor-free分支。訓練期間,基於實例的信息而不是實例box的尺寸來動態地為每個實例選擇最合適的特徵層。選擇的特徵層學會檢測安排的實例。推理階段,FSAF模塊和anchor-based分支獨立或者聯合運行。

Feature Selective Anchor-Free Module

在RetinaNet的基礎上,FSAF模塊引入了2個額外的卷積層,這兩個卷積層各自負責anchor-free分支的分類和回歸預測。具體的,在分類子網絡中,feature map後面跟著K個3x3的卷積層和sigmoid,在回歸子網絡中,feature map後面跟著4個3x3的卷積層和ReLU。

Ground-truth

白色為有效區域,灰色為忽略區域,黑色為負樣本區域。

Online Feature Selection

實例輸入到特徵金字塔的所有層,然後求得所有anchor-free分支focal loss和IoU loss的和,選擇loss和最小的特徵層來學習實例。訓練時,特徵根據安排的實例進行更新。推理時,不需要進行特徵更新,因為最合適的特徵金字塔層自然地輸出高置信分數。

6.FCOS

四個優點:

1.將檢測和其他使用FCN的任務統一起來,容易重用這些任務的思想。

2.proposal free和anchor free,減少了超參的設計。

3.不使用trick,達到了單階段檢測的最佳性能。

4.經過小的修改,可以立即拓展到其他視覺任務上。

和語義分割相同,檢測器直接將位置作為訓練樣本而不是anchor。具體的,如果某個位置落入了任何gt中,那麼該位置就被認為是正樣本,並且類別為該gt的類別。基於anchor的檢測器,根據不同尺寸安排anchor到不同的特徵層,而FCOS直接限制邊界框回歸的範圍(即每個feature map負責一定尺度的回歸框)。

Center-ness

為了剔除遠離目標中心的低質量預測bbox,作者提出了添加center-ness分支,和分類分支並行。

開根號使center-ness衰退緩慢。center-ness範圍為0-1之間,通過BCE訓練。測試時,最終分數由center-ness預測結果和分類分數乘積得到。

7.FoveaBox

Motivation

人類眼睛的中央凹:視野(物體)的中心具有最高的視覺敏銳度。FoveaBox聯合預測對象中心區域可能存在的位置以及每個有效位置的邊界框。由於特徵金字塔的特徵表示,不同尺度的目標可以從多個特徵層中檢測到。

FoveaBox添加了2個子網絡,一個子網絡預測分類,另一個子網絡預測bbox。

Object Fovea

目標的中央凹如上圖所示。目標中央凹只編碼目標對象存在的概率。為了確定位置,模型要預測每個潛在實例的邊界框。

FSAF、FCOS、FoveaBox的異同點:

1.都利用FPN來進行多尺度目標檢測。

2.都將分類和回歸解耦成2個子網絡來處理。

3.都是通過密集預測進行分類和回歸的。

4.FSAF和FCOS的回歸預測的是到4個邊界的距離,而FoveaBox的回歸預測的是一個坐標轉換。

5.FSAF通過在線特徵選擇的方式,選擇更加合適的特徵來提升性能,FCOS通過center-ness分支剔除掉低質量bbox來提升性能,FoveaBox通過只預測目標中心區域來提升性能。

(DenseBox、YOLO)和(FSAF、FCOS、FoveaBox)的異同點:

1.都是通過密集預測進行分類和回歸的。

2.(FSAF、FCOS、FoveaBox)利用FPN進行多尺度目標檢測,而(DenseBox、YOLO)只有單尺度目標檢測。

3.(DenseBox、FSAF、FCOS、FoveaBox)將分類和回歸解耦成2個子網絡來得到,而(YOLO)分類和定位統一得到。

總結:

1.各種方法的關鍵在於gt如何定義

ps:關於這一點我稍加一點補充,目標檢測的gt是一個矩形框,然而用這個矩形框信息來檢測目標顯然是不合理的,因為矩形框內只有一小部分是目標,而剩下的是背景,這可能會導致檢測器的精度下降,而最近的一些anchor-free模型其實是改變了gt的定義,比如cornernet定義為角點,extremenet定義為極值點和中心點,FSAF、FoveaBox定義為矩形框的中間區域,FCOS雖然是矩形框,但是經過center-ness抑制掉低質量的框,其實也是一種變相的將gt定義為矩形框中心區域。gt重新定義之後,需要檢測的目標語義變得更加明確了,有利於分類和回歸。

所以,我認為設計合適的gt,是提升目標檢測速度和精度的關鍵!

個人所見,歡迎探討~

2.主要是基於關鍵點檢測的方法和密集預測的方法來做Anchor-Free

3.本質上是將基於anchor轉換成了基於point/region


Reference

1.DenseBox: Unifying Landmark Localization with End to End Object Detection

2.You Only Look Once: Unified, Real-Time Object Detection

3.CornerNet: Detecting Objects as Paired Keypoints

4.Bottom-up Object Detection by Grouping Extreme and Center Points

5.Feature Selective Anchor-Free Module for Single-Shot Object Detection

6.FCOS: Fully Convolutional One-Stage Object Detection

7.FoveaBox: Beyond Anchor-based Object Detector


專輯:計算機視覺方向簡介

專輯:視覺SLAM入門

專輯:最新SLAM/三維視覺論文/開源

專輯:三維視覺/SLAM公開課

專輯:深度相機原理及應用

專輯:手機雙攝頭技術解析與應用

專輯:相機標定

專輯:全景相機

交流群

歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫學影像、GAN算法競賽等微信群(以後會逐漸細分),請掃描下面微信號加群,備註:」暱稱+學校/公司+研究方向「,例如:」張三 + 上海交大 + 視覺SLAM「。請按照格式備註,否則不予通過。添加成功後會根據研究方向邀請進入相關微信群。請勿在群內發送廣告,否則會請出群,謝謝理解~

投稿、合作也歡迎聯繫:simiter@126.com

掃描關注視頻號,看最新技術落地及開源方案視頻秀 ↓


相關焦點

  • CVPR 2020 | 商湯提出 Anchor-free 目標檢測新網絡
    https://arxiv.org/pdf/2003.09119.pdf  代碼地址:https://github.com/KiveeDong/CentripetalNet  1  導讀  CVPR 2020上,商湯移動智能事業群-3DAR-身份認證與視頻感知團隊提出了基於向心偏移的anchor-free
  • Guided Anchoring: 物體檢測器也能自己學 Anchor
    常見的生成 anchor 的方式是滑窗(sliding window),也就是首先定義 k 個特定尺度(scale)和長寬比(aspect ratio)的 anchor,然後在全圖上以一定的步長滑動。這種方式在 Faster R-CNN,SSD,RetinaNet 等經典檢測方法中被廣泛使用。
  • 港中大-商湯聯合實驗室等提出:Guided Anchoring: 物體檢測器也能自己學 Anchor
    點擊上方「CVer」,選擇"星標"和「置頂」重磅乾貨,第一時間送達前戲最近目標檢測方向如果尺度和長寬比設置不合適,可能會導致 recall 不夠高,或者 anchor 過多影響分類性能和速度。一方面,大部分的 anchor 都分布在背景區域,對 proposal 或者檢測不會有任何正面作用;另一方面,預先定義好的 anchor 形狀不一定能滿足極端大小或者長寬比懸殊的物體。所以我們期待的是稀疏,形狀根據位置可變的 anchor。
  • 1.8M超輕量目標檢測模型NanoDet,比YOLO快,上線兩天Star量超200
    機器之心報導項目作者:RangiLyu如何把 anchor-free 模型移植到移動端或嵌入式設備?目前,深度學習目標檢測方法主要分為兩大類,分別是兩階段式和單階段式目標檢測算法。兩階段式目標檢測框架首先生成候選區域,然後將其分類成不同的目標類別,代表模型有 R-CNN、Fast R-CNN 等;單階段式目標檢測框架將目標檢測任務視為一個統一的端到端回歸問題,代表模型有 MultiBox、YOLO、SSD 等。這類框架通常結構更簡單,檢測速度也更快。
  • 輕鬆識別小目標的物體檢測算法揭秘
    在眾多模型使用場景中,小目標物體的檢測比較常見,一般的目標檢測算法往往效果不理想;因此,EasyDL團隊針對小目標物體的檢測進行了專項優化,並取得了令人矚目的效果提升。自AlexNet在2012年ImageNet比賽上展露頭角以來,計算機視覺各個方向和神經網絡的聯繫變得越發緊密,物體檢測也不例外。
  • 詳解目標檢測Faster R-CNN
    目標檢測的一般結構: 背景R-CNN - 是 Faster R-CNN 的啟發版本.不同於直接檢測 objects 的位置,這裡將問題轉化為兩部分:對每一個 anchor 而言,anchor 是否包含相關的 object?如何調整 anchor 以更好的擬合相關的 object?這裡可能不容易理解,後面會深入介紹。
  • 解讀目標檢測新範式:Segmentations is All You Need
    為了解決這一問題,程澤華等研究者提出使用弱監督分割多模態注釋,在沒有 NMS 的情況下實現了高度穩健的目標檢測性能。作者利用注釋質量較差的邊界框在困難環境中實現穩健的目標檢測性能,避免了與 anchor 框或 NMS 相關的所有超參數。他們提出的模型超越了之前基於 anchor 的一步和多步檢測器,而且簡單得多。該模型在準確性和召回率方面都達到了當前最佳水平。
  • 目標檢測和感受野的總結和想法
    Faster R-CNN, YOLOv3等都用到了Anchor, 怎麼設計Anchor每個目標檢測方法各不相同。這是感受野的一個性質,不過好在大多數現代的網絡設計是對齊的,對很多計算機視覺任務來說,都需要對其輸出特徵,包括目標檢測、語義分割、邊緣檢測、著色等。在網絡對齊時候,所有不同路徑都會導致感受野的中心是重合的,所以不同路徑必須保持相同的stride。這一點可以觀察Inception系列的網絡,兩條路的Stride是不可能不同的。
  • MatrixNets:可替代FPN,用於目標檢測的可感知比例和長寬比的網絡結構
    首先,作者將xNets應用於基於錨(anchor)的目標檢測,用於預測目標中心並回歸左上角和右下角。其次,作者根據預測的左上角和右下角,將MatrixNets用於基於角點(corner)的目標檢測。每個角點都會預測目標的中心位置。作者還通過將嵌入層替換為中心回歸來增強基於角點的檢測。
  • 做目標檢測,這6篇就夠了:CVPR 2020目標檢測論文盤點
    CVPR 2020 會議上,有哪些目標檢測論文值得關注?目標檢測是計算機視覺中的經典問題之一。憑藉大量可用數據、更快的 GPU 和更好的算法,現在我們可以輕鬆訓練計算機以高精度檢測出圖像中的多個對象。前不久結束的 CVPR 2020 會議在推動目標檢測領域發展方面做出了一些貢獻,本文就為大家推薦其中 6 篇有價值的目標檢測論文。
  • 基於機器視覺的典型多目標追蹤算法應用實踐
    比起之前兩步(先檢測後Re-ID)的追蹤算法,FairMot完成檢測與Re-ID共享網絡參數,減少算法推理時間,速度大幅度提升。b. 比起之前單步的追蹤算法JDE[12],存在的一些不足,如:一個物體可能被多個anchor負責並進行檢測,或實際物體的中心可能與負責對該物體進行檢測的anchor中心有偏差,都會導致id頻繁變換。
  • 滴普技術薈:基於機器視覺的典型多目標追蹤算法應用實踐
    比起之前兩步(先檢測後re-id)的追蹤算法,fairmot完成檢測與re-id共享網絡參數,減少算法推理時間,速度大幅度提升。b. 比起之前單步的追蹤算法JDE,存在的一些不足,如:一個物體可能被多個anchor負責並進行檢測,或實際物體的中心可能與負責對該物體進行檢測的anchor中心有偏差,都會導致id頻繁變換。
  • 從零開始碼一個皮卡丘檢測器-CNN目標檢測入門教程(上)
    本文先為大家介紹目前流行的目標檢測算法SSD (Single-Shot MultiBox Object Detection)和實驗過程中的數據集。訓練、測試過程及結果參見《從零開始碼一個皮卡丘檢測器-CNN目標檢測入門教程(下)》目標檢測通俗的來說是為了找到圖像或者視頻裡的所有目標物體。在下面這張圖中,兩狗一貓的位置,包括它們所屬的類(狗/貓),需要被正確的檢測到。
  • CVPR2020 | HAMBox 火腿框人臉檢測 真香
    連結:https://arxiv.org/abs/1912.09231本文總結了CVPR2020百度出品的人臉檢測論文HAMBox,該文章發現了一種有趣的現象,即負樣本anchor相比正樣本anchor而言,居然也有不錯的回歸能力
  • 丟棄Transformer,全卷積網絡也可以實現E2E檢測
    機器之心轉載作者:王劍鋒在近來研究人員熱衷於探索 Transformer 用於目標檢測的嘗試時,這篇論文提出了一種全新的觀點,即利用全卷積網絡也可以實現良好的端到端目標檢測效果。目標檢測是計算機視覺領域的一個基礎研究主題,它利用每張圖像的預定義類標籤來預測邊界框。
  • 「少即是多」的目標檢測算法Sparse R-CNN
    近幾年來,目標檢測算法發展迅速,許多新出現的目標檢測範式有著很強的相同之處,如Anchor-Free的方法中不依賴於Anchor的目標檢測範式:CenterNet兼有結構簡單和高的準確率;FCOS創新性目標檢測思路。
  • 全球首例,Adversarial T-shirt讓你在AI目標檢測系統中隱身
    論文連結:https://arxiv.org/pdf/1910.11099.pdf在人臉識別和目標檢測越來越普及的今天,如果說有一件衣服能讓你在 AI 檢測系統中「消失無形」,請不要感到驚訝。通過給 stop sign 上面貼上生成的對抗樣本,可以使得 stop sign 被目標檢測或分類系統識別成限速 80 的標誌!這也使得社會和媒體對神經網絡的安全性引發了很大的探討。然而,這些研究都還沒有觸及到柔性物體的對抗樣本生成。