ProjectsFebruary 6, 2026

AI Product Photo Detector

AI Product Photo Detector - Image 1
AI Product Photo Detector - Image 3
AI Product Photo Detector - Image 4
AI Product Photo Detector - Image 5
AI Product Photo Detector - Image 6

Overview

AI Product Photo Detector is a complete MLOps system -- not just a model, but a full production pipeline for binary classification of real vs AI-generated product images. Built around EfficientNet-B0 with Grad-CAM explainability, trained on the CIFAKE dataset (CIFAR-10 real images vs Stable Diffusion AI-generated counterparts). The project covers every stage of the ML lifecycle: data versioning, multi-environment training, experiment tracking, model registry, containerized serving, infrastructure-as-code, CI/CD automation, and production monitoring.
AI Product Photo Detector est un système MLOps complet -- bien plus qu'un simple modèle, c'est un pipeline de production intégral pour la classification binaire d'images réelles vs générées par IA. Construit autour d'EfficientNet-B0 avec explicabilité Grad-CAM, entraîné sur le dataset CIFAKE (images réelles CIFAR-10 vs images générées par Stable Diffusion). Le projet couvre chaque étape du cycle de vie ML : versionnage des données, entraînement multi-environnement, suivi d'expériences, registre de modèles, serving conteneurisé, infrastructure-as-code, automatisation CI/CD et monitoring en production.

Results

MetricValue
Accuracy92.8%
F1-Score93.1%
Precision92.5%
Recall93.7%
Inference Latency131ms
The best performing model (Run 3, lr=3e-4) was promoted to production through the MLflow model registry. A quality gate enforces minimum thresholds of accuracy ≥ 0.85 and F1 ≥ 0.80 before any model can be deployed.
MétriqueValeur
Accuracy92.8%
F1-Score93.1%
Precision92.5%
Recall93.7%
Latence d'inférence131ms
Le modèle le plus performant (Run 3, lr=3e-4) a été promu en production via le registre de modèles MLflow. Un quality gate impose des seuils minimaux d'accuracy ≥ 0.85 et de F1 ≥ 0.80 avant tout déploiement.

Key Features

FeatureDescription
ML ModelEfficientNet-B0 with Grad-CAM explainability for interpretable predictions
APIFastAPI with JWT authentication, rate limiting, batch and explain endpoints
Training3 modes: Local/Docker, Google Colab, and Vertex AI
MonitoringPrometheus + Grafana with 20+ metrics, 13 alert rules, and drift detection
InfrastructureTerraform (5 modules, 2 environments) + Docker (5 services) + Cloud Run
CI/CDGitHub Actions with 5 workflows and automated quality gates
Testing316 tests, 70%+ coverage across 3 levels (unit, integration, E2E)
FonctionnalitéDescription
Modèle MLEfficientNet-B0 avec explicabilité Grad-CAM pour des prédictions interprétables
APIFastAPI avec authentification JWT, rate limiting, endpoints batch et explain
Entraînement3 modes : Local/Docker, Google Colab et Vertex AI
MonitoringPrometheus + Grafana avec 20+ métriques, 13 règles d'alerte et détection de dérive
InfrastructureTerraform (5 modules, 2 environnements) + Docker (5 services) + Cloud Run
CI/CDGitHub Actions avec 5 workflows et quality gates automatisés
Tests316 tests, 70%+ de couverture sur 3 niveaux (unitaire, intégration, E2E)

System Architecture

The pipeline follows a linear flow from data to production monitoring: Data (DVC + GCS)Training (PyTorch)Registry (MLflow)Package (Docker)Infra (Terraform)CI/CD (GitHub Actions)Deploy (Cloud Run)Serve (FastAPI)Monitor (Prometheus + Grafana) Each stage is automated and version-controlled. DVC tracks dataset versions in Google Cloud Storage, MLflow records every training run, Docker packages the model and API, Terraform provisions cloud infrastructure, GitHub Actions orchestrates testing and deployment, and Prometheus collects production metrics.
Le pipeline suit un flux linéaire de la donnée au monitoring en production : Données (DVC + GCS)Entraînement (PyTorch)Registre (MLflow)Packaging (Docker)Infra (Terraform)CI/CD (GitHub Actions)Déploiement (Cloud Run)Serving (FastAPI)Monitoring (Prometheus + Grafana) Chaque étape est automatisée et versionnée. DVC suit les versions du dataset dans Google Cloud Storage, MLflow enregistre chaque run d'entraînement, Docker package le modèle et l'API, Terraform provisionne l'infrastructure cloud, GitHub Actions orchestre les tests et le déploiement, et Prometheus collecte les métriques de production.

