红绿灯检测与识别方法与流程

文档序号:12365593阅读:6648来源:国知局
红绿灯检测与识别方法与流程
本公开属于计算机视觉和物体检测
技术领域
,尤其是涉及一种红绿灯检测与识别方法。
背景技术
:在行车过程中自动检测出前方的红绿灯的位置和状态是高级辅助驾驶和无人驾驶中一种重要的技术。通常情况下由于复杂的交通场景,剧烈变化的光照,以及相机的分辨率,使得红绿灯的检测变得比较困难。目前,对于红绿灯的检测方法有三大类:第一类是基于图像处理的方法。该方法通过阈值分割,形态学变换等操作对图像进行处理,得到图片中感兴趣的物体区域,然后通过特定的先验知识,如区域连通性,长宽比,形状,相对位置等,处理这些区域,层层筛选,最后得到的就是红绿灯所在的区域,通过设定颜色阈值或利用特殊的颜色空间判断出红绿灯的颜色。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”中提出的方法,通过对训练集中的样本进行学习,能够自适应的进行背景过滤,从而得到感兴趣的目标区域,然后再对得到的结果进行分类。基于机器学习可以有效的避免人工设置多种阈值,通过学习得到的模型,更加具有普适性。此类方法正逐渐成为目标检测领域的主流算法。技术实现要素:本公开的实施例公开了一种红绿灯检测与识别方法,包括计算训练集的样本的多个通道特征,池化多个通道特征以用于训练检测器,计算输入图像的特征金字塔,以及使用所训练的检测器通过滑动窗口对特征金字塔不同尺度的特征进行检测以得到目标区域。在一些实施例中,使用非极大值抑制方法以选择的阈值对所得到的目标区域进行筛选以得到最终目标区域。在一些实施例中,使用黒帽变换和边缘检测以选择的阈值对最终目标区域进行精确化。在一些实施例中,利用训练集样本的多个通道特征训练支持向量机多分类器。在一些实施例中,使用所训练的支持向量机多分类器预测精确化的最终目标区域中红绿灯的类别。在一些实施例中,训练集包括作为正样本的图片和作为负样本的图片。在一些实施例中,多个通道特征包括颜色通道特征和梯度方向直方图特征。在一些实施例中,池化多个通道特征包括对进行区域分割后的通道特征进行池化。在一些实施例中,训练检测器包括采用决策树森林来训练检测器,以及通过多次迭代对每个阶段得到的检测器进行级联。在一些实施例中,计算输入图像的特征金字塔包括计算不同尺度下输入图像的多个通道特征。本公开的实施例所公开的红绿灯检测与识别方法可以解决现有技术中的至少一些上述不足,解决复杂场景下的红绿灯检测问题。本公开的实施例通过学习物体的积分通道特征,并且通过池化对积分特征进行抽象,利用级联的决策树森林快速检测出物体,同时利用红绿灯特有的空间分布先验对检测目标进行约束,这可以有效的减少误检,进而提高检测的精确度。使用本公开的方法,能够在不同光照条件和天气条件下得到较好的检测效果,同时能够有效地应对形变的影响。附图说明本公开提供了附图以便于所公开内容的进一步理解,附图构成本申请的一部分,但仅仅是用于图示出体现发明概念的一些发明的非限制性示例,而不是用于做出任何限制。图1是根据本公开一些实施例的红绿灯检测与识别方法的流程图。图2是根据本公开一些实施例的红绿灯检测与识别实验结果的图示。图3是根据本公开一些实施例的红绿灯检测与识别实验结果的图示。具体实施方式下文将使用本领域技术人员向本领域的其它技术人员传达他们工作的实质所通常使用的术语来描述本公开的发明概念。然而,这些发明概念可体现为许多不同的形式,因而不应视为限于本文中所述的实施例。提供这些实施例是为了使本公开内容更详尽和完整,并且向本领域的技术人员完整传达其包括的范围。也应注意这些实施例不相互排斥。来自一个实施例的组件、步骤或元素可假设成在另一实施例中可存在或使用。在不脱离本公开的实施例的范围的情况下,可以用多种多样的备选和/或等同实现方式替代所示出和描述的特定实施例。本申请旨在覆盖本文论述的实施例的任何修改或变型。对于本领域的技术人员而言明显可以仅使用所描述的方面中的一些方面来实践备选实施例。本文出于说明的目的,在实施例中描述了特定的数字、材料和配置,然而,领域的技术人员在没有这些特定细节的情况下,也可以实践备选的实施例。在其它情况下,可能省略或简化了众所周知的特征,以便不使说明性的实施例难于理解。此外,下文为有助于理解说明性的实施例,将各种操作依次描述为了多个离散的操作;然而,所描述的顺序不应当被认为是意味着这些操作必须依赖于该顺序执行。而是不必以所呈现的顺序来执行这些操作。下文中的“在一些实施例中”,“在一个实施例中”等短语可以或可以不指相同的实施例。术语“包括”、“具有”和“包含”是同义的,除非上下文中以其它方式规定。短语“A和/或B”意味着(A)、(B)或(A和B)。短语“A/B”意味着(A)、(B)或(A和B),类似于短语“A和/或B”。短语“A、B和C中的至少一个”意味着(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。短语“(A)B”意味着(B)或(A和B),即A是可选的。图1示出了根据本公开一些实施例的红绿灯检测与识别方法的流程图。本公开实施例中的红绿灯检测与识别使用预先准备的不同场景和光照条件下的红绿灯的样本作为正样本,同时将一定数量的无红绿灯的帧作为背景图片。在构成用于红绿灯检测与识别的训练集(即数据集)时,将作为正样本的红绿灯图片以固定的尺寸输入,而从无红绿灯的背景图片中按照所输入正样本的尺寸进行随机取样,得到负样本。在作为正样本的红绿灯图片原始尺寸不一时,可对其进行缩放以调整到固定尺寸。在一些实施例中,如上述抽取的正样本与负样本构成用于后续机器学习过程的训练集,如步骤S101、S102、S103和S104所示。在步骤S105、S106中,计算包括正样本和负样本的训练集的多个通道特征。多个通道特征可以包括颜色通道、梯度大小和梯度方向直方图特征等。在一些实施例中,可将训练集的样本转换到HSV颜色空间,并通过下式计算三个通道的特征:colorfeature(i,j)=H(i,j)S(i,j)V(i,j)---(1)]]>其中i,j代表图片的空间坐标,H,S,V分别对应三个不同通道的取值。H表示色彩,取值为0-254。例如,红色对应0,绿色对应120,蓝色对应240;S表示饱和度即色彩的亮度;V表示色调。在一些实施例中,可计算训练集的样本的梯度方向直方图特征,样本图像中每个像素的梯度方向值可通过下式计算:Gx(x,y)=H(x+1,y)-H(x-1,y)(2)Gy(x,y)=H(x,y+1)-H(x,y-1)上式中H(x,y)表示灰度空间中的像素值,Gx(x,y),Gy(x,y)分别表示在(x,y)处水平和垂直方向的梯度。由此可得梯度大小和方向为:G(x,y)=Gx(x,y)2+Gy(x,y)2---(3)]]>∂(x,y)=tan-1(Gy(x,y)Gx(x,y)).]]>然后可按照指定的单元大小,将单元中每个像素的梯度按方向在不同的区间进行投票。每个区间角度范围为360/N,其中N为梯度方向的数量。最后即可得到整个单元的梯度方向直方图,然后再将整个图像的直方图串联起来,得到如下式所示梯度方向直方图特征:gradfeature(i,j)=∂(i,j,n)---(4)]]>其中i,j为图片的坐标,n=1,2…N,表示不同梯度方向所对应的区间号。在一些实施例中,整张图像的特征可以表示为颜色通道特征和梯度方向直方图特征的集合:Feature(i,j)=colorfeature(i,j)gradfeature(i,j)---(5)]]>按以上公式计算训练集样本的多个通道特征之后,可以对所得到的通道特征进行区域分割,确定每一块区域的大小作为池化的大小。然后对各个区域进行最大值池化(maxpooling)或平均值池化(averagepooling),得到池化后的通道特征,如步骤S107所示。在一些实施例中,对池化之前和之后的通道特征进行处理,例如统一特征的维度,并将处理结果组合得到最终的通道特征以用于训练检测器。在步骤S108中,采用决策树森林来训练检测器。在一些实施例中,可以通过AdaBoost算法,采用决策树来训练检测器。通过多次迭代对每个阶段得到的检测器进行级联。在检测器训练过程中对于Adaboost输出层目标函数添加红绿灯空间分布概率约束得到目标函数其中是空间分布概率,x和y是红绿灯的空间坐标,ht(x)在此为决策树分类器,αt为每个分类器对应的权重。在步骤S109中,获得经训练的检测器。接着可以输入待分析的图像,并计算输入图像的多尺度下的图像特征。在步骤S110中将待测试的图像作为输入,并随后在步骤S111中计算不同尺度的特征,用于构建不同尺度的特征金字塔。在一些实施例中,采用下式计算不同尺度下图像的多通道特征:Fs=R(F,s)×s-λΩ---(6)]]>其中Fs表示尺度s对应的特征,R表示对图像使用尺度s重采样,F=Ω(I)表示图像对应通道的特征,Ω对应于不同的特征通道。而对应于不同特征通道的参数λΩ通过联立以下公式进行计算:μs=1NΣi=1NfΩ(Isi)/fΩ(Ii)---(7)]]>其中μs为统计数据集整体特征随着尺度变换的均值。fΩ(Is1)/fΩ(Is2)=(s1/s2)-λΩ+ϵ---(8)]]>μs=s-λΩ+E[ϵ]---(9)]]>其中E[ε]表示误差的期望值,fΩ(Is)为所有通道的加权和。fΩ(I)=Σi,j,kωi,j,kF(i,j,k)---(10)]]>其中ω特征是对应通道的权重,k表示通道的序列。联立求解得到λΩ后,可使用以下公式得到图像的特征金字塔:Fs≈R(Fs′,s/s′)×(s/s′)-λΩ---(11)]]>其中Fs′是通过标准方法计算出来的特征,其它尺度s对应的特征Fs通过上述公式进行近似得到。所有尺度S对应的特征集合构成特征金字塔。在步骤S111中得到特征金字塔所包括的待检测图像的不同尺度的特征后,通过使用步骤S109中训练的检测器,在步骤S112中使用滑动窗口在各个尺度进行检测从而得到步骤S113中所示的目标候选区域。在步骤S114中,在一些实施例中,对于得到的候选区域采用非极大值抑制方法以预先确定的阈值筛选出最终目标区域。非极大值抑制中可以对于检测得到的边界框计算其重叠率:overlap=intersection(bbs)。如果overlap大于阈值τ,则只保留得分最高的bbsi。其中τ的取值设为0.5,bbs的得分由决策树的节点对应的阈值求和得到。应注意本领域技术人员可以设想阈值的取值可以根据图像和应用场景的实际情况而任意进行选择。可选地,在一些实施例中可如步骤S115所示,对所得的最终目标区域采用黒帽变换和边缘检测,通过选择合适的阈值进一步精确化最终目标区域。应注意本领域技术人员可以设想阈值的取值可以根据图像和应用场景的实际情况而任意进行选择。黒帽变换blackhat=Close(I,filter)-I可以用于突出图像中偏暗的区域,对非极大值抑制所得到的最终目标区域进行黒帽变换可以用来去除红绿灯周围的背景,获得更加精确的红绿灯区域。其中Close()为数学形态学中的闭运算,黒帽变换是图像的闭运算与原图像之差。在步骤S116中,得到精确化的最终目标区域。可选地,在步骤S117中可以利用多尺度的特征金字塔特征使用支持向量机(SVM)训练一个多分类器,并对最终得到的检测区域进行分类,从而确定红绿灯的类别。在一些实施例中,可以利用上述训练集中的正负样本以及之前计算的多通道特征训练一个SVM多分类器。可对应于精确化的最终目标区域,利用检测时计算得到的通道特征以训练好的SVM模型进行预测从而得到红绿灯的类别。本公开通过对多通道特征的利用,充分挖掘不同场景中红绿灯的信息,使其得到更加准确的特征表达,通过池化操作可以有效的应对形变带来的影响。采用级联的决策树森林检测器,能够实现对目标的快速检测。通过添加空间分布概率约束,优化检测器目标函数,有效去除误检。使用滑动窗口充分搜索图像所在空间,定位红绿灯出现的区域,并通过形态学处理进一步精确检测区域,从而提升物体检测的效果。通过学习得到的模型能够更好地扩展到不同的场景,同时能够更好地应对不同的光照变化等其它因素的影响。在中央处理器为i5-34703.2GHzCPU、内存为16G、OS为WINDOWS10操作系统的环境下,运用MATLAB软件对本公开实施例的方法进行了实验验证。实验中使用的数据为的真实的道路场景视频序列。在验证过程中首先从34个预先标注好的视频片段中选出包含有红绿灯的图像,并如以上步骤所述训练模型得到训练后的检测器。然后按照上述步骤S110-S117对4个视频进行实验以检测红绿灯。将精确率和召回率,即查准率和查全率作为衡量检测效果的指标,检测效果如表格1和2所示。红灯绿灯背景负样本199421267258000表格1视频序号帧数准确率召回率13600.99290.821324200.98540.878234820.97160.903343100.94860.9245表格2训练集中共有包括红灯和绿灯的共4120个正样本,从725个背景图片中进行上文所述的随机取样,得到8000个样本作为训练的负样本。经检测,本文实施例的方法的平均精确率约为97.46%,平均召回率约为88.18%,这表明本方法的整体检测性能较好。图2和图3分别示出了根据本公开一些实施例的红绿灯检测与识别实验结果的图示。图2和图3的结果显示在雨天和强光照条件下本公开实施例的方法均能准确检测出红绿灯并判断出红灯和绿灯。本公开实施例的方法也具有足够的鲁棒性以应对天气和光照变化的影响。本文中的部分方法步骤和流程可能需要由计算机执行,从而以硬件、软件、固件及其任何组合的方式来实施,并且可以包括计算机可执行的指令。该计算机可执行的指令可以以计算机程序产品的形式存储在机器可读介质上或者以从远程服务器下载的方式进行提供,并由通用计算机、专用计算机和/或其他可编程数据处理装置的一个或多个处理器读取和执行以实现方法步骤和流程中指明的功能/动作。机器可读介质包括但不限于软盘、光盘、压缩盘、磁光盘、只读存储器ROM、随机存取存储器RAM、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、存储卡、闪存和/或电、光、声以及其他形式的传播信号(例如载波、红外信号、数字信号等)。另外需注意,本文中的术语“和/或”可表示“和”、“或”、“异或”、“一个”、“一些但不是全部”、“两者皆不”和/或“两者皆是”,但在此方面并无限制。本文虽然已经示出和描述了本公开的具体实施例,但对本领域技术人员显然可以在不脱离所附权利要求书范围的情况下进行众多改变、变化和修改。另外,在上述具体实施方式中,可看到各种特征在单个实施例中组合在一起以便简化公开内容。此公开方式不应解释为反映要求保护的实施方式需要比每个权利要求项明确所述的具有更多特征。相反,如权利要求所反映的一样,本公开的主题依赖的是比单个公开实施方式所有特征更少的特征。因此,权利要求书的每个权利要求项本身保持为单独的完整的实施例。综上,本领域技术人员将认识到在不脱离本公开的范围和精神的情况下,可在更广阔的各方面中进行改变和修改。所附权利要求书在其范围内涵盖了落入本公开真实范围和精神内的所有此类改变、变化和修改。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1