经典目标检测模型
一、Classic detection model
1.Proposal or not
1.1 One-stage
OverFeat(ICLR,2014)——>YOLOv1(CVPR,2016)——>SSD(ECCV,2016)——>DSSD(Arxiv,2017)——>YOLOv2(CVPR,2017)——>RetinaNet(ICCV,2017)——>DSOD(ICCV,2017)——>YOLOv3(Arxiv,2018)——>RefineDet(ICCV,2018)——>RFBNet(ECCV,2018)——>M2Det(AAAI,2019)——>Consistent Optimization(12)
1.2 Two-stage
RCNN(CVPR,2013)——>SPPNet(ECCV,2014)——>Fast RCNN(ICCV,2015)——>Faster RCNN(NIPS,2015)——>OHEM(CVPR,2016)——>R-FCN(NIPS,2016)——>FPN(CVPR,2017)——>DCN(ICCV,2017)——>Mask RCNN(ICCV,2017)——>Soft-NMS(ICCV, 2017)——>Cascade R-CNN(CVPR,2018)——>IoUNet(ECCV 2018)——>TrindentNet(13)
1.3 One-Two Combination
RefineDet(ICCV,2018)
2.Improvement of detection modules
2.1 based RPN
[MR-CNN]
[FPN]
[CRAFT]
[R-CNN for Small Object Detection]
2.2 based ROI
[RFCN]
[CoupleNet]
[Mask R-CNN]
[Cascade R-CNN]
2.3 based NMS
[Soft-NMS(ICCV,2017)]
[Softer-NMS]
[ConvNMS]
[Pure NMS Network]
[Fitness NMS]
2.4 based anchor
[GA-RPN(CVPR2019)]
3.Improvement to solve problems
3.1 small object
針對MaskRCNN做數(shù)據(jù)增強(qiáng),人工隨機(jī)在圖像中復(fù)制小物體,提高anchor的命中率
[FPN] [DSSD]?R-SSD?[M2Det]
在主干網(wǎng)絡(luò)的low level(stride較小部分)出feature map,對應(yīng)的anchor size可以設(shè)置較大。
利用context信息,建立小物體與context的關(guān)系。或者上dilated類似混合感知野,或者在head部分引入SSH相似的模塊。
[R-CNN for Small Object Detection]
iou loss、cascade rcnn
參考CVPR論文SNIP/SNIPER
在anchor層面去設(shè)計(jì)
anchor densitification(出自faceboxes論文),
anchor matching strategy(出自SFD論文)。
[Relation Network for Object Detection]
GAN的主要運(yùn)用是為了超分辨率的學(xué)習(xí)應(yīng)用,將模糊的小目標(biāo)放大清晰化,而不是為了檢測器生成對抗一下。
上采樣,先做超分辨率再做檢測
參考資料:
深度學(xué)習(xí)在 small object detection 有什么進(jìn)展?
小目標(biāo)檢測問題中“小目標(biāo)”如何定義?其主要技術(shù)難點(diǎn)在哪?有哪些比較好的傳統(tǒng)的或深度學(xué)習(xí)方法?
3.2 scale variation/Feature fusion
[image pyramid/multi-scale testing]
[feature pyramid]
[anchor box]
[M2Det]
[FSSD]
3.3 shelter
[Repulsion Loss]
[Occlusion-aware R-CNN]
[Soft-NMS]
[Bi-box]
[R-DAD]
3.4 Imbalance Of Positive&Negative
[OHEM(CVPR2016)]
[A-Fast-RCNN(CVPR2017)]
[Focal loss(ICCV2017)]
[GHM(AAAI2019)]
3.5 Mobile or Light Weight
[Light-Head R-CNN]
[ThunderNet]
二、Classic classification/detection backbone
1.deepen
(1)resnet
2.widen
(1)Inception
3.smaller
(1)mobilenet
(2)shufflenet
(3)pelee
4.feature
(1)DenseNet
(2)SeNet
5.detection specific
(1)darknet
(2)detnet
三、Detection modules
1.Selective Search&&RPN
2.ROI pooling&&ROI align
3.IoU
4.NMS
5.Generic metrics
6.mAP
四、經(jīng)典Paper解讀與源碼(PyTorch)
1.SSD
SSD
SSD目標(biāo)檢測
SSD目標(biāo)檢測筆記
目標(biāo)檢測|SSD原理與實(shí)現(xiàn)
SSD詳解Default box的解讀
SSD 源碼實(shí)現(xiàn) (PyTorch)
ssd算法的pytorch實(shí)現(xiàn)與解讀
SSD代碼解讀(三)——MultiboxLoss
2.RFBNet
《Receptive Field Block Net for Accurate and Fast Object Detection》
官方代碼
論文筆記
源碼解讀
RFB模塊+SSD,借鑒Inception結(jié)構(gòu)的空洞卷積。
3.DetNet
《DetNet: A Backbone network for Object Detection》
核心點(diǎn)
目標(biāo)檢測專門設(shè)計(jì)的backbone,高層不減小分辨率+空洞卷積+減小網(wǎng)絡(luò)高層的寬度
2.1 Motivation
(1)分類和檢測任務(wù)不同,因此用分類數(shù)據(jù)上訓(xùn)練的分類模型來提取特征用于檢測任務(wù)不一定合適,比如檢測任務(wù)比較關(guān)注目標(biāo)的尺度特征,但是分類任務(wù)就不一定了。
(2)檢測任務(wù)不僅僅要做目標(biāo)的分類,而且要做目標(biāo)的定位,這樣的差異容易導(dǎo)致一些問題,比如在分類網(wǎng)絡(luò)中常用的降采樣操作可能對分類有效,因?yàn)樵龃罅烁惺芤?#xff0c;但是對于需要定位目標(biāo)的檢測任務(wù)而言就不一定有利,因?yàn)閬G失了目標(biāo)的位置信息。
2.2 contribution
(1)增加網(wǎng)絡(luò)高層輸出特征的分辨率,換句話說就是高層不對特征圖做尺寸縮減。
(2)引入dilated卷積層增加網(wǎng)絡(luò)高層的感受野,這是因?yàn)榈谝粋€(gè)改進(jìn)點(diǎn)引起的感受野減小。
(3)減小網(wǎng)絡(luò)高層的寬度,減少因增大分辨率帶來的計(jì)算量。
2.3 Method
如果網(wǎng)絡(luò)高層的特征不做像分類網(wǎng)絡(luò)那樣多的降采樣(將stride等于32修改為stride等于16)會帶來兩個(gè)問題:
(1)增加計(jì)算量。這個(gè)很容易理解,畢竟特征圖比之前的大,計(jì)算量的增加不可避免。
(2)高層的感受野(receptive field)減小。感受野和信息丟失類似蹺蹺板,既然前面選擇了盡可能減少高層的特征信息丟失,那么感受野減小也是情理之中。
那么怎么解決這兩個(gè)問題呢?
(1)針對問題1,主要是降低了網(wǎng)絡(luò)高層的寬度,這個(gè)在下圖D中展示得比較清楚了,高層的幾個(gè)stage的每個(gè)block的輸入特征通道都是256。而常見的分類算法中,比如ResNet越往高層的stage,特征通道數(shù)往往越大。 (2)針對問題2,主要引入dilated卷積層來增大感受野,如下圖的A和B所示,通過對比ResNet網(wǎng)絡(luò)的residual block(下圖C)可以看出主要是替換了傳統(tǒng)的3*3卷積為dilated卷積層。因此下圖中的A和B是DetNet網(wǎng)絡(luò)中的基礎(chǔ)結(jié)構(gòu)(下圖D所示)。
參考資料:DetNet 算法筆記
4.Cascade R-CNN
?
Github:Pytorch復(fù)現(xiàn)
參考資料:
Cascade RCNN算法筆記
CVPR18 Detection文章選介(上)
目標(biāo)檢測論文閱讀:Cascade R-CNN: Delving into High Quality Object Detection
Cascade R-CNN 詳細(xì)解讀
5.RefineDet
核心點(diǎn)
SSD+RPN+FPN
(1)引入Two Stage目標(biāo)檢測算法中對Box由粗到細(xì)進(jìn)行回歸思想,即先通過RPN網(wǎng)絡(luò)得到粗粒度的Box信息,然后再通過常規(guī)的回歸支路進(jìn)行進(jìn)一步回歸從而得到更加精確的框信息;
(2)引入類似FPN網(wǎng)絡(luò)的特征融合操作,可以有效提高對小目標(biāo)的檢測效果,檢測網(wǎng)絡(luò)的框架還是SSD。
Motivation
兩階段目標(biāo)檢測方法相比單階段方法有以下三個(gè)優(yōu)勢:
(1)兩階段目標(biāo)檢測器采用了兩段結(jié)構(gòu)采樣來處理類別不均衡的問題 (2)使用了先提取粗粒度Box然后進(jìn)一步回歸,兩階段級聯(lián)的方式來擬合bbox (3)采用了兩階段的特征圖來描述待檢目標(biāo)
Method
網(wǎng)絡(luò)結(jié)構(gòu)主要包含ARM、TCB和ODM三部分
(1)ARM(Anchor Refinement Module)
粗篩anchor,剔除掉過于容易的負(fù)樣本anchors以便為分類器減少搜索空間,降低后續(xù)的計(jì)算復(fù)雜度
粗略調(diào)整 anchors 的位置和大小,為ODM提供更好的初始值
(2)TCB(Transfer Connection Block)
將ARM部分輸出的Feature Map轉(zhuǎn)換成ODM部分的輸入。TCB通過進(jìn)行特征層的融合,將高語義層上采樣(通過反卷積實(shí)現(xiàn))與上一層進(jìn)行融合,提高底特征層的語義信息。不僅可以傳遞anchor的信息,也是一種做特征金字塔的方式。
本文作者使用了反卷積和按位加法來完成了TCB的運(yùn)算。
(3)ODM(Object Detection Module)
ODM 旨在根據(jù)細(xì)化后的 anchors 將結(jié)果回歸到準(zhǔn)確的目標(biāo)位置并預(yù)測多類別標(biāo)簽。不同的地方在于該部分的Anchors是ARM部分得到的Refined Anchors,Feature Map來自TCB得到的融合了各層的多語義Feature Map(可大幅度提高小目標(biāo)物體的檢測效果)。
(4)two-step cascaded regression
作者認(rèn)為目前的單階段目標(biāo)檢測器只進(jìn)行了一次的目標(biāo)框回歸,這可能是導(dǎo)致在一些困難任務(wù)上表現(xiàn)不佳的原因
所以,不同于SSD,RefineDet采用了兩步的回歸策略,首先由ARM生成大致的目標(biāo)框,再由ODM在次基礎(chǔ)上進(jìn)一步精修目標(biāo)框邊界,作者認(rèn)為這種方法會提升模型整體的精度,尤其是改進(jìn)對小目標(biāo)檢測的表現(xiàn)
(5)negative anchor ?ltering
負(fù)樣本篩選,本文的思路是ARM將負(fù)樣本置信度大于門限值 θ 的目標(biāo)框篩去,θ 的經(jīng)驗(yàn)值是0.99。也就是說ARM僅將正樣本和困難的負(fù)樣本送進(jìn)ODM進(jìn)行進(jìn)一步檢測
困難負(fù)樣本挖掘采用了與SSD一致的方法,將負(fù):正樣本比例保持在3:1
(6)損失函數(shù)
RefineDet的損失函數(shù)由兩部分組成,ACM和ODM,每一部分都包含分類與回歸兩個(gè)損失函數(shù),所以總得損失函數(shù)為:
其中i是mini-batch中anchor的index,
$l_i^*$ 是anchor i ground truth class label.
$g_i^*$ 是i anchor 的ground truth location 和 size.
$p_i$和$x_i$ 是anchor i 的predicted confidence和ARM的refined coordinates.
$c_i$和 $t_i$是 ODM 的predicted object class 和 coordinates of the bounding box.
$N_{arm}$和$N_{odm}$是ARM和ODM的positive anchor的數(shù)目
[l>1]是Iverson bracket indicator function,如果括號里面成立輸出1,否則輸出零。
參考資料
[讀論文] Single-Shot Refinement Neural Network for Object Detection
http://www.baiyifan.cn/2019/03/10/RefineDet/
https://hellozhaozheng.github.io/z_post/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89-RefineDet-CVPR2018/
RefineDet算法筆記
6. Consistent Optimization
《Consistent Optimization for Single-Shot Object Detection》
Motivation
單階段目標(biāo)檢測主要有兩個(gè)不足,一個(gè)是前景-背景類別不平衡,由focal loss處理;另一個(gè)是訓(xùn)練目標(biāo)和推理設(shè)置的不一致,本文通過利用訓(xùn)練時(shí)refined anchors來解決后者。
不一致具體是:分類的訓(xùn)練目標(biāo)是對default,regular anchor進(jìn)行分類,而預(yù)測的概率分配給由定位分支產(chǎn)生的對應(yīng)回歸后anchor。
當(dāng)原始anchor和refined anchor具有相同的groundtruth目標(biāo)時(shí),這種訓(xùn)練推理配置可以很好地工作。但是在下面兩種情況則不然。
?
?
(1)當(dāng)兩個(gè)物體相互遮擋時(shí),比如上圖,兩個(gè)anchor都匹配bike,所以檢測器把這兩個(gè)anchor的類別都判定為bike,進(jìn)行分類和回歸后,黃色框回歸到類別person,但是其判定的類別是bike,這樣不一致可能導(dǎo)致NMS時(shí)定位準(zhǔn)確的anchor(紅框)被錯(cuò)誤的框(黃框)抑制。
(2)上圖可以發(fā)現(xiàn),回歸后輸出的IoU一般比輸入的IoU要大,所以一些anchor被判定為負(fù)樣本,但是如果經(jīng)過回歸,有可能是正樣本.
所以在訓(xùn)練階段使用回歸后的anchor可以此gap。
Consistent Optimization
Consistent Detection

