CVPR 2020——Unsupervised Learning of Intrinsic Structural Representation Points

论文:https://arxiv.org/abs/2003.01661
源码:https://github.com/NolenChen/3DStructurePoints

(一) Abstract

  • 提出一种无监督方法,学习新的三维结构点的结构表示。
  • 以3D点云作为输入,并将其编码为一组局部特征。然后将局部特征通过一个点集成模块生成一组三维结构点。
  • 该方法生成的三维结构点对形状结构进行编码,具有相似结构的所有形状实例中表现出语义一致性。
  • 倒角距离用作重建损耗,以确保结构点接近输入点云。

(二) Introduction

  • 为点云的3D形状提取语义上有意义的结构点。结构点是形状表面上的一组有序点,它们提供了输入形状的良好抽象和近似。
  • 对点云的不同采样具有鲁棒性,并且适用于实际扫描的数据。
  • 基于PCA的形状嵌入算法能够很好地保留形状结构,在形状重建和形状补全等重要任务中具有应用潜力。

(三) Method

3.1. Network Architecture

图释:

  • Point Feature Learning 使用的是PointNet++,具体应该是对应下图左侧灰色部分。该模块的输入是点的 ( x , y , z ) (x,y,z) (x,y,z)坐标,输出是采样点 Q = { q 1 , q 2 , . . . , q l } ( q i ∈ R 3 ) Q= \left \{q_{1},q_{2},...,q_{l}\right \}\left ( q_{i}\in R^{3}\right ) Q={ q1,q2,...,ql}(qiR3) 以及对应的局部上下文特征 F = { f 1 , f 2 , . . . , f l } ( f i ∈ R c ) F= \left \{f_{1},f_{2},...,f_{l}\right \}\left ( f_{i}\in R^{c}\right ) F={ f1,f2,...,fl}(fiRc) l l l 代表采样点的数量, c c c 是特征表示的维度。

  • Point Integration Module 的输入是采样点 Q Q Q以及对应的局部上下文特征 F F F l × ( 3 + c ) l \times (3+c) l×(3+c)。输出是 m m m个结构点 S S S

         第一步: 对于输入的局部上下文特征 F F F 应用共享的 M L P MLP MLP
         第二步: s o f t m a x softmax softmax作为激活函数,以生成多个概率图 P = { p 1 , p 2 , . . . , p m } P= \left \{p_{1},p_{2},...,p_{m}\right \} P={ p1,p2,...,pm}。概率图 p i p_i pi中的元素 p i j p_i^j pij指示点 q j q_j qj成为结构点 s i s_i si的概率 (类似于超点图SPG中超点)。公式为: s i = ∑ j = 1 l q j p i j s_{i}=\sum\limits_{j=1}^{l}q_{j}p_{i}^{j} si=j=1lqjpij。对于每个 i i i ∑ j = 1 l p i j = 1 \sum\limits_{j=1}^{l}p_{i}^{j} =1 j=1lpij=1。公式 s i s_i si是点Q的凸组合,确保了预测的结构点S位于点Q的凸包内。
         
          图释:
                a. 将不同结构点的学习概率图可视化。
                b. 第一列显示输入点云(灰色)及其对应的16个结构点(彩色)。
                c. 在第二和第三列中显示了用红色和绿色框标记的两个结构点的概率图。具有集中效应。

3.2. Reconstruction Loss

重建损失: 预测结构点 S S S与输入点 X X X之间的倒角距离。
目的: 约束预测的结构点,使其接近输入点云。
公式: L r e c ( S , X ) = ∑ s i ∈ S max ⁡ x j ∈ X ∥ s i − x j ∥ 2 2 + ∑ x j ∈ X max ⁡ x i ∈ S ∥ s i − x j ∥ 2 2 L_{rec}(S,X)=\sum\limits_{s_{i}\in S}\max_{x _{j}\in X}\left \| s_{i}-x_{j}\right \|_{2}^{2}+\sum\limits_{x_{j}\in X}\max_{x _{i}\in S}\left \| s_{i}-x_{j}\right \|_{2}^{2} Lrec(S,X)=siSmaxxjXsixj22+xjXmaxxiSsixj22

3.3. Cross-Object Consistency

发现: 网络能够为同一类别中的对象生成语义上一致的概率映射 P P P,从而使生成的结构点具有一致性。

证明:

  1. 由同一点云 X X X定义两个相同形状 A A A B B B,不同的是这些点在 A A A B B B中的处理顺序可能不同。
  2. 经过 P o i n t N e t + + PointNet ++ PointNet++特征提取器和共享的 M L P MLP MLP之后,利用对应的 m m m维概率向量提取一组形状为 A A A的样本点。
  3. 形状 A A A的第 j j j个结构点: s j A = ∑ i = 1 l p j i a i s_{j}^{A}=\sum\limits_{i=1}^{l}p_{j}^{i}a_{i} sjA=i=1lpjiai
  4. 对于形状 B B B的第 j j j个结构点 s j B s_{j}^{B} sjB s j B = ∑ i = 1 l p j π ( i ) b i = ∑ i = 1 l p j π ( i ) a π ( i ) = ∑ i = 1 l p j i a i = s j A s_{j}^{B}=\sum\limits_{i=1}^{l}p_{j}^{\pi(i)}b_{i}=\sum\limits_{i=1}^{l}p_{j}^{\pi(i)}a_{\pi (i)}=\sum\limits_{i=1}^{l}p_{j}^{i}a_{i}=s_{j}^{A} sjB=i=1lpjπ(i)bi=i=1lpjπ(i)aπ(i)=i=1lpjiai=sjA

公式注释:

  • 通过点的有序序列 ( a 1 , a 2 , . . . , a l ) (a_{1},a_{2},...,a_{l}) (a1,a2,...,al)表示 A A A的这些样本点。相应的概率向量: ξ i = ( p 1 i , p 2 i , . . . , p m i ) \xi _{i}=(p_{1}^{i},p_{2}^{i},...,p_{m}^{i}) ξi=(p1i,p2i,...,pmi) i = 1 , 2 , 3... l i=1,2,3...l i=1,2,3...l
  • 由于 B B B A A A相同: ( b 1 , b 2 , . . . , b l ) (b_{1},b_{2},...,b_{l}) (b1,b2,...,bl),是 A A A的采样点 ( a 1 , a 2 , . . . , a l ) (a_{1},a_{2},...,a_{l}) (a1,a2,...,al)的置换。 b i = a π ( i ) b _{ {i}}=a_{\pi({i})} bi=aπ(i) π ( ⋅ ) \pi({\cdot }) π() i = 1 , 2 , 3... l i=1,2,3...l i=1,2,3...l的排列函数。形状 B B B内样本点 b i b_i bi的概率向量为 S π ( i ) = ( p 1 π ( i ) , p 2 π ( i ) , . . . , p m π ( i ) ) S _{\pi({i})}=(p_1^{\pi({i})},p_{2}^{\pi({i})},...,p_{m}^{\pi({i})}) Sπ(i)=(p1π(i),p2π(i),...,pmπ(i)) i = 1 , 2 , 3... l i=1,2,3...l i=1,2,3...l

结论:

  1. 形状 A A A的第 j j j个结构点与形状 B B B的第 j j j个结构点相同。
  2. 当两个形状 A A A B B B相似时,由于 p i p e l i n e pipeline pipeline中的神经网络是连续映射,因此 A A A结构点 { s j A } j = 1 m \left \{s_{j}^{A}\right \}_{j=1}^{m} { sjA}j=1m将分别接近B中对应的结构点 { s j B } j = 1 m \left \{s_{j}^{B}\right \}_{j=1}^{m} { sjB}j=1m

(四)Experiments

4.1. Datasets

ShapeNet

4.2. Implementation Details

  • 使用的pointnet++编码器由512个分组中心和128个分组中心的两个集合抽象层组成。
  • 多尺度分组(MSG)用于组合多尺度特征。
  • 两个集合抽象层里的MSG层分别包含尺度(0.1,0.2,0.4)和尺度(0.2,0.4,0.8)。
  • PointNet ++编码器的输出包含 l l l = 128个采样点,每个采样点都具有640维局部上下文特征。
  • Point Integration Module中MLP块的配置取决于结构点的数量。具体来说,对于m = 512个结构点,MLP块包含3层,神经元数分别为(640、512、512)。
  • dropout ratio 设置为0.2,以避免MLP块的过拟合。
  • Adam 被用作优化器。
  • 在单个NVIDIA GTX 1080Ti GPU上训练网络,每个类别少于1小时。

4.3. Consistency Across Objects

