基于边缘特征和霍夫变换的斑马线识别方法 [PDF全文]
(1.浙江科技学院 机械与能源工程学院,杭州 310023; 2.浙江省食品物流装备技术研究重点实验室,杭州 310023)

现有斑马线识别方法普遍存在实时性差或准确率低等问题,对此提出基于边缘特征和霍夫变换的斑马线识别方法。首先利用逆透视变换(inverse perspective mapping,IPM)原理将单摄像机采集到的道路图像转换为俯视图像,然后采用Sobelx边缘检测模板提取斑马线的边缘信息; 基于此,采用霍夫(Hough)变换对斑马线在水平夹角、直线长度、间隔宽度、数量统计等约束条件下进行曲线拟合,最后实现斑马线的识别。试验研究中,选择600张在不同场景下采集到的道路图像对斑马线进行识别,算法在白天光线较好情况下准确率为97.56%,在夜晚情况下为88.67%,算法平均耗时约33 ms。结果 表明该算法可以在多种环境下快速准确地识别出斑马线,满足实际工程应用的需求。

Zebra crossing recognition method based on edge feature and Hough transform
CHEN Ning1,2, HONG Feng1, BAI Bing1
(1.School of Mechanical and Energy Engineering, Zhejiang University of Science and Technology,Hangzhou 310023, Zhejiang, China; 2.Zhejiang Provincial Key Laboratory of Food

Existing zebra crossing recognition methods are generally afflicted with such problems as poor real-time performance or low accuracy. In response to this, a zebra crossing recognition method was proposed on the basis of edge feature and Hough transform. Firstly, the road image acquired by a single camera was converted into a top view image by using the principle of inverse perspective transform(IPM), and then the edge information of the zebra crossing was extracted by virtue of Sobelx edge detection template. Based on this, the Hough transform was used to fit the zebra crossing under the constraints of horizontal angle, straight line length, interval width and quantity statistics, and finally the zebra crossing was recognized. In the experimental research, 600 road images collected in different scenes were selected to identify the zebra crossing. The algorithm boasted the accuracy of 97.56% in the case of good daytime light and 88.67% in the nighttime situation, with about 33 ms consumed on average. The result shows that the algorithm can quickly and accurately identify zebra crossings in various scenes, meeting the needs of practical engineering applications.

引言

道路标线的检测在智能辅助驾驶系统中是一项重要的内容。斑马线也称人行横道线,是道路交通标线中一种重要的交通安全标志,它由多条平行的白色粗实线组成,最小长度为3 m,线宽40 cm或45 cm,线间隔为60 cm,是行人横穿马路的路径,同时提醒驾驶员注意行人及非机动车辆过街[1]。道路上设有斑马线的地方(例如道路交叉口、行人横过道路集中的路段等),车辆发生违章或交通事故的概率非常高。因此,准确地识别斑马线可以使车辆获知道路信息,从而提醒司机减速慢行,避免车辆碰撞或撞伤行人等安全事故的发生; 此外,能够识别斑马线的导盲系统可以帮助有视力障碍的行人安全通过马路。

目前常用的斑马线的检测方法有双极系数法[2-5]、灭点法[6]和神经网络法[7-9]。双极系数法是利用斑马线与道路路面的灰度差异提取出候选区域,后经过边缘检测、傅里叶变换、特征匹配等操作进行斑马线的识别,由于双极系数法需要对图像进行分块,而分块模板的尺寸对目标的提取效果会产生很大的影响,故存在人工分割不精确的问题,运用该算法识别准确率最高仅有94.5%,耗时最短为1.60 s; 基于灭点法的斑马线检测,是通过找出图像中的2个消失点进行直线约束,用RANSAC法拟合出满足约束条件的直线组,该算法计算量大,且实用性不强。针对上述问题,本研究提出基于边缘特征和霍夫变换的斑马线识别方法,首先运用逆透视变换将由采集到的道路图像转换为俯视图,还原了道路图像信息; 然后在俯视图上,利用方向模板提取图像垂直方向的边缘信息,得到斑马线的左右边缘; 基于此,运用基于约束条件的霍夫(Hough)变换对斑马线进行曲线拟合,最终识别出斑马线区域。

1 斑马线识别流程

图1 斑马线识别流程<br/>Fig.1 Flow of zebra crossing recognition

图1 斑马线识别流程
Fig.1 Flow of zebra crossing recognition

车辆的行车环境复杂多样,斑马线的识别算法需要具备快速高效等特点。我们提出的基于边缘特征和霍夫变换的斑马线识别方法主要流程如图1所示:首先通过单目摄像头采集道路图像,将其进行灰度化、逆透视变换和二值化处理; 然后采用Sobelx边缘检测模板与二值图像卷积,提取出斑马线的左右边缘信息,以滤除非斑马线的边缘干扰,有效地提高算法的实时性; 在提取斑马线边缘信息后,对图像水平方向上的边缘信息进行腐蚀处理,以减少例如停止线、道路阴影等无效的边缘信息,更多地保留图像的垂直方向边缘,由于经过边缘提取和腐蚀处理后,图像会出现断点或裂缝现象,使得边缘信息不连续,因此,对图像进行膨胀处理,形成平滑区域,从而有利于后续算法的处理; 运用霍夫变换在水平夹角、直线长度、间隔宽度、数量统计的约束条件下进行拟合,最终实现斑马线的识别。

2 图像预处理与逆透视变换2.1 图像灰度化处理

图2 灰度化处理<br/>Fig.2 Gray scale processing

图2 灰度化处理
Fig.2 Gray scale processing

所采集的道路图像是彩色图像,而彩色图像含有较大的信息量,图像灰度化可以滤去很多无效信息,且将有R、G、B 3个通道值的彩色图像转换到只有0~255灰度值的图像,能提高计算机的运算速度。图像灰度化的方法有分量法、最大值法、平均值法和加权平均法等。其中,加权平均法更符合视觉感受,其灰度转换公式如式(1)所示,图2(a)和(b)分别为原始图片和图像运用加权平均法灰度化处理后的结果。

{Vgray=0.3R+0.59G+0.11B;

R=G=B=Vgray。(1)

2.2 滤波去噪

原始图像一般是带噪图像,噪声会降低图像质量,导致图像模糊,影响目标检测。因此,要对图像进行降噪处理。图像去噪的方法主要分为空域滤波和频域滤波两类。空域滤波是在图像空间中借助模板对图像进行邻域操作,根据两相邻像素点的关系进行滤波去噪; 频域滤波是将图像从图像空间转换到频域空间,根据图像频率特性设计不同的滤波器对图像进行增强,然后图像从频域空间转换回图像空间。相比于频域滤波,空域滤波处理时间短,去噪效果好,因此,本研究采用空域滤波法进行滤波去噪。图3是3种空域滤波方法——中值滤波、均值滤波、高斯滤波对加了椒盐噪声的灰度图像的处理结果,3种滤波方法的滤波模板均为3*3。

图3 3种滤波方法对比<br/>Fig.3 Comparison of three filtering methods

图3 3种滤波方法对比
Fig.3 Comparison of three filtering methods

表1 3种滤波方法的PSNR值<br/>Table 1 PSNR values for three filtering methods

表1 3种滤波方法的PSNR值
Table 1 PSNR values for three filtering methods

图像的滤波效果通常用峰值信噪比(peak signal-to-noise ratio,PSNR)作为评价指标。PSNR值越高,降噪效果越好。3种滤波方法的峰值信噪比如表1所示,综合图3表1可知,相比于其他两种方法,中值滤波法的去噪效果更好。因此,本研究选用中值滤波法进行图像去噪。

2.3 逆透视变换

定义两个坐标系W={(X,Y,Z)}∈E3和I={(x,y)}∈E2,分别表示世界坐标系(车体坐标系)和图像坐标系,逆透视变换的实质就是在Z=0的前提下,将图像空间I转换到世界坐标系W中[10]。两个坐标系的关系见图4

摄像机在世界坐标系中的位置为C=(d,l,h),本研究设定世界坐标系原点与摄像机在地面上的投影点重合,则d=0,l=0。如图5所示,摄像机其他参数的含义:γ为Z=0平面相机光轴O和Y轴的夹角,(°),即摄像机的偏航角; θ为光轴O和水平面的夹角,(°),即摄像机的俯仰角; Rx为摄像机在水平方向上的分辨率,pixel; Ry为摄像机在垂直方向上的分辨率,pixel; β为摄像机垂直视角的一半,(°); α为摄像机水平视角的一半,(°); h为摄像机的离地高度,m。

图4 车体坐标系和图像坐标系<br/>Fig.4 Car body coordinate system and image coordinate system

图4 车体坐标系和图像坐标系
Fig.4 Car body coordinate system and image coordinate system

图5 车体坐标系平面<br/>Fig.5 Planes of car body coordinate system

图5 车体坐标系平面
Fig.5 Planes of car body coordinate system

根据相应的坐标系变换和已知的摄像机参数,得到图像空间I到世界坐标系W的逆透视变换公式为

{X=hcot((2β)/(Ry-1)x-β+θ)sin((2α)/(Rx-1)y-α+γ)+d;

Y=hcot((2β)/(Ry-1)x-β+θ)cos((2α)/(Rx-1)y-α+γ)+l;

Z=0。(2)

图6 逆透视变换图<br/>Fig.6 Inverse perspective mapping

图6 逆透视变换图
Fig.6 Inverse perspective mapping

根据式(2)对图像进行逆透视变换,得到道路的俯视图如图6所示。从图6中可以看出,图像的透视效果得到消除,还原了原有的道路平面信息。

2.4 二值化处理

自适应阈值算法中,最大类间方差法被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用[11]。最大类间方差法的具体实现过程如下:

设一幅图像的灰度级为M,存在一个阈值t把图像分成K0=[0,t]和K1=[t+1,L-1]两组,两组产生的概率分别为ω0和ω1,

图7 二值化处理后图像<br/>Fig.7 Binary processed image

图7 二值化处理后图像
Fig.7 Binary processed image

μ0和μ1为各组的平均灰度值,整幅图像的灰度均值为μT,K0和K1两组之间的类间方差σ2定义为

σ2(t)=ω00T)211T)2。(3)

式(3)中:σ2(t)为类间方差函数。改变t值,当式(3)出现最大值max σ2(t)时,所对应的阈值t*为最佳阈值。图7为运用最大类间方差法对图6进行二值化处理的结果。

3 斑马线检测3.1 方向边缘检测模板

常用的边缘检测算法有Prewitt边缘检测算法[12]、Sobel边缘检测算法[13]和Canny检测算法[14]等。Prewitt边缘检测算法不适用于复杂多噪声的场景,而Canny检测算法虽能够提取较完整的边缘信息,但计算耗时长。Sobel边缘算子分别有水平和垂直两个方向的卷积模板,在进行边缘提取时,运算速度快,实时性好,但会提取出伪边缘。车辆行驶环境中,存在路面阴影、车道线、停止线等非斑马线的干扰信息,采用平常的边缘检测算子会将这些信息一并提取,影响目标信息的准确提取,同时降低算法的效率。

车辆行驶过程中,需要注意的是正前方的斑马线,设东西走向为水平方向,目标斑马线则为垂直走向,与行车方向一致。在图6中,斑马线为一组垂直方向的平行线,且绝大多数干扰物体的边缘信息在垂直方向上的特征并不明显,因此,本研究提出采用垂直边缘检测模板提取图像边缘信息,模板如下:

Sobelx=[-1 0 1

-2 0 2

-1 0 1]。(4)

图8不同边缘检测方法的效果可以看出,运用Sobel边缘检测算法较完整地提取出了斑马线边缘,其中图8(a)中有许多其他物体的边缘信息; 而在图8(b)Sobelx边缘检测模板提取的边缘信息中,斑马线的左右边缘得到了较好的保留,水平方向上的停止线等其他信息出现明显的断点现象。与原有的边缘检测算法相比较,本研究采用的垂直方向边缘检测方法,能够有效地减少停止线等干扰信息,基本上不影响斑马线的边缘检测,并且该方法计算量小、图像遍历快,有利于提高算法的实时性。

图8 边缘检测效果对比<br/>Fig.8 Comparison of edge detection effect

图8 边缘检测效果对比
Fig.8 Comparison of edge detection effect

3.2 数学形态学

数学形态学是非线性滤波运算的一种,在不影响图像的细节和边缘的情况下,具有抗噪性好、简化形状结构的特点[15]。腐蚀处理可以消除图像的一些边界点,具有去噪的作用; 膨胀处理可以填充图像的空洞,连接裂缝。腐蚀的数学表达式为

A Θ B={Z|(B)ZA}。(5)

式(5)中:A、B为Z中的集合; Θ为腐蚀运算符。

膨胀的数学表达式为

式(6)中:⊕为膨胀运算符。

采用边缘检测模板提取斑马线边缘信息后,图像仍可能存在较多的干扰边缘,故采用[1*3]的水平向量结构元素对边缘图像进行腐蚀,滤去了更多干扰信息,以提高检测的准确性,结果如图9(a)所示。经过腐蚀运算后的图像会出现断点,因此采用[5*7]矩形结构元素进行膨胀填充,以连接断裂边缘,形成连通区域,结果如图9(b)所示。

图9 形态学处理结果<br/>Fig.9 Morphological operation result

图9 形态学处理结果
Fig.9 Morphological operation result

3.3 霍夫变换

Hough变换是常用的直线检测算法,具有较好的鲁棒性,受外界环境因素的影响小,其原理如下:

假设直角坐标系上有一直线y=kx+b,用参数方程来描述为

ρ=xcosθ+ysinθ。(7)

式(7)中:ρ为原点到直线y=kx+b的距离; x、y为直线上某一点所在的坐标; θ为直线的法线与横轴的逆时针方向的夹角,(°),如图 10(a)所示。

对于某一点(x0,y0),把经过该点的所有直线用参数方程来表达为

ρ=x0cosθ+y0sinθ。(8)

即一组(ρ,θ)对应着过点(x0,y0)的一条直线。在极坐标系中,画出全部过点(x0,y0)的直线,得到一条正弦曲线,如图 10(b)所示。若另一点(x1,y1)与(x0,y0)所对应的正弦曲线相交于一点P(ρPP),即两点有相同的ρ和θ,也就意味着两点在直角坐标系中是在同一直线上。如果越多的正弦曲线相交于同一点,则这些正弦曲线所对应的点在直角坐标系中均在同一直线上,构成直线的可能性越大。霍夫变换就是把图像空间中的直线检测问题转变成了参数空间中的峰值点检测问题[16]

图 10 Hough变换参数定义<br/>Fig.10 Definition of Hough transform parameter

图 10 Hough变换参数定义
Fig.10 Definition of Hough transform parameter

经过Sobelx边缘检测模板提取边缘信息后,运用霍夫变换进一步准确地检测出斑马线,具体识别过程如图 11所示,步骤如下:

1)基于斑马线呈垂直方向的特点,对图像进行扫描,筛选出水平夹角φ在70°~90°的直线,这样可以减少干扰信息,提高准确性,保留符合角度要求的直线,然后进行下一步骤;

