本发明涉及一种基于局部特征分析的车辆排队长度快速检测算法,属于智能交通管理系统的车流量检测。
背景技术:
目前已有多种传感器被用于检测车辆的存在、数量、排队情况以及平均速度等,其中基于机器视觉的车辆检测运用最为广泛。基于机器视觉的车辆排队长度检测通常由以下几个步骤组成:车辆存在检测,尾车检测,投影转换等。基于背景差分的检测算法最为常用,其在一定程度上有赖于运算复杂且系统资源消耗较大的背景建模,背景的纯净度也直接影响着检测结果的准确性。Albiol A等人提及的算法是利用车辆的角点特征来区分车辆和背景,同时利用相对位置的变化来判断其运动状态。这种算法需要背景相对纯净,检测出的背景角点过多会影响检测结果。Satzoda R K等人将车道内的空间划分成等距的矩形区域,由远到近检测,并根据像素占用比例获得队尾位置。从结果分析可知,在实际中,车辆并不能完全占据某一检测块内所有像素点,因此排队长度检测不够准确,且文中只给出了图中像素长度,并未给出实际长度。Gao Zhongtao采用30m高度以上的摄像头,可测距离达到500m,把区域预测和特征检测相结合,以获取前景目标,并根据目标的运动特征,计算车辆运行速度以及排队长度等宏观交通信息。这种算法以牺牲距离精确度为代价提高检测范围,不能准确定位交通道口,针对一个路口给出结论。Song Xiaona将AdaBoost算法和简单卷积神经网络相结合,实现了快速分类和实时识别,但是算法复杂度较高,代码量大,不适合在资源有限的嵌入式系统中使用。上述算法在一定程度上都能够有效地将车辆检测出来,但是也都有一定的局限性。
技术实现要素:
本发明在综合各类检测算法的基础上,提出了一种利用局部特征获得车辆排队长度的快速算法:在视频中每个车道位置提取三列数据并合并为一列进行分析比对,将小波变换和高斯滤波相结合对数据进行去噪处理,最后使用宽度可变的滑动窗进行队尾检测,利用建立的摄像机针孔模型获得映射后的排队长度。为达到上述目的,本发明的技术方案为:
一种基于局部特征分析的车辆排队检测算法,包括下述步骤:
步骤一、依据针孔模型建立摄像机成像模型,实现像素距离到实际距离的相互转换;
步骤二、从视频图像中的车道所在位置提取三列像素值,并将其合并为一维的特征数组;
步骤三、对视频图像中进行特征提取的像素位置建立局部背景,实现局部特征的背景差分;
步骤四、对背景差分后的特征数组进行去噪处理,去噪算法将小波变换和高斯滤波相结合;
步骤五、对去噪后的特征数组进行二值化处理;
步骤六、确定可变滑动窗的窗宽;
步骤七、利用可变滑动窗在一维特征数组上进行跳变检测,获得车辆排队的队尾位置,并映射为实际长度。
有益效果:
本方法对图像感兴趣区域进行了缩减,只对画面中车道所在位置的三列像素值进行研究,极大的减少了算法处理的数据量,实现了车辆排队长度的快速检测;
选择使用摄像机针孔模型实现了像素距离到实际距离的相互转化,将算法检测得到的车辆排队像素长度转化为实际长度,用于交通灯的智能调节。
附图说明
图1是本发明中摄像机的成像模型;
图2是图像选取局部特征示意图;
图3是局部特征数组的去噪处理;
图4是局部特征数组二值化;
图5是队尾检测算法流程图;
图6是车辆排队长度检测结果截图。
具体实施方式
本发明公开了一种基于局部特征分析的车辆排队长度快速检测算法,本方法在原有感兴趣区域的基础上将图像特征区域进一步缩减,只采集图像中车道所在区域的三列像素值作为局部特征进行检测,并且将摄像机抽象为针孔模型实现像素距离到实际距离的转化。
下面结合附图并举具体实施例对本方法做进一步说明:
本实施例针对某一路口的车辆排队长度进行检测,检测步骤如下:
实施例:
步骤一、构建摄像机模型。为测量车辆的排队情况,需要安装一个反向的摄像头迎着来车方向进行拍照。检测车辆排队的长度受到摄像机分辨率的限制,需要预先设置视野最远端。实验中将摄像机的成像过程简化为如图1所示的针孔模型,推导步骤如下:
101、推导出摄像机针孔模型的光轴长度l:
其中P点为摄像机光心在路面上的投影;H为摄像机架设的高度;a点为能够采集到的画面底边位置,对应着路面上的A点,即视野近端,PA段即为摄像机的近端盲区;成像元件光心所在位置记为b,ob的反向延长线与路面的交点为B,这些量可以通过实际测量,得到光轴l;
102、摄像机与地面呈一定的角度,基于针孔成像原理,利用角关系可以得到相应位置在实际路面上的长度,据此求解得到s(像素距离)向S(实际距离)的转换:
103、求解S(实际距离)到s(像素距离)的转换:
步骤二、设车道宽度为L,将车道L/2位置及左右相同距离的位置像素点取出,以中间一列像素值为主要特征对数据进行处理,将另外两列的数据加权相加作为第二项数据,相应插入到中间一列的像素值中组成一维特征值数组作为图像关键信息点的局部特征。设第n行该列的像素标记为P(n)输出记为OUT(k)则可以用如式表示:
OUT(k)=P(n)
OUT(k+1)=δ×P(n+n×r1)+ε×P(n+n×r2)
式中r1,r2分别是和车道斜率相关的特征点采集斜率,以保证可以均匀的采集到路面上的所有区域,如图2所示为选取的路面特征像素位置,通过数据的变化可以表现出车辆对于背景像素灰度值的改变情况,有车辆的位置像素出现与背景差别较大的波动;
步骤三、本发明基于局部特征的分析,在背景建模中,建模区域和提取特征像素的位置相同,背景的数据排列结构也与特征提取的结构相同,运用均值法建立背景模型,相比于传统背景建模极大的减小了算法的时间复杂度,在背景复杂的图像中背景差分方法能够很好地降低背景对前景检测的干扰;
步骤四、利用高斯滤波和小波变换相结合的方法对一维局部特征数组做去噪处理,选取小波基为db4,分解层数为3,效果对比如图3所示。小波变换是基于短时傅里叶变换发展起来的,其空域和时域都是局部化的,且各处的频率自动变换,适合处理非平稳信号分析;
步骤五、首先,需要对原数据进行一定的处理,去除幅度较小的信息变化,同时将数据进行绝对值操作方便进行下一步处理,最后再进行局部特征的二值化,二值化阈值为像素均值,结果如图4所示;
步骤六、确定可变滑动窗的窗宽,具体算法步骤描述如下:
601、确定起点位置start,首次为数组起始点;
602:使用公式计算起点位置对应的路面实际距离L1;
603:将L1加上中型车辆的实际长度e,记为L2;
604:计算L2所对应的图像中的像素距离,记为窗结束点end;
605:窗宽win的值即为start与end的差值。
步骤七、图5所示为队尾检测流程图,具体算法步骤描述如下:
701、计算宽度可变的滑动窗的窗宽,利用步骤五介绍的方式求解像素窗宽win;
702、利用滑动窗口在一维特征数组上进行顺序检测,计数各位置窗内的跳变次数,通过实验确定阈值Y;
703、以阈值Y作为判定条件,确定队尾位置,结果如图6所示。再通过像素距离到实际距离的映射公式获得实际车辆排队长度。