zoukankan      html  css  js  c++  java
  • 单目深度估计(Monocular Depth Estimation)之摄像机运动对深度估计的影响

    转载请说明出处

    http://blog.csdn.net/zhubaohua_bupt/article/details/54093689


    最近利用单目相机在做三维重建相关的工作,下面总结一下摄像机运动对单目深度估计的影响。

    单目方法求取深度的一般流程是

    1设定待求取区域

    2根据帧间位姿和带有误差的深度计算像素在后来帧上的极线

    3在极线上寻找匹配

    4三角测量求出本次的观测深度值以及深度的不确定性

    5多次测量的深度数据以及方差融合

    6 去噪平滑深度图

    下面看一下相机的运动会对深度估计带来哪些影响。

    对以下文章的符号说明:

    T:相机相对于世界坐标系的位姿   大小4*4

    e:极点   (二维像素平面坐标)

    o:相机光心

    f:像素点在当前相机坐标系下的单位方向向量  (三维)

    d:像素深度

    p(u,v):像素平面坐标

    P(X,Y,Z):相机坐标系下的三维坐标

    t:图像平面或时间


    一:纯平移对匹配搜索极线的影响

    在平移不至于丢失共同视野的情况下,平移越大,匹配搜索极线越长。

    如下两幅图

      小平移



    大平移



    二:纯旋转对深度估计的影响

    从几何直观来看:

    我们求取深度的时候第2步要计算在后帧上的极线,纯旋转情况下,由于我们无法得到极线,因此也就无法匹配、三角测量求取深度。


    理论证明:

    t1和t2为两个时刻对应的图像平面,现在我们想利用t2时刻相机拍摄到的图像来求取t1时刻上像素的深度。

    假设:t1时刻的相机坐标系为世界坐标系,t2时刻的相机坐标系为t1时刻的相机坐标系纯旋转得到。


    那么t2时刻,相机相对于t1时刻的位姿为:


    接下来,我们试图计算t1时刻相机图像平面上的p点在t2时刻相机平面上的极线

    p点的最小深度为dmin,最大深度为dmax,f为p点在t1时刻相机坐标系下的单位空间方向向量,使得


    这里Pmin和Pmax同在一条由t1时刻光心发出的一条射线上。

    现在我们利用位姿把Pmin和Pmax转换至t2相机坐标系下,其坐标分别记作P’min和P'max



    那么问题就来了,我们本打算利用位姿把Pmin和Pmax转换至t2相机坐标系下,然后通过内参求出在t2时刻图像上对应的极点emax,emin。


    但是现在P'min和P'max成比例,也就是说:


    这两个点在t2相机坐标系下表示的三维点处在t2光心发出的某一条射线上,即它们对应的极点e(这里应该不能称为极点了吧。。)是同一个,因此也就无法计算极线。

    结论:单目相机在纯旋转的情况下无法计算深度。

    欢迎大家纠错与补充,一起进步。


  • 相关阅读:
    QQ浏览器X5内核问题汇总
    jQuery全屏滚动插件fullPage.js
    CSS3 Animation
    CSS3 Transition
    CSS3 Transform
    HTML5学习笔记(2):input type file的特性
    HTML5学习笔记(1):HTML5介绍与语法
    你必须知道的28个HTML5特征、窍门和技术
    Java内存释放——《Thinking in Java》随笔004
    构造器调用构造器——《Thinking in Java》随笔003
  • 原文地址:https://www.cnblogs.com/zhubaohua-bupt/p/7182802.html
Copyright © 2011-2022 走看看