Pointnet Tutorial

news2024/11/18 6:29:44

目录

 .1 intro-点云特性

 1.1 点云特性

1.2 motivation

1.3 pointnet的处理

.2 Pointnet

2.1 contribution

2.2 solution

2.3 backbone

2.4 代码部分

 2.5 小结

 .4 应用

References

 .1 intro-点云特性

Q1:什么是点云?

简单来说就是一堆三维点的集合,必须包括各个点的三维坐标信息,其他信息比如各个点的法向量、颜色等均是可选项

num_channels一般为3,表示点云的三维坐标。

 1.1 点云特性

点云几个两个很重要的特性。

(1)无序性。点云中的点在打乱它们的索引之后,依然能表达空间结构。

(2)旋转不变形。点云整体经过旋转之后,类别没有改变。

1.2 motivation

related work

  1. Volumetric CNNs:对体素应用3DCNN。缺点是点云的坐标空间的稀疏性导致转成体素后的分辨率问题,以及3D卷积带来的开销

  2. Multiview CNNs:将点云或者shape渲染成视图,使用传统的图像卷积来做特征学习。这种方法确实取得了不错的效果,但是缺点是应用非常局限,像分割、补全等任务就不太好做

  3. Spectral CNNs

  4. feature-based DNN

why we want to do this?

直接对点云做特征学习也不是不可以,但有几个问题需要考虑:特征学习需要对点云中各个点的排列保持不变性、特征学习需要对rigid transformation保持不变性等。

1.3 pointnet的处理

 对于(1)

 所以设计的ML模型必须是一个对称函数,因为对称函数的结果与输入的参数的顺序无关。比如sum、max函数。可以类比二维卷积神经网络中的max pooling操作。实际上论文中的max pooling操作在代码里用的就是max函数。

 以上这种直接对坐标进行max的操作会使大量的点丢失(可能会导致特征丢失),所以要先使用多层感知器(MLP)将每个点映射到更高的维度(此时信息会冗余)

对于(2)

论文中使用了T-Net去学习物体的旋转,相当需要学习一个3x3的矩阵

 我们希望不论点云在怎样的坐标系下呈现,网络都能正确的识别出。这个问题可以通过STN(spacial transform netw)来解决。二维的变换方法可以参考这里,三维不太一样的是点云是一个不规则的结构(无序,无网格),不需要重采样的过程。pointnet通过学习一个矩阵来达到对目标最有效的变换。

 小结:

为什么PointNet是重要的?

真正让PointNet具备很大影响力的,还是它的简洁、高效和强大。
首先要说清楚,PointNet所作的事情就是对点云做特征学习,并将学习到的特征去做不同的应用:分类(shape-wise feature)、分割(point-wise feature)等。

PointNet之所以影响力巨大,就是因为它为点云处理提供了一个简单、高效、强大的特征提取器(encoder),几乎可以应用到点云处理的各个应用中,其地位类似于图像领域的AlexNet。

.2 Pointnet

2.1 contribution

  1. 设计了一个新颖的深层网络架构来处理三维中的无序点集

  2. 设计的网络表征可以做三维图形分类、图形的局部分割以及场景的语义分割等任务

  3. 提供了完备的经验和理论分析来证明PointNet的稳定和高效。

  4. 充分的消融实验,证明网络各个部分对于表征的有效性。

网络的亮点

  1. 空间变换网络解决旋转问题:三维的STN(空间变换网络--spatial transform network)可以通过学习点云本身的位姿信息学习到一个最有利于网络进行分类或分割的DxD旋转矩阵(D代表特征维度,pointnet中D采用3和64)。至于其中的原理,我的理解是,通过控制最后的loss来对变换矩阵进行调整,pointnet并不关心最后真正做了什么变换,只要有利于最后的结果都可以。pointnet采用了两次STN,第一次input transform是对空间中点云进行调整,直观上理解是旋转出一个更有利于分类或分割的角度,比如把物体转到正面;第二次feature transform是对提取出的64维特征进行对齐,即在特征层面对点云进行变换。

  2. maxpooling解决无序性问题:网络对每个点进行了一定程度的特征提取之后,maxpooling可以对点云的整体提取出global feature。

2.2 solution

challenges

