三维重建(记录学习过程,持续更新)

以下全部内容仅是个人理解,如有错误请指出。

在进行三维重建学习之前首先需要了解几个概念:

倒角距离

倒角距离涉及到二维图像的倒角距离和三维点云之间的倒角距离,二维图像的倒角距离定义为模板中的任意一点与所给图像中某点的最小距离的平均值。三维点云的倒角距离定义为点云C1中的一点到点云C2中的某点的最小距离之和加上点云C2中的一点到点云C1中的某点的最小距离的平均值,三维点云的倒角距离常用于进行三维重建网络的损失函数的设计。

三维数据有多种表示形式,包括volume、point cloud、mesh等。volume是一种规则的数据结构,即将物体表示为的N3格子,受分辨率和表达能力限制,这种表示方法通常缺乏细节;pointcloud是一种不规则的数据结构,由于点之间没有局部连结关系,点云往往缺乏物体的表面信息;3D Mesh同样是一种不规则的数据结构,由点、边和面组成。

下面介绍几篇相关论文。

1.Pixel2Mesh

论文的完整标题为《Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images》译为:《从单一的RGB图像生成3D网格模型》。

网络结构图:(引自原论文)

首先输入图片经过一个多层的卷积神经网络进行特征提取,然后设计了三个级联的网格变形模块(文中提到增加级联模块的数量效果会变好,但是模块过多时会增加顶点和边的数量影响效率,最后选择三个级联模块)。网格变形模块由图卷积网络(GCN)组成,图中Perceptual feature pooling层可根据网格顶点坐标得到投影的图片特征,然后根据此特征不断对初始的椭球进行变形,直到接近真实三维形状。Graph unpooling(图上池化)层用于增加三维网格节点和边的数量。

 上图为网格变形模块与Perceptual feature pooling层的结构图,图a显示为了生成与输入图像中所示对象一致的三维网格模型,变形模块需要从输入图像中汇集特征,P为输入图像提取到的的特征,C为顶点坐标,F为形状特征。图b利用摄像机的固有特性将三维顶点投影到图像平面上,利用双线性插值从2D-CNN层中提取感知特征。首先P和C经过Perceptual feature pooling可以得到对应的投影(感知)特征,再与F的三维特征形状进行特征拼接(concat深度拼接,从‘conv33’、‘conv43’和‘conv53’层提取的特征连接起来,得到的总维数为1280。然后,这个感知特征与来自输入网格的128维的3D特征连接起来,结果总维数为1408),并输入到一系列基于图的ResNet网络中去。G-ResNet生成每个顶点的新坐标(Ci)和3d形状特征(Fi),也作为网格变形模块的输出。

G-ResNet:

文中设计了一个基于图的卷积神经网络来预测每个顶点的新位置和三维形状特征。(所有块的G-ResNet具有相同的结构,由14个图残差卷积层,维度128)

最后介绍一下Graph unpooling层,下图为图上池化过程图:

实验中直接训练网络使其预测mesh的效果并不好。一个原因是如果直接预测较大数量的点的网格,顶点的感受野会有受限,即mesh的顶点无法有效地检索邻近顶点的特征。为了解决这个问题,本文设计了一个图的上池化层(Graph unpooling layer),我们从一个顶点较少的网格开始,只在必要时添加更多的顶点,在每一条边的中间添加一个点入图中黑色实心点,并与相邻的添加点连接一条边(图中虚线),使得点的数量逐渐由少到多,将新添加顶点的3D特征设置为其两个相邻顶点的平均值。因此,我们为原始网格中的每个三角形创建了4个新三角形。

 网络接收到输入图像大小为224×224,初始椭球体包含156个顶点和462条边。

总结:提出了一种从单一图像中提取三维三角网格的方法,对一个初始化的椭球网格根据提取的特征进行变形,实现三维网格重建。

2.pixel2mesh++

论文题目:《Pixel2Mesh++: Multi-View 3D Mesh Generation via Deformation》译为:《通过变形生成多视图3D网格》

核心:Multi-View Deformation Network (MDN)(多视图变形网络)

MDN网络以同一个物体在不同视角的彩色图片作为输入,假设已知不同视角之间的相机参数,最终网络预测一个在主视角相机坐标系下的三维网格模型。

该网络以同一个物体在不同视角的彩色图片作为输入,假设已知不同视角之间的相机参数,最终网络预测一个在主视角相机坐标系下的三维网格模型。模型结构(论文原图):

Deformation Hypothesis Sampling(变形假设采样)

 从一个以顶点为中心,标度为0.02的一级二十面体中取样,得到42个假设位置(上图左)。然后构建一个二十面体的局部图,假设与中心顶点之间有额外的边,形成一个有43个节点,120 + 42 = 162条边的图。对所有顶点建立这样的局部图,然后将其输入GCN预测顶点的移动(上图右)。

  Cross-View Perceptual Feature Poolin(交叉视角感知特征池化)

使用VGG-16网络来提取感知特征。由于摄像机的姿态是已知的,每个顶点和假设都可以使用已知的摄像机内外参数找到它们在所有输入彩色图像平面上的投影,并使用双线性插值从四个相邻的特征块中提取特征,此处与pixelmesh不同,MDN汇集了较早层的特征(即“conv12”、“conv22”和“conv33”),这些特征具有较高的空间分辨率,并考虑保持更详细的信息。

Deformation Reasoning(变形推理)

 从假设中为每个顶点推理出最佳变形。请注意,从所有假设中选择最佳的假设需要argmax操作,这需要随机优化,通常不是最优的。相反,文中设计了一个可微的网络组件,将三维变形假设的结果通过soft-argmax来产生理想的变形。具体来说,首先将交叉视图感知特征P输入一个评分网络,该网络由6个图残差卷积层+ ReLU组成,以预测每个假设的权重。然后将所有权重输入softmax层并归一化到得分si, 。顶点位置随后被更新为这些假设hi的加权和,即。这个变形推理单元运行在基于共享权值的每个顶点的所有本地GCN上,因为我们希望所有顶点以类似的方式利用多视图特性。

总结:本文提出了基于图像卷积的三维网格模型生成方法。该模型利用交叉视图信息,迭代生成顶点变形,在每个网格顶点周围的附近区域中搜索最佳位置进行顶点位置变形,以改进直接预测方法产生的网格。 

TMNet

论文题目:《Deep Mesh Reconstruction from Single RGB Images via Topology Modification Networks》译为:《基于拓扑修改网络的单RGB图像深度网格重建》

网络结构(原论文截图):

 采用编码器-解码器结构,采用ResNet-18作为编码器,可以提取出1024维的形状特征。TMNet 通过对一个预定义好的由 2562 个顶点构成的球面进行变形,最终拟合出物体形状,其解码器端由三层连续的子网络构成,其中前两层子网络均由一个变形模块和一个拓扑修正网络模块组成,最后一个子网络是边界细化网络。假定有物体的图像𝐼,其待重建表面记为𝑆TMNet使用的网格是三角形网格,故定义网格为𝑀 = (𝑉, 𝐸, 𝑇),其中𝑉 顶点集;𝐸是边集,𝑇是三角形网格面集。预定义一个球面的模板网格记作𝑀0(2562个网格定点)前两层网络中的变形模块能够在保持顶点坐标及其连通性的前提下将𝑀0上的顶点映射到物体表面从而得到一个粗略的结果𝑀1。随后将𝑀1送入拓扑修改模块,拓扑修改部分能够通过误差预测网络来 计算𝑀1与真值之间的偏差情况,从而修剪掉误差较大的面片。此时得到一个初步的粗略输出𝑀2,随后将𝑀2送入第二层子网络,对𝑀2再执行一遍上述操作,即经历一次变形然后再进行拓扑修改,最终获得一个输出𝑀。将𝑀送入第三层子网络的边界优化模块,对其边界进行进一步细化以提高其光滑性,最终获得重建结果。网格变形模块是一个 MLP(多层感知器),由四个尺寸分别为 1024512256128 的全连接层构成。其中前三层是非线性的激活函数(ReLU),最后的输出层是一个tanh函数。给定初始网格𝑀0和包含物体先验知识的特征向量x,将x复制后与包含𝑀0全部顶点的矩阵相互连接,然后送入 MLPMLP 会对𝑀0的每个顶点进行仿射变换并推算出顶点位移。其中,这个位移指的是顶点的预测偏移量。

Topology Modification(拓扑修正)

 

 该网络通过修剪明显偏离真值的表面来更新重建网格的拓扑结构,通过进行误差估计(前文MLP输出的预测偏移量),并通过设定误差阈值(第一个子网阈值较大,在下一个子网对阈值减小,一种渐进的修剪策略)来进行表面网格的修剪更新,红色部分表示误差估计较大的部分。

 Boundary Refinement(边界细化)

普通的网格修剪使得边界出现锯齿状,如本节第一个图中子网一盒子网二的输出,为了处理该问题,设计边界细化模块,类似于网格变形模块,但仅预测相对于每个输入边界顶点的位移。注意,每个边界顶点只允许在由与该顶点相交的两条边界边建立的二维平面上移动。文中提出了一种新的正则化项,通过加强边界曲线保持平滑和一致来惩罚锯齿(loss设计)。

Deepsdf

SDF:(signed distance function)表示三维空间中对于一个三维模型的特定函数,当输入一个坐标时,函数输出三维模型表面距离该点最近的坐标。模型外部的点,距离为正,模型内部的点,距离为负。

论文题目:《DeepSDF: Learning Continuous Signed Distance Functions for Shape Representation》

论文没咋看懂,推荐一篇博客:

DeepSDF : Learning Continuous Signed Distance Functions for Shape Representation_冲冲冲!-CSDN博客

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值