本发明属于图像处理技术领域,尤其涉及一种基于昼夜成像特征的交通信号灯图像强化方法及装置。
背景技术:
目前交通管理中的电警相机广泛应用于路口车辆违章行为抓拍,为交通违章处罚提供判罚依据。它主要是通过记录违章车辆行为和信号灯颜色状态信息生成违章证据图,使处罚车辆违章变的有理有据,避免处罚争议。
电子警察相机监控场景一般为十字路口,交通信号灯距离电警相机较远,且信号灯面积较小,一般单个信号灯在20*20像素。所以,当电警相机由于安装杆件热胀冷缩等原因有微小移动时,信号灯在图像上会出现明显偏移。还有在环境光照不足时,信号灯位置画面过曝,或环境光过强时,信号灯不明显。上述情况都容易导致证据图上信号灯颜色不明确,然而在违章判罚时,要求证据图上信号灯颜色鲜明,避免异议。因此,需要对信号灯图像进行强化,以满足用户对证据图的要求
一般来说,信号灯图像强化需要已知信号灯的位置和状态。现有技术通常是在一帧实时图像中,提取定位区域内的红色或绿色像素点,然后根据其亮度、色度、形状等特征与背景进行分割,来确定信号灯的位置。然而这一类方法抗干扰能力较弱,实际红绿灯附近存在对应颜色的背景时,很难正确定位。另外,信号灯颜色或亮度特征不明显时,定位准确性也会明显降低。还有技术方案通过统计一段时间内,信号灯附近区域内各点的颜色、亮度变化情况,得出每个点处于信号灯上的可能性,再结合信号灯各灯眼的相对位置不变性,综合得出信号灯位置。但该方案得出的是一段时间内信号灯的概率分布,实时性差,而且对信号灯边界不敏感,无法直接用于过曝或不明显图像的恢复及强化。
技术实现要素:
本发明的目的是提供一种基于昼夜成像特征的交通信号灯图像强化方法及装置,来解决现有技术图像强化不准确的问题。
为了实现上述目的,本发明技术方案如下:
一种基于昼夜成像特征的交通信号灯图像强化方法,所述交通信号灯图像强化方法,包括:
获取待处理视频图像及其对应的信号灯状态信息,确定所述待处理视频图像中信号灯状态信息对应的灯眼定位区域;
判断所述待处理视频图像是日间图像还是夜间图像,如果是夜间图像则进入夜间处理模式,如果是日间图像则进入日间处理模式;
在夜间处理模式下,根据灯眼定位区域中每个像素点的亮度、以及每个像素点的本信号灯颜色浓度,确定前景点及实际灯眼区域,并生成单帧灯眼模板;
在日间处理模式下,根据灯眼定位区域中每个像素点的本信号灯颜色浓度,以及对夜间处理模式下生成的单帧灯眼模板进行预处理得到的灯眼模板,进行模板匹配确定实际灯眼区域,提取实际灯眼区域中与灯眼模板匹配的像素点作为实际灯眼区域的前景点;
对实际灯眼区域中的前景点进行强化涂色。
进一步地,所述根据灯眼定位区域中每个像素点的亮度、以及每个像素点的本信号灯颜色浓度,确定前景点及实际灯眼区域,并生成单帧灯眼模板,包括:
遍历灯眼定位区域,获取灯眼定位区域中每个像素点的亮度、以及每个像素点的本信号灯颜色浓度;
沿信号灯灯组的垂直方向逐行扫描灯眼定位区域,对于每一行,若第一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点与最后一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点之间,存在亮度值大于设定亮度阈值的像素点,则将第一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点与最后一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点之间的像素点作为前景点;
在前景点组成的区域范围内,对亮度值进行二值化,根据二值化结果和实际灯眼尺寸计算每个前景点的权重,通过加权平均求实际灯眼中心,确定实际灯眼区域;
沿信号灯灯组的垂直方向,将实际灯眼区域两侧各向外扩展设定的尺寸生成单帧灯眼模板。
进一步地,所述对夜间处理模式下生成的单帧灯眼模板进行预处理得到的灯眼模板,预处理过程包括:
将夜间处理模式下生成的一系列单帧灯眼模板合并;
进行二值化处理得到灯眼模板s;
对灯眼模板s进行闭运算来填补灯眼模板s中残缺的部分,得到闭运算后的灯眼模板s0;
统计灯眼模板s0中心wl*hl范围内前景点所占比例rate,若rate小于或等于50%,则以s0中心wl*hl区域作为实际模板;若rate大于50%,则以s0中心wl*hl区域开始,向外逐渐扩大模板区域,将rate处于
进一步地,所述根据灯眼定位区域中每个像素点的本信号灯颜色浓度,以及对夜间处理模式下生成的单帧灯眼模板进行预处理得到的灯眼模板,进行模板匹配确定实际灯眼区域,提取实际灯眼区域中与灯眼模板匹配的像素点作为实际灯眼区域的前景点,包括:
遍历灯眼定位区域,获取灯眼定位区域中每个像素点的本信号灯颜色浓度;
根据灯眼定位区域中以像素点为中心的与灯眼模板等大的区域与灯眼模板区域的匹配程度,确定该像素点的权重;
根据每个像素点的权重,通过加权平均求实际灯眼中心,确定实际灯眼区域。
进一步地,所述灯眼定位区域中每个像素点的本信号灯颜色浓度,通过如下方法得到:
将灯眼定位区域的yuv格式的视频图像转换为rgb格式的视频图像;
根据每个像素点的rgb颜色分量计算得到本信号灯颜色浓度;
所述灯眼定位区域中每个像素点的亮度,通过如下方法得到:
将灯眼定位区域的yuv格式的视频图像转换为rgb格式的视频图像;
根据每个像素点的rgb颜色分量和y分量计算得到像素点的亮度。
本发明还提出了一种基于昼夜成像特征的交通信号灯图像强化装置,所述交通信号灯图像强化装置,包括:
灯眼定位模块,用于获取待处理视频图像及其对应的信号灯状态信息,确定所述待处理视频图像中信号灯状态信息对应的灯眼定位区域;
判断模块,用于判断所述待处理视频图像是日间图像还是夜间图像,如果是夜间图像则进入夜间处理模式,如果是日间图像则进入日间处理模式;
夜间处理模块,用于在夜间处理模式下,根据灯眼定位区域中每个像素点的亮度、以及每个像素点的本信号灯颜色浓度,确定前景点及实际灯眼区域,并生成单帧灯眼模板;
日间处理模块,用于在日间处理模式下,根据灯眼定位区域中每个像素点的本信号灯颜色浓度,以及对夜间处理模式下生成的单帧灯眼模板进行预处理得到的灯眼模板,进行模板匹配确定实际灯眼区域,提取实际灯眼区域中与灯眼模板匹配的像素点作为实际灯眼区域的前景点;
强化涂色模块,用于对实际灯眼区域中的前景点进行强化涂色。
进一步地,所述夜间处理模块,在根据灯眼定位区域中每个像素点的亮度、以及每个像素点的本信号灯颜色浓度,确定前景点及实际灯眼区域,并生成单帧灯眼模板时,执行如下操作:
遍历灯眼定位区域,获取灯眼定位区域中每个像素点的亮度、以及每个像素点的本信号灯颜色浓度;
沿信号灯灯组的垂直方向逐行扫描灯眼定位区域,对于每一行,若第一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点与最后一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点之间,存在亮度值大于设定亮度阈值的像素点,则将第一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点与最后一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点之间的像素点作为前景点;
在前景点组成的区域范围内,对亮度值进行二值化,根据二值化结果和实际灯眼尺寸计算每个前景点的权重,通过加权平均求实际灯眼中心,确定实际灯眼区域;
沿信号灯灯组的垂直方向,将实际灯眼区域两侧各向外扩展设定的尺寸生成单帧灯眼模板。
进一步地,所述日间处理模块,在对所述对夜间处理模式下生成的单帧灯眼模板进行预处理得到的灯眼模板时,执行如下操作:
将夜间处理模式下生成的一系列单帧灯眼模板合并;
进行二值化处理得到灯眼模板s;
对灯眼模板s进行闭运算来填补灯眼模板s中残缺的部分,得到闭运算后的灯眼模板s0;
统计灯眼模板s0中心wl*hl范围内前景点所占比例rate,若rate小于或等于50%,则以s0中心wl*hl区域作为实际模板;若rate大于50%,则以s0中心wl*hl区域开始,向外逐渐扩大模板区域,将rate处于
进一步地,所述日间处理模块,在根据灯眼定位区域中每个像素点的本信号灯颜色浓度,以及对夜间处理模式下生成的单帧灯眼模板进行预处理得到的灯眼模板,进行模板匹配确定实际灯眼区域,提取实际灯眼区域中与灯眼模板匹配的像素点作为实际灯眼区域的前景点时,执行如下操作:
遍历灯眼定位区域,获取灯眼定位区域中每个像素点的本信号灯颜色浓度;
根据灯眼定位区域中以像素点为中心的与灯眼模板等大的区域与灯眼模板区域的匹配程度,确定该像素点的权重;
根据每个像素点的权重,通过加权平均求实际灯眼中心,确定实际灯眼区域。
进一步地,所述夜间处理模块和日间处理模块,在获取灯眼定位区域中每个像素点的本信号灯颜色浓度时,执行如下操作:
将灯眼定位区域的yuv格式的视频图像转换为rgb格式的视频图像;
根据每个像素点的rgb颜色分量计算得到本信号灯颜色浓度;
所述夜间处理模块,在获取灯眼定位区域中每个像素点的亮度时,执行如下操作:
将灯眼定位区域的yuv格式的视频图像转换为rgb格式的视频图像;
根据每个像素点的rgb颜色分量和y分量计算得到像素点的亮度。
本发明提出的一种基于昼夜成像特征的交通信号灯图像强化方法及装置,利用信号灯的昼夜成像特征,在夜间更新灯眼模板,在白天利用上述模板匹配的方式确定信号灯的准确位置,从而利用了夜间成像特性避免了白天复杂背景对模板的影响,降低了复杂背景对信号灯识别及图像强化的干扰,使得图像强化涂色更加准确。
附图说明
图1为本发明基于昼夜成像特征的交通信号灯图像强化方法流程图;
图2为本发明基于昼夜成像特征的交通信号灯图像强化装置结构示意图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
如图1所示,本技术方案一种基于昼夜成像特征的交通信号灯图像强化方法,包括:
步骤s1、获取待处理视频图像及其对应的信号灯状态信息,确定所述待处理视频图像中信号灯状态信息对应的灯眼定位区域。
信号灯的原始位置和各灯眼的颜色属性由用户配置,信号灯灯组一般包括红、绿、黄等颜色的信号灯,可以横向设置或纵向设置。任意一盏信号灯,其颜色属性和其原始位置是已经配置好的,即红色信号灯、绿色信号灯、黄色信号灯都已经配置好,由于信号灯和电警相机安装好后,相对位置固定,信号灯对应的原始位置都是已知的。
为了克服由于安装杆件热胀冷缩等原因有微小移动时,信号灯在图像上会出现明显偏移的情况,对于后续用来进行强化处理的灯眼定位区域,需要根据原始位置来进行调整。
即假设已知信号灯原始位置为矩形abcd,在设定信号灯各个灯眼的定位区域时,可以将原始位置矩形abcd向外扩充一定的大小,从而在发生一定偏移的情况下,设定的灯眼定位区域也能包含实际灯眼区域(实际灯眼区域的尺寸是确定的,由信号灯的物理条件决定),保证后续图像强化的准确性。扩充时,可以根据灯眼的半径进行扩充,例如灯眼的半径是r,将灯眼原始位置矩形abcd的长和宽分别加上1/4*r来作为灯眼定位区域的长和宽;或者直接将灯眼原始位置矩形abcd的长和宽分别加上设定的像素数量,如原始位置为30*20像素,灯眼定位区域可以扩充为33*23像素。
通常信号灯灯组中各个信号灯的灯眼定位区域都是预先设定好,在后续的处理中,只需根据接收的信号灯状态信息,确定是哪种颜色的信号灯亮,就选取对应的信号灯的灯眼定位区域,用于后续的计算和强化。
因此,在获取一帧待处理视频图像时,还需要获取该帧图像对应的信号灯状态信息。信号灯状态信息可由图像中检测,也可以通过检测信号灯驱动信号等物理手段获取。从而可以确定该帧图像中,哪个信号灯是点亮的,并进一步根据预设的信号灯各个灯眼的定位区域,从待处理视频图像中确定该点亮的信号灯对应的灯眼定位区域。例如获取该帧图像时,检测得到信号灯状态信息是红灯,则从该帧图像中选取红色信号灯对应的灯眼定位区域用于后续的计算和强化。
步骤s2、判断待处理视频图像是日间图像还是夜间图像,如果是夜间图像则进入步骤s3,如果是日间图像则进入步骤s4。
本技术方案基于昼夜成像特征来分别进行图像强化处理,由于夜间与日间信号灯成像特征具有较大区别,在夜间颜色更加鲜艳,且没有复杂背景干扰,因此本实施例分别进行处理,其中在对日间图像进行处理时,用到根据夜间图像生成的灯眼模板。
而判断待处理视频图像拍摄的时间是在夜间还是在日间,可以根据电警相机内部记录的实际时间来自行判断,或者根据图像整体亮度、色度来进行判断。本实施例对判断是日间还是夜间的具体方法不做限制,以下不再赘述。
步骤s3、在夜间处理模式下,根据灯眼定位区域中每个像素点的亮度、以及每个像素点的本信号灯颜色浓度,确定前景点及实际灯眼区域,并生成单帧灯眼模板,进入步骤s5。
具体地,当待处理视频图像对是夜间图像时,进行夜间模式处理。夜间模式处理包括如下步骤:
步骤s3.1、遍历灯眼定位区域,获取灯眼定位区域中每个像素点的亮度、以及每个像素点的本信号灯颜色浓度。
一般电警相机获取的是8位yuv格式的视频图像,首先转换为8位rgb格式,任意像素点点(x,y),转换计算方法如下:
然后,计算像素点(x,y)的亮度值、以及本信号灯颜色浓度,其中本信号灯颜色浓度是与本信号灯颜色对应的颜色浓度,即信号灯是红灯时,计算红色浓度,而信号灯是绿灯时,计算绿色浓度。本实施例以当前处理的待处理视频图像对应的信号灯为红色(信号灯状态信息为红灯点亮)为例进行说明,对于绿灯的情况,将相应的变量改为绿色即可,以下不再赘述。
以红色为例,根据每个像素点的rgb颜色分量计算像素点(x,y)对应的红色浓度red(x,y),根据每个像素点的rgb颜色分量和y分量计算得到像素点的亮度值whi(x,y):
s(x,y)=max(r(x,y),g(x,y))-min(r(x,y),g(x,y))
其中,r(x,y)、g(x,y)、b(x,y)为颜色分量,y(x,y)为yuv颜色格式下的y分量,cya(x,y),s(x,y)都是中间变量,cya(x,y)表示红色的补色(天青色)强度,s(x,y)体现红色的相对明显程度。thr为红色浓度提取的门限,用于过滤太暗的点,例如取thr=30。采用上述公式计算的颜色浓度和亮度值,能够过滤掉太暗的像素点。
需要说明的是,在信号灯为绿灯时,上述公式中cya(x,y)应该替换为绿色的补色(品红色)强度,s(x,y)体现绿色的相对明显程度。本发明主要是针对红灯和绿灯来进行图像强化,在下文中主要以红灯为例来进行说明。
具体地,若处理绿灯,则将红色浓度red(x,y)改为绿色浓度gre(x,y),公式中cya(x,y)用mag(x,y)替换:
其中,mag(x,y)为绿色的补色(品红色)强度。thg为绿色浓度提取的门限,用于过滤太暗的点,可取thg=30。
本实施例中,本信号灯颜色浓度还可以简单地直接以本信号灯颜色的分量来代替,例如红色信号灯的灯眼定位区域中每个像素点的本信号灯颜色浓度用该像素点的r分量来代替。本实施例自定义红色/绿色浓度用于提取光晕,相当于将传统的r-g-b色度空间转换为red-cya-other或gre-mag-other的颜色空间中,即目标颜色-目标补色-无关色,然后使用目标颜色分量与目标补色分量之差表示目标颜色的浓度。
本技术方案亮度whi通过yuv颜色模型的y分量与rgb颜色模型的r、g分量之差相减得到,可以有效区分纯的红绿色与高亮白色间。与直接使用yuv模型的y分量相比,本实施例的方法能更好的区分过曝前景与光晕。在传统处理方法中,一般需要转换为hsv或his颜色模型才能达到类似效果,需要计算h分量,运算量较大且效果不好。
步骤s3.2、沿信号灯灯组的垂直方向逐行扫描灯眼定位区域,对于每一行,若第一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点与最后一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点之间,存在亮度值大于设定亮度阈值的像素点,则将第一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点与最后一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点之间的像素点作为前景点。
假设目标信号灯灯组是水平方向的,则沿竖直方向扫描:
对于灯眼定位区域中的每一列,设x坐标为x,则首先检查该行中第一个和最后一个红色像素点的y坐标ys与ye:
其中,redth是设定颜色浓度阈值,即判断红色明显的门限,红色浓度大于红色明显的像素点被视为红色像素点,redth例如取值128。
若ys(x)与ye(x)都存在,且在(ys,ye)范围内存在高亮的点,则该列中(ys,ye)范围内的所有点标记为前景点,用fnt(x,y)来标识前景点,即:
其中,whith是设定亮度阈值,即判断高亮像素点的门限,例如取值64。x为当前列的x坐标,y为当前列每一点的y坐标。fnt(x,y)为1的表示像素点(x,y)属于前景点,fnt(x,y)为0表示像素点(x,y)属于背景。上述公式表示在第一个和最后一个红色像素点之间,存在亮度值大于设定亮度阈值的高亮像素点时,在第一个和最后一个红色像素点之间的像素点fnt(x,y)为1,表示为前景点。本实施例通过位置关系确定前景点,对背景路灯、远处车灯等具有较好的过滤效果。
同理,若目标信号灯灯组是竖直方向的,则沿水平方向扫描,这里不再赘述。
步骤s3.3、在前景点组成的区域范围内,对亮度值进行二值化,根据二值化结果和实际灯眼尺寸计算每个前景点的权重,通过加权平均求实际灯眼中心,确定实际灯眼区域。
以下通过两个实施例来描述如何确定实际灯眼区域的方法:
一种实施例:
首先在前景点组成的区域范围内,对亮度值whi进行二值化得到前景点二值化图像lght:
其中,th为二值化门限。前景点组成的区域范围内必定包含过曝部分和光晕部分,在二值化后,其中lght=1为过曝部分。本实施例二值化门限th可以用大津法求得,具体过程如下:
th=t|(g(t)=max(g))
其中,numl表示前景点组成的区域内前景点的总数;n0(t)、n1(t)分别为t门限下的第一类点数和第二类点数,u0(t)、u1(t)分别为t门限下的第一类均值和第二类均值,g(t)为类间方差,即求得使得类间方差g(t)最大的t值作为二值化门限。二值化门限th还可以根据经验来得到,这里不再赘述。
然后根据二值化结果和实际灯眼尺寸计算每个前景点的权重,每个前景点的权重即该前景点作为实际灯眼中心的可能性,权重的计算公式如下:
其中,wght(x,y)为该前景点的权重,即实际灯眼中心处于(x,y)处的可能性。由该公式可知,前景点的权重为以该前景点为中心的实际灯眼尺寸范围内的二值化结果的和与所有前景点组成的区域内的二值化结果的和的比值。
然后,根据前景点的权重,通过加权平均求实际灯眼中心(centx,centy):
即实际灯眼区域坐标为((centx-wl/2,centy-hl/2),(centx+wl/2,centy+hl/2)),其中wl为实际灯眼尺寸的宽度,hl为实际灯眼尺寸的高度。
本实施例在表示实际灯眼区域时,用该区域的左上点和右下点坐标表示,以下不再赘述。
另一种实施例:
首先在前景点组成的区域范围内,对亮度值whi进行二值化:
其中,th为二值化门限。前景点组成的区域范围内必定包含过曝部分和光晕部分,在二值化后,其中lght=1为过曝部分。本实施例二值化门限th可以用大津法求得,具体过程如下::
th=t|(g(t)=max(g))
其中,numl表示前景点组成的区域内前景点的总数;n0(t)、n1(t)分别为t门限下的第一类点数和第二类点数,u0(t)、u1(t)分别为t门限下的第一类均值和第二类均值。
然后根据二值化结果和实际灯眼尺寸计算每个前景点的权重,每个前景点的权重即该前景点作为实际灯眼中心的可能性:
其中,wght(x,y)为该前景点的权重,即实际灯眼中心处于(x,y)处的可能性。
然后过滤权重小于过滤门限的前景点,即过滤wght中较小的部分,过滤后的权重wghtl:
wth=r1·max(wght),其中wth为过滤门限;
其中,r1为参数,用于控制过滤门限,例如取值为0.8。通过本步骤可以消除权重较小的像素点对后续计算实际灯眼中心的影响,进一步提高准确率。
然后,通过加权平均求实际灯眼中心(centx,centy):
即实际灯眼区域坐标为((centx-wl/2,centy-hl/2),(centx+wl/2,centy+hl/2)),其中wl为实际灯眼尺寸的宽度,hl为实际灯眼尺寸的高度。
对于夜间模式处理,在求出实际灯眼区域后,就可以进入步骤s5进行强化涂色。但是还需要执行如下步骤来生成单帧灯眼模板:
步骤s3.4、沿信号灯灯组的垂直方向,将实际灯眼区域两侧各向外扩展设定的尺寸生成单帧灯眼模板。
本实施例在表示实际灯眼区域时,用该区域的左上点和右下点坐标表示。
对于水平方向的灯组,沿竖直方向外扩,单帧灯眼模板区域为:
(tlx,tly)=(centx-wl/2,centy-hl);
(brx,bry)=(centx+wl/2,centy+hl)。
对于竖直方向的灯组,沿水平方向外扩,单帧灯眼模板区域为:
(tlx,tly)=(centx-wl,centy-hl/2);
(brx,bry)=(centx+wl,centy+hl/2)。
本实施例中向外扩展的尺寸为二分之一灯眼尺寸,在实际的应用中,向外扩展的尺寸可以做出调整,例如向外扩展三分之一灯眼尺寸。
步骤s4、在日间处理模式下,根据灯眼定位区域中每个像素点的本信号灯颜色浓度,以及对夜间处理模式下生成的单帧灯眼模板进行预处理得到的灯眼模板,进行模板匹配确定实际灯眼区域,提取实际灯眼区域中与灯眼模板匹配的像素点作为实际灯眼区域的前景点。
具体地,对夜间处理模式下生成的单帧灯眼模板进行预处理,得到灯眼模板的过程如下:
将夜间处理模式下生成的一系列单帧灯眼模板合并,并进行二值化处理得到灯眼模板s。
例如对一个信号灯灯眼,假设整个晚上收集了m个单帧灯眼模板,记为std(m)|m∈[1,m],则灯眼模板s按以下方式计算:
先将m个单帧灯眼模板累加:
然后对累加模板stmp二值化,二值化门限ws可以由经验值设定,一般可取ws=0.9m:
经过二值化处理后,有效过滤了灯眼模板s的边缘毛刺。
随后,对灯眼模板s进行闭运算,根据占空比选择模板尺寸:
其中,p为闭运算模板:
为了计算方便,一般使用以下的3*3闭运算模板,该闭运算模板也可以选择5*5,闭运算模板中的具体参数也可以进行调整,例如都是1,目的是通过闭运算来填补灯眼模板中残缺的部分。
然后,统计灯眼模板s0中心wl*hl范围内前景点所占比例rate,按以下方法调整模板区域,在模板区域不减小的前提下,使得rate尽量接近50%,以方便后续的模板匹配:
若rate小于50%,则以s0中心wl*hl区域作为实际模板,记为t0;
若rate大于50%,则以s0中心wl*hl区域开始,向外逐渐扩大模板区域,将rate处于
将最终灯眼模板t0的宽高记为wt、ht。
其中rate为50%,可以使得灯眼模板t0中前景点和背景各占一半,对应于模板t中1和-1的比例大致相等,在后续的匹配中能够抗干扰能力更强,位置精度更高。wl为实际灯眼尺寸的宽度,hl为实际灯眼尺寸的高度。
为了便于后续的计算,本实施例还将t0转换为由1和-1表示,记为t:
t=t0×2-1。
模板t有1和-1构成,便于在实际灯眼区域中的前景点进行强化涂色时的计算,运算量大幅降低。
需要说明的是,对灯眼模板s进行闭运算、以及调整模版区域都是优选的技术方案,本发明技术方案也可以直接以灯眼模版s来进行后续的运算。通过闭运算可以填补灯眼模板中残缺的部分,调整模板区域可以优化后续模板匹配过程,抗干扰能力更强。
上述对单帧灯眼模板进行预处理得到的灯眼模板,一天内只在刚切换到白天时进行一次,得到的灯眼模板在日间处理模式中应用。其中单帧灯眼模板累加和二值化,可以在夜间每得到一帧单帧灯眼模版后进行计算,也可以在刚切换到白天时进行一次计算,本发明对此不做限制。
本实施例进入日间处理模式,进行模板匹配得到确定实际灯眼区域,过程如下:
步骤s4.1、遍历灯眼定位区域,获取灯眼定位区域中每个像素点的本信号灯颜色浓度。
与步骤s3.1类似,以红色信号灯为例,对于8位yuv制式的图片,首先转换为8位rgb格式:
然后,计算像素点(x,y)对应的红色浓度red(x,y):
其中,thr用于过滤过暗的点,例如取值thr=30。
步骤4.2、根据灯眼定位区域中以像素点为中心的与灯眼模板等大的区域与灯眼模板区域的匹配程度,确定该像素点的权重。
本步骤通过模板匹配确定灯眼定位区域中各个像素点的权重,根据如下公式直接进行匹配运算,得到权重w0:
w0(x,y)=∑cor(rx,ry)×t(tx,ty)
其中,
(tx,ty)直接对应:
其中wl为实际灯眼尺寸的宽度,hl为实际灯眼尺寸的高度。
然后,对w0进行归一化运算:
过滤掉权重较小的值并归一化:
其中,thw为权重过滤门限,例如取200。权重小于过滤门限的,该像素点可以确认为背景,去除后可以降低背景的干扰。
需要说明的是,cor表示本信号灯颜色浓度,红色浓度表示为red,若处理的信号灯为绿灯,则替换为绿色浓度gre:
其中,mag为绿色的补色品红色,thg为绿色浓度提取的门限,用于过滤太暗的点,可取thg=30。
本实施例进行模板匹配确定灯眼定位区域中各个像素点的权重,还可以通过如下方法来进行匹配,例如:
wtmp(x,y)=σ|red(rx,ry)-255×t0(tx,ty)|
w0(x,y)=max(wtmp)-wtmp(x,y)
其中,wtmp表示以像素点(x,y)为中心的区域与模板的标准差,t0为实际模板。
步骤4.3、根据每个像素点的权重,通过加权平均求实际灯眼中心,确定实际灯眼区域。
本实施例实际灯眼区域的灯眼中心坐标记为(cx,cy),则:
对应实际灯眼区域坐标为:((cx-wl/2,cy-hl/2),(cx+wl/2,cy+hl/2)),从而确定了实际灯眼区域。
步骤4.4、提取实际灯眼区域中与灯眼模板匹配的像素点作为实际灯眼区域的前景点。
实际灯眼区域内与灯眼模板匹配的部分即为前景区域,使用矩阵lght标记:
其中,t为灯眼模版,(sx,sy)表示实际灯眼区域内像素点(x,y)在灯眼模板上的对应坐标:
即当像素点(x,y)对应灯眼模板上的坐标(sx,sy)点值t(sx,sy)大于0,则该像素点(x,y)对应的二值化图像点lght(x,y)为1,为需要涂色的前景点,从而可以确定白天的视频图像中的前景点。
步骤s5、对实际灯眼区域中的前景点进行强化涂色。
通过上述夜间模式和日间模式的处理,对来自白天或夜间抓拍的视频图像,都能够通过本发明的技术方案找到实际灯眼区域,确定实际灯眼区域中的前景点,从而可以将原始图像上对应的点涂上适当的颜色,即红色信号灯涂上红色,绿色信号灯涂上绿色。
如图2所示,本实施例一种基于昼夜成像特征的交通信号灯图像强化装置,该交通信号灯图像强化装置,包括:
灯眼定位模块,用于获取待处理视频图像及其对应的信号灯状态信息,确定所述待处理视频图像中信号灯状态信息对应的灯眼定位区域;
判断模块,用于判断所述待处理视频图像是日间图像还是夜间图像,如果是夜间图像则进入夜间处理模式,如果是日间图像则进入日间处理模式;
夜间处理模块,用于在夜间处理模式下,根据灯眼定位区域中每个像素点的亮度、以及每个像素点的本信号灯颜色浓度,确定前景点及实际灯眼区域,并生成单帧灯眼模板;
日间处理模块,用于在日间处理模式下,根据灯眼定位区域中每个像素点的本信号灯颜色浓度,以及对夜间处理模式下生成的单帧灯眼模板进行预处理得到的灯眼模板,进行模板匹配确定实际灯眼区域,提取实际灯眼区域中与灯眼模板匹配的像素点作为实际灯眼区域的前景点;
强化涂色模块,用于对实际灯眼区域中的前景点进行强化涂色。
与上述方法对应地,本实施例基于昼夜成像特征的交通信号灯图像强化装置中各模块,以如下优选方式工作,对于其他可以替代的方案,这里不再赘述。
本实施例夜间处理模块,在根据灯眼定位区域中每个像素点的亮度、以及每个像素点的本信号灯颜色浓度,确定前景点及实际灯眼区域,并生成单帧灯眼模板时,执行如下操作:
遍历灯眼定位区域,获取灯眼定位区域中每个像素点的亮度、以及每个像素点的本信号灯颜色浓度;
沿信号灯灯组的垂直方向逐行扫描灯眼定位区域,对于每一行,若第一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点与最后一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点之间,存在亮度值大于设定亮度阈值的像素点,则将第一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点与最后一个本信号灯颜色浓度大于设定颜色浓度阈值的像素点之间的像素点作为前景点;
在前景点组成的区域范围内,对亮度值进行二值化,根据二值化结果和实际灯眼尺寸计算每个前景点的权重,通过加权平均求实际灯眼中心,确定实际灯眼区域;
沿信号灯灯组的垂直方向,将实际灯眼区域两侧各向外扩展设定的尺寸生成单帧灯眼模板。
本实施例所述日间处理模块,在对所述对夜间处理模式下生成的单帧灯眼模板进行预处理得到的灯眼模板时,执行如下操作:
将夜间处理模式下生成的一系列单帧灯眼模板合并;
进行二值化处理得到灯眼模板s;
对灯眼模板s进行闭运算来填补灯眼模板s中残缺的部分,得到闭运算后的灯眼模板s0;
统计灯眼模板s0中心wl*hl范围内前景点所占比例rate,若rate小于或等于50%,则以s0中心wl*hl区域作为实际模板;若rate大于50%,则以s0中心wl*hl区域开始,向外逐渐扩大模板区域,将rate处于
本实施例所述日间处理模块,在根据灯眼定位区域中每个像素点的本信号灯颜色浓度,以及对夜间处理模式下生成的单帧灯眼模板进行预处理得到的灯眼模板,进行模板匹配确定实际灯眼区域,提取实际灯眼区域中与灯眼模板匹配的像素点作为实际灯眼区域的前景点时,执行如下操作:
遍历灯眼定位区域,获取灯眼定位区域中每个像素点的本信号灯颜色浓度;
根据灯眼定位区域中以像素点为中心的与灯眼模板等大的区域与灯眼模板区域的匹配程度,确定该像素点的权重;
根据每个像素点的权重,通过加权平均求实际灯眼中心,确定实际灯眼区域。
另外,本实施例所述夜间处理模块和日间处理模块,在获取灯眼定位区域中每个像素点的本信号灯颜色浓度时,执行如下操作:
将灯眼定位区域的yuv格式的视频图像转换为rgb格式的视频图像;
根据每个像素点的rgb颜色分量计算得到本信号灯颜色浓度;
所述夜间处理模块,在获取灯眼定位区域中每个像素点的亮度时,执行如下操作:
将灯眼定位区域的yuv格式的视频图像转换为rgb格式的视频图像;
根据每个像素点的rgb颜色分量和y分量计算得到像素点的亮度。
综上所述,本技术方案的方法及装置,利用了夜间成像特性避免了白天复杂背景对模板的影响,降低复杂背景对信号灯识别及图像强化的干扰,使得图像强化涂色更加准确。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。