SkillAgentSearch skills...

DDAD

No description available

Install / Use

/learn @arimousa/DDAD
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Anomaly Detection with Conditioned Denoising Diffusion Models.

Official implementation of DDAD

PWC PWC

Framework

Requirements

This repository is implemented and tested on Python 3.8 and PyTorch 2.1. To install requirements:

pip install -r requirements.txt

Train and Evaluation of the Model

You can download the model checkpoints directly from Checkpoints

To train the denoising UNet, run:

python main.py --train True

Modify the settings in the config.yaml file to train the model on different categories.

For fine-tuning the feature extractor, use the following command:

python main.py --domain_adaptation True

To evaluate and test the model, run:

python main.py --detection True

Dataset

You can download MVTec AD: MVTec Software and VisA Benchmarks. For preprocessing of VisA dataset check out the Data preparation section of this repository.

The dataset should be placed in the 'datasets' folder. The training dataset should only contain one subcategory consisting of nominal samples, which should be named 'good'. The test dataset should include one category named 'good' for nominal samples, and any other subcategories of anomalous samples. It should be made as follows:

Name_of_Dataset
|-- Category
|-----|----- ground_truth
|-----|----- test
|-----|--------|------ good
|-----|--------|------ ...
|-----|--------|------ ...
|-----|----- train
|-----|--------|------ good

Results

Running the code as explained in this file should achieve the following results for MVTec AD:

Anomaly Detection (Image AUROC) and Anomaly Localization (Pixel AUROC, PRO)

Expected results for MVTec AD: | Category | Carpet | Grid | Leather | Tile | Wood | Bottle | Cable | Capsule | Hazel nut | Metalnut | Pill | Screw | Toothbrush | Transistor | Zipper |Average |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| | Detection | 99.3% | 100% | 100% | 100% | 100% | 100% | 99.4% | 99.4% | 100% | 100% | 100% | 99.0% | 100% | 100% | 100% | 99.8% | Localization | (98.7%,93.9%) | (99.4%,97.3%) | (99.4%,97.7%) | (98.2%,93.1%) | (95.0%,82.9%) | (98.7%,91.8%) | (98.1%,88.9%) | (95.7%,93.4%) | (98.4%,86.7%) | (99.0%,91.1%) | (99.1%,95.5%) | (99.3%,96.3%) | (98.7%,92.6%) | (95.3%,90.1%) | (98.2%,93.2%) | (98,1%,92.3%)

The settings used for these results are detailed in the table.

| Categories | Carpet | Grid | Leather | Tile | Wood | Bottle | Cable | Capsule | Hazelnut | Metal nut | Pill | Screw | Toothbrush | Transistor | Zipper | | -------------- | ------ | ---- | ------- | ---- | ---- | ------ | ----- | ------- | -------- | --------- | ---- | ----- | ----------- | ---------- | ------ | | (w) | 0 | 4 | 11 | 4 | 11 | 3 | 3 | 8 | 5 | 7 | 9 | 2 | 0 | 0 | 10 | | Training epochs | 2500 | 2000 | 2000 | 1000 | 2000 | 1000 | 3000 | 1500 | 2000 | 3000 | 1000 | 2000 | 2000 | 2000 | 1000 | | FE epochs | 0 | 6 | 8 | 0 | 16 | 5 | 0 | 8 | 3 | 1 | 4 | 4 | 2 | 0 | 6 |

Following is the expected results on VisA Dataset.

| Category | Candle | Capsules | Cashew | Chewing gum | Fryum | Macaroni1 | Macaroni2 | PCB1 | PCB2 | PCB3 | PCB4 | Pipe fryum | Average |---|---|---|---|---|---|---|---|---|---|---|---|---|---| | Detection | 99.9% | 100% | 94.5% | 98.1% | 99.0% | 99.2% | 99.2% | 100% | 99.7% | 97.2% | 100% | 100% | 98.9% | Localization | (98.7%,96.6%) | (99.5%,95.0%) | (97.4%,80.3%) | (96.5%,85.2%) | (96.9%,94.2%) | (98.7%,98.5%) | (98.2%,99.3%) | (93.4%,93.3%) | (97.4%,93.3%) | (96.3%,86.6%) | (98.5%,95.5%) | (99.5%,94.7%) |(97.6%,92.7%)

The settings used for these results are detailed in the table.

| Categories | Candle | Capsules | Cashew | Chewing gum | Fryum | Macaroni1 | Macaroni2 | PCB1 | PCB2 | PCB3 | PCB4 | Pipe fryum | | ---------------- | ------ | -------- | ------ | ------------ | ----- | --------- | --------- | ---- | ---- | ---- | ---- | ---------- | | (w) | 6 | 5 | 0 | 6 | 4 | 5 | 2 | 9 | 5 | 6 | 6 | 8 | | Training epochs | 1000 | 1000 | 1750 | 1250 | 1000 | 500 | 500 | 500 | 500 | 500 | 500 | 500 | | FE epochs | 1 | 3 | 0 | 0 | 3 | 7 | 11 | 8 | 5 | 1 | 1 | 6 |

Framework

Citation

@article{mousakhan2023anomaly,
  title={Anomaly Detection with Conditioned Denoising Diffusion Models},
  author={Mousakhan, Arian and Brox, Thomas and Tayyub, Jawad},
  journal={arXiv preprint arXiv:2305.15956},
  year={2023}
}

Feedback

For any feedback or inquiries, please contact arian.mousakhan@gmail.com

View on GitHub
GitHub Stars202
CategoryDevelopment
Updated2mo ago
Forks36

Languages

Python

Security Score

90/100

Audited on Jan 15, 2026

No findings