工业异常检测-CVPR2024-新的3D异常数据合成办法和自监督网络IMRNet

论文:https://arxiv.org/pdf/2311.14897v3.pdf

项目:https://github.com/chopper-233/anomaly-shapenet

这篇论文主要关注的是3D异常检测和定位,这是一个在工业质量检查中至关重要的任务。作者们提出了一种新的方法来合成3D异常数据,并开发了一个自我监督学习网络以提升3D点云异常检测的可扩展性和效果。

1 论文的核心观点

  • 数据集缺乏:当前3D异常检测模型的可扩展性受到真实世界3D异常数据稀缺的限制。
  • 提出新方法:为了克服这个问题,作者提出了一个3D异常合成步骤,并创建了一个名为Anomaly-ShapeNet的新基准数据集。
  • 自监督学习网络:同时,他们还提出了一个基于迭代掩码重建的自监督学习网络(IMRNet),用于3D异常检测和定位。

2 创新点

  • 3D异常合成:提出了一个新颖的3D异常合成流程,极大地丰富了3D异常检测的数据多样性。
  • IMRNet框架:引入了一种全新的自监督学习方法,特别是针对3D点云异常检测设计的迭代掩码重建机制。
  • 几何感知采样:在点云处理中加入了对几何结构的理解,有助于更准确地捕捉异常结构。
  • 性能优越:实验表明IMRNet在Anomaly-ShapeNet和Real3D-AD两个数据集上的表现优于现有最先进的方法,分别达到了66.1%和72.5%的I-AUC得分。

3 方法论

3.1 数据集构建

通过改进现有的大规模3D模型数据集,如ShapeNet,作者构建了合成数据集Anomaly-ShapeNet,该数据集包括40个类别的1600个点云样本,每个样本包含8000到30,000个点。

数据集中包含了六种典型的异常类型:鼓包、凹陷、孔洞、断裂、弯曲和裂缝,这些异常占整个点云的1%至10%。

点云精炼模块

由于ShapeNet数据集中某些点云的点数和面数有限,作者开发了一个点云精炼模块以增加这些点云的细节。

引入缺陷

使用Blender软件(一种在工业设计领域广泛应用的开源软件),作者可以进行各种操作如雕塑、细化、裁剪和编辑模式来创建多种类型的缺陷。这使得所合成的异常更加真实。

获取真值

在获得异常样本后,使用CloudCompare软件(一种点编辑工具)来提取3D异常的标注区域。

3.2 IMRNet架构

IMRNet由三个模块组成:

几何感知采样模块(GPS):确保在点云降采样过程中保留潜在的异常局部区域。

块状点掩码重建网络(PMR):随机遮挡块状点并送入自动编码器进行基于重建的自我监督训练。

密集特征连接与比较模块(DFC):将最终重建的点云与初始输入合并对比,成功定位异常。

4. 训练流程和测试流程

训练流程:标准的训练点云最初使用几何感知的点云采样(GPS)模块转换为块状点格式,形成多个块状点云组。在此之后,随机掩蔽应用于块状点,然后由一个基于自动编码器的变压器和一个轻量级预测头组成的网络重建,在自监督范式下工作,重建遮挡的块状点云。在训练阶段,利用Chamfer Distance l2 损失进行监督学习。

测试流程:对输入点云进行一个镜像训练过程的重建过程。将重建后的点云作为多次迭代的输入,循环反馈到重建网络中。最终,在重建的点云与原始点云和特征水平上进行比较分析,得到最终的异常得分图

5 检测效果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux-ubuntu环境配置

一,安装VWware,里面导入镜像文件 这些都是文件夹里面有的,然后对着正点原子视频安装就行,虚拟机的破解码,去百度搜一个能用就行,中间遇见俩问题。①乌班图里面不能上网,②插入U盘后,…

Python Selenium 各浏览器驱动下载与配置使用(详细流程)

大家好啊!我是NiJiMingCheng 这是我的博客:NiJiMingCheng 这节课我们来学习安装selenium和对应的各个浏览器驱动,个人比较喜欢使用谷歌浏览器驱动,所以接下来以谷歌浏览器来为大家做示例!!! Sel…

工具学习_Buildroot

0. 工具概述 Buildroot 是一个简单、高效且易于使用的工具,旨在通过交叉编译生成嵌入式 Linux 系统。它支持生成交叉编译工具链、根文件系统、内核镜像以及引导加载器。通过类似于内核配置的菜单界面(menuconfig、gconfig、xconfig)&#xf…

【机器人】系统辨识之激励轨迹设计(傅里叶级数)

在机器人参数辨识中使用傅里叶级数,主要是为了生成一种激励轨迹,具有良好的数学特性,同时符合物理要求。傅里叶级数的特性使其在机器人动力学辨识的激励轨迹设计中非常常用。 1. 为什么需要激励轨迹? 激励轨迹的作用是通过驱动机…

Unity简单操作及使用教程

Unity 是一款强大的跨平台游戏引擎,它不仅支持 2D 和 3D 游戏的开发,还可以用于虚拟现实 (VR)、增强现实 (AR)、动画、建筑可视化等多个领域。Unity 提供了完整的开发环境,具有丰富的功能、工具和资源,可以帮助开发者快速实现创意…

前端node环境安装:nvm安装详细教程(安装nvm、node、npm、cnpm、yarn及环境变量配置)

