FPConv: Learning Local Flattening for Point Convolution
论文:https://arxiv.org/abs/2002.10701
源码:https://github.com/lyqun/FPConv
Abstract
- FPConv,一种专为3D点云分析而设计的新颖表面样式卷积运算符。
- 与以前的方法不同,FPConv不需要转换为3D网格或图形之类的中间表示形式,而是可以直接处理点云的表面几何形状。
- 更具体地说,对于每个点,FPConv通过自动学习权重图以将周围的点柔和地投影到2D网格上来执行局部展平。
- 规则2D卷积因此可以用于有效的特征学习。
- FPConv可以轻松地集成到各种网络体系结构中,以执行3D对象分类和3D场景分割等任务,并可以与现有的体素类型卷积实现可比的性能。
- 实验表明FPConv可以作为体素卷积的补充,联合训练它们可以进一步提高总体性能,从而达到最新的结果。
(一) Introduction
- FPConv,这是一种针对点云的新卷积运算。它可以直接在几何局部表面上工作,而无需任何中间网格或图形表示。
- 以projection-interpolation的方式工作,但更为通用和隐含。
- 可以将投影和插值简化为单个权重图学习过程。
- FPConv并未投影到切线平面上进行卷积,而是学习了如何沿局部曲面分散每个点的卷积权重,这对各种输入数据更鲁棒,并大大提高了表面样式卷积的性能。
- 作为本地特征学习模块,FPConv可以与经典神经网络体系结构中的其他操作进一步集成,并可以处理各种分析任务。
- FPConv在相对平坦的区域表现更好,因此可以作为体素工作的补充,联合训练有助于将整体表现提升为最新成果。
主要贡献:
- FPConv,一种新颖的用于3D点云分析表面样式卷积。
- 与以往基于表面样式的卷积方法相比,有了显着改进,并且在分类和分割任务中与最新的体素样式方法具有可比的性能。
- 对表面样式和体素样式的卷积进行深入的分析和比较,表明它们是互为补充的,联合训练将性能提升到了最先进的水平。
(二)FPConv
任务: 回顾沿点云表面卷积的定义,然后将其简化为离散设置下的权重学习问题。
2.1. Learn Local Flattening
符号:
- p p p 是来自点云 P 的点。
- F ( p ) F(p) F(p)是定义在点上的标量函数。
- F ( p ) F(p) F(p)可以对来自中间网络层的信号进行编码,例如颜色,几何形状或特征。
- N ( p ) N(p) N(p) 表示为以 p p p 为中心的局部点云补丁,其中 N ( p ) = { q i = q i − p ∣ ∥ q i − p ∥ 2 < ρ , q i ∈ P } N(p)=\left \{q_{i}=q_{i}-p|\left \| q_{i}-p\right \|_{2}<\rho ,q_{i}\in P\right \} N(p)={qi=qi−p∣∥qi−p∥2<ρ,qi∈P},其中 ρ ∈ R ρ∈R ρ∈R为所选半径。
Convolution on local surface:
为了使 F F F围绕曲面卷积,首先将其扩展到连续曲面上的连续函数。引入一个带有连续信号 S ( u ) S(u) S(u)的虚拟2D平面 S S S以及将 N ( p ) N(p) N(p)映射到S上的映射 π ( ⋅ ) π(·) π(⋅)。
S ( π ( q i ) ) = F ( q i ) − − − − − − ( 1 ) S(\pi (q_{i}))= F(q_{i}) ------(1) S(π(qi))=F(qi)−−−−−−(1)
p p p 处的卷积定义为:
x ( p ) = ∫ S c ( u ) S ( u ) d u − − − − − ( 2 ) x(p)=\int_{S}^{}c(u)S(u)du -----(2) x(p)=∫Sc(u)S(u)du−−−−−(2)
其中 c ( u ) c(u) c(u)是卷积核。
下面描述如何将上述卷积公式化为权重学习问题:
Local flattening by learning projection weights:
π ( ⋅ ) π(·) π(⋅), N ( p ) N(p) N(p)将被映射为 S S S中的分散点,因此用一种插值方法来估计全信号函数 S ( u ) S(u) S(u),如等式3所示:
S ( u ) = ∑ i w ( u , π ( q i ) ) S ( π ( q i ) ) − − − − ( 3 ) S(u)=\sum_{i}^{} w(u,\pi (q_{i}))S(\pi (q_{i}))----(3) S(u)=i∑w(u,π(qi))S(π(qi))−−−−(3)
如果将 S S S 离散为 M w × M h M_{w}\times M_{h} Mw×Mh大小的网格平面。对于每个网格 S ( v j ) S(v_{j}) S(vj),其中 { 1 , 2 , . . . , M w × M h } \left \{1,2,...,M_{w}\times M_{h}\right \} {1,2,...,Mw×Mh},可以从等式1和等式3中得出:
S ( v j ) = ∑ j i F ( q i ) − − − − ( 4 ) S(v_{j})=\sum_{ji}^{} F(q_{i})----(4) S(vj)=ji∑F(qi)−−−−(4)
w j i = w ( v j , π ( q i ) ) w_{ji}=w(v_{j},\pi (q_{i})) wji=w(vj,π(qi))
可以用近似离散的形式将等式2重写为:
x
(
p
)
=
∫
S
c
(
u
)
S
(
u
)
d
u
=
∑
j
c
j
∑
i
w
j
i
F
(
q
i
)
=
M
c
∗
(
W
f
T
×
F
(
p
)
)
−
−
−
−
(
5
)
x(p)=\int_{S}^{}c(u)S(u)du=\sum_{j}^{}c_{j}\sum_{i}^{}w_{ji}F(q_{i})=M_{c}\ast (W_{f}^{T}\times F(p))----(5)
x(p)=∫Sc(u)S(u)du=j∑cji∑wjiF(qi)=Mc∗(WfT×F(p))−−−−(5)
c
j
c_j
cj是离散卷积核权重,
j
j
j属于
{
1
,
2
,
.
.
.
,
M
w
×
M
h
}
\left \{1,2,...,M_{w}\times M_{h}\right \}
{1,2,...,Mw×Mh},
L
=
M
w
×
M
h
L=M_{w}\times M_{h}
L=Mw×Mh,
W
f
∈
R
N
×
L
W_{f}\in R^{N\times L}
Wf∈RN×L,
W
f
(
i
,
j
)
=
w
(
v
j
,
π
(
q
i
)
)
W_{f}(i,j)=w(v_{j},\pi (q_{i}))
Wf(i,j)=w(vj,π(qi))
F
(
p
)
=
(
F
(
q
1
)
,
.
.
.
,
F
(
q
N
)
)
T
∈
R
N
×
C
F(p)=(F(q_{1}),...,F(q_{N}))^{T}\in R^{N\times C}
F(p)=(F(q1),...,F(qN))T∈RN×C
可以看到投影和插值可以合并到一个权重矩阵 W f W_f Wf中,其仅取决于点位置,而不是中心点。
2.2. Implementation
根据等式5,可以设计一个模块来直接学习投影权重,而不是分别学习投影和插值,如图2所示。希望该模块具有两个属性:
- 由于本地点云是无序的,因此输入排列应该不变。
- 应该适应输入的几何形状,因此投影应该结合局部坐标和局部斑块的全局信息。
步骤:
- 使用pointnet提取局部区域的全局特征,即distribution feature,该特征对于置换是不变的。
- 将distribution feature连接到每个输入点,如图3所示。
- 用共享的MLP来预测最终投影权重。
- 投影后,将二维卷积应用于获得的栅格特征平面。
- 为了提取局部特征向量,在2D卷积网络的最后一层应用全局卷积或池化。
缺点: 当从局部区域的点接收到的特征强度的总和发生变化时,网格平面中像素的特征强度可能会不平衡,这可能会破坏神经网络的稳定性并使训练难以收敛。
解决方案:
为了平衡网格平面的特征强度,介绍两种基于学习投影权重的归一化方法,Dense Grid Plane,Sparse Grid Plane。
Dense Grid Plane:
- 投影权重矩阵为 W ∈ R ( N × L ) W\in R^{(N\times L)} W∈R(N×L)。
- 一种获得密集网格平面的可能方法是,通过除以W的总和确保在每个像素处接收到的强度的总和等于1,在第一维上将W归一化。这类似于双线性插值方法。
- 论文使用softmax避免被零除,如公式6所示。
W i j = e W i j ∑ k = 1 N e W k j − − − − ( 6 ) W_{ij}=\frac{e^{W_{ij}}}{\sum_{k=1}^{N}e^{W_{kj}}}----(6) Wij=∑k=1NeWkjeWij−−−−(6)
Sparse Grid Plane:
-
由于点云的自然稀疏性,标准化投影权重以获得密集的网格平面可能不是最佳的。
-
在这种情况下,设计了两步归一化,可以保留投影权重矩阵和网格平面的稀疏性。
-
第一步是在第二维进行归一化,以平衡局部邻居点给出的强度。在这里,添加一个正数 ϵ \epsilon ϵ 避免被零除。如式7所示, W i ⋅ W_{i\cdot} Wi⋅表示 W W W的第 i i i行。
W i j = W i j ∥ W i ⋅ ∥ 2 + ϵ W_{ij}=\frac{{W_{ij}}}{\left \| W_{i\cdot}\right \|_{2}+\epsilon} Wij=∥Wi⋅∥2+ϵWij -
第二步是在第一维进行归一化,以平衡在每个像素位置接收到的强度。通过除以每一列的总和,可以类似于第一步来实现。
-
但是,论文选择了方程8中所示的另一种方法来保持连续稀疏性,其中 W ⋅ j W_{\cdot j} W⋅j表示W的第j列。
W i j = W i j M A X ( ∥ W ⋅ j ∥ 2 , 1 ) − − − − ( 8 ) W_{ij}=\frac{{W_{ij}}}{MAX(\left \| W_{\cdot j}\right \|_{2},1) }----(8) Wij=MAX(∥W⋅j∥2,1)Wij−−−−(8) -
连续稀疏性和二进制稀疏性的示例如图4所示。
(三)Architecture
3.1. Residual FPConv Block
如图6所示。该块以点云为输入,应用一堆共享MLP,FPConv和共享MLP,其中共享MLP负责减小然后增加(或恢复)尺寸,类似于残积卷积块中的1×1卷积。
3.2. Multi-Scale Analysis
Farthest Point Sampling: 使用迭代最远点采样来对点云进行下采样。与随机采样相比,在给定相同数量的质心的情况下,FPS可以更好地覆盖整个点集。
Pooling: 使用max-pooling对局部特征进行分组。给定输入点云 P n P_n Pn和下采样点云 P m P_m Pm及其相应的特征 F n F_n Fn和 F m F_m Fm,将半径为 r r r的 P m P_m Pm中每个点的邻居分组,并将池化运算符应用于分组点的特征,如式9所示。
F o u t ( y i ) = P o o l i n g ( F ( P n e b ) ) − − − − ( 9 ) F_{out}(y_{i})=Pooling(F(P_{neb}))----(9) Fout(yi)=Pooling(F(Pneb))−−−−(9)
对于任意的 y i ∈ P m y_{i}\in P_{m} yi∈Pm, P n e b = { x ∣ ∥ x − y i ∥ 2 < r , x ∈ P n } P_{neb}=\left \{{x|\left \| x-y_{i}\right \|_{2}}<r,x\in P_{n}\right \} Pneb={x∣∥x−yi∥2<r,x∈Pn}
FPConv with FPS: 与合并操作类似,此块在下采样点云的每个点上应用FPConv,并在整个点云上搜索邻居,如式10所示。
F o u t ( y i ) = F P C o n v ( F ( P n e b ) ) − − − − ( 10 ) F_{out}(y_{i})=FPConv(F(P_{neb}))----(10) Fout(yi)=FPConv(F(Pneb))−−−−(10)
Upsampling:
- 使用K近邻插值以欧氏距离对点云进行上采样。
- 给定具有特征 F m F_m Fm和目标点云 P n P_n Pn的点云 P m P_m Pm,通过对在 P m P_m Pm上搜索的K个相邻点进行插值来计算 P n P_n Pn中每个点的特征。
- 在上采样阶段,使用 skip connection和共享MLP融合来自编码器和解码器的功能。
图释:
- 图5所示的体系结构是为大型场景分割而设计的,包括用于多尺度分析的四层下采样和上采样。
- 对于分类任务,在下采样的最后一层应用global pooling 以获取表示完整点云的全局特征,然后使用全连接的网络进行分类。
3.3. Fusing Two Convolutions
问题:
Can we combine two convolutions for further boosting the performance?
答案:
肯定的,但是仅当两个卷积是不同类型或互补时,例如表面样式和体积样式,可以使用。
将两个卷积运算符组合在一个框架中,提出了两种便捷,快速的融合策略。
- 第一个是融合不同的卷积特征,如图7所示,设计了一个并行残差块。给定一个输入特征,并行应用多个卷积,然后将其输出串联为融合特征。该策略适用于一些兼容的方法,例如PointNet ++的SA模块,PointConv ,都使用点云作为输入并应用下采样策略,这与论文的体系结构相同。
- 对于其他不兼容的方法,例如TextureNet使用网格作为附加输入,KPConv 应用网格下采样,使用第二种融合策略,即将它们的输出特征连接到网络的最后第二层,然后应用小网络进行融合。
(四)Experiments
数据集: ModelNet40 分类 S3DIS 和 ScanNet分割
- 除了最后一个完全连接的层以外,在每个层之后都应用Leaky ReLU 和批量归一化。
- S3DIS和ModelNet40训练了100个epochs,ScanNet训练了300个epochs。
- 动量为0.98,初始学习率为0.01。
4.1. 3D Shape Classification
ModelNet40 包含来自40个类别的12311个 3D网格模型,其中9843用于训练,2468用于测试。
4.2. Large Scene Semantic Segmentation
S3DIS :
- 包含6个区域的3D点云,共有272个房间。扫描中的每个点都用来自13个类别的语义标签之一。
- 为了准备训练数据,从2m x 2m的随机选取块中随机采样14k点。
- 两种采样在训练过程中都是即时进行的。
- 在测试时,所有要点都包括在内。
- 在每个训练时期中每个点的采样率是0.5。
ScanNet:
- 包含1513个3D室内场景扫描,分为1201进行训练和312进行测试。共有21个类别,其中20个类别用于评估,而1个类别用于 free space
- 与S3DIS相似,在块中随机采样原始数据,然后在训练过程中即时采样点。
- 每个块的大小为2m x 2m,包含11k点,这些点由6维矢量XYZ和RGB表示。
Pipeline for fusion.
如第3.3节所述,提出了两种融合策略来融合不同类型的卷积内核。在我们的实验中,我们选择PointConv和刚性KPConv用于在S3DIS上进行比较。我们在PointConv和FPConv上应用了两种融合策略,第二种策略是在FPConv和KPConv,PointConv和KPConv的最终特征级别上融合。
Results.
- 在Scannet 基准上FPConv的mIoU达到63.9%,比以前的最佳表面样式方法高7.3%。
- 此外,将FPConv与KPConv融合在一起,在S3DIS上达到了最先进的性能。
- 尽管FPConv的S3DIS的mIoU低于KPConv,但仍有某些类别的IoU优于KPConv,例如天花板,地板,木板等。特别是,发现所有这些类别都是平面对象,这应该有小的曲率。
- 结果的可视化在S3DIS中显示在图8中,在ScanNet中显示在图9中。
(五)Ablation Study
进行了两个消融研究,第一个是探索表面样式和体积样式卷积的融合。另一个是详细配置的效果,FPConv上的标准化方法和平面尺寸。
5.1. On Fusion of S.Conv and V .Conv
任务: 研究两种卷积的不同组合方法的性能。
Performance vs. Curvature
图释:
- 如图10左侧所示,当曲率较小时,FPConv的性能优于PointConv 和KPConv ,而FPConv在曲率较大的结构上不能很好地执行。
- 图10右侧所示的点曲率分布直方图暗示几乎所有点都具有大曲率或小曲率。这解释了为什么当曲率增加时性能会大大下降。
图释:
- 突出显示了预测错误的点(红色)和曲率较大的点(红色)。
- 错误的预测集中在曲率较大的区域,而FPConv在平坦区域中表现良好。
Ablation analysis on fusion method
- 作为表面样式卷积的FPConv在平坦区域中表现较好,在粗糙区域和KPConv中表现较差。
- 进行4个融合实验,即FPConv⊗PointConv,FPConv⊕PointConv,KPConv⊕PointConv和FPConv⊕KPConv。
- 其中⊕表示最终特征级别的融合,而⊗表示conv级别的融合。
- 不会在FPConv和KPConv的转换级别上进行融合,因为它们的下采样策略不兼容。
- 如表3所示,FPConv与PointConv或KPConv的融合带来了很大的改进,而PointConv与KPConv的融合却带来了很少的改进。
- FPConv可以补充体素式卷积,这可能会在将来指导点云的卷积设计。
图释:
- FPConv可以捕获比KPConv更好的平面结构,例如KPConv中未显示的column。
- KPConv可以捕获更好的复杂结构,例如门。
- KPConv和FPConv的融合比KPConv和FPConv结果都要好。
5.2. On FPConv Architecture Design
表释:
- 进行了4次实验,研究归一化方法和网格平面尺寸对FPConv性能的影响。
- 表示第2.2节中提到的2步归一化方法的稀疏范式的性能优于密集范数。
- 更高分辨率的网格平面可以实现更好的性能,同时也带来更高的存储成本。
(六)Conclusion
- 提出了FPConv,这是一种3D点云上新颖的表面样式卷积算子。
- FPConv将点云的局部区域作为输入,并通过预测投影权重将其展平到2D网格平面上,然后进行规则的2D卷积。
- PConv大大改善了表面样式卷积方法的性能。
- 发现表面样式卷积可以作为体素样式卷积的补充,并且联合训练可以将性能提升到最新技术水平。
- 表面样式卷积可以在3D数据的特征学习中发挥重要作用,并且是探索的有希望的方向。
附录: