Bêta 0.2.0-beta.2, pas encore pour un process critique. Voir la roadmap
PNeX logo
Documentation de la version en développement, pas encore publiée. Voir la version stable (0.1.0)

Vision Lab

Apprendre à PneX vos propres objets — annoter images et vidéos, figer un jeu de données, entraîner un détecteur sur le serveur et l’utiliser dans les flows

Médias › Vision Lab construit un détecteur d’objets sur mesure. Vous nommez les classes (« vanne_rouge », « casque_chantier »…), rassemblez des images, entourez chaque objet d’une boîte, figez une version du jeu de données, puis entraînez un modèle sur le serveur PneX. Le modèle obtenu rejoint Automatisation › Modèles, prêt pour le nœud Détection d’objets des flows.

Projets et classes

Nouveau projet : un Nom, une Description et les Classes (une par ligne). On peut renommer ou ajouter des classes plus tard ; une classe qui porte encore des boîtes ne peut pas être retirée.

Ajouter des images

Chaque import forme une source : toutes ses images vont soit à l’entraînement, soit à la validation, jamais un peu des deux, pour que des images presque identiques ne gonflent pas les scores.

  • Ajouter des images : choisissez des photos déjà présentes dans Médias › Bibliothèque.
  • Depuis un enregistrement : une image toutes les N secondes de ce qu’une caméra a enregistré (choisissez la Caméra, le Jour, De et À, et Une image toutes les (s)). Une heure et 200 images au plus par import. Seules les caméras d’appareil reliées à un flow Enregistrement vidéo ont des enregistrements.
  • Depuis une vidéo : une vidéo de la médiathèque (MP4 ou MOV en H.264, H.265 ou MJPEG, 512 Mo au plus), un Début (s), une Fin (s) et une image toutes les N secondes, avec les mêmes limites. Les vidéos de téléphone passent telles quelles ; les autres formats sont à convertir d’abord en MP4 (H.264). Tous les imports d’une même vidéo forment une seule source.

Annoter

Sélectionnez une image, choisissez la Classe de la prochaine boîte (touches 1 à 9) et tracez une boîte autour de chaque objet. Un clic sur une boîte la sélectionne ; Suppr la retire. Aucun objet sur cette image marque un exemple négatif, qui apprend au modèle ce qui n’est pas l’objet. Chaque modification est enregistrée aussitôt. Une boîte doit épouser la partie visible de l’objet, y compris quand il touche le bord de l’image.

Trois aides accélèrent le travail :

  • Pré-annoter avec un modèle : choisissez un modèle de détection de Modèles puis Proposer des boîtes. Les propositions s’affichent en pointillés. Une proposition dont le libellé est une classe du projet prend cette classe ; le bouton Garder les propositions reconnues les garde toutes, un clic en garde une (une proposition grise prend la classe courante), Écarter supprime le reste. Rien n’est enregistré tant qu’aucune boîte n’est gardée. Dès qu’un premier modèle maison existe, servez-vous-en ici.
  • Interpoler (images d’une vidéo ou d’un enregistrement) : annotez une image, sautez-en quelques-unes, annotez une image plus loin, puis sur une image intermédiaire cliquez sur Interpoler. PneX propose les boîtes déplacées en ligne droite entre les deux images annotées, marquées « interpolée ». Les boîtes sont appariées par classe, les plus proches d’abord. Gardez-les comme des propositions de modèle et corrigez celles qui ont dérivé.
  • Propager (images d’une vidéo ou d’un enregistrement, modèle choisi) : le modèle propose les boîtes de l’image, et chacune prend la classe de la boîte la plus proche sur l’image annotée précédente de la même vidéo. Utile quand le modèle ignore vos noms de classes.

Deux personnes modifient la même image en même temps : le second enregistrement est refusé ; rechargez l’image et refaites la modification.

Statistiques et versions du jeu

Le panneau Jeu de données compte boîtes et images par classe et la répartition entraînement / validation. Il avertit quand une classe a moins de 20 images annotées, quand il y a moins de 5 images de validation, aucun exemple négatif, quand une classe vient de moins de 3 sources, a toujours la même taille ou la même place dans l’image, ou quand toutes les images ont la même luminosité. Ce sont des conseils, jamais un blocage : vingt images variées valent mieux que cent identiques.

Figer une version copie les images annotées et leurs boîtes dans une version du jeu de données numérotée, en lecture seule ; les modifications ultérieures ne la changent jamais. Télécharger (COCO) exporte une version en zip (images et annotations COCO pour l’entraînement et la validation), prête à entraîner ailleurs avec n’importe quel outil YOLOX.

Entraînement

Dans le panneau Entraînement, choisissez une Version du jeu de données figée, un Modèle de départ (un modèle YOLOX de Modèles, par exemple YOLOX COCO) et le nombre d’Époques (30 par défaut), puis Entraîner.

PneX garde le réseau de départ et ne réapprend que sa tête de détection pour vos classes. L’entraînement tourne sur le serveur, en Rust, sans Python ni GPU : quelques minutes pour quelques centaines d’images. Le suivi affiche la progression (lecture des images, chaque époque avec sa perte, évaluation) puis la mAP@0,5 en validation : la capacité du modèle à trouver les objets des images de validation, 100 % voulant dire tous trouvés sans fausse alerte.

  • Le nouveau modèle rejoint Modèles avec vos noms de classes, déjà vérifié : Voir dans Modèles, puis choisissez-le dans un nœud Détection d’objets.
  • Un seul entraînement par projet à la fois ; Annuler l’arrête. Un entraînement interrompu par un redémarrage du serveur est à relancer.
  • Sans image de validation dans la version, pas de mAP : donnez à chaque classe des images issues de plusieurs imports.
  • Des objets très éloignés des objets du quotidien s’apprennent moins bien en ne réapprenant que la tête : ajoutez des images variées, plus d’époques, et comparez la mAP des versions successives.

La boucle d’amélioration : « À revoir »

Dans un nœud Détection d’objets, Images douteuses vers le Vision Lab désigne un projet. Quand le modèle hésite (un score entre Score min et Score max, 0,25 à 0,6 par défaut), l’image rejoint ce projet avec les propositions du modèle, au plus une par caméra toutes les 60 s par défaut (Au plus toutes les (s)). Dans le Lab, ces images portent un point violet, À revoir (le modèle a hésité) ; Seulement les images à revoir les filtre. Une image quitte la file dès qu’elle a des boîtes ou qu’elle est marquée sans objet. 500 images au plus attendent par projet.

Annotez-les, figez une nouvelle version, entraînez de nouveau, puis passez le nœud de détection sur le nouveau modèle.

Du Lab aux flows

Un modèle entraîné s’utilise comme tout modèle de détection : Source caméra → Détection d’objets dans un flow. Derrière la détection, les nœuds Suivi d’objets, Zones d’image, Description d’image, Description vidéo et Décision sur texte transforment les boîtes en suivis, en entrées et sorties de zone et en descriptions : voir Caméras & vision.

Rôles

Owners, Admins et Members modifient les projets, annotent et entraînent. Les Viewers consultent et exportent.

On this page