APP下载

基于图像梯度匹配的自动泊车系统车位识别方法

2020-11-23江浩斌王成雨马世典花逸峰

关键词:泊车畸变像素点

江浩斌,王成雨,马世典,陈 杰,花逸峰

(1.江苏大学 汽车与交通工程学院,江苏 镇江 212013;2.江苏罡阳股份有限公司,江苏 泰州 225318;3.江苏罡阳转向系统有限公司,江苏 泰州 225318)

近年来,随着机动车数量快速增加,大中城市车辆拥挤程度不断提高,“停车难”和“难停车”的问题日趋突出,这无疑增加了驾驶员的泊车难度.自动泊车技术能够大大减少泊车难度,提高泊车过程中的安全性.停车位的自动识别,作为自动泊车系统的关键技术之一,其主要作用是自动识别停车位,判断停车位的位置与类型[1].

自动泊车系统的车位识别方法主要分为2类:基于车位两侧障碍物的车位识别方法和基于地面停车标识线的车位识别方法[2].基于车位两侧障碍物的车位识别方法的原理是利用装在车身两侧的超声波传感器探测车身两侧障碍物之间的空余距离来识别车位[3],这种方法的优点是成本较低并可以识别车位的尺寸,缺点是要求车位的两侧(或单侧)有障碍物存在,对于停车场中仅有停车标识线存在的场景,则无法识别到车位.基于地面停车标识线的车位识别方法不依赖车位两侧的障碍物,通过对停车标识线的识别来识别车位[4],其缺点是不适用于无车位线的停车场地,而且不能判断车位尺寸是否适合本车(尤其是大型车辆).

近年来,随着智能辅助驾驶技术研发的不断升温,利用智能汽车中的超声波传感器和视觉传感器,通过2类传感器的信息融合,可以有效弥补上述2种车位识别方法的缺点,从而提高自动泊车系统的智能化水平和对复杂环境的适应性,因此,成为高智能化自动泊车系统技术的发展趋势.

从国内外的研究现状来看,基于地面停车标识线的识别方法普遍依靠机器视觉[5].文献[6]根据停车标识线与地面颜色的差异,提出一种基于颜色的图像分割方法,提取车位线,并通过识别2条垂直相交直线的交点来确定车位角的位置.文献[7]采用经过变换后的全景图像识别车位线,并采用霍夫变换的方法,提取识别到的直线,从而识别车位.文献[8]提出一种基于改进霍夫变换的车位线识别方法,利用概率霍夫变换法识别图像中的车位线.文献[9]采用基于radon变换的方法识别车位线,但其本质与霍夫变换相同,都是利用从二维空间到参数空间的映射提取图像中直线的方法来识别车位线.可见,目前多数基于视觉的泊车位识别方法都是通过识别车位边框直线来实现的,但是目前城市里很多泊车位并没有画出完整的矩形车位线,而是简单地以车位角标出车位的位置.因此,用上述方法不能实现对车位的识别.文献[10]将车位识别的过程分为2步:首先通过聚类算法提取车位边框直线找到交点,初步定位车位角;然后通过骨架提取模板匹配的方法精确定位车位角,为加快识别速度还使用金字塔分层搜索的策略,但其识别过程仍然通过对车位边框直线的识别来确定车位角的位置.文献[11]提出一种分层树结构的车位线识别算法,利用不同车位角模型建立分层树结构识别车位,是一种基于车位角识别的方法.文献[12]提出一种基于学习的方法,利用基于360°环视系统获得大量车位线的车位角图像作为样本进行训练,识别出图像中的车位角,识别目标车位,该方法不依赖完整的车位直线,但是基于学习的方法需要大量的训练样本,训练时间长.

笔者提出一种基于车位角识别的车位标识线快速识别方法,通过车位角图像像素梯度模板与待测图像进行匹配,识别待测图像中车位角的所在位置,以高斯加权余弦距离作为匹配的相似度量,并设计算法终止条件以提高算法速度.

1 图像采集及预处理

1.1 图像采集

在自动泊车系统中,仅依靠汽车后置摄像头难以满足对车辆四周车位的识别.全景视觉(360°环视)系统提供了一个很宽的视野范围,能识别车辆周围的车位情况.为获取车辆四周的全景图像,在汽车的前后保险杠中央位置以及左右两侧后视镜上安装鱼眼摄像头.采用棋盘法标定相机的内参数、外参数和畸变系数等.鱼眼相机能获得较大的视野,但所得图像有较大的几何畸变(见图1a),图像畸变由2部分组成:径向畸变和切向畸变.径向畸变使图像沿中心点向径向位移,切向畸变使图像产生垂直于半径方向的位移.通常径向畸变极小,因此通常只需要考虑相机的切向畸变.图像的位移为

(1)

式中:δu,δv分别为图像在(u,v)处的横向和径向位移;k1,k2,…,kn为图像的径向畸变系数;r为像素点的径向距离.