Model Architecture

The classification pipeline is built on EfficientNet-B0 with transfer learning:
  • Base Model -- EfficientNet-B0 pretrained on ImageNet (5.3M parameters)
  • Custom Head -- Dropout (0.3) + Linear layer for binary classification
  • Explainability -- Grad-CAM generates visual heatmaps highlighting the regions driving each prediction

Training Configuration

ParameterValue
DatasetCIFAKE (CIFAR-10 + Stable Diffusion)
ArchitectureEfficientNet-B0
OptimizerAdamW (weight decay)
SchedulerCosineAnnealingLR
Best Learning Rate3e-4 (Run 3)
Parameters5.3M (transfer learning)
Le pipeline de classification repose sur EfficientNet-B0 avec transfer learning :
  • Modèle de Base -- EfficientNet-B0 pré-entraîné sur ImageNet (5.3M paramètres)
  • Tête Personnalisée -- Dropout (0.3) + couche linéaire pour la classification binaire
  • Explicabilité -- Grad-CAM génère des heatmaps visuelles mettant en évidence les régions déterminantes pour chaque prédiction

Configuration d'Entraînement

ParamètreValeur
DatasetCIFAKE (CIFAR-10 + Stable Diffusion)
ArchitectureEfficientNet-B0
OptimiseurAdamW (weight decay)
SchedulerCosineAnnealingLR
Meilleur Learning Rate3e-4 (Run 3)
Paramètres5.3M (transfer learning)

MLOps Pipeline

Data Versioning

DVC (Data Version Control) manages dataset versions with remote storage on Google Cloud Storage. Dataset changes are tracked alongside code in Git, ensuring full reproducibility.

Experiment Tracking

MLflow manages the complete experiment lifecycle:
  • Metrics Logging -- Loss, accuracy, F1-score, precision, recall per epoch
  • Model Registry -- Version control with staging/production promotion
  • Artifact Storage -- Model weights, confusion matrices, training curves, Grad-CAM samples
  • Hyperparameter Tracking -- Learning rate, batch size, augmentation config, optimizer settings

Training Modes

ModeEnvironmentUse Case
Local / DockerLocal machine or Docker containerDevelopment and quick iterations
Google ColabCloud notebook with free GPUPrototyping with GPU acceleration
Vertex AIGoogle Cloud managed trainingProduction training at scale

Grad-CAM Explainability

Every prediction can include a Grad-CAM heatmap overlay via the /predict/explain endpoint, showing which image regions contributed most to the classification decision.

Versionnage des Données

DVC (Data Version Control) gère les versions du dataset avec un stockage distant sur Google Cloud Storage. Les modifications du dataset sont suivies aux côtés du code dans Git, garantissant une reproductibilité totale.

Suivi des Expériences

MLflow gère le cycle de vie complet des expériences :
  • Journalisation des Métriques -- Loss, accuracy, F1-score, precision, recall par époque
  • Registre de Modèles -- Contrôle de version avec promotion staging/production
  • Stockage d'Artefacts -- Poids du modèle, matrices de confusion, courbes d'entraînement, échantillons Grad-CAM
  • Suivi des Hyperparamètres -- Learning rate, taille de batch, configuration de l'augmentation, paramètres de l'optimiseur

Modes d'Entraînement

ModeEnvironnementCas d'usage
Local / DockerMachine locale ou conteneur DockerDéveloppement et itérations rapides
Google ColabNotebook cloud avec GPU gratuitPrototypage avec accélération GPU
Vertex AIEntraînement managé Google CloudEntraînement de production à grande échelle

Explicabilité Grad-CAM

Chaque prédiction peut inclure une heatmap Grad-CAM via l'endpoint /predict/explain, montrant quelles régions de l'image ont le plus contribué à la décision de classification.

API and Serving

FastAPI serves the model with a production-grade endpoint architecture:
EndpointMethodDescription
/predictPOSTSingle image classification with confidence score
/predict/batchPOSTBatch prediction for multiple images
/predict/explainPOSTPrediction with Grad-CAM heatmap overlay
/healthGETHealth check and model status
/metricsGETPrometheus-compatible metrics
The API includes a JWT authentication pipeline and configurable rate limiting to prevent abuse in production.
FastAPI sert le modèle avec une architecture d'endpoints de niveau production :
EndpointMéthodeDescription
/predictPOSTClassification d'une image avec score de confiance
/predict/batchPOSTPrédiction par lots pour plusieurs images
/predict/explainPOSTPrédiction avec heatmap Grad-CAM
/healthGETVérification de l'état de santé et statut du modèle
/metricsGETMétriques compatibles Prometheus
L'API intègre un pipeline d'authentification JWT et un rate limiting configurable pour prévenir les abus en production.

Infrastructure

Terraform

Infrastructure is defined as code across 5 modules managing 2 environments (dev and prod):
ModulePurpose
Cloud RunServerless container deployment
IAMService accounts and permissions
MonitoringAlert policies and notification channels
NetworkingVPC and firewall rules
StorageGCS buckets for data and artifacts

Docker Compose

The local development stack runs 5 services:
ServicePortPurpose
FastAPI8000Inference API
MLflow5000Experiment tracking UI
Streamlit8501Web prediction interface
Prometheus9090Metrics collection
Grafana3000Monitoring dashboards

Cloud Run Deployment

Production deployment targets Google Cloud Run with auto-scaling, HTTPS, and custom domain configuration. Total infrastructure cost is kept under $0.50/month through Cloud Run's scale-to-zero capability and efficient resource allocation.

Terraform

L'infrastructure est définie en code à travers 5 modules gérant 2 environnements (dev et prod) :
ModuleFonction
Cloud RunDéploiement serverless de conteneurs
IAMComptes de service et permissions
MonitoringPolitiques d'alerte et canaux de notification
NetworkingVPC et règles de pare-feu
StorageBuckets GCS pour les données et artefacts

Docker Compose

Le stack de développement local fait tourner 5 services :
ServicePortFonction
FastAPI8000API d'inférence
MLflow5000Interface de suivi des expériences
Streamlit8501Interface web de prédiction
Prometheus9090Collecte de métriques
Grafana3000Tableaux de bord de monitoring

Déploiement Cloud Run

Le déploiement en production cible Google Cloud Run avec auto-scaling, HTTPS et configuration de domaine personnalisé. Le coût total de l'infrastructure est maintenu sous 0.50$/mois grâce à la capacité de scale-to-zero de Cloud Run et une allocation efficace des ressources.

CI/CD

GitHub Actions automates the full build-test-deploy cycle with 5 workflows:

CI Pipeline

  • Ruff -- Python linting and formatting checks
  • mypy -- Static type checking
  • pytest -- 316 tests across unit, integration, and E2E levels
  • CodeQL -- Security vulnerability scanning
  • Docker -- Container build and validation

CD Pipeline

  • Auto-deploy -- Triggered on merge to main after CI passes
  • Smoke Test -- Post-deployment health and prediction validation
  • Rollback -- Automatic rollback on failed smoke tests
  • Quality Gate -- Model accuracy ≥ 0.85 and F1 ≥ 0.80 enforced before deployment
GitHub Actions automatise l'intégralité du cycle build-test-deploy avec 5 workflows :

Pipeline CI

  • Ruff -- Linting et vérification du formatage Python
  • mypy -- Vérification statique des types
  • pytest -- 316 tests couvrant les niveaux unitaire, intégration et E2E
  • CodeQL -- Analyse de vulnérabilités de sécurité
  • Docker -- Build et validation du conteneur