2)在满足角度的直线中,判断直线的高度h是否在55~120 pixel的直线,若是则进行下一步判断,若不是,则结束判断;

3)从左到右遍历图像,在满足水平夹角φ、高度h的直线中,若某直线与相邻右侧直线的间隔宽度w在12~15 pixel,则成功匹配到一条斑马线;

4)统计匹配到的斑马线的条数N,若N大于阈值T(T取4),则确定为斑马线,其区域用最小外接矩形框标出,若不满足条件,则认为是非斑马线区域。

图 11 斑马线识别过程<br/>Fig.11 Process of zebra crossing recognition

图 11 斑马线识别过程
Fig.11 Process of zebra crossing recognition

图 12(a)是斑马线的边缘线检测结果,斑马线区域用矩形框标示出,如图 12(b)所示。

图 12 斑马线检测结果<br/>Fig.12 Results of zebra crossing recognition

图 12 斑马线检测结果
Fig.12 Results of zebra crossing recognition

4 试验结果与分析

选用焦距为18 mm,CMOS(complementary metal oxide semiconductor,互补金属氧化物半导体)尺寸为22.3 mm*14.9 mm的相机,在多种情况(包括晴天雨天,路面有磨损或阴影等)下共采集了600张大小为640 pixel*480 pixel的道路图像进行试验验证。图像处理平台:2.30 GHz CPU,Window10操作系统,MATLAB 2017a编译环境。试验参数的设定:相机高度h为1.2 m,俯仰角θ为10°,相机垂直视角的一半β为22.48°。部分试验数据如图 13所示,方框表示识别到的斑马线区域。图 13(a)和(b)分别为晴天和阴天情况下的检测结果,可以看出,斑马线的检测效果较好,识别区域完整; 图 13(c)显示了在路面有积水的情况下,本算法也能较完整地检测出斑马线; 图 13(d)为路面标线有磨损情况下的检测结果,由于一些斑马线磨损过于严重,使得重要特征信息缺失而无法检测到,但仍能检测出余下区域; 图 13(e)中,斑马线上有车辆遮挡,因此只检测出了部分区域; 图 13(f)为夜间光照较强情况下的检测结果,斑马线区域能大致识别出来。

