Anchor-Free目標檢測算法


按時間排序的anchor free論文

為什么要anchor free?

1、anchor的數量 大小 和寬高比這些超參要調
2、dense anchor boxes create a huge imbalance between positive and negative anchor boxes during training. This imbalance causes the training to be inefficient and hence the performance to be suboptimal

CornerNet: Detecting Objects as Paired Keypoints

論文地址 https://arxiv.org/pdf/1808.01244.pdf

兩個角點預測分支和偏移量預測分支 :預測了兩個分支的HxWxC的熱圖,C是類別數 不含背景類。

whose center is at the positive location and whose σ is 1/3 of the radius

pcij 是類別c在(i,j)上的預測得分,ycij 是用高斯核增強后的gt

 

 原圖中(x,y)的位置映射到熱力圖上是(x/n,y/n),n是下采樣因子。

為什么要預測偏移量?因為卷積網絡輸出的heatmap大小和原圖大小不一致,映射會原圖會有精度的損失。

 

embedding分支:loss只用於GT角點位置

左上角的點與右下角的點如果屬於同一bounding box,則他們embedding的向量之間的距離應該要小

 

Corner Pooling

對於左上角的點,需要水平方向往右找到上邊界,垂直方向下找到右邊界

測試階段:

(1)、對heatmap使用maxpooling (相當於做了NMS)    

(2)、選擇top100的左上角點和top100右下角點,左上角右下角點根據embedding的L1距離來匹配成對,>0.5就不成對

(3)、左上角和右下角點的score取均值作為最終的框的置信度。原圖和翻轉圖送到網絡得到框在做soft-NMS

 

創新點/優點:

(1)對每個角點預測了一個embedding的特征

(2)提出了cornerpooling的操作:左上的角點分別從右往左 和從下往上求最大值的

 

 

缺點:處理時間久,效率低。COCO mAP 42.2% 1.147s每張圖。

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

卡耐基梅隆大學 https://arxiv.org/pdf/1903.00621.pdf

 

CornerNet-Lite: Efficient Keypoint Based Object Detection

cornernert作者改進 論文地址 https://arxiv.org/pdf/1904.08900.pdf  代碼開源:https://github.com/ princeton-vl/CornerNet-Lite

CornerNet-Saccade

1、Estimating Object Locations:

首先用下采樣的圖生成attention map和粗糙的邊界框。

對下采樣的圖像,saccade預測出3個attention map分別表示大中小目標,使用Hourglass中上采樣層的特征,The feature maps at finer scales are used for smaller objects and the ones at coarser scales are for larger objects. attention map通過 3x3 Conv + 1x1 Relu+  1x1Conv+Sigmoid得到

訓練階段:物體中心點設為正樣本,其余為負樣本,使用focalloss。 在測試階段:只處理score大於閾值的位置,score閾值設為0.3

2、檢測階段:

3個attention map可以為每個尺度的目標設置了一個放大尺度,小目標的長邊放大后24像素,中目標放大后64像素,大目標192像素。

The scale is determined such that the longer side of the bounding box after zoom-in is 24 for a small object, 64 for a medium object and 192 for a large object

充分利用GPU,將原始圖存放在GPU,直接在gpu上resize和裁剪操作減少cpu和gpu之間的切換。

第一階段得到的檢測框按score排序后選擇Top k,再在這Kmax個位置上進行檢測目標。

CornerNet-Squeeze

因為cornernet中backbone 是最耗時的, 借鑒了SqueezeNet and MobileNets的思想,

 

CornerNet-Squeeze-Saccade比CornerNet-Squeeze跑的慢還精度低,主要是因為saccade是依賴與精確的attention map,

gt attention 是將預測的attention map換成gt,可以看到明顯的上升。這 說明attention map的質量對檢測精度有影響。

創新點:

(1)整體流程很像二階的目標檢測,先得到一些框,從原圖上裁剪出目標區再根據目標大小進行放大送到檢測器。

(2)使用縮小的圖像送到網絡生成不同尺度的目標的ttention map

缺點:

(1)cornernet-squeeze也僅僅只是借用輕量化網絡的idea,個人感覺創新點:不大

   

CenterNet: Keypoint Triplets for Object Detection

論文地址 https://arxiv.org/pdf/1904.08189.pdf  代碼開源:https://github.com/ Duankaiwen/CenterNet

本文出發點:cornernet誤檢率很高,  原因之一可能是cornernet沒法看到目標框內

Center Region 中心點的回歸

目標小於150的中心區域使用n=3,大於150使用n=5

