发明名称 一种交通灯定位方法
摘要 本发明公开了一种交通灯定位方法,其预先对交通灯所在的目标区域进行扩展,获得约束区域并对约束区域的灰度图像进行二值化,从二值化图像中提取亮区面积的比例、小面积亮区的数目、标准灯面积亮区的数目、大面积亮区的数目以及暗区的平均灰度值,根据这些特征对目标区域所在的路口图像进行昼夜判断,如果是夜晚图像,则通过二值化图像检测状态为“亮”的信号灯,根据信号灯的位置,实现交通灯位置的调整;如果是白天图像,则通过二值化图像检测交通灯结构中的黑色框架,根据黑色框架的位置,实现交通灯位置的调整;优点是计算复杂度低、运算速度快、环境适应力强、实现简单。
申请公布号 CN104851288B 申请公布日期 2017.02.22
申请号 CN201510181832.2 申请日期 2015.04.16
申请人 宁波中国科学院信息技术应用研究院;宁波中科集成电路设计中心有限公司 发明人 陈辰;黄晁;张从连;陈辰;袁小平;戎鲁凯
分类号 G08G1/01(2006.01)I;G06K9/46(2006.01)I 主分类号 G08G1/01(2006.01)I
代理机构 宁波奥圣专利代理事务所(普通合伙) 33226 代理人 周珏
主权项 一种交通灯定位方法,其特征在于包括以下步骤:①将实时获取的交通路口监控视频中当前待处理的第n帧路口图像中交通灯所在的最小矩形区域定义为当前目标区域,记为CT<sup>n</sup>;将CT<sup>n</sup>在第n帧路口图像中的位置以CT<sup>n</sup>的左上角像素点在第n帧路口图像中的坐标位置来表示,记为(x<sub>w</sub>,y<sub>w</sub>);并将CT<sup>n</sup>的面积记为A<sub>light</sub>,A<sub>light</sub>=X×Y;其中,n的初始值为0,0≤n≤N‑1,N表示实时获取的交通路口监控视频中包含的路口图像的总帧数,<img file="FDA0001068254250000011.GIF" wi="956" he="111" />W和H对应表示实时获取的交通路口监控视频中的路口图像的宽度和高度,X表示CT<sup>n</sup>在宽度方向上的像素点的总个数,Y表示CT<sup>n</sup>在长度方向上的像素点的总个数;设定一个白天帧数统计量<img file="FDA0001068254250000012.GIF" wi="107" he="61" />用于统计白天条件下成功检测到交通灯目标的连续帧数,并令<img file="FDA0001068254250000013.GIF" wi="77" he="70" />初始值为0;设定一个动态阈值T<sub>active</sub>,并规定其变化范围为40≤T<sub>active</sub>≤120,当n=0时取T<sub>active</sub>=40;②在第n帧路口图像中将CT<sup>n</sup>向四周进行扩展形成一个更大的矩形区域,将该更大的矩形区域定义为约束区域,并记为CS<sup>n</sup>;然后将CS<sup>n</sup>在第n帧路口图像中的位置以CS<sup>n</sup>的左上角像素点在第n帧路口图像中的坐标位置来表示,记为(x<sub>d</sub>,y<sub>d</sub>),<img file="FDA0001068254250000014.GIF" wi="422" he="116" />y<sub>d</sub>=y<sub>w</sub>‑X‑y<sub>over</sub>;将CS<sup>n</sup>中的中心像素点在第n帧路口图像中的坐标位置记为(x<sub>c</sub>,y<sub>c</sub>),<img file="FDA0001068254250000015.GIF" wi="654" he="111" />并将CS<sup>n</sup>的面积记为A<sub>det</sub>,A<sub>det</sub>=X'×Y';其中,0≤x<sub>d</sub>≤W‑X'‑1,0≤y<sub>d</sub>≤H‑Y'‑1,x<sub>over</sub>表示横坐标边界修正值,y<sub>over</sub>表示纵坐标边界修正值,<img file="FDA0001068254250000021.GIF" wi="1485" he="413" /><img file="FDA0001068254250000022.GIF" wi="1430" he="407" />X'表示CS<sup>n</sup>在宽度方向上的像素点的总个数,Y'表示CS<sup>n</sup>在长度方向上的像素点的总个数,X'=4X,Y'=(Y+2X);③获取CS<sup>n</sup>的灰度图像,记为CSG<sup>n</sup>;然后对CSG<sup>n</sup>进行二值化处理得到CSG<sup>n</sup>的第一二值化图像,记为<img file="FDA0001068254250000023.GIF" wi="83" he="61" />再获取<img file="FDA0001068254250000024.GIF" wi="59" he="62" />中的亮区面积的比例、<img file="FDA0001068254250000025.GIF" wi="54" he="59" />中的小面积亮区的数目、<img file="FDA0001068254250000026.GIF" wi="54" he="61" />中的标准灯面积亮区的数目、<img file="FDA0001068254250000027.GIF" wi="68" he="62" />中的大面积亮区的数目以及<img file="FDA0001068254250000028.GIF" wi="54" he="60" />中的暗区的平均灰度值,对应记为p<sub>high</sub>、n<sub>S</sub>、n<sub>A</sub>、n<sub>L</sub>以及g<sub>low</sub>;④根据p<sub>high</sub>、n<sub>S</sub>、n<sub>A</sub>、n<sub>L</sub>以及g<sub>low</sub>确定第n帧路口图像为夜晚条件下的图像还是为白天条件下的图像还是无法判断白天或夜晚条件下的图像,具体过程为:④‑1、判断n<sub>S</sub>+n<sub>A</sub>≤4且n<sub>A</sub>≤3且n<sub>L</sub>=0且p<sub>high</sub>&lt;0.2且g<sub>low</sub>&lt;50是否成立,如果成立,则确定第n帧路口图像为夜晚条件下的图像,并令<img file="FDA0001068254250000029.GIF" wi="182" he="70" />再执行步骤⑤;如果不成立,则执行步骤④‑2;④‑2、判断是否同时满足以下两个条件,如果满足,则确定第n帧路口图像为白天条件下的图像,再执行步骤⑦;如果不满足,则执行步骤④‑3;条件一:n<sub>S</sub>+n<sub>A</sub>≥1或n<sub>A</sub>≥1,条件二:p<sub>high</sub>&gt;0.1且g<sub>low</sub>&gt;30;④‑3、确定第n帧路口图像为无法判断白天或夜晚条件下的图像,并令<img file="FDA00010682542500000210.GIF" wi="184" he="63" />再执行步骤<img file="FDA00010682542500000211.GIF" wi="73" he="54" />⑤如果n<sub>A</sub>==1,则表明在夜晚条件下<img file="FDA00010682542500000213.GIF" wi="59" he="55" />中有且只有一个四连通域,记为<img file="FDA00010682542500000212.GIF" wi="123" he="63" />然后计算<img file="FDA0001068254250000031.GIF" wi="99" he="64" />的宽度和长度,对应记为W<sub>a</sub>和L<sub>a</sub>,W<sub>a</sub>=x<sub>a,max</sub>‑x<sub>a,min</sub>,L<sub>a</sub>=y<sub>a,max</sub>‑y<sub>a,min</sub>,其中,x<sub>a,min</sub>和x<sub>a,max</sub>对应表示<img file="FDA0001068254250000032.GIF" wi="94" he="63" />中的像素点的水平坐标的最小值和最大值,y<sub>a,min</sub>和y<sub>a,max</sub>对应表示<img file="FDA0001068254250000033.GIF" wi="95" he="62" />中的像素点的垂直坐标的最小值和最大值;接着判断<img file="FDA0001068254250000034.GIF" wi="283" he="117" />是否成立,如果成立,则判定<img file="FDA0001068254250000035.GIF" wi="99" he="63" />为夜晚条件下成功检测到的交通灯目标,再执行步骤⑥进行定位,如果不成立,再执行步骤<img file="FDA0001068254250000036.GIF" wi="67" he="55" />如果n<sub>A</sub>&gt;1或n<sub>A</sub>&lt;1,则执行步骤<img file="FDA0001068254250000037.GIF" wi="75" he="55" />⑥令<img file="FDA0001068254250000038.GIF" wi="443" he="111" />然后根据x<sub>a,mid</sub>、x<sub>c</sub>和x<sub>over</sub>,计算CT<sup>n</sup>在水平方向的偏移量,记为x<sub>mov</sub>,x<sub>mov</sub>=x<sub>a,mid</sub>‑(x<sub>c</sub>+x<sub>over</sub>);并根据y<sub>a,min</sub>、y<sub>a,max</sub>和y<sub>over</sub>,计算CT<sup>n</sup>在垂直方向的偏移量,记为y<sub>mov</sub>,<img file="FDA0001068254250000039.GIF" wi="1574" he="237" />再执行步骤<img file="FDA00010682542500000310.GIF" wi="70" he="54" />⑦根据T<sub>active</sub>对CSG<sup>n</sup>重新进行二值化处理得到CSG<sup>n</sup>的第二二值化图像,记为<img file="FDA00010682542500000311.GIF" wi="83" he="60" />接着定义两个有共同中心像素点的矩形,其中一个矩形的宽度和长度对应为W<sub>out</sub>和L<sub>out</sub>,另一个矩形的宽度和长度对应为W<sub>in</sub>和L<sub>in</sub>,W<sub>out</sub>&gt;W<sub>in</sub>,L<sub>out</sub>&gt;L<sub>in</sub>,且满足deep=W<sub>out</sub>‑W<sub>in</sub>=L<sub>out</sub>‑L<sub>in</sub>,deep≠0,将两个矩形之间的区域定义为框架模板,记为K(W<sub>out</sub>,L<sub>out</sub>,deep);再固定W<sub>out</sub>的值和deep的值,通过改变L<sub>out</sub>的值确定四个不同的框架模板,根据四个不同的框架模板在<img file="FDA00010682542500000312.GIF" wi="59" he="62" />中进行框架检测,得到<img file="FDA00010682542500000313.GIF" wi="59" he="60" />的框架检测结果,记为<img file="FDA00010682542500000314.GIF" wi="78" he="61" />⑧统计<img file="FDA00010682542500000315.GIF" wi="57" he="63" />中的四连通域的数目,记为n<sub>K</sub>,如果n<sub>K</sub>==0,则令T<sub>active</sub>=T<sub>active</sub>+10,再执行步骤<img file="FDA00010682542500000316.GIF" wi="72" he="54" />如果n<sub>K</sub>&gt;0,则在<img file="FDA00010682542500000317.GIF" wi="59" he="58" />中获取包含<img file="FDA00010682542500000318.GIF" wi="59" he="59" />中的所有四连通域的最小矩形区域的宽度和长度,记为W<sub>R</sub>和L<sub>R</sub>,W<sub>R</sub>=x<sub>b,max</sub>‑x<sub>b,min</sub>,L<sub>R</sub>=y<sub>b,max</sub>‑y<sub>b,min</sub>,然后根据W<sub>R</sub>和L<sub>R</sub>对T<sub>active</sub>进行调整,再执行步骤⑨;其中,T<sub>active</sub>=T<sub>active</sub>+10中的“=”为赋值符号,x<sub>b,min</sub>和x<sub>b,max</sub>对应表示在<img file="FDA0001068254250000041.GIF" wi="59" he="55" />中获取的包含<img file="FDA0001068254250000042.GIF" wi="59" he="55" />中的所有四连通域的最小矩形区域中的像素点的水平坐标的最小值和最大值,y<sub>b,min</sub>和y<sub>b,max</sub>对应表示在<img file="FDA0001068254250000043.GIF" wi="56" he="55" />中获取的包含<img file="FDA0001068254250000044.GIF" wi="57" he="55" />中的所有四连通域的最小矩形区域中的像素点的垂直坐标的最小值和最大值;⑨如果n<sub>K</sub>==1,则表明在白天条件下<img file="FDA0001068254250000045.GIF" wi="53" he="62" />中有且只有一个四连通域,记为<img file="FDA0001068254250000046.GIF" wi="78" he="62" />然后执行步骤⑩;如果n<sub>K</sub>&gt;1,则令<img file="FDA0001068254250000047.GIF" wi="182" he="63" />然后执行步骤<img file="FDA0001068254250000048.GIF" wi="67" he="53" />⑩判断W<sub>R</sub>≤1.25X且L<sub>R</sub>≤Y‑0.2X且Y‑0.2X≤L<sub>R</sub>≤Y+0.4X是否成立,如果成立,则判定<img file="FDA0001068254250000049.GIF" wi="59" he="62" />为白天条件下成功检测到的交通灯目标,并令<img file="FDA00010682542500000410.GIF" wi="305" he="71" />然后执行步骤<img file="FDA00010682542500000411.GIF" wi="67" he="55" />如果不成立,则令<img file="FDA00010682542500000412.GIF" wi="182" he="71" />然后执行步骤<img file="FDA00010682542500000413.GIF" wi="75" he="55" /><img file="FDA00010682542500000414.GIF" wi="52" he="55" />如果<img file="FDA00010682542500000415.GIF" wi="203" he="63" />则执行步骤<img file="FDA00010682542500000416.GIF" wi="72" he="55" />如果<img file="FDA00010682542500000417.GIF" wi="203" he="63" />则表明连续16帧白天条件下成功检测到交通灯目标,然后执行步骤<img file="FDA00010682542500000418.GIF" wi="54" he="55" />进行定位;<img file="FDA00010682542500000419.GIF" wi="52" he="55" />令<img file="FDA00010682542500000420.GIF" wi="435" he="111" />并令<img file="FDA00010682542500000421.GIF" wi="444" he="111" />然后根据x<sub>b,mid</sub>、x<sub>c</sub>和x<sub>over</sub>,计算CT<sup>n</sup>在水平方向的偏移量,记为x<sub>mov</sub>,x<sub>mov</sub>=x<sub>b,mid</sub>‑(x<sub>c</sub>+x<sub>over</sub>);并根据y<sub>b,mid</sub>和y<sub>c</sub>,计算CT<sup>n</sup>在垂直方向的偏移量,记为y<sub>mov</sub>,y<sub>mov</sub>=y<sub>b,mid</sub>‑(y<sub>c</sub>+y<sub>over</sub>);再执行步骤<img file="FDA00010682542500000422.GIF" wi="75" he="55" /><img file="FDA00010682542500000423.GIF" wi="53" he="53" />根据x<sub>mov</sub>和y<sub>mov</sub>,对CT<sup>n</sup>在第n帧路口图像中的位置进行校准,将校准后的CT<sup>n</sup>的左上角像素点在第n帧路口图像中的坐标位置记为(x<sub>w</sub>',y<sub>w</sub>'),x<sub>w</sub>'=x<sub>w</sub>+x<sub>mov</sub>,y<sub>w</sub>'=y<sub>w</sub>+y<sub>mov</sub>,然后令x<sub>w</sub>=x<sub>w</sub>',并令y<sub>w</sub>=y<sub>w</sub>',其中,x<sub>w</sub>=x<sub>w</sub>'和y<sub>w</sub>=y<sub>w</sub>'中的“=”为赋值符号;<img file="FDA00010682542500000424.GIF" wi="55" he="58" />令n=n+1,将实时获取的交通路口监控视频中下一帧待处理的路口图像中左上角像素点的坐标位置为(x<sub>w</sub>,y<sub>w</sub>)且面积为X×Y的矩形区域作为当前目标区域,记为CT<sup>n</sup>,再返回步骤②继续执行,直至实时获取的交通路口监控视频中的所有路口图像处理完毕;其中,n=n+1中的“=”为赋值符号。
地址 315040 浙江省宁波市高新区光华路299弄19号C9幢9层