基于车道信息融合的车辆行为识别

2020-03-13 11:31宋士奇
液晶与显示 2020年1期
关键词:样条像素点车道

宋士奇,朴 燕,王 健

(长春理工大学 电子信息工程学院,吉林 长春 130022)

1 引 言

智能交通系统作为国家信息化建设的重要组成部分,在城市道路智能监控、高速公路智能调度及车辆高级辅助驾驶系统等方面发挥着重要作用。其中车辆的行为识别作为智能交通系统的关键技术,在车辆的自动驾驶和辅助驾驶领域中受到了广泛关注[1]。车辆的行为信息对于保障驾驶员的人身安全、避免交通事故的发生具有重要的参考价值和实际意义。

获取车辆行为信息数据的方式总体上包括感知技术探测和视频图像处理两大类[2]。感知技术探测主要利用传感器探测车辆周围的环境,根据道路交通两侧和监控上方的探测传感装置获取所需参数,综合判断车辆的行为状态,此类方法目前广泛应用于智能汽车行业之中。视频图像因其包含丰富的数据,通过图像处理手段对监控摄像头和行车记录仪获取的视频进行分析,已成为获取车辆行为信息的主要方法。相比于感知技术探测,视频图像处理因其具有更好的鲁棒性和实时性,已经成为研究车辆行为识别的热点方向。目前在车辆行为识别领域,基于图像处理算法的研究已取得阶段性的成果。Kasper等[3]运用贝叶斯网络的基本理论在结构化道路场景中识别车辆的行为。Gadepally等[4]在综合考虑车辆动力学模型的基础上,采用隐马尔可夫模型描述车辆的行为。Song等[5]使用改进的Moravec算法提取特征点,构建车辆特征点的运动轨迹曲线判断车辆的行为状态,在复杂天气条件下具有较高的鲁棒性。潘登等[6]提出了车辆行为的时空演化模型,为复杂场景下车辆的行为建模和车辆的自适应控制奠定了基础。黄鑫等[7]在车辆检测和车辆跟踪的基础上,采用特征熵和特征标量两个参数到聚类中心的欧式距离,判断车辆的行为特征。但是,目前车辆行为识别算法处理的视频很多都是基于道路监控高点固定获得的,因此背景没有变化,很难应用于背景变化的车辆自动驾驶领域。并且基于轨迹特征的车辆行为判断很大程度上取决于车辆跟踪的鲁棒性,轨迹聚类的过程导致车辆行为识别实时性差。

本文针对车辆行为识别存在的问题,提出一种基于车道信息融合的车辆行为识别算法,应用于车辆的辅助驾驶领域。主要表现在:(1)在车道检测过程中提出一种基于改进Robinson与LSD的模型,实现对不同场景下车道的高效检测;(2)根据车道的检测结果,提出一种基于滑动窗口的三次样条数学模型,实现对车道的拟合;(3)通过车道的参数信息分析车辆的运动状态,结合车辆位置综合判断车辆的偏离状态。

2 算法原理

2.1 车道检测

车道检测是车辆辅助驾驶的基础,并且在车辆的行为识别中发挥着重要作用,但光照条件、车道路面破损及路面阴影干扰等因素往往影响着车道检测的效率和准确性。因此本文提出一种基于改进Robinson与LSD的模型实现车道的检测。算法首先将获取的视频帧图像进行感兴趣区域分割、逆透视变换及色彩空间转换等图像的预处理,然后利用改进的Robinson算子建立插值公式求取最佳梯度幅值实现车道边缘的提取,最后通过效率更高的LSD算法实现车道的检测。

2.1.1 图像预处理

通过行车记录仪或者车载摄像机获得的车道图像通常包含天空、车道两旁的树木等一些环境信息,若直接对采集到的图像进行处理,不仅降低了车道检测的效率,而且无关信息的干扰也影响着车道检测的准确性。通常在结构化道路中车道信息位于图像的中下部,因此本文将图像的中下部设定为感兴趣区域,即图像的预处理部分。

