祁 淼,陈安柱,杨晓芳,严国军,3
(1.盐城工业职业技术学院汽车工程学院,江苏 盐城 224000;2.江苏大学汽车与交通工程学院,江苏 镇江 212000;3.东南大学机电工程学院,江苏 南京 210000)
随着科学技术的发展,汽车主动安全已经成为热门研究方向。车载相机用于车辆环境感知,以车道偏离报警系统(LDWS)[1]为例。LDWS 准确计算出车辆到左右车道线距离,利用文献[2]中提出的方法估算车辆偏离驶出车道时间,提前发出预警信号,提醒驾驶员谨慎驾驶,保护驾驶员的生命财产安全。为了发挥LDWS的最佳性能,要求车辆车道线的距离计算要有很高的精度,这对相机标定的精确度要求大大提高,只有相机精确标定出外参数,LDWS 才能更好的保护驾驶员。文献[3]对比了不同标定方法的适用场合、标定精确度以及操作简易程度,并制作了一种直线约束的标定算法模板。文献[4]基于MATLAB 算法利用LCD 显示器对相机进行标定。而文献[5]引入镜头畸变系数计算相机的内参与外参,不足的是该方法必须要求视平面与标定板夹角小于45°。
相机标定方法分为手动标定和自动标定两种,在三线标定法的基础上研究了相机的自动标定,并针对三线标定法需要三条相互平行的车道线这一条件做了改进。后来提出了一种快速标定模型,利用该模型进行标定,无需专用场地或者实际路面采图,避免了上路采图标定的不安全因素。最后通过对比实验验证新模型的可行性与可靠性验。
建立四个坐标系,分别为世界物理坐标系pv(xv,yv,zv),摄像机坐标系pc(xc,yc,zc),像素坐标系pk(i,j)和图像坐标系p(u,v)[6]。其中世界物理坐标系以车前保险杠中点垂直地面上的点为原点ov,水平向右为xv正方向,向前为yv正方向,竖直向上为zv正方向;摄像机坐标系以镜头光点为原点oc,往右为xc正方向,光轴为yc正方向,竖直向上为zc正方向;像素坐标系以图像左下角为原点,向右为i,向上为j;图像坐标系以图像对角线交点为原点,向右为u,向上为v,光点在世界物理坐标系的位置为T(l,d,h)。摄像机坐标系内的一点pc(xc,yc,zc)到世界物理坐标系点pv(xv,yv,zv)的转换关系为:
式中:相机俯仰角θ 以向上为正,相机方向角φ 指向yv左侧为正,
相机侧倾角φ 沿顺时针方向为正。
其中,r11=cosθcosφ;r21=-sinφcosθ;r31=sinθ;
r12=sinφcosψ+sinφcosθsinψ;
r22=sinφcosψ-sinφcosθsinψ;
r32=-cosθsinψ;r31=sinφsinψ-cosφsinψsinθ;
r32=cosφsinψ+sinφcosψsinθ;r33=cosθcosψ
根据三线标定法的要求,需要在世界坐标系中有三条平行的直线,并求得这三条直线在图像坐标系中的斜率和交点。本节着重介绍利用图像处理技术自动得到三线标定法需要的原始数据并给出相应处理结果。
实车采集的原图,如图1 所示。首先根据原图的相机安装位置设置兴趣区域,考虑到自动标定的实时性要求高,在不影响车道线识别的情况下对图像处理区域进行缩减,选择图像的中下区间,如图2 所示。由于车道线与路面具有较大颜色差异,所以很容易利用sobel 边缘增强及二值化处理技术得到计算机容易处理的车道线图片。本处理算法二值化阈值c=73,如图3 所示。
图1 相机采集原图Fig.1 The Original Picture Comes From the Camera
图2 兴趣区间Fig.2 Interest Areas
图3 二值化结果Fig.3 Two Value Results
从优化处理结果中可以看出每条车道线处理后变为两条白色细线,通过检测算法可以识别出不同白色细线在图像中的位置。以中间车道线为例,设左边白色细线所在位置xl右边白色细线所在位置xr,取(xl+xr)/2 为车道线当前检测边缘点位置,以此类推,同一条车道线将检测出多组边缘点,利用Hough 变换[7]对检测边缘点进行直线拟合即可得到车道线在图像中的直线方程。
设三条车道线方程为
联立求解即可得到三条车道线的同一消失点坐标p0(i1,j1),取每条车道线除消失点以外的坐标点各一个,分别为左车道线起始点pL(i2,j2),中间车道线起始点pM(i3,j3),右侧车道线起始点pR(i4,j4),将得到的四个坐标点代入三线标定法公式中即可得到相机外参数。
式中:abc—车道线到yv 的距离;gn—车道线斜率;dx,dy—水平和垂直的比例因子;fi、fj—i 和j 方向的焦距。
将f(x,y)设置为像素灰度值,其中roi 为兴趣区域。Pointi(x,y)用于存储边缘特征点。车道线检测的方法如下:
(1)对于ROI 中的点,在第一行(a>5)
(2)如果f(i,j)=f(i+1,j)=f(i+2,j)=255
(3)Pointl(x,y)=(i,j);
(4)如果F(i+3,j)=f(i+4,j)=f(i+5,j)=0
(5)继续寻找白色边缘点;
(6)如果f(i+a,j)=f(i+a+1,j)=f(i+a+2,j)=255
(7)Pointr(x,y)=(i+a,j);
(8)当前行车道线位置x=(Pointlx+Pointrx)/2;
(9)查找下一行车道线特征点。
上章给出的基于车道线的自动标定方法在实际操作实施过程有很大的不便捷性,不仅需要较大的实验场地,而且车辆需要反复调整车头前进方方向使其平行于“三线”,否则会影响标定精度。受文献[8-10]的启发,提出了一种新的适用于三线标定法的标定模型。假设在相机成像平面里有一点p(u,v),该点p 是由相机拍摄地面上的点q3而来,在相机光点到q3点这条射线上有无穷多个点构成一个点集合,根据透射投影定理,这个点集合中所有的点在成像平面里将有一个共同的像素点,即p(u,v),其成像模型,如图4 所示。
图4 透射投影模型Fig.4 Transmission Projection Model
根据透射投影模型,可以推断:三线标定法其核心就是获取地面上三条相互平行的车道线,而根据两点确定一条直线,只要给出六个坐标点,就等同于确定了这样三条车道线,如图5 所示。三线标定法需要测量出三条车道线距离本车的实际位置,这就增加了标定场地选取的困难度,即使实际道路选取标定车道线,也不能精确把握每条车道线到本车的实际距离,这可能造成标定结果存在较大的误差。为了解决这个问题,同时增加标定的安全性,提出了一种新的标定模型,此模型既不需要实车上路采图也不需要较大的标定场地,不仅便于在实验室里模拟标定验验证识别算法,也便于在实车上实现快速标定,有效地弥补了当前标定方法的不足。
图5 新标定模型Fig.5 New Calibration Model
在图5 中,已知摄像机光心坐标,及地面上确定三条车道线的六个点Gi(i=1,2,3,4,5,6),可以利用式(4)求解点Ai(i=1,2,3,4,5,6)的坐标。
求解出的A 点将位于同一平面内,Ai 点与Gi 点在成像平面里的成像点像素坐标是重合的,这样,只需将A 点设置好,对A 点进行拍摄采集,就达到了采集三条平行车道线相同的效果。利用图像处理技术得到A 点像素坐标即可进行三线标定法的标定。
为了验证新标定模型的可靠性,作者进行了数据测试。新标定模型的原始标定数据,如表1 所示。标定的结果,如表2 所示。为了测试标定结果,设计了对比实验。在地下车库中摆放多个纸盒子作为测试坐标点。用激光测距仪测量盒子到车头的距离与标定转换的距离对比。部分标定结果测距误差,距离单位为米,如表3 所示。将标定误差与真实距离的比值作为误差比例,通过对比可以看出误差随着标定距离的增加,但是在40m 内误差小于3%,能够满足标定测距的需求。
表1 标定数据Tab.1 Demarcated Data
表2 标定结果Tab.2 Calibration Results
表3 标定验证Tab.3 Calibration Verification
提出的基于图像处理的相机自动标定方法实现了智能车前置相机在实际路面上的自动标定,所提出的新的相机标定模型与现有标定方法相比,解决了标定场地面积需求大,实车上路标定初始参数不确定等问题。通过实验验证,提出的相机标定新模型能够满足LDWS 工作的精度需求,目前该方法已应用于工业实践中。