PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

  • 1. 背景信息
  • 2.方法
    • 2.1 回顾PointNet
    • 2.2 层级点集特征学习
    • 2.3 在非均匀点采样密度下的鲁棒特征学习
    • 2.4 点云分割中的点特征传播
  • 3. 读后感

1. 背景信息

  1. 输入数据:原始点云
  2. PointNet++ 是PointNet的改进版本, PointNet中实现点云排序不变性是通过提取global feature完成的,显然,这对于局部信息没有好的提取能力。 PointNet++通过利用PointNet层级嵌套,实现了提取local feature的能力
    3. 亮点:
    (1)利用递归PointNet构建层级结构,在度量空间内实现了对点云细粒度pattern的识别,提高了网络对复杂场景的可概括性。
    (2)受限于传感器能力,实际获取的点云都是采样密度不均匀的,本文作者提出了两种新颖的方法处理这个问题,使得网络能够自适应地学习局部区域应该capture的scale(适应不同的采样密度)。这两种新颖方法是Multi-scale grouping(MSG)和Multi-resolution grouping(MRG).

2.方法


获取的点云不同区域稀疏性有差别。

2.1 回顾PointNet

2.2 层级点集特征学习

  1. 层级结构由多个集合抽象层(set abstraction levels)构建, 每一个抽象层都处理一个点集,抽象特征,然后产生一个具有更少元素的新的集合。
  2. 一个set abstraction level处理一个N∗(d+C)N*(d+C)N∗(d+C)的矩阵,其中N是点的数量,d是指d维坐标,C是指C维点特征。输出一个N′∗(d+C′)N'*(d+C')N′∗(d+C′)的矩阵,其中N′N'N′是下采样之后的点数,d是指d维坐标,C′C'C′是指C′C'C′维点特征.
  3. 每一个set abstraction level都由三个关键层组成:(1)Sampling layer, (2) Grouping layer, (3) PointNet layer
    (1)Sampling layer
    给定输入点集:

利用迭代FPS选择一个子点集:

具体的,FPS逻辑如下:
一开始,找个seed点(一般是质心)放在已经选中的点集中,确定要选的点数K,然后每一轮,都执行如下三步选择出一个点,直到已经选中的点集中数量=K
1)对于任意一个剩余点,计算该点到已经选中的点集中所有点的距离
2)取最小值,作为该点到已经选中点集的距离
3)计算出每个剩余点到当前已经选中的点集的距离后,取距离最大的那个点。

(2) grouping layer
输入到该层的是一个N∗(d+C)N*(d+C)N∗(d+C)的点集和一个N′∗dN'*dN′∗d的质心集,该层输出一个N′∗K∗(d+C)N'*K*(d+C)N′∗K∗(d+C)的点集,其中K是质心点的邻居个数,K是随着group自适应变化的,但是作者也说了,不用担心,在下一层pointNet中这些变化的K都会被转换为一个固定长度的local region feature vector.
grouping layer有两种查询方式一种是半径球查询(r固定)上限点数是K,作者建议采用这种方法,因为这更能趋向于局部特征,更具有通用性。另一种是KNN查询
实际上,为了保证半径球查询能够自适应点云采样密度,在下一小节中,会展开作者提供的两种策略:MSG和MRG
(3)PointNet layer
输入到该层的是N′∗K∗(d+C)N'*K*(d+C)N′∗K∗(d+C)的矩阵,代表N′N'N′个local点区域。输出数据是N′∗(d+C′)N'*(d+C')N′∗(d+C′)矩阵,其中C′C'C′代表PointNet提取出来的C′C'C′维点特征。
Note: 在作用PointNet layer之前对每个local区域中的点都做了相对坐标变换:每个group中的点都相对质心做变换,转换为相对质心的相对坐标,这样可以获得局部点之间的关系,更有利于学习。

其中i表示K个local region中的第i个,j表示d维坐标中的第j维,x(j)_hat表示质心点。

2.3 在非均匀点采样密度下的鲁棒特征学习


