此内容是论文总结,重点看思路!!
文章概述
形状补全是计算机视觉和机器人学中的一个重要任务,旨在从部分观测到的点云中恢复完整的3D物体形状。传统的形状补全方法通常依赖于手工设计的特征或对形状的先验知识,限制了其在复杂场景下的泛化能力。
本文提出了Point Completion Network (PCN),一种端到端的深度学习框架,直接在原始点云上进行操作,无需任何中间表示或先验知识。设计了一种新型的解码器结构,能够生成细粒度的补全结果,同时保持较少的参数量。在多个数据集上进行了实验,验证了PCN在不同程度的缺失和噪声下都能生成具有真实结构的完整点云。
方法概述
PCN采用编码器-解码器架构。编码器将输入的部分点云编码为全局特征向量。解码器则通过逐步上采样的方式,从全局特征中解码出完整的点云。具体来说,解码器包含两个阶段:
-
粗阶段:生成一个粗糙的点云,捕捉整体形状。
-
细阶段:在粗糙点云的基础上,通过局部折叠操作生成更精细的点云,恢复细节信息。
PCN 网络结构
1. 编码器(Encoder)
编码器的作用是将输入的部分点云(Input X)压缩成一个紧凑的全局特征向量(Global feature v),这个向量蕴含了输入点云的整体形状信息,为后续的解码过程提供指导。
-
输入:部分点云
X
,维度为 N x 3,其中 N 是点数。 -
处理过程:
-
点特征提取:
-
每个点
pi
经过一个共享的多层感知机(Shared MLP),得到点特征向量fi
。 -
这样,就得到了一个特征矩阵
F
,每一行都是一个学习到的点特征fi
。
-
-
全局特征聚合:
- 对特征矩阵
F
进行逐元素最大池化(Point-wise Maxpool),得到一个 k 维的全局特征g
。
- 对特征矩阵
-
进一步编码:
-
将全局特征
g
扩展(Expand)为与F
相同的维度。 -
将扩展后的
g
和F
拼接起来。 -
再次将拼接后的结果通过另一个共享 MLP 和逐元素最大池化,得到最终的特征向量
v
。
-
- 输出:全局特征向量
v
,维度为 k。
2. 解码器(Decoder)
解码器的任务是从编码器输出的全局特征 v
中逐步恢复出完整的点云。它分为两个阶段:粗阶段和细阶段。
-
粗阶段
-
输入:全局特征向量
v
。 -
处理过程:
-
全连接层:将
v
通过一个全连接网络(Fully-connected network),输出 3s 个单元。 -
重塑:将输出重塑为 s x 3 矩阵,得到粗糙点云
Y_coarse
。
-
-
输出:粗糙点云
Y_coarse
,维度为 s x 3。 -
细阶段
-
输入:粗糙点云
Y_coarse
和全局特征v
。 -
处理过程:
-
特征扩展:将
v
复制 s 次,得到 s x k 矩阵。 -
拼接:将特征扩展结果与
Y_coarse
拼接,得到 s x (3 + k) 矩阵。 -
局部折叠(Deform):
-
邻域搜索:对
Y_coarse
中的每个点,找到其 K 个最近邻点。 -
特征聚合:对每个点的邻域点,将其特征与中心点特征拼接,得到 s x K x (3 + k) 张量。
-
折叠:将邻域特征通过共享 MLP 和逐元素最大池化,得到每个点的折叠特征。
-
偏移预测:将折叠特征通过 MLP,预测每个点的偏移量。
-
更新:将粗糙点云
Y_coarse
加上偏移量,得到精细点云Y_fine
。
-
-
输出:精细点云
Y_fine
,维度为 s x 3。
3. 损失函数
-
粗阶段:在粗糙点云
Y_coarse
和粗糙真值(Coarse ground truth)之间使用 Chamfer Distance (CD) 或 Earth Mover's Distance (EMD) 损失。 -
细阶段:在精细点云
Y_fine
和真实点云(Ground truthY_gt
)之间使用 CD 或 EMD 损失。