基于色度方向角的离线城市红绿灯识别算法

2019-06-01 07:20:06宋永超巨永锋韩宜轩
北京交通大学学报 2019年2期
关键词:红绿灯绿灯红灯

宋永超,巨永锋,杜 凯,韩宜轩

(长安大学 电子与控制工程学院,西安 710064)

自动驾驶技术已成为智能交通系统最受关注的领域,诸如车辆自主定位、交通对象检测等领域已获得广泛关注[1-2].作为自动驾驶系统和无人地面车辆的重要组成部分,红绿灯的识别同样具有很大的研究价值和现实意义[3-4].实际驾驶环境中,红绿灯的识别也能为驾驶员提供驾驶策略,以及更安全、更智能的驾驶模式[5].

目前,基于红绿灯的识别主要集中在视频图像领域,通过车载摄像头自动捕获红绿灯图像帧的检测、特征提取及分类3个过程,实现红绿灯的状态识别[4].具体方法可以归纳总结为基于模型的方法和基于学习的方法两类.基于模型的方法广泛采用不同的颜色空间,文献[6]提出基于分层视觉架构的实时红绿灯识别算法,使用归一化RGB和HIS的联合颜色空间确定红绿灯候选区域,使用多层HOG特征识别红绿灯.文献[7]采用自适应背景抑制滤波的实时红绿灯识别方法,获取红绿灯候选区域,融合HOG与RGB颜色直方图信息实现红绿灯识别.文献[8]提出基于语义分割的红绿灯识别方法,通过语义分割方法产生红绿灯候选区域,采用基于几何和颜色特征分类器确认红绿灯类别.文献[9]提出使用颜色密度的实时红绿灯识别方法,通过阈值化HSV颜色通道实现候选区域聚类,使用长宽比及经验阈值实现非灯区域滤除,利用颜色密度实现红绿灯分类识别.文献[10]提出基于贝叶斯统计框架的红绿灯识别方法,使用时空一致性条件,保持识别过程的时空连续性,通过对颜色、形状、非活动透镜模式及GIS线索建模实现红绿灯识别.在基于学习的方法方面,文献[11]提出基于深度学习和显著图结合的红绿灯识别方法,使用卷积神经网络提取和识别视觉图像特征,使用正常光照识别产生的显著图辅助识别低光照条件下的红绿灯.文献[12]提出基于多重曝光图像的红绿灯识别算法,通过整合低曝光和正常曝光图像的多重曝光技术解决了色彩饱和问题,利用基于方向梯度直方图的SVM实现红绿灯的分类.文献[13]提出多类学习和多对象追踪的红绿灯识别方法,使用HSV颜色空间和块检测确定红绿灯候选区域,使用训练好的PCANet实现红绿灯逐帧识别.文献[14]通过HSV颜色空间分割红绿灯候选区域,使用最大稳定极值区域定位正确的红绿灯结构,提取红绿灯候选区域和红绿灯结构的HOG特征,使用SVM实现红绿灯分类.文献[5]提出结合先验特征和帧间分析的红绿灯识别方法,以纵横比、面积、位置及上下文信息为先验,通过特征选择、训练多检测器并利用帧间相关分析实现红绿灯识别.

然而,以上基于模型的研究中没有充分考虑运用颜色空间理论时不同帧红绿灯的光照差异(背光、朝光)及同一帧中不同位置处红绿灯的光照变化对识别结果的影响;而基于学习的研究中,对于普通学习方法学习的样本数量及种类存在局限,导致结果普适性较差,对于深度学习方法则需要大量的样本做支撑,同时需要较长的执行时间和昂贵的硬件成本,应用前景较差.基于以上,本文作者提出基于色度方向角的离线道路红绿灯识别算法,采用地平线确定算法,获取红绿灯待识别区域,提出采用手工标定不同场景红灯、绿灯色块,求取红灯、绿灯色块集合图色度方向角,获得各自的色度方向图的方法,建立红绿灯识别分类器,最后通过识别分类器识别不同图像序列中的红绿灯.

1 色度方向角

传统光学传感器模型表明,图像采集设备获取数据是经过光源光谱功率分布、物体表面反射和光谱传感器成像呈现的能量结果.光谱功率分布用E(λ)表示,表面反射函数用S(λ)表示,相机感光函数用Qk(λ)表示[15],则RGB彩色图像三通道值为

