原文:PointSIFT: A SIFT-like Network Module for 3D Point Cloud Semantic Segmentation

PointSIFT

1、四个问题

  1. 要解决什么问题?

    • 3D点云感知通常包含了三大任务:3D物体分类,3D目标检测,以及3D语义分割。
    • 在三个大任务中,3D点云的语义分割相对更具挑战性,也是这篇论文所要解决的问题。
  2. 用了什么办法解决?
    • 参考SIFT特征子,作者设计了一个PointSIFT模块,用来对三维点云在不同方向上的信息进行编码,并且也具有尺度不变性。

      • 首先,8个重要方向的信息通过一个方向编码单元(orientation-encoding unit)来提取。
      • 然后,通过堆叠多个尺度下的方向编码单元(orientation-encoding unit),以获得尺度不变性。
  3. 效果如何?
    • 目前点云分割领域state-of-the-art的方法。
    • 在ScanNet数据集上的测试准确率达到86%,而此前的PointNet则为73.9%、PointNet++为84.5%。
    • 在S3DIS数据集上,对大多数类的点云分割效果都取得了最好的效果。
    • 作者公开了代码,下次试试看再说。
  4. 还存在什么问题?
    • 虽然文中说是参考SIFT设计了PointSIFT,但更多的还是依靠PointNet++的结构设计,只是仿照SIFT增加了尺度不变性,与此同时也会让计算量增加。尽管精度提高了很多,但是效率和速度还是硬伤。
    • 采样不均衡性,随机选取中心点无法保证一定能将领域覆盖所有的点,如下图所示。由于点云的无序性和稀疏性,很大程度上会限制网络的效果。

2、论文概述

2.1、介绍

  • SIFT是最成功的特征描述子之一,主要是因为它考虑了图像表示(shape representation)的两个基本特征:方向编码(orientation-encoding)和尺度感知(scale-awareness)。

    • 尺度感知(scale-awareness)意思是,SIFT能自动选择目标图像最合适提取特征的尺寸。
    • 方向编码(orientation-encoding)意味着,能够感知不同方向下的图案信息。
  • PointSIFT模块就是基于上面两个性质设计的。下面是基本思路:
    • 与SIFT不同的是,PointSIFT不是人工设计(handcrafted)的,而是一个神经网络模块,在训练过程中自动优化。
    • PointSIFT的基本模块是方向编码单元(orientation-encoding unit),在8个方向上提取特征。
    • 通过堆叠多个方向编码单元(orientation-encoding unit,简写为OE),在不同层上的OE单元可以感知到不同尺度的信息,即具有了尺度感知(scale-awareness)的能力。
    • 最后通过shortcut连接,将这些OE单元连接到一起,再让神经网络自行选择(训练后)合适的尺度。

2.2、PointSIFT模块

2.2.1、基本模块概述

  • 输入为n×dn \times dn×d,即点云;输出也为n×dn \times dn×d,是提取到的特征。
  • PointSIFT模块采用了多个不同的方向编码卷积层堆叠而成,不同层都表示了不同的尺度,最后的一层将前面所有方向编码卷积层的输出通过shortcuts连在一起,再从中提取出最终的尺度不变的特征信息。