当输入采样密度变化时,网络会学习从不同尺度的local region中自适应地结合特征。每一个abstraction level 提取多个scale的local patterns并且根据局部点密度智能地结合他们。
有两种类型地自适应不同尺度的特征结合方法:MSG和MRG
1. Multi-scale grouping (MSG)
思路很朴素,就是取不同稀疏度生成不同scale的region,计算他们的特征然后把他们的特征concat起来。
具体地,作者采用对输入点云进行不同dropout ratio的随机dropout来实现,dropout ratio在[0,p]之间,为了不对dropout太过分产生没有意义的空点集,p被设置为0.95. 作者解释dropout ratio可以实现点云具有变化的稀疏性,随机dropout实现了点云稀疏性变化的均匀性。
Note:这里我一开始根据Figure 3(a)理解成了,取不同球半径生成不同scale的region,根据作者的dropout描述,这样理解是不对的。

2. Multi-resolution grouping (MRG)
上面的MSG方法的计算量很大。作者提出MRG作为替代方法,在后面的实验结果中,发现MSG比MRG效果要好一些,但是时间成本很高。
在Figure 3(b)中,在第i个层级LiL_{i}Li​中的region feature是由两个vectors concatenate而来的, 左边的vector是通过一个set abstraction level从低一级的Li−1L_{i-1}Li−1​的子区域中提取出来的,右边的vector是利用single PointNet直接处理在local region中的所有原始点而得来的。

如果local region density很低,那么left权重应该被设置一些,right权重应该被设置的一些。
如果local region density很高,那么left权重应该被设置一些,right权重应该被设置的一些。
这些都是由网络来学习的,满足自适应性。

2.4 点云分割中的点特征传播

在语义分割中,要求输入点的数量与输出点的数量相等。而set abstraction level会实现点的数量降采样,为了解决这个问题,作者采用了基于距离的插值和skip link concation来解决这个问题。
如Figure 2右上角所示,前一层的(N2,d+C2)(N_{2},d+C_{2})(N2​,d+C2​)通过
1.插值,变成了(N1,d+C2)(N_{1},d+C_{2})(N1​,d+C2​)
2.skip link concatenation,变成了(N1,d+C2+C1)(N_{1},d+C_{2}+C{1})(N1​,d+C2​+C1)
3.unit pointnet(FC+ReLU), 进行简单的特征融合,变成了(N1,d+C3)(N_{1},d+C_{3})(N1​,d+C3​)
直到生成最后的(N,k)(N,k)(N,k),其中k表示语义分割的标签。

插值过程:

插值公式:

这里一般设置成p=2,k=3(三点插值法)

实验和结果部分略

3. 读后感

1. PointNet++ 通过层级结构具有了强大的对点云细节捕获的能力,根据作者描述,这是受CNN层级结构的启发。 一个好的idea从一个领域迁移到另一个领域,然后work的很好,就是普通意义的创新,而这需要博闻强识+灵活的思维。

2. 为了解决点云中稀疏性不同的问题,作者提出MSG和MRG来解决它。MSG的思想很朴素,用dropout对input的点云生成不同稀疏度的点云,分别提取特征进行特征向量串联。MRG的多分辨率,在我看来是比较粗糙的,作者只提取了Li−1L_{i-1}Li−1​层和raw点云的特征进行串联,可能是更多的考虑了速度的问题吧。

4. 不同的度量方法用在不同的数据上效果有差异,在刚性物体上,利用欧式距离度量效果就会很好,在非刚性物体(比如动物,一匹马)上,相应的利用测地距离度量效果会更好。如在3维人体姿态识别或者其他跟非刚性物体识别的任务中,应该考虑测地距离度量。

