基于单目视觉的前方车辆检测与测距
技术领域
本发明涉及一种基于单目视觉的前方车辆检测与测距方法,该方法提出了机器视觉与先验知识相结合的方法进行车辆检测,属于图像处理和机器视觉领域,可应用于准确有效的检测出不同天气情况下的车辆并准确测量车距。
背景技术
道路交通事故给人民生命财产和国民经济带来了巨大损失,及时检测当前车辆前方的物体并做出预警具有非常重要的意义,而车辆检测是前方物体检测中至关重要的一部分。此外,准确测量当前车辆和前车之间的距离对于行车安全意义重大。
在视觉车辆检测方面,主要有四类方法:基于先验知识的方法;基于模板匹配的方法;基于光流场的方法;基于机器学习的方法。这些方法的局限性主要表现为:对光照敏感,光线的变化很有可能导致无法检测到车辆;当模板个数增加时实时性会受很大影响,并且无法建立一个对所有车辆都适用的通用模板;实时性差;训练分类器时收集的样本对检测效果影响较大。
在单目视觉车辆测距方面,主要有三类方法:基于成像模型的方法;基于几何关系的推导方法;基于数学回归建模测距的方法。这些方法主要受车辆实际宽度、精确测量相机视野角与俯仰角、前期数据采集分析并计算数学模型的影响。
为了解决当前车辆检测和测距中存在的对光线敏感、需要精确测量相机俯仰角的问题,本文提出一种基于单目视觉的前方车辆检测与测距方法,将机器视觉与先验知识相结合进行车辆检测,在提出车辆底部阴影长度滤波方法对初检结果准确定位获得车辆准确位置的基础上,利用位置信息的成像模型方法测量车距,试验表明本方法能准确有效的检测出不同天气情况下的车辆并准确测量车距,满足实时性要求。
发明内容
本发明的目的是克服现有技术的上述不足,提出了一种基于单目视觉的前方车辆检测与测距方法,该方法能够准确有效地检测出不同天气情况下的车辆,同时还能准确测量车距。为此,本发明采用如下的技术方案:
1.获取视频图像并进行灰度化;
2.提取感兴趣区域并进行直方图均衡化;
3.车辆分类器训练,Adaboost级联分类器算法对样本的MB-LBP特征向量进行分类学习,选择每阶段的最优弱分类器并级联成最终的强分类器;
4.用训练完的车辆分类器初检实验视频;
5.基于水平边缘与灰度信息结合去除初检中的误检;
6.采用孔洞填充去除孤立噪声点和细小片段,利用长度滤波检测车辆底部阴影定位轮胎与地面交线;
7.采用双阈值法对图像进行二值化并依据车道线宽度滤波,采用抽样扫描法提取车道线特征并用最小二乘拟合建立车道线方程获得车道线位置确定车道消失点;
8.采用基于位置信息的前方车辆测距方法测量前车到当前车辆的距离。
本发明具有如下的技术效果:
1.方法简单,易于实施。本发明利用机器视觉与先验知识相结合的算法,采用Adaboost级联分类器算法对样本的MB-LBP特征向量进行分类学习,计算速度提高,且不需要高精度的仪器设备,方法简单实用。
2.准确性高。本发明在检测过程中,采用水平边缘结合灰度信息验证初检结果去除误检,提高了检测精度。
3.对不同天气情况下能够满足视觉车辆检测、测距与实时性要求。
附图说明
图1:本发明总体方案流程图。
图2:MB-LBP算子图。利用MB-LBP算子可以捕捉不同尺度的结构信息,使测量更加稳定,可通过积分图进行计算,提高计算速度。
图3:正样本示例图。对正样本手动截取不同角度的后视车辆,尽量保持图像下边缘为轮胎与地面的交点,归一化的正样本尺寸为24×24单位像素。
图4:车辆初检结果图。
图5:基于先验知识各阶段检测结果图。图(a)为水平边缘信息图,图(b)为灰度信息图,图(c)-(e)为判别结果图。如图(a)所示,车辆具有丰富的水平边缘,而伪目标没有或者具有很少的水平边缘,基于Canny边缘检测,统计水平边缘信息,排除为目标;如图(b)所示,根据车辆轮胎与其邻近区域的灰度值关系进一步排除为目标。
图6:孔洞填充算子图。
图7:底部阴影各阶段检测结果图。图(a)为原始车辆图,图(b)为Sobel边缘图,图(c)为孔洞填充图,图(d)为长度滤波图,图(e)为最终交线图。如图(b)所示利用3×3 Sobel水平边缘检测获得灰度渐变区域;如图(c)依据孔洞填充去除孤立噪声点和细小片段并对孔洞进行填充;如图(d)所示根据底部阴影在矩形框中的位置对矩形框底部1/4进行处理并以矩形框下边线为基准进行长度滤波;如图(e)所示以长度滤波后线段的最上层边缘作为轮胎与地面的交线。
图8:车道线检测图。图(a)为高斯滤波图,图(b)为二次阈值分割图,图(c)为宽度滤波图,图(d)为形态学滤波图,图(e)为左右车道线扫描示意图,图(f)为特征点坐标图。如图(a)所示截取图像底部1/2进行3×3高斯滤波;如图(b)所示依据OTSU方法中求取阈值的操作得到初步分割阈值S1,基于S1对图像进行第一次二值化,并对二值化后的白色区域利用相同的操作得到二次阈值S2,利用S2对图像二值化;如图(c)所示依据车道线宽度对二值化图像滤波进一步消除干扰;如图(d)所示利用闭运算对图像进行处理以填充细小孔洞及平滑边界;如图(e)所示对车道线进行抽样扫描提取特征点便于建立车道线方程确定车道线位置及车道线消失点。
图9:车辆测距模型图。如图所示当相机与水平方向的俯仰角较小时,在获取离线参数Fcam、Hcam的 情况下,根据轮胎与地面的交线及车道消失线即可求得车辆距离。
图10:车辆检测结果图。图(a)为晴天-早晨工业相机视频检测与测距图,图(b)为晴天-中午工业相机视频检测与测距图,图(c)为晴天-上午工业相机视频检测与测距图,图(d)为阴天-上午工业相机视频检测与测距图,图(e)为阴天-中午工业相机视频检测与测距图,图(f)为阴天-傍晚工业相机视频检测与测距图,图(g)为阴天行车记录仪视频检测图,图(h)为轻度雾霾行车记录仪视频检测图,图(i)为小雨行车记录仪视频检测图。
具体实施方式
本发明的流程图如图1所示,首先将车载摄像机采集的视频图像转换为灰度图像,然后根据相机成像范围选择感兴趣区域进行直方图均衡化,再对均衡后的图像用分类器初检得到包含车辆信息的矩形区域并利用先验知识对初检结果进行验证以去除误检,最后利用车辆底部阴影计算轮胎与地面的交线获得车辆的准确位置同时将车辆位置与车道线检测结果作为先验信息进行车辆测距。下面结合附图,对本发明技术方案的具体实施过程加以说明。
1.获取图像并进行灰度化
成像系统为MVC1000MS型CMOS黑白工业相机和行车记录仪。其中相机的分辨率设为640×480,帧率为25fps。相机标定结果为,相机水平和垂直方向等效焦距(单位像素)为(1686,1690),主点坐标(单位像素)为(320,240)。相机安装在车辆内部前挡风玻璃后视镜下方,距离地面高度为1.2m。视频采集于城郊快速路和高速公路。为进一步验证车辆检测算法的准确性,对CMOS型普通彩色行车记录仪(分辨率为848×480)采集的城市道路视频进行验证。系统检测结果如图10所示。
2.提取感兴趣区域并对其进行直方图均衡
截取感兴趣区域,以去除天空、远方道路、部分道路标识牌等干扰信息,对感兴趣区域进行直方图均衡化提高图像对比度。
3.车辆分类器训练
利用Adaboost级联分类器算法对样本的MB-LBP特征向量进行分类学习,选择每阶段的最优弱分类器并级联成最终的强分类器。MB-LBP算子中心子区域特征为
其中gi、gc为相应子区域的灰度均值,子区域大小为m×n(像素)。MB-LBP算子如图2所示。
在选取正样本时,手动截取不同角度的后视车辆。为了测距需要,正样本截取时尽量保持图像下边缘为轮胎与地面的交点,如图3所示。负样本为不包含车辆但与车辆行驶环境相关的场景,如道路、绿化带、行人、建筑物等。为了缩短分类器的训练时间,提高检测的实时性与准确性,样本均为 灰度图像,归一化的正样本尺寸为24×24单位像素,非尺度归一化的负样本尺寸从100×100到752×480像素不等。
4.训练后的分类器初检实验视频
为提高检测速度,缩小原图像尺寸,缩放比例为1/2,同时截取图像底部2/3的部分以消除天空,远方道路,道路标识牌的干扰。初检结果如图4所示。
5.水平边缘结合灰度信息验证初检结果
(1)水平边缘
对初检中出现误检的情况,发现伪目标多集中在路面和绿化带区域。分析车辆和伪目标的边缘图像可知,车辆具有丰富的水平边缘,而伪目标没有或者具有很少的水平边缘。据此对初检结果进行Canny边缘检测,统计矩形框内的水平边缘信息,以排除伪目标。统计初检结果矩形框R内满足条件的水平边缘数N
式中L为水平边缘长度,kl为比例系数,WR为R的宽度。根据该式判断区域R是否为误检目标。
式中(NMIN,NMAX)为N的取值范围,F0为是否误检的标志。
当R内水平边缘数N满足域值条件时,F0=0保留此矩形框,否则为误检则去除。
(2)灰度信息
为进一步消除误检,可利用车辆轮胎与其邻近区域的灰度值关系进行判别。对初检矩形框R按比例kg(0<kg<1)截取其中的一部分即可得到轮胎所在的区域,以T1、T2分别表示左轮和右轮的区域;截取两轮胎外侧与T1、T2同样大小的矩形框N1、N2;构建与区域R同宽、与T1、T2等高的矩形框B,如图5(b)所示。统计下列区域灰度信息
式中GT为轮胎灰度均值,GB、GB为相应矩形框的灰度均值。根据该式进一步排除伪目标。
F1为R是否误检的标志,为GT大于G*中任意两个元素。
当F1=1去除此矩形框,否则保留。得益于正样本的选取规则,在T1、T2内引入的非轮胎区域的比例低于0.3,因此即使轮胎压在车道线上也能准确判别。
结合水平边缘和灰度信息对初检结果进行验证,结果如图5(c)-(e)所示。从图可知,上述先验知识相结合能够有效去除误检,提高检测精度。
6.车辆底部阴影检测
轮胎与地面的交线IL是影响测距准确性的重要因素。对判别后的结果进行车辆底部阴影检测来定位IL。计算方法为:
(1)为了得到灰度渐变区域,对车辆(如图7(a)所示)进行3×3Sobel水平边缘检测,检测结果如图7(b)所示;
(2)利用孔洞填充算子(如图6所示)去除孤立噪声点和细小线段,并对孔洞进行填充。算子计算公式:
(3)根据底部阴影在矩形框中的位置,只对矩形框底部1/4进行处理,计算时以矩形框下边线为基准从左到右扫描进行长度滤波。如式当线段长度L0满足条件L0≥ks·WR时线段有效标志FS=1,保留此线段,否则去除。滤波结果如图7(d)所示;
(4)抽取上步中最上层边缘作为IL,如图7(e)所示。
7.车道线检测
车道线检测依据以下步骤完成:
(1)根据相机成像范围,取图像底部1/2作为车道线感兴趣区域;
(2)利用3×3高斯滤波对截取后的图像去噪,如图8(a)所示;
(3)利用双阈值法对图像二值化。依据OTSU方法中求取阈值的操作得到初步分割阈值S1。基于S1对图像进行第一次二值化,并对二值化后的白色区域利用相同的操作得到二次阈值S2,利用S2对图像二值化,如图8(b)所示;
(4)为进一步消除干扰,利用车道线宽度对二值化图像滤波,如图8(c)所示;
(5)为填充细小空洞及平滑边界,利用闭运算对图像进行处理,如图8(d)所示;
(6)利用抽样扫描法进行车道线特征提取。由于算法原理相同,只叙述左侧车道线检测过程。
yi=NZmin+i·INT[(NZmax-NZMIN)/(SN-1)]
γ=|a tan k1-a tan k2|
γ<TANG
式中yi为抽样扫描纵坐标,(NZmin,NZmax)为左半图像非零像素行纵坐标范围,INT表示取整,SN为(NZmin,NZmax)抽样数,i=1,2...SN。
对yi所在行从右到左进行扫描,如图8(e)所示。取白色线段中点pi(xi,yi)(如图8(f)所示)为候选车道线特征点。找出所有候选特征点,取纵坐标临近三个点如pi-1,pi,pi+1,记pi-1,pi斜率为k1,pi,pi+1的斜率为k2,按式γ=|a tan k1-a tan k2|求得两直线夹角γ。当γ与阈值角度TANG满足式γ<TANG则三点为车道特征点。对车道特征点进行最小二乘拟合建立车道线方程。
8.前方车辆测距
采用基于位置信息的前方车辆测距方法测量前车到当前车辆的距离。针孔几何成像模型如图9所示,从图中几何关系可求得本车与前方车辆的距离D
式中Hcam为相机距离地面高度(单位米),Fcam为相机的焦距(单位像素),θ为相机与水平方向的俯仰角,yb为轮胎与地面的交线纵坐标(单位像素),yh为车道消失线纵坐标(单位像素)。
当θ较小时(如θ取10°,Hcam取1.2m时,Hcam·tanθ取值为0.2m),车距公式可简化为
因此在获得离线参数Hcam、Fcam的情况下,只需求得轮胎与地面的交线及车道消失线即可求得车辆距离。
本发明提出一种基于单目视觉的前方车辆检测与测距方法,该方法提出将机器视觉与先验知识相结合,准确有效的检测出不同天气情况下的车辆,同时还能准确测量车距,解决了单一利用基于先验知识的方法对光照敏感的问题以及基于机器视觉的方法产生过多误检的问题,满足智能车辆控制的实时性要求。