稠密点云重建MVS——基于多视角深度图像

稠密点云重建MVS——基于多视角深度图像

  • 前言
  • 一、整体流程*
  • 二、算法原理
    • 1.全局视角图像序列选取方法
    • 2.局部视角图像序列选取方法
    • 2.深度与法向量优化算法
  • 基本概念
    • 极线搜索——查找图像中某个像素点在另一帧图像的对应像素点
    • 光度一致性——衡量两个模板的相似程度


前言

稠密点云重建主要介绍利用多视角的RGB图像重建三维模型的方法,主要包括三种:基于体素、基于深度图像、基于空间patch。
本节将介绍基于深度图像的三维模型重建算法。利用多帧RGB图像计算获得深度图像,实现三维模型重建。
(为了保证文章的完整性,一些简单的基本概念在文末给出,如有需要可以参照)


一、整体流程*

输入多帧同一场景不同视角RGB图像,选取其中一帧或几帧图像作为参考图像,利用输入的多帧图像恢复参考图像的深度和法向量信息,获得参考图像的深度图和法向量图。最后对恢复的参考图像进行融合。
(怎么从多帧RGB图像中恢复其中某几帧图像的深度和法向量信息呢?要知道一帧图像里包含了非常多的像素,要对绝大部分像素的深度与法向量进行恢复看起来似乎不可能。其实大体思想是:对输入的图像进行稀疏3D点云重建,获得特征点的三维信息,只要将这些点投影到参考图像上,就可以恢复这些特征点在参考图像上对应像素的深度信息,那么接下来就是利用区域生长的思想以这些像素点为中心,确定优化方法,逐步将他们周围点的信息恢复)
稠密点云重建MVS——基于多视角深度图像_第1张图片

1、预处理部分

  • 稀疏3D点云重建(SFM)
    检测输入的每帧图像特征点,并进行特征点匹配,通过匹配的特征点恢复相机的内外参数(相机内参:焦距、径向畸变系数,相机外参:相机的位姿R,t),重建特征点的空间3D坐标。
  • 全局视角图像序列选取
    从输入图像中选一帧作为参考图像。通过一些指标在输入图像中筛选出符合要求的图像。这里我们希望筛选出来的图像和参考图像,它们相邻图像视场之间的拍摄视场角合适(相邻图像视场角太小会导致基线短,重建误差大,视场角太大则两张图差异太大也难以重建成功)。选取方法详细介绍见本文第二部分算法原理。
    稠密点云重建MVS——基于多视角深度图像_第2张图片
    2、深度图像生成
  • 种子点选取
    从获得的3D点云中,筛选出那些可以投影到参考图像上的3D点,并且该点能投影到至少1帧其他全局视场图像(有些点按照投影模型无法投影到参考图或其他图的成像面上)。
  • 种子点深度与法向量信息恢复
    将3D点投影到参考图像上,以3D点到参考图像相机坐标系原点的距离为投影点像素初始深度,3D点到相机坐标系原点的方向为初始法向量。
    上面获得了像素点的深度与法向量的初始值,我们需要对这些像素点的深度和法向量进行优化。以这些投影像素点为中心建立正方形模板,将每个模板里的所有像素投影到空间3D坐标中,以一个模板为例,再次把一个模板里的3D点投影到其他视角的图像上获得投影的像素点,优化像素点的深度与法向量信息使得在参考图像上的模板与在其他视图上的模板投影差异尽可能小。详细优化算法见本文第二部分算法原理
    为什么要建立模板,只是为了求它的法向量吗?其实为了衡量参考图像上的这个像素点与其他图像上像素点的相似性,仅凭一个像素点难以很好的表征,所以才引入了模板来表征中心像素点区域的特征,而参考图像与其他图像的模板特征的差异是优化深度和法向量信息的关键。
  • 其余像素点深度与法向量信息恢复
    计算种子点优化后结果的置信度,参考下文基本概念光度一致性——衡量两个模板的相似程度,按照置信度高低建立队列,对队列中的点进行优化,并将这些点的周围点加入队列中。如下图左图所示,把黄色种子点深度和法向量值赋给相邻的上下左右四个像素点,作为他们的深度和法向量初值。并将这些点加入队列进行优化。
    如下图右图所示,当前优化完的种子点(绿色)四周有已经被优化过的点(红色),和未被优化过的点(蓝色),比较绿色点与红色点的置信度大小,如果绿色点的置信度高,则把绿色点的信息赋给红色点。
    稠密点云重建MVS——基于多视角深度图像_第3张图片
    3、三维稠密点云
    根据深度图每个像素的深度,利用相机的逆投影矩阵可以将深度像素点投影到三维空间,获得3D点云。思路很简单,具体实现可以参考一些其他文章。

二、算法原理

1.全局视角图像序列选取方法

2.局部视角图像序列选取方法

2.深度与法向量优化算法

稠密点云重建MVS——基于多视角深度图像_第4张图片


基本概念

极线搜索——查找图像中某个像素点在另一帧图像的对应像素点

参考图上某个像素点的空间3D点必定在该点与相机中心的连线上。那么该空间3D点在另一帧图像上的成像像素必然是3D点与相机2中心的连线与图像相交处。所以如果我们需要搜索参考图像上的某个像素点与另一帧图像上哪个像素点是同一个点,只需要搜索下图中的极线(Epipolar line)即可。
根据对极几何原理我们知道极线的表达式计算方法:
稠密点云重建MVS——基于多视角深度图像_第5张图片
稠密点云重建MVS——基于多视角深度图像_第6张图片

光度一致性——衡量两个模板的相似程度

好了,上面极线搜索说到可以在另一帧图像上极线经过的像素范围内,搜索参考图像的对应点,那么,当我们查找到了一对对应点,应该用一个指标来衡量这个查找的可信程度(置信度),这里我们以参考图像上的这个像素点和找到的另一个像素点为中心建立分别一个模板,两个模板越相似,则这对点越有可能是正确的对应点。这里我们引入光度一致性来衡量两个模板的相似程度,这里我们常用归一化互相关(NCC)来衡量他们的相似程度。

你可能感兴趣的:(点云三维场景重建,算法,计算机视觉)