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.