基于改进区域生长和小波变换的非结构化道路检测

2023-12-15 05:27龙邱天王靖岳薛春伟武旭东郑珺文王军年
科学技术与工程 2023年33期
关键词:边界点结构化边缘

龙邱天, 王靖岳,*, 薛春伟, 武旭东, 郑珺文, 王军年

(1.沈阳理工大学汽车与交通学院, 沈阳 110159; 2. 吉林大学汽车仿真与控制国家重点实验室, 长春 130025)

目前,在智能交通领域中自动驾驶和高级辅助驾驶系统逐渐变成其重要研究方向,智能导航系统在不同领域的应用广泛增加,比如车辆交通、军事 应用、农业生产等方面。对于道路而言,根据其道路特征可以大概区分为结构化和非结构化。结构化道路一般为较高结构化程度的道路,如高速公路、城市干线等。并且具有清晰路标、背景环境简单、特点明显的道路。然而非结构化道路则是指没有清晰的路标、背景环境复杂的道路,由于受复杂环境影响难以使道路区域与非道路区域分割,例如乡村小路、野外环境、沙漠道路、雪地等。

用于检测非结构化道路的算法可大致分为基于道路特征、基于道路模型、基于神经网络等。基于道路特征方法,主要是通过道路区域与非道路区域于颜色[1]、纹理[2]、边缘[3]等特征的差异,然后再使用阈值分割、区域生长、基于统计等方法来得到初分割道路区域。它的优点是不敏感于道路形状并且需要较少的先验知识,却对阴影和水迹敏感并且这类算法实时性较差。基于道路模型[4]的方法,首先在道路的先验知识的基础上,道路区域利用道路模型的建立来检测。然后分析道路图像,从而找出与原始道路更匹配的道路模型。它的优点是对路面上的阴影和水迹不敏感,但是敏感于道路的形状,并且对于非结构化道路的复杂形状很难找出准确的模型去匹配。基于神经网络[5]的方法,主要根据其学习特性来检测道路区域,这种方法难度在于训练方法及大量的数据集。

钟鹏飞[6]首先将原始图像的颜色空间转换,由红绿蓝(red-green-blue,RGB)转换到色度-饱和度-亮度(hue-saturation-value,HSV),然后使道路区域和背景区域之间的颜色对比度增加,从而分离道路与背景。但是,该方法仅适用于在道路区域和背景区域之间有较大颜色差异的非结构化道路。

牛牧原等[7]针对非结构化道路存在阴影、积水等干扰。首先利用二维最大熵分割道路图像,然后加入自适应模板进行特征提取。支持向量机(support vector machine,SVM)分类器用于增强分割效果。利用改进分块算法来快速提取边界点。最后采用改进的随机最小二乘法来拟合道路边界,降低干扰点影响。

Xu等[8]在使用逆透视变换后获得鸟瞰图,用大津法分割道路,最后在双曲线模型基础上用随机一致性算法拟合道路边界,但是大津法在强光照道路效果不佳。

通过分析以上方法,现提出一种基于区域生长法和小波变换的非结构化道路检测方法。该方法根据大多数情况下道路区域在车载摄像头的正下前方及道路区域与道路两旁背景灰度差异,来进行区域生长法对图像进行初分割,再利用小波变换得到的道路边缘信息来修正初分割道路图像,从而更好地检测出道路可行驶区域。

1 基于改进区域生长法的图像初分割

图像分割是图像处理中重要的技术,而区域生长法[9]是一种古老而经典的分割算法。按照事先定义好的准则使一个像素或一个子区域汇集成更大区域的过程就是区域生长法。其本质是将图像中具有相同或相似特性的像素连接起来,连接成同一片的区域。区域生长法首先将选择目标分割区域中一组种子点为生长起点,可以是单个像素或小区域,然后根据事先定义的生长准则对比种子点周围邻域的像素中与种子点是否具有相似属性,如果具有相似属性,则将其与种子点所在的区域合并。最后,区域中新添加的像素被视为新的种子点,以继续上述生长过程,直到没有满足条件的像素被划分。

简单的区域生长算法可用于分割更复杂的图像,并能提供良好的轮廓信息和分割结果。区域生长方法的好坏取决于3个关键性法则:①选择合适的种子生长点;②确定相似准则即生长准则;③确定生长停止的条件。

