引言
现有的深度学习的目标检测方法,可以大致分为两类:一、基于候选区域的目标检测方法;二、基于回归的目标检测方法。依据方法的提出时间,可以构建出如下时间线:
- 2014 CVPR R-CNN[1]
- 2015 arXiv DenseBox[14]
- 2015 ICCV Fast R-CNN[2]
- 2015 NIPS Faster R-CNN[3]
- 2016 CVPR YOLO[5]
- 2016 ACMMM UnitBox[15]
- 2016 ECCV SSD[8]
- 2017 CVPR Mask R-CNN[4]
- 2017 CVPR YOLOv2[6]
- 2017 arXiv DSSD[9]
- 2017 ICCV DSOD[10]
- 2017 arXiv FSSD[11]
- 2017 arXiv R-SSD[12]
- 2018 arXiv YOLOv3[7]
- 2018 CVPR RefineDet[13]
- 2018 ECCV CornerNet[16]
- 2019 CVPR ExtremeNet[17]
- 2019 CVPR FSAF[18]
- 2019 ICCV FCOS[19]
- 2020 TIP FoveaBox[20]
- 2020 ECCV DETR[21]
下面,对上述提到的方法按照其所属类别,依次进行介绍。
基于候选区域的目标检测方法
基于候选区域的目标检测方法由于其处理过程分为两个阶段,也常常被称为两阶段方法。这类方法首先进行候选区域的提取,再基于候选区域得到检测结果。
图 1 R-CNN模型结构
Girshick等人在2014年提出第一个基于深度学习的两阶段目标检测方法R-CNN[1],它的整体框架如图1所示。它首先使用Selective Search在输入图像上提取候选区域,然后将不同大小的候选区域调整至相同尺寸,再使用CNN提取提取它们的特征,最后使用SVM进行分类、使用线性回归进行位置修正。但是,在R-CNN中,调整候选区域的尺度会造成信息丢失,且不同的候选区域之间存在重叠,单独使用CNN对每个候选区域进行特征提取存在大量的冗余计算,限制了R-CNN的检测速度。
Girshick等人在2015年对R-CNN进行了改进,提出了Fast R-CNN[2]。主要贡献在于:1. 在输入图片上进行一次特征提取,基于坐标信息直接在特征图上进行裁剪,得到每个候选区域的特征,这极大的提高了模型速度;2. 提出RoI Pooling层,使用该层可以将不同大小的候选区域特征处理为相同尺度,降低了信息丢失;3. 使用softmax进行分类,实现了基本的端到端。
Ren等人在2015年对Fast R-CNN进行了进一步的改进,提出了Faster R-CNN[3]。它使用区域建议网络(RPN)代替原有的Selective Search提取候选区域,极大地降低了提取候选区域的时间。区域建议网络的处理过程为:1. 在特征图上进行滑动窗口,得到一系列的锚框(anchor boxes);2. 使用softmax提取前景锚框,回归它们的偏移和缩放;3. 使用非极大值抑制(NMS)对锚框进行后处理,再取TopK个作为候选区域。Faster R-CNN是第一个真正意义上的端到端的深度目标检测方法,在目标检测领域具有重要意义。
He等人在2017年提出Mask R-CNN[4],在Faster R-CNN的基础上,通过增加不同分支,可以应对目标检测、语义分割、实例分割、关键点检测、人体姿势识别等多个任务,且在多个任务上的结果可以超过当时的SOTA,具有很强的灵活性和适用性。
基于回归的目标检测方法
基于回归的深度目标检测方法也被称为一阶段方法,这类方法不提取候选区域,直接回归出目标检测结果。目前主要分为三个系列:YOLO系列、SSD系列和Anchor Free系列。
图 2 YOLO模型结构
Redmon等人在2016年提出了第一个基于深度学习的一阶段目标检测方法——YOLO[5],其核心思想如图2所示。它将输入图片分割为固定数目的网格,每个网格负责检测中心落入该网格的目标,直接回归出边界框和类别概率。2017年,Redmon等人对YOLO进行了改进,提出了YOLOv2[6]方法。在YOLO的基础上,引入了锚框、高分辨率分类网络、尺寸聚类等机制,保证速度的同时提高了检测准确率。2018年,Redmon等人在YOLOv2的基础上提出了YOLOv3[7]方法,将YOLOv2中的softmax损失函数修改为独立的交叉熵损失,并提出了多级预测策略,同时加深了网络结构,进一步提升了检测精度。
图3 SSD模型结构
在YOLO提出的同一年,Liu等人提出了SSD[8]方法,它的模型结构如图3所示。SSD继承了YOLO中的回归思路,引入了与Faster R-CNN类似的锚框机制,并加入了特征金字塔检测方式,达到了与YOLO相近的检测速度,同时在准确率上比Faster R-CNN更高。Fu等人在2017年对SSD进行了改进,提出了DSSD[9]方法,使用Resnet-101替换了SSD中的VGG网络,并添加了反卷积层形成了“宽-窄-宽”的沙漏结构,提升了检测小目标的准确性。Shen等人在2017年提出了四个网络设计原则,并基于这些原则设计了DSOD[10]模型,不需要预训练也可达到较高的检测准确率。Li等人在2017年提出了FSSD[11]方法,通过在SSD中添加特征融合机制,在速度与SSD相差无几的前提下,准确率有较大提升。与FSSD类似地,Jeong等人在2017年提出在SSD中添加rainbow特征融合方法[12],一定程度上解决了SSD方法中存在的重复框问题,且提高了检测小目标时的准确性。Zhang等人在2018年提出RefineDet[13]方法,在SSD的基础上,融合了RPN和FPN,在速度上和一阶段方法相近,在准确性上可以和两阶段方法媲美。
图4 DenseBox模型结构
图5 CornerNet模型结构
和两阶段方法相比,YOLO系列和SSD系列方法没有提取候选区域的阶段,但除了YOLO方法,YOLOv2、YOLOv3、SSD及其变体方法都使用了锚框机制,这限制了方法的灵活性。Huang等人在2015年提出了第一个Anchor Free(不使用锚框)的深度目标检测方法——DenseBox[14],它的检测流程如图4所示。此方法使用全卷积结构,直接预测目标的边框和类别,并且可以结合landmark定位进一步提高目标检测的准确性。Yu等人在2016年提出了UnitBox[15]方法,在DenseBox的基础上提出并使用了IoU损失,具有更高的准确性和鲁棒性。Redmon等人在2016年提出的YOLO也属于Anchor Free模型,由于前文介绍过,这里就不多做介绍了。Law等人在2018年提出了CornerNet[16]方法,其模型结构如图5所示。CornerNet通过预测目标的左上角和右下角完成目标检测,避免了使用锚框带来的正负样本不均衡的问题,同时提出了Corner Pooling层,可以更精确的定位目标的左上角和右下角。2019年,Zhou等人在CornerNet的基础上进行改进,提出了ExtremeNet[17]方法,将检测两个角点变为检测四个边界点(最上、最下、最左、最右),并预测一个中心点用于判断边界点是否为同一组,取得了比CornerNet更高的检测准确率。与ExtremeNet同一年,Zhu等人提出了FSAF[18]方法,让每个实例自动地选择最适合它的特征层,避免了锚框的使用。同年,Tian等人提出了FCOS[19]方法,使用全卷积网络预测每个像素点相较于对应目标框在上、下、左、右四个方向上的距离,并通过centerness找到目标的中心点,取得了非常优秀的检测结果。2020年Kong等人提出FoveaBox[20],模仿人眼的中央凹(视觉中心具有最高的视力),先提取每个目标的“凹区域”,再进行后续的分类和回归。2020年,Carion等人提出了DETR[21]方法,将Transformer融入了目标检测框架,简化了模型结构,并在实验结果上超过了精调的Faster R-CNN。
结论
可以看出,在深度目标检测领域,最初是R-CNN系列、YOLO系列和SSD系列“三足鼎立”,近些年,各种各样的Anchor Free方法如“井喷”一样层出不穷。我认为,目标检测在未来的研究重点包括但不限于:
- 实时视频目标检测
- 小目标、微小目标检测
- 易于部署到移动端的目标检测
- 半监督、弱监督、无监督目标检测
相信目标检测技术一定会发展的越来越好,并为人类的生活带来越来越多的便利。
参考文献
- Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2014: 580-587.
- Girshick R. Fast r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1440-1448.
- Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[C]//Advances in neural information processing systems. 2015: 91-99.
- He K, Gkioxari G, Dollár P, et al. Mask r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2961-2969.
- Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 779-788.
- Redmon J, Farhadi A. YOLO9000: better, faster, stronger[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 7263-7271.
- Redmon J, Farhadi A. Yolov3: An incremental improvement[J]. arXiv preprint arXiv:1804.02767, 2018.
- Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//European conference on computer vision. Springer, Cham, 2016: 21-37.
- Fu C Y, Liu W, Ranga A, et al. Dssd: Deconvolutional single shot detector[J]. arXiv preprint arXiv:1701.06659, 2017.
- Shen Z, Liu Z, Li J, et al. Dsod: Learning deeply supervised object detectors from scratch[C]//Proceedings of the IEEE international conference on computer vision. 2017: 1919-1927.
- Li Z, Zhou F. FSSD: feature fusion single shot multibox detector[J]. arXiv preprint arXiv:1712.00960, 2017.
- Jeong J, Park H, Kwak N. Enhancement of SSD by concatenating feature maps for object detection[J]. arXiv preprint arXiv:1705.09587, 2017.
- Zhang S, Wen L, Bian X, et al. Single-shot refinement neural network for object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 4203-4212.
- Huang L, Yang Y, Deng Y, et al. Densebox: Unifying landmark localization with end to end object detection[J]. arXiv preprint arXiv:1509.04874, 2015.
- Yu J, Jiang Y, Wang Z, et al. Unitbox: An advanced object detection network[C]//Proceedings of the 24th ACM international conference on Multimedia. 2016: 516-520.
- Law H, Deng J. Cornernet: Detecting objects as paired keypoints[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 734-750.
- Zhou X, Zhuo J, Krahenbuhl P. Bottom-up object detection by grouping extreme and center points[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 850-859.
- Zhu C, He Y, Savvides M. Feature selective anchor-free module for single-shot object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 840-849.
- Tian Z, Shen C, Chen H, et al. Fcos: Fully convolutional one-stage object detection[C]//Proceedings of the IEEE international conference on computer vision. 2019: 9627-9636.
- Kong T, Sun F, Liu H, et al. Foveabox: Beyound anchor-based object detection[J]. IEEE Transactions on Image Processing, 2020, 29: 7389-7398.
- Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[J]. arXiv preprint arXiv:2005.12872, 2020.