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:

@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:

{
    "encoder_state_dict": ...,
    "decoder_state_dict": ...,
    "discriminator_state_dict": ...
}

Loading a Checkpoint

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

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)
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

@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
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support