PointNet 论文阅读

论文链接

PointNet


Abstract

  • 对于点云问题,由于其格式不规则,大多数研究人员将此类数据转换为规则的 3D 体素网格或图像集合。然而,这会导致数据不必要地庞大并导致问题
  • 在本文中,我们设计了一种直接消耗点云的新型神经网络,它很好地尊重了输入中点的排列不变性。我们的网络名为 PointNet,为从对象分类、部分分割到场景语义解析等应用提供了统一的架构。

Intro

提出PointNet的原因

由于点云或网格不采用常规格式,因此大多数研究人员通常将此类数据转换为常规 3D 体素网格或图像集合(例如视图),然后再将其输入深度网络架构。这种数据表示转换使生成的数据变得不必要地庞大,同时还引入了可能掩盖数据自然不变性的量化伪影。

简述PointNet怎么做的

将点云作为输入并输出整个输入的类标签或输入的每个点的每个点段/部分标签。关键使用单个对称函数——最大池化

  • 网络学习一组优化函数/标准,用于选择点云中有趣或信息丰富的点,并对它们选择的原因进行编码。
  • 最终全连接层将这些学习到的最佳值聚合到整个形状的全局描述符中,用于形状分类或用于预测每个点标签(形状分割)
  • 我们的输入格式很容易应用刚性或仿射变换,因为每个点都是独立变换的
文章主要贡献
  • 设计了一种新颖的深度网络架构,适合使用三维的无序点集
  • 展示了如何训练这样的网络来执行 3D 形状分类、形状部分分割和场景语义解析任务
  • 对方法的稳定性和效率提供全面的实证和理论分析
  • 展示了网络中选定神经元计算的 3D 特征,并对其性能进行了直观的解释。

Related Work

点云特征
  • 大多数点云特征都是针对特定任务进行设计的

  • 点特征通常对点的某些统计属性进行编码,并被设计为对某些变换不变,这些变换通常被分类为内在或外在两种

    或者也可以分为局部特征和全局特征

基于三维数据的深度学习
  • 基于容积的卷积神经网络(Volumetric CNNs)—— 容积表示受到数据稀疏性和三维卷积的计算成本的限制
  • FPNN 和Vote3D 提出了解决稀疏问题的特殊方法 —— 操作仍然在稀疏体积上,对于处理非常大的点云来说是具有挑战性
  • 多视角CNNs(Multiview CNNs)—— 扩展到场景理解或其他三维任务(如点分类和形状补全)非常困难
  • 谱卷积神经网络(Spectral CNNs)—— 仅限于类似有机物的流形网格,如何将其扩展到非等度形状(如家具)并不明显
  • 基于特征的深度神经网络(Feature-based DNNs)—— 受到提取特征的表示能力的限制
在无序数据集上的深度学习

从数据结构的角度来看,点云是一个无序向量集合。点集上进行的深度学习工作并不多。

Problem Statement

输入:无序数据点集, P i = ( x , y , z ∣ 颜色,法线等 ) P_i=(x,y,z|颜色,法线等) Pi=(x,y,z颜色,法线等)

目标分类任务:深度网络为所有k个候选类别输出k个得分

语义分割任务:输入可以是单个目标用于部分区域分割,或者是从3D场景中的子体积用于目标区域分割

模型会为每个n个点和每个m个语义子类别输出n×m个得分

Deep Learning on Point Sets

R n \mathbb {R}^n Rn 点集性质
  • 点云是一组没有特定顺序的点
  • 点不是孤立的,相邻点形成一个有意义的子集。模型需要能够捕获附近点的局部结构,以及局部结构之间的组合相互作用
  • 作为一个几何对象,学习到的点集表示对于某些变换应该是不变的
PointNet 架构


如上图所示。分类网络以n个点作为输入,应用输入和特征变换,然后通过最大池化聚合点特征。输出是 k 个类别的分类分数。分割网络是分类网络的扩展。它连接全局和局部特征并输出每点分数。 “mlp”代表多层感知器,括号中的数字是层大小。 Batchnorm 用于 ReLU 的所有层。 Dropout 层用于分类网络中的最后一个 MLP

