Paper reading SPLATNet: Sparse Lattice Networks for Point Cloud Processing(CVPR2018)

32 篇文章 2 订阅
6 篇文章 6 订阅

简要介绍SPLATNet

其实,CVPR2019又出了很多关于点云的文章,SPLATNet是导师发给LZ的,那必然是要好好琢磨一下,具体的优势在哪了。

这篇文章作者是有oral的,所以可以直接看到作者对这篇Paper的讲解,但是由于时间限制,所以存在很多细节没有介绍,所以如果只想了解大概框架,建议直接去看原作者的presentation。值得一提的是本文的作者也是MVCNN的作者,所以,他还是对点云处理这一套有着比较深厚的理解的。
还有一点,因为LZ汇报要求使用英文,结果还是各种专业词汇会有点卡壳,哈哈,还是得多练练英文口语。脑子理解了反应的全是中文,然后还得想成英文就会比较慢,这也是LZ要修炼的一个技能。

切入正题,如下图所示,可以看到SPLATNet主要分成两类网络,一类是只处理点云的网络,称为SPALTNet3D网络,另一类是SPLATNet2D-3D网络,可以同时处理图像特征和点云特征。所以说SPALTNet可以直接处理点云。

在这里插入图片描述

为什么要直接处理点云呢?

这里直接放出一张LZ做的PPT吧,比较简陋,就凑合着看吧。这是LZ写的关于PointNet的motivation,这里面也可以同样解释为什么要直接使用点云作为输入:https://blog.csdn.net/Felaim/article/details/84403159

在这里插入图片描述
但是PointNet/PointNet++同样也会存在问题,由于点的稀疏性和无序性,所以原文中也只用了MLP来对特征进行升维,然后使用最大池化来描述全局特征。所以没有办法使用正常的卷积操作来调整其感受野的大小,同样使用最大池化也会丢失表面信息和纹理信息等。既然作者提出来PointNet/PointNet++存在这样的问题,必然SPLATNet就是可以解决这样的问题,那么问题来了,SPLATNet是怎么解决的呢?

BCLs(bilateral convolutional layers)

一图胜万言!O(∩_∩)O哈哈~,深有感触。

可以看SPLATNet的详细结构图,可以看到,以SPLATNet-3D为例,可以看到主要就有两个模块,一个模块是1x1的卷积,用来做升降维通道特征融合的,另一个部分就是BCL(bilateral convolutional layer),双边卷积层。

在这里插入图片描述

所以在SPLATNet中最重要的就是双边卷积,最初LZ还在考虑双边卷积是不是和双边滤波是不是有什么联系,后来发现并没有太多的联系,只是借了这个概念来说,因为双边滤波既有空间的信息,也有亮度/颜色的信息,所以采用双边卷积可能也是套用了这个概念,因为这个卷积既处理了位置间的信息,也可以有颜色RGB的信息,或者法线?所以叫双边卷积,可能吧。

如下图所示,是双边卷积的三个主要步骤,其实如果阅读文章的LZ觉得应该算是四个步骤。。。分别是Splat,Convolve和Slice,不知道第一个用中文怎么翻译,下面,LZ来好好介绍下这个网络,基础不牢固,看paper熬了两夜
在这里插入图片描述

Step one: Splat

这个步骤中其实有LZ说的两步,第一步是一个映射关系,将点云的特征映射到permutohedral lattice(LZ在汇报是一遇到这个英文一言难尽/(ㄒoㄒ)/~~),第二个步骤是重心插值。

可以这样认为,假设存在一个d维的permutohedral lattice,这就相当于是一个超平面 H d H_d Hd,那么会存在一个d+1维的空间,同样也会存在一个d+1维的全一向量, 1 ⃗ = [ 1 , 1 , . . . , 1 ] \vec{1}=[1, 1, ..., 1] 1 =[1,1,...,1],将d+1维的空间沿着全一向量进行映射,映射得到对应的的超平面就是之前所说的permutohedral lattice,因此就生成一个投影的标准基:
在这里插入图片描述
可以看到 B d B_d Bd中每一列的和都为0,每列的元素除以d+1,得到的模相同。所以还会存在如下的性质,如果投影点都是整数,那么投得到的lattice point上也会保证这些性质。

