【论文笔记】动态图神经网络处理点云 DGCNN : Dynamic Graph CNN for Learning on Point Clouds 2019

DGCNN,继Pointnet之后点云特征提取的又一代表性工作.

Pointnet是先在每个点的特征上各自进行MLP提取(没有点与点之间的特征交流),最后使用MAXpool将所有点的特征融合在一起,得到一个对总体点云的1024维的特征描述子,因此可以将Point net作为点云全局特征的提取器.

相比Pointnet,DGCNN则可以对点云的局部几何特征进行提取和利用.DGCNN采用了图神经网络对点云特征逐步进行更新和融合,即Edge conv.

DGCNN中的节点每一个点云的特征,边由在特征空间中定义的邻域所决定。这也是其与常见的图神经网络不同的地方,即dynamic,每更新一次节点的特征之后,节点之间的连接关系是根据特征的相似性矩阵来决定的(In our implementation, we compute a pairwise distance matrix in feature space and then take the closest k points for each single point.)
也就是说,图的链接关系由网络自己学习,因而edgconv 的感受野最大可以达到整体点云的直径。

第i个点的经过edgeconv的输出为:
x i ′ = □ j : ( i , j ) ∈ E h Θ ( x i , x j ) \mathbf{x}_{i}^{\prime}=\square_{j:(i, j) \in \mathcal{E}} h_{\Theta}\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) xi=j:(i,j)EhΘ(xi,xj)
其中e_ij=hΘ(xi,xj)称为edge features,也就是将邻域点特征融合后的特征,其可学习参数为Θ
□代表一个逐通道的融合操作,要求必须是输入顺序无关的(因为点云的输入是无序的),如max或者sum。

因此h和□(edge function和aggregation operation)的选择就决定了edgeconv的输出
比如标准的卷积操作:
x i m ′ = ∑ j : ( i , j ) ∈ E θ m ⋅ x j x_{i m}^{\prime}=\sum_{j:(i, j) \in \mathcal{E}} \theta_{m} \cdot \mathbf{x}_{j} xim=j:(i,j)Eθmxj

Pointnet中采用的操作:(因此可以被视为EdgeConv的特例)
h Θ ( x i , x j ) = h Θ ( x i ) h_{\Theta}\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=h_{\Theta}\left(\mathbf{x}_{i}\right) hΘ(xi,xj)=hΘ(xi)

这里h函数的选择决定了卷积能否捕获局部特征:
h Θ ( x i , x j ) = h Θ ( x j − x i ) h_{\Theta}\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=h_{\Theta}\left(\mathbf{x}_{j}-\mathbf{x}_{i}\right) hΘ(xi,xj)=hΘ(xjxi)仅编码了局部信息,将形状视为小的patches的集合,并丢失了全局结构信息。
在这里插入图片描述

DGCNN采用了如下的函数形式:
h Θ ( x i , x j ) = h ˉ Θ ( x i , x j − x i ) h_{\Theta}\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=\bar{h}_{\Theta}\left(\mathbf{x}_{i}, \mathbf{x}_{j}-\mathbf{x}_{i}\right) hΘ(xi,xj)=hˉΘ(xi,xjxi)
显式地将由中心xi的坐标捕获的全局形状结构与由xj-xi捕获的局部邻域信息相结合。具体的表达形式:
e i j m ′ = ReLU ⁡ ( θ m ⋅ ( x j − x i ) + ϕ m ⋅ x i ) e_{i j m}^{\prime}=\operatorname{ReLU}\left(\theta_{m} \cdot\left(\mathrm{x}_{j}-\mathrm{x}_{i}\right)+\phi_{m} \cdot \mathrm{x}_{i}\right) eijm=ReLU(θm(xjxi)+ϕmxi)

最后聚合函数选择了max()

总结一下DGCNN的表达式:

x i ′ = max ⁡ j : ( i , j ) ∈ E h Θ ( x i , x j ) h Θ ( x i , x j ) = h ˉ Θ ( x i , x j − x i ) \mathbf{x}_{i}^{\prime}=\max _{j:(i, j) \in \mathcal{E}} h_{\Theta}\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)\\ h_{\Theta}\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=\bar{h}_{\Theta}\left(\mathbf{x}_{i}, \mathbf{x}_{j}-\mathbf{x}_{i}\right) xi=j:(i,j)EmaxhΘ(xi,xj)hΘ(xi,xj)=hˉΘ(xi,xjxi)
由于采用了max()聚合操作,因此edgeconv具有输入顺序不变性的特点,可以用于点云特征提取。
由于h中使用了相对距离xj-xi作为输入,因而edgeconv具有“部分”的平移不变性:
e i j m ′ = θ m ⋅ ( x j + T − ( x i + T ) ) + ϕ m ⋅ ( x i + T ) = θ m ⋅ ( x j − x i ) + ϕ m ⋅ ( x i + T ) \begin{aligned} e_{i j m}^{\prime} &=\theta_{m} \cdot\left(\mathrm{x}_{j}+T-\left(\mathrm{x}_{i}+T\right)\right)+\phi_{m} \cdot\left(\mathrm{x}_{i}+T\right) \\ &=\theta_{m} \cdot\left(\mathrm{x}_{j}-\mathrm{x}_{i}\right)+\phi_{m} \cdot\left(\mathrm{x}_{i}+T\right) \end{aligned} eijm=θm(xj+T(xi+T))+ϕm(xi+T)=θm(xjxi)+ϕm(xi+T)

但是如果仅仅使用xj-xi,模型则退化为基于一组无序的patches来识别对象,而忽略了patches的位置和方向.因此将二者一起输入是较为合理的选择。

实验结果

模型结构:
在这里插入图片描述

分类精度

分别在分类、part segmentation任务上进行了评估,使用固定连接关系的DGCNN作为basiline:
在这里插入图片描述

超越了point net,以及pointnet++

速度

Our baseline model using the fixedk-NN graph outperforms theprevious state-of-the-art PointNet++ by1.0%accuracy, at the sametime being 7 times faster.
dynamic版本的DGCNN仍然更快:
在这里插入图片描述

消失实验

分别对坐标中心化操作、动态图(dynamic)、points number的影响进行了探究:
在这里插入图片描述

part segmentation

在这里插入图片描述

在这里插入图片描述

we take one red point from a source point cloud and compute its distance in feature space to points in other point cloudsfrom the same category. An interesting finding is that althoughpoints are from different sources, they are close to each other if they are from semantically similar parts.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值