图3.13 摄像机偏左时车道线(a)延长线(b)延长后
3.设置透视关系:即摄像机标定技术中所需要用到的设置。本视频图像选定中间车道线的白色虚线做为等距参照物,在距离相等(世界坐标系)的地方点击,用十字显示;按照3.2.3节所描述的方法,在右车道线附近点击与最下边的十字标号等距的点,显示为一条通过最下方十字标号的斜线;最后设置透视关系下的编辑框里输入两点之间的实际距离(单位是米),如输入6米,再点击设定按钮。透视关系用一个288大小的数组来表示,如 MappedDis[1501=1099表示第150行像素到第0行像素的距离是1099厘米,从而得出,120到150像素的距离,等于MappedDis[150]减去MappedDis[120]。288大小的数组中存储的是中间车道线上的点的标定结果,为了不引起由于摄像机架设位置不同带来的误差,需要通过对斜线斜率的计算得出补偿角度的大小,如本场景的补偿角度为:tan=0.008
4.相机位置:在下拉列表选择摄像机架设在路左还是路右,用CameraPos表示,摄像头在路左时CameraPos为0,在路右时CameraPoS为2。 3.3.2标定结果
为了验证本文提出的摄像机标定方法的正确性和可行性,本文分别对一维标定、二维标定、简化后的二维标定算法进行结果分析:
1.一维标定算法
一维标定设置界面如图3.3所示,以隧道中间车道线的白色虚线为参照物,经实地测量,每两条白线之间的距离为6米,在参数设置界面上分别单击每条短线的起始点,用灰色十字显示。
(l)中间车道线上的点
如图3.14所示,A、B为近处两条白色短线的结束点,所以A、B的距离应该等于6米用一维标定的结果来验证,A、B两点的实际距离为:
M、N为远处两条白色短线的结束点,所以M、N的距离也应该等于6米,用一维标定的结果来验证,M、N两点的实际距离为:
图3.14 一维定验证示意图(中间车道线)
可见AB的标定结果完全准确,与一维标定算法所测量出来的数值完全相等。M、N的实际距离与一维标定算法所测量出来的数值相差0.1米,有微小误差存在。近处的标定比远处误差小。经多次实验得出结论:对于中间车道线上的点,一维标定算法的标定精度较高,完全可以满足需要。
(2)偏离中间车道线的点
对于偏离中间车道线上的点,一维标定算法就会有一定误差,如图3.15所示。按照一维标定的原理,E, F两点的实际距离等于图3.14中的A, B两点的实际距离,P, Q两点的实际距离等于M, N两点的实际距离,都等于6米。即一维标定结果下:
MappedDis[F]-MappedDis[E]= MappedDis[B]-MappedDis[A]=6(m) MappedDis[P]-MappedDis[Q]= MappedDis[M]-MappedDis[N]=6(m)
图3.15 一维标定验证示意图(偏离中间车道线的点)
但是,实际情况下:
MappedDis[F]-MappedDis[E]不等于MappedDis[B]-MappedDis[A]
MappedDis[P]-MappedDis[Q]不等于MappedDis[M]-MappedDis[N]
E,F两点的实际距离应该等于P, Q两点的实际距离,G, H点的纵坐标分别为72和135,如图3.16所示。即实际情况下:
MappedDis[F]-MappedDis[E]= MappedDis[H]-MappedDis[G]
图3.16 一维标定误差(近处)
同理,对以远处的点,P, Q两点的实际距离应该等于K, J两点的实际距离,P, Q点的纵坐标为165和182.如图3.17所示。即实际情况下:
MappedDis[Q]-MappedDis[P]= MappedDis[J]-MappedDis[K]
图3.17 一维标定误差(远处)
根据上述结果可以检出:对于偏离中间车道线的点,一维标定算法会有误差,并且偏离中间车道线越远,误差就越大,这就需要用到二维标定。
2.二维标定算法
二维标定设置界面如图3.7所示,以隧道中间车道线的白色虚线为参照物,经实地测量,每两条白线之间的距离为6米,在参数设置界面上分别单击每条短线的起始点,用灰色小圆点显示,再在右车道线上分别点击与中间车道线对应的点,使之分别连成若干条直线,这些直线是根据车道的倾斜角度设定的,用于把标定扩展至二维。
(1)中间车道线上的点 如图3.18所示,A, B为近处两条白色短线的结束点,由标定设置界面可以看出,A, B的实际距离应该等于6米。用二维标定的结果来验证,A, B两点的实际距离为:
M, N为远处两条白色短线的结束点,由标定设置界面可以看出,M, N的距离也应该等于6米。用二维标定的结果来验证,M. N两点的实际距离为:
可见在二维标定情况下,中间车道线的标定精度和一维标定比较近似。同样,远处
的标定误差比近处的大。
图3.18 二维标定验证示意图
(2)偏离中间车道线的点
图3.18中,一维标定情况下,近处的E、F的实际距离等于A、B的实际距离,即为6米。使用二维标定,EF的实际距离为:
一维标定情况下,远处的P、Q的实际距离等于M、N的实际距离,等于6米。使用二维标定,P、Q的实际距离为:
E、F和P、Q的标定结果值都在5.7米左右,可见在二维标定算法下,对于远离中间车道线上的点,标定精度比一维标定算法精确很多。
由上述结果可见,二维标定不但能保持中间车道线上的高精度,还弥补了一维标定中摄像头架设位置所带来的误差,尤其是偏离中间车道线比较远的位置。经对4处不同场景的近30次测量,二维标定的精度约为96%。
3.简化后的二维标定算法
简化后的二维标定设置界面如图3.9所示,以隧道中间车道线的白色虚线为参照物,经实地测量,每两条白线之间的距离为6米,在参数设置界面上分别单击每条短线的起始点,用灰色小圆点显示,再在右车道线上点击一点,与中间车道线上的第一个点连成一条直线,这条直线是根据车道的倾斜角度设定的,用于计算车道倾斜角,对标定做角度补偿。
(l)中间车道线上的点
对二维标定进行简化后,图3.18中A、B和M、N的标定结果即为一维标定中A、B和M、N的结果,即:
(2)偏离中间车道线的点
如图3.19所示,本场景的补偿角度a=0.008,E、F、P、Q四点所在的水平线都旋转a角度,求出其与中间车道线的焦点G、H、K、J的纵坐标分别为65、130、164、181。
图3.19 简化后的二维标定验证示意图(偏离中间车道线的点)
对二维标定进行简化后,图3.19中E, F的实际距离为: 图3.19中P, Q的实际距离为: 由上述结果可见:
简化前:标定结果EF=5.74(cm),标定结果PQ=5.69(m) 简化后:标定结果EF=5.64(cm),标定结果PQ=5.61(m)
简化后的二维标定比简化前有微小误差,经对4处不同场景的近30次测量,简化后的二维标定精度约为95%,比简化前损失了1%的精度,但是该算法在对摄像机标定给予一定角度补偿的同时,大大减少了计算成本,而且95%的标定精度已经可以满足本文测速所需。所以本文最终采用了简化后的二维标定算法。
简化后的二维标定算法法的部分标定结果见图3.20(标定结果所对应的视频图是视频图3.19的288行像素所对应的世界坐标系距离。如无特别说明,后面章节中涉及到用标定结果计算速度时,用的都是此视频图像)。
行数(像素) 实际距离(厘米) 行数(像素) 实际距离(厘米) 0 1 3 6 140 141 947 961