【2023工业3D异常检测文献】Shape-Guided: 基于形状引导和双记忆库的异常检测方法

Shape-Guided Dual-Memory Learning for 3D Anomaly Detection

1、Background

提出了一个以形状为指导的专家学习框架,用于解决无监督3D异常检测的问题。

该方法建立在两个专门的专家模型及其协同作用的基础上,以从颜色和形状模态中定位异常区域。

第一个专家利用几何信息通过建模局部形状周围的隐式距离场来探测3D结构异常。

第二个专家考虑与第一个专家相关联的2D RGB特征,以识别局部形状上的颜色外观不规则性。

使用这两个专家从无异常训练样本中构建双记忆库,并执行形状引导的推理,以在测试样本中精确定位缺陷。

2、Method

状引导的专家学习 (Shape-Guided Expert Learning)

目标: 开发两个专家模型来分别处理3D形状信息和2D颜色信息,以提高异常检测的准确性。

  • 形状专家 (Shape Expert):
    • 点云分割: 将完整的点云分割成多个局部3D补丁。
    • 特征提取: 使用PointNet对每个补丁进行特征提取,获取局部几何特征向量。
    • 隐式函数建模: 使用神经隐式函数(NIF)模型,基于PointNet的特征向量,预测查询点的有符号距离,构建局部表面的有符号距离函数(Signed Distance Field,SDF)。
    • 记忆库构建: 将所有补丁的特征向量存储到SDF记忆库中。
  • 外观专家 (Appearance Expert):
    • RGB特征提取: 使用预训练的ResNet模型从2D RGB图像中提取特征。
    • 形状引导映射: 根据SDF和对应的RGB特征之间的映射关系,为每个SDF追踪其对应的RGB特征。
    • 记忆库构建: 构建形状引导的记忆库,包含与SDF相对应的RGB特征字典。

在这里插入图片描述

形状引导的推理 (Shape-Guided Inference)

目标: 结合两个专家模型的输出,对测试样本进行异常检测。

  1. 特征提取: 对测试样本使用PointNet和ResNet提取SDF和RGB特征。
  2. 最近邻搜索: 对于每个SDF,从SDF记忆库中找到最近的邻居,构建字典,并使用稀疏表示法重构特征。
  3. 计算SDF分数图: 使用重构的特征计算SDF分数图。
  4. 构建RGB字典: 根据SDF的最近邻,从RGB记忆库中获取对应的RGB字典。
  5. 计算RGB分数图: 使用重构的RGB特征计算RGB分数图。
  6. 分数图对齐: 对SDF和RGB分数图进行对齐,确保两个分数图的值在可比较的范围内。
  7. 融合分数图: 通过取每个像素点上SDF和RGB分数的最大值,生成最终的异常分数图。

在这里插入图片描述

pseudo-code

# 步骤1: 训练形状专家和外观专家
def train_experts(training_data):point_clouds, rgb_images = training_datasdf_memory_bank = {}rgb_memory_bank = {}for point_cloud, rgb_image in zip(point_clouds, rgb_images):# 提取3D特征features = pointnet(point_cloud)# 计算SDFsdfs = nif(features)# 存储SDF对应的3D特征sdf_memory_bank.update({id(point_cloud): features})# 构建RGB特征字典rgb_features = build_rgb_dictionary(sdfs, rgb_image)# 存储RGB特征字典rgb_memory_bank.update({id(point_cloud): rgb_features})return sdf_memory_bank, rgb_memory_bank# 步骤2: 形状引导推理
def shape_guided_inference(test_data, sdf_memory_bank, rgb_memory_bank):test_point_cloud, test_rgb_image = test_datatest_features = pointnet(test_point_cloud)sdfs = nif(test_features)# 计算SDF分数图sdf_scores = compute_scores(test_features, sdf_memory_bank, use_nif=True)# 计算RGB分数图rgb_scores = compute_scores(test_rgb_image, rgb_memory_bank, use_nif=False)# 融合SDF和RGB分数图final_scores = fuse_scores(sdf_scores, rgb_scores)return final_scores# 辅助函数
def pointnet(point_cloud):# 使用PointNet模型提取3D特征passdef nif(features):# 使用NIF模型计算SDFpassdef build_rgb_dictionary(sdfs, rgb_image):# 根据SDF和2D图像构建RGB特征字典passdef compute_scores(features, memory_bank, use_nif):# 使用内存银行和特征计算分数图if use_nif:# 计算SDF分数passelse:# 计算RGB分数passdef fuse_scores(sdf_scores, rgb_scores):# 融合SDF和RGB分数图pass# 主流程
training_data = load_training_data()  # 加载训练数据
test_data = load_test_data()  # 加载测试数据sdf_memory_bank, rgb_memory_bank = train_experts(training_data)
final_scores = shape_guided_inference(test_data, sdf_memory_bank, rgb_memory_bank)# 根据final_scores进行异常检测
detect_anomalies(final_scores)

3、Experiments

🐂🐎。。。

在这里插入图片描述

在这里插入图片描述

4、Conclusion

提出了一个以形状为指导的专家学习框架,实现的 双记忆库和形状引导推理 显著降低了计算和内存成本。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于单片机跑步机控制系统设计

** 文章目录 前言概要功能设计设计思路 软件设计效果图 程序文章目录 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对…

详细分析BigDecimal基本知识(附Demo)

目录 前言1. 基本知识2. Demo 前言 之所以深入了解这个函数的用法,发现还可这么使用 基本的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更…

多区域OSPF路由协议

前言 之前也有过关于OSPF路由协议的博客,但都不是很满意,不是很完整。现在也是听老师讲解完OSPF路由协议,感触良多,所以这里重新整理一遍。这次应该是会满意的 一些相关概念 链路状态 链路指路由器上的一个接口,链路状…

