摘 要: 智能交通系统是未来交通的发展趋势,基于计算机视觉的电子警察违章抓拍、违章处理、交通指挥等是现代智能交通系统的重要组成。讨论基于计算机视觉的电子警察抓拍闯红灯算法,在准确预测车辆位置、跟踪运动车辆的同时,准确判断是否存在闯红灯灯违章行为,有效提升视频处理速度以及车辆违章检测精准度。
关键词: 计算机视觉; 电子警察; 违章抓拍; 视频检测
中图分类号: TP311 文献标志码: A
Research on Algorthm of Electronc Polce Capturng Red
Lght Volaton Based on Computer Vson
SU Bo
(Department of Publc Securty, Guangx Polce College, Nannng 530028, Chna)
Abstract: Wth the mprovement of the level of ntellgent technology, the ntellgent traffc system becomes the development developng trend of the future traffc. Modern ntellgent transportaton system ncludes electronc polce volatons, llegal treatment, traffc command and other technologes. Ths paper dscusses a computer vson-based electronc polce red lght capture capturng algorthm. The algorthm can accurately predct the poston of the vehcle, track the movng vehcles, and determne whether there s a volaton of the red lght. The research n ths paper effectvely mproves the speed of vdeo processng and the accuracy of vehcle volaton detecton.
Key words: Computer vson; Electronc polce; llegal capture; Vdeo detecton
0 引言
采用计算机视觉的现代智能交通管理体系,可以连续不间断的检测道路、车辆情况,发现问题之后能够发出警报、存储违章信息并智能联络车辆违章处理体系[1]。基于计算机视觉的电子警察闯红灯违章识别不需要破坏路面,是利用车辆检测和跟踪算法进行违章抓拍[2],本文讨论基于三帧差分算法的运动目标检测和基于卡尔曼滤波的运动车辆目标跟踪算法和闖红灯识别算法,智能化水平和检测效率更高。
1 运动车辆目标检测算法
运动车辆目标检测是电子警察闯红灯抓拍的重要环节,为运动目标跟踪和违章识别奠定基础。运动车辆检测就是对视频图像进行分析,提取运动车辆目标。常见运动车辆目标检测算法包括光流法、帧间差分法、背景差分法[3]。本文的研究中,采用基于三帧差分算法的运动目标检测方法,对视频中的连续帧进行图像处理,消除图像毛刺以及噪声影响,确定运动目标的边缘,完成图像预处理,然后采用相邻的三帧图像来提取运动目标,获得运动目标变化范围,确定灰度检测阈值,让运动目标定位更加精准[4-5],如图1所示。
第一步:对采集的视频图像进行预处理、图像灰度化,将原始图像转变为灰度空间;
第二步:对连续三帧图像进行中值滤波,保存图像纹理信息,获得清晰图像;
第三步:对连续三帧图像做差分运算,前、后帧的图像分别与中间帧的图像做差分运算;
第四步:做二值化处理、数学形态学处理,消除造成和毛刺,获取理想前景目标;
第五步:对计运算后的两帧图像做相与运算,消除噪声的同时填补剩余空洞。
图像处理效果如图2所示。
(a) 原始图像 (b) 灰度图像
(c) 加噪图 (d) 中值滤波图
图2 图像处理效果
本文选择种中值滤波进行图像处理,就是将待处理像素点四轴的像素值排序,以中间值为该像素点幅值[6]。
二维中值滤波输出为式(1)。g(x,y)=med{f(x-k,y-l),(k,l∈W)}
(1)其中,f(x,y)、g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为3×3,5×5区域。
为了消除运动物体产生的背景变化区域,恢复因为运动目标的重合而被覆盖的区域,采用连续三帧图像的差分算法,获取运动目标,这种方法的鲁棒性更高,获取的图像效果更好,如图3、图4所示。
(a) 第一帧 (b) 第三帧 (c) 第五帧
通过差分运算后图像存在噪声和空洞,前景目标不清晰,对图像进行二值化处理,将其分割为目标和背景,将目标物从差分图像中提取出来,如图5所示。
通过上述步骤的处理,图像中的毛刺和空洞已经消除,可以清晰判断运动车辆目标,符合系统检测要求。采用三帧差分算法,增强图像效果,保留图像清晰度的同时获得运动车辆信息。
2 基于卡尔曼滤波的运动车辆目标跟踪算法 车辆跟踪,就是将前后两帧中相同的运动目标之间建立联系,从后一帧来确定前面一帧确定的车辆。常见的运动车辆目标跟踪算法有以下几种:
1、常用运动目标跟踪算法
基于区域的目标跟踪:设定图像模板,用这些模板检测
连续图像帧,可以用边缘检测跟踪、先检测后跟踪、先跟踪后检测三种模式,基于区域的目标跟踪操作过程简单,运算量较小。基于特征的目标跟踪:细化采样的时间间隔,将跟踪目标动作看作光滑的,采用边缘增强、检测的方式提取运动车辆边缘分割信息,通过判断相邻图像的边缘相似性来估计运动目标的连续帧图像[7-8]。基于动态轮廓的目标跟踪:先对车辆的轮廓进行最初的勾勒,更新后续各帧的轮廓,实现目标跟踪,Snake跳跃模型是非常典型的动态轮廓算法,但是这种算法主要是在目标不连续的情况下用设置节点的最大值寻找边界,但是遮挡也是无法避免的问题。基于模型的目标跟踪就是按照运动车辆外形轮廓建立三维分析模型,通过车辆前景和同样位置的投影之间的匹配分析确定车辆长宽和基本类型。这种方法具有良好的鲁棒性,及时车流量较大的状态下,也能保证精准度,但是对模型数据库的依赖性加强,需要频繁更新车辆数据库。[9]
2、基于卡尔曼滤波器的运动目标跟踪
引进卡尔曼滤波法,结合基于特征的目标跟踪,提升车辆跟踪结果的准确性,快速得出计算结果。算法采用卡尔曼滤波器,根据这一帧的车辆状态预测下一帧的状态,根据预测的位置确定运动车辆的搜索区域,并在该区域进行目标匹配,有效避免大范围搜索,提升算法的执行速度 [9]。
建模:
从本质上讲,车辆跟踪过程就是离散控制的过程,假设N(t)代表时间t时刻的状态向量,用线性随机微分方式可以表示为式N(t)=aN(t-1)+bQ(t)+S(t)
(2) 测试量为式(3)。P(t)=cN(t)+M(t)
(3)上式中,a和b表示系统参数,c表示测量系统参数;S(t)正态分布的噪声,此处P(t)表示的是在t时刻的测量值,M(t)表示的是t时刻的目标跟踪系统的控制量,J和D分别表示函数N(t)和P(t)的先验误差。假设系统的运动和测量噪声都符合正态分布,那么系统的状态并不会影响系统先验误差。
符合上述公式的系统即为随机微分系统且为线性系统。假设当前状态表示为t,根据卡尔曼模型,可以根据上帧状态预测当前系统状态为式(4)。N(t|t-1)=aN(t-1|t-1)+bQ(t)
(4) N(t-1|t-1)表示系统上一帧的理想状态结果,Q(t)为当前状态控制量,N(t|t-1)表示上一状态的预测结果。N(t|t-1)的先验误差不变,协方差可以表示为式(5)。E(t|t-1)=aE(t-1|t-1)aT+bQ(t)
(5)上式中aT是a的转置矩阵,J表示系统过程先验误差,E(t-1|t-1)表示N(t-1|t-1)的后验误差,E(t|t-1)为N(t|t-1)的 先验误差。利用上述公式能够完成车辆目标的跟踪预测。
预测工作的最终目标并不是计算出预测值,而是根据算法明确测量值的当前状态,t的最优化估计值如式(6)。N(t|t)=N(t|t-1)+tτ(t)(P(t)-cN(t|t-1))
(6)上式中,tτ代表卡爾曼增益,其表达式为式(7)。tτ(t)=E(t|t-1)cT(cE(t|t-1)cT+D)
(7) 由此可以得出t状态下的N(t|t)最优化估计值,其先验误差转变为式(8)。E(t|t)=(F-tτ(t)c)E(t|t-1)
(8)上式中,F为单位矩阵,下一帧E(t|t)递归为E(t-1|t-1),卡尔曼滤波算法的核心就是通过自回归运算预测运动目标。采用基于卡尔曼滤波的运动车辆目标跟踪算法,运动车辆目标检测的速度更快、效率更高。
本文引入卡尔曼滤波进行运动车辆检测:首先是计算车辆质心的位置,确定运动目标跟踪窗口的长宽参数,明确跟踪目标之间的关系,通过这一帧的位置参数来预测下一帧的位置,实现移动目标的精准定位。卡尔曼滤波目标跟踪模型包括4个子模块:首先是采用计算机视觉分析技术计算车辆质心位置和跟踪窗口位置等特征值;第二步是建立车辆跟踪模型的滤波器,设置滤波器参数,对车辆的运动位置进行预测;第三步是进行特征匹配,确定运动车辆的基本特征参数,进而求解相邻帧运动目标的特征值,确定目标是否一致;第四步是更新滤波模型的参数,并将其确定为下一帧的输入参数。
(1) 特征值计算
针对包含运动车辆的图像进行二值化处理,是被并跟踪二值化前景车辆目标,设置运动目标跟踪窗口,如图6所示。
在窗口设定之前,擦用连通域规则将属于同一个车辆的像素点聚集起来,然后逐块提取轮廓。调用OpenCV库的cv FndContours函数进行运动目标的轮廓处理,搜索区域内车辆的轮廓,估算轮廓坐标,进而确定跟踪窗口的参数。假设运动车辆轮廓像素坐标的X的最大、最小坐标表示为Xmax、Xmn,Y的最大、最小坐标表示为Ymax、Ymn,从左下方逐渐向上,水平方向逐渐向右,右上角坐标垂直向下同时向左移动,绘制出运动目标跟踪窗口。窗口的长度表示为:l=Xmax-Xmn,窗口高度表示为h=Ymax-Ymn,窗口面积有长高计算得出,跟踪窗口中心坐标即为车辆的质心。
(2) 车辆跟踪模型参数设置
引入卡尔曼滤波的运动目标跟踪模型,实际应用时需要根据需要设置模型的关键参数,包括状态向量、测量向量、系统参数、测量矩阵以及其他参数等。
状态向量N(t)=[m n νm νn l h dl dh]Tk,式中νm和νn分别表示运动车辆在X轴和Y轴的移动速度,l和h表示跟踪窗口的长和宽,dl和dh表示长、宽的变化率。(m n)表示运动车辆的质心坐标,通过这些参数能够通过当前帧的车辆状态预测下一帧的状态向量。
测量向量P(t)=[m n l h]Tt,这是一个四维向量,是根据一帧一帧图像的连续变化计算得出的。
系统参数a根据运动车辆跟踪窗口和质心之间的运动关系、图像时间间隔来确定。状态向量是八维向量,根据卡尔曼滤波方程可以计算出系统参数a是一个八行八列的二维矩阵,如式(9)。a=10dt00000
010dt0000
0010dt000
00010dt00
000010dt0
0000010dt
00000010
00000001
(9) 系统参数b在卡尔曼滤波的状态量计算中没有意义,所以b=0。主要是因为教育卡尔曼滤波的运动目标跟踪算法中不需要当前状态控制量Q(t)。
测量矩阵c是通过状态向量、测量向量来计算为式(10)。c=10000000
01000000
00100000
00010000
(10)其他参数:S(t)、M(t)表示符合正态分布的运动噪声和测量噪声,且均符合高斯白噪声分布,JM2Routn≤1、D表示他们的先验误差。
基于卡尔曼滤波的运行车辆预测及跟踪效果,如图7所示。
图7(d)中的红色线条代表跟踪预测位置,绿色线条代表车辆运动的实际测量位置。
3、运动目标跟踪的遮挡处理方案
如果运动目标发生遮挡,那么车辆的完整信息无法提取,遮挡问题会导致目标区域增加,车辆的质心位置突然改变,搜索区域内可能无法找到最佳匹配对象,所以如果目标匹配失败,则认为发生了运动目标遮挡。
(1)遮挡推理
如图8所示。
(a) (b)
(c) (d)
首先对运动目标设置两个匹配标志M1和M2,M1表示当前目标和上一帧目标的匹配性;M2表示当前目标和下一帧目标的匹配性。如果值为1则匹配成果,0表示失败,新进入场景的目标,M1和M2的初始值分别为1和0。Rn和Rout分别表示驶入区域和驶出区域。
载入新的帧图像,扫描标志位M1,如果为1则开始利用卡尔曼预测进行目标匹配和跟踪,如果为0则表示上一帧中没有寻找到匹配的目标,可能是新进入的目标也可能是发生了遮挡。如果进入的是新目标,则进行目标预测、匹配,如果不是新进入场景的目标,则判断为发生了遮挡。
(2) 遮挡处理
如果有目标遮挡,不同的情况要有不同的处理方案,主要通过判断这一帧的目标在下一帧搜索范围内的数量n。如果这一帧的目标在下一帧区域内出现的数量n>1,则说明从遮挡状态到分离状态,直接在下一帧将其认为是新进入的目标处理,在这一帧的处理中丢弃该目标。如果n≤1,则是从
分离状态到遮挡,那么需要扩大目标搜索目标,并采用卡尔曼滤波器先验估计替代观测值,完成滤波器的更新。在扩大后的搜索范围内,一段时间内未发现等待的目标,则将该目标丢弃。
结果表明,采用卡尔曼滤波进行运动车辆跟踪,如果系统噪声、观测噪声是高斯白噪声,卡尔曼滤波其能够实现无偏、最优的最小方差估计;如果误差为非高斯噪声,那么卡尔曼滤波就是最好的线性滤波器,并且很好的适用于矢量的非平稳随机过程状态估计。
3 车辆闯红灯违章检测
一般情况下,车辆运行速度较快,闯红灯的违章行为可能在一瞬间发生,所以电子警察闯红灯抓拍必须符合实时性要求,检测算法必须符合高效、瞬时、快速的要求[10]。本文的电子警察闯红灯违章抓拍算法,在红绿灯停车线的位置设置一个违章检测窗口,通过该窗口进行违章判断,有效减少图像数据计算量。
电子警察闯红灯违章抓拍的第一步是对检测窗口的背景图像和视频图像进行预处理,利用差分图像算法判断窗口中是否有车辆,然后根据当前红绿灯的指示判断车辆是否存在违章。根据道路具体情况建立RO,设置闯红灯检测线,在RO内提取车辆特征信息,实现车辆跟踪,如图9所示。
定义一个车辆跟踪的结构体数组TrackBlock[N],N表示跟踪的运动车辆数,数组的信息包括:
Struct TrackBlock
{
Pont CrclePoston;//車辆质心坐标
nt heght; //外接矩阵宽/高
nt length; //外接矩阵长
nt FrameBegn; //进入RO区域的帧数
nt FrameLast; //离开RO区域的帧数
bool sVolaton; //车辆是否违章的标志
bool flag; //bool值为true表示运动车辆进入特定区域
}
TrackBlock[N]
具体算法过程如下:
第一步:采用中值滤波处理检测窗口背景和视频图像;初始化车辆跟踪数组Track_Block[N];
第二步:采用差分方式处理检测窗口图像和视频图像,并对差分图像进行二值化分割;
第三步:对二值化处理后的图像,统计目标点,如果目标点数量大于预设值,则判断检测窗口内有车辆,进行第四步,否则结束流程;
第四步:首先对车道线进行检测,找出车道实线,判断在连续的时间Δt呢车辆质心到车道实线的距离是否小于阈值T,当距离小于T时,则车辆已经超过实线,持续时间为t,则将sVolatoon值设置为true,标出红色的外接矩阵(阈值T设置为车辆外接矩阵的38);
第五步:判断红绿灯状态,识别车辆违章情况,如果目前状态为红灯,则启动相机抓拍,并保存全景图像。否则不存在违章情况,检测结束,如图10所示。
4 总结
基于计算机视觉的智能交通体系是社会和技术发展的必然趋势,本文讨论基于视频图像处理的电子警察闯红灯违章抓拍算法。首先是对采集到的图像进行预处理,进而采用三帧差分算法进行运动目标检测。然后引进卡尔曼滤波法,结合基于特征的目标跟踪,提升车辆跟踪和车辆闯红灯识别的准确性。
参考文献
[1] 阮秋琦.数字图像处理学 [M].第2版.北京:电子工业出版社,2007.
[2] 胡太平,史忠科.基于视频的快速运动检测方法及其应用研究[J].计算机应用研究, 2005, 22(12):145-146.
[3] 王松.应用图像技术在闯红灯违法图片处理中的应用[J].信息与电脑(理论版), 2016(16):90-91.
[4]纪伟,程刚.基于视频图像方法推断鉴定交通事故中车辆是否有闯红灯行为[J].法制与社会, 2018(20):61-62.
[5] 卢贺.基于机器视觉的前方车辆检测与测距研究[D].重庆:重庆交通大学, 2018.
[6] 张哲,李挺.图像识别在智能交通领域中的应用[J].无线互联科技, 2018, 15(16):145-146.
[7] 陈智斌,杨东烨,王军群.车载视频车辆违法自动取证系统研究[J]. 交通节能与环保, 2018, 14(06):14-18.
[8] 罗强,刘宗广,李友欣,等.基于数据挖掘的电子警察执法异常分析方法及应用研究[J].公路与汽运, 2017(2):49-51.
[9] 韩旭,张晗寒.浅谈智能交通体系中电子警察系统功能与设计[J].城市道桥与防洪, 2017(7):32-34.
[10] 牛旭.电子警察超速执法的光与影[J].湖南警察学院学报,2018, v.30: No.137(02):68-77.
(收稿日期: 2019.07.29)作者简介:苏菠(1972-),男,北海人,黎族,本科,高级工程师,从事交通管理工程等。文章编号:1007-757X(2020)01-0106-06