图 13 多种环境下的斑马线检测结果<br/>Fig.13 Results of zebra crossing recognition in different scenes

图 13 多种环境下的斑马线检测结果
Fig.13 Results of zebra crossing recognition in different scenes

对600张图像进行测试,结果见表2。由表2可知,本算法在白天光线较好的情况下识别准确率达97.56%,在夜晚识别准确率为88.67%。

表3显示了本文算法与双极系数法[2]识别斑马线的性能对比结果,可以看出,本文的识别算法有较高的准确性和较好的实时性。进一步分析本算法识别准确率存在误差的原因:一是夜晚光线过暗,路面和斑马线的对比度下降,识别度不高; 二是标线磨损很严重,丢失了大部分信息; 三是车辆干扰,遮挡了较大区域的斑马线。

表2 识别结果<br/>Table 2 Results of recognition

表2 识别结果
Table 2 Results of recognition

表3 算法性能对比<br/>Table 3 Algorithm performance comparison

表3 算法性能对比
Table 3 Algorithm performance comparison

5 结 语

本研究提出一种基于边缘特征和霍夫变换的斑马线识别方法,通过提取图像垂直方向的边缘特征信息,并运用霍夫变换匹配出符合限定条件的斑马线。试验结果表明:本研究的方法可以准确地识别出斑马线,满足智能车辆处理实时数据的要求,因而有较高的工程应用价值。下一步研究将提高算法在夜间光线昏暗、斑马线严重受损等复杂情况下的准确性,以增强算法的适应性。

参考文献