基于位置相关的卷积与Fire模型的红绿灯检测方法与流程

文档序号:11287333阅读:560来源:国知局
基于位置相关的卷积与Fire模型的红绿灯检测方法与流程

本发明属计算机视觉、物体检测技术领域,具体涉及一种基于位置相关的卷积与fire模型的红绿灯检测方法。



背景技术:

车辆行驶过程中能够准确,快速地确定前方的红绿灯的位置和状态是高级辅助驾驶和无人驾驶中一种重要的技术。然而由于真实交通场景的复杂,如剧烈变化的光照、天气、遮挡等因素的影响,以及成像设备的分辨率差异等问题,使得真实场景中的红绿灯的检测比较困难。随着深度学习的流行,其在目标检测,图像识别,图像分割等多个计算机视觉领域都取得令人震惊的效果。将深度学习的方法应用在红绿灯检测上能够较好的处理上述存在的问题。目前,对于红绿灯的检测方法有三大类:

第一种是基于图像处理的方法。该方法通过阈值分割,形态学变换等操作对图像进行处理,得到图片中感兴趣的物体区域,然后通过特定的先验知识,如区域连通性、长宽比、形状、相对位置等,处理这些区域,层层筛选,最后得到的就是红绿灯所在的区域,通过设定颜色阈值或利用特殊的颜色空间判断出红绿灯的颜色。r.decharette等人在文献“r.decharetteandf.nashashibi,realtimevisualtrafficlightsrecognitionbasedonspotlightdetectionandadaptivetrafficlightstemplates,ieeeintelligentvehiclessymposium,pp.358-363,2009”中提出了一种红绿灯检测的方法,该方法通过图像形态学变换,阈值分割,得到物体候选区域,然后利用外观比来筛选候选区域,最后通过模板匹配来获得红绿灯的状态。其不足之处是无法适应多变的场景,阈值过于敏感,不够鲁棒。

第二种是基于地图定位的方法,通过准确的gps测量和人工标注的红绿灯信息,得到更加准确地红绿灯先验知识,在接近红绿灯的时候,利用几何变换得到物体的候选区域,然后在候选区域上进行分类。v.john等人在文献“v.john,k.yoneda,z.liu,ands.mita,saliencymapgenerationbytheconvolutionalneuralnetworkforreal-timetrafficlightdetectionusingtemplatematching.ieeetrans.computationalimaging,vol.1,no.3,pp.159-173,sept.2015”中提出通过gps生成离线的显著性地图,利用车载相机参数在接近红绿灯的时候,通过三角法获得红绿灯出现的区域,接着采用卷积神经网络和模板匹配来检测红绿灯类别。其不足在于过于依赖传感器设备,同样的效果下,成本过高。

第三种是基于机器学习的方法,如shi等人在文献“z.shi,z.zhou,andc.zhang,real-timetrafficlightdetectionwithadaptivebackgroundsuppressionfilter.ieeetrans.intelligenttransportationsystems,vol.17,no.3,pp.690-700,oct.2015”中提出通过对训练集中的样本进行学习,能够自适应的进行背景过滤,从而得到感兴趣的目标区域,然后再对得到的结果进行分类。基于机器学习可以有效的避免人工设置多种阈值,通过学习得到的模型,具有更强的泛化能力。深度学习作为机器学习的一个分支,相比于传统的机器学习模型,具有更加强大的学习能力,目前逐渐成为目标检测领域的主流算法。



技术实现要素:

为了提高检测准确度的同时检测多种类型的红绿灯,本发明提出了一种基于位置相关的卷积与fire模型的红绿灯检测方法。该方法的主要思想是:采用串联多个fire模型作为主干卷积网络firenet,并在firenet最后一层特征图后面添加位置相关的卷积层,在减少网络参数的同时提高定位的精确度,利用该网络可以有效地检测较小的和多种类别的红绿灯,同时能够有效应对不同光照和天气等复杂场景,得到较好的检测效果。

一种基于位置相关的卷积与fire模型的红绿灯检测方法,其特征包括以下步骤:

步骤1:采集真实交通场景中各种条件下的红绿灯样本,对采集到的每一帧图像进行标注,标注出红绿灯的边界框和具体类别,将标注后的图片集分为训练集和测试集,分别用于网络模型的训练与验证,训练集图片数量大于测试集图片数量;所述的类别包括水平和垂直两个方向的绿灯、红灯、绿灯直行、绿灯左转、红灯直行、红灯左转等;

步骤2:将n个fire模型串联起来组合成主干卷积网络firenet,以用来提取特征;其中,所述的fire模型为由m1个卷积核大小为1×1和m2个卷积核大小为3×3的卷积层组合而成,n>5,m1>2,m2>2;

步骤3:利用步骤1得到的训练集,对主干卷积网络firenet进行分类预训练,得到网络初始化权重;

步骤4:在主干卷积网络firenet的最后一层特征图后添加一个基于anchor的轻量级检测层;在主干卷积网络firenet最后一层的特征图后添加位置相关的卷积层;再添加一个池化层将基于anchor的检测层和位置相关的卷积层结合起来,得到最终的网络;

步骤5:利用步骤3得到的初始化权重对步骤4得到的最终的网络进行初始化,再利用步骤1得到的训练集对其进行训练,并用训练好的网络对测试图像进行检测,即可得到红绿灯的位置和具体类别。

本发明的有益效果是:采用串联多个fire模型作为主干卷积网络firenet,相比于一般的卷积网络,由于fire模型的参数少、运行空间需求低,更加有利于在嵌入式设备上运行;firenet作为卷积网络具有更强大的特征表达能力,可以充分挖掘不同场景中红绿灯的信息,得到更加准确的特征表达;在firenet最后一层特征图后面添加位置相关的卷积层,可以提高定位的精确度,有效地检测较小的红绿灯,位置相关的卷积层还能够对耦合的卷积特征进行分离,得到红绿灯的不同空间位置信息,从而能够进行更加精确的位置回归;由于采用全卷积,可以减少过程误差的累积,进一步提升检测的精度,同时能够统一处理不同尺度、不同类别的分类问题。

