三维重建技术简介

举报
AIBooster 发表于 2019/12/28 14:59:55 2019/12/28
【摘要】 三维重建技术三维重建作为物理环境感知的关键技术之一,其可用于自动驾驶、虚拟现实、数字孪生、智慧城市等场景。从重建目标的角度来看,三维重建包括物体重建、场景重建、人体动态重建等多个方向。 1. 三维重建定义在计算机视觉中,三维重建是指根据单视图或者多视图图像重建原始三维信息的过程。单视图缺少深度、多视角信息,基于单视图的三维重建效果较一般。基于多视角图像的三维重建,充分利用了多视角...

三维重建技术

三维重建作为物理环境感知的关键技术之一,其可用于自动驾驶、虚拟现实、数字孪生、智慧城市等场景。从重建目标的角度来看,三维重建包括物体重建、场景重建、人体动态重建等多个方向。

 

1.       三维重建定义

在计算机视觉中,三维重建是指根据单视图或者多视图图像重建原始三维信息的过程。单视图缺少深度、多视角信息,基于单视图的三维重建效果较一般。基于多视角图像的三维重建,充分利用了多视角拍摄信息,其先对摄像机进行标定并计算出摄像机的图像坐标系与世界坐标系的关系,然后利用多个二维图像重建出三维信息。其完整流程后文中介绍。

常见的三维重建模型表达方式:

l  深度图(depth

image.pngspacer.gif

深度图像为RGB三通道图像加上深度Map组成。深度图中每个像素代表着物体到相机成像平面的距离。

 

l  点云(point-cloud

image.pngspacer.gif

点云是某个坐标系下的点的数据集。点包含了丰富的信息,包括三维坐标XYZ、颜色、分类值、强度值、时间等等。点云数据可通过三维激光扫描等方式获取。

 

l  体素(voxel

image.pngspacer.gif

体素是三维空间中的一个有大小的点,一个小方块,可类比为二维空间中的像素。

 

l  网格(mesh

image.pngspacer.gif

三角网格即由三角形组成的多边形网格。多边形和三角网格在图形学和建模中广泛使用,用来模拟复杂物体的表面,如建筑、车辆、人体等。任意多边形网格都能转换成三角网格。

三角网格存储以下三类信息:

ü  顶点:每个三角形都有三个顶点,各顶点都有可能和其他三角形共享。

ü  边:连接两个顶点的边,每个三角形有三条边。

ü  面:每个三角形对应一个面,我们可以用顶点或边列表表示面。

 

2.       三维重建技术简介

广义上,三维重建是指对某些三维物体或者三维的场景的一种恢复和重构,重建出来的模型,方便计算机表示和处理。在实际重建过程中,三维重建是对三维空间中的物体、场景、人体等图像描述的一种逆过程,由二维的图像还原出三维的立体物体、场景和动态人体。因此三维重建技术是在计算机中建立表达客观世界的虚拟现实的关键技术。

基于图像的三维重建是从若干幅图片计算提取出场景和物体的三维深度信息,根据获取的三维深度信息,重构出具备很强真实感的物体或者场景的三维模型的方法。该方法是涉及到多个热门领域,比如涉及到计算机图像处理、计算机图形学、计算机视觉和计算机辅助设计等很多的领域。目前,基于图像的三维重建技术已经成为一个极具潜力的热门领域,在诸多方面有着很重要的应用,比如数字城市、航天飞行、遥感测绘、数字文博等领域。

传统的建模方式多采用建模软件(例如3DMaxAutoCAD等)进行正向设计和建模。同时,对于已有物体、场景则可使用三维扫描仪通过逆向扫描重建后得到模型。基于计算机图形学的图像三维重建方法,其成本低廉、真实感强、自动化程度高,在诸多场景中得到应用。另外,随着计算机视觉领域深度学习技术在图像处理方面取得的成就,学术界中出现了一些基于深度神经网络的三维物体、场景重建研究。

 

3.       三维图像重建技术的发展现状

当前三维重建技术主要分成两大技术方向:

(1)       基于视觉几何的传统三维重建

这种三维重建方法研究时间较久远,技术相对成熟。其主要通过多视角图像对采集数据的相机位姿进行估计,再通过图像提取特征后进行比对拼接完成二维图像到三维模型的转换。

image.png

(2)       基于深度学习的三维重建

这种方法主要使用了深度神经网络超级强大的学习和拟合能力,可以对RGBRGBD等图像进行三维重建。这种方法多为监督学习方法,对数据集依赖程度很高。由于数据集的收集和标注问题,目前多在体积较小的物体重建方向上研究较多。

 

4.       现有的图像三维重建技术方法分析

基于图像的三维重建技术的实质就是利用照相设备或者录像设备采集的、对显示三维场景或者物体离散的二维图像作为基础数据,经过处理得到场景或者物体的三维数据信息,从而生成真实的场景或者物体,然后通过合适的空间模型把全景图像组织为虚拟的实景空间,用户在这个空间中可以前进、后退、环视、近看、远看等操作,实现用户全方位观察三维场景的效果,采用这种建模技术可以实现普通计算机上的真实感图形绘制。

有人提出将基于图像重建几何模型分为:基于单幅图像重建几何模型,采用立体视觉方法重建几何模型,基于侧影轮廓线重建几何模型,基于深度图像重建几何模型。

 

4.1   多视几何三维重建

单目三维重建方法只使用一个相机重建三维物体。根据使用的图像数目,单目三维重建方法可以进一步分为两种。

第一种方法中,为了获取三维的信息,需要改变相机的位置或物体的角度,从而获取多个角度的图像来实现重建。

因此这种方法也称为SfMStructurefromMotion)方法。这种方法整体的流程包括:

1)         第一步:对每张图片检测特征点(featurepoint)并提取特征点的特征描述子(如SIFT);

2)         第二步:对每对图片中的特征点进行匹配,建立特征点在所有图像中的轨迹,并且去除不满足几何约束的匹配(例如通过八点法和RANSAC方法估计基本矩阵、移除异常点);

3)         第三步:求取摄像机的内参(intrinsicparameter,包括焦距、像素长宽、相机主点坐标、畸变参数),和每张图的外部参数(extrinsic parameter,相机的旋转、平移参数),如下面两图所示;

