RS-CNN: Relation-Shape Convolutional Neural Network for Point Cloud Analysis
基于邻域集合关系推断的点云卷积神经网络
论文地址
https://sci-hub.se/10.1109/cvpr.2019.00910
讲解视频:
https://www.bilibili.com/video/av61824733
代码地址:
https://github.com/Yochengliu/Relation-Shape-CNN
参考:https://blog.csdn.net/weixin_39373480/article/details/90487007
关键词:
新的卷积算子:关系形状卷积RS-Conv;共享MLP
问题:
通常讲,有对于学习点云P ⊂ R 3 来讲,有三个挑战和一个局限:
1)P是无序的,因此要求学习的表达是置换不变的。 —— 被“对称函数”很好的解决了
2)P分布在三维几何空间,因此对刚性变换(旋转、平移)是鲁棒地
3)P 形成一个隐含的形状,因此卷积得到的表征应当具备有区分力的“形状意识”
4)经典CNN存在的局限:特征变换函数T(fxj) =wj·(f)xj
(1)由于 wj 不共享参数,因此该卷积对输入点集不具备置换排列不变性。
(2)在反向传播中 wj 的梯度仅与孤立点 xj 相关,是一种隐式学习,因此该卷积难以捕捉到点间关系。
原理:
以上的(2)(3)问题,提出RS-CNN来缓解。
对于局部点云,提出可以构建以下卷积操作:
其中T为转换函数,使得每个点上的特征都进行了改变;A 为聚集函数,使得所有的特征聚集成一个点的特征;而σ 为激活函数;N ( x i ) 为点xi 的邻域的点的集合。
假设卷积核是3 × 3×3的。转换函数T 相当于将卷积核对应位置的值乘在了图像的对应位置,比如说卷积核左上角乘以图像对应的左上角,然后聚集函数A相当于相加求和的操作。因此在点云上也是一样,只不过乘上去的这个值(卷积核的值)不是随机初始化的,而是通过这个位置的点与中心点(即i和j)之间的一些关系算出来的:
其中wij:学习的是xi和xj之间的关系;
hij:就是点云中xi与xj的关系,这个关系可以人为地先验给出,可以是XYZ的距离(欧氏距离),也可以是特征维度上的距离;M是一个共享的多层感知机(MLP),将hij映射到高维的关系表达。
最后,模型的表达式就写成以下的样子
那么如何学习三维中的几何关系呢?
首先了解几何拓扑信息:
对于一个中心点xi ,以r为半径的球体范围内的点,看作xi的邻居点。对于任意邻居点xj。如何描述其到中心点xi的拓扑关系信息hij? 论文给出以下几种方式,可以看出第三种最好。
3D-Ed:xi到xj的距离,1维
xi-xj:两点坐标之差,3维
xi:单点坐标,3维;xj:单点坐标,3维
将以上信息拼接到一起,组成一个channel是10的feature,作为几何拓扑关系信息hij 。
卷积模型(RS-Conv):
1) 以r为半径找邻居点,随机采样,对于每一个采样点建立一个邻域,并在里面挑选足够的邻居点,即上图的最左边的球就是由采样点得到的邻域集合。具体的采样细节同pointnet++,使用了最远点采样(FPS)加球星区域随机采样(ball query );
2) 计算每个邻域中邻居点与中心点之间的关系,即上图左侧那条紫色的线。 这个关系首先是低维的先验关系,即两个点之间的欧式距离、特征维度的距离;再通过这样的先验关系代入神经网络中算出高维的关系,即模型的这一部分,它的输出维度是和点云第j个点一样的维度,因此可以直接乘在第j个点上作为转换函数T
对于每个邻居点执行(以xj为例):
(1) 用一个共享的MLP(M)学习出邻居点对应的卷积参数wij,wij与邻居点的feature fxj的channel数相同;映射的作用是抽取两个点之间的高阶关系,能编码空间布局;
(2) 参数和feature按位乘:wij·fxj,得出新的feature;
3) 计算出所有邻居点的feature后,用一个聚合函数( A),max或者avg,来处理所有邻居点的feature;
4) 用一个非线性的激活函数 φ 来处理A的结果;
最后用一个共享的MLP进行channel变换,得出点xi的feature。
通过有关系的两个结点的一些特征去计算点与点之间的关系权重,再利用这样的关系权重去更新中心点的特征。
卷积网络(RS-CNN)
N:点数;C:通道数;
图(a):点云分类,配置最终的全局表示形式,后跟三个完全连接的(FC)层,用于分类;
图(a):点云分割,通过特征传播对学习的多级表示进行连续上采样以生成每点预测。
优点:
(1)置换不变性:低阶关系 h 和共享的 MLP M 对点的输入顺序都是不变的,再加上聚集函数 A 是对称的,满足置换不变的条件。
(2)刚性变换鲁棒性:在合适的 h(如3D欧式距离)的定义下, 在高阶关系编码 M ( h ) 的刚性变换鲁棒性仍然成立。
(3)点相互作用:关系学习编译了点之间的几何关系,即捕捉到点之间的交互。
(4)权重共享:可以更鲁棒,降低复杂度
缺点:
对于一些难以处理的形状,如螺旋楼梯和复杂的植物,也可能不太有效。
创新点:
本文主要是设计了一种在点云上面可以运用的卷积方式,并且刷新了点云分类、部件分割和法向量估计等很多任务的成绩。
1)提出了一种新型的从关系中学习的卷积算子:关系-形状卷积。它可以显式地对点的几何关系进行编码,从而在很大程度上提高了对形状的感知能力和鲁棒性。即RS-Conv。
2)提出一个具有关系形状卷积的深层层次结构,即RS-CNN。将规则网格CNN扩展到不规则配置,实现点云的上下文形状感知学习。即基于RS-Conv设计的RS-CNN。
3)在三个任务中对具有挑战性的基准进行广泛的实验,以及深入的经验和理论分析,证明RS-CNN达到了SOTA的水平。
实验结果:
框架:Pytorch
训练采用Adam优化算法,最小批量为32。
BN的动量从0.9开始,以每20个周期0.5的速率衰减。
学习率从0.001开始,以每20个时代0.7的速度衰减。
在分类和分割上基本上碾压了所有的现有算法。
点与点关系的参数设置。发现同时使用欧氏距离、特征距离与点本身的特征效果最好。
聚集函数的选择上max pooling效果最好
邻域内点的选择上随机筛选会优于KNN筛选