【2023工业3D异常检测文献】PointCore: 基于局部-全局特征的高效无监督点云异常检测器

news2024/9/29 4:45:54

PointCore: Efficient Unsupervised Point Cloud
Anomaly Detector Using Local-Global Features

1、Background

当前的点云异常检测器可以分为两类:

(1)基于重建的方法,通过自动编码器重建输入点云数据,并通过比较原始数据和重建数据之间的偏差来识别异常。然而,这些方法对点云的分辨率敏感,导致推理速度慢和精度差。

(2)基于记忆库的方法,记忆库有助于存储代表性特征,隐式构建正常分布并寻找分布外的缺陷。与前者相比,直接使用预训练的特征提取器构建记忆库具有训练速度快且不受点云分辨率影响的优点。此外,现有的点云异常检测器通常采用多个特征记忆库来充分保留局部和全局表示,这导致了计算复杂度高和特征不匹配的问题。

为了解决上述问题,提出了一个基于联合局部-全局特征的无监督点云异常检测框架,称为PointCore。具体来说,总结如下:

(1)PointCore只需要一个记忆库来存储局部-全局表示,并为这些局部-全局特征分配不同的优先级,以减少推理过程中的计算成本和不匹配干扰。

(2)提出了一种基于排名的归一化方法,以消除各种异常分数之间的分布差异,并应用点对平面迭代最近点(point-plane ICP)算法对点云注册结果进行局部优化,以实现稳健的决策。

2、Method

PointCore 算法流程:

  • 全局注册将所有点云数据统一到一个共同的坐标系统中。
    • 选择参考点云:首先选择一个点云作为参考,其他点云将与它进行对比。
    • 计算旋转和平移:使用算法(如迭代最近点算法或特征匹配算法)计算出其他点云相对于参考点云的旋转矩阵和平移向量。
    • 应用变换:将这些变换应用到其他点云上,使它们在空间中的位置和方向与参考点云一致。
  • 局部优化在全局注册的基础上进行,它对点云进行更精细的调整 ,确保点云的局部特征能够精确对齐。
    • 选择局部特征点:在点云中选择一些具有明显特征的点,如角点、边缘点等。
    • 计算局部变换:计算这些特征点之间的距离和方向,确定需要进行的微小旋转和平移,以使它们更好地对齐。
    • 迭代优化:通过迭代过程不断调整这些局部特征点的位置,直到达到预定的精度。
  • 特征提取
    • 使用预训练的PointMAE(点自编码器)特征提取器,从点云中提取PointMAE特征。
  • 构建记忆库
    • 将点云的坐标和提取的PointMAE特征结合起来,形成记忆库。这个记忆库用来存储正常点云的特征,以便后续比较。
  • 推理模块
    • 当有新的点云数据需要检测时,我们同样提取这些点云的坐标和PointMAE特征。
    • 然后,计算新点云中每个点与记忆库中存储的正常点云特征之间的差异。
    • 计算异常分数:通过比较新点云与记忆库中的特征差异,计算每个点的异常分数。这个分数表示该点与正常点云的差异程度。
    • 定位异常区域:根据计算出的异常分数,我们可以确定新点云中哪些区域可能是异常的。

在这里插入图片描述

pseudo-code

# 定义全局和局部注册函数
function register_point_clouds(point_clouds):
    for each point_cloud in point_clouds:
        global_registration(point_cloud)
        local_optimization(point_cloud)
    return registered_point_clouds

# 全局注册
function global_registration(point_cloud):
    # 使用FPFH特征描述符和RANSAC算法进行全局注册
    return transformed_point_cloud

# 局部优化
function local_optimization(point_cloud):
    # 使用点-平面ICP算法进行局部优化
    return optimized_point_cloud

# 定义特征提取函数
function extract_features(registered_point_clouds):
    features = []
    for point_cloud in registered_point_clouds:
        coordinates = sample_coordinates(point_cloud)
        pointMAE_features = pointMAE_extractor(coordinates)
        features.append((coordinates, pointMAE_features))
    return features

# 坐标采样
function sample_coordinates(point_cloud):
    # 使用贪婪算法对点云进行下采样
    return sampled_coordinates

