注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

dp: 生活的脚步,进步的点滴...

Cam、DSP、FPGA、PM、Life、More ...

 
 
 

日志

 
 

双目立体视觉原理  

2015-09-17 16:22:05|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

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

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


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

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

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

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

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

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

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

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


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

         立体校正应该分两步走:

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

         这一步很简单。可以这样:两个平面在方向上之间不是相差一个旋转矩阵R吗,那么我们让两个相机个旋转一半,但需注意二者的旋转,应该是反向的。如下式所示:


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

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

         先展示一个校正成功的图吧。

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

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

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

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

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

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

          那么我们设旋转矩阵为Rh , 


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


          大家可以进一步算一下:

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

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

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

      上面所做的一切努力都是为了最后的这一击——立体成像。假设左右图像点的完美匹配的。只看在几何上,三维坐标是如何被还原的。相对来说,最后的这一步,比前面是要轻松许多的,因为我们前面已经做了大量的工作。这些工作使得最后的这一步,由不可能称为可能,由复杂变得简单,吧啦吧啦。好吧,闲话少说,让我们一起来见证这一时刻吧。  

        此处我们按opencv中cvcalibratecamera2()函数得到的焦距f进行三维坐标的求解。

        请大家看下面示意图:


        根据最简单的相似三角形关系,我们就可以求出,物点坐标(X,Y,Z)。

        首先,


         其中,s为像素的物理尺寸,d就是两个摄像机间的视差,d=(uL-uR)s。


        我们得到的这个三维坐标,相当于是在右摄像机的摄像机坐标系上的。

       那么重建就是透视投影的逆过程,我们可以把这个过程表示成矩阵形式。我们定义Q为反投影矩阵。那么依照上式:

        齐次坐标形式的三维坐标恢复,矩阵形式如下:

        至此,双目视觉几何框架顺利收尾。希望博文对你有所帮助。


 感谢玉米:http://blog.csdn.net/onthewaysuccess

  评论这张
 
阅读(382)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016