PointNet++改进策略 :模块改进 | x-Conv | PointCNN, 结合局部结构与全局排列提升模型性能

目录

    • 前言
    • PointCNN实现细节
      • 1. X X X-Conv 操作
        • 输入
        • 输出
        • 步骤
      • 2. PointCNN 网络架构
        • 层级卷积
        • 分类与分割任务
      • 3. 数据增强
      • 4. 效率优化

Pasted image 20240910094800

前言

这篇论文介绍了一种名为 PointCNN 的方法,旨在从点云(point cloud)数据中学习特征。传统卷积神经网络(CNN)在处理规则网格数据(如图像)时非常有效,但由于点云是无序且不规则的,直接在其上应用卷积操作会导致形状信息丢失,并对点的排列顺序敏感。

为了解决这一问题,论文提出了一种 X-Conv 操作。该方法通过学习一种 X-transformation 来重新排列点云中的点并加权输入特征。然后,将典型的卷积操作应用于转换后的特征。这种方法将传统的 CNN 扩展到点云特征学习,并命名为 PointCNN

实验表明,PointCNN 在多个基准数据集上达到了与当前最先进方法相当甚至更好的性能。这些数据集包括 3D 形状分类(如 ModelNet40)、分割任务(如 ShapeNet Parts 和 ScanNet),以及 2D 草图分类任务(如 TU-Berlin 和 Quick Draw)。

论文的关键贡献在于提出了适用于点云的卷积操作,并展示了其在多种任务上的有效性。

Pasted image 20240910094823

PointCNN实现细节

PointCNN 是一种针对点云数据进行特征学习的卷积神经网络架构。它的设计初衷是为了克服传统卷积神经网络(CNN)在处理点云数据时遇到的挑战。点云数据是不规则且无序的,因此直接将传统的卷积操作应用在点云上会导致形状信息的丢失,并且对点的排列顺序非常敏感。

PointCNN 的核心思想是引入一种叫做 X-Conv 的操作,这种操作通过学习一个 X-transformation 变换矩阵来同时加权和排列输入点云的数据,使得卷积操作可以更有效地应用于点云。具体来说,X-transformation 将点云的点映射到一个潜在的、或许是规范化的顺序中,然后在变换后的特征上应用卷积操作。

相比于直接对点云进行卷积,PointCNN 通过 X-Conv 操作保留了点云的局部结构信息,同时对点的排列顺序具有不变性。这使得它在点云的各种任务中表现出色,例如3D形状分类、分割任务和草图分类等。

简而言之,PointCNN 是一个能够处理不规则点云数据的通用卷积网络架构,解决了点云数据中的排列问题,并在多个任务上达到了与最先进方法相当甚至更好的性能。
Pasted image 20240910094835

1. X X X-Conv 操作

X X X-Conv 是 PointCNN 的核心操作,它通过学习一个 X X X-转换矩阵,对输入点及其特征进行加权和排序,然后进行卷积操作。整个 X X X-Conv 的过程如下:

输入
  • K K K: 表示点邻域中的 K K K 个点。
  • p p p: 表示当前代表点。
  • P P P: 当前点 p p p K K K 个邻域点的坐标,表示为 P = ( p 1 , p 2 , … , p K ) T P = (p_1, p_2, \dots, p_K)^T P=(p1,p2,,pK)T
  • F F F: 邻域点的特征矩阵,表示为 F = ( f 1 , f 2 , … , f K ) T F = (f_1, f_2, \dots, f_K)^T F=(f1,f2,,fK)T,其中 f i ∈ R C 1 f_i \in \mathbb{R}^{C_1} fiRC1
输出
  • F p F_p Fp: 聚合到代表点 p p p 的输出特征。
