[计算机视觉] (五)立体视觉相机标定

目录

概述

特征匹配

极线约束

反对称矩阵

极线约束求解


概述

在立体视觉系统中,一般需要用两个摄像机,需要通过标定,测量双摄像机之间的相对位置,如图1所示。

图1 双目相机几何关系

用两个摄像机观察周围环境, 在标定中,我们可以分别得到两个摄像机各自的内外参数,外参数表示空间点的世界坐标和相机坐标的映射关系,两个三维坐标的映射涉及到旋转和平移,所以分别用R1、t1与R2、t2表示外参,R矩阵表征旋转,t向量表征平移。则R1、t1表征摄像机C1与世界坐标系之间的映射,R2、t2表征摄像机C2与世界坐标系的映射。对任意一点P,如它在世界坐标系、C1坐标系与C2坐标系下的非齐次坐标分别为\vec{x_w}\vec{x_c_1}\vec{x_c_2},则

                                                            \vec{x_c_1} = \vec{R_1}\vec{x_w} + \vec{t_1}                            式(1)

                                                            \vec{x_c_2} = \vec{R_2}\vec{x_w} + \vec{t_2}                            式(2)

联立式(1)和式(2)得:

                                                 \vec{x_c_1} = \vec{R_1}\vec{R_2^-^1}\vec{x_c_2} + \vec{t_1} - \vec{R_2^-^1}\vec{t_2}                 式(3)

因此两个相机的相对几何位置关系可以使用以下的数学模型求取:

                                                                \vec{R} = \vec{R_1}\vec{R_2^-^1}                                式(4)

                                                             \vec{t} = \vec{t_1} - \vec{R_2^-^1}\vec{t_2}                              式(5)

以上关系式表示,如果对双摄像机分别标定,得到R1、t1与R2、t2,则双摄像机的相对几何位置R和t可由式(4)与式(5)计算。在立体视觉系统中,数据是两个摄像机获得的图像I_1I_2。如果p1、p2是空间同一点P在两个图像上的投影点,我们称p2为p1的对应点,反过来,p1是p2的对应点。在图像I_1上任取一点p1,如果我们知道它在I_2上的对应点p2的位置,则可以用立体视觉的方法计算空间点P的三维坐标,因此,立体视觉的关键问题是对I_1中的每一点p1找出I_2中的对应点p2的位置。

特征匹配

视觉测量时,需要对空间中的特征点在两幅或多幅图像中的图像坐标进行匹配。这些图像可能是不同的摄像机采集的,也可能是同一台摄像机在不同的视点采集的。所谓特征匹配,就是在不同的图像上找到同一个特征点的成像坐标。

图1所示为双目相机成像系统,场景点x为在摄像机的两个视点下均在视场内的一个空间点,O1和O2为摄像机在不同视点的光轴中心点,Π1和Π2为摄像机在不同视点的成像平面。

极(Epipolar)平面:场景点P与两个摄像机光轴中心点O1、O2构成的平面。如图1中的O1O2x平面;

极线:外极平面与成像平面的交线。如图1中的两条红色的线;

极点(Epipole):两个摄像机光轴中心点O1、O2的连线与成像平面的交点。如图1中的点e1和e2;

基线(Base line):两个摄像机光轴中心点O1、O2的连线。

                                                                      图2 双目相机的极线模型 

立体匹配(Stereo Matching):场景点x在两个摄像机成像平面的对应点称为对应点(x1和x2)。寻找对应点的过程称为特征匹配,又称为立体匹配图像配准

极线约束

由摄像机的内外参数模型有:

                               $$ \left[ \begin{array}{cc|c} u\\ v\\ 1 \end{array} \right] $$ = 1/z_c $$ \left[ \begin{array}{cc|c} f_\alpha \ 0 \ u_0 \ 0 \\ 0 \ f_\beta \ v_0 \ 0 \\ 0 \ 0 \ 1 \ 0 \end{array} \right] $$ $$ \left[ \begin{array}{cc|c} \vec{R} \ \vec{t} \\0^T \ 1 \end{array} \right] $$ $$ \left[ \begin{array}{cc|c} x_w\\y_w\\z_w \\ 1 \end{array} \right] $$ = 1/z_c \vec{K} $$ \left[ \begin{array}{cc|c} \vec{R} \ \vec{t} \end{array} \right] $$ $$ \left[ \begin{array}{cc|c} x_w\\y_w\\z_w \\ 1 \end{array} \right] $$ = 1/z_c \vec{M} $$ \left[ \begin{array}{cc|c} x_w\\y_w\\z_w \\ 1 \end{array} \right] $$  式(6)

其中的M向量定义为相机的基本映射矩阵,是一个3*4矩阵。

                                                       \vec{M} = $$ \left[ \begin{array}{cc|c} m_1_1 \ m_1_2 \ m_1_3 \ m_1_4 \\ m_2_1 \ m_2_2 \ m_2_3 \ m_2_4 \\ m_3_1 \ m_3_2 \ m_3_3 \ m_3_4 \end{array} \right] $$ = $$ \left[ \begin{array}{cc|c} \vec{M_3} \ \vec{m_4} \end{array} \right] $$                   式(7)

                                                                 \vec{P_h} = $$ \left[ \begin{array}{cc|c} x_w \ y_w \ z_w \ 1 \end{array} \right] $$^T = $$ \left[ \begin{array}{cc|c} \vec{P} \ 1 \end{array} \right] $$^T                      式(8)

