0%

GeometryMotion-Net

  • Liu J, Xu D. GeometryMotion-Net: A strong two-stream baseline for 3D action recognition[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2021, 31(12): 4711-4721.
  • 北航计算机
  • 中科院二区

Introduction

一个比较相似的工作是3DV,其使用了PoinNet++抽取几何信息,再通过体素化抽取运动信息。然而体素化之类的过程是计算消耗巨大的,导致3DV本身很慢。GeometryMotion-Net则是用于在点云序列中抽取几何和运动信息,并且不依赖于任何体素化操作。主要思想是利用一个几何流和运动流组成的two-stream框架来进行动作识别。

  1. 采样:帧采样之后,对帧内使用PointNet++类似的set abstraction(FPS, grouping, PointNet)进行下采样。
  2. 几何流:用整个点云序列构造成一个空间整体。其从所有的帧中将点全部合并在一起,然后在每个点的局部邻域中抽取出特征。
  3. 运动流:在相邻两帧之间生成两个虚拟的帧。对于帧内的一个点,首先生成其相对于前后相邻帧的offset特征,然后在offset特征的空间中抽取其局部邻域信息。
整体结构图

采样和初始特征

将序列划分为T个等分区间,并且训练时从每个区间内随机取一个帧,测试时则每个区间取固定一帧。

Baseline:有了帧之后,一种简单的思路即使用现有的点云空间学习方法(如PointNet和PointNet++)来对帧内进行全局的学习。并且最终将T帧的全局特征连接起来,作为最终的序列级别的特征。

回到这篇文章,对于每个帧内,使用了PointNet++中的set abstraction操作来进行下采样出N个点,并且为这N个点计算出了初始特征(xyz 拼接 C)。

set abstraction:采样层+聚类层+miniPointNet层。

几何流

对于输入的T帧点云,几何流将其整合为一个大的点云\(P^{T*N \times 3+C}\)个点。对于大点云中的每个点,聚合其邻域范围特征作为自己的特征。具体做法是,首先搜索其k近邻\(N_k(i)\),并且对每个邻居构造一个差分特征,如下所示:

\[ \tilde{f}_{j}=h_{1}\left(\left[f_{j}-f_{i}, f_{i}\right]\right), \quad \forall j \in N_{k_{1}}(i)\\ g_{i}=\underset{j \in N_{k_{1}}(i)}{\mathbf{M A X}} \tilde{f}_{j} \]

其中\(h_1\)是一个MLP块,\(\tilde{f}_{j}\)则是每个邻居的差分特征。之后再对整个邻域进行max-pooling操作,以聚合整个邻域的特征\(g_i\),其作为中心点的特征。

更新了整个大点云之后,则在其上使用一个mini PointNet来抽取整个点云的全局特征\(\mathbf{G}\),类似于平均图像的概念。

运动流

点云中无法得知不同帧之间点的一一对应关系,而做点的运动估计和轨迹跟踪本身也是个困难且计算量大的任务。因此,这篇文章选择了对每一帧生成前后两个虚拟帧来找到运动关系。对于每一帧点云\(P\),其中点特征为\(f_i : R^{3+C}\)。定义其邻域点云为\(P^r\),其中点特征为\(f_j : R^{3+C}\)

为了学习点的运动变化信息,即需要构造一个在运动上的差分特征。因此对于原始帧内的点\(p_i\),在\(P^r\)中使用PointNet++的方法找到k近邻,并且用类似于运动流的方法构造差分特征,如下所示:

\[ \bar{f}_{j}=h_{2}\left(\left[\hat{f}_{j}^{r}-\hat{f}_{i}^{c}, \check{f}_{i}^{c}, \check{f}_{j}^{r}\right]\right), \quad \forall j \in N_{k_{2}}(i)\\ m_{i}=\underset{j \in N_{k_{2}}(i)}{\operatorname{MAX}} \bar{f}_{j} \]

最终可以得到一个时间聚合点为\(m_i\),其组成了一个时间聚合点云\(M\)。之后在其上同样使用mini PointNet来抽取这个运动点云的全局特征\(\mathbf{M}\)

因此在运动流的管线中,输入T帧点云,前一帧和后一帧都可以作为邻域点云,最终产生2(T-1)个时间聚合点云\(M\),抽取特征之后即可得到2(T-1)个双向运动特征。

双流汇聚

汇聚前的输入为一个几何全局特征,和2(T-1)个运动特征,简单的汇聚方法即对这些特征进行拼接,然后使用MLP进行降维处理,最终输出分类得分。

NTU RGB+D 120结果