Architecture Technique
Vue d'Ensemble
CCTV Smart est construit selon une architecture 3 couches distribuées avec IPC via Redis et alertes multi-canaux.
Couche 1 : L'Œil (Acquisition & Détection)
Acquisition vidéo et détection de mouvements en temps réel.
- RTSP — Flux vidéo entrant depuis caméras IP (Hikvision, Dahua, Uniview, Reolink)
- OpenCV — 1 FPS pour détection mouvement (économe)
- MOG2 — Soustraction de fond adaptatif
- YOLO — Détection d'objets (iGPU/CUDA/CPU selon tier)
- Moteur Règles — 7 filtres (zone, vélocité, taille, classe, confiance, durée, fréquence)
Couche 2 : Les Modules (Analyse Spécialisée)
8 modules chargés à la demande via Redis.
| Module | Utilité | Lancement |
|---|---|---|
| ByteTrack | Suivi multi-objet | Détection humain + animé |
| LPR | Plaques d'immatriculation | Parking, entrée |
| OCR | Textes lus | Affichages, panneaux |
| PPE | Équipement protection | Chantier, labo |
| Fire/Smoke | Feu/fumée | Tout site |
| Pose | Posture humaine | Chute, violence |
| Hand | Gestes | Point de vente |
| Gesture | Reconnaissance geste | Retail, banque |
Couche 3 : Le Cerveau (Analyse IA)
Gemma 4 E4B via Ollama — génération contexte et recommandations.
- Ollama — Serveur LLM local (zéro données au cloud)
- Gemma 4 E4B — 4B paramètres, 5-7s par requête (CPU)
- Prompt par Profil — Retail, Banque, Hôtel, Entrepôt, École, Résidentiel
- Entrée — Photo + contexte + historique récent → Réponse IA
IPC : Redis Lists
Communication entre couches via Redis Lists.
| Queue | Max | Producteur | Consommateur | TTL |
|---|---|---|---|---|
cctv:queue:gemma | 50 | Moteur Règles | Ollama | 60s |
cctv:queue:modules | 20 | Moteur Règles | Modules | 30s |
Alertes
Canaux d'alerte multi-modes.
Numériques
- Telegram — Alerte + photo instantanée
- Email — Rapport récapitulatif
- Webhook — Intégration externe (Slack, etc.)
Physiques (8 Types)
- Sirène (120 dB)
- Lumière stroboscopique
- Vibreur
- Buzzer
- Afficheur LED/LCD
- Porte magnétique
- Commande relais électrique
- Appel SIP/Asterisk
Entreprise de Sécurité
- Appel automatique — Centre de surveillance
- GPS en direct — Localisation agent
- Dossier événement — Historique complet
Base de Données
SQLite 5 tables.
| Table | Colonnes | Clé |
|---|---|---|
events | uuid, camera_id, timestamp, detection_type, photo, ai_response | uuid |
cameras | id, name, rtsp_url, enabled, zone_config | id |
system_log | id, timestamp, level, message, component | id |
alert_feedback | id, event_uuid, feedback_type, timestamp | id |
module_results | id, event_uuid, module_name, result_json | id |
API
FastAPI 16 endpoints.
- Health — GET
/health - Cameras — GET/POST
/cameras, GET/cameras/{id} - Events — GET
/events, GET/events/{uuid} - Modules — POST
/modules/{name}/trigger - System — GET
/system/stats, GET/system/config - Alertes — POST
/alert/test - Webhooks — POST
/webhook/telegram(callback)