相机的图像采集过程可以看作世界坐标系与图像坐标系之间的映射,因此获得的行车图像具有近大远小的透视效果。通过传统的逆透视变换可以有效地矫正图像,但需要借助相机位置参数、朝向参数等获取逆透视变换矩阵,计算过程复杂。本文应用一种简单的逆透视规则,即从感兴趣区域中采样4个位置点,在俯视图中估算4个点的位置,直接计算逆透视变换矩阵。设(x,y)为感兴趣区域中的坐标点,俯视图中相应的坐标点为(u,v),则对应的映射过程为式(1):

QW=HIWPI,

(1)

式中有:

PI=[x,y,1]T,

(2)

QW=[uλ,vλ,λ]T,

(3)

其中:λ为辅助参数,HIW为逆透视变换矩阵。通过4组对应的坐标点,即可对逆透视变换矩阵中的未知参数进行求解,通过不断调节两幅图中对应点的坐标,获取最佳映射矩阵,计算效率高、实用性强。

目前基于RGB色彩模型的车道检测算法,对白天光线均匀的场景有较强的适用性,但在低照度环境中效果较差,而采用YCbCr模型可以对图像的亮度和色度进行分离,能够有效避免光照对车道检测的影响。本文在逆透视变换处理的基础上通过色彩转化模型式(4),实现低照度环境中车道的检测。

(4)

2.1.2 改进Robinson车道边缘提取

运用Canny算子、Sobel算子、Robinson算子等进行图像的边缘提取是目前的常用方法[8],在车道检测的过程中同样也被广泛应用。其中Robinson算子由8个理想的边缘模板组成,对噪声具有抑制的作用,算子的输出值通过与被检测区域最为相近的模板给出,使得图像边缘得到增强。但也存在着计算复杂、定位不准确等问题,本文对Robinson边缘提取过程进行改进,使其在车道检测的过程中效率更高。

利用边缘模板与图像进行卷积运算时,由于中心像素点到各领域点的距离差距,因此引入权重因子进行加权卷积运算。定义模板矩阵和图像灰度值矩阵分别为

(5)

(6)

(7)

其中Gθ(i,j)为坐标(i,j)处θ方向的梯度幅值,w为权重因子。通过式(8)计算坐标(i,j)的梯度幅值G(i,j)

G(i,j)=max(|Gθ(i,j)|),

(8)

定义最佳梯度区间α为梯度幅值G(i,j)在坐标(i,j)处方向角θ±22.5°范围。

在实际图像的计算过程中通常只能得到中心像素点A其8个邻域的梯度幅值,而中心像素点的最佳梯度幅值可能在8个邻域的临近区间,因此在定义的最佳梯度区间α内求取最佳梯度幅值。若最佳梯度方向角为β,如图1所示,为了得到最佳梯度幅值GrabTmp1引入式(9)进行插值运算:

GrabTmp1=2·GrabA1·GrabA2,

(9)

其中:GrabA1和GrabA2在满足GrabA1+GrabA2=1的条件下,分别为式(10)和式(11);

(10)

(11)

图1 最佳梯度方向Fig.1 Best gradient direction

对得到的最佳梯度幅值GrabTmp1进行非极大值抑制,以实现对车道边缘的细化作用。

2.1.3 基于LSD车道检测

Hough变换是进行车道检测的重要步骤,但也存在着检测效果不稳定的现象,而LSD(Line Segment Detector)算法[9]具有检测速率快、鲁棒性强的特点。因此,本文将经过车道边缘提取的图像利用准确性和效率更高的LSD算法实现车道的检测。

图2 line-support区域生成图。(a)原图像;(b)level-line区域;(c)line-support区域。Fig.2 Line-support region generation diagram. (a) Original image; (b) Level-line region; (c) Line-support region.

