Tous les articles

Cerberus : où en est la détection d'armes ?

Cerberus s'appuie sur Heimdall, notre brique de vision par ordinateur. Objectif : repérer une arme à feu ou un drone sur un flux vidéo et lever une alerte fiable. Point d'étape.

Cerberus — détection intelligente des menaces
Usage responsable. Cerberus est un outil expérimental d'aide à la détection. Il ne remplace ni un système d'alarme certifié ni une intervention humaine. Toute alerte doit être vérifiée par une personne avant action. Tout déploiement doit respecter la réglementation locale sur la vidéosurveillance et la protection des données.

Deux modèles plutôt qu'un

Au lieu d'un modèle « généraliste » unique, on entraîne deux modèles indépendants, un par domaine :

  • firearm — arme à feu, contexte braquage / caméra fixe ou CCTV ;
  • drone — menace aérienne.

Les deux domaines n'ont ni le même objet, ni les mêmes classes, ni le même contexte de scène. Chacun a donc son dataset et son modèle. Les classes de la V0 :

firearm : 0 handgun, 1 long_gun, 2 not_weapon
drone   : 0 drone,   1 not_drone

On sépare handgun et long_gun (silhouettes très différentes) ; l'alerte se déclenche de la même façon sur les deux.

Le pipeline

  1. Extraire des frames depuis des vidéos sources (une image toutes les N frames).
  2. Annoter avec CVAT, Label Studio, Roboflow ou LabelImg — en incluant des images sans cible (labels vides) pour réduire les faux positifs.
  3. Entraîner un modèle YOLOv8 par domaine.
  4. Tester sur image, dossier ou vidéo, avec une alerte à confirmation temporelle.
# Extraction
python train_heimdall.py --video videos/firearm/clip.mp4 --domain firearm --extract-every 30
# Entraînement
python train_heimdall.py --domain firearm --train --epochs 80 --imgsz 640
# Test + alerte
python detect_heimdall.py --source videos/test/test.mp4 \
  --model runs/heimdall_firearm/train/weights/best.pt --alert

Où on en est

  • firearm — un premier modèle fonctionnel existe (prototype v1, entraîné sur un petit lot de ~21 images handgun). Il sert de base à un entraînement plus large plutôt que de repartir de zéro. Plusieurs vidéos sources restent à extraire et annoter.
  • drone — dossiers prêts, dataset encore à constituer.
Un modèle entraîné sur un petit dataset produit des faux positifs et des faux négatifs. L'étape qui compte maintenant, c'est la donnée : plus de volume, plus de diversité de scènes, et une couche d'alerte qui ne se déclenche que sur plusieurs détections consécutives.

La suite

Élargir le dataset firearm, démarrer le domaine drone, puis mesurer précision et rappel sur des vidéos réelles. Objectif : une alerte exploitable en conditions réelles, pas juste une démo.

→ Voir la page du projet Cerberus