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

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

python 复制代码
# 定义全局和局部注册函数
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

相关推荐
AI浩19 分钟前
用于视觉的MetaFormer基线模型
人工智能·目标检测·计算机视觉
B站计算机毕业设计超人33 分钟前
计算机毕业设计Hadoop+Spark知识图谱体育赛事推荐系统 体育赛事热度预测系统 体育赛事数据分析 体育赛事可视化 体育赛事大数据 大数据毕设
大数据·hadoop·爬虫·深度学习·机器学习·spark·推荐算法
阿利同学41 分钟前
车辆零部件检测和分割数据集-车体数据集-yolo格式-yolov5-yolov10可用
yolo·计算机视觉·数据集·课程设计·毕设选题·汽车零部件数据集·汽车部件数据集
Eric.Lee20212 小时前
数据集-目标检测系列-鲨鱼检测数据集 shark >> DataBall
python·深度学习·算法·目标检测·数据集·鲨鱼检测
sp_fyf_20243 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-25
人工智能·深度学习·算法·语言模型·自然语言处理
红米煮粥3 小时前
卷积神经网络-最优模型
人工智能·深度学习·cnn
DA树聚3 小时前
人工智能-机器学习-深度学习-分类与算法梳理
人工智能·深度学习·算法·机器学习·语言模型·分类·transformer
姚杰献4 小时前
Mac电脑上最简单安装Python的方式
开发语言·python·macos·机器学习
电气_空空4 小时前
自动驾驶电车难题的康德式道德决策
人工智能·机器学习·自动驾驶