当前位置: 首页 > news >正文

PointNet和PointNet++论文解读

目录

一、导言

二、PointNet介绍

三、PointNet网络结构

1、损失函数

2、正则化

四、PointNet++

1、分层次的点集抽象层


一、导言

        PointNet来自CVPR2017,是最早直接处理点云数据用于计算机视觉的模型,并运用于分割、检测、场景理解任务,PointNet++来自NIPS2017(这么高产吗?),作为PointNet的改进包括添加了多尺度提取特征等工作,优化PointNet网络架构。

二、PointNet介绍

        2017年之前大部分工作都是将3D点云体素化转为多个视角的2D图像,来进行常规的卷积神经网络,而没有直接使用点云进行提取特征。

        该论文提出只输入点的坐标信息,考虑通过法向量或者角度信息,来添加更多的维度。

(1)点云无序性解决:使用单一的对称函数,本文使用最大池化层,来解决无序性的问题。通过最大池化层方法可以保证所有点云没有先后顺序,聚合成全局点集特征。

对称函数:

        对于无序点云数据x_i \in \mathbb{R}^d,定义一组函数f: X\rightarrow \mathbb{R},将点云映射到向量上,其中γ和h为MLP网络。

                                         f(x_1,x_2,...,x_n)=\gamma(MAX_{i=1,...,n}{h(x_i)})

(2)特征对齐:考虑到网络预测结果对特定的变换(如刚性变换)具有不变性,提出通过T-Net变换矩阵提取特征并与输入feature进行乘法。

T-Net结构:

T-Net与原特征乘法通道连接: 

                                ​​​​​​​        

(3)稳定性:由于模型可以拟合任何连续函数,而对于微小扰动不会影响函数拟合,通过在输入点云中引入一定噪声点,以及删除一定数据来增强网络的鲁棒性,提高预测效果。 

三、PointNet网络结构

        PointNet网络的主干网络保持不变,对于分类和分割来说有不同的Head,对于分割头有更多不同层的特征进行融入,提高特征多维化。但是这网络特征提取方式过于简单,也造成对于局部的,特定场景的,效果可能有缺陷。

1、损失函数

        对于不同问题的损失,均可以表示为特定问题Head的损失加上特征变换矩阵的损失。

(1)分类问题:分类损失交叉熵

(2)分割问题:将分割问题转换为每个点的分类问题,再用交叉熵

(3)特征变换矩阵损失:理想情况下特征矩阵应该是正交矩阵,而实际的特征矩阵可能有所偏差,根据正交矩阵的性质,一定有AA^T=I,所以我们将特征变换矩阵损失表示为:        ​​​​​​​           

                                                      L_{reg}=||I-AA^T||^2_F

2、正则化

        论文中考虑在第二次使用T-Net时添加正则化,来提高模型鲁棒性。

四、PointNet++

        解决了PointNet不能很好地提取局部特征的问题,并进一步提取不同尺度下的特征。

1、分层次的点集抽象层

        使用多个点集抽象层(SA层,Set Abstraction)来进行逐层特征提取,差别在于每一个SA模块的采样点和采样数量不一样,会逐层增大。

        SA模块包括三个关键层:Sampling Layer、Grouping Layer、PointNet Layer。

(1)采样层:从输入点中使用迭代最远点采样法(FPS)选择一组局部区域质心点。

FPS算法:

        首先,从输入点集中随机选择一个点作为第一个采样点。

        然后,从剩余点集中选择与已选采样点中最远的点作为下一个采样点

        重复第二步,直到采样足够多的点作为中心点。

(2)分组层:通过采样的质心以及邻近来构造局部区域集

五、PointNet++网络结构

论文参考1:PointNet
论文参考2:PointNet++ 

相关文章:

PointNet和PointNet++论文解读

目录 一、导言 二、PointNet介绍 三、PointNet网络结构 1、损失函数 2、正则化 四、PointNet 1、分层次的点集抽象层 一、导言 PointNet来自CVPR2017,是最早直接处理点云数据用于计算机视觉的模型,并运用于分割、检测、场景理解任务,P…...

Pytest测试报告生成专题

在 pytest 中,你可以使用多个选项生成不同格式的测试报告。以下是几种常用的生成测试报告的方法: 1. 生成简单的测试结果文件 你可以使用 pytest 的 --junitxml 选项生成一个 XML 格式的测试报告,这个报告可以与 CI/CD 工具集成。 pytest --junitxml=report.xml这将在当前…...

【在Python中读取Excel文件内容】

在Python中读取Excel文件内容,常用的库有xlrd(主要用于读取.xls文件,但不支持.xlsx的较新版本),以及openpyxl(专门用于读取和写入.xlsx文件)和pandas(提供了一个更高级别的接口来处理…...

尚品汇-首页三级分类实现-nginx静态代理生成的静态页面(二十六)

目录: (1)问题详解 (2)首页商品分类实现 (3)修改web-all模块 (4)页面渲染 (1)问题详解 (2)首页商品分类实现 前面做了…...

HTML 段落

HTML 段落 概述 HTML&#xff08;超文本标记语言&#xff09;是构建网页的标准语言&#xff0c;而段落是构成网页内容的基本单元。在HTML中&#xff0c;段落是通过<p>标签来定义的。本文将详细介绍HTML段落的相关知识&#xff0c;包括段落的基本结构、样式设置、以及在…...

Http自定义Header导致的跨域问题

最近写一个小项目&#xff0c;前后端分离&#xff0c;在调试过程中访问远程接口&#xff0c;出现了CORS问题&#xff0c;接口使用的laravel框架&#xff0c;于是添加了解决跨域的中间件&#xff0c;但是前端显示仍存在跨域问题&#xff0c;以为自己写的有问题&#xff0c;检查了…...

20240805 每日AI必读资讯

世界首例&#xff01;AI机器人做牙科手术&#xff0c;8倍速诊疗比人类医生更精准 - Perceptive&#xff1a;让人工智能控制的自主机器人&#xff0c;首次对人类患者进行了全过程的牙科手术&#xff0c;速度大约是人类牙医的8倍。 - 两项新技术 1、OCT 3D成像系统&#xff1a;…...

COMSOL金属氢化物-放氢过程

在此记录下放氢过程的软件设置思路 1、采用的是"达西定律""层流" 物理场&#xff0c;其中"层流"物理场选择了”弱可压缩流动“&#xff0c;这里主要是选择”可压缩流动“的话&#xff0c;算出来的瞬时流量值跟实测差距太大了。 2、设置"达西…...

Unity2D在处理精灵表过程中出现不清晰的解决方法

问题阐述 在我们拿到一张精灵表的时候&#xff0c;我们通常要进行切割。但这样往往导致切割的效果不是很好&#xff0c;这里举一个简单的例子。 这是举例子用到的精灵表 我们先对他进行切割处理。 将single改为Multiope 进入精灵编辑器后&#xff0c;我们选择切割方式 此时我…...

C语言第13篇

1.下面程序是计算n个数的平均值,请填空.______ #include<stdio.h> void main( ) { int i,n; float x,avg0.0; scanf("%d",&n); for(i0;i<n;i) { scanf("%f",&x); avgavg______; } avg________; printf("avg%f\n",avg); } A) …...

Meta Reality Labs:巨额亏损背后的挑战与展望

一、财务概况 自2020年以来,Meta的Reality Labs部门累计亏损已超过450亿美元,其中2023年的亏损达到160亿美元,2024年第一季度亏损38亿美元,分析师预计第二季度亏损可能接近50亿美元。尽管投入巨大,Reality Labs的收入却呈现下降趋势,与不断增加的支出形成鲜明对比。 二…...

linux安装docker(实操教程)

一、安装前准备工作 1.查看服务器操作系统版本 2.查看服务器的操作系统内核版本 3.安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2如果不是root用户登陆的系统&#xff0c;需要手动输入sudo -i切换到root帐户 4.设置阿里云docker-ce镜像源 yum-c…...

隐写工具steghide linux编译安装

1、git clone https://github.com/StefanoDeVuono/steghide.git 2、autoreconf -i 3、./configure 4、make 编译完成后再src目录下又steghide执行下程序 报错&#xff1a;configure: error: cannot find required auxiliary files: compile时需要执行autoreconf 如果往j…...

山寨手机 老手机 山寨平板 提高速度 cpu超频的方法360超级root和setup

第一&#xff0c;挂机 &#xff0c;按音量键 &#xff0c;看机器的配置&#xff0c;注意&#xff0c;山寨机器的 安卓版本不可信啊&#xff0c;安卓4.4.2会标注安卓10 第二 &#xff0c;下载360超级root, http://2012rs.mysxl.cn/ https://xdaforums.com/t/setcpu-for-root-us…...

【两整数之和】python刷题记录

R3-位运算专题。 仲夏之约&#xff0c;留尺一寸&#xff0c;小记一事&#xff0c;算是了结。 无进位和 与 异或运算 规律相同&#xff0c;进位 和 与运算 规律相同&#xff08;并需左移一位&#xff09; 牛啊牛啊 class Solution:def getSum(self, a: int, b: int) -> int…...

常见cms漏洞之dedecms

DedeCMS是织梦团队开发PHP 网站管理系统&#xff0c;它以简单、易用、高效为特色&#xff0c;组建出各种各样各具特色的网站&#xff0c;如地方门户、行业门户、政府及企事业站点等。 下载地址请网上自行寻找 搭建方式选择php study 首先搭建环境 #前台http://localhost/dedecm…...

基于微信小程序的微课堂笔记的设计与实现(源码+论文+部署讲解等)

博主介绍&#xff1a;✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍&#xff1a;我是程序员阿龙&#xff…...

如何构建AI产品:OpenAI与前Shopify产品负责人Miqdad Jaffer的经验分享

一、引言 构建AI产品是一项复杂且充满挑战的任务&#xff0c;尤其是当涉及到面向消费者的解决方案时。在最近的一期播客节目中&#xff0c;OpenAI 和前Shopify产品负责人 Miqdad Jaffer 分享了他在构建AI产品的经验和策略。下面我们将探讨构建AI产品的最佳实践&#xff0c;以及…...

C++的结构体、联合体、枚举类型(一)

1.C++的结构体 2.C++的联合体 3.C++的枚举类型 1.C++的结构体 (1)C++中定义结构体变量,可以省略struct关键字 struct XX{…}; XX x;//定义结构体变量直接省略struct(2)C++结构体中可以直接定义函数,谓之成员函数(又叫方法)(3)在成员函数中可以直接访问该结构体的成员变…...

白骑士的PyCharm教学高级篇 3.5 团队协作与集成开发

系列目录 上一篇&#xff1a;白骑士的PyCharm教学高级篇 3.4 服务器部署与配置 在现代软件开发中&#xff0c;团队协作和集成开发环境&#xff08;IDE&#xff09;的使用至关重要。PyCharm不仅提供了强大的个人开发支持&#xff0c;还为团队协作和集成开发提供了丰富的功能和工…...

c++ 21 指针

*像一把钥匙 通过钥匙去找内存空间 间接修改内存空间的值 不停的给指针赋值 等于不停的更改指针的指向 指针也是一种数据类型 指针做函数参数怎么看都不可以 指针也是一个数据类型 是指它指向空间的数据类习惯 作业 野指针 向null空间地址copy数据 不断改变指针指向 …...

书籍将整数字符串转成整数值(5)0804

题目 给定一个字符串str&#xff0c;如果str符合日常书写的整数形式&#xff0c;并且属于32位整数的范围&#xff0c;返回str所代表的整数值&#xff0c;否则返回0。 举例 str“123” 返回 123 str“023” 因为023 不符合日常的书写习惯&#xff0c;所以返回0 str“A13” …...

计网:从输入URL到网页显示期间发生了什么

1、URL包含的信息 我们输入的url中包含着一些信息&#xff1a; http&#xff1a;表示的此次我们使用的什么协议/www.baidu.com&#xff1a;表示的是我们想要访问的服务器名称&#xff0c;也就是域名dir3/home.html&#xff1a;表示我们所要访问的资源 2、通过DNS解析URL获得I…...

pg数据库存储过程

一、存储过程 CREATE OR REPLACE PROCEDURE public.p_dm_stock_fx_hangye_d(IN dt_date character varying) LANGUAGE plpgsql AS $procedure$ begin delete from dm_stock_fx_hangye_d where stock_date dt_date; commit; insert into dm_stock_fx_hangye_d select t…...

Arduino PID库 (2) –微分导致的过冲

Arduino PID库 &#xff08;2&#xff09; – Derivative Kick 参考&#xff1a;手把手教你看懂并理解Arduino PID控制库——微分冲击 pid内容索引-CSDN博客 Arduino PID库 &#xff08;1&#xff09;– 简介 问题 此修改将稍微调整derivative term。目标是消除一种称为“…...

基于Tensorflow.js的花卉识别编程实践

使用TensorFlow.js进行编程有许多优点&#xff0c;特别适合开发机器学习和深度学习的应用。TensorFlow.js可以直接在浏览器中运行&#xff0c;无需服务器或特殊环境配置。这使得开发者可以轻松地创建和部署基于Web的机器学习应用。TensorFlow.js提供了许多预训练模型&#xff0…...

繁简之争:为什么手机芯片都是 ARM

RISC 和 CISC 指令集 之前的文章《揭秘 CPU 是如何执行计算机指令的》中说到&#xff0c;如果从软件的角度来讲&#xff0c;CPU 就是一个执行各种计算机指令&#xff08;Instruction Code&#xff09;的逻辑机器。 计算机指令集是计算机指令的集合&#xff0c;包括各种类型的…...

《机器人SLAM导航核心技术与实战》第1季:第8章_激光SLAM系统

视频讲解 【第1季】8.第8章_激光SLAM系统-视频讲解【第1季】8.1.第8章_激光SLAM系统_Gmapping算法-视频讲解【第1季】8.2.第8章_激光SLAM系统_Cartographer算法-视频讲解【第1季】8.3.第8章_激光SLAM系统_LOAM算法-视频讲解 第1季&#xff1a;第8章_激光SLAM系统 先 导 课第…...

Qt之Gui

组件依赖关系 应用 #mermaid-svg-GADicZtZJRVVUeiF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GADicZtZJRVVUeiF .error-icon{fill:#552222;}#mermaid-svg-GADicZtZJRVVUeiF .error-text{fill:#552222;stroke:#…...

Redis的回收策略(淘汰策略)

volatile-lru &#xff1a;从已设置过期时间的数据集&#xff08; server.db[i].expires &#xff09;中挑选最近最少使用的数据淘汰 volatile-ttl &#xff1a; 从已设置过期时间的数据集&#xff08; server.db[i].expires &#xff09; 中挑选将要过期的数据淘汰 volatile…...

基于Springboot的个人博客系统

文章目录 介绍访问地址一、功能展示1.前台首页归档相册留言关于我登陆注册 2.后台管理系统登陆页面首页文章管理相册管理写博客访客统计 介绍 基于Java&#xff08;Springboot&#xff09;可以用做毕业设计的个人博客系统&#xff0c;包括网站前台和后台管理系统两部分。网站前…...

J030_TCP通信

一、需求描述 使用TCP协议进行通信 1.1 一发一收 1.1.1 Client package com.itheima.tcp1;import java.io.DataOutputStream; import java.io.OutputStream; import java.net.Socket;public class Client {public static void main(String[] args) throws Exception {//1、…...

单片机复习题

第1章 思考题及习题 一、填空 1. 除了单片机这一名称之外&#xff0c;单片机还可称为 或 。 2.单片机与普通微型计算机的不同之处在于其将 、 、和 三部分&#xff0c;通过内部 连接在一起&#xff0c;集成于一块芯片上。 …...

Java | Leetcode Java题解之第322题零钱兑换

题目&#xff1a; 题解&#xff1a; public class Solution {public int coinChange(int[] coins, int amount) {int max amount 1;int[] dp new int[amount 1];Arrays.fill(dp, max);dp[0] 0;for (int i 1; i < amount; i) {for (int j 0; j < coins.length; j)…...

【MYSQL】MYSQL逻辑架构

mysql逻辑架构分为3层 mysql逻辑架构分为3层 1). 连接层&#xff1a;主要完成一些类似连接处理&#xff0c;授权认证及相关的安全方案。 2). 服务层&#xff1a;在 MySQL据库系统处理底层数据之前的所有工作都是在这一层完成的&#xff0c;包括权限判断&#xff0c;SQL接口&…...

SQL Server数据库的清洁工:垃圾回收机制解析

SQL Server数据库的清洁工&#xff1a;垃圾回收机制解析 在SQL Server的复杂而精密的数据库管理系统中&#xff0c;垃圾回收机制扮演着至关重要的角色。它负责清理不再需要的数据&#xff0c;释放空间供新数据使用。本文将深入探讨SQL Server中数据库垃圾回收机制的工作原理&a…...

使用MailKit在.NET Core中收发邮件的完整示例

在.NET Core中处理邮件收发操作时&#xff0c;MailKit是一个非常强大的库。它支持SMTP、POP3、IMAP等多种协议&#xff0c;可以轻松实现发送、接收、以及管理邮件的功能。下面我们将通过一个详细的示例&#xff0c;展示如何在.NET Core项目中使用MailKit来收发邮件&#xff0c;…...

flask高频面试题

目录 高频面试题及答案1. 如何在Flask中处理数据库迁移&#xff1f;2. Flask如何处理文件上传&#xff1f;3. 如何在Flask中处理跨域请求&#xff08;CORS&#xff09;&#xff1f;4. 如何在Flask中实现用户认证&#xff1f;5. Flask如何处理会话&#xff1f;6. Flask如何处理表…...

【算法模板】图论:Tarjan算法求割边割点

概念 割边&#xff08;Bridge 或 Cut Edge&#xff09; 定义&#xff1a; 在一个无向连通图中&#xff0c;如果删除某条边后&#xff0c;图不再连通&#xff08;即任意两点之间不能相互到达&#xff09;&#xff0c;则称该边为割边。割边也被称为桥&#xff0c;因为它像桥梁…...

python——joblib进行缓存记忆化-对计算结果缓存

问题场景 在前端多选框需要选取多个数据进行后端计算。 传入后端是多个数据包的对应路径。 这些数据包需要按一定顺序运行&#xff0c;通过一个Bag(path).get_start_time() 可以获得一个float时间值进行排序&#xff0c;但由于数据包的特性&#xff0c;这一操作很占用性能和时…...

01 计算机系统基础-2

操作系统 进程管理 进程管理是操作系统的核心&#xff0c;但如果设计不当&#xff0c;就会出现死锁的问题。如果一个进程在等待一件不可能发生的事&#xff0c;则进程就死锁了。而如果一个或多个进程产生死锁&#xff0c;就会造成系统死锁。基于死锁产生机制及解决方案&#…...

2024死磕小红书,一定能赚到钱!

​2024死磕小红书&#xff0c;一定能赚到钱&#xff01;在文末领取小红书运营完全指南电子书 从2023年起&#xff0c;小红书这股热乎劲儿就像开了挂&#xff0c;突然间就成了人人想蹭的“显学”。大伙儿都想趁着平台红利期&#xff0c;分一杯羹。说来惭愧&#xff0c;我从2020年…...

关于JS中的AO对象

在JavaScript中&#xff0c;AO对象&#xff08;Activation Object&#xff0c;激活对象&#xff09;是与函数执行上下文相关的概念。每当一个函数被调用时&#xff0c;都会创建一个新的执行上下文&#xff0c;这个执行上下文包含一个AO对象&#xff0c;用于存储在函数执行期间创…...

49 序列解包的多种形式和用法

序列解包&#xff08;Sequence Unpacking&#xff09;是 Python 中非常重要和常用的一个功能&#xff0c;可以使用非常简洁的形式完成复杂的功能&#xff0c;提高了代码的可读性&#xff0c;减少了程序员的代码输入量。 x, y, z 1, 2, 3 # 多个变量同时赋值 v_tuple (False…...

2-55 基于matlab的 永磁同步电机滑膜观测器估算电机转速

基于matlab的 永磁同步电机滑膜观测器估算电机转速。精度比传统观测器精度高。分别输出电机转速估计值与实际值、电机转速估计误差、电机转子位置估计值与实际值、电机转子位置估计误差。程序已调通&#xff0c;可直接运行。 2-55滑膜观测器估算电机转速 - 小红书 (xiaohongsh…...

手机在网状态接口如何对接?(二)

一、什么是手机在网状态&#xff1f; 传入手机号码&#xff0c;查询该手机号的在网状态&#xff0c;返回内容有正常使用、停机、在网但不可用、不在网&#xff08;销号/未启用/异常&#xff09;、预销户等多种状态。 二、手机在网状态使用场景&#xff1f; 1.用户验证与联系…...

红黑树实现详解

实践意义 在各方面&#xff0c;红黑树要比AVL树性能更好&#xff0c;用途也更广泛 map&set底层都主要靠红黑树 概念 性质 插入时&#xff0c;抽象图 cur为新插入 插入时颜色更新逻辑图 板书...

计算机基础(Windows 10+Office 2016)教程 —— 第5章 文档编辑软件Word 2016(上)

第5章 文档编辑软件Word 2016 5.1 Word 2016入门5.1.1 Word 2016 简介5.1.2 Word 2016 的启动5.1.3 Word 2016 的窗口组成5.1.4 Word 2016 的视图方式5.1.5 Word 2016 的文档操作5.1.6 Word 2016 的退出 5.2 Word 2016的文本编辑5.2.1 输入文本5.2.3 插入与删除文本5.2.4 复制与…...

知识库、微调、AI Agent

Agent执行工作的过程是需要大模型来配合的&#xff0c;大模型充当一个大脑&#xff0c;给Agent下达指令。Agent当接收到这个指令的时候&#xff0c;然后去执行。 大模型参数的数量直接影响大模型的生成能力和推理能力&#xff0c;也直接影响了大模型的使用效果。参数越多&…...

目标检测——YOLOv10: Real-Time End-to-End Object Detection

YOLOv10是在YOLOv8的基础上&#xff0c;借鉴了RT-DETR的一些创新点改进出来的 标题&#xff1a;YOLOv10: Real-Time End-to-End Object Detection论文&#xff1a;https://arxiv.org/pdf/2405.14458源码&#xff1a;https://github.com/THU-MIG/yolov10 1. 论文介绍 在过去的几…...