三个关键模块

  • 最大池化层作为对称函数来聚合来自所有点的信息,局部和全局信息组合结构
  • 两个对齐输入点和点特征的联合对齐网络

无序输入的对称函数

目的:使模型输入排列不变

策略

  • 将输入排序成规范顺序

  • 将输入视为训练 RNN 的序列,通过排列来扩充数据

  • 通过对称函数来聚合每个点的信息

    对称函数 - 输入:n 个向量 - 输出:一个与输入阶数无关的新向量

不足

  • 在高维空间中实际上不存在稳定的排序,因此,排序并不能完全解决排序问题,并且由于排序问题仍然存在,网络很难学习从输入到输出的一致映射
  • 虽然 RNN 对于小长度(数十个)序列的输入排序具有相对较好的鲁棒性,但很难扩展到数千个输入元素,这是点集的常见大小

解决方案

对集合中的变换元素应用对称函数来近似定义在点集上的通用函数

f ( { x 1 , . . . , x n } ) ≈ g ( ( h ( x 1 ) , . . . , h ( x n ) ) f : 2 R N → R , h : R N → R K , g : R K × . . . × R K ⏟ n → R f(\{x_1,...,x_n\})\approx g((h(x_1),...,h(x_n)) \\\\ f:2^{\mathbb{R}^N}\rightarrow \mathbb{R},\ \ h:\mathbb{R}^N\rightarrow\mathbb{R}^K,\ \ g:\underbrace{\mathbb{R}^K \times...\times \mathbb{R}^K}_{n} \rightarrow \mathbb{R} f({x1,...,xn})g((h(x1),...,h(xn))f:2RNR,  h:RNRK,  g:n RK×...×RKR

实验证实:通过多层感知器网络来近似 h,通过单变量函数和最大池函数的组合来近似 g

局部与全局信息融合

原因:

无序输入对称函数的输出形成一个向量 [ f 1 , . . , f K ] [f_1,..,f_K] [f1,..,fK]在形状全局特征上训练 SVM 或多层感知器分类器以进行分类但点分割需要局部和全局知识的结合

解决方案:

  • 计算全局点云特征向量后,我们通过将全局特征与每个点特征连接起来将其反馈给每个点特征
  • 根据组合的点特征提取新的每点特征

联合对准网络

**原因:**如果点云经历某些几何变换(例如刚性变换),则点云的语义标记必须保持不变

方案:

  • 通过迷你网络(T-net)预测仿射变换矩阵,并将该变换直接应用于输入点的坐标(迷你网络本身类似于大网络,由点无关特征提取、最大池化和全连接层等基本模块组成)

将该想法扩展到特征空间的对齐

  • 在点特征上插入另一个对齐网络并预测特征转换矩阵以对齐来自不同输入点云的特征

  • 在 softmax 训练损失中添加了一个正则化项,将特征变换矩阵限制为接近正交矩阵
    L r e g = ∣ ∣ I − A A T ∣ ∣ F 2 L_{reg}=||I-AA^T||^2_F Lreg=∣∣IAATF2
    A 是迷你网络预测的特征对齐矩阵,正交变换不会丢失输入中的信息,因此是理想的

理论分析

普遍逼近

假设 f : X → R f: \Chi \rightarrow \mathbb{R} f:XR 是一个关于 Hausdorff 距离 d H ( ⋅ , ⋅ ) d_H(\cdot , \cdot) dH(,) 的连续集合函数,则 ∀ ϵ > 0 \forall \epsilon > 0 ϵ>0 都存在一个连续函数 h 和对称函数 g ( x 1 , . . . , x n ) = γ ∘ M A X g(x_1,...,x_n)=\gamma \circ MAX g(x1,...,xn)=γMAX,对于任意的 S ∈ X S\in \Chi SX 都有下式成立
∣ f ( S ) − γ ( M A X x i ∈ S { h ( x i ) } ) ∣ < ϵ |f(S)-\gamma(\underset {x_i \in S}{MAX}\{h(x_i)\})|<\epsilon f(S)γ(xiSMAX{h(xi)})<ϵ
它将 n 个向量作为输入并返回元素级最大值的新向量。关键思想是,在最坏的情况下,网络可以通过将空间划分为大小相等的体素来学习将点云转换为体积表示

瓶颈维度和稳定性

从理论上和实验上我们发现我们网络的表达能力受到最大池化层的维度的强烈影响。

u = M A X x i ∈ S { h ( x i ) } u=\underset {x_i \in S}{MAX}\{h(x_i)\} u=xiSMAX{h(xi)} f = γ ∘ u f=\gamma\circ u f=γu,则有

a ) ∀ S , ∃ C S , N S ⊆ X , f ( T ) = f ( S ) i f C S ⊆ T ⊆ N S b ) ∣ C S ∣ ≤ K \begin{aligned} &a) \forall S,\exist C_S,N_S \subseteq \Chi,f(T)=f(S)\ \ \ \ \ if\ C_S\subseteq T\subseteq N_S \\\\ &b)|C_S|\leq K \end{aligned} a)SCSNSXf(T)=f(S)     if CSTNSb)CSK

  • 表示如果 C S C_S CS 中的所有点都被保留,则 f ( S ) f (S) f(S) 在输入损坏之前保持不变;对于高达 N S N_S NS 的额外噪声点,它也保持不变。
  • 表示 C S C_S CS 仅包含有限数量的点,由 K 确定。换句话说, f ( S ) f(S) f(S) 实际上完全由小于或等于K个元素的有限子集 C S ⊆ S C_S ⊆ S CSS 决定

