项目地址: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. SpringMVC由浅入深day01_13springmvc和struts2的区别_14问题

    13 springmvc和struts2的区别 1.springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发, ...

  2. RESTful状态码说明

    https://www.zhihu.com/question/58686782/answer/159603453 常用状态码: 200 请求成功并返回所需资源 400 客户端请求有语法错误 401 未 ...

  3. MySQL存储过程的异常处理

    阅读目录:存储过程的异常处理 定义异常处理 单一异常处理程序 continue exit 多个异常处理程序 关于错误编号和SQLSTATE码 使用3个处理程序 忽略某一异常的处理 异常处理的命名 异常 ...

  4. 【Python】TF环境

    1.pip show pip 2.python -m pip install --upgrade pip 3.conda list 4.pip install tensorflow 5.pip ins ...

  5. 解决“Connection to https://dl-ssl.google.com refused”问题

    相信一些人刚开始搞android的安装开发环境的时候会遇到:Failed to fectch URl https://dl-ssl.google.com/android/repository/addo ...

  6. 为啥RESTFULL如此重要?

    为啥RESTFULL如此重要? 2014-6-3 20:13| 发布者: admin| 查看: 57| 评论: 0|来自: java365 摘要: 本文我们将讨论REST,它定义了一组体系架构原则,您 ...

  7. mysql基础知识笔记

    Mysql基础笔记 环境配置 基本概念 mysql命令行 进入 use show 查询 select order by where like 数据过滤regexp concat 文本函数 日期函数 数 ...

  8. jQuery Easing 动画效果扩展--使用Easing插件,让你的动画更具美感。

    jQuery  Easing 是一款比较老的jQuery插件,在很多网站都有应用,尤其是在一些页面滚动.幻灯片切换等场景应用比较多.它非常小巧,且有多种动画方案供选择,使用简单,而且免费. 引入Eas ...

  9. No.1 PyQt学习

    由于项目的原因,要学PyQt了.以下是第一天的学习成果 # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore class ...

  10. sqlite的一个Unable to Open database file的坑爹错误

    今天,被sqlite的一个机制给坑了.本人用C语言写的cgi程序去访问sqlite数据库,读取没有问题,但是插入新纪录和更新数据就不行,在服务器上直接对数据库进行增删查改则没有任何问题.但浏览器上访问 ...