步骤
  1. 局部坐标系变换:首先将邻域点的坐标转换为相对于代表点 p p p 的局部坐标系,即 P ′ ← P − p . P' \leftarrow P - p. PPp.
  2. 升维操作:通过多层感知机(MLP),将每个邻域点的坐标升维到 C δ C_\delta Cδ 维空间,得到 F δ F_\delta Fδ,即 F δ ← MLP δ ( P ′ ) . F_\delta \leftarrow \text{MLP}_\delta(P'). FδMLPδ(P).
  3. 特征拼接:将升维后的坐标特征 F δ F_\delta Fδ 与原始特征 F F F 进行拼接,形成新的特征矩阵 F ∗ F^* F,其形状为 K × ( C δ + C 1 ) K \times (C_\delta + C_1) K×(Cδ+C1) F ∗ ← [ F δ , F ] . F^* \leftarrow [F_\delta, F]. F[Fδ,F].
  4. X X X-转换矩阵的学习:通过一个 MLP 网络,从局部坐标 P ′ P' P 中学习到一个 K × K K \times K K×K X X X-转换矩阵: X ← MLP ( P ′ ) . X \leftarrow \text{MLP}(P'). XMLP(P).
  5. 加权和排序:对拼接后的特征矩阵 F ∗ F^* F 进行加权和排序,得到 F X F_X FX F X ← X × F ∗ . F_X \leftarrow X \times F^*. FXX×F.
  6. 卷积操作:最后,将加权后的特征 F X F_X FX 与卷积核进行卷积操作,输出结果特征 F p F_p Fp F p ← Conv ( K , F X ) . F_p \leftarrow \text{Conv}(K, F_X). FpConv(K,FX).

该过程可以总结为如下公式: F p = X -Conv ( K , p , P , F ) = Conv ( K , MLP ( P − p ) × [ MLP δ ( P − p ) , F ] ) . F_p = X\text{-Conv}(K, p, P, F) = \text{Conv}(K, \text{MLP}(P - p) \times [\text{MLP}_\delta(P - p), F]). Fp=X-Conv(K,p,P,F)=Conv(K,MLP(Pp)×[MLPδ(Pp),F]).

2. PointCNN 网络架构

PointCNN 使用 X X X-Conv 操作递归地应用在点云的不同层级上,实现了层级特征表示。输入到 PointCNN 的是点集 { ( p 1 , f 1 ) , ( p 2 , f 2 ) , … , ( p N , f N ) } \{(p_1, f_1), (p_2, f_2), \dots, (p_N, f_N)\} {(p1,f1),(p2,f2),,(pN,fN)},其中 p i p_i pi 是点的坐标, f i f_i fi 是与点关联的特征。

层级卷积

类似于传统 CNN 的层级卷积,PointCNN 通过多层的 X X X-Conv 逐步减少点的数量,并增大特征维度。层级的每一层通过聚合局部点的特征,得到新的代表点及其特征。对于输入点云 F 1 = { ( p 1 , i , f 1 , i ) } F_1 = \{(p_{1,i}, f_{1,i})\} F1={(p1,i,f1,i)},我们可以递归应用 X X X-Conv,生成新的表示 F 2 = { ( p 2 , i , f 2 , i ) } F_2 = \{(p_{2,i}, f_{2,i})\} F2={(p2,i,f2,i)},其中 ∣ F 2 ∣ < ∣ F 1 ∣ |F_2| < |F_1| F2<F1 且特征维度更高。

每一层的输出可表示为: F l + 1 = X -Conv ( K , P l , F l ) , F_{l+1} = X\text{-Conv}(K, P_l, F_l), Fl+1=X-Conv(K,Pl,Fl), 其中 P l P_l Pl 是第 l l l 层的代表点坐标, F l F_l Fl 是第 l l l 层的特征矩阵, K K K 是邻域点数。

分类与分割任务
  • 分类网络:PointCNN 将通过若干 X X X-Conv 层逐步将输入点聚合为较少的代表点,并最终通过全连接层实现分类。在分类网络中,最后一个 X X X-Conv 层的输出是一个全局表示,通常只保留一个代表点,并应用全连接层进行分类。

  • 分割网络:在分割任务中,PointCNN 采用类似于 U-Net 的架构, X X X-Conv 不仅在卷积部分应用,也在 DeConv 部分应用,以逐步将全局信息传播到高分辨率的点云表示上。

3. 数据增强

为了提高模型的泛化能力,PointCNN 使用了随机采样和输入点集顺序打乱的数据增强策略。在训练时,PointCNN 随机采样 N ∼ N ( 1024 , 12 8 2 ) N \sim \mathcal{N}(1024, 128^2) NN(1024,1282) 个点作为输入,并在每个批次中对输入点的顺序进行打乱。这对于训练一个对点集输入顺序不敏感的模型至关重要。

