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

3D异常检测论文笔记 | Shape-Guided Dual-Memory Learning for 3D Anomaly Detection

文章目录

  • 摘要
  • 一、介绍
  • 三、方法
    • 3.1. 形状引导专家学习
    • 3.2. Shape-Guided推理

摘要

我们提出了一个形状引导的专家学习框架来解决无监督的三维异常检测问题。我们的方法是建立在两个专门的专家模型的有效性和他们的协同从颜色和形状模态定位异常区域。第一个专家利用几何信息通过对局部形状周围的隐式距离场建模来探测三维结构异常。第二个专家考虑与第一个专家相关联的二维RGB特征来识别局部形状上的颜色外观不规则性。我们使用两位专家从无异常的训练样本中构建双记忆库,并进行形状引导推理以查明测试样本中的缺陷。由于每个点的3D表示和互补模式的有效融合方案,我们的方法有效地在MVTec 3DAD数据集上实现了最先进的性能,具有更好的召回率和更低的误报率,这在实际应用中是首选的

一、介绍

无监督异常检测和定位在制造业和医疗保健中有许多应用。以往的方法主要是利用颜色信息来识别输入图像中的缺陷和异常区域。虽然在大多数情况下,颜色信息通常足以用于定位异常,但也有研究表明,当充分利用3D几何信息时,可以有助于实现更好的性能(Horwitz & Hoshen, 2022)。

我们的工作旨在解决最近发布的MVTec 3D- ad数据集上的3D异常检测和定位问题。我们提出形状引导双存储器学习将颜色和几何信息结合起来,提高异常定位精度,降低计算和存储成本。图1说明了我们的方法在从不同模态精确定位缺陷方面的互补优势。
在这里插入图片描述
异常检测的性能通常通过每区域重叠(PRO) (Bergmann等,2021)和相应的连续增加异常阈值的假阳性率来评估。最常见的设置是报告PRO曲线下的面积(AU-PRO)集成到假阳性率为30%(即集成极限为0.3)。然而,在实际应用中,30%的假阳性率可能太大,因此无法精确定位缺陷。为了解决这个问题,我们设计了一种方法,在非常小的集成限制下追求更高的AU-PRO。我们的方法使用神经隐式函数(nif)通过带符号距离场来表示局部形状,就像当前3D重建方法所做的那样(Jiang等人,2020;Takikawa等,2021;Ma等人,2021;2022;Li et al ., 2022)。将点云样本划分为nif表示的局部补丁,使我们能够在方向变化的情况下建模复杂形状的3D物体。本地带符号距离字段还支持细粒度的逐点异常预测。因此,我们的方法在MVTec 3D- ad基准上实现了最先进的AU-PRO,即使在非常小的集成限制下,这对于以前的2D和3D异常检测方法来说是相当具有挑战性的。

我们将这项工作的贡献总结如下:

  1. 提出了一种有效的形状引导方法整合了颜色和几何的互补形式。我们的方法需要更少的内存使用并促进更快的推理。
  2. 我们提出了第一个使用符号距离场的神经隐式函数来表示三维异常检测的局部形状的工作。有利的是,我们可以将复杂结构的三维点云建模到每个点的细粒度级别。
  3. 我们的方法在MVTec 3D-AD数据集上实现了最先进的性能,特别是在小集成限制下,这意味着在实际应用中更好的召回率和更低的误报率。

三、方法

与2D设置不同,用于3D异常检测的训练数据(例如MVTec 3DAD)以两种不同的模式连接呈现,包括像素RGB值和点向3D坐标。为了充分利用两种表示形式的互补效果,我们设计了一种形状引导的外观重建方案,有效地连接了两种信息流,提高了异常预测和定位的准确性。

3.1. 形状引导专家学习

该方法基于两种专业专家模型的有效性及其协同作用,更好地解决了三维异常检测的任务。第一个专家利用3D信息来探测形状几何中可能存在的异常,第二个专家考虑RGB信息来挑出任何外观不规则(在颜色方面)。接下来,我们将描述这两个专家模型是如何发展和关联的。

