Modeling Local Geometric Structure of 3D Point Clouds using Geo-CNN

GeoCNN

1、四个问题

  1. 要解决什么问题?

    • 3D点云具有不规则的结构,不能输入普通的CNN中。因此,要提出可以直接将点云作为输入的CNN网络。
    • 许多研究对局部几何信息特征提取的关注太少,还要能对局部区域的点的几何结构进行建模。
  2. 用了什么方法解决?
    • 提出了一个通用的卷积操作:GeoConv,用来提取点及其局部领域的特征。
    • 点与点之间的局部几何关系是通过中心点与其领接点的边(特征)来表示的。
    • 首先,将边特征分解到三个正交坐标基上,根据边向量和正交基的夹角对提取的特征加权求和。
  3. 效果如何?
    • 在ModelNet40、KITTI上都取得了目前最好的效果。
  4. 还存在什么问题?
    • 每次GeoConv都需要重新计算所有点的K近邻点,不适合大规模点云处理的情形。

2、论文概述

2.1、简介

  • 目前RGBD相机以及激光雷达快速发展,3D点云可以更容易地获取到。
  • 点云是不规则的数据,无法直接用传统的2D CNN处理。
  • 一种直觉上的方法就是,将不规则点云转换为规则的3D网格,即体素化。这样便可以使用过类似CNN的操作。然而,体素化的方法不能取太大的分辨率,因为3D网格会占用过多的内存。
  • 另一种很重要的架构就是PointNet。通过一个对称函数聚合点的特征。而PointNet++则分层聚合局部区域的特征。但是这些方法仍然忽视了点的一些几何结构,因为这些方法都是将点独立开来作为全局的点集或者局部点集处理。
  • 最近一个对点的几何关系建模的尝试是EdgeConv,从每个点及其k近邻提取特征。但是,EdgeConv只对点之间的距离进行建模,而忽视了向量的方向,也会损失一部分几何信息。
  • 对几何信息建模的难点有以下两点:
    1. 首先,点之间的几何关系可能会被3D坐标的巨大方差掩盖,导致其难以直接从数据中学习得到。
    2. 其次,现在很多方法都将3D坐标投影到某个高维空间中,很有可能不再保留有这些点之前在原始欧式空间中所具有的几何信息。特别是,在网络的层数很深时,这种现象更为明显。
  • 为了解决上述问题,作者提出了GeoConv。

2.2、GeoConv

  • 假设CCC维点云有nnn个点,某个点ppp在第lll层的特征向量是Xp⃗l∈RCX_{\vec{p}}^{l} \in \mathbb{R}^CXp​l​∈RC。
  • 对于每个点ppp,给定半径rrr,可以构建以点ppp为中心的球形邻域N(p⃗)N(\vec{p})N(p​),其中N(p⃗)={q⃗∣∥p⃗−q⃗∥≤r}N(\vec{p}) = \{ \vec{q} | \|\vec{p}-\vec{q}\| \leq r \}N(p​)={q​∣∥p​−q​∥≤r}。
  • 则第l+1l+1l+1层的点p可以通过下式计算:
  • WcW_cWc​是用来提取中心点的特征的权值矩阵。g(p⃗,q⃗)g(\vec{p}, \vec{q})g(p​,q​)是建模了边特征的函数。
  • 得到特征后,不同的邻域点qqq和中心点ppp之间要根据距离d(p⃗,q⃗,r)d(\vec{p}, \vec{q}, r)d(p​,q​,r)加权:
  • d(p⃗,q⃗,r)d(\vec{p}, \vec{q}, r)d(p​,q​,r)有两个理想的性质:
    1. 随着∥p⃗−q⃗∥\| \vec{p} - \vec{q} \|∥p​−q​∥单调递减。
    2. 随着rrr的增大,这也意味着GeoConv的感受野逐渐加大,与中心点ppp距离相近的点之间的权重函数d(⋅)d(\cdot)d(⋅)的差异也会减小。
  • 接下来,最重要的部分就是GeoConv中的边特征(即公式中的g(p⃗,q⃗)g(\vec{p}, \vec{q})g(p​,q​))是如何定义的。
    • 一个最直接的方法就是直接使用MLP来计算每个边的激活值。然而这种方法容易过拟合,因为直接使用向量pq⃗\vec{pq}pq​表示的边的几何特征会有较大方差。
    • 另一个隐患就是,直接将特征映射到高维空间中,可能不再保留有原始的欧式几何结构信息。
  • 在3D欧式空间中,任何向量都可以表示为三个正交基(x⃗,y⃗,z⃗)(\vec{x}, \vec{y}, \vec{z})(x,y​,z)的投影,投影的模长可以表示在那个方向上的“能量”。
  • 因此,将边特征的提取分解为子三个正交基上进行,使用不同的权值矩阵Wb⃗W_{\vec{b}}Wb​来提取各个方向的边特征。最后再讲三个方向的特征重新聚合以维持欧式几何结构。
  • 实际中,只考虑6个正交基,如下:
  • 6个基会将坐标系分为8个象限。给定一个领域点qqq,首先确定它位于拿一个象限,随后将这个向量pq⃗\vec{pq}pq​分解到那个象限对应的三个基上,并计算与各个基之间的夹角。
  • 随后使用如下公式计算边的特征:
  • 其中Xq⃗lX_{\vec{q}}^lXq​l​是点qqq在第lll层的特征,Bq⃗B_{\vec{q}}Bq​​表示根据q⃗\vec{q}q​所在的象限的三个正交基的几何。在聚合特征时,以系数cos2(θpq⃗,b⃗)cos^2(\theta_{\vec{pq}, \vec{b}})cos2(θpq​,b​)为权值,保证了和为1。
  • 如下图所示,不断叠加GeoConv层,并同时增加近邻点的搜索半径rrr,可以逐步扩大感受野,类似常规的CNN。

  • 在多层的GeoConv层之后,使用全局最大池化来提取全局特征。而这个全局特征可以送入分类网络,或者分割网络,抑或是检测网络中,做后续处理。