图释:

  • 第一行和第三行显示了针对不同输入点云(灰色)生成的16个结构点(彩色)。
  • 第二行和第四行显示了1024个密集结构点。相应的结构点具有相同的颜色。
  • 对于具有相似结构的形状,可以以一致的方式生成稀疏和密集的结构点。
  • 在具有明显结构差异的区域中可能不存在这种对应关系。一个示例是图中带扶手和不带扶手的椅子。

4.4. 3D Semantic Correspondence

为了与其进行公平比较,使用旋转增强训练方法,并在任意旋转的点云上进行了测试。为了使网络适用于旋转点云,执行基于PCA的增强训练。

  1. 首先为训练数据集中的每个形状计算三个主轴。在每次训练迭代中,每个形状的主轴被随机交换,并且形状根据交换的轴对齐。
  2. 原始形状和增强形状的结构点的一致性通过均方误差(MSE)损失得以增强。
  3. 在测试过程中,为每个形状计算了三个主轴,并进行了相应的对齐。
  4. 与具有随机旋转的数据增强相比,基于PCA的方案可以减少旋转空间,并使网络更有效地收敛。
  5. ShapeNet 和BHCP分别用于训练和测试。
  6. 使用飞机来训练直升机网络,因为训练数据中未包括直升机。
  7. 网络以2048点表示的对齐形状集合为训练对象,输出512个结构点。
  8. 在测试过程中,给定一个三维形状上的一个 x q x_q xq点,首先找到它最近的结构点 s q s_q sq,然后使用目标形状上对应的结构点 x q ′ x_q' xq作为 x q x_q xq的对应点。
  9. 对应精度是通过正确预测的对应的比例来衡量的,其误差低于给定的欧几里得阈值。

图释:

  • 实线表示在对齐数据上测试的结果,虚线表示在未对齐数据上测试的结果。
  • 论文方法大大优于其他最新方法。
  • 展示了良好的泛化到看不见的类别(例如用飞机训练和用直升机测试)。但是,在这种情况下,在旋转数据上的性能不如对齐后的数据。这是因为直升机的PCA与飞机的PCA完全不同,因此网络很难适应看不见的直升机类别。

4.5. Example based Label Transfer

通过转移几个示例中的分割标签来进一步评估结构点的质量。

  • 训练集上没有任何标签。
  • 在测试过程中,为了标记一个形状上的一个点 x q x_q xq,找到它最近的结构点 s q s_q sq以及 k k k个样例形状上对应的结构点列表 E = ( S q 1 , S q 2 , . . . , S q k ) E=(S_{q}^{1},S_{q}^{2},...,S_{q}^{k}) E=(Sq1,Sq2,...,Sqk),将与 s q s_q sq特征最相似的结构点 s q ′ ∈ E s_q'∈E sqE的标签转移到 x q x_q xq

图释:

  • 使用8个随机选择的样本集显示了分割标签转移的所有结果,每个样本集包含3个样本。显示了8个随机选择的示例集(绿点)的平均IOU。平均值和中位数以红色和蓝色显示。
  • 对于形状规则的类别(例如笔记本电脑),结果是一致的。同时,对于形状变化较大的类别(例如“耳机”),准确性可能会有很大差异。

表释:

  • 在ShapeNet部分数据集上使用平均IOU(%)测量的3个标记样例与BAE-NET的标签转移结果的比较。
  • 表1列出了两种方法的最佳效果。
  • 在大多数具有结构形状的类别中,标签转移结果与BAE-Net相当。
  • 在BAE-NET中,分割标签要么由用户预先定义(few-shot setting),要么由网络隐式定义(无监督设置);训练完成后,标签将无法更改。相比之下,这篇论文是通过直接从示例中转移分割标签来实现few-shot 转移标签,因此在训练后具有转移任意标签(例如具有不同层次结构的标签)的潜力。

4.6. PCA based Shape Embedding

给定高质量的形状对应关系,可以基于PCA构建形状嵌入空间。

  1. 给定点云的集合,针对每个点云生成m个结构点 S = { S 1 1 , S 1 2 , S 1 3 , . . . , S m 1 , S m 2 , S m 3 } S=\left \{S_{1}^{1},S_{1}^{2},S_{1}^{3},...,S_{m}^{1},S_{m}^{2},S_{m}^{3}\right \} S={ S11,S12,S13,...,Sm1,Sm2,Sm3}。其中 { S i 1 , S i 2 , S i 3 } ∈ R 3 \left \{S_{i}^{1},S_{i}^{2},S_{i}^{3}\right \}∈R^3 { Si1,Si2,Si3}R3表示第 i i i个结构点的位置。
  2. 然后基于学习到的结构点构建形状可变形模型。
  3. 因此,新形状 X X X可以表示为主要成分的线性组合: X = S ˉ + ∑ i = 1 k α i c i X=\bar{S}+\sum\limits_{i=1}^{k}\alpha _{i}c_{i} X=Sˉ+i=1kαici
  4. S S S是结构点的平均形状, k k k是主成分数, c i c_i ci α i α_i αi分别表示第 i i i个主成分和相应的系数。

