【2022工业3D异常检测文献】Patch+FPFH: 结合3D手工点云描述符和颜色特征的异常检测方法

AN EMPIRICAL INVESTIGATION OF 3D ANOMALY DETECTION AND SEGMENTATION

1、Background

PatchCore 方法:

  • PatchCore是一种基于2D图像的异常检测方法,它使用预训练的深度学习模型(如在ImageNet上预训练的模型)来提取图像的局部特征。
  • 这些特征随后用于训练一个异常评分模型,通常是通过计算特征向量与正常训练数据集的最近邻距离来实现。
  • PatchCore 在2D图像的异常检测和分割任务中表现出色。

FPFH 方法:

  • FPFH(Fast Point Feature Histograms)是一种用于3D点云数据的特征描述符,它描述了点云中每个点的局部形状特征。
  • FPFH 通过计算点的k-最近邻,然后基于邻居点的位置和表面法线生成一个直方图特征来工作。
  • 这种方法对于3D物体的识别和分析非常有效,尤其是在机器人和计算机视觉领域。

结合 PatchCore 和 FPFH:

  • 将这两种方法结合起来可以 充分利用2D颜色信息和3D几何信息的优势。
  • 具体来说, FPFH用于提取3D点云的几何特征,而PatchCore用于处理与颜色和纹理相关的2D图像特征。
  • 这两种特征被结合起来,作为一个更丰富的表示输入到异常检测模型中,以提高检测和分割的准确性。

2、Method

算法流程:

  • 数据预处理:
    • 3D点云和RGB图像获取:对于每个工业产品,获取相应的3D点云和RGB图像。
    • 背景和噪声移除:使用RANSAC算法移除背景平面,并使用DB-Scan算法移除点云中的离群点。
  • 特征提取:
    • PatchCore特征提取:
      • 对RGB图像应用预训练的卷积神经网络(如ImageNet预训练的WideResNet50)。
      • 从网络的不同层(如块2和块3的聚合输出)提取局部区域(patch)的特征。
        这些特征用于表示图像的局部区域。
    • FPFH特征提取:
      • 对3D点云应用FPFH算法,计算每个点的局部几何特征。
      • FPFH描述符通过考虑点的k-最近邻和表面法线生成直方图特征。
  • 特征组合:
    • 将PatchCore提取的颜色特征和FPFH提取的几何特征进行拼接(concatenation)。
    • 这样,每个局部区域都由一组综合了2D颜色信息和3D几何信息的特征向量表示。
  • 异常评分:
    • 使用k-最近邻(k-NN)算法计算每个局部区域特征向量与正常训练数据集的最近邻距离。
    • 根据最近邻距离为每个局部区域分配异常得分。
  • 异常分割和检测:
    • 像素级异常分割(Pixel-wise Anomaly Segmentation):
      • 根据计算出的异常得分,确定每个像素是否为异常。
      • 分数高于某个阈值的像素被认为是异常。
    • 样本级异常检测(Sample-wise Anomaly Detection):
      • 对于整个图像或点云,基于局部区域中最异常的得分来确定是否为异常样本。
  • 评估:
    • 使用I-ROC(图像级别的ROC曲线)、P-ROC(像素级别的ROC曲线)和PRO(预测与真实标注的重叠度量)等指标评估模型的性能。
开始
数据预处理
PatchCore特征提取
FPFH特征提取
特征组合
异常评分
异常分割和检测
评估
结束

pseudo-code

