项目地址: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. python--面向对象--14

    原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Pyth ...

  2. Linux中实现多网卡绑定总结

    在Linux中实现多网卡绑定 一.原理介绍: 1.什么是bonding? Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用.用于网络负载均衡及网络冗余: Li ...

  3. 双调旅行商问题 (Bitonic TSP)

    问题描写叙述: 上述问题能够使用动态规划的方法来解决. 以下是解决思路的详细介绍: 1. 最优子结构: 如果d[i][j]表示从起点1出发到达i及j两个顶点的最短路程之和. 为此能够如果K为此段路程上 ...

  4. SpringMVC由浅入深day02_8json数据交互

    8 json数据交互 8.1 为什么要进行json数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据 ...

  5. ajax简单手写了一个猜拳游戏

    使用ajax简单写一个猜拳游戏 HTML代码 <!DOCTYPE HTML> <html lang="en-US"> <head> <me ...

  6. eclipse下编译cocos2dx 3.0

    先给自己科普一下, android sdk 是给java开发者用的,  咱C++开发者用的是android ndk, 所以就是使用ndk来编译cocos2dx程序了 使用命令行创建一个项目, 我这里创 ...

  7. MySQL开发面试题

    ……继上一篇MySQL的开发总结之后,适当的练习还是很有必要的…… SQL语法多变,不敢保证唯一,也不敢保证全对,如果错误欢迎指出,即刻修改. 一.现有表结构如下图 TABLENAME:afinfo ...

  8. .Net使用DES加密,.Net和java分别解密,并正则匹配替换加密密码为明文

    在VS中用WindowsApplication做一个exe程序,用来给数据库密码加密,加密代码如下 private void generateBtn_Click(object sender, Even ...

  9. beautifulsoup4 安装教程

    下载beautifulsoup, 下载地址:https://www.crummy.com/software/BeautifulSoup/bs4/download/ 下载完成之后,解压到一个文件夹,用c ...

  10. windows防火墙设置端口开放技巧

    选择“打开或者关闭windows防火墙”把防火墙打开,然后选择“高级设置”,选择“创建规则”来指定端口.(这里也可以在“入站规则”里选择已经存在的端口.) 指定ip开放3389端口 某新服务器,开放8 ...