ChatGPT实时语音将于本周向免费用户推出:OpenAI DevDay 2024详细解读

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

Windows 环境搭建 CUDA 和 cuDNN 详细教程

CUDA CUDA(Compute Unified Device Architecture)是由NVIDIA公司推出的一个并行计算平台和编程模型,它允许开发者使用NVIDIA GPU进行通用计算(即GPGPU),从而加速各种计算密集型任务。CUDA提供了一套基于C/C…

深度学习:cGAN和pix2pix图像转换

cGAN和pix2pix的基础概念 cGAN cGAN是条件生成对抗网络(Conditional Generative Adversarial Networks)的简称。 它是一种基于基础GAN(Generative Adversarial Networks)架构的变体,通过给GAN模型引入额外的信息或条…

【零基础入门产品经理】学习准备篇 | 需要学一些什么呢?

前言: 零实习转行产品经理经验分享01-学习准备篇_哔哩哔哩_bilibili 该篇内容主要是对bilibili这个视频的观后笔记~谢谢美丽滴up主友情分享。 全文摘要:如何在0实习且没有任何产品相关经验下,如何上岸产品经理~ 目录 一、想清楚为什么…

uniapp 上了原生的 echarts 图表插件了 兼容性还行

插件地址:echarts - DCloud 插件市场 兼容性这块儿不知道后期会不会支持其他浏览器 H5 的话建议可以用原生的不用这个插件

沐风老师3DMAX快速嵌板修改器插件Panelizer使用方法

3DMAX快速嵌板修改器插件Panelizer,一键快速几何体分布工具,基于3dsMax的拓扑修改器,将几何模型散布并对齐到四边形面上的参数化建模工具。 【系统要求】 3dsMax 2018.1 - 2025 【安装方法】 1.将插件安装文件(.mcg)…

Llama 系列简介与 Llama3 预训练模型推理

1. Llama 系列简介 1.1 Llama1 由 Meta AI 发布,包含 7B、13B、33B 和 65B 四种参数规模的开源基座语言模型 数据集:模型训练数据集使用的都是开源的数据集,总共 1.4T token 模型结构:原始的 Transformer 由编码器&#xff08…

基于元神操作系统实现NTFS文件操作(二)

1. 背景 本文主要介绍MBR的读取和解析,并提供了基于元神操作系统的实现代码。由于解析MBR的目的是定位到NTFS磁盘分区进行文件操作,所以只解析了MBR的分区表部分,至于MBR的其它部分,可以参考相关文档进行理解。 2. 方法 &#…

Python使用matplotlib绘制五星红旗

安装包 pip install matplotlib pip install numpy完整代码 import matplotlib.pyplot as plt import numpy as np# 设置画布尺寸 fig plt.figure(figsize(10, 7)) ax fig.add_subplot(111)# 绘制红色背景 ax.set_facecolor(red)# 五星红旗的尺寸定义 flag_width 30 flag_…

VMware ESXi 8.0U3b macOS Unlocker OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布

VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布 VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、IEIT SYSTEMS (浪潮信息)、Cisco …

前端规范工程-2:JS代码规范(Prettier + ESLint)

Prettier 和 ESLint 是两个在现代 JavaScript 开发中广泛使用的工具,它们结合起来可以提供以下作用和优势: 代码格式化和风格统一: Prettier 是一个代码格式化工具,能够自动化地处理代码的缩进、空格、换行等格式问题,…

491. 递增子序列

文章目录 491. 递增子序列思路回溯三部曲总结 491. 递增子序列 491. 递增子序列 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如…

Linux中的进程间通信之管道

管道 管道是Unix中最古老的进程间通信的形式。 我们把从一个进程连接到另一个进程的一个数据流称为一个“管道” 匿名管道 #include <unistd.h> 功能:创建一无名管道 原型 int pipe(int fd[2]); 参数 fd&#xff1a;文件描述符数组,其中fd[0]表示读端, fd[1]表示写端 …

解锁PDF阅读器的神奇功能与应用场景

PDF格式的文档因其稳定性、兼容性和安全性&#xff0c;成为了广泛传播和存储信息的重要载体。而PDF阅读器则是我们打开这个数字知识宝库的关键钥匙。接下来&#xff0c;让我们一同走进福昕PDF阅读器和它小伙伴们的世界&#xff0c;去探索它们的神奇之处。 1.福昕阅读器 链接一…

Spring Boot 和 MyBatis-Plus凑一块儿了,这份教程你得看

一、引言 MyBatis-Plus 是 MyBatis 的增强版&#xff0c;提供了 CRUD 接口、分页插件、性能分析插件等特性&#xff0c;简化了开发过程。本文将详细介绍如何在 Spring Boot 项目中集成 MyBatis-Plus。 支持的数据看也越来越多&#xff0c;值得去搞一下&#xff0c;写了一个小例…

Hive数仓操作(八)

一、Hive中的分桶表 1. 分桶表的概念 分桶表是Hive中一种用于提升查询效率的表类型。分桶指的是根据指定列的哈希值将数据划分到不同的文件&#xff08;桶&#xff09;中。 2. 分桶表的原理 哈希分桶&#xff1a;根据分桶列计算哈希值&#xff0c;对哈希值取模&#xff0c;将…

三维激光扫描技术在文保修缮项目中的应用

三维激光扫描技术作为一种新兴的高精度空间数据获取手段&#xff0c;其在文物保护和修缮项目中的应用日益广泛。这项技术通过快速获取物体表面的三维密集点云数据&#xff0c;为文物的数字化存档、保护、修复及再利用提供了强有力的技术支持。 数据采集&#xff1a;高精度与非接…