【PointNet—论文笔记分享】

news2024/9/30 5:27:09

第一个直接基于原始点云数据进行分割、分类的模型,之前都是基于多视图或者体素的方式。

  • 论文:
    PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
  • 代码:
    TensorFlow版
    Pytorch版

基本模型架构:
在这里插入图片描述
分别对每个点进行特征提取(卷积或者全连接),再MAX得到全局特征进行输出

基于以下Properties of Point Sets in Rn(Rn中点集特性)

  • 无序(Unordered):换句话说,一个处理N个3D点集的网络需要对N!个输入集数据馈送顺序的排列(permutations)保持不变

  • 点之间的相互作用(Interaction among points)。 这些点来自具有距离度量(distance metric)的空间。这意味着点不是孤立的,并且相邻点形成一个有意义的子集。因此,模型需要能够从附近的点捕捉局部结构,以及局部结构之间的组合相互作用。

  • 变换下的不变性(Invariance under transformations)。作为一个几何对象,点集的学习表示应该对某些变换是不变的。例如,旋转和平移点都不应该修改全局点云类别,也不应该修改点的分割。

PointNet Architecture

其中分类网络和分割网络共享大部分结构
image-20231015101939501

网络具有三个关键模块:

  • 最大池化层作为一个对称函数来聚合来自所有点的信息

  • 一个局部和全局信息组合结构

  • 两个对齐输入点和点特征的联合对齐网络(joint alignment networks)

T-Net
在这里插入图片描述
PointNet采用了两次STN(Spatial Transformer Network)

  • 第一次input transform是对空间中点云进行调整,直观上理解是旋转出一个更有利于分类或分割的角度,比如把物体转到正面
  • 第二次feature transform是对提取出的64维特征进行对齐,即在特征层面对点云进行变换

应用:

  • 对象分类(obejct classification)
  • 部分分割(part segmentation)
  • 场景语义解析(scene semantic parsing)

总结(个人理解)

  • 本文最大的贡献使用max pool对称函数解决了点云的无序性问题,也就是针对以上提到的点集特性第一点,创建了第一个直接基于原始点云的分类、分割模型。
  • 本文中的两次T-Net 从理解上是用于调整点云和特征姿态,针对点集特性第三点,但是效果好像不太明显。
  • 本文的点云语义分割只是聚合了单个点的特征和整个点云的全局特征,其实并没有利用到局部特征,也就是点集特性第二点,不过紧接着作者又提出了PointNet++来针对此点进行改进。

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

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

相关文章

AI大模型基础环境搭建

文章目录 AI大模型基础环境搭建简介下面是搭建大模型基础环境大模型基础环境通常会依赖以下package:conda安装demo环境搭建关于该git项目需要注意的一些点前后端封装 AI大模型基础环境搭建 简介 简单描述一下本文章里会教大家做的东西 1、搭建大模型基础环境 2、f…

JVM相关的面试题

一、什么是程序计数器 二、简要的介绍一下堆 三、什么是虚拟机栈 四、能不能解释下方法区 五、你听过直接内存吗? 六、什么是类加载器,类加载器有哪些 七、什么是双亲委派模型 八、JVM为什么采用双亲委派机制 九、类装载的执行过程 十、对象什么时候被垃…

Day982.各大开放平台是如何使用OAuth 2.0 -OAuth 2.0

各大开放平台是如何使用OAuth 2.0 Hi,我是阿昌,今天学习记录的是关于各大开放平台是如何使用OAuth 2.0的内容。 “开放平台”,不难理解,它的作用就是企业把自己的业务能力主要以开放 API 的形式,赋能给外部开发者。而…

C++(Chapter 3)

C(三) 1.引用 1.引用的概念 引用的概念:引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 引用的语法:类型& 引用变量名(对象名) 引用实体 ; 例如: #i…

【OpenGL】七、混合

混合 文章目录 混合混合公式glBlendFunc(混合函数)glBlendFuncSeparate渲染半透明纹理 参考链接 混合(Blending)通常是实现物体透明度(Transparency)的一种技术 简而言之:混合就是如何将输出颜色和目标缓冲区颜色结合起来。 混合公式 C_fina…

Android 备忘录,记事本程序设计

