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

news2024/11/24 14:25:48

目录

    • 前言
    • 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.coloradmin.cn/o/2120776.html

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

相关文章

华为 HCIP-Datacom H12-821 题库 (9)

有需要题库的可以看主页置顶 V群进行学习交流 1.以下关于 RSTP 保护功能的描述&#xff0c;错误的是哪一选项&#xff1f; A、环路保护可以部署在根端口上&#xff0c;以防网络中形成环路 B、环路保护可以部署在Alternate 端口上&#xff0c;以防网络中形成环路 C、BPDU 保…

“短视频 + ”新业态下的高职院校数字媒体技术专业群建设方案

一、引言 短视频&#xff0c;亦称短片视频&#xff0c;是在移动互联网快速普及背景下兴起的一种新兴媒体形态&#xff0c;它继承了传统影视行业的一些特点并加以创新。相较于传统的文字和图片传播方式&#xff0c;短视频集声音与影像于一体&#xff0c;能够承载更多的信息量&a…

【JAVA开源】基于Vue和SpringBoot的网上订餐系统

本文项目编号 T 018 &#xff0c;文末自助获取源码 \color{red}{T018&#xff0c;文末自助获取源码} T018&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 新…

缓存对象反序列化失败

未定义serialVersionUID&#xff0c;会自动生成序列化号 新增了属性&#xff0c;序列号就变了&#xff0c;导致缓存对象反序列化失败。 所有缓存对象必须指定序列化id&#xff01; 那我如何找到未添加字段前 对象的序列化号呢&#xff1f;默认的序列化号是如何生成的呢&#…

11、Hive+Spark数仓环境准备

1、 Hive安装部署 1&#xff09;把hive-3.1.3.tar.gz上传到linux的/opt/software目录下 2&#xff09;解压hive-3.1.3.tar.gz到/opt/module/目录下面 [shuidihadoop102 module]$ tar -zxvf /opt/software/hive-3.1.3.tar.gz -C /opt/module/ 3&#xff09;修改hive-3.1.3-b…

车辆目标检测数据集 19000张 带标注 voc yolo

数据集名称&#xff1a; 车辆目标检测数据集 数据集规模&#xff1a; 图像数量&#xff1a;19000张标注类型&#xff1a;车辆检测&#xff08;包括但不限于轿车、卡车、公交车、摩托车等&#xff09;格式兼容性&#xff1a;支持VOC和YOLO标注格式 数据集内容&#xff1a; 该…

IP网络广播服务平台任意文件上传漏洞

文章目录 免责声明搜索语法漏洞描述漏洞复现修复建议 免责声明 本文章仅供学习与交流&#xff0c;请勿用于非法用途&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任 搜索语法 icon_hash"-568806419"漏洞描述 该系统在upload接口处可上传任…

SOMEIP_ETS_099: SD_ClientServiceActivate

测试目的&#xff1a; 验证DUT能够在不停止其已运行的服务器模式的情况下&#xff0c;被触发进入客户端模式。 描述 本测试用例旨在确保DUT能够在保持服务器模式运行的同时&#xff0c;启动客户端模式的启动程序&#xff0c;并准备好作为客户端进行操作。 测试拓扑&#xf…

机器人入门系列:《通过蓝牙模块通讯控制机器人电机转动》

一、引言 在现代科技高速发展的今天&#xff0c;机器人技术作为自动化和智能化领域的重要分支&#xff0c;正以前所未有的速度改变着我们的生活和生产方式。其中&#xff0c;无线通信技术作为机器人远程控制的关键技术之一&#xff0c;其重要性不言而喻。蓝牙技术&#xff0c;…

Deepl翻译VS行业TOP3,你的翻译神器是哪款?

现在世界变得越来越小&#xff0c;大家都在用不同的语言交流&#xff0c;这时候翻译工具就特别重要了。不管是搞研究、谈生意&#xff0c;还是平时聊天&#xff0c;翻译软件都超级有用。在这么多翻译工具里&#xff0c;Deepl翻译这样的软件特别受欢迎。咱们今天就来比一比&…

复盘:求职两个月还没找到工作,深刻反思

一、求职反思 复盘下&#xff0c;求职两个月还没找到工作&#xff0c;心态在快崩溃的边缘又被拉回来了。 历经两个月的征途&#xff0c;找工作打招呼和投简历不下百次&#xff0c;用了三个APP&#xff0c;猎聘、boss直聘、智联。真的感觉粥多僧少。从一开始挑公司、薪酬&…

运营商不给降套餐怎么办?建议你这么操作!

订套餐容易改套餐难&#xff0c;这种情况你遇到过没有&#xff1f; 有朋友反馈&#xff0c;因为自己的套餐资费太贵&#xff0c;打运营商客服电话降套餐&#xff0c;结果运营商不不能降套餐怎么办&#xff0c;这种情况会怎么办呢&#xff1f; 如果出现以下几种情况&#xff0…

初识C++|继承

&#x1f36c; mooridy-CSDN博客 &#x1f9c1;C专栏&#xff08;更新中&#xff01;&#xff09; 目录 1. 继承的概念及定义 1.1 继承的概念 1.2 继承定义 1.2.1 定义格式 1.2.2 继承父类成员访问方式的变化 1.3继承类模板 2. 父类和子类对象赋值兼容转换 3. 继承中的…

Excel单元格操作:读写单元格数据、格式设置与条件格式详解

目录 一、Excel单元格的基本操作 1.1 单元格的选取与编辑 案例一&#xff1a;基本数据录入 1.2 单元格的读取与写入 案例二&#xff1a;使用公式计算销售额 二、单元格格式设置 2.1 字体与颜色设置 案例三&#xff1a;设置标题格式 2.2 数字格式设置 案例四&#xff…

大数据-128 - Flink 并行度设置 细节详解 全局、作业、算子、Slot

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

【观察】为天府之国数智化转型“架桥铺路”,华为云云商店释放创新“乘数效应”...

作为全国首批国家数字经济创新发展试验区&#xff0c;近年来四川在发展数字经济的道路上可谓“一马当先”。数据显示&#xff0c;2023年&#xff0c;四川省数字经济核心产业增加值达到4899.07亿元&#xff0c;占GDP比重8.1%&#xff0c;数字经济日益成为四川省经济高质量发展的…

电压跟随器的作用是什么?

电压跟随器&#xff08;也称为单位增益放大器、缓冲放大器和隔离放大器&#xff09;是一种电压增益为 1 的运算放大器电路。这意味着运算放大器不会对信号进行任何放大。 之所以称为电压跟随器&#xff0c;是因为输出电压直接跟随输入电压&#xff0c;即输出电压与输入电压相同…

逻辑函数化简的意义和标准

目录 逻辑函数化简的意义和标准 化简逻辑函数的意义 引例 最简与或式 最简与非-与非式 逻辑函数化简的意义和标准 化简逻辑函数的意义 可以节省元器件&#xff0c;优化生产工艺。 引例 逻辑函数&#xff1a; AB之间与再或上A与上非B。 但实际上可以进行化简。 化简后不…

【CCRC-DSA数据安全评估师】:25项核心控制点

在网络安全的核心要素中&#xff0c;数据处理活动扮演着至关重要的角色。 专注于数据的流动&#xff0c;每个环节都潜藏风险&#xff0c;任何接触数据的角色都可能成为潜在的风险源。 对数据的静态、传输和使用状态的关注至关重要。 这些不同的状态要求采取的防护措施各不相…

cas单点登录流程揭密

前言 前几篇文章&#xff0c;经过大篇幅讲解了cas整合以及Cookie和Session。 springbootvue集成cas单点登录最详细避坑版讲解 关于cookie和session的直观讲解&#xff08;一&#xff09; 关于cookie和session的直观讲解&#xff08;二&#xff09; 那么&#xff0c;接下来&…