open-edge-platform/anomalib
An anomaly detection library comprising state-of-the-art algorithms and features such as experiment management, hyper-parameter optimization, and edge inference.
📚 什么是 Anomalib?
Anomalib 是一个开源的 Python 库,集成了用于 视觉异常检测 的最先进深度学习模型——在图像和视频中识别缺陷或分布外的物体。它提供:
- 一个 模块化 API 和命令行接口(CLI),用于训练、推理和基准测试。
- 基于 PyTorch Lightning 构建的多个研究论文(PatchCore、PaDiM、STFPM 等)的即用型实现,以减少样板代码。
- 支持导出到 OpenVINO,使模型能在 Intel CPU/GPU 上快速运行。
- 可选的实验追踪工具(W&B、Comet、TensorBoard)和一个名为 Anomalib Studio 的低代码 Web UI,供非程序员使用。
重点在于基于图像的异常检测,但该库也通过 Tabular 辅助工具支持表格数据。
🚀 快速入门
安装
- 标准安装 –
pip install anomalib(或uv pip install anomalib)。 - 硬件特定扩展 – 添加
[cu126]、[cu130]、[rocm]、[xpu]等,以获取正确的 PyTorch 构建版本。 - 可选功能 –
[openvino]、[clip]、[vlm]、[loggers]、[notebooks]或[full](全部功能)。 - 从源码安装 – 克隆仓库并使用
uv sync --extra <backend>或pip install -e "[dev,<backend>]"。
快速训练(Python API)
from anomalib.data import MVTecAD
from anomalib.models import Patchcore
from anomalib.engine import Engine
dm = MVTecAD()
model = Patchcore()
engine = Engine()
engine.fit(datamodule=dm, model=model)
快速训练(CLI)
anomalib train --model Patchcore --data anomalib.data.MVTecAD
推理
- API –
engine.predict(datamodule=dm, model=model, ckpt_path='…') - CLI –
anomalib predict --model Patchcore --data MVTecAD --ckpt_path model.ckpt - 支持 Torch、Lightning、Gradio UI 和 OpenVINO 加速推理。
🛠️ 核心功能
| 功能 | 重要性 |
|---|---|
| 模块化 API 与 CLI | 无需重写代码即可切换模型、数据集或配置。 |
| 丰富的模型集合 | 在一个地方即可访问大量已发表的异常检测方法。 |
| 基于 Lightning | 用极少代码即可处理训练循环、检查点、混合精度和多 GPU。 |
| OpenVINO 导出 | 将 PyTorch 检查点转换为 Intel 优化的 IR,实现低延迟边缘部署。 |
| 推理工具 | 提供批量预测、Gradio 演示或 ROS/MQTT 集成的预构建脚本。 |
| Anomalib Studio | 一个预发布无代码 Web 应用(Docker 或独立运行),通过 UI 进行模型训练和部署。 |
| 实验日志 | 通过 Lightning 日志器轻松接入 W&B、Comet、TensorBoard 等。 |
| 硬件感知扩展 | 可根据 CPU、CUDA、ROCm 或 Intel XPU 后端按需安装。 |
📊 基准测试与评估
通过一条命令即可运行完整基准测试:
anomalib benchmark --config tools/experimental/benchmarking/sample.yaml
该命令在标准数据集(如 MVTec-AD)上评估选定模型,并输出 AUROC、像素级 AUC 和推理速度等指标。
🤖 Anomalib Studio(低代码 UI)
- 基于 Web – 使用 FastAPI 后端和 React 前端。
- 可连接 USB/IP 摄像头、图像文件夹或视频流。
- 可输出至 ROS 消息、MQTT 等,适用于工业流水线。
- 以 Docker 镜像或独立 UI 形式分发。
- 仍为 预发布 状态——API 可能变更。
📚 文档与社区
- 完整文档:https://anomalib.readthedocs.io
- 示例笔记本位于
examples/notebooks - 支持通过讨论论坛和 GitHub Issues 获取帮助。
- 请参考
CONTRIBUTING.md中的指南进行贡献。
🎓 谁应该使用它?
- 需要可复现的视觉异常检测论文基线的 研究人员。
- 在边缘设备(Intel CPU/GPU、NVIDIA GPU、AMD ROCm)上构建缺陷检测流水线的 工业工程师。
- 希望无需编写底层训练循环即可尝试不同异常检测架构的 数据科学家。
📦 快速参考
- Python 版本:3.10+
- 核心依赖:PyTorch 2.6+、Lightning 2.2+、OpenVINO 2024.0(可选)
- 许可证:Apache-2.0(见
LICENSE) - 最新版本:v2.6.2(
Tabular.from_file的安全加固)。
- 欢迎探索仓库,尝试 CLI,深入笔记本,亲眼见证异常检测的实际效果!*
相关
- 项目
- 项目
- 项目
- 项目
- 项目