Pipeline CD

  • Déploiement automatique -- Déclenché lors du merge sur main après validation CI
  • Smoke Test -- Validation post-déploiement de la santé et des prédictions
  • Rollback -- Retour automatique en cas d'échec des smoke tests
  • Quality Gate -- Accuracy du modèle ≥ 0.85 et F1 ≥ 0.80 imposées avant déploiement

Monitoring

Prometheus Metrics

20+ custom metrics tracked in production:
  • Request metrics -- Latency histograms, throughput counters, error rates
  • Model metrics -- Prediction confidence distribution, class balance
  • System metrics -- Memory usage, active requests, queue depth
  • Drift metrics -- Feature distribution shifts detected via statistical tests

Alert Rules

13 alert rules configured across categories:
  • Availability -- Service down, health check failures
  • Performance -- Latency spikes, error rate thresholds
  • Model -- Prediction drift, confidence anomalies
  • Infrastructure -- Resource saturation, container restarts

Grafana Dashboards

Pre-configured dashboards for API performance, model behavior, and infrastructure health with automatic alerting via notification channels.

Métriques Prometheus

20+ métriques personnalisées suivies en production :
  • Métriques de requêtes -- Histogrammes de latence, compteurs de débit, taux d'erreur
  • Métriques du modèle -- Distribution de confiance des prédictions, équilibre des classes
  • Métriques système -- Utilisation mémoire, requêtes actives, profondeur de file
  • Métriques de dérive -- Changements de distribution des features détectés via des tests statistiques

Règles d'Alerte

13 règles d'alerte configurées dans plusieurs catégories :
  • Disponibilité -- Service hors service, échecs de health check
  • Performance -- Pics de latence, seuils de taux d'erreur
  • Modèle -- Dérive des prédictions, anomalies de confiance
  • Infrastructure -- Saturation des ressources, redémarrages de conteneurs

Tableaux de Bord Grafana

Tableaux de bord préconfigurés pour la performance API, le comportement du modèle et la santé de l'infrastructure avec alertes automatiques via les canaux de notification.

Cost Management

The entire production deployment runs at under $0.50/month:
ResourceCost
Cloud Run~$0.00 (scale-to-zero, free tier)
GCS Storage~$0.01 (small dataset and artifacts)
Container Registry~$0.10 (image storage)
Monitoring~$0.00 (free tier)
Total< $0.50/month
L'ensemble du déploiement en production fonctionne à moins de 0.50$/mois :
RessourceCoût
Cloud Run~0.00$ (scale-to-zero, offre gratuite)
GCS Storage~0.01$ (dataset et artefacts de petite taille)
Container Registry~0.10$ (stockage des images)
Monitoring~0.00$ (offre gratuite)
Total< 0.50$/mois

Tech Stack

CategoryTechnologies
ML / DLPyTorch, EfficientNet-B0, torchvision, Grad-CAM
APIFastAPI, Uvicorn, Pydantic, JWT auth
MLOpsMLflow, DVC, Model Registry, Vertex AI
MonitoringPrometheus, Grafana, structlog, drift detection
FrontendStreamlit
InfrastructureTerraform, Docker, Docker Compose, Google Cloud Run
CI/CDGitHub Actions (5 workflows), CodeQL, quality gates
Testingpytest (316 tests), Ruff, mypy, 70%+ coverage
CloudGoogle Cloud Platform (GCS, Cloud Run, Vertex AI, IAM)
DatasetCIFAKE (CIFAR-10 + Stable Diffusion)
CatégorieTechnologies
ML / DLPyTorch, EfficientNet-B0, torchvision, Grad-CAM
APIFastAPI, Uvicorn, Pydantic, authentification JWT
MLOpsMLflow, DVC, Model Registry, Vertex AI
MonitoringPrometheus, Grafana, structlog, détection de dérive
FrontendStreamlit
InfrastructureTerraform, Docker, Docker Compose, Google Cloud Run
CI/CDGitHub Actions (5 workflows), CodeQL, quality gates
Testspytest (316 tests), Ruff, mypy, 70%+ de couverture
CloudGoogle Cloud Platform (GCS, Cloud Run, Vertex AI, IAM)
DatasetCIFAKE (CIFAR-10 + Stable Diffusion)