2019-Exploiting Local and Global Structure for PointCloud

2024-02-28 15:32

本文主要是介绍2019-Exploiting Local and Global Structure for PointCloud,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Exploiting Local and Global Structure for PointCloud Semantic Segmentation with Contextual Point Representations

期刊:Nips2019

时间:2019

code:https://github.com/fly519/ELGS


目录

  • Exploiting Local and Global Structure for PointCloud Semantic Segmentation with Contextual Point Representations
    • 1、创新
    • 2、具体实现
      • 2.1 Point Enrichment
      • 2.2 Feature Representation
        • Encoder
        • Decoder
      • 2.3 Prediction
    • 3、实验结果
      • S3DIS
      • Scan Net
      • 消融实验
      • 验证模块的有效性

1、创新

针对PointNet2的三个问题

  • 初始特征表示只是局限于xyz rgb i 等低层次的特征,没有综合点的邻域信息
  • sampling+grouping后对于local pointcloud,使用的是对每一个点孤立地提取特征,唯一的特征聚合是在最后使用一次max函数,这样没有考虑group内部点之间的影响。
  • 没有利用采样点与点之间的全局关系

作者对应地提出三个模块

  • Point Enrichment:对每个点的初始feature进行增强
  • Feature Representation:在grouping后的每一个小点云,使用一种attention机制,将每个点的特征更新为邻域内所有点特征的加权和
  • Prediction:对decoder后的点云,分别使用spatial attention 和 channel attention更新特征,这样就认为每个点携带了全局信息(无论两个点距离多远)

image-20210108144800752

2、具体实现

2.1 Point Enrichment

image-20210108150407794

简单来讲就是对每一个点P,寻找其最近的K个点(论文中K=3),然后将这个K个点的初始feature拼接到一块,这样对这个点P其拼接后的特征就是K*D。

然后对这个P点进行特征升维(D—>KD),然后使用这个两个 KxD维度特征进行相互运算:

image-20210108145458306

最后将两个特征拼接就得到了每个点的初始feature(KxD || KxD=2KxD)

2.2 Feature Representation

采用的是经典的encoder-decoder模型,基本和PointNet2一致

Encoder

在grouping后,PointNet2的局部是使用的PointNet,仅仅是对每一个点进行特征提取,作者认为这种方式忽视了点之间的关系,作者添加了一个GAB(Graph Attention Block)模块用来计算局部点之间的相似度

具体实现也很简单,就是计算相识度,然后求得权重,最后加权求和更新特征:

image-20210108151433852

Decoder

和PointNet2一致

2.3 Prediction

为了利用点之间的Global信息,引入attention机制(Spatial-wise Attention和Channel-wise Attention),来融合每个点的特征。

Spatial-wise Attention

对每一个点分配一个权重,然后更新特征

image-20210108151909532

Channel-wise Attention

对每一个通道分配一个权重,然后更新特征

最后合并两个更新后特性,得到全局特征。

一个疑问:这里为啥不直接基于对空间attention后的点在进行channel attention呢?

3、实验结果

S3DIS

image-20210108152556556

image-20210108152652784

image-20210108152714604

image-20210108152825936

Scan Net

image-20210108152921064

消融实验

image-20210108153136684

image-20210108153151769

验证模块的有效性

image-20210108153410218

这篇关于2019-Exploiting Local and Global Structure for PointCloud的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/755893

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

关于OceanBase MySQL 模式中全局索引 global index 的常见问题

在OceanBase的问答区和开源社区钉钉群聊中,时常会有关于全局索引 global index的诸多提问,因此,借这篇博客,针对其中一些普遍出现的问题进行简要的解答。 什么是 global index ? 由于 MySQL 不具备 global index 的概念,因此这一问题会经常被社区版用户提及。就在前几天,就要人询问下面这个语法的意义。 create table part_tes

Android studio jar包多层嵌套,Add library '__local_aars__:...@jar' to classpath问题

在添加jar包,早app下的build.gradle中的 implementation files('libs/jar包的名字.jar') 修改为 api files('libs/jar包的名字.jar') implementation 单层引用,只引用当前jar包层, api 多层引用,应用当前jar包层,已经jar包引用的jar包层

2019学习计划

工作三年了,第一年感觉是荒废的,第二年开始学习python,第三年开始自动化 感觉自己会的东西比较少,而且不够深入,流于表面 现制定一下今年大概的学习计划 需持续巩固加强:python、ui自动化、接口自动化、sql等 代码量需提升,敲的不够(重点) 学习: 1.移动端测试,appium等 2.前端知识系统整理学习  3.性能测试 4.docker入门,环境搭建 5.shell

linux的nohup命令的用法。在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local

在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe –user=mysql &。可是有很多程序并不想mysqld一样,这样我们就需要nohup命令,怎样使用nohup命令呢?这里讲解nohup命令的一些用法。 nohup /root/

最简单的使用JDBC[连接数据库] mysql 2019年3月18日

最极简版本的, 我们这里以mysql为例: 首先要创建maven工程, 需要引入jar包:,这里需要注意, 如果你安装的是mysql最新版本8以上的, 下面有些地方需要更改,具体就是mysql连接的url, 和5版本的不一样,具体解决请自行百度哈.这里只演示mysql5版本的? 依赖: <dependency>   <groupId>mysql</groupId>   <artifactId

$GLOBALS与global区别 变量销毁机制

代码一: <?php$var1 = 1;function test1(){global $var1; #等价于 $var1 = &$GLOBALS['var1']; 这里的$var1跟外面的$var1是不同的指针,但指向同样的数据unset($var1); #当你unset一个引用,只是断开了变量名和变量内容之间的绑定,这并不意味着变量内容被销毁了.echo $var1; #P

【matlab】global的用法

>> help globalglobal - Declare global variables 声明全局变量This MATLAB function defines X, Y, and Z as global in scope. %此函数定义X,Y,Z为全局global X Y Zglobal 的参考页另请参阅 clear, isglobal, who名为 global 的其他函数mbc/Gl

(php伪随机数生成)[GWCTF 2019]枯燥的抽奖

审核源码发现加载check.php,审计发现使用了mt_rand()函数,这个函数生成的值是伪随机的 参考下面这篇文章 PHP mt_rand安全杂谈及应用场景详解 - FreeBuf网络安全行业门户 kali里面输入下载工具 git clone https://github.com/openwall/php_mt_seed.git cd进去输入make后编译出的文件先