附图说明

图1是本发明的一种基于位置相关的卷积与fire模型的红绿灯检测方法流程图

图2是本发明方法fire模型的示意图

图3是本发明方法位置相关的卷积层模型示意图

图4是利用本发明方法进行红绿灯检测的结果图

具体实施方式

下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。

如图1所示,本发明的一种基于位置相关的卷积与fire模型的红绿灯检测方法,实现步骤如下:

1.准备数据集

对图像进行标注,并生成训练和测试所需的数据集。具体地,通过车载相机等设备采集真实行车过程中不同天气、不同地点、不同时间等各种条件下的红绿灯图片,并对采集到的图像进行逐帧标注,标注出红绿灯的边界框和具体类别,将标注后的图片集分为训练集和测试集,分别用于网络模型的训练与验证,训练集图片数量大于测试集图片数量;所述的类别包括水平和垂直两个方向的绿灯、红灯、绿灯直行、绿灯左转、红灯直行、红灯左转等。

2.设计网络fire模型,并组合得到firenet

fire模型由若干个卷积核大小为1×1和3×3的卷积层组合而成,本实施例中的fire模型由3个卷积核大小为1×1和3个卷积核大小为3×3的卷积层构成,如图2所示。采用卷积核大小为1×1的卷积层极大的减少了参数数量,可以得到较小的模型。3×3的卷积核是能够学习到图像局部结构信息的最小卷积核尺度。根据对模型大小的具体需求,将若干个fire模型串联在一起,得到主干卷积网络firenet。本实施例中将9个fire模型串联在一起构成主干卷积网络firenet。

3.对firenet模型进行预训练

利用步骤1得到的训练集,对主干卷积网络firenet进行分类预训练,本实施例预训练采用随机梯度下降法,对目标分类的损失函数lcls=-logpu进行优化,其中,u是真实类别标签,n为类别数目,e为自然常数,pu是softmax函数,lcls为类别损失函数。通过最小化该损失函数,得到网络初始化权重。

4.添加基于anchor的轻量级检测层

在主干卷积网络firenet的最后一层特征图后添加一个基于anchor的轻量级检测层,即利用ren等人在文献“s.ren,k.he,r.girshick,andj.sun,fasterr-cnn:towardsreal-timeobjectdetectionwithregionproposalnetworks,inproc.neuralinformationprocessingsystems,pp.91-99,2015.”中提出的anchor的思想,设计一个轻量级的滑动窗口检测网络,并添加到主干卷积网络firenet的最后一层特征图后,用于生成候选区域。本实施例中,由卷积核大小为3×3的卷积层构成轻量级的滑动窗口检测网络,包含了4个尺度(25,50,80,120)、3个长宽比(1:2,1:1,2:1)共12个anchor。

5.添加位置相关的卷积层

在firenet最后一层的输出后添加位置相关的卷积层,用来提取红绿灯的空间位置信息。本实施例中采用的位置相关的卷积层如图3所示,将目标的位置信息分为左上、右上、左下、右下和中共五个部分,分别对应红绿灯不同的位置的特征。

6.添加池化层

添加一个池化层将基于anchor的检测层和位置相关的卷积层结合起来,得到最终的网络。

7.训练修改后的网络

利用步骤3得到的初始化权重对步骤6得到的最终的网络进行初始化,再利用步骤1得到的训练集对其进行训练。本实施例采用随机梯度下降方法对多任务损失函数进行优化,多任务损失函数为:

其中,lcls为分类损失函数,p、u分别是预测的类别和真实的类别,pu是softmax函数。lloc是定位损失函数,tu为预测的位置,v是人工标注的结果;[u≥1]表示u≥1时取值为1,否则为0;i为标注框信息,其中,(x,y)为标注的边界框的左上角坐标,w为边界框的宽,h为边界框的高;λ是一个超参数用来平衡两个损失函数,本实施例中λ=2。

采用随机梯度下降方法对该多任务损失函数训练直到收敛,保存训练得到的权重,即得到训练好的网络。

8.红绿灯检测

利用步骤7中训练好的网络对测试图像进行检测,即可得到红绿灯的位置和具体类别。

本实施例在显存12g的k40、centos操作系统中运行,使用python进行仿真实验。实验中使用的训练和测试数据均来自于行车记录仪采集的真实道路场景视频图像,分辨率为1280×720,并对每一帧视频图像标注,最后共选取9000张图片组建训练集,2000张图片组建测试集。选取的图片包含了各种复杂天气条件,如雨天、大雾等,也包含了其它恶劣条件,如强光、逆光、遮挡等。包含了水平和垂直类型的两大类红绿灯,每一大类中又含有绿灯、红灯、绿灯直行、绿灯左转、红灯直行、红灯左转。

图4是其中一幅图像检测结果示意图,由于本发明所使用的数据集相对较难,而且红绿灯目标的尺度普遍比较小,经过多次试验,对于各种类别的红绿灯的平均检测准确率约为68.26%,平均召回率约为89.74%。表明本方法能够有效的检测多种类别的红绿灯,同时保持较低的漏检率。通过fire模型的设计,以双精度数据类型保存网络权重参数,最后的网络权重模型大小为4.4mb,远低于vgg16,resnet101的网络模型的权重参数,可以用于车载嵌入式平台上。通过位置相关的卷积层的设计,使得仅通过检测就能得到比较准确的定位效果,同时对于远距离小目标红绿灯的检测有一定的促进作用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1