【点云网络】 pointnet 和 pointnet++

这两个网络都是斯坦福大学的一个团队提出的
我先先看一下pointnet的网络架构,这个网络比较经典,是2016年提出的:
在这里插入图片描述
PointNet 是一个专门用于点云数据处理的神经网络。它的设计目的是直接操作不规则的点云数据,而无需将点云数据转换为规则网格或体素。下面我们解析一下 PointNet 的网络结构:

  1. 输入层:输入是一个点云,每个点通常有三维坐标 ((x, y, z)),可能还包含颜色或法向量等特征。对于一个包含 (N) 个点的点云,这里输入是一个 (N \times 3) 的矩阵。

  2. 特征提取层

    • MLP 层:PointNet 使用多个多层感知机 (MLP) 层对每个点进行逐点特征提取,MLP 层通常会将每个点的特征从3维映射到更高维(如64或128维)。这是逐点操作,保持了点云的无序性。
    • T-Net:为了处理点云的旋转、平移等变换,PointNet 引入了 T-Net,它学习一个近似的仿射变换矩阵,对输入点进行对齐。这一层使用了独立的网络结构来估计变换矩阵,然后通过矩阵乘法对点云进行变换。通常,PointNet有两个T-Net,一个对齐原始输入点,另一个对齐局部特征。
  3. 全局特征提取

    • 逐点 MLP:进一步应用 MLP 来提取高维局部特征,例如将每个点从 64 维映射到 1024 维。
    • 全局最大池化:PointNet 使用全局最大池化来生成点云的全局特征。这一步将所有点的特征压缩为一个 1024 维的全局特征向量。最大池化操作可以确保网络不依赖于点的排列顺序,保证点云的无序性。
  4. 分类或分割层

    • 对于分类任务全局特征直接用于全连接层以输出类别标签。输出一个输出为
      K维向量,K代表当前分类任务的种类个数,代表整个点云的类别概率分布。
    • 对于分割任务,将全局特征复制并与逐点局部特征进行融合,再次通过 MLP 层细化特征,从而为每个点预测标签。输出为N*M为每个点预测类别标签的概率分布,用于逐点分割任务。

PointNet 的网络结构的设计原因

  • 不变性:点云的无序性意味着模型需要对点的排列不敏感。通过逐点处理和最大池化,PointNet 确保了这种排列不变性。
  • 旋转和仿射不变性:T-Net 处理仿射变换,减轻了旋转、平移等变化对特征提取的影响。
  • 全局信息与局部信息结合:全局最大池化提取了整个点云的全局特征,而逐点特征提供了局部细节。这种结合使得 PointNet 能够同时理解点云的整体结构和细节。

PointNet 的结构相对简单,但设计上有巧妙之处,使其既能保持点云特征的无序性,又能从中提取全局和局部信息,从而满足分类和分割任务的需求。

下面看pointnet++,2017年提出,网络结构如下:
在这里插入图片描述
PointNet++ 是 PointNet 的改进版本,专门用于捕捉点云数据中的局部特征,以提升其在物体检测、语义分割和场景理解等任务中的表现。PointNet++ 引入了分层结构,使网络能够从点云的不同尺度中提取更丰富的局部信息。

1. PointNet++ 设计背景

  • 局部特征的重要性:PointNet 使用全局最大池化来提取特征,对点云的细节和局部结构关注不足。在复杂场景中,物体的细节(如形状和边缘)对识别和定位尤为重要。
  • 尺度不变性:在点云中,物体的尺度可能会变化(比如,远处的物体在点云中点数更少),因此需要设计一个能捕捉多尺度特征的网络。

2. PointNet++ 的核心结构

PointNet++ 将点云处理分为多个层次,通过“采样-分组-特征提取”的过程,逐层提取局部特征,并在最后生成全局特征。每一层包含以下几个步骤:

  • 采样(Sampling):每一层首先对点云进行采样,逐层减少点数。例如,可以使用“最远点采样”(Farthest Point Sampling, FPS)算法选择有代表性的点集。这些点集定义了新的“局部区域中心”,用于下一级的特征提取。

  • 分组(Grouping):对每一个采样点,从其邻近的点中提取局部区域(邻域)。可以基于距离(如欧氏距离)在采样点周围划分区域,这样可以捕捉到点云的局部结构。

  • 特征提取(Feature Extraction with PointNet):在每一个局部区域内,应用 PointNet 网络提取该区域的特征。这一步会生成一个区域特征,通过最大池化操作总结每个局部区域的信息,提取高维特征向量。