k=R,G,B

(1)

式中σ为朗伯特阴影.

假设相机感光函数Qk(λ)是狄拉克δ函数[16],即Qk=qkδ(λ-λk),则式(1)变为

Rk=σE(λk)S(λk)qk,

k=R,G,B

(2)

假设光照近似为普朗克法则[16],则

(3)

式中:k1和k2是常量;T表示光照颜色;I表示光照总强度.

由式(3)近似得到RGB彩色三通道为

k=R,G,B或k=1,2,3

(4)

定义2维色度为

(5)

ρk=ln(ck)=ln(sk/sp)+(ek-ep)/T

(6)

式(6)是以T为参数的直线,二维矢量e=ek-ep的方向独立于物体的表面,对于不同的物体表面,其直线有不同的偏移量,偏移量依赖于sk.

理想状况下,e的方向是相机的固有参数,在普朗克光源,朗伯特反射,窄带传感器3个假设条件同时满足的情况下呈现的结果.但现实中大多数图像传感器都不是窄带类型,使用假设条件存在太多的限制.对使用消费相机拍摄的麦克白颜色方格的校准试验中,很明显没有占主导的方向e,尽管每个颜色表面产生线性细长的点云,但每个主轴的方向并不一致,如图1中log色度图所示.实际测量中e的方向根据图像内容发生变化,把每个颜色方向ei(i为颜色类型)对应的角度θi(0≤θi≤180)称为色度方向角.

色度方向角具有以下特性:

1)每种颜色的主轴方向不一致,有利于差异化区分不同种类的颜色类型;

2)红色、绿色的色度方向角差异明显,为准确区分红灯、绿灯提供基础;

3)采用对数色度空间获取色度方向角,有利于提高光照变化对识别结果影响的鲁棒性.

正是基于色度方向角的上述特性,本文提出将色度方向角应用于城市红绿灯识别研究中.

图1 识别框架整体流程图Fig.1 Overall flow chart for identification framework

2 红绿灯识别算法

本文提出的红绿灯识别算法主要包括红绿灯分类器获取和红绿灯识别两部分.分类器获取阶段:利用几何均值对数色度空间,根据香农熵确定红灯、绿灯各自的色度方向角θ,得到色度方向图Iθ,设定分割阈值建立红绿灯识别分类器.识别阶段:通过地平线确定算法获取红绿灯待识别区域,将色度方向图输入建立的分类器中进行分类识别,并加入几何特征限制因素获取最终识别结果.本文算法整体流程图如图1所示.

2.1 地平线确定算法

采用基于平行坐标系参数化的级联霍夫变换方法获取道路消失点.首先通过级联霍夫变换算法把原本无限大的空间转变为一个有限的菱形空间,接着对空间进行栅格化处理,采用投票方法找出消失点[17].

消失点位置确定后,其所在的水平线即为所求地平线位置,图像中地平线以上区域即为红绿灯识别感兴趣区域.消失点及地平线确定示意图见图2.

图2 消失点及地平线示意图Fig.2 Vanishing point and horizon sketch map

2.2 红绿灯色度方向角标定

由于每种颜色对应的色度方向角θ不同,对于红绿灯识别研究,本文选择红色和绿色两种颜色作为目标颜色进行色度方向角的标定.

1)获取N帧红灯、绿灯图像序列:N应足够大,包含不同道路场景、不同光照条件、不同位置情景下的红绿灯图像.

2)红灯、绿灯样本采集:本文收集不同环境,不同道路场景下的红绿灯图,将两种颜色进行分类,组成红灯和绿灯集合图,分别用PR=(RRi,RGi,RBi),PG=(GRi,GGi,GBi)代替,i=1,2,…,N,如图1中所示.分别将两种组合图作为输入,依据色度方向角理论求取红灯和绿灯对应的色度方向角θ.

3)求解最小熵:本文引入香农熵[15]确定θ.

η=-∑pi(Pθ)ln(pi(Pθ))

(7)

式中:η为熵值;Pθ为将二维对数色度ρk(k=1,2)投影到e⊥(与e正交的二维矢量)方向的投影结果图;pi是Pθ灰度直方图中灰度值落入第i个条内的概率;Pθ灰度直方图的条带宽w用Scott法则[10]确定

