概述
ADAS功能开发中,许多的功能(LKA、ACC、AEB、TLR和PD/VD等)在完成检测识别任务后,通常需要进行距离的计算,这就需要对目标物的准确识别,这是进行测距的第一步,也是很重要的前提条件,如果无法针对目标物进行准确地识别,也就无法准确地估计这些目标物的距离。目前,基于视觉和雷达测距是目前用的最多的方法,笔者通过最近的学习,整理了几种基于视觉的测距模型。(请批评指正!)
1、高度三角形测距(单目)
此测距模型可以使用消失点和图像中心进行计算,也可以采用图像的下边沿和图像中心进行计算,两种方法的计算过程和原理大致相同。由于模组的感光芯片和镜头安装时会出现误差,光轴会出现偏移,并且图像会有不同程度的畸变,为了减小误差,可以事先进行模组标定(根据需要)。
另外,此测距模型使用于在地面上的目标物,例如,汽车、行人等。
(1)使用消失点和图像中心进行计算
点C为图像中心,B为目标物下边沿中点,B’和C‘是点B和点C在图像投影面上的投影,fp为消失点,故可以得到以下关系:
γ = a r c t a n ( ( x − x 0 ) / f ) ) \gamma=arctan((x-x0)/f)) γ=arctan((x−x0)/f))
β = a r c t a n ( ( x e − x 0 ) / f ) \beta=arctan((xe-x0)/f) β=arctan((xe−x0)/f)
α = β − γ \alpha=β - γ α=β−γ
故:
D = H / t a n ( β − γ ) \ D = H/tan(β - γ) D=H/tan(β−γ)
(2)使用消失点和图像下边沿点进行计算
点C为图像中心,B为目标物下边沿中点,E为图像下边沿的点(需要实际测量出摄像头距离图像下边沿的距离d),B’、C‘和E‘是点B、点C和点E在图像投影面上的投影。(计算方式参考上文)
2、时差三角形测距模型(单目)
此测距模型所使用的方法:根据目标物尺寸在图像中的变化率,直接估算摄像头到目标物的距离,目标物可以是移动的,也可以是静止的;例如交通限速牌和红绿灯这类固定的目标物,当目标物为车辆时,可以根据车辆尺寸在图像中的变换率,估算TTC(碰撞时间)。
设ds为图像中目标物宽度的相对变化率,w为图像中目标宽度(pixel),则:
d s = w 2 − w 1 w 1 = w 2 w 1 − 1 \ d_s = \frac {w_2 - w_1 }{w_1}=\frac{w_2}{w_1}-1 ds=w1</