设R代表整个图像,利用区域生长法图像分割时,将R划分为n个子区域R1,R2,…,Rn,并且满足以下条件。

(2)Ri是一个连通域,i=1,2,…,n。

(3)Ri∩Rj=∅,i≠j。

(4)P(Ri)=True,i=1,2,…,n。

(5)P(Ri∪Rj)=False,i≠j。

通过对以上区域生长法原理分析,对已经灰度化的非结构化道路图像进行区域生长初分割。大多数情况下,车前就是道路区域且区域很大,然后道路区域与道路两旁区域的灰度图像有一定的灰度值差异,来选取种子点和生长准则。

非结构化道路区域生长法实现过程如下。

步骤1将道路图像中间靠下边缘第一个像素点来设置为种子点,设该像素为(x0,y0)。

步骤2针对于道路图像两边不可能都有背景像素,将图像左右两边中间的4邻域的像素的灰度均值与种子点的灰度差记作τ,作为生长准则。

步骤3以(x0,y0)像素点为中心对比其8领域像素(x,y),如果这些新像素满足生长准则,将(x,y)与(x0,y0)聚合在一个区域,然后将(x,y)放入堆栈。

步骤4在堆栈中重新选择一个新的像素作为(x0,y0),返回到步骤3。

步骤5如果堆栈中没有任何像素时,即为空,回到步骤1。

步骤6重复步骤1~步骤4直到灰度道路图像像素点都被分到某个区域时,生长算法结束。

如图1所示为非结构化道路的灰度图,如图2所示,可以看出道路转弯处受强光影响而导致分割时边缘信息的丢失,这也是很多分割算法不可避免会出现的情况。

图1 非结构化道路灰度图Fig.1 Unstructured road gray map

图2 区域生长初分割图Fig.2 Initial segmentation map of regional growth

为了解决以上问题,可以利用边缘检测出来的图像边缘信息来修正基于区域生长法的道路分割图像,来重新划分道路可行驶区域。

2 边缘信息重新划分道路可行驶区域

2.1 基于小波变换的道路边缘提取

小波变换[10]作为多尺度理论的代表,并且在频域和时域都具有良好性能,能够将图像的低频信息和高频细节分离出来,方便根据实际目的对其进行处理和利用,最后通过图像的重构获取理想的图像。

将小波变换的模极大值用于边缘检测的原因是,梯度极大值的方向是梯度向量的方向,而沿梯度向量方向的小波系数模的极大值点是图像的边缘点。

基于小波变换极大模值边缘检测步骤如下。

步骤1首先对原始道路图像进行图像对比度增强,然后进行保持边缘、降噪平滑的双边滤波(Bilateral filter)处理得到图像f(x,y)。

步骤2选取二维高斯函数为二维平滑函数σ(x,y),且满足3个限制条件。

(1)

步骤3对选取的二维高斯函数分别沿着x,y方向求导获得小波函数,构造小波函数如下。

(2)

(3)

步骤4对道路图像f(x,y)的行和列分别与式(2)和式(3)进行卷积操作,得到尺度s的二维小波变换的两个分量为Gx和Gy。

Gx=f(x,y)ψ1s

(4)

Gy=f(x,y)ψ2s

(5)

步骤5对式(4)和式(5)按照式(6)和式(7)进行计算,求得梯度矢量的模和辐角。

(6)

(7)

步骤6使像素点的梯度方向分为:水平方向(0°或180°)、垂直方向(90°或270°)、正对角线方向(45°或225°)、负对角线方向(135°或315°)4个方向,通过式(6)与式(7)算出与该像素点梯度辐角大小最接近的方向。

步骤7对每一个像素点遍历,比较其8邻域梯度,计算该像素梯度值在“梯度辐角大小最接近的方向”上是否为极大值,否则将像素点的梯度置为零。

步骤8记录梯度极大值中的最大值,然后做归一化操作,当每个像素的梯度值大于设定的阈值时,将认为是图像边缘。

利用小波变换的极大模值分别对经过双边滤波处理和未经过滤波处理的非结构化道路图像进行边缘检测,其对比效果如图3所示。从在原始道路图像经过对比度增强和Bilateral filter滤波处理后的小波变换极大模值边缘检测结果中可以看出,道路区域边缘清晰且道路区域内和背景的小纹理被滤除,得到了不错的边缘检测结果。

