Masked Autoencoders for Point CloudSelf-supervised Learning

news2024/11/16 8:55:14

关于SSL中的MAE方法。

摘要

文章介绍了一种新的技术,叫做MAE,在帮助计算机自己学习理解语言和图片方面做得非常好。受到这个技术的启发,它用在了点云上。点云是一堆代表三维空间中某些点的数据,这种数据有时候会有点难处理,因为它可能会泄露一些不应该泄露的信息,或者信息分布不均匀。

为了解决这些问题,研究者们把点云分成了一小块一小块的,然后随机地遮盖掉一些部分。接着,用一种特殊的计算方法,让计算机尝试去理解没有被遮盖的部分,并且尝试重新构建出被遮盖的部分。使用了Transformer,而且还做了一些调整,让这个方法更适合处理点云数据。

通过实验,研究者们发现这种方法不仅学习速度快,而且在很多不同的任务上都做得很好。比如,在ScanObjectNN的数据集上达到了85.18%的准确率,在ModelNet40的数据集上达到了94.04%的准确率,比之前的方法要好。而且,这种方法还帮助计算机在只有很少样本的情况下,更好地分类新的物体。

最后,研究者们还提到,他们的工作证明了一种简单的、完全基于Transformer的技术架构,可以比之前专门为监督学习设计的复杂模型做得更好。

Introduction

这一部分首先强调了自监督学习的重要性,这是一种让机器通过分析未标记的数据来自我学习的方法。作者指出,在自然语言处理(NLP)和计算机视觉领域,自监督学习已经取得了巨大成功,尤其是在BERT等模型中,通过掩蔽语言建模的方式推动了技术的发展。

接着,作者介绍了MAE的概念,是一种通过随机掩蔽输入数据的一部分,然后训练自编码器来重建这些被掩蔽内容的方法。这种方法能够迫使模型学习到数据的高级潜在特征。

然后,作者讨论了将MAE应用于点云数据时面临的挑战。点云数据具有独特的特性,比如位置信息的泄露和信息密度的不均匀性,这些都需要特别的方法来解决。

作者还指出了现有方法的局限性,特别是Point-BERT,它依赖于对比学习、数据增强,并且在预训练过程中需要大量的计算资源。

在此基础上,作者提出了他们的方法——Point-MAE,这是一种为点云数据设计的方案。Point-MAE旨在克服现有方法的不足,通过简洁而高效的方式解决点云数据的特定挑战。

最后,作者强调了Point-MAE的主要贡献,包括其在多种下游任务上的泛化能力,以及在ScanObjectNN和ModelNet40数据集上的优异性能。他们表达了将语言和图像领域的统一架构应用于点云数据的动机,并探讨了这种跨模态学习架构的可行性和潜力。

遮罩自动编码的说明。部分输入数据被屏蔽,然后训练自编码器从原始输入数据中恢复被屏蔽的部分。鼓励自编码器中的编码器从未屏蔽部分学习高级潜在特征。

ShapeNet验证集上的重构示例。在每一组中,我们从左到右依次显示原始输入(即地面真值)、掩蔽点云和重建结果。掩蔽比为60%。可以直接观察到,关键局部特征(如尖角)的重建比不太重要的局部特征(如平面)的重建差得多

Related-work

这一部分主要是介绍了相关工作。

自监督学习(SSL)的定义

首先,作者定义了自监督学习,并概述了其核心思想,即利用数据本身生成监督信号,减少对人工标注数据的依赖。

SSL在自然语言处理(NLP)和图像领域的应用

作者讨论了SSL在NLP领域的成功应用,如通过掩蔽语言模型(如BERT)来预测原始词汇。在图像领域,作者提到了对比学习方法,这些方法通过区分增强图像的相似性来进行学习,以及最近的生成式SSL方法,它们通过随机掩蔽图像补丁来恢复像素空间中的掩蔽补丁。

SSL在点云数据表示学习中的应用

作者转向点云数据的自监督学习,提到了不同的预训练任务,例如DepthContrast、OcCo和IAE等方法,它们通过不同的策略来学习点云的表示。

