现有的单视角三维物体重建方法通过采用不同的几何形状表达方式取得了不同程度的成功,但它们都难以重建出拓扑复杂的物体形状。为此,华南理工大学,香港中文大学(深圳)以及微软亚研院联合提出一种以骨架(meso-skeleton)为桥梁融合多种形状表达方式优点的深度学习算法,非常有效地解决了这一难题。
为了能够准确地抓住物体的拓扑结构,本文引入了骨架做为桥梁,因其具有保护拓扑而又易于学习的优点。为了能够从图片中准确地推断出对应物体的骨架,他们设计了一个全新的骨架合成网络架构,利用平行双分支结构分别合成曲线状和曲面状骨架。
同时,他们采用了分阶段学习的方式以融合多种形状表达方式(体素,点云,三角网格)各自的优点。图像的多阶段层级利用有助于减小各阶段学习时累计的预测误差。实验结果表明,这一方法在定量和可视化对比均优于现有的重建方法。这项工作受到会议评审者的一致好评,三位评审者均给出了强烈接(Strong Accept)的意见,已收录为 CVPR 2019 Oral 论文。
从单张图片恢复出三维物体形状这一研究课题在许多应用中扮演着重要的角色,例如增加现实,图像编辑。但是由于物体的拓扑结构复杂多变,这一课题也颇具挑战性。目前,基于体素表达的方法受限于三维卷积网络计算和内存的限制而难以得到高分辨率的输出。基于点云表达的方法又很难生成平滑而又干净的表面。
三角网格表达对物体形状提供了一种更有效,更自然的离散化逼近方式。最近的一些方法尝试直接从输入图像中恢复物体的网格表达。这些方法本质上是在对一个给定拓扑连接关系的初始网格变形,比较有代表性的初始网格有单位平面,球。尽管它们有一定的效果,但是仍然难以恢复具有复杂拓扑结构的物体表面,例如图 1 所表示的具有细长的杆的椅子。
▲ 图1. 本文提出的方法能从单视角图像中重建完整的三维物体,而且能正确地恢复拓扑
因此,本文提出了一种基于骨架表达的分阶段学习方法,来实现从单张图片恢复物体表面网格表达,对于重构桌子椅子这些具有细长结构的物体效果尤为显著。他们引入了骨架,因其能很好地保护拓扑,而且相比于复杂的表面更易于学习。
他们的方法具体分为以下三个阶段:
第一阶段是从输入图像中学习生成骨架点云。为此他们设计了平行的双分支网络架构,被命名为 CurSkeNet 和 SurSkeNet,分别用于曲线状和曲面状骨架点云的合成。为了 CurSkeNet 和 SurSkeNet 的训练,他们针对 ShapeNet 的物体模型处理了骨架数据集来当做 ground truth 用于训练。
在第二个阶段,他们通过将合成的骨架点云体素化,然后用三维卷积网络对粗糙的骨架体素进行修复提取出一个初始网格。此处为了减小高清体素输出时的网络复杂度,采取了用全局结构引导分块体素修复的方式。
最后一个阶段使用图卷积神经网络来对前面获得的初始网格进行变形以得到最后表面网格表达。
▲ 图2. 算法流程图总览
Overview
图 2 展示了他们方法的整个流程图。输入物体的单视角图像 I , 本文的目标是重构出网格表达的完整物体形状,同时能正确地抓住三维物体的拓扑结构。为了解决这一难题,本文基于骨架表达,提出了以下分三个阶段的物体重构过程。
在第一阶段,他们采用编码器-解码器的网络结构从输入图片 I 学习出对应的骨架 K,它本质上是一个更简洁紧凑的点云表达。
在第二个阶段,他们把获得的骨架 K 先转成一个粗糙的体素表达的 Vk,然后用三维卷积神经网络对其进行修复,得到一个更精细化的体素 V。
在最后一个阶段,他们先从体素 M 中提取出一个粗糙的初始网格 Mb,然后再用图神经网络对网格的顶点位置进一步优化,得到最后的输出网格 M。每个阶段都有一个图像编码器来提取所各自需要的信息,因此输入图片 I 引导着三个阶段的学习过程。
Learning of Meso-Skeleton
CurSkeNet 和 SurSkeNet:给定输入图像 I,他们采用 ResNet-18 做为编码器将提取的特征映射成高维空间的向量,然后设计译码器同于生成骨架点云,而译码器的网络架构是基于 CurSkeNet 和 SurSkeNet 的平行双分支结构。
这样的设计方法,可使曲线状和曲面状的骨架区域的合成得以独立完成,互不干扰。SurSkeNet 通过对一些 2D 平面进行变形,来逼近曲面状骨架。CurSkeNet 对一些 1D 直线进行变形,通过实施仿射变换来形成曲线,然后学习如何将这些曲线聚集成曲线状的骨架部分。
Network Training:本文用曲线状和曲面状的骨架点云分别去训练 CurSkeNet 和 SurSkeNet,所以采用 Chamfer Distance(CD 距离)做为损失函数的一部分,其定义如下:
为了保证变形的局部一致性,防止出现过大的变形,他们还在骨架学习过程中加上了拉普拉斯平滑正则化项。它被定义为:
From Skeleton to Base Mesh
▲ 图3. 高清体素表达的骨架合成方法流程图
Sub-volume Synthesis with Global Guidance:为了保护骨架 K 所抓住的拓扑结构以及得到粗糙的初始网格,他们需要将 K 进行修复以得到一个高分辨率的体素表达。
具体地做法如下,先把骨架K体素化,得到两种分辨率下的体素表达,被记做,,分辨率为。
如图 3 所示,他们采用两个三维卷积网络用于骨架体素的全局结构和局部子块合成。全局结构合成网络用于对的修复,产生一个分辨率为的骨架体素表达。局部子块合成网络用从中均匀切割出来的子块做输入,对这些子块独立地进行修复。当修复每个子块的时候,全局网络的输出中对应的对应的子块也被一起输入,使得每个子块修复后的结果仍然保持全局一致性。
▲ 图4. (a) 输入图片(b) 学习到的骨架点云 (c) 只分子块进行修复 (d) 加上全局结构引导 (e) 加上图像的引导
Image-guided Volume Correction:为了纠正在骨架生成阶段时的预测误差,我们再次利用输入图像 I,从中学习一个低分辨率的骨架体素表达,将其集成到我们前面提到的全局结构合成网络,得到一个更准确的全局结构 。这最终将有助于我们得到一个更好的修复结果 V。如图 4 所示,图像 I 的使用大大提高了修复后的骨架体素 V 的效果。
Base Mesh Extraction:得到修复后的体素 V 后,我们用 Marching Cubes 算法来产生初始网格 Mb,它仍然保留着和骨架 K 一样的拓扑结构。为了减轻后续的计算负担,我们对 Mb 进行了简化。
Mesh Refinement
▲ 图5. 三角网格变形网络
到目前为止他们获得了抓住潜在物体拓扑结构的初始网格 Mb,但是还缺乏物体表面的细节。他们利用图卷积神经网络结合输入图像对粗糙的初始网格进行变形,达到在 Mb 的表面处补充细节的目的。
图 5 所示是他们的网格变形网络。本文的图神经卷积网络由一些图卷积层组成,每个层对 Mb 的每个顶点以及其局部邻域实施空间滤波操作。图卷积层的定义如下:
与 Pixel2Mesh 类似,我们也将从图像 I 提取出来的特征结合到对应的顶点位置上来促进学习过程。关于损失函数选择,此阶段再次使用了 CD 距离来训练。同时加上了平滑正则项来规范网格变形过程。一个是 edge regularization,用于防止边长过长,避免大的变形,造成形状畸变。另外一个是 normal loss,用于保证输出物体表面的平滑。
Single-view Reconstruction
为证明所提出方法在单视角重构这个任务上的有效性,本文挑选了 ShapeNet 中有代表性的五个物体种类(plane, bench, chair, table, firearm)来进行实验说明。
Qualitative results
▲ 图6
图 6 展示了我们方法与现有方法的视觉对比结果。 可以看出,我们的方法(f)已经超过了其他方法(b-e),因为我们生成的是完整的物体形状网格表达,而且能抓住正确的拓扑结构,以及刻画更多的细节。
Quantitative Results
通过使用网格上采出具有 10000 个点的点云,本文采用 CD 和 EMD 来评估重建质量。表 1 展示了与其他方法量化对比的结果。
▲ 表1. 单视角重建方法的 CD EMD 对比结果
Generalization on real images
图 7 所示是我们的方法在三张真实图片上的重构结果。 可以看到重建结果的质量与合成图片的结果十分相似。特别是图 7(a) 所示,该图片虽然与 ShapeNet 无关,但是我们仍然能将看不到的细杆很好地重构出来。这一结果也证明了我们方法优秀的泛化能力。
▲ 图7. 真实图像测试结果
Evaluation on Skeleton Inference
在这一节,我们对我们骨架学习方法的几个变种进行比较,用此来说明我们最后所选用的模型是最优的。
它们是:1)“Point-only fitting”方式直接采用PointSetGeneration 去回归骨架点坐标;2)“Line-only fitting”方式移除了我们方法中的面拟合分支,只通过对多根直线变形来逼近骨架;3)“Square-only fitting”方式则移除了线拟合分支,只通过对多个平面变形来逼近骨架 ;4)“Line-and-Square fitting”则是只用一个 MLP 来同时学习线和面的变形;5)“Ours w/o laplacian”代表我们的模型但没有加拉普拉斯平滑项。
Quantitative Results
▲ 表2. 骨架学习方法的CD对比结果
由表 2 可以看出我们最终的骨架学习模型比其它的几个变种方法更优。另外一个发现是我们的拉普拉斯正则化项有助于骨架预测得更加准确。
Qualitative Results
▲ 图8
图 8 用一个例子展示了这些骨架学习方法的视觉对比结果。由此图可以观察到利用双平行预测分支用于曲线状和曲面状骨架独立合成这一设计方法和拉普拉斯平滑项的有效性。
从单个视角恢复一个物体的三维形状是计算机视觉领域中一项基础性而又具有挑战性的任务。本文提出的框架将这一任务分成三个阶段,它首先恢复点云表达的 3D 骨架,然后这些骨架点被转为体素表达,通过三维卷积网络合成一个更
可靠的体素用于提取粗糙的初始网格。最后,一个图神经网络被用于学习网格变形来产生表面细节。正如文中的实验所示,这一方法在可视化和量化上均优于现有其他方法。但是这也有两个将来可以改进的方向:1)如何将全部流程整合成一个端到端训练的网络;2)在骨架学习,体素生成,网格变形每个过程尝试使用对抗学习,以更一步提高最后输出结果的质量。
点击以下标题查看更多往期内容:
#投 稿 通 道#
让你的论文被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢? 答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得或技术干货。我们的目的只有一个,让知识真正流动起来。
📝 来稿标准:
• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)
• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接
• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志
📬 投稿邮箱:
• 投稿邮箱:hr@paperweekly.site
• 所有文章配图,请单独在附件中发送
• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。
▽ 点击 | 阅读原文 | 下载论文