基于图像处理的交通路口车速检测研究

2020-11-10 16:57刘响响唐亮任超
机电信息 2020年30期
关键词:图像处理

刘响响 唐亮 任超

摘要:车辆超速问题一直为人们所关注。根据实际问题,采用图像技术,使用OpenCV作为开发平台,研究了一种车辆超速检测系统,其能够自动采集视频信息,通过对视频图像的处理完成对车辆速度的判斷,根据实际需要将大于规定速度的车辆信息记录下来。

关键词:超速;OpenCV;图像处理

0    引言

车辆超速引发的交通事故是人们生活中常见的问题,为防止车速过快引发交通事故,对车辆速度的管控十分必要,尤其是在交叉路口或者是人行道口,车辆速度必须控制在一定的范围内。而实际上在该方面违反交通法律法规的车辆一直存在,因此,对人行横道和交叉口的车辆速度进行检测十分必要。

1    图像预处理

首先将采集到的RGB图像转化为灰度图像,然后对灰度图像进行边缘检测、滤波处理。一般在路口地面上设置有路口停止线,可以依照停止线为参考目标对过往车辆速度进行检测。其中边缘检测使用Canny边缘检测算子[1],检测步骤如下:

1.1    RGB图像灰度化

Canny算法直接处理的图像只能是灰度图[2],而目前应用于该领域的相机大多数是彩色相机,所以需要对彩图进行灰度化处理。将一幅彩色图像灰度化,可以通过对图像各个通道的采样值加权平均实现。

1.2    对图像进行高斯滤波

在图像灰度化过程中存在一些随机信号的干扰问题,必须清除这些干扰信号。需要对处理后的灰度图像完成滤波处理,设计选择高斯滤波,用两个一维高斯核分别进行两次加权实现。

1.3    高斯核实现

根据一维高斯函数选择合适的参数即可得到一维核向量值。

1.4    双阈值算法检测和连接边缘

在进行边缘识别时,图像中很容易产生类似的边缘现象,要区分真假边缘。采用Canny算法,常用的是引入双阈值,即选取两个合适的阈值,由较大的一个阈值得到一个边缘图像,这样可以减少一部分假边缘。然而这样会导致图像的部分边缘不能封闭,因此需要引入另一个阈值,在较大阈值的图像内使边缘连接成相应的轮廓,在接近轮廓的端点时,算法会在端点周围8个点中间寻找符合较小阈值的点。依照该点寻找新的边缘,由此不断地循环下去,直到整个图像形成封闭的闭合圈。实际图像处理效果如图1所示。

1.5    车辆停止线识别

实际生活中,路口的车辆停止线是一条直线,可应用霍夫变换对该停止线进行检测。霍夫变换是将图像投放到与之对应的参数区间内,它需要计算所有的边缘点,会产生庞大的运算量,占据大量的内存空间。但如能减少输入图像的边缘点数量,将极大地减少计算量。该方法能够很好地找到线端点,完成对停止线的检测。

利用HoughLinesP函数来完成霍夫变换检测直线,HoughLinesP函数的原型为:

void HoughLinesP(InputArray image,OutputArray lines, double rho, double theta, int threshold, double minLineLength=0, double maxLineGap=0)

image为输入图像,使用8位单通道图像。Lines为标志直线的输出向量,采用两个端点的坐标确定一条直线。rho和theta分别为距离和角度的分辨率。threshold为阈值。minLineLength为最小直线段的长度,若检测到的数值比该数据小,则被忽略,不做直线标记。maxLineGap为两条直线的最大间距,若存在一条直线上有两个线段,它们之间的距离大于该数值,则被认为属于两条线段,反之则认为是一条线段。霍夫变换检测直线是本次实验的重点与难点,在利用HoughLinesP()函数进行直线检测时,后三个参数非常重要。经过多次实验后,确定参数为HoughLinesP(canny_image,lines,1,CV_PI/180,170,100, 90)。

2    车速检测处理

在检测车速时,通过计算车辆通过虚拟线圈的时间来确定车速。经过虚拟线圈的时间是根据霍夫变换的两条边缘线来计算,具体判断如下:

(1)车辆经过标注线条时刻的视频帧数。

(2)计算出经过同一条白色带上的第二条线条帧数。

(3)两视频帧数时间差就是汽车经过白色带的时间。

(4)速度计算公式为白色带的宽度除以经过的时间差。

3    记录车辆信息

记录过往车辆信息,采用图像识别技术完成车牌号码的识别。采用OpenCV自带的VideoCapture capture函数读取输入视频,将处理后的灰度图像进行相应的形态学处理,使得以后的轮廓提取更加准确。数字的定位是在图像的前期处理中比较关键的一个环节,主要采用轮廓提取的方法。特征提取与分类识别:在数字识别中使用的特征提取方法是HOG算子,HOG算子主要是对行人的特征进行提取,但也可用于其他的特征提取。HOG算法如下:

图像中像素点(x,y)的梯度为:

Dalal提出的Hog特征提取的过程:将目标图像划分为多个像素区间,将梯度方向均匀分割成9个部分,用这样的模块对目标图像按照一个单元的步长进行扫描,然后把所有的模块特征值串联起来就得到图像的特征。

相对于分辨率为64×128的数字图像,每2×2的区间(也就是常说的16×16像素)组成一个模块,单个模块内有4×9=36个特征,每8个像素作为一个步长周期,如此算来,总计36×7×15=3 780个特征。

采用AVM分类器,SVM作为一种机器学习的常用算法,在回归问题和分类问题中应用非常成熟。采用kernel trick对数据进行转换,经过对这些数据信息进行转换找到最佳的一个边界信息,提取出已经处理好的二值化图的每一帧,然后进行特征提取,加载相应的类别样本。使用SVM分类算法进行训练,将训练好的数据存放到HOG_SVM_DATA.xml文件中,下次识别时直接加载即可。OpenCV的HOG描述如下:

HOGDescriptor *hog=new HOGDescriptor(cvSize(30,30),//视图的大小cvSize(16,16),//处理模块大小

cvSize(8,8),// 步长

cvSize(8,8),//区间

9);//直方图的模块数目

hog->compute(trainImage,descriptors,Size(1,1),Size(0,0));//hog特征计算

4    结语

该车辆超速检测系统符合实际需求情况,能较好地完成对过往车辆的速度测量和信息记录,对解决路口车辆超速监控问题有一定的参考价值。

[参考文献]

[1] 郭慧鑫,牛竹云,郭会兵,等.一种基于Canny算子的红外图像边缘检测算法[J].火力与指挥控制,2014(S1):95-97.

[2] 王明静,张学峰.基于多级滤波的感兴趣边缘检测算法[J].激光与红外,2014(3):335-338.

收稿日期:2020-08-27

作者简介:刘响响(1989—),男,安徽人,硕士,研究方向:智能控制。

猜你喜欢
图像处理
视觉系统在发动机涂胶的应用
“课程思政”视域下职业学校《图像处理》课程教学改革实践
构建《Photoshop图像处理》课程思政实践教学路径的探索
基于图像处理与卷积神经网络的零件识别
基于新一代信息技术的Photoshop图像处理课程开发与建设