目录
论文:Point 4D Transformer Networks for Spatio-Temporal Modeling in Point Cloud Videos
作者:Hehe Fan,Yi Yang,Mohan Kankanhalli
提出了一种使用transformer对直接对原始点云进行时空(Spatio-Temporal)建模的网络:P4Transformer 。网络整体结构如下图所示。
整体上首先从点云序列中选定特定帧,通过 Point 4D Convolution 融合前后相邻帧的局部特征,提取该特定帧的时空局部特征,之后将时空局部特征和点的4D坐标concatenate在一起,作为Transformer的输入。Transformer中包含了m个Multi-head Self Attention (LayerNorm, RELUs, residual connections)。之后对于不同的任务,经过不同的网络头得到结果。
1. Point 4D Convolution
比如现在有 t 1 t_1 t1 到 t 5 t_5 t5,5帧点云,每帧点云有 N N N 个点。首先以 s t s_t st 为步长选取特定帧(上图 t 2 t_2 t2 和 t 4 t_4 t4 )。在这些特定帧点云上使用 Farthest Point Sampling (FPS) 采样出 N s N_s Ns 个点(如上图中点a, b, c, d ,e)。之后将这些采样的点转换到附近的 r t r_t rt 个相邻帧上。之后,以每个转换得到的点为圆心, r s r_s rs 为半径,选定一个局部区域。之后4D卷积就可以如下式计算得到:
其中
ζ
(
δ
x
,
δ
y
,
δ
z
,
δ
t
)
⋅
f
=
(
W
d
⋅
(
δ
x
,
δ
y
,
δ
z
,
δ
t
)
T
)
⊙
(
W
f
⋅
f
)
\zeta(\delta_x,\delta_y,\delta_z,\delta_t)\cdot f = (W_d\cdot(\delta_x,\delta_y,\delta_z,\delta_t)^T)\odot(W_f\cdot f)
ζ(δx,δy,δz,δt)⋅f=(Wd⋅(δx,δy,δz,δt)T)⊙(Wf⋅f)
f = F t + δ t x + δ x , y + δ y , z + δ z f=F^{x+\delta_x,y+\delta_y,z+\delta_z}_{t+\delta_t} f=Ft+δtx+δx,y+δy,z+δz
G表示时空上的一个局部区域,由于时空的正交性,可以分成使用 r s r_s rs 和 r t r_t rt 表示的多个空间局部区域的序列(如图1中点云序列中多个圆形区域)。
理解:这里实际上就是在多个相邻帧上提取局部特征。如图2所示,对于中间这个特定帧的局部区域上的一个点
p
(
x
,
y
,
z
,
t
)
p(x,y,z,t)
p(x,y,z,t),为两个相邻帧中及本帧的局部区域的所有点计算到该点的位移向量
(
δ
x
,
δ
y
,
δ
z
,
δ
t
)
T
(\delta_x,\delta_y,\delta_z,\delta_t)^T
(δx,δy,δz,δt)T,假设一共有k个点,就可以得到局部位移特征
d
i
s
p
(
x
,
y
,
z
,
t
)
∈
R
4
×
k
disp^{(x,y,z,t)}\in \mathbb{R}^{4\times k}
disp(x,y,z,t)∈R4×k。这k个点的原始特征为
f
t
(
x
,
y
,
z
)
∈
R
C
×
k
f^{(x,y,z)}_t\in \mathbb{R}^{ C\times k}
ft(x,y,z)∈RC×k。之后分别通过
W
d
W_d
Wd 和
W
f
W_f
Wf 对特征维度进行变换之后相加,就得到了
F
t
′
′
(
x
,
y
,
z
)
∈
R
C
′
×
k
F^{''(x,y,z)}_t \in \mathbb{R}^{C'\times k}
Ft′′(x,y,z)∈RC′×k,之后sum pooling得到点
p
(
x
,
y
,
z
,
t
)
p(x,y,z,t)
p(x,y,z,t) 的时空局部特征
F
t
′
(
x
,
y
,
z
)
∈
R
C
′
×
1
F^{'(x,y,z)}_t\in \mathbb{R}^{ C'\times 1}
Ft′(x,y,z)∈RC′×1,如图2中的a、b、c、d、e、f。以上这个过程可以用矩阵运算表示:将disp和f通过concatenation得到特征矩阵
f
t
′
(
x
,
y
,
z
)
∈
R
(
4
+
C
)
×
k
f^{'(x,y,z)}_t\in \mathbb{R}^{ (4+C) \times k}
ft′(x,y,z)∈R(4+C)×k。则
F
t
′
′
(
x
,
y
,
z
)
=
[
W
d
W
f
]
f
′
F^{''(x,y,z)}_t ={\left[ {\begin{array}{c} {{W_d}}&{{W_f}} \end{array}} \right]}{f'}
Ft′′(x,y,z)=[WdWf]f′
其中 W d ∈ R C ′ × 4 W_d\in \mathbb{R}^{C'\times 4} Wd∈RC′×4, W f ∈ R C ′ × C W_f\in \mathbb{R}^{C'\times C} Wf∈RC′×C。
以上这个操作也可以如PSTNet中一样看成是由相对位置坐标来生成卷积核,因此论文中叫做4D卷积。
2. Transformer
2.1 4D Coordinate and Local Feature Embedding
这一部分就类似于传统transformer中的Positional Encoding。通过Point 4D Convolution得到了多个帧的时空局部特征。对于点
p
(
x
,
y
,
z
,
t
)
p^{(x,y,z,t)}
p(x,y,z,t) ,提取到的时空局部特征为
F
t
′
(
x
,
y
,
z
)
∈
R
C
′
×
1
F^{'(x,y,z)}_t \in \mathbb{R}^{ C'\times 1}
Ft′(x,y,z)∈RC′×1 。则encoding的过程可以由下式表达:
I
(
x
,
y
,
z
,
t
)
=
W
i
⋅
(
x
,
y
,
z
,
t
)
T
+
F
t
′
(
x
,
y
,
z
)
I^{(x,y,z,t)}=W_i\cdot(x,y,z,t)^T+F^{'(x,y,z)}_t
I(x,y,z,t)=Wi⋅(x,y,z,t)T+Ft′(x,y,z)
其中
W
i
∈
R
C
′
×
4
W_i \in \mathbb R^{C' \times 4}
Wi∈RC′×4 。综合所有点,
I
∈
R
C
′
×
L
′
N
′
I \in \mathbb R^{C'\times L'N'}
I∈RC′×L′N′就作为Transformer的输入。,
L
′
L'
L′ 为选取的特定帧的数量,
N
′
N'
N′为每帧采样的点数。
2.2 Self-Attention
这一部分与传统Transformer一样,通过输入
I
∈
R
C
′
×
L
′
N
′
I \in \mathbb R^{C'\times L'N'}
I∈RC′×L′N′ ,得到queries
Q
Q
Q、keys
K
K
K 和 values
V
V
V。
Q
=
W
q
⋅
I
K
=
W
k
⋅
I
V
=
W
v
⋅
I
Q=W_q \cdot I\\ K=W_k \cdot I\\ V=W_v \cdot I
Q=Wq⋅IK=Wk⋅IV=Wv⋅I
其中
W
q
∈
R
C
k
×
C
′
W_q \in \mathbb R^{C^k \times C'}
Wq∈RCk×C′,
W
k
∈
R
C
k
×
C
′
W_k \in \mathbb R^{C^k \times C'}
Wk∈RCk×C′,
W
v
∈
R
C
v
×
C
′
W_v \in \mathbb R^{C^v \times C'}
Wv∈RCv×C′。
a
t
t
e
n
t
i
o
n
(
Q
,
K
)
=
s
o
f
t
m
a
x
(
Q
T
⋅
K
(
C
k
)
)
O
=
V
⋅
a
t
t
e
n
t
i
o
n
(
Q
,
K
)
attention(Q,K)=softmax(\frac{Q^T\cdot K}{\sqrt{(C^k)})}\\ O=V \cdot attention(Q,K)
attention(Q,K)=softmax((Ck))QT⋅KO=V⋅attention(Q,K)
其中
a
t
t
e
n
t
i
o
n
(
Q
,
K
)
∈
R
L
′
N
′
×
L
′
N
′
attention(Q,K)\in \mathbb R^{L'N'\times L'N'}
attention(Q,K)∈RL′N′×L′N′,表示L’N’个采样点的时空局部特征之间的相关性。
O
∈
R
C
v
×
L
′
N
′
O\in \mathbb R^{C^v\times L'N'}
O∈RCv×L′N′。
为了增强Transformer的学习能力,使用 Multi-Head Self Attention。
3. 3D Action Recognition
如图1所示,在Transformer后使用max pooling将Transformer输出的局部特征融合成一个单独的全局特征。之后使用MLP将全局特征转换成为动作预测。
4. 4D Semantic Segmentation
语义分割需要的是 point-wise feature,Transformer的复杂度是 O ( n 2 ) O(n^2) O(n2),因此对原始点云使用多个 point 4D convolution层来减少Transformer处理的点的数量。在Transformer之后,使用PointNet++里的feature propagation对点云特征进行插值。
插值方法(inverse distance weighted average):对于插值点p
(
x
,
y
,
z
,
t
)
(x,y,z,t)
(x,y,z,t),找局部特征里距离点p最近的
k
k
k 个点(文章里
k
=
3
k=3
k=3),点p的特征就由这k个临近点特征加权线性组合。**每个点的权重为点p到该点的距离和点p到这k个点的距离之和的比。**因此于点p距离越近的点对点p的特征贡献度越大。以上过程由公式表达即为
F
′
′
(
x
,
y
,
z
)
=
∑
i
=
1
k
ω
(
δ
x
,
δ
y
,
δ
z
)
O
(
x
+
δ
x
,
y
+
δ
y
,
z
+
δ
z
,
t
)
∑
i
=
1
k
ω
(
δ
x
,
δ
y
,
δ
z
)
F^{''(x,y,z)}=\frac{\sum_{i=1}^{k}\omega(\delta_x,\delta_y,\delta_z)O^{(x+\delta_x,y+\delta_y,z+\delta_z,t)}}{\sum_{i=1}^k\omega(\delta_x,\delta_y,\delta_z)}
F′′(x,y,z)=∑i=1kω(δx,δy,δz)∑i=1kω(δx,δy,δz)O(x+δx,y+δy,z+δz,t)
其中 ω ( δ x , δ y , δ z ) = 1 ∣ ∣ ( δ x , δ y , δ z ) ∣ ∣ 2 \omega(\delta_x,\delta_y,\delta_z)=\frac1{||(\delta_x,\delta_y,\delta_z)||^2} ω(δx,δy,δz)=∣∣(δx,δy,δz)∣∣21 。