APP下载

基于单目视觉的前方车辆检测与测距方法

2019-11-05宋东谕

自动化与仪表 2019年10期
关键词:测距分类器灰度

宋东谕,韩 军

(西安工业大学 光电工程学院,西安710021)

随着我国经济的发展,汽车保有量飞速增长。汽车给人们出行带来便捷的同时,潜在的交通事故也威胁着驾乘人员的安全,因此很多学者开始对车辆辅助驾驶技术进行研究。车辆辅助驾驶系统的任务就是对周围环境进行感知,并对潜在的威胁源进行检测和预警。行车时前方车辆作为潜在的碰撞发生对象,对其检测和测距方法的研究具有重要意义。

在目前的研究中,基于机器视觉的车辆检测方法可以分为2 种。一种是基于图像形态学处理的方法。比如文献[1]中,作者通过Hough 变换来提取车道线,将两条车道线之间区域作为感兴趣区域,图像分割后采用窗口能量搜索定位车辆。这种方法只适用有清晰车道线的路面,且前车必须在两条车道线中间,环境适应性较差。另一种车辆检测方法是基于机器学习的方法。比如文献[2]中提取车辆数据集的Harr-like 特征,结合Adaboost 分类器来对车辆进行检测,但是没有求解出车辆准确的像素坐标。

本文针对车辆检测中环境适应性差和定位精度低的问题,提出一种结合机器学习和图像形态学处理检测车辆的方法。采用MB-LBP 特征和SVM 进行初步检测,将检测出的窗口作为感兴趣区域进行图像形态学处理,得到车辆在图像中的像素坐标。针对相机光轴与图像坐标系原点存在偏差的问题,提出了综合相机几何投影关系与相机标定法的测距模型。实验验证了方法的准确性。

1 车辆初步检测

本文采用机器学习的方法对车辆进行初步检测。采集样本集的MB-LBP 特征,训练基于MB-LBP特征的SVM 分类器对车辆进行初步检测。

1.1 MB-LBP 特征提取

传统的LBP 特征定义在固定的3×3 邻域内。它存在一个缺点,由于其定义的领域大小是固定的,不能满足不同频率纹理和尺度的需要[3]。因此当图像尺度发生变化时编码将发生错误。

基于传统LBP 特征改进的MB-LBP 特征将图像分成一个个块。再将每一个块分成若干个小区域。将当前小区域内的灰度平均值作为中心阈值,与周围相邻的小区域按照LBP 特征的规则进行比较,生成的特征称为MB-LBP 特征。当块的大小为9×9,小区域的大小为3×3 时如图1所示。

图1 MB-LBP 特征Fig.1 MB-LBP feature

1.2 SVM 分类器

支持向量机SVM 是由Cortes 和Vapnik 等人在1995年提出的一种基于统计学的分类方法,SVM 对线性可分和线性不可分问题都具有很好的分类效果[4]。SVM 的本质是找到决策边界,其决策函数如下:

要得到决策边界,就要求离它最近的样本到它的距离最大,这个距离称为最大分类间隔。决策边界的位置由这些样本决定,因此这些样本被称为支持向量。

2 车辆像素位置确定

本文通过MB-LBP 特征搭配SVM 分类器对车辆进行初步检测,检测效果如图2所示。

图2 车辆初步检测效果Fig.2 Result of preliminary vehicle detection

由图2可以看出,分类器对采集到的视频图像进行了初步检测。但是所检测出来的只是一个大概的区域,其中包括目标车辆和部分的背景。下一步需要对车辆进行精确定位,即找到车辆的像素位置。

将检测出的窗口作为感兴趣区域分离出来,只对它进行处理,如图3所示,这样可以避免直接对整张图片进行处理,减少了运算量。

图3 分离出的感兴趣区域Fig.3 Region of interest

在不同的行驶环境下所采集到的图像亮度对比度会有很大差异。为了削弱对比度变化对后续图像分割产生的影响,对提取的感兴趣区域进行直方图均衡化,效果如图4所示。

