RunSight
FR

Technologie

Une caméra, et tout ce qui doit arriver avant qu'elle puisse parler.

Comment une image devient géométrie, la géométrie une décision et la décision une phrase courte, le tout sur un appareil dans votre dos et sans internet.

La caméra, les trois modèles, la géométrie et la sélection des instructions fonctionnent sur l’appareil. Aucune connexion internet n’est nécessaire.

Une caméra. Trois modèles sur l'appareil.

Une caméra USB au niveau des yeux envoie des images à un accélérateur Hailo-8. Trois modèles compilés tournent sur chaque image conservée : l'un segmente les lignes peintes du couloir, l'un détecte les personnes devant, l'un estime la profondeur à partir de la même image. Pas de capteur de profondeur, pas de LiDAR, pas de seconde caméra. La profondeur vient de l'unique caméra RGB, ce qui garde l'appareil abordable.

Les images sont traitées selon la règle du plus frais. Si l'inférence prend du retard, les images périmées sont jetées plutôt que mises en file : mieux vaut se taire que guider depuis le passé.

Sortie de segmentation du couloir, couloirs détectés tracés en bleu

U-Net

Sur le prototype

ResNet-18 backbone

Segmente les lignes peintes, pour que l'appareil sache où va le couloir et où vous êtes dedans.

84.23% IoUIoU, jeu de validation

Sortie de détection de personnes, avec une boîte autour d'un coureur devant

YOLOv8n

Sur le prototype

Nano detector

Repère les personnes sur la piste devant, car ce sont les obstacles qui comptent vraiment dans un couloir partagé.

88.24% IoUIoU, jeu de validation

Une carte de profondeur de la piste, objets proches en couleurs chaudes

Sc-Depth V3

Sur le prototype

Monocular RGB

Estime la distance d'une personne détectée à partir d'une seule image RGB, pour que le moteur de guidage sache si un obstacle est assez proche pour compter.

Self-supervisedprofondeur monoculaire, sur l'appareil

Résultats de segmentation : image d'entrée, prédiction du modèle et vérité terrain
Segmentation du couloir : entrée, prédiction et vérité terrain annotée à la main.
Résultats de détection : boîtes prédites face aux boîtes de vérité terrain
Détection de personnes : prédiction (rouge) face à la vérité terrain (vert).

Des pixels à une décision.

Un masque et quelques boîtes ne font pas un guidage. Il faut de la géométrie : où va le couloir, où vous êtes dedans, à quel point il tourne, et si la personne devant est assez proche pour compter.

Lignes de couloir détectées par le modèle, tracées en jaune sur la piste

01

Ajuster les lignes

Les contours sont extraits du masque et chaque ligne est ajustée par une courbe quadratique, ce qui permet de reconstituer en un bord continu une ligne coupée par une personne ou une ombre.

La zone actuelle du coureur surlignée en vert entre les lignes ajustées

02

Découper la piste en zones

Les lignes ajustées découpent la piste en cinq zones : extrême gauche, gauche, centre, droite et extrême droite. Elles situent ensuite le coureur dans l'une d'elles. C'est de là que vient la consigne de direction.

Cercles de courbure ajustés aux lignes du couloir

03

Mesurer le virage

Le rayon de courbure est calculé à partir des points centraux des lignes ajustées. Grand rayon : la piste est droite ; petit rayon : elle tourne, et l'on sait de quel côté.

Une personne détectée devant, avec une valeur de profondeur estimée

04

Juger la personne devant

Une personne détectée ne devient un obstacle que si elle est proche. Le modèle de profondeur estime cette distance à partir de la même image RGB, si bien que le moteur réagit à qui est près plutôt qu'à chaque personne visible.

De la scène à une indication vocale.

Une piste produit bien plus d'informations qu'un humain ne peut en traiter en courant. Le moteur émet au plus une consigne et tait le reste, avec un délai propre à chaque priorité.

PhraseQuandPrioritéDélai
Move leftVous avez dérivé vers la droite du couloir. La consigne vous ramène vers le centre.Direction1.5s
Move rightVous avez dérivé vers la gauche du couloir. La consigne vous ramène vers le centre.Direction1.5s
Caution, person aheadQuelqu'un est devant : assez proche pour compter, pas encore un danger.Alerte0.8s
Stop, person aheadQuelqu'un est devant, et il est proche. La consigne coupe tout le reste.CritiqueAucun
  • La priorité prime

    Chaque niveau a son délai : une alerte n'est jamais bloquée par une consigne de direction récente.

  • Pas de harcèlement

    La même phrase est tue pendant 3 secondes, aussi vraie soit-elle encore.

  • Le critique parle toujours

    Une consigne critique ignore tous les délais et coupe l'audio en cours.

Faire tenir les modèles dans le budget d'une image.

En float32, les modèles ne tenaient pas une cadence temps réel sur une Raspberry Pi. Ils sont donc compilés pour l'accélérateur Hailo : traduits dans sa représentation interne, profilés, quantifiés sur un jeu de calibration d'images réelles de piste, puis compilés en un exécutable chargé au démarrage.

Après compilation pour l’accélérateur, le prototype est 6× plus rapide et traite plus de 10 images par seconde.

Les données viennent de pistes indonésiennes.

Aucun jeu de données public ne montre une piste indonésienne à hauteur d'yeux de coureur. Nous avons donc constitué le nôtre à partir d'images prises à cette hauteur sur des pistes publiques, notamment au stade Patriot Candrabhaga, avec et sans personnes devant.

Chaque image est annotée deux fois : des boîtes pour les personnes, des polylignes pour les bords peints. Puis augmentée pour survivre au réel : une tête qui s'incline, une caméra qui tremble, un après-midi éblouissant ou gris.

Annotation de segmentation des lignes de couloir dans Label Studio
Annotation du couloir : les bords peints, tracés à la main.
Annotation par boîte d'une personne sur la piste dans Label Studio
Annotation des personnes : une boîte par coureur devant.
Les cinq techniques d'augmentation appliquées séparément à une image source
Chaque augmentation, appliquée séparément à une même image source.

État du prototype et prochains tests.

Le prototype intégré fonctionne, mais ces points nécessitent encore du développement ou une validation.

  • Un seul modèle multitâche

    L'accélérateur n'a pas de DRAM, donc changer de modèle à chaque image coûte cher. Fondre les trois en un seul modèle à plusieurs têtes est la solution.

  • Audio sans fil

    L'appareil parle aujourd'hui dans un écouteur filaire. Le Bluetooth audio demande une seconde radio.

  • Mise à jour des modèles à distance

    Aujourd'hui, un nouveau modèle suppose un accès physique à l'appareil.

  • Validation de terrain

    Tout ce qui précède a été mesuré au banc et sur piste avec des testeurs voyants. Les essais encadrés avec des coureurs déficients visuels sont le vrai jalon. Ils n'ont pas encore eu lieu.