【深度学习——点云】PointNet++

2023-10-26

这篇文章发表于NIPS 2017,是在PointNet基础上的工作,论文地址:PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

1. Motivation

PointNet处理点云的方式是首先单独对每一个点进行特征映射再使用MaxPooling在所有点特征上提取整体特征,这一过程中缺少对于不同尺度的局部结构特征的提取,使得PointNet难以识别更加细粒度的模式并泛化到更加复杂的情况当中。

CNN在计算机视觉取得的成功已经证明了逐层提取并整合局部特征至全局特征的重要性,PointNet++从这点出发,首先将整个点集分为多个子集,利用PointNet在这些自己上逐层提取局部特征并整合直到得到整个集合的全局特征。

2. Method

2.1 Hierarchical Point Set Feature Learning

相比于PointNet仅仅用一个MaxPooling来从单个点的特征中整合全局特征,PointNet++使用一种层级特征提取方式整合局部特征至全局特征。而为了提取不同尺度的特征,每一层级又包括针对不同尺度的abstraction level,每一个abstraction level包括Sampling Layer、Grouping Layer和PointNet Layer

Sampling Layer在输入的点集中使用最远点采样(farthest point sampling)采样各个partition的质心,相对于随机采样可以更好地覆盖整个采样空间。

Grouping Layer在采样得到的质心基础上使用ball query寻找各质心固定尺度区域中的neighborhood point,点云数据中的一个点的局部区域由其周围给定半径的球星空间内的点构成。

PointNet Layer相当于CNN中的卷积,使用mini PointNet对各个partiton局部区域进行特征提取,各个partition点集在输入网络前,除质心外的所有点坐标要减去质心坐标获得点的相对坐标,以捕捉局部区域中点与点之间的关系。

2.2 Robust Feature Learning under Non-Uniform Sampling Density

点云数据往往不是均匀采样的,有些区域密集,有些区域稀疏,这就为点集的特征提取带来了挑战,在密集点云上训练的网络可能不能很好地泛化到稀疏点云上,在稀疏点云上训练的网络遇到稠密点云无法学习到细粒度的局部特征。

要解决这个问题,在面对稀疏区域时,网络要具有适应性地在更大的区域上学习更大尺度的特征,网络提出density adaptive PointNet layer,在输入数据的采样密度改变时,学习整合不同尺度区域的特征。前文中的abstraction level只提取单个尺度的特征,在PointNet++中,利用多个abstraction level提取不同尺度的特征,再使用density adaptive PointNet layer来整合这些特征。文章提出两种density adaptive PointNet layer。

2.2.1 Multi-scale grouping (MSG)

如下图所示,Multi-scale grouping简单地把不同尺度的特征做一个concat,为了提高网络应对不同密度的点云数据的能力,在训练时,输入层应用random input dropout,来以一定的概率丢弃一部分输入点,但是MSG需要对每个局部的每个尺度进行特征提取,当点云规模变大时计算量会很大。

2.2.2 Multi-resolution grouping (MRG)

MRG在某一层对每一个局部区域提取的特征由两部分组成,第一个部分在其前一层提取得到的特征基础上通过特征提取网络提取得到,第二部分直接在所抽取的局部区域对应的原始点云上进行特征提取,最后将这两部分特征进行concat。

 以下是PointNet++的网络示意图。

网络的缺陷

PointNet++是为了解决PointNet对局部特征提取不足的问题,将输入的点云划分为各个区域进行区域特征提取,但是在各个区域内,特征的提取依然和PointNet一样,是分别单独地提取点特征再pooling得到全局特征,依然没有完成对点与点之间关系的建模。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【深度学习——点云】PointNet++ 的相关文章