預測得到的框求出一個中心區域,如果有預測的中心的落在這個區域內,則保留這個預測框。,最終的框的score去三個點的平均score。

 

Center-pooling,cascade corner pooling

Center pooling 由於中心點不一定是有顯著的視覺特征(人的頭部是有顯著特征,而中心點是在身體上)

Cascade corner pooling:角點  通常實在物體外,缺乏目標外表的特征,corner pooling可以看做是為了找到最大邊界

這兩種pooling 都可以用cornerpooling組合實現

 

訓練階段:輸入圖像511x511,Adam,batch size=48。相比cornernet,增加了中心點的預測和中心點偏移的預測,訓練loss如下:

測試階段:Top70的中心點,Top70的左上角點和Top70的右下角點,最后根據檢測結果的score選擇top100

 

 

 創新點:
(1)提出了新的三元組檢測網絡:左上角點+中心點+右下角點

(2)改進了corner pooling  

(3)由於單階段去除了RoI的提取,所以單階段缺乏能夠關注目標內部的信息。

An intuitive explanation of our contribution lies in that we equip a one-stage detector with the ability of two-stage approaches, with an efficient discriminator being added.

缺點/改進點:
(1)backbone 可以像cornernet-lite改進,

(2)還是一樣和cornernet有關鍵點組合,耗時

Objects as Points

伯克利大學 論文地址: https://arxiv.org/pdf/1904.07850.pdf   代碼開源 https://github. com/xingyizhou/CenterNet

原文提到a combinatorial grouping stage after keypoint detection, which significantly slows down each algorithm.

cornernet 和extremenet都是要在關鍵點檢測完之后,對關鍵點進行匹配組合,大大拉低算法運行時間。

本文沒有網絡結構圖=。= 說明

(1)回歸中心點,回歸寬和高,

(2)為了解決卷積網絡里stride,額外預測了一個局部偏移量

(3)從點映射會邊界框,無需NMS等后處理

 

 

    

創新點/優點:

(1)能夠達到實時;在COCO上28.1% AP at 142 FPS, 37.4% AP at 52 FPS, and 45.1% AP 多尺度測試 1.4 FPS。

(2)不像CornerNet,無須關鍵點組合和復雜的后處理。

(3)可擴展性強:3D目標檢測,人體姿態估計等。

缺點:精度不夠高

 

 

FCOS: Fully Convolutional One-Stage Object Detection

阿德萊德大學 論文地址: https://arxiv.org/pdf/1904.01355.pdf

基於anchor的缺點:(1)anchor的屬性這些超參調 (2)這種固定好的anchor影響泛化性,(3)大量的anchor被標記為負樣本,訓練過程中正負不平衡。

一般anchor free的算法都不適合通用的目標檢測,因為難以處理重疊框和低召回率的問題。

unsuitable for generic object detection due to difficulty in handling overlapping bounding boxes and the recall being relatively low

(1)基於像素點的預測 (2)多級預測來提高召回(3)通過中心度預測分支來解決低質量的預測框

FCOS網絡結構如下:基於像素預測中心度 ,類別heatmap和4個坐標點的回歸。

 

Fully Convolutional One-Stage Object Detector

訓練損失如下,分類使用focalloss,回歸使用iou loss

 

Multi-level Prediction with FPN for FCOS (用FPN多級預測)

基於anchor的檢測器將不同大小的anchor box分配到不同level的特征上,FCOS直接限制不同feature level用於回歸不同的邊界框; mi表示第 i 級的feature需要回歸的最大目標大小。本文中 m2, m3, m4, m5, m6 and m7 分別設為 0, 64, 128, 256, 512 and ∞,

不同大小的特征圖負責回歸不同的大小目標,因此沒必要單獨的網絡。

As a result, instead of using the standard exp(x), we make use of exp(six) with a trainable scalar si to automatically adjust the base of the exponential function for feature level Pi , which slightly improves the detection performance.

 

Center-ness for FCOS

為什么要有中心度預測?即使有了多級預測,FCOS和基於anchor的方法還有很大差距,預測框的中心離gt很遠。

中心度的值實在0~1,所以可以使用BCE損失。測試的時候最后框排序依據的分數是中心度*類別得分。

下表比較了不加中心度分支,使用回歸分支直接求得的中心度 和單獨中心度預測分支

優點:

(1)FCOS可以作為二階段網絡的RPN 部分 大大提高精度。

(2)有效緩解了重疊框(模糊) 和單階段低召回率的問題。

(3)簡單高效,效果好


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM