锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

基于深度学习的单幅图像三维物体重建综述

时间:2023-08-01 13:07:01 三维连接器

原文链接:https://link.springer.com/article/10.1007/s11042-020-09722-8

摘要:计算机视觉领域计算机视觉领域的一个重要课题。近年来,利用深度学习技术对单幅图像进行三维重建取得了显著成效。传统的从单个图像重建三维物体的方法需要先验知识和假设,重建的物体被限制在一定范围内从真实图像中完成良好的重建。虽然深度学习可以很好地解决这些问题,但它也面临着许多问题。本文首先讨论了应用深度学习方法从单个图像重建三维对象所面临的挑战。其次,我们对编码器、解码器和训练细节进行了全面的回顾。然后介绍了近年来单图像三维目标重建的常用数据集和评价指标。我们用一系列的实验来比较不同三维重建方法的优缺点。此外,我们简要介绍了一些关于单幅图像三维重建的应用实例。最后总结了本文,展望了未来的研究方向。

关键词:单幅图像三维重建;深度学习,计算机视觉,三维形状

1 引言

图像的三维重建是计算机视觉、医学图像处理[74、4]和虚拟现实[109]中常见的课题。计算机视觉相关理论和技术的主要目的是从图像或多维数据中获取信息,建立人工智能系统。图像的三维重建是计算机视觉的主要任务之一其目的是研究单幅图像或多幅图像生成相应的三维结构[93、82]。图像的三维重建可分为三维场景重建和三维物体重建。单视图三维场景重建的一个主要挑战是从单个图像中预测不可见部分[38、108、100]。多视图三维场景重建[36、39]和多视图三维对象重建[18]可以整合多个图像的信息,弥补单个图像预测不确定性对不可见部分的缺陷。与传统的多视图三维重建方法[25、95]和模型[14、45]相比,深度学习具有处理大数据的能力。因此,近年来,有许多研究将传统方法与深度学习相结合[114、149、27]。

对图像三维重建技术[32,143]进行了回顾。Ham等人[32]回顾了单个静止图像的三维重建,RGB多视角和视频序列方法的深度图像、二维图像。Ham等人回顾的方法大多采用传统的三维重建算法,少数方法采用深度学习技术。Yuniarti简要回顾了基于深度学习的单幅或多幅图像三维重建方法。这个综述不同于Ham等人或Yuniaart等人综述。我们全面回顾了基于深度学习的单图像三维重建方法,包括该方法面临的挑战、不同三维表示的重建算法、三维重建培训系统等。本文的主要研究目标是从单幅图像中重建三维物体。单幅图像的三维物体重建类似于单幅视图的三维场景重建。重建结果不确定,因为单个图像丢失了大量的三维对象信息。对单幅图像进行三维物体重建的传统方法通常是基于现有模型[5,52]或使用二维标记[49]。这些方法通常局限于某种物体的重建。假设照明是固定的,形状由阴影恢复[92、20、2]。假设表面平滑,由纹理恢复形状[68]。由于实际数据集的复杂性,这实际应用中需要假设的模型效果较差。

近年来,随着深度学习的兴起,利用深度神经网络从单个二维图像中重建三维物体已成为一个热门方向[147]。基于深度学习的三维物体重建方法是训练神经网络学习二维图像与三维物体之间的映射关系。本文的主要动机是提供近年来用深度学习从单个图像生成三维形状的概况。重点分析了单幅图像三维重建的主要挑战和研究方法。这些挑战和方法代表了单图像三维重建中需要解决的问题和发展趋势。本文首先讨论了基于深度学习从单个图像重建三维对象所面临的挑战。在第三节和第四节中,我们将介绍三维多媒体工具和应用程序中使用的编码器和解码器。第五节介绍了许多文献中公开的训练细节,包括损失函数和网络训练系统结构。第六节介绍了三维重建实验的数据集和评价指标。在第七节,我们进行了多次比较实验,分析了不同三维重建方法的优缺点。在第八节,我们将介绍单图像三维重建的相关应用。第九节总结了全文,展望了未来的发展趋势。

2 单幅图像三维物体重建的挑战

基于深度学习的单图像三维重建面临多重挑战,导致这一方向的发展仍处于起步阶段。一般来说,图像的三维重建主要面临以下挑战:(1)重建对象的形状复杂性,(2)重建对象的不确定性,(3)重建细粒度对象,(4)内存需求和计算时间,(5)训练数据集,(6)选择性3 d形状表示。

2.1 挑战1:物体形状的复杂性

首先,物体形状的复杂性主要体现在不同类别物体形状的差异上,存在于同一类别物体个体训练和不同类别物体联合训练的重构结果中。因此,一个好的三维重建模型应该具备表达不同复杂物体的能力。此外,模型需要了解不同对象类之间的各种连接,并在相同对象类之间保持其独特性。其次,物体的形状复杂性也体现在自身上。一个简单物体的结构通常可以用多个矩形的组合来表示。当小部件占整体结构的比例较小时,简单的物体往往具有较高的重构分数。然而,当复杂对象的结构较小,且有细粒度的部件(如枪扳机)时,重构结果往往较差。提高重建三维物体的分辨率是一个相对简单的解决方案。

2.2 挑战2:对象的不确定性

单图像三维重建是一个不适定的问题[78]。重建结果并不独特,因为单个图像丢失了大量的三维信息,缺乏先验知识或假设。因此,最近的一些研究试图通过一些辅助手段预测正确的形状[31]。对人类来说,我们可以根据自己丰富的经验积累,从单一的RGB在图像中推断出不可见的3D形状。这反映了基于深度学习的单幅图像的三维重建需要足够的数据集进行训练。

2.3 挑战3:重构细粒度对象

对于大多数3D重建模型的目标是生成细粒度3D对象不仅仅是粗略的3D表示。不同的三维形状表示不同的困难。大多数基于体素的多媒体工具和应用,如三维重建方法,都面临着较高的内存使用和计算成本。大多数基于网格的方法都受到网格拓扑结构的限制。第四节给出了不同的三维重建方法。然而,他们都有问题需要解决。因此,如何从单幅图像中重建细粒度的三维物体是一个巨大的挑战。

2.4 挑战4:内存需求和计算时间

对于一个优秀的单图像三维物体重建模型,参数应该是轻量级的。此外,由于内存要求有限,不仅需要从单个图像中重建正确的细粒度部件形状,还需要良好的训练和推理时间。目前,第四节介绍了一些解决方案。

2.5 挑战5:训练数据集

由于现有的大数据,深度神经网络可以在大模型、大计算时代发挥其强大的学习能力。然而,最近的研究表明,基于深度学习的单图像三维物体重建实际上学习了识别能力(搜索和聚类)[112],但很少学习重建能力。ShapeNet[7]数据集它是一种常用的三维对象重建数据集。整个数据集通常分为训练集、验证集和测试集。因为测试集和训练集中在3D模型高度相似,神经网络可能被误导学习识别。此外,野生数据集和合成数据集有很大的区别。对于未被神经网络看到的图像,可能会导致不同的重建结果,选择不同的坐标系统来重建三维形状[99]。真实数据集中的图像内容比较复杂,如遮挡、多种对象、不同的光线等。因此,在一个干净的合成数据集训练后,很难在实际数据集中完成目标的三维重建。近年来,许多研究试图使用纹理数据集[16]和nd渲染2的背景数据集D图像[135]。然而,实际渲染的2D图像集和真实场景2D图像集之间仍然存在较大的差异,训练渲染数据集后,模型很难适应真实场景中的数据集。最后,该模型重建的三维形状较差。因此,如何改进现有的训练数据集,使其适合三维重建是一个具有挑战性的问题。

2.6 挑战6:3D形状的选择性

目前的研究大多选择不同的三维形状来完成单个图像的三维重建。三维卷积神经网络可用于基于体素表达的方法(CNN),任何拓扑结构的对象都可以重建。然而,大量的内存需求和计算时间限制了大多数方法重建结果的低分辨率。尽管对此问题提出了许多改进[111、88、103],但重建结果仍无法实现超高精度重建。点云相对简单,灵活性高。由于点云不是一个规则的结构,它不能很好地适应传统的3D CNN。网格有助于在三维对象、多媒体工具和应用程序中恢复模型的细节,具有高精度。同样,网格也不是规则的几何数据形式,因此不能直接应用3D CNN。目前基于网格的研究大多采用网格模型变形的方法。然而,这种方法不能很好地处理未知的拓扑对象。尽管有些方法解决了拓扑问题[83、29],但也引入了一些问题。参数化和隐式曲面表示方法都可以用光滑的表面来表示对象,生成的对象具有更好的视觉吸引力。然而,基于参数曲面表示的三维重建很难适应大多数复杂结构对象[101]。接近三维形状的多个局部参数曲面也面临着曲面之间的拼接问题。解码器需要预测三维空间中的所有点,这在推理阶段非常耗时。用体元表示三维形状可以预测相对正确的三维结构。该方法目前只能重建简单的三维结构,因为用于表示三维形状的体元相对简单。表面原语使用多个平面贴片来接近三维形状。虽然该方法简化了三维表示,但也需要解决平面之间的拼接问题。一般来说,这三个D说有利有弊。

3 二维编码器

利用深度学习技术对二维图像进行三维重建是近年来的研究热点。深度学习也被称为深度神经网络。深度神经网络的学习能力可以用来完成许多与计算机视觉相关的任务,如图像分类[118,44],图像分割[3,10,11],目标识别[144,126,106],图像超分辨率[54,47,61,665]。深度学习方法在二维图像领域的成功应用也促进了三维重建任务的发展[91,19,87,48,97,13,24,77,1,151]。一般来说,基于深度学习的三维重建模型可以将输入图像集表示为I = {I1, I2,…,In},设对应的真三维形状为Y,重构后的三维形状可通过式(1)进行优化:

其中fσ(·)表示重构器,包括2D编码器和3D解码器,σ表示f(·)参数集。重构器从输入图像中重构出三维形状。dis是重建形状与地真形状之间距离的度量,当两者达到最小值时表示为L。

在二维编码器阶段,输入图像被编码到一个潜在空间进行特征压缩。根据编码方法,可分为编码到离散潜空间的图像和编码到连续潜空间的图像。对输入图像进行编码的方法可进一步分为直接编码和中间表示编码。对离散空间进行图像编码的常用网络有标准卷积(Conv)网络、残差网络(ResNet)、递归神经网络(RNN)和全连接(FC)网络。将输入图像编码到一个连续的潜在空间中,通常使用变分自编码器[55](VAE)的编码器部分。将输入图像编码到潜在空间的比较结果如表1所示。

3.1 图像到离散潜在空间

通过这种方式,编码器将输入图像编码成一个低维的潜在层向量。然后解码器将潜在层向量映射到3D形状。将图像编码到离散的潜在空间中,大致可以分为两种方法。第一种方法是二维卷积神经网络直接将输入图像编码为一个固定的低维潜在向量。第二种方式,首先对输入图像进行编码以生成一个中间表示(如2.5D表示),然后对中间表示进行类似于第一种方式的编码。

3.1.1直接编码

对于大多数三维物体重建方法,它们直接将输入图像编码到一个低维的离散潜在空间中。编码示意图如图1所示。

Choy等人[15]提出了浅残差网络和深残差网络。浅网络使用标准的卷积神经网络将输入图像编码为低维特征。深度残差网络采用一种快捷连接方式对标准卷积神经网络进行改进。类似地,Shin等人[99]使用了带有残余单元的编码器。此外,还有关于循环2D编码器的研究[138]。

随后,Girdhar等人[28]引入了TL-embedding网络。在T-network的底部,使用5个标准卷积层将输入图像编码到一个64D嵌入空间中。在T-network的顶部,一个输入的20×20×20体素网格通过3D自动编码器编码到一个64D嵌入空间中,输出的相同大小的体素网格被解码。此外,也有很多研究使用标准的卷积网络进行直接将输入图像编码到离散的隐藏空间。[137, 86, 115, 136, 122]。除了使用卷积神经网络,一些研究还使用了全连接网络[26]。

3.1.2 中间表示编码

许多研究首先试图通过2D编码器-解码器网络生成输入图像的中间表示。然后,使用2D编码器将中间表示编码为潜在向量,基本编码图如图2所示。Wu等129] 提出了MarrNet。他们首先使用ResNet-18[34]将一张256×256 RGB图像编码成多个特征映射。然后,通过解码器输出相应的中间表示(深度映射、表面法线和轮廓图像)。然后,中间表示被编码成一个200维向量。最后,该矢量通过解码器输出128×128×128体素网格。此外,也有一些类似的研究[110,130,148]。

3.2 图像到连续的潜在空间

与将图像编码到离散的潜在空间不同,将图像编码到连续的潜在空间更注重学习潜在特征空间中的概率密度函数,基本编码图如图3所示。VAE的编码器所观察到的样本的目标分布和产生一个向量意味着均值µ和方差σ参数化的高斯分布,采样产生潜在的向量。能够使用反向传播技术优化网络参数,网络需要使用reparameterization技巧,从单位ɛ高斯随机样本。Wu等人[128]使用VAE中的编码器将输入图像编码为一个潜在的表示向量,然后将其输入到3D生成对抗网络(3D GAN)中,完成单个图像的3D体积重建。此外,也有一些研究使用VAE将图像编码到一个连续的潜空间中[102,071]。

4 3D解码器

基于神经网络的2D编码器从大量数据中学习将输入图像编码为潜在向量。然后一个3D解码器将潜在向量转换成三维数据。为了从输入图像中生成三维形状,整个网络需要将低级图像特征与高级特征相结合。基于单幅图像的三维物体重建方法大多选择使用低层图像特征进行推理。但是,这些方法缺乏对对象结构或表达式级别的结构关系的理解。它们有几种输出表示:体素网格、点云、网格、参数曲面和隐式曲面。此外,一些作品试图理解对象结构的高级表示,他们将3D对象视为两个基元(体积基元或表面基元)的集合。进一步的研究试图在更高的层次上理解各部分之间的对称关系[76]。三维解码器分类如表2所示。