下面我们假设 d = 2 d=2 d=2,如下图所示,存在三个点,分别为 ( 0 , 0 , 0 ) T (0, 0, 0)^T (0,0,0)T ( 1 , 0 , 0 ) T (1, 0, 0)^T (1,0,0)T ( 1 , 1 , 0 ) T (1, 1, 0)^T (1,1,0)T,那么会存在一个投影矩阵 B 2 B_2 B2(按照上面公式的规则),将三个点分别投影到permutohedral lattice上,可以得到对应三个lattice points,分别为 ( 0 , 0 , 0 ) T (0, 0, 0)^T (0,0,0)T ( 2 , − 1 , − 1 ) T (2, -1, -1)^T (2,1,1)T ( 1 , 1 , − 2 ) T (1, 1, -2)^T (1,1,2)T,我们可以看到中间这幅图上为三角形,顶点上分别写着0,1和2,那是因为如果对d+1维,这个例子中是3,对3取余,只可能出现余数为0,1,2着三种情况。后面还会存在两个问题,如何找到余数为0这个点呢?如何选择顶点数呢?

在这里插入图片描述

先解决第一个问题,如何找到对应的最近的余数为0的顶点呢?上面图例中,以 ( 2 , − 1 , − 1 ) T (2, -1, -1)^T (2,1,1)T的lattice point为例, 2 / 3 ≈ 0.667 2/3\approx0.667 2/30.667,用四舍五入近似为1,所以在permutohedral lattice坐标系上,x轴坐标为1,同理 − 1 / 3 ≈ − 0.33 -1/3\approx-0.33 1/30.33,四舍五入近似为0,所以在permutohedral lattice坐标系上,y坐标为0,z坐标也为0。所以可以唯一确定一个最近余数为0的点,并且复杂度为 O ( d 2 ) O(d^2) O(d2),同时看到上图中的第三幅图,是对区域的整体划分,将permutohedral lattice坐标系中,原点处的单形(正六边形)叫做标准单形,其余的单形可以通过平移得到标准单形。并且可以计算对应lattice point对应余数为0顶点的向量差,记为 x ⃗ − l 0 ⃗ \vec{x}-\vec{l_0} x l0 ,对应不同的点,都可以计算出一个向量差,按照这个可以对同一区域内的lattice point进行排序,作为区分同一区域各个点的key,也是后续使用hash表的键值和索引。

第二个问题,如何选择顶点呢?,还是以 ( 2 , − 1 , − 1 ) T (2, -1, -1)^T (2,1,1)T的lattice point为例, 2 / 3 = 0 ⋯ ⋯ 2 2/3=0 \cdots\cdots2 2/3=02,计算可以得到模为2这个顶点,因为点为整数坐标,得到的模相同,所以lattice point如上图所示。

在把所有的点映射到permutohedral lattice超平面上后要进行重心插值,在 d = 2 d=2 d=2的条件下,是满足三角形的重心定理,如下图所示:
在这里插入图片描述
将三角形区域内的点分裂到对应的lattice的顶点上去,使得分裂后的点变成有规则的排列。第一步Splat步骤完成。

Step two: convolve

第二步就是卷积操作,通过步骤一计算得到的键值和对应的顺序,可以通过hash表索引到含有lattice point的位置,然后通过标准的卷积进行操作,提取特征,这里类比Gauss Filter做示意图。

在这里插入图片描述

Step three: slice

第三步是slice,通过中心插值将lattice顶点上的点进行恢复,然后再重新投影到欧式空间中。
在这里插入图片描述

BCL的一些性质

点的特征和lattice的特征可以是不一致的,如下图所示。正是由于这个性质,可以讲二维的图片特征通过splat和slice操作后得到三维点云的特征

在这里插入图片描述
因为BCL可以使用标准的卷积,所以在使用时可以灵活的调整其对应的感受野,也就是调整lattice对应的尺度:

在这里插入图片描述

SPLATNet网络结构

其实这篇文章主要的贡献就在于使用BCL搭建了一个可以直接处理稀疏点云的网络,并且可以将二维特征和三维特征进行对应映射,具体的网络结构在论文里都有,比较简单易懂,这里感兴趣的小伙伴可以自行理解一下即可。
在这里插入图片描述

总结

SPLATNet是通过创建一个空间,将稀疏的点云特征映射成有规律的排列,通过使用标准卷积操作来获取点云局部特征和空间信息。其次,SPLATNet可以看做是一个联合网络,可以将图片和点云进行联合处理,需要做二维分割预测时,三维点云特征可以对二维分割进行特征和信息补充,作为三维分割预测时,也可以使用二维特征信息进行补充。总的来说,这篇CVPR18还是值得一读的。

最后放几张实验结果图:
在这里插入图片描述
在这里插入图片描述可以看到二维信息和三维信息是相互补充的!

愚人节快乐,O(∩_∩)O哈哈~

参考文献:

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值