张骏 徐向华 李姣
摘 要: 针对目前夜间场景下尾灯提取算法存在的颜色和形状适应性受限问题,提出了一种基于尾灯光晕层次特点验证的尾灯提取方法。该方法与基于颜色阈值过滤的方法、基于形状过滤的方法以及基于机器学习的方法相比,具有较好的颜色和形状适应性,算法整体具备了实时性、较高的准确率和较少的误检率。
关键词: 夜间场景; 尾灯提取; 颜色和形状适应性; 光晕层次
中图分类号:TP391.4 文献标志码:A 文章编号:1006-8228(2015)08-06-03
Nighttime taillight pick-up method based on halo layer structure verifying
Zhang Jun, Xu Xianghua, Li Jiao
(Hangzhou Dianzi University, Zhejiang Provincial Key Lab of Data Storage and Transmission Technology, Hangzhou, Zhejiang 310037, China)
Abstract: For current nighttime taillight pick-up algorithms, the color and shape adaptabilities are inadequate. This paper proposes a novel taillight pick-up algorithm based on the halo layer structure verifying. Compared with the current algorithms such as the color thresholding, the shape filtering and the machine learning, the algorithm proposed has a better color and shape adaptability, and has the features of real-time, high accuracy and low false positive rate.
Key words: nighttime; taillight pick-up; color and shape adaptabilities; layer structure of halo
0 引言
夜间车辆检测可以被应用于自动驾驶汽车和预警系统等。夜间场景下,尾灯是前方车辆惟一明显的特征。因此,尾灯提取是夜间车辆检测的关键和基础。现有的基于颜色阈值过滤[1-3]的尾灯提取方法是根据尾灯的颜色特征设置颜色阈值。此类方法实时性好,但易受环境光照和摄像头参数等因素影响,检测率不稳定。基于形状过滤的方法[4-6]基于形态过滤图像提取尾灯。此类方法不受图像颜色差异影响,一般以“圆形”为过滤条件,而尾灯形状多样,因此其形状适应性较弱。由于目前尚无描述能力较好的尾灯特征,因此基于机器学习的尾灯提取方法[7, 8]检测效果较差。综上可见,目前缺乏颜色和形状适应性均较好的尾灯检测方法。
尽管尾灯形状各异,但光晕具有同一个特性:紧贴白色区域分布,亮度从白色区域边界向外依次递减。该递减现象呈现层次性,每一层光晕层形状与白色区域边界形状相似。同时,通过对比车灯对象以及非车灯对象可知:前者的光晕亮度按层次递减,而后者的光晕亮度分布混乱。因此,通过验证该特性即可有效地区分二者。
1 尾灯提取
1.1 总体流程
本文算法分三步:预处理、假设产生和假设验证。在预处理步骤中,算法对图像进行宽泛的颜色阈值过滤;在假设产生步骤中,算法提取白色区域作为疑似车灯对象;在假设验证步骤中,算法基于疑似对象的白色区域计算其光晕的大致范围。接下来,使用光晕层次拓展(Halo Layers Expansion,HLE)算法基于白色区域边缘向外不规则地层层拓展,精确覆盖该对象的光晕,并得到光晕的层次结构;使用亮度递减验证(Luminance Diminishing Verification,LDV)算法验证疑似对象的光晕亮度分布;去除未通过验证的对象,得到可信度较高的车灯对象。
1.2 光晕层次拓展(HLE)算法
1.2.1 光晕区域初步确定
光晕区域紧贴白色区域,面积正比于白色区域,因此基于白色区域可大致确定光晕区域。算法首先提取白色区域,计算每个区域的外接矩形,记为“内矩形”;然后,根据内矩形向外拓展得到一个范围更大的矩形,记为疑似对象的“外矩形”。外矩形即为初步确定的尾灯光晕范围。利用式⑴可通过内矩形得到对应的外矩形。XouterRect,YouterRect,HouterRect和WouterRect分别表示外矩形的左上角点的X、Y坐标,高和宽;下标为innerRect的为内矩形的对应变量。
⑴
图1(a)为源图像,图1(b)为阈值过滤后图像,图1(c)为标示了内矩形的图像,图1(d)为标示了内矩形和外矩形的图像。
1.2.2 HLE算法
车灯白色高亮区域形状各异,但同一个车灯上的光晕层的形状都与其白色区域边界的形状类似。因此,基于白色区域边缘向外等距离层层拓展,可精确覆盖光晕区域,同时得到其光晕区域的层次结构。不同车灯需要拓展的层数不同,算法首先通过式⑵计算需要拓展的光晕层数Nlayers。
Nlayers=min{Hinner,Winner,14} ⑵
算法伪代码描述如下。函数pointPolygonTest计算传入像素点到白色区域边界contour的最短距离,返回正数表示测试点为白色区域内部的点,负数则是表示外部的点。
Input:outerRect-疑似对象的外矩形
contour-中央白色高亮区域的轮廓
Nlayers-拓展层数
Output:layers-光晕层数据集合
for i=0 to Nlayers-1 do
layeri={}
layers[i]=layeri
end for
for i=0 to outerRect.width-1 do
for j=0 to outerRect.height-1 do
dis=pointPolygonTest(outerRect[i][j],contour)
if(dis<0 and dis?-14)
layerIndex=0-ceil(dis)
end if
if(layerIndex+1>Nlayers)
continue
end if
if(layerIndex?0)
layers[layerIndex].add(outerRect[i][j]);
end if
end for
end for
图2展示了HLE算法的效果。图2(a)为圆形车灯,图2(b)为梯形车灯,图2(c)为不规则形状车灯。
1.3 亮度递减验证(LDV)算法
尾灯光晕的亮度按层次递减,越远离白色区域边缘的光晕像素点的亮度值越低。而大部分干扰灯光或反射光的光晕亮度分布混乱。LDV算法基于这一点,对疑似对象的光晕区域进行验证,从而区分干扰对象。
图3(a)为一个抽象车灯,放大左边部分得到图3(b)。图中光晕点(x,y)周围8个像素点中,亮度值最低的点(minP)位于更高的层数上。因此,若某对象为车灯对象,则对于位于其第i层(layer)光晕层上的任意点(x,y),它周围8个像素点中亮度值最小的点一定是位于第i+1层或者更高的层数上。基于此规律,算法验证疑似对象的每个光晕点,统计该对象所有光晕点中满足该条件的光晕点所占的比例。
图3 验证依据说明示意图
满足验证规则的点被称为“pass(通过)点”,它们占所有光晕点的比例被称为“pass(通过)率”。算法伪代码如下。
Input:tail-疑似车灯对象,tail=(wPoints,layers,Nlayers)
Output:Ppass-pass率
SSearch={}
SSearch.add(wPoints)
Ppass=0.0
for i=0 to layers.length-1 do
for j=0 to layeri.length-1 do
minP=GetMinP(layeri[i],imgRGBfilter)
if(minP?SSearch)
Cpass=Cpass+1
end if
end for
SSearch.add(layeri)
end for
其中,tail表示输入的疑似车灯对象,它包含:当前对象白色区域像素点的集合wPoints,光晕层数据集合layers以及拓展层数Nlayers。输出参数Ppass为当前对象的pass率,SSearch保存当前已经验证结束的光晕点,函数GetMinPoint搜索输入点周围8个像素点,返回其中R通道值最小的像素点,Cpass表示pass点计数。
图4为车灯对象(正例)的验证情况,图4(a),4(b)分别为不同形状尾灯。其中第三张图中的白色点为pass点。图5为非尾灯对象(负例)的验证情况。图5(a)为车牌反光,图5(b)为广告牌。
可见,正例的pass率较高,负例的pass率较低。我们统计了各种对象的pass率,结果如图6所示,最终确定30%为正、负例对象的区分阈值。
[场景\&车灯数\&算法\&检测到的
车灯数\&检测框\&误检框\&检测率\&帧均误检框\&高速\&225\&T.方法\&166\&311\&145\&73.78%\&1.45\&W.方法\&61\&390\&329\&27.11%\&3.29\&本文方法\&195\&406\&211\&86.67%\&2.11\&城市\&253\&T.方法\&222\&287\&65\&78.75%\&0.65\&W.方法\&194\&1318\&1124\&76.68%\&11.24\&本文方法\&247\&591\&344\&97.63%\&3.44\&]
3 结束语
本文提出基于光晕层次特点验证的尾灯提取算法,利用尾灯光晕向外延伸衰减的特点,解决了已有方法在尾灯形状和颜色适应性上存在的问题。实验证明,在各类场景下,本文方法具有更好的尾灯颜色、形状适应性和检测准确度。
参考文献:
[1] O'Malley R, Jones E, Glavin M. Rear-Lamp Vehicle Detection and
Tracking in Low-Exposure Color Video for Night Conditions[J].IEEE Transactions on Intelligent Transportation Systems,2010.11(2):453-462
[2] O Malley R, Glavin M, Jones E. Vehicle detection at night based on
tail-light detection[C].1st international symposium on vehicular computing systems,2008:2-4
[3] Thammakaroon P, Tangamchit P. Predictive brake warning at
night using taillight characteristic[C]. International Symposium on Industrial Electronics (ISIE),2009:217-221
[4] Alcantarilla P F, Bergasa L M, Jime X. Night time vehicle detection
for driving assistance lightbeam controller[C]. Intelligent Vehicles Symposium,Eindhoven,2008:291-296
[5] Alt N, Claus C, Stechele W. Hardware/software architecture of an
algorithm for vision-based real-time vehicle detection in dark environments[C].Design, Automation and Test in Europe (DATE), ACM, Munich, 2008:176-181
[6] Schamm T, von Carlowitz C, Zollner J M. On-road vehicle
detection during dusk and at night[C]. Intelligent Vehicles Symposium (IV), San Diego, CA,2010:418-423
[7] Zehang S, Bebis G, Miller R. Monocular precrash vehicle detection:
features and classifiers[J].IEEE Transactions on Image Processing,2006.15(7):2019-2034
[8] Hong C, Nanning Z, Chong S. Boosted Gabor Features Applied to
Vehicle Detection[C].18th International Conference on Pattern Recognition (ICPR),2006:662-666
[9] Chun-Che W, Shih-Shinh H, Li-Chen F. Driver assistance
system for lane detection and vehicle recognition with night vision[C]. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2005),2005:3530-3535