车联网中基于目标检测的快速路车速检测与车牌识别系统
2023-07-17李林鑫杨广河赵海涛
张 宇 李林鑫 杨广河 赵海涛
(南京邮电大学通达学院,江苏 扬州 225127)
0 引言
智能交通系统(Intelligent Transportation System,ITS)是当前智能交通研究的主要方向之一。其中,特征匹配定位法是一种有效的车速检测方法[1],但是在实际应用过程中,可能会出现实时性和鲁棒性不足的情况。为了提高系统的性能和效率,可以采取以下优化方案:1) 特征选择优化。选择与目标区分度较高的特征,避免特征冗余和噪声对匹配效果造成影响。2) 匹配算法优化。采用快速匹配算法,例如FLANN 算法、K-D tree 算法等,加速匹配过程,缩短计算时间。3) 多目标检测优化。采用多目标跟踪算法,例如Kalman 滤波器,实现目标跟踪和匹配过程。4) 硬件加速优化。采用GPU 并行计算、FPGA 硬件加速等技术提高系统的实时性和鲁棒性。
因此,为了改进目标检测,该文提出一种改进的Harris角点特征匹配运动目标测速方法。车牌识别的设计运用图像处理技术,自动分割车牌字符并识别。
1 车牌识别原理
车牌识别的首要步骤是获取图像或视频,可以通过摄像机或其他传感器采集图像或视频。首先,在获取图像或视频后需要进行图像预处理,以提高车牌识别的准确性。预处理包括图像灰度化、二值化、滤波和增强等步骤。在灰度化步骤中,图像被转换为黑白图像,这有助于车牌的分割和字符识别。在二值化步骤中,图像被转换为二进制格式,增强了图像的对比度和锐度。滤波和增强的目的是进行模糊、噪声滤波和红外增强等操作,使车牌更容易被分离、识别。其次,车牌识别会对车牌区域进行分割。分割的关键是确定车牌的边界。常见的方法是利用基于边缘检测的算法,例如Canny算法[2],以检测图像中的边缘。车牌的边缘被提取,形成一个矩形的图像,该矩形图像被进一步处理,以确定准确的车牌区域。在确定车牌区域后,车牌图像就被剪切出来了。在这个过程中,图像被进一步分析,以确定字符串的位置、形状和方向。最后,进行字符识别。字符识别是车牌识别的核心部分,它使用几种不同的算法,包括模板匹配,支持向量机和深度学习。在字符识别阶段,车牌图像中的字符被逐个提取,识别字符类型并将其转换为文本格式。
车牌定位识别有基于边缘检测和基于车牌颜色特征2种方法。虽然该方法速度快且获取的车辆信息多,但是对环境和车辆位置的要求高,且存在光照变化和遮挡等问题,会影响识别的准确性。需要通过优化大量数据解决像素级别误差,从而提高准确性。可以结合基于边缘检测和基于车牌颜色特征的方法来提高车牌定位识别的准确率:1) 对图像进行灰度化处理,减少噪声对车牌定位的影响。提高灰度化效果,该试验的效果如图1 所示。2) 采用Canny或Sobel 算法进行边缘检测[2],提取边缘信息。3) 利用霍夫变换对边缘进行直线检测,排除非车牌区域的直线。4)采用形态学操作进行腐蚀和膨胀,细化车牌定位区域。5)对车牌定位区域进行颜色分离,提取车牌的颜色特征[3]。6) 对颜色分离后的区域进行形态学操作,分离和识别车牌字符,获取车牌号码。7) 对车牌号码进行进一步处理,例如字符识别和去除干扰。该试验的效果如图2 所示。
图1 灰度图
图2 分割匹配图
综合使用边缘检测和车牌颜色特征的方法可以提高车牌定位识别的准确率和效率。
2 车速检测方法
2.1 特征匹配车速检测
特征匹配车速检测方法[4]是一种利用图像处理技术来实现车速测量的方法。在这个方法中,需要先对视频图像中的运动目标进行特征提取,然后通过特征匹配来对同一车辆在不同帧之间进行跟踪,最终计算车速。
在特征提取的过程中,选择合适的车辆特征是非常重要的。常用的车辆特征包括边缘轮廓特征、颜色特征、纹理特征和角点特征等。
根据具体应用场景的需求,可以选择不同的特征提取算法和特征。在特征提取算法方面,常用的算法包括尺度不变特征变换(SIFT)、加速稳健特征(SURF)以及Harris 角点检测算法等。这些算法都能够有效地提取车辆在图像中的特征并且具有不变性和鲁棒性,能够在不同的光照、旋转以及缩放等情况下保证检测的准确性。
总之,特征匹配车速检测方法通过图像处理技术提取车辆特征,对车辆进行检测和跟踪,并能够根据实际道路坐标计算车速。在实际应用中,由于角点特征具有稳定性高、数量少以及信息冗余度小等优点,因此常使用基于角点特征进行车辆匹配。常用的角点特征提取算法包括Harris 角点、FAST 角点以及SIFT 特征等。其中,Harris 角点检测算法具有计算简单、检测均匀分布等优点,被广泛应用于车辆识别系统中。除了角点特征外,也可以根据车辆的特征使用颜色或纹理特征进行匹配。
因此,当设计车辆识别系统时,需要针对具体应用场景进行特征选择和算法优化,选择合适的特征提取算法和特征,从而达到更高的匹配精度和实时性。在特征匹配过程中,一般采用灰度相关性来匹配Harris 角点[4]。特征匹配车速检测方法具有检测范围广的优点,通过车辆特征匹配可以有效避免或减少多目标车速检测的误检和漏检并且不受环境影响,鲁棒性较强。
2.1.1 Harris 角点检测
Harris 角点检测是一种广泛应用于计算机视觉领域的角点检测算法[5],该算法对图像的局部特征进行分析,从而快速、准确地检测图像中的角点。与其他角点检测算法相比,Harris 角点检测具有计算复杂度低、鲁棒性强等优点,因此被广泛应用于计算机视觉领域中的目标检测、图像匹配等问题。该算法基于图像的局部区域的灰度变化率,即图像中的角点在不同方向上都有较大的灰度变化,而在其他区域的灰度变化则相对较小,因此可以通过计算图像中所有局部区域的灰度变化率,从而得到图像中可能存在角点的位置。
Harris 角点检测的思想是对图像的局部小窗口进行观察来检测角点。具体来说,利用窗口内的像素点信息,计算在窗口沿任意方向移动(u,v)所造成的像素灰度的变化,确定角点的位置。该计算过程如公式(1)所示。
式中:E(u,v)为所求角点位置;(u,v)为像素分别沿x、y所移动距离;w(x,y)为窗口函数;I(x+u,y+v)为平移后的灰度图像值;I(x,y)为灰度图像值。
对公式(1)进行泰勒展开,可以得到公式(2)。
式中:M为Harris 矩阵。
由图像的导数化简求得公式(3)。
式中:Ix为灰度图像在x轴的位置;Iy为灰度图像在y轴的位置。
角点响应函数R如公式(4)所示。
式中:det(M)为矩阵M的行列式;trace(M)为矩阵M的迹;k为修正值,是一个常数,k取0.04~0.06。
其 中,det(M)=λ1λ2,trace(M)=λ1+λ2(λ1、λ2为 矩阵M的特征值。
Harris 角点与矩阵M的特征值的关系如下:1) 如果λ1、λ2都很小,那么表示以(x0,y0)为中心的窗口区域无明显灰度变化,沿着任意方向移动中心点,局部互相关函数变化很小,即点(x0,y0)是平坦区域中的像素点。2) 如果λ1很大,而λ很小,那么表示中心点附近灰度梯度的变化形态为山脊状,在某一方向呈现为边缘特征。当中心点沿着边缘方向移动时,局部互相关函数变化很小;当沿垂直于边缘的方向移动中心点时,局部互相关函数有较大变化,即点(x0,y0)为边缘上的点。3) 如果λ1、λ2都很大,那么表明中心点附近的灰度梯度变化非常陡峭,因此在任意方向上移动中心点都会导致局部互相关函数急剧增加,即点(x0,y0)具有角点特征。
2.1.2 改进型 Harris 角点匹配及结果
Harris 角点检测利用图像像素的梯度变化检测角点,尤其是在图像中的角点区域的灰度值和梯度变化非常大。原始的角点检测方法中默认是从整个图像开始检索,搜索坐标(x,y)∈I(I为像素灰度值),对整个图像进行搜索,这会导致存在大量的无效计算,不能满足车辆测速系统的实时性要求并且也容易受相似运动目标的干扰[1],从而出现误匹配的情况。为了解决以上问题,该文提出结合运动估计来进行Harris 角点匹配。可以先进行运动估计,再从估计出来的运动轨迹中提取目标的运动信息,从而排除非目标区域的像素点,减少计算量并且能够提高匹配的准确性。此外,当进行角点匹配时,还可以采用自适应阈值的方式来确定角点,以进一步提高匹配的准确性和鲁棒性。
为了优化计算过程,对公式(1)进行简化,利用图像的梯度信息。具体来说,可以利用Sobel 算子计算图像在(x,y)处的梯度向量(Gx,Gy),然后利用这个梯度向量来计算E(u,v),如公式(5)所示。式中:(u,v)为图像移动的距离;w(x,y)为窗口函数;(Gx,Gy)为梯度向量;(x,y)为图像所在位置。
公式(5)的计算效率更高,其原因是它只需要计算梯度向量和加权系数的平方和,不需要直接计算像素值的差异。利用公式(5)可以快速地检测图像中的角点,并进行角点特征的提取和匹配。
改进的Harris 角点检测算法对待处理像素周围的像素进行加权求和,得到一个初始的运算结果,并在该基础上进行后续计算[6]。该加权求和的方式可以采用卷积的方式来实现,从而减少计算量,提高算法的效率。在该基础上,再从运算结果中筛选1 个阈值,将低于设定阈值的像素点排除掉,从而得到需要进行CRF 值计算的像素点。这一步的计算量虽然有所增加,但是会减少后续CRF 值计算中的计算量。在分辨率高的图像中其计算效率更明显。
改进的Harris 算法的优化可以从以下4 个方面入手:1)使用滑动窗口的方式对像素点进行初始选择,利用卷积的方式进行加权求和,以减少计算量。2) 对运算结果进行阈值筛选,排除低于设定阈值的像素点,减少后续CRF 值计算的计算量。3) 使用ROI 技术计算需要处理的像素点的范围,避免进行无效计算,以减少计算量。4) 使用并行计算技术提高计算速度。
该文对采集的图像进行预处理,并通过剔除占比超过60%的像素点来降低乘法计算的量。为了比较传统Harris 算法[7]与改进后的Harris 算法在角点提取方面的性能,该文测试了1 组包括6 幅图像的数据集。改进前、后在计算CRF和确认角点这一核心部分所耗费的平均计算时间见表1。
表1 Harris 算法与改进 Harris 算法在核心部分平均消耗消耗时间的对比(单位: s)
由表1 可知,改进后的角点检测时间约为原算法的29.85%,计算时间大大缩短,有利于在实时处理中使用。该改进方式并未使用其他技巧,进一步证明了其对提高计算效率的有效性。
传统Harris 算法与改进的Harris 算法在所得性能(检测到的角点数量)方面的比较见表2。
表2 传统Harris 算法与改进Harris 算法在结果性能(检测出的角点个数)方面的对比
2.2 坐标转换
通过单视测量方法[4]可以通过图像坐标点得到实际道路的参考平面坐标点,具体坐标转换过程如公式(6)所示。
式中:(Xi,Yi)为道路的参考平面标定点坐标;pi为归一化系数定义尺度比例;L为单应性矩阵;(xi,yi)为对应图像坐标。
单应性矩阵L是通过4 个或4 个以上道路参考平面标定点坐标(Xi,Yi)与其对应图像坐标(xi,yi)进行计算得出的。对不同帧匹配的图像角点坐标来说,可以通过单应性矩阵L将其转换为实际道路坐标。然后,通过匹配角点间的相对位移∆S和时间差∆T直接计算当前图像角点的速度Vi,如公式(7)所示。
为了避免目标车辆顶部角点在投影变换后可能出现的误差,采用车辆底部贴近路面的特征角点来计算速度。通过测量车辆底部特征角点的位移可以得到更准确的车速。对车辆顶部的角点来说,可以根据它们相对车辆底部的位置和通过投影矩阵计算得到的加权系数ki进行调整,以更准确地反映车辆的实际速度。最后,求取所有角点的速度的平均值,并输出车辆的速度V,如公式(8)所示。
3 系统检测结果
该项目在MATLAB 2019a 平台上对车辆进行检测,从高速道路摄像头获取视频图像,通过与车载行车记录仪记载的车速对比得出相关结果,见表3。
表3 实际车速和测量车速
试验结果表明,该文提出的方法对高速路视频中不同车辆速度检测的准确性较高,达到 95%以上。
4 结语
该文利用高速公路视频图像实现了多目标车速检测,可以检测车辆的异常情况,更符合实际车速检测的需求。在未来的研究中,仍须进一步提高运动目标角点检测的速度和精确性,以提高车速检测的可靠性。