深度神经网络在基于视觉的目标检测中的应用
简 介: 目标检测是计算机视觉的一个重要应用方向,深度神经网络的提出极大地帮助基于视觉的目标检测提高了准确度。自2014年以来,深度神经网络在基于视觉的目标检测中被广泛应用,出现了多种算法。本文分别讨论两阶段和一阶段算法的主要思路、发展过程以及实现效果等,最后结合相关领域的一些成果讨论基于视觉的目标检测未来可能的应用模式。
关键词
: 目标检测,神经网络,R-CNN,YOLO
神经网络解决计算机视觉中的目标检测问题主要有两阶段和一阶段两种主要思路。两阶段法主要以R-CNN[1]
及其后续的改进版本等为代表,一阶段法主要以YOLO[2]
及其改进版本为代表。
§01 两阶段法
两阶段算法的输入是一张原始图片,算法从原始图片中提取出若干候选区(Region Proposal
),之后对候选区中的图片进行分类和回归。
两阶段法的首次提出是Girshick R
等人在2014
年提出了R-CNN[1]
,他们给出的算法流程如下图。
▲ 图1.1 R-CNN算法流程
R-CNN
的提取候选区阶段采用的是选择性搜索算法,在输入图像上大约产生2000~3000
个候选框。在之后的分类和回归阶段又分为三个部分。首先是利用卷积神经网络(CNN
)对候选框提取特征,之后利用SVM
对CNN
提取的特征进行分类,最后利用回归网络对目标的选框(bounding box
)进行修正。
R-CNN
将深度神经网络引入了目标检测领域,在VOC 2012
数据集上的最好mAP
(mean average precision
)达到了53.3%
,相比传统方法提高了超过30%
;在GPU
上运行时间大约13
秒/
图[1]
。R-CNN
算法的运行所需时间远达不到实时性的要求。R-CNN
提取候选区阶段和分类回归阶段相对独立,产生数千个候选框交由CNN
分别提取特征,这个过程中会产生大量的计算。
2015
年He K
等人提出SPP-net[3]
,在CNN
的最后一个卷积层加入空间金字塔池化(spatial pyramid pooling
),使得不同尺寸的输入图像可以在池化后具有相同尺寸的特征向量,适应之后的全连接网络分类。引入SPP
层后所有图像候选区可以共享卷积神经网络,从而极大地提高了目标检测的速度——相比R-CNN
可提升数十倍,而准确率相当[3]
。但是SPP-net
中的卷积层参数是无法训练的[4]
。
▲ 图1.2 算法中的数据增强
Girshick R
随后在2015
年提出了一个R-CNN
的改进版本——Fast R-CNN[4]
。作者在Fast R-CNN
中引入了SPP
的简化版本——RoI Pooling
,并提出了网络端到端的训练算法,实现了所有网络参数的优化。另外作者将分类器和回归网络统一合并到了CNN
的classifier
部分。卷积网络输出的特征向量输入到两个全连接网络中,分别输出目标类别和bounding box
。将分类器由SVM
改为softmax
后网络mAP
略微提升。
Ren
S等人提出了RPN
(Region Proposal Network
),进一步提高了R-CNN
的识别速度[5]
。RPN
是用于产生候选区和对应的目标得分的卷积神经网络,与Fast R-CNN
共享卷积层,使得候选区产生几乎不增加额外消耗。引入了RPN
的Faster R-CNN
检测速度已经可以达到5fps
。
He K
等人2017
年在Faster-RCNN
的基础上在classifier
分支外增加了mask
分支,实现了实例分割[6]
。在Mask R-CNN
中RoI Align
替换了RoI Pooling
,使得分割结果更加精确。
2019
年Gkioxari
G等人基于Mask R-CNN
进一步提出了Mesh R-CNN[7]
,首次实现了2D
目标检测和目标三维重构的融合。Lu X
等人提出了Grid R-CNN[8]
,利用网格定位的方式取代了bounding box
回归,使得目标的定位更精确。
§02 一阶段法
一阶段法是端到端的方法,输入一张图片,网络直接输出bounding box和其中各个类别的可能性。
一阶段法的提出晚于两阶段法。Redmon J等人在2016年首次提出了YOLO[2]。
▲ 图2.1 YOLOv1算法流程
整个目标检测过程被视为一个回归问题,各个类别的可能性和bounding box
由同一个代价函数评估。不同于两阶段中不同部分需要各自训练,YOLO
在训练时整个网络可以一次性训练。YOLO
将图片分为若干单元格,每个单元格预测若干bounding box
和目标概率,此后所有信息被综合考虑和回归。
YOLO
的目标检测速度非常快,可以达到45fps
,其快速版甚至可以达到150fps[2]
。因为YOLO
是对一张图片整体预测,所以不会被局限在某个小区域内,使得算法的背景误检率很低——而相应的,当同一个单元格内或者整张图片中有大量目标或者有很小的目标时,YOLO
漏检率较高。
Redmon J
等在2017
年提出了YOLO
的改进版YOLOv2[9]
。作者在YOLOv2
中引入Batch Norm
机制,高分辨率分类网络和Anchor Boxes
,前两者显著提高了网络识别的准确度,后者提高了网络的召回率。作者设计了Darknet-19
网络,在提高网络识别准确度的同时保持了YOLOv2
的实时性。另外作者提出了一种分类数据集和目标检测数据集的联合训练方法,并训练出了能检测9000
种目标的YOLO9000
。在YOLOv2
的基础上Shafiee M J
等人通过优化网络结构和引入动态适应推理方法,提出了可以在嵌入式系统上实时检测视频中的目标的Fast YOLO[10]
。根据他们的实验结果,Fast YOLO
可以在Nvidia Jetson TX1
嵌入式平台上实现18FPS
的实时检测[10]
。
▲ 图2.2 YOLOx算法
2018
年Redmon J
等对YOLO
进行了进一步改进,优化了网络结构、Bounding Box
算法,用多标签分类取代了softmax
,形成了YOLOv3[11]
。YOLOv3
相比YOLOv2
具有更大的网络规模,这使得它有更高的准确度,但同时仍然保持着很好实时性。
Bochkovskiy A
和Wang C Y
等人在2020
年和2021
年先后提出了YOLOv4[12]
和Scaled YOLOv4[13]
。深度神经网络中的一些通用方法如CBN
、PAN
和SAM
等被引入进了YOLOv4
。作者通过上述通用方法等优化了网络,使得YOLOv4
的训练和运行对算力的要求降低,并仍保持了很好的检测准确率和实时性。Scaled YOLOv4
中作者提出了创新的网络缩放方法,使得YOLOv4
有了不同规模的版本,适合在从云端到嵌入式系统的各种平台部署。
§3 自动驾驶
目标检测的一个重要应用领域是自动驾驶。自动驾驶中通常用激光雷达感知周围环境的深度信息,用摄像头采集环境的纹理和色彩等。基于视觉的目标检测和雷达探测融合后可以得到更丰富的环境的三维信息。
视觉和激光融合的目标检测的一种思路是将激光数据作为先验,利用激光雷达采集的点云数据对摄像头视野内的目标进行预分类,根据传感器的标定和转换矩阵产生摄像头图像平面内的Region Proposal
,之后由神经网络进行分类和回归。其工作流程类似R-CNN
。Zhao X
等人在他们2020
年的文章[14]
中就采用了这种思路。另外他们还指出,将候选框同时应用在最后三个卷积层内,再将它们分别RoI Pooling
的结果加权相加输入分类网络,可以提高网络对小目标的检测能力。
视觉和激光的另一种融合方式是数据层融合,之后用端到端的方式处理融合后的数据,Huang Z
等人的工作[15]
就应用了这种思想。
※ 总结与展望 ※
人工神经网络,特别是深度网络显著提高了基于视觉的目标检测的准确度。各种算法都在追求准确度和实时性的平衡,其中R-CNN等两阶段法的算法准确度较高,而YOLO等一阶段法能保证很强的实时性而准确度略低。深度神经网络虽然识别能力强,但是对算力要求高,所以也有很多学者进行了网络压缩等工作,使得应用神经网络的目标检测算法在嵌入式系统中也能运行,为算法的真正落地应用创造可能性。
▲ 图4.1 算法不同的结构
另外在自动驾驶领域多传感器融合是重要的发展方向,基于视觉的目标检测算法和激光雷达等传感器数据融合是目标检测的一个发展方向。其融合方式可能是两阶段法的第一阶段由其他传感器数据的处理方法替换,也可以是其他传感器数据的处理算法应用基于视觉的目标检测结果,还可以是在数据层融合其他传感器数据,之后采用端到端的方法做目标检测等。
参考文献
[1] 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.
[2] 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.
[3] He K, Zhang X, Ren S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 37(9): 1904-1916.
[4] Girshick R. Fast r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1440-1448.
[5] Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[J]. Advances in neural information processing systems, 2015, 28: 91-99.
[6] 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.
[7] Gkioxari G, Malik J, Johnson J. Mesh r-cnn[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 9785-9795.
[8] Lu X, Li B, Yue Y, et al. Grid r-cnn[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 7363-7372.
[9] Redmon J, Farhadi A. YOLO9000: better, faster, stronger[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 7263-7271.
[10] Shafiee M J, Chywl B, Li F, et al. Fast YOLO: A fast you only look once system for real-time embedded object detection in video[J]. arXiv preprint arXiv:1709.05943, 2017.
[11] Redmon J, Farhadi A. Yolov3: An incremental improvement[J]. arXiv preprint arXiv:1804.02767, 2018.
[12] Bochkovskiy A, Wang C Y, Liao H Y M. Yolov4: Optimal speed and accuracy of object detection[J]. arXiv preprint arXiv:2004.10934, 2020.
[13] Wang C Y, Bochkovskiy A, Liao H Y M. Scaled-yolov4: Scaling cross stage partial network[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 13029-13038.
[14] Zhao X, Sun P, Xu Z, et al. Fusion of 3D LIDAR and camera data for object detection in autonomous vehicle applications[J]. IEEE Sensors Journal, 2020, 20(9): 4901-4913.
[15] Huang Z, Lv C, Xing Y, et al. Multi-modal sensor fusion-based deep neural network for end-to-end autonomous driving with scene understanding[J]. IEEE Sensors Journal, 2020, 21(10): 11781-11790.
● 相关图表链接:
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/122650344
- 点赞
- 收藏
- 关注作者
评论(0)