以下内容回顾了基于不同3D表示的3D解码器。为了更好地展示基于不同表示的3D解码器之间的差异,我们根据它们的表示水平分别进行评测。

4.1 低级表示的解码

在低级表示中,研究较多的是离散形式的体素网格、点云和网格,研究较少的是连续形式的参数面和隐式面。

4.1.1 基于体素的表示解码

基于体素表示的三维解码可分为密集体素解码、中间表示体素解码、稀疏体素解码和其他解码。

稠密体素解码 随着深度学习研究的发展,基于CAD数据库的深度学习模型被提出用于单个图像的三维建模。Wu等人[127]开始提出3D ShapeNets模型,该模型使用深度卷积信念网络以数据驱动的方式学习所有3D体素的联合分布。这项工作是早期使用体素形式的三维形状表达模型之一。虽然重建结果比较粗糙,但实验结果表明这是一个良好的开端。Choy等[15]先将潜在层向量送入中间模块(3d long -term memory),再通过残差网络解码器生成3d形状(见图4c)。同样,Yang等[141]在潜在层向量和解码器之间引入了注意聚集模块(AttSets)。这两种方法都可以利用中间模块完成单视图图像或多视图图像的三维重建。此外,Yang等[138]提出了一种循环三维解码器来解码潜在层单元以生成三维体积网格。

与上述方法不同的是,也有一些研究将潜在层向量直接解码成三维形状[28,137,86,115,136,26,128,102]。这些方法使用类似的解码器架构(见图4b)。

中间表示体素解码 近年来,许多研究在二维图像和三维形状预测之间增加了一个中间表示(2.5D草图)。与直接从单个二维图像预测三维形状相比,该方法更容易表达三维物体。Wu等人[129]提出了MarrNet,该算法首先估计输入RGB图像的2.5D草图(深度、法线贴图和轮廓)。随后,一个3D encoder decoder被用来从中间表示的2.5D草图估计一个3D形状。同样,Sun等人[110]和Wu等人[130]从输入的RGB图像中依次估计2.5D表示和3D形状。与直接从2.5D估算三维形状的方法不同,Zhang等[148]将2.5D到三维形状过程分解为部分三维完井和全三维完井两个阶段。他们依次用部分球面图和着色球面图来处理深度图,以代表物体的全部表面。最终,体素重建网络将深度图和修补的球形图的反投影结合起来以输出3D形状。实验结果表明,该网络在未经训练的类上也能获得更接近真实的结果。这些方法重建的三维物体的分辨率可以达到128×128×128,重建结果也更加详细。然而,与真实3D模型的外观相比,还有很大的差距。

稀疏的体元解码 在三维空间中,三维形状的表示与重建对象的表面分辨率密切相关。近年来,人们提出了一种稀疏体素表示八叉树的方法[89,119,90]。粗分辨率体素预测可用于空间中大部分为空且完全被占用的对象。混合部分需要进一步细分。采用八叉树方法进行体素稀疏表示可以使重建对象的分辨率达到512×512×512。Tatarchenko等[111]提出了八叉树生成网络(OGN)(图4a)。整个网络从某一层开始,卷积网络放在八叉树上运行,直到输出的分辨率满足设定的条件。与密集体素解码方法相比,OGN可以在有限的存储空间内表示更高分辨率的3D输出。然而,当分辨率增加到一定值时,网络很难适应大数据训练。在这种情况下,模型的性能会下降。同样,Hane等人[33]也提出了一种分层表面预测(HSP)网络。

其他的解码 除了使用中间表示法和八叉树法生成高分辨率三维对象外,还有将三维形状的生成视为二维预测的方法[88,103,98]。Richter等[88]在考虑二维预测而不是三维物体重建后,提出了一种三维几何的二维编码方法。为了更有效地表达低分辨率的3D形状,他们开发了一种方法,从参考视图的每个像素预测整个体素管。此外,6个嵌套深度图的融合用于扩展生成的3D对象分辨率。Smith等人[103]f i r st通过低分辨率的3D编解码器重建了一个粗略的3D形状。然后,利用三维超分辨率网络对六幅高分辨率正交深度图进行恢复。最后,利用高分辨率深度图对上采样的粗糙三维形状进行切割,完成高分辨率三维形状(图4d)。此外,Shen等[98]提出了一种基于傅里叶变换的三维重建方法,在频域预测切片,从二维空间重构三维形状。

 

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章