(七)立体标定与立体校正 【计算机视觉学*笔记--双目视觉几何框架系列】

发布于:2021-09-17 05:58:25


七、立体标定与立体校正


? ? ? ? 这篇博文中,让玉米和大家一起了解一下,张氏标定是怎样过渡到立体标定的?在这里主要以双目立体视觉进行分析。对于双目立体视觉,我们有两个摄像头。它们就像人的一双眼睛一样,从不同的方向看世界。两只眼睛中的图像的视差,让我们对世界有了三维的认识。


? ? ? ? 那么,想要知道视差,首先应该知道双目视觉系统中两个摄像头之间的相对位置关系。我们可以通过同时对两个摄像头进行标定,分别得到二者相对同一坐标系的旋转矩阵和*移矩阵。获得这两个矩阵的过程,就是立体标定的过程。也即是:从张氏标定走向立体标定!


? ? ? ?两摄像头之间的旋转矩阵和*移矩阵可以由下式求出:





? ? ? ?其中,R为两摄像头间的旋转矩阵,T为两摄像头间的*移矩阵。Rr为右摄像头经过张氏标定得到的相对标定物的旋转矩阵,Tr为右摄像头通过张氏标定得到的相对标定物的*移向量。Rl为左摄像头经过张氏标定得到的相对相同标定物的旋转矩阵,Tl为左摄像头经过张氏标定得到的相对相同标定物的*移向量。



? ? ? 两个式子是可以通过数学代换推导来的。但玉米觉得对这样有明显物理意义并且空间过程简单的计算式。物理上的空间想象,比纯代数代换,要生动的多。并且有利于大家揣摩整个物理过程。



? ? ? 在玉米眼里,这两个式子是这样的:


? ? ? 对于R,首先用T把左摄像机坐标系*移到右摄像机坐标系上(即两坐标系远点重合)。然后在同一参考系下的两个旋转矩阵相乘,表示世界坐标先向右旋转到Rr ,再向左旋转Rl。那么两次旋转后得到的旋转,就是有摄像机旋转到左摄像机所需的旋转矩阵R。


? ? ? 对于T,那就更容易理解了,先用R对左坐标系旋转一下,把左右两摄像机调成*行,然后直接*移向量相减,即得到。两摄像机之间的*移向量T。



? ? ? 上面求得的R和T就是立体标定得到的参数了。


? ? ? 那么运用的立体标定所得的参数了,下一步我们该做什么呢?答案是:立体校正。


? ? ? 在介绍立体校正的具体方法之前,让我们来看一下,为什么要进行立体校正?


? ? ? 因为当两个图像*面是完全共面行对准时,计算立体视差是最简单的。但是,在现实的双目立体视觉系统中,是不存在完全的共面行对准的两个摄像机图像*面的。所以我们要进行立体校正。立体校正的目的就是,把实际中非共面行对准的两幅图像,校正成共面行对准。如下面示意图所示。(共面行对准是指:两摄像机图像*面在同一*面上,且同一点投影到两个摄像机图像*面时,应该在两个像素坐标系的同一行)





有了上述铺垫,下面让玉米给大家陈述一下基于立体标定所获参数的立体校正的数学原理,或者说是几何原理。但玉米在这里,主要和大家分享一下,如此校正的物理意义。


???????? 立体校正应该分两步走:


? ? ? ? ?1、 将两个图像*面拉回同一*面。


? ? ? ? ?这一步,该怎么做呢?玉米相信,经过这么多铺垫,大家应该早就心里有数了。这一步很简单。可以这样:两个*面在方向上 ? ? ? ? ? ?之间不是相差一个旋转矩阵R吗,那么我们让两个相机个旋转一半,但需注意二者的旋转,应该是反向的。如下式所示:





? ? ? ? ?上面的这个公式是玉米根据物理意义自己总结的。rl 、rr 分别代表左摄像机和右摄像机为达到共面所需的旋转矩阵。rl、rr程度 ? ? ? ? ? ? 相同,但旋转方向相反。左右相机分别经历了这样的旋转之后,二者就已经共面了。大家应该明白了吧?


? ? ? ? ? 2、 旋转图像使得同行对准


? ? ? ? ?玉米在这里先为大家展示一个,校正成功的图吧。






? ? ? ? ? ? ? ? ? 大家可以像小学时候写看图说话作文一样,观察一下图中校正前和校正后左右两摄像机的图像到底发生了什么本质的变 ? ? ? ? ? ? ? ?化。


? ? ? ? ? ? ? ? ? 玉米的答案是:左右两图分别绕光轴作了旋转,旋转过后两摄像机的主点连线*行像素坐标的行线。


? ? ? ? ? ? ? ? ? 玉米的答案也是自己对行对准的理解,比较通俗。这与很多书上用极几何术语描述的有些不同,大家可以思考一下,玉米 ? ? ? ? ? 说的有没有道理。

? ? ? ? ? ? ? ? ? ?好,既然已经明确了,要达到行对准,图像所需发生的变化。那么就让我们用数学表达式来表达它们吧。




? ? ? ? ? 玉米画了一个简单的示意图,画的丑大家不要见笑。


? ? ? ? ? 红色的线表示的是校正后的行线,其是左右对准的。大家可以看到,从原图像的行线转到校正后图像的行线,左图像转动了α,右图像转动了θ。那么怎样来确定两个旋转角度呢?


? ? ? ? ? ?大家可以回忆一下,我们在本系列博文中的第二篇中讲述刚体变换时,把旋转矩阵按不同轴分解的方法。可以看做是沿光轴旋转,旋转目的是与主点连线*行。先以左图像为例:

? ? ? ? ? 那么我们设旋转矩阵为R
h ,?





? ? ? ? ? 则Rh可以表示为以归一化T(*移向量):e1为旋转的指针,则随之e2为e1与光轴的叉积,e3为e2与e1的叉积:








? ? ? ? ? 大家可以进一步算一下:






? ? ? ? ? 我们发现,其实行对准就是绕e3方向,转了α。同样的,对右图就是转了θ。


? ? ? ? ? 通过上面的推导,我们就把立体标定与立体校正中的数学思想理清楚了。其实,立体匹配是有很多种方法的,玉米在里只是介绍了立体校正的基本原理。其他方法中,有一些可以不依赖标定参数,如果大家想要对立体校正进行深入研究,大家可以搜索一些经典论文进行深入学*。如:A. Fusiello, E. Trucco, and A. Verri.写的 Acompact algorithm for rectification of stereo pairs.等等


? ? ? ? ?截止目前对于三维重建的所有准备工作,都已完成。几何框架也仅剩下最后一步:立体成像。(因为本系列博文只介绍双目视觉的几何架构,所以跳过匹配不谈)玉米在下一篇博文中将与大家分享一下,几何脉络的最终果实:立体成像。这也是我们对于双目视觉几何框架推导和理解的最终目标。


?


? ? ? ? ?玉米才疏学浅,文中如有纰漏,请大家批评指正!











相关推荐

最新更新

猜你喜欢