# 使用PointMAE提取特征
function pointMAE_extractor(coordinates):
    # 使用预训练的PointMAE模型提取特征
    return extracted_features

# 定义推理和异常分数计算函数
function compute_anomaly_scores(features, test_point_cloud):
    memory_bank = construct_memory_bank(features)
    anomaly_scores = []
    for point in test_point_cloud:
        score = calculate_anomaly_score(memory_bank, point)
        anomaly_scores.append(score)
    return anomaly_scores

# 构建记忆库
function construct_memory_bank(features):
    # 将坐标和PointMAE特征结合,形成记忆库
    return memory_bank

# 计算异常分数
function calculate_anomaly_score(memory_bank, test_point):
    # 使用记忆库中的数据计算测试点的异常分数
    return anomaly_score

# 主流程
function main(train_point_clouds, test_point_cloud):
    registered_train = register_point_clouds(train_point_clouds)
    features = extract_features(registered_train)
    memory_bank = construct_memory_bank(features)
    anomaly_scores = compute_anomaly_scores(features, test_point_cloud)
    return anomaly_scores

3、Experiments

🐂🐎。。。

在这里插入图片描述

4、Conclusion

提出了 基于单个记忆库的局部-全局特征来存储输入点云的多尺度信息 的无监督点云异常检测器 PointCore

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

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

相关文章

【matlab画多纵坐标图像】

一 、什么是多纵坐标图像 多纵坐标图像是一种在同一个坐标系中,使用多个纵坐标轴来表示不同的数据指标的图像。在多纵坐标图中,每个纵坐标轴可以有不同的刻度和单位,用于表示不同的数据范围。这样可以方便地比较不同指标的变化趋势&#xff0…

JAVA入门-集合与泛型

目录 一、集合体系结构 二、Collection单列集合 2.1 概述 2.2 基本方法与接口 2.3 遍历方式 2.3.1 迭代器遍历 2.3.2 增强for遍历 2.3.3 Lamda表达式遍历 三、List集合 3.1 ArrayList集合 3.2 LinkedList集合 四、泛型 4.1 泛型擦除 4.2 泛型使用 4.2.1 泛型类 …

SPAD 单光子雪崩二极管

一、简介 SPAD,全称为Single Photon Avalanche Diode(单光子雪崩二极管),是一种高灵敏度的光电探测器件,能够在非常低的光照水平下检测单个光子。SPAD在工作时,当一个光子被探测器吸收后,能够触…

如何高效搭建TEMU自养号测评系统?

TEMU全托管模式当前的优势在于其简化运营流程,允许卖家专注于产品选品与质量控制,而无需直接参与日常运营。然而,这一模式也限制了卖家在营销策略上的自主性,促使部分卖家采取自养号测评的方式,以增强产品链接的竞争力…

精通推荐算法32:行为序列建模总结

1 行为序列建模总体架构 2 行为序列整体总结 用户行为序列建模是推荐算法中至关重要的一环,也是目前较为核心和前沿的研究方向。其主要分为短序列建模和长序列建模两大方向。短序列建模又主要分为池化和序列化两种方式,其中池化包括Sum-Pooling、Averag…

828华为云征文 | 使用 Memtester 对华为云 X 实例进行内存性能测试

目录 前言 1 华为云X实例介绍 2 Memtester 简介 2.1 什么是Memtester 2.2 安装 Memtester 3 测试方案设计 3.1 测试目标 3.2 测试环境 3.3 测试命令 4 测试数据及性能分析 4.1 带宽测试结果 4.2 延迟测试结果 5 性能瓶颈与优化建议 6 总结 前言 在云计算的应用场…

Spring Boot 点餐系统:简化您的订餐流程

第五章 系统实现 5.1用户功能模块 用户点击进入到系统操作界面,可以对首页、个人中心、美食订单管理、美食评价管理、我的收藏管理等功能模块,个人信息:通过列表可以获取用户账号、用户姓名、性别、年龄、头像、用户手机、配送地址并进行修改…

Python入门:类的异步资源管理与回收( __del__ 方法中如何调用异步函数)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 使用上下文管理器📝 使用 `__del__` 方法📝 结合使用上下文管理器与 `__del__`📝 资源回收的重要性⚓️ 相关链接 ⚓️📖 介绍 📖 在编程中,资源的管理和回收至关重要,尤其是在处理网络请求时。频…