图4 直方图均衡效果Fig.4 Result of histogram equalization algorithm

由图4可以看出直方图均衡后图片亮度和对比度有了明显的提升。接下来对其进行Otsu 阈值分割,其核心思想是寻找一个阈值k,可以将图像像素的灰度值分为0~k 和k~255 两部分[5]。通过让背景与目标之间类间方差最大化来确定阈值k。前景和背景像素数占整张图像总像素的比例分别为p1和p2,平均灰度分别为g1和g2,则整张图片的平均灰度为

前景和背景类间方差为

类间方差d 最大时得到最佳阈值k:

阈值分割后的效果如图5所示,场景中车辆、路面以及车底阴影已经被分割和归类。

阈值分割之后的图像具有丰富的边缘信息,为了去除不利的边缘对接下来灰度搜索产生的影响。对分割后的图像进行开运算。开运算对图像先腐蚀后膨胀。在图像形状不变的情况下消除图像中小于结构单元的细节部分,达到平滑物体轮廓消除噪点的目的[6]。其定义如下:

开运算后效果如图5所示。

图5 阈值分割与开运算图像Fig.5 Image of threshold segmentation and open operation

将开运算后的窗口二值化,以窗口底边中点O为原点,其灰度为H(a,b)。路面被分割后灰度归为255,车底阴影灰度归为0。如图6所示向上做灰度搜索,步长为一个像素。若H(a,b-i)≠H(a,b)(i=1,2,3…),则点P(a,b-i)为车底阴影边缘点,以它作为车辆的像素位置坐标。

图6 灰度搜索示意图Fig.6 Image of the gray scale searching

3 前方车辆距离测算

文献[1]和文献[2]中所采用的测距方法均基于相机几何投影模型。但是都忽略了实际上相机作为流水线上的工业产品,存在加工和安装误差。导致其光轴与图像坐标系原点有一定的偏差[7]。针对这一问题本文提出一种综合相机几何投影关系与相机标定对前方车辆的距离进行测算的方法。图7为相机成像模型。其中K 为相机位置,E 为相机在地面上的投影点。梯形ABCD 为相机可以拍到的地面区域。KO 为相机光轴,假设P 为路面上车辆所在位置。

图7 相机成像模型Fig.7 Camera imaging model

图8 成像模型侧剖图Fig.8 Side section of imaging model

如图8为成像模型侧剖图。fg 为像面,O0为像面中点。KE 为摄像机安装高度。光轴KO 为GF 的中垂线,且与地面交与点O。Py为目标P 点在Y 轴方向的投影,对应像面上的Py′。α1为相机俯仰角。EH 为相机视野最近点与相机在地面投影位置的距离,EPy则为所求与前车的距离。推导过程如下:

上式定义在图像坐标系中,图像坐标系的原点为O0,单位为毫米。要将式中变量从采集的图像中读取出来就要将上式转换为以O1为原点的像素坐标,如图9所示。

图9 像素坐标Fig.9 Pixel coordinates

由图9可以得出像素坐标下的坐标(u,v)与图像坐标下的坐标(x,y)之间的关系:

式中:sx和sy的单位为(像素/mm)。将上式代入式(9)得到公式如下:

上式中像面的像素高度V 可以由相机参数得到。通过标定相机得到内部参数V0和fy。相机安装高度KE 和视野最近点距离EH 可以通过测量得知。其中唯一的变量是被测车辆的像素坐标v。前文已经求出。

4 实验结果与分析

本文实验平台为Intel Core i5-8300H,8 G 内存,主频2.3 GHz。基于Visual Studio 2015 编译环境,搭配OpenCV3.4.1 计算机视觉库。选择C_SVC作为SVM 类型,采用LINEAR 线性核函数。SVM 分类器训练时迭代终止条件为迭代1000 次且达到迭代阈值FLT_EPSILON[8]。

考虑到前方车辆相对于自身车辆的行车姿态,本文采用的正样本分为3 种视角,分别是正前方、左前方和右前方,如图10所示。负样本为不含车辆的背景图片。

