echart中拆线点的偏移_KPConv:点云核心点卷积 (ICCV 2019)
目前,点云的一个研究热点是如何高效的计算点云中点的feature。本文介绍ICCV2019的一篇用核心点卷积(Kernel Point Convolution)来计算feature的文章,包括学习笔记和总结。KPConv: Flexible and Deformable Convolution for Point Cloudsarxiv.orgHuguesTHOMAS/KPConvgithub
目前,点云的一个研究热点是如何高效的计算点云中点的feature。本文介绍ICCV2019的一篇用核心点卷积(Kernel Point Convolution)来计算feature的文章,包括学习笔记和总结。
KPConv: Flexible and Deformable Convolution for Point Cloudsarxiv.org HuguesTHOMAS/KPConvgithub.com1. Kernel Point Convolution定义
Kernel Point Convolution的作用是:计算出3D空间中一个点
点云中的点定义为:
所有点的feature定义为:
以
将球体定义为:
在球体内,找
对于每个核心点
在前面定义的球体范围
可以直观的看出,
可以看出,每个权重矩阵
基于以上内容,点
总结一下核心点卷积的大概思路:
- 以点
为球心确定一个球体;
- 在球体内确定若干个核心点,每个核心点带一个权重矩阵;
- 对于落在球体范围内的任意点,用核函数,计算出该点的权重矩阵,用该矩阵对这个点的feature进行变换;
- 对于落在球体内的每个点,都用上一步的方法,得出一个新的feature,最后将feature累加起来,作为点
的feature。
可能是因为在3D空间下不好表达以上内容,论文中使用2D形式的核心点卷积来进行图示:
如上图所示,以第二个点为例,首先通过
2. 如何确定每个kernel point的位置?
所有的kernel point都在半径
- 球心作为一个kernel point的位置;
- 球心对其它点有一定的引力(attractive force)来吸引它们靠拢;
- 其它的kernel points之间有一定的斥力(repulsive force)来使它们相互远离。
- 这个由引力、斥力组成的系统稳定后,即可确定每个kernel point的位置。
具体过程,可以参考源码实现。按这种方式,得到的结果类似于:
3. Deformable Kernel Point Convolution定义
思想源于微软的《Deformable Convolutional Networks》:
对于一次卷积操作中涉及到的每个操作点,严格按照规则的矩形可能并不是最优的,所以在Deformable Convolution中,先计算出每个点相对于原始位置的偏移量,然后用偏移量修改位置后,再执行卷积。
论文使用相同的思路,实现了一个Deformable Kernel Point Convolution,大概思路是:按前面提到的引力、斥力的方法确定出来的所有kernel points的位置可能并不是最优的,因此,首先根据输入,计算出一个用来“优化”kernel points位置的偏移量,对每个kernel point的位置进行修改,然后再执行kernel point convolution。如下图所示:
如上图所示,经过修改后,kernel points的位置有了很大的变化。
如何计算出每个kernel point的偏移量?
首先明确两个名字:
- Rigid KPConv:kernel points位置不变,即没有使用deformable convolution的思路;
- Deformable KPConv:使用deformable convolution的思路,对kernel points的位置进行修改。
如上图所示,偏移量是通过一个Rigit KPConv计算出来的,计算过程前面有详细介绍,只是将Rigit KPConv计算出来的feature作为偏移量来用。例如,假设有
用数学公式来表达,其核函数、卷积分别为:
加了Deformable后是否有效果?
论文指出,直接引入Deformable,效果并不好,需要配合以下两个
含义:任何一个kernel point,与其最近的输入点的距离,不能太大。
其中,
4. 总结
论文核心在于核函数
与PointNet比较,PointNet中的某一层,所有点的feature的更新,使用相同的矩阵。而KPConv中,每个点根据其位置,计算出一个特别的矩阵来执行feature的更新。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)