【点云网络】 pointnet 和 pointnet++
这两个网络都是斯坦福大学的一个团队提出的
我先先看一下pointnet的网络架构,这个网络比较经典,是2016年提出的:

PointNet 是一个专门用于点云数据处理的神经网络。它的设计目的是直接操作不规则的点云数据,而无需将点云数据转换为规则网格或体素。下面我们解析一下 PointNet 的网络结构:
-
输入层:输入是一个点云,每个点通常有三维坐标 ((x, y, z)),可能还包含颜色或法向量等特征。对于一个包含 (N) 个点的点云,这里输入是一个 (N \times 3) 的矩阵。
-
特征提取层:
- MLP 层:PointNet 使用多个多层感知机 (MLP) 层对每个点进行逐点特征提取,MLP 层通常会将每个点的特征从3维映射到更高维(如64或128维)。这是逐点操作,保持了点云的无序性。
- T-Net:为了处理点云的旋转、平移等变换,PointNet 引入了 T-Net,它学习一个近似的仿射变换矩阵,对输入点进行对齐。这一层使用了独立的网络结构来估计变换矩阵,然后通过矩阵乘法对点云进行变换。通常,PointNet有两个T-Net,一个对齐原始输入点,另一个对齐局部特征。
-
全局特征提取:
- 逐点 MLP:进一步应用 MLP 来提取高维局部特征,例如将每个点从 64 维映射到 1024 维。
- 全局最大池化:PointNet 使用全局最大池化来生成点云的全局特征。这一步将所有点的特征压缩为一个 1024 维的全局特征向量。最大池化操作可以确保网络不依赖于点的排列顺序,保证点云的无序性。
-
分类或分割层:
- 对于分类任务,全局特征直接用于全连接层以输出类别标签。输出一个输出为
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++ 通过分层采样、分组和特征提取的方法增强了对点云局部结构和多尺度特征的理解。
总结二者
这两个网络比较早期, 可以看出他俩只能做全局分类,也就是最终是对所有点云分类,而分割的结果倒是可以知道点云的类别,但是无法像物体检测,检出边界,后面会和大家分享物体检测的网络,希望大家多多关注啊!
相关文章:
【点云网络】 pointnet 和 pointnet++
这两个网络都是斯坦福大学的一个团队提出的 我先先看一下pointnet的网络架构,这个网络比较经典,是2016年提出的: PointNet 是一个专门用于点云数据处理的神经网络。它的设计目的是直接操作不规则的点云数据,而无需将点云数据转换为规则网格或…...
.net core mvc 控制器中页面跳转
方式一: 在控制器的方法内部结尾使用 return View(); 来打开与方法同名的页面,如: public ActionResult Login() { return View(); } 该写法打开 Login 页面。 方式二: 可以添加参数来显式地指定要跳转的页面࿰…...
大学适合学C语言还是Python?
在大学学习编程时,选择C语言还是Python,这主要取决于你的学习目标、专业需求以及个人兴趣。以下是对两种语言的详细比较,帮助你做出更明智的选择: C语言 优点: 底层编程:C语言是一种底层编程语言&#x…...
跳表原理课堂笔记
课程地址 跳表是一种基于随机化的有序数据结构,它提出是为了赋予有序单链表以 O(logn) 的快速查找和插入的能力 创建 首先在头部创建一个 sentinel 节点,然后在 L1 层采用“抛硬币”的方式来决定 L0 层的指针是否增长到 L1 层 例如上图中,L…...
Windows系统使用OpenSSL生成自签名证书
Nginx服务器添加SSL证书。 要在Windows系统的Nginx Web服务器上使用OpenSSL生成证书,并确保该证书能在局域网内被计算机信任,你可以按照以下详细步骤进行操作: 一、生成证书 下载并安装OpenSSL: 从OpenSSL的官方网站下载适用于Wi…...
定位new的表达式
这里面会涉及内存池,所谓的内存池就是池化技术,让我们使用的更加方便,里面有1.线存池和连接池。 如果想要高频释放内存池,要针对系统有个堆,而堆事针对我们需要的生擒一个特例,和我们家庭里面妈妈给爸爸的…...
矩阵特殊打印方式
小伙伴们大家好,好几天没更新了,主要有个比赛。从今天起继续给大家更新,今天给大家带来一种新的题型:矩阵特殊打印方式。 螺旋打印矩阵 解题思路 首先给大家看一下什么是螺旋方式打印: 就像这样一直转圈圈。 我想大多…...
OCC 拟合的平面转换为有界平面
问题:针对导入的部分面无法获取大小,同时也无法判断点是否在面上。但是OBB可以获取大小 解决方法:通过面拟合转换gp_Pln,然后获取面的内外边,重新修剪生成新的TopoDS_Face 疑问:本人对OCC中各种面的特性不…...
Nginx性能优化的几个方法
文章目录 一 Nginx 配置优化二 缓存利用三 压缩策略四 安全性优化修改配置文件修改 Nginx 源码使用第三方模块 五 监控和日志优化六 系统层面优化七 故障转移优化 小伙伴们平时使用 Nginx 是否有进行过性能优化呢?还是软件装好了就直接使用呢? 今天松哥和…...
Unity性能优化5【物理篇】
1.刚体的碰撞检测属性首选离散型 离散碰撞的缺点是小物体快速移动时,有丢失碰撞的风险。此下拉菜单中,越下面的选项碰撞检测频率越高,性能消耗也显著增加。因此在选择碰撞检测类型时尽量选择离散型。 2.优化碰撞矩阵 合理标记碰撞矩阵可以减…...
我的工具列表
开发工具 名称备注Visual Studio微软开发工具集Visual Studio Code代码编辑器Qt CreatorQt IDEQt Design StudioQt 界面设计器linguistQt 国际化翻译PyCharmPython IDEVMware Workstation Pro虚拟机MATLAB数据计算和仿真Keil单片机 IDENavicat Premium数据库管理MobaXterm远程…...
985研一学习日记 - 2024.11.5
一个人内耗,说明他活在过去;一个人焦虑,说明他活在未来。只有当一个人平静时,他才活在现在。 日常 1、起床6:00 2、健身1.5h 今天练了胸,然后跑了会步,又吃多了,明天少吃点! 3、…...
Vue2 与 Vue3 的区别
Vue.js 作为流行的前端框架,已经经历了多次版本的更新迭代,从 Vue2 到 Vue3 的转变不仅带来了新的功能,也在性能、开发体验等方面作出了显著改进。无论是对于新手还是有经验的开发者,了解这两个版本之间的差异都至关重要。本文将讨…...
虚拟现实技术课程开发思路
文章目录 组队选题立项分工建模说明:场景说明:交互说明: 结语: 前言:最近学弟学妹们反馈水水老师课程开始上强度了。不仅有翻转课堂,还有理论课实验课都要做东西出来。听说理论课是做什么博物馆什么的&…...
triangle_area_calculators库发布
最近将在pip网站上发布triangle_area_calculators库(我编写的python第三方库) triangle_area_calculators库用于计算不同类型及不同已知量的三角形面积 在triangle_area_calculators库中,有一个名为TriangleAreaCalculators的类 可以通过f…...
ClickHouse数据库SSL配置和SSL连接测试
目录 1.Server SSL配置介绍 2.Client SSL访问配置的介绍 3.my测试环境上开启ClickHouse Server SSL配置 & 客户端SSL访问的配置流程 4.附录 1)SSL证书的几种类型 单域名SSL证书 通配符SSL证书 多域名SSL证书 多域名通配符SSL证书 2)单域名…...
云渲染与汽车CGI图像技术优势和劣势
在数字时代,云渲染技术以其独特的优势在汽车CGI图像制作中占据了重要地位。云渲染通过利用云计算的分布式处理能力,将渲染任务分配给云端的服务器集群进行计算,从而实现高效、高质量的渲染效果。 这种技术的优势主要体现在以下几个方面&#…...
信号与噪声分析——第二节:随机变量的统计特征
2.1 单个随机变量的统计特征 随机变量是什么? 当随机变量X的取值个数是有限个的时候,我们称它为离散随机变量。 当随机变量X的取值个数是无限个的时候,我们称它为连续随机变量。 1. 分布函数和概率密度 1.分布函数 分布函数 定义为随机变…...
PHP网络爬虫常见的反爬策略
PHP网络爬虫在抓取数据时,常常会遭遇各种反爬策略。这些策略是网站为了保护自身数据不被恶意爬取而设置的。以下是一些常见的PHP网络爬虫反爬策略: IP限制: 这是最常见的反爬虫技术。通过限制IP的访问,可以有效防止恶意的爬虫攻击…...
java java.util.Scanner设置编码
在Java中,可以通过设置Scanner对象的编码来读取特定编码的输入。 使用Scanner的构造方法时,可以传入一个InputStream对象作为参数来设置编码。例如,如果要设置编码为UTF-8,可以这样写: InputStream inputStream Syst…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
