无人驾驶视觉感知异同点介绍
本篇为无人驾驶3D视觉检测第一篇,主要介绍目前工业界使用较多的技术方案。该技术方案主要来自于论文3D Bounding Box Estimation Using Deep Learning and Geometry.同时结合目前发展较为成熟的2D图像目标检测算法来为了3D视觉检测应用到无人驾驶场景中。如果说为什么不直接使用深度学习直接估计视觉3D目标的9Dof,主要原因在于由于相机成像成图像平面是透射变换,天然损失其中深度信息。如果直接从图像平面估计出3D世界中的位姿,效果不是很好。
在介绍上面论文之前,我们先简单梳理一下坐标系。世界坐标系 ( x w , y w , z w ) (x_w,y_w,z_w) (xw,yw,zw)、相机坐标系 ( x c , y c , z c ) (x_c,y_c,z_c) (xc,yc,zc)、图像坐标系 ( u , v ) (u,v) (u,v),像平面坐标系 ( x , y ) (x,y) (x,y):
- 世界坐标系 ( x w , y w , z w ) (x_w,y_w,z_w) (xw,yw,zw)
- 相机坐标系 ( x c , y c , z c ) (x_c,y_c,z_c) (xc,yc,zc)
- 图像坐标系 ( u , v ) (u,v) (u,v)
- 像平面坐标系 ( x , y ) (x,y) (x,y)
相机内参矩阵K:
K = [ f x 0 c x 0 f y c y 0 0 1 ] K= \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} K=⎣⎡fx000fy0cxcy1⎦⎤
相机坐标系下沿着x轴旋转角度 α \alpha α,那么 R x R_x Rx:
R x = [ 1 0 0 0 c o s α − s i n α 0 s i n α c o s α ] R_x = \begin{bmatrix} 1 & 0 & 0 \\ 0 & cos^{\alpha}& -sin^{\alpha} \\ 0 & sin^{\alpha} & cos^{\alpha} \end{bmatrix} Rx=⎣⎡1000cosαsinα0−sinαcosα⎦⎤
相机坐标系下沿着y轴旋转角度 θ \theta θ,那么 R y R_y Ry:
R y = [ c o s θ 0 − s i n θ 0 1 0 s i n θ 0 c o s θ ] R_y = \begin{bmatrix} cos^{θ} & 0 & -sin^{θ} \\ 0 & 1 & 0 \\ sin^{θ} & 0 & cos^{θ} \end{bmatrix} Ry=⎣⎡cosθ0sinθ010−sinθ0cosθ⎦⎤
相机坐标系下沿着z轴旋转角度 β \beta β,那么 R z R_z Rz:
R z = [ c o s β − s i n β 0 s i n β c o s β 0 0 0 1 ] R_z = \begin{bmatrix} cos^{\beta}& -sin^{\beta} & 0 \\ sin^{\beta}& cos^{\beta} & 0 \\ 0 & 0 & 1 \end{bmatrix} R