实验背景
本文是一个小实验的结果,针对的问题是是否可以根据图片交通的视频得到汽车的行驶速度,更进一步其实是得到图片上的某段实际距离。
这个问题有非常明确的问题定义,是计算机标定,属于计算机图形学的范畴。有一套理论,旋转矩阵之类的东西。但是是否可以更加简单的方法。
于是有了本文的小实验。
模拟场景
首先说明应用场景。如下图,这种有分道线的道路。
采用方法
这种情况要利用交通图片中的可用的信息。
众所周知,分道线实际上是有规格标准的:高速、一级路,白实线长6米,间距9米;二级路,白实线长4米,间距6米;三级路,白实线长3米,间距4米;四、五级路,白实线长1-2米,间距3米.
测速是需要稍微长一点的距离,距离短的话误差会比较大,于是直接利用分道线的长度是不科学的,是否可以求得更长的距离?
利用交比的性质可以得到上述问题的解。
根据交比的公式和道路上分道线的长度性质,可以得到方程求解中间P2到P3的距离,以便后面的求解。
比如想求得y的长度,可以列方程解决。
根绝实际需求可以得到m的长度,求法也是列方程,与上述情景类似。
实验及结果
在操场进行了测试。
测量用上述的比较笨的像素点标定进行测试,然后进行计算
由于matlab自身的运算功能比较强大自带函数可以解非线性方程组,所以代码实现非常简单,得到的结果也比较好,在1m这个数量级
误差在1-10cm左右。从此处证明了这个方法的正确性。
实际长度 290.0cm 计算值 309.9002 281.5952
实际长度 149.5cm 计算值 151.7697
由于是手动标定坐标,这个误差明显增大,如果采用划线的方法误差估计在1-2cm左右。
结果分析
实验验证了理论的正确性,可以算作简单的测量距离的方法。但是条件限制比较多。,比如分道线的规格,而且是一条直线上的距离,分道线两侧的距离就不能直接求得,需要多一维的信息才可以,需要给出相机的一些参数,比如拍摄高度剩,而且还需要计算机标定中旋转矩阵等方法。