PointASNL: 点云的Adaptive Sampling(CVPR2020)
点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
作者:不知道叫什么好 | 来源:知乎
https://zhuanlan.zhihu.com/p/139396088
本文仅做学术分享,如有侵权,请联系删除。
点云数据里面,一般会有一些噪点,理论上,这些噪点可能会对具体应用的性能产生影响。本文主要介绍CVPR 2020的一篇处理噪点的论文。文章主要对所有采样点的位置、feature进行调整,减弱噪点的影响,论文将这步称为:Adaptive Sampling(AS);并进一步使用Local-NonLocal(L-NL)来对feature进行增强。
论文地址:https://arxiv.org/pdf/2003.00492.pdf
代码地址:https://github.com/yanx27/PointASNL
1. 噪点
在学习点云的feature时,一般使用encoder + decoder的网络结构。在encoder的downsampling过程中,一般使用FPS采样算法来采样。
如上图左图所示,对于一个飞机点云,红圈、蓝圈、绿圈、黄五角星,均表示噪点。当使用FPS进行下采样后,黄色五角星所在的点被采中。直觉上,这个点如果不处理,会对网络性能有所影响。
针对这个问题,论文提出了一个Adaptive Sampling(AS)模块,来实现调整噪点的操作,从而降低噪点对网络性能的影响。
2. Adaptive Sampling(AS)模块
首先定义如下符号方便后续描述:
· :表示从某个层用FPS下采样后得到的点集,其中可能包含噪点。
· :表示下采样得到的点集的feature集合。
· :表示下采样得到的点集里面的某个点的坐标和feature。
AS模块首先从上一层的点集合中使用FPS下采样得到 、 。后续的操作流程如下:
2.1 用KNN找邻居点集
用KNN算法,给每个下采样得到的点找K个邻居点。假设点 的邻居点集合为: ,对应的邻居点的feature集合为: 。
2.2 Self-attention增强邻居点feature
主要思路是:对于点 的第 个邻居点,分别计算出它与 的其它邻居点的相关性,然后用softmax计算出一组权重,最后使用权重对 的所有邻居点的feature进行加权求和,得出点 的第 个邻居点的新的feature。直觉上,经过这步处理后,每个邻居点的feature会包含邻域范围内的所有点的一些信息。
具体操作流程如下:
·邻居点坐标normalization:所有邻居点的坐标,减去第一个邻居点的坐标,转成相对于第一个点的相对坐标。
·重新构建邻居点的feature:每个邻居点的相对坐标,与邻居点的feature,拼到一起,得到每个邻居点的新feature。
·用self-attention模式,分别计算出邻居点集的3个feature矩阵:query、key、value。
·用query和key矩阵相乘,并用softmax,得到邻居点之间的attention矩阵。对attention进行scale。
·用attention和value矩阵相乘,得到所有邻居点feature。
以上过程即为论文中的如下公式:
2.3 调整采样点
主要思路是:用增强后的邻居点的feature,通过网络学出以下两个信息:
·邻居点集的feature的每个channel的attention权重向量,然后分别在每个channel上,用对应channel上的attention权重向量,加权求和,得到采样点 调整后的feature。
·邻居点集的坐标的attention权重向量,然后用该attention权重向量,对所有邻居点的坐标加权求和,得到采样点 调整后的坐标。
具体操作流程如下:
·Self-attention后的feature,经过一个多层MLP网络,得出一个新的weight矩阵,该矩阵的维度是:【batch,point_number,neighbor_number,channel+1】。这里额外增加的一个channel是为了后面计算邻居点集的坐标的权重矩阵。
·在以上的neighbor_number维度上,用softmax,计算出邻居点集的每个channel、坐标的权重矩阵。
·用channel维度上的权重矩阵,对邻居点集的feature在每个channel上进行加权求和,得到点 调整后的feature。
·用坐标的权重矩阵,对邻居点集的坐标进行加权求和,得到点 调整后的坐标。
总结:Adaptive Sampling在邻域内,先用Self-Attention进行feature增强,然后用另一种attention在邻域内进行feature、坐标的加权求和,得出所有采样点的feature、坐标。论文认为,这样即可对采样点中包含的噪点进行处理。
3. Local-NonLocal(L-NL)模块
该模块通过使用局部、全局信息,进一步对采样所得点的feature进行增强。
3.1 Local
对于每个采样点,Local主要是在每个点的局部邻域范围内,对其邻居点的feature进行融合,计算出一个新的feature。这部分使用了PointConv的思想(连续空间下的卷积操作),将每个邻居点的相对坐标映射为一组卷积操作的系数矩阵,然后用每个邻居点的系数矩阵对其feature进行变换,最后用一个Aggregation操作,将邻居点的feature融合为得到中心点 的local feature。对应的公式为:
其中 是一个MLP网络,将邻居点相对坐标映射为卷积操作的系数矩阵。
(个人认为,这部分代码实现,与文章不符。欢迎读者讨论)
3.2 NonLocal
NonLocal本质上是使用Self-Attention,对每个采样所得点,在整个点云范围内进行feature融合,为每个采样点计算出一个包含全局信息的feature。流程图如下:
其中:
·Query Points:用FPS在前一层点云中采样,并用Adaptive Sampling调整后所得的点云feature;
·Key Points:前一层点云的feature。
3.3 feature融合
除了Local、NonLocal两个分支外,代码中其实还有一个skip connection的分支。对于每个采样所得点,该分支直接对采样点的邻居点的feature执行max_pool,最后通过一个1d convolution给每个采样点计算出来一个新的feature。
最后将local、nonlocal、skip-connection三个分支的feature加到一起,再用一个1d convolution对feature的channel进行变换,得到每个采样点的feature。
4. 网络结构
以segmentation为例:
·每个下采样操作,相当于FPS -> Adaptive Sampling -> Local-Nonlocal
·每个上采样操作,相当于Up-Sampling -> Local-Nonlocal
总体结果如下图所示:
5. 总结
读完文章、代码,会发现:
·本文的核心是Adaptive Sampling、Local-NonLocal
·Adaptive Sampling的核心是Self-Attention、Attention
·Local-NonLocal的核心是Self-Attention、PointConv
对Self-Attention、PointConv有疑惑的读者,请参考:
·Non-local Neural Networks (CVPR 2018)
文章地址:https://zhuanlan.zhihu.com/p/129925437
·PointConv: 3D点云卷积 (CVPR 2019)
文章地址:https://zhuanlan.zhihu.com/p/99863795
总体上,这篇文章演示了如何融合local、global范围内的feature,进行feature增强。比较特别的是,作者从“噪点“这个角度作为文章的出发点,如此一来,就有别于其它点云feature融合的文章了。
从代码的角度看,源码“融合“了多篇文章的代码:PointNet++, PointConv, KPConv, ... 如果之前看过相关源码,理解本文应该不会太难。
推荐阅读:
专辑|相机标定
专辑|3D点云
专辑|SLAM
专辑|深度学习与自动驾驶
专辑|结构光
专辑|事件相机
专辑|OpenCV学习
专辑|学习资源汇总
专辑|招聘与项目对接
专辑|读书笔记
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
http://www.taodudu.cc/news/show-155506.html
相关文章:
- 45.2mAP+155FPS! PP-YOLO来了, 精度速度双超YOLOv4
- 3D点云two-stage目标检测方法优化综述
- 基于三维向量对的乱序堆叠物体的位姿识别
- 项目需求|10~15万|自动上料系统—将物料通过机械手臂挂在挂钩上
- 使用基本几何图元在道路上实现准确高效的自定位
- ECCV2020 | Gen-LaneNet:百度Apollo提出两阶段的3D车道线检测算法,已开源
- 重磅直播|立体视觉之立体匹配理论与实践
- CVPR 2020 | 将深度学习算法应用于移动端最新研究汇总
- MSCKF理论推导与代码解析
- 工作能力强的人有哪些共同特征?
- MMDetection3D:新一代通用3D目标检测平台
- 立体匹配理论与实战
- 相机标定的基本原理与经验分享
- 基于深度学习的物体抓取位置估计
- 基于点云的三维物体表示与生成模型
- 收集了100+论文的最新综述来了!基于深度学习的图像深度重建
- 大盘点|YOLO 系目标检测算法总览
- 实例分割综述(单阶段/两阶段/实时分割算法汇总)
- Top1的3D目标检测方法(已开源)
- ArXiv 2020 | 抖音“变身漫画”滤镜背后的技术,难道来自这篇论文?
- 第八期直播《立体视觉之立体匹配理论与实战》精彩回录
- Arxiv 论文提交流程——看这篇就够了
- 如何进行相机的绝对位置估计?
- ECCV2020 | 北京大学提出RGB-D语义分割新网络,多模态信息融合
- 重磅直播|中科慧眼崔峰博士详解深度相机原理及其应用
- 基于深度学习的视觉三维重建研究总结
- ECCV2020 | 即插即用,涨点明显!FPT:特征金字塔Transformer
- 据我所知,这是第一个完整实现运动分割、动态目标追踪等的「开源」动态SLAM系统!...
- 2D景观转3D风景大片,无惧复杂光线与遮挡,人类离「躺着旅行」的梦想又近了一步...
- 最新3D目标检测文章汇总(包含ECCV20和ACMMM20)
PointASNL: 点云的Adaptive Sampling(CVPR2020)相关推荐
- PRIN:Pointwise Rotation-Invariant Network with Adaptive Sampling and 3D Spherical Voxel Convolution
文章目录 3. 参考资料 3. 参考资料 [3D计算机视觉]PRIN--基于点云的旋转不变性网络 – 关注博主:小执着~
- CVPR2020:基于自适应采样的非局部神经网络鲁棒点云处理(PointASNL)
CVPR2020:基于自适应采样的非局部神经网络鲁棒点云处理(PointASNL) PointASNL: Robust Point Clouds Processing Using Nonlocal N ...
- CVPR2020 论文和代码合集
CVPR2020-Code CVPR 2020 论文开源项目合集,同时欢迎各位大佬提交issue,分享CVPR 2020开源项目 [推荐阅读] CVPR 2020 virtual ECCV 2020 ...
- CVPR2020论文和代码
转自微信公众号 CVer,更多资源请加公众号 前言 之前Amusi整理了1467篇CVPR 2020所有论文PDF下载资源,以及270篇CVPR 2020代码开源论文项目,详见:270篇CVPR 20 ...
- 【点云系列】综述: Deep Learning for 3D Point Clouds: A Survey
文章目录 起因 题目 摘要 1 简介 2 背景 2.1 数据集 2.2 衡量指标 3 3D形状分类 3.1基于多视角的方法 3.2基于体素的方法 3.3 基于点的方法 3.3.1逐点MLP网络 3.3 ...
- 深度学习在点云分类中的研究综述————文献总结
根据知网的一篇文章写的总结,详见我的资源:深度学习在点云分类中的研究综述_王文曦.pdf 这篇文章详细介绍了点云语义分割的发展概况. 正文开始 点云的语义分割的发展概况,先上图: 基于深度学习的分类方 ...
- Deep Learning for 3D Point Clouds: A Survey - 3D点云的深度学习:一项调查 (IEEE TPAMI 2020)
Deep Learning for 3D Point Clouds: A Survey - 3D点云的深度学习:一项调查(IEEE TPAMI 2020) 摘要 1. 引言 2. 背景 2.1 数据集 ...
- TPAMI三维点云深度学习技术综述
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨单博 来源丨 笑傲算法江湖 点击进入->3D视觉工坊学习交流群 国防科大 IEEE TPA ...
- 一文搞懂PointNet全家桶——强势的点云处理神经网络
作者:黎国溥,3D视觉开发者社区签约作者,CSDN博客专家,华为云-云享专家 首发:公众号[3D视觉开发者社区] 前言 PointNet是由斯坦福大学的Charles R. Qi等人在<Poin ...
最新文章
- 【Windows 逆向】OD 调试器工具 ( 推荐汉化版的 OD 调试工具 | 吾爱破解专用版Ollydbg | 备选工具 )
- 分享一下@Override标签背后的小秘密---记录java的思行合一
- JavaScript 如果拥有多线程能力会怎样?
- python长度多少_用Python求最长子串长度快速版
- freebsd linux目录,FreeBSD和Linux如何互相访问文件系统
- MapReduce综合学习含Wordcount案例
- 不想帮人家写一辈子程序就要看的一本书
- 27、ArrayList和LinkedList的区别
- 打造 Microsoft Windows Server 2008 R2 SP1 支持的 Dell 桌面虚拟化解决方案
- Clojure 学习入门(7)- 连接mysql
- lr并发量和迭代的区别
- HTMLParser错误解决
- 如何用计算机表达无理数,利用泰勒级数计算无理数和以及其他任意无理数的近似值.doc...
- 关于MAC地址修改和扩展以太网
- 非常实用的,国内十大另类行业网址导航站
- 计算机分子模拟的意义包括,计算机分子模拟
- 快递e栈控制台版实现心得
- python练习题---矩阵求和
- CircuitJS 好玩实用电路仿真软件
- 数据库发展史2--数据仓库