导航

序列图像三维重建 学习流水账

Posted on 2017-07-27 10:13  Tigerwang1218  阅读(1053)  评论(0编辑  收藏  举报

无意中上了博客园这个网站,还真是好,很多技术文章,虽然看不懂,但心里有底了一些,争取看看文献,看看博客技术文章,慢慢能入行。

整理了一下,粘贴几个很好的网站:

菠菜僵尸的博客(三维重建)http://www.cnblogs.com/shepherd2015/p/5128171.html

昨天有123Dcatch这么个玩意,当时搜到了这么个东西

http://www.didayin.com/archives/632

知乎上搜到这个 https://www.zhihu.com/question/29885222/answer/48940748

第一个链接里头的内容这么说:

照片重建的主要步骤

整个重建过程大致有以下几步,

1、找出各张照片中的特征点,进行两两匹配

这一步讲究的是能够精确识别物体的局部特征,并且进行快速准确的匹配,由于在实际拍摄中,可能存在物体的旋转、缩放、或者亮度变化,所以难度不小。现在常用的算法是由 David Lowe 提出的SIFT 方法。

2、根据匹配的结果,利用射影定理计算得到相机位置等场景信息

这步又称运动恢复结构(Structure from Motion)。对于结果的衡量标准主要是准确性,流行使用的是基于 Levenberg-Marquardt 算法的 Bundler。我们也可把这一步称为稀疏重建(Sparse Reconstruction)。

3、将场景信息与原始照片结合在一起,得到照片中物体的三维点云

有了场景信息,我们就能进行多视立体重建(Multi-view Stereo Reconstruction)了。由于处理的图像精度通常都比较高,所以这一步的计算量很大,执行效率也因此成为判断算法优劣的标准之一。除了效率之外,还需要考量重建的精度以及完整性,因为这些因素决定了点云的质量。PMVS 算法是目前表现最好的多视立体重建算法。另外,为了表示和稀疏重建的区别,这一步也成为密集重建(Dense Reconstruction)。

4、根据三维点云构建三维模型

我们已经得到了物体表面的一系列三维点云,但是还需要把这些点连成面,才能在一般的三维建模软件中使用。现在比较常用的是泊松表面重建算法(Poisson Surface Reconstruction)。是的,就是发明了能够用来预测火车是否晚点的泊松分布的那个人。

 

使用开源软件完成重建

我们将使用 VisualSFM 来完成其中的前三步,VisualSFM 中已经包含了 SIFT 和 Bundler 的算法,不过为了完成第三步,你还需要下载 PMVS 的升级版 CMVS,VisualSFM 会自动调用。而对于第四步,我们需要使用 Meshlab 进行网格处理。

 

 

1、百度网盘上可以找《Multiple View Geometry in Computer Vision》看看,这本书有中文版本,叫《计算机视觉中的多视图几何》(新浪微盘上找到的)。另外还有本《计算机视觉中的数学方法》

2、看代码代码写代码了

Bundle: http://www.cs.cornell.edu/~snavely/bundler/

上面这个网页里有个相关的项目BigSFM,与其相关的是一个低维的例子1DSfM: http://www.cs.cornell.edu/projects/1dsfm/

SFM维基百科: https://en.wikipedia.org/wiki/Structure_from_motion

3、纯MATLAB版本 SIFT代码http://www.cnblogs.com/shepherd2015/p/5156322.html

4、Bundler作者Noah Snavely主页:http://www.cs.cornell.edu/~snavely/

他的博士论文:http://www.cs.cornell.edu/~snavely/publications.html