点云的几个特点:

  1. 无序性 --> 对称函数设计用于表征

  2. 点不是孤立的,需要考虑局部结构 --> 局部全局特征结合

  3. 仿射变换无关性 --> alignment network

2.3 backbone

 

 

其中,mlp是通过共享权重的卷积实现的,第一层卷积核大小是1x3(因为每个点的维度是xyz),之后的每一层卷积核大小都是1x1。

即特征提取层只是把每个点连接起来而已。经过两个空间变换网络和两个mlp之后,对每一个点提取1024维特征,经过maxpool变成1x1024的全局特征。

再经过一个mlp(代码中运用全连接)得到k个score。

分类网络最后接的loss是softmax。

n*3 输入

输出 n*64

输入 n*64

输出 n*1024

然后max pooling (每个n取出一个最大值)输出1*1024

2.4 代码部分

变换矩阵部分,以第一个STN为例 

 2.5 小结

本质上pointnet就是一种可以对无序点集提取出特征的网络结构

先输入n*3个点

然后进行仿射变换输出 n*3

经过mlp输出 n*64

再进行仿射变换

再经过mlp 输出 n*1024

然后 max pooling后输出1*1024

并且拼接之前的n*64 输出 n*1088

再经过mlp输出 n*128

然后最后再经过mlp

输出n*m的打分

在PointNet中 网络对每一个点做低维到高维的映射进行特征学习,然后把所有点映射到高维的特征通过最大池化最终表示全局特征。

 .4 应用

PointnetGPD

https://github.com/Hymwgk/PointNetGPD

应用于抓取

本质上就是先preprocess得到夹爪内部点云,然后处理进入网络打分,输出打分高的

 

References:

细嚼慢咽读论文:PointNet论文及代码详细解析 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【异常】前端提示 Support for the experimental syntax ‘jsx‘ isn‘t currently enabled

一、报错内容 17:33:41 - Building for production... 17:34:13 ERROR Failed to compile with 5 errors5:34:09 PM 17:34:13 17:34:13 error in ./src/layout/components/Sidebar/Item.vue?vue&typescript&langjs& 17:34:13 17:34:13 Syntax Error…

万应低代码1月重点更新内容速递

速览版 详情版 一、低代码开发能力提升 01 工作流 (1) 优化流程推演 在流程发起时,对流程各节点审批人、抄送人进行实时推演。 【使用场景】 ● 以“请假”场景为例,A 角色的固定审批人为“甲、乙、丙” 3 人,在某…

windows10操作系统 显卡MX150 安装CUDA+cuDNN+pytorch

本人水平有限,如有问题请多指正笔记本系统:Windows 10 64位显卡:NVIDIA GeForce MX150显卡驱动程序版本:512.78显卡驱动程序支持CUDA版本:11.6.134及以下安装CUDA:11.6.0安装cuDNN:8.7.0一、安装…

路由器刷机解决学校无线上网问题(小米4A千兆版)

一、准备工作 1、路由器正常联网状态,(正常联网状态指的是电脑能够通过路由器上网) 2、电脑网线插入路由lan口,IP地址设置为自动获取 3、启动window10的Telent功能 控制面板 -> 程序和功能 -> 左侧“启动或关闭Windows功能…

FormArray在动态表格中的应用

如下图,是这次想要实现的功能。 一个表格行,点击新增按钮就增加一行,点击后面的删除按钮就可以删除对应的行,其中有部分字段需要添加非空校验。要想实现这个功能,需要应用到FormArray的知识。 步骤: 1. 声明一个Form…

打开IE浏览器自动跳转到Edge的解决方法

场景Windows 10中,打开IE浏览器自动跳转到Edge,但是某些网站还是只能在IE中正常访问,Edge访问会出问题。解决方案Edge中点击右上角的三个点,然后点击设置在“默认浏览器”中,修改“让 Internet Explorer 在 Microsoft …

Linux-文件和目录常用命令

1.查看目录内容1.1 终端使用技巧自动补全在敲出 文件/目录/命令的前几个字母之后,按下tab键如果输入的没有歧义,系统会自动补全如果还存在其他文件/目录/命令,再按一下tab键,系统会提示可能存在的命令曾经使用过的命令按上/下光标键可以再曾经使用过的命…

GeoServer系列-安装SqlServer插件