图3 双边滤波后小波变换边缘检测Fig.3 Wavelet transform edge detection after bilateral filtering

2.2 边缘信息重新划分道路可行驶区域

通过图2区域生长初分割图像可以看出,由于受局部强光的影响,其前景道路图像的边界部分与背景区域相互粘连,没有准确地检测整个道路边缘,使得无法提取完整的道路可行驶区域。

由于区域生长分割的图像与小波变换边缘的图像都为二值化图像,对区域生长分割图像的道路区域的保留,对丢失的道路边缘信息由小波变换检测出边缘线去重新修正。具体操作如下:重新设置一个与道路图像大小相同全黑的目标图像,如果区域生长分割图像与小波变换边缘图像对应坐标点取值相同时,则目标图像对应坐标点取值为0;取值不同时,则目标图像对应的坐标点取值为1,也就是对两幅图像做异或逻辑运算(半加运算)。

根据对上面道路边缘修正过程的分析,对两幅图像进行异或逻辑运算,目标图像的取值应该满足以下条件。

dst(x,y)=F(x,y)⊕W(x,y)

{(x,y)|0

(8)

式(8)中:cols为图像宽度;rows为图像的高度;(x,y)为图像的坐标点;F(x,y)为区域生长初分割图像;W(x,y)为小波变换边缘检测图像;dst(x,y)为由F(x,y)和W(x,y)由异或逻辑运算获得的目标图像。边缘修正的目标图像如图4所示。

图4 边缘修正后的目标图像Fig.4 Target image after edge correction

通过图4可以看出,受局部强光影响而导致边缘丢失的区域生长分割图像(图2)由小波边缘检测图像(图3)对其边缘信息修正后,获得了一个边缘完整的道路区域。

2.3 道路区域的提取

由于车载前置摄像头拍摄的道路图片中,道路区域为整个图像的中间且最大连通域,对边缘修正过的二值化道路图像进行腐蚀、膨胀等形态学操作,通过轮廓检测出二值化道路图像里空洞的轮廓,再利用轮廓面积阈值消去除了其他所有空洞,最后得到道路区域的二值化图像,如图5所示。

图5 道路二值化图像Fig.5 Road binary image

2.4 道路边界点提取

通过图5可以看出道路的边界分为左右两边,假如将左右两边边界点用一条曲线来拟合非常难得到准确的道路边界线,所以需要把左右边界点分别提取出来。提取过程如下:首先对道路二值化图像(图5)进行Canny算子边缘检测[11];然后通过每隔5行遍历图5像素点,记录像素为1的图像坐标点,当记录的图像坐标点在图像左半边时,把该像素点记作道路左边界点,在图像右半边时,则记作道路要边界点,记录结果如图6所示。

图6 道路左右边界点Fig.6 Left and right boundary points of the road

3 道路建模及边界拟合

3.1 道路模型的选取

道路模型适当的选取对于非结构化道路检测有着重要的影响,适合道路的模型可以进一步增强拟合的效果,反之则使得道路检测不准确。

现如今,常见的道路模型有直线模型、二次曲线模型、三次曲线模型、样条曲线模型等[12]。直线模型较为简单,实时性好,但是对于弯道拟合效果差。二次曲线模型的计算量也不大,虽然能够拟合弯道,但是对于曲率大的弯道拟合精度不高。三次曲线模型能够较好拟合曲率变换快、曲率较大的道路,但是也随之伴随计算量增大。

考虑到非结构化道路情况复杂且结构多变,选取三次曲线模型进行道路拟合,三次曲线模型为

y=ax3+bx2+cx+d

(9)

式(9)中:a、b、c、d为系数。

3.2 RANSAC拟合道路边界

随机抽样一致性(random sample consensus,RANSAC)算法[13],数学模型的参数以迭代方式从包含异常值的一组观测数据中估计。在随机抽样一致性算法中假设正确数据与异常数据(噪声点)组成一组数据,正确数据记为内点,异常数据记为外点。外点是不能适应模型的数据,而存在可以估计参数的模型能够解释或者适用于内点。

最小二乘法在拟合直或曲线也有较好的效果,但最小二乘法的计算方法确定其拟合模型应“考虑”所有数据点。与随机采样一致性算法不同,当数据点中存在远处噪声点时,拟合结果会有很大的偏差。

最小二乘曲线拟合和随机抽样一致性算法曲线拟合对比结果如图7所示,其中图7(a)是对道路边界提取的一组样本点,在图7(b)中是随机抽样一致性算法拟合样本点,图7(c)是最小二乘法拟合样本点。由图7的对比实验表明,最小二乘法曲线拟合在噪声点的影响下对道路边界拟合效果不佳。非结构化道路由于路况复杂多变,道路边界点可能存在多个噪声点,而随机抽样一致性算法能够去除大多数噪声点(外点),因此选用RANSAC算法拟合道路边界。

图7 最小二乘曲线拟合与RANSAC曲线拟合比较结果Fig.7 Comparison results of least square curve fitting and RANSAC curve fitting

随机抽样一致性算法拟合道路边界步骤如下。

步骤1从道路边界点中随机挑选4个数据点,将这4点记作“内点”。

步骤2根据这4个“内点”确定三次曲线模型的4个参数。

步骤3将所有边界点与上述已经确定的模型做比较,当某边界点与模型距离小于阈值时,将该点记作“内点”,否则记作“外点”。

步骤4计算“内点”与“外点”的比率。

步骤5在一定的迭代次数下,循环执行步骤1~步骤4,最后确认一个模型能够最大化“内点”与“外点”的比率。

步骤6从最终模型生成道路边界拟合曲线。

拟合结果如图8和图9所示。

图8 RANSAC拟合道路左边界点Fig.8 RANSAC fitting the left boundary point of the road

图9 RANSAC拟合道路边界结果Fig.9 RANSAC fitting road boundary results

4 道路检测实验及分析

通过收集约100张多种类型的复杂道路图像来做道路检测实验,320×240的图像尺寸,实验环境为:Intel(R) Core(TM) i5-12500,CPU 3.30GHz, 16G内存,系统为Windows11家庭中文版,本文方法代码运用C++和Opencv4.5进行编写,算法仿真在Visual Studio 2019 中实现。

为了检验本文方法对大多数道路情况的适用性,分别对水泥道路、沙砾道路、沙漠道路及夜间道路进行多种阈值分割方法与所提的基于改进区域生长与小波变换结合的方法对比,各算法效果如图10所示。

图10 本文方法与各方法效果对比Fig.10 The results of this method compared with those of each method

在图10各方法对比图中,第一行分别是沙砾道路、水泥道路、沙漠道路、夜间道路的原始灰度图像。第二行是分别对这3种道路进行大津法的阈值分割,可以看出道路在受强光的影响下,道路边缘信息的丢失,并且道路边缘受道路中沙砾或者其他物体影响情况下,道路区域分割不准确。第三行是分别对这3种道路进行一维最大熵的阈值分割,与大津法分割的缺点较为相同,并且道路区域与背景区域相互粘连。第四行是本文方法,首先利用改进的区域生长法进行道路初分割,再使用小波变换极大模值边缘检测,对初分割图像进行边缘误检来补足边缘信息。可以看出受强光影响丢失的道路边缘信息得到了修正并且边缘线将道路区域与背景区域分割开,从而得到效果更好的道路可行驶区域。第五行是进行形态学处理、轮廓面积阈值消去后的二值化道路图像。最后一行则是通过对3种不同路况的非结构化道路的建模后,利用随机抽样一致性算法拟合道路边界线得出的非结构化道路可行驶区域。

5 结论

提出一种在多种复杂路况下具有一定准确性非结构化道路检测方法。通过对道路图像预处理,在道路图像初分割中使用改进的区域生长法,大致分割出道路区域;使用小波变换极大模值的边缘检测对初分割图像进行边缘信息的修正;再利用形态学处理、轮廓面积消去法得到只有道路区域的二值化图像;最后选取三次曲线模型利用RANSAC算法拟合道路边界点。道路检测实验表明,本文方法能有效检测边缘信息明显的复杂非结构化道路。

猜你喜欢
边界点结构化边缘
道路空间特征与测量距离相结合的LiDAR道路边界点提取算法
层次化点云边界快速精确提取方法研究
促进知识结构化的主题式复习初探
结构化面试方法在研究生复试中的应用
一张图看懂边缘计算
基于图模型的通用半结构化数据检索
一种去除挂网图像锯齿的方法及装置
基于软信息的结构化转换
解特殊凸二次半定规划的边界点法
在边缘寻找自我