发明名称 一种消除夜间道路反光干扰的车辆检测方法
摘要 本发明公开了一种消除夜间道路反光干扰的车辆检测方法。本发明利用大气散射原理和LOG滤波原理对道路监控图像进行预处理,得到反射强光图和反射弱光图,通过对车灯和反射光的样本统计获得区分车灯和反射光的Fisher统计特征,利用Fisher判别法区分图像中的车灯与反射光,对图像中的反射光进行分割并消除;然后,利用车灯形状特征从高亮连通区域中提取出车灯区域,建立车灯匹配准则,对车灯进行匹配,完成车辆的检测和统计。本发明采用的Fisher分类方法区分反射光并进行分割消除,能有效排除路面反射光对夜间车辆检测的干扰,从而提高了车辆检测率;本方法的车辆检测不需要依赖其他参照物,具有很好的夜间道路环境的适应性。
申请公布号 CN104732235A 申请公布日期 2015.06.24
申请号 CN201510121596.5 申请日期 2015.03.19
申请人 杭州电子科技大学 发明人 徐向华;周斌
分类号 G06K9/62(2006.01)I 主分类号 G06K9/62(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 杜军
主权项 一种消除夜间道路反光干扰的车辆检测方法,其特征在于包括如下步骤:步骤1、对每帧道路监控图像进行预处理,得到预处理后的二值图像;步骤1所述的预处理包括感兴趣区域提取、图像分割以及反射光消除,具体如下:1‑1.感兴趣区域提取和灰度转换;从每帧道路监控图像中截取一段区域图像,对截取的区域图像进行车辆检测;然后对区域图像进行灰度转换得到灰度图I,具体转换公式如下:Gray=R×0.299+G×0.587+B×0.114其中,彩色位图由R/G/B组成;Gray为灰度值,其范围在0到255之间;1‑2.利用基于大气散射的原理对灰度图I进行处理,得到反射强光图RI,大气散射E(d,λ)如下定义:E(d,λ)=I<sub>0</sub>(λ)×γ(λ)×exp(‑d);其中,I<sub>0</sub>为光源辐射强度,γ(λ)为波长λ的总散射系数,d为光源到摄像头屏幕的距离;1‑2‑1.将灰度图I的像素点(x,y)划分成内部区域<img file="FDA0000684688680000011.GIF" wi="97" he="82" />和外部区域<img file="FDA0000684688680000012.GIF" wi="128" he="77" />其中划分半径r=2;<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msubsup><mi>&Theta;</mi><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mi>i</mi></msubsup><mo>=</mo><mo>{</mo><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>u</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>v</mi><mo>)</mo></mrow><mo>|</mo><mo>-</mo><mi>r</mi><mo>&le;</mo><mi>u</mi><mo>&le;</mo><mi>r</mi><mo>,</mo><mo>-</mo><mi>r</mi><mo>&le;</mo><mi>v</mi><mo>&le;</mo><mi>r</mi><mo>}</mo></mrow>]]></math><img file="FDA0000684688680000013.GIF" wi="870" he="99" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>&Theta;</mi><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mi>e</mi></msubsup><mo>=</mo><mo>{</mo><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>u</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>v</mi><mo>)</mo></mrow><mo>|</mo><mo>-</mo><mn>2</mn><mi>r</mi><mo>&le;</mo><mi>u</mi><mo>&le;</mo><mn>2</mn><mi>r</mi><mo>,</mo><mo>-</mo><mn>2</mn><mi>r</mi><mo>&le;</mo><mi>v</mi><mo>&le;</mo><mn>2</mn><mi>r</mi><mo>}</mo></mrow>]]></math><img file="FDA0000684688680000014.GIF" wi="973" he="93" /></maths>1‑2‑2.在内部区域<img file="FDA0000684688680000015.GIF" wi="94" he="82" />中寻找像素最小值<img file="FDA0000684688680000016.GIF" wi="110" he="82" />和最大值<img file="FDA0000684688680000017.GIF" wi="152" he="89" />散射系数γ(x,y)如下定义:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>&gamma;</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><msubsup><mi>MI</mi><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mi>i</mi></msubsup><mrow><msubsup><mi>MA</mi><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mi>i</mi></msubsup><mo>&times;</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><msubsup><mi>&epsiv;</mi><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mi>i</mi></msubsup><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FDA0000684688680000021.GIF" wi="581" he="162" /></maths>其中,<img file="FDA0000684688680000022.GIF" wi="86" he="84" />为最小值<img file="FDA0000684688680000023.GIF" wi="120" he="82" />和最大值<img file="FDA0000684688680000024.GIF" wi="126" he="83" />之间的距离;1‑2‑3.在外部区域<img file="FDA0000684688680000025.GIF" wi="98" he="85" />中找到像素最小值<img file="FDA0000684688680000026.GIF" wi="120" he="85" />和最大值<img file="FDA0000684688680000027.GIF" wi="150" he="84" />同时计算最小值<img file="FDA0000684688680000028.GIF" wi="125" he="83" />和最大值<img file="FDA0000684688680000029.GIF" wi="126" he="84" />之间的距离<img file="FDA00006846886800000210.GIF" wi="112" he="84" />1‑2‑4.最后得到反射强光图RI:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>RI</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mo>|</mo><msubsup><mi>MI</mi><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mi>e</mi></msubsup><mo>-</mo><msubsup><mi>MA</mi><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mi>e</mi></msubsup><mo>&times;</mo><mi>&gamma;</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&times;</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><msubsup><mi>&epsiv;</mi><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mi>e</mi></msubsup><mo>)</mo></mrow><mo>|</mo></mrow>]]></math><img file="FDA00006846886800000211.GIF" wi="963" he="109" /></maths>1‑3.利用高斯拉普拉斯滤波对灰度图I进行处理,得到反射弱光图RS;1‑3‑1.对灰度图I取反色,然后利用高斯滤波对取反色后的灰度图进行平滑处理,其中高斯函数为:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup><mo>-</mo><mn>2</mn><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>&pi;&sigma;</mi></mrow></mfrac><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mfrac><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow></mfrac><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA00006846886800000212.GIF" wi="845" he="164" /></maths>其中σ为标准偏差,取值为1.0;1‑3‑2.利用拉普拉斯算子对平滑后的灰度图进行边缘检测;1‑3‑3.最后通过扫面线填充算法对边缘检测后的灰度图进行填充,得到最终的反射弱光图RS;1‑4.选取并建立车灯和反射光的样本;选取多张具有代表性的有反射光和车灯的夜间道路监控图像作为样本;每张图像都进行步骤1‑2和1‑3操作,得到灰度图I、反射强光图RI、反射弱光图RS三个位置对应的样本图,以灰度图I中车灯所在位置的像素值作为正样本,以灰度图I反射光所在位置的像素值作为负样本;1‑5.对所有样本进行统计,建立Fisher分类方程;利用Fisher准则和步骤1‑4的样本,统计计算出Fisher分类的直线方程y=w<sup>T</sup>·x中的参数:w和判别临界值;1‑6.根据亮度直方图双峰方法对每帧道路监控图像进行阈值分割处理,得到图像中的高亮区域;根据直方图双峰方法,对需要检测的每帧道路监控图像提取其灰度直方图,首先找到灰度直方图中第一个峰值和第二个峰值,再找到第一个峰值和第二个峰值之间的谷值T,谷值T就是图像分割的阈值;再用如下公式对每帧道路监控图像进行分割;f(x,y)=0,if(f(x,y)&lt;T)f(x,y)=255,if(f(x,y)≥T)其中,f(x,y)为像素值;1‑7.利用Fisher判别方对分割后得到的高亮区域进行反射光分类和消除;利用步骤1‑5得到的Fisher分类参数,对大于谷值T的像素进行反射光分类区分,将判别为负样本的反射光区域像素值设为零,消除反射光,得到消除反射光干扰后的二值图像;对判别为正样本的车灯区域像素值不作处理;步骤2、基于车灯形态的车灯检测处理,对车辆车灯进行检测具体采用如下步骤:2‑1.对二值图像采用八连通区域提取,在二值图像中的感兴趣区域内查找大于阈值T的像素点,找到后以这个像素点为目标像素,将目标像素的x值赋给这个区域的最左、最右值,即left和right,将目标像素的y值赋给这个区域的最上和最下值,即top和bottom;对目标像素进行上、下、左、右、左上角、左下角、右下角、右上角8个方向的像素点搜索,如果找到比left更小的值,则将这个更小的值赋值给left,同理,找到比top更小的值,则将这个更小的值赋值给top;而如果找到比right更大的值,则将这个更大的值赋值给right,同理,如果找到比bottom更大的值,则将这个更大的值赋值给bottom;最后,会检测出一个最左值、最右值分别为left、right,最上值和最下值分别为top和bottom的连通矩形区域;一副图像检测完之后,会检测出N个连通矩形区域C{C1,C2,…,C<sub>i</sub>,…,C<sub>n</sub>},每个连通矩形区域均具有宽度W和高度H;2‑2.对连通矩形区域进行筛选,假设有两个连通矩形区域C<sub>i</sub>和C<sub>j</sub>,具体筛选方式如下:2‑2‑1.根据车灯区域的饱满度得到了如下的判断条件:S<sub>i</sub>′≥S<sub>i</sub>/2 S<sub>i</sub>&gt;t;其中S<sub>i</sub>为连通区域形成的矩形面积,S<sub>i</sub>′为连通区域的实际面积,t=12;2‑2‑2.同一车辆的两个车灯处于相似水平线上时:C<sub>i,t</sub>≤C<sub>j,b</sub>,C<sub>i,b</sub>≤C<sub>j,t</sub>,其中,C<sub>i,t</sub>、C<sub>i,b</sub>为C<sub>i</sub>的顶部、底部;C<sub>j,b</sub>和C<sub>j,t</sub>为C<sub>j</sub>的顶部、底部;2‑2‑3.同一车辆的两个车灯其宽度与高度相似如下:T<sub>1</sub>&lt;h&lt;T<sub>2</sub>,T<sub>1</sub>&lt;w&lt;T<sub>2</sub>,其中,h、w分别为两区域的高度比例和宽度比例;T<sub>1</sub>和T<sub>2</sub>为判断阈值,当T<sub>1</sub>和T<sub>2</sub>分别为0.7和1.3最佳;2‑2‑4.同一车辆两车灯的面积相近:<img file="FDA0000684688680000041.GIF" wi="361" he="159" />其中S′<sub>i</sub>、S′<sub>j</sub>为两区域的面积;2‑2‑5.满足以上四个条件并检测出来的为车灯;步骤3、车辆检测步骤2中已经加入了两车灯之间的高度、大小对比,根据车辆上两个车灯之间具有相似的高度、相似的大小以及一定的距离,在步骤2的条件上加入车灯距离的判断就能完成对车灯的匹配;当两个车灯满足步骤2‑2的条件并且两个车灯距离在一个车灯区域宽度的2倍到8倍之间,则这两个车灯属于同一车辆,从而完成对车辆的检测;步骤4、对检测到的车灯进行跟踪,具体步骤如下:4‑1.计算属于同一辆车中两个车灯在当前帧与上一帧的运动偏移量<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mi>&Delta;x</mi><mi>k</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>=</mo><msup><mi>x</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>-</mo><msup><mi>x</mi><mrow><mi>i</mi><mo>-</mo><mn>2</mn></mrow></msup></mrow>]]></math><img file="FDA0000684688680000042.GIF" wi="355" he="86" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msubsup><mi>&Delta;y</mi><mi>k</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>=</mo><msup><mi>y</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>-</mo><msup><mi>y</mi><mrow><mi>i</mi><mo>-</mo><mn>2</mn></mrow></msup></mrow>]]></math><img file="FDA0000684688680000043.GIF" wi="357" he="85" /></maths>其中,i为帧数;(x,y)作为车灯的中心点;4‑2.建立以<img file="FDA0000684688680000051.GIF" wi="515" he="83" />为中心坐标,宽和高分别为1.5×W<sup>i‑1</sup>和3×H<sup>i‑1</sup>的窗口进行搜索;对窗口中搜索到的连通矩形区域以步骤2‑2车灯提取的判断条件对车灯进行判断,若是车灯,则转入步骤4‑3;若不是车灯则结束;4‑3.判断两帧中的车灯是否为同一个车灯,若满足A<sub>1</sub>/2≤A<sub>2</sub>≤2×A<sub>1</sub>,则两帧中的车灯为同一个车灯;其中,A<sub>2</sub>为在搜索区域中检测到的连通块面积,A<sub>1</sub>为上一帧的车灯连通块面积。
地址 310018 浙江省杭州市下沙高教园区2号大街