基于无人机航拍图像的车辆间距检测算法
2022-08-29吕海龙袁建辉郭晓文王亚光王威振
吕海龙,袁建辉,陈 晨,郭晓文,王亚光,王威振
(1.96815部队,江西 景德镇 333000;2.南京航空航天大学,江苏 南京 210016)
0 引 言
众所周知,无论在任何领域,安全都至关重要,尤其是汽车产业这种与人们日常工作、生活息息相关的领域,其安全性是一切性能的前提与基础。随着我国高速公路建设的蓬勃发展和汽车拥有量的日益增加,交通安全问题日益凸显,受到了社会的普遍关注。尤其是在车队行驶过程中,如果车队管理者能够准确获得前后车辆间距,对于行车安全将会有很大帮助。为保证行驶过程中司乘人员和车辆的安全,研究车距的测量方法具有非常重要的现实意义。
另一方面,无人机航拍图像中包含着车辆间距测量所需的重要参数信息,分别是边缘轮廓信息和线性线段长度信息,其与安全驾驶可以达到相辅相成的效果。随着时代的发展和信息技术的进步,多源信息的综合利用已经越来越受到人们的重视,而无人机与车辆之间的跨界结合,更能产生一加一大于二的喜人结果。着眼于此,本文为提高车队行驶过程中的安全性,提出了一种基于无人机航拍图像的车辆间距测量研究方法。将航拍图像进行处理获得各目标车辆的轮廓以及4个顶点,并假设已知参考车辆的长度,则可通过计算获得车辆的实际间距。
1 基于图像的车辆间距检测算法实现
本文所提算法的核心是根据参考车辆的实际长度和欧氏距离计算出相应的像素比。首先需要进行一系列像素预处理操作,包括灰度变换、高斯滤波、边缘检测等;然后使用轮廓检测算法获取图中的参考目标和其他目标;最后将像素比分别应用在参考目标和其他目标之间的4个顶点和中心点。而要获得像素比,则首先需要设置一个参考物体,且已知其具体尺寸和在图像中的位置。本文中,我们将位于图像最左侧的目标作为参考目标。车辆间距检测算法具体步骤见表1所列。
表1 基于无人机航拍图像的车辆间距检测算法步骤
1.1 图像灰度化
目前为止,大部分彩色图像均采用RGB颜色模式,对图像进行预处理时,需要对RGB三种分量分别操作。事实上,RGB无法反映图像的形态特征,仅是从光学原理上对颜色进行调配。而灰度化就是在RGB模型中使3个分量相等,即==,此时获得的就是灰度颜色。一般来说,图像灰度化处理主要有以下几种方式:
(1)最大值法
将彩色图像中RGB的三分量亮度最大值作为灰度图像的灰度值。
(2)分量法
将彩色图像中的三分量的亮度作为3个灰度图像的灰度值,可根据应用需要选择一种灰度图像。
(3)平均值法
将彩色图像中的三分量亮度求平均得到一个灰度值。
(4)加权平均法
根据人类眼睛对蓝绿颜色敏感度的不同,按下式对RGB进行加权平均得到较合理的灰度图像。
本文使用OpenCV库包含的加权平均法对原始图像进行灰度处理,原图如图1所示,图2所示为经过灰度处理后的结果。根据图1和图2可以看出,灰度处理后,降低了原图所包含的大量冗余信息,有助于算法的快速运行,提高了车距检测算法的运行速度。
图1 3个目标情况下的原始图
图2 灰度处理后的结果图
1.2 高斯滤波
高斯滤波是一种通过正态分布确定权重的低通线性平滑滤波器,其权重由空间距离因子决定。采用二维高斯函数对灰度图像(,)进行卷积运算,可得到平滑图像(,),其数学表示如下:
式中,代表方差,决定着处理后图像的平滑程度。
在实际应用中,取均值周围3倍标准差内的值,在此以外的部分可以忽略。与均值滤波相比,采用高斯滤波不仅可以使得图像更加平滑柔和,而且边缘保留的也比较好。图3所示为经过高斯滤波后的图像,处理后的图像更加平滑。
图3 高斯滤波后的图像
1.3 边缘检测
工业应用视觉大多要求检测、提取目标物体的边缘信息,其核心是对目标图像进行精准的边缘信息检测。图像边缘是图中像素点灰度值有阶跃变化的像素点集合,一般指局部不连续的图像特征或局部亮度变化最显著的部分,图像的灰度值、颜色分量的突变以及纹理结构的突变都可构成图像边缘信息。
Canny算子是John F. Canny在1986年提出的一种将边缘定位精确性和抗噪声干扰性相折中的图像梯度边缘检测算子,属于先通过高斯函数平滑后求导数的方法。Canny算子的主要思想是首先通过高斯函数对图像进行平滑处理,并使用一阶偏导有限差分求导并计算图像对应点的梯度,之后对梯度幅值进行非极大值抑制,利用高低阈值检测和连接边缘以获得图像边缘。传统Canny边缘检测算法具体步骤如下:
(1)高斯滤波
高低滤波的主要目的是使图像变得平滑,同时也可以尽可能增大图像边缘的宽度,便于后续目标轮廓的检测。
(2)计算梯度幅值与方向
边缘即灰度值变化较大的像素点的集合。边缘处的灰度值变化最为显著,可以采用梯度表示灰度值的变化程度和方向。Canny算法一般运用2×2邻域内一阶偏导的有限差分来计算经过高斯平滑处理后图像(,)的梯度幅值(,)和方向,其数学推导过程如下所示:
(3)非极大值抑制
边缘经滤波后可能会被放大,如果不经处理则会影响后续边缘的确定,而非极大值抑制就是选取一个规则来过滤非边缘的像素点,令边缘的宽度尽可能为1个像素点。如果一个像素点属于边缘,那么这个像素点在梯度方向上的梯度值最大;如果该像素点不是边缘,则将(,)设为0。
(4)双阈值算法检测和连接边缘
经过步骤(3)处理后可得到梯度幅值矩阵,设定初始高阈值和低阈值。根据设定的阈值,可以将梯度图像分为2个阈值边缘图像,由于高阈值分割后的图像不包含虚假边缘,但图像轮廓不连续,所以采用低阈值补偿轮廓边缘间断的缺陷,直到用高阈值分割后的图像轮廓边缘闭合为止。
1.4 图像膨胀和腐蚀
膨胀与腐蚀能实现多种多样的功能,主要功能包括消除噪声、获得独立图像元素、寻找图中的显著极大值或极小值区域,以及求出图像的梯度。所谓膨胀就是对原图中的高亮部分进行膨胀操作,处理后的图像相比原图具有更多高亮区域。腐蚀就是对原图中的高亮部分进行腐蚀处理,经过处理后的图像与原图相比减少了高亮区域。
图4 图像膨胀与腐蚀示意图
1.5 寻找轮廓线
通过图像灰度化、高斯滤波、边缘检测、膨胀和腐蚀后,在边缘映射中寻找合适的轮廓,计算轮廓的外接矩形,并对轮廓进行排序,获取图中的参考目标和其他目标。由此可以获得第个轮廓外接矩形的4个顶点,即[tr,tl,br,bl],其中、、、分别代表轮廓外接矩形上方、下方、右边和左边。目标的轮廓和顶点如图5所示。
图5 3个目标的轮廓及顶点
由于已知参考车辆的长度为length,则参考车辆在图像中所占据的像素pixel与实际度量length的像素比可以通过下式获得:
利用像素比可以计算图像中的车辆间距,即在实际测量中可以根据像素反推间距。
2 仿真验证
为验证算法的有效性,首先在3个目标的情况下,已知图5中左边目标的长度为4 cm,间距按照目标特征长度与间距1∶5设置,即相距20 cm,通过本文所提算法获得的检测结果如图6所示,图7为实际测量的对比图。
图6 3个目标的间距检测算法仿真结果
图7 3个目标的实际测量结果
根据图6和图7可知,目标间距测量的误差为1.5 cm和1.1 cm,达到了理想的检测效果,说明本文所提方法有效。
为进一步对比说明,验证本文算法的有效性,在图像包含2个目标的情况下,间距按照目标特征长度与间距1∶10来设置,即间距40 cm,检测结果与实际测量结果如图8和图9所示。
图8 两目标间距检测算法仿真结果
图9 两目标间距实际测量结果
由图8和图9可知,目标间距检测误差为1.4 cm,说明了本文检测算法在目标特征长度与间距达到1∶10的情况下,依然能够获得较为理想的结果,进一步验证了本文算法的有效性。
3 结 语
本文提出了基于无人机航拍图像的车辆间距测量算法,能够较准确地测量相邻车辆的间距。首先对图像进行预处理,之后采用Canny算子对其进行获得目标边缘映射,使用膨胀和腐蚀处理后计算其外接矩形,之后获得目标轮廓的4个顶点和相邻边的中点,并计算相邻目标的间距。最后,在两种情况下对本文所设计的算法进行验证,结果证明了本文所提车间距检测算法的有效性。
现实情况中仍存在许多因素影响着航拍图像的质量,进而影响车间距检测结果,比如拍摄角度、焦距、光照条件、气象条件、植被遮挡等,在本文中作为理想化条件而忽略。其次,本文假设已提前知道参考目标车辆的实际尺寸,并可实时测量车辆位置,这在特定的任务场景是合理的。最后,关于目标的识别、提取和无关物体的剔除等则是后续需要研究的重点。