近年来随着对泊车辅助系统需求的快速增长,提出了多种车位定位的方法,这些方法大致可分为4类:基于用户界面的、基于设施的、基于空闲位的和基于车位线的方法。与其他方法相比,基于车位线的方法有以下优势:(1)可以与基于用户界面的方法结合使用来减少由于司机重复操作带来的不便,而这是基于用户界面方法的主要缺陷。(2)不同于基于空闲位的方法,它能更准确地定位停车位,因为其定位过程不依赖于相邻汽车的停放姿势而仅依赖于车位线。(3)它也可以有效地应用于倾斜车位的情况。由于传感器的局限性,运用超声波传感器基于空闲位的方法在倾斜车位的情况下会失效。(4)与应用双目或者运动声波的基于空闲位的方法相比,它通常花费少量时间。(5)它不需要额外的传感器,例如立体摄像头、扫描激光雷达或者短波雷达,而是运用后视摄像头。
基于车位线的方法可以分为半自动和全自动的方法。与全自动的方法相比,半自动的方法可能产生更可靠的结果,而且花费更少的计算资源,因为它有来自人的额外信息。Jung等人提出了一种方法,这种方法需要司机在预停车位内标记一个点,然后利用方向梯度来进行识别。实验验证这种方法只适用一种类型的车位。为克服此缺陷,提出了另外一种方法,可以识别各种类型的车位,但需要用户更多的配合。这种方法需要用户输入车位两端点的初始位置,构成了车位的入口。基于这些初始位置,采用人工神经网络和遗传算法进行车位的识别。
另外,全自动的方法也得到了发展。XU等人提出了一种基于颜色分割技术的的方法识别车位线,这种方法只能识别红色车位线,而且基于颜色信息的方法已经被证明对光照变化是敏感的。Tanaka等人提出了一种对边缘片段运用RANSAC检测一组直线来识别车位线。由于这种方法高度依赖于直线检测,其性能会因为部分污损而下降。Jung等人提出的方法将各种类型的车位线模型化为一种分层树结构,基于这种结构完成自动识别。
但是,以上提出的方法都涉及到阈值,所以都会存在图像处理领域一个普遍的问题,即阈值设置过高,重要信息就可能被遗漏;阈值设置过低,干扰信息又会被看的重要,因此一个适用于所有图像的普适阈值难以给出,所以针对以上问题,本文采用了自适应的思想,包括自适应直方图均衡化、自适应二值化、自适应Canny边缘检测,以满足应用的需要,实验证明这些算法都是有效的。
本文提出的方法可分为以下几个过程:对汽车前、后、左、右4个摄像头采集到的图像进行重建形成全景图像;图像预处理,包括直方图均衡化,二值化以及形态学处理;Canny边缘检测以及Hough变换,然后在参数空间中利用车位线特征的先验信息对结果进行优化,最终得出识别结果。具体算法流程如图1所示。
1 图像预处理
通过加装在汽车车身前、后、左、右的4个鱼眼摄像头,同时采集车辆四周的影像,经过鱼眼图像矫正,鸟瞰变换和拼接后,形成一幅车辆4周的360°全景俯视图,如图2所示。
由此得到的原图像不可避免地会受到光照、噪声等的影响,因为前期处理的质量直接影响到后期识别的效果,所以为消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性,需要对图像进行预处理,主要分为以下几个步骤。
1.1 自适应直方图均衡化
首先将原彩色转化为灰度图像,考虑到光照影响导致灰度分布不均,需要对灰度图像进行直方图均衡化。直方图均衡化的基本思想是对原始图像中的像素作某种映射变换,使变换后的图像灰度概率密度是均匀分布的,即变换后图像是一幅灰度级均匀分布的图像,这意味着图像灰度的动态范围得到了增加,从而可提高图像的对比度。但是传统的直方图均衡化中灰度变换函数运算与像素所处的位置无关,这种全局性处理的算法,具有算法简单、计算速度快等优点,但由于其对所有像素点都做同样的处理,忽略了图像的局部特征,这就导致经过直方图均衡的图像将丢失有用信息,给图像的去噪处理及边缘检测带来损失。因此本文采用对比度受限自适应直方图均衡法(CLAHE),通过限制局部直方图的高度来限制局部对比度的增强幅度,从而限制噪声的放大及局部对比度的过增强。如图3所示为分别对原灰度图像进行直方图均衡化和CLAHE后的效果,可以看到CLAHE的效果明显优于传统的直方图均衡效果。
1.2 自适应二值化
对图像进行直方图均衡化处理后,为便于后期处理,需要对图像进行分割操作,达到目标和背景分离的目的。图像分割的关键是选取恰当的阈值,阈值选取的恰当与否直接影响到感兴趣信息的提取。这里采用局部自适应阈值,它是根据像素邻域块的像素值分布来确定该像素位置上的二值化阈值。这样做的优点在于,每个像素位置处的二值化阈值不是固定不变的,而是由其周围邻域像素的分布来决定的。亮度较高图像区域的二值化阈值通常会较高,而亮度较低的图像区域的二值化阈值则会相适应地变小。不同亮度、对比度、纹理的局部图像区域将会拥有相对应的局部二值化阈值。图4显示了采用该方法后的结果。
1.3 形态学处理
可以看到,在图像分割完成后,不免存在着一些二值噪点,为此,考虑利用形态学对图像进行处理。对二值图像进行形态学处理的基本思想是运用一个预先定义好的简单结构元素去探测图像,看这个结构元素能否填放在该图像内部,并验证填放结构元素方法的有效性。最基本的形态学运算是腐蚀和膨胀,二者互为对偶运算。腐蚀是将区域的内边界点变为背景,使边界向内部收缩,在这个过程中,小且无意义的物体将被消除;而膨胀则是将区域的外边界点变为对象点,使边界向外部扩张。
为利用结构元素B膨胀集合A,可将B相对原点旋转180°,得到-B,再利用-B对AC进行腐蚀,腐蚀结果的补集就是所求的结果。
对输入图像进行先腐蚀后膨胀,具有平滑功能,通常用于消除小对象物、在纤细点处分离物体、平滑较大物体边界的同时并不明显改变其体积,且图像细节得以保留。图5是经过先腐蚀后膨胀得到的结果,可以看到经过形态学处理后的二值化图像已经滤掉了部分噪点,便于下一步的识别处理。
2 Hough变换检测车位线
2.1 基于中值的自适应Canny边缘检测
边缘是图像特征的一个重要属性,蕴含了大量的信息,能勾勒出目标物体,因此边缘检测技术是图像处理中一类重要的分析方法。Can ny算子是最常用的边缘检测方法。Canny算法的步骤可归纳为:
(1)去噪。因为Canny边缘检测算子对于未经处理的原始图像中的噪声是敏感的,所以它采用高斯模板与原始图像作卷积,得到的结果与原始图像相比,有轻微的模糊。这样,单独的一个噪声像素在经过高斯平滑的图像上变得基本没有影响。
(2)查找图像的亮度梯度。图像的一个边缘可能指向不同的方向,所以Canny算法运用4个模板分别检测去噪图像中的垂直、水平、对角线边缘。利用边缘检测算子(如Roberts,Prewitt,Sobel)分别计算出水平和垂直方向的一阶导数Gx和Gy由此可以得到边缘的梯度和方向
(3)跟踪图像边缘,选择滞后阈值。较大的亮度梯度更有可能被认为是边缘,但在多种情况下,指定一个阈值来确定某个梯度是否为边缘是不可能的,因此Canny采用了滞后阈值。
滞后阈值需要高低两个阈值。假设图像中的重要边缘都是连续曲线,这样可以跟踪给定曲线中模糊的部分,并丢掉一些虽然产生了大的梯度但没有组成曲线的噪声像素。所以从一个较大的阈值开始,这将标识出那些确信的边缘。从真正的边缘开始,并利用前面导出的方向信息,在图像中跟踪整个的边缘。在边缘跟踪时采用低阈值,这样就可以跟踪曲线的模糊部分直至回到起点。
这个过程一旦完成,就可得到一个二值图像,其中的每个点表示是否是一个边缘点。
与使用一个阈值相比,Canny边缘检测算法使用两个阈值使得操作更加灵活,但还是存在的普遍问题,阈值设置过高,重要信息就可能被漏掉;阈值设置过低,干扰信息又会被看的重要。难以给出适用于所有图像的通用阈值问题。
采用的解决方法首先是计算图像的中值median,然后根据以下公式为高阈值high_thresh和低阈值low_thresh赋值,调用Canny边缘检测算法对图像进行边缘检测。
high_thresh=0.66×median;
low_thresh=0.33×median; (4)
图6和图7分别显示了经典Canny边缘检测和基于中值的Canny边缘检测结果,其中图6是经过手动调整到最佳结果产生的图像,图7是利用自动设定阈值得到的结果,从中可以看出基于中值的Canny边缘检测算法可以实现自动边缘检测的目的。
2.2 Hough变换
霍夫变换(Hough Transform)是一种检测直线和解析曲线的有效方法。它把二值图像变换到Hough参数空间,利用参数空间极值点的检测来实现目标的检测。霍夫变换不但可以用于检测图像中的直线,还可以扩展到任意曲线的识别,多为圆和椭圆。
运用两个坐标空间之间的变换,霍夫变换将在一个空间中具有相同形状的曲线映射到另一个坐标空间的一个点上形成峰值,因此,霍夫变换把曲线的检测问题转换到参数空间中对点的检测问题,通过在参数空间里进行简单的累加统计完成检测任务。
考虑直角坐标系中的一点(x0,y0),经过该点直线的一般方程可以写为
ρ=x0cosθ+y0sinθ (5)
参数ρ和θ可以唯一地确定一条直线,这在ρ-θ空间内是一条正弦曲线。若将x—y平面内同一条直线的点列变换到ρ-θ空间,则所以正弦曲线都经过一点(ρ’,θ’),所以正弦曲线在ρ-θ空间其他各处都不相交。因此,X—Y平面内一条直线上的无数点变换到ρ—θ空间内时,经过(ρ’,θ’)的次数为无穷,经过其他各处次数都为1。也就是说,Hough变换将X—Y平面内的一条直线映射到了ρ—θ空间中的一个点。因此,Hough变换把直线检测问题转换到参数空间里对点的检测问题,通过在参数空间里进行简单的累加统计完成检测任务。
图8为将Hough变换应用到边缘检测图中得到的初始结果。
可以看到,由以上过程得到的结果存在伪车位线,需要进一步对结果进行优化。注意到,在进行边缘检测后每条车位线都是双边缘的,另外,这两个边缘是相互平行的且具有固定的宽度和近似相等的长度,而且它们都反应了同一条车位线,因此为了减少计算量,可以计算一个边缘,而非两个边缘,在这里取两条边缘线的平均值作为实际的车位线。基于以上先验特征对初始识别结果进行条件限制及优化,得到如图9所示的最终识别结果。
3 实验结果及分析
系统的硬件部分主要由鱼眼摄像头、图像处理单元和显示屏组成。由于车身内部空间有限,图像处理单元无法由PC机完成,因此在本系统中,设计使用DSP来完成视频图像的处理。软件部分,以Visual Studio 2008为开发环境,并调用OpenCV库来完成算法的实现。实验选取了200张不同情况下的车位图像对算法进行了验证,并在相同的情况下将本文的方法与传统的Hough方法进行了对比,实验中采用召回率和识别率来对算法的效率进行估计,其定义分别如下。
从实验可以看出,本文提出的基于自适应思想的车位线检测与识别方法具有较高的精确度和鲁棒性。
4 结束语
随着停车难的问题日益严峻,泊车辅助系统的应用越来越广泛,本文提出了一种综合运用自适应边缘检测和Hough变换等算法进行自动识别车位线的方法。通过实际采集到的图像对算法进行验证,并与传统方法进行了对比,验证了本文所提方法的高精度和高鲁棒性。