4. 效率优化

在实现中, X X X-Conv 的复杂度为 O ( K 3 ) O(K^3) O(K3),并且使用了深度可分离卷积来进一步减少计算复杂度。整个操作过程均为可微分的,因此 PointCNN 可以使用反向传播进行训练。

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

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

相关文章

【前端】探索webpack3项目build速度优化, 优化个p

文章目录 背景uglifyjs-webpack-pluginwebpack3 压缩混淆js 优化踩坑。结论 背景 webpack3 babel7 uglifyjs-webpack-plugin的项目&#xff0c;build起来是什么体验。 大抵是写了两个月后&#xff0c;发现build时间从120s激增到400s。而这400秒中&#xff0c;有50多秒是Ugli…

江协科技STM32学习- P11 中断系统,EXTI外部中断

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

Pygame中Sprite类实现多帧动画3-3

4 使用自定义类MySprite 使用自定义类MySprite实现多帧动画的步骤是首先创建MySprite类的实例&#xff0c;之后使用相关函数对该实例进行操作。 4.1 创建MySprite类的实例 创建MySprite类的实例的代码如图12所示。 图12 创建MySprite类的实例的代码 其中&#xff0c;变量dr…

Dagger:Android 和 Java 的快速依赖注入框架

在软件开发中&#xff0c;依赖注入&#xff08;DI&#xff09;是一种设计模式&#xff0c;用于实现控制反转&#xff0c;减少代码耦合&#xff0c;提高模块化。Dagger 是一个由 Google 开发的依赖注入库&#xff0c;专门用于 Android 和 Java 应用程序&#xff0c;以其快速和高…

TiDB-从0到1【完结】

来来回回3个月&#xff0c;TiDB-从0到1系列就此完结。 如果各位读者有时间整个系列阅读并根据内容掌握实操的话&#xff0c;最次也有中级TiDB工程师的水准了。 TiDB-从0到1-体系结构 TiDB-从0到1-分布式存储 TiDB-从0到1-分布式事务 TiDB-从0到1-MVCC TiDB-从0到1-部署篇 TiDB…

通信工程学习:什么是IFMP(Ipsilon流管理协议)

IFMP&#xff1a;Ipsilon流管理协议 IFMP&#xff08;Ipsilon Flow Management Protocol&#xff09;&#xff0c;即Ipsilon流量管理协议&#xff0c;是一种用于网络流量管理的协议。它主要用于IP交换机、IP交换网关或IP主机中&#xff0c;通过控制数据传送&#xff0c;将现有网…

Java代码审计篇 | ofcms系统审计思路讲解 - 篇1 | 环境搭建、路由机制

文章目录 Java代码审计篇 | ofcms系统审计思路讲解 - 篇1 | 环境搭建、路由机制1. 前言2. 项目环境搭建3. 项目路由机制3.1. 1&#xff09;先搜索pom.xml文件&#xff0c;看看使用了什么框架3.2. 2&#xff09;确定是否是spring的路由机制3.3. 3&#xff09;确定自写路由机制的…

Chapter 14 计算机网络基本概述

欢迎大家订阅【Vue2Vue3】入门到实践 专栏&#xff0c;开启你的 Vue 学习之旅&#xff01; 文章目录 前言一、网络的基本概念二、集线器、交换机和路由器三、互连网与互联网四、网络的类型五、互连网的组成1. 边缘部分2. 核心部分 六、网络协议 前言 计算机网络是现代信息社会…

【每日一题】LeetCode 104.二叉树的最大深度(树、深度优先搜索、广度优先搜索、二叉树)

【每日一题】LeetCode 104.二叉树的最大深度&#xff08;树、深度优先搜索、广度优先搜索、二叉树&#xff09; 题目描述 给定一个二叉树 root&#xff0c;我们需要计算并返回该二叉树的最大深度。二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。 思路分…

极米科技:走出舒适圈,推动数据架构现代化升级 | OceanBase 《DB大咖说》

《DB 大咖说》第 13 期&#xff0c;邀请到了极米科技软件与创新产品线高级架构师施刘凡来进行分享。 在小红书平台上&#xff0c;“是否应将家里的电视升级为投影仪&#xff1f;”这一话题激发了上百万篇笔记的分享与推荐&#xff0c;反映出年轻群体对投影仪的偏好。随着手机、…

ESP32 UDP 05

1.在上一文章基础上修改&#xff0c;文章网址 ESP32-Ethernet-04-CSDN博客 2.基本代码 /* Ethernet Basic ExampleThis example code is in the Public Domain (or CC0 licensed, at your option.)Unless required by applicable law or agreed to in writing, thissoftware…

Apple Intelligence深夜炸场!苹果发布4颗自研芯片,iPhone/iWatch/AirPods大升级

今年 6 月&#xff0c;苹果在 WWDC 上正式推出 Apple Intelligence。消息发布次日&#xff0c;苹果股价在盘中突破 200 美元大关&#xff0c;创 2022 年 11 月 10 日以来最大涨幅&#xff0c;截至收盘&#xff0c;苹果总市值升至 3.18 万亿美元&#xff08;约合人民币 23 万亿&…

通信工程学习:什么是IP-CAN(IP连接接入网)

IP-CAN&#xff1a;IP连接接入网 IP-CAN&#xff08;IP连接接入网&#xff09;是一个通过IP实现用户设备&#xff08;UE&#xff09;与IP多媒体子系统&#xff08;IMS&#xff09;实体之间连通的网络实体和接口的集合。以下是对IP-CAN的详细解释&#xff1a; 一、定义与概述 1…

深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计

大家好,我是微学AI ,今天给大家介绍一下深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计。高中数学自适应测试系统旨在通过精准评估学生能力,用最少的题目发现其薄弱环节,并提供定制化的学习计划,帮助学生快速提升成绩。同时,系统结合了AI大模型实现…

WinCC 中对 VBS 进行单步执行调试

以前应该写过文章给各位展示如何在WinCC 中通过自身控件对脚本&#xff08;C、VBS&#xff09;进行脚本诊断和排错。但是也有用户反馈说在编写了一些相对复杂的脚本后&#xff0c;WinCC自身控件无法做到单步调试&#xff0c;也会影响脚本的诊断调试效率。如果能够对WinCC 中的脚…

在Linux中从视频流截取图片帧(ffmpeg )

Linux依赖说明: 说明: 使用到的 依赖包 1. ffmpegsudo apt update sudo apt-get install ffmpeg2. imagemagick (选装) (检测图像边缘信息推断清晰度,如果是简单截取但个图像帧>用不到<)sudo apt-get install imagemagick备注: 指令及相关参数说明核心指令: (作用: 执…

WRF-LES与PALM微尺度气象大涡模拟、PALM静态数据预备、PALM驱动数据预报、PALM模拟

查看原文>>>WRF-LES与PALM微尺度气象大涡模拟及ChatGPT在大气科学领域应用 针对微尺度气象的复杂性&#xff0c;大涡模拟&#xff08;LES&#xff09;提供了一种无可比拟的解决方案。微尺度气象学涉及对小范围内的大气过程进行精确模拟&#xff0c;这些过程往往与天气…

Parsec无法使用、访问、连接、被墙、被封、800报错解决方案 完美平替软件

最近Parsec出现无法使用、报错等问题&#xff0c;话不多说先上解决办法 方案一&#xff1a;在%appdata%/Parsec/config.txt中&#xff0c;添加代理 app_proxy_address 127.0.0.1 app_proxy_scheme http app_proxy true app_proxy_port 你的http代理端口 方案二&#xff1a;…

计算机网络 第2章 物理层

文章目录 通信基础基本概念信道的极限容量编码与调制常用的编码方法常用的调制方法 传输介质双绞线同轴电缆光纤以太网对有限传输介质的命名规则无线传输介质物理层接口的特性 物理层设备中继器集线器一些特性 物理层任务&#xff1a;实现相邻节点之间比特&#xff08;0或1&…

嘿嘿 解决了Dev C++ 中文乱码(有效版)

这是博主第一篇博客&#xff01;记录一下博主的小小小小解决史&#xff01; 很早就下载用了Dev c &#xff0c;但现在隔了很长时间没去用过了再次打开发现出现中文乱码的现象&#xff01;在网站上翻阅了许久&#xff01;终于解决了问题&#xff01;困扰了许久&#xff01; ——…