Tableau de bord
DÉMO
Martin S.
JD
Scans réalisés
247
↑ +12 ce mois
Anomalies critiques
38
sur 247 scans
Score moyen
73/100
Temps moyen scan
1:45 min
↓ -15s vs manuel
Répartition état véhicules
OK 142
Attn 67
Crit. 38
Top anomalies détectées
Rayures carrosserie189
Usure pneus142
Bosses carrosserie97
Rouille sous-châssis61
Fuite huile23
Modules actifs
Lecture plaque
EasyOCR — FR/UE
Actif
Analyse carrosserie
YOLOv11n ONNX
Actif
Vision sous-châssis
YOLOv11n ONNX
Actif
Détection pneus
YOLOv11n + mesure
Actif
Portique scan
LIDAR + 6 caméras HD
Derniers scans
Plaque / Marque Date Client Score État
Nouveau scan véhicule
Inspection complète 4-en-1 en quelques étapes
Informations du scan
ID : OP-001
Client enregistré — référence facturation
Conducteur au moment du scan
Enregistré on-chain avec le scan
Propriétaire = Conducteur
Martin S. — identité vérifiée via compte GarageVault
Conducteur tiers autorisé par le propriétaire
Saisir le token d'autorisation Holochain délivré par le propriétaire
Ce scan sera enregistré de façon immuable sur Holochain — opérateur, propriétaire et conducteur inclus
Lecture de plaque
Lecture automatique via caméra ou upload photo
Cliquez pour simuler la capture caméra
Analyse carrosserie
Détection des dommages — bosses, rayures, peinture
Caméra gauche
Caméra droite
Caméra avant
Caméra arrière
Vision sous-châssis
Analyse du dessous du véhicule
Caméra under 1
Caméra under 2
Analyse des 4 pneus
Flanc + profondeur de sculpture
Pneu Avant Gauche
Pneu Avant Droit
Pneu Arrière Gauche
Pneu Arrière Droit
JD
Jean Dupont
ID : OP-001 · Responsable technique
● Connecté
Appareil photo externe
Non connecté
Sélectionner une zone puis prendre la photo
Croquis
Clic libre sur le croquis → placer un point photo
Total : 0 photo(s)
Finalisation & rapport
PlaqueEF-456-GH
OpérateurJean Dupont
Carrosserie3 anomalies
Sous-châssis1 anomalie
Pneus critiques1 pneu
Pneus en limite1 pneu
📤 Distribution du dossier
Sélectionnez les destinataires puis générez les accès sécurisés Holochain.
Action Hash :
Propriétaire :
Destinataires
👤
Propriétaire / Client
📱 Push + Email
🏢
Tiers enregistrés
Assureur / Expert / Gestionnaire
Historique des scans
247 scans enregistrés
Plaque / Marque Date Client Opérateur Score État PDF
Paramètres système
Configuration du backend et des caméras
État du backend
Serveur opérationnel — http://127.0.0.1:8000
FastAPI + SQLite · Mode DÉMO actif
Caméras USB détectées — Calibration
Sélectionner une caméra active pour voir le flux en temps réel et l'analyse IA
Calcul couverture…
Caméras détectées (5)
Couverture globale estimée
Carrosserie
Sous-châssis
Roues / Flancs
Qualité moy.
Sélectionnez une caméra active
pour démarrer l'analyse en temps réel
Calibration intrinsèque — YOLOv11 / ChArUco
Script Python · Damier 9×6 · Marker ArUco DICT_6X6_250 · case 25 mm
0 / 20 caméras calibrées
1
Préparer damier
Imprimer ChArUco 9×6, case 25 mm — A3 plat
2
Capturer images
20–30 poses variées par caméra · angles + distances
3
Détecter coins
ArUco → ChArUco interpolation · min. 5 coins valides / image
4
Calibration
cv2.calibrateCamera → K, D, rvecs, tvecs
5
Export + undistort
JSON + NPZ → pipeline YOLOv11
Structure dossiers attendue
calibration_images/
├── cam0/  ← 20–30 images .jpg/.png
├── cam1/
├── cam2/
│   ...
└── cam19/
calibration_params/  ← sortie
├── cam0_intrinsics.json
└── cam0_params.npz
Paramètres clés
Damier intérieur9 × 6 coins
Taille case25 mm (0.025 m)
Marker / case0.8 × 25 mm = 20 mm
Dictionnaire ArUcoDICT_6X6_250
Caméras à calibrer20
Images min. / cam15 (recommandé : 25)
Erreur reprojection cible< 0.5 px
Guide qualité — erreur de reprojection
< 0.3 px — Excellent
0.3–0.5 — Bon
0.5–1.0 — Correct
> 1.0 — Refaire
Une erreur > 1.0 px dégradера la précision de détection YOLOv11 — recapturer les images avec meilleures conditions lumineuses et damier rigide.
NvDsYoloSegParser — YOLOv11-seg · DeepStream 7.1+
Parser C++ · Bounding boxes + masques de segmentation · 20 caméras · NMS intégré
C++ NVIDIA DeepStream
Sorties YOLOv11-seg attendues
boxes float[N × 4] — x_center, y_center, width, height REQUIS
scores float[N] — score de confiance par détection REQUIS
classes float[N] — indice de classe prédit REQUIS
masks float[N × H × W] — masques de segmentation OPTIONNEL
Paramètres runtime
Seuil confiance
0.40
Seuil NMS (IoU)
0.50
Caméras simultanées 20
Masques segmentation Activés
Precision TensorRT FP16
NMS à compléter — La fonction applyNMS() est un stub. Remplacer par nmsdk::nonMaxSuppression() ou l'implémentation NVIDIA officielle pour les cas de production à haute densité de détections.
Memory leak potentielsegInfo.mask = new float[…] alloue sur le heap sans RAII. En production : utiliser std::vector<float> ou un allocateur géré par DeepStream.
Offset masque à vérifier — Le calcul i × (maskWidth × maskHeight) suppose une disposition contigüe. Vérifier la sortie réelle du modèle ONNX exporté : certains exports YOLOv11-seg intercalent les coefficients proto et les masques finaux.
Calibration Manager — Interface Streamlit
UI web Python · Détection USB live · Cycle calibration guidé · Export JSON · Intégration DeepStream
Python Streamlit
Le Calibration Manager Streamlit est l'interface opérateur du cycle de calibration. Il orchestre la détection USB, le guidage visuel, l'appel au script ChArUco, et valide la qualité avant de passer les paramètres au pipeline DeepStream. Il ne remplace pas le script Python de calibration — il l'encapsule dans une UI actionnable.
📷
Détection USB live
Scan automatique jusqu'à 10 indexes USB. Preview frame live par caméra. Résolution 4K si supportée (3840×2160).
🎯
Cycle de calibration guidé
25 captures par caméra avec progress bar. L'opérateur bouge le damier ChArUco pendant la capture automatique (0.3s entre images).
Validation 3 axes
Checks manuels : angle · netteté · exposition. Seuil auto : reproj < 1.5 px = OK. Sauvegarde JSON horodatée par caméra.
🔄
Recalibration globale
Recalibration simultanée de toutes les caméras pour cohérence 3D multi-vue. Hook pour bundle adjustment.
💾
Export JSON + NPZ
cam{N}_status.json horodaté. Compatible avec le script ChArUco et le pipeline DeepStream / YOLOv11-seg.
🚀
Lancement DeepStream
Bouton sidebar → déclenche garagevault_deepstream_pipeline.py avec les caméras calibrées.
Calibration simuléereproj_error = np.random.uniform(0.4, 1.2) est un placeholder. Remplacer par l'appel réel à calibrate_single_camera() du script ChArUco.
Résolution 4K non garantieCAP_PROP_FRAME_WIDTH = 3840 est une suggestion. OpenCV silently fallback sur la résolution max supportée — vérifier avec cap.get(cv2.CAP_PROP_FRAME_WIDTH) après set.
Threading à prévoir — La calibration bloque le thread Streamlit. Pour 20 caméras simultanées, encapsuler chaque run_calibration() dans un threading.Thread ou utiliser concurrent.futures.ThreadPoolExecutor.
Version Test Légère — 4 Caméras · CPU Only · Intel i5
Sans NVIDIA / CUDA · 1080p · YOLOv11 OpenCV DNN · Undistortion CPU · Développement & tests terrain
CPU ONLY 4 cams Streamlit
Cette version est conçue pour développement, tests terrain et démo sans matériel NVIDIA. Elle reproduit le workflow complet (calibration → undistortion → inférence YOLO → rapport) sur CPU Intel i5, avec 4 caméras USB 1080p. Aucune dépendance DeepStream, CUDA ou TensorRT.
4
caméras max
1080p
résolution capture
640²
taille inférence YOLO
20
images calibration
✓ Ce que fait cette version
Détection USB live 4 caméras (indexes 0–3)
Preview 1080p redimensionné 1280×720 dans Streamlit
Calibration ChArUco 20 images par caméra sur CPU
Undistortion cv2.undistort() CPU avant inférence
Export .npz + status.json horodaté
Seuil reprojection 1.8 px (plus souple qu'en prod)
Paramètres identity fallback si pas de calib (.npz vide)
✗ Ce qui n'est pas inclus
DeepStream / TensorRT / CUDA — aucune dépendance GPU
Parser C++ NvDsYoloSegParser (remplacé par DNN OpenCV)
Batch de 20 caméras simultanées (4 max CPU)
Résolution 4K (limitée à 1080p pour perf CPU)
NMS GPU accélérée (CPU NMS via OpenCV suffit)
Broker MQTT / Holochain (pipeline aval non inclus)
Temps réel 30fps (latence CPU ~200–400ms/frame)
Matrice identitynp.eye(3)*1000, np.zeros(5) est un placeholder invalide. Remplacer par les vraies valeurs intrinsèques une fois la calibration ChArUco réelle effectuée — sinon l'undistortion est no-op.
Seuil reprojection 1.8 px — Plus permissif que la prod (1.5 px). Pour usage terrain de test uniquement. Recalibrer avec le script ChArUco complet avant passage en production portique.
Migration vers prod — Les fichiers .npz générés sont directement compatibles avec le pipeline DeepStream. Remplacer les données placeholders par les vraies matrices et déposer dans calibration_params/ du serveur production.
Configuration IA
ModeDÉMO (DEMO_MODE=true)
Seuil confiance IA40%
Modèles ONNXNon requis (démo)
Base de donnéesSQLite — data/garagevault.db
Démarrage (Windows)
> double-clic sur start.bat
# Lance backend :8000 + frontend :1420
Mon profil
Coordonnées · Type de compte · Connexion
GV
Garage du Parc
contact@garageduparc.fr
Plan Pro ✓ Actif
Membre depuis
Jan 2026
Identifiant
GV-GARAGE-00147
Connexion
Se connecter via un compte existant — aucun mot de passe à retenir.
Type de compte
Coordonnées
Opérateurs du garage
Préférences de notification
Facturation
Usage · Dossiers générés · Historique des paiements
Dossiers ce mois
31
↑ +8 vs mois préc.
Total dossiers
247
Depuis jan. 2026
Facturé ce mois
13,95
0,45 € / dossier
Prochaine échéance
01 avr. 2026
Paiement automatique
Dossiers générés par mois
Plan actif
Pro
0,45 € / dossier certifié
Dossiers illimités
Certification Holochain
QR code de vérification
API accès direct
Support prioritaire
Historique des paiements
Période Dossiers Montant Statut Facture
Véhicules enregistrés et historique des scans