C S C_S CS 称为 S 的临界点集,将 K 称为 f 的瓶颈维度。

Experiment

应用领域

3D 目标分类

  • 在 ModelNet40 形状分类基准上评估我们的模型。有来自 40 个人造物体类别的 12,311 个 CAD 模型,分为 9,843 个用于训练和 2,468 个用于测试。

  • 我们的模型在基于 3D 输入(体积和点云)的方法中实现了最先进的性能。仅通过全连接层和最大池化,我们的网络在推理速度方面取得了领先优势,并且也可以轻松地在 CPU 中并行化。我们的方法和基于多视图的方法(MVCNN)之间仍然存在很小的差距,我们认为这是由于渲染图像可以捕获的精细几何细节的丢失造成的。

3D 对象部分分割

  • 部分分割是一项具有挑战性的细粒度 3D 识别任务。给定 3D 扫描或网格模型,任务是将零件类别标签(例如椅子腿、杯子手柄)分配给每个点或面

  • 我们对ShapeNet 零件数据集进行评估,该数据集包含来自 16 个类别的 16,881 个形状,总共注释了 50 个零件

  • 评估指标是点上的 mIoU。对于类别 C 的每个形状 S,计算形状的 mIoU

  • 我们观察到平均 IoU 提高了 2.3%,并且我们的网络在大多数类别中都优于基线方法

  • 测试这些方法的稳健性,仅损失了 5.3% 的平均 IoU

场景中的语义分割

  • 部分分割网络可以轻松扩展到语义场景分割,其中点标签成为语义对象类而不是对象部分标签。

  • 在斯坦福 3D 语义解析数据集上进行实验。该数据集包含 Matterport 扫描仪对 6 个区域(包括 271 个房间)的 3D 扫描结果。扫描中的每个点都用来自 13 个类别(椅子、桌子、地板、墙壁等以及杂乱)的语义标签之一进行注释

架构设计分析

与其他顺序不变方法的比较

  • 我们比较的基线(如图 5 所示)包括将未排序和排序点作为 n×3 数组的多层感知器、将输入点视为序列的 RNN 模型以及基于对称函数的模型
  • 本文实验的对称操作包括最大池化、平均池化和基于注意力的加权和
  • 从每个点特征预测标量分数,然后通过计算 softmax 跨点对分数进行归一化。然后根据归一化分数和点特征计算加权和

输入和特征转换的有效性

  • 最基本的架构已经取得了相当合理的结果。使用输入转换可将性能提升 0.8%

