一种新的基于Canny算子的道路标线检测算法
2021-01-21田明锐孙宏斐胡永彪夏晓华岳鹏举
田明锐 ,孙宏斐 ,胡永彪 ,夏晓华 ,2,岳鹏举
(1.长安大学道路施工技术与装备教育部重点实验室,陕西 西安 710064;2.柳州欧维姆机械股份有限公司,广西 柳州 545006;3.广西柳工机械股份有限公司,广西 柳州 545006)
随着我国交通运输事业的发展,机器视觉和图像处理逐步应用于公路交通的各行各业,这些应用大都涉及道路标线检测。目前,道路标线的检测分为静态检测和实时检测。静态检测多是在边缘检测算子的基础上进行改进而实现。这类检测适用于需要获取图像细节特征的方面,如道路、桥梁及病害的自动化检测等方面。现有的改进方式包括文献[1]提出的通过调整算子模板来改善检测结果,这种方式在一定程度上可以获得较好的检测结果,但是对于噪声过多、亮度不均的图片处理能力有限,没有解决不同图片阈值选取困难的问题;文献[2]在边缘检测前加入了提取颜色特征的步骤,文献[3]在边缘检测前引入了维纳滤波,这两种方式检测前对图像进行了一定的预处理,但对亮度不均、标线复杂的图像处理效果不佳,不能排除路面区域外的伪边缘。实时检测则是依靠深度学习[4]或者模板和几何特征匹配[5],这类检测主要适用于汽车的智能驾驶方面[6]。这种检测方式检测速度快,但无法获得道路和标线的细节特征,如文献[6]提出的检测方法,检测速度可以达到50帧每秒,但只能检测车道线,完成车道的分割,很难处理其他道路标线,如转向箭头,斑马线等。该文针对道路标线的静态检测,从图像预处理、寻找最佳阈值及剔除伪边缘3个方面提出新的改进算法。实验结果表明该文提出的检测算法能够克服传统Canny算子在检测中存在的道路标线检测不全、阈值选取困难及检测结果中噪声和伪边缘较多的问题,得到准确的道路标线检测结果。
1 新的道路标线检测算法
该文通过结合广泛应用于路面边缘检测的Canny算子,提出了道路标线检测的技术路线。具体步骤如下,第一步基于形态学的图像预处理;第二步寻找最佳阈值进行边缘检测;第三步基于HSV颜色分量及连通区域大小剔除干扰边缘。
1.1 基于形态学的图像预处理
预处理可以获得亮度均匀的图片,使图像边缘特征的提取更加容易。预处理需要应用形态学的相关知识,选取大小合适的结构元素,创建背景图像,再用原图像减去背景图像,即可获得亮度均匀的图像[7-9]。为达到该目的,要求创建背景图像的结构元素大小合适,使所创建的背景图像中包含局部亮度特征的同时不包含图像有效特征[10]。选取结构元素大小合适的程序框图如图1所示。该框图的功能为结合图像大小限制结构元素的大小在10~100之间,保证结构元素的大小适中。
图1 计算结构元素的程序框图
1.2 阈值寻找及边缘检测
该文选用广泛应用于道路标线检测领域的Canny算子作为自动最佳阈值寻找的实验算子[11-12]。针对路面检测,为了能最大程度的定义Canny算子最佳阈值,设定了最佳阈值出现的两个标准。其一,边缘数量重复出现次数最多且数量最少时对应的阈值为边缘检测的最佳阈值;其二,边缘数量未重复出现,需设置边缘数量最小值,等于或正向最接近该值时对应的阈值为最佳阈值。
1.3 干扰边缘剔除
算法最后一步为干扰边缘剔除,该文使用了两种方式。一种是根据道路两侧与路面在HSV颜色空间各分量的取值范围不同,道路与道路标线主要以黑、白、灰3种颜色为主,道路两侧有绿化等其他颜色。将图像分为路面和路面以外两个区域,从而排除路面区域外的干扰边缘[13-14]。另一种利用边缘的大小(联通区域的大小)进行筛选,排除路面区域内的干扰边缘[15-16]。
寻找最佳阈值及后续剔除干扰边缘的流程图如图2所示。对预处理后图像采用由小到大的阈值P进行边缘检测,并统计得到的边缘数量;根据不同阈值下,边缘数量是否出现重复,使用不同方法来确定边缘检测阈值:当不同阈值下边缘数量存在重复情况时,将P取为边缘数量最少且重复次数最多时对应的阈值[17];当不同阈值下边缘数量不存在重复情况时,将P取为边缘数量大于某个最小值min时对应的阈值。实验中,阈值P的初始值为0,以a为步长增加,a的取值与图像复杂程度有关,图像越复杂a取值越小,一般a取0.05,min取7。最后,剔除图像存在的干扰边缘。
2 实验结果与分析
2.1 形态学处理结果对比分析
图3是为了模仿道路局部出现镜面反射,或者存在积水对光的反射等情况而造成拍摄的图像亮度不均,人为给图像加入光源生成亮度不均的图片(图像分辨率为1 920×1 080)。图4~6是大小不同的结构元素提取的背景图像效果对比。
实验结果表明,结构元素太小时,如图4(图4结构元素取值为人工设置的较小数值),背景图像包含过多原图像有效特征,减去背景图像时会弱化有效特征,不利于后续处理;结构元素过大时,如图5(图5结构元素取值为人工设置的较大数值),背景图像中无法准确包含局部较小区域的亮度特征;结构元素适中时,如图6(图6中结构元素取值由图2所示框图得到),背景图像包含了不均匀的亮度特征,且原图像有效特征较少。
图2 阈值寻找及后续处理流程
图3 生成的亮度不均的道路图像
图4 结构元素为5的背景图像
2.2 边缘检测结果对比分析
下面是采用两种方式的检测结果,图7中的4幅图像为待检测图像,图8中的4幅图像是传统Canny算子的检测结果,图9中的4幅图像是利用该文提出的检测方式得到的检测结果。从实验结果的对比可以看出传统的Canny算子检测出的道路标线中存在的干扰和伪边缘较多,无法直观地得到清晰的道路标线;而使用该文提出的检测方式可以清晰完整地提取出道路标线,得到准确的检测结果。因此,该检测算法可以较好地应用于道路标线检测领域。
图5 结构元素为150的背景图像
图6 结构元素为21的背景图像
图7 待检测图像
图8 传统Canny算子检测结果
图9 该文提出的检测方式的检测结果
3 结 论
该文针对传统Canny算子在道路标线检测中存在的阈值选择困难、检测效果不理想等问题进行了一些改进,首先是在图像处理前增加基于形态学的预处理,排除了图像亮度不均的干扰;接着结合该文提出的两个标准寻找最佳阈值[18],并利用该阈值为图像进行道路标线检测,最后使用基于HSV颜色空间的各分量取值范围以及基于联通区域大小的两种后续处理的方式剔除干扰边缘。实验结果证明,这一检测算法相比传统Canny算子检测,能自适应地检测出道路标线且检测清晰准确。