LSD直线检测算法主要参考梯度大小和方向两个因素计算局部直线轮廓,在线性时间内能够获得亚像素级精度的检测结果。算法首先根据每个像素点的level-line角度生成level-line区域,再利用种子生长法寻找角度一致line-support区域,如图2所示,通过最小外接矩形对line-support区域进行拟合,其中该区域的主轴方向由矩形的主轴方向确定;然后统计最小外接矩形内的像素点个数,即level-line角度与主轴角度之差在容错区间2τ范围内的像素点个数;最后计算基于获取数据下的最小外接矩形的NFA(Number of False Alarm)值,并判断NFA的值是否满足阈值条件,由此决定最小外接矩形是否为直线。LSD直线检测过程中的种子生长法定义为:在未搜索的区域内,把像素点中梯度幅值最大的点确定为种子点,并将该像素点标定为已搜索,搜索该像素点周围未搜索过并与该像素点的角度误差值在阈值范围内的邻域点,然后以新点作为起点并进行递归搜索。LSD算法在检测的过程中由于不需要调节参数,因此能够满足几何图像的快速变换。

2.2 车道拟合

车道拟合作为车道检测的后续步骤,通过对检测的车道特征点进行拟合,可以获取车道的参数信息。本文提出一种基于滑动窗口的三次样条数学模型,实现对车道的拟合。

2.2.1 基于滑动窗口的车道特征点识别

按照x轴方向将车道检测的结果划分为左右两个部分进行区域搜索,分别将两个部分在x轴方向做直方图统计,得到像素峰值分布图如图3所示,将最大峰值的位置确定为车道线搜索的基点。设置搜索窗口的宽度和高度参数,窗口宽度设定为车道宽度的2倍,以窗口宽度的3/4定义窗口的高度。以基点中心作为当前搜索的起点进行网格化纵向搜寻,对每个搜寻窗口分别进行x轴方向和y轴方向直方图统计,获取搜索窗口内非零像素的个数并滤除非零像素个数小于阈值的窗口,计算剩余窗口内非零像素的坐标均值作为当前搜索窗口的中心点,并将当前搜索窗口的中心点作为下一个备选基点。

图3 像素峰值分布图Fig.3 Pixel peak distribution

设第i个基点为Si(xSi,ySi),第i个窗口的中点为Ci(xi,yi),若基点Si和中心点Ci的坐标满足式(12)及式(13):

xi=xSi-h,

(12)

(13)

其中:h为搜索窗口的高度,w为搜索窗口的宽度,yi1为窗口纵向自下而上搜索到第一个白色像素点的纵坐标值,yi2为窗口纵向自上而下搜索到第一个白色像素点的纵坐标值。则将第i个窗口的中点Ci(xi,yi)作为第i+1个基点Si+1(xSi+1,ySi+1),否则将第i+1个基点Si+1(xSi+1,ySi+1)的坐标设定为(xi,ySi),以此进行遍历至窗口到达图像的边缘为止,获取车道特征点的坐标集合。

2.2.2 基于三次样条插值的车道拟合

相比于最小二乘多项式,三次样条曲线的一阶和二阶导数连续且曲线具有连续光滑的特性,因此三次样条插值法构建的车道数学模型更加符合车道的实际情况。

设通过滑动窗口获取的车道特征点坐标集合为{(x1,y1),(x2,y2),...,(xn,yn)},求解三次样条的曲线方程即求解每一段样条曲线的系数,算法首先计算点与点之间的步长hi:

hi=xi+1-xi,(i=1,2,...,n),

(14)

然后将路径特征点坐标和端点条件代入矩阵方程计算,得到二次微分值mi,由此求解每一段的三次样条曲线系数:

ai=yi,

(15)

(16)

(17)

(18)

最后根据求解的曲线系数,得到在每一个子区间xi≤x≤xi+1内,三次样条插值函数的数学模型f(xi)=ai(x-xi)3+bi(x-xi)2+ci(x-xi)+di。依次计算对应区间插值函数的表达式,至遍历所有特征点,得到三次样条插值车道拟合模拟如图4所示。

