项目地址:http://phototour.cs.washington.edu/

Photo Tourism是华盛顿大学的SFM重建的过程

Paper:Photo Tourism: Exploring Photo Collections in 3D

文章提出的方法如下:

(1)提取SIFT特征点

(2)每两幅图像之间进行SIFT特征点进行匹配; 匹配过程中首先采用了KD-TREE的方法对最近邻的特征点进行匹配,然后采用了多视角几何进行限制。值得注意的是多视角的几何限制,在多视角的图像匹配中经常出现(Geometry constriant)。

在两视角的几何中,对应点应该满足方程 pFp'=0,其中F是本征矩阵。本征矩阵有7个独立参数。这7个独立参数是什么?估计F的方法常用的有5点法和8点法。8点法的原理还没有弄明就是利用线性变换法的原理进行求解。

    本文中采用了RANSAC的方法进行对F进行估计,每一步迭代的过程中,利用8点法进行求解。

    估计出本征矩阵的目的是为了对之前求得的匹配进行约束,得到的匹配成为几何一致匹配,不同图像上的几何一致匹配形成了一个TRACK(其实就是一个空间点在不同的图像上的投影点之间的匹配)

   (3)选取两张图像进行重建。选取图像的标准是,匹配的特征点要足够多,但同时BASELINE要足够大。为此,先采用RANSAC求得两两图像之间的HOMEGRAPHY,得到内点,选取内点数最少,但又不少于100个的图像对作为原始输入。个人觉得这样做主要是为了防止两幅图像的视角过于接近,防止出现退化情况。

得到了原始图像后,采用5点法求出两幅图像相对的外参数以及相机的内参数,然后采用BUNDLER AJUSTMENT进行优化,值得注意的是BUNDLER AJUSTMENT优化的思想贯穿于整个重建过程中。

根据得到的参数以及两幅图像的匹配关系求出空间点坐标。注意,图像上的点和空间点是一对多的关系,因此至少需要两幅图像才能求出空间点的坐标。

(4)添加其他的图片,要求是图像含有与重建出三维点的匹配最多。这样就成了已知三维点机器二维图像上的对应点,标定相近内外参数的问题。

首先采用KLT方法,对相机的内外参数进行初始之估计,然后采用BUNDLER AJUSTMENT进行优化。注意BUNDLER AJUSTMENT不是全局最优解,因此需要KLT提供可靠的参数初始值以避免局部最优化。

(5)将该图像上其他的,而且是已经重建过的图像上也有的特征点添加到重建过程中进行重建。重建结束后进行一个全局的BUNDLER AJUSTMENT。

也就是著名的三维重建项目Bundler_sfm

Bundler_sfm地址:http://www.cs.cornell.edu/~snavely/bundler/

三维重建项目:Photo Tourism: Exploring Photo Collections in 3D的更多相关文章

  1. Learning part-based templates from large collections of 3D shapse CorrsTmplt Kim 代码调试

    平台: VMware上装的Ubuntu-15.10 环境准备工作:装Fortran, lapack, blas, cblas (理论上装好lapack后面两个应该是自动的),其他的有需要的随时安装就可 ...

  2. {Reship}{Code}{CV}

    UIUC的Jia-Bin Huang同学收集了很多计算机视觉方面的代码,链接如下: https://netfiles.uiuc.edu/jbhuang1/www/resources/vision/in ...

  3. UIUC同学Jia-Bin Huang收集的计算机视觉代码合集

    转自:http://blog.sina.com.cn/s/blog_631a4cc40100wrvz.html   UIUC的Jia-Bin Huang同学收集了很多计算机视觉方面的代码,链接如下: ...

  4. 计算机视觉与模式识别代码合集第二版three

    计算机视觉与模式识别代码合集第二版three     Topic Name Reference code Optical Flow Horn and Schunck's Optical Flow   ...

  5. CV code references

    转:http://www.sigvc.org/bbs/thread-72-1-1.html 一.特征提取Feature Extraction:   SIFT [1] [Demo program][SI ...

  6. [ZZ] UIUC同学Jia-Bin Huang收集的计算机视觉代码合集

    UIUC同学Jia-Bin Huang收集的计算机视觉代码合集 http://blog.sina.com.cn/s/blog_4a1853330100zwgm.htmlv UIUC的Jia-Bin H ...

  7. Computer Vision Resources

    Computer Vision Resources Softwares Topic Resources References Feature Extraction SIFT [1] [Demo pro ...

  8. CV codes代码分类整理合集 《转》

    from:http://www.sigvc.org/bbs/thread-72-1-1.html 一.特征提取Feature Extraction:   SIFT [1] [Demo program] ...

  9. Positioning-Based Photo Retrieval

    MMAI 2015 FINAL PROJECT   To Know Where We Are: Positioning-based Photo Retrieval   2015/12/16 Updat ...

随机推荐

  1. window.open被拦截

    1)直接调用window.open 或 点击的时候直接调用 window.open 是不会被拦截的 // 不会被拦截$('.btn-open').click(function(){ window.op ...

  2. vmware下虚拟机不能上网问题解决

    这个问题困扰了好久,vmware下装的虚拟机可以通过DHCP获取单独IP,但当用到管控较严格的环境,需要它与主机共享IP时,就不好使了. 今天在一篇文章中找到答案,如下图,windows系统中要启动V ...

  3. Docker 仓库管理

    仓库 ( registry ) 是一个用来存放镜像的地方,当我们执行 docker pull centos 去拉取 centos 镜像时,默认是从 Docker Hub 这个公共仓库来拉取的: 对于企 ...

  4. Linux 上安装oracle客户端

    1. 下载安装包 http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html oracle-instantclient11 ...

  5. 自己搭建CDN服务器静态内容加速-LuManager CDN使用教程

    为什么要自己来搭建一个CDN服务器实现网站访问加速?一是免费CDN服务稳定性和加速效果都不怎么行:二是用国内的付费CDN服务价格贵得要死,一般的草根站长无法承受:三是最现实的问题国内的CDN要求域名B ...

  6. codeforcess水题100道

    之所以在codeforces上找这100道水题的原因是为了巩固我对最近学的编程语言的掌握程度. 找的方式在codeforces上的PROBLEMSET中过的题最多的那些题里面出现的最前面的10个题型, ...

  7. iOS - 系统权限(关键时刻很有用的)

    iOS开发中权限问题: APP开发避免不开系统权限的问题,如何在APP以更加友好的方式向用户展示系统权限,似乎也是开发过程中值得深思的一件事: 那如何提高APP获取iOS系统权限的通过率呢?有以下几种 ...

  8. Android数据存储之SD卡

    为了更好的存取应用程序的大文件数据,应用程序需要读. 写SD卡上的文件.SD卡大大扩充手机的存储能力. 操作SD首先要加权限: <!--在SDCard中创建与删除文件权限 --> < ...

  9. 启用PAE后虚拟地址到物理地址的转换

      34 注册:2013-10 帖子:2013 精华:34 --> [原创]启用PAE后虚拟地址到物理地址的转换 安于此生 2013-11-3 20:54 16073 由常规的两级页表转换得不到 ...

  10. 【Java基础】StringTokenizer用法

    写在前面 因为最近在接触hadoop的东西,看示例WordCount的时候里面有一个StringTokenizer的东西特地看了一下 The string tokenizer class allows ...