论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds

前言:通过MLP和点密度来估计点卷积的卷积核权重的方法,发表在CVPR2019
论文地址:【here】
代码地址:【here】

PointConv: Deep Convolutional Networks on 3D Point Clouds

引言

3D点云数据不像2D数据一样,有规整的网格形状,它的点是无序的,因此不太好使用卷积
这篇文章解决了这个问题,我们将卷积抽象成数学的连续形式,然后扩展到3维,而MLP可以估计这个连续函数,将连续函数离散化的时候,由于点是不均匀的,因此需要通过利用点的密度进行离散加权求和
不仅如此,本文还提出了高效版本,将存储代价大的原先版本改进成了存储高效版本。
对于点云分割任务,本文提出了一种反卷积方式,加了跳跃连接和点卷积,不是仅仅的距离插值

方法

首先,卷积的一般连续形式
论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds_第1张图片
由于2D图像卷积是规整排列,都是相邻排列的整数位置上的值,因此可以直接转换成各个位置上的权重加权的形式。
推广到3D一般形式也是如此
论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds_第2张图片
但是,对于不规律排列的3D点,不能仅仅是权重加权,还得乘上这个位置这个点的概率,这里的概率就是逆密度,即密度越小的点它的卷积占比会更大,因为需要代表更大范围核的值,而密度越大的点代表的范围更小,因此要乘一个小权重
论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds_第3张图片
这里的S就是逆密度

作者用这样一幅图来解释
论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds_第4张图片
我们实际上要学的卷积核是图a这样连续的,即给一个给定的相对位置的δx,δy,δz,学出权重weight=f(δx,δy,δz),即学出图a的3D函数,颜色代表不同的权值,图b和c是给定z值切片后的实际情况,将连续卷积离散化,最好的离散化方式就是间隔采样了(如2DCNN),不均匀采样的话,每个点就赋予不同的权重,这个权重就由密度决定。

于是作者就设计用MLP学weight=f(δx,δy,δz)中的映射f,KDE学逆密度的值

因此设计了这样的一个类似2D卷积一样的网络架构,这个架构完全遵循这个公式
论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds_第5张图片
论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds_第6张图片
由于3维的卷积中每个点有一个卷积权重K* Cin * Cout太大了,然后作者通过一系列的论证(参见原文),证明了可以将上式的矩阵点乘化成叉乘,得到一维向量再做1*1的卷积在这里插入图片描述其中,M尺寸为K * Cmid,作为MLP的计算卷积核的输入
论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds_第7张图片

实验

分类
论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds_第8张图片
实体分割
论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds_第9张图片
语义分割(这个任务的提升很明显)
论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds_第10张图片
当然最后还是对连续卷积核进行了可视化,不过这个作者没有给解释,也不知道这是哪一层的卷积核,也看不出这个卷积核有啥作用,果然深度学习就是一门玄学…
论文阅读 | PointConv: Deep Convolutional Networks on 3D Point Clouds_第11张图片

结论

本文提出了一种新的可以用于点云数据上的卷积方式,通过MLP估计连续的卷积核,逆密度来对不均匀的点离散化,并设计出了一个高效不是很占内存的网络架构,最后的实验效果很好,在分类分割任务上超过了现有的方法

你可能感兴趣的:(论文阅读,深度学习,计算机视觉)