2.3、多视角情况

  • 我们可以旋转3D点云,然后提取多视角的特征来进行数据增强。
  • 在3D空间中,任何旋转都可以分解为绕xyz轴的旋转。为简便起见,这里假设只存在绕z轴的旋转。
  • 对点集进行旋转来做数据增强,是一个很天真的合并多视角的特征的方法。有时,甚至会导致模型的准确率下降。
    • 一个可能的原因是,现有的方法都不能从多个3D视角下的巨大方差中学习到一个紧密的模型。
    • 一个替代方法就是,为每个3D视角训练一个模型,最后再讲所有的结果聚合起来,这样会大大提升网络的复杂度。
  • 文中采用的方法是,在网络的特征层拟合旋转,如下:
  • 其中,WvW_vWv​是从多视角的特征下学习到的权重,θpqv⃗,b⃗\theta_{\vec{p q_v}, \vec{b}}θpqv​​,b​是根据固定的正交基和旋转后的边重新计算的角度。

2.4、实现细节

  • GeoConv模块的输入是:n×Cinn \times C_{in}n×Cin​ ;输出是:n×Coutn \times C_{out}n×Cout​。
  • 对于每个点ppp,根据超参数rrr计算局部球形领域,得到若干个近邻点。
  • 使用Cin×CoutC_{in} \times C_{out}Cin​×Cout​的权重矩阵WcW_cWc​提取中心点的特征。
  • GeoConv模块还参考了ResNet中的瓶颈模块(bottleneck module),先提取一个低维(CreducC_{reduc}Creduc​)的特征,再输出高维(CoutC_{out}Cout​)的特征。

2.5、实验

3、参考资料

  1. Modeling Local Geometric Structure of 3D Point Clouds using Geo-CNN

论文笔记:Geo-CNN相关推荐

  1. 【论文笔记】CNN for NLP

    什么是Convolutional Neural Network(卷积神经网络)? 最早应该是LeCun(1998)年论文提出,其结果如下:运用于手写数字识别.详细就不介绍,可参考zouxy09的专栏, ...

  2. [论文笔记]基于 CNN+双向LSTM 实现服饰搭配的生成

    论文:<Learning Fashion Compatibility with Bidirectional LSTMs> 论文地址:https://arxiv.org/abs/1707.0 ...

  3. [深度学习论文笔记]Multimodal CNN Networks for Brain Tumor Segmentation in MRI

    Multimodal CNN Networks for Brain Tumor Segmentation in MRI: A BraTS 2022 Challenge Solution MRI中用于脑 ...

  4. Deep Learning论文笔记之(五)CNN卷积神经网络代码理解

    Deep Learning论文笔记之(五)CNN卷积神经网络代码理解 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但 ...

  5. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  6. 【论文笔记 2】CNN经典入门STRIVING FOR SIMPLICITY: THE ALL CONVOLUTIONAL NET

    [论文笔记 2]CNN经典入门STRIVING FOR SIMPLICITY: THE ALL CONVOLUTIONAL NET 1. 综述 对现代的CNN网络结构进行了简要说明,一般的网络都是由卷 ...

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

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

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

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

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

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

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

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

最新文章

  1. ​易生信-宏基因组积微学术论坛:基于大数据整合准确预测土壤的枯萎病发生...
  2. undefined reference to cv::_InputArray::_InputArray(cv::Mat const)
  3. -%3e运算符在c语言中的作用,C语言逻辑运算符知识整理
  4. Android Studio 疑难杂症
  5. 【算法】prim算法(最小生成树)(与Dijkstra算法的比较)
  6. MySQL实现差集(Minus)和交集(Intersect)
  7. 解决java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor问题
  8. 对比学习效果差?谷歌提出弱语义负样本,有效学习高级特征!
  9. 博士出身好科研产出高,学术谱系真的可以决定一切吗?
  10. Mysql CMAKE编译参数详解
  11. 用c语言编写的迷宫游戏代码,C语言编写的迷宫小游戏 源代码
  12. 软件外包还是自建团队
  13. linux yum 安装播放器,centos5下用yum安装MPlayer播放器
  14. MM-DD-RRRR / MM-DD-YYYY 的区别【Blog 搬家】
  15. git commit时的几种指令
  16. golang使用技巧与易错点总结
  17. 自动配音软件下载与使用
  18. ftrack与Adobe家三剑客!
  19. 【复杂网络建模】——通过图神经网络来建模分析复杂网络
  20. Android写入txt文件

热门文章

  1. 第二天2017/03/29: 字符串操作
  2. Dubbo 源码分析 - 集群容错之Directory
  3. CHROME开发者工具的小技巧
  4. 深度学习概述:从感知机到深度网络
  5. 计算机视觉Computer Vision网址导航
  6. Matlab中断语句
  7. ionic 实用技巧
  8. mysql启动warning: World-writable config file
  9. UVA10305 Ordering Tasks
  10. JAVA web项目报错no sigar-x86-winnt.dll in java.library.path