PointNN:一种无参数化的高效点云特征提取方法

news2025/3/3 4:42:19

前言

本文需要一些三维点云相关基础,非常适合深蓝学院修过相关课程的同学阅读。

点云处理从最早期的手工设计特征,到之后渐渐有一些深度学习的尝试,经历了 multi-view或者3D卷积等等的混沌时期,知道 pointnet 的横空出世,开始蓬勃发展,于是有了后来的 pointnet++, DGCNN, SONet, KPConv, PointMLP 和 Point tranformer 等等,后期的工作没怎么跟了,比较巧合的是,前阵子听师兄讲,在使用point pillar的时候,pointnet的算力都没办法满足,pillar的特征还是手工设计的。随后看到了这篇区分度很高的工作, pointNN (CVPR 2023),原来真的可以做到 parameter free 还能保证高质量提特征。

正文

预备知识是要了解过 pointnet 和 pointnet++,如果了解了这两篇文章,那么下面三个操作应该不会陌生:

farthest point sampling (FPS):因为点云不规则,所以不能像图像卷积一样便捷的定义锚点,因此需要使用 FPS 对点云做层次化操作,每一次操作得到的结果就是一系列的“中心点”,其实就是锚点。FPS算法不具体讲解了,作用就是对点云进行采样,采到的点之间距离要尽可能的远,又要尽可能的包含整个点云。

knearest neighbors (k-NN), 参考卷积操作,比如一个3*3卷积是对中心点及周围的8个像素进行操作,层数多了之后,感受野也随之增加。点云的领域一般用K-NN或者radius neighbor 来定义,各自包含一个超参 K 和 radius 半径。具体怎么操作后面会具体说明。

pooling operations,pooling是 pointnet 中最重要的操作,主要解决的是点云无序性的问题,每个点的特征concat在一起之后,不论顺序如何,pooling之后的结果都一致。

接下来进入正题,如何提取点云特征

首先对于一个空间中的一个点需要对其做 embedding,这个在 literature 里已经有不少这方面的工作了,比如 nerf 的 positional encoding,fourier feature,transformer 的位置编码等等。PointNN 提了一种类似的编码方法,这个可能需要一定的尝试,具体为什么这么设计很难理解。总之在对原始坐标进行过位置编码之后,每个原始点的就有了一个高纬特征

,为了便于区分,我们用来表示非中心点特征。来表示中心店特征。

有了每个点的特征之后,就要对特征进一步进行聚合了。我们用单一算子来具体表述,对于一个中心点及其最近的 K 个点,首先把每个点的特征和中心点特征做一个及联:

,到目前为止编码的都是绝对信息,参考以往工作的经验,我们还需要一些相对信息。简单来讲,就是全局坐标系里,两个点的坐标就是全局信息,而两个点的距离就是相对信息,在局部特征提取的时候,中心点需要一个局部坐标系,将领域范围的点的特征进行聚合,于是便有了以下操作:

这里

就是相对坐标,具体操作的时候一定要注意要做 normalization. PosE 就是之前提到的位置编码。到目前为止,每个点的特征都与中心点进行了交互,但是还未完成聚合。

聚合操作其实就是 pooling 操作,max pooling 和 average pooling 都可以,只要保证 permutation-invariant 即可。pointnet 用 max pooing 因为这个效果好,pointNN 两个都用了说这样效果好,这里不多说明了。

这样的过程经过多次,就能层级提取点云特征了,最后得到的是一个 global 的点云特征。和大多数点云特征提取网络一致的是,可以适配多种任务,区别在于不需要参数就能有很好的结果,因为结构比较简洁灵活,也可以将上述的一些操作用 linear 算子来操作,引入极少量的参数即可达到 SOTA 效果。

关于 paper 提到的 Point-Memory Bank 以及 ensemble 等操作是比较好理解的内容了,这里就不多陈述了。

非参数化的优势在于不需要训练,在网络搭建好之后,只需要过一遍训练集,过一遍测试集即可,实验成本很低,个人觉得后续工作如果能有一些类似 pointnet 的证明和解释就更好了。

   ABOUT 

    关于我们 

深蓝学院是专注于人工智能的在线教育平台,已有数万名伙伴在深蓝学院平台学习,很多都来自于国内外知名院校,比如清华、北大等。

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

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

相关文章

微服务治理框架(Istio)的认证服务与访问控制

本博客地址:https://security.blog.csdn.net/article/details/130152887 一、认证服务 1.1、基于JWT的认证 在微服务架构下,每个服务是无状态的,由于服务端需要存储客户端的登录状态,因此传统的session认证方式在微服务中不再适…

分享:前端开发使用基于 ChatGPT 的各类 AI Copilot 辅助开发

前言 现在谁还没听过 ChatGPT,通没通网我不确定,但一定不是搞开发的 网上各种教注册OpenAI账号的、卖key的,然后就可以去各类基于ChatGPT api的插件、应用使用。但是这类都属于不合规的方式,这里不推荐 虽然因为种种原因&#x…

nuxt.js - 【最新】简单快捷的 element ui 组件库的主题色更改,批量统一覆盖替换解决方法,无需npm装包。(适用于新手小白的方法,很简单)

效果图 最新解决方案,简单便捷且不用npm安装任何第三方包就能搞定。 原来的主题色是蓝色 ,可以通过本篇博客提供的方法,统一变成其他主题颜色,比如下面的紫色: 下面就是真实的运行效果,保证可行~ 这样就不用每个组件单独去写样式覆盖颜色了! 定制主

【C++】STL理解【容器】