自编码器的基本概念

然后,作者介绍了自编码器的一般概念,包括其由编码器和解码器组成的核心结构,以及它们如何通过最小化重建误差来学习数据的潜在特征。

Transformers架构及其在点云数据中的应用

作者讨论了Transformers架构如何通过自注意力机制捕捉输入数据的全局依赖性,并在NLP和计算机视觉中取得成功。作者指出了Transformers在点云数据表示学习中的应用,以及现有方法如何通过修改Transformers架构来适应点云数据。

Point-MAE

我们的Point-MAE总体方案。在左边,我们展示了掩蔽和嵌入的过程。将输入云划分为多个点块,对点块进行随机掩码后嵌入。右侧为自动编码器预训练。编码器只处理可见的标记。将掩码令牌添加到解码器的输入序列中以重建掩码点补丁

点云掩蔽和嵌入(Point Cloud Masking and Embedding)

首先,作者描述了如何处理输入的点云数据。由于点云数据由3D空间中的无序点组成,与图像数据的规则性不同,作者使用Farthest Point Sampling (FPS)和K-Nearest Neighborhood (KNN)算法将点云分割成不规则的点块,并且这些点块可能会重叠。接着,作者介绍了掩蔽策略,即以一定的比例随机掩蔽这些点块,以减少数据冗余并保留每个点块中的信息完整性。最后,对于每个被掩蔽的点块,作者使用共享权重的可学习掩蔽标记来替换,并采用轻量级的PointNet结构对未掩蔽的点块进行嵌入,以生成对应的标记。

自编码器的骨干网络(Autoencoder’s Backbone)

作者阐述了Point-MAE的骨干网络完全基于标准的Transformer模块构建,采用了不对称的编码器-解码器设计。编码器只处理未掩蔽的点块生成的标记,并且每个Transformer模块都添加了位置嵌入,以提供位置信息。解码器结构类似于编码器,但包含较少的Transformer模块,它接收编码后的标记和掩蔽标记作为输入,并且只输出解码后的掩蔽标记。

重建目标(Reconstruction Target)

在Point-MAE的"重建目标"部分,作者详细阐述了模型如何通过最小化预测点块和实际掩蔽点块之间的l2 Chamfer Distance来优化其参数。具体来说,模型的解码器输出通过全连接层转换成与点块坐标相同维度的向量,然后重塑成预测的掩蔽点块。重建损失计算了预测点块和掩蔽点块在坐标空间中的差异,并通过梯度下降方法来优化模型,使其能够从可见的点块中学习并准确预测被掩蔽的部分。这种方法不仅迫使模型学习到有效的点云特征表示,而且通过实验验证了模型在不同掩蔽比例下的强大泛化能力和重建质量。

Experiments

Pre-training Setup

作者们在ShapeNet数据集上进行预训练,该数据集包含51,300个3D模型,覆盖55个类别。他们从每个模型中采样1024个点作为输入,并采用随机缩放和随机平移作为数据增强手段。预训练使用了AdamW优化器和余弦衰减学习率,初始学习率设为0.001,权重衰减为0.05,模型训练了300个epoch,每批次大小为128。

Downstream Tasks

预训练模型在多个下游任务上进行了评估,包括:

Object Classification on Real-World Dataset: 在ScanObjectNN数据集上,Point-MAE在具有挑战性的真实世界数据上表现出色,该数据集包含15个类别的大约15,000个物体,这些物体带有杂乱的背景。

Object Classification on Clean Objects Dataset: 在ModelNet40数据集上,Point-MAE实现了93.8%的准确率,超越了其他自监督学习方法,并且在给予8192点作为输入时,准确率达到了94.04%。

Few-shot Learning: 在ModelNet40上进行了少样本学习实验,Point-MAE在不同的实验设置下显著提高了准确率,与现有技术相比提高了1.5%-2.3%。

Part Segmentation: 在ShapeNetPart数据集上,Point-MAE在部分分割任务上实现了86.1%的平均交并比(mIoU),通过简单的分割头超越了使用更复杂结构的Point-BERT。

