SFM问题简介

最近在学习opencv的知识,遇到的一些知识点和理解记录下来,由于还是小白,有所不对的地方,大家一起交流沟通
Structure from motion,简称为SFM,是单目相机在物体周围不同的角度拍摄不同的图片,而相机的内参外参数可以使用张正友的标定方法获取,点云的获取还是在不同的图像之间进行匹配获得。需要注意的是此时获取的点云是稀疏点云,此时采用的方法是SIFT特征点匹配的方法,在实际的操作过程中,发现哦pencv4.0.0已经删除了#include、#include这两个模块,要配置需要安装opencv4.0.0 对应的opencv_contrib版本,此部分可以参考博文:opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测

一.小孔成像
世界中的一个点经过小孔在图像平面上会形成一个倒立缩小的像。这就形成了几何相似三角形关系。如果我们把成像平面放到前面来,就是正立缩小的像。具体的焦距、图像片面,相机中心什么就不赘述了。右下角公式表示通过一个 相似性可以建立图像坐标系和世界坐标系的关系。
SFM问题简介_第1张图片
接下来存在一个坐标系之间的变换问题,张正友在2000年的文章中讲的很清楚,这里就不再累述,给出最后的像素坐标和世界坐标系之间的变换过程
SFM问题简介_第2张图片
SFM问题简介_第3张图片
在相机已经标定好的情况下,就可以开始SFM处理,总体上可以分为
二.SFM处理流程

1.特征点检测和匹配
特征点的检测用的是SIFT,匹配则是根据L2范数距离小、比值约束等来匹配。
SIFT的特征检测分为以下几个步骤:
a.建立高斯金字塔
b.关键点确定
b1.阈值化
b2.在高斯金字塔中找极值
b3.调制极值点的位置,也可以叫精提取极值点,主要采用泰勒展开,在二阶导数为零的位置为极 值点
b4.舍去对比度低的点,这里是去掉边界上的一些点
c.关键点的方向
采用权值加权的方向,考虑到周围像素离中心像素的距离,给每个像素点一个权值,类似于但区别于HOG算子。
d.构建关键点的描述符
匹配基于关键点的描述符
2.外极几何图构造
求解本质矩阵E
3.相机位姿和场景结构估计
2D-2D的估计,分别采用增量式、全局式、混合式的估计
4.BA优化相机位姿和场景

//欢迎大神交流指导

参考来源:
Structure from motion简介:https://blog.csdn.net/Mahabharata_/article/details/70799695
SIFT算法详解:https://blog.csdn.net/zddblog/article/details/7521424
基于图像的大规模场景三维重建(上):https://www.leiphone.com/news/201711/9dxX6g30dlEoqvPZ.html
基于图像的大规模场景三维重建(下):https://www.leiphone.com/news/201711/s6CHNAyjurPPyKiz.html
SIFT算法的教程、源代码及应用软件
1、ubc:DAVID LOWE—SIFT算法的创始人,两篇巨经典
http://www.cs.ubc.ca/~lowe/
2、cmu:YanKe—PCASIFT,总结的SIFT方面的文章
http://www.andrew.cmu.edu/user/yke/
3、ubc:M.BROWN—SIFT算法用于图像拼接的经典应用autopano-sift。包含一个SIFTLIB库
http://www.cs.ubc.ca/~mbrown/autostitch/autostitch.html
http://www.cs.ubc.ca/~mbrown/panorama/panorama.html
4、toronto:Jepson—Matlab SIFT tutorial, 超级超级超级经典~
http://www.cs.toronto.edu/~jepson/csc2503/
5、ucla:Vedaldi—加州大学一个博士生编的Matlab SIFT tutorial
http://www.cs.ucla.edu/~vedaldi/
6.http://en.wikipedia.org/wiki/Scale-inva … _transform
7. 大牛整理的计算机视觉分类
http://www.cs.ubc.ca/~lowe/vision.html
8. http://note.sonots.com/SciSoftware/SIFT.html
9.提到了计算变换矩阵的RANSAC法
http://web.engr.oregonstate.edu/~hess/index.html
10. 仿射不变特征点检測。提到了性能评价的方法
http://www.robots.ox.ac.uk/~vgg/research/affine/
11. 一个日本人,挺牛的
http://note.sonots.com/
12. PCA-SIFT
http://www.cs.cmu.edu/~yke/pcasift/
13 opencv sift
http://web.engr.oregonstate.edu/~hess/index.html
14 matlab sift
http://www.vlfeat.org/~vedaldi/code/sift.html
http://www.vlfeat.org/overview/sift.html
15 Improve Scale Invariant Feature Transform (SIFT) 斯坦福
http://robots.stanford.edu/cs223b04/project9.html
16 Known implementations of SIFT mit

你可能感兴趣的:(SFM问题简介)