论文部分内容阅读
摘 要:目标检测是计算机视觉中的一个关键任务,其中YOLOv3算法检测速度较快,但存在边界框定位不准,且对小目标检测精度不高的问题。针对以上问题,本文提出了一种基于改进YOLOv3的人车信号灯识别方法,以获取自动驾驶中所需要的道路交通信息。本文基于Apolloscape数据集中的视频或图像,首先通过K-means聚类计算获得新的anchors值,替换原始YOLOv3模型中的数据集参数,并利用高斯分布特性增加对边界框准确度的判断,再采用改进后的YOLOv3模型对行人、车辆和信号灯等道路交通信息进行检测,实现了端对端的运动目标检测,实时性良好。实验结果与仿真数据呈现出良好的一致性,研究结果表明,相比于原始YOLOv3模型,本文提出的改进的YOLOv3算法具有实时性强、精准度高等优点,在准确度、召回率和平均IOU值上均有提升。
关键词:人车信号灯目标检测;YOLOv3;K-means聚类;深度学习
中图分类号:U491.5 文献标识码:A
0 引言
全自动驾驶是汽车工业未来的发展方向,国际自动机工程师学会根据智能程度将自动驾驶分为L0-L5共六个级别。其中辅助驾驶相当于L1和L2级的自动驾驶。多种辅助驾驶技术已经被广泛应用,其应用能力和操作权限也处于逐步提升阶段,但由于技术和成本的限制,完全无人驾驶尚处于实验和验证阶段。
随着社会发展,自动驾驶成为当前热门话题之一。自动驾驶系统首先需要获取道路交通信息,主要有浅层学习和深度学习两种方法[1]。浅层学习主要依据模板与图像稳定的特征点获取模板与场景中对象的对应关系来检测目标,使用Canny[2]和粒子群SVM[3]。近年来,基于卷积神经网络的深度学习得到迅速发展,主要分为两类:一类是基于R-CNN算法,需要先使用启发式方法(selective search)或者CNN网络(RPN)产生Region Proposal,然后再在Region Proposal上做分类与回归,虽然精度很高,但速度非常慢。另一类是基于YOLO(You Only Look Once)[4]、SSD(Single Shot Multi-box Detector)[5]这类算法,其仅仅使用一个CNN网络直接预测不同目标的类别与位置。本文检测行人、车辆和信号灯所用到的改进YOLOv3算法结合了特征金字塔,借鉴了残差网络和多尺度预测网络,从而表现出较好的目标检测速度和精准度。这使得此方法在自动驾驶中的应用具有良好的前景。
1 概述
本文提出了一种基于改进YOLOv3的人车信号灯识别方法,以解决原始YOLOv3算法存在的边界框定位不准,且对小目标检测精度不高的问题。本文基于Apolloscape数据集中的视频或图像,首先通过K-means聚类计算获得新的anchors值,替换原始YOLOv3模型中的数据集参数,再采用改进后的YOLOv3模型对行人、车辆和信号灯等道路交通信息进行检测,可应用于自动驾驶或车辆辅助系统。目标检测流程图如图1所示。
2 YOLOv3算法原理
本论文所使用的YOLOv3的网络结构如下图2所示,Darknet-53作为骨干网络主要用于提取图像特征,它是全卷积网络,包含有53个卷积层,引入了残差结构。输入为416x416时,Darknet-53特征提取网络将输出三个尺度的特征图,大小分别为13x13、26x26和52x52。将三个不同尺度的特征图通过FPN(Feature Pyramid Network)[6]进行融合,利用多尺度策略帮助网络模型同时学习不同层次的特征信息,最后将融合后的特征输入YOLO层进行类别预测和边界框回归。
YOLOv3采用先验框(anchor box)机制来预测目标边界框,对标注边界框尺寸进行K-means聚类得到一组尺寸固定的初始候选框。先验框尺寸与特征图尺度大小成反比,在较大的特征图上应用较小的先验框,用于检测较小的目标,在较小的特征图上应用较大的先验框,用于检测较大的目标。对于输入图像,YOLOv3按特征图尺度将其划分为S×S个网格,每个单元格会预测B个边界框(bounding box)以及边界框的置信度。所谓置信度其实包含两个方面,一是这个边界框含有目标的可能性大小,二是这个边界框的准确度。前者记为Pr(object),当该边界框是背景时(即不包含目标),此时Pr(object)=0。而当该边界框包含目标时,Pr(object)=1。边界框的准确度可以用预测框与实际框的交并比来表征,记为IOUtruthpred。因此置信度计算公式为:
得到全部预测边界框后,设置阈值将置信度较低的边界框去除,其余边界框经过非极大值抑制得到目标边界框。
3 改进的YOLOv3算法
若两个目标类别均值之间的距离小于预先设定的阈值,则将这两个目标类别合并为一个类;再继续通过上式计算类均值的距離。经过对样本子集的并集进行合并,得到最终的K-means值聚类结果;使用最终生成的聚类结果计算符合本模型使用的anchors值,将新的anchors值替换原始YOLOv3模型中的数据集参数。
在YOLOv3损失函数中利用高斯分布特性增加对每个边界框准确度的预测,以提升网络的精度,YOLOv3算法的损失函数主要从边界框坐标预测误差、边界框置信度误差、类别预测误差这三个方面考虑,其损失函数公式表示为:
其中,S表示图像的网格数,B表示每个网格中预测的边界框数,C表示总类别数,P表示目标属于某一类别的概率,c为类别序号,S2为网格序号,B为边框序号;xi表示属于第i个网格的边界框中心点的横坐标,yi表示属于第i个网格的边界框中心点的纵坐标,wi表示属于第i个网格的边界框的宽度,hi表示属于第i个网格的边界框的高度,λcoord为权重系数,λnoobj为惩罚权重系数,表示第i个网格的第j个边界框是否负责预测这个目标。 利用高斯分布特性改进损失函数,增加对边界框准确度的判断,以边界框中心点x方向坐标为例,修改后的边界框x坐标预测误差计算方法如下式:
式中,tx表示边界框中心点坐标相对于网格左上角x坐标的偏移量,W和H分别表示预测层中网格的数目,K表示先验框的数目。
4 实验结果分析
本文实验环境为1080ti gpu服务器,CUDA版本是10.0,tensorflow版本是2.0,keras版本是2.3,数据集选取的是Apolloscape数据集。Apolloscape发布的整个数据集包含数十万帧逐像素语义分割标注的高分辨率图像数据,涵盖了更复杂的道路状况,同时开放数据集采用了逐像素语义分割标注的方式,是目前环境最复杂、标注最精准、数据量最大的自动驾驶数据集。通过本文改进的YOLOv3模型得到的目标检测结果如下图3。
从图3中,我们可以看到,本文对图像中的行人、车辆和信号灯的识别检测结果表现良好。目标检测结果图中,可以得到行人、车辆和信号灯的类别和置信度,并用不同的颜色标出。在车辆检测中,本文将车辆按车型分为三类进行识别:小车car,卡车truck以及公交车bus。
为了定量评估本文提出的基于改进YOLOv3的人车信号灯识别方法在性能上的优越性,实验使用相同的数据集进行训练与测试,最终得出各项性能测试结果如下表1。相比于原始的YOLOv3模型,本文提出的改进的YOLOv3模型在准确度、召回率和平均IOU值上均有提升。
5 结论
本文提出了一种基于改进YOLOv3的人车信号灯识别方法,以解决原始YOLOv3算法存在的边界框定位不准,且对小目标检测精度不高的问题。本文基于Apolloscape数据集中的视频或图像,首先通过K-means聚类计算获得新的anchors值,替换原始YOLOv3模型中的数据集参数,并利用高斯分布特性增加对边界框准确度的判断,再采用改进后的YOLOv3模型对行人、车辆和信号灯等道路交通信息进行检测,可应用于自动驾驶或车辆辅助系统。目前的工作对信号灯的检测较为单一,还未实现对信号灯指示方向的判断,相关研究将在后续研究中进一步展开。
参考文献:
[1]马立,巩笑天,欧阳航空.Tiny YOLOv3目标检测改进[J].光学精密工程,2020,28(04):988-995.
[2]丁鹏,张叶,刘让,等.结合形态学和Canny算法的红外弱小目标检测[J].液晶与显示,2016,31(08):793-800.
[3]张国梁,贾松敏,张祥银,等.采用自适应变异粒子群优化SVM的行为识别[J].光学精密工程,2017,25(06):1669-1678.
[4]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.
[5]Liu W,Anguelov D,Erhan D,et al.SSD: single shot multibox detector[C].Proceedings of the 2016 European Conference on Computer Vision.Cham: Springer,2016:21-37.
[6]Lin T Y,Dollár P,Girshick R,et al.Feature pyramid networks for object detection[C].Proceedings of the IEEE conference on computer vision and pattern recognition,2017:2117-2125.
[7]Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks.Ren S,He K,Girshick R,et al.IEEE Transactions on Pattern Analysis and Machine Intelligence.2015
[8]李鹏飞,刘瑶,李珣,等.YOLO9000模型的車辆多目标视频检测系统研究[J].计算机测量与控制,2019,27(08):21-24+29.
[9]You only look once:Unified,real-time object detection.Redmon J,Divvala S,Girshick R,et al.Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2016.
[10]YOLO9000:Better Faster,Stronger.Redmon J,Farhadi A.Conference on Computer Vision and Pattern Recognition.2017.
[11]High-Speed tracking-by-detection without using image information.E.Bochinski,V.Eiselein,T.Sikora.2017 14th IEEE International Conference on Advanced Video and Signal Based Surveillance (AVSS).2017.
[12]Feature Pyramid Networks for Object Detection.Tsung-Yi Lin,Piotr Dollár,Ross Girshick,Kaiming He,Bharath Hariharan,Serge Belongie.Computer Vision and Pattern Recognition.2017.
[13]Very deep convolutional networks for large-scale image recognition.Simonyan K,Zisserman A.ICLR.2015.
[14]Faster r-cnn:Towards real-time object detection with region proposal networks.Ren S,He K,Girshick R,et al.NIPS.2015.
[15]An improved tiny-yolov3 pedestrian detection algorithm.ZHANG Y,SHEN Y L,ZHANG J.Optik.2019.
关键词:人车信号灯目标检测;YOLOv3;K-means聚类;深度学习
中图分类号:U491.5 文献标识码:A
0 引言
全自动驾驶是汽车工业未来的发展方向,国际自动机工程师学会根据智能程度将自动驾驶分为L0-L5共六个级别。其中辅助驾驶相当于L1和L2级的自动驾驶。多种辅助驾驶技术已经被广泛应用,其应用能力和操作权限也处于逐步提升阶段,但由于技术和成本的限制,完全无人驾驶尚处于实验和验证阶段。
随着社会发展,自动驾驶成为当前热门话题之一。自动驾驶系统首先需要获取道路交通信息,主要有浅层学习和深度学习两种方法[1]。浅层学习主要依据模板与图像稳定的特征点获取模板与场景中对象的对应关系来检测目标,使用Canny[2]和粒子群SVM[3]。近年来,基于卷积神经网络的深度学习得到迅速发展,主要分为两类:一类是基于R-CNN算法,需要先使用启发式方法(selective search)或者CNN网络(RPN)产生Region Proposal,然后再在Region Proposal上做分类与回归,虽然精度很高,但速度非常慢。另一类是基于YOLO(You Only Look Once)[4]、SSD(Single Shot Multi-box Detector)[5]这类算法,其仅仅使用一个CNN网络直接预测不同目标的类别与位置。本文检测行人、车辆和信号灯所用到的改进YOLOv3算法结合了特征金字塔,借鉴了残差网络和多尺度预测网络,从而表现出较好的目标检测速度和精准度。这使得此方法在自动驾驶中的应用具有良好的前景。
1 概述
本文提出了一种基于改进YOLOv3的人车信号灯识别方法,以解决原始YOLOv3算法存在的边界框定位不准,且对小目标检测精度不高的问题。本文基于Apolloscape数据集中的视频或图像,首先通过K-means聚类计算获得新的anchors值,替换原始YOLOv3模型中的数据集参数,再采用改进后的YOLOv3模型对行人、车辆和信号灯等道路交通信息进行检测,可应用于自动驾驶或车辆辅助系统。目标检测流程图如图1所示。
2 YOLOv3算法原理
本论文所使用的YOLOv3的网络结构如下图2所示,Darknet-53作为骨干网络主要用于提取图像特征,它是全卷积网络,包含有53个卷积层,引入了残差结构。输入为416x416时,Darknet-53特征提取网络将输出三个尺度的特征图,大小分别为13x13、26x26和52x52。将三个不同尺度的特征图通过FPN(Feature Pyramid Network)[6]进行融合,利用多尺度策略帮助网络模型同时学习不同层次的特征信息,最后将融合后的特征输入YOLO层进行类别预测和边界框回归。
YOLOv3采用先验框(anchor box)机制来预测目标边界框,对标注边界框尺寸进行K-means聚类得到一组尺寸固定的初始候选框。先验框尺寸与特征图尺度大小成反比,在较大的特征图上应用较小的先验框,用于检测较小的目标,在较小的特征图上应用较大的先验框,用于检测较大的目标。对于输入图像,YOLOv3按特征图尺度将其划分为S×S个网格,每个单元格会预测B个边界框(bounding box)以及边界框的置信度。所谓置信度其实包含两个方面,一是这个边界框含有目标的可能性大小,二是这个边界框的准确度。前者记为Pr(object),当该边界框是背景时(即不包含目标),此时Pr(object)=0。而当该边界框包含目标时,Pr(object)=1。边界框的准确度可以用预测框与实际框的交并比来表征,记为IOUtruthpred。因此置信度计算公式为:
得到全部预测边界框后,设置阈值将置信度较低的边界框去除,其余边界框经过非极大值抑制得到目标边界框。
3 改进的YOLOv3算法
若两个目标类别均值之间的距离小于预先设定的阈值,则将这两个目标类别合并为一个类;再继续通过上式计算类均值的距離。经过对样本子集的并集进行合并,得到最终的K-means值聚类结果;使用最终生成的聚类结果计算符合本模型使用的anchors值,将新的anchors值替换原始YOLOv3模型中的数据集参数。
在YOLOv3损失函数中利用高斯分布特性增加对每个边界框准确度的预测,以提升网络的精度,YOLOv3算法的损失函数主要从边界框坐标预测误差、边界框置信度误差、类别预测误差这三个方面考虑,其损失函数公式表示为:
其中,S表示图像的网格数,B表示每个网格中预测的边界框数,C表示总类别数,P表示目标属于某一类别的概率,c为类别序号,S2为网格序号,B为边框序号;xi表示属于第i个网格的边界框中心点的横坐标,yi表示属于第i个网格的边界框中心点的纵坐标,wi表示属于第i个网格的边界框的宽度,hi表示属于第i个网格的边界框的高度,λcoord为权重系数,λnoobj为惩罚权重系数,表示第i个网格的第j个边界框是否负责预测这个目标。 利用高斯分布特性改进损失函数,增加对边界框准确度的判断,以边界框中心点x方向坐标为例,修改后的边界框x坐标预测误差计算方法如下式:
式中,tx表示边界框中心点坐标相对于网格左上角x坐标的偏移量,W和H分别表示预测层中网格的数目,K表示先验框的数目。
4 实验结果分析
本文实验环境为1080ti gpu服务器,CUDA版本是10.0,tensorflow版本是2.0,keras版本是2.3,数据集选取的是Apolloscape数据集。Apolloscape发布的整个数据集包含数十万帧逐像素语义分割标注的高分辨率图像数据,涵盖了更复杂的道路状况,同时开放数据集采用了逐像素语义分割标注的方式,是目前环境最复杂、标注最精准、数据量最大的自动驾驶数据集。通过本文改进的YOLOv3模型得到的目标检测结果如下图3。
从图3中,我们可以看到,本文对图像中的行人、车辆和信号灯的识别检测结果表现良好。目标检测结果图中,可以得到行人、车辆和信号灯的类别和置信度,并用不同的颜色标出。在车辆检测中,本文将车辆按车型分为三类进行识别:小车car,卡车truck以及公交车bus。
为了定量评估本文提出的基于改进YOLOv3的人车信号灯识别方法在性能上的优越性,实验使用相同的数据集进行训练与测试,最终得出各项性能测试结果如下表1。相比于原始的YOLOv3模型,本文提出的改进的YOLOv3模型在准确度、召回率和平均IOU值上均有提升。
5 结论
本文提出了一种基于改进YOLOv3的人车信号灯识别方法,以解决原始YOLOv3算法存在的边界框定位不准,且对小目标检测精度不高的问题。本文基于Apolloscape数据集中的视频或图像,首先通过K-means聚类计算获得新的anchors值,替换原始YOLOv3模型中的数据集参数,并利用高斯分布特性增加对边界框准确度的判断,再采用改进后的YOLOv3模型对行人、车辆和信号灯等道路交通信息进行检测,可应用于自动驾驶或车辆辅助系统。目前的工作对信号灯的检测较为单一,还未实现对信号灯指示方向的判断,相关研究将在后续研究中进一步展开。
参考文献:
[1]马立,巩笑天,欧阳航空.Tiny YOLOv3目标检测改进[J].光学精密工程,2020,28(04):988-995.
[2]丁鹏,张叶,刘让,等.结合形态学和Canny算法的红外弱小目标检测[J].液晶与显示,2016,31(08):793-800.
[3]张国梁,贾松敏,张祥银,等.采用自适应变异粒子群优化SVM的行为识别[J].光学精密工程,2017,25(06):1669-1678.
[4]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.
[5]Liu W,Anguelov D,Erhan D,et al.SSD: single shot multibox detector[C].Proceedings of the 2016 European Conference on Computer Vision.Cham: Springer,2016:21-37.
[6]Lin T Y,Dollár P,Girshick R,et al.Feature pyramid networks for object detection[C].Proceedings of the IEEE conference on computer vision and pattern recognition,2017:2117-2125.
[7]Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks.Ren S,He K,Girshick R,et al.IEEE Transactions on Pattern Analysis and Machine Intelligence.2015
[8]李鹏飞,刘瑶,李珣,等.YOLO9000模型的車辆多目标视频检测系统研究[J].计算机测量与控制,2019,27(08):21-24+29.
[9]You only look once:Unified,real-time object detection.Redmon J,Divvala S,Girshick R,et al.Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2016.
[10]YOLO9000:Better Faster,Stronger.Redmon J,Farhadi A.Conference on Computer Vision and Pattern Recognition.2017.
[11]High-Speed tracking-by-detection without using image information.E.Bochinski,V.Eiselein,T.Sikora.2017 14th IEEE International Conference on Advanced Video and Signal Based Surveillance (AVSS).2017.
[12]Feature Pyramid Networks for Object Detection.Tsung-Yi Lin,Piotr Dollár,Ross Girshick,Kaiming He,Bharath Hariharan,Serge Belongie.Computer Vision and Pattern Recognition.2017.
[13]Very deep convolutional networks for large-scale image recognition.Simonyan K,Zisserman A.ICLR.2015.
[14]Faster r-cnn:Towards real-time object detection with region proposal networks.Ren S,He K,Girshick R,et al.NIPS.2015.
[15]An improved tiny-yolov3 pedestrian detection algorithm.ZHANG Y,SHEN Y L,ZHANG J.Optik.2019.