Aller au contenu principal

Conception du système

Le système Vision FirstBreath résout un problème d’évolutivité critique : les threads Python ne peuvent pas gérer efficacement des boucles d’inférence IA lourdes concurrentes à cause du GIL (Global Interpreter Lock).

Pour contourner cela, nous avons mis en place un pipeline producteur-consommateur avec Redis comme courtier haute vitesse.

Flux de données de haut niveau

Principes de conception

1. Séparation des responsabilités

  • Le travail I/O bound (lecture des caméras) est séparé du travail compute bound (inférence).
  • On peut ainsi faire évoluer le nombre de caméras indépendamment du nombre de GPUs.

2. Micro-batching

  • Au lieu de traiter les frames une par une, on les regroupe en batches.
  • Pourquoi ? Les GPUs sont massivement parallèles. Traiter 8 frames d’un coup est bien plus efficace que 8 frames en séquence.

3. État éphémère

  • Aucune vidéo n’est stockée sur disque (sauf enregistrement explicite).
  • Redis sert de buffer à courte durée (~500 ms max) pour lisser les pics de charge.