计算机视觉之三维重建-SFM系统

SFM系统

  • 1.PnP问题
  • 2. RANSAC拟合
  • 3.本质矩阵与单应矩阵
  • 4.sift特征提取
  • *2视图欧式结构恢复求解流程
  • *openMVG系统
    • Tracks
    • 联通图
    • 计算流程

北邮三维重建课笔记

1.PnP问题

计算机视觉之三维重建-SFM系统_第1张图片
PnP问题:就是利用其中两个相机算出三维点坐标,再利用三维点坐标和第三个相机的像平面坐标求出第三个相机的外参数。(这样计算的速度快一点。)
计算机视觉之三维重建-SFM系统_第2张图片
计算机视觉之三维重建-SFM系统_第3张图片
P3P求摄像机位姿。

2. RANSAC拟合

计算机视觉之三维重建-SFM系统_第4张图片

思路:1.随机抽取两个点算出直线方程
2.算出其余点到这个直线的距离
3.设置阈值,计算点到直线距离小于阈值的点个数
4.进行下一次迭代,回到1,最后看哪条直线周围的点最多(这里要考虑一个需要迭代多少次的问题。)
最后周围点最多的那条直线就是我们需要的直线。
计算机视觉之三维重建-SFM系统_第5张图片
计算机视觉之三维重建-SFM系统_第6张图片
迭代次数选择。(主要是求F矩阵用的)

3.本质矩阵与单应矩阵

计算机视觉之三维重建-SFM系统_第7张图片

4.sift特征提取

计算机视觉之三维重建-SFM系统_第8张图片

*2视图欧式结构恢复求解流程

计算机视觉之三维重建-SFM系统_第9张图片
1.使用sift特征提取,提取图像所有匹配点
2.随机均匀采样8对点求基础矩阵F,然后使用RANSAC判断其最好的F
3.求本质矩阵E,再分解出R,T再求出M2
4.最后算出三维点坐标

*openMVG系统

计算机视觉之三维重建-SFM系统_第10张图片
与SLAM系统一样,都是以第一个摄像机坐标系为世界坐标系,其余相机都是相对它的旋转、平移。
计算机视觉之三维重建-SFM系统_第11张图片
预处理工作:由于并不知道所拍摄的对象是否直接是平面,所以每次计算需要1)计算基础矩阵F 2)计算单应矩阵H
计算机视觉之三维重建-SFM系统_第12张图片

Tracks

计算机视觉之三维重建-SFM系统_第13张图片
图中绿线表示只在两个图像中有对应点,红线表示在三个图像中有对应点,每条线代表一个track,track中记录了这条线的信息(例如绿色类似(2,点的坐标),红色类似(3,点的坐标))OpenMVG中的计算会把绿色的track剔除掉。

联通图

计算机视觉之三维重建-SFM系统_第14张图片
如果两幅图像中的对应点的个数大于100就连接起来,连接起来的联通图称做G。联通图G的每一条连线称作e

计算流程

(这里的t和G都是可以用数据结构表示的,例如字典、数组)
1.计算对应点的轨迹(tracks) t
2.计算联通图G
3.从G中选取一条边e ==> G[0]、G[1]= e 0 、 e 1 、 . . . . e_0、e_1、.... e0e1....
4.利用e这条边所对应的两个图像估计本质矩阵E
5.分解E,得到这两张图所对应的位姿(外参数)
6.用e就能完成重建,但e只能看到局部,所以选择t∩e的点去重建
(举例:假设e只包含了两幅图100个对应点的信息,而track包含了3幅图,30个对应点的信息,我们只选择共有的30个对应点去重建)
7.删除G中的已重建的边e
8.如果G中还有边e:
1)选取一条满足track(e)∩{已重建3D点}最大的边e
(迭代选择e,这个e和track的交集要与已经重建的三维点交集最大)
2)利用PnP方法估计摄像机位姿(外参数)
(新选择的e中两幅图像中的对应点有部分已经重建,利用已经重建的对应点计算出新的相机位姿参数)
3)三角化新的tracks
(利用未重建的对应点重建出新的三维点)
4)删除G中的这条边
5)执行Bundle Adjustment
9.结束

你可能感兴趣的:(三位重建,计算机视觉,矩阵,算法)