随机推荐

  • C++基础4:构造函数、析构函数、拷贝析构函数、静态成员函数

    构造函数 1 1构造函数 一个特殊的函数与类型名相同 没有返回值类型 保证创建一个对象时 自动调用一次 一个类可以有多个构造函数 作用 初始化对象 如果一个类不提供构造函数 则系统自动提供一个无参构造函数 但一旦提供构造函数 则系统的无参构
  • Head-Free Lightweight Semantic Segmentation with Linear Transformer 新颖的分割网络

    现有的语义分割网络基本都是编码解码结构 新的语义分割网络主要都是在解码阶段添加新的不同模块 提高解码阶段特征处理能力 从而实现语义分割 而这篇文章主要是去除了解码阶段 把工作重心放在了编码阶段 它采用并行架构来利用原型表示作为特定的可学习的
  • Linux Mii management/mdio子系统分析之六 fixed-mii_bus分析(mac2mac分析)

    前面几章我们介绍了MDIO模块的大部分内容 针对mii bus mdio bus phy device phy driver相关的注册 注销均进行了介绍 基本上把mdio模块的内容介绍完了 而本篇介绍的内容 主要是针对虚拟mii bus实现
  • python类基本语法笔记

    语言是工具 一段时间不用就会忘掉语法 静态方法和类方法 什么时候会用到这样的方法呢 类方法是针对类存在的 可以用类直接调用 主要用到的两个函数是staticmethod 和classmethod 简洁的用法是用Python的修饰器 需要注意
  • Vue总结第二天~自定义子组件、父子组件通信、插槽

    目录 一 组件 组件目录 1 注册组件 全局组件 局部组件和demo template模块 1 注册组件的基本步骤 2 全局组件demo 3 局部组件demo 4 template模块的简化 模板的分离写法 即将其内容封装到 templat
  • Matplotlib

    1 折线图 import matplotlib pyplot as plt import numpy as np x np linspace 1 1 50 1到1 有五十个点 y 2 x 1 plt figure num 1 figsize
  • 【计算机网络】第一章:计算机网络概述

    文章目录 1 1 计算机网络在信息时代的作用 1 2 因特网概述 1 3 三种交换方式 1 4 计算机网络的定义和分类 1 5 计算机网络的性能指标 1 6 计算机网络体系结构 计算机网络体系结构 计算机网络体系结构分层的必要性 计算机网络
  • 从gitHub当中更新项目synchronize Update fetch pull 项目的区别。

    11 从gitHub更新项目 方法一 右击你的项目 team synchronize workspace 这样他就会去gitHub那fetch回最新的版本 之后像svn一样 切换到team synchronize视图 注意服务器如有更新 而
  • Vue之插件的介绍

    简介 主要介绍Vue插件的概念 定义和使用 Vue的插件主要是用于增强功能 可以把它看作是一个工具库 可以提供很多强大的功能 比如一些强大的自定义指令 一些强大的工具方法 过滤器等 我们可以编写或者直接引入别人写的插件 就能获得强大的功能
  • odoo 权限

    创建安全组并分配用户 Odoo中的访问权限通过安全组成进行配置 给组指定权限 然后为组分配用户 每个功能区都有中枢应用所提供的基础安全组 在插件继承已有应用时 它们应对相应的组添加权限 参见本章稍后的向模型添加访问权限一节 在插件模块添中添
  • HDOJ 1058 Humble Numbers解题报告【DP】

    Humble Numbers 题目详见http acm hdu edu cn showproblem php pid 1058 开始拿到这个题目的时候还纠结了半天 英语很差的话这个题是不可能AC的 而我就是其中之一 Humber Numbe
  • spring-boot-maven-plugin报错的修改与版本号查看

    我报错的原因是因为没加版本号 版本号是多少 可以下个everything搜spring boot maven plugin 前面的号码就是版本号了
  • [转]出租车轨迹处理(二):时空分析

    接下来就要进行一些简单的分析了 今天的目标是如何对某一感兴趣区域进行出租车数据的时空分析 一 轨迹数据预处理 这一步在上一篇文章中已经有了介绍 步骤无非就是 1 使用pandas读取数据 import pandas as pd import
  • Matlab实现粒子群算法(附上完整仿真代码)

    粒子群算法 Particle Swarm Optimization PSO 是一种群体智能算法 通过模拟自然界中鸟群 鱼群等生物群体的行为 来解决优化问题 在PSO算法中 每个个体被称为粒子 每个粒子的位置表示解空间中的一个解 每个粒子的速
  • AVL树的插入与删除(均为递归实现)

    一 引言 AVL树是带有平衡条件的二叉查找树 这个平衡条件必须要容易保持 而且它必须保证树的深度是O logN 一颗AVL树是其每个节点的左子树和右子树的高度最多差一的二叉查找树 主要介绍插入算法和删除算法 二 AVL树的结点定义 type
  • (二)RK3566 Android11固件烧录

    上一篇 一 RK3566 Android11 系统编译 文章目录 1 固件包烧录步骤 2 固件统一打包 3 固件升级 1 固件包烧录步骤 烧录工具位置 RKTools windows AndroidTool AndroidTool Rele
  • e17 enlightenment 介绍及配置

    为什么要有一个窗口管理器 为什么一定要有一个桌面背景 甚至是标题栏 或是如果把一个应用程序如firefox当成桌面背景行不行 桌面能不能再快一点 我不想把资源浪费在那些用不到的地方 Linux那么多虚拟桌面 为什么我不能在一个桌面全屏运行一
  • python django框架ORM模型及ORM操作数据库 笔记

    ORM模型介绍 随着项目的越来越大 采用写原生SQL的方式在代码中会出现大量的SQL语句 那么问题就出现了 1 SQL语句重复利用率不高 越复杂的SQL语句条件越多 代码越长 会出现很多相近的SQL语句 2 很多SQL语句是在业务逻辑中拼出
  • 深度卷积神经网络中的patch

    转载 https blog csdn net wills798 article details 97974617 在阅读基于深度卷积神经网络的图像识别 分类或检测的文献时经常看到 patch 不是很能理解 后来就总结了一下 通过阅读 pat
  • 【深度学习——点云】PointNet++

    这篇文章发表于NIPS 2017 是在PointNet基础上的工作 论文地址 PointNet Deep Hierarchical Feature Learning on Point Sets in a Metric Space 1 Mot