首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

双照相机景深分析的思路

2012-06-22 
双相机景深分析的思路一、大致思路输入:两个平行相机拍摄到的照片Step1、照片预处理,包括照片校正,剔除左右

双相机景深分析的思路

  一、大致思路

   

输入:两个平行相机拍摄到的照片

Step1、照片预处理,包括照片校正,剔除左右相片曝光相差太大的照片,用它们做景深估计可能会出错

Step2、使用MATLAB相机标定工具箱先后进行单相机标定和双相机标定,确定三个相机的内参数,以及相对位置关系

Step3、校准左右相机的图片,保证对每一组照片,左右相机中物体具有相同高度

Step4、使用MATLAB双目视觉工具箱,做景深估计,进而得到图片中不同位置处的场景深度

 

二、照片的标定结果

通过单相机标定,确定内参

通过双目标定,确定两个相机是否平行,以及它们之间的距离。

 左上相机和右上相机之间的位置关系

 旋转向量        om = [ 0.00604   0.00170  0.00245 ] 

 平移向量        T = [ -0.79953   -0.00456  -0.00976 ]   以米为单位

 说明左上相机和右上相机可以认为是平行且等高度的

    

三、校准左右相机的图片

     要达到双目测距的要求,必须保证对每一组照片,左右相机中物体具有相同高度

需要说明的是,两个相机必须是等高且平行的,如果不是,需要做校准操作。

       比如原图

     

双照相机景深分析的思路

图 1

校准为 

双照相机景深分析的思路

图 2

四、景深估计

4.1 双目测距的基本原理

双照相机景深分析的思路

图 3

4.2 景深的计算

    

双照相机景深分析的思路

四、计算效果的演示

     根据上面的原理,计算得到的景深图。

双照相机景深分析的思路

     图 4 是演示程序运行的效果

图 4

      图 5是深度图的一个截图,注意深度图是3维的,记录了照片中大部分像素点的深度信息。

双照相机景深分析的思路

                                  图 5

  图5中有一辆车,把它放大后截图,如图6.

   双照相机景深分析的思路

图 6

    这辆小车,测出他的头和尾的距离是2.8米,这和实际生活经验吻合,因为小轿车一般长度3到4米,而这辆车属于迷你型,长度自然短一点。

五、进一步讨论

 Matlab双目视觉工具箱的计算思路的说明

    Matlab双目视觉工具箱的基本思想,是对左右相机的图片做块匹配,从而确定左右图片之间的映射关系,由于在“校准左右相机的图片”这一步时,已经保证了相同的物体在左右照片中一定位于同一行,因此只需要判断它们所处的列之间的关系就可以了。

   具体的做法,是对右图的每一个像素点,提取一个围绕它的7*7像素块,然后在左图的同一行中寻找匹配块。为了优化搜索的效率,可以假设匹配块的列与右图中的待匹配块的距离在15个像素以内。左右图中匹配块之间的距离,也就是估算景深时所需要的视差disparity(公式(2))。据此可以做景深估算。    

   图7是工具箱的帮助中给出的某次块匹配的效果。

双照相机景深分析的思路

图7

      为了改善计算效率,提升效果,工具箱中又做了金字塔分层计算、动态优化等。

      需要说明的是,这个基于匹配来确定视差进而计算景深的原理决定了两种情形下,会出现漏洞区域:

       (1)视差为0。如图7(a),(b)所示,左右相机拍摄的挂白板的墙壁重合在一起。 

       (2)视差虽然不为0,但由于场景几乎没有纹理,所以匹配的时候,误以为视差为0。如图7(c),(d)所示,天空是纯白色,无法准确匹配,所以这部分的景深也是无法计算的。

     从景深的计算公式(公式(2)(3))我们可以看到,当视差为0,景深的估算没有意义。

                    双照相机景深分析的思路 

目前方法面临的几个瓶颈

1、计算能力欠缺,只能处理缩小16倍以后的图,去除绘图等冗余操作后代码有多少优化的空间。

2、目前还做不到对图像中每一个位置都计算出深度,计算出来的部分也存在漏洞,比如图6中的车就破了洞。必须进一步优化效果,才能达到进一步应用的需要。

  转载请注明

  来自  梁登的技术博客 http://blog.csdn.net/ldily110

热点排行