这篇论文先举例子解释了为什么卷积无法直接应用在点云数据上。

如图1, 传统的卷积是作用在2维图像数据上。图像中每个像素的顺序是固定的,也就是说数据是结构化存储的。直接使用conv2d就能从这种潜在的空间结构中获取信息。

而点云数据是点集,如果直接使用卷积会出现图中234多种情况

若直接使用卷积,则f2与f3的计算结果是相等的,但是从图中可知,23显示不同,这说明卷积无法获得点的空间信息

而f3与f4的计算结果不等,但是图3与图4是相同的点集,必须得到相同的计算结果才合理,这说明卷积无法适应点集的N!种排列。

在其他论文里,为了适应点云数据的这两种的特点采取的方式有体素化、3DCNN及PointNet提的对称操作(symmetric,这个翻译是我自己译的)
版权声明:本文为CSDN博主「Link2Link」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_15602569/article/details/79560614


卷积神经网络(Conv)能够很好利用原始数据的在空间上的局部相关性(Spatially-local correlation),这也正是卷积神经网络在各种分割或者分类任务中取得成功的关键。正是如此,作者设想是否能效仿卷积神经网络来很好的利用点云(Point Cloud)的空间上的局部相关性,这将在点云分割和分类上取得很大的成功。所以这篇文章的重点就在于怎么利用这种相关性。
版权声明:本文为CSDN博主「JMU-HSF」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42956785/article/details/86586513


首先,根据采样得到的中心点,将全局坐标变为局部坐标,相当于分区。(点的数量如何确定?)

o 利用MLP将每个点变换到高维空间(一维卷积),得到F-sigma

o Concat特征F(输入的每个点的附加特征,比如color或者normal)和F-sigma,得到新的特征F*

o 对每个局部区域中的点使用MLP,得到变换矩阵X。这里可以注意一下,得到变换矩阵X的过程,输入是P'(一组坐标点),输出是变换矩阵X。文中的消除实验表明,X变换的确是有效果的

o 对特征F*使用X进行变换后,在进行传统的卷积(1维)。作者是希望通过X变换,把特征F*变成空间相关,也就是希望矩阵中相邻的在空间中也相邻,这样就可以像图像一样卷积了。

最后的Conv是一维卷积。可以看到X-Conv中所用的都还是一维卷积,不管是MLP还是Conv,作者在论文的脚注部分也提到了,代码中也可以确认这一点。所以,作者用CNN做类比还是不太合适,唯一的共同点是尺寸的点的数量是由多变少,CNN中图像尺寸也是由大到小
o 一个区域的点是怎么变成一个中心点的特征的?在PointNet++中,作者是对每一个局部区域进行Maxpool得到一个一维的向量作为中心点的特征,在pointCNN中并没有使用maxpool。在本文中,最后一步使用了(1,K)的卷积核进行卷积,对每个区域中不同点的特征进行了融合,而在pointnet中,这一步是通过每个点对应维数的最大值,个人觉得,这是两者之间最大的不同,可能也是导致结果差别的主要原因,但这只是猜测,后续还需要进行实验验证。在这一一步中,为了减少参数量,作者使用了深度可分离卷积,

作者:摸鱼家
链接:https://zhuanlan.zhihu.com/p/89752154
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


https://blog.csdn.net/qq_33278989/article/details/80047252