图4 三次样条插值车道拟合模型Fig.4 Cubic spline interpolation lane fitting model

2.3 车辆行为识别

通过车道的拟合曲线可以获取车道的参数信息,结合车辆相对于车道的位置,能够综合判断车辆的行为状态,本文根据车道的曲率半径和方向两个参数分析车辆的运动状态,结合车辆的中心位置判断车辆的偏离状态。

将经过拟合的车道信息进行预处理,由于在结构化道路中车道线以直线为主,且弯道的曲率在一定的阈值范围内,因此每隔一个子区间选择样条插值函数进行参数计算。设左车道特征点坐标集合为{(Lx1,Ly1),(Lx2,Ly2),...,(Lxn,Lyn)},由此得到子区间内含参数的三次样条插值函数数学公式为:fL(Lxi)=aLi(x-Lxi)3+bLi(x-Lxi)2+cLi(x-Lxi)+dLi,以此计算点(Lxi,Lyi)处的曲率半径RLxi:

(19)

并由式(20)计算得出左车道的曲率半径:

(20)

再利用左车道特征点计算左车道方向DLx:

(21)

同理计算出右车道的曲率半径RRx及右车道方向DRx。利用左右两车道的曲率半径均值得到车道曲率半径Rx,根据左右两车道的方向均值得到车道方向Dx,同时进行车辆方向量化编码如图5所示,将180°的平面左右各67.5°范围编码设定为车辆左转和右转方向,中间45°范围设定为车辆直行方向。综合车道曲率半径Rx和车道方向Dx两个参数,通过式(22)判断车辆的运动转态,其中T为车道曲率半径阈值。

(22)

图5 车辆方向量化编码Fig.5 Vehicle direction quantization coding

设某一运动时刻车辆和车道的位置关系如图6所示,其中(Cxi,Cyi)为车辆的中心位置,(Lxi,Lyi)和(Rxi,Ryi)分别为对应于车辆中心位置(Cxi,Cyi)的车道左右边界坐标,Lwd为车道中心到边界的距离,根据式(23)计算车辆中心位置(Cxi,Cyi)到车道右边界(Rxi,Ryi)的距离Dis:

(23)

将所得的距离Dis与车道中心到右边界的距离Lwd进行比较,若所得的Dis值小于车道中心到右边界的距离Lwd,则判定为车辆较车道中心位置偏右,若所得的Dis值大于车道中心到右边界的距离Lwd,则判定为车辆较车道中心位置偏左,若所得的Dis值与车道中心到右边界的距离Lwd值相等,则车辆位于车道的中心行驶。由此根据式(24)得出车辆的偏离状态。

(24)

图6 车辆车道位置模型Fig.6 Vehicle and lane position model

3 实验结果与分析

3.1 数据集和实验平台

本次实验的数据库选用BDD100K数据集[10]和实验室自建的数据集,其中BDD100K数据集是伯克利大学AI实验室开发的内容最具多样性的驾驶数据集,包括不同天气、场景和时间的真实驾驶场景图像,且图像质量包括高清和模糊两种。本文的自建数据集为车载行车记录仪在长春城市道路中车辆行驶所获得,包括不同场景下的实时道路场景图像和视频。

实验基于Anaconda3平台,通过Python3.6语言实现编程,所有实验均在配置Intel Xeon E5-2678v3 CPU及NVIDIA 1080Ti GPU,操作系统为Windows Server 2016 64 bits,内存为64 GB的实验室服务器终端上完成。

3.2 车道检测结果与分析

