当前位置: 代码迷 >> 综合 >> 三维重建 3D reconstruction 有哪些实用算法?
  详细解决方案

三维重建 3D reconstruction 有哪些实用算法?

热度:41   发布时间:2024-01-16 00:19:15.0

作者:lei tai
链接:https://www.zhihu.com/question/29885222/answer/100043031
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

首先一切建立在相机模型 x=kPX 上(x,X分别代表图片和空间中的二维三维齐次坐标,k为相机内参矩阵,P=[R | t] 为空间坐标系到相机坐标系的 orientation- R 和 translation- t)

1, 首先对某一场景多角度多位置得到很多初始数据,选择其中的某两个来初始化,选定其中一个为空间原点。

  1. 通过SIFT SURF等特征点查找匹配之后,用 8点法 和 RANSAC,多次计算两张图之间的Fundamental Matrix,选择其中最好的一个

3.用F-matrix计算Essential-matrix

4, 用E-matrix计算相机的R和T,需要用SVD分解,因为orientation R是一个正交阵。

这里会通过判断点在前面后面得到最好的一种

5, 得到两个相机之间的P矩阵之后,通过对应点,用Triangulation计算对应点的空间坐标。

每个相机的P矩阵有了, 将三维空间的点乘以P矩阵得到二维空间坐标, 与实际上二维空间的坐标然后叉乘为0.

  1. 第三个位置的照片,直接根据已有的上步计算的点,与第三个位置图片上点的对应关系,计算P矩阵。

注意,P1,P2是知道的

  1. 最后全局优化,Bundle Adjustment

全局优化, 三维点的位置 , 相机的旋转与偏移

8, Bundle Adjustment所有的艺术就是优化 hessian matrix的逆矩阵

------------------------------------------------------------------------------------------------------------推荐宾大Shi Jianbo教授在Coursera上的公开课 Robotics:Perception上面所有的截图都来自他最后一次课的视频讲义截图https://www.coursera.org/learn/robotics-perception/home/welcome配合视觉圣经 Multiple View Geometry来看简直完美。Ransac, Bundle-adjustment, 2-View, Homography全部都有。一共四周,有线性代数基础(主要是SVD用来解线性方程),作业用Matlab.第一周作业: Dolly Zoom第二周作业: 平面摄影几何,广告牌在视频中的投影,类似2D增强现实第三周作业: 在平面Barcode上通过sift检测特征点,通过H矩阵计算相机位置,做3D增强现实第四周作业: 3D重建

  相关解决方案