Consistent Localization

Comparison to Prior Works
Experiments
對比實(shí)驗(yàn)
正負(fù)樣本超參數(shù)

不同數(shù)量分類/回歸
泛化能力
不同網(wǎng)絡(luò)深度和輸入圖片尺度
SSD
與SOTA比較
?
7.Focal Loss
《Focal Loss for Dense Object Detection》
RetinaNet:ResNet+FPN+Focal Loss
Motivation
one-stage不如two-stage的主要原因在于正負(fù)樣本的極度不平衡,一張圖像可能生成成千上萬的candidate locations,但是其中只有很少一部分是包含object的,這就帶來了類別不均衡。
而這種不平衡會導(dǎo)致兩個(gè)問題:
(1)訓(xùn)練低效,因?yàn)榇蟛糠治恢枚际呛唵呜?fù)樣本,貢獻(xiàn)無用的學(xué)習(xí)信號;
(2)整體而言,簡單負(fù)樣本會在訓(xùn)練中占據(jù)壓倒性優(yōu)勢,導(dǎo)致模型退化。
OHEM(online hard example mining):each example is scored by its loss, non-maximum suppression (nms) is then applied, and a minibatch is constructed with the highest-loss examples。
8.Light-Weight RetinaNet
減少FLOPs的兩種常用思路:
(1)更換小backbone
(2)減小輸入圖片尺寸,會指數(shù)下降準(zhǔn)確率
只減少計(jì)算密集層中的FLOPs,而保持其他層不變。可以接近線性。
五、Reference
[1](YOLOv1)?J. Redmon, S. Divvala, R. Girshick, and A. Farhadi. You only look once: Unified, real-time object detection. In CVPR, 2016.
[2](SSD)?W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.-Y. Fu, and A. C. Berg. SSD: Single shot multibox detector. In ECCV, 2016.
[3](DSSD)?C.-Y. Fu, W. Liu, A. Ranga, A. Tyagi, and A. C. Berg. DSSD:Deconvolutional single shot detector. In arXiv,2017.
[4](YOLOv2)?J. Redmon and A. Farhadi. YOLO9000: Better, faster, stronger. In CVPR, 2017.
[5](RetinaNet)?T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollar. Focal loss for dense object detection. In ICCV, 2017.
[6](DSOD)?Shen Z., Liu Z., Li J., Jiang Y., Chen Y., Xue X. DSOD: Learning deeply supervised object detectors from scratch. In ICCV, 2017
[7]?(YOLOv3)?J. Redmon and A. Farhadi. YOLOv3: An incremental im- provement. In arXiv, 2018.
[8](RefineDet)?S. Zhang, L. Wen, X. Bian, Z. Lei, and S. Z. Li. Single-shot refinement neural network for object detection. In CVPR, 2018.
[9](RFBNet)?Songtao Liu, Di Huang?, and Yunhong Wang. Receptive Field Block Net for Accurate and Fast Object Detection. In ECCV ,2018.
[10](M2Det)?Qijie Zhao, Tao Sheng, Yongtao Wang, Zhi Tang, Ying Chen, Ling Cai and Haibin Ling. M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network. In AAAI,2019.
[11](Consistent Optimization)?Tao Kong,Fuchun Sun,Huaping Liu,Yuning Jiang and Jianbo Shi. Consistent Optimization for Single-Shot Object Detection. In arXiv, 2019.
[12](R-CNN)?R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014.
[13](SppNet)?K.He,X.Zhang,S.Ren,andJ.Sun.Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV,2014.
[14](Fast R-CNN)?R. Girshick. Fast R-CNN. In ICCV, 2015.
[15](Faster R-CNN)?S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towards real-time object detection with region proposal net-works. In NIPS, 2015.
[16](OHEM)?Abhinav Shrivastava,Abhinav Gupta and Ross Girshick. Training Region-based Object Detectors with Online Hard Example Mining.In CVPR, 2016.
[17]?(R-FCN)?J.Dai,Y.Li,K.He,andJ.Sun.R-FCN:Object detection via region-based fully convolutional networks. In NIPS, 2016.
[18](FPN)?T.-Y. Lin, P. Dolla ?r, R. B. Girshick, K. He, B. Hariharan, and S. J. Belongie. Feature pyramid networks for object detection. In CVPR, 2017.
[19](DCN)?J. Dai, H. Qi, Y. Xiong, Y. Li, G. Zhang, H. Hu, and Y. Wei. Deformable convolutional networks. In ICCV, 2017.
[20](Mask R-CNN)?K.He,G.Gkioxari,P.Dolla ?r,and R.Girshick.MaskR-CNN. In ICCV, 2017.
[21](Soft- NMS)?N. Bodla, B. Singh, R. Chellappa, and L. S. Davis. Soft-NMS-improving object detection with one line of code. In ICCV, 2017.
[22](Cascade R-CNN)?Z. Cai and N. Vasconcelos. Cascade R-CNN: Delving into high quality object detection. In CVPR, 2018.
[23](IoUNet)?Borui Jiang,Ruixuan Luo,Jiayuan Mao,Tete Xiao,and Yuning Jiang.Acquisition of Localization Confidence for Accurate Object Detection.In ECCV 2018.
[24](TridentNet)?Yanghao Li,Yuntao Chen,Naiyan Wang,Zhaoxiang Zhang.Scale-Aware Trident Networks for Object Detection.In arXiv,2019.
[25](ResNet)?K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, 2016.
[26](DenseNet)?Gao Huang,Zhuang Liu,Laurens van der Maaten.Densely Connected Convolutional Networks. In CVPR,2017.
總結(jié)
- 上一篇: RTTHREAD软件包目录
- 下一篇: 举个栗子!Tableau 技巧(202)