一 整体概览Anomalib 是由 Intel OpenVINO 团队开源的深度学习异常检测库提供从数据加载、模型训练、推理到可视化的完整流水线。覆盖图像、视频、3D点云等多种模态的异常检测内置25种SOTA异常检测算法。整体代码结构如下:主要使用了以下技术栈1)核心框架: Python 3.10, PyTorch 2.6, PyTorch Lightning 2.62)配置管理: OmegaConf, jsonargparse3)数据处理: TorchVision, OpenCV, Pillow, scikit-image4)模型优化: OpenVINO (可选), ONNX5)可视化: Matplotlib, Rich6)日志追踪: WandB, Comet.ml, TensorBoard, MLflow (可选)7)Web应用: FastAPI React (Anomalib Studio)Anomalib库具有以下功能1)提供25种工业级异常检测算法实现图像/视频2)统一的训练、验证、测试、推理接口3)自动化数据集下载与管理MVTecAD等15标准数据集4)模型导出与加速推理OpenVINO/ONNX5)超参数优化HPO支持6)低代码Web应用Anomalib Studio通过pip进行安装pip install anomalib二 数据集Anomalib库封装了常用的点云、图像、视频异常检测公开数据集通过数据类对整体Anomalib中的数据进行了高层次抽象具有类型安全特性分别实现了PyTorch和Numpy版本。2.1 数据类数据类是Anomalib库所有数据对象的高层抽象类规定了所有模型方法的输出应该如下其中1)anomaly_map:异常热力图2)pred_score:异常预测分数值3)pred_mask:异常预测mask图4)pred_label:异常预测类别5)explanation:异常检测结果输出路径2.2 包含的数据集Anomalib库中的数据集底层通过pandas的DataFrame结构进行管理主要包括以下属性主要集成了以下几种数据集3D点云异常数据集图像异常数据集视频异常数据集常用数据集说明2.3 MVTec数据集加载通过以下方法进行MVTec异常检测图像数据集加载2.4 自定义数据集加载可以通过Anomalib库中的Folder方法加载自定义的异常检测数据集数据集目录应该按照以下结构进行组织存放注意mask文件夹中的mask标记图片文件名必须和异常数据文件夹中的图片一一对应Folder类定义如下参数意义如下重要参数意义如下1)name:自定义数据集的名称日志和结果记录时使用2)normal_dir:自定义数据集中正常数据所在路径3)root:自定义数据集所在根路径4)normal_split_ratio:正常数据用于测试的数据比例默认0.2也就是20%正常数据用于测试不参与模型训练5)extensions:指定要加载的图像类型6)train_batch_size:训练batch_size,默认327)augmentations:统一的数据增强配置(PyTorch的Transform类型)8)val_split_ratio:测试数据中用于验证的比例默认0.2也就是从测试数据中抽取20%作为验证集使用示例如下2.5 数据处理工具Anomalib提供了一些常用的数据处理方法避免二次开发主要包括目录处理、图像处理、视频处理、张量处理等下面挑一些常用的数据处理方法进行说明图像处理为图像的读写、格式转换提供基础处理工具填充图像使图像各维度尺度相同读取、存储、显示图像矩形框处理提供常用矩形框处理方法如矩形框缩放处理、矩形框和mask、热力图的转换数据集分割提供数据集分割方法包括随机分割、标签分布自适应分割等数据合成基于perlin噪声在正常图像或者正常图像数据集上生成异常数据除了生成单张带有perlin noise的图像还可以从正常数据集生成异常数据集三 模型所有模型均继承自AnomalibModule。支持统一的pre_processor/post_processor/evaluator/visualizer配置。Anomalib的模型层主要包含三部分内容1)model components:所有模型的底层block定义、基础工具等2)image models:所有图像异常检测SOTA模型3)video models:所有视频异常检测SOTA模型3.1 model componentsmodel components中封装了常用的工具1)feature extractors:从不同的backbone提取输入图像特征2)dimensionality reduction:特征维度降维、分解3)normalizing flows:归一化流操作4)sampling components:采样方法5)filters:卷积处理方法6)classification:特征分类处理7)cluster:特征聚类处理8)statistical components:异常检测结果统计Feature Extractors提供用于特征提取的类和特征维度获取的函数Dimensionality Reduction包含PCA、SparseRandomProjection特征降维方法3.2 image model支持以下图像异常检测模型、方法四 模型训练、推理、可视化所有模型通过统一引擎Engine 进行训练、推理将模型进行指定类型导出在指定数据集上进行模型训练利用指定模型在指定数据集上进行预测、和测试4.1 模型训练可以自定义参数进行训练4.2 模型推理使用engine进行推理4.3 结果可视化模型初始化时会默认开启可视化五 流程处理提供一些常用的预处理和后处理方法5.1 预处理可封装、管理不同的PyTorch预处理方法精准指定对于不同数据集进行的预处理5.2 后处理模型推理结果后处理包括1)图像归一化、像素尺度异常分数处理2)自适应计算异常分类阈值3)格式化模型推理结果六 指标计算Anomalib支持以下评价指标的评测、计算七 日志和回调支持以下几种日志记录器这四个都是深度学习实验的日志记录/追踪工具在Anomalib里开启Tensorboard日志记录八 工作流构建通过编写工作流可以整合不同的训练流程在一起运行九 API使用参考十 使用示例
异常检测Anomalib库使用说明
发布时间:2026/5/21 19:16:03
一 整体概览Anomalib 是由 Intel OpenVINO 团队开源的深度学习异常检测库提供从数据加载、模型训练、推理到可视化的完整流水线。覆盖图像、视频、3D点云等多种模态的异常检测内置25种SOTA异常检测算法。整体代码结构如下:主要使用了以下技术栈1)核心框架: Python 3.10, PyTorch 2.6, PyTorch Lightning 2.62)配置管理: OmegaConf, jsonargparse3)数据处理: TorchVision, OpenCV, Pillow, scikit-image4)模型优化: OpenVINO (可选), ONNX5)可视化: Matplotlib, Rich6)日志追踪: WandB, Comet.ml, TensorBoard, MLflow (可选)7)Web应用: FastAPI React (Anomalib Studio)Anomalib库具有以下功能1)提供25种工业级异常检测算法实现图像/视频2)统一的训练、验证、测试、推理接口3)自动化数据集下载与管理MVTecAD等15标准数据集4)模型导出与加速推理OpenVINO/ONNX5)超参数优化HPO支持6)低代码Web应用Anomalib Studio通过pip进行安装pip install anomalib二 数据集Anomalib库封装了常用的点云、图像、视频异常检测公开数据集通过数据类对整体Anomalib中的数据进行了高层次抽象具有类型安全特性分别实现了PyTorch和Numpy版本。2.1 数据类数据类是Anomalib库所有数据对象的高层抽象类规定了所有模型方法的输出应该如下其中1)anomaly_map:异常热力图2)pred_score:异常预测分数值3)pred_mask:异常预测mask图4)pred_label:异常预测类别5)explanation:异常检测结果输出路径2.2 包含的数据集Anomalib库中的数据集底层通过pandas的DataFrame结构进行管理主要包括以下属性主要集成了以下几种数据集3D点云异常数据集图像异常数据集视频异常数据集常用数据集说明2.3 MVTec数据集加载通过以下方法进行MVTec异常检测图像数据集加载2.4 自定义数据集加载可以通过Anomalib库中的Folder方法加载自定义的异常检测数据集数据集目录应该按照以下结构进行组织存放注意mask文件夹中的mask标记图片文件名必须和异常数据文件夹中的图片一一对应Folder类定义如下参数意义如下重要参数意义如下1)name:自定义数据集的名称日志和结果记录时使用2)normal_dir:自定义数据集中正常数据所在路径3)root:自定义数据集所在根路径4)normal_split_ratio:正常数据用于测试的数据比例默认0.2也就是20%正常数据用于测试不参与模型训练5)extensions:指定要加载的图像类型6)train_batch_size:训练batch_size,默认327)augmentations:统一的数据增强配置(PyTorch的Transform类型)8)val_split_ratio:测试数据中用于验证的比例默认0.2也就是从测试数据中抽取20%作为验证集使用示例如下2.5 数据处理工具Anomalib提供了一些常用的数据处理方法避免二次开发主要包括目录处理、图像处理、视频处理、张量处理等下面挑一些常用的数据处理方法进行说明图像处理为图像的读写、格式转换提供基础处理工具填充图像使图像各维度尺度相同读取、存储、显示图像矩形框处理提供常用矩形框处理方法如矩形框缩放处理、矩形框和mask、热力图的转换数据集分割提供数据集分割方法包括随机分割、标签分布自适应分割等数据合成基于perlin噪声在正常图像或者正常图像数据集上生成异常数据除了生成单张带有perlin noise的图像还可以从正常数据集生成异常数据集三 模型所有模型均继承自AnomalibModule。支持统一的pre_processor/post_processor/evaluator/visualizer配置。Anomalib的模型层主要包含三部分内容1)model components:所有模型的底层block定义、基础工具等2)image models:所有图像异常检测SOTA模型3)video models:所有视频异常检测SOTA模型3.1 model componentsmodel components中封装了常用的工具1)feature extractors:从不同的backbone提取输入图像特征2)dimensionality reduction:特征维度降维、分解3)normalizing flows:归一化流操作4)sampling components:采样方法5)filters:卷积处理方法6)classification:特征分类处理7)cluster:特征聚类处理8)statistical components:异常检测结果统计Feature Extractors提供用于特征提取的类和特征维度获取的函数Dimensionality Reduction包含PCA、SparseRandomProjection特征降维方法3.2 image model支持以下图像异常检测模型、方法四 模型训练、推理、可视化所有模型通过统一引擎Engine 进行训练、推理将模型进行指定类型导出在指定数据集上进行模型训练利用指定模型在指定数据集上进行预测、和测试4.1 模型训练可以自定义参数进行训练4.2 模型推理使用engine进行推理4.3 结果可视化模型初始化时会默认开启可视化五 流程处理提供一些常用的预处理和后处理方法5.1 预处理可封装、管理不同的PyTorch预处理方法精准指定对于不同数据集进行的预处理5.2 后处理模型推理结果后处理包括1)图像归一化、像素尺度异常分数处理2)自适应计算异常分类阈值3)格式化模型推理结果六 指标计算Anomalib支持以下评价指标的评测、计算七 日志和回调支持以下几种日志记录器这四个都是深度学习实验的日志记录/追踪工具在Anomalib里开启Tensorboard日志记录八 工作流构建通过编写工作流可以整合不同的训练流程在一起运行九 API使用参考十 使用示例