形状专家。 利用点坐标的可用性,我们考虑设计一个三维形状异常专家检测的重点是学习局部几何表示。我们想局部表示的特征可以双倍。首先,缺陷或异常部件通常发生在局部而不是全局。其次,学习点云的局部表示的公式趋向于更具可扩展性和效率。

如图2所示,我们利用PointNet (Qi et al ., 2017)和Neural Implicit Function (NIF) (Ma et al ., 2022)这两个现有模型,用于点云应用来探索3D形状信息。具体来说,我们首先将一个完整的点云划分为三维小块,并进行局部表征学习。对于每个产生的补丁,我们采样500个点,并应用PointNet来获得其特征向量,表示为f,它编码相应的局部几何形状。现在让NIF模型为φ。为了训练用于异常检测的φ,我们遵循(Ma et al ., 2021)中的技术对底层3D补丁表面附近的一组查询点Q = {Q}进行采样,并将这些查询与PointNet特征f一起传递给NIF模型以预测它们的带符号距离{s}。我们将预测查询点q∈q相对于局部曲面的带符号距离s的过程表示为
在这里插入图片描述
除了输入q之外,预测结果s取决于PointNet的补丁特征向量f。(1)中的每一对{ϕ,f}构成一个有符号距离函数(SDF),可用于测量点云的局部表面几何形状。由于NIF ϕ对所有patch都是通用的,并且与类别无关,在完成形状专家的学习后,我们只需要将所有的patch特征向量{f}存储到SDF内存库中,表示为MS,以隐式编码所有“正常”的局部表示。

外观专家。 构建外观专家的目标是创建一个形状引导的记忆库MA,可以用来重建“正常”的RGB特征。

我们考虑点云与其2D RGB图像的配对关系,如图3所示。学习了形状专家之后,我们可以检查SDF与其相应的RGB特征之间的映射。对于每个SDF,我们追溯其在3D接受场中的500个采样点(即PointNet的输入),然后计算它们的2D坐标以检索相应的RGB特征。为了增强其在颜色外观上的表示能力,在特征映射上将二维对应统一扩展两个像素,以包含更多的RGB特征。(参见图4。)在我们的实现中,每个SDF将对应大约40到60个RGB特征向量。这样,我们可以得到形状引导内存库MA,它包含与MS中sdf相同数量的sdf特定的RGB字典。

在这里插入图片描述
在这里插入图片描述

3.2. Shape-Guided推理