image.pngspacer.gif

image.pngspacer.gif

1)         第四步:通过特征点的坐标和相机的内、外部参数,通过三角化计算得到点的三维坐标,得到稀疏的重构;

2)         第五步:使用BundleAdjustment进行结果的优化,通过调整相机参数的估计值和三维点的坐标,使三维点反向投影回图像时的误差最小化。下面的图中展示了SfM方法的整体流程以及各个阶段的结果示意图。

image.png

image.png

spacer.gif

SfM流程示意图(两个版本)及部分中间结果示意。

 

在上述第三步到第五步中,根据使用对齐的图像对的方式不同,分为增量式、全局式、混合式、层级式等方式。目前在CV领域中,比较流行的做法是增量式,也就是以一对对齐之后的图像作为起始,逐渐增加新的图像,迭代进行第三步到第五步,更新结果。下边的图和表分别展示了这种做法的大致流程,以及一些当前主流的软件工具在每个步骤的具体实现方法。可以看到,目前的主流做法仍然是提取图像的SIFT特征,并在此基础上进行图像对齐。在对齐时,可以对特征进行哈希,或使用神经网络等方式,找到初始的匹配点对。之后通过多点法+RANSAC去除错误的匹配点对,并基于最终过滤过的匹配结果,计算图像间的几何变换关系,进行图像对齐。

image.png

image.png

第二种方法只用一张图像估计图像的深度,能够在一定程度上重建三维的场景。这种方法通常在深度学习中比较常见,通过以深度图作为监督信号训练CNN模型,以图像作为输入,要求模型的输出可以尽可能拟合图相对应的深度图,从而使得到的模型可以预测图像的深度信息。后面基于深度学习的方法章节有该类方法的描述。

 

稠密重建MVS

由于SfM方法只能得到稀疏的三维点,因此如果需要得到的稠密的重建结果的话,还需要使用MVS算法,基于相机参数和图像,进行稠密的图像点匹配。下图展示了常见的几个MVS稠密重建方法。

image.png

 

4.2基于深度学习的三维重建

基于深度学习的三维重建方法依赖于大规模的标注数据集,而大场景数据的采集和标注工作量非常大,基于深度学习的三维重建方法多采用物体或人体标注数据集来实现。近几年该方向的一些经典方法包括:

