【图像异常检测】patchcore环境配置|数据集MVTecAD

时间:2025-04-16 07:14:52

说明

做一个环境配置的过程记录

参考链接

https://blog.51cto.com/u_15953612/11663045
https://blog.****.net/qq_1532145264/article/details/143091659

服务器配置

PyTorch 1.7.0
Python 3.8(ubuntu18.04)
CUDA 11.0
GPU RTX 2080 Ti x2(22GB) * 1
CPU12 vCPU Intel® Xeon® Platinum 8336C CPU @ 2.30GHz
内存45GB

虚拟环境创建和安装依赖

conda create -n patchcore python=3.8

conda activate patchcore

unzip patchcore-inspection-main.zip
# 解压后,改了目录名,把main去掉了
cd patchcore-inspection

# 根据情况看是否需要镜像 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt

pip install timm

训练指令

修改指令最后的数据的根目录,这里为 /root/autodl-tmp/SimpleNet-main/data4

python bin/run_patchcore.py --gpu 0 --seed 0 --save_patchcore_model --save_segmentation_images 
--log_group IM224_WR50_L2-3_P01_D1024-1024_PS-3_AN-1_S0 
--log_project MVTecAD_Results model patch_core -b wideresnet50 -le layer2 -le layer3 --pretrain_embed_dimension 1024 
--target_embed_dimension 1024 --anomaly_scorer_num_nn 1 --patchsize 3 sampler -p 0.1 approx_greedy_coreset 
dataset --resize 256 --imagesize 224 --subdatasets "bottle" mvtec /root/autodl-tmp/SimpleNet-main/data4

错误解决ModuleNotFoundError: No module named ‘patchcore’

参见https://blog.****.net/m0_63828250/article/details/137158892
注意这里运行时可能会提示ModuleNotFoundError: No module named ‘patchcore’,但实际上是有的,只是环境路径设置错误,使用export PYTHONPATH=src后再运行即可。

问题解决 No such file or directory: ‘/root/autodl-tmp/SimpleNet-main/data4/bottle/ground_truth/.ipynb_checkpoints’

有三处要加过滤语句,过滤掉 .ipynb_checkpoints 目录
在mvtec.py里加上:

 for anomaly in anomaly_types:
    anomaly_path = os.path.join(classpath, anomaly)
    anomaly_files = sorted(os.listdir(anomaly_path))
                
                # 过滤掉 .ipynb_checkpoints 目录
    anomaly_files = [file for file in anomaly_files if file != '.ipynb_checkpoints']