2.2.2、方向编码卷积(orientation-encoding convolution)

  • 给定点p0p_0p0​,其对应的特征为f0f_0f0​。以p0p_0p0​为中心点的3D空间中,可以根据8个方向分为8个子空间(octant)。从其中分别寻找p0p_0p0​的k个最近邻点,如果在某个子空间(octant)内,搜索半径rrr内没有找到点,就将这个子空间的特征认为等于f0f_0f0​。如图a所示。
  • 为了使卷积操作能感知方向上的信息,分别在X、Y、Z轴上进行三阶段的卷积。
  • 对搜索到的k近邻点的特征编码,M∈R2×2×2×dM \in R^{2 \times 2 \times 2 \times d}M∈R2×2×2×d,前三个维度分别表示点在8个子空间上的编码。比如,(1,1,1,)(1, 1, 1, )(1,1,1,)表示top-front-right的octant。
  • 如图c所示,卷积操作如下:

  • Ax,Ay,AzA_x, A_y, A_zAx​,Ay​,Az​为待优化的卷积权值;Convx(Convy,Convz)Conv_x(Conv_y, Conv_z)Convx​(Convy​,Convz​)分别表示在X(Y,Z)X(Y, Z)X(Y,Z)轴上的卷积操作;g(⋅)g(\cdot)g(⋅)表示ReLU(BatchNorm(⋅))ReLU(BatchNorm( \cdot ))ReLU(BatchNorm(⋅))。
  • 在三次卷积后,每个点都被转换为了一个ddd维向量,这个向量就代表着点p0p_0p0​附近k领域内的形状信息。
  • 注意,经过方向编码(orientation-encoding)后再利用卷积提取特征,现在的输出点集的ddd维表示的已经不是原始的坐标等等的信息了,实质上已经转换为了另一个分布了,即从这个领域内所有点的信息中提取的特征点。虽然PointSIFT的输入输出都是N×dN \times dN×d。

2.2.3、讨论一个特殊情况

  • 像PointNet++,搜索最近邻点时使用的是球形搜索算法(ball query searching)。
  • 一方面,在方向编码卷积(orientation-encoding convolution)中,只需要在每个方向上搜索一个更小的领域,效率比球形搜索算法更高。
  • 另一方面,如上图所示,K近邻的k如果较小,很容易集中在一个很小的范围。实际上,这不利于表示中心点所在区域的整体特征,换句话说,只能提取到红点那块区域的信息。使用方向编码卷积一定程度上,可以避免这个问题,可以至少兼顾8个方向的特征信息。当然方向越多越好,但与此同时计算复杂度也会增加。

2.2.4、尺度感知结构(scale-aware architecture)

  • 尺度感知这部分感觉更好理解,类别于CNN的感受野随着卷积层的深入逐渐扩大。
  • 对于某一个方向编码卷积单元来说,会对8个方向领域内的点进行特征提取,可以将其感受野认为是8个方向下的k领域,每个领域对应一个特征点。随着堆叠,每层的每个点又会对应上一层8个方向领域的特征点。。。
  • 依此类推,可以算出,理想情况下(每次卷积时每个方向上都有点),堆叠iii次,感受野为8i8^i8i个点。
  • 不难理解,每层都有不同的感受野,自然可以像SIFT那样提取不同尺度的信息了。
  • 最后将这些层都通过shortcut拼接在一起,接上pointwise卷积(1×11 \times 11×1卷积),让网络随着训练自行选择合适的尺度即可。

2.2.5、网络整体结构

  • 网络分为了两部分:编码器和解码器。
  • 输入为n=8192n=8192n=8192个点的点云,如果只考虑3D点的X、Y、Z坐标,那么d=3d=3d=3;如果另外加入了RGB信息,那么d=6d=6d=6。
  • 参考PointNet++的设计,第一层先将输入点云的维度转换为64维。
  • 同样参考自PointNet++,SA(set abstraction)和FP(feature propagation)都嵌入在网络中,主要任务分别是降采样和上采样。
  • 最后将解码器的输出接到全连接层,用于预测各个类的概率。

2.3、实验结果

  • 比较懒,直接贴结果图了。

