双目立体视觉模型
- 简单模型
- 一般模型
简单模型
假设两个摄像机平行放置于同一高度、光轴平行、成像平面重合、焦距相同、左右图像每一行y坐标方向、大小相同,如下图所示:
由左右成像平面上的点、目标物点、焦距、摄像机中心基线距离的几何关系可以得到:{x lX= fZ x r ( X − D )= fZ y lY=y rY= fZ \begin{cases}\frac{x_l}{X}=\frac{f}{Z}\\ \frac{x_r}{(X-D)}=\frac{f}{Z}\\ \frac{y_l}{Y}=\frac{y_r}{Y}=\frac{f}{Z}\end{cases} ⎩ ⎨ ⎧Xxl=Zf(X−D)xr=ZfYyl=Yyr=Zf设置视差 d = xl− xr d=x_l-x_rd=xl−xr,则可求解出 PPP坐标: [ X Y Z ]= [ D x l/dD y l/dDf/d]\begin{bmatrix}X\\ Y\\ Z\end{bmatrix}=\begin{bmatrix}Dx_l/d\\ Dy_l/d\\ Df/d\end{bmatrix} XYZ = Dxl/dDyl/dDf/d 因此,只需获取基线距离 DDD、目标点左右成像坐标 pl p_lpl、 pr p_rpr、视差 ddd ,即可得到物体在左摄像机坐标系下的3D位置坐标。这种方法运算量少,适用于对精度要求不高的场景。
一般模型
实际摄像机由于制造工艺等原因,导致摄像机成像平面不在同一平面,且两摄像机光轴存在一定角度。因此必须建立双目立体视觉的一般模型来对实际系统进行分析。
设左摄像机坐标系 Ol− XlYlZl O_l – X_l Y_l Z_lOl−XlYlZl固定在世界坐标系,图像坐标系为 ol− xlyl o_l-x_ly_lol−xlyl,焦距为 fl f_lfl。右摄像机坐标系 Or− XrYrZr O_r – X_r Y_r Z_rOr−XrYrZr,对应图像坐标系 or− xryr o_r-x_ry_ror−xryr,焦距为 fr f_rfr,其光轴与左摄像机成角 θ\thetaθ。
左右摄像机投影变换模型分别(图像坐标系为物理单位尺度): s l [ xlyl1 ]= [ fl0 0 0 fl0 0 0 1 ] [ XlYlZl]s_l\begin{bmatrix}x_l\\ y_l\\ 1\end{bmatrix}=\begin{bmatrix}f_l&0&0\\ 0&f_l&0\\ 0&0&1\end{bmatrix}\begin{bmatrix}X_l\\ Y_l\\ Z_l\end{bmatrix} sl xlyl1 = fl000fl0001 XlYlZl s r [ xryr1 ]= [ fr0 0 0 fr0 0 0 1 ] [ XrYrZr]s_r\begin{bmatrix}x_r\\ y_r\\ 1\end{bmatrix}=\begin{bmatrix}f_r&0&0\\ 0&f_r&0\\ 0&0&1\end{bmatrix}\begin{bmatrix}X_r\\ Y_r\\ Z_r\end{bmatrix} sr xryr1 = fr000fr0001 XrYrZr 其中,s l Z l=s r Z r= 1\frac{s_l}{Z_l}=\frac{s_r}{Z_r}=1Zlsl=Zrsr=1
设左摄像机坐标系相对右摄像机坐标系的变换矩阵为:R= [ r1r2r3r4r5r6r7r8r9],T= [ txtytz]R=\begin{bmatrix}r_1&r_2&r_3\\ r_4&r_5&r_6\\ r_7&r_8&r_9\end{bmatrix},T=\begin{bmatrix}t_x\\ t_y\\ t_z\end{bmatrix} R= r1r4r7r2r5r8r3r6r9 ,T= txtytz 因此,右坐标系下的坐标通过左坐标系下坐标以及变换矩阵表示为: [ XrYrZr]= [ R T ] [ XlYlZl1 ]\begin{bmatrix}X_r\\ Y_r\\ Z_r\end{bmatrix}=\begin{bmatrix}R&T\end{bmatrix}\begin{bmatrix}X_l\\ Y_l\\ Z_l\\ 1\end{bmatrix} XrYrZr =[RT] XlYlZl1 联立上式,可以计算出目标点在左坐标系(世界坐标系)下的坐标: [ X Y Z ]= [ XlYlZl]= [Zlxlf l Zlylf l fl( frty− yrtz) yr( r 7 x l+ r 8 y l+ f l r 9)− fr( r 4 x l+ r 5 y l+ f l r 6) ]\begin{bmatrix}X\\Y\\Z\end{bmatrix}=\begin{bmatrix}X_l\\Y_l\\Z_l\end{bmatrix}=\begin{bmatrix}\frac{Z_lx_l}{f_l}\\ \frac{Z_ly_l}{f_l}\\ \frac{f_l(f_rt_y-y_rt_z)}{y_r\left(r_7x_l+r_8y_l+f_lr_9\right)-f_r\left(r_4x_l+r_5y_l+f_lr_6\right)}\end{bmatrix} XYZ = XlYlZl = flZlxlflZlylyr(r7xl+r8yl+flr9)−fr(r4xl+r5yl+flr6)fl(frty−yrtz) 通过以上推导可知,已知左右摄像机焦距 fl f_lfl、 fr f_rfr、目标点在左右相机的坐标 pl p_lpl、 pr p_rpr、变换矩阵 RRR、 TTT就可以获取目标点的三维坐标。