2020.10.20读 PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space相关推荐

  1. 点云网络的论文理解(四)-点云网络的优化 PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

    目录 0.Abstract 0.1逐句翻译 0.2总结 1.Introduction 1.1逐句翻译 1.2总结 2.Problem Statement 2.1翻译 2.2总结 3.Method 3. ...

  2. PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

    基本简介 论文下载地址:https://arxiv.org/pdf/1706.02413.pdf 代码开源地址:https://github.com/charlesq34/pointnet2 作者以及 ...

  3. PointNet++:Deep Hierarchical Feature Learning on Point Sets in a Metric Space

    在上一篇文章中,提及了3D点云分类与分割的开山鼻祖--PointNet:https://blog.csdn.net/Alkaid2000/article/details/127253473,但是这篇P ...

  4. 2020.10.20课堂笔记(java8新特性 lambda表达式)

    一.什么是Lambda? 我们知道,对于一个Java变量,我们可以赋给其一个"值". 如果你想把"一块代码"赋给一个Java变量,应该怎么做呢? 比如,我想把右 ...

  5. 2020.10.03读 Robust 6D Object Pose Estimation by Learning RGB_D Features

    Robust 6D Object Pose Estimation by Learning RGB_D Features 1. 背景信息 2.方法 2.1旋转 2.2平移 3. 实验 3.1评估指标 3 ...

  6. 2020.10月做题记录

    PS:本博客仅选择了一些作者认为有必要记录的题目进行记录. week -1 2020.09.28-2020.10.4 军训+国庆放假-就这样又废了一周- 2020.10.04 回来第一天完全没有状态- ...

  7. lol服务器维护9月30,LOL云顶之弈2020年9月30日更新结束时间一览 10.20版本上线

    LOL云顶之弈2020年9月30日的更新内容介绍,今天小编给大家带来的就是云顶之弈10.20版本的更新结束时间一览,希望对大家有所帮助. LOL将在9月30日凌晨3点开始全区停机维护(请注意:2点将关 ...

  8. [LiteratureReview]PointNet Deep Learning on Point Sets for 3D Classification and Segmentation

    [LiteratureReview]PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation 出处:20 ...

  9. 点云网络的论文理解(一)-点云网络的提出 PointNet : Deep Learning on Point Sets for 3D Classification and Segmentation

    1.摘要 1.1逐句翻译 Point cloud is an important type of geometric data structure. 点云是一种重要的数据结构. Due to its ...

  10. (十八:2020.10.10)MICCAI 2020 追踪之论文纲要(译)<上>

    讲在前面 暂时先更新PART I, 持续更新. 论文目录 PART I <Machine Learning Methodologies 机器学习方法> 论文 概要 1.Attention, ...

最新文章

  1. 这人说的有意思,哈 哈
  2. python randint什么分布_python随机数分布random测试
  3. AJAX 网页保留浏览器前进后退等功能
  4. 计算宝宝帐户收益(多重继承)_【067】遗漏因子、缺失数据与多重检验
  5. [Vue]鼠标悬停变色
  6. 3.cesium雨、雪、雾天气场景效果
  7. word中脚注和尾注的处理
  8. 2应用层 - P2P应用
  9. 激活win10专业版
  10. win10中 微软 输入法 简体字 与 繁体字 设定 切换
  11. 为什么OpenCV4 “pkg-config --modversion opencv”显示“ No package ‘opencv‘ found”?解决方法!
  12. (一) u-boot 基本介绍
  13. FSAA (FullSceneAnti-aliasing)全屏抗锯齿技术
  14. 微生物组学研究手段概览2——宏基因组和宏转录组
  15. 通信原理学习笔记3-2:数字通信系统概述(信源编码/压缩编码、信道编码FEC和交织、HARQ)
  16. Latex在论文中输出微米和cm-1
  17. 如何将文件由PDF转换为JPG图片
  18. 卫星图在线浏览地址大全
  19. 火鸟字幕合并器开源了,大家去参与开发和下载代码吧
  20. AI绘图工具--Midjourney使用指南

热门文章

  1. 手写MyBatis,纯手工打造开源框架(第三篇:运筹帷幄)
  2. Springboot 静态资源路径配置 实例介绍
  3. 【洞察】报复性消费并未到来,但户外广告持续向好
  4. 【技术贴】Realtek HD声卡下QQ语音话筒没声音解决办法
  5. 1.新建laravel项目
  6. mysql创建用户并授权语句_MySQL创建用户与授权
  7. python打开ie浏览器_python+selenium启动IE浏览器
  8. 比较JPG、PNG、GIF、BMP图片格式
  9. 程序员的自我进化:共享经济新模式——共享员工
  10. Algorithm:矩阵中“块”的个数