基于图像识别的泊车车位检测算法研究*

2019-08-08 02:17朱旺旺黄宏成马晋兴
汽车工程 2019年7期
关键词:状态机泊车车位

朱旺旺,黄宏成,马晋兴

(1.上海交通大学,汽车电子控制技术国家工程实验室,上海 200240; 2.上汽大众汽车有限公司,上海 201805)

前言

随着汽车保有量的增加,城市道路越来越拥挤,驾驶员行车与停车的环境也日益复杂,泊车作为驾驶行为的重要组成,已经成为安全事故高发的驾驶环节[1]。基于超声波传感器的泊车辅助系统已成为汽车的标准配置,在泊车过程中,超声波传感器可探测视野盲区中的障碍物,并通过提示音的频率变化为驾驶员反馈距离信息;但是,超声波传感器无法探测反射面太小的障碍物,且无法区分地面的色块信息,限制了自动泊车系统的工作场景。与基于超声波传感器的泊车系统相比,基于图像的泊车系统克服了超声波传感器采集信息的局限性,可以获得车身周围更丰富、更准确的数据,为开发适用范围更广泛、更可靠的自动泊车系统提供了可能。

目前,国内外很多学者都针对基于图像的泊车系统开展了研究。其中,白永等[2]在车身周围布置4个鱼眼摄像头获取车辆周围信息,并通过图像处理手段获得了周围环境的全景影像。但是,作为一种先进辅助泊车系统,该系统仅能为驾驶员提供车辆周围信息,没有基于获得的图像开展泊车算法的研究。王春香等[3]在建立了汽车全景影像的基础上,通过Radon变换的方式提取了停车位的特征,且进行了封闭场景下的实车测试,但在Radon变换的过程中,其沿着参数空间进行了[0°,180°)的变换,而综合考虑泊车过程中摄像头采集到的车位线框信息可以发现,车位线主要分布在车辆纵向速度的平行和垂直方向上。因此,结合泊车的具体工况,可改进Radon变换的参数范围,从而降低算法的计算复杂度,提升运算效率。

本文中以某车型右侧安装的摄像头采集的图像为输入,忽略摄像头端的畸变等因素。首先进行图像预处理,然后,结合侧方位泊车的典型工况,设计了车位的检测与分类算法,实现了车位分类与可用车位的提取,文中算法如图1所示。

1 图像预处理

在摄像头的真实工况下,自动泊车过程将受到光照不均匀、光照强度变化等环境因素的干扰;为提高后续车位检测的精度和算法对环境的鲁棒性,须先对图像进行预处理。

1.1 灰度化

文中摄像头输入为RGB图像,首先通过式(1)转换法则进行图像灰度化。

式中:I为灰度图像;R,G,B分别为图像的3个通道的值;(i,j)为灰度图像中像素坐标。

1.2 顶帽变换

真实环境中的光照不均和光照强度的变化都会直接影响图像边缘提取过程的准确度,给后续的检测带来不可预测的后果。顶帽变换技术作为灰度形态学的一项重要应用[4],可缓解光照不均匀问题,进行形态学运算,即

式中:I′为形态学运算结果;S为结构元素;(x,y)为图像像素坐标;(x′,y′)为结构元素像素坐标;DS为结构元素集合。

原始灰度图的三维可视化效果图如图2(a)所示,图片存在比较严重的灰度集中。图像经半径为15的圆形结构元素进行顶帽变换,输出见图2(b),原始图像的光照不均匀问题明显减弱。

1.3 直方图均衡化

图2 灰度三维可视化效果图

图像经过顶帽变换,可缓解光照不均匀导致的灰度集中分布,但会弱化图像中的特征,在边缘检测前先进行对比度拉伸,以提高图像的对比度,同时使图像的像素值分布更加均匀[5],采用基于概率统计学的直方图均衡化进行对比度拉伸,本文中图像灰度范围为[0,255],转换公式为

式中:DB为转换后的灰度值;DA为转换前的灰度值;Dmax为最大灰度值,即255;Hi为第i级灰度的像素个数;A0为图像面积,即像素总数。

1.4 顶帽变换融合直方图均衡化

综合考虑顶帽变换与直方图均衡化,可以在使得图像的灰度整体趋于均匀的同时,保持图像较高的对比度,如图3所示。通过顶帽变换融合直方图均衡化可使整体偏暗或偏亮的图像变成亮度适当的图像,提高算法整体的抗干扰能力。

图3 顶帽变换融合直方图均衡化效果对比

2 车位线提取

2.1 图像滤波与锐化

图像在拍摄和传输的过程总会引入各种形式的噪声。在识别之前须先对图像进行高斯滤波操作[6]:

式中:w为卷积模板,大小为[2a+1,2b+1],a,b均为正整数;s,t为卷积模板中元素坐标;H′为顶帽变换融合直方图均衡化的输出;H为滤波输出。

本文中滤波卷积模板使用3×3高斯模板,本模板来源于二维高斯函数,由式(7)均值为0,方差为δ2的二维高斯函数给出。

高斯滤波在减弱噪声的同时也会使图像变得模糊,使用基于灰度图像2阶微分的拉普拉斯算子进行图像锐化,其2阶偏导数分别为

图像锐化的拉普拉斯算子为

2.2 图像边缘提取

预处理和滤波与锐化过程后,基于零点交叉方法进行图像边缘提取,通过寻找图像灰度值中2阶导数的过零点来提取图像中的边缘信息[7],如图4所示,获得了车位线与车位内信息的典型特征。

图4 边缘检测输出图

3 车位线检测

3.1 车位线检测

定义车位主方向为车位的长边方向,次方向为短边方向,车位线为直线,Radon变换作为一种积分投影方法,适用于图像直线检测[8],在图像二维空间中,Radon变换为

式中:δ为狄利克雷函数;(θ,ρ)为 Radon空间中的参数;R(θ,ρ)为 Radon空间中对应参数(θ,ρ)点处的线积分值;O为边缘检测的输出。

结合泊车工况,在侧方位泊车过程中,先验知识可概括为:(1)寻找车位的过程中,车辆行驶方向与车位主方向近似平行;(2)车位的内侧长边容易被车位内车辆遮挡。

基于第一条先验知识,文中将Radon变换的区间压缩为[81°,100°]∪[171°,190°],两个范围分别用于检测主方向与次方向车位线;通过压缩Radon变换区间的方式可降低Radon矩阵维度和后续计算的复杂度,但矩阵中仍包含了车位线的完整信息,结果如图5所示。

基于车位线具有一定宽度的事实,Radon变换过程中,车位线方向对应的变换角度处,将出现两个线积分的极大值,如图5中框内的亮点对所示,图5左右小图为Radon变换的局部放大图,图像空间中车位线的参数对应亮点对中心的坐标值。

图5 Radon变换结果

在偏离主方向较多的角度上,线积分明显小于主方向附近的线积分,通过阈值分割将Radon变换中可能为车位线的线积分值筛选出来,结果如图6所示,图6左右小图为分割结果的局部放大图。

3.2 车位线精确定位

通过3.1节中Radon变换与阈值分割,可获得Radon空间中的多个点集,每个点集内均包含车位线参数信息,结合K-Means聚类分析与非极大值抑制处理[9]的方法实现了车位线的像素级定位。

图6 阈值分割结果

作为一种高效的无监督机器学习方法,K-Means聚类可以获取Radon矩阵点集的聚类中心,在KMeans聚类前,需要指出聚类中心的数量。本文中,聚类中心数量与车位线数量一致,基于3.1节中第2条先验知识,文中舍弃车位的内侧长边,主方向车位线数量的判别依据为

确定聚类中心数量的关键为确定次方向车位线的数量,文中次方向车位线检测算法如表1所示。

表1 确定次方向车位线数量算法程序

获取了车位主方向与次方向的车位线分布数据后,两者取和即为K-Means聚类中心的数量。以Radon矩阵的阈值分割结果为原始数据,以车位线数量为聚类中心数,进行K-Means聚类分析得到对应车位线数量的聚类中心,如图7所示。

由于聚类中心的邻域范围内线积分分布不均匀,聚类分析虽可找到近似车位线参数,但误差较大,使聚类中心难以与亮点对中心重合;文中通过非极大值抑制处理,在聚类中心8像素二维邻域范围内实现了亮点对中心的精确定位与参数获取,运算过程如表2所示。

图7 聚类中心

表2 基于聚类中心确定亮点对中心的算法程序

基于上述算法,结果如图8所示,经过亮点对中心提取算法的修正,实现了车位线参数的精确提取。

3.3 车位线坐标变换

