Anomalib Notebooks 交互式学习指南:从入门训练、数据模块到 AUPIMO 与 OpenVINO 部署
Anomalib Notebooks 交互式学习指南从入门训练、数据模块到 AUPIMO 与 OpenVINO 部署【免费下载链接】anomalibAn anomaly detection library comprising state-of-the-art algorithms and features such as experiment management, hyper-parameter optimization, and edge inference.项目地址: https://gitcode.com/GitHub_Trending/an/anomalib本指南以 Anomalib 仓库中 examples/notebooks/ 目录下按学习路径组织的 Jupyter Notebook 为线索系统梳理异常检测Anomaly Detection从环境安装、数据准备、模型训练、指标评估、实验追踪、结果可视化到 OpenVINO 边缘部署的完整技术栈。读完本文你将掌握 Anomalib 各 Notebook 的定位与核心内容理解其背后对应的源码实现数据模块、PIMO/AUPIMO 指标、NNCF 压缩回调、MLFlow 日志器等并能够按需选择最适合自己的 Notebook 快速上手实战。一、Notebooks 在 Anomalib 仓库中的定位examples/notebooks/README.md是 Anomalib 官方为新手与进阶用户准备的交互式入口。与 examples/api/纯 Python 脚本示例、examples/cli/命令行示例并列Notebook 的优势在于逐单元执行、即时可视化非常适合边学边跑、探索超参数与模型行为。仓库把 Notebook 按学习进阶组织为 7 个 Section并各自附带 README 说明Section目录核心主题Getting Started01_getting_started/基础训练与推理工作流Data02_data/数据集、DataModule 与数据工具Models03_models/各类异常检测模型的训练与使用Metrics04_metrics/评估指标与性能分析Loggers05_loggers/日志与实验追踪Visualization06_visualization/结果与异常图的可视化Deployment07_deployment/模型优化与部署推荐的学习顺序正如 Quick Start 所强调的先跑通01_getting_started建立整体认知再按实际需求深入 Data、Models 等专题最后通过07_deployment将模型落地到推理环境。二、环境准备安装 Anomalib 与 Notebook 依赖运行 Notebook 前需要先安装 Anomalib。仓库中提供了多种安装方式可在 examples/cli/00_installation/ 中找到对应脚本使用 pippip_install.sh使用 uv推荐速度更快uv_install.sh由于 Notebook 覆盖了 OpenVINO 推理与 NNCF 模型压缩建议安装时带上 OpenVINO 相关扩展。从 src/anomalib/callbacks/nncf/callback.py 的实现可以看到NNCF 回调在初始化时会显式检查nncf是否可用并提示通过以下命令安装pip install anomalib[openvino] # 或 uv pip install anomalib[openvino]依赖清单与锁定版本可分别查阅 pyproject.toml 与 uv.lock。安装完成后建议在 Jupyter / Colab / VSCode 中打开对应.ipynb文件即可开始实验。三、Getting Started跑通第一条训练与推理流水线01_getting_started/getting_started.ipynb 是整个 Notebook 系列的第一课其 README 列出的内容覆盖安装 Anomalib配置Configuration数据集准备Dataset Preparation模型准备Model Preparation模型训练与验证Model Training and ValidationOpenVINO 推理OpenVINO Inference它演示的是 Anomalib 的核心能力闭环用少量代码把一份图像数据集交给一个 SOTA 异常检测模型训练后在验证集上评估再导出并通过 OpenVINO 做加速推理。与 Notebook 对应的纯脚本版在 examples/api/01_getting_started/如 basic_training.py、basic_inference.py、basic_openvino_inference.py可以互为对照Notebook 适合交互式探索脚本适合直接复用。从源码结构看Notebook 内部走的是 Anomalib 的 Engine 训练管线src/anomalib/engine/engine.py它会自动编排 DataModule、Model、Callbacks 与训练器。四、Data 专题理解 Anomalib 数据模块的运作机制02_data/ 是数据专题包含 6 个 NotebookNotebook位置说明BTechdatamodules/btech.ipynbBTech 基准数据集MVTecdatamodules/mvtec.ipynbMVTec AD 基准数据集Folderdatamodules/folder.ipynb自定义文件夹数据集Tilingutils/tiling.ipynb图像分块Tiling工具Tabulardatamodules/tabular.ipynb表格数据模块Kaputtdatamodules/kaputt.ipynbKaputt 数据集该 Section 的 README 深入讲解了数据模块的双层结构Torch Dataset继承torch.utils.data.Dataset实现__len__与__getitem__因此可以脱离 Anomalib、被其他框架直接复用PyTorch Lightning DataModule继承 Lightning 的DataModule把从数据下载、预处理到构造 DataLoader 的整条链路组织在一个类中。这一设计在当前仓库源码中得到印证所有内置数据模块都继承自AnomalibDataModule例如 MVTecAD、BTech、Folder、Kaputt它们统一位于 src/anomalib/data/datamodules/image/ 目录。此外还有专门的 InferenceDataset 用于推理阶段的数据加载。实践建议自定义数据集时优先看folder.ipynb对应 examples/configs/data/folder.yaml 配置它演示了如何用普通文件夹组织 good/anomalous 图像并直接训练需要处理高分辨率图像时再看tiling.ipynb它对应 src/anomalib/data/utils/tiler.py 的分块逻辑。五、Models 专题以 FastFlow 为例的 API 训练全流程03_models/fastflow.ipynb 以 FastFlow 模型为例展示了不写配置文件、纯 API 方式训练模型的完整流程数据集准备Torch 模型准备创建优化器Optimizer创建回调Callbacks模型训练与验证通过 PyTorch Lightning 的predict方法做推理结果可视化这与仓库中的 YAML 配置方式是等价的。查看 examples/configs/model/fastflow.yaml 可以看到 FastFlow 的典型超参model: class_path: anomalib.models.Fastflow init_args: backbone: resnet18 pre_trained: true flow_steps: 8 conv3x3_only: false hidden_ratio: 1.0 trainer: max_epochs: 500 callbacks: - class_path: lightning.pytorch.callbacks.EarlyStopping init_args: patience: 3 monitor: pixel_AUROC mode: max其中flow_steps控制归一化流的堆叠步数默认 8backbone选用预训练的 resnet18 特征提取器训练时以pixel_AUROC作为 EarlyStopping 监控指标。Notebook 中对应的 Python API 写法会把这些参数直接传入模型构造器并配合lightning.pytorch.Trainer使用。FastFlow 的实现源码位于 src/anomalib/models/image/fastflow/其官方模型卡fastflow.md给出了基准数据集上的详细评估数据可作为 Notebook 实验结果的对照基准。完成 FastFlow 后仓库还内置了 30 种模型如 PatchCore、Padim、EfficientAd、STFPM 等见 examples/configs/model/均可参照该 Notebook 的 API 模式训练。六、Metrics 专题AUPIMO 指标的原理与使用04_metrics/aupimo.ipynb 专门讲解AUPIMOArea Under the Per-Image Overlap curve这一细粒度像素级评估指标。从源码 src/anomalib/metrics/pimo/pimo.py 可以准确理解其定义PIMO 曲线对每张异常图像绘制 True Positive RateTPR随异常分数阈值变化的曲线阈值由在正常图像上计算的共享 False Positive RateFPR来索引。横轴是共享 FPR对正常图像逐图 FPR 取对数平均纵轴是逐图 TPR预测掩码与真值掩码的重叠程度AUPIMO 分数在受限的 FPR 积分区间内对 PIMO 曲线求面积并归一化到 [0, 1]分数越高代表定位越准实现上PyTorch 接口会转换为 numpy 计算后封装为PIMOResult/AUPIMOResult数据类返回。Notebook 中的典型用法与源码Example段一致import torch from anomalib.metrics.pimo import PIMO metric PIMO(num_thresholds10) anomaly_maps torch.rand(5, 32, 32) # 5 张图像的异常图 masks torch.randint(0, 2, (5, 32, 32)) # 二值掩码 metric.update(anomaly_maps, masks) result metric.compute() result.num_images # 5num_thresholds即 K用于控制阈值采样密度必须 ≥ 2。此外该目录还提供了 pimo_viz.svg 与 roc_pro_pimo.svg 两张示意图帮助直观对比 PIMO/ROC/Pro 三类曲线的形态差异。更完整的指标族AUROC、AuPro、F1-Max、Min-Max 等位于 src/anomalib/metrics/Notebook 之外的 CLI/API 流水线中均可直接使用。七、Loggers 专题用 MLFlow 做实验追踪与模型注册05_loggers/mlflow.ipynb 演示了如何用MLFlow Logger管理训练实验其内容覆盖安装、启动 MLFlow Server、数据集目录、导入、数据模块、模型、MLFlow Logger 配置、训练、测试、Demo Track Figure跟踪曲线、保存模型到 MLFlow、从 MLFlow 加载模型。这与源码实现一一对应Logger 类定义于 src/anomalib/loggers/mlflow.py是 Anomalib 内置的日志器之一同目录还有 comet.py、wandb.py、tensorboard.pyAnomalib 的日志器统一继承自 src/anomalib/loggers/base.py训练时会在Trainer中注册自动记录损失曲线、评估指标等Notebook 中的保存/加载模型对应 MLFlow 的 model registry 能力训练完成后可把 checkpoint 注册到 MLFlow随后按模型名与版本直接加载做推理实现实验复现与模型治理。若倾向使用其他追踪平台可对照 examples/api/04_advanced/loggers.py 查看 WandB / Comet / TensorBoard 的切换方式。八、Visualization 专题异常图与分割结果的可视化06_visualization/visualize_image.ipynb 聚焦于带异常标注图像的可视化通常配合训练完成后的predict结果使用展示原图、真值掩码、预测异常图Anomaly Map以及叠加后的可视化输出。其背后由可视化组件支撑相关实现位于 src/anomalib/visualization/image/图像可视化器与 src/anomalib/utils/visualization/。训练阶段还有一个 VisualizerCallback 会自动在验证/测试时生成可视化结果写入日志目录Notebook 则更侧重于单图逐步演示、交互式调参的体验。该专题能帮助你直观判断模型是检出还是漏检是调优像素级指标如 AUPIMO时的重要辅助手段。九、Deployment 专题NNCF 量化压缩与 OpenVINO 部署07_deployment/openvino_quantization.ipynb 是生产落地的关键一课内容分三步训练一个无压缩的 Anomalib 模型FP32 基线使用NNCF 压缩训练一个量化模型INT8对比两个模型的性能FP32 vs INT8在几乎不损失精度的前提下换取显著加速。压缩能力由 NNCFCallback 提供其核心要点构造时传入 NNCF 配置字典例如nncf_config { input_info: {sample_size: [1, 3, 224, 224]}, compression: {algorithm: quantization}, } callback NNCFCallback(confignncf_config, export_dir./compressed_models) trainer pl.Trainer(callbacks[callback])压缩初始化使用验证集 DataLoader因为它同时含正常与异常样本而训练集仅有正常样本这一点在回调源码注释中明确说明若指定export_dir回调会自动导出 ONNXmodel_nncf.onnx与 OpenVINO IRmodel_nncf.xml/model_nncf.bin导出依赖 OpenVINO 工具链因此需要预先安装anomalib[openvino]前提条件Lightning 模块中需存在model属性即被压缩的 PyTorch 模块。导出后的 OpenVINO 模型可使用 src/anomalib/deploy/inferencers/openvino_inferencer.py 在边缘设备上高效推理对应脚本示例见 examples/api/01_getting_started/basic_openvino_inference.py。十、学习路径建议与进阶资源结合各 Section 的定位给出两条推荐路线快速上手路线01 Getting Started→06 Visualization→07 Deployment。适合目标明确训一个模型并部署到 OpenVINO的开发者约半天可完成闭环系统研究路线01→02 Data→03 Models→04 Metrics→05 Loggers→06 Visualization→07 Deployment。适合需要深入理解数据机制、尝试多种模型、做严谨评估与实验管理的科研/工程场景。进阶时可以将 Notebook 所学迁移到仓库的其他入口纯脚本版 API 示例examples/api/命令行CLI示例examples/cli/例如anomalib train --model fastflow这类命令全部模型与数据集的 YAML 配置examples/configs/model/ 与 examples/configs/data/可作为 Notebook 中 API 参数的参考对照部署与推理组件src/anomalib/deploy/、src/anomalib/callbacks/nncf/。总结examples/notebooks/是 Anomalib 覆盖面最广的交互式学习入口从01_getting_started的完整训练-推理闭环到02_data的数据模块机制、03_models的 FastFlow API 训练、04_metrics的 AUPIMO 细粒度评估、05_loggers的 MLFlow 实验管理、06_visualization的结果可视化再到07_deployment的 NNCF 量化与 OpenVINO 部署七条主线构成了训练—评估—追踪—可视化—部署的完整方法论。每一环节都能在 src/anomalib/ 源码、examples/configs/ 配置与 tests/ 测试中找到对应的实现佐证这也是这些 Notebook 除教学之外的另一重价值作为阅读源码、理解架构的活索引。【免费下载链接】anomalibAn anomaly detection library comprising state-of-the-art algorithms and features such as experiment management, hyper-parameter optimization, and edge inference.项目地址: https://gitcode.com/GitHub_Trending/an/anomalib创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →