点击上方“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)相关推荐

  1. PRIN:Pointwise Rotation-Invariant Network with Adaptive Sampling and 3D Spherical Voxel Convolution

    文章目录 3. 参考资料 3. 参考资料 [3D计算机视觉]PRIN--基于点云的旋转不变性网络 – 关注博主:小执着~

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

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

  3. CVPR2020 论文和代码合集

    CVPR2020-Code CVPR 2020 论文开源项目合集,同时欢迎各位大佬提交issue,分享CVPR 2020开源项目 [推荐阅读] CVPR 2020 virtual ECCV 2020 ...

  4. CVPR2020论文和代码

    转自微信公众号 CVer,更多资源请加公众号 前言 之前Amusi整理了1467篇CVPR 2020所有论文PDF下载资源,以及270篇CVPR 2020代码开源论文项目,详见:270篇CVPR 20 ...

  5. 【点云系列】综述: 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 ...

  6. 深度学习在点云分类中的研究综述————文献总结

    根据知网的一篇文章写的总结,详见我的资源:深度学习在点云分类中的研究综述_王文曦.pdf 这篇文章详细介绍了点云语义分割的发展概况. 正文开始 点云的语义分割的发展概况,先上图: 基于深度学习的分类方 ...

  7. 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 数据集 ...

  8. TPAMI三维点云深度学习技术综述

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨单博 来源丨 笑傲算法江湖 点击进入->3D视觉工坊学习交流群 国防科大 IEEE TPA ...

  9. 一文搞懂PointNet全家桶——强势的点云处理神经网络

    作者:黎国溥,3D视觉开发者社区签约作者,CSDN博客专家,华为云-云享专家 首发:公众号[3D视觉开发者社区] 前言 PointNet是由斯坦福大学的Charles R. Qi等人在<Poin ...

最新文章

  1. 【Windows 逆向】OD 调试器工具 ( 推荐汉化版的 OD 调试工具 | 吾爱破解专用版Ollydbg | 备选工具 )
  2. 分享一下@Override标签背后的小秘密---记录java的思行合一
  3. JavaScript 如果拥有多线程能力会怎样?
  4. python长度多少_用Python求最长子串长度快速版
  5. freebsd linux目录,FreeBSD和Linux如何互相访问文件系统
  6. MapReduce综合学习含Wordcount案例
  7. 不想帮人家写一辈子程序就要看的一本书
  8. 27、ArrayList和LinkedList的区别
  9. 打造 Microsoft Windows Server 2008 R2 SP1 支持的 Dell 桌面虚拟化解决方案
  10. Clojure 学习入门(7)- 连接mysql
  11. lr并发量和迭代的区别
  12. HTMLParser错误解决
  13. 如何用计算机表达无理数,利用泰勒级数计算无理数和以及其他任意无理数的近似值.doc...
  14. 关于MAC地址修改和扩展以太网
  15. 非常实用的,国内十大另类行业网址导航站
  16. 计算机分子模拟的意义包括,计算机分子模拟
  17. 快递e栈控制台版实现心得
  18. python练习题---矩阵求和
  19. CircuitJS 好玩实用电路仿真软件
  20. 数据库发展史2--数据仓库

热门文章

  1. 模板模式(TemplateMethod)和策略(StrategyMethod)模式
  2. 有无符号的整数、二进制
  3. POJ-2513 Colored Sticks 字典树,欧拉回路
  4. ubuntu10.10---用Apache+mod_wsgi部署python程序
  5. 发现一款新一代项目管理软件
  6. 实战 Spring Cloud Gateway 之限流篇
  7. 360展示广告智能化演进
  8. 滴滴ElasticSearch平台跨版本升级以及平台重构之路
  9. 惊!史上最全的select加锁分析(Mysql)
  10. 军工企业敏捷项目管理