GeoServer 安装包中是不含sqlserver插件的,所以无法创建sqlserver的数据存储,要想支持发布sqlserver的空间表到geoserver就需要添加插件 1,下载插件 官网下载地址:https://geoserver.org/download/ 根据自己的版本下载指定的插件…

Java之并发编程(三)

五、Java 常见并发容器总结 1.ConcurrentHashMap ConcurrentHashMap : 线程安全的 HashMap 1.1 Collections.synchronizedMap() 并发时使用它方法包装HashMap同步,这属于全局锁,性能低下。 1.2 ConcurrentHashMap, 读写操作都能保证很高…

文献阅读-Deep multi-view learning methods: A review

文献阅读-Deep multi-view learning methods: A reviewAbstract1-Introduction1.1 Comparison with Previous Reviews2 Multi-view Learning Methods in The Deep Learning Scope2.1 Multi-view convolutional neural network2.2. Multi-view auto-encoder2.3. Multi-view gene…

杉数求解器

目录前言一、简介以及安装二、COPT交互式命令行工具2-1、普通工具命令2-2、COPT工具命令三、使用示例3-1、交互模式3-2、Windows下终端窗口直接加载四、Python接口4-1、安装4-2、案例分析五、COPT调优工具5-1、介绍5-2、调优工具相关参数六、Python API参考6-1、COPT常数类总结…

【Jetson安装Nomachine】

0. 介绍 Nomachine是一款免费的远程桌面访问应用程序。支持用户从任何地方访问连接到Internet的计算机。该应用程序允许多个用户访问单个PC,且支持使用不同的操作系统。 官网链接:NoMachine - Free Remote Desktop for Everybody 1. 下载Nomachine 软…

【C++】简单理解内联函数

内联函数1.内联函数的概念2.C为什么要有内联函数?3.内联函数展示3.1查看方式3.2 观察汇编代码4.使用内联函数的注意事项5.内联函数缺点和优点1.内联函数的概念 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有…

九龙证券|沪指收获2010年以来最强1月 北向资金净买入额刷新历史纪录

昨日,A股小幅调整,2023年1月行情随之收官。全体来看,1月A股商场拾级而上,盘面出现普涨格局,价值与生长风格均有亮眼体现。三大股指中,上证指数1月上涨5.39%,创2010年以来最佳局面。深证成指、创…

zookeeper 源码分享二 ----启动加载数据

单机zookeeper 启动加载数据 读取磁盘中快照文件,选择其中第一个能正确加载的文件,最多加载100个快照文件。反序列化快照文件,进行内存DataTree数据加载根据最新事物日志,加载事物日志快照并进行反序列化重新执行事物日志中的操作…

OAuth2流程演示示例

目录一、OAuth2流程演示示例1、创建项目结构①客户②认证服务器③资源拥有者④资源服务器2、流程①资源所有者②客户③客户④认证服务器⑤客户⑥资源服务器一、OAuth2流程演示示例 client 客户 authorization-server 认证服务 resource-owner 资源所有者 resource-server 资源服…

anaconda下载安装,镜像源配置修改及虚拟环境的创建

anaconda安装Anaconda 简介Anaconda 安装1.安装流程2.anaconda 配置修改3. 创建虚拟环境4.常用命令Anaconda 简介 Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python…

Cocos Creator游戏项目环境搭建和启动

背景获得了一套cocos creator2.4.2编写的游戏源码,需要在本地启动,查看一下是否符合预期要求。所以需要在本地搭建Cocos Creator环境,因为以前没有接触过,经过一番搜索,终于将环境搭建完成,为了备忘&#x…

【Sciter】Sciter 结合 Preact 封装 图片查看器总结

使用 react 结合 sciter 封装 图片查看器 组件 # 效果图 1、图片:宽度大于高度 2、图片:宽度小于高度 # 如何使用 <div class="container"></div

录音软件哪个好?分享两款免费实用的录音软件

有时候我们需要一款录音软件&#xff0c;来录制电脑内部的声音或者电脑外部的声音。比如录制网上无法下载的音乐、录制自己唱歌的声音、录制音频会议等等。那有没有既实用并且试用版就能录音软件呢&#xff1f;当然有&#xff01;小编今天就给大家介绍两款高性价比的录音软件&a…