车道检测作为车辆行为识别的基础,其检测结果往往影响着车辆行为识别的准确性。目前车道检测的主要方法包括基于Haar特性的图像匹配法[11]、基于贝塞尔曲线模型的检测算法[12]、基于Hough变换[13]以及Hough变换改进的检测算法[14],因此,选择上述文献的方法与文本提出的算法对车道检测的性能进行评估,其中选择的测试数据为BDD100K数据集中白天、傍晚、夜晚和雨天4种场景下各600帧图像。参考文献[15]中的评估指标,引入准确率(Cor)和横向偏移(LD)两个参数指标,其计算公式分别为式(26)和式(27):

(25)

(26)

(27)

其中:Gt为车道标定的真值点,X为算法检测点,W为车道线的宽度,f为视频帧数,δ为误差补偿像素值。同时选择传输速率(TR)、误检率(FDR)和漏检率(MDR)对算法的检测车道效果进行综合评价,误检率为场景中错误识别车道线的帧数占总帧数的百分比,漏检率为车道线漏检的帧数占总帧数的百分比,车道检测算法评估结果见表1。

表1 车道检测算法评估结果Tab.1 Result of lane detection algorithm evaluation

从表1中可以看出,文献[11]通过提取Haar特征能够准确地识别车道信息,但算法计算复杂度高导致传输速率较低;文献[12]采用贝塞尔曲线模型利用车道的连续性特征进行搜索,提高了检测效率和实时性;文献[14]通过改进的Hough变换进行车道检测,相比于文献[13]的Hough变换检测法具有较高的检测效率和检测精度,同时算法在误检率和漏检率上有所降低;本文算法在车道检测的过程中,通过改进的Robinson算子建立插值公式,相比于上述算法处理的数据量较少,速度更快,提高了算法的运行效率,在复杂环境下避免了车道检测过程中的误检和漏检现象,优化了检测过程,提高了算法检测的准确率。不同场景中车道检测识别结果如图7所示,从图中可以看出本文算法在白天、傍晚、夜晚及雨天的不同环境下,车道检测取得了较高的检测精度,为后续车道的行为识别奠定了良好的基础。

图7 车道检测识别结果。(a~d)原始图像;(e~h)车道检测结果。Fig.7 Lane detection recognition results. (a~d) Original image; (e~h) Lane detection result.

3.3 车辆行为识别结果与分析

为了更有效地评估本文车辆行为识别算法的各项性能,分别在BDD100K公开数据集和实验室自建的数据集中进行测试。根据车道检测的结果选取车道检测准确率较高的文献[11]、文献[12]和文献[14]算法分别与本文采用的滑动窗口三次样条车道拟合算法进行组合,同时在本文车道检测算法的基础上引入最小二乘车道拟合算法进行车辆的行为识别,并与本文算法进行对比。

3.3.1 公开数据集结果与分析

车辆的行为识别在BDD100K公开数据集的实验,选取白天、傍晚、夜晚和雨天4种场景下各800帧视频图像进行测试。引入准确率(Cor)、错误率(Err)、传输速率(TR) 3个参数指标对车辆的行为识别算法进行综合评价,其中错误率包括误检率和漏检率,评估结果见表2。

表2 车辆行为识别公开数据集结果Tab.2 Result of vehicle behavior recognition in public data sets

从表2的实验结果可以看出,方法1、方法2和方法3与本文算法相比,由于在车道检测时检测准确率的差异,导致其在车辆行为识别时结果的不同,其中本文算法与其他3种算法相比具有较高的检测精度,并且能够满足实时性的要求。在方法4中车道拟合的方法选取了最小二乘法,与本文的滑动窗口三次样条拟合算法相比数据拟合精度较差,因此本文的车辆行为识别结果的准确率与方法4相比有所提高。

通常车辆的偏离状态是影响车辆行为识别准确率的主要因素之一,因此本文在表2实验结果的基础上对车辆的偏离状态进行进一步分析,选取准确率(Cor)和横向偏移(LD)两个参数对不同车辆行为识别算法进行评价,其中横向偏移(LD)表示标定的真实点与算法检测点之间的差值,车辆的偏离状态行为识别结果见表3。