去畸变后图像仍然不是俯视视角的图像,这由相机的成像原理造成,这种成像近大远小的现象称为“相机透视”(见图1b).为便于后续图像处理,需要对其进行逆透视变换:

(2)

式中:(uv1)T为逆透视变换后图像的齐次坐标;s为缩放尺度;H为图像单应性矩阵;(X,Y)是地面坐标系中的点.

通过对鱼眼相机所得图像进行去畸变和逆透视变换得到车位图像的俯视图(见图1c),以便后续算法的实现.

图1 图像采集过程

1.2 图像预处理

为了去除图像中无关信息,满足算法的需要,需对图像进行预处理.预处理过程包括图像灰度化、图像滤波和图像梯度提取等步骤.图像灰度化将R,G,B三通道图像转化为由灰度表示的单通道图像,可以减少算法的计算量,同时易于后续求取图像的梯度特征.图像滤波采用邻域平均滤波法,目的是为了降低图像噪声,平滑图像.邻域滤波算法可表示为

(3)

式中:f(i,j)为滤波后的图像;m为图像P的像素点个数;g(i,j)为原始输入图像.

图像的梯度实质上是像素点在x和y方向上的差分.Sobel算子是用来表达微分和梯度的一种操作,其算子核可以通过迭代方法去构造,Sobel算子核可以被定义为任意大小.采用3×3的Sobel算子核提取图像的梯度,其x和y方向的算子核分别为

图像在像素点(i,j)处x和y方向的梯度可以表示为

(4)

式中:Sx,Sy分别为x和y方向的Sobel算子核;A为(i,j)位置的图像区域.

2 车位识别算法

车位线识别算法的流程如图2所示.采用基于图像像素梯度匹配的方法识别停车标识线,首先在标准车位图像中选取感兴趣区域(ROI),即车位图像中的车位角的所在区域;取这个区域通过Sobel算子提取像素梯度建立模板;以高斯加权余弦距离作为匹配的相似度量,识别车位图像中车位角所在位置,通过车位角的位置确定目标车位;为加快算法的速度,设计了匹配算法的终止条件,并采用金字塔分层搜索的方法,有效提高算法的实时性.

图2 车位线识别算法的流程

2.1 梯度模板的建立

梯度模板应该选择原图像中具有典型车位线特征的位置,例如车位直线或车位角.经调查发现,城市停车场(或停车区域)带有车位线的泊车位可分为2种:带有完整矩形车位线的车位和非完整车位线的车位.前者可采用通常的基于Hough识别直线的方法来识别;后者并未标出完整的车位,往往只标记了车位两侧位置,甚至只标记出车位的入口位置,此时采用Hough变换法往往不能识别出车位.但是这2种车位线一般都会标记出车位角,且车位角具有相同的特征.将ROI(感兴趣区域)选取为标准车位图像中车位角的所在位置(见图3a,b),以该区域建立图像模板(见图3c),并利用Sobel算子提取该区域图像的梯度值,得到梯度模板(见图3d).

图3 车位线模板的选取

目前所选用的模板只适用于方向、尺寸与目标图像相同的情况,由于摄像头安装位置固定且汽车低速行驶时横向位移很小,所以尺度缩放可以忽略不计.在泊车过程中,随着车辆的航向角发生变化,所获取的实时车位图像的角度也会随之发生改变,此时目标车位角在图像中将不能被识别.为了解决这个问题,创建1个带旋转角度的模板,利用双线性差值算法得到角度离散化后的旋转模板,如图4所示.

图4 模板的旋转

A11(x1,y1),A12(x1,y2),A21(x2,y1),A22(x2,y2)为原图4个相邻像素点旋转后的中心,P(x,y)为旋转后新图像像素的中心点,像素值由函数f表示.P点处的像素值f(P)可由P点临近的4个像素点的像素值表示,先在水平方向上进行插值,可得

(5)

(6)

根据式(5)、(6)的结果,在水平方向上进行插值得到点P的像素为

(7)

通常,模板旋转的离散角度的最小值由模板的大小决定.在满足一定模板大小和算法实时性要求的前提下,角度的离散值越小,匹配的效果越精确.对于半径为100像素的模板,模板角度的离散值可取为1°.

2.2 匹配相似度量

模板建好后,通过相应的匹配算法识别获取车位图像中车位角的准确位置,可以确定车位在世界坐标系中的位置.考虑到泊车场景中图像会受到很多环境因素的影响,不均匀的光照和阴影,车位线的破损和遮挡等,均会影响匹配的准确度.采用基于梯度的高斯加权余弦距离作为匹配度量,以实现对车位图像的快速准确的识别.

对于待测图像中一个特定位置,计算模板与待测图像中某一点(i,j)的相似程度,选用余弦距离来表示,即

(8)

余弦距离的取值范围为(-1,1),取正值时表明梯度同向;取负值时表明梯度反向.反向时,也认为该点匹配,即当该距离为1或-1时,认为这2个点完全匹配;当距离为0时认为2点完全无关.di,j的取值范围为(0,1),可以衡量模板上点与图像点之间的相似程度.