w=3.5std(Pθ)W-1/3

(8)

式中:W是图像的尺寸大小.

由熵的定义可知,若Pθ灰度直方图中所包含的bin越多,则pi越小,熵越大.因此,最小熵值对应的角度即为红灯、绿灯图像的色度方向θ,如图3所示.

图3 红灯和绿灯熵值角度曲线Fig.3 Entropy angle graphs about red and green light

2.3 红绿灯色度方向图获取

为进一步去除复杂环境下不利噪声对结果的影响,基于色度方向角,引入几何均值对数色度空间获取色度方向图.设Cref为红灯、绿灯集合图像RGB三通道Rk(k=1,2,3)的几何均值,则

(9)

则色度为

ck=Rk/Cref

(10)

对式(10)取对数得

ρk=ln(ck)

(11)

(12)

式中:χ是2维列向量,U=[v1,v2]T,

由此,色度方向图为

Iθi=χ1cosθi+χ2sinθi

(13)

2.4 红绿灯识别

2.4.1 识别分类器建立

分别选取n帧红灯、绿灯色度方向图图像,手工标定红灯、绿灯所在区域,构建红灯、绿灯模型,通过计算置信区间,建立红灯、绿灯识别分类器,实现红灯、绿灯状态识别.

本文采用正态分布模型对手工标定红、绿灯区域样本集进行拟合,并分别建立红、绿灯置信区间分类器.取红灯区域正态分布中心90%的数据为红灯色度特征,置信区间为

[λ1,λ2]=[μR-1.65σR,μR+1.65σR].

色度方向图中值介于[λ1,λ2]范围内的点为红灯;取绿灯区域正态分布中心可信度为1-α=0.90的特征,建立绿灯置信区间[λ3,λ4]=[μG-1.65σG,μG+1.65σG].红绿灯识别分类器可定义为

(14)

2.4.2 识别过程

输入待识别图像序列,通过地平线确定算法获取红绿灯待识别区域,分别求取红灯、绿灯色度方向图,将色度方向图输入建立的红绿灯识别分类器中进行分类识别,获取最终识别结果.

识别过程中会存在噪声干扰,本文加入几何特征限制因素,对阈值分割结果使用圆形度进行判定,设圆形度为

SC=(4πs)/(p·p)

(15)

式中:s代表区域块的面积;p代表区域块的周长.

设定圆形度阈值为TC,对阈值分割结果实行圆形度判断得

(16)

3 实验结果与分析

本文将提出的基于色度方向角的识别框架应用于两个公开的红绿灯标准集上:LARA标准集[18]和LISA标准集[4],两个标准集道路环境均为城市道路环境,试验设定N为200,n为100.

LARA标准集是专门用于红绿灯识别的标准数据集,利用未校准相机采集自法国巴黎市中心,包含了大量复杂的道路场景(多车、多干扰、多抖动),每帧图像分辨率为640×480像素,共11 179帧,包含了5 280个红灯,3 381个绿灯.

LISA红绿灯数据集采集自美国加利福尼亚州圣地亚哥市,序列场景切换幅度大,光照变化强烈,场景干扰较多,本文选用其中的Day Test 数据集作为实验集,图像分辨率为1 280×960像素,共4 061帧,包含了2 545个红灯,3 306个绿灯.两个数据集的具体信息如表1所示.

表1 实验数据集信息

实验采用Windows 7旗舰版64位操作系统,CPU为IntelCore i5-4570,3.2 GHz,内存为8 G的PC机作为实验平台,实验环境为Matlab2017b.

3.1 LARA标准集测试

本文仅考虑圆形红绿灯的识别过程,而LARA标准集也仅包含圆形红绿灯.实验设定红灯色度方向图阈值范围为[λ1,λ2]=[-0.57,-0.22],绿灯色度方向图阈值范围为[λ3,λ4]=[0.42,1.01],圆形度阈值TC为0.7.为了说明本文提出的红绿灯识别框架的准确性与优良性,本文对比了同样使用LARA标准集的文献[7-8,19]识别方法,使用统计测量中的精确率、召回率参数来评估所提出的方法与另外3种方法的性能,图4描绘了4种红绿灯识别方法的精确率、召回率对比结果.