在本文中,图像的坐标原点位于左上角顶点,x轴正方向水平向右,y轴正方向垂直向下;而Radon空间的坐标系原点位于图像中心,x轴正方向水平向右,y轴正方向垂直向上。因此,须将Radon变换获得的坐标变换到图像坐标系中,映射关系为

图8 精确定位结果

4 车位识别算法

4.1 兴趣窗口划分

确定车位线参数后,为提高车位检测算法的效率,泊车过程中的检测区域可缩小至车位线围成的范围以内,兴趣窗口定义为主方向车位线与图像左右边界围成的区域,其中,主方向上根据前面求得外侧车位线通过平移获取内侧主方向车位线,平移距离为国家标准中侧方位车位的宽度。联立主方向车位线方程与边界方程,可获得4个边界点,根据边界点框出兴趣区域,如图9所示。文中后续的检测工作将基于兴趣窗口展开。

图9 兴趣区域

4.2 车位分类

基于获取的车位线参数信息,须对车位状态进行决策与分类,车位状态为有限种可能,且各状态之间的转移是瞬态的。因此,本文中通过分层有限状态机对车位进行分类,分层有限状态机在单层状态机的基础上通过逐层嵌套方式搭建,与单层有限状态机相比,分层有限状态机在处理庞大状态体系时更加高效,且逻辑结构也更加清晰。

文中状态机的分支基于车位的角点,车位内障碍物来实现。根据3.2节中聚类中心数量可以确定当前图像中车位角点的数量,在车位主方向上,外侧车位线的方程为

而通过平移得到内侧车位线方程为

分层有限状态机的状态转移条件概括如下。

(1)判别角点数量,结合泊车过程采集到的实际图像,角点为4个或6个;4个角点表明图像中含有1块待检测区域;6个角点表明图像中含有2块待检测区域。

(2)依据车位外侧2个角点判断车位宽度。

(3)依据角点围成的区域,判别障碍物情况。

(4)对于6个角点的情况,若2块区域均可用,则选定右侧的为本次可行区域。

联合车位主方向与次方向的车位线方程、车位主方向与边界线方程获得图像内角点与边界点,结合车位内障碍物信息,车位分类规则库见图10。

图10 车位分类规则库

4.3 算法测试

算法测试共分3部分:计算效率分析、鲁棒性分析和算法检测效果测试。与基于经典Radon变换矩阵的车位检测方法相比,文中通过压缩Radon矩阵、阈值分割与兴趣窗口的方法,使Radon矩阵中的元素值更适用于K-Means聚类分析,试验结果如图11所示,文中建立的车位检测算法在计算效率上显著高于未经优化的经典方法。

图11 计算效率对比

在图像预处理阶段,通过顶帽变换融合直方图均衡化的方法减轻了光照强度变化和光照不均匀对算法稳定性的影响。本节中算法鲁棒性体现在图像出现偏斜时,算法对车位检测的精度,结果见图12。当车位主方向与车辆纵向速度方向存在较大夹角时,仍可获得比较理想的检测结果。

图12 偏斜图像的检测结果

当存在两个可行区域时最优区域标为斜线,同时将可用车位的理想停车位置的车辆后桥中点标为圆点,对应上述试验工况,部分试验结果如图13所示。分层有限状态机可准确推算出车位的可用情况。

图13 车位检测效果

5 结论

以车辆右侧单通道摄像头采集的图像为输入,经过图像灰度化、顶帽变换融合直方图均衡化获得理想的灰度图像,且基于零点交叉的方法提取了图像边缘;在边缘提取的基础上结合泊车的典型工况,压缩了Radon变换的角度范围,提升了计算效率;通过阈值分割的方法,对Radon矩阵进行预处理,进一步提高了K-Means聚类分析的计算效率;完成聚类后,通过非极大值抑制处理,在聚类中心附近实现了像素级别的车位线精确定位;对获取的车位线信息,通过划分兴趣窗口提高了计算效率。还设计了分层有限状态机,建立了表达车库信息的规则库,实现了对车位的分类,经验证取得了理想的效果,未来重点研究在线试验测试,为装车应用做准备。

猜你喜欢
状态机泊车车位
基于MATLAB的平行泊车路径规划
基于CarSim的平行泊车仿真分析
基于Verilog 的有限状态机编程方式及研究
为了车位我选择了环保出行
交互式维护系统中有限状态机的设计与实现
我自己找到一个
基于驾驶员经验的自动泊车规划算法研究*
一个车位,只停一辆?
基于IIC总线的串行数据通信
第三代自动泊车辅助系统