自动驾驶(二十一)---------Mobileye单目测距

       本文还是在传统机器视觉的基础上讨论单目测距,深度学习直接估计深度图不属于这个议题,主要通过mobileye的论文管中窥豹,相信离实际工程应用还有很远。

       mobileye2003年的论文:Vision-based ACC with a Single Camera: Bounds on Range and Range Rate Accuracy

       先看成像几何如图:

                                           自动驾驶(二十一)---------Mobileye单目测距_第1张图片

       其中:A是本车,前方车B和C,摄像头P,焦距f,摄像头高度H,和障碍物B、C的距离分别是Z1、Z2,B、C检测框着地点在图像的投影是y1、y2。那么按照相似三角形可以得出:y=fH/Z,所以Z=fH/y。

       下面是三个不同距离的估计结果:

                    自动驾驶(二十一)---------Mobileye单目测距_第2张图片

       1. 首先假设路面是水平面,不考虑道路的坡度,(实际上可以通过车道线的形状计算出道路的坡度)。

       2. 如何确定车辆和道路的接触点在图像中的位置,是计算车辆纵向位置的关键。由下式,像素的误差导致的距离误差是成二阶指数级的变化:

                                          

           例如:在 640x480图像中,FOV 47度,摄像头高度1.2m,焦长 f = 740,假设图像列向量 1个像素的误差,导致5%的深度误差:                            

          当然在ACC中,45m距离上5%的误差是可以接受的,ACC并不需要特别高的精度,驾驶员也不能识别出跟高的精度,重要的是需要计算出相对位置。(相对速度)

        3. 计算相对速度:,这里距离变化和时间变化都是不精确的,如何优化这两个参数计算相对速度是论文的关键。

            a. 通过宽度优化计算相对位置变化:       ; 

                 其中 W为车辆的实际宽度,w和w' 为两次成像车辆图片中的宽度。

                    代入上式:                    

            b. 通过两帧图像车辆相对位置变化:       

               其中Serr为两帧之间车辆对齐误差,w为第一帧图像中车辆的宽度,f为焦距,W车辆实际宽度,定义Sacc为误差比例。

               不考虑Z作为自变量,则:    注意:

                   i. 相对速度误差与相对速度无关。

                   ii. 相对速度误差随距离平方而增大。

                   iii. 相对速度误差与时间窗∆t成反比,利用时间相距较大的图像可以得到更精确的相对速.

                   iiii. 具有窄视场的摄像机(即增加f)将减小误差,线性地提高精度。                

       

 

你可能感兴趣的:(自动驾驶)