为了衡量整个模板位置是否匹配,需要计算模板上所有点的相似程度.采用高斯加权余弦距离作为相似度量.高斯卷积核是实现尺度变换的唯一变换核,并且是唯一的线性核,且其具有旋转对称性,对各个方向的加权程度相同.离高斯核中心越近,权值越大,增加了图像中心位置匹配相似度的权重;离高斯核中心越远,权值越小,弱化了图像及模板边缘失真或是变形的影响,提高了识别位置的准确性.二维高斯函数为

(9)

式中:σ为高斯函数的标准差.

将式(9)离散化为1个高斯卷积核,其大小应与模板大小相同.高斯卷积核为

(10)

式中:k为高斯核的中心到水平或竖直边缘的直线像素点个数.

梯度模板与待测图像在图像(u,v)点处的相似度为

(11)

式中:h为归一化系数.

(12)

式(11)返回1个值域在0到1之间的匹配分值Du,v,设置一个匹配的阈值T,若得分大于阈值,认为找到了1个匹配位置,这个位置就是图像中车位角的位置.若得分小于阈值则认为不匹配,对下一个图像中下一个位置进行识别,直至模板遍历整个待搜索区域.为提升算法效率,考虑如下终止条件:

(13)

式中:m1为已计算过相似度的像素点组成的点集.

当满足上述条件时,即使之后模板上所有待测点都完全匹配,最后的匹配分值也不可能超过阈值T,则认为图像该位置与图像梯度模板不匹配,可以直接终止当前位置的匹配度计算,并将模板移植下一个位置进行识别.同时,为进一步加快算法速度,可采用图像金字塔分层的搜索策略,先在上层金字塔进行搜索,确定图像中目标的大致位置,对应到下层金子塔图像中进行更为准确地搜索.

3 结果与分析

为了验证提出的新算法的有效性和实时性,采用机器视觉软件HALCON10编程进行试验.图像采集模块采用umbrella A7芯片,采集摄像头信号并转化成俯视图输出,图像的处理速度可达20帧·s-1.车位的识别算法部分在计算机软件HALCON10中完成,计算机的CPU为Core i5 6700,主频3.2 GHz,内存8 G.车位角图像的模板大小为 100×100像素,旋转角度的步幅为1°,高斯函数的标准差σ取0.25,金字塔层级取5层.测试图片选取了180张不同的城市地下停车场以及露天泊车位场景的360°环视图像和60张不含车位线的图像.同时,在相同试验条件下将新算法与传统Hough变换方法进行比较.

新算法与传统Hough方法识别结果如图5所示.其中图5a,b是对完整车位线的识别结果,5c,d是对只有车位角标识线的车位的识别结果.在对完整车位线的识别中,新算法和Hough变化法都能较好识别出车位;在对只有车位角标识线的车位识别中,新算法可以准确识别出车位,而Hough变换法是对直线检测的算法,易受背景环境中存在直线的干扰,没有识别出图中的车位.

图5 识别结果对比

地下停车场及露天车位的车位图像以及识别结果如图6所示.测试图像为4路图像信号转换拼接成的全景图像.图6a,b为地下停车场工况下车位线的识别结果.在地下停车场工况下存在地面的反光,图6a中的车位线有部分褪色的情况下,利用新算法能准确识别出车位线的车位入口位置.图6c,d为露天工况下的车位识别结果,图6c是对平行车位的识别,车位角在图像边缘位置有图像失真的情况,图6d中的地面十分不平整,车位线存在裂纹和缺口,这2种情况下仍能实现对车位的识别.同时,在图6a,c为寻库过程中的识别结果,图6b,d为入库过程中的识别结果.可见,该算法能实现整个泊车过程中的车位识别.

图6 车位识别情况

主要以实时性和识别率作为车位线识别算法的评价指标.新算法和传统Hough变换方法车位识别的平均耗时、精度和召回率如表1所示.

表1 2种算法车位识别结果

从表1可以看出:提出的图像梯度匹配新算法能够有效识别图像中的车位线所在位置,具有较高的精度、召回率和较好的实时性.试验结果表明:新算法不同于传统的基于直线检测的Hough变换法,对于没有完整车位线的车位也能有较好的识别结果,具有更好的实用性.

4 结 论

针对自动泊车车位识别系统,提出了一种基于图像梯度匹配的车位线识别算法,有效提高了车位线识别算法的实时性和准确性.试验结果表明:新算法能实现对不同车位线的识别,抗干扰能力强,有较高的识别精度和召回率.

猜你喜欢

泊车畸变像素点
基于MATLAB的平行泊车路径规划
基于CarSim的平行泊车仿真分析
基于局部相似性的特征匹配筛选算法
Arrive平台新增智能泊车推荐引擎 帮助找到最佳泊车地点
几何特性对薄壁箱梁畸变效应的影响
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
在Lightroom中校正镜头与透视畸变
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
波纹钢腹板连续刚构桥扭转与畸变的试验研究