【2023工业3D异常检测文献】M3DM: 基于混合融合的多模态工业异常检测方法

Multimodal Industrial Anomaly Detection via Hybrid Fusion

1、Background

随着3D传感器的发展,最近发布了具有2D图像和3D点云数据的MVTec-3D AD数据集,促进了多模态工业异常检测的研究。

无监督异常检测的核心思想是找出正常表示与异常之间的差异。当前的2D工业异常检测方法可以分为两类:

(1)基于重建的方法。图像重建任务在异常检测方法中被广泛使用,以学习正常表示。对于单一模态输入(2D图像或3D点云),重建方法易于实现。但对于多模态输入,很难找到重建目标。

(2)基于预训练特征提取器的方法。直观的方法是将提取的特征映射到正常分布,并找到分布之外的一个作为异常。基于归一化流的方法使用可逆变换直接构建正常分布,记忆库方法存储一些代表性特征以隐式构建特征分布。

与基于重建的方法相比,直接使用预训练特征提取器不涉及设计多模态重建目标,对于多模态任务是更好的选择。此外,当前的多模态工业异常检测方法直接连接两种模态的特征。然而,当特征维度很高时,多模态特征之间的干扰将非常激烈,并导致性能下降。

为了解决上述问题,提出了一种基于RGB图像和3D点云的新型多模态异常检测方案Multi-3D-Memory (M3DM)。与现有方法直接连接两种模态的特征不同,提出了一种混合融合方案,以减少多模态特征之间的干扰并鼓励特征交互。

提出了无监督特征融合(UFF)来融合多模态特征,它使用分块对比损失进行训练,以学习相同位置的多模态特征块之间的固有关系。为了鼓励异常检测模型保持单一域推理能力,分别为RGB、3D和融合特征构建了三个记忆库。

对于最终决策,构建了决策层融合(DLF),以考虑所有记忆库进行异常检测和分割。异常检测需要包含全局和局部信息的特征,其中局部信息有助于检测小缺陷,全局信息关注所有部分之间的关系。基于这一观察,使用Point Transformer进行3D特征和Vision Transformer进行RGB特征。进一步提出了点特征对齐(PFA)操作,以更好地将3D和2D特征对齐。

2、Method

Multi-3D-Memory (M3DM)方法采用3D点云和RGB图像作为输入,进行3D异常检测和分割。

采用特征混合融合方案,以促进跨域信息交互,同时保持每个单一域的原始信息。

利用两个预训练的特征提取器,DINO用于RGB和PointMAE用于点云,分别提取颜色和3D表示。

M3DM由三个重要部分组成:

(1)点特征对齐(PFA):为了解决颜色特征和3D特征之间的位置信息不匹配问题,提出了点特征对齐,将3D特征对齐到2D空间,这有助于简化多模态交互并提高检测性能。

(2)无监督特征融合(UFF):由于多模态特征之间的交互可以产生对异常检测有帮助的新表示,提出了一个无监督特征融合模块,以帮助统一多模态特征的分布并学习它们之间的内在联系。

(3)决策层融合(DLF):尽管UFF有助于提高检测性能,但发现信息丢失是不可避免的,并提出使用多个记忆库进行最终决策。

算法流程:

  • 输入数据
    • 3D点云
    • RGB图像
  • 特征提取
    • 使用Point Transformer处理3D点云,提取每个点的特征(形状)
    • 使用Vision Transformer处理RGB图像,提取图像中每个块的特征(纹理和颜色)
  • 特征融合
    • 点特征对齐(PFA):因为3D点云和彩色图片的空间对应关系可能不一致,所以需要一个对齐过程,让3D形状信息和2D颜色信息能在同一个坐标系下比较。将3D点云特征投影到2D平面上,以便与RGB图像特征对齐。
    • 无监督特征融合(UFF):将对齐后的3D和2D特征进行融合,使用一种特殊的学习方法(分块对比学习),让两种特征互相学习,增强彼此的信息。
  • 决策层融合(DLF)
    • 首先,使用多个记忆库(Memory Bank)分别存储RGB特征、3D特征和融合后的特征。
    • 然后,对于每个记忆库,系统都会计算出一个异常分数和一个分割图,这些分数和图基于学习到的正常产品特征。
    • 最后,通过一个叫做One-Class SVM的模型,综合这些分数和图,给出最终的异常检测结果和异常区域的定位。

pseudo-code

python 复制代码
# 定义函数进行特征提取
def extract_features(data):
    if isinstance(data, RGB_image):
        features = vision_transformer(data)
    elif isinstance(data, PointCloud):
        features = point_transformer(data)
    return features

# 定义函数进行无监督特征融合
def unsupervised_feature_fusion(rgb_features, point_features):
    fused_features = some_fusion_method(rgb_features, point_features)
    return fused_features

# 定义函数进行异常检测
def anomaly_detection(features, memory_bank):
    distances = calculate_distances(features, memory_bank)
    anomaly_score = sum(distances)  # 简化的异常评分计算
    return anomaly_score

# 主流程
def main(new_rgb_image, new_point_cloud, memory_bank_rgb, memory_bank_point, memory_bank_fused):
    # 特征提取
    rgb_features = extract_features(new_rgb_image)
    point_features = extract_features(new_point_cloud)
    
    # 特征融合
    fused_features = unsupervised_feature_fusion(rgb_features, point_features)
    
    # 异常检测
    score_rgb = anomaly_detection(rgb_features, memory_bank_rgb)
    score_point = anomaly_detection(point_features, memory_bank_point)
    score_fused = anomaly_detection(fused_features, memory_bank_fused)
    
    # 综合决策
    final_score = (score_rgb + score_point + score_fused) / 3
    if final_score > threshold:
        return "异常"
    else:
        return "正常"

# 假设的记忆库数据
memory_bank_rgb = ...
memory_bank_point = ...
memory_bank_fused = ...

# 新样本数据
new_rgb_image = ...
new_point_cloud = ...

# 调用主函数进行异常检测
result = main(new_rgb_image, new_point_cloud, memory_bank_rgb, memory_bank_point, memory_bank_fused)
print("检测结果:", result)

3、Experiments

🐂。。。

4、Conclusion

提出了一种基于点云和 RGB 图像的 多模态混合特征融合 工业异常检测方法 Multi-3D-Memory 。

相关推荐
___Dream11 分钟前
【CTFN】基于耦合翻译融合网络的多模态情感分析的层次学习
人工智能·深度学习·机器学习·transformer·人机交互
极客代码18 分钟前
【Python TensorFlow】入门到精通
开发语言·人工智能·python·深度学习·tensorflow
Sitarrrr1 小时前
【Unity】ScriptableObject的应用和3D物体跟随鼠标移动:鼠标放置物体在场景中
3d·unity
撞南墙者1 小时前
OpenCV自学系列(1)——简介和GUI特征操作
人工智能·opencv·计算机视觉
王哈哈^_^2 小时前
【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·pyqt
是瑶瑶子啦2 小时前
【深度学习】论文笔记:空间变换网络(Spatial Transformer Networks)
论文阅读·人工智能·深度学习·视觉检测·空间变换
柳鲲鹏2 小时前
OpenCV视频防抖源码及编译脚本
人工智能·opencv·计算机视觉
西柚小萌新2 小时前
8.机器学习--决策树
人工智能·决策树·机器学习
wangyue43 小时前
c# 深度模型入门
深度学习
川石课堂软件测试3 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana