Instructions to use abulhawa/industrial-component-anomaly-detection-models with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Keras
How to use abulhawa/industrial-component-anomaly-detection-models with Keras:
# !pip install -U keras tensorflow huggingface_hub # Keras needs TensorFlow installed to read "hf://" paths, so the tensorflow backend is selected here; # "jax" and "torch" also work for computation once TensorFlow is installed. import os os.environ["KERAS_BACKEND"] = "tensorflow" import keras model = keras.saving.load_model("hf://abulhawa/industrial-component-anomaly-detection-models") - Notebooks
- Google Colab
- Kaggle
Industrial Component Anomaly Detection β Model Artifacts
Archive of trained models, metrics, anomaly heatmaps, and four-panel visualizations from the industrial-component-anomaly-detection project. Read the anomaly detection documentation for the methods and the detailed experiment results for category-level comparisons.
Contents
keras_cae/: trained convolutional-autoencoder weights and evaluation artifactspatchcore/: PatchCore evaluation artifactsdinov2/: DINOv2-based evaluation artifactsdinov3/: DINOv3-based evaluation artifacts
This archive does not include the raw MVTec AD dataset or pretrained DINOv2/DINOv3 encoder weights. The DINO directories contain evaluation outputs and metadata only.
Evaluation results
The table reports unweighted means over the 15 MVTec AD categories, computed from the metadata.json files in this archive under the fair-eval-v1 protocol. Image F1 uses thresholds chosen from normal validation data; image AUROC and pixel AUPIMO summarize ranking and low false positive localization. Values are rounded to three decimals.
| Model configuration | Categories | Image F1 β | Image AUROC β | Pixel AUPIMO β |
|---|---|---|---|---|
| DINOv2, original single layer 1-NN | 15 | 0.941 | 0.979 | 0.602 |
| DINOv3, single layer 1-NN | 15 | 0.932 | 0.978 | 0.680 |
| PatchCore | 15 | 0.929 | 0.971 | 0.603 |
| Keras CAE | 15 | 0.496 | 0.722 | 0.059 |
Results by MVTec category
The PatchCore and CAE table reproduces the primary baseline table in the technical report. It is the report snapshot, including image PR-AUC calculated from the curves available at the time. Some report values differ slightly from the current archived metadata and curves; use the per-model files for the exact uploaded artifact values.
| Category | PatchCore F1 | PatchCore PR-AUC | PatchCore AUPIMO | CAE F1 | CAE PR-AUC | CAE AUPIMO |
|---|---|---|---|---|---|---|
| Bottle | 0.962 | 1.000 | 0.982 | 0.992 | 1.000 | 0.507 |
| Cable | 0.933 | 0.985 | 0.511 | 0.154 | 0.624 | 0.000 |
| Capsule | 0.982 | 0.996 | 0.563 | 0.476 | 0.917 | 0.052 |
| Carpet | 0.926 | 0.994 | 0.796 | 0.635 | 0.835 | 0.003 |
| Grid | 0.916 | 0.986 | 0.506 | 0.602 | 0.901 | 0.077 |
| Hazelnut | 0.971 | 0.999 | 0.863 | 0.500 | 0.902 | 0.033 |
| Leather | 0.898 | 0.998 | 0.972 | 0.786 | 0.892 | 0.075 |
| Metal Nut | 0.963 | 0.998 | 0.760 | 0.243 | 0.825 | 0.002 |
| Pill | 0.891 | 0.982 | 0.293 | 0.395 | 0.923 | 0.030 |
| Screw | 0.796 | 0.983 | 0.380 | 0.421 | 0.887 | 0.005 |
| Tile | 0.951 | 0.993 | 0.685 | 0.132 | 0.727 | 0.001 |
| Toothbrush | 0.923 | 0.949 | 0.414 | 0.735 | 0.922 | 0.054 |
| Transistor | 0.916 | 0.976 | 0.427 | 0.657 | 0.758 | 0.005 |
| Wood | 0.952 | 0.995 | 0.642 | 0.182 | 0.955 | 0.008 |
| Zipper | 0.962 | 0.985 | 0.251 | 0.513 | 0.940 | 0.025 |
| Mean (report) | 0.929 | 0.988 | 0.603 | 0.495 | 0.867 | 0.058 |
The DINO table below is computed from the archived original DINOv2 baseline and the latest DINOv3 baseline run for each category. AUROC is the image-level score; AUPIMO is the pixel-level score.
| Category | DINOv2 F1 | DINOv2 AUROC | DINOv2 AUPIMO | DINOv3 F1 | DINOv3 AUROC | DINOv3 AUPIMO |
|---|---|---|---|---|---|---|
| Bottle | 0.992 | 1.000 | 0.900 | 0.992 | 1.000 | 0.889 |
| Cable | 0.906 | 0.960 | 0.496 | 0.957 | 0.992 | 0.719 |
| Capsule | 0.854 | 0.945 | 0.123 | 0.888 | 0.982 | 0.521 |
| Carpet | 0.989 | 0.998 | 0.960 | 0.937 | 0.996 | 0.969 |
| Grid | 0.958 | 1.000 | 0.981 | 0.926 | 0.989 | 0.839 |
| Hazelnut | 0.979 | 0.996 | 0.605 | 0.979 | 0.999 | 0.823 |
| Leather | 0.953 | 1.000 | 1.000 | 0.968 | 1.000 | 1.000 |
| Metal Nut | 0.995 | 1.000 | 0.539 | 0.984 | 1.000 | 0.891 |
| Pill | 0.936 | 0.974 | 0.561 | 0.964 | 0.981 | 0.449 |
| Screw | 0.849 | 0.876 | 0.266 | 0.732 | 0.860 | 0.012 |
| Tile | 0.988 | 1.000 | 0.964 | 0.982 | 1.000 | 0.941 |
| Toothbrush | 0.968 | 0.994 | 0.139 | 0.938 | 0.986 | 0.701 |
| Transistor | 0.811 | 0.958 | 0.113 | 0.854 | 0.929 | 0.270 |
| Wood | 0.960 | 0.989 | 0.687 | 0.916 | 0.982 | 0.580 |
| Zipper | 0.975 | 0.992 | 0.695 | 0.970 | 0.981 | 0.588 |
| Mean (archive) | 0.941 | 0.979 | 0.602 | 0.932 | 0.978 | 0.680 |
For DINOv2, this table uses the original baseline, excluding the enhanced experiments. For DINOv3, it uses the latest archived baseline result per category; bottle and cable each have an earlier run as well. Per category values, model hashes, configuration, and split evidence are in each model's metadata.json. The experiment analysis discusses the enhanced DINOv2 variant and comparison limits. These benchmark results do not establish performance on other production data. This repository stores downloadable artifacts; it does not provide a hosted inference endpoint.
License and permitted use
This is a mixed-provenance archive; no single permissive software license applies to every file. MVTec-derived images, overlays, evaluation artifacts, and models trained on MVTec AD are distributed conservatively under CC BY-NC-SA 4.0 where those terms apply. Treat this archive as non-commercial unless you have separately established broader rights.
See LICENSE.md for path-specific terms and licenses/ for upstream license copies.
Attribution
MVTec AD: Paul Bergmann, Kilian Batzner, Michael Fauser, David Sattlegger, and Carsten Steger, The MVTec Anomaly Detection Dataset: A Comprehensive Real-World Dataset for Unsupervised Anomaly Detection, IJCV 2021; and Bergmann et al., MVTec AD β A Comprehensive Real-World Dataset for Unsupervised Anomaly Detection, CVPR 2019.
DINOv2 and DINOv3 are by Meta AI Research. Review the bundled notices before redistribution.
Restore the model registry
First clone and set up the application repository:
git clone https://github.com/foersben/industrial-component-anomaly-detection.git
cd industrial-component-anomaly-detection
pixi install -e dev
Then download this model registry into the location expected by the application:
pixi run --frozen -e dev hf download \
abulhawa/industrial-component-anomaly-detection-models \
--repo-type model \
--local-dir data/models
Alternatively, if just is available:
just download-models abulhawa/industrial-component-anomaly-detection-models
This model repository is public, so authentication is not required for downloading. For a clean restore, use an empty data/models/ directory because files with matching paths may be replaced.
The model archive does not include the MVTec AD dataset. Follow the dataset setup instructions in the application repository if raw dataset access is needed.
- Downloads last month
- 279