Linux三剑客对数据处理

grep配合正则表达式可以灵活的查找文本内容。 但是有些时候我们不仅仅需要找出数据,还需要按照一定的规则进行整合,格式化排列 文本文件内有一百条规范数据,如下: John Doe, 25, Engineer Alice Smith, 30, Data Scientist Bob …

不将“旧”,换新家电的门槛又被TCL拉低了

在不同的时代背景中,“新旧”两字所代表的消费含义在不断更迭。过去物质匮乏的年代,“新三年,旧三年,缝缝补补又三年”的俭朴消费观贯穿了国人的生活。随着经济发展,“旧的不去,新的不来”逐渐成为社会消费…

市场调研利器 网络问卷的优势及面临的挑战

网络问卷作为市场调研工具,高效便捷、成本低廉、数据准确度高且灵活多样。但其低响应率、数据偏差、隐私与安全及技术依赖等挑战也需关注。企业应优化调研方法,应对挑战,以获取全面市场信息。 一、网络问卷的优势 首先,我们来分析…

【频分复用】5G中OFDM和GFDM的比较(频谱效率、误码率、星座图、复杂度)【附MATLAB代码及报告】

微信公众号:EW Frontier QQ交流群:554073254 背景 5G需要满足低延迟、高数据速率、连接密度和其他应用需求,这些应用需要增强的移动的宽带、超可靠和低延迟连接以及海量机器类型连接[1]。这种通信所需的信道容量受到噪声、衰减、失真和符号间…

千亿大数据不为人知的数据库缺陷——中看不中用的设置——MySQL大数据优化

一、数据插入之后变了2147483647 在 MySQL 数据库的操作中,我们常常会遇到各种意想不到的情况。其中,当插入日志数据时,如果没有对数据的大小和范围进行有效的控制,就可能会引发一系列问题。想象一下这样的场景:我们…

花都狮岭寄宿自闭症学校:开启孩子的生命之门

在花都狮岭这片充满温情的土地上,有一所特别的学校,它像一把钥匙,轻轻旋转,为自闭症儿童们开启了一扇通往无限可能的生命之门——这就是广州星贝育园自闭症儿童寄宿制学校。这所学校不仅是知识的摇篮,更是孩子们心灵成…

BACnet-NPDU(4)

前面抓取了BACnet 的UDP和RS485数据进行分析,现在做一下总结。 BACnet不管是走UDP还是RS485,里面的NPDU和APDU数据结构是一样的,只是BACnet的头不一样,这里做一下总结。 1、UDP的BACnet 头 BACnet/IP 使用 UDP 协议进行数据传输&a…

spring cloud Gateway网关

网关是将所有面向用户的服务接口统一管理的代理服务器,所有内部服务的远程调用都是在局域网内部,而网关是在公网中。 一、依赖 通过访问网关调用项目中的服务,需要使用Eureka,网关服务器需要在Eureka服务注册它自己,本…

【C++报错已解决】std::ios_base::floatfield

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

The 2024 CCPC Online Contest (C I J三题思路)

写在前面 因为学弟已经问了几个题了,于是乎这场没有vp,准备直接开写了 题目 C. 种树(树形dp) 题解 只有两种情况, 一种是1-2-3,1是2的父亲,2是3的父亲 另一种是1-2-3,2同时是1…

新手如何使用Qt——方法使用

前言 那么这篇文章其实是我在使用Qt的过程当中呢,我发现在Qt使用过程中,在我理解信号和槽这个概念后,在编写槽函数数的时候,发现了自身存在的问题,我的难点是在于当我在编写槽函数的时候,我知道这个槽函数是…

GD32片内flash读写数据

如有技术问题及技术需求请加作者微信! GD32片内Flash的读写数据是微控制器编程中的常见任务,主要用于存储程序代码、配置参数或用户数据等。以下将详细介绍GD32片内Flash的读写数据方法和程序。 一、GD32 Flash的基本特性 存储空间划分:GD32的Flash存储空间通常分为主存储块…