摘要
- 问题:用坐标表示点云无法直接表示其几何结构
- 方法:RepSurf (representative surfaces)能够描述局部结构。
- RepSurf还可以分为 Triangular RepSurf 和 Umbrella RepSurf
- 在surface reconstruction后,通过提前定义几何先验计算RepSurf表示
- 优点:RepSurf适用于不规则点,因此与其他模型的兼容性很好
- 应用:classification, segmentation 和 detection
- 代码: https://github.com/hancyran/RepSurf
![](https://i-blog.csdnimg.cn/blog_migrate/687ded796ca62a894ee564de3944196b.png)
1.引言
- 局部特征对于点云学习而言很重要,之前的学习方法,包括grids、relations、graphs,都会引入诸如欧式距离、注意力机制等其他变量,或者是使用不同的变换(graph construction, voxelization)。这可能会导致复杂的处理或是大量的计算。这些复杂的分量通常都可以从隐式的局部形状表示中学到。不仅如此,在提前定义这些分量时还会导致信息的损失,在变换时导致几何损失。
- Curve ——> Surface
- 对RepSurf定义了三个性质:①discreteness;②explicit locality;③curvature sensitivity
- Triangular RepSurf & Umbrella RepSurf
2.相关工作
2.1. Learning on Point Clouds
- Multi-view methods
- Voxel-based methods
- Point-based methods
2.2. Detection on Point Clouds
- Early methods:convert point clouds to 2D grids or 3D voxels
- Recent works:raw point clouds
2.3. Graphics-related Surface Representation
triangle meshes、spatial Poisson
formulation、umbrella surface
3. Surface Representation
3.1. Background
局部特征对于表示点云很重要。之前的工作都是通过利用额外的分量或是不同的变换间接地从形状中学习局部特征。这些操作可能对隐式表示点云集有帮助,但是无法显式地反应局部特征。
通过Talyor公式表述一个 以 2D curve
f
(
⋅
)
f(\cdot)
f(⋅)的点
(
t
,
f
(
t
)
)
(t, f(t))
(t,f(t))为中心的局部区域:
f
(
x
)
=
∑
n
=
0
∞
f
(
n
)
(
t
)
n
!
(
x
−
t
)
n
,
∣
x
−
t
∣
<
ϵ
(1)
f(x)=\sum_{n=0}^{\infty} \frac{f^{(n)}(t)}{n !}(x-t)^{n},|x-t|<\epsilon \tag{1}
f(x)=n=0∑∞n!f(n)(t)(x−t)n,∣x−t∣<ϵ(1)
为了简化计算:
f
(
x
)
≃
f
(
t
)
⏟
global position
+
f
′
(
t
)
⏟
local orientation
(
x
−
t
)
,
(2)
f(x) \simeq \underbrace{f(t)}_{\text {global position }}+\underbrace{f^{\prime}(t)}_{\text {local orientation }}(x-t), \tag{2}
f(x)≃global position
f(t)+local orientation
f′(t)(x−t),(2)
其中
(
t
,
f
(
t
)
)
(t, f(t))
(t,f(t))是在curve
f
(
⋅
)
f(\cdot)
f(⋅)上的全局位置,一阶导数
f
′
(
t
)
f^{\prime}(t)
f′(t)表示在
(
t
,
f
(
t
)
)
(t, f(t))
(t,f(t))附近的局部方向。为了进一步表示局部curve(图2左),通过对应的正切表示局部方向:
a
i
(
x
−
x
i
)
+
b
i
(
y
−
y
i
)
=
0
⇒
a
i
x
+
b
i
y
−
(
a
i
x
i
+
b
i
y
i
)
=
0
(3)
\begin{array}{r} a_{i}\left(x-x_{i}\right)+b_{i}\left(y-y_{i}\right)=0 \Rightarrow \\ a_{i} x+b_{i} y-\left(a_{i} x_{i}+b_{i} y_{i}\right)=0 \end{array} \tag{3}
ai(x−xi)+bi(y−yi)=0⇒aix+biy−(aixi+biyi)=0(3)
其中
x
i
=
t
,
y
i
=
f
(
t
)
x_{i}=t, y_{i}=f(t)
xi=t,yi=f(t), and
a
i
b
i
=
−
f
′
(
a
)
\frac{a_{i}}{b_{i}}=-f^{\prime}(a)
biai=−f′(a)。
(
a
i
,
b
i
)
\left(a_{i}, b_{i}\right)
(ai,bi) 是正切的法向量,其中
a
i
2
+
b
i
2
=
1
a_{i}^{2}+b_{i}^{2}=1
ai2+bi2=1。总之,一个局部curve的描述子可以表示为:
c
i
=
(
x
i
,
y
i
,
a
i
,
b
i
,
a
i
x
i
+
b
i
y
i
)
.
(4)
\mathbf{c}_{i}=\left(x_{i}, y_{i}, a_{i}, b_{i}, a_{i} x_{i}+b_{i} y_{i}\right) . \tag{4}
ci=(xi,yi,ai,bi,aixi+biyi).(4)
![](https://i-blog.csdnimg.cn/blog_migrate/d66340b8b7b37887c5ff853fa61db8bb.png)
3.2. Properties of RepSurf
Triangle mesh包含了一组共用的边和角连接的三角形,因此应该能够灵活的表示连续且复杂的3D形状。但是,由于不规则性,Triangle mesh可能不会与点云的数据结构相匹配。从点云转换到triangle mesh的过程中可能会导致巨大的计算量和点云特征的损失。因此,设计的 RepSurf有着以下几个特性:
- Discreteness. 理想情况下,一个RepSurf特征应该对应着 N N N个点
- Explicit Locality. RepSurf以数字的形式表示了部分点云的显式局部性。
- Curvature Sensitivity. RepSurf应该能够直观地突显边缘和局部形状
![](https://i-blog.csdnimg.cn/blog_migrate/fc8dbb3e6cad70713122c9ca96d815c4.png)
3.3. Triangular RepSurf
记点云集合为
X
=
{
x
1
,
…
,
x
n
}
⊆
R
N
×
3
\mathbf{X}=\left\{\mathbf{x}_{1}, \ldots, \mathbf{x}_{n}\right\} \subseteq \mathbb{R}^{N \times 3}
X={x1,…,xn}⊆RN×3,与 3.1节中的2D curve相似,通过点-法向量公式定义一个3D 正切 surface。给定一个法向量
v
i
=
(
a
i
,
b
i
,
c
i
)
\mathbf{v}_{i}=\left(a_{i}, b_{i}, c_{i}\right)
vi=(ai,bi,ci)和点
x
i
=
(
x
i
,
y
i
,
z
i
)
\mathbf{x}_{i}=\left(x_{i}, y_{i}, z_{i}\right)
xi=(xi,yi,zi),surface可以表示为:
a
i
(
x
−
x
i
)
+
b
i
(
y
−
y
i
)
+
c
i
(
z
−
z
i
)
=
0
⇒
a
i
x
+
b
i
y
+
c
i
z
−
(
a
i
x
i
+
b
i
y
i
+
c
i
z
i
)
=
0
(5)
\begin{gathered} a_{i}\left(x-x_{i}\right)+b_{i}\left(y-y_{i}\right)+c_{i}\left(z-z_{i}\right)=0 \Rightarrow \\ a_{i} x+b_{i} y+c_{i} z-\left(a_{i} x_{i}+b_{i} y_{i}+c_{i} z_{i}\right)=0 \end{gathered} \tag{5}
ai(x−xi)+bi(y−yi)+ci(z−zi)=0⇒aix+biy+ciz−(aixi+biyi+cizi)=0(5)
定义surface position为
p
i
=
a
i
x
i
+
b
i
y
i
+
c
i
z
i
p_{i}=a_{i} x_{i}+b_{i} y_{i}+c_{i} z_{i}
pi=aixi+biyi+cizi,范围为
[
−
3
r
,
3
r
]
[-\sqrt{3} r, \sqrt{3} r]
[−3r,3r]。
r
r
r表示将点云集包含住的立方体边长。注意,
p
i
p_{i}
pi也还表示原点到surface的定向距离。
通过叉积计算 v i \mathbf{v}_{\mathbf{i}} vi,但是计算的 v i \mathbf{v}_{\mathbf{i}} vi是无方向的—— v i \mathbf{v}_{\mathbf{i}} vi既可以指向surface的里面,也可以指向surface的外面。
考虑到效率,通过保持
a
i
a_{i}
ai为正,然后通过instance-level random inverse增强法线,概率为50%。那么最终的Triangular RepSurf为:
t
i
=
(
a
i
,
b
i
,
c
i
,
p
i
)
\mathbf{t}_{i}=\left(a_{i}, b_{i}, c_{i}, p_{i}\right)
ti=(ai,bi,ci,pi)
定义一组 Triangular RepSurf为
T
=
\mathbf{T}=
T=
{
t
1
,
…
,
t
n
}
⊆
R
N
×
4
\left\{\mathbf{t}_{1}, \ldots, \mathbf{t}_{n}\right\} \subseteq \mathbb{R}^{N \times 4}
{t1,…,tn}⊆RN×4。将
X
\mathbf{X}
X替换为triangles重新计算的质心
X
′
\mathbf{X}^{\prime}
X′,然后将
X
′
\mathbf{X}^{\prime}
X′ 和
T
\mathbf{T}
T进行拼接。
![](https://i-blog.csdnimg.cn/blog_migrate/c0429eb4c515d25fd3ac34a421abfa71.png)
3.3. Umbrella RepSurf
Triangular RepSurf很容易受到感受野的限制,会带之不稳定的局部表示。
记相邻点的个数为
K
K
K,neighbor triangles的质心为
X
i
′
=
\mathbf{X}_{i}^{\prime}=
Xi′=
{
x
i
1
′
,
…
,
x
i
K
′
}
⊆
R
K
×
3
\left\{\mathbf{x}_{i 1}^{\prime}, \ldots, \mathbf{x}_{i K}^{\prime}\right\} \subseteq \mathbb{R}^{K \times 3}
{xi1′,…,xiK′}⊆RK×3,neighbor triangles的triangular features为
T
i
=
{
t
i
1
,
…
,
t
i
K
}
⊆
\mathbf{T}_{i}=\left\{\mathbf{t}_{i 1}, \ldots, \mathbf{t}_{i K}\right\} \subseteq
Ti={ti1,…,tiK}⊆
R
K
×
4
\mathbb{R}^{K \times 4}
RK×4,umbrella curvature的无符号系数为:
u
i
=
∑
j
K
n
i
j
=
∑
j
K
∣
x
i
j
′
∣
x
i
j
′
∣
⋅
n
i
∣
u_{i}=\sum_{j}^{K} n_{i j}=\sum_{j}^{K}\left|\frac{\mathbf{x}_{i j}^{\prime}}{\left|\mathbf{x}_{i j}^{\prime}\right|} \cdot \mathbf{n}_{i}\right|
ui=j∑Knij=j∑K∣∣∣∣∣∣∣xij′∣∣xij′⋅ni∣∣∣∣∣
其中
n
i
\mathbf{n}_{i}
ni是第
i
i
i个点的给定法向量。但是,在点集
X
\mathbf{X}
X中,
n
i
\mathbf{n}_{i}
ni是未知的。这就使得umbrella curvature在实际场景中无法应用。此外,我们认为scalar curvature无法完全表示局部几何结构。
![](https://i-blog.csdnimg.cn/blog_migrate/60f8dea7b1d1a6691b356bc6a12ccbe5.png)
为了解决上述问题,提出Umbrella RepSurf。Umbrella RepSurf可以处理位置敏感的同质邻居。点 x i \mathbf{x}_{i} xi的Umbrella RepSurf u i \mathbf{u}_{i} ui定义为:
u
i
=
A
(
{
T
(
[
x
i
j
′
,
t
i
j
]
)
,
∀
j
∈
{
1
,
…
,
K
}
}
)
\mathbf{u}_{i}=\mathcal{A}\left(\left\{\mathcal{T}\left(\left[\mathbf{x}_{i j}^{\prime}, \mathbf{t}_{i j}\right]\right), \forall j \in\{1, \ldots, K\}\right\}\right)
ui=A({T([xij′,tij]),∀j∈{1,…,K}})
其中
A
\mathcal{A}
A是聚合函数(summation or max),
T
\mathcal{T}
T是变换函数,
x
i
j
′
\mathbf{x}_{i j}^{\prime}
xij′是根据其质心
x
i
\mathbf{x}_{i}
xi得到的归一化坐标。为了计算
t
i
.
\mathbf{t}_{i \text {. }}
ti. ,在
x
y
x y
xy-plane平面上沿着x轴从
0
∘
0^{\circ}
0∘到
36
0
∘
360^{\circ}
360∘逆时针旋转构造相邻的triangles。因此,umbrella surface中的triangles数量为
K
K
K。注意,为了保持法向量方向的局部一致性,通过逆时针叉积计算法向量。 为了简化全局法向量方向的定义,我们令
t
i
1
\mathbf{t}_{i1}
ti1的
a
i
1
\mathbf{a}_{i1}
ai1保持为正,其他法向量的方向也随着其变化。与Triangular RepSurf一样,通过random inverse增强umbrella surface的法向量
n
i
\mathbf{n}_i
ni。
![](https://i-blog.csdnimg.cn/blog_migrate/f1d1a538091b45cdc1564405bd23f339.png)
3.5. Implementation
在PointNet++的single-scale grouping(SSG)版本上实现RepSurf。对于每一个set abstraction,我们都输入RepSurf 和 point features。
![](https://i-blog.csdnimg.cn/blog_migrate/5892a2e7bfa8eb1c20dbe24e6cabd113.png)
极坐标 极坐标系通过相对于原点的距离和角度表示一个点的坐标。以Spherical system为例,在寻找完点
x
i
\mathbf{x}_{i}
xi的neighbors后,通过它的spherical位置重新定义第
j
j
j个neighbor的位置:
x
i
j
′
=
(
x
i
j
′
,
y
i
j
′
,
z
i
j
′
,
ρ
i
j
,
θ
i
j
,
ϕ
i
j
)
,
\mathbf{x}_{i j}^{\prime}=\left(x_{i j}^{\prime}, y_{i j}^{\prime}, z_{i j}^{\prime}, \rho_{i j}, \theta_{i j}, \phi_{i j}\right),
xij′=(xij′,yij′,zij′,ρij,θij,ϕij),
其中
x
i
j
′
,
y
i
j
′
,
z
i
j
′
x_{i j}^{\prime}, y_{i j}^{\prime}, z_{i j}^{\prime}
xij′,yij′,zij′是归一化欧式坐标的三个维度值,
ρ
i
j
=
x
i
j
′
2
+
y
i
j
′
2
+
z
i
j
′
2
\rho_{i j}=\sqrt{x_{i j}^{\prime 2}+y_{i j}^{\prime 2}+z_{i j}^{\prime 2}}
ρij=xij′2+yij′2+zij′2,
θ
i
j
=
arccos
z
i
j
′
ρ
i
j
,
ϕ
i
j
=
atan
2
(
y
i
j
′
,
x
i
j
′
)
\theta_{i j}=\arccos \frac{z_{i j}^{\prime}}{\rho_{i j}}, \phi_{i j}=\operatorname{atan} 2\left(y_{i j}^{\prime}, x_{i j}^{\prime}\right)
θij=arccosρijzij′,ϕij=atan2(yij′,xij′)。
Channel de-differentiation 不同类型的输入(坐标、法向量点特征)在数据分布上有着很大的偏差。为了平等的处理不同的输入,我们探索用于沿着通道维度的differentiation。本文采用Post-CD,在每个线性方程后面都用用batch normalization。
4. 实验
4.1. Classification
![](https://i-blog.csdnimg.cn/blog_migrate/d16415a1e0638910e7dfbc30ce3c2dd5.png)
4.2. Segmentation
![](https://i-blog.csdnimg.cn/blog_migrate/ab5c3ce33f55e925cddfb639e552dd0a.png)
4.3. Detection
![](https://i-blog.csdnimg.cn/blog_migrate/e67595b8c658c5e4b7327c392cdf8208.png)
4.4. Ablation study
ModelNet40
Types of RepSurf.
![](https://i-blog.csdnimg.cn/blog_migrate/150d5054ba999f49a4fbfcccfbb812d4.png)
Design of RepSurf block.
![](https://i-blog.csdnimg.cn/blog_migrate/639933ba076d41b33452dd5c518158d4.png)
Group size.
![](https://i-blog.csdnimg.cn/blog_migrate/7af0eedb8a6922f2eba1e19b6704c1f1.png)
Polar auxiliary.
![](https://i-blog.csdnimg.cn/blog_migrate/622e07e839027421d59442c6e67fcf20.png)
Channel de-differentiation.
![](https://i-blog.csdnimg.cn/blog_migrate/2f402902c96d09ca2d2ec18c00702656.png)
这里,vanilla表示PointNet++,Pre-CD表示在线性函数之前加BN,Post-CD表示在线性函数之后加BN。实验证明,在之前加BN会使得输入的原始语义变得模糊。
5.结论
Limitation.
- 由于KNN算法对于噪声的敏感性较强,所以RepSurf在进行surface reconstruction时可能会收到噪声的影响。
- Umbrella RepSurf对于杂乱无章的点来说还是脆弱的,因此,在搜寻更多的neighbours时,neighbours将会变得很乱。
![](https://i-blog.csdnimg.cn/blog_migrate/6a78164b1408bfddbb6c5475fba98951.png)
Conclusion.
Perspective.
- 点云的表示还是值得思考的一件事情
- RepSurf 能够解决实际场景的问题,因此在其他领域应该可以得到广泛的应用
- RepSurf 在point cloud sampling领域也有好的前景