3. 多尺度特征提取

为了让 PointNet++ 更具鲁棒性,网络使用了两种多尺度处理方式:

  • Multi-Scale Grouping (MSG):在同一层中,PointNet++ 使用不同的邻域尺度来提取多尺度特征。例如,一个采样点可以在小、中、大邻域内分别提取特征,从而获得不同尺度的信息。适用于点密度变化较大的情况。

  • Multi-Resolution Grouping (MRG):在逐层下采样的结构中,使用前一层特征分辨率较高的点云特征与当前层的特征结合,以确保在下采样过程中不会丢失重要的细节信息。适用于点云密度较为均匀的情况。

4. 分层结构的逐层汇总

PointNet++ 会重复多次“采样-分组-特征提取”操作,构建分层结构,逐层捕捉从局部到全局的信息。最后一层生成全局特征,可用于分类、分割等任务。对于分割任务,PointNet++ 会将全局特征和逐点特征相结合,细化输出。

5. PointNet++ 相较于 PointNet 的优势

  • 更强的局部感知能力:PointNet++ 通过多层局部特征提取实现了对局部结构的深入理解,提升了分割和检测的准确性。
  • 尺度不变性:PointNet++ 的多尺度机制增强了对不同尺度和密度点云的适应性。
  • 适应性强:通过逐层采样和下采样机制,PointNet++ 能够在密度不均匀的点云中有效工作,适合于复杂场景中的目标检测和场景理解。

总结

PointNet++ 通过分层采样、分组和特征提取的方法增强了对点云局部结构和多尺度特征的理解。

总结二者

这两个网络比较早期, 可以看出他俩只能做全局分类,也就是最终是对所有点云分类,而分割的结果倒是可以知道点云的类别,但是无法像物体检测,检出边界,后面会和大家分享物体检测的网络,希望大家多多关注啊!

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

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

相关文章

分布式——BASE理论

简单来说: BASE(Basically Available、Soft state、Eventual consistency)是基于CAP理论逐步演化而来的,核心思想是即便不能达到强一致性(Strong consistency),也可以根据应用特点采用适当的方…

FPGA实战篇:Moore/Mealy状态机

什么是状态机? 状态机是根据当前输入信号和自身当前所处状态来改变输出逻辑的一种逻辑系统,目前它也被抽象应用于软件设计当中,本文从硬件设计角度来解释状态机,使用Verilog语言来抽象描述并实现状态机。 状态机类型 状态分为两…

influxdb与LSM-TREE

一、什么是LSM-TREE 在一些写多读少的场景,为了加快写磁盘的速度,提出使用日志文件追加顺序写,加快写的速度,减少随机读写。但是日志文件只能遍历查询。不支持随机查询,提出使用LSM-TREE。除了利用磁盘顺序写之外&…

Mac保护电池健康,延长电池使用寿命的好方法

使用Mac的过程中,如何延长电池的使用寿命是大家非常关心的问题,而养成一个良好的充电习惯能够有效的延长电池的使用寿命 避免过度充电和过度放电能够有效的保护电池,因此长时间的充电与长时间放点都不可取,但是在日常的使用过程中…

AutosarMCAL开发——基于EB ResourceM模块

目录 一、ResourceM模块的作用以及原理1.ResourceM模块的作用2.单核系统运行原理a.上电复位b.启动代码执行c.应用程序加载d.应用程序执行 3.代码执行过程4.内存分配a.地址空间划分b.具体地址分配c.示例说明 4.多核系统运行原理a.MCU架构 二、EB配置介绍三、总结 一、ResourceM模…

【LeetCode】返回链表的中间结点、删除链表的倒数第 N 个结点

主页:HABUO🍁主页:HABUO 🌜钱塘江上潮信来,今日方知我是我🌛 1.返回链表的中间结点 题目:给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点&#xff0…

Netty篇(学习前言)

目录 一、为什么使用Netty 1. Netty编程相比NIO编程的优势 2. Netty 相比其它网络应用框架的优势 二、让我们走进Netty 1. 简介 2. 设计目标 3. 主要特点 4. Netty的作者 5. Netty 的地位 6. Netty 的优势 五、Netty版本说明 六、Netty架构设计 1. 线程模型基本介绍…

Ceph 学习指南 集群部署【 cephadm 】