使用双存储库MS和MA,我们准备执行推理以检测测试样本x是否包括异常/缺陷。(参见图5。)步骤如下。

  1. 使用PointNet获取所有补丁级sdf, x的{≈f}。
  2. 使用ResNet获取x的RGB特征图。那些与至少一个SDF相关的像素在2D RGB图像中被认为是前景。
  3. 对于{≈f}中的每个SDF,在MS中找到它的k1 = 10个最近邻,形成各自的字典,并通过稀疏表示得到它的近似值_ f。
  4. 对于x的每个patch,使用逐patch重构的f来计算带符号的距离,s = φ (q;{f),对于所有的3D点,{q},从它的感受野。
  5. 取到x所有patch的带符号距离的绝对值,形成最终的SDF分数图。
  6. 对于MS中用于计算步骤3的稀疏表示的所有相关sdf,在MA中对它们所有关联的RGB字典进行并集,形成一个形状引导的RGB字典,记为D。
  7. 对于步骤2中的每个前景RGB特征向量,从D -中找到其k2 = 5个最近邻,并获得其稀疏表示。由近似得到的l2距离形成最终的RGB分数图。
  8. 执行分数图对齐(将在后面描述),并在像素上取SDF和RGB响应的最大值作为相应的异常分数。

在这里插入图片描述
Score-map对齐。 通过最大池化融合SDF和RGB分数映射需要两者的值在一个可比较的范围内。由于异常样本在训练中不可用于估计适当的统计量,我们通过模拟25个随机选择的训练样本的推理并采用“离开自己”策略来模拟测试结果来克服这一困难。这将在测试步骤的最近邻搜索中排除查询本身的SDF和RGB特征。为了使两个结果分数分布一致,我们考虑映射y²→a × y + b,这样RGB分数分布的平均值±3 ×标准差将映射到它们的SDF对应项。由此产生的缩放和移动参数a和b可以很容易地用于参考,将RGB分数y校正为a x y + b。

最后,我们注意到,到目前为止,我们的公式描述的只是针对单一类别的3D异常检测。

然而,考虑到MVTec 3D-AD的十个对象类别是明显不同的,并且我们实现的分类器确实达到了100%的分类准确率,我们的方法本质上提供了一个统一的方法来处理MVTec 3D-AD上的异常检测。

相关文章:

3D异常检测论文笔记 | Shape-Guided Dual-Memory Learning for 3D Anomaly Detection

文章目录 摘要一、介绍三、方法3.1. 形状引导专家学习3.2. Shape-Guided推理 摘要 我们提出了一个形状引导的专家学习框架来解决无监督的三维异常检测问题。我们的方法是建立在两个专门的专家模型的有效性和他们的协同从颜色和形状模态定位异常区域。第一个专家利用几何信息通…...

如何将枯燥的大数据进行可视化处理?

在数字时代,大数据已经成为商业、科学、政府和日常生活中不可或缺的一部分。然而,大数据本身往往是枯燥的、难以理解的数字和文字,如果没有有效的方式将其可视化,就会错失其中的宝贵信息。以下是一些方法,可以将枯燥的…...

linux bash中 test命令详解

test命令用于检查某个条件是否成立。它可以进行数值、字符和文件三方面的测试。 1、数值测试 -eq 等于-ne 不等于-gt 大于-ge 大于或等于-lt 小于-le 小于或等于 例如,我们可以测试两个变量是否相等: num1100 num2200 if test $num1 -eq $num2 thene…...

获取当前时间并转换为想要的格式

转换为YYYY-MM-DD格式 function getCurrentDate() {var today new Date();var year today.getFullYear();var month today.getMonth() 1; // 月份从0开始&#xff0c;需要加1var day today.getDate();return year - (month < 10 ? (0 month) : month) - (day &…...

如何实现自动化测试?

一、首先我们要清楚自动化测试的分类 以实现方式可分为UI自动化和接口自动化。UI自动化可用selenium等工具实现&#xff0c;接口自动化可用使用RobotFramework和Jmeter等工具实现&#xff0c;Jmeter也可做性能自动化&#xff0c;压力测试。 二、平时自动化测试怎么做 1. UI和…...

c++中的对齐问题

c中的对齐问题 需要对齐的原因 尽管内存是以字节为单位&#xff0c;但是大部分处理器并不是按字节块来存取内存的.它一般会以双字节,四字节,8字节,16字节甚至32字节为单位来存取内存&#xff0c;我们将上述这些存取单位称为内存存取粒度. 现在考虑4字节存取粒度的处理器取in…...

力扣(LeetCode)算法_C++—— 存在重复元素

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 &#xff0c;返回 true &#xff1b;如果数组中每个元素互不相同&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,1] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;nums …...

OpenCV实现Photoshop曲线调整

《QT 插件化图像算法研究平台》有仿Photoshop曲线调整图像的功能&#xff0c;包括RGB曲线调整和HSV曲线调整。 Photoshop曲线调整原理&#xff1a;RGB、HSV各通道曲线&#xff0c;可以理解为一个值映射&#xff08;值转换&#xff09;函数。X轴是输入&#xff0c;Y轴是输出。x0…...

【探索Linux】—— 强大的命令行工具 P.8(进程优先级、环境变量)

阅读导航 前言一、进程优先级1. 优先级概念2. Linux查看系统进程3. PRI&#xff08;Priority&#xff09;和NI&#xff08;Nice&#xff09; 二、环境变量1. 概念2. 查看环境变量方法3. 环境变量的组织方式4.通过代码获取环境变量5. 环境变量的特点 总结温馨提示 前言 前面我们…...

蓝牙协议栈BLE

前言 这阵子用到蓝牙比较多&#xff0c;想写一个专栏专门讲解蓝牙协议及其应用&#xff0c;本篇是第一篇文章&#xff0c;讲解低功耗蓝牙和蓝牙协议栈。 参考网上各大神文章&#xff0c;及瑞萨的文章&#xff0c;参考GPT&#xff0c;并且加入了一些本人的理解。 图片部分源自…...

企业架构LNMP学习笔记17

反向代理&#xff1a; 反向代理服务器和真实访问的服务器是在一起的&#xff0c;有关联的。 根据实际业务需求&#xff0c;分发代理页面到不同的解释器。常见于代理后端服务器。 安装apache服务器&#xff1a; yum install -y httpd 修改配置文件&#xff1a; vim /et/http…...

php 获取每月开始结束时间,指定月份的开始结束时间戳

php 获取指定月份的开始结束时间戳。 /** * * 获取指定年月的开始和结束时间戳 * param int $year 年份 * param int $month 月份 * return array(开始时间,结束时间) */ function getMonthBeginAndEnd($year 0, $month 0) {$year $year ? $year : date(Y);$month $month…...

Docker技术入门| Part03:Dockerfile详解(Dockerfile概念、Dockerfile 指令、使用Dockerfile构建镜像)

文章目录 1. Dockerfile概念2. Dockerfile 指令FROM 指定基础镜像RUN执行命令CMD 容器启动命令COPY 复制文件ADD 更高级的复制文件ENV 设置环境变量ARG 构建参数VOLUME 定义匿名卷EXPOSE 暴露端口WORKDIR 指定工作目录USER 指定当前用户LABEL 为镜像添加元数据SHELL 指令 3. 使…...

分享一个有意思的线程相关的程序运行题

翻开之前的代码&#xff0c;发现了一个有意思的代码&#xff0c;猜以下代码的运行结果&#xff1a; package thread;/*** author heyunlin* version 1.0*/ public class ThreadMethodExample {public static void main(String[] args) {Thread thread new Thread(new Runnabl…...

集合的进阶学习

集合体系结构 Collection 单列集合 包含List Set List 包含ArrayList LinkedList Set包含HashSet TreeSet HashSet包含LinkedHashSet List系列集合&#xff1a;添加的元素是有序的、可重复、有索引 Set系列集合&#xff1a;添加的元素是无序的、不重复、无索引 Collectio…...

Java真过饱和了吗?现在学Java迟了?

Java行业内幕揭秘 我是某有名机构的线下课Java老师&#xff0c;负责Java热门框架教学&#xff0c;如Spring、Spring MVC、Spring Boot。但最近被解雇了&#xff0c;让我来吐槽一下。Java现在的学习人数真的太多太多了。 Java的学习饱和度 Java学习的人太多&#xff0c;给你一…...

glibc2.35-通过tls_dtor_list劫持exit执行流程

前言 glibc2.35删除了malloc_hook、free_hook以及realloc_hook&#xff0c;通过劫持这三个hook函数执行system已经不可行了。 传统堆漏洞利用是利用任意地址写改上上述几个hook从而执行system&#xff0c;在移除之后则需要找到同样只需要修改某个地址值并且能够造成程序流劫持…...

linux-OpenSSL升级

1.安装编译所需的安装包 yum install -y gcc make perl zlib-devel 2.从 OpenSSL 官网下载&#xff08;https://www.openssl.org/source/openssl-1.1.1v.tar.gz&#xff09; 注:如果原先版本为1.x.x,升级时还是需要选择1.x.x 3. 编译安装 # 解压tar -xvf openssl-1.1.1v.tar…...

Nginx全家桶配置详解

源码包安装NGINX A&#xff0c;搭建Web Server&#xff0c;任意HTML页面&#xff0c;其8080端口提供Web访问服务&#xff0c;截图成功访问http(s)&#xff1a;//[Server1]:8080并且回显Web页面。保留Server1&#xff0c;但是不允许直接访问Server 1&#xff0c;再部署1套NGINX …...

CMake生成Visual Studio工程

CMake – 生成Visual Studio工程 C/C项目经常使用CMake构建工具。CMake 项目文件&#xff08;例如 CMakeLists.txt&#xff09;可以直接由 Visual Studio 使用。本文要说明的是如何将CMake项目转换到Visual Studio解决方案(.sln)或项目(.vcxproj) 开发环境 为了生成Visual S…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...