跳转至

前三章指路

完成前三章的速览以后,到18年底的检测网络发展情况相信读者已经基本心里有数了,第四章我们将开始介绍从19年的anchor free类目标检测算法,到最新的transformer目标检测算法并尝试提供相应的代码仓库,以便更好的把握检测网络的发展。

第一篇《CornerNet: Detecting Objects as Paired Keypoints》

提出时间:2018

针对问题:

如第三章第八篇,有学者提出了基于目标的角点进行目标检测的思路,这种思路的优势就是避免了anchor设计时不同长宽比的调整,且在不同的网络层不同尺度的设计也能统一,从而降低了超参数的数量。

创新点:

anchor free ,利用corner来做,1)内嵌映射2)角点的特征值回传及loss计算方式。

CornerNet

详解博客:https://blog.csdn.net/u014380165/article/details/83032273

第二篇《ExtremeNet》

提出时间:2019

针对问题:

单纯用角点进行目标的检测存在一个问题是对目标来说其角点大多都不在目标上,单纯采用角点来进行目标的检测并没有很好的利用目标样例上的特征。那么如何参考利用目标内的特征来实现更高精度的anchor free目标检测就是作者着力解决的问题。

创新点:

anchor free 方案,通过目标的四个方向的极值点和中心点来实现目标检测。

ExtremeNet

详解博客:https://blog.csdn.net/sinat_37532065/article/details/86693930

库地址:https://github.com/xingyizhou/ExtremeNet

第三篇《FCOS》(建议重点细看)

提出时间:2019

针对问题:

尝试将anchor free算法和已有的一段式检测网络结合,提出性能更加优越的检测网络模型。

创新点:

FCOS以一种类似语义分割的方式,按像素进行预测,解决目标检测问题

详解博客:https://blog.csdn.net/sinat_37532065/article/details/105252340

github仓库:https://github.com/tianzhi0549/FCOS/

第四篇《CenterNet》(建议重点细看)

提出时间:2019

针对问题:

作者参考了cornernet和extremenet,发现两者虽然都尝试优化了anchor设计的复杂超参数调优,但是其检测目标特征点的组队过程仍旧略显繁复。所以作者考虑如何进一步优化该问题来达到更高效的anchor-free检测模型。

创新点:

作者考虑只使用目标的中心点(center),从而将目标检测任务转换为图像中的关键点检测任务。然后通过在这个关键点来回归其所指向的目标类别以及以当前点为中心构建的目标最小外接矩形到改点的四个回归值来完成目标的检测任务。

详解博客:https://baijiahao.baidu.com/s?id=1644905321397514137&wfr=spider&for=pc

第五篇《FSAF》

提出时间:2019

针对问题:

当前检测算法大多都是anchor based,通过设置不同的anchor来在FPN输出的多张特征图上进行目标的检测,我们一般经验的认为在网络深层的特征图上检测大目标而在浅层的特征图上检测小目标。但是作者发现在实际网络训练过程中,可能40x40和60x60的目标被分配给了FPN的不同层。为了尝试优化对FPN特征层的利用,同时降低过采样anchor带来的计算量,作者提出了该网络模型。

创新点:

主要是通过在检测网络中添加anchor free的特征层筛选模组,来强化每个输入的实例所归属的判定特征层,从而充分利用FPN的性能。 提出了Online feature selection方法,改善了基于anchor机制和feature pyramids的single-shot检测器的两个潜在问题。FSAF在COCO数据集上达到了state-of-art,mAP为44.6%,超过了所有single-shot检测器。同时额外的计算量很小。

FSAF

详解博客:https://www.cnblogs.com/fourmi/p/10602936.html

第六篇《NAS-FPN》

提出时间:2019

针对问题:

有学者认为当前FPN的设计并不一定是最优的结果,结合现下的NAS搜索技术,尝试得到更优的FPN结构

创新点:

利用网络结构搜索技术来得到的结构更好的FPN结构

详解博客:https://blog.csdn.net/qq_41375609/article/details/98499442

第七篇《DetNAS》

提出时间:2019

针对问题:

作者认为之前检测网络的backbone大多都是基于分类任务完成的,分类任务得到的模型并不关心图像中目标的位置信息,所以作者尝试利用NAS技术得到更适合检测任务的backbone网络。

创新点:

利用网络结构搜索技术来得到的检测网络专用backbone,作者的试验证明确实是对检测精度有提升。

详解博客:https://blog.csdn.net/mrjkzhangma/article/details/103369432

第八篇《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks》

提出时间:2019

针对问题:

卷积神经网络(ConvNets)通常是在固定的资源预算下发展起来的,如果有更多的资源可用的话,则会扩大规模以获得更好的精度,比如可以提高网络深度(depth)网络宽度(width)输入图像分辨率 (resolution)大小。但是通过人工去调整 depth, width, resolution 的放大或缩小的很困难的,在计算量受限时有放大哪个缩小哪个,这些都是很难去确定的,换句话说,这样的组合空间太大,人力无法穷举。基于上述背景,作者尝试提出复合模型扩张方法结合神经结构搜索技术获得的更优的网络结构。

创新点:

该论文提出了一种新的模型缩放方法,它使用一个简单而高效的复合系数来从depth, width, resolution 三个维度放大网络,不会像传统的方法那样任意缩放网络的维度,基于神经结构搜索技术可以获得最优的一组参数(复合系数)。

详解博客:https://blog.csdn.net/mrjkzhangma/article/details/103369432

代码:https://github.com/qubvel/efficientnet

第九篇《DETR》

提出时间:2020

针对问题:

作者尝试将NLP领域的transformer引入目标检测任务中,目的是想进一步的降低网络的超参数。

创新点:

第一个将 Transformer 成功整合为检测 pipeline 中心构建块的目标检测框架。基于Transformers的端到端目标检测,没有NMS后处理步骤、真正的没有anchor,且对标超越Faster RCNN

详解博客:https://blog.csdn.net/c2250645962/article/details/106399116

代码:https://github.com/facebookresearch/detr

本章总结

到了本章,学者们尝试进一步优化anchor base类算法,考虑到anchor设计时的大量经验参数,进一步的优化anchor设计,完成了从框匹配到直接点回归的进化;对检测网络的backbone方面,学者们也通过尝试希望更好的利用输入的特征来提高检测的效果。其中CenterNet和FCOS的代码和论文建议大家有时间的话精度。再之后就是尝试将transformer整合进检测任务中,例如DETR模型,有精力的同学也推荐阅读和学习。