Vision-based ACC with a Single Camera
本文为基于MobliEye的论文理解。文中将路面是平的和相机水平(光轴平行于路面)安装作为假设条件,但可以在文章的基础上,对摄像机角度和道路坡道进行补偿。
测距
单目相机测距的方法通常有两个:
1.车辆在图像中的大小
2.车辆底部在图像中的位置
由于车辆的大小并不是固定的,方案一并不可取。
这里引入方程,其中Z为摄像头与前面车辆底部的水平间距;y为投影到图像上的高;H为相机的高度。y = f H Z
y=\frac{f H}{Z}
y = Z f H
详细的示意图可见Fig.1.
相机被安装在了A车上,针孔为P点,焦距为f(单位mm,图中仅方便辨认)
在实际中,车辆与道路的误差在1个像素点内。因此距离的误差Z e r r Z_{err} Z e r r 可以被写成:Z e r r = Z n − Z = f H y + H n − Z = f H f H Z + n = n Z 2 f H + n Z
Z_{e r r}=Z_{n}-Z=\frac{f H}{y+\frac{H}{n}}-Z=\frac{f H}{\frac{f H}{Z}+n}=\frac{n Z^{2}}{f H+n Z}
Z e r r = Z n − Z = y + n H f H − Z = Z f H + n f H = f H + n Z n Z 2
n代表接触点的位置差,将其设定为1且f H > > n Z fH>>nZ f H > > n Z ,得:Z e r r ≈ n Z 2 f H
Z_{e r r} \approx \frac{n Z^{2}}{f H}
Z e r r ≈ f H n Z 2
误差随着距离的变化呈二次方增长。
Example: In our case a 640x480 image with a horizontal FOV of 47° gives f= 740pixels. The camera height at H= 1.2m. Thus assuming 1 pixel error, a 5% error in depth is expected at a distance of:
带入前式,Z = Z e r r Z f H = 0.05 ∗ 740 ∗ 1.2 = 44 m
Z=\frac{Z_{e r r}}{Z} f H=0.05 * 740 * 1.2=44 m
Z = Z Z e r r f H = 0 . 0 5 ∗ 7 4 0 ∗ 1 . 2 = 4 4 m
这个例子是表明,在90m左右误差大约10%,44m误差约为5%。
测速
离散系统通过使用离散积分v = Δ Z Δ t v = \frac{\Delta Z}{\Delta t} v = Δ t Δ Z 来测速。
通过尺度改变计算速度
令w和w’分别为目标车辆在位置Z和Z’的高度,方程可以写为:w = f W Z w ′ = f W Z ′
w =\frac{f W}{Z} \\
w^{\prime} =\frac{f W}{Z^{\prime}}
w = Z f W w ′ = Z ′ f W
带入离散积分内,可得:v = Δ Z Δ t = Z ′ − Z Δ t = f H W ′ − f H W Δ t = f H w − w ′ w ′ w Δ t = Z w − w ′ w ′ Δ t
v=\frac{\Delta Z}{\Delta t}=\frac{Z^{\prime}-Z}{\Delta t}=\frac{\frac{f H}{W^{\prime}}-\frac{f H}{W}}{\Delta t}=\frac{f H \frac{w-w^{\prime}}{w^{\prime} w}}{\Delta t}=\frac{Z \frac{w-w^{\prime}}{w^{\prime}}}{\Delta t}
v = Δ t Δ Z = Δ t Z ′ − Z = Δ t W ′ f H − W f H = Δ t f H w ′ w w − w ′ = Δ t Z w ′ w − w ′
定义尺度s:s = w − w ′ w ′
s=\frac{w-w^{\prime}}{w^{\prime}}
s = w ′ w − w ′
得到速度:v = Z s Δ t
v=\frac{Z s}{\Delta t}
v = Δ t Z s
计算速度误差
这里引入了一个对齐误差S e r r S_{err} S e r r (alignment error)的概念,对齐误差在0.1个像素是可能的(这里存在疑问)。配准误差的影响取决于目标在图像中的大小。定义尺度误差S a c c S_{acc} S a c c :s a c c = s e r r w = s e r r Z f W Δ t
s_{a c c} =\frac{s_{e r r}}{w} =\frac{s_{e r r} Z}{fW\Delta t}
s a c c = w s e r r = f W Δ t s e r r Z
假设测距完全准确,相对速度误差为:v e r r c = Z s a c c Δ t = Z 2 s e r r f W Δ t
v_{e r r}^{c} =\frac{Z s_{a c c}}{\Delta t}
=\frac{Z^{2} s_{e r r}}{f W \Delta t}
v e r r c = Δ t Z s a c c = f W Δ t Z 2 s e r r
这里可以知道:
相对速度误差与相对速度无关
相对速度误差与距离的平方成正比
相对速度误差与时间间隔成反比,因此时间越长越好
有一个窄的FOV(增大f)可以提高精度
此时将测距的误差项添加上,v z e r r v_{zerr} v z e r r 速度在距离上的误差:v z e r r = Z e r r S Δ t = n Z 2 f H s Δ t = n Z v f H
v_{z e r r}=\frac{Z_{e r r} S}{\Delta t}=\frac{n Z^{2}}{f H} \frac{s}{\Delta t}=\frac{n Z v}{f H}
v z e r r = Δ t Z e r r S = f H n Z 2 Δ t s = f H n Z v
合并可得:v e r r = Z 2 s e r r f W Δ t + n Z v f H
v_{e r r}=\frac{{Z^{2} s_{e r r}}}{f W \Delta t}+ \frac{n Z v}{f H}
v e r r = f W Δ t Z 2 s e r r + f H n Z v
通过此式,依旧可以知道,误差可以通过延长时间来减小。然而,Δ t \Delta t Δ t 在增大后,速度计算通过有穷积分是不准确的。
Z ( Δ t ) = 1 2 a Δ t 2 + v Δ t + Z 0 Z(\Delta t) =\frac{1}{2} a \Delta t^{2}+v \Delta t+Z_{0} Z ( Δ t ) = 2 1 a Δ t 2 + v Δ t + Z 0 v ( Δ t ) = a Δ t + v 0 v(\Delta t) =a \Delta t+v_{0} v ( Δ t ) = a Δ t + v 0
此时a为相对加速度。换种方式,通过使用相对距离差来计算速度:Δ Z = Z ( Δ t ) − Z 0 = 1 2 a Δ t 2 + v 0 Δ t
\Delta Z=Z(\Delta t)-Z_{0}=\frac{1}{2} a \Delta t^{2}+v_{0} \Delta t
Δ Z = Z ( Δ t ) − Z 0 = 2 1 a Δ t 2 + v 0 Δ t
除以Δ t \Delta t Δ t ,这时候可以发现,除了v 0 v_0 v 0 ,多了一个误差项:Δ Z Δ t = 1 2 a Δ t + v 0
\frac{\Delta Z}{\Delta t}=\frac{1}{2} a \Delta t + v_0
Δ t Δ Z = 2 1 a Δ t + v 0
带入v e r r v_{err} v e r r 中,误差项为:v e r r = Z 2 S e r r f W Δ t + n Z v f H + 1 2 a Δ t
v_{e r r}=\frac{Z^{2} S_{e r r}}{f W \Delta t}+\frac{n Z v}{f H}+\frac{1}{2} a \Delta t
v e r r = f W Δ t Z 2 S e r r + f H n Z v + 2 1 a Δ t
这时候可以求导取最优解:− Z 2 s e r r f W Δ t 2 + 1 2 a = 0
-\frac{Z^{2} s_{e r r}}{f W \Delta t^{2}}+\frac{1}{2} a=0
− f W Δ t 2 Z 2 s e r r + 2 1 a = 0
得:Δ t = 2 Z 2 s e r r f W a
\Delta t=\sqrt{\frac{2 Z^{2} s_{e r r}}{f W a}}
Δ t = f W a 2 Z 2 s e r r
获得最终的速度误差:v e r r = Z 2 a s e r r f W + n Z v f H
v_{err} = Z \sqrt{\frac{2as_{err}}{fW}} + \frac{nZv}{fH}
v e r r = Z f W 2 a s e r r + f H n Z v
在最优解时,速度误差与距离Z呈线性相关。
当加速度为0时值为无穷大,因此系统要限定在Δ t = 2 s \Delta t = 2s Δ t = 2 s