龙空技术网

计算机视觉10 基于图像的三维模型重建流程总结

float风 468

前言:

目前朋友们对“基于极线约束的sift特征匹配算法研究”大概比较着重,大家都想要剖析一些“基于极线约束的sift特征匹配算法研究”的相关知识。那么小编也在网络上收集了一些关于“基于极线约束的sift特征匹配算法研究””的相关文章,希望小伙伴们能喜欢,你们快快来学习一下吧!

基于图像的三维重建解释

基于图像的三维重建,是一种通过拍摄一个场景的不同视角的图片,恢复出场景三维模型的方法,三维重建在逆向工程,文物保护,增强现实等领域有着广泛的应用。

本文只总结流程,不做算法的详细解释

主要流程有:

图像特征点检测与匹配; 通过对极几何恢复相机模型SFM(Structure from motion)方法生成稀疏点云MVS(Multi view Stereo)方法生成稠密点云将点云重建为网格模型添加纹理和贴图图像特征点检测与匹配

特征点检测是三维重建的第一步,可以理解成检测出图像中与周围像素不同的点,然后储存进列表,特征点检测算子有很多,方法也都是现成的,比如harris,sift,surf,后两个最常用。

匹配原理是通过对两幅图像储存的特征点按一定算法进行匹配,从而判断不同图像上的点是不是同一个点。常用的两个概念:尺度不变性(同一个特征点能在不同尺度下被检测),旋转不变性(特征点旋转以后依旧能正确匹配)

特征匹配图像

相机模型与对极几何

1.相机模型

相机的表达是三维重建的基础,必须标定了相机参数,才能根据图像计算出像素点的位置和相机姿态。通常相机都是采用针孔相机模型,相机成像四个坐标系(像素坐标系,图像坐标系,摄像机坐标系,世界坐标系)。常见概念:本质矩阵(E),基础矩阵(F),径向畸变(k1,k2)。

世界坐标和相机坐标的转换

姿态估计,6个外参(R,t);R为3x3矩阵,t为向量;

相机标定,5个内参(fa=fb,k1,k2,u0,v0);

2.对极约束:2D-2D

对极几何描述了同一个场景两幅图像之间的几何关系,我们已经通过特征匹配求得匹配点,根据极线约束,就能推导出基础矩阵(F)。

对极约束

常用方法:

1.直接线性变换法(八点法,最小二乘法)

2.基于ransac的鲁棒方法

ransac算法流程:a.随机采样8对匹配点; b.8点法求解基础矩阵F; c.奇异值约束获取基础矩阵F; d.计算误差,并统计内点个数; e.重复上述过程,选择内点数最多的结果; f.对所有内点执行2,3,重新计算F。

SFM方法(Structure from motion)

SFM,又称为运动恢复结构,是一种常用的稀疏重建方法,通过收集到的无序图像,还原三维场景。

1.三角测量:相片中的每一个点,都对应着一个空间投影,不同相片中同一个点的空间投影的交点,就是该点在三维空间的坐标点。通过前两步,我们已经知道相机参数和匹配的特征点。因此,可以通过相机参数和匹配点用三角测量的方法,恢复匹配点在三维空间中的坐标。

2.PnP问题-直接线性变换法:已知三维点和对应的二维点求解相机内外参数,至少需要6对3D-2D对应点。

3.捆绑调整(Bundle Adjustment):一种同时对三维点云位置和相机参数进行非线性优化的方法,(先计算几张图像的位置和相机姿态,再添加新图片,进行优化,直到所有图像都优化完毕)捆绑调整的优化方法主要有 a.最速下降法,b.牛顿法,c. LM(Levenberg-Marquardt)法(结合牛顿法与最速下降法),效果最好。

通过这些方法,可以构建出较为准确的稀疏的三维模型。

稀疏重建

MVS方法(Multi view Stereo)

1.稠密点云的获取方式:

a. 激光,雷达扫描;

b. kinect相机;

c. 结构光;

d。基于图像的mvs方法。

激光雷达一般都是用于扫描精细结构,能得到精度高的点云,效率高,有效范围高达几百米,价格偏贵。 kinect相机是一种深度相机,范围在1-3米,速度快,能实时建模。这两种方法般都已经集成算法,不需要自己编写,直接就能得到稠密三维点云。结构光是用有编码的条纹光对物体进行扫描,方法性能稳定,测量精度高,通常用于人体,文物修复。基于图像的mvs方法,则是在sfm方法基础上进行三维点云重建。

2.基本原则:

a.光度一致性假设:同一空间点在不同视角的投影应当具有相同的光度,重建的核心就是恢复空间中具有光度一致性的点。

b.可视性约束:图像中出现的点不能被遮挡,重建的点前面不能有其他点,并且不能在物体内部。

c.极线搜索:图像中一点对应另一条图像中的线段。

3.主要方法:基于体素方法,基于空间patch方法(PMVS),基于深度图融合方法

稠密点云图像

从点云到网格

三维模型的表述方法主要有两种:边界表述法,空间划分法

1.边界表述法:将三维物体描述成一组表面

a. 多面体表述法,将物体表面表述成一组封闭物体空间的多边形,其中最常用的是三角形和四边形。

b. 曲面表述法:将边界表述成一组参数或者非参数化的曲面。

c. 参数曲面:z=f(x,y),用来表示场景中的规则物体。

b. 隐式曲面:通过函数f(x,y,z)的零水平集,可以用来描述比较复杂的物体

2.空间划分方法:将物体内部的空间划分成细小,不重叠的连续实体来描述物体的形状。

a.构造体素法:通过对一些元素进行加,减,并集和交集等组合运算生成新的物体

b.八叉树法:利用分层的树结构将要表述的物体构造一个树结构,树节点对用空间中一块特定区域。从根节点开始,包含物体的节点被均匀的划分成八个子节点,直到这种迭代满足终止条件。

c.二分空间法:和八叉树法差不多,都是对空间进行逐步划分,只不过二分法是将空间划分成两部分,可随时调整空间分布。

最常见的三维网络都是采用的三角网格,基本结构为 顶点,面片,边。

纹理映射

三维点云不具有拓扑结构,不能进行高质量的渲染,几何结构恢复重建点云的拓扑结构,是进行场景渲染的基础。图像纹理差距较大的原因,主要就是网络模型的优化上。

基本原理:找到三角网络的顶点坐标(x,y,z),然后找到对应的纹理坐标(u,v),按照一定的算法进行纹理映射,从而在拓扑网络上形成纹理图案。

纹理贴图后的图像

基本流程大致就是这些,基于图像的三维重建,一般用于建筑,场景,地形等一些对精度要求不高,要求简单的大型场景的重建。要想重建高精度的器件,还是用激光雷达好。

过几天更新SLAM的方法

标签: #基于极线约束的sift特征匹配算法研究