给定一组点云
P
=
{
p
i
∣
i
=
1
,
⋯
,
N
}
∈
R
N
×
3
\mathcal{P}=\left\{p_{i} \mid i=1, \cdots, N\right\} \in \mathbb{R}^{N \times 3}
P={pi∣i=1,⋯,N}∈RN×3,
N
N
N 表示点云的数量,
(
x
,
y
,
z
)
(x, y, z)
(x,y,z)表示笛卡尔坐标系下的坐标。
简单介绍下PointNet++
简单介绍下RSCNN
简单介绍下Point Transformer
3.2 PointMLP的框架结构
PointML一个阶段的整体架构 给定一组点云, PointMLP使用residual point MLP blocks逐步地抽取局部信息。在每个阶段中,首先使用geometric affine module,然后分别在聚合操作之前和之后提取它们。通过连续使用多个阶段,PointMLP不断地增大感受野并对完整的点云几何结构信息进行建模。
整个结构用数学语言表示为:
g
i
=
Φ
pos
(
A
(
Φ
pre
(
f
i
,
j
)
,
∣
j
=
1
,
⋯
,
K
)
)
g_{i}=\Phi_{\text {pos }}\left(\mathcal{A}\left(\Phi_{\text {pre }}\left(f_{i, j}\right), \mid j=1, \cdots, K\right)\right)
gi=Φpos (A(Φpre (fi,j),∣j=1,⋯,K))
令
{
f
i
,
j
}
j
=
1
,
⋯
,
k
∈
\left\{f_{i, j}\right\}_{j=1, \cdots, k} \in
{fi,j}j=1,⋯,k∈
R
k
×
d
\mathbb{R}^{k \times d}
Rk×d表示
f
i
∈
R
d
f_{i} \in \mathbb{R}^{d}
fi∈Rd 的邻居,有
k
k
k个点,每个邻居点
f
i
,
j
f_{i, j}
fi,j 是一个
d
d
d维向量。将局部相邻的点变换为:
{
f
i
,
j
}
=
α
⊙
{
f
i
,
j
}
−
f
i
σ
+
ϵ
+
β
,
σ
=
1
k
×
n
×
d
∑
i
=
1
n
∑
j
=
1
k
(
f
i
,
j
−
f
i
)
2
,
\left\{f_{i, j}\right\}=\alpha \odot \frac{\left\{f_{i, j}\right\}-f_{i}}{\sigma+\epsilon}+\beta, \quad \sigma=\sqrt{\frac{1}{k \times n \times d} \sum_{i=1}^{n} \sum_{j=1}^{k}\left(f_{i, j}-f_{i}\right)^{2}},
{fi,j}=α⊙σ+ϵ{fi,j}−fi+β,σ=k×n×d1i=1∑nj=1∑k(fi,j−fi)2,
其中
α
∈
R
d
\alpha \in \mathbb{R}^{d}
α∈Rd,
β
∈
R
d
\beta \in \mathbb{R}^{d}
β∈Rd是可学习的参数,
⊙
\odot
⊙表示两个矩阵元素间相乘,
ϵ
=
\epsilon=
ϵ=
1
e
−
5
1 e^{-5}
1e−5是一个为了数值稳定性的数。
σ
\sigma
σ 是系数,描述了所有局部和通道的特征差异,并保留了原始的几何特征。
3.4 计算复杂度和Elite版
全连接层参数很多,复杂度也很高,提出了bottleneck结构。我们选择将中间FC层的通道数减少
r
r
r倍,并增加通道数作为原始特征映射。