PointNet:利用深度学习对点云进行3D分类和语义分割
PointNet:利用深度学习对点云进行3D分类和语义分割
参考自,PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
代码仓库地址为:https://github.com/charlesq34/pointnet/
介绍
这次介绍的是一个比较基础的工作,针对空间点云,进行分类或者语义分割的框架,现在通常也被用作对RGB-D图像进行特征提取的部分。
该工作的目的就是,输入点云信息,得到每一个点的语义,或者是得到整个点云代表的物体信息。
如上图所示,该工作可以对点云数据进行分类,语义分割,部分分割等。
具体细节
首先,我们假设点云为一系列点的集合,记为 { P 1 , P 2 , . . . , P n } \{P_1, P_2, ...,P_n\} {P1,P2,...,Pn}
每一个点,都有坐标 ( x , y , z ) (x,y,z) (x,y,z),以及代表色彩的通道值,如果是rgb,那就是3个通道的值
这里直接给出整个PointNet的结构图

我们首先来看蓝色背景的部分,代表一个分类网络,输入是一个 n × 3 n\times 3 n×3 的点云信息,其中 n n n 是点的数目, 3 3 3 代表着空间坐标的维度
最终输出一个 k k k 维的分数,代表对 k k k 个物体的分类置信度。
我们来仔细看一下处理的过程:
1. Input Transform
这一部分由一个T-Net和矩阵乘法构成,最终输出的形状还是 n × 3 n\times 3 n×3
通过分析其代码,可以知道,该T-Net由3个卷积层,1个最大池化层以及2个线性层组合而成
最终输出一个 3 × 3 3\times 3 3×3 的变换矩阵,然后右乘上输入(输入的形状是 n × 3 n\times 3 n×3 )得到 n × 3 n\times 3 n×3 的输出
直觉上看,就是用一个小的网络学习一个线性变换,对输入的点云做处理
2. MLP
代码中使用的是两个卷积层:
- 先用一个 1 × 3 1\times 3 1×3 的卷积,输出通道数为 64 64 64
- 然后是一个 1 × 1 1\times 1 1×1 的卷积,输出通道也是 64 64 64
所以最终的输出是 n × 64 n\times 64 n×64 的形状
3. Feature Transform
和先前一样,用T-Net输出一个 64 × 64 64\times 64 64×64 的线性变换矩阵右乘上去
4. MLP
用三个 1 × 1 1\times1 1×1 的卷积,将通道数直接提升到了 1024 1024 1024,输出的形状也就是 n × 1024 n\times 1024 n×1024
本质上和线性层是一样的
5. MaxPool
过一个MaxPool,kernel大小设置成 1 × n 1\times n 1×n ,直接得到一个 1024 1024 1024 维的特征向量
6. MLP
最后直接用三个线性层,将输出转换成 k k k 维的分类置信度
语义分割的细节
这里合并了两个特征,形状分别是 n × 64 n\times 64 n×64 和 1024 1024 1024
将 1024 1024 1024 长度的特征向量复制 n n n 次,接在 64 64 64 维的向量后面,便得到 n × 1088 n\times 1088 n×1088 的输出
过一系列MLP,最终输出 n × m n \times m n×m 形状的矩阵, m m m 代表语义分割的类别
实验分析
物体分类
首先是在ModelNet40数据集上分类的准确率
基本上在3D输入上达到了SOTA的性能,整体正确率为89.2%。
语义分割