# 导入必要的库
import PatchCore
import FPFH
import preprocessor
import feature_combiner
import anomaly_detector# 步骤1: 数据预处理
def preprocess(data):point_cloud, rgb_image = datapoint_cloud = preprocessor.remove_background(point_cloud)point_cloud = preprocessor.remove_outliers(point_cloud)return point_cloud, rgb_image# 步骤2: PatchCore特征提取
def extract_patchcore_features(rgb_image):features = PatchCore.extract_features(rgb_image)return features# 步骤3: FPFH特征提取
def extract_fpfh_features(point_cloud):features = FPFH.compute_descriptors(point_cloud)return features# 步骤4: 特征组合
def combine_features(patchcore_features, fpfh_features):combined_features = feature_combiner.concatenate(patchcore_features, fpfh_features)return combined_features# 步骤5: 异常评分
def score_anomalies(combined_features, training_data):scores = anomaly_detector.k_nearest_neighbor(combined_features, training_data)return scores# 步骤6: 异常分割和检测
def segment_and_detect(scores, threshold):segmented_output = anomaly_detector.segment(scores, threshold)detected_output = anomaly_detector.detect(scores, threshold)return segmented_output, detected_output# 主流程
def main(data, training_data, threshold):# 数据预处理point_cloud, rgb_image = preprocess(data)# 特征提取patchcore_features = extract_patchcore_features(rgb_image)fpfh_features = extract_fpfh_features(point_cloud)# 特征组合combined_features = combine_features(patchcore_features, fpfh_features)# 异常评分scores = score_anomalies(combined_features, training_data)# 异常分割和检测segmented_output, detected_output = segment_and_detect(scores, threshold)return segmented_output, detected_output

3、Experiments

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4、Conclusion

提出了 结合3D手工点云描述符和颜色特征的异常检测方法,即PatchCore+FPFH

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

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

相关文章

Memory Bus in SOC

在 SoC架构设计中,Memory Bus 是一个关键的组成部分,它负责连接 SoC 中的各个模块(如 CPU、GPU、DMA、外设等)与外部存储器(如 DDR、NAND、Flash 等),起到连接处理器和存储器之间的桥梁作用&…

Qt优秀开源项目之二十四:EXCEL读写利器QXlsx

QXlsx是基于Qt5/Qt6的Excel文件(*.xlsx)的读写库。 github地址:https://github.com/QtExcel/QXlsx QXlsx既可以编译成库,也可以直接引用源码QXlsx-master\QXlsx\QXlsx.pri QXls提供了非常丰富的Examples,比如&#xff…

LED电子看板减少人工记录的错误

在当今快节奏的生产和管理环境中,准确性和效率是企业追求的关键目标。而传统的人工记录方式,常常因人为因素而出现各种错误,影响着企业的决策和运营。然而,随着科技的不断进步,LED 电子看板的出现为解决这一难题提供了…

无法获得下列许可 SOLIDWORKS Standard。 无法从使用许可服务器内读取数据,(-16,10009,10054)

无法获得下列许可 SOLIDWORKS Standard。 无法从使用许可服务器内读取数据,(-16,10009,10054) 错误如图 打开xxclean 扩展功能 服务无法启动

10.23Python_matplotlib_乱码问题

中英文问题解决方案 在使用 Matplotlib 绘图时,经常会出现中文字体显示问题。以下是一些解决方案: Windows 系统解决方案 在代码开始处添加以下代码,以支持中文显示: import matplotlib.pyplot as plt plt.rcParams[font.sans…

联想与Meta合作基于Llama大模型推出面向PC的个人AI智能体——AI Now | LeetTalk Daily...

“LeetTalk Daily”,每日科技前沿,由LeetTools AI精心筛选,为您带来最新鲜、最具洞察力的科技新闻。 联想集团昨日在美国西雅图召开年度Tech World大会。联想CEO杨元庆在主题演讲中,与Meta创始人兼CEO马克扎克伯格一道宣布&#x…

《15分钟轻松学Go》教程目录

在AI快速发展的时代,学习Go语言依然很有用。Go语言擅长处理高并发任务,也就是说可以同时处理很多请求,这对于需要快速响应的AI服务非常重要。另外,Go适合用来处理和传输大量数据,非常适合机器学习模型的数据预处理。 …

C++笔记---哈希表

1. 哈希的概念 哈希(hash)又称散列,是一种组织数据的方式。从译名来看,有散乱排列的意思。 本质就是通过哈希函数把关键字Key跟存储位置建立一个映射关系,查找时通过这个哈希函数计算出Key存储的位置,进行快速查找。 STL中的un…

【Python数据库操作】使用SQLite和MySQL进行数据存储和查询!

【Python数据库操作】使用SQLite和MySQL进行数据存储和查询! 在现代应用程序中,数据存储与管理是至关重要的。Python为开发者提供了多种与数据库进行交互的方式,其中SQLite和MySQL是最常用的两种数据库。本文将深入探讨如何使用Python进行SQ…

No.20 笔记 | WEB安全 - 任意文件操作详解 part 2

一、文件后缀名验证 (一)验证方式分类 基于白名单验证:只允许上传白名单中指定后缀名的文件。基于黑名单验证:只允许上传黑名单中未包含后缀名的文件。 (二)实验准备 修改 Apache 的 httpd - conf 文件…

uni-app写的微信小程序如何体积太大如何处理

方法一:对主包进行分包处理,将使用url: /pages/components/equipment/equipment跳转页面的全部拆分为分包,如url: /pagesS/components/equipment/equipment 在pages.json中添加 "subPackages": [{ "root"…

2024年五一杯数学建模C题煤矿深部开采冲击地压危险预测求解全过程论文及程序

2024年五一杯数学建模 C题 煤矿深部开采冲击地压危险预测 原题再现: “煤炭是中国的主要能源和重要的工业原料。然而,随着开采深度的增加,地应力增大,井下煤岩动力灾害风险越来越大,严重影响着煤矿的安全高效开采。在…

transient关键字详解

今天没打算写blog,在看一篇关于多线程环境下SimpleDateFormat线程不安全的问题,一般我们都知道多线程下这个是不安全,但是为什么不安全不太清楚,我在看的这篇文章讲的比较透彻,我根据文章中讲结合SimpleDateFormat源码…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十五集:制作更多地图,更多敌人,更多可交互对象

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、第一个代表性场景 1.制作更多敌人2.制作更多可交互对象二、第二个代表性场景 1.制作更多敌人2.制作更多可交互对象三、第三个代表性场景 1.制作更多敌人2.制…

苹果手机照片误删还能恢复吗?3款数据恢复工具推荐

照片是人们记录生活点滴与美好回忆的重要方式之一。而苹果手机则具备了较强的拍照功能,深受市场欢迎,但其也存在误删照片并难以恢复的难题。现在市面上也又很多照片恢复软件,其功能参差不齐。今天,小编为您找到了3款高效且可靠的苹…

猫咪掉毛上岸!一招解决清理难题——好用的宠物空气净化器

养宠前就知道猫咪有换毛季,我了解的是一年有两次,养宠后才知道,一次是半年...秋天风大的时候更加严重,直接就是一只“蒲公英”,随时散落一地的猫毛。早晚给它梳毛,每次都能收获巨大一张猫饼。 家里的地板上…

高标准农田信息化推动农业产业链升级

在当前全球农业转型的关键时期,高标准农田信息化作为现代农业发展的核心驱动力之一,正深刻地影响并推动着农业产业链的全面升级。这一进程不仅关乎粮食安全与质量的提升,更是实现农业可持续发展、促进农村经济繁荣的重要途径。 技术应用&…

TCL中环开工率下滑,员工集体要求解约赔偿

“ 尽管中环的市占率有所提高,但是高开工率也带来了巨量硅片库存,严重拖累了公司业绩。 ” 转载:科技新知 原创 作者丨依蔓 编辑丨蕨影 因大幅下调开工率,光伏硅片龙头TCL中环疑似遭遇员工“离职潮”? 近日&…

Java EE规范

1、简介 Java EE的全称是Java Platform, Enterprise Edition。早期Java EE也被称为J2EE,即Java 2 Platform Enterprise Edition的缩写。从J2EE1.5以后,就改名成为Java EE。一般来说,企业级应用具备这些特征:1、数据量特别大&…

curl支持ssl报错:SSL certificate problem: unable to get local issuer certificate

1. 说明 在使用curl时返回CURLE_OUT_OF_MEMORY,猜想可能是ssl的问题,用curl命令做实验发现访问http没问题,访问https会有问题,根据打印log判断是缺少证书,需要下载证书并声明证书路径。 1.1 curl访问http 访问正常&…