深度神经网络在基于视觉的目标检测中的应用

网友投稿 698 2022-05-30

简 介:

目标检测是计算机视觉的一个重要应用方向,深度神经网络的提出极大地帮助基于视觉的目标检测提高了准确度。自2014年以来,深度神经网络在基于视觉的目标检测中被广泛应用,出现了多种算法。本文分别讨论两阶段和一阶段算法的主要思路、发展过程以及实现效果等,最后结合相关领域的一些成果讨论基于视觉的目标检测未来可能的应用模式。

关键词:

目标检测,神经网络,R-CNN,YOLO

两阶段法

目 录

Contents

一阶段法

自动驾驶

总结与展望

参考文献

两阶段法

目 录

Contents

一阶段法

自动驾驶

总结与展望

参考文献

神经网络解决计算机视觉中的目标检测问题主要有两阶段和一阶段两种主要思路。两阶段法主要以R-CNN[1]及其后续的改进版本等为代表,一阶段法主要以YOLO[2]及其改进版本为代表。

阶段算法的输入是一张原始图片,算法从原始图片中提取出若干候选区(Region Proposal),之后对候选区中的图片进行分类和回归。

两阶段法的首次提出是Girshick R等人在2014年提出了R-CNN[1],他们给出的算法流程如下图。

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]。

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回归,使得目标的定位更精确。

阶段法是端到端的方法,输入一张图片,网络直接输出bounding box和其中各个类别的可能性。

一阶段法的提出晚于两阶段法。Redmon J等人在2016年首次提出了YOLO[2]。

整个目标检测过程被视为一个回归问题,各个类别的可能性和bounding box由同一个代价函数评估。不同于两阶段中不同部分需要各自训练,YOLO在训练时整个网络可以一次性训练。YOLO将图片分为若干单元格,每个单元格预测若干bounding box和目标概率,此后所有信息被综合考虑和回归。

YOLO的目标检测速度非常快,可以达到45fps,其快速版甚至可以达到150fps[2]。因为YOLO是对一张图片整体预测,所以不会被局限在某个小区域内,使得算法的背景误检率很低——而相应的,当同一个单元格内或者整张图片中有大量目标或者有很小的目标时,YOLO漏检率较高。

2018年Redmon J等对YOLO进行了进一步改进,优化了网络结构、Bounding Box算法,用多标签分类取代了softmax,形成了YOLOv3[11]。YOLOv3相比YOLOv2具有更大的网络规模,这使得它有更高的准确度,但同时仍然保持着很好实时性。

标检测的一个重要应用领域是自动驾驶。自动驾驶中通常用激光雷达感知周围环境的深度信息,用摄像头采集环境的纹理和色彩等。基于视觉的目标检测和雷达探测融合后可以得到更丰富的环境的三维信息。

视觉和激光融合的目标检测的一种思路是将激光数据作为先验,利用激光雷达采集的点云数据对摄像头视野内的目标进行预分类,根据传感器的标定和转换矩阵产生摄像头图像平面内的Region Proposal,之后由神经网络进行分类和回归。其工作流程类似R-CNN。Zhao X等人在他们2020年的文章[14]中就采用了这种思路。另外他们还指出,将候选框同时应用在最后三个卷积层内,再将它们分别RoI Pooling的结果加权相加输入分类网络,可以提高网络对小目标的检测能力。

视觉和激光的另一种融合方式是数据层融合,之后用端到端的方式处理融合后的数据,Huang Z等人的工作[15]就应用了这种思想。

工神经网络,特别是深度网络显著提高了基于视觉的目标检测的准确度。各种算法都在追求准确度和实时性的平衡,其中R-CNN等两阶段法的算法准确度较高,而YOLO等一阶段法能保证很强的实时性而准确度略低。深度神经网络虽然识别能力强,但是对算力要求高,所以也有很多学者进行了网络压缩等工作,使得应用神经网络的目标检测算法在嵌入式系统中也能运行,为算法的真正落地应用创造可能性。

深度神经网络在基于视觉的目标检测中的应用

另外在自动驾驶领域多传感器融合是重要的发展方向,基于视觉的目标检测算法和激光雷达等传感器数据融合是目标检测的一个发展方向。其融合方式可能是两阶段法的第一阶段由其他传感器数据的处理方法替换,也可以是其他传感器数据的处理算法应用基于视觉的目标检测结果,还可以是在数据层融合其他传感器数据,之后采用端到端的方法做目标检测等。

参考文献

[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.

● 相关图表链接:

图1.1 R-CNN算法流程

图1.2 算法中的数据增强

图2.1 YOLOv1算法流程

图2.2 YOLOx算法

图4.1 算法不同的结构

神经网络

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:深入理解IO复用并发模型
下一篇:Java并发编程基础之线程间通信
相关文章