按時間排序的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)簡單高效,效果好