【图像异常检测】FastFlow复现
链接提取码:tp22说明:包含15个类别(bottle/cable等),提供像素级标注,训练集仅包含正常样本。
·
一、 代码结构
github链接:https://github.com/gathierry/FastFlow
# FastFlow 代码架构思维导图
## 1. 核心目标
- 无监督异常检测与定位(基于2D归一化流)
- 复现FastFlow论文,在MVTec-AD数据集验证性能
## 2. 整体架构
├── 数据处理模块
│ ├── dataset.py
│ │ ├── MVTecDataset类
│ │ │ ├── 加载MVTec-AD数据集(train/test)
│ │ │ ├── 图像预处理(Resize、Normalize、ToTensor)
│ │ │ ├── 异常标签/掩码生成(test集)
├── 模型核心模块
│ ├── fastflow.py
│ │ ├── 特征提取(Backbone)
│ │ │ ├── 支持ResNet18/WideResNet50/DeiT/CaiT
│ │ │ ├── 冻结Backbone参数(仅训练归一化流)
│ │ │ ├── LayerNorm归一化(ResNet系列)
│ │ ├── 2D归一化流(Normalizing Flows)
│ │ │ ├── subnet_conv_func:卷积子网络构造函数
│ │ │ ├── nf_fast_flow:构建AllInOneBlock流结构
│ │ │ ├── 多尺度特征流处理(对应Backbone不同输出层)
│ │ ├── 前向传播
│ │ │ ├── 训练模式:计算流的损失(MSE + 对数雅可比行列式)
│ │ │ ├── 测试模式:生成异常热力图(上采样+多尺度融合)
├── 训练/评估模块
│ ├── main.py
│ │ ├── 命令行参数解析(配置文件、数据集路径、类别等)
│ │ ├── 数据加载器构建(build_train/test_data_loader)
│ │ ├── 模型构建(build_model)
│ │ ├── 优化器构建(Adam)
│ │ ├── 训练逻辑(train_one_epoch)
│ │ │ ├── 单轮训练、损失回传、参数更新
│ │ │ ├── 损失监控(AverageMeter)
│ │ ├── 评估逻辑(eval_once)
│ │ │ ├── 计算AUROC指标(异常检测性能)
│ │ │ ├── 加载 checkpoint 验证
│ │ ├── 断点保存(checkpoint)
├── 配置模块
│ ├── configs/
│ │ ├── 不同Backbone配置文件(resnet18.yaml/deit.yaml等)
│ │ │ ├── input_size/flow_step/hidden_ratio等超参数
│ ├── constants.py
│ │ │ ├── 全局常量(数据集类别、Backbone列表、训练超参)
│ │ │ ├── 路径常量(CHECKPOINT_DIR)
├── 工具模块
│ ├── utils.py
│ │ ├── AverageMeter类:监控损失均值/当前值
├── 环境依赖
│ ├── requirements.txt:timm/FrEIA/torch等版本约束
├── 文档/许可
│ ├── README.md:安装/训练/性能说明
│ ├── LICENSE:Apache 2.0协议
二、数据集相关资源
1 MVTec数据集介绍
2 核心数据集(百度网盘)
2.1 MVTec AD 完整包,失效
- 链接:https://pan.baidu.com/s/1Jh55ufXZZpusg7Vhn4ZYdQ
- 提取码:tp22
- 说明:包含15个类别(bottle/cable等),提供像素级标注,训练集仅包含正常样本
2.2 MVTec AD 分卷版本,感觉不是
- 分卷1链接:https://pan.baidu.com/s/13H2EzxUqHwgqOlvCLg_mnQ
- 提取码:TxJ1
- 说明:数据集体积较大,采用分卷下载方式,下载后需解压合并
2.3 MVTec AD 备用链接,密码错误
- 链接:https://pan.baidu.com/s/1bAKoSG7VHE98JdHJPGJvcw
- 提取码:8g89
- 说明:适配Anomalib/PatchCore等主流异常检测框架
https://www.modelscope.cn/datasets/OpenDataLab/MVTecAD/files
3 配套项目代码资源
3.1 Anomalib(PyTorch框架)
- GitHub仓库:链接1(open-edge-platform/anomalib)
- 功能特点:
- 集成PatchCore、SPADE等SOTA异常检测算法
- 支持MVTec AD数据集全流程训练与推理
- 提供ONNX模型部署脚本
- 预训练权重:
- 百度网盘链接:https://pan.baidu.com/s/1ZzGwCSFLbr_sCiN1ZLGdzw
- 提取码:1234
3.2 PatchCore 复现代码
- 代码+模型资源:https://pan.baidu.com/s/1sARkEgcWt4tpatAqGLXWEA
- 提取码:6eu6
- 功能特点:
- 专为MVTec AD数据集优化适配
- 包含完整训练脚本与推理demo
- 支持CUDA加速推理
- 可直接运行predict.py进行预测
3.3 FastFlow-Paddle(百度飞桨版本)
- GitHub仓库:链接2
- 预训练权重:
- 百度网盘链接:https://pan.baidu.com/s/1mSwGbeieyKQcj8JAWNQ92g
- 提取码:yyds
- 功能特点:基于无监督学习的异常检测方法,提供完整的PaddlePaddle推理部署方案
4 快速使用指南
4.1 数据准备步骤
- 下载MVTec AD数据集并完成解压
- 按照标准目录结构组织数据:train/test/ground_truth
4.2 环境安装
pip install anomalib torchvision opencv-python
4.3 模型训练示例(Anomalib)
python tools/train.py --config configs/patchcore/mvtec.yaml --data_path /path/to/mvtec
4.4 模型推理示例
python tools/inference.py --model_path weights/patchcore.pth --image_path test_img.png
5 补充说明
5.1 数据集结构规范
- 每个类别包含三个关键文件夹:
- train:仅包含正常样本
- test:包含正常样本和异常样本
- ground_truth:提供异常区域的像素级标注
5.2 框架选择建议
- Anomalib:适合快速验证多种SOTA算法性能
- PatchCore:适用于对召回率要求较高的工业场景
- FastFlow:适合无监督学习场景的部署需求
5.3 资源更新说明
- 数据集结构:每个类别含train(正常)、test(正常+异常)、ground_truth(异常标注)文件夹。
- 代码适配:Anomalib适合快速验证SOTA算法,PatchCore适合高召回率场景,FastFlow适合无监督部署。
- 若链接失效,优先访问GitHub/Gitee搜索“MVTec AD 异常检测”获取最新资源。
三、环境配置
使用docker部署环境,方便复现
四、编写推理程序,绘制热力图

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)