点云深度学习系列三: SPLATNet
1. 概念引入
permutohedra lattice
(原文:Fast high-dimensional filtering using the permutohedral lattice下述文字参考了https://blog.csdn.net/xuanwu_yan/article/details/7962508)
一个d维的permutohedral lattice是d+1维空间子平面分割,此超平面法向量为
所以我们有
什么是分割?一般认为分割的格子(lattice)是同样形状,一个平面能够被相同形状的格子没有缝隙,没有重叠的布满,那么格子就是空间的分割。
作者使用了单形进行分割。单形顶点在d+1维空间坐标我们不得而知,作者重新定义了基向量(并不完全准确,因为之间线性相关),于是此子平面上单形顶点的坐标直接满足在平面上的要求,即
当d=3时,单形顶点在原点,单形的边长为1,格子如下图所示
单形的顶点坐标为整数,并且一个点的坐标各项模d+1=3有相同余项k,我们称这个顶点为余k点。这里对上面的基向量稍微做一下解释,假设在三维空间中,有子空间
有
在xoy平面上,有三个点
这个点经过映射变换,就对应了上图中的橙色区域,坐标为
也就是说,下图右侧x轴原点y轴夹的右上部分区域,是下图左侧分割空间坐标映射变换
bilateral convolution layer(BCL)
(原文:
1.Learning Sparse High Dimensional Filters:Image Filtering, Dense CRFs and Bilateral Neural Networks . CVPR2016
2. Permutohedral Lattice CNNs. ICLR 2015 )
BCL平滑地将输入点映射到稀疏的格子上,在稀疏的点阵上执行卷积,然后将过滤后的信号平滑地插入到原始的输入点上。主要分为: Splat、Convolve、Slice。
Splat: 通过质心插值,将输入特征F投影到由晶格特征L。格子单体的大小或网格点之间的空间通过缩放格子特征ΔL来控制,其中Δ是缩放矩阵的对角线。
Convolve:投影到dl维网格上,BCL使用可学习的滤波器内核执行dl维卷积。就像在标准CNN一样,BCL在dl维空间中容易指定滤波器邻域。
Slice:通过质心插值将滤波后的信号映射回输入点。
2. 主要框架
SPLATNet3D:输入点云首先通过一个1*1的卷积层,之后采用不同尺度的BCL层(采用了和CNN一样的思想,格子变的越来越大,感受野也更加大,提取的特征越来高层),之后将这些BCL层合并,通过两个1*1的CONV层得到每个点的预测。
对于分类问题,采用global pooling处理
SPLATNet2D-3D:
CNN1: 首先采用2D分割的CNN,本文采用的Deeplab
BCL2D-3D: 采用下图的BCL只包含(splat,slice)将图像像素投影到点云
2D-3D Fusion: 将投影到3D空间的特征和SPLATNet3D对点云处理后得到的特征融合,通过一系列的1*1的卷积层得到了每个点的概率
BCL3D-2D:对于图像的分类问题我们需要将3D特征投影到2D图像,采用BCL2D-3D的逆操作完成
CNN2:将输入图像,CNN1的输出和BCL3D-2D放到一个2DCNN处理
3.论文的意义
将图像和点云结合处理,相互约束,正如PointCNN提出方向一样。
对于2D图像,利用3D特征有助于在多个视点上进行一致的预测。
对于3D点云,合并2D-CNN,有助于利用2D-CNN是在高分辨率图像上计算强大的特点。