4.2.1基于单张RGB图像的三维重建

image.png

image.png

image.png

该算法网络结构如上图所示。可分成两个部分:

(1)     特征提取:全卷积神经网络;

(2)     Mesh表示:图卷积神经网络表征三维mesh,并对三维mesh不断进行形变,目标是得到最终的输出。

该方法不需要借助点云、深度图等其他数据,直接从单张RGB图片直接重建出待重建物体的三维mesh

 

4.2.2基于多视图的三维重建

比较新颖一种方法如下图所示,基于单视图或多视图的3D物体重建算法:3D-R2N2

image.png

image.png

                                                                            image.pngspacer.gif


网络框架如上图所示,其采用深度学习实现二维图像到对应的三维Voxel模型的映射:

(1)     标准CNN编码器网络对原始输入图像进行编码;

(2)     标准Deconvolution解码器网络对其解码;

(3)     网络中间层用LSTM进行连接。LSTM单元按3D网格结构进行组织,每个单元接收一个从编码器网络输出的特征向量,并将他们输送到解码器网络中。每个LSTM单元重构输出体素中的一部分。

通过Encoder-3DLSTM-Decoder的网络结构,建立了二维图像到三维Voxel模型的映射。

 

4.2.3基于点云数据的三维重建

上面介绍的工作都基于深度神经网络实现二维图像到三维模型的重建。除了常见的RGB二维图像外,点云数据越来越多地用于3D视觉应用中,包括自动驾驶、三维重建等。正面这篇论文利用深度神经网络通过单张RGB图像直接生成三维模型点云,提出一种较好的方法解决了单张图片生成三维几何模型的问题。

image.png

image.png

点云是一种简单、统一的数据结构形式,其可以在几何变换和形变时更容易操作。该网络可以由输入图像确定的视角推断的3D物体中实际包含点的位置。

image.png

网络结构如上图所示。

输入为给定的一张RGBRGBD图像数据,通过PointOutNet网络实现完整的三维形状重建,并将最终输出的模型通过点云(Point cloud)的形式来表示。其中点云中点的个数为1024,对于小物体而言已经足够,但应用于大规模场景或物体三维重建时,该数值需要根据实现场景进行调整。

         以上介绍了目前应用深度学习技术,基于RGBRGBD图像或多视角图像发展而来的三维重建方法。上述算法只是部分方法应用介绍,且由于物体数据集相较于大规划场景数据集易于收集和标注,大部分算法均是基于物体重建阐述其在重建方向的应用。每年CV方向的学术会议和期刊上都有不少新颖的重建方法出现,一定程度上也说明基于深度神经网络的三维重建是未来重建领域重要的发展方向。

 

5.       基于遥感影像的三维环境重建

上面从技术的角度对三维重建方法进行了简要介绍。三维重建在数字城市场景下应用空间巨大。通过对实景三维重建技术的应用,实现城市大数据整体、个别建筑或物件的三维实物模型可视化,为城市信息管理系统及智慧城市安平解决方案上层应用提供实景三维底图平台。

基于遥感数据(高分卫星、无人机航拍等)的大规模场景重建方向,其基础技术多采用多视几何为基础的传统建模方法,成熟稳定。但大规模场景重建带来的数据量巨大,其所需要的计算资源也会非常可观,会在具体的领域或场景中落地应用。

具体遥感采集资质的情况下,相比于卫星数据获取,无人机遥感航拍具有设备相对简单、成本低、风险小、灵活机动、实时性强等优点。在某些数据采集场景,无人机正逐步成为卫星遥感、飞机遥感和地面遥感的有效补充。而微型无人机的普及使其应用更加广泛成为三维空间数据采集的重要方法包括地质勘察、城市航拍、灾害监测、高程测量等同时以近景摄影测量和计算机视觉理论为基础的基于航拍图像数据的三维重建在数字城市、数字文博等领域得到了较好的应用。下图为两个城市建筑航拍数据的三维重建示意图。

image.png

image.png


参考文献:

1.       3D建模与处理软件简介 刘利刚

2.       基于图像的三维建模 申抒含

3.       基于卫星遥感影像的三维重建技术研究 郭思悦

4.       基于深度学习的视觉三维重建研究

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。