基于路面坑洞检测的智能汽车主动避障控制
2022-09-05袁朝春王俊娴何友国JIEShen翁烁丰
袁朝春,王俊娴,何友国,JIE Shen,陈 龙,翁烁丰
(1.江苏大学 汽车工程研究院,江苏 镇江 212013;2.密西根大学迪尔本分校 计算机科学与信息科学系,密西根州 迪尔本MI 48128)
随着汽车保有量的增加,道路承担的运输压力越来越大.目前,由于路面基础设施不够完善,产生了大量的路面病害,其中较常见影响行车安全的是路面坑洞.路面坑洞会对行驶过程中的车辆产生频繁颠簸,加剧车辆零部件间的磨损,大幅度降低车辆的使用年限,同时影响人们乘坐舒适性和运输货物的完整性.因此,路面坑洞引发的车辆行驶安全问题是一项亟需解决的技术难题[1].主动避障控制系统可以根据实际路况与自车的信息判断车辆行驶状况的安全程度,在出现危险情况时,系统自动采取干预措施控制汽车,减少事故的发生[2].现有的主动避障控制算法大多只考虑车辆、行人等障碍物的碰撞问题,缺乏对路面坑洞的避障研究.
目前坑洞检测方法主要包含接触式和非接触式2种.接触式检测方法大多运用加速度等传感器获取车辆过坑的振动数据,通过设定遇到坑洞时的加速度阈值来判断坑洞的存在,然后分析振动波形,建立振动模型来推测坑洞的具体属性,但存在误检和漏检的可能[3].非接触式检测主要有三维重建和机器视觉2种方法,三维重建法包括立体视觉和激光射线法[4],其中立体视觉利用双目相机在2个不同方向夹角形成视差的原理,进行空间三维坐标的计算,得到坑洞的深度,但受图像匹配精度的影响,该方法很难适应实际的路面环境检测.而激光射线法利用坑洞处的激光变形并辅以数学几何模型计算出坑洞的具体属性,但建模计算量大且耗时长.机器视觉能够通过图像处理技术检测路面坑洞,但大多仅检测坑洞的存在与否,很少有研究坑洞的具体属性.
针对上述研究方法的不足,笔者提出一种基于多传感器融合的路面坑洞特征提取方法,通过仿真试验得到满足人体舒适性要求的过坑极限车速.在兼顾安全性和舒适性的同时,设计能够控制车辆安全通过前方坑洞的主动避障控制算法,以期减少坑洞路面造成的事故发生率.
1 路面坑洞特征提取
路面坑洞是道路局部破损中常出现的病害形式,路面坑洞的轮廓、面积和深度信息对车辆通行的安全性和舒适性有重要影响.基于多传感器融合的方法对路面坑洞的主要特征进行提取,包括基于视觉图像的路面坑洞轮廓、面积计算和基于单点测距激光雷达的路面坑洞深度计算.路面坑洞特征值计算流程如图1所示.
图1 路面坑洞特征值计算流程图
1.1 图像预处理
在相机采集路面坑洞图像的过程中,由于光照、设备等因素的影响,会产生大量噪声,影响坑洞轮廓的精确提取.为解决该问题,对采集到的图像进行预处理,包括图像灰度化与图像增强等操作.
CCD相机采集到的图片为RGB三通道彩色图像,为了降低无关信息的干扰,提高图像处理的效率,按照人眼对红、绿、蓝三原色的敏感程度不同,赋予R、G、B这3个分量不同的权值进行加权平均,得到较合理的灰度图像,表达式如下:
Q(i,j)=0.299R(i,j)+0.578G(i,j)+
0.114B(i,j),
(1)
式中:(i,j)为像素点的坐标;Q(i,j)为灰度化后图像的像素值.
在采集图像的过程中,光照、传感器灵敏度等的不均匀都会导致图像细节信息缺失,呈现局部较暗或较亮的情况.在Retinex理论基础上,使用MSR多尺度算法,改善坑洞图像暗区域内的光照不均现象,表达式为
s(i,j)=l(i,j)r(i,j),
(2)
式中:s(i,j)为给定图像;l(i,j)为入射光照图像;r(i,j)为反射光照图像.
对式(2)两边取对数可得
logs(i,j)=log(l(i,j)r(i,j))=
logl(i,j)+logr(i,j).
(3)
令
(4)
则
S(i,j)=L(i,j)+R(i,j).
(5)
将高斯函数F(i,j)与输入图像卷积运算后可以估算出原图像的亮度分量,计算公式如下:
l(i,j)=F(i,j)*s(i,j),
(6)
(7)
式中:*为卷积运算;λ为量纲一化系数;σ为高斯函数的尺度参数.
对不同尺度进行加权求和,即
log(Fn(i,j)*S(i,j))],
(8)
式中:n为高斯核个数,一般取n=3个;W1=W2=W3=1/3.
由式(8)得到的图像增强效果如图2所示.
图2 图像增强效果对比图
1.2 基于阈值分割的路面坑洞轮廓提取
针对预处理后图像的灰度直方图分布特点,首先利用calcHist函数统计图像的通道索引.双波峰灰度直方图如图3所示,其中:tp为灰度值;Q为灰度值所包含的像素数.当图像中的目标物体与背景灰度差异较大时,像素灰度会集中在2处,表现为双波峰特性[5].
图3 双波峰灰度直方图
在图3中绘制直线l,其方程为
(9)
式中:m为相机采集图像的像素宽度;n为相机采集图像的像素高度.
直线l表示整张图像的像素均值,必然会与直方图的2个波峰相交产生4个交点,计算出这4个交点的灰度值即可确定2个波峰所在的灰度范围.
在已知双波峰灰度范围的基础上利用minMaxLoc函数分别计算左侧和右侧波峰范围内的像素最大值及其灰度位置.为了将路面坑洞从图像中提取出来,需要确定图像的分割阈值.首先计算出图像的初始分割阈值T0,即
(10)
将图像分割出目标和背景2部分,然后求出目标和背景部分的灰度均值tlm和trm,计算公式如下:
(11)
(12)
式中:Q(i,j)为图像任意一点的灰度;F(i,j)为像素点(i,j)的像素数;Tk为k时刻的阈值.
新阈值Tk+1的表达式为
(13)
若满足等式Tk=Tk+1,则得到图像的最佳分割阈值Tk,阈值分割后的二值化图像如图4c所示.设定坑洞区域内所有像素点的灰度值为255(白色),外部像素点灰度值为0(黑色).该算法计算简单、易于实现,能够较好地将坑洞从路面背景中提取出来.在采集和传输图像的过程中,CCD相机的抖动、外界的电磁波干扰等都会导致图像噪声出现,使图像检测目标边缘模糊化,从而丢失很多细节,如图4c所示.使用中值滤波能够有效清除图像中随机出现的椒盐噪声,在保障清晰度的同时保护图像边缘信息,图像质量较好,效果如图4d所示.
图4 路面坑洞边缘提取
中值滤波的基本思想如下:定义一个长度为L的窗口,满足关系式L=2N+1,N取正整数.假设窗口内的信号为fi-n, ...,fi-1,fi,fi+1, ...,fi+n,将该窗口内的信号值按从小到大顺序排序,取序列的中值fi代替指定点(一般为原窗口中心点)的灰度值,其数学表达式为
yi=med{fi-n,...,fi-1,fi,fi+1,...,fi+n}.
(14)
1.3 基于边界跟踪的路面坑洞面积计算
在获取路面坑洞的轮廓特征后,需要对坑洞边界的像素点进行编码.链码是指用曲线起始点坐标和边界点方向代码来表述曲线或边界的方法[6].在确定线段起点后按逆时针方向编码,用8方向链码中的数字代表线条走向,如图5b所示,曲线的链码为57670013234.
图5 链码示意图
基于链码法可以实现路面坑洞的边缘跟踪,然后计算出路面坑洞的面积,具体流程如图6所示.
图6 路面坑洞面积算法流程图
首先对二值图像边缘按从小到大的顺序逆时针标记,直至回到起始点,结尾处的最大编号即为边界像素总数A1;然后通过定义前位矢量fv和后位矢量bv将坑洞边界点转化为矢量形式,前位矢量表示上一边界点N-1到当前边界点N的矢量链路,后位矢量表示当前边界点N到下一边界点N+1的矢量链路,矢量方向参照8方向链码标记,链码中心像素点为当前边界点.为简化图像处理的计算量,对坑洞边界点按照由上到下、由左到右的顺序重新整理排列.接着统计坑洞边界内像素总数A2,通过计算相邻边界点之间的像素个数总和实现,公式为Ni+1-Ni-1,其中:Ni为当前边界点的列值;Ni+1为下一个边界点的列值.参照文献[7],若满足:
fv=5及bv≠8,或fv<3及|fv-bv|>4,
或fv>5及|fv-bv|<4,
(15)
则定义当前边界点为边界内点.最终得到路面坑洞的面积为
(16)
式中:u为像素当量.
1.4 路面坑洞深度计算
激光雷达技术可以快速、精确地获取被测目标的深度数据,尤其对于地面下的障碍物,仅依靠摄像头采集到的二维图像很难获取路面坑洞的深度信息[8].因此,在CCD相机采集路面坑洞图像的基础上结合单点测距激光雷达组成一个完整的采集系统.
激光雷达测量路面坑洞的几何模型如图7所示,单点测距激光雷达固定在车辆保险杠上的点O处,俯仰角为β,O1和O2是固定点O在车辆不同行驶阶段的相同位置点,则O1O2为水平直线,四边形O1O2AD为平行四边形,O1D=O2A.当汽车行驶在平整路面上时,单点测距激光雷达的激光点到达路面的距离为定值l0,当平整路面上出现坑洞时,激光点到达坑洞的距离突然变大,在坑洞最深处时的距离为lmax,l0和lmax的值由激光雷达数据采集获得.在直角△ABC中,AB=O2B-O1D=lmax-l0,则路面坑洞深度为
图7 坑洞深度测量几何模型图
h=AC=ABcosβ=(lmax-l0)cosβ.
(17)
2 过坑极限车速分析
在Adams软件中建立不同面积、深度的坑洞模型,设定车辆按照不同速度匀速通过同一路面坑洞,并以加权加速度均方根作为评价车辆受到振动冲击的指标,以此得到满足要求的过坑极限车速[9].
2.1 整车及坑洞模型建立
利用Adams中自带的虚拟样机模型MDI_Demo_Vehicle,建立整车动力学模型.参考文献[10],将路面坑洞按表1进行分类.加权加速度均方根值与乘员主观感觉之间的关系如表2所示.
表1 坑洞破损大小分类
表2 加权加速度均方根值与乘员主观感觉之间的关系
(18)
式中:Ga(f)为加速度功率谱密度;f为频率;W(f)为垂向频率加权函数.
(19)
2.2 仿真分析
在路面建模器中修改已有的路谱文件3d_road_obstacle_pothole,以路面单侧凹坑为研究对象,设定前轮作为探测轮,将坑洞形状简化为正方形.坑洞面积的梯度为0~3 m2(每0.5 m2为一个梯度),坑洞深度的梯度为0~0.10 m(每0.03 m为一个梯度),设定车辆以速度v分别为10、20、30、40、50、60 km·h-1匀速通过坑洞,仿真时间为5 s,步长为500步,仿真工况如图8所示.
图8 路面坑洞仿真工况
为了研究路面坑洞面积对行车舒适性的影响,设置面积为0.5 m2,深度为0.03 m的路面坑洞,得到垂向加速度az随时间t的变化曲线如图9所示.
图9 垂向加速度时域曲线
若车辆以最大垂向振动所对应的速度通过路面坑洞,得到的垂向加速度小于驾驶员舒适性阈值,说明车辆以任何速度通过该路面坑洞均可保证乘员舒适性,由此得出结论:在保证舒适度的前提下,车辆可以按照任何速度通过面积小于0.5 m2且深度小于0.03 m的坑洞.
保持其他参数不变,修改路面坑洞面积为1.0 m2,得到不同速度下车辆的垂向加权加速度均方根值,如表3所示,其中g为重力加速度.
表3 不同速度下垂向加权加速度均方根值
为了研究路面坑洞深度对行车舒适性的影响,设置路面坑洞面积S=1.0 m2,修改路面坑洞深度为0.06、0.08、0.10 m,其他参数保持不变,得到不同坑洞深度的垂向加速度变化曲线如图10所示.
图10 不同坑洞深度的垂向加速度变化曲线
从图10可以看出:路面坑洞面积不变,当车速v≥40 km·h-1,路面坑洞深度h分别为0.06、0.08、0.10 m时,车辆经过路面坑洞的垂向振动加速度曲线完全重合.车速v=10 km·h-1工况下的垂向加速度绝对值最大值大于v=60 km·h-1时的数值,即车速越快,车辆通过路面坑洞时的垂向振动影响反而越小.
对面积为0~3.0 m2,深度为0~0.10 m的路面坑洞进行多次仿真试验,得到能够满足人体舒适性要求的过坑极限车速如表4所示.
表4 过坑极限车速表
3 车辆主动避障算法设计
汽车主动避障系统能够提高车辆通过坑洞路面的行驶安全性和乘坐舒适性[12].基于模糊控制理论和车辆动力学特性搭建Carsim/Simulink联合仿真模型.
3.1 安全距离模型
驾驶员为规避障碍物所需要的减速度可以通过安全距离模型进行表征.目前安全距离模型的研究大多集中在可测障碍物的碰撞规避,如车辆、行人等,缺乏针对路面坑洞导致的事故风险规避研究.根据自车当前车速v和过坑极限车速vl,建立坑洞安全距离模型为
(20)
式中:d为车辆到前方坑洞的安全距离;amax为最大制动加速度,取-8.5 m·s-2.
3.2 基于模糊控制算法的车辆避障控制
面对复杂多变的车辆行驶环境,很难用具体的数学模型描述被控系统的状态变化.而模糊控制可以将驾驶员的相关经验作为控制规则的一部分融合到控制算法中,解决非线性和复杂系统的控制问题.基于模糊控制器实现对车辆减速度的合理控制,可以提高主动避障系统的安全性和舒适性.设定车辆与路面坑洞的实际距离s和安全距离d的距离差值es为模糊控制器的第1个输入量,自车速度v与过坑极限车速vl的速度差值ev为模糊控制器的第2个输入量,系统输出量为自车的加速度a,即
(21)
考虑到汽车在普通路面上行驶的速度一般不超过80 km·h-1,设定ev的论域为[-80,80]km·h-1.参考相机原理,普通相机最远能够拍摄的距离一般为焦距的2.4倍,根据本研究所选相机的焦距25 mm可以得到es的论域为[0,60]m.输出量a的论域设定为[-10,10]m·s-2.将输入和输出采用7种不同的模糊语言来表示,分别为{负大(NB)、负中(NM)、负小(NS)、0(ZO)、正小(PS)、正中(PM)、正大(PB)},其隶属度函数及模糊规则如图11所示.其中:f(ev)、f(es)、f(a)分别为ev、es、a的隶属度函数.
图11 输入输出量的隶属度函数及模糊规则
3.3 仿真验证分析
为了验证算法的有效性,设置3种不同的路面坑洞条件,利用Matlab与Carsim对车辆的行驶状态进行联合仿真,设置路面附着系数为0.85,仿真时间为5 s.
1)工况1,车辆以60 km·h-1的初速度在道路上行驶,距车辆起始位置40 m处有一面积为2.7 m2,深度为0.03 m的路面坑洞,所设计的主动避障算法控制车辆后得到车速、加速度以及车辆与前方路面坑洞距离变化曲线如图12所示.
图12 工况1下车速、加速度及车辆与前方路面坑洞距离的变化曲线
图13 工况2下车速、加速度及车辆与前方路面坑洞距离的变化曲线
图14 工况3下车速、加速度及车辆与前方路面坑洞距离的变化曲线
4 结 论
针对车辆行驶的路面环境特征,利用多传感器融合方法对车辆前方的坑洞轮廓、面积及深度进行了检测,依据人体舒适性评价指标确立了不同面积、深度的路面坑洞对应的过坑极限车速,建立了基于路面坑洞检测的主动避障控制算法,并通过仿真试验验证了算法的有效性,在保证车辆安全通过坑洞路面的同时兼顾人员乘坐的舒适性要求.