随着中国经济的迅猛发展,汽车的保有量越来越高. 截至2017年3月底, 全国汽车保有量首次超过2亿辆[1]. 在中国大多数城市中车流量较大的主要交通要道上, 交通拥堵, 事故频发, 给市民的生活和日常出行造成了极大的不便. 为了改善城市的交通状况和市民的生活质量, 通过快速的检测到交通拥堵时的车辆排队现象, 实时得到交通监控视频中的车道占有率等信息对交通概况加以改善是重中之重[2].
传统的车辆排队长度检测方法主要是利用固定位置的传感器, 如环路传感器等. 由于传统方法的成本高以及维护困难, 因此目前车辆排队长度检测方法的研究主要基于视频检测器以及基于带有探测器的联网车辆. 基于视频检测器的检测方法研究主要有以下几种. 第一种检测方法分为三步, 车辆运动状态检测, 车辆存在检测以及车辆排队长度检测. 使用三帧时间差分法的运动检测方法对移动车辆进行检测[3], 边缘信息作为车辆存在的标志, 利用移动的检测窗口对交叉口的车辆排队长度进行检测. 文献[4]使用背景差法在虚拟的检测窗口监控交通路口车辆的出现. 文献[5]结合背景差法和边缘检测方法判断车辆队列的存在. 文献[6]使用基于梯度的形态学边缘提取方法判断车辆存在, 使用伸缩窗方法检测车辆队列. 然而文献[3]主要通过时间差分法得到视频中运动的车辆, 无法检测到车辆队列的形成. 在文献[4, 5]都使用了帧差法和背景差分法, 不同点为作为车辆存在的特征不同. 第二种检测方式通过建立世界坐标系使用逆透视变换获得交通道路的鸟瞰, 文献[7]使用该方法可以获得较为清晰的车辆排队结果, 但是依赖于准确的车道线标识并且是在车辆队列形成的前提下. 由于联网汽车技术的快速发展和叫车服务的出现, 带有探测器设备的联网车辆越来越多, 进而出现基于联网车辆研究车辆排队长度的方法[8], 但是目前联网车辆的所占比例依旧很小.
针对以上文献采取的方法以及出现的问题, 本文在车辆排队长度检测的过程中主要做了如下工作. 第一, 改进FAST角点检测的过程, 在检测窗内利用角点信息作为车辆存在的标志, 同时通过角点位置在相邻帧间的像素变化与阈值相比较, 判断车辆的运动状态获取视频中的车辆队列. 第二, 结合PCA技术将队列中的角点信息压缩成为一维向量, 在孤立的噪点被去除的同时保留了原视频监控中有用的角点信息. 第三, 对得到的一维向量进行可变模板的形态学处理, 最后转换为实际排队长度.
2 系统流程本文提出一种车辆排队长度检测方法. 其方法基于FAST角点检测将监控视频中单一车道里的车辆角点特征提取, 并使用PCA提取主成分压缩为一维向量. 最后使用可变模板的形态学处理得到车辆排队长度. 该检测方法的流程如图1所示.
(1)对交通路口摄像头采集到的实时路况视频进行预处理. 其中包括灰度化视频图像以及噪声去除.
(2)通过对交通路口监控视频的第一帧图像人工标定感兴趣区域.
(3)判断检测窗内角点位置的运动状态从而判断车辆排队的形成.
(4)对队列中获得的角点特征应用PCA处理压缩成一维向量来表征车辆队列长度.
(5)对PCA的结果进行形态学处理确定队列长度.
3 车辆排队长度检测 3.1 提取感兴趣区域由于摄像机透镜成像的原因, 造成监控视频中车道线的成线不会呈现平行状态, 而是会呈现不规则的梯形状态, 如图2中某一交通路口取得的四个场景.
目前车道线检测的研究主要集中于使用霍夫变换, 线段检测器等, 然而现实中交通背景杂乱, 遮挡物多, 车道线的检测依赖于背景模型的建立, 在背景模型建立的相对完美的情况下车道线的检测才会发挥其作用. 因此传统的车道线检测方法难以准确提取出感兴趣区域, 较为精确的车道线检测方法则负载过重, 使用成本高. 在固定的红绿灯停车区域内, 摄像头的位置是不变的, 而车道感兴趣区域的提取关键在于感兴趣区域内的4个顶点, 本文通过人工标定的方式获得车道区域的4个顶点. 在车道区域内单一车道平均分布. 划分出单一车道内的区域便于进行后续的方法.
3.2 噪声的去除
椒盐噪声是导致图像质量下降的主要噪声之一, 这种噪声表现为某一像素相对于其邻域内的其它像素的灰度值突变而与图像中的边缘细节一样具有较大梯度值, 从而对图像的分析与角点的判断造成困难[9], 因此有效滤除椒盐噪声并保护图像细节成为保证所采集车辆图像质量的一个重点. 中值滤波为去除椒盐噪声最有效的方法, 它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值, 较好地保留了图像细节.
高斯噪声是另一种导致所采集车辆图像质量下降的噪声, 它的存在会给后续工作中的角点特征提取带来很大的困难[9], 本文选择均值滤波方法进行高斯噪声的去除. 例如, 当前像素位置为(x, y), m为该模板中包含当前像素在内的像素总个数. 作为处理后图像在该点上的灰度值为g(x, y).
$g(x,y) = \frac{1}{m}\sum {f(x,y)} $ | (1) |
虽然以往很多车辆检测算法都是基于背景减法[10], 但经验表明, 这些方法对光照条件的变化比较敏感, 基于这个原因许多研究人员建议使用边缘[11], 纹理和角点等低层次特征作为某一区域车辆存在的标志. 本文从车道上发现的角点特征信息来推断队列长度. 这种方法在光照变化前具有非常好的鲁棒性.
从早期的Moravec到Harris, 再到SIFT, SURF等, 可以说特征提取的算法层出不穷, 在后续的研究中也提出了各种改进的算法. 其中SIFT和SURF提取到的特征非常的优秀, 但是时间消耗依然十分巨大, 这就使得系统的实时性不是很好, 降低了系统的性能. Edward Rosten和Tom Drummond经过研究[12]于2006年提出了一种FAST特征点, 并在2010年修改后发表, 简称FAST[13]. FAST实际上是在不影响结果的前提下, 文献[14]简化了Harris检测方法.
如图3中, FAST关键点检测是对兴趣点所在圆周上的16个像素点进行判断, 假设p为中心像素点, pi为p点周围圆形区域内16个像素点的一点, 首先计算图中p1、p9、p5、p13与中心p的像素差, 若它们的绝对值有至少3个超过阈值, 再进行下一步, 否则不存在角点. 下一步计算p1到p16这16个点与中心p的像素差, 若它们有至少9个超过阈值, 则是特征点; 否则不存在角点.
$\sum I(|N(pi){\rm{ - }}N(p{\rm{)|}} > t \ge 3,i = 1,5,9,15$ | (2) |
$\sum I({\rm{|}}N(pi){\rm{ - }}N(p{\rm{)|}} > t \ge 9,i = 1,\cdots,15$ | (3) |
N(x)为x点的像素值. t为实际上比较强度时的阈值. 当x为TRUE时, I(x)值为1, 当x为FALSE时, I(x)值为0. 车辆角点特征提取如图4.
3.4 改进FAST检测算法
以往对于车辆排队长度的测量方法大部分基于滑动窗方法[15], 然而滑动窗方法对于摄像机远端车辆的识别误差大. 因此本文对FAST算法改进的第一点是将角点特征关键点集按照映射的原理生成一副新的图像. 该图像只在对应于原图像存在角点的位置有值, 便于使用这张图像进行PCA处理得到一维向量, 该图像如图5.
以往的车辆排队长度方法首先通过判断车辆运动的状态, 再通过发现车辆的角点, 边缘等特征. 本文对FAST算法改进的第二点是将运动检测方法融入到算法的过程中. 首先, 在停车线前设置虚拟检测区, 在使用FAST算法遍历检测区的同时, 对检测到角点信息的位置运用运动检测方法得到车辆在视频中的运动状态并判断是否形成车辆队列. 本文中运动检测方法使用帧间差分的思想, 将其与前一帧图像的相同位置作比较. 当虚拟检测区内车辆处于静态时[4], 默认通处于拥堵状态并测量车辆排队长度.
在视频中车道前某一位置, 设置一大小合适的检测窗, 使用改进后的FAST角点算法得到静态的点和动态的角点.
$D(p) = \begin{array}{*{20}{c}} {\max }\\ {p' \in S(p)} \end{array}|{I_t}(p') - {I_{t - 1}}(p')|{\kern 1pt} {\kern 1pt} $ | (4) |
$E(p) = \left\{ {\begin{array}{*{20}{c}} {0,}\\ {1,} \end{array}\begin{array}{*{20}{c}} {D(p) > t}\\ {D(p) < t} \end{array}} \right.$ | (5) |
p为检测到角点的位置. It(p)是像素p在t时刻的值, S(p)是p的邻域的集合, 由于相机抖动及外界环境影响, 将得到的D(p)与阈值t相比较得到E(p), 即车辆的运动状态.
3.5 PCA降维主成分分析也称为卡尔胡宁-勒夫变换(Karhunen-Loeve Transform), 是一种用于探索高维数据结构的技术, 还可以用于数据压缩, 数据预处理等, 新的低维数据集会尽可能的保留原始数据的变量. 本文通过对如图5生成的角点映射图进行PCA就生成了如图6所示的一维向量.
3.6 形态学处理使用形态学处理对上述得到的不连续结果进行优化. 由于在成像过程中近大远小的特点, 对该图像进行形态学处理的过程中使用可变模板的形态学处理, 即式(6), 得到的图形如图7.
$\begin{split} &(A \oplus B)(i.j) = \max \{ Ar(p,q)|B(2r + 1,2r + 1),r = 1,2,\cdots\\ &\quad(p,q) \in B(i,j) \cap Ar\} \end{split}\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!$ | (6) |
其中, B(i,j)表示将B的中心对准Ar的(i, j)位置形成的矩阵范围, Ar为使用可变模板B(2r+1, 2r+1)膨胀的图像. 而该范围落在Ar之内的部分是B(i, j)
首先将得到形态学处理结果转换为像素长度[6], 如图8. 本文中的车辆排队长度由白色区域构成, 即从(x, y)=(0, 0++)起遇到的第一行白色区域为车辆排队的队尾, 从(x, y)=(0, img.length--)起遇到的第一行白色区域. 最后由文献[3]可知, 车辆排队长度的像素距离[6]可以转换为实际距离.
5 实验结果及分析
本文选取一个接近十字路口的过街天桥, 拍摄一段有车辆排队的视频, 摄像头可采集的像素数量是1811×1020, 摄像机架设的高度为6 m, 摄像机光心到车道停车线的实际距离为 26.5 m. 本文选取视频中不同排队长度的四幅画面, 根据文献[3]中的摄像机标定技术对本文中得到的车辆排队结果进行了最终的队长测量, 给出实际排队长度与检测长度进行对比. 得到如表1. 由表1可知, 检测的精度高达98%.
从表1数据可以看出, 在摄像机视野范围内, 本文算法结果相较于文献[6]总体表现不错, 基本控制在2%的错误率. 在列出的实验数据中, 第一组数据显示误差较大, 主要是由于第一辆汽车外观平滑, 不宜检测到角点. 文献[6]中整体表现比较稳定, 但均值略高于本文方法, 因此本文算法相较于其他算法在整体表现上不错, 但却不稳定, 在后续研究中可以增加检测车辆其他特征的步骤, 针对性的提高稳定度.
6 结束语
本研究通过改进FAST算法过程, 将车辆运动状态的判断与检测角点存在运用到一起, 简化传统车辆排队长度检测的过程, 缩小规模, 更有利于快速判断车辆队列的存在. 然后将主成分分析运用到车辆排队长度的测量中, 在保有大部分信息的特点下解决了对于远端车辆测量不准确的情况, 提高了测量的准确率.
[1] |
王鹏程. 基于多图像传感器融合的全景泊车辅助系统研究[硕士学位论文]. 长春: 长春理工大学, 2013.
|
[2] |
Buch N, Velastin SA, Orwell J. A review of computer vision techniques for the analysis of urban traffic. IEEE Transactions on Intelligent Transportation Systems, 2011, 12(3): 920-939. DOI:10.1109/TITS.2011.2119372 |
[3] |
杨良义, 谢飞, 陈涛. 基于视频的交叉路口车辆排队长度检测方法研究. 重庆理工大学学报(自然科学), 2018, 32(6): 169-174. |
[4] |
李卫斌, 辛乐, 陈阳舟, 等. 基于图像处理的车辆排队长度鲁棒检测算法. 计算机测量与控制, 2011, 19(8): 1810-1813. |
[5] |
贺晓锋, 杨玉珍, 陈阳舟, 等. 基于视频图像处理的车辆排队长度检测. 交通与计算机, 2006, 24(5): 43-46. |
[6] |
Liu Z, Chen YZ, Li ZL. Vehicle queue detection based on morphological edge. Proceedings of the 2008 7th World Congress on Intelligent Control and Automation. Chongqing, China. 2008. 2732–2736.
|
[7] |
王闯, 贺莹. 基于逆透视变换的车辆排队长度检测方法及硬件实现. 计算机测量与控制, 2016, 24(8): 28-31. |
[8] |
Zhao Y, Zheng JF, Wong W, et al. Various methods for queue length and traffic volume estimation using probe vehicle trajectories. Transportation Research Part C: Emerging Technologies, 2019, 107: 70-91. DOI:10.1016/j.trc.2019.07.008 |
[9] |
王钰. 车辆识别系统中的基础性算法研究[博士学位论文]. 北京: 北京交通大学, 2010.
|
[10] |
陶万杰. 基于视频处理的车辆排队长度检测算法的研究与应用[硕士学位论文]. 北京: 北京邮电大学, 2015.
|
[11] |
史忠科, 乔羽. 城市道路排队车辆检测方法. 交通运输工程学报, 2012, 12(5): 100-109. DOI:10.3969/j.issn.1671-1637.2012.05.014 |
[12] |
Rosten E, Drummond T. Machine learning for high-speed corner detection. Proceedings of the 9th European Conference on Computer Vision. Graz, Austria. 2006. 430–443.
|
[13] |
Rosten E, Porter R, Drummond T. Faster and better: A machine learning approach to corner detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(1): 105-119. DOI:10.1109/TPAMI.2008.275 |
[14] |
Shirazi MS, Morris B. Vision-based vehicle queue analysis at junctions. Proceedings of the 2015 12th IEEE International Conference on Advanced Video and Signal Based Surveillance. Karlsruhe, Germany. 2015. 1–6.
|
[15] |
杨德亮, 辛乐, 陈阳舟, 等. 基于复式伸缩窗的车辆排队与消散快速检测算法. 公路交通科技, 2011, 28(4): 105-111. DOI:10.3969/j.issn.1002-0268.2011.04.018 |