Contribution
论文的贡献可以概括为以下几点:
- 将深度学习应用于点集生成问题: 这是该研究的核心,它利用深度学习技术来直接生成3D点云,而不是传统的体素或网格表示。
- 在单图像3D重建任务上超越现有技术: 论文明确指出,在从单张图像重建3D形状的任务中,他们应用的这种点集生成网络显著优于现有的最先进方法。这通常意味着在关键评估指标上取得了显著提升。
- 系统性探索点生成网络的架构和损失函数设计问题: 这指的是他们在“网络设计分析”部分所做的研究,例如比较反卷积和全连接分支的效果,以及分析不同距离度量(如CD和EMD)对预测模式的影响。这表明他们不仅提出了一个方法,还对方法的内在工作原理进行了深入的系统性研究。
- 讨论并解决了单图像3D重建任务中的真实值模糊性问题: “真实值模糊性(ground-truth ambiguity)”是指在只有一张2D图像作为输入时,可能对应多种合理的3D形状(例如,你无法确定一个被遮挡的物体背面是什么样子,或者物体的某些部分可能存在多种合理的几何解释)。论文讨论了这个问题,并通过其算法(例如通过生成多个“合理”的形状)提供了解决方案。
Related Work
单图像 3D 重建
- 有很多研究聚焦于多视图->重建3D对象,比如运动恢复结构 (SFM) 和同步定位与建图 (SLAM)
- 往往有很多方法也引入先验知识
- ShapeFromX ,对形状或环境光照条件做出了强假设,和开创了针对简单几何结构的学习方法 。
- 随着商用 3D 传感器变得普及,RGBD 数据库已被构建并用于训练基于学习的系统
- ShapeNet 等大规模 3D CAD 模型库已被引入
- 它们在 3D 重建任务中具有巨大潜力 。例如,和提出通过变形和重组现有形状来拟合观测图像 。然而,这些系统依赖于高质量的图像-形状对应关系,这本身就是一个具有挑战性和病态的问题 。
- 给定一张单一图像,他们使用神经网络预测底层 3D 对象为一个 3D 体积 。
- 本研究与上面的3D CAD之间存在两个关键区别:
- 第一,3D CAD中预测的对象是 3D 体积,而本研究是点云 ,点集为神经网络形成了更好的形状空间 ,因此预测的形状趋于更完整和自然
- 第二,本研究允许对单个输入图像进行多个重建候选,这种设计反映了单个图像不能完全确定 3D 形状重建的事实 。
深度学习在几何对象合成中的应用
- 深度学习在几何对象合成(特别是生成 3D 点集)方面仍处于起步阶段,这是一个未充分探索的领域,并指出了点集作为一种无序数据结构所带来的独特挑战(如排列不变性和距离度量)。
Problem and Notations
这一部分明确了本研究的目标,并定义了在论文中使用的关键概念和数学符号,特别是关于 3D 形状的表示方式。
3D形状的表示
- 我们的目标是从单一 2D 图像(RGB 或 RGB-D)重建对象的完整 3D 形状 。我们以无序点集的形式 S=\{(x_{i},y_{i},z_{i})\}_{i=1}^{N} 表示 3D 形状,其中 N 是一个预定义的常数 。我们观察到,对于大多数对象,使用N=1024 个点足以保留主要结构。
- 使用点集有几个优势
- 无拓扑约束:与深度图等 2D 表示不同,点集不强制对象的拓扑结构 。
- 效率高:相较于 3D 网格,点集只编码对象表面上的点,因此更高效 。
- 几何变换简便:点集在旋转或缩放时,其坐标值仅进行简单的线性变换,这简化了操作,与体积表示不同
不确定性建模
-
由于从单一 2D 图像重建 3D 形状本身是一个病态问题(即可能存在多种合理的 3D 形状对应同一个 2D 视图),因此作者将 3D 形状的地面真实定义为一个概率分布P(⋅∣I),表示在给定输入图像 I 的情况下,可能存在的形状集合
-
为了处理这种不确定性,他们训练了一个神经网络,G 作为条件采样器
\mathbb{G}(I,r;\Theta)它以输入图像 I 和一个随机变量 r(来自标准正态分布,用于引入扰动和探索不同的可能性)作为输入,通过网络参数 Θ 预测一个 3D 点集 S 。r不同代表着多可能性。
Approach
点集预测网络
- 编码器将图像 I 和随机向量 r 的输入对映射到嵌入空间 ,编码器由卷积层和 ReLU 层组成
- 预测器通过全连接网络输出一个形状,表示为 N×3 矩阵 M,每一行包含一个点坐标。
- 第一个部分虽然简单但是效果也很好
- 我们进一步进行添加设计,为了更好的适应光滑表面,因为每个点都是独立的,所以很难利用集合统计的特征,所以变成了两个分支--一个全连接 (fc) 分支和一个反卷积 (deconv) 分支
- 全连接 (fc) 分支:负责预测 N1 个点 。这个分支保留了对复杂和精细结构的捕获能力,因为它具有高度的灵活性 。
- 反卷积 (deconv) 分支:预测一个 H×W 大小的 3 通道“图像”,其中每个像素的三个通道值代表一个点的 XYZ 坐标,从而生成另外 H×W 个点 。这个分支通过权重共享和由卷积操作带来的空间连续性,更适合处理大型光滑表面,并且在参数上更节约 。
- 合并与跳跃连接:两个分支预测的点集最终被合并起来形成完整的输出点集 M 。此外,为了改善信息流,还增加了多个跳跃连接 (允许信息直接从网络的早期层(包含更丰富的低级特征,如边缘、纹理)传递到网络的后期层(通常处理更高级别的抽象特征)),连接编码器和预测器 。
- 作者指出,这两个分支是互补的,全连接分支擅长细节,反卷积分支擅长主体结构(比较连续)
点集之间的距离度量
- 标准:1) 对于点的位置是可微的;2) 计算高效,因为数据将多次进行前向传播和反向传播;3) 对集合中少量离群点具有鲁棒性
- 我们提出了两种候选度量:Chamfer 距离 (CD) 和 Earth Mover's 距离 (EMD) 。
Chamfer距离
d_{CD}(S_1, S_2) = \sum_{x \in S_1} \min_{y \in S_2} \|x - y\|_2^2 + \sum_{x \in S_2} \min_{y \in S_1} \|x - y\|_2^2
- 对于一个点集中的每个点,CD 算法会在另一个点集中找到其最近的邻居,然后将这些平方距离加起来,像 KD-tree 这样的空间数据结构可以用来加速最近邻搜索
Earth Mover距离
d_{EMD}(S_1, S_2) = \min_{\phi: S_1 \to S_2} \sum_{x \in S_1} \|x - \phi(x)\|_2
- 最优的双射是唯一的,并且在点的微小移动下保持不变
- 想象你有两堆相同数量的点云(S1 和 S2),每堆点云都由相同数量的点组成。EMD 就是计算:把 S1 这堆点重新排列成 S2 这堆点的形状,需要移动这些沙粒的总最短距离是多少?
- 但这种方法复杂度比较高,我们实现了一个(1+ϵ) 近似方案 。
- 我们为每个实例分配固定的时间,并逐步调整允许的误差率以确保终止。
- 对于典型的输入,该算法能给出高度准确的结果(近似误差在1%的量级) ,并且很容易在 GPU 上并行化
形状空间
神经网络在预测物体精确几何形状时不可避免地会遇到不确定性,这可能来源于:
- 网络容量有限
- 输入分辨率利用不足
- 3D到2D投影导致的信息丢失
面对这种内在的形状解析能力限制,神经网络倾向于预测一个"平均"形状来平衡不确定性空间。 - 通过随机梯度下降最小化 Es∼S[L(x, s)],我们可以看到下面这个图
- 在第一和第二个案例中,有一个单一的、连续变化的隐藏变量,即 (a) 中圆的半径和 (b) 中弧线的位置 。
- EMD 大致捕捉到了与隐藏变量平均值相对应的形状 。相比之下,CD 产生了一个发散模糊的形状,模糊了形状的几何结构 。
- 在后两个案例中,存在分类的隐藏变量:即 (c) 中正方形附件位于四个角中的哪一个,以及 (d) 中条形旁边是否有一个圆盘(概率50%) 。
- 为了解决变化部分的不确定存在性,CD 的最小化器会在主体外部的正确位置上分布一些点 ;而 EMD 的最小化器则会产生相当大的扭曲。
生成多种可能的形状
- 为了更好地建模不确定性或内在的模糊性(例如单视图中的未见部分),我们需要让系统能够生成分布式输出。我们期望传递给生成器G的随机变量r(见公式1)能帮助它探索真实分布。
- 然而,简单地将G插入损失函数来预测S_pred_i是行不通的,因为损失最小化会消除随机性。
- 如果使用标准的损失函数(即将网络输出与唯一的真实模型计算距离),网络为了让损失最小,会学着去忽略随机向量 r 的影响 。因为它会发现,无论 r 怎么变,只要生成那个和真实模型最像的“平均形状”,损失总是最低的。这样一来,随机性就失效了,网络最终还是只能生成单一的形状。
- 我们发现了一个实用且有效的不确定性建模方法:MoN(N选最小)损失:
\min_{\Theta} \sum_k \min_{\substack{r_j \sim \mathcal{N}(0,I) \\ 1 \leq j \leq n}} \left\{ d\left(G(I_k, r_j; \Theta), S_k^{\text{gt}}\right) \right\} \tag{5}
- 通过给予 n 次机会来最小化距离,网络学会了在接收到不同随机向量时将其预测分散开来 。
- 在实践中,我们发现将 n 设置为 2 就已经能让我们的方法探索真实形状的空间了 。
- 像CGAN 或 VAE 这样的生成模型是处理这类问题的标准框架 。这些框架通常需要一个“判别器”或“编码器”来判断生成的点云是否真实,但这需要一个能很好地理解和处理3D点云的神经网络 。
- 在当时,如何设计这样的网络本身就是一个难题 ,所以作者采用了 MoN 这种更直接、有效的方法来实现多模态输出。
Experiment
通过合成生成训练数据
- 使用了名为 ShapeNet 的大型3D模型库,这是一个包含海量CAD模型的资源库,将这些3D模型放入一个虚拟的3D环境中,然后像“拍照”一样,从不同角度、在不同光照下渲染出2D图片 。
- 模型预处理:
- 标准化: 每个模型的边界半球半径被标准化为单位1。这可能意味着他们将所有模型缩放到一致的大小,使其具有可比性。
- 对齐: 它们的“地面平面”被对齐,确保所有模型都以一致的方向(例如,垂直站立在一个平面上)呈现。
- 渲染过程: 每个3D模型被渲染成2D图像:
- 着色公式: 他们使用了Blinn-Phong着色公式,这是一种在计算机图形学中计算光线如何从表面反射的常用方法,能创建逼真的外观,它考虑了光源、物体颜色、观看角度等因素。
- 环境贴图: 使用了随机选择的环境贴图,这可能模拟了不同的照明条件和背景。
- 局部光照模型: 为了计算效率(“节省计算时间”),他们使用了简单的局部光照模型。
- 可扩展性: 他们提到他们的方法可以很容易地扩展到更复杂的渲染技术,如全局照明算法(模拟光线在场景中反弹)和更精细的背景,这表明未来可能进行改进。
从RGB图像重建3D形状
- 他们将自己的工作与3D-R2N2进行了比较,使用了相同的训练数据集,3D-R2N2被描述为基于深度学习的3D对象生成领域的最新技术。
- 3D-R2N2的方法: 3D-R2N2从单视图或多视图图像中重建3D形状,并将其表示为体素(volumetric)表示。这意味着它将3D对象表示为体素(3D像素)网格,其中每个体素要么被占用,要么是空的
- 评估指标:CD(Chamfer Distance,倒角距离),EMD(Earth Mover's Distance,地球移动距离),IoU(Intersection over Union,交并比)
- 因为3D-R2N2输出的是体素,所以他们使用了迭代最远点采样将3D-R2N2的预测体素和真实体素采样成离散的点集。这创建了与他们自己的方法输出的点云具有相同点数的点云。
- 他们方法的IoU: 在计算IoU时,他们将自己的点集后处理为体素表示,其分辨率与3D-R2N2相同,以便直接比较
- 尽管没有直接针对IoU进行训练,但他们的网络在“所有三项指标(CD、EMD、IoU)下都表现出显著更好的性能”。
- 他们的方法在许多类别上“甚至优于3D-R2N2在给定5个视图时的预测”,考虑到3D-R2N2可以利用多个输入视图,这是一个强大的结果。
- 可以看到,3D-R2N2经常遗漏一些细节的特征
- 他们推测这是由于3D-R2N2的体素表示和逐体素损失函数,这“不当地惩罚了位置错误的细薄结构”。如果一个细长的腿偏离一个体素,它可能会受到严厉的惩罚,相反,点云可以更自然地表示细薄结构,而不受体素僵硬的网格限制。
- 时间上,他们当前的实现在笔记本电脑CPU上处理一张输入图像需要0.13秒,这表明对于实际应用而言,计算效率是合理的。
注入额外信息
- 论文指出,他们方法的一个有趣特点是能够轻松地将额外输入信息注入系统。
- 当神经网络接收RGBD--RGB + Depth输入时,他们的系统就摇身一变,成为一个3D形状补全方法。RGBD图像不仅包含颜色信息,还包含每个像素的深度(距离)信息,这对于理解三维空间至关重要。
- 可以看到网络可以成功推断出模型缺失的部分
- 那是如何做到的呢?
- 系统通过利用嵌入在“对象存储库”(object repository,即训练数据中)的形状先验知识来完成缺失部分。
- 对称性线索(飞机的对称),功能性线索(拖拉机有轮子)
- 点集(point set)的灵活表示有助于解析物体的一般形状和拓扑结构。点集作为一种轻量级且灵活的3D表示,不像体素那样受限于固定网格,更容易适应复杂和变化的形状。
- 论文暗示,可以在他们的预测之后级联更细粒度的方法,这些方法可以直接利用局部几何线索来丰富更高频率的细节。这意味着他们的系统可以提供一个“大致”的形状,然后可以由其他专门处理精细几何细节的方法进行完善。
预测多个合理的形状
- 他们网络中的随机性允许在给定相同输入图像的情况下预测不同的形状。
- 在训练过程中,他们通过使用Mo2(Mixture of Experts,混合专家模型)或VAE(Variational Autoencoder,变分自编码器)方法来处理这种随机性。这两种方法都能在模型中引入随机性或潜在变量,从而生成多样的输出。
- 在测试时,当真实形状未知时,随机数从预定义的分布中采样。这意味着每次运行模型时,虽然输入相同,但由于内部随机数的不同采样,会生成略有差异的3D形状。
- 他们使用Mo2方法和Chamfer Distance损失函数训练了网络。
- 确定性区域: 神经网络对其位置确定的点,在不同的预测之间几乎不移动。这意味着模型对这些部分的形状和位置非常有信心。
- 模糊性方向: 沿着模糊性方向(例如,企鹅身体的厚度),变化显著更大。这表明当输入图像没有足够的信息来确定某个特定特征时,模型会生成多种可能性来反映这种不确定性。
- 论文强调,其他设置和方法的组合也给出了定性上相似的结果,这表明这种预测多重形状的能力是他们方法的一个内在特性,而不是特定于某个训练设置。
网络设计分析
结合反卷积和全连接分支进行重建的效果
- 引入反卷积显著提高了性能。这表明反卷积层在形状重建中扮演了重要角色。
- 在图9中,一个模型的x、y、z通道值被绘制成2D图像。这可能是为了展示这两个分支在内部如何组织和处理空间信息。
- 反卷积分支: 神经网络在反卷积分支中学习使用卷积结构来构建一个围绕物体环绕的2D表面。这暗示反卷积层能够生成具有一定拓扑结构或连续性的输出,类似于一个包裹在物体外部的“皮肤”。
- 全连接分支: 全连接分支的输出则组织性较差,因为通道之间没有固定的顺序。这表明全连接层可能对每个点进行独立控制,不强制其具有空间连续性。
- 反卷积分支的优势: 反卷积分支通常擅长捕获物体的**“主体”(main body)**。这可能是因为卷积/反卷积操作的局部性和平移不变性使其非常适合处理连续的、结构化的几何信息。
- 全连接分支的补充作用: 全连接分支则用更多细节组件来补充形状,例如枪的尖端、飞机的尾翼、沙发的扶手等。这些是主体之外的、通常较小或较细的结构。
- 效率与灵活性:
- 反卷积分支: 预定义的权重共享和节点连接赋予反卷积分支更高的效率,尤其当输出结构与期望结果一致时。这意味着它能更高效地学习和表示那些具有重复模式或局部一致性的结构。
- 全连接分支: 全连接分支更加灵活,但它对每个点的独立控制会消耗更多的网络容量。这是因为每个输出点的位置可能都需要独立地学习其映射关系,导致参数数量更多。
距离度量分析
- 不同损失函数的选择对网络预测模式有明显影响。
- CD 训练的网络:
- 不确定区域: 倾向于在其不确定区域(例如门后面)分散一些点。这可能是CD的性质,它更关注找到最近的点,即使这些点稍微偏离真实位置,只要距离近,损失就小。这使得它在不确定时倾向于“撒点”以覆盖潜在区域。
- 细节保留: 但它能够更好地保留手柄等细节形状。这可能因为它更直接地惩罚点之间的距离,使得模型努力让预测点尽可能接近真实点的边界。
- EMD 训练的网络:
- 结果紧凑: 产生的结果更紧凑。EMD更关注将一个点集“移动”到另一个点集所需的最小工作量,这可能鼓励点集整体更接近并更密集地覆盖真实形状。
- 局部结构收缩: 但有时会过度收缩局部结构。为了最小化“移动”成本,EMD可能会牺牲一些细微的局部特征,将点聚拢起来。
对真实世界数据的更多结果和应用
下图列出了对合成数据和真实世界照片的更多示例预测。
这些真实世界的照片是从类似于用于合成数据的设置的视点和距离中获得的。
Conclusion
作者表明,在生成三维点云时面临的主要困难,即如何表示无序数据以及如何处理歧义在机器学习中是通用的。
希望演示基于单幅图像的三维重建可以帮助激发这两个领域的进一步发展。
评论区