论文笔记:PointSIFT相关推荐

  1. ORB-SLAM3 论文笔记

    ORB-SLAM3 论文笔记 这篇博客 ORB-SLAM3系统 相机模型的抽象(Camera Model) 重定位的问题 图片矫正的问题 视觉惯性SLAM的工作原理 相关公式 IMU初始化 跟踪和建图 ...

  2. 【论文笔记】 LSTM-BASED DEEP LEARNING MODELS FOR NONFACTOID ANSWER SELECTION

    一.简介 这篇论文由IBM Watson发表在2016 ICLR,目前引用量92.这篇论文的研究主题是answer selection,作者在这篇论文基础上[Applying Deep Learnin ...

  3. 最新图神经网络论文笔记汇总(附pdf下载)

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 [导读]近年来,图神经网络变得非常火热,每年顶会在该领域内都会出现大量的研究论文,本文为大家提 ...

  4. [论文笔记] Fast Quality Driven Selection of Composite Web Services (ECOWS, 2006)

    Time: 4.0 hours Jae-Ho Jang, Dong-Hoon Shin, Kyong-Ho Lee, "Fast Quality Driven Selection of Co ...

  5. 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning

    论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning  2017-06-06  21: ...

  6. 光流 速度_[论文笔记] FlowNet 光流估计

    [论文笔记] FlowNet: Learning Optical Flow with Convolutional Networks 说在前面 个人心得: 1. CNN的光流估计主要是速度上快,之后的v ...

  7. 论文笔记 《Maxout Networks》 《Network In Network》

    原文出处:http://zhangliliang.com/2014/09/22/paper-note-maxout-and-nin/ 论文笔记 <Maxout Networks> & ...

  8. 论文笔记:HKMF-T: Recover From Blackouts in TaggedTime Series With Hankel Matrix Factorization

    论文笔记:Hankel Matrix Factorization for Tagged Time Series to Recover Missing Values during Blackouts_U ...

  9. 论文笔记 A Spatial-Temporal Decomposition Based Deep Neural Network for TimeSeries Forecasting

    0 abstract 空间时间序列预测问题出现在广泛的应用中,如环境和交通问题.由于存在特定的空间.短期和长期模式,以及维度的诅咒,这些问题具有挑战性. 在本文中,我们提出了一个用于大规模空间时间序列 ...

  10. 论文笔记:Autoregressive Tensor Factorizationfor Spatio-temporal Predictions

    0 摘要 张量因子tensor factorization分解方法在时空数据分析领域很受欢迎,因为它们能够处理多种类型的时空数据,处理缺失值,并提供计算效率高的参数估计程序. 然而,现有的张量因子分解 ...

最新文章

  1. Google Maps地图投影全解析
  2. 赛玛共享按摩椅前端蓝色UI+分销返利+去除短信注册验证
  3. [转]解决xampp无法启动apache的问题
  4. ken沈oracle,甲骨文宣布推出Oracle商务软件
  5. R语言︱list用法、批量读取、写出数据时的用法
  6. ajaxSubmit()上传
  7. C++一个简单的弹窗程序
  8. 青出于蓝而胜于蓝——揭秘全新的 HWSQL
  9. 出入库单据小票移动打印,盘点机PDA连接蓝牙打印机打印单据小票
  10. NOIP2012 国王游戏(贪心)
  11. 表单验证:名称、电话号码、邮箱
  12. SpringMVC注解@valid与@validata,@null,@notblank,@NotEmpty
  13. 如何下载OpenJDK安装版本
  14. Android6.0通讯录权限问题
  15. 我想建立网站,网站搭建需要哪些大体步骤?
  16. mysql 创建 unique key_MySQL-创建表时一起使用时,“ PRIMARY KEY”,“ UNIQUE KEY”和“ KEY”的含义...
  17. 简单阅读golang的net/http包和Negroni的源码
  18. 有了vb.net,C#就是个鸡肋
  19. flask使用Blueprint
  20. 如果不懂这些搜索技巧,就别说你懂 GitHub

热门文章

  1. linux系统中ntp服务监听端口是,Linux系统下测试UDP端口是否正常监听的办法
  2. 【自动驾驶】33.【图像坐标系】 到 【像素坐标系】 的度量单位变换、【英寸】、【感光芯片】
  3. 【Tools】CMAKE的使用
  4. Java中六大时间类的使用和区别
  5. 关于分布式事务、两阶段提交协议、三阶提交协议
  6. Java功底之static、final、this、super
  7. elasticsearch 第一篇(入门篇)
  8. 服务幂等以及常用实现方式
  9. Eclipse连接MySQL数据库(傻瓜篇)
  10. YARN/MRv2 Resource Manager深入剖析—RM总体架构