【GiantPandaCV导读】检测网络模型发展到16年已经基本造成了一段式和两段式的两种网络设计模式,二者的共同点是均采用了anchor based的设计结构来达到对输入特征图遍历的效果。可是反映出来的现象是两段式网络的精度更高,一段式网络速度更快,二者都对待检测目标的尺度适应能力存在必定的瓶颈,那么如何继续提升特征表达来加强网络性能呢?基于anchor的思路也引入了相对较多的超参数,如何继续简化超参数的数量呢?本章咱们将沿着这个问题进行2016年到2018年论文的速览。html
第一篇 MS-CNN
《A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection》git
提出时间:2016github
针对问题:web
多尺度目标的检测问题仍旧是检测任务的一个重点问题,既然已经有学者考虑了在网络的不一样层上完成对不一样尺度的目标检测任务,那么具体怎么运用多层的特征呢,本文做者的思路是对不一样的输出层设计不一样尺度的目标检测器。算法
创新点:设计模式
对于不一样的输出层设计不一样尺度的目标检测器,完成多尺度下的检测问题,使用特征的上采样代替输入图像的上采样步骤。设计一个去卷积层,来增长特征图的分辨率,使得小目标依然能够被检测出来。这里使用了特征图的deconvolutional layer(反卷积层)来代替input图像的上采样,能够大大减小内存占用,提升速度。微信
详解博客:https://blog.csdn.net/app_12062011/article/details/77945816网络
第二篇 R-FCN
《R-FCN: Object Detection via Region-based Fully Convolutional Networks》app
提出时间:2016编辑器
针对问题:
分类网络对输入特征图中目标的位置信息是不敏感的,而检测网络即须要对目标的位置敏感,还须要保证足够的分类精度。如何解决或者平衡这个矛盾?按咱们的理解来讲就是,对分类网络来讲输入的特征图,目标在图上的不一样位置其损失差异不大,可是对检测网络来讲,就须要考虑定位的损失,定位的损失再通过回传,会改变网络的权重参数,从而可能对分类的性能产生影响。
创新点:
主要贡献在于解决了“分类网络的位置不敏感性(translation-invariance in image classification)”与“检测网络的位置敏感性(translation-variance in object detection)”之间的矛盾,在提高精度的同时利用“位置敏感得分图(position-sensitive score maps)”提高了检测速度。具体就是把每一个目标输出为kk(c+1)的特征向量,k*k每一层表征当前目标的上,下左右等细分位置的heatmap图。

详解博客:https://zhuanlan.zhihu.com/p/30867916
第三篇 PVANET
《PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection》
提出时间:2016年
针对问题:
本篇论文继续在faster rcnn网络上深耕,综合以前提出的多层特征融合、浅层特征计算冗余和inception结构来改善faster rcnn网络的性能。
创新点:
改进了faster rcnn的基础特征提取网络,在不影响精度的前提下加速。主要是三个点:1)C.RELU,C.ReLU(x)=[ReLU(x), ReLU(-x)],认为浅层卷积核的一半计算都是冗余的。2)Inception结构的引入。3)多层特征的融合。以尽量的利用细节和抽象特征。
详解博客:https://blog.csdn.net/u014380165/article/details/79502113
第四篇 DSSD
《DSSD : Deconvolutional Single Shot Detector》
提出时间:2017
针对问题:
继续在SSD的基础上尝试提升对小目标的检测能力。
创新点:
在网络中添加了反卷积的结构,并经过在backbone中使用resnet结构来提升浅层特征的表达能力。

详解博客:https://blog.csdn.net/u010725283/article/details/79115477/
第五篇 YOLOv2/YOLO9000
《YOLO9000:Better, Faster, Stronger》
提出时间:2017年
针对问题:
对yolov1进行改进,借鉴了anchor、多特征层融合检测等网络改进技巧,在保证检测速度的前提下,提升了yolo系列的检测精度。
创新点:
在v1的基础上,用anchor来强化grid,提升输入的分辨率,用BN替代dropout,约束anchor的中心点变更区间,新的backbone
详解博客:https://blog.csdn.net/shanlepu6038/article/details/84778770
第五篇《YOLO9000:Better, Faster, Stronger》
提出时间:2017年
针对问题:
对yolov1进行改进,借鉴了anchor、多特征层融合检测等网络改进技巧,在保证检测速度的前提下,提升了yolo系列的检测精度。
创新点:
在v1的基础上,用anchor来强化grid,提升输入的分辨率,用BN替代dropout,约束anchor的中心点变更区间,新的backbone
详解博客:https://blog.csdn.net/shanlepu6038/article/details/84778770
第六篇 FPN
《Feature Pyramid Networks for Object Detection》
提出时间:2017年
针对问题:
本篇论文的做者尝试经过加强CNN主干网络输出的特征来进一步加强网络的检测精度。
创新点:
CNN目标检测网络开始尝试利用多层特征融合来进行大目标+小目标的检测,本篇主要是提出新的跳层特征融合及用做分类的方式。FPN网络的提出也成为后续检测的主干网络经常使用结构。

