基于自主学习的交通信号灯全自动定位识别的方法
技术领域
本发明涉及一种基于自主学习的交通信号灯全自动定位识别的方法,涉及模式识别、机器学习和图像处理等技术。
背景技术
在智能交通领域,交通信号灯在提高路口通行效率、安全性以及智能交通系统应用中起着重要的作用。基于视频的信号灯自动检测与识别,可用于电子警察、交通信息采集、无人驾驶车辆等,在智能交通领域有广泛的应用前景。
当前大多数信号灯检测识别算法都需要预先指定信号灯区域,然后根据经验颜色或形状进行识别。基于经验颜色的信号灯识别算法在信号灯设备完好及拍摄条件理想的情况下可以取得比较好的效果,但亮度不均(或偏暗)、颜色模糊、偏色、曝光等情况下很容易产生误检;为了克服经验颜色识别方法的缺点,部分研究改用亮度信息来做初步识别,之后基于形状特征排除识别结果中的干扰,但在复杂环境中,相似干扰物及遮挡等因素仍严重影响信号灯的检测精度;也有将颜色和形状综合考虑的信号灯识别算法,这类算法可以有效的降低仅使用一种特征带来的错检率,然而这类算法仍难以解决自然环境中常见的电子设备老化、低对比度、视频抖动等问题。
发明内容
发明目的:为了克服现有的交通信号灯检测识别算法不能自动定位信号灯区域、且对各种场景的完全自适应能力不足的缺点,本发明提供一种基于自主学习的交通信号灯全自动定位及识别的方法与系统,可以克服自然环境中光照不均、颜色模糊、偏色、曝光、自动白平衡、相似干扰物、遮挡、电子设备老化、低对比度、视频抖动等因素的干扰,在各种场景的实时环境中对交通信号灯进行自主学习、精确定位与识别。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种基于自主学习的交通信号灯全自动定位识别的方法,对输入的视频流,从空间域、频率域及时间域三个角度,对信号灯进行定位得到最终定位结果,并根据频率域与时间域的定位结果确定最终的信号灯位置及大小;然后根据信号灯的空间域检测结果与最终定位结果,确定信号灯初步识别状态;再更新各信号灯灯亮、灯灭时的像素值高斯分布模型,据此对初步识别结果进行校准;最后输出信号灯定位与识别结果。
该方法具体包括如下步骤:
(1)信号灯空间域定位:将视频流由RGB颜色空间转换至Lab颜色空间,分别计算a通道和b通道的均值及标准偏差为(μa,σa)和(μb,σb),根据(μa,σa)和(μb,σb)判断当前像素点是否属于信号灯候选区域以及属于哪个信号灯候选区域,将判断结果作为信号灯空间域定位结果,设选择常数为k:
a.若某像素点在a通道的像素值大于μa+kσa,则标记该像素点属于红灯候选区域;
b.若某像素点在a通道的像素值小于μa-kσa,则标记该像素点属于绿灯候选区域;
c.若某像素点在b通道的像素值大于μb+kσb,则标记该像素点属于黄灯候选区域;
其中,常数k∈{1,2,3},依据计算区域的大小选择;
(2)信号灯频率域定位:在一个时间周期内,对视频流中的每个像素点,统计其属于某个信号灯候选区域空间域候选区域的累积分布函数(CumulativeDistributionFunction,CDF);坐标为(x,y)的像素点在t时刻的累积分布函数Ct(x,y)表示为:
Ct(x,y)=Ct-1(x,y)+ρt(x,y)(1)
其中,λ为一常数;设定阈值T0,若Ct(x,y)满足:
Ct(x,y)≥T0(3)
则判断该像素点属于频率域中某个信号灯的候选区域,由此得到信号灯的频率域定位结果;
(3)信号灯时间域定位:使用逼近中值滤波(ApproximatedMedianFilter)算法重建视频流的背景,背景模型表示为:
其中,It(x,y)表示t时刻在帧图像中坐标为(x,y)的像素点,Bt(x,y)表示t时刻在背景图像中坐标为(x,y)的像素点;统计图像中每个像素点的游程编码(Run-LengthEncoding,RLE),坐标为(x,y)的像素点在t时刻的游程编码Rt(x,y)表示为:
若It(x,y)>Bt-1(x,y),则
若It(x,y)<Bt-1(x,y),则
若It(x,y)=Bt-1(x,y),则
Rt(x,y)=0(7)
记录每个像素点正负方向上的最大游程编码长度为:
由于信号灯切换存在周期性,将负向最大游程编码长度的一半至正向最大游程编码长度的一半之间所经历的时间作为灯灭/灯亮的特征周期,对应地将正向最大游程编码长度的一半至负向最大游程编码长度一半之间所经历的时间作为灯亮/灯灭的特征周期;
若某像素点的正负方向上的最大游程编码长度均大于设定阈值T1,且其特征周期也大于设定阈值T2,则判别该像素点属于时间域中信号灯的候选区域,由此得到信号灯的时间域定位结果;
(4)计算各信号灯信息:对信号灯的频率域定位结果和时间域定位结果求交集,得到信号灯的最终定位结果;对最终定位的信号灯候选区域进行统计学分析:若加权统计出的包括区域大小和质心位置在内的几何信息与客观情况相符合,则最终定位结果有效,进入步骤(5);否则最终定位结果无效,重复步骤(2)、(3)、(4)直至最终定位结果有效;
(5)信号灯状态识别:对信号灯空间域定位结果和最终定位结果求交集,统计交集中各个标定的分布情况,将占比最大标定所对应的颜色作为信号灯的初步识别结果,进入步骤(6);
(6)更新学习参数:根据有效的最终定位结果确定每种信号灯(红灯、黄灯和绿灯)的相对位置和大小信息,对每一种信号灯所处区域的像素值分布分别建立灯亮、灯灭状态下的高斯模型;对于某一种信号灯,设其在灯亮时的像素值分布服从高斯分布在灯灭时的像素值分布服从高斯分布根据当前帧图像的初步识别结果,利用期望最大(ExpectationMaximization,EM)算法更新该种信号灯灯亮和灯灭时的高斯模型参数:
灯亮时的参数更新为:
灯灭时的参数更新为:
其中,μt为该种信号灯定位区域像素值的均值,α为更新速率;
(7)信号灯状态校准:根据参数更新后的高斯模型,对信号灯的初步识别结果进行校准:若当前信号灯区域像素均值μt与的欧氏距离大于μt与的欧式距离,说明当前帧为灯亮的概率大于为灯灭的概率。
某个信号灯候选区域是指红、黄、绿信号灯中的一个信号灯区域,是通过步骤(1)获得的计算结果,而空间候选区域是指为了后续计算在信号灯检测区域内计算确定的若干待检测区域,这些区域有些属于信号灯区域内,而有些则可能在信号灯区域外。
步骤(4)中描述的客观情况主要是指国家对交通信号灯的规定标准,具体包括:有红、黄和绿三个信号灯,三个信号灯的间距相等、大小相同等;最终定位结果中,三个信号灯的排列可以被识别为水平或竖直方式的,每个信号灯的半径有效(大于2个像素),信号灯的位置有效(红灯和绿灯的距离足够大)等。
有益效果:本发明提供的基于自主学习的交通信号灯全自动定位识别的方法,是一种全新的、自适应的交通信号灯视频定位及识别方案,可应用在视频监控、智能交通、电子警察等领域;与现有技术相比,本方法避免了过分依赖于信号灯颜色、形状等条件限制,采用基于统计学习的自适应信号灯定位与识别的方法,可以很好的解决自然场景中信号灯定位识别的常见难题,比如颜色模糊、偏色、曝光、自动白平衡、相似干扰物、遮挡、电子设备老化、低对比度、视频抖动等,实现信号灯的精确定位与识别;本发明可以设计为智能交通领域的独立产品,也可以作为智能交通系统的子模块集成到智能交通相关产品中,为其他模块提供辅助。
附图说明
图1为本发明方法的流程图;
图2为实现本发明方法的一种系统结构框图;
图3是某视频中绿灯亮时信号灯局部区域的颜色分布图。
图4是某视频中红灯亮时信号灯局部区域的颜色分布图。
图5是某视频中黄灯亮时信号灯局部区域的颜色分布图。
图6是某信号灯像素在时间域上的RLE结果分布。
图7是某非信号灯像素在时间域上的RLE结果分布。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图1所示为一种基于自主学习的交通信号灯全自动定位识别的方法,首先根据视频流的分辨率大小设置系统的相关参数,用于系统内部缓存等资源的申请及管理,同时可以设置信号灯候选区域来减少检测计算及资源消耗;根据应用场景的不同,输入的视频流可以是摄像头实时采集到的道路交通信息视频流,也可以是存储设备中的视频文件;对输入的视频流,从空间域、频率域及时间域三个角度,对信号灯进行定位得到最终定位结果,并根据频率域与时间域的定位结果确定最终的信号灯位置及大小;然后根据信号灯的空间域检测结果与最终定位结果,确定信号灯初步识别状态;再更新各信号灯灯亮、灯灭时的像素值高斯分布模型,据此对初步识别结果进行校准;最后输出信号灯定位与识别结果,为后续处理提供辅助依据。图2是实现本发明方法的一种系统结构框图。
下面以实际道路上的交通信号灯为例进行说明。信号灯的颜色包括红色、黄色和绿色,一组信号灯的数目为三个;首先对各信号灯进行自适应定位,然后对信号灯进行自适应识别,按以下步骤进行:
(1)信号灯空间域定位:将视频流由RGB颜色空间转换至Lab颜色空间,分别计算a通道和b通道的均值及标准偏差为(μa,σa)和(μb,σb),根据(μa,σa)和(μb,σb)判断当前像素点是否属于信号灯候选区域以及属于哪个信号灯候选区域,将判断结果作为信号灯空间域定位结果,设选择常数为k:
a.若某像素点在a通道的像素值大于μa+kσa,则标记该像素点属于红灯候选区域;
b.若某像素点在a通道的像素值小于μa-kσa,则标记该像素点属于绿灯候选区域;
c.若某像素点在b通道的像素值大于μb+kσb,则标记该像素点属于黄灯候选区域;
为了保证信号灯候选区域像素点不被漏选,在具体的实施例中,依据计算区域的大小选择常数k∈{1,2,3};图3至图5是本发明实施例中,某视频中绿灯、红灯、黄灯分别亮时的信号灯局部区域的颜色分布图,颜色分布图中明显突出部分表示对应的灯处于亮的状态,从分布图中可以看出点亮状态下的信号灯相对于其它区域的明显差异。
(2)信号灯频率域定位:在一个时间周期内,对视频流中的每个像素点,统计其属于某个信号灯候选区域的累积分布函数(CumulativeDistributionFunction,CDF);坐标为(x,y)的像素点在t时刻的累积分布函数Ct(x,y)表示为:
Ct(x,y)=Ct-1(x,y)+ρt(x,y)(1)
其中,λ为一常数,本例中λ=1,此时的累积分布函数可以理解为坐标为(x,y)的像素点属于空间候选区域与非候选区域的帧数差;设定阈值T0=255,若Ct(x,y)满足:
Ct(x,y)≥T0(3)
则判断该像素点属于某个频率域中信号灯的候选区域,由此得到信号灯的频率域定位结果。
(3)信号灯时间域定位:使用逼近中值滤波(ApproximatedMedianFilter)算法重建视频流的背景,背景模型表示为:
其中,It(x,y)表示t时刻在帧图像中坐标为(x,y)的像素点,Bt(x,y)表示t时刻在背景图像中坐标为(x,y)的像素点;统计图像中每个像素点的游程编码(Run-LengthEncoding,RLE),坐标为(x,y)的像素点在t时刻的游程编码Rt(x,y)表示为:
若It(x,y)>Bt-1(x,y),则
若It(x,y)<Bt-1(x,y),则
若It(x,y)=Bt-1(x,y),则
Rt(x,y)=0(7)
记录每个像素点正负方向上的最大游程编码长度为:
由于信号灯切换存在周期性,将负向最大游程编码长度的一半至正向最大游程编码长度的一半之间所经历的时间作为灯灭/灯亮的特征周期,对应地将正向最大游程编码长度的一半至负向最大游程编码长度一半之间所经历的时间作为灯亮/灯灭的特征周期;
若某像素点的正负方向上的最大游程编码长度均大于设定阈值T1=10,且其特征周期也大于设定阈值T2=24,则判别该像素点属于时间域中信号灯的候选区域,由此得到信号灯的时间域定位结果。
图6是某信号灯像素在时间域上的RLE结果分布,图7是某非信号灯像素在时间域上的RLE结果分布,由分布图可以看出信号灯像素在时间域上的周期性等特征,而非信号灯像素的分布则比较混乱和随机。
(4)计算各信号灯信息:对信号灯的频率域定位结果和时间域定位结果求交集,得到信号灯的最终定位结果;对最终定位的信号灯候选区域进行统计学分析:若加权统计出的包括区域大小和质心位置在内的几何信息与客观情况相符合,则最终定位结果有效,进入步骤(5);否则最终定位结果无效,重复步骤(2)、(3)、(4)直至最终定位结果有效;
(5)信号灯状态识别:对信号灯空间域定位结果和最终定位结果求交集,统计交集中各个标定的分布情况,将占比最大标定所对应的颜色作为信号灯的初步识别结果,进入步骤(6);
(6)更新学习参数:根据有效的最终定位结果确定每种信号灯(红灯、黄灯和绿灯)的相对位置和大小信息,对每一种信号灯所处区域的像素值分布分别建立灯亮、灯灭状态下的高斯模型;对于某一种信号灯,设其在灯亮时的像素值分布服从高斯分布在灯灭时的像素值分布服从高斯分布根据当前帧图像的初步识别结果,利用期望最大(ExpectationMaximization,EM)算法更新该种信号灯灯亮和灯灭的高斯模型参数:
灯亮时的参数更新为:
灯灭时的参数更新为:
其中,μt为该种信号灯定位区域像素值的均值,α为更新速率,本例中α=0.95;
(7)信号灯状态校准:根据参数更新后的高斯模型,对信号灯的初步识别结果进行校准:若当前信号灯区域像素均值μt与的欧氏距离大于μt与的欧式距离,说明当前帧为灯亮的概率大于为灯灭的概率。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。