图4 四种红绿灯识别方法的精确率和召回率对比Fig.4 Comparisons of four traffic light identification methods’ precision and recall

通过对比4种识别方法的准确率和召回率直方图,可以直观发现本文提出的识别方法相比于文献[8]、文献[19]识别方法存在较大优势,相比于文献[7]识别结果相当,主要由于文献[7]使用了较复杂的AdaBSF模型和SVM分类器.本文采用离线的红绿灯识别方法,实时性大大增强,平均每帧的识别时间约为27 ms.

对本实验图集进行基于色度方向角的离线城市道路红绿灯识别算法实验.部分典型场景识别结果如图5所示,其中,第1、3列为原图,2、4列为识别结果图.场景主要包括:背景复杂情况下的识别,距离相对较远时的识别,车辆较多干扰下的识别,同时出现多个红绿灯的识别等.

图5 LARA数据集典型场景识别结果Fig.5 Recognition results of LARA data set typical scene

3.2 LISA标准集测试

为了进一步说明本文识别系统的优良性,本文在一个最新的红绿灯数据集LISA上进行测试.实验设定红灯和绿灯色度方向图阈值范围[λ1,λ2],[λ3,λ4]不变,圆形度阈值TC不变.

实验使用精确率P、召回率R和综合评价指标F测定识别框架在LISA数据集上的性能,其中,F=2PR/(P+R),表2描述了本文提出的红绿灯识别框架在LISA数据集上的识别结果.

表2 本文方法在LISA数据集上的识别结果

实验结果发现,本文提出的识别框架具有很好的精确率,召回率和综合评价指标,平均精确率为91.08%,平均召回率为86.38%,可得综合评价指标为88.67%.注意到,LISA数据集使用了与LASA数据集相同的实验参数,尽管对LISA数据集的识别没有任何的先验知识,但识别方法一直有较稳健的性能输出,且实时性也满足实际要求,因此本文提出的识别框架具有很好的可扩展性.

对本实验图集进行识别实验.部分典型城市道路场景识别结果如图6所示,其中,第1、3列为原图,2、4列为识别结果图.1~2行为红灯识别结果,3~4行为绿灯识别结果,同种颜色不同位置的红绿灯存在明显的颜色差异.1、3行为面光条件下,光照较强情形的识别结果;2、4行为背光条件下,光照相对较暗情形下的识别结果.场景也包括了背景复杂、距离相对较远、车辆较多干扰等典型情况.

图6 LISA数据集典型场景识别结果Fig.6 Recognition results of LISA data set typical scene

4 结论

1)提出了利用色度方向角的离线红绿灯识别框架,在红灯、绿灯色块标定,色度方向角确定,色度方向图获取,识别分类器建立,实验验证等方面做了充实的工作.

2)充分考虑了不同帧红绿灯的光照差异(背光、朝光)以及同一帧中不同位置处红绿灯的光照变化引起的颜色差异对识别结果的影响,将色度方向角应用于红路灯检测识别分类中,跳出传统颜色空间的固有思维,获得了较为准确的检测识别结果.

3)算法在公共标准数据集(LARA,LISA)下进行了实验,该数据集包含了各种典型的红绿灯交通情景.实验结果表明:相较于已有文献的识别方法,本文提出的算法在LARA和LISA数据集的测试中均能获得较好的准确率P、召回率R和综合评价指标F,同时本文采用离线的红绿灯识别框架,识别速率大大提升,能满足实际道路场景红绿灯识别的实时性要求.

下一步工作考虑引入跟踪算法,在保证识别准确率的前提下进一步简化识别流程,节省检测时间.同时,将车道检测与红绿灯识别相结合,确定出不同车道对应的红绿灯结果.

猜你喜欢
红绿灯绿灯红灯
为什么红灯停,绿灯行
红绿灯前
快乐语文(2018年25期)2018-10-24 05:38:42
神奇的红绿灯
会说话的红绿灯
红灯笼
红灯停,绿灯行
红灯变堵“墙”
一路绿灯 一路关爱
中国火炬(2010年5期)2010-07-25 07:48:00
红绿灯眨眼睛
红灯与绿灯