鲁棒性测试

  • 我们使用与图 5 的最大池化网络相同的架构。输入点被标准化为单位球体
  • 当缺失 50% 的点时,准确率仅下降 2.4% 和 3.8%
  • 如果网络在训练期间发现了异常点,那么它对异常点也具有鲁棒性
  • 评估两种模型:一种在具有 (x, y, z) 坐标的点上进行训练;另一种在具有 (x, y, z) 坐标的点上进行训练加上点密度

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue二维码生成插件qrcodejs2-fix、html生成图片插件html2canvas、自定义打印内容插件print-js的使用及问题总结

一、二维码生成插件qrcodejs2-fix 1.安装命令 npm i qrcodejs2-fix --save2.页面使用 import { nextTick } from vue; import QRCode from qrcodejs2-fix; nextTick(() > {let codeView document.querySelector("#codeView");codeView.innerHTML ""…

PDF 表单直接保存到您的文档中--TX Text Control

TX Text Control .NET Server for ASP.NET Document Viewer 32.0.2 允许用户保存包含已填写表单字段的文档&#xff0c;从而更轻松地协作和共享信息。 TX Text Control .NET Server for ASP.NET 是一个适用于 ASP.NET 和 ASP.NET Core 的综合服务器端文档处理库。功能包括 PDF …

C++多态基础

文章目录 1.多态概念2.多态使用3.多态析构4.多态隐藏5.多态原理5.1.单类继承5.1.1.问题一&#xff1a;非指针或引用无法调用多态5.1.2.问题二&#xff1a;同类对象共用虚表5.1.3.问题三&#xff1a;子类对象拷贝父类对象虚表5.1.4.问题四&#xff1a;打印虚表地址和虚表内容 5.…

Java8 Stream API全面解析——高效流式编程的秘诀

文章目录 什么是 Stream Api?快速入门流的操作创建流中间操作filter 过滤map 数据转换flatMap 合并流distinct 去重sorted 排序limit 限流skip 跳过peek 操作 终结操作forEach 遍历forEachOrdered 有序遍历count 统计数量min 最小值max 最大值reduce 聚合collect 收集anyMatch…

CorelDRAW2023最新版本号24.5.0.731

CDR2023是一款近年来备受瞩目的工具软件&#xff0c;它提供了数据存储、分析以及处理的能力。但是&#xff0c;对于许多用户来说&#xff0c;CDR2023到底好用不好用还需要进行深入的分析和探讨。在本文中&#xff0c;我们将从多个角度分析CDR2023这款软件。 CorelDRAW2023版win…

springboot--外部环境配置

外部环境配置 前言1、配置优先级配置文件优先级如下&#xff08;后面的覆盖前面的&#xff09;测试 2、外部配置3、导入配置4、属性占位符 前言 场景&#xff1a;线上应用如何快速修改配置&#xff0c;并引用最新配置&#xff1f; springBoot 使用配置优先级外部配置 简化配置…

《网络协议》01. 基本概念

title: 《网络协议》01. 基本概念 date: 2022-08-30 09:50:52 updated: 2023-11-04 07:28:52 categories: 学习记录&#xff1a;网络协议 excerpt: 互联网、网络互连模型&#xff08;OSI&#xff0c;TCP/IP&#xff09;、计算机通信基础。 comments: false tags: top_image: /i…

请求地址‘/operlog‘,发生未知异常

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是全栈工…

vue2和vue3区别

Vue2 和 Vue3 双向绑定方法不同 总结 vue3中没有$set Vue2 和 Vue3 双向绑定方法不同 Vue2 : Object.defineProperty() Vue3 : new Proxy()vue3 实例 数据会更新 const addBtn () >{obj.c 3; } vue2实例 问题&#xff1a;数据更新了视图没更新 Object.defineProperty…

Swift语言配合HTTP写的一个爬虫程序

下段代码使用Embassy库编写一个Swift爬虫程序来爬取jshk的内容。我会使用proxy_host为duoip&#xff0c;proxy_port为8000的爬虫IP服务器。 使用Embassy库编写一个Swift爬虫程序可以实现从网页上抓取数据的功能。下面是一个简单的步骤&#xff1a; 1、首先&#xff0c;需要在X…

【踩坑及思考】浏览器存储 cookie 最大值超过 4kb,或 http 头 cookie 超过限制值

背景 本地生产环境&#xff1a;超过最大值 cookie token 不存储&#xff1b;客户生产环境&#xff1a;打开系统空白&#xff0c;且控制台报 http 400 错误&#xff1b; 出现了两种现象 现象一&#xff1a;浏览器对大于 4kb 的 cookie 值不存储 导致用户名密码登录&#xff…

开发知识点-PHP从小白到拍簧片

从小白到拍簧片 位异或运算&#xff08;^ &#xff09;引用符号(&)strlen() 函数base64_encode预定义 $_POST 变量session_start($array);操作符php 命令set_time_limit(7200)isset()PHP 命名空间(namespace)new 实例化类extends 继承 一个类使用另一个类方法error_reporti…

FreeRTOS_事件标志组

目录 1. 事件标志组简介 2. 创建事件标志组 2.1 函数 xEventGroupCreate() 2.2 函数 xEventGroupCreateStatic() 3. 设置事件位 3.1 函数 xEventGroupClearBits() 3.2 函数 xEventGroupClearBitsFromISR() 3.3 函数 xEventGroupSetBits() 3.4 函数 xEventGroupSetB…

leetcode:387. 字符串中的第一个唯一字符

一、题目 函数原型 int firstUniqChar(char* s) 二、算法 设置一个大小为26的字符数组&#xff0c;位置0 - 25 分别对应字符 a - z 。遍历两次字符串&#xff0c;第一次记录下每个字符出现的次数&#xff0c;第二次检查哪个字符最先遍历到且出现次数为1&#xff0c;返回该字符即…

uniapp新建的vuecli项目启动报错并且打包失败的问题(已解决)

我的项目新建流程如下 运行之后就是如下报错 解决办法&#xff1a; 安装如下依赖&#xff1a; npm i postcss-loader autoprefixer8.0.0 npm run build 编译失败 安装如下依赖&#xff1a; npm install postcss8.2.2 最终package.json文件如下 {"name": "ls…

【Vue】vant上传封装方法,van-uploader上传接口封装

项目场景&#xff1a; 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 在移动端项目中&#xff0c;使用vant组件上传&#xff0c;但是vant没有上传方法&#xff0c;需要自己写。 html代码 <van-uploader v-model"fileList" :max-size"50…

jvm实践

说一下JVM中的分代回收 堆的区域划分 1.堆被分为了两份:新生代和老年代[1:2] 2.对于新生代&#xff0c;内部又被分为了三个区域。Eden区&#xff0c;幸存者区survivor(分成from和to)[8:1:1] 对象回收分代回收策略 1.新创建的对象&#xff0c;都会先分配到eden区 2.当伊园内存…

谷歌推出基于AI的产品图像生成工具;[微软免费课程:12堂课入门生成式AI

&#x1f989; AI新闻 &#x1f680; 谷歌推出基于AI的产品图像生成工具&#xff0c;帮助商家提升广告创意能力 摘要&#xff1a;谷歌推出了一套基于AI的产品图像生成工具&#xff0c;使商家能够利用该工具免费创建新的产品图像。该工具可以帮助商家进行简单任务&#xff08;…

李宏毅机器学习笔记.Flow-based Generative Model(补)

文章目录 引子生成问题回顾&#xff1a;GeneratorMath BackgroundJacobian MatrixDeterminant 行列式Change of Variable Theorem简单实例一维实例二维实例 网络G的限制基于Flow的网络构架G的训练Coupling LayerCoupling Layer反函数计算Coupling Layer Jacobian矩阵计算Coupli…

Windows 开启 Kerberos 的火狐 Firefox 浏览器访问yarn、hdfs

背景&#xff1a;类型为IPA或者MIT KDC&#xff0c;windows目前只支持 firefoxMIT Kerberos客户端的形式&#xff0c;其他windows端浏览器IE、chrome、edge&#xff0c;没有办法去调用MIT Kerberos Windows客户端的GSSAPI验证方式&#xff0c;所以均无法使用 Windows 开启 Kerb…