有一种观点认为,“良渚文化中鸟、兽、人由亲和到融合的逻辑发展演进历程为:鸟、兽、人有形实物组合——鸟、兽、人有形实物合体——鸟、兽、人图案组合——鸟、兽、人图案融合为一体。”“可以将良渚文化中原始宗教基本理念的逻辑的发展历程概括为:多神教崇拜——鸟、兽、人崇拜(或鸟、兽、人亲和)——鸟、兽、人融合三个阶段。”具体来说,良渚“神人兽面纹”中的“神人羽冠”显示出“鸟与人的亲和与融合”、“兽面纹”显示着“鸟与兽的亲和与融合”,而其中的“人”显现为“鸟、兽、人三者之间的亲和与融合”,并将这种现象视为“原始宗教”的第三阶段。③

图10 正样本示意图Fig.10 Image of positive sample

采用HT-U300C 工业相机来采集图像。像元尺寸3.2×3.2 μm,图像分辨率1024×768,帧率25 帧/s。镜头焦距6 mm。相机安装高度为1.5 m,视野最近点距离相机3.5 m。用Matlab 标定工具箱对相机进行标定,得到相机内部参数如表1所示。

表1 相机内部参数Tab.1 Intrinsic camera parameters

本文的测试集由工业相机在行车环境下实时采集,包括晴天、阴天、小雨和雾霾4 种道路场景,如图11所示。这4 种场景囊括了常见的行车环境,具有不同的光照强度和前景背景对比度。可以比较全面地衡量车辆检测算法的环境适应性。

图11 不同行车环境下检测效果Fig.11 Result of detection in defferent driving condition

本文采集4 种不同行车环境下的图像作为测试的数据集,测试集1 为晴天采集的图像,测试集2为阴天,测试集3 为小雨,测试集4 为雾霾。文献[9]采用Harr-like 特征搭配Adaboost 分类器在前3 种测试集上对车辆进行检测。本文将在4 个测试集上进行实验并将前3 个测试集的结果与文献[9]进行比较,采用准确率(Precision)来评价实验结果。

式中:TP 为正检数;FP 为误检数。实验结果如表2所示。

表2 车辆检测结果Tab.2 Result of vehicle detection

由表2可以看出本文方法在前3 个测试集上的准确率均优于文献[9]的方法,平均准确率达到了94.1%。并且在雾霾行车环境下对方法进行了测试,由于能见度差导致图像亮度对比度较低,使得检测的准确率只有86.9%。

为了验证测距方法的准确性,本文在平直的路面上进行实验,在自身车辆静止状态下对正前方静止的车辆进行车距测量。实验结果如表3所示。

表3 车距测量结果Tab.3 Results of vehicle ranging

由表3可以看出,当车距在50 m 内时测距精度较好。测量相对误差不超过4%,绝对误差保持在2 m 以内,优于文献[1]中的方法。车距大于50 m 时测量误差较大。这是因为距离过远时车底阴影在图像中较为模糊,且单个像元所对应的真实距离也越大导致测距精度下降。

5 结语

本文提出了一种基于单目视觉的前方车辆检测与测距方法。结合机器学习和图像形态学处理,采用机器学习的方法对车辆进行初步检测。将检测出的区域作为感兴趣区域进行直方图均衡,阈值分割和开运算。二值化后采用灰度搜索得到车辆底部阴影区域坐标作为车辆像素位置。测距方面,本文结合相机标定和相机投影模型推导出了测距模型,改善了光轴偏差对测距效果的影响。本文在多种行车环境下进行了测试,方法具有良好的环境适应性和检测测距精度。

猜你喜欢

测距分类器灰度
基于RSSI测距的最大似然估计的节点定位算法
采用改进导重法的拓扑结构灰度单元过滤技术
基于朴素Bayes组合的简易集成分类器①
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
Arduino小车巡线程序的灰度阈值优化方案
类星体的精准测距
基于特征选择的SVM选择性集成学习方法
基于差异性测度的遥感自适应分类器选择
浅谈超声波测距
基于层次化分类器的遥感图像飞机目标检测