耿庆田,赵宏伟,樊 雪,赵德芳,赵 扬
(1.吉林大学 计算机科学与技术学院,长春 130012; 2.长春师范学院 计算机科学与技术学院,长春 130032)
可视倒车系统是汽车辅助系统的重要组成部分,目的是帮助驾驶者克服车后盲区的困扰完成倒车.较早的倒车辅助系统是语音报警提示系统和超声波雷达倒车系统,这两种系统均无视觉功能,无法解决车辆后盲区的问题.之后出现的由车载后视摄像头和车载显示屏以及用于采集图像数据和处理图像数据控制器组成的倒车辅助系统可以看到车后的场景,但车后障碍物的距离需要有经验的驾驶者预测.如果能在显示屏上根据驾驶者所旋转的方向盘角度预测出车辆的倒车轨迹, 并配有距离标尺的辅助倒车系统对驾驶者倒车操控会很有帮助.本文提出的基于摄像机标定理论[1-5]的实时倒车轨迹算法结合了针孔摄像机模型和镜头径向畸变模型,将在世界坐标系下推导的倒车轨迹方程通过摄像机坐标系、 成像坐标系和图像坐标系的坐标变换,再经过径向畸变模型矫正后生成倒车轨迹模型, 该系统能在倒车过程中把车后若干米内的场景以影像的方式显示,并有警戒线和警戒区提示功能,还能较准确地预测出倒车轨迹,帮助驾驶者准确倒车入位.
实时倒车轨迹算法图像采集部分采用Video For Linux Two技术,简称V4L2.该技术是Linux 系统下进行视频、 音频等应用开发的应用编程接口,结合视频采集设备和相应的驱动程序,可实现音影图像采集功能[6].使用V4L2技术采集图像的采集系统流程如图1所示.
图1 视频图像采集流程Fig.1 Procedure of video capture
该算法为程序定义的数据结构[2,4]:
typedef struct v4l2_struct
{
int fd;
struct video_capability capability;
struct video_channel channel;
struct video_picture picture;
struct video_window window;
struct video_capture capture;
struct video_buffer buffer;
struct video_map map;
struct video_buf buf;
unsigned char*map;
int frame;
int framestat;
}vd.
实时倒车轨迹的获取是根据某一时刻汽车方向盘所旋转的角度计算,旋转角度值通过角度信号获取模块(实际是一个CAN通信模块,主要由MCP2510和TJA1050连接组成)实现.下面给出倒车轨迹方程的推导过程.
车辆泊车的运动模型如图2所示[7].其中:(xf,yf)为前轴中心点坐标;(xb,yb)为后轴中心点坐标;v为前轴中心点速度;l为轴距;w为后轮距;φ为前轴中心点转向角;θ为车辆中心轴与水平方向的夹角.一般情况下,倒车速度小于5 km/h,因此可认为无滑移现象产生,后轮轨迹的纵向速度为0.由图2可知如下方程成立:
图2 倒车运动学模型Fig.2 Kinematics model of vehicle reversing
前轴中心点坐标关系为
(2)
对其进行求导后可得前轮的速度关系如下:
(3)
(4)
又由图2可知:
(5)
将式(5)代入式(4)可得
(6)
将
(7)
代入式(6)可得角速度
(8)
将式(5)和式(8)代入式(3)可得
(9)
将式(8)对时间积分可得
(C为常量,设C=0).
(10)
将式(10)代入式(9)可得
(11)
将式(11)对时间积分可得后轮中心点轨迹方程为
(12)
由式(12)可得
(13)
由图2和式(12)可知左后轮轨迹方程为
(14)
由式(14)可得
(15)
同理可得右后轮轨迹方程为
(16)
由式(15),(16)可知,倒车轨迹只与轴距l、 后轮距w和前轴中心点转向角φ有关,所以当车型选定,即轴距l和后轮距w确定后,则倒车轨迹只与前轴中心点转向角φ有关, 即与车的方向盘旋转角度有关.
图3 针孔摄像机模型Fig.3 Model of pinhole cameras
倒车轨迹的实时绘制并显示过程根据摄像机标定理论实现.摄像机标定是指建立摄像机图像像素位置与场景点位置间的关系过程,途径是根据摄像机模型,由已选特征点的图像坐标和世界坐标求解摄像机的模型参数[8-9].本文采用的摄像头是JMK WS-309A模拟摄像头,遵循针孔摄像机模型,其图像传感器为面阵传感器.摄像机标定理论主要标定摄像机的内参数和外参数.针孔摄像机的摄像机模型[10-11]如图3所示.世界坐标系中的PW通过镜头投影中心投影到成像平面上的点p,在无畸变情况下,点p为PW经过投影中心与成像平面的交点.该过程涉及4个坐标系:世界坐标系、 摄像机坐标系、 成像坐标系和图像坐标系.先把世界坐标系中的PW转换到摄像机坐标系中,再把摄像机坐标系的x轴和y轴分别平行于图像的c轴和r轴,z轴垂直于成像平面,沿z轴方向将摄像机前面所有点的z坐标设为正数.
实时倒车轨迹显示算法步骤如下:
1) 将车载摄像头固定在车尾部,使用标定算法进行摄像机标定,得到车载摄像头的内参数矩阵A、 外参数矩阵(R,T)及畸变系数K;
2) 在车后建立世界坐标系,世界坐标系的x轴平行于车尾,y轴垂直于车尾,z轴垂直于地面(设z=0,即表示地面);
3) 从角度信号获取模块得到实时角度值,如果角度值为0即方向盘没有旋转,则显示屏实时显示警戒线和警戒区;如果方向盘发生旋转,角度信号获取模块将得到实时旋转角度值;
4) 根据实时倒车轨迹获取算法推导出左右后轮的轨迹方程,将步骤2)中所建立坐标系的x值和步骤3)中方向盘旋转实时角度值代入式(15),(16)可得对应的y值, 从而可得满足倒车轨迹方程的坐标对,再将其所有坐标对中z轴坐标值设为0(因为系统建立的世界坐标系基于假设路平面,即z=0);
5) 将这些三维坐标通过右乘摄像机外参数矩阵和内参数矩阵得到相对应成像坐标系的点坐标, 即通过
(17)
得到其坐标(坐标(u,v)为该像素在数组中的行数和列数);
6) 进行坐标点矫正.因为多数镜头都可近似为径向畸变,畸变模型[12-13]如下:
(18)
通过
(19)
进行坐标点的畸变矫正;
7) 将成像坐标系的点坐标转换到图像坐标系并将其显示于显示屏上.
本文对上述倒车系统进行了大量实验和测试,测试的硬件平台基于ARM9 S3c2440[14],操作系统为Linux, 测试用车为订制实验车,轴距为59.5 cm,后轮距为43.6 cm.在实验中把右转弯的角度值设为正,左转弯的角度值设为负.系统通过测量方向盘旋转角度值分别为5°,-5°,10°,-10°,15°,-15°,20°,-20°.结果表明, 模拟轨迹和真实轨迹基本吻合.实验车测试现场如图4所示, 其中:深红色线条为模拟计算的倒车轨迹; 浅黑色线条为后轮的实际行驶轨迹.为更清楚地说明上述二者轨迹之间的误差,下面举例说明误差的计算过程: 在距车后轮起点垂直方向100 cm处(即y=100 cm)画一条平行于x轴的直线,该直线与系统模拟计算出的轨迹和实验车真实轨迹相交于两点间的水平距离,即为度量模拟轨迹精确度的误差,如图5所示.
图4 系统测试现场照片Fig.4 Picture of system testing
图5 误差示意图Fig.5 Schematic diagram of error
左右后轮在方向盘旋转上述角度值模拟出的轨迹和车轮实际行驶轨迹水平误差值分别列于表1和表2.本文所用实验车的车轮宽度为9.0 cm,以此数据和误差值进行对比可知本系统的精度较高.
纵向测距误差是指系统生成的轨迹纵向距离和实际轨迹纵向距离的差值,实验数据列于表3.实验过程:在实验现场,分别在距离实验车车尾垂直方向40,80,120 cm处做出标记点,用系统生成警戒区之间的纵向距离(即图4中蓝区、 绿区、 红区)和实际标记点做比较得到的值.表3中长度和角度所对应的数值即为警戒区和实际距离标记点的误差, 即纵向测距误差,角度即实验车的转角.
表1 左后轮轨迹误差Table 1 Error data of the left rear wheel trajectory
表2 右后轮轨迹误差Table 2 Error data of the right rear wheel trajectory
水平测距误差是指系统生成两个后轮轨迹的水平距离和实际轨迹水平距离的差值,实验数据列于表4.实验过程:在距离实验车尾部垂直方向的40,80,120 cm处画出实验车两后轮间距43.6 cm长度的水平线段和系统生成两后轮轨迹间的水平距离相比较即得到水平误差.表4中长度和角度所对应的值即为水平测距误差,角度即实验车的转角.
表3 纵向测距误差Table 3 Error data of experimental measurement of the vertical distance
表4 水平测距误差Table 4 Error data of experimental measurement of the level distance
根据实验数据可建立左右后轮的平均误差与车转角间的关系,如图6所示,其中:x轴为实验车转角;y轴为误差; ●表示右后轮平均误差随车转角的变化趋势; ■表示左后轮平均误差随车转角的变化趋势.为了使本系统生成的图像以实时方式显示,需要调整图像的播放帧率,经过多次测试本系统的显示端播放帧率列于表5.
表5 实际播放时的帧率测试Table 5 Test of frame rate of video playing
图6 左右后轮平均误差随车转角的变化趋势 Fig.6 Change trend of trajectories average errors of left and right rear wheels with the rotalional angle of vehicle steering wheels
由表5可见, 基于该算法系统1 d的平均帧率为12.5 帧/s,表明算法在实时上符合要求,而中午和晚上的平均帧率相差2帧,表明光线强度会影响基于该算法的系统播放端帧率.
通过对上述实验数据的分析可知,基于该算法系统出现误差的主要原因如下:
1) 摄像机标定算法理论上需要一个纯二维标定板,本文在制作标定板时,由于标定纸上有大量打印墨水,导致变干后标定纸出现微微的褶皱变形,从而使系统标定时产生微小误差;
2) 实验车轮在一定程度上的侧滑现象导致系统产生误差;
3) 测量过程中人为的标记测量符号产生误差.
综上可见, 本文提出的基于摄像机标定理论的实时倒车轨迹算法生成的带有预测功能的车轮轨迹达到了较高的精确度,有一定的实用价值.
[1] Furukawa Y,Ponce J.Accurate Camera Calibration from Multi-view Stereo and Bundle Adjustment [J].International Journal of Computer Vision,2009,84(3): 257-268.
[2] ZHANG Hui,Wong K Y K,ZHANG Guo-qiang.Camera Calibration from Images of Spheres [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2007,29(3): 499-502.
[3] Strecha C,Von Hansen W,Gool L V,et al.On Benchmarking Camera Calibration and Multi-view Stereo for High Resolution Imagery [C]//Proc IEEE Conf Computer Vision and Pattern Recognition.Anchorage: [s.n.],2008: 1-8.
[4] CHEN Yi-song,Horace I,HUANG Zhang-jin,et al.Full Camera Calibration from a Single View of Planar Scene [C]//Lecture Notes in Computer Science.Berlin: Springer,2008: 815-824.
[5] Davide Scaramuzza,Agostino Martinelli,Roland Siegwart.A Flexible Technique for Accurate Omnidirectional Camera Calibration and Structure from Motion [C]//IEEE International Conference on Computer Vision Systems (ICVS’06).Los Alamitos: IEEE Computer Society,2006: 45.
[6] CHEN Liang,PEI Hai-long,WU Yue.Programming for the Capture of Image on Video4 Linux2 [J].Microcomputer Information,2009,25(7): 65-67.(陈亮,裴海龙,伍越.基于Video4 Linux2的图像采集程序设计 [J].微计算机信息,2009,25(7): 65-67.)
[7] WU Rui-hong,ZHANG Guang-ren.Derivation and Experimental Verification of the Vehicle Trajectory for Backward Motion [J].2006,53: 94-102.(吴瑞鸿,张光仁.车辆倒车运动轨迹理论推导与验证 [J].车辆研测资讯,2006,53: 94-102.)
[8] Furukawa Y,Ponce J.Accurate Camera Calibration from Multi-view Stereo and Bundle Adjustment [J].Int J Comput Vision,2009,84(3): 257-268.
[9] Fiala M,SHU Chang.Self-identifying Patterns for Plane-Based Camera Calibration [J].Machine Vision and Applications,2008,19(4): 209-216.
[10] ZHANG Zheng-you.A Flexible New Technique for Camera Calibration [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11): 1330-1334.
[11] HU Nai-ping,LI Lu.The Research and Design of the Can Bus to Ethernet Gateway Based on SSL [C]//Proceedings of the Second International.Washington DC: IEEE Computer Society,2009: 135-138.
[12] Lanser S,Zirel C,Beutlhauser T.Multibildkalibrierung Einer CCD-Kamera [C]//Mustererkennung,Informatik Aktuell.Berlin: Springer-Verlag,1995: 481-491.
[13] Berzins V.Accuracy of Laplacian Edge Detectors [J].Computer Vision,Graphics,and Image Processing,1984,27(2): 195-210.
[14] Samsung.S3C2440A 32-Bit CMOS Microcontroller User’s Manual Revision 1 [EB/OL].2009-07-03.http:// www.samsungsemi.com/.