PointCNN

CNN之所以获得如此大的成功,关键在于他的Conv操作,该操作可以利用图像中密集表示的数据中的局部相关性,得到局部集合结构。此处的想法就是可不可以将其在PointCloud中应用该种想法。

\(\mathcal{X}-Conv\)来鹅城只为两件事:

  1. 对每个代表点周围的点特征做集成。
  2. 在隐空间对输入做重排去除输入顺序的影响。

上面两件事的作用可以类比为CNN里面的Conv操作。

作者提出了一种在卷积角度处理点云问题的框架,其中最关键的部分被称为\(\mathcal{X}-Conv\),他的主要作用就是解决了上面两件事。


image
在上图(i)中,每个网格单元关联一个特征。在ii-iv,这些点是从局部邻域采样的,类似于i中的局部面片,每个点都与特征、顺序索引和座标关联这三个要素相连。
我们在上图中展示了点云应用在卷积上的问题和挑战。假设再上图的ii-iv上的C维无序集合的输入特征都是相同的\(\mathbb{F}=\{f_a,f_b,f_c,f_d\}\),而且我们有一个形状为\(4\times C\)的kernel \(K=[k_\alpha,k_\beta,k_\gamma,k_\delta]^T\)

上图ii-iv是点云的形式:

  • iiiii虽然feature的输入顺序相同,但是feature的形状不同,此时就需要网络可以区分出来他们两个的不同之处。
  • iiiiv虽然feature的输入顺序不同,但是feature的形状相同,此时就需要网络可以去除出来输入顺序对他们两个的影响。

由上图1a可得,由于卷积操作的性质,在所有情况下\(f_{ii},f_{iii}\)的计算结果是相等的,\(f_{iii},f_{iv}\)的操作结果是不相等的。很显然可以得出结论,直接卷积会导致原始信息丢失空间信息并且使得卷积的结果对于顺序很敏感。

解决方案 - Beg - 在隐空间对输入做重排去除输入顺序的影响

image

本文作者思路是让网络去学习一个转置矩阵\(\mathcal{X}\),该矩阵可以对某个特定顺序的输入进行处理,得到一个与顺序无关的feature。输入数据经过\(\mathcal{X}\)相乘之后,在执行Convolution的操作,比如图1中的iii,他的feature的顺序是abcd,经过和转置矩阵\(\mathcal{x}\)相乘之后,得到了某一种顺序能和图iv的这种排列顺序相等。此时我们就做到了上述的第二点,消除掉输入顺序对识别结果的不良影响。\(\color{red}{这样消除会不会同样消除掉空间信息呢?}\)感觉应该是不会的,他不是那种max-pooling操作,它是通过\(\mathcal{X}\)抵消顺序的。
image

  • 在结构信息相同的时候,尽管顺序信息不同,网络可以学到一种特征,形成针对性的矩阵,同结构化的点云,可以拥有相同顺序的feature
  • 在顺序信息相同的时候,但结构信息不同,经过矩阵计算得到的feature是不同的

对网络进行训练之后发现,矩阵并没有二值化,这也是一个待解决的问题,虽然没有成功二值化,但是这样的特征也可以理解为这个矩阵学到了如何在点云中提取feature的权重。


image
PointCNN对点云数据做平移不变性的操作,就是在中心点查到k近邻之后,用其周围点的座标信息减去中心点的座标信息,得到局部座标系,将每个点的局部座标系单独提升,并结合相关特征。这样就消除了整体的变化导致局部的变化,让网络学到的东西产生变化。
image
image
基于栅格的CNN的输入是一个\(F_1\)的特征图形状为\(R_1\times R_1\times C_1\)(如上图的\(F_1\)),其中的\(R_1\)是空间分辨率,\(C_1\)是特征的通道数。卷积核\(K\)的形状为\(K\times K\times C_1\times C_2\)将其与\(F_1\)形状为\(K\times K\times C_1\)local patch做卷积,产生一个形状为\(R_2\times R_2\times C_2\)feature map。注意到图2的上部\(R_1=4,K=2,R_2=3\)。和\(F_1\)相比,\(F_2\)的分辨率一般都是比较低的\((R_2<R_1)\),但channels一般是比较高的\((C_2>C_1)\),编码到高级别的语义信息,这个过程是递归的,图越来越小,但深度越来越高。

PointCNN的输入是\(\mathbb{F}_1=\{(p_{1,i},f_{1,i}):i=1,2,\dots,N_1\}\),即点集\(\{p_{1,i}:p_{1,i}\in\mathbb{R}^{Dim}\}\),每个点与特征\(\{f_{1,i}:f_{1,i}\in\mathbb{R}^{C_1}\}\)相关联。了解过基于网格的CNN分层构造之后,我们希望在\(\mathbb{F}_1\)上应用X-Conv以获得更加高级别的表示\(\mathbb{F}_2=\{(p_{2,i},f_{2,i}:f_{2,i})\in\mathbb{R}^{C_2},i=1,2,\dots,N_2\}\),其中\(\{p_{2,i}\}\)\(\{p_{1,i}\}\)的一组代表点,\(\mathbb{F}_2\)\(\mathbb{F}_1\)相比有更小的分辨率和更深的通道数(\(N_2<N_1,C_2>C_1\))。当递归应用将\(\mathbb{F}_1\)转换为\(\mathbb{F}_2\)\(\mathcal{X}-Conv\)过程中,具有特征的输入点被投影聚合为更少的点\((9\rightarrow 5\rightarrow 2,如上图2所示)\),但每个点都有更加丰富的特征信息(点的颜色越来越深,大小越来越大)。

解决方案 - End - 对每个代表点周围的点特征做集成

通过上述方案,可以模拟CNN的特性,并且做到了开头\(\mathcal{X}-Conv\)的两件事

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章