详解博客:https://blog.csdn.net/kk123k/article/details/86566954
第七篇《RON: Reverse Connection with Objectness Prior Networks for Object Detection》
提出时间:2017年
针对问题:
对一段式网络模型的训练精度问题进行优化,做者发现一段式网络在训练时相对两段式网络正负样本不均衡程度更大且没有有效的抑制手段。不均衡的正负样本会不利于网络模型收敛。
创新点:
为了优化one-stage目标检测算法的正负样本不均匀的问题,添加了objectness prior层来筛选正负样本,并采用了和FPN相似的特征融合思路,使得浅层特征的表现能力获得了提升。

详解博客:https://blog.csdn.net/shanlepu6038/article/details/84778770
第八篇《DeNet: Scalable Real-time Object Detection with Directed Sparse Sampling》
提出时间:2017年
针对问题:
本文做者注意到,当前的检测网络模型都应用了anchor来完成对特征图的近似遍历,其中的anchor超参数的设置也很重要。做者尝试继续简化anchor的超参数,即将基于必定长宽anchor组合的检测算法,取anchor的极限,经过预测图像中目标的角点来完成对图像中目标的定位。
创新点:
以前的two stage 和 one stage都是基于anchor来实现目标建议框的选取,这是第一篇,尝试在anchor盛行的时候,不手工设置anchor,而是利用目标角点检测来实现目标位置检测的方案。
详解博客:https://blog.csdn.net/yaoqi_isee/article/details/70184686;https://www.cnblogs.com/fourmi/p/10771589.html
第九篇《CoupleNet: Coupling Global Structure with Local Parts for Object Detection》
提出时间:2017年
针对问题:
本文是对R-FCN的一个改进。做者观察到R-FCN中,对输入特征图直接映射为目标的不一样组件的,对纹理较少的目标,好比沙发,就可能定位偏差偏大。因此做者考虑在R-FCN中加上全局信息。
创新点:
在R-FCN中加上了对全局信息的提取,由于R-FCN是直接将共享的Feature Map 映射为了每类目标的各个组件,而对沙发这种单独结构文理不多的,更须要目标的全局信息,ROI Pooling则保留了相似的信息,因此二者合一一块儿用。
详解博客:https://blog.csdn.net/qq_34564947/article/details/77462819
第十篇《Focal Loss for Dense Object Detection》
提出时间:2017年
针对问题:
如第七篇论文的工做,在网络模型训练的过程当中,正负样本的不平衡是影响模型精度的重要因素。第七篇采用的的策略和两段式网络类似,都是经过筛选生成的目标框是否包含正样原本过滤。本文做者则从损失函数的角度,经过设计的Focal Loss下降重复的简单样本对模型权重的影响,强调难例对网络学习的益处,以此来提升模型权重收敛的方向,使其达到更高精度。
创新点:
定义新的损失函数Focal loss来使得难训练的样本对loss贡献大,从而必定程度优化训练样本类别不均衡的问题。
详解博客:https://www.bilibili.com/read/cv2172717
第十一篇《DSOD: Learning Deeply Supervised Object Detectors from Scratch》
提出时间:2017年
针对问题:
本文做者认为当前的检测模型大部分都是以大数据集训练获得的分类模型为骨干网络,再将其迁移到当前数据集的检测任务上,虽然分类和检测能够共用特征,可是检测直接从头训练的模型和分类网络训练出来的模型参数仍是有区别的。因此做者尝试提供一种从头有监督的训练检测网络模型的方案。
创新点:
摆脱预训练模型,从头训练本身的模型,从而摆脱结构依赖。
https://arleyzhang.github.io/articles/c0b67e9a/
第十二篇《MASK R-CNN》
提出时间:2017年
针对问题:
做者尝试从采用分割网络的思路来实现检测的任务,也就是对每一个像素点判断其类别,再经过不一样实例来肯定其最小外接矩形框从而达到检测的目的。
创新点:
主要是ROI align技术,也就是不进行截断,而是差值方式的ROI POOLING 。

详解博客:https://blog.csdn.net/WZZ18191171661/article/details/79453780
第十三篇《Deformable Convolutional Networks》
提出时间:2017年
针对问题:
做者认为卷积神经网络因为其构建模块中的固定几何结构而固有地仅限于模型几何转换,即由于卷积核是固定的形状,没法自适应的对输入特征图上的特征进行有效的提取。因此做者设计了可变形的卷积层和池化层。
创新点:
可变形卷积,经过借鉴空洞卷积实现,经过单独的层学习采样点位置;可变形roi,roi pooling里面的每一个bin均可以有一个offset来进行平移。
详解博客:https://zhuanlan.zhihu.com/p/52476083
第十四篇《YOLOv3》
提出时间:2018年
针对问题:
主要是做者对yolov2网络的持续优化和改进。
创新点:
主要是借鉴FPN和resnet来提升主干网络的特征层表征能力。
详解博客:https://blog.csdn.net/dz4543/article/details/90049377
第十五篇《Scale-Transferrable Object Detection》
提出时间:2018年
针对问题:
做者认为相似原始FPN中的特征的融合并不可以很好的加强特征的表达能力,因此设计了新的融合方式来强化这部分。
创新点:
提出了一种新的在几乎不增长参数和计算量前提下获得大尺寸featuremap的方法,首先将输入feature map在channel维度上按照r^2长度进行划分,也就是划分红C个,每一个通道长度为r^2的feature map,而后将每一个11r^2区域转换成rr维度做为输出feature map上rr大小的结果,最后获得rHrWC的feature map。

详解博客:https://blog.csdn.net/u014380165/article/details/80602130
第十六篇《Single-Shot Refinement Neural Network for Object Detection》
提出时间:2018年
针对问题:
做者观察到两段式网络有较好的精度表现,而一段式网络有更优秀的速度性能,做者尝试结合二者的特色来构建新的网络结构。
创新点:
TCB,ARM与ODM模块的提出。
详解博客:https://blog.csdn.net/woduitaodong2698/article/details/85258458?utm_medium=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase&depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase
第十七篇《Relation Networks for Object Detection》
提出时间:2018年
针对问题:
你们都有感受,物体间或者物体内一些区域的关联性是有助于目标检测任务的,可是以前没人有实际的证实如何使用这种关联性是必定可行的,本文做者就尝试在检测网络中添加注意力模块来提升网络表现。
创新点:
计算object之间的relation,做为训练参数,从而提升检测精度。

详解博客:https://blog.csdn.net/weixin_42102248/article/details/102858695
第十八篇《Cascade R-CNN: Delving into High Quality Object Detection》
提出时间:2018年
针对问题:
本文也是对网络训练过程当中的优化技巧,做者发现训练检测网络时候须要设置超参数IOU阈值来判断当前定位框是否为正样本,可是一个单一的IOU阈值可能并非合用的,因此尝试作级联的IOU阈值来辅助训练。
创新点:
为了优化RPN中的单一IOU问题对最终检测精度的影响问题而提出,作不一样IOU阈值的级联来提升计算最终损失的正负样本质量及比例,从而提升性能。
详解博客:https://blog.csdn.net/qq_17272679/article/details/81260841
第十九篇《Receptive Field Block Net for Accurate and Fast
Object Detection》
提出时间:2018年
针对问题:
本文做者的工做也是对主干网络的不一样层特征融合工做的优化进行的。主要是为了更有效且更高效的实现特征的融合。
创新点:
提出RFB结构,利用空窗卷积来进行特征的融合。

详解博客:https://blog.csdn.net/u014380165/article/details/81556769
第二十篇《Object Detection based on Region Decomposition and Assembly》
提出时间:2019年
针对问题:
本文做者仍是针对两段式网络中目标框提取部分进行优化,来提升检测精度。
创新点:
思路仍是借鉴以前的论文,对正样本图像块进行拆分左右上下半边和其自己,再分别送入后续卷积,目的是让网络尽量多的看到当前正样本的丰富的特征。

详解博客:https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/88148760
第二十一篇《M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid
Network》
提出时间:2019年
针对问题:
做者认为FPN的特征金字塔最开始就是为了分类而设计的,在检测网络中须要进行必定的适配才能达到最好的性能。
创新点:
原始的backbone更适合分类任务,改善backbone的使用机制,使其更适应检测任务。两个新模块1)TUM 经过卷积、上采样和相同shape相加来获得多尺度的特征2)FFMv2 特征融合模块,经过卷积核upsample来统一输入feature map的shape,再concat 3)SFAM 对输入的特征先concat,再进行通道层面的attention,并转化为权重参数相乘,再送入分类和回归。
详解博客:https://blog.csdn.net/hanjiangxue_wei/article/details/103311395
本章总结
到本章之后,所提到的21篇论文大部分都是对已有的两种检测网络设计范式的调整和优化,学者们探索了多层特征的融合并最终推出了FPN,并在FPN基础上对检测问题进行适配;学者们还探索了在检测网络中添加注意力模块的方式和方法,并证实其有效。咱们还要注意到第八篇和第十三篇论文,其中第八篇讨论了anchor从多个框压缩为点的可能性,第十三篇则探讨了,可能纯卷积的结构并非检测问题的最优选项,这个方向仍旧有优化的可能。

对文章有问题,或者对公众号的建议欢迎在评论区反馈!
但愿加入交流群,能够添加下方微信
本文分享自微信公众号 - GiantPandaCV(BBuf233)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。