王 闯,贺 莹
(中航工业西安航空计算技术研究所,西安 710065)
基于逆透视变换的车辆排队长度检测方法及硬件实现
王 闯,贺 莹
(中航工业西安航空计算技术研究所,西安 710065)
交通路口的车辆排队长度检测是智能交通系统的重要组成部分,传统的检测方法易受背景噪声、摄像机透视效果等因素的干扰造成检测失败,而且其实现都是基于串行结构的处理器,不能用于实时处理的场合;设计了一种充分利用平直道路几何特征并适合FPGA实现的排队长度自动检测算法,该算法利用逆透视变换消除图像几何失真,引入公路的结构性约束有效检测了车道线;接着采用Sobel边缘算子检测出各车道的车辆轮廓,通过一种基于信息量的度量方法提取排队的队尾,从而确定了车辆排队长度,并且通过硬件化设计使得整个检测过程达到实时的处理速度;试验结果表明,在消除了视觉偏差的图像上进行的排队长度检测结果比校正前更加真实准确,所提出的检测方法可以很容易工程化并用于实际交通路口的车流量自动实时检测。
逆透视变换(IPM);现场可编程门阵列(FPGA);车道线检测;排队长度;Sobel算子
实时准确地获取交通路口排队的车辆长度对于交管部门科学有效地利用现有的交通资源进行交通管理、车辆调度和信号灯控制具有重要意义。传统的车队提取方法[1 2]往往直接利用背景差分或者边缘检测提取出车队的整体轮廓,接着根据轮廓的像素分布估计出车流量的度量。虽然这些方法能取得一定效果,但是在实际应用中,这类方法往往无法自动分割出各个车道区域,在对目标车队检测时也很容易受到来自背景的光照变化、阴影等因素的干扰造成检测的失败,而且由于摄像头获取的交通图像具有强烈的透视效果,提取的车辆轮廓往往产生不同程度的几何视觉变形,由此测量的车队长度误差较大;另外,目前的研究都是针对工控机、数字信号处理器(DSP)等串行处理器实现的算法,这类实现方式固有的顺序执行结构决定了其不能对视频流进行实时处理[3]。
本文在满足道路平坦假设的前提下,针对结构化道路的几何特征,提出了一种基于逆透视变换的排队长度检测算法。该算法首先利用逆透视变换(Inverse Perspective Mapping)消除道路图像的透视效果[4],得到无畸的鸟瞰图像;接着,在Hough变换的基础上引入车道标志线之间的固有几何约束,准确的检测了车道线并分割各个车道区域;然后,采用Sobel边缘算子检测出各车道的车辆轮廓,并通过一种基于信息量的度量方法提取排队的队尾,进而确定了车辆排队长度;最后,充分发挥FPGA分布式、硬件化、并行化的处理特点[5],并结合实际系统的特定应用需求,给出了所设计算法的FPGA硬件逻辑电路结构,使得整个检测过程达到实时的处理速度。
本文的这套算法是基于知识的启发式算法,分为图像预处理、车辆的存在检测和排队长度的提取三部分。
图像预处理和车辆存在检测的目的是确定各个车道在图像视场中的位置并从中提取出车辆轮廓。在实际交通路口,各车道的标识线一般相互平行,且相邻标识线间距离大致相同,但是由于摄像头获取的路口图像具有强烈的透视效果,造成图像中车辆以及车道标志线的几何失真,因此,本算法首先通过逆透视变换(IPM)对输入图像进行预处理,消除图像序列的透视效果,接着引入道路的结构性约束,从Hough变换检测出的直线中搜索出各车道的车道线;然后,通过Canny边缘检测提取出各个车道存在的车辆轮廓。
在排队长度提取时,车辆排队的起点在图像中的位置往往固定,可以事先获知,因此只需确定等待队列的队尾即可检测排队长度。以车道中每行图像的边缘像素累加和作为检测车辆存在的信息量;在图像的车道区域,有车辆存在的地方其信息量高,反之则低;在车辆队列的队尾,图像中对应行的信息量会会产生一个由高到低的跳变,这样,通过检测图像信息量的这一跳变,可以确定排队车辆的队尾,从而实现对排队长度的提取。
在对图像感兴趣区域进行分割以确定各车道标识线时使用的知识如下:
1)在实际交通路口,固定安装的摄像机其光轴一般正对机动车车道区域,因此在逆透视变换消除了几何失真后,图像坐标系中车道标识线与图像水平方向的夹角应该较大;
2)逆透视变换后,检测出的车道标识线之间应当保持平行的关系;
3)逆透视变换后,检测出的车道标识线相互之间的距离不应太小;且对于多车道的道路,相邻车道之间距离应大致相同。
整个检测算法主要包括逆透视变换、Hough变换、Sobel边缘检测和各车道排队长度提取几个步骤,算法的流程如图1所示。
图1 基于逆透视变换的排队长度检测算法流程图
2.1 逆透视变换处理
在欧式空间中分别定义世界坐标系W和图像坐标系I,将坐标系I下的道路图像变换到世界坐标系W下的Z=0平面中,两者关系如图2所示。
图2 逆透视变换关系示意图
假设摄像机安装位置在世界坐标系下的坐标为(w,l,h),摄像机标定的参数分别为:γ为摄像机光轴o在z=0平面的投影与y轴的夹角(图3(a));θ为摄像机光轴o偏离z=0平面的角度(图3(b));2α为摄像机的水平和垂直视角(图3 (a),(b));Rx,Ry分别为图像序列的水平和垂直方向分辨率。
图3 世界坐标系下剖视图
通过坐标系变换,以逆透视变换后的图像为目标图像,对于输入图像帧中的任一像素(x,y),都可以建立其对应于逆透视变换后像素(u,v)的一个地址映射,该映射关系如式(1)所示。
在该级处理的FPGA实现时,涉及反正切、开方等硬件实现复杂的运算,因此不宜在FPGA中采用公式(1)直接进行计算。实际上,当摄像机安装位置不变时,式(1)中图像分辨率、视场角等摄像机参数固定,因此可以采用线下计算的方式建立输入像素与变换结果之间坐标对应关系的查找表,当像素输入时直接根据查找表将其写入结果图像缓存区的对应位置,这样,图像输入结束时即可得到一帧完整的逆透视变换结果图像,避开了复杂的三角函数和开方运算,同时保证了逆透视变换的快速性。
逆透视变换的FPGA具体实现步骤如下:
Step 1:根据式(1)建立输入像素坐标与IPM变换结果的查找表,初始化时,将其写入FPGA的外扩SRAM中;
Step 2:以原始图像像素地址为输入,在查找表中寻址,并将该点像素值写入查找结果所对应的IPM输出地址中;当图像输入结束时,则可得到一帧完整的逆透视变换结果图像。
对于某一交通图像,利用式(1)进行逆透视变换的结果图像如图4所示。
图4 IPM算法的处理效果
2.2 车道标识线检测
车道区域是进行排队长度检测的有用区域,因此如果能够有效检测出车道线并将其包围的区域作为排队长度检测的感兴趣区则可以有效消除背景噪声对排队长度检测造成的干扰。车道线检测常用的算法是Hough变换[6],其实质是对图像空间具有一定关系的像元进行聚类,寻找能把这些像元用某一解析形式联系起来的参数空间累积对应点,但是这种算法容易受到背景特征变化的影响,单纯使用此方法往往不能稳定有效的提取出车道线。如图5所示。
图5 传统图像Hough变换检测车道线效果
然而对于IPM变换后的图像,道路显示出其固有的几何特性,因此可以依据上文提及的道路结构知识,设计对Hough变换后的图像进行启发式搜索的算法如下:
Step 1:对Hough变换检测出的每一条直线line(Pt_ start,Pt_end),用其与图像上边缘的交点横坐标和其与水平方向的夹角表示,即line(theta,x_label),得到集合A;
Step 2:在A中搜索与水平方向夹角从Min_angle到90°范围以内的直线,由此得到子集B,其中Min_angle为保持直线与水平方向垂直的角度下界,其值应大于45°;
Step 3:若|thetaB-thetaA|≤Torrance,则认为检测到的两条直线满足平行的约束条件;对B中所有直线对进行平行性检验,得到直线子集C;
Step 4:查找C中像素距离大于Torrance的直线,由此得到道路边缘集合D。
根据算法的具体应用场合,合适选择各参数,则集合D中包含的元素即为寻找的车道线。如图6所示。
图6 基于IPM变换的Hough算法车道线检测
可见,在Hough变换的基础上利用IPM图像无视觉失真的特点并引入道路结构性约束可以有效检测出车道线。根据检测出的车道线,可以方便确定车道数和各车道在图像中所占的区域。
在实际应用时,摄像头的安装位置固定,车道区域在视场中的象素位置也随之固定,因此可以按照上述算法预先计算各车道控制线的位置参数,将其写入FPGA作为车队长度提取的感兴趣区。
车辆与路面背景之间有明显的亮度差,因此根据图像预处理所划定的感兴趣区,采用Sobel算子可以有效检测出各车道的车辆轮廓。
将前一级输出的结果图像与水平和垂直方向的两个3× 3Sobel算子分别做卷积,其卷积核分别为:
设计深度为723的Buffer,并在有效像素时钟跳变时用新输入的像素更新Buffer;以缓冲区中地址为361的像素为处理中心,将其3×3邻域同Kh和Kv分别做卷积,卷积的处理方式与上一模块相似只是卷积结果用9个二进制位表示,最高位代表减法方向,0为正向差,1为逆向差;两个方向的卷积结果同时输出到下一级,并在有效像素时钟改变时重复上述操作;该模块的硬件实现如图7所示。
图7 Sobel边缘检测的硬件化实现结构图
经过对IPM图像中车道区域的Sobel检测,提取出的各车道车辆轮廓如图8所示。
图8 Sobel边缘检测结果图像
经过IPM变换后,车道标识线相互平行。设排队的起始线和视场范围最远线在图像中的行坐标分别为S和E,对于第i个车道,其控制点列坐标为Li和Li+1,如图9所示。对输入的每一有效像素,判断其列坐标y是否满足Li<y<Li+1,即可确定该像素点是否在第i个车道范围内。
图9 车道区域分割示意图
从起始行S开始,以车道中值为1的像素的累加和作为检测车辆存在与否的信息量;设排队车辆的平均间距参数为N,检测车辆存在与否的阈值参数为Cnt_Th,若从某一行x(x>=S)开始的连续N行图像其信息量都小于Cnt_Th,,则认为车辆信息量在第x行产生了明显的由高到低的跳变,此时该行对应了排队车辆的队尾,
由此,可得到第i个车道的车辆排队长度计算公式如式(2)所示。
其中:C(x)为第x行图像的信息量统计值,g(x,y)为二值化后的图像象素。
在该模块的FPGA实现时,统计和比较运算在图像输入时同步完成,排队长度的计算可以在图像输入完成前第一次出现满足式(2)的x时结束。图10为水平投影及排队长度计算的FPGA实现电路图。
图10 排队长度检测逻辑电路图
经过上述步骤,实现了对各车道的排队长度检测,将各车道的排队长度相加,即可得到路口车流量的一种度量。对交通路口某一图像序列的排队长度检测结果如图11所示。
图11 车辆排队长度检测结果
本文介绍了一种基于逆透视变换的车流量检测算法及其FPGA实现,可以实现对交通路口车流量的自动实时检测。该算法具有以下特点:
1)在图像预处理时采用逆透视变换得到了无畸的二维鸟瞰图像,通过引入车道标志线之间的平行约束和距离约束,准确的从输入图像中检测出车道标识线;另外,在消除了视觉偏差的图像上进行的排队长度检测比校正前得到的结果更加真实准确;
2)在算法的FPGA实现时,将参数的线下标定和图像的在线实时处理相结合,保证了整个车流量检测过程的实时性;
3)充分发挥了FPGA的并行处理能力,实现了对多个车道车辆排队长度的并行同步实时检测;
但是,逆透视变换下车道线的平行性等约束只适合于平坦路面下的直道,对于路面起伏以及弯道的情形,本文提到的车道标识线搜索约束将不再满足。因此,如何基于逆透视变换提出一种更通用更合理的约束来适应于各种情况下的车流量检测,将是我们下一步的研究内容。
[1]杨永辉,黄 磊,刘昌平.基于视频分析的车辆排队长度检测[J].计算机应用研究,2011,28(3):1037-1041.
[2]王 闯,史忠科.实时车辆排队长度图像检测系统及FPGA硬件实现[J].交通运输系统工程与信息,2012,12(3):65-72.
[3]Lopich A,Dudek P.Hardware implementation of skeletonization algorithm for parallel asynchronous image processing[J].Journal of Signal Processing Systems,2009,56:91-103.
[4]Nieto M,Salgado L,Jaureguizar F,et al.Stabilization of inverse perspective mapping images based on robust vanishing point estimation[A].Proceedings of the 2007 IEEE Intelligent Vehicles Symposium[C].Istanbul,Turkey,2007:315-320.
[5]程红丽,张耕川.基于FPGA的太阳能充电系统的研究与设计[J].重庆大学学报,2014(09).
[6]吴 哲,孙 涵.基于快速直线段提取的道路标识线识别算法[J].计算机技术与发展,2009,19(5):48-51.
Vehicles Queue Length Detection Based on Inverse Perspective Mapping and Its Hardware Implementation
Wang Chuang,He Ying
(Xi′an Aeronautics Computing Technique Research Institute,AVIC,Xi′an 710065,China)
Vehicles queue detection in intersection is an important component of the intelligent transportation system.The traditional detection methods are vulnerable to background noise and perspective effect of traffic image,and their implementation are based on the structure of serial processor,which is hard to meet the real-time processing requirements of visual applications.Thus,take advantage of the geometry characteristics of flat road,this paper develops a novel vehicles queue detection algorithm suitable for FPGA implementation.It firstly eliminates the geometric distortion of image sequence using inverse perspective mapping method,and detects the lane markers by introducing in structural constraints of road;on this basis,it extracts the contours of vehicles queue using Sobel algorithm and determines the queue tail by adopting a kind of measurement based on entropy.Moreover,the hardware architecture design in FPGA makes the entire algorithm achieve real-time processing speed.Test results show that after eliminating the visual deviation of the image,the queue length detection result is more accurate,and the proposed detection method can be easily engineered and used for automatic real-time detection of actual traffic intersection traffic.
inverse perspective mapping(IPM);field-programmable gate array(FPGA);lane markers identification;vehicles queue;Sobel operator
1671-4598(2016)08-0028-04
10.16526/j.cnki.11-4762/tp.2016.08.008
:TP391.4;U491
:A
2016-02-24;
:2016-03-11。
国家自然科学基金重点基金项目(61134004)。
王 闯(1986-),男,河南南阳人,工程师,主要从事图形图像处理和高速实时信号处理方向的研究。