车辆实例分割算法研究
来源:用户上传
作者:
摘 要:Mask R-CNN在目标检测中具有很大的优势,算法使用深度神经网络对目标进行提取特征,具有较高的检测准确度。但是如果直接使用Mask R-CNN检测车辆会存在远场景小目标车辆检测漏检的问题。针对这个问题文章在特征提取时使用ResNeXt-101-FPN网络代替Resnet残差特征金字塔网络,提高准确率的同时减少计算量。
关键词:Mask R-CNN;目标检测;车辆检测;特征提取
Abstract: Mask R-CNN has great advantages in target detection. The algorithm uses deep neural networks to extract features from targets, and has higher detection accuracy. However, if Mask R-CNN is used to detect vehicles directly, there will be a problem of missed detection of small target vehicles in far scenes. In order to solve this problem, this paper uses ResNeXt-101-FPN network instead of Resnet residual feature pyramid network in feature extraction, to improve accuracy and reduce calculation amount.
引言
车辆检测是智能车辆辅助系统[1]的核心算法,车辆检测的准确性和实时性直接影响到智能车辆辅助系统,直接涉及到车辆的安全,错误的车辆检测会影响辅助系统的判断,造成安全隐患。对于要在道路上使用的车辆检测和跟踪系统,实时性是必需的,Mask R-CNN具有检测精度高、速度快、实例分割效果好的优点。但如果直接把它应用在车辆检测上,存在小目标的车辆检测效果不好以及漏检的问题。本文针对这一问题对算法进行了优化,改进了算法中的特征提取网络,提高了准确率的同时运算量也相应地减少。
1 车辆实例分割算法流程
实例分割比目标检测更为复杂,目标检测通常仅预测对象边界框,而实例分割技术使得模型可预测像素级度量深度的结果。
Mask R-CNN是实例分割任务的首选网络,同时学习语义和几何表示,确定每个对象中每个像素的类别和空间关系,不仅对同一类别的物体区域进行分割,还对不同类的物体区域进行分割。例如:在像素级别描述物体的轮廓并标出物体的位置。Mask R-CNN除了进行分类和边界框预测之外,还预测每个候选区域的分割掩码。
Mask R-CNN工作的原理是采用双线性插值法的区域候选网络,保留小数位的像素值的计算结果,能够让在特征图上计算出来的回归框不会因为一系列操作而导致像素的移动,避免了特征图与原始图像出现不对应、不对齐的情况发生,能够有效地提升检测精度。经过区域候选网络处理过后的特征图就可以立即进入到全连接网络中进行分类与回归。Mask R-CNN作为一个在像素级别进行分割的网络,在进行分类和回归的时候,加入了一个并行掩膜分支,分支经过一个全连接的网络之后,会把目标之内的像素进行相应分类,从而输出一个覆盖目标的可视化掩膜范围。
Mask R-CNN在多目标下的目标检测、目标分类以及像素级别的目标物体分割取得了良好的效果,所以本文使用Mask R-CNN进行车辆的实例分割检测。
Mask R-CNN车辆的实例分割检测可分为两个部分:训练部分和检测部分,如图1所示。首先车辆实例分割算法进行样本采集、选出候选区域并在ImageNet分类中预先训练网络权重,Mask R-CNN[2]的神经网络通过学习参数进行调整,直到训练收敛到局部最优。然后對检测模块输入的图像进行车辆实例分割,输出最后的车辆检测结果。
2 特征提取网络结构设计
传统的算法[3-4]通常使用加深网络的方法提高准确率,但此方法会使参数增加,从而增加了计算量,而且网络也不好设计,因此本文不采用传统的改进方法,而是在Mask R-CNN的特征提取时使用ResNeXt-101-FPN网络代替Resnet残差特征金字塔网络。一个101层的ResNeXt网络,和一个200层的ResNet网络所得到的准确率差不多,但是计算量却是少了一半,所以本文替换特征提取网络。如表1所示,ResNet-101-FPN和ResNeXt-101-FPN在Mask R-CNN上进行对比可以发现使用ResNeXt-101-FPN效果更好,而且需要的参数也少,能够在提高准确率的同时减少计算量。
由表1可知,虽然ResNeXt总的通道数量比ResNet多,但是两者的参数数量是相似的,车辆检测的车型不是很多,对于网络层数要求就不是很高,所以本文没有增加网络层数。
3 实验结果与算法比较
为了验证本文提出的算法,本节对实例分割车辆检测算法进行实验。首先给出了实验参数和其他相关设置,其次考虑到训练Mask R-CNN必须有目标分割[5]的标注,最终选用Cityscapes公共数据集进行实验。
3.1 测试
(1)实验参数和相关设置
本文在ubuntu 16.04(x64)、python3.5、Cuda-9.0、cudnn-7.0、TensorFlow 1.10.0上进行实验。并使用深度学习的环境下的pycharm软件进行实验测试。
(2)实验数据集
数据集使用最近发布的城市道路的Cityscapes数据集,该数据集是在晴朗天气下从多个城市收集的,它包含5000张图像,图像标记20类的实例和语义分割。整个图像中的2975张用于训练,500张用于验证和1525张用于测试。
(3)实验模型
采用基于ResNeXt网络的Mask R-CNN算法进行车辆实例分割检测实验,通过替换一个网络结构减少参数计算并提高了准确率。
3.2 算法比较
Mask R-CNN虽然在小目标的识别检测方面优于常规的深度学习算法,但是在小目标的识别检测上仍然会存在漏检的情况,本文算法对Mask R-CNN进行了改进,使用Cityscapes的验证集进行测试。选取一部分的图像进行结果分析,对图像中检测到的车辆进行标记,并对成功检测到的车辆分别进行统计,算法执行在GPU上达到了37 fps的速度。
表2对小目标车辆检测结果进行了统计,第一列表示车辆的数量属性,第二列是使用原始算法对小目标车辆的检测,第三列是改进的算法对小目标车辆的检测,可看出改进的算法在小目标的检测中准确率比原始的算法提高了很多。相比于原始算法本文算法准确率从79%提高到了86%,提高了7%。
4 结束语
本文对基于Mask R-CNN的车辆实例分割模块进行了改进,通过设计一个特征提取区域候选获取分割算法的权重和参数及检测目标验证完成了车辆的实例分割检测,然后对本文提出的车辆检测方法进行了实验验证。从实验结果的统计结果来看,与原始算法相比,本文提出的改进算法能更准确地检测车辆,以及具有更好的小目标车辆检测能力,在提高准确率的同时减少了计算量。
参考文献:
[1]聂尧.车辆安全辅助驾驶技术浅析[J].交通与运输,2008(2):146-148.
[2]K.He,G.Gkioxari,P.Dollar,R.Girshick.Maskr-cnn[J].arXiv:1703.06870,2017
[3]李婷婷.基于视觉的前方车辆识别技术研究[D].华南理工大学,2016.
[4]马永杰,马云婷.结合CNN多层特征和SVM的车辆识别[J].激光与光电子学进展,2019,56(14):47-53.
[5]江宛谕.基于深度学习的物体检测分割[J].电子世界,2018(15):19-20+23.
转载注明来源:https://www.xzbu.com/1/view-15193182.htm