论文笔记:PointSIFT
原文:PointSIFT: A SIFT-like Network Module for 3D Point Cloud Semantic Segmentation
PointSIFT
1、四个问题
- 要解决什么问题?
- 3D点云感知通常包含了三大任务:3D物体分类,3D目标检测,以及3D语义分割。
- 在三个大任务中,3D点云的语义分割相对更具挑战性,也是这篇论文所要解决的问题。
- 用了什么办法解决?
- 参考SIFT特征子,作者设计了一个PointSIFT模块,用来对三维点云在不同方向上的信息进行编码,并且也具有尺度不变性。
- 首先,8个重要方向的信息通过一个方向编码单元(orientation-encoding unit)来提取。
- 然后,通过堆叠多个尺度下的方向编码单元(orientation-encoding unit),以获得尺度不变性。
- 参考SIFT特征子,作者设计了一个PointSIFT模块,用来对三维点云在不同方向上的信息进行编码,并且也具有尺度不变性。
- 效果如何?
- 目前点云分割领域state-of-the-art的方法。
- 在ScanNet数据集上的测试准确率达到86%,而此前的PointNet则为73.9%、PointNet++为84.5%。
- 在S3DIS数据集上,对大多数类的点云分割效果都取得了最好的效果。
- 作者公开了代码,下次试试看再说。
- 还存在什么问题?
- 虽然文中说是参考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相关推荐
- ORB-SLAM3 论文笔记
ORB-SLAM3 论文笔记 这篇博客 ORB-SLAM3系统 相机模型的抽象(Camera Model) 重定位的问题 图片矫正的问题 视觉惯性SLAM的工作原理 相关公式 IMU初始化 跟踪和建图 ...
- 【论文笔记】 LSTM-BASED DEEP LEARNING MODELS FOR NONFACTOID ANSWER SELECTION
一.简介 这篇论文由IBM Watson发表在2016 ICLR,目前引用量92.这篇论文的研究主题是answer selection,作者在这篇论文基础上[Applying Deep Learnin ...
- 最新图神经网络论文笔记汇总(附pdf下载)
点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 [导读]近年来,图神经网络变得非常火热,每年顶会在该领域内都会出现大量的研究论文,本文为大家提 ...
- [论文笔记] 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 ...
- 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning
论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning 2017-06-06 21: ...
- 光流 速度_[论文笔记] FlowNet 光流估计
[论文笔记] FlowNet: Learning Optical Flow with Convolutional Networks 说在前面 个人心得: 1. CNN的光流估计主要是速度上快,之后的v ...
- 论文笔记 《Maxout Networks》 《Network In Network》
原文出处:http://zhangliliang.com/2014/09/22/paper-note-maxout-and-nin/ 论文笔记 <Maxout Networks> & ...
- 论文笔记: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 ...
- 论文笔记 A Spatial-Temporal Decomposition Based Deep Neural Network for TimeSeries Forecasting
0 abstract 空间时间序列预测问题出现在广泛的应用中,如环境和交通问题.由于存在特定的空间.短期和长期模式,以及维度的诅咒,这些问题具有挑战性. 在本文中,我们提出了一个用于大规模空间时间序列 ...
- 论文笔记:Autoregressive Tensor Factorizationfor Spatio-temporal Predictions
0 摘要 张量因子tensor factorization分解方法在时空数据分析领域很受欢迎,因为它们能够处理多种类型的时空数据,处理缺失值,并提供计算效率高的参数估计程序. 然而,现有的张量因子分解 ...
最新文章
- Google Maps地图投影全解析
- 赛玛共享按摩椅前端蓝色UI+分销返利+去除短信注册验证
- [转]解决xampp无法启动apache的问题
- ken沈oracle,甲骨文宣布推出Oracle商务软件
- R语言︱list用法、批量读取、写出数据时的用法
- ajaxSubmit()上传
- C++一个简单的弹窗程序
- 青出于蓝而胜于蓝——揭秘全新的 HWSQL
- 出入库单据小票移动打印,盘点机PDA连接蓝牙打印机打印单据小票
- NOIP2012 国王游戏(贪心)
- 表单验证:名称、电话号码、邮箱
- SpringMVC注解@valid与@validata,@null,@notblank,@NotEmpty
- 如何下载OpenJDK安装版本
- Android6.0通讯录权限问题
- 我想建立网站,网站搭建需要哪些大体步骤?
- mysql 创建 unique key_MySQL-创建表时一起使用时,“ PRIMARY KEY”,“ UNIQUE KEY”和“ KEY”的含义...
- 简单阅读golang的net/http包和Negroni的源码
- 有了vb.net,C#就是个鸡肋
- flask使用Blueprint
- 如果不懂这些搜索技巧,就别说你懂 GitHub
热门文章
- linux系统中ntp服务监听端口是,Linux系统下测试UDP端口是否正常监听的办法
- 【自动驾驶】33.【图像坐标系】 到 【像素坐标系】 的度量单位变换、【英寸】、【感光芯片】
- 【Tools】CMAKE的使用
- Java中六大时间类的使用和区别
- 关于分布式事务、两阶段提交协议、三阶提交协议
- Java功底之static、final、this、super
- elasticsearch 第一篇(入门篇)
- 服务幂等以及常用实现方式
- Eclipse连接MySQL数据库(傻瓜篇)
- YARN/MRv2 Resource Manager深入剖析—RM总体架构