RealNet 使用教程
项目概述
RealNet 是一个基于 PyTorch 实现的异常检测框架,它通过论文 "RealNet: A Feature Selection Network with Realistic Synthetic Anomaly for Anomaly Detection" 提出的方法来提升模型在异常检测中的性能。此项目专为 CVPR 2024 设计并提供官方实现,旨在合成现实感强烈的异常图像以改善特征选择网络在异常检测任务上的表现。
1. 项目目录结构及介绍
以下是 RealNet
的基本目录结构及其简要说明:
- assets # 存放静态资源文件
- data # 数据集存放或处理相关文件
- datasets # 特定于数据集的脚本或配置
- experiments # 实验设置与结果
- models # 网络模型定义
- pretrain # 预训练模型或相关权重
- samples # 样本图片,包括正常和异常合成样本
- utils # 辅助工具函数
- LICENSE # 许可证文件
- README.md # 项目简介和快速入门指南
- evaluation_realnet.py # 用于评估RealNet性能的脚本
- requirements.txt # 必需的库依赖列表
- run.sh # 运行脚本,简化命令执行流程
- sample.py # 示例代码,可能用于生成特定类型的样本
- train_classifier.py # 不直接关联RealNet训练,可能是辅助训练脚本
- train_diffusion.py # 可能涉及扩散模型相关的训练过程
- train_realnet.py # 训练RealNet的主要脚本
2. 项目启动文件介绍
训练RealNet
主要通过以下命令来启动RealNet的训练流程,这里使用的是单GPU配置(例如RTX3090):
python -m torch.distributed.launch --nproc_per_node=1 train_realnet.py \
--dataset MVTec-AD --class_name bottle realnet.yaml
这个命令调用了分布式训练脚本,但实际上仅在一个节点上运行。指定的数据集是MVTec-AD,类名为'bottle',并且指定了一个配置文件'realnet.yaml',该配置文件覆盖了训练时的多种参数。
评估RealNet
评估阶段,计算各种度量指标如Image AUROC、Pixel AUROC等,并生成可视化结果进行异常定位:
python evaluation_realnet.py \
--dataset MVTec-AD --class_name bottle
3. 项目的配置文件介绍
配置文件(如'realnet.yaml')通常存储在项目的根目录下,或位于特定的配置文件夹中。这些文件详细地定义了模型训练的关键参数,包括但不限于:
- 模型参数:如学习率、优化器类型、批次大小等。
- 数据集路径:指向训练和验证数据集的位置。
- 网络结构配置:定义网络的具体架构细节。
- 训练参数:包括训练轮数、保存检查点的频率等。
- 异常生成设置:特别是对于RealNet,可能包含合成异常图像的具体方法和强度控制。
要深入了解配置文件的内容,需要直接查看'.yaml'文件内的注释和实际参数设定,以便根据具体需求调整这些值。
以上就是关于RealNet的基本使用指导,包括项目结构概览、关键启动脚本以及配置文件的解析。确保在开始之前已经安装好所有必要的依赖,并理解你的实验环境设置,以便顺利运行项目。