android备忘录实现,使用ObjectBox数据库框架进行数据存储,增删改查等操作。代码使用kotlin编写。 1、下面看看ObjectBox数据库封装 需要注意的是: /** * 你只有配置好之后, 点击 Make Model 你的model名字, 才会创建 MyObjectBox对象 …

(十七)VBA常用基础知识:读写text文件

读取文件 1.1.数据准备 1.2 代码准备 Sub test()Dim buf As String, n As LongOpen "/Users/sixdog/Documents/VBA/test.txt" For Input As #1Do Until EOF(1)Line Input #1, bufn n 1Sheet1.Range("A" & n) bufLoopClose #1 End Sub1.3 执行结果…

在Unity中如何设置设备的高、中、低配

在开发游戏或应用程序时,考虑到不同设备的性能差异是至关重要的。Unity作为一种流行的游戏开发引擎,提供了一些方法来区分设备的高、中、低配,并相应地调整游戏的性能要求和图形质量。 以下是在Unity中实现这一目标的几种常用方法&#xff1…

【Linux】零基础入门Linux你所需要掌握的

文章目录 目录结构路径描述颜色区分Linux命令文件权限 目录结构 要了解Linux首先,必须要了解linux的目录层级结构,因为在linux中有一切皆文件"的思想. windows系统里面的文件具有各个盘符,如C盘,D盘等 而在Linux中,Linux的目录结构是一个树型结构 Linux没有盘符的概念,只…

程序的编译,链接,执行

目录 1.程序的翻译环境和执行环境 2.翻译环境 3.运行环境 1.程序的翻译环境和执行环境 当我们写出一段代码后,我们需要将代码运行起来。那在这个过程中文件是如何从代码变成可执行程序的呢? 在程序实现过程中中,存在两个环境:一…

Matlab安装必看,手把手教你安装matlab

目录 一 ,Matlab介绍 二,安装matlab2021b 一 ,Matlab介绍 Matlab是一种高级计算机语言和交互式环境,广泛用于科学、工程、金融和其他领域的数据分析、可视化和数值计算。它是由MathWorks公司开发的,最初发布于1984年…

【unity3D插件】Embedded Browser(ZFBrowser) — 快速实现PC端内嵌网页(有详细图解)

💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity3D插件—Embedded Browser 这里写自定义目录标题 下载基础知识基础操作使用公网网址加载一个网页①使用公网网址加载一个网页②使用…

IP子网到底怎么划分【全网最详解】!!!

在学习IP子网划分前,首先的明白以下几个基础概念: 1、IP地址组成 IP地址由32位二进制组成,32位二进制分成了4字节,每字节8位,字节之间用符.(点)分隔,为了方便人们记忆,经…

Leetcode刷题详解——搜索插入位置

1. 题目链接:35. 搜索插入位置 2. 题目描述: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。…

判断函数是否标记async

判断函数是否标记为async 今天看到这道题觉得蛮有意思的 就是说让你写一个工具类,让后这个工具类接收一个函数,判断这个函数是不是被async标记了 如下,我们先看看普通函数和被async标记的函数打印出来是啥样子 function isAsyncFunction(func) {console.log(func)}isAsyncFun…

css样式中 before、after 里面的 content 乱码

目录 一、问题 二、原因 三、总结 一、问题 1.代码在本地没有问题,打包放在线上在时候,竟然测试测的时候看到element的字体图标有时候显示乱码,如下图1-1所示。更奇葩的是偶现,只有测试看见了,很难复现。。。 图1-…

【网络协议】聊聊UDP协议

前面的几篇文章讲述了链路层和IP层,主要的话其实就是MAC地址,以及通过IP地址求MAC地址的ARP协议。PING的底层协议 ICMP 。动态分配IP协议 DHCP等。而从今天开始我们开始讲述传输层协议,传输层主要就是UDP和TCP。 TCP 和 UDP 有哪些区别&…

Bean转换工具MapStruct看这一篇就够了

内容持续更新中… 文章目录 1.背景2.mapstruct简介3.mapstruct与其他映射对比4.mapstruct底层原理解析5.具体使用和底层实现5.1 添加maven依赖5.2 对象转换1.UserA和UserB字段相同2.UserA和UserB字段不同3.多个源类4.子对象映射5.数据类型转换数据类型映射枚举映射 6.集合映射…

C语言KR圣经笔记 2.1变量名 2.2 数据类型和大小

第2章 类型、操作符和表达式 变量和常量是程序里操作的基本数据对象。声明列出了要使用的变量,并指出它们的类型,还可能赋初始值。而操作符指定了要对它们做什么。表达式把变量和常量结合起来产生新的值。一个对象的类型决定了它的取值范围以及能对它做…

Linux部署Redis哨兵集群 一主两从三哨兵(这里使用Redis6,其它版本类似)

目录 一、哨兵集群架构介绍二、下载安装Redis2.1、选择需要安装的Redis版本2.2、下载并解压Redis2.3、编译安装Redis 三、搭建Redis一主两从集群3.1、准备配置文件3.1.1、准备主节点6379配置文件3.1.2、准备从节点6380配置文件3.1.3、准备从节点6381配置文件 3.2、启动Redis主从…