VisionTrafic
Coulisses techniques

Du signal dans le réel.

Collecte → détection → événements → dashboard. Une approche sobre, pensée pour tourner en continu.

Voir la stack technique
Python 3.11 YOLOv8n Torch (CPU) SQLite (WAL) Flask API Systemd YunoHost Vanilla JS
Cas d’usage : webcams routières → événements (où/quand/combien) → carte + stats.

Architecture & flux de données

Pipeline événementiel : on collecte, on filtre, on stocke le minimum — puis on restitue vite.

Architecture (vue d’ensemble) collecte → événements → API → dashboard
Webcams snapshots cadencés Worker hash → YOLO → filtres SQLite événements + stats Dashboard carte + graphs Flask API Reverse proxy JSON HTTPS

Séparation claire : worker (traitement) · stockage (événements) · API · UI.

1) Le Worker

Service Python autonome : collecte parallèle (ThreadPoolExecutor), analyse, filtrage anti-bruit.

2) L’API

Endpoints JSON : lecture de la base + agrégations simples pour le front.

3) Le Front

UI légère : carte + histogramme + compteurs, sans framework lourd.

Sobriété côté sources

Collecte cadencée, non-streaming, et anti-retraitement si l’image est inchangée.

Pipeline : de l’image au signal

La photo est un support de calcul. Le résultat : un événement horodaté exploitable.

Anti-retraitement

Hash (SHA256) : si l’image est identique, pas d’inférence, pas d’écriture.

YOLOv8 (CPU)

Modèle “nano” + classes véhicules → signal simple et stable.

Filtre “parking” (IoU)

Évite de recompter un véhicule immobile.

Stockage minimal

Images uniquement sur nouvel événement + version dégradée pour affichage.

Philosophie “Data”

Réduire le bruit, garder le signal.
Je transforme un flux brut en événements utiles : qui / quand / où / combien.
Résultat : des statistiques fiables, sans stocker du volume inutile.

PROD-READY mindset

Ops & déploiement

Pensé pour tourner : isolation, redémarrage automatique, maintenance simple.

console — état des services
$ systemctl status trafic-worker --no-pager
● trafic-worker.service - VisionTrafic Worker (collecte + YOLO)
   Loaded: loaded (/etc/systemd/system/trafic-worker.service; enabled)
   Active: active (running) since Sat 2026-02-14 09:12:31 CET; 3h 08min ago

$ journalctl -u trafic-worker -n 3 --no-pager
Feb 14 12:18:30 trafic-worker: cams=23 changed=7 infer=7 events=11 db=ok
Feb 14 12:20:10 trafic-worker: cams=23 changed=5 infer=5 events=8  db=ok
Feb 14 12:21:50 trafic-worker: cams=23 changed=6 infer=6 events=9  db=ok

Infrastructure

  • VPS Debian 12
  • Accès admin via SSH
  • Surcouche YunoHost (SSL, proxy)

Isolation

  • User dédié : trafic
  • Code /opt · Données /var/lib
  • venv Python

Réseau

  • HTTPS via reverse proxy
  • API locale non exposée direct
  • Ports minimaux

Exploitation

  • systemd + auto-restart
  • Purge planifiée
  • Logs : journalctl
Inforoute43 (référence)
Source d’inspiration et d’accès public aux webcams : Inforoute43.
Consulter le site officiel →
Disclaimer : projet personnel, indépendant, non affilié. Collecte non-streaming, cadencée, anti-retraitement.

On en parle ?

Besoin d’un pipeline, d’une brique vision, ou d’un dashboard ? Je peux aider à cadrer et livrer.

Accéder à la page contact