【C】STL理解【容器】 1. STL概念引入 长久以来,软件界一直希望建立一种可重复利用的东西,以及一种得以制造出”可重复运用的东西”的方法,从函数(functions),类别(classes),函数库(function libraries),类别库(class libraries…

Python中的type与isinstance的区别

Python中的type()函数和isinstance()函数是两个常用的类型判断函数,它们可以用来判断变量的类型,接下来让我们一起来看一下它们的用法。type()函数type()函数用于获取一个变量的类型,它的语法是:type(变量)。调之后会返回变变量的…

关于修改压缩包内的文件(Excel...)内容的解决方法

关于修改压缩包内的文件(Excel…)内容的解决方法 前提: 💩 如果能在压缩前就修改完成就不需要修改压缩包内的文件 💩 如果能在压缩前就修改完成就不需要修改压缩包内的文件 💩 如果能在压缩前就修改完成…

通讯框架与Netty

一、网络通讯基础 1、OSI七层模型 2、一个域名底层是如何解析 浏览器访问域名,根据域名先从本地host文件C:\Windows\System32\drivers\etc\hosts文件 查找匹配对应的ip与域名,如果本地Host文件 没有的情况下,则联网去电信运营商查找。 3、什…

拉曼光谱的airPLS处理算法原理及MATLAB示例

一、拉曼光谱及airPLS算法 拉曼光谱被称作物质的“指纹谱”,能够表征分子的特征官能团,具有极高的特异性,在检测传感领域有极大的应用前景。但拉曼散射强度低,在实际的检测应用过程中还会受到噪声的影响。 为减少拉曼光谱中的…

程序员的“灵魂笔记本“:五款高效笔记软件推荐

大家好,我是 jonssonyan。作为一名程序员,我们经常需要记录和整理大量的代码、知识和项目信息,以便在日后能够高效地进行查阅和复用。而好用的笔记软件则成为了我们的"灵魂笔记本",帮助我们提高工作效率。在这篇文章中&…

十一、存储技术基础

(一)独立磁盘冗余阵列RAID RAID级别 特点 需要磁盘 磁盘利用率 容错性 冗余性 热备盘选项 典型应用 RAID0 条带 2 全部 无 无 无 无故障的迅速读写,要求安全性不高,如图形工作站等 RAID1 镜像 2 50% 有 复制…

代码随想录_二叉树_leetcode112、113

leetcode112 路径总和 112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返…

【血泪建议】软件测试岗位现状,可惜之前没人告诉我,肠子都晦青了....

谈到现状,国内的软件测试行情目前呈现了两极分化的极端情况。 一个是早期的手工测试人员吐槽工作不好做,即使有工作也是外包,而且薪资太低;一方面是很多互联网企业感叹自动化测试人才难找,有技术的自动化测试工程师&a…

Linux中执行命令

目录 一、命令格式 二、查看命令帮助 三、date命令 四、timedatectl命令 五、查看目录下的文件:ls(list) 一、命令格式 命令格式:主命令 选项 参数(操作对象) 命令分为两类: 内置命…

要刹车?生成式AI迎新规、行业连发ChatGPT“警报”、多国考虑严监管

4月13日消息,据中国移动通信联合会元宇宙产业工作委员会网站,中国移动通信联合会元宇宙产业工作委员会、中国通信工业协会区块链专业委员会等,共同发布“关于元宇宙生成式人工智能(类 ChatGPT)应用的行业提示”。提示内…

wmv格式的视频怎么转成mp4,4种方法简单易学

你知道wmv格式的视频怎么转成mp4吗?wmv和mp4都是视频文件格式,wmv格式是由微软开发的一种数字容器格式,它主要适用于电脑客户端。但由于其兼容性不佳,可能导致无法播放或出现错误。相比之下,mp4格式具有更广泛的兼容性…

Maven项目的JDK版本不一致引发的问题

1.运行提示java: 错误: 不支持发行版本 5&#xff08;改成JDK8&#xff09; 2.运行提示java&#xff1a;-source 8 中不支持 instanceof 中的模式匹配(改成JDK17) 解决方案&#xff08;以JDK8为例&#xff09; 1.普通Maven项目 通过指定Maven插件的JDK版本解决 <build>…

使用CentOS8实现Nginx负载均衡反向代理与安装MySQL数据库(涉及CentOS8、Nginx、MySQL、Flask)

文章目录1. 安装并配置CentOS8虚拟机1.1 安装1.2 设置静态IP(看需求不一定要设置)1.3 开启SSH\开启关闭端口\关闭开启防火墙1.4 虚拟机与本机互相复制粘贴、传输文件2. 如何在CentOS 8安装Python3. 解决错误&#xff1a;为 repo appstream 下载元数据失败4. 安装Nginx4.1 [关于…

Shader Graph8-输入Vector

一、三个向量 Vector叫做矢量或者向量&#xff0c;向量更偏向于数学&#xff0c;矢量更偏向于图形。下面三种Vector我们用的最多&#xff0c;红色叫Camera Vector相机向量、蓝色叫Surface Normal表面法线、黄色叫Light Vector光向量。 每个面都有法线&#xff0c;法线向量是这…

七大排序算法

文章目录1. 冒泡排序2. 插入排序3. 希尔排序4. 选择排序5. 堆排序6. 快速排序7. 归并排序1. 冒泡排序 从 0 号下标开始遍历&#xff0c;相邻两个数相互比较&#xff0c;如果左边的数大于右边的数&#xff0c;执行交换操作&#xff0c;最终每一趟冒泡都会将一个最大的数移到最右…

matplotlib使用

文章目录基本语法导入库plt 和ax.区别ax. 用法子图创建-展示不同的分区区域设置刻度范围&#xff1a;显示刻度设置刻度标签tick_params()函数添加轴坐标标签&#xff0c;表头&#xff0c;图例plt.用法普通折线图plt.plot(x,y,format_string,**kwargs)函数说明&#xff1a;中文显…