| --- |
| license: mit |
| language: |
| - en |
| tags: |
| - anomaly-detection |
| - computer-vision |
| - vae-gan |
| - industrial-ai |
| - mvtec |
| - pytorch |
| library_name: pytorch |
| pipeline_tag: image-classification |
| datasets: |
| - mvtec-ad |
| --- |
| |
| # VAE-GAN Checkpoints for MVTec Anomaly Detection |
|
|
| This repository contains pre-trained VAE-GAN model checkpoints for visual anomaly detection on the MVTec AD dataset. |
|
|
| ## Overview |
|
|
| The models were trained in a one-class anomaly detection setting using only normal training images. During inference, each input image is reconstructed by the VAE-GAN model, and anomaly scores are computed from the reconstruction error between the input and reconstructed image. |
|
|
| These checkpoints are useful for: |
|
|
| - Reconstruction-based anomaly detection |
| - Threshold selection experiments |
| - Multi-point threshold evaluation |
| - Anomaly localization |
| - Explainable anomaly detection |
| - Baseline comparison with AE, VAE, PatchCore, PaDiM, and other methods |
|
|
| ## Dataset |
|
|
| The checkpoints are trained on MVTec AD object and texture categories. |
|
|
| Reference: |
|
|
| ```bibtex |
| @article{bergmann2021mvtec, |
| title={The MVTec Anomaly Detection Dataset: A Comprehensive Real-World Dataset for Unsupervised Anomaly Detection}, |
| author={Bergmann, Paul and Batzner, Kilian and Fauser, Michael and Sattlegger, David and Steger, Carsten}, |
| journal={International Journal of Computer Vision}, |
| year={2021} |
| } |
| ``` |
|
|
| ## Available Checkpoints |
|
|
| | Category | Checkpoint | |
| |-----------|-----------| |
| | Bottle | model_bottle_64.pt | |
| | Cable | model_cable_64.pt | |
| | Capsule | model_capsule_64.pt | |
| | Carpet | model_carpet_64.pt | |
| | Grid | model_grid_64.pt | |
| | Hazelnut | model_hazelnut_64.pt | |
| | Leather | model_leather_64.pt | |
| | Metal Nut | model_metal_nut_64.pt | |
| | Pill | model_pill_64.pt | |
| | Screw | model_screw_64.pt | |
| | Tile | model_tile_64.pt | |
| | Toothbrush | model_toothbrush_64.pt | |
| | Transistor | model_transistor_64.pt | |
| | Wood | model_wood_64.pt | |
| | Zipper | model_zipper_64.pt | |
| |
| ## Model Details |
| |
| | Property | Value | |
| |-----------|-----------| |
| | Model | VAE-GAN | |
| | Training Setting | One-Class Learning | |
| | Training Data | Normal Samples Only | |
| | Input Size | 128 × 128 × 3 | |
| | Latent Dimension | 64 | |
| | Framework | PyTorch | |
| |
| ## Checkpoint Structure |
| |
| Each checkpoint contains: |
| |
| ```python |
| { |
| "encoder_state_dict": ..., |
| "decoder_state_dict": ..., |
| "discriminator_state_dict": ... |
| } |
| ``` |
| |
| ## Loading a Checkpoint |
| |
| ```python |
| import torch |
| |
| checkpoint = torch.load( |
| "model_bottle_64.pt", |
| map_location="cpu", |
| weights_only=False |
| ) |
| |
| encoder.load_state_dict(checkpoint["encoder_state_dict"]) |
| decoder.load_state_dict(checkpoint["decoder_state_dict"]) |
| discriminator.load_state_dict(checkpoint["discriminator_state_dict"]) |
|
|
| encoder.eval() |
| decoder.eval() |
| discriminator.eval() |
| ``` |
| |
| ## Example Anomaly Score |
| |
| ```python |
| with torch.no_grad(): |
| mu, logvar = encoder(image) |
| z = reparameterize(mu, logvar) |
| reconstruction = decoder(z) |
| |
| anomaly_map = torch.abs(image - reconstruction).mean(dim=1) |
| anomaly_score = anomaly_map.mean().item() |
| ``` |
| |
| ## Device Support |
| |
| The checkpoints can be loaded on: |
| |
| - CPU |
| - NVIDIA CUDA GPUs |
| - Apple Silicon (MPS) |
| |
| ```python |
| import torch |
|
|
| if torch.cuda.is_available(): |
| device = "cuda" |
| elif torch.backends.mps.is_available(): |
| device = "mps" |
| else: |
| device = "cpu" |
| ``` |
| |
| ## Intended Use |
|
|
| This repository is intended for research on: |
|
|
| - Visual Anomaly Detection |
| - Reconstruction-Based Anomaly Scoring |
| - Threshold Calibration |
| - Multi-Point Thresholding |
| - Explainable Anomaly Detection |
| - Industrial Inspection Systems |
|
|
| ## Limitations |
|
|
| - Models are trained on resized 128×128 images. |
| - Performance depends on preprocessing, anomaly score design, and threshold selection. |
| - These checkpoints are intended for research purposes and should be validated before deployment in industrial or safety-critical environments. |
|
|
| ## Citation |
|
|
| ```bibtex |
| @misc{rao2026vaeganmvtec, |
| title={VAE-GAN Checkpoints for MVTec Anomaly Detection}, |
| author={Rao, Rashid}, |
| year={2026}, |
| publisher={Hugging Face}, |
| url={https://huggingface.co/rashidrao/AnomalyDetection} |
| } |
| ``` |
|
|
| ## Author |
|
|
| Rashid Rao |
| Industrial PhD Researcher |
| University of Turin, Italy |
|
|
| Research Areas: |
|
|
| - Explainable AI (XAI) |
| - Visual Anomaly Detection |
| - Trustworthy AI |
| - Industrial AI Systems |