李占旗 鲍振标 贾鹏飞 刘全周
摘 要:为了实现汽车辅助驾驶系统对前方目标车辆的精确预警,文章对前方目标车辆测距方法进行了研究,采用车辆的车牌为参考靶标,利用机器视觉识别算法对车牌轮廓进行了检测,得到车牌的位置角点坐标,由PNP相机姿态算法求得前方目标车辆的距离,并设计了静态和动态测试场景对算法进行了验证,该方法与地面是否起伏无关,并在20米的范围内,相对误差小于0.25%。
关键词:车辆距离测量;车牌;PNP算法;相对误差
中图分类号:U495 文献标识码:B 文章编号:1671-7988(2020)21-32-04
Abstract: In order to achieve accurate early warning of vehicles in front of the driving assistance system, this paper studies the distance measurement method of the target vehicles. Using the vehicle license plate as the reference target, the contour of the license plate was detected by the machine vision recognition algorithm and the position corner coordinates of the license plate were obtained. The distance of the target vehicle in front was calculated by the PNP camera pose algorithm. Static and dynamic test scenarios were designed to verify the algorithm. The method has nothing to do with whether with whether the ground is undulating and the relative error is less than 0.25% within a range of 20 meters.
Keywords: Vehicle distance; License plate; PNP algorithm; Relative error
CLC NO.: U495 Document Code: B Article ID: 1671-7988(2020)21-32-04
前言
汽車驾驶过程中,高级驾驶辅助系统(ADAS)可实时对前方障碍物进行识别与检测,可有效提升汽车的安全性,对目标信息的准确获取是避免危险的前提条件[1-3]。
目前,ADAS辅助驾驶系统中,主要的信息感知传感器有激光雷达、超声波雷达和摄像头。激光雷达可以实现对前方目标的精确检测,但是其成本较高,数据处理工作量较大,难以在广泛应用于普通车辆中。超声波雷达主要应用于短距离的测量,但测量精度存在的误差较大,且无法输出角度的信息。相比之前,摄像头价格较为低廉,获得图像信息丰富,被广泛配备与车辆中。为了提高摄像头对前方物体的感知能力,是目前国内外大量学者做了很多的研究工作。现有的视觉障碍物测距方法主要是单目视觉和双目或者多目立体视觉;立体视觉的测量方法[4]利用视差原理实现前面障碍物的直接测距,测量精度较高,但是需要多个摄像头信息的匹配,计算量大,实时测距成本高,应用受到了限制;单目视觉测距方法算法简单,计算量小,实时性能好。余厚云等多位学者[5-7]采用基于车道线消失点的几何模型测量前方目标车辆的纵向距离的方法,其多适用于结构化的道路。徐超等[8]提出了一种通过特征变换匹配算法估计坦克的姿态角,测距误差较大且耗时较长。刘军等[9]人提出一种考虑车辆偏航角和俯仰角的车距测量方法,可以在非结构路面实现前方车距的测量。但是对道路还有一定要求,误差也较大。
国外,Tuohy 等[10]提出了一种基于逆透视变换的测距方法,通过逆透视变换还原出道路平面的信息,并且该平面与真实道路平面具有线性的比例关系,该方法简单易行,但是其没有考虑汽车运动的偏航角和俯仰角补偿,导致在汽车产生偏航和俯仰运动时会产生较大的测距误差。Nakamura 等多人[11-13]结合估计车宽长度的单目视觉车辆测距方法,但是都没有考虑到汽车运动过程中的姿态角变化,对车辆目标的测距误差较大。
前述测距方法的前提是道路基本是平坦的,如果出现坡道情况,则产生很大的测量误差,容易出现误报现象。PNP算法应用于靶标与相机姿态估计,无论靶标和相机之间处于什么状态都能准确估计出二者之间的位置关系。为提高车辆单目视觉测距在复杂应用场景的精度和稳定性,本文将PNP算法应用于前方车辆的位置姿态估计,借助车辆的车牌这一相对稳定的目标,建立前车的方位与距离的估计模型,用于对前方车辆进行横向和纵向位置的准确定位。
1 PNP算法原理
PNP算法是指通过多对3D和2D匹配点,在已知相机内部参数的前提下,求解相机外参的算法。求解PNP 问题算法包括P3P、直接线性变换(DTL)、EPNP、UPNP 等, 以及构建最小二乘问题并迭代求解。EPNP 需要 4 对不共面的3D与2D匹配点,是目前求解速度快精度较高的的PNP求解方法。本文采用EPNP算法,该算法实质是建立一个笛卡尔坐标系,将3D点投射到该坐标系下。
世界坐标系下的坐标是pwi,相机坐标系下的坐标是pci,在世界坐标系下选取4个非共面虚拟控制点,虚拟 控制点的选择可以通过文献提供的方法给出, 4 个控制点在世界坐标系下坐标为 cwj(j = 1,2,3,4), 相机坐标系下坐标为ccj(j = 1,2,3,4)。其中pwi、pci、cwj、ccj均为非齐次坐标系。
求解得到4个虚拟控制点在相机参考坐标下的坐标, 计算3D参考点在相机参考坐标系下的坐标,然后使用迭代最近点(iterative closest point,ICP)算法即可求出相机位姿。当n个参考点共面的情况下,依然可以计算出相机的位姿。
2 基于PNP算法前方车辆测距方法
在前方车辆上设置多个参考点,本车内安装经过标定的相机,相机拍摄前方车辆上的参考点,利用图像处理算法获得参考点在图像中的坐标。相机本身经过实验室内部参数标定,则可以通过PNP算法,解算出参考点在相机参考坐标系下的坐标。
可以参考点在相机中的位姿,只需要在前方车辆上确定参考点,即可获得参考点与车载相机之间的位置关系。考虑到车牌是车辆强制统一安装的附属件,其尺寸有统一规格,可以用来作为车辆定位算法中的参考点。本文提出的前方车辆定位方法分为前期前方车辆图像采集与车牌识别和后期车牌检测与定位两个阶段。前期通过车载相机采集含有车辆目标的视频或图像信息,通过深度学习[14],识别场景中车辆及其车牌的信息, 用于后期的 PNP 算法。后期借助前期得到的车牌图像信息,定位车牌角点在图像中的坐标,并识别车牌种类,利用 PNP 算法得到待求图像的准确的位姿信息,从而得到前方车辆的横向纵向距离,如图 1所示。
2.1 车牌检测
车牌定位与识别算法已经是较为成熟的算法,广泛应用于停车场及监控应用中。通过车牌上的文字数字、颜色信息等能迅速从车辆背景图像中分离出车牌区域。本文仅需要提取车牌的边框角点,因此仅需要定位车牌区域,然后将车牌边缘交点的像素坐标计算出来,作为测量模型中靶标的成像坐标即可。
参考文献[15]中的快速定位与边缘检测算法,实现车牌的快速定位。各种车型存在差异,小型车车牌和大型车前车牌尺寸是140x440mm,大型车的后车牌尺寸440x220mm,通过比例的计算可以确定车牌的规格。
2.2 车牌边框图像坐标测量
定位车牌后,需要获得车牌边缘交点的图像坐标;测量模型中输入参数仅靶标的图像坐标,因此靶标的图像坐标定位精确度决定了最终靶标与相机之间纵向横向距离的准确度。
在确定车牌位置后,可以利用车牌与车身之间较为明显的色彩差异等信息进行边缘的分割定位。因车牌是长方形,因此需要提取长方形边缘,求解四条边交点,即为车牌边框交点的图像坐标值。车牌交点定位算法如图2所示:
3 实验与分析
测试车内部装有激光雷达用于测量前方目标的距离,相对精度0.1%,主要用于做测距精度比对。在中控台位置安装一台相机,相机离地高度约1.3米,相机上安装有12mm定焦镜头,在实验室利用张正友标定法[16]标定相机内部参数横纵向等效焦距分别是[1526.87,0,1527.24],透视中心[1000.42, 481.69],前方车辆选择小型车进行测试,其标准车牌边框的尺寸为440x140mm。
3.1 静态测试
前方被检测车辆与测试车辆距离从5米缓慢移动到50米距离,分别进行测试,如图3所示,其中距离数据均从激光雷达获得的参照数据。每个位置测量5次,测量值的重复性优于千分之一。
测量结果的偏差曲线如图4所示。
在5-20米范围内,测量结果波动很小,主要是在这个区间内,车牌图像较为清晰,边缘轮廓好,测量精度高,测量准确度较高,相对误差较小。当超过20米后,由于车牌图像变小,图像的分辨率下降,边缘出现模糊现象,导致车牌交点定位精度下降,最终导致测量得到的车牌定位值出现较大幅度的波动,相对误差增大。
3.2 动态测试
测试车辆跟随一辆行驶车辆以时速40公里/小时同向行驶,摄像头帧速60帧/s,两车距离约15米左右,摄像机采集处理系统连续抓拍前方车辆图像,经过算法处理得到前方车辆的距离变化,如图5所示。测量距离在15米附近波动,相对误差最大0.25%。
4 结论
本文对前方目标测距进行了研究,通过机器视觉算法对车辆进行了检测与识别,借助于车牌为靶标,根据PNP算法求得前方目标车辆的距离,通过实验证明在20米以内,车距的检测精度小于0.25%,当距离超过20米之后,由于车牌图像分辨率降低,交点定位误差开始变大,车距测量误差开始变大,由于车辆预警距离往往在5-20米之内,本文提出的方法测量精確度较高,能够较好的实现距离测量与报警。后续研究需要考虑远距离如何提高车牌区域定位精确度,以及寻找替换车牌的车载固定标记物,便于在距离较远时也能得到较精确的测量靶标。
参考文献
[1] 刘庆华,邱修林,谢礼猛等.基于行驶车速的车辆防撞时间预警算法[J].农业工程学报,2017,33(12):99-106.
[2] 方建超,周兴林,毛雪松.利用多普勒激光雷达实现距离和速度同步测量[J].光电工程,2016,43(12):212-218.
[3] 刘军辉,陈宏滨.基于FMCW雷达测距的车辆防碰撞系统[J].桂林电子科技大学学报,2016,36(5):349-354.
[4] 王忠立.基于立体视觉的空间球体快速定位方法[J].北京理工大学学报,2006(11):974-977.
[5] 余厚云,张为公.基于单目视觉传感器的车距测量与误差分析[J].传感器与微系统,2012,31(9):10-13.
[6] 许宇能,朱西产,马志雄等.基于单目摄像头的车辆前方道路三维重建[J].汽车技术,2014(2):48-52.
[7] 吴骏,李文杰,耿磊等.基于单目视觉的前方车辆检测与测距[J].计算机工程,2017,43(2):26-32.
[8] 徐超,高敏,曹欢.单目图像中姿态角估计的坦克目标测距方法[J].光子学报,2015,44(5):140-147.
[9] 刘军,后士浩,张凯等.基于单目视觉车辆姿态角估计和逆透视变换的车距测量[J].农业工程学报,2018,34(13):70-76.
[10] Tuohy S, OCualain D, Jones E, et al. Distance determination for an automobile environment using inverse perspective mapping in Open -CV[C], Signals and Systems Conference.IET,2010:100-105.
[11] Nakamura K, Ishigaki K,Ogata T,et al.Real-time monocular ranging by Bayesian triangulation[C], Intelligent Vehicles Symposium. IEEE, 2013:1368-1373.
[12] Han J, Heo O, Park M, et al. Vehicle distance estimation using a mono-camera for FCW/AEB systems[J].International Journal of Automotive Technology, 2016,17(3): 483-491.
[13] Bao D,Wang P.Vehicle distance detection based on monocular vision[C], International Conference on Progress in Informatics and Computing. IEEE,2017:187-191.
[14] 曹詩雨,刘跃虎,李辛昭.基于Fast R-CNN的车辆目标检测[J].中国图象图形学报,2017,22(05):671-677.
[15] 王永杰,裴明涛,贾云得.多信息融合的快速车牌定位[J].中国图像图形学报,2014,19(03):471-475.
[16] Zhang Zhengyou. A flexible new technique for camera calibration. IEEE Transactions on Pattern Analysis and Machine Intelligence. 2000.