Aller au contenu principal

FirstBreath Vision

Le sous-système de Vision par Ordinateur et IA pour la plateforme FirstBreath. Ce système héberge des microservices individuels responsables de la gestion des flux RTSP, de l'inférence par batch haute performance (YOLOv11 + TensorRT), et du traitement des métriques de mouvement.

Architecture

Le système est conçu comme un pipeline de microservices indépendants communiquant via Redis :

  1. Camera Manager (services/camera-manager) :

    • Se connecte aux flux RTSP en utilisant OpenCV (Accélération Matérielle).
    • Publie les images brutes vers Redis via un protocole binaire.
    • Gère le cycle de vie des caméras et les scripts de tracking.
  2. Batch Inference (services/batch-inference) :

    • Optimisé GPU : Utilise NVIDIA TensorRT (FP32/FP16) / CUDA.
    • Traitement par Batch : Agrège les images de plusieurs caméras en lots pour une utilisation efficace du GPU.
    • Auto-Export : Convertit automatiquement les modèles .pt en .engine optimisés pour le matériel hôte.
    • Publie les résultats de détection vers Redis.
  3. Redis Worker (services/redis-worker) :

    • Consomme les résultats de détection et calcule les métriques de mouvement (vitesse, agitation).
    • Insère les métriques dans MySQL.
    • Déclenche des alertes (ex: état "STRESSED") via Redis Pub/Sub.

Pour Commencer

Prérequis

  • Docker & Docker Compose
  • GPU NVIDIA (Optionnel, mais recommandé pour la performance d'inférence)
  • NVIDIA Container Toolkit (pour le support GPU)

Installation

  1. Cloner le dépôt :

    git clone git@github.com:FirstBreath/firstbreath-vision.git
    cd firstbreath-vision
  2. Lancer avec Docker Compose :

    docker-compose up --build

    Cela lance :

    • camera-manager
    • batch-inference (Compile le moteur TensorRT au premier lancement ~2-5 mins)
    • redis-worker

Observabilité

Tous les services exposent des Métriques Prometheus (récupérées via monitor-net).

  • Camera Manager : Scripts actifs, CPU/RAM par caméra.
  • Batch Inference : Latence d'Inférence (P95), Taille de Batch, FPS.
  • Redis Worker : Taux d'insertion DB, Retard de Queue (Lag), Compte d'alertes.