目標檢測:Anchor-Free時代

2020-12-13 AI 科技評論

自從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年初就發表,那麼最近幾年目標檢測的發展會不會是另外一番景象呢~

兩點貢獻:

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)分類和定位統一得到。

8

總結

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

ps:關於這一點我稍加一點補充,目標檢測的gt是一個矩形框,然而用這個矩形框信息來檢測目標顯然是不合理的,因為矩形框內只有一小部分是目標,而剩下的是背景,這可能會導致檢測器的精度下降。

而最近的一些anchor-free模型其實是改變了gt的定義,比如cornernet定義為角點,extremenet定義為極值點和中心點,FSAF、FoveaBox定義為矩形框的中間區域,FCOS雖然是矩形框,但是經過center-ness抑制掉低質量的框,其實也是一種變相的將gt定義為矩形框中心區域。

gt重新定義之後,需要檢測的目標語義變得更加明確了,有利於分類和回歸。

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

個人所見,歡迎探討~

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

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

引用

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

[贈書福利]

AI科技評論本次聯合【機械工業出版社華章公司】為大家帶來15本「新版蜥蜴書」正版新書。

在今天(10月24日)頭條文章留言區留言,談一談你對本書內容相關的看法和期待,或你對機器學習/深度學習的理解。

AI 科技評論將會在留言區選出 15名讀者,每人送出《機器學習實戰:基於Scikit-Learn、Keras和TensorFlow(原書第2版)》一本(在其他公號已獲贈本書者重複參加無效)。

活動規則:

1. 在今天(10月24日)頭條文章留言區留言,留言點讚最高的前 15 位讀者將獲得贈書。獲得贈書的讀者請聯繫 AI 科技評論客服(aitechreview)。

2. 留言內容會有篩選,例如「選我上去」等內容將不會被篩選,亦不會中獎。

3. 本活動時間為2020年10月24日 - 2020年10月31日(23:00),活動推送內僅允許中獎一次。

NeurIPS 2020論文接收列表已出,歡迎大家投稿讓更多的人了解你們的工作~

