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

pointnet和pointnet++点云分割和分类

目录

1. pointnet 

1.1 点云数据的特点

1.2 模型功能 

1.3 网络结构

1.3.1 分类网络 

1.3.2 分割网络

2. pointnet++

2.1 模型

2.2 sampling layer组件

2.3 grouping layer

2.4 pointnet


 

1. pointnet 

1.1 点云数据的特点

 (1)无序性:不同于图像中的像素数组或体积网格中的体素数组,点云是一组没有特定顺序的点。换句话说(permutations of the input set in data feeding order. ),点云中的点集合排列顺序改变了,点云本身的目标类别和分割结果是不变的(符合交换律,比如加法、乘法、取最值等操作)。

(2)点之间的交互:点不是孤立的,而相邻的点形成了一个有意义的子集。因此,该模型需要能够从附近的点捕获局部结构,以及局部结构之间的组合相互作用。

(3)变换无关性:作为一个几何对象,点集的特征表示应该对某些变换是不变的。例如,旋转和平移点不应该修改全局点云类别或点的分割。

1.2 模型功能 

(1)模型输入:网络的输入是坐标点集合(x,y,z);

(2)分类输出:输出有两个分支,分类分支输出是k个scores对应k个类别,哪个值大就是那个类别;

(3)分割输出:分割分支输出的是nxm的矩阵scores,有n个点,每个点有m个分数,m个分数对应m个语义分割类别,哪个值大,当前点就属于哪个类别。

1.3 网络结构

1.3.1 分类网络 

(1)input transform和feature transform是个小网络,其中input transform用来预测放射变换矩阵,用于对齐输入的点云数据,feature transform是用来对齐特征数据,后期的论文证明是没多大用处的,可以忽略;

(2)论文中n是1024(均匀采样),论文中只用到了(x,y,z)坐标,所以输入是nx3点云矩阵,首先经过mlp(64,64),即两个多层感知机全连接网络,维度变化3->64->64,输出nx64特征向量;

(3)再经过3个多层感知机,维度变化64->64->128->1024,升维度,输出nx1024特征向量,方便后面的maxpooling提取全局特征(即降维操作);

(4)提取特征后,使用maxpooling操作,提取全局特征,nx1024,每个点有1024维度特征,求所有点的全局特征,就是在每个维度上取最大值,则nx1024 -> 1x1024;这1024个数据就代表真个点云数据的全局特征;

(5)再接一个mlp(512,256,k),作为分类层,1024->512->256->k全连接节点变换,k个类别分数,哪个值大就是那个类别。

1.3.2 分割网络

(1)前面的特征提取层是一样的,提取得到局部特征nx64,和全局特征1x1024;

(2)融合局部特征和全局特征,直接concat在一起,变成nx1084,每个点都有1084维度特征;

(3)再接mlp层,维度变换1084->512->256->128,再接mlp层,维度变化128->128->m,这样特征矩阵变化nx1084 -> nxm;

(4)nxm,即n个点,每个点都有m个类别分数,哪个大,则当前点的分割类别就属于对应的类别。

2. pointnet++

pointnet模型简单一句话,就是mlp提取特征,再经过分类层进行分类,即可完成对输入点云数据的分类,公式概括如下。

其中MAX是最大池化层。

由于只是使用maxpooling来聚合整个点云的特征,pointnet是不能捕获不同尺度下的局部特征。pointnet适用于目标数据的尺度变化不大的场景。

2.1 模型

(1)pointnet++特征提取层是一个层级特征提取层,由(sampling,grouping and pointnet三个组件组成), 然后就是分割头(unet形式)和分类头(全连接层)。

(2)网络输入的是Nx(d+C)矩阵,N是点个数,d维坐标,C维点特征,输出矩阵是N'x(d+C'),其中N'是采样后的点个数,C'是点特征向量维度。

(3)每次grouping layer对局部进行KNN聚类,输入到pointnet layer再对每个cluster提取特征,这个过程相当于2D卷积操作,同样是使用层级结构,放大感受野,提取多尺度特征。

2.2 sampling layer组件

sampling layer是迭代最远距离采样IFPS算法,用采样后的点云尽可能的覆盖到原始点云所在范围,代表当前点云数据,论文中是提取1024个点,详细IFPS算法介绍可参考:

iterative farthest point sample (IFPS or FPS)-CSDN博客

如果输入Nx(d+C),则输出N'x(d+C) 

2.3 grouping layer

(1)输入点集合坐标Nx(d+C)和对应的中心坐标N'xd,对每一个中心坐标利用KNN在点集合中找K个最近的点,在一个cluster中,找出的每个点维度是(d+C)特征;

(2)对于一个cluster的维度则是Kx(d+C),有N'个中心,则输出维度是N'xKx(d+C)

2.4 pointnet

(1)输入是N'xKx(d+C),有N'个聚类中心点,每个聚类中心有K个点;

(2)对每个cluster投入到pointnet层,提取特征,即Kx(d+C) -> (d+C');

(2)有N'个cluster,所以输出的是N'x(d+C')。

真正实现的时候是:(b,npoints,nsamples,features) = (b,N',K,d+C),要channel first,变成

(b,features,npoints,nsamples) = (b,d+C,N',K),比如变成(64,3,1024,16)

待续。。。

相关文章:

pointnet和pointnet++点云分割和分类

目录 1. pointnet 1.1 点云数据的特点 1.2 模型功能 1.3 网络结构 1.3.1 分类网络 1.3.2 分割网络 2. pointnet 2.1 模型 2.2 sampling layer组件 2.3 grouping layer 2.4 pointnet 1. pointnet 1.1 点云数据的特点 (1)无序性&#xff1a…...

Docker-compose和Consul

目录 1、docker-compose 简介 1.1 Docker-compose 简介 2、compose 部署 2.1 Docker Compose 环境安装 2.2 YAML 文件格式及编写注意事项 * * * * 2.3 Docker Compose配置常用字段 2.4 Docker Compose 常用命令 2.5 Docker Compose 文件结构 3、Consul 3.1 什么是…...

AFL模糊测试+GCOV覆盖率分析

安全之安全(security)博客目录导读 覆盖率分析汇总 目录 一、代码示例 二、afl-cov工具下载 三、编译带覆盖率的版本并启动afl-cov 四、AFL编译插桩并运行afl-fuzz 五、结果查看 AFL相关详见AFL安全漏洞挖掘 GCOV相关详见GCOV覆盖率分析 现将两者结合,即进…...

leetcode 965.单值二叉树

/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ //遍历判断函数 bool TreeCompare(struct TreeNode* root,int x) {if(root NULL)return true;if(root->val ! x)return false…...

云计算:掌控未来,一触即发!

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…...

Mybatis对数据库进行增删查改以及单元测试

这篇写的草率了,是好几天前学到,以后用来自己复习 UserInfo import lombok.Data;Data public class UserInfo {private int id;private String name;private int age;private String email;//LocalDateTime可用于接收 时间}Mapper UserMapper pack…...

.bat 批处理 - 查看 MySQL 状态然后启动或关闭

我的 MySQL 服务名为 MySQL80,具体的以实际为准: echo off setlocal:check_status cls sc query MySQL80 | find "RUNNING" > nul 2>&1 if %errorlevel%0 (echo Current status of MySQL service: Running ) else (echo Current st…...

跳转传参有几种方式

在Vue Router中,实现路由跳转并传参有以下几种方式: 1. 路由参数(Route Params): 可以通过在路由配置中定义动态的占位符(即路由参数),并在跳转时通过URL路径来传递参数。这种方式适…...

DVWA靶场Medium难度部分解析

前言 好久没做题,不想吹牛逼了,消停做点题QAQ Vulnerability: Command Injection 这题不咋难,老Ping题了 输个分号ls试试,没回显即被Ban了,试试别的,例如|或者&& 出了,看看源代码 把…...

SVG图形

什么是SVG SVG(Scalable Vector Graphics)是一种用于描述二维矢量图形的XML 格式文件。它是一种用于在网络上显示图形的开放标准,旨在与Web上的其他技术(如HTML和CSS)集成,并支持在不失真的情况下缩放和调…...

冒泡排序和简答选择排序

冒泡排序 一种典型的交换排序 类似水冒泡&#xff0c;大元素经不断的交换由水底慢慢的浮出 从头到尾&#xff0c;循环比较两相邻的元素 大的元素移到后面&#xff0c;小的放前面-每次循环&#xff0c;大的元素会排到最后 代码如下&#xff1a; #include<stdio.h> …...

leetcode3. 无重复字符的最长子串 [滑动窗口]

题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。示例 2: 输入: s "bbbbb" 输出: 1 解释:…...

软件工程与计算总结(十六)详细设计的设计模式

一.设计模式基础 某种意义上来说&#xff0c;设计模式就是设计经验的总结~ 设计模式不是简单的经验总结&#xff0c;更不是无中生有&#xff0c;它是经过实践反复检验、能解决关键技术难题、有广泛应用前景和能够显著提高软件质量的有效的经验总结。 每个模式都不是独立的&a…...

List集合拆分为多个List

list 拆分 目录概述需求&#xff1a; 设计思路实现思路分析1.list 拆分是2.用stream的parallel实现list的分批处理3.使用stream的parallel实现list的分批处理 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full bus…...

Hadoop3教程(十三):MapReduce中的分区

文章目录 &#xff08;96&#xff09; 默认HashPartitioner分区&#xff08;97&#xff09; 自定义分区案例&#xff08;98&#xff09;分区数与Reduce个数的总结参考文献 &#xff08;96&#xff09; 默认HashPartitioner分区 分区&#xff0c;是Shuffle里核心的一环&#xf…...

笔记本Win10系统一键重装操作方法

笔记本电脑已经成为大家日常生活和工作中必不可少的工具之一&#xff0c;如果笔记本电脑系统出现问题了&#xff0c;那么就会影响到大家的正常操作。这时候就可以考虑给笔记本电脑重装系统了。接下来小编给大家介绍关于一键重装Win10笔记本电脑系统的详细步骤方法。 推荐下载 系…...

FilterRegistrationBean能不能排除指定url

文章目录 什么是FilterRegistrationBean举个栗子但是如果我想要排除某些uri方法总结FilterRegistrationBean只能设置指定的url进行过滤,而不能指定排除uri,只能使用OncePerRequestFilter的shouldNotFilter方法,排除uri 什么是FilterRegistrationBean FilterRegistrationBean是…...

【LeetCode】36. 有效的数独

1 问题 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&…...

华为---PPP协议简介及示例配置

PPP协议简介 PPP是Point-to-Point Protocol的简称&#xff0c;中文翻译为点到点协议。与以太网协议一样,PPP也是一个数据链路层协议。以太网协议定义了以太帧的格式&#xff0c;PPP协议也定义了自己的帧格式&#xff0c;这种格式的帧称为PPP帧。 利用PPP协议建立的二层网络称为…...

asp.net老年大学信息VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio计算机毕业设计

一、源码特点 asp.net老年大学信息管理系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c# 语言开发 asp.net老年大学信息管理系统…...

模型量化笔记--对称量化和非对称量化

1–量化映射 量化映射的通用公式为: r S ( q − Z ) r S(q - Z) rS(q−Z) 其中r表示量化前数据的真实值&#xff0c;S表示缩放因子&#xff0c;q表示量化后的数值&#xff0c;Z表示零点 2–非对称量化 非对称量化需要一个偏移量Z来完成零点的映射&#xff0c;即量化前的零…...

PA2019 Terytoria

洛谷P5987 [PA2019] Terytoria 题目大意 在一个平面直角坐标系上&#xff0c;有一个长度为 X X X&#xff0c;宽度为 Y Y Y的地图&#xff0c;这个地图的左边界和右边界是连通的&#xff0c;下边界和上边界也是连通的。 在地图中&#xff0c;有 X Y X\times Y XY个格子以及…...

内容分发网络CDN分布式部署真的可以加速吗?原理是什么?

Cdn快不快&#xff1f;她为什么会快&#xff1f;同样的带宽为什么她会快&#xff1f;原理究竟是什么&#xff0c;同学们本着普及知识的想法&#xff0c;我了解的不是很深入&#xff0c;适合小白来看我的帖子&#xff0c;如果您是大佬还请您指正错误的地方&#xff0c;先谢谢大佬…...

微服务docker部署实战

docker基础和进阶(*已掌握的可以跳过 *) 基础 docker基础 进阶 docker进阶 准备工作 提前准备好mysql和redis的配置&#xff0c;如下 在/zzq/mysql/conf目录下配置mysql配置文件my.cnf [client] #设置客户端字符集 default_character_setutf8 [mysqld] #开启定时任务 event_s…...

js实现拖拽功能

基于onMouseDown 、onMouseMove 、onMouseUp 使用 mousedown、mousemove 和 mouseup 事件来实现拖拽的基本思路是&#xff1a; 在 mousedown 事件中&#xff0c;开始追踪拖拽操作并记录鼠标按下的位置。 在 mousemove 事件中&#xff0c;根据鼠标的移动&#xff0c;更新被拖拽…...

数据库主从切换过程中Druid没法获取连接错误

背景&#xff1a; 今天dba在进行DB的主从切换&#xff0c;导致应用一直报错&#xff0c;获取不到DB连接&#xff0c;druid的错误信息如下&#xff1a; Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnectionTimeoutExc…...

【iOS】Mac M1安装iPhone及iPad的app时设置问题

【iOS】Mac M1安装iPhone及iPad的app时设置问题 简介一&#xff0c;设置问题二&#xff0c;适配问题 简介 由于 苹果M1芯片的Mac可用安装iPhone以及iPad应用&#xff0c;因为开发者并没有适配Mac&#xff0c;因此产生了很多奇怪问题&#xff0c;这里总结归纳Mac M1安装iPhone和…...

Springboot 启动报错@spring.active@解析错误

Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character that cannot start any token. (Do not use for indentation)in reader, line 10, column 13:active: spring.active^查看是否勾选...

【算法挨揍日记】day15——560. 和为 K 的子数组、974. 和可被 K 整除的子数组

560. 和为 K 的子数组 560. 和为 K 的子数组 题目描述&#xff1a; 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的连续子数组的个数 。 子数组是数组中元素的连续非空序列。 解题思路&#xff1a; 我们可以很容易想到暴力解法&#xf…...

数字时代的探索与革新:Socks5代理的引领作用

在当今快速发展的数字时代&#xff0c;技术创新推动着社会的变革与进步。Socks5代理作为一项重要的网络技术&#xff0c;正引领着跨界电商、爬虫数据分析、企业全球化和游戏体验优化等领域的发展。本文将深入探讨Socks5代理技术在这些领域中的引领作用&#xff0c;以及它如何塑…...