谷明琴,蔡自兴,黄振威,何芬芬
(中南大学 信息科学与工程学院,湖南 长沙,410083)
近年来,城市环境中的智能车辆环境感知研究引起了广泛关注,而交通信号灯的识别为其重要研究方向之一。国内外许多研究者已提出了一些检测和识别交通信号灯算法。Yung等[1]在视频序列中检测红色、黄色和绿色交通信号灯,且假定相机固定在车辆顶部正中间。由于该算法要求交通信号灯区域的颜色清晰,因此能够检测到交通灯的距离较近。Chung等[2]需预先估计交通信号灯的背景图像及光照的平均时间,用形态学方法的模糊算法来检测交通信号灯的候选区域。由于它需要估计背景图像,因此不适用于移动的智能车辆。文献[3]中的情况与文献[2]类似,也不太适合智能车辆感知环境的需要,此外,交通信号灯的识别特征采用仿射不变矩,计算成本比较高。Hwang等[4]用6个颜色阈值来分割输入图像,得到候选区域。然而,它无法区分红色和黄色交通信号灯,适应性不强。Masako等[5-6]采用边缘图像检测交通信号灯,由于边缘图像中包含大量类似交通信号灯的圆形区域,算法的误检率较高。Shen等[7]根据高斯分布构建了色调和饱和度的模型,并用样本训练参数;用参数和形状信息来提取并判定测试图像中的交通信号灯候选区域。但该方法需要对图像进行模型化,需大量的矩阵运算,计算复杂度高。Gong等[8]采用HSV颜色空间的统计结果获取分割阈值,对图像进行分割,用基于CAMSHIFT算法对交通信号灯进行跟踪。但该方法难以在较复杂环境中检测和识别交通信号灯。Charette等[9]采用聚光灯检测和模板匹配的方法来识别交通信号灯,虽然识别较为准确,但是预处理阶段需要进行多次卷积运算,时间复杂度高。Levinson等[10]利用GPS数据信息及先验的交通信号灯的位置,然后在线地检测交通信号灯。这种方式需要大量的先验信息作为支撑,对系统构建的要求非常高。谷明琴等[11]研究了圆形交通信号灯的检测和识别算法,未对箭头型交通信号灯加以研究。Cai[12]则研究了箭头型交通信号灯识别算法。箭头型交通信号灯是城市环境中常见的信号灯类型,能为行驶的车辆提供有用的十字路口环境信息,而上述算法主要是检测和识别圆形交通信号灯,很少涉及箭头型交通信号灯。针对该问题,本文作者提出了一种检测和识别城市环境中箭头型交通信号灯的新方法。
图1 城市环境中的箭头型交通信号灯样例Fig. 1 Examples of arrow traffic lights in urban environment
图1所示为一些城市环境中较为常见的交通信号灯样例,从图1可以看出交通信号灯的背景比较复杂(交通标志,建筑物等),此外,由于光照,天气条件及交通信号灯自身的发光性,检测和识别交通信号灯较为困难。为此,本研究提出了如图2所示框架来识别城市环境中的交通信号灯。
图2 箭头型交通信号灯的识别框架Fig. 2 Framework of traffic lights recognition
令 v(x,y)=[vR,vG,vB]是 RGB空间中的每个像素的颜色值,(x,y)是像素坐标。由下面 2种方法来分割图像中的黑色区域:
其中:T1=50和T2=20是分割阈值。则图像中的黑色区域可由二值图像Bin1(x,y)和Bin2(x,y)的并组成。
用结构元素相同的腐蚀和膨胀形态学操作对Bin(x,y)进行处理,以消除噪声和断裂区域。
对Bin(x,y)中像素个数大于300且小于3 000的连通区域进行标记,作为交通信号灯的候选区域。假设Bin(x,y)有Nr个候选区域,记为Ri,i=1,…,Nr。令Ri(height)和Ri(width)是候选区域Ri的高和宽,则区域的宽高比Ri(Rwh)定义如下:
令Ri(Saturation)表示区域Ri的凹形度,有
其中:Ri(Area)和Ri(ConvexArea)分别是区域Ri中的像素个数及其最小凸包中的像素个数。
对候选区域 Ri,由以下的形态滤波方法对其进行过滤:
其中:TBwh,TUwh和 TStrt是其对应的阈值,这里分别取2,4,0.6。经过形态滤波后,去除了不满足灯板形态的区域,如图3所示,二值图像中仅保留了符合灯板形态的候选区域。
从输入的原始图像中剪切出候选灯板区域Ri的彩色图像并转换到YCbCr颜色空间中。假设p(x,y)=[pY,pCb,pCr]是YCbCr空间中的每个像素的颜色值,(x,y)是其小图像的坐标。由于红色和黄色交通信号灯难以仅用颜色信息将其分开,在YCbCr空间中,用阈值Tred对Cb通道进行阈值分割:
由于灯板中的红色和黄色的交通信号灯所处的位置不同(红色信号灯在灯板的上1/3处,黄色信号灯在灯板的中1/3处),则可以用交通信号灯与灯板的相对位置来区分红色和黄色交通信号灯。
标记二值图像BRed(x,y)中像素个数大于50且小于1 000的连通区域,记为Rj,j=1,…,Ns,Ns是候选区域的个数。假设候选区域Rj的外接矩形框为Retcj={Rx,Ry,Rwidth,Rheight},如果 Rj的宽高比 Rj(Rwh)及与灯板Ri的相对位置满足:
那么 Rj是一个交通信号灯候选区域。其中,Rj(Rwh)=Rheight/Rwidth,TRlower=0.5,TRupper=1.5。
图3 交通信号灯检测过程的结果Fig. 3 Results of detecting traffic light process
如果候选区域 Rj的左上角坐标(Rx,Ry)满足 Ry<Ri(height)/3,那么Rj是一个红色交通信号灯候选区域。否则,如果Rj的坐标(Rx,Ry)满足:
则Rj是一个黄色交通信号灯候选区域,否则,Rj为非交通信号灯,并从候选区域列表中移除。
为了检测绿色交通信号灯,用阈值Tgreen对Cr通道进行分割,得到二值图像:
用标记BRed(x,y)候选区域相同的方法对Bgreen(x,y)进行处理,记候选区域为Rj,j=1,…,Ns,Ns是其个数。如果候选区域Rj的外接矩形框 Retcj={Rx,Ry,Rwidth,Rheight}满足公式(10),且 Rj的左上角坐标(SRx,Ry)满足 Ry>2Ri(width)/3,那么 Rj是绿色交通信号灯候选区域。
图 3(d)显示了检测到的交通信号灯候选区域结果。从灯板图像中剪切候选区域Rj的彩色图像,并灰度化,归一化为 30×30的图像大小,记为 I(x,y),送入识别过程进行分类。
为了对交通信号灯候选图像进行分类,用二维的Gabor小波变换及二维独立分量分析来表示图像和降低分类特征的冗余性,最近邻分类器来判定交通信号灯的方向。
对检测到的候选区域灰度图像I(x,y),可以用文献[13]定义的 Gabor函数 ψu,v(x,y)与图像 I(x,y)的卷积作为Gabor滤波后的图像,即:
*表示卷积操作。
将幅值图像Gu,v(x,y),u={0,1,…,5},v={0,1,…,5}隔2个像素点采样,连接成为一个列向量χ,作为图像的特征。
独立分量分析能降低特征的冗余度,提高特征之间的独立性[14],二维独立分量分析是其改进方法,能大量减少特征的冗余性及相关性。
2.2.1 二维独立分量分析算法
假设交通信号灯的模板库特征为χ= { χ , i ∈ 1,2,… ,L }, χ ∈ Rn×n,L为其模板个数,ii其协方差矩阵为:
其中:W是分离矩阵。为了得到矩阵W,令W={w1,…,wr}T,向量wi的更新步骤如下:
(1) 随机选择一个初始向量wi(L)。
(6) 更新结束,令wi=wi(N)。
其中:wi(L)和wi(N)分别是上一次和本次更新的向量,g=tanh(a1u),g′=1-(tanh(a1u))2,g′(u)是 g(u)的一阶导数,取a1=1。
2.2.2 特征提取
对于图像特征 χi=(χi1,χi2,…,χin),用优化特征向量矩阵S={s1,…,sr}来提取其特征:
映射特征向量Y1,…,Yr即为样本特征χi的独立主分量。样本χi的特征矩阵可以降为n×r矩阵B=(Y1,Y2,…,Yr)。
城市中交通信号灯的类别 ci(i=1,2,…,9)有 9种,分别是红色(禁止左转,禁止右转,禁止直行),绿色(左转,右转,直行),黄色(左转警告,右转警告,直行警告)。每类均有 Ni=200个训练样本是训练样本的总个数。
已检测到的交通信号灯候选区域的特征为 B,由式(17)度量交通信号灯与样本库特征间的相似性:
其中:||·||2为2个向量间的欧式距离[14]。
令
其中:T为相似性阈值。
为了测试交通信号灯识别系统的性能,用配备工业相机的智能车在十字路口采集 25段有交通信号灯的视频,帧率为25帧/s,分辨率为1 392×1 040,时长为16 s。
图 4所示为本研究算法的检测和识别结果,图4(a)~(d)为一段在 4个交通信号灯路口采集的视频序列的第1,172,210,701帧的实验结果,图4(e)~(h)则为有2个交通信号灯的视频序列第1,95,110,608帧图像的识别结果。交通信号灯的检测结果用红色矩形在图中框出,识别结果则显示在矩形框的左侧。为了清楚起见,把交通信号灯区域的检测和识别结果放大显示在每幅图的下方。实验结果表明本研究算法能有效的检测出红色、黄色、绿色交通信号灯及其箭头方向信息。
表1列出了不同天气和光照条件下交通信号灯的检测和识别效果,从表1可以看出:系统的检测和识别率均在95%以上,而总体识别率(检测率和识别率的乘积)超过了91%。交通信号灯识别失败的主要原因是背景较为复杂,图像曝光过度或者曝光不足等。
交通信号灯的识别系统用VC++.NET编写,测试环境为2.5 GHz Pentium(R)双核CPU,3 GB内存。表2列出了交通信号灯识别过程的平均计算时间,单幅图像的处理时间为152 ms,即可达到6.57帧/s的识别速度,满足了交通信号灯进行实时识别的要求。
图4 2段视频中的交通信号灯的检测和识别结果Fig. 4 Traffic Light detection and recognition results with 2 videos in urban scenes
表1 交通信号灯检测和识别率Table 1 Detection and recognition rate of traffic light
表2 计算时间分析Table 2 Computation time analysis
(1) 从输入图像中分割出黑色区域,并根据交通信号灯的灯板形态特征,过滤明显不符合的区域,以定位交通信号灯的黑色灯板区域。
(2) 从原图中剪切出黑色灯板区域,并转换到YCbCr空间,以交通信号灯的颜色:对其进行分割,根据交通信号灯的形态特征,与灯板的相对位置来判断是否为交通信号灯的候选区域。在不同的天气条件下,检测率在 96%以上,表明程序的稳定检测能力较高。
(3) 对获得的交通信号灯候选区域,进行 Gabor小波变换,提取其特征信息,以二维独立分量分析法来降低特征的冗余度,减少送入识别过程的特征数量。为提高算法的实时性,用简单的最近邻分类法来判断交通信号灯的状态信息。实验表明该方法的识别率在95%以上,总共的计算时间为152 ms,能够稳定有效地识别城市环境中的箭头型交通信号灯。
[1] Yung N H C, Lai A H S. An effective video analysis method for detecting red light runners[J]. IEEE Transactions on Vehicular Technology, 2001, 50(4): 1074-1084.
[2] Chung Y, Wang L, Chen S. A vision-based traffic light detection system at intersections[J]. Journal of National Taiwan Normal University: Mathematics, Science & Technology, 2002, 47:67-86.
[3] Shioyama T, Wu H, Nakamura N, et al. Measurement of the length of pedestrian crossing and detection of traffic lights from image data[J]. Measurement Science and Technology, 2002, 13:1450-1457.
[4] Hwang T H, Joo I H, Cho S I. Detection of traffic lights for vision-based car navigation systems[C]//Pacific-Rim Symposium on Image and Video Technology. Germany: Springer Verlag, 2006: 682-691.
[5] Masako O, Shinichiro O. Detection of traffic light using structural information[C]//2010 IEEE 10th International Conference on Signal Processing. Japan, USA: IEEE, 2010:809-812.
[6] Chinthaka H, Premachandra N, Yendo T, et al. Detection of LED traffic light by image processing for visible light communication system[C]//2009 IEEE on Intelligent Vehicles Symposium, USA.IEEE, 2009: 179-184.
[7] SHEN Yehu, Ozguner U, Redmill K, et al. A robust video based traffic light detection algorithm for intelligent vehicles[C]//2009 IEEE Intelligent Vehicles Symposium (IV). USA: IEEE, 2009:521-526.
[8] GONG Jianwei, JIANG Yanhua, XIONG Guangming, et al. The recognition and tracking of traffic lights based on color segmentation and CAMSHIFT for intelligent vehicles[C]//2010 IEEE Intelligent Vehicles Symposium. USA: IEEE, 2010:431-435.
[9] de Charette R, Nashashibi F. Real time visual traffic lights recognition based on spot light detection and adaptive traffic lights templates[C]//2009 IEEE Intelligent Vehicles Symposium(IV). USA: IEEE, 2009: 358-363.
[10] Levinson J, Askeland J, Dolson J, et al. Traffic light mapping,localization, and state detection for autonomous vehicles[C]//2011 IEEE International Conference on Robotics and Automation. USA: IEEE, 2011: 5784-5791.
[11] 谷明琴, 蔡自兴, 李仪. 应用圆形度和颜色直方图的交通信号灯识别[J]. 计算机工程与设计, 2012, 33(1): 243-247.GU Mingqin, CAI Zixing, LI Yi. Traffic light recognition with circularity and color histogram[J]. Computer Engineering &Design, 2012, 33(1): 243-247.
[12] CAI Zixing, GU Mingqin, LI Yi. Real-time arrow traffic light recognition system for intelligent vehicle[C]//The 16th International Conference on Image Processing, Computer Vision,& Pattern Recognition. Las Vegas, 2012: 848-854.
[13] Daugman J G. Two dimensional spectral analysis of cortical receptive field profile[J]. Vision Research, 1980, 20(10):847-856.
[14] Hyvarinen A, Oja E. Independent component analysis:Algorithms and applications[J]. Neural Networks, 2000, 13(4/5):411-430.
[15] Theodoridis S, Koutroumbas K. 模式识别[M]. 第4版. 李晶皎,王爱侠, 王骄, 等译. 北京: 电子工业出版社, 2010: 96-123.Theodoridis S, Koutroumbas K. Pattern recognition[M]. 4th ed.LI Jing-jiao, WANG Ai-xia, WANG Jiao, et al. transl. Beijing:Publishing House of Electronics Industry. 2010: 96-123