文章目录 引言初识 Server SANServer SAN 和传统存储对比 Ceph 概述Ceph 的架构设计Ceph 的特点Ceph 块存储Ceph 文件系统Ceph 对象存储Ceph 介绍 Ceph 集群部署配置 aliyun 源配置时间同步配置 hosts 文件安装 docker配置免密登录ceph 集群部署ceph1 配置安装 python3安装 cep…

Linux篇(常见入门命令)

目录 一、开启终端 二、Linux命令格式 1. 什么是Linux 的命令? 三、Linux下的命令补全 四、切换用户 五、uname:查看操作系统信息 六、ls:查看目录下文件 1. 用法一 2. 用法二 3. 用法三 七、pwd:显示当前路径 八、cd&…

全面解析:网络协议及其应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 # 全面解析:网络协议及其应用 文章目录 网络协议概述定义发展历程主要优势 主要网络协议应用层协议传输层协议网络层…

02- 模块化编程-006 ADC0808数码显示对比

1、ADC0808 芯片介绍 ADC0808是一款集成的CMOS设备,包含8位模拟至数字转换器、8通道多路复用器和与微处理器兼容的控制逻辑。8位A/D转换器采用逐次逼近作为转换技术。转换器特点包括高阻抗斩波稳定比较器、256R电压分压器、模拟开关树和逐次逼近寄存器。8通道多路复…

【自动化测试】APP UI 自动化(安卓)-本地环境搭建

一、软件准备及版本介绍 软件版本JAVA-SDK1.8.0_181 python 3.10.10 Android SDK Tools 下最新版本即可,无特殊要求 PyCharm 2023.3.5(下最新版本即可,无特殊要求) 二、安装步骤及环境变量配置 2.1 Java安装及配置 1&am…

leetcode912.排序数组的题解

题目描述: 题目要求在不使用任何内置函数的情况下解决问题,时间复杂度为 O(nlog(n))。 笔者使用了快速排序,但是直接使用最原始的快速排序,有些特殊的测试用例会超时。 1)如果数组本身基本有序,则使用原始…

安装Blender并使用

前言 该系列记录了如何用Blenderpro来构建自己的场景数据集,从环境搭建到后期构建数据集的整个流程 本文章是第一部分,BlenderPrc2的安装以及环境配置 部分参考https://blog.csdn.net/weixin_49521551/article/details/121573334 官方文档https://dlr…

json-server的使用(根据json数据一键生成接口)

一.使用目的 在前端开发初期,后端 API 可能还未完成,json-server 可以快速创建模拟的 RESTful API,帮助前端开发者进行开发和测试。 二.安装 npm install json-server //局部安装npm i json-server -g //全局安装 三.使用教程 1.准备一…

MySQL详细安装教程

一、从MySQL官网安装 可以翻译成中文看起来就舒服多了 下载并打开安装包,能看到版本是8.0.36,双击运行或者右键选择打开,打开后是一个安装向导,这个安装向导会先帮我们安装一个 mysql-installer 的程序,再通过该程序安…

qt QErrorMessage详解

1、概述 QErrorMessage是Qt框架中用于显示错误消息的一个对话框类。它提供了一个简单的模态对话框,用于向用户显示错误或警告消息。QErrorMessage通常用于应用程序中,当需要向用户报告错误但不希望中断当前操作时。它提供了一个标准的错误消息界面&…

Vue3安装、创建到使用

vue安装 npm install vuenext # 全局安装 vue-cli npm install -g vue/cli #更新插件 项目中运行 vue upgrade --nextvue create 命令 vue create [options] <app-name> options 选项可以是&#xff1a; -p, --preset <presetName>&#xff1a; 忽略提示符并使用已…

Linux 下执行定时任务之 Systemd Timers

不知道 ECS 因为什么缘故&#xff0c;上面安装的 MySQL 服务老是不定期挂掉&#xff0c;本来想通过 Linux 得 Cron 配置个半小时的定时检测任务&#xff0c;结果一直没有执行&#xff0c;因此又尝试使用了 Systemd Timers 进行了重新配置&#xff0c;简要做个记录。 Systemd Ti…

计算机网络:网络层 —— IP 多播技术

文章目录 基本概念IP多播地址和多播组 IP多播的类型硬件多播将IPv4多播地址映射为多播MAC地址 基本概念 多播&#xff08;Multicast&#xff0c;也称为组播&#xff09;是一种实现“一对多”通信的技术&#xff0c;允许一台或多台主机&#xff08;多播源&#xff09;发送单一数…