Ablation Study

作者们进行了消融研究来分析不同组件对模型性能的影响。特别是,他们研究了掩蔽策略和掩蔽比例对预训练损失和微调准确率的影响。实验结果表明,随机掩蔽策略在高比例(60%-80%)时表现最佳。

Conclusion

本文提出了一种用于点云自监督学习的掩蔽自编码器方案,称为point - mae。point - mae简洁而高效,基于点云的属性进行了最小的修改。方法的有效性和高泛化能力在各种任务中得到了验证,包括目标分类、少镜头学习和零件分割。具体来说,Point-MAE优于所有其他自监督学习方法。我们还通过我们的方法表明,一个完全基于标准Transformer的简单架构可以超越来自监督学习的专用Transformer模型。此外,我们的工作激发了将语言和图像的统一架构应用于点云的可行性。

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

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

相关文章

机器学习笔记-02-基础线性算法认识(问题-解答自查版)

前言 以下问题以Q&A形式记录,基本上都是笔者在初学一轮后,掌握不牢或者频繁忘记的点 Q&A的形式有助于学习过程中时刻关注自己的输入与输出关系,也适合做查漏补缺和复盘。 本文可以让读者用作自查,答案在后面&#xff0…

尚庭公寓开发(二)

任何二进制和子网掩码进行一个与运算 得到是子网ip的话就是属于子网ip的范围 任何数字和一做与运算都是他本身 和0做运算都是0 所以要得到子网ip的话他的前面必须是 192.168.200 最后是0-255之间的范围 0不能取 0是子网本身 255也不能用 因为他是广播地址 真正可以使用 的范…

[数据集][目标检测]躺坐站识别检测数据集VOC+YOLO格式9488张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):9488 标注数量(xml文件个数):9488 标注数量(txt文件个数):9488 标注…

Python升级打怪—Django入门

目录 一、Django简介 二、安装Django 三、创建Dajngo项目 (一) 创建项目 (二) 项目结构介绍 (三) 运行项目 (四) 结果 一、Django简介 Django是一个高级Python web框架,鼓励快速开发和干净、实用的设计。由经验丰富的开发人员构建,它解决了web开…

机器学习 | 分类算法原理——感知机

Hi,大家好,我是半亩花海。接着上次的内积继续更新《白话机器学习的数学》这本书的学习笔记,在此分享感知机这一回归算法基础。本章的回归算法基础基于《基于图像大小进行分类》项目,欢迎大家交流学习! 目录 一、感知机…

阿里云-物联网平台-IoT设备MQTT通信

阿里云-物联网平台-IoT设备MQTT通信 登录阿里云物联网平台创建产品添加设备查看设备客户端登录 登录阿里云 阿里云 注册账号,实名认证这些按提示操作即可不在赘述。 物联网平台 选择产品》物联网》物联网平台 进入管理控制台界面 开通服务 选择开通公共实例测试环…

oracle中存储过程的写法

存储过程常规语法: 实际业务例子: CREATE OR REPLACE TRIGGER "TRI_B00_02_ONLY_GUID" BEFORE/AFTER INSERT OR UPDATE OR DELETE ON B00_02 FOR EACH ROW declare t_guid varchar2(300) : ; --GUID t_cnt int : 0; BEGIN t_guid : :NEW…

Oracle核心进程详解并kill验证

Oracle核心进程详解并kill验证 文章目录 Oracle核心进程详解并kill验证一、说明二、核心进程详解2.1.PMON-进程监控进程2.2.SMON-系统监控进程2.3.DBWn-数据库块写入进程2.4. LGWR-日志写入器进程2.5. CKPT-检查点进程 三、Kill验证3.1.kill ckpt进程3.2.kill pmon进程3.3.kill…

Spring MVC笔记

Java 版本: JDK17 Eclipse: eclipse-jee-2023-12-R-win32-x86_64.zip Tomcat 10 JDK17采用springframework 6 *必须考虑兼容性问题&#xff0c;所以JDK 和spring framework不要乱搭配 初步创建Maven Project 安装包 修改poem.xml <dependency><groupId>org.sprin…

Spark实时(五):InputSource数据源案例演示

文章目录 InputSource数据源案例演示 一、​​​​​​​File Source 1、读取text文件 2、读取csv文件 3、读取json文件 二、Socket Source 三、Rate Source InputSource数据源案例演示 在Spark2.0版本之后&#xff0c;DataFrame和Dataset可以表示静态有边界的数据&am…

客户服务知识库最佳实践 7 个步骤

介绍 每个公司的声誉都依赖于其客户。 如果全世界都向你敞开了大门&#xff0c;但你最终在与客户打交道方面做得很糟糕&#xff0c;那么消息就会传出去&#xff0c;无论你的捕鼠器有多好&#xff0c;你都会失去销售。 正如营销依赖于与潜在客户的关系一样&#xff0c;公司的…

【Linux】信号3——信号的捕捉

1.信号的捕捉 我们都说信号被收到了&#xff0c;可能不会立马处理 信号是什么时候被处理的呢&#xff1f; 前提是我们得知道自己收到了信号&#xff0c;进程就得在合适的时候去查自己的pending表和block表&#xff0c;这些属于内核数据结构&#xff0c;进程一定要处于内核态&a…

Easy es问题总结

官网教程&#xff1a;https://www.easy-es.cn/pages/ac41f0/#settings 一 测试项目 1 pom <dependencies><!-- 排除springboot中内置的es依赖,以防和easy-es中的依赖冲突--><dependency><groupId>org.springframework.boot</groupId><artifa…

Java语言程序设计基础篇_编程练习题*15.26 (改变透明度)

*15.26 (改变透明度) 重写编程练习题15.24&#xff0c;当球摆动的时候改变球的透明度 思路&#xff1a;很简单&#xff0c;改写编程练习题15.24&#xff0c;为小圆Circle添加一个FadeTransition&#xff0c;再把暂停和开始方法设置在鼠标事件中 代码示例&#xff1a;编程练习…

基于多种机器学习的豆瓣电影评分预测与多维度可视化【可加系统】

有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 在本研究中&#xff0c;我们采用Python编程语言&#xff0c;利用爬虫技术实时获取豆瓣电影最新数据。通过分析豆瓣网站的结构&#xff0c;我们设计了一套有效的策略来爬取电影相关的JSON格式数据。…

鸿蒙(HarmonyOS)自定义Dialog实现时间选择控件

一、操作环境 操作系统: Windows 11 专业版、IDE:DevEco Studio 3.1.1 Release、SDK:HarmonyOS 3.1.0&#xff08;API 9&#xff09; 二、效果图 三、代码 SelectedDateDialog.ets文件/*** 时间选择*/ CustomDialog export struct SelectedDateDialog {State selectedDate:…

【数据结构初阶】单链表经典算法题十二道——得道飞升(上篇)

目录 1、移除元素 2、反转链表 3、链表的中间节点 4、合并两个有序链表 Relaxing Time&#xff01;&#xff01;&#xff01; ———————————————— 天气之子幻 ———————————————— 1、移除元素 思路&#xff1a; 创建一个新链表&#xff0…

CPU350% JVM GC频繁并GC不掉EXCEL导出

背景&#xff1a; 有个Excel导出的需求&#xff0c;测试的时候&#xff0c;只要连续导出大量的数据就会导致FAT机器反请求反应迟钝&#xff0c;甚至卡死&#xff0c;无法恢复。 排查&#xff1a; 1 跳板机跳到机器上&#xff0c;查看 项目 ipd 执行ps -ef | grep 项目名称.j…

FFmpeg音视频流媒体的顶级项目

搞音视频、流媒体的圈子,没法躲开ffmpeg这个神级项目。 FFmpeg 是一个功能强大且广泛使用的多媒体处理工具。FFmpeg 具备众多出色的特性。它支持多种音频和视频格式的转换,能轻松将一种格式的文件转换为另一种,满足不同设备和应用的需求。不仅如此,它还可以进行视频的裁剪、…