表3 车辆偏离状态行为识别结果Tab.3 Result of vehicle deviation state behavior recognition

通过表3的实验数据可以得到,本文算法与其他算法相比具有较高检测准确率以及较小的横向偏移,因此在对车辆的行为进行分析时,本文算法可以对车辆的运动状态和车辆中心的偏离状态给出较为准确的信息。

针对不同场景下车辆行为识别的结果略有不同,综合表2和表3的实验数据,选择准确率较高的方法2和方法4以及本文的算法,对车辆的行为识别算法在白天、傍晚、夜晚和雨天4种场景下进行评估,每种场景各800帧视频图像,不同场景下车辆行为识别结果见表4,且在公开数据集中本文算法在不同场景下的识别结果如图8所示。

表4 不同场景车辆行为识别结果Tab.4 Result of vehicle behavior recognition in different scenes

图8 不同场景车辆行为识别结果。(a~b)白天场景;(c)傍晚场景;(d)夜晚场景;(e~f)雨天场景。Fig.8 Vehicle behavior recognition results in different scenes. (a~b) Daytime scenes;(c)Nightfall scenes; (d) Night scenes; (e~f) Rain scenes.

根据表4的实验结果,在不同场景下本文算法与其他两种算法相比均具有较高的识别准确率和传输速率,结合图8的实验结果可以看出,在不同场景下本文算法能够分辨出车辆的左转如图8(d)、右转如图8(f)和直线行驶3种行为,并对车辆的偏离状态给出了有效的信息。

3.3.2 自建数据集结果与分析

为了使实验的结果更具有实际意义,对车辆的行为识别算法在实验室自建数据集进行测试。与在公开数据集中同样选取白天、傍晚、夜晚和雨天4种场景下各800帧视频图像进行测试,并引入准确率(Cor)、错误率(Err)、传输速率(TR) 3个参数指标对车辆的行为识别算法进行综合评价,评估结果见表5,在自建数据集中本文算法在不同场景下的识别结果如图9所示。

表5 车辆行为识别自建数据集结果Tab.5 Result of vehicle behavior recognition in self-built data sets

根据表5实验数据,在自建的数据集中本文算法与其他方法相比,同样具有较高的识别精度,并且每秒的传帧速率能够满足实时性的要求。结合图9的实验结果,在不同的实验环境下本文算法可以有效地识别车辆直行、左转和右转3种状态,并给出车辆偏离车道中心位置的信息。综合车辆行为识别在公开数据集和实验室自建数据集的实验结果,本文算法与其他算法相比具有较高的准确率和传输速率。

图9 自建数据集车辆行为识别结果。(a~d)原始图像;(e~h)实验结果图像。Fig.9 Self-built data set vehicle behavior recognition results. (a~d) Original image; (e~h) Experimental result image.

4 结 论

本文提出一种基于车道信息融合的车辆行为识别算法,对车辆辅助驾驶领域中车辆的行为状态进行判断。首先在图像预处理的基础上,运用改进的Robinson算子获取最佳梯度幅值,实现对车道的边缘提取,再利用LSD算法完成车道的检测;然后通过一种基于滑动窗口的三次样条插值法对车道进行拟合;最后根据车道的曲率半径和方向2个参数分析车辆的运动状态,结合车辆的中心位置判断车辆的偏离状态。在公共数据集和自建数据集中分别进行测试,实验结果表明本文方法在不同场景下可以有效地区分车辆的运动状态并给出车辆的偏离信息,与其他算法相比,本文方法的准确率为93.04%,每秒传输帧数达到42.37,基本满足交通场景的实际要求。

猜你喜欢
样条像素点车道
北斗+手机实现车道级导航应用
避免跟车闯红灯的地面车道线
基于局部相似性的特征匹配筛选算法
浅谈MTC车道改造
对流-扩散方程数值解的四次B样条方法
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
三次参数样条在机床高速高精加工中的应用
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
基于样条函数的高精度电子秤设计