pointcnn的更多相关文章

  1. PointCNN 论文翻译解析

    1. 前言 卷积神经网络在二维图像的应用已经较为成熟了,但 CNN 在三维空间上,尤其是点云这种无序集的应用现在研究得尤其少.山东大学近日公布的一项研究提出的 PointCNN 可以让 CNN 在点云 ...

  2. 论文笔记:(NIPS2018)PointCNN: Convolution On X-Transformed Points

    目录 摘要 一.2D卷积应用在点云上存在的问题 二.解决的方法 2.1 idea 2.2 X-conv算子 2.3 分层卷积 三.实验 3.1分类和分割 3.2消融实验.可视化和模型复杂度 总结 仍存 ...

  3. 3D点云的深度学习

    使用卷积神经网络(CNN)架构的深度学习(DL)现在是解决图像分类任务的标准解决方法.但是将此用于处理3D数据时,问题变得更加复杂.首先,可以使用各种结构来表示3D数据,所述结构包括: 1  体素网格 ...

  4. 转载:点云上实时三维目标检测的欧拉区域方案 ----Complex-YOLO

    感觉是机器翻译,好多地方不通顺,凑合看看 原文名称:Complex-YOLO: An Euler-Region-Proposal for  Real-time 3D Object Detection ...

  5. CVPR2020:4D点云语义分割网络(SpSequenceNet)

    CVPR2020:4D点云语义分割网络(SpSequenceNet) SpSequenceNet: Semantic Segmentation Network on 4D Point Clouds 论 ...

  6. CVPR2020:基于自适应采样的非局部神经网络鲁棒点云处理(PointASNL)

    CVPR2020:基于自适应采样的非局部神经网络鲁棒点云处理(PointASNL) PointASNL: Robust Point Clouds Processing Using Nonlocal N ...

  7. CVPR2020:三维点云无监督表示学习的全局局部双向推理

    CVPR2020:三维点云无监督表示学习的全局局部双向推理 Global-Local Bidirectional Reasoning for Unsupervised Representation L ...

  8. 论文笔记:(2021CVPR)PAConv: Position Adaptive Convolution with Dynamic Kernel Assembling on Point Clouds

    目录 摘要 1.引言 2.相关工作 将点云映射到常规二维或三维栅格(体素) 基于MLPs的点表示学习 基于点卷积的点表示学习 动态卷积和条件卷积 3.方法 3.1 回顾 3.2 动态内核组装 Weig ...

  9. 论文笔记:(2019)GAPNet: Graph Attention based Point Neural Network for Exploiting Local Feature of Point Cloud

    目录 摘要 一.引言 二.相关工作 基于体素网格的特征学习 直接从非结构化点云中学习特征 从多视图模型中学习特征 几何深度学习的学习特征 三.GAPNet架构 3.1 GAPLayer 局部结构表示 ...

随机推荐

  1. Less(2)

    1.先判断注入类型 (1)首先看到要求,要求传一个ID参数,并且要求是数字型的:?id=1 (2)输入?id=1' and 1=1 出现错误 (3)输入 ?id=1 and 1=1 页面显示正常 (4 ...

  2. AHOI 2009 维护序列

    洛谷 P2023 [AHOI2009]维护序列 洛谷传送门 题目描述 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,-,aN .有如下三种操作形式 ...

  3. Codeforces Round #594 (Div. 1)

    Preface 这场CF真是细节多的爆炸,B,C,F都是大细节题,每道题都写了好久的说 CSP前的打的最后一场比赛了吧,瞬间凉意满满 希望CSP可以狗住冬令营啊(再狗不住真没了) A. Ivan th ...

  4. __doc__

    目录 一.__doc__ 一.__doc__ 返回类的注释信息 class Foo: '我是描述信息' pass print(Foo.__doc__) 我是描述信息 该属性无法被继承 class Fo ...

  5. es6一句话拾遗

    Symbol最大的作用就是用于消除魔术字符串: Set跟数组的最大区别,就是Set的成员都是唯一的,没有重复:(方法:add(value),has,delete,clear) Map跟对象的最大区别, ...

  6. 1+x 证书 Web 前端开发中级理论考试(试卷 6 )

    1+x 证书 Web 前端开发中级理论考试(试卷 6 ) 官方QQ群 1+x 证书 web 前端开发初级对应课程分析 http://blog.zh66.club/index.php/archives/ ...

  7. 【2016NOI十连赛2-2】黑暗

    [2016NOI十连赛2-2]黑暗 题目大意:定义一个无向图的权值为连通块个数的\(m\)次方.求\(n\)个点的所有无向图的权值和.多次询问. 数据范围:\(T\leq 1000,n\leq 300 ...

  8. 一个有用的排序函数,array_multisort(),下面的一个用法是根据二维数组里的一个字段值的大小,对该二维数组进行重新排序

    从二维数组$cashes中取出一列 'store_id'(二维数组中的每个一维数组都有的字段),按照这个的大小排序,对二维数组$caches里面的一维数组进行重新排序 实际应用如下 想让相同部门的排在 ...

  9. spring cloud 项目创建过程

    在使用spring cloud 项目创建微服务项目时,遇到过很多坑,现在我将整理如下: 条件:Idea 开发工具 maven 项目 1. 创建一个空的mvn项目. 2. 创建完了就添加Module,首 ...

  10. Python爬取猪肉价格网并获取Json数据

    场景 猪肉价格网站: http://zhujia.zhuwang.cc/ 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获 ...