相關焦點

  • PPDet:減少Anchor-free目標檢測中的標籤噪聲,小目標檢測提升明顯
    本文首發於AI算法修煉營作者 | SFXiang編輯 | 青暮本文介紹一篇收錄於BMVC2020的論文,這篇論文的主要的思想是減少anchor-free目標檢測中的label噪聲,在COCO小目標檢測上表現SOTA!性能優於FreeAnchor、CenterNet和FCOS等網絡。
  • FCOS:全卷積一階段Anchor Free物體檢測器,多種視覺任務的統一框架
    介紹基於anchor的物體檢測器的缺點,這個基本上每篇anchor free的文章都會列一遍。檢測性能依賴於anchor的尺寸,比例,數量,這些都需要非常精細的設計。我們得到了STOA的結果,而且FCOS也可以用到二階段的檢測方案中,而且效果比基於anchor的方案更好。我們覺得可以重新考慮下anchor在物體檢測中的必要性。可以非常方便的將檢測框架擴展到分割,關鍵點檢測等其他視覺任務上。
  • 完全理解PolarMask-圖像實例分割-anchor free新思路
    實現了在沒有錨點且不被建議的情形下,實現了目標檢測算法。並且提出了Center-Ness的思想,性能表現與目前許多比較主流的基於錨框的目標檢測算法相同,甚至還有提高。為什麼不使用錨框成為熱點研究方向錨框首先在Fast R-CNN中提出,後續在許多YOLO等知名目標檢測模型中應用。但錨框有缺點。
  • Guided Anchoring: 物體檢測器也能自己學 Anchor
    這篇 paper 的方法用在了 COCO Challenge 2018 檢測任務的冠軍方法中,在極高的 baseline 上漲了 1 個點。最近公開在 ArXiv 上,歡迎大家提出意見。常見的生成 anchor 的方式是滑窗(sliding window),也就是首先定義 k 個特定尺度(scale)和長寬比(aspect ratio)的 anchor,然後在全圖上以一定的步長滑動。這種方式在 Faster R-CNN,SSD,RetinaNet 等經典檢測方法中被廣泛使用。
  • 目標檢測篇 - YOLO V1論文筆記(Anchor-free)
    ,之前的目標檢測是通過重新使用分類器來完成檢測。相反,我們將目標檢測抽象為一個回歸問題,描述為以空間分隔的邊界框和相關的類別概率。一個簡單的神經網絡通過對完整圖片的進行檢測,直接預測邊界框和分類類別。因為整個檢測基於是單一網絡,所以可以實現端到端優化。我們整體的框架運行速度非常快。我們的基礎模型YOLO實時處理圖片速度達到45幀/秒。
  • 針對不同場景設計目標檢測算法
    在項目中經常會遇到各種各樣的需求,我曾經遇到過的一些比較少見的需求,火焰檢測,閃電檢測。我記得18年的時候,拿到一個需求是雷電檢測,就是下雨天,檢測視頻中的閃電,當時拿SSD直接幹,啥也幹不出來,一條閃電又細又長。後來才意識到針對不同的任務,要去根據應用場景去設計算法。anchor-based的目標檢測當然就是針對場景設計anchor了。
  • MatrixNets:可替代FPN,用於目標檢測的可感知比例和長寬比的網絡結構
    首先,作者將xNets應用於基於錨(anchor)的目標檢測,用於預測目標中心並回歸左上角和右下角。其次,作者根據預測的左上角和右下角,將MatrixNets用於基於角點(corner)的目標檢測。每個角點都會預測目標的中心位置。作者還通過將嵌入層替換為中心回歸來增強基於角點的檢測。
  • 港大同濟伯克利推出目標檢測新範式:Sparse R-CNN
    機器之心轉載作者:孫培澤全新的目標檢測範式Sparse R-CNN。本文主要介紹一下我們最近的一篇工作:沿著目標檢測領域中 Dense 和 Dense-to-Sparse 的框架,Sparse R-CNN 建立了一種徹底的 Sparse 框架, 脫離 anchor box,reference point,Region Proposal Network(RPN) 等概念,無需 Non-Maximum Suppression(NMS
  • 目標檢測新範式:Sparse R-CNN,港大同濟伯克利聯合工作
    作者 | 孫培澤 編輯 | 陳大鑫 本文主要介紹一篇目標檢測領域的一篇工作,在這項工作中,作者沿著目標檢測領域中
  • 基礎目標檢測算法介紹:CNN、RCNN、Fast RCNN和Faster RCNN
    現在,目標檢測算法或許能做到。目標檢測的用途遍布多個行業,從安防監控,到智慧城市中的實時交通監測。簡單來說,這些技術背後都是強大的深度學習算法。在這篇文章中,我們會進一步地了解這些用在目標檢測中的算法,首先要從RCNN家族開始,例如RCNN、Fast RCNN和Faster RCNN。1.
  • 基於機器視覺的典型多目標追蹤算法應用實踐
    比起之前兩步(先檢測後Re-ID)的追蹤算法,FairMot完成檢測與Re-ID共享網絡參數,減少算法推理時間,速度大幅度提升。b. 比起之前單步的追蹤算法JDE[12],存在的一些不足,如:一個物體可能被多個anchor負責並進行檢測,或實際物體的中心可能與負責對該物體進行檢測的anchor中心有偏差,都會導致id頻繁變換。
  • 滴普技術薈:基於機器視覺的典型多目標追蹤算法應用實踐
    比起之前兩步(先檢測後re-id)的追蹤算法,fairmot完成檢測與re-id共享網絡參數,減少算法推理時間,速度大幅度提升。b. 比起之前單步的追蹤算法JDE,存在的一些不足,如:一個物體可能被多個anchor負責並進行檢測,或實際物體的中心可能與負責對該物體進行檢測的anchor中心有偏差,都會導致id頻繁變換。
  • 最強目標檢測算法YOLOv4論文解讀
    自動對抗訓練(SAT)MISH激活鑲嵌數據增強CmBNDROPBOLD正則化CIOU損失目標檢測算法比較通過上圖可以看出,在MSCOCO數據集上,YOLO v4和其它比較先進的目標檢測算法比較,從速度和精度綜合來看,明顯優於其它算法。
  • 深度學習在人臉檢測中的應用|CSDN 博文精選
    作者 | 梁志成、劉鵬、陳方傑責編 | 唐小引本文精選自 CSDN 博客,已獲作者原創授權在目標檢測領域,可以劃分為人臉檢測與通用目標檢測,往往人臉這方面會有專門的算法(包括人臉檢測、人臉識別、人臉其他屬性的識別等),
  • NLP攜手Transformer跨界計算機視覺,DETR:目標檢測新範式
    其實,它還可以用來進行目標檢測。Facebook AI 的研究者首先推出了 Transformer 視覺版本——Detection Transformer(DETR),填補了 Transformer 用於目標檢測的空白,對標超越 Faster RCNN。基於 DETR,研究者們提出了多種優化版本進行目標檢測任務,效果還不錯。
  • 大牛講堂 | 山世光博士:自動駕駛系統中的目標檢測技術
    當然這裡面還是存在一些問題,就是檢測速度,我知道很多工業界的朋友都在想辦法對基於深度學習的檢測方法進行加速。 這個方法使得檢測時不需要對每一個候選窗口去計算卷積,但是還是不夠快,檢測一張圖像還是需要幾秒的時間。
  • 獲得Open Images冠軍,商湯TSD目標檢測算法入選CVPR 2020
    隨著深度學習的不斷發展,目標檢測精度的提升愈加困難,一般而言能提升1~2%的mAP(平均準確率)便算是很大的突破了。但是,商湯研究團隊發表的TSD算法提升了難以置信的3~5% mAP!而且是在行業難度最高的數據集Open Images和COCO。
  • 經典目標檢測方法Faster R-CNN和Mask R-CNN|基於PaddlePaddle深度...
    機器視覺領域的核心問題之一就是目標檢測 (object detection),它的任務是找出圖像當中所有感興趣的目標 (物體),確定其位置和大小。作為經典的目標檢測框架 Faster R-CNN,雖然是 2015 年的論文,但是它至今仍然是許多目標檢測算法的基礎,這在飛速發展的深度學習領域十分難得。
  • 融合視頻目標檢測與單目標、多目標跟蹤,港中文開源視頻感知平臺
    該框架基於 PyTorch 寫成,支持單目標跟蹤、多目標跟蹤與視頻目標檢測,目前已開源。GitHub 地址:https://github.com/open-mmlab/mmtrackingMMTracking 效果展示。據介紹,MMTracking 具備以下主要特性:1.