Architecture Globale
FirstBreath est une plateforme de surveillance modulaire et haute performance conçue pour la sécurité équine. Elle repose sur une architecture de microservices distribuée pour gérer le traitement vidéo en temps réel, l'analyse de données et les notifications instantanées aux utilisateurs.
Vue d'ensemble du Système
Le système est composé de 4 sous-systèmes principaux qui communiquent de manière asynchrone.
Détail des Sous-systèmes
1. Système de Vision
- Rôle : Les yeux de la plateforme. Il consomme les flux RTSP, effectue l'inférence IA et détecte les anomalies (Cheval couché, agitation, etc.).
- Stack Tech : Python 3.11, OpenCV (CUDA), PyTorch, Ultralytics YOLOv11, TensorRT.
- Composants Clés :
- Camera Manager : Gère les connexions RTSP et la capture d'images (avec décodage matériel).
- Batch Inference : Agrège les images de plusieurs caméras en lots (batchs) pour un traitement GPU à haut débit.
- Redis Worker : Consomme les résultats de détection, applique la logique de lissage temporel et pousse les événements vers le backend.
2. Cœur Backend (Control Hub)
- Rôle : Le cerveau. Il gère les utilisateurs, les configurations d'écuries et route les alertes vers les bons appareils.
- Stack Tech : AdonisJS (Node.js), TypeScript.
- Responsabilités Clés :
- API REST : Configuration des caméras et comptes utilisateurs.
- Websockets : Envoi d'alertes en temps réel au frontend.
- Persistance des Données : Stockage de l'historique et des logs dans MySQL.
3. Stockage & Messagerie
- Redis : Agit comme le système nerveux central. Il gère :
- File d'Attente Rapide : Transfert des images vidéo et résultats de détection entre les services de Vision (débit approx. 150Mo/s).
- Pub/Sub : Notifie l'API lorsqu'une alarme est déclenchée.
- Cache : Stockage de l'état éphémère des caméras.
- MySQL : Stockage relationnel pour les données fiables à long terme (Profils utilisateurs, Carnets de santé chevaux, Historique des alertes).
4. Interfaces Utilisateur
- Showcase / Dashboard : Application web Next.js pour la surveillance détaillée et la gestion de l'écurie.
- App Mobile : Application React Native pour l'utilisation sur le terrain et les notifications push.