图释:

  • 图8(a)显示了PCA嵌入空间,方法是将前两个PCA主成分添加到比率为 − 3 σ -3σ 3σ 3 σ 3σ 3σ的平均形状中,其中 σ 2 σ^2 σ2表示相应主成分的特征值。
  • 图8(b)显示了只有50个主成分的一些重建结果。可以看到,通过基于PCA的嵌入,可以很好地保留形状的结构。 输入点云(第一行)和具有50个主要分量的相应重构(第二行)。

(五) Ablations and Visualizations

5.1. Feature Embedding Visualization

可视化网络学习到的潜在特征。

  1. 首先通过概率图 P P P对PointNet ++生成的局部上下文特征 F F F进行加权,以获得每个结构点 h i = ∑ j = 1 l f j p i j h_{i}=\sum\limits_{j=1}^{l}f_{j}p_{i}^{j} hi=j=1lfjpij ( ∑ j = 1 l p i j = 1 \sum\limits_{j=1}^{l}p_{i}^{j}=1 j=1lpij=1(对于每个i))的每个点特征: H = { h 1 , h 2 , . . . , h m } H=\left \{h_{1},h_{2},...,h_{m}\right \} H={ h1,h2,...,hm}, h i ∈ R c h_i∈R^c hiRc
  2. 然后,将ShapeNet测试数据集中具有相同类别的所有形状的每点特征 H H H嵌入二维嵌入空间中,以进行可视化。

图释:

  • 图中的2D点用16种颜色着色,每种颜色对应于特定的结构点。
  • 学习到的特征很好地聚集在一起,这意味着具有相同语义位置的结构点往往具有相似的特征。
  • 相同形状上的对称结构点没有相似的特征,这是因为使用的PointNet ++编码器不是对称不变的。可以考虑将对称约束添加到损失中,或使用对称不变特征编码器使结构点对称不变。

5.2. Robustness to Sampling Densities

评估对具有不同密度的输入点云的方法的鲁棒性,在每种形状上采样的2048个点上训练网络,并在具有不同密度的输入点云上测试网络。

  1. 与从2048个输入点生成的结构点相比,使用逐点平均欧几里德距离来度量具有不同输入密度的已生成结构点的稳定性。
  2. 为了生成非均匀采样点,首先从初始点云中随机采样相对少量的种子点,并以一定概率去除种子附近的点。这会在种子点周围创建一组缺少点(或“空洞”)的非均匀分布点。

以不同数量的均匀采样点作为输入验证结构点的稳定性:

图释:

  • 对点采样密度不敏感。因为用来编码局部特征的PointNet ++ 对点云的采样不敏感,而Point Integration Module也保持了这种特性。

5.3. Testing with Real Scanned Data

图释:

  • 通过旋转增强在ShapeNet数据集上训练网络,并在真实的扫描点云上测试训练后的网络。
  • 即使真实的扫描点云嘈杂并且在训练过程中没有看到,网络仍然可以生成语义上一致的结构点。

5.4. Testing with Different Feature Encoder

图释:

  • 提出的Point Integration Module也可以与其他点云学习架构集成,以学习一致的结构点。
  • 将PointNet ++特征编码器替换为PointConv ,评估语义形状对应的性能。两种体系结构在语义形状对应准确度方面都可以产生相似的结果。

(六)Conclusion

  • 提出了一种无监督方法,用于学习以3D结构点形式的新结构表示。
  • 产生的结构点对形状结构进行编码,并在具有相似形状结构的所有形状实例之间表现出语义一致性。
  • 通过广泛的实验评估了所提出的方法,并显示了在语义对应和分割标签传输任务上的最新性能。
  • 通过对真实扫描数据进行测试,展示了网络的良好泛化性。
  • 基于PCA的结构点嵌入还具有在某些重要任务(例如shape reconstruction and completion)中使用的潜力。

猜你喜欢

转载自blog.csdn.net/Dujing2019/article/details/106524034