于是,对于左右两个相机:

                                                               $$ \begin{cases} z_c_1 \vec{I_1} = \vec{M_1}\vec{P_h} = (\vec{M_1_1} \ \vec{m_1})\vec{P_h} \\ z_c_2 \vec{I_2} = \vec{M_2}\vec{P_h} = (\vec{M_2_1} \ \vec{m_2})\vec{P_h} \end{cases} $$                          式(9)

将式(8)代入式(9),得到:

                                                                         $$ \begin{cases} z_c_1 \vec{I_1} = \vec{M_1_1}\vec{P} + \vec{m_1} \\ z_c_2 \vec{I_2} = \vec{M_2_1}\vec{P} + \vec{m_2} \end{cases} $$                               式(10)

将式(10)中的P消去,得到:

                                             z_c_2\vec{I_2} - z_c_1\vec{M_2_1}\vec{M_1_1^-^1}\vec{I_1} = \vec{m_2} - \vec{M_2_1}\vec{M_1_1^-^1}\vec{m_1}               式(11)

式(11)的两边都是三维向量,即包含了三个等式,利用这三个等式消去z_c_1z_c_2,就可以得到\vec{I_1}\vec{I_2}的关系,这个关系就是极线约束。

反对称矩阵

三维向量\vec{t} = ( t_x \ t_y \ t_z ) ^T,则下列矩阵为向量t的反对称矩阵,记为$$ \left[ \begin{array}{cc|c} t \end{array} \right] $$_\times

                                                            $$ \left[ \begin{array}{cc|c} t \end{array} \right] $$_\times = $$ \left[ \begin{array}{cc|c} 0 \ -t_z \ t_y \\ t_z \ 0 \ -t_x \\ -t_y \ t_x \ 0 \end{array} \right] $$                                式(12)

反对称矩阵满足$$ \left[ \begin{array}{cc|c} t \end{array} \right] $$_\times = -($$ \left[ \begin{array}{cc|c} t \end{array} \right] $$_\times)^T$$ \left[ \begin{array}{cc|c} t \end{array} \right] $$_\times是一个不满秩的不可逆矩阵,另一些特性:

1)任意三维向量r与向量t的叉积(向量积)满足:\vec{t} \times \vec{r} = $$ \left[ \begin{array}{cc|c} t \end{array} \right] $$_\times \vec{r}

2)任意满足$$ \left[ \begin{array}{cc|c} t \end{array} \right] $$_\times \vec{r} = \vec{0}的向量r与t只差一个常量因子,即\vec{r} = k\vec{t}

极线约束求解

将式11的左边看成一个三维向量\vec{m},即

                                                          \vec{m} = \vec{m_2} - \vec{M_2_1}\vec{M_1_1^-^1}\vec{m_1}                                式(13)

则有:

                                   $$ \left[ \begin{array}{cc|c} m \end{array} \right] $$_\times\vec{m} = $$ \left[ \begin{array}{cc|c} m \end{array} \right] $$_\times(z_c_2\vec{I_2} - z_c_1\vec{M_2_1}\vec{M_1_1^-^1}\vec{I_1}) = \vec{0}           式(14)

z_c = z_c_1 / z_c_2,有:

                                                   $$ \left[ \begin{array}{cc|c} m \end{array} \right] $$_\times z_c\vec{M_2_1}\vec{M_1_1^-^1}\vec{I_1} = $$ \left[ \begin{array}{cc|c} m \end{array} \right] $$_\times \vec{I_2}                     式(15)

右边的向量$$ \left[ \begin{array}{cc|c} m \end{array} \right] $$_\times \vec{I_2} = \vec{m} \times \vec{I_2},该向量与\vec{I_2}正交,于是用\vec{I_2^T}左乘两边,得到:

                                                       \vec{I_2^T} $$ \left[ \begin{array}{cc|c} m \end{array} \right] $$_\times z_c\vec{M_2_1}\vec{M_1_1^-^1}\vec{I_1} = \vec{0}                         式(16)

式16就是两个图像的极线约束,在给定\vec{I_1}的情况下,式16就是一个关于\vec{I_2}的线性方程,即图2中的极线l_2的方程,反过来也是一样。式16还说明,在其中一个向量确定后,线性方程由\vec{M_2_1}\vec{M_1_1}两个矩阵决定。

所以,对于立体视觉相机,只需求出两个映射矩阵,就可求解双相机的相对位置和极限约束。

简化式(16):

                                                                    \vec{I_2^T} \vec{F}\vec{I_1} = \vec{0}                                          式(17)

F矩阵称为基本矩阵,是立体视觉中的一个重要概念,是要经常用到的概念。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值