Deep SVDD Anomaly Detection Model
A Deep Support Vector Data Description (Deep SVDD) model trained for anomaly detection on natural images.
Model Description
This model uses a ResNet-based encoder to learn a hypersphere representation of normal data. Images are classified as anomalies based on their distance from the center of this hypersphere.
Training Data:
- CIFAR-10 (50,000 images)
- CIFAR-100 (50,000 images)
- STL-10 (100,000 images)
Architecture:
- ResNet-based encoder with residual blocks
- Latent dimension: 512
- Input size: 128x128x3
Performance
Evaluated on CIFAR-10 (normal) vs MNIST (anomaly):
| Metric | Value |
|---|---|
| Accuracy | 87.00% |
| Precision | 80.33% |
| Recall | 98.00% |
| F1 Score | 88.29% |
Anomaly Score Separation: 6.15x (anomalies score ~6x higher than normal images)
Usage
Quick Start
from model import DeepSVDDAnomalyDetector
# Load model
detector = DeepSVDDAnomalyDetector.from_pretrained('.')
# Predict on image
score, is_anomaly = detector.predict('test.jpg')
print(f"Anomaly Score: {score:.6f}")
print(f"Is Anomaly: {is_anomaly}")
Download from Hugging Face
from huggingface_hub import snapshot_download
# Download model
model_path = snapshot_download(repo_id="ash12321/deep-svdd-anomaly-detection")
# Load
detector = DeepSVDDAnomalyDetector.from_pretrained(model_path)
Threshold Options
The model supports three threshold presets:
# Optimal F1 (default, recommended)
detector.set_threshold('optimal') # threshold = 0.001618
# 95th percentile (balanced)
detector.set_threshold('95th') # threshold = 0.008501
# 99th percentile (conservative, fewer false positives)
detector.set_threshold('99th') # threshold = 0.015922
Threshold Comparison:
| Threshold | Accuracy | Precision | Recall | Use Case |
|---|---|---|---|---|
| Optimal (0.0016) | 87% | 80% | 98% | Recommended - Best F1 |
| 95th (0.0085) | 75% | 95% | 53% | Few false alarms |
| 99th (0.0159) | 68% | 100% | 35% | Zero false alarms |
Training Details
- Framework: PyTorch 2.9.1+cu128
- Precision: bfloat16 mixed precision
- Optimizer: Fused AdamW
- Hardware: NVIDIA H200
- Epochs: 50
- Batch Size: 1536
Model Files
deepsvdd_model.pth- Model weights and hypersphere parametersthresholds.pkl- All threshold configurationsthresholds.json- Thresholds in JSON formatconfig.json- Model configurationmodel.py- Inference coderequirements.txt- Python dependencies
Citation
@misc{deep-svdd-anomaly-detection,
title={Deep SVDD Anomaly Detection Model},
author={ash12321},
year={2024},
publisher={Hugging Face},
url={https://huggingface.co/ash12321/deep-svdd-anomaly-detection}
}
License
Apache 2.0
Limitations
- Trained on natural images (CIFAR-10/100, STL-10)
- Best suited for detecting distribution shift in natural images
- May not generalize well to very different domains
- Requires RGB images, resized to 128x128
Intended Use
Primary Use: Anomaly detection in natural image datasets
Good for:
- Quality control in image datasets
- Detecting out-of-distribution samples
- Filtering unusual/corrupted images
- Content moderation
Not recommended for:
- Critical safety systems without human review
- Domains very different from natural images
- Downloads last month
- 16
Inference Providers
NEW
This model isn't deployed by any Inference Provider.
🙋
Ask for provider support