可以看到,比起3D全卷积的baseline,mIoU也是达到SOTA的性能
相关文章:
PointNet:利用深度学习对点云进行3D分类和语义分割
PointNet:利用深度学习对点云进行3D分类和语义分割 参考自,PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation 代码仓库地址为:https://github.com/charlesq34/pointnet/ 介绍 这次介绍的是一个比较基础的工作…...
第四十二章 Unity 下拉框 (Dropdown) UI
本章节我们介绍下拉框 (Dropdown),我们点击菜单栏“GameObject”->“UI”->“Dropdown”,然后调整它的位置,效果如下 其实它的本质就是一个下拉列表,然后选择列表中的一个选项而已。大家在很多网页中应该可以看到类似的UI元…...
STL常用梳理——STACK、QUEUE
STL——适配器篇 1、ListSTL list 容器介绍list使用 2、适配器介绍3、Deque容器Stack、Queue适配器实现 1、List STL list 容器介绍 STL list 容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list 容器中的元素可…...
Unity物理系统基本概念
前言:物理引擎仅仅是对现实物理的一种近似模拟。无论是从运算精度和时间连续性都不够准确。目的只是为了让游戏具备令人信服的物理表现,增强游戏的表现力和用户的沉浸感。 一、刚体Rigidbody 刚体是让物体产生物理行为的主要组件。一旦挂载了Rigidbody组…...
防止表单重复提交的几种方式,演示一个自定义注解方式的实现
防止表单重复提交的几种方式,演示一个自定义注解方式的实现 一、防止表单重复提交的几种方式方式一:Token 机制方式二:去重表(主要是利用 MySQL 的唯一索引机制来实现的)方式三:Redis 的 setnx方式四&#…...
《基于智能手机采集的PPG信号预测血管老化》阅读笔记
目录 一、论文摘要 二、论文十问 Q1: Q1论文试图解决什么问题? Q2: 这是否是一个新的问题? Q3: 这篇文章要验证一个什么科学假设? Q4: 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?…...
【大数据-调度工具】dolphinscheduler安装和遇到的问题
1.安装 安装步骤按照官网安装即可 官网:DolphinScheduler | 文档中心 (apache.org) 版本:3.1.5 2.踩坑记录 Q1.大文件无法上传 问题描述: 在资源中心中上传文件选择完大文件夹之后,选择确认之后确认按钮转了几圈圈之后就没…...
滑动轨迹生成的思路和代码分享-测试可过极验 90%机率
如有技术侵权、可联系本人下架 由于极验采用人工智能的方式对滑动的轨迹进行的验证,因此如果我们比较随意的生成鼠标滑动轨迹基本是肯定被封的,因此我们要详细分析一下鼠标轨迹的规律, 通之前介绍的调试手段,手工滑动滑块,获取到鼠标滑动轨迹的集合数组如下: [[-37,-41…...
【Linux】项目自动化构建工具make/makefile
🏖️作者:malloc不出对象 ⛺专栏:Linux的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录 前言一、make/makefile的背景二、…...
【系分范文】论软件需求获取技术以及应用
目录 论题论题介绍论文要点理论素材准备范文摘要正文论题 论软件需求获取技术以及应用 论题介绍 软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。软件需求获取是一个确定和理解不同的项目干系人的需求和约束的过程。需求获取是否科学、准备充分,对获取…...
vue2.0中post请求
vue2.0中post请求 三种格式:在vue中axois的用法:1、 multipart/form-data类型2、 x-www-form-urlencoded类型3、 application/json类型 三种格式: ○ Content-Type:x-www-form-urlencoded ○ Content-Type:multipart/form-data ○ Content…...
MySQL双写缓冲区(Doublewrite Buffer)
本文已收录至Github,推荐阅读 👉 Java随想录 文章目录 摘要为什么需要Doublewrite BufferDoublewrite Buffer原理Doublewrite Buffer相关参数总结 摘要 InnoDB是MySQL中一种常用的事务性存储引擎,它具有很多优秀的特性。其中,Dou…...
免费开源的Umi-OCR 文字识别工具
大家好,我是小寻,欢迎关注公众号:工具优选,免费领取优质项目源码和常用工具,还可以加入我的交流群! 如今,在日常生活和工作中,我们经常需要捕捉屏幕截图并识别其中的文本信息。比如别人给你发资料时直接发…...
如何让微信小程序弹窗滚动条设置在最上面
最近发现一个事情搞得很烦,微信小程序的弹窗内容可以滚动的时候,要保证每一次打开都在最上面,研究了一下终于发现了怎么解决 第一步 首先得把你的弹窗里面的内容用scroll-view标签包起来,像这样 <scroll-view style"hei…...
c语言-指针
指针详解 这段时间在看 Linux内核,深觉C语言功底不扎实,很多代码都看不太懂,深入学习巩固C语言的知识很有必要。先从指针开始。 什么是指针 C语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组&…...
Jenkins集成SonarQube实现代码质量检查
文章目录 一、前提配置1.1 安装及配置SonarQube Scanner插件1.2 配置SonarQube servers 二、非流水线集成SonarQube1.1 配置非流水线任务 三、流水线集成SonarQube 一、前提配置 1.1 安装及配置SonarQube Scanner插件 (1) 点击【系统管理】>【插件管理】>【可选插件】搜…...
2023 谷歌I/O发布会新AI,PALM 2模型要反超GPT-4,一雪前耻!
文章目录 1 前言2 Google I/O 发布者大会3 PaLM 2模型3 Bard项目4 其他AI工具4.1 AI 图片编辑 Magic Editor4.2 Duet AI 办公4.3 Universal Translator 翻译工具4.4 Google 沉浸式导航4.5 Google 搜索引擎 5 讨论 1 前言 每年必看两大会,苹果发布会和谷歌发布会&am…...
MySQL和Redis如何保证数据一致性?
前言 由于缓存的高并发和高性能已经在各种项目中被广泛使用,在读取缓存这方面基本都是一致的,大概都是按照下图的流程进行操作: 但是在更新缓存方面,是更新完数据库再更新缓存还是直接删除缓存呢?又或者是先删除缓存再…...
Markdown使用(超详细)
(HBuilderX) 掌握md及HBuilderX对md的强大支持。如果没有点右键设置自动换行,可按Alt滚轮横向滚动查看。 很多人只把markdown用于网络文章发表,这糟蹋了markdown。 markdown不止是HTML的简化版,更重要的是txt的升级版…...
yolov5实现扑克牌识别的产品化过程
文章目录 介绍项目下载硬件准备软件环境素材获取自行获取素材网盘获取图片标注模型训练窗口截图窗口截图(HWND)桌面截图wgc方法最终采用的方式WGC使用方法如何保存灰度图片python 如何加载dll库图片推理扑克牌逻辑ui编写模型加密软件授权软件加密软件打包安装包制作...
全国霸王餐 API 接口聚合平台,Java 后端多数据源路由策略设计
全国霸王餐 API 接口聚合平台,Java 后端多数据源路由策略设计 在构建全国性的霸王餐(Free Meal)与外卖CPS聚合平台时,单一的数据源架构往往无法支撑海量的并发请求与复杂的业务隔离需求。随着业务规模的扩张,系统通常面…...
2025_NIPS_G1: Teaching LLMs to Reason on Graphs with Reinforcement Learning
文章核心总结与创新点 核心内容 本文针对大型语言模型(LLMs)在图推理任务中表现有限的问题,提出了一种基于强化学习(RL)的方法G1。通过在大规模合成图论任务数据集Erdős上训练,G1显著提升了LLMs的图推理能力,且在未见过的任务、领域和图编码方案中表现出强泛化性,同…...
【硬件小达人-基础篇(1)】-电阻那些事儿
文章目录什么是电阻电阻的功率一定要降额使用电阻的额定电压和精度额定电压精度PCB设计中,电阻的作用1.限流电阻保护敏感元件常用经验2.分压电阻电压反馈ADC采集电路一些经验3.分流电阻4.上拉电阻/下拉电阻什么是上下拉作用一、 防止引脚悬空,消除外部干…...
定制化水源热泵技术,实现低品位余热高效捕获
低品位余热的高效回收利用,核心在于能否打造出适配水源特性与工况需求的核心热泵机组,只有实现对余热资源的精准捕获,才能真正将闲置余热转化为可利用的清洁能源。针对鲁西南矿区的水源特性与极端气候工况,瑞冬为当地某铁矿项目针…...
STM32F103ZET6【标准库函数开发】-----TM1638模块驱动4位8段共阴极数码管
1. 硬件环境搭建 第一次接触TM1638模块时,我手头正好有块吃灰的正点原子战舰开发板。这个组合对初学者特别友好,就像乐高积木一样容易上手。先说说需要准备的硬件清单: 正点原子STM32F103ZET6开发板(其他型号也行,但引…...
4个维度解析多网盘协同工具:提升云资源管理效率 | 网盘直链下载助手
4个维度解析多网盘协同工具:提升云资源管理效率 | 网盘直链下载助手 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移…...
5步掌控Windows Defender:开源工具实现永久安全策略定制
5步掌控Windows Defender:开源工具实现永久安全策略定制 【免费下载链接】defender-control An open-source windows defender manager. Now you can disable windows defender permanently. 项目地址: https://gitcode.com/gh_mirrors/de/defender-control …...
JetBrains Runtime实战配置指南:解决IDE性能瓶颈的5个核心技巧
JetBrains Runtime实战配置指南:解决IDE性能瓶颈的5个核心技巧 【免费下载链接】JetBrainsRuntime Runtime environment based on OpenJDK for running IntelliJ Platform-based products on Windows, macOS, and Linux 项目地址: https://gitcode.com/gh_mirrors…...
Unity资源提取工具AssetStudio完全指南:从问题解决到专业应用
Unity资源提取工具AssetStudio完全指南:从问题解决到专业应用 【免费下载链接】AssetStudio AssetStudio - Based on the archived Perfares AssetStudio, I continue Perfares work to keep AssetStudio up-to-date, with support for new Unity versions and addi…...
Cache 维护实战:深入理解 ARMv8-A 架构下的 Invalidate 与 Clean 操作
1. 为什么需要关注Cache维护? 在嵌入式开发中,Cache就像是你办公桌上的文件架。当你频繁访问某些数据时,CPU会把这些数据放在Cache里,就像把常用文件放在手边一样。但问题来了:如果文件内容更新了(比如内存…...
