PyTorch implementation for CVPR2023 paper, Explicit Boundary Guided Semi-Push-Pull Contrastive Learning for Supervised Anomaly Detection.
Install all packages with this command:
$ python3 -m pip install -U -r requirements.txt
Please download MVTecAD dataset from MVTecAD dataset and BTAD dataset from BTAD dataset.
- Run code for training MVTecAD
python main.py --flow_arch conditional_flow_model --gpu 0 --data_path /path/to/your/dataset --with_fas --data_strategy 0,1 --num_anomalies 10 --not_in_test --exp_name bgad_fas_10 --focal_weighting --pos_beta 0.01 --margin_tau 0.1
- Run code for training BTAD
python main.py --flow_arch conditional_flow_model --gpu 0 --dataset btad --data_path /path/to/your/dataset --with_fas --data_strategy 0,1 --num_anomalies 10 --not_in_test --exp_name bgad_fas_10 --focal_weighting --pos_beta 0.01 --margin_tau 0.1
- Run code for testing
python test.py --flow_arch conditional_flow_model --gpu 0 --checkpoint /path/to/output/dir --phase test --pro
If you find this repository useful, please consider citing our work:
@article{BGAD,
title={Explicit Boundary Guided Semi-Push-Pull Contrastive Learning for Supervised Anomaly Detection},
author={Xincheng Yao and Ruoqi Li and Jing Zhang and Jun Sun and Chongyang Zhang},
year={2023},
booktitle={Conference on Computer Vision and Pattern Recognition 2023},
url={https://arxiv.org/abs/2207.01463},
primaryClass={cs.CV}
}
This repository is built using the timm library, the CFLOW repository and the FrEIA repository.
If you are interested in our work, you can also follow our other works: PMAD (AAAI2023), FOD (ICCV2023), HGAD (ECCV2024), ResAD (NeurIPS2024). Or, you can follow our github page xcyao00.