需求:在做前端开发的时候,有的时候 这个项目需要 node 14 那个项目需要 node 16,我们也不能卸载 安装 。这岂不是很麻烦。这个时候 就需要 一个工具 来管理我们的 node 版本和 npm 版本。 下面就分享一个 nvm 工具 用来管理 node 版本。 这个…

为什么数据平台需要敏捷版|直播回顾

11月28日,我们邀请到StartDT合伙人、CTO地雷和StartDT资深战略咨询专家何夕,围绕“为什么数据平台需要敏捷版”这个话题,向大家汇报了DataSimba敏捷版这半年来的最新进展,并带来了详细的产品解读。 敏捷版支持StarRocks、ClickHo…

HarmonyOS-中级(四)

文章目录 Native适配开发三方库的基本使用 🏡作者主页:点击! 🤖HarmonyOS专栏:点击! ⏰️创作时间:2024年12月09日11点12分 Native适配开发 Node-API HarmonyOS Node-API 是 HarmonyOS 提供的…

从零开始的使用SpringBoot和WebSocket打造实时共享文档应用

在现代应用中,实时协作已经成为了非常重要的功能,尤其是在文档编辑、聊天系统和在线编程等场景中。通过实时共享文档,多个用户可以同时对同一份文档进行编辑,并能看到其他人的编辑内容。这种功能广泛应用于 Google Docs、Notion 等…

统信桌面专业版部署postgresql-14.2+postgis-3.2方法介绍

文章来源:统信桌面专业版部署postgresql-14.2postgis-3.2方法介绍 | 统信软件-知识分享平台 应用场景 CPU架构:X86(海光C86-3G 3350) OS版本信息:1070桌面专业版 软件信息:postgresql-14.2postgis-3.2 …

jmeter 提取数据写入文件

BeanShell PostProcessor FileWriter file new FileWriter("E:\\IOT\\cui家庭中心\\v3.8.0\\123.txt",true); BufferedWriter out new BufferedWriter(file); out.write(vars.get("localKey")"\n"); log.info("到这里了吗"); out.c…

在ensp中ACL路由控制实验

一、实验目的 掌握ACL路由控制管理 二、实验要求 要求: 配置路由策略,左右两边不公开区域对方不可达,其他区域可以互相ping通 设备: 1、三台路由器 2、四台交换机 3、四台电脑 4、四台服务器 使用ensp搭建实验环境,如图所…

MySQL 实现分库分表详解

MySQL 实现分库分表详解 为什么要分库分表什么是分库分表分库分表的几种方式垂直拆分数据库垂直拆分表垂直拆分垂直拆分特点垂直拆分优缺点优点缺点 水平拆分数据库水平拆分表水平拆分水平拆分的其他方式水平拆分特点水平拆分优缺点优点缺点 分库分表带来的问题分库分表技术如何…

如何让Google快速收录你的页面?

要让Google更快地收录你的网站内容,首先需要理解“爬虫”这个概念。Google的爬虫是帮助它发现和评估网站内容质量的工具,如果你的页面质量高且更新频率稳定,那么Google爬虫更可能频繁光顾。通常情况下,通过Google Search Console&…

游戏引擎学习第36天

仓库 :https://gitee.com/mrxiao_com/2d_game 回顾之前的内容 在这个程序中,目标是通过手动编写代码来从头开始制作一个完整的游戏。整个过程不使用任何库或现成的游戏引擎,这样做的目的是为了能够全面了解游戏执行的每一个细节。开发过程中&#xff0…

【Linux】系统信息和状态命令

步骤 1:显示系统信息 命令: uname -a 1.打开终端。 2.输入命令并按回车键。 3.观察:输出将显示包括内核版本、主机名、硬件架构等在内的系统信息。 步骤 2:显示或设置系统的主机名 命令: hostname 1.打开终端。…

IDEA创建Spring Boot项目配置阿里云Spring Initializr Server URL【详细教程-轻松学会】

1.首先打开idea选择新建项目 2.选择Spring Boot框架(就是选择Spring Initializr这个) 3.点击中间界面Server URL后面的三个点更换为阿里云的Server URL Idea中默认的Server URL地址:https://start.spring.io/ 修改为阿里云Server URL地址:https://star…

获得日志记录之外的新视角:应用程序性能监控简介(APM)

作者:来自 Elastic David Hope 日志记录领域即将发生改变。在这篇文章中,我们将概述从单纯的日志记录到包含日志、跟踪和 APM 的完全集成解决方案的推荐流程。 通过 APM 和跟踪优先考虑客户体验 企业软件开发和运营已成为一个有趣的领域。我们拥有一些非…

Qt之第三方库‌QXlsx使用(三)

Qt开发 系列文章 - QXlsx(三) 目录 前言 一、Qt开源库 二、QXlsx 1.QXlsx介绍 2.QXlsx下载 3.QXlsx移植 4.修改项目文件.pro 三、使用技巧 1.添加头文件 2.写入数据 3.读出数据 总结 前言 Qt第三方控件库是指非Qt官方提供的、用于扩展Qt应用…

Codeforces Round 992 (Div. 2)

传送门:Dashboard - Codeforces Round 992 (Div. 2) - Codeforces A. Game of Division 思路:模拟 AC代码:Submission #295676347 - Codeforces B. Paint a Strip 思路:数学 贪心 放置的位置一定是 1 4 10 22 48 ....…