How yassineerraji/industrial-visual-defect-detection-anomaly-segmentation works
This repository compares industrial defect-detection models across normal-only anomaly detection and pixel-supervised segmentation. The main workflow prepares MVTec AD 2 data, trains models under distinct protocols, evaluates predictions and operational robustness, then packages models for inference through a reusable predictor and Streamlit demo. The README also documents MLflow tracking and release bundles. The graph follows sampled call paths where available; some evaluation, reporting, and demo details are based on documented capabilities and directory paths.
Main entry points: training/pipeline.py Normal-only training · evaluation/pipeline.py Evaluation pipeline · supervised.py Supervised CV training · dataset.py Dataset indexing
Components 22
Data preparation
- Dataset indexing
src/defect_detection/data/dataset.py - Preprocessing
src/defect_detection/data/preprocessing.py - Augmentation
src/defect_detection/data/augmentations.py - Grouped folds
src/defect_detection/data/folds.py - Data validation
src/defect_detection/data/validation.py
Model training
- Normal-only training
src/defect_detection/training/pipeline.py - Supervised CV training
src/defect_detection/training/supervised.py - Gradient trainer
src/defect_detection/training/trainer.py - Model implementations
src/defect_detection/models/__init__.py - Run artifacts
src/defect_detection/runs.py
Evaluation
- Evaluation pipeline
src/defect_detection/evaluation/pipeline.py - Anomaly scoring
src/defect_detection/evaluation/scoring.py - Threshold selection
src/defect_detection/evaluation/thresholds.py - Metrics and reports
src/defect_detection/evaluation/metrics.py - Robustness evaluation
src/defect_detection/evaluation/robustness.py
Deployment
- Release bundles
src/defect_detection/release.py - Inference predictor
src/defect_detection/inference/predictor.py - Streamlit demo
app/streamlit_app.py
Experiment tracking
- MLflow tracking
src/defect_detection/tracking.py
Other components
- Engineer
- MVTec AD 2
- MLflow backend
Connections 42
- Engineer → Data validation: validates data
- MVTec AD 2 → Dataset indexing: provides images
- Dataset indexing → Data validation: checks structure
- Dataset indexing → Preprocessing: loads samples
- Preprocessing → Augmentation: transforms training
- Engineer → Normal-only training: starts training
- Normal-only training → Dataset indexing: indexes splits
- Normal-only training → Preprocessing: builds transforms
- Normal-only training → Model implementations: builds model
- Normal-only training → Gradient trainer: fits model
- Normal-only training → Threshold selection: selects thresholds
- Normal-only training → Anomaly scoring: scores validation
- Normal-only training → Run artifacts: saves run
- Engineer → Supervised CV training: starts CV training
- Supervised CV training → Dataset indexing: indexes samples
- Supervised CV training → Grouped folds: groups parts
- Supervised CV training → Preprocessing: builds transforms
- Supervised CV training → Model implementations: builds models
- Supervised CV training → Gradient trainer: trains folds
- Supervised CV training → Run artifacts: saves folds
- Engineer → Evaluation pipeline: evaluates run
- Evaluation pipeline → Run artifacts: loads config
- Evaluation pipeline → Dataset indexing: indexes split
- Evaluation pipeline → Model implementations: loads model
- Evaluation pipeline → Anomaly scoring: computes maps
- Evaluation pipeline → Threshold selection: loads thresholds
- Evaluation pipeline → Metrics and reports: computes metrics
- Engineer → Robustness evaluation: tests robustness
- Robustness evaluation → Evaluation pipeline: predicts conditions
- Robustness evaluation → Dataset indexing: indexes split
- Robustness evaluation → Preprocessing: applies perturbations
- Engineer → Release bundles: exports run
- Release bundles → Run artifacts: reads run artifacts
- Release bundles → Inference predictor: loads predictor
- Engineer → Streamlit demo: inspects image
- Streamlit demo → Inference predictor: requests predictions
- Inference predictor → Preprocessing: transforms image
- Inference predictor → Anomaly scoring: scores anomaly map
- Inference predictor → Model implementations: loads model
- Engineer → MLflow tracking: logs experiment
- MLflow tracking → Run artifacts: reads run records
- MLflow tracking → MLflow backend: logs metrics