【机器视觉3】双目立体视觉模型

双目立体视觉模型

  • 简单模型
  • 一般模型

简单模型

假设两个摄像机平行放置于同一高度、光轴平行、成像平面重合、焦距相同、左右图像每一行y坐标方向、大小相同,如下图所示:
【机器视觉3】双目立体视觉模型_第1张图片
由左右成像平面上的点、目标物点、焦距、摄像机中心基线距离的几何关系可以得到: { x l X = f Z x r ( X − D ) = f Z y l Y = y r Y = f Z \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(XD)xr=ZfYyl=Yyr=Zf设置视差 d = x l − x r d=x_l-x_r d=xlxr,则可求解出 P P P坐标: [ X Y Z ] = [ D x l / d D y l / d D f / 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 因此,只需获取基线距离 D D D、目标点左右成像坐标 p l p_l pl p r p_r pr、视差 d d d ,即可得到物体在左摄像机坐标系下的3D位置坐标。这种方法运算量少,适用于对精度要求不高的场景。

一般模型

实际摄像机由于制造工艺等原因,导致摄像机成像平面不在同一平面,且两摄像机光轴存在一定角度。因此必须建立双目立体视觉的一般模型来对实际系统进行分析。
【机器视觉3】双目立体视觉模型_第2张图片
设左摄像机坐标系 O l − X l Y l Z l O_l - X_l Y_l Z_l OlXlYlZl固定在世界坐标系,图像坐标系为 o l − x l y l o_l-x_ly_l olxlyl,焦距为 f l f_l fl。右摄像机坐标系 O r − X r Y r Z r O_r - X_r Y_r Z_r OrXrYrZr,对应图像坐标系 o r − x r y r o_r-x_ry_r orxryr,焦距为 f r f_r fr,其光轴与左摄像机成角 θ \theta θ
左右摄像机投影变换模型分别(图像坐标系为物理单位尺度): s l [ x l y l 1 ] = [ f l 0 0 0 f l 0 0 0 1 ] [ X l Y l Z l ] 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 [ x r y r 1 ] = [ f r 0 0 0 f r 0 0 0 1 ] [ X r Y r Z r ] 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}=1 Zlsl=Zrsr=1
设左摄像机坐标系相对右摄像机坐标系的变换矩阵为: R = [ r 1 r 2 r 3 r 4 r 5 r 6 r 7 r 8 r 9 ] , T = [ t x t y t z ] 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 因此,右坐标系下的坐标通过左坐标系下坐标以及变换矩阵表示为: [ X r Y r Z r ] = [ R T ] [ X l Y l Z l 1 ] \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 ] = [ X l Y l Z l ] = [ Z l x l f l Z l y l f l f l ( f r t y − y r t z ) y r ( r 7 x l + r 8 y l + f l r 9 ) − f r ( 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(frtyyrtz) 通过以上推导可知,已知左右摄像机焦距 f l f_l fl f r f_r fr、目标点在左右相机的坐标 p l p_l pl p r p_r pr、变换矩阵 R R R T T T就可以获取目标点的三维坐标。

你可能感兴趣的:(机器视觉,计算机视觉,机器学习,算法)