engiAI

  • Exigences
Windows 10/11 x64. Analyse du CPU et du GPU – versions RTX 50+.

⬇ engiAI.rar (900 Mo)

⬇ engiAI-ZONA-PARA-FR.pdf (5.4 Mo)

⬇ engiAI-doc-new-FR.pdf (12 Mo)

SICK IDS Camera Manager ⬇ ids-software-suite-win-4.96.1.zip (184 Mo)

SICK IDS Camera Manager - link 2

Inscription

S'inscrire à engiAI

EngiAI (engiAI Ethernet System) est un logiciel de vision industrielle pour l'inspection et le contrôle qualité des produits sur une chaîne de production. Écrit en C# (.NET 9, WinForms), il est compilé en un seul fichier exécutable autonome (AOT) pour Windows x64.

⬇ engiAI Description.pdf (75 Ko)
  • Que fait
Acquisition à partir de caméras : caméras industrielles Hikrobot (SDK), USB/DirectShow, IDS uEye, ainsi que des caméras Android via OpenCV. Plusieurs caméras simultanément.

Inspection par l'IA : Les réseaux de neurones YOLO (ONNX Runtime / GPU-CUDA ou CPU) détectent les objets et les défauts en temps réel.

Zones ROI (Points d'intérêt) : Zones de contrôle personnalisables, définies à l'aide de classes et de règles, ainsi que des zones nommées et un catalogue.

Éjecteur (Disjoncteur): En fonction de l'analyse de l'IA, un signal est envoyé à la sortie discrète (pour couper le courant en cas de défaut), avec la configuration des bornes et une vérification par un testeur.

Déclencheurs : prise de vue déclenchée par un signal externe (entrées discrètes, encodeurs).

Entraînement des modèles : ensembles de données, données synthétiques (rotations/miroir/luminosité), entraînement de YOLO11 directement depuis le programme.

Stockage : base SQLite locale (rejectors.db) – modèles, zones, journal des événements, état des caméras.

  • Obtention des licences
Version unique : mode (d'essai / licence / désactivation)

Sans licence : mode d'essai de 20 minutes ; avec licence : fonctionnement sans restrictions.

Attache au matériel, contrôle de tous les instances en cours d'exécution.

engiAI Ethernet System
ZONE-PAIRE – Inspection visuelle des cartes de circuits imprimés et des assemblages

L’interface d’engiAI est disponible en français : les noms des boutons et des champs sont indiqués dans ce manuel tels qu’ils apparaissent dans le programme.

L'objectif de l'inspection est la distinction entre les différentes zones (ZONE-PAIRE). Sur la carte, on identifie des zones – chaque composant à vérifier. Chaque modèle possède une paire de classes ("normal / anomalie") pour chaque zone et effectue uniquement la vérification à l'intérieur de cette paire. Dans l'exemple du manuel, il y a deux zones : le condensateur C30 et le pont BR1 ; sur une carte réelle, il peut en exister des centaines, et la méthode est la même.
Données synthétiques : déplacement automatique de l'élément par rapport au substrat. Le programme prend la pièce ainsi que la zone de la carte autour (lignes, pistes, couleur du substrat), réduit la zone à la taille de la pièce et la déplace ou la fait pivoter. La création d'un défaut pour l'apprentissage se fait en deux clics, sans avoir besoin d'une seule carte défectueuse.
Guide d'utilisation : comment connecter la caméra, définir les zones, fixer la zone d'alignement, enregistrer les données normales et anormales, entraîner le modèle, lancer l'inspection et la connecter à l'éjecteur : via des alertes sonores, des sorties discrètes des caméras SICK et HIKROBOT, et des transmissions TCP vers le robot ou le PLC.
Étape 1Caméra
Étape 2Réseau de zones
Étape 3Valeurs normales et anomalies
Étape 4Formation
Étape 5Inspection
Étape 6Sorties et TCP
Tous les captures d'écran ont été prises à partir d'un logiciel fonctionnel : la carte vtlift, la caméra USB 3264×2448, modèle model_4 pour deux zones de 256×256 (condensateur C30 et pont BR1), entraînée en niveaux de gris. Le logiciel fonctionne avec les caméras HIKROBOT (GigE et USB3), SICK picoCam (uEye), ainsi qu'avec les caméras USB/web et les caméras IP via RTSP. Édition 3 – septembre 2026.

Contenu

  1. 1. Pourquoi engiAI et la méthode ZONE-PAIRE ?
  2. 1.1. Quels sont les avantages de cette méthode par rapport à la classification de l'image entière ?
  3. 1.2. Vitesse : L'IA ne prend en compte que les extraits pertinents.
  4. 1.3. Quelle précision attendre : calculons en fonction de notre appareil
  5. 1.4. Démarrage rapide : les paramètres sont configurés, les zones et le modèle sont définis en quelques clics.
  6. 2. L'interface du programme en une minute
  7. 3. Caméras : connexion et configuration
  8. 3.1. Quelles caméras sont prises en charge ?
  9. 3.2. Fenêtre de la caméra : ajouter, modifier, supprimer
  10. 3.3. L'onglet "Camera" pour HIKROBOT et SICK
  11. 3.4. Onglet "Caméra" pour webcam/caméra USB
  12. 3.5. Paramètres de la caméra enregistrés (ensembles de paramètres)
  13. 3.6. Réseau GigE et redémarrage
  14. 4. Le modèle ZONE-PAIRE : du maillage à un modèle entraîné
  15. 4.1. Fonctionnement de la méthode : un modèle, une classe par zone
  16. 4.2. Établir un modèle
  17. 4.3. Identifier les zones concernées par le paiement
  18. 4.4. Définir les références : zone d'alignement
  19. 4.5. Image par zones : version normale et ses données synthétiques
  20. 4.6. Données synthétiques : défaut : déplacement de l'élément en deux clics.
  21. 4.7. Anomalies des zones : fenêtre des paramètres
  22. 4.8. Références aux zones : plaques de soudure et éditeur de zone
  23. 4.9. Entraînement du modèle
  24. 5. Inspection
  25. 5.1. Définir le modèle et vérifier les zones.
  26. 5.2. Seuil de reconnaissance de la zone
  27. 5.3. Système de convoyage flexible : adaptable à toutes les positions
  28. 5.4. Quel signal analyser ?
  29. 5.5. Zones jaunes : désactiver la zone en cliquant
  30. 5.6. Ce que l'on peut observer à l'écran et dans la console
  31. 6. Détecteurs : capteur externe pour l'entrée de la caméra
  32. 7. Sorties : sortie d'air, sorties numériques des caméras et TCP
  33. 7.1. Guide : SORTIES : contacts et vérification avec un testeur
  34. 7.2. Fenêtre OUTPUT : règle pour la zone
  35. 7.3. Envoi d'un paquet TCP à l'automate ou au PLC
  36. 7.4. Sortie discrète de la caméra
  37. 7.5. Signal sonore : un son spécifique pour chaque zone
  38. 7.6. Journal des activations et base de données
  39. 8. Autres modes et tâches
  40. 9. Paramètres, console, exigences et licence
  41. 10. Liste de contrôle concise et identification des problèmes

Comment utiliser ce guide. La section 1 explique le but de la méthode et les résultats attendus. Les sections 3 à 5 décrivent le processus, de la création d'un programme vide à la mise en service de l'inspection. Veuillez les suivre dans l'ordre. Les sections 6 à 7 concernent la connexion des capteurs, des sorties et du protocole TCP. Les sections 8 à 10 couvrent les autres fonctionnalités, les paramètres et la liste de contrôle.

1. Pourquoi engiAI et la méthode ZONE-PAIRE ?

engiAI Ethernet System – un logiciel d'inspection visuelle pour la ligne de production. Il utilise une image capturée par une caméra industrielle ou standard, la divise en zones, et vérifie chaque zone à l'aide d'un réseau neuronal entraîné. Le résultat est ensuite transformé en une action : un signal vers la sortie numérique de la caméra, un envoi TCP vers un robot ou un PLC, ou une entrée dans un journal. La méthode ZONE-PAIRE est conçue pour les produits où chaque emplacement a sa propre "bonne" configuration : cartes de circuits imprimés, assemblages, ensembles de pièces dans un tiroir, emballages avec disposition spécifique.

1 modèle
pour toutes les zones de la carte, au lieu de cent modèles différents.
2 zones
Dans l'exemple fourni : le condensateur C30 et le pont BR1. Il peut y en avoir des centaines sur la carte.
≈5 px
déplacement de l'élément auquel est associée la limite "normal / défaut"
2 clics
De l'image réelle à des défauts normaux et synthétiques pour l'apprentissage

1.1. Quels avantages offre cette méthode par rapport à la classification de l'image entière ?

L'approche classique consiste à utiliser un seul modèle avec deux classes, "normal" et "anomalie", pour l'ensemble de l'image ou pour toutes les zones simultanément. Cependant, cela ne fonctionne pas sur le circuit : l'absence d'un élément sous le pont BR1 dans la zone 2 est considérée comme une anomalie, tandis que la même absence dans un autre endroit du circuit est considérée comme normale. Il est impossible d'exprimer cette distinction avec une seule paire de classes. L'autre extrême consiste à utiliser un modèle distinct pour chaque élément, ce qui nécessiterait des dizaines d'entraînements et des dizaines de fichiers en mémoire.

ZONE-PAIRE résout cela de la manière suivante : il existe un seul modèle, et le nombre de classes est égal au nombre de zones. Une «zone» est un rectangle autour d'un composant. Une «classe» est un dossier contenant des images sur lesquelles le réseau apprend. Chaque zone possède sa propre paire : zone_001 (zone 1 normale, par exemple le condensateur C30) et zone_001_anomaly (zone 1 défectueuse) ; zone_002 et zone_002_anomaly représentent le pont BR1. Lors de la vérification de la zone 1, le programme ne considère que sa paire. Les réponses concernant la zone 2 ne sont pas prises en compte. Les classes d'anomalies sont facultatives : la modification de l'apparence de la zone est effectuée par défaut, et la confiance dans la zone «normale» diminue automatiquement. Cependant, avec des données synthétiques (section 4.6), elles peuvent être créées en un seul clic et améliorent significativement la fiabilité.

Exemple d'image réelle : deux zones – le pont BR1 en haut à droite et le condensateur C30 en bas à gauche, toutes deux vertes et étiquetées « normal ». Les lignes bleues représentent les limites de la zone d'alignement, et les points bleus sont les points de référence utilisés pour identifier la carte dans l'image.
Exemple d'image réelle : deux zones – le pont BR1 en haut à droite et le condensateur C30 en bas à gauche, toutes deux vertes et étiquetées « normal ». Les lignes bleues représentent les limites de la zone d'alignement, et les points bleus sont les points de référence utilisés pour identifier la carte dans l'image.
Décision au sein du couple Lors de la vérification de la zone 17, seuls deux sorties du réseau sont prises en compte : « sortie normale de la zone 17 » et « anomalie de la zone 17 ». Les centaines d'autres classes présentes dans la solution ne sont pas prises en compte, de sorte que des zones similaires situées à proximité n'affectent pas le résultat.
Une zone avec une couverture inférieure à 10 % ne sera pas considérée comme une couverture normale. Si un groupe de zones ne couvre que moins de 10 % du réseau, la zone est considérée comme "non reconnue" : il s'agit alors d'une autre zone ou d'une zone avec une couverture décalée. Une telle zone est considérée comme une anomalie, et non comme une couverture "normale avec une forte probabilité".
Le défaut est proportionnel à la zone. La taille et la position des défauts synthétiques sont définies en fractions de la taille de la zone. Un décalage d'un demi-millimètre sur une image entière de 8 mégapixels est imperceptible, mais dans une zone de 128x128 pixels, cela correspond à 5 à 6 pixels, ce qui est une valeur significative.
Autorisation complète La zone de 108–137 pixels est transmise sur le réseau 128×128 avec un minimum de redimensionnement. Il faudrait réduire l'intégralité de l'image à 128 pixels, ce qui entraînerait une perte de détails de plusieurs dizaines de fois.
La limite cible «normal / défaut» Les données synthétiques «normal» présentent une variation de 0 à 2 px, tandis que les données synthétiques «défaut» présentent un décalage de 5 px. Le réseau apprend à reconnaître précisément cette limite, et non les variations aléatoires de l'éclairage.
Résultat ciblé Chaque zone possède une adresse stable (modèle, table, cellule) et un nom. Il est possible d'associer une règle spécifique à chaque zone : alerte sonore, envoi de données TCP avec le numéro de la zone ou sortie discrète de la caméra.
Adaptable à toutes les positions L'opérateur délimite sur l'image la zone d'alignement, c'est-à-dire la partie de la carte contenant les composants. En se basant sur les points de référence de cette zone, chaque image est alignée avec la carte de référence, et les zones d'inspection se trouvent sur la nouvelle carte, même si elle a été placée avec un décalage ou un angle, y compris à 180° (section 4.4).
Défaut provenant de la carte Un défaut synthétique ne correspond pas à une tache non dessinée, mais à un élément déformé ou incliné, ainsi qu'à une partie de la base. Le modèle apprend la relation « élément ↔ carte », et non la couleur de la tache. Cela se fait en deux étapes (section 4.6).
Les anomalies sont signalées progressivement Les classes de défaut ne sont ajoutées que là où un défaut est réellement présent : connexions soudées, éléments manquants, déformations, rayures. Le modèle est réentraîné, mais le réseau reste inchangé.

1.2. Vitesse : L'IA ne traite que les parties pertinentes

Le réseau neuronal ne reçoit jamais l'image entière. Pour chaque zone, seul le rectangle correspondant est extrait, et le numéro de la zone est associé à deux classes. Les zones d'une même image sont traitées en parallèle (jusqu'à quatre flux), et le résultat de toutes les zones est affiché en un seul lot, et non pour chaque zone individuellement.

  • Le débit d'analyse est déterminé par le temps. La fonction «Analyses par seconde (AS) » dans l'onglet «Camera» indique précisément N analyses par seconde, et non «chaque N-ième image». La limite est la fréquence de la caméra et le temps d'inférence.
  • Utilisation par défaut du GPU. L'inférence se fait via ONNX Runtime avec CUDA ; si une carte graphique NVIDIA n'est pas présente, le programme bascule automatiquement sur le processeur et indique cela dans l'état (GPU (CUDA) ou CPU).
  • Piles sans déchets. La mémoire est allouée une seule fois par flux et réutilisée ; le temps d'analyse est constant, sans variations d'un cadre à l'autre.
  • Configuration pour la tâche. Le programme ZONE-PAIRE définit automatiquement la taille d'entrée à 128 px et utilise le réseau YOLO11 de taille «s» : la zone extraite est pratiquement inchangée, et le réseau est suffisamment performant pour traiter des centaines de paires de classes.
  • Un système de production automatisé permet de réduire les besoins en personnel. Le processus de recherche et d'alignement des composants se fait une seule fois, et non à chaque période de recherche, comme dans un système traditionnel.
  • L'affichage n'interfère pas avec l'analyse. L'image est redessinée pas plus de 25 fois par seconde et uniquement à partir d'un nouveau plan de la caméra. L'image est réduite à la taille de la tuile avant d'être affichée à l'écran, et le journal est écrit dans un fichier par un processus en arrière-plan. L'interface reste réactive, même avec des images de 8 mégapixels et des centaines de zones.

Dans la barre d'état située au-dessus de la vidéo, on peut voir les chiffres réels suivants : images par seconde (fps) et les millisecondes du dernier calcul, ainsi que Eff, qui indique le nombre d'analyses effectivement effectuées par seconde.

1.3. Quelle précision attendre : calcul effectué avec notre caméra

Le programme ne garantit pas une précision de «0,5 mm» indépendamment de l'appareil et de l'objectif. La sensibilité aux déformations est déterminée par le nombre de pixels correspondant à un millimètre de l'objet, ainsi que par la limite d'apprentissage du modèle. Cela peut être calculé en deux lignes :

px/mm = largeur de l'image en pixels divisée par la largeur du champ de vision en millimètres
Déplacement minimal perceptible ≈ 5 px ÷ (px/mm)

La valeur de 5 px représente la limite inférieure du décalage synthétique dans les paramètres recommandés pour les anomalies (l'écart normal étant de 0 à 2 px). Les paramètres par défaut sont calculés pour une valeur de 11 px/mm : à cette échelle, 0,5 mm équivalent à 5 à 6 px, ce qui correspond à l'objectif défini lors du développement. Veuillez entrer vos propres valeurs :

Cadre (largeur de l'image)Champ de vision de 100 mm200 mm300 mm400 mm
3264 px (8 mégapixels via USB, comme sur les images)0,03 мм/px → Déplacement ≈ 0,15 mm0,06 → ≈ 0,3 mm0,09 → ≈ 0,45 mm0,12 → ≈ 0,6 mm
2448 px (HIKROBOT 5 MP)0,04 → ≈ 0,2 mm0,08 → ≈ 0,4 mm0,12 → ≈ 0,6 mm0,16 → ≈ 0,8 mm
1920 px (SICK picoCam, HIKROBOT 2 MP)0,05 → ≈ 0,25 mm0,10 → ≈ 0,5 mm0,16 → ≈ 0,8 mm0,21 → ≈ 1,0 mm
Important. Il s'agit d'une évaluation de la déformation d'un élément lors d'un changement brusque de scène et d'une illumination stable. Pour vérifier la limite réelle, utilisez le bouton « ZONE-PAIRE : zones ↔ modèle » et le seuil de reconnaissance (section 5.2) : chaque zone a ses propres délimitations, et donc son propre niveau de précision. Plus le champ de vision est petit et plus le nombre de pixels de la caméra est élevé, plus la déformation que le modèle peut détecter sera faible.

1.4. Démarrage rapide : les paramètres sont pré-définis, les zones et le modèle sont accessibles en quelques clics.

Cette méthode est conçue pour permettre à un technicien sans expérience en apprentissage automatique d'obtenir un modèle fonctionnel en une seule journée. Tout ce qui peut être configuré à l'avance est déjà configuré et stocké dans la base de données du programme :

  • Définir la zone en une minute. Dans l'éditeur ROI, faites glisser le cadre autour de l'élément et spécifiez la taille de la zone (par exemple, 256 pixels). Si vous avez de nombreux éléments disposés en grille, faites glisser le cadre sur toute la carte – le programme calculera automatiquement les lignes et les colonnes de la grille.
  • Données synthétiques par défaut et paramètres prédéfinis. Les boutons "Par défaut", "Décalage des éléments" et "Couleur et teinte" permettent de sélectionner des profils préconfigurés. Le nombre de fichiers, le nombre d'images de la caméra et le temps estimé sont affichés avant de cliquer sur "Capturer".
  • Les paramètres d'apprentissage sont configurés automatiquement. Après la première image, le programme définit les paramètres suivants : taille de l'image 128, taille du modèle "s", nombre d'époques 50, taille du lot 64. Pendant l'apprentissage, les augmentations qui entrent en conflit avec les classes d'anomalies sont désactivées.
  • L'appareil photo est réglé par bouton. La fonction "Réglage automatique pour l'IA (par image)" ajuste l'exposition, le gain, la gamme et la balance des blancs. Pour les caméras USB, il existe les options "Adaptation automatique aux formats" et "Fixer les paramètres".
  • Ensembles de paramètres de l'appareil photo. Les paramètres sélectionnés sont enregistrés sous un nom et peuvent être sélectionnés dans une liste. L'appareil photo les applique immédiatement et les mémorise dans sa mémoire.
  • Un seul fichier ONNX en sortie. Le modèle entraîné est exporté automatiquement et attribué immédiatement à l'inspection, sans étape supplémentaire.

Étapes complètes : connecter la caméra → créer un modèle → identifier les zones → définir la zone d'alignement → "Capture par zone" sur plusieurs cartes fonctionnelles → "Anomalies de zone" → Entraîner le modèle d'IA → onglet "Inspection". Ensuite, il faut attribuer des sons, des sorties et une connexion TCP à chaque zone. Ce qui est nécessaire pour commencer : un ordinateur avec Windows 10/11 (pour une inspection rapide, une carte graphique NVIDIA), une caméra, une carte fonctionnelle et une connexion Internet pour installer l'environnement d'apprentissage. Les cartes défectueuses ne sont pas nécessaires.

2. Interface du programme en une minute

La fenêtre principale est divisée en deux parties. À gauche, la vidéo en direct des caméras et une barre d'état. À droite, une barre avec des onglets, où se trouve tout le contrôle. La limite entre les parties peut être déplacée ; la taille, la position de toutes les fenêtres et la disposition sont enregistrées dans la base de données du programme.

Fenêtre principale : à gauche, vue en direct de la carte avec deux zones (les deux vertes, indiquant "normal"), à droite, onglet "Inspect" avec le modèle model_4\best.onnx. Le convoyeur en direct est activé, l'indicateur "normal · 112 points" s'affiche.
Fenêtre principale : à gauche, vue en direct de la carte avec deux zones (les deux vertes, indiquant "normal"), à droite, onglet "Inspect" avec le modèle model_4\best.onnx. Le convoyeur en direct est activé, l'indicateur "normal · 112 points" s'affiche.

Boutons au-dessus de la vidéo

BoutonCe qu'il fait
MASQUER LA VIDÉOSupprime l'image de l'écran. L'analyse continue, seule la redessin est économisée.
SORTIESFenêtre d'aide : contacts des sorties discrètes des caméras HIKROBOT et SICK, vérification avec un testeur, connexion de la charge (section 7.1).
CAMÉRASFenêtre « Paramètres des caméras connectées » : ajout, reconnexion, suppression des caméras et consultation de tous les paramètres lus depuis le matériel (section 3.2).
SÉNSIBILITEURSConnexion d'un capteur externe à la sortie discrète de la caméra, avec schéma et schéma de câblage (section 6).
MODÈLES GÉNÉRAUXEnsembles nommés "caméra → modèle", attribués à l'ensemble entier par un simple choix (section 8).
Disposition (colonnes)Nombre de carreaux de caméra à afficher en ligne ; "■" – mode unique (caméra agrandie), "Auto" – selon la caméra sélectionnée, "⛶" – toutes les caméras sur l'écran (sortie Esc).
Afficher les zones ROIDessiner-vous un grillage de zones sur la vidéo.

Onglets à droite

OngletAttribution
CameraParamètres de la caméra sélectionnée : vitesse d'obturation, amplification, couleur, résolution, réglages automatiques pour l'IA, ensembles de paramètres enregistrés, vitesse d'analyse. Les seuils de l'IA ne sont plus présents ici, ils ne sont que sur l'onglet "Inspect".
OUTPUTÉjecteur : règles pour les zones – transmissions TCP vers le robot/PLC, sorties discrètes de la caméra et alertes sonores, journal des événements, base de données.
AI ModelCréation du modèle : dossier, classes, grillage de zones, capture par zones, anomalies de zones, référence de carte, paramètres et lancement de l'apprentissage.
InspectOnglet de travail : quel modèle effectue l'inspection, les zones à vérifier et le seuil, la ligne de production en direct, le signal à utiliser pour capturer l'image, les emplacements pour l'inspection multi-modèles.
SettingsLangage de l'interface (14 langues), achat de licence, sauvegarde et chargement des paramètres, enregistrement vidéo.
ConsoleJournal des événements : connexion des caméras, déroulement de la formation, activation de l'éjecteur, alertes. L'écran affiche les 800 à 1000 dernières lignes, et toutes les informations sont enregistrées dans les fichiers logs\engiai-*.log.

Ligne d'état

Au-dessus des boutons, l'état de la caméra active est indiqué : LIVE (Android) : 3264×2448 [Caméra USB HD] – type, résolution et nom ; IA : EN ATTENTE ou IA : GPU (CUDA) – sur quoi le modèle estime et combien de millisecondes il a fallu pour l'analyse la plus récente ; Réseau : Total : … active … Mbit/s – charge du réseau provenant des caméras GigE (vert jusqu'à 40 % de la bande passante, orange jusqu'à 70 %, rouge ensuite). La barre Exp Load indique quelle proportion de l'intervalle d'image est occupée par la vitesse d'obturation : si elle est positionnée vers la droite, la caméra ne pourra pas maintenir la fréquence indiquée.

Chaque vignette de caméra affiche un en-tête avec le nom, le statut "DIRECT | IA: ACTIVÉE" et un bouton de reconnexion. Un clic droit sur la vignette ouvre le menu de la zone, tandis qu'un clic droit avec glissement permet de panoramiquer l'image agrandie.

3. Caméras : connexion et configuration

3.1. Quelles caméras sont prises en charge

TypeComment se connecterCe qui peut être configuré depuis le programme
HIKROBOT MV-CS
(GigE, USB3)
SDK MVS natif. Se déverrouille uniquement avec le numéro de série, l'ordre de liste n'est pas important.Résolution de 6 μm, gain en dB, FPS (images par seconde), résolution (AOI), niveau noir de 0…4095, tous les nœuds GenICam (modes automatiques, gamme, netteté, balance des blancs R/G/B, décalage numérique, inversion, paquets GigE). Les paramètres sont enregistrés dans la section UserSet1 de la caméra. Entrée discrète Line 0, sortie Line 1, GPIO Line 2.
SICK picoCam
(IDS uEye, GigE)
Pilote uEye. La caméra doit être visible dans IDS Camera Manager avec l'état "correctement configurée". Le numéro de série est vérifié avec la caméra, car l'ID de l'appareil change à chaque démarrage.Gain, amplification 0…100, FPS, résolution, niveau noir 0…255, fréquence d'horloge des pixels, amplification, amplificateurs matériels des canaux R/G/B, gamme matérielle, disposition de Bayer. Les paramètres sont enregistrés dans la mémoire de la caméra. Entrée du déclencheur sur le phototransistor, sortie Flash (150 mA).
Webcam USB
(dans la liste : Android)
DirectShow via OpenCV, qui diffèrent par leur moniker, de sorte que deux caméras identiques ne se confondent pas.Prise en charge jusqu'à 8K, FPS, toutes les propriétés du pilote : luminosité, contraste, saturation, teinte, netteté, gamme, amplification, temps d'exposition (automatique), mise au point (automatique), balance des blancs (automatique), compensation de l'éblouissement, etc. Il n'y a pas d'entrées et de sorties dédiées, seule la TCP est disponible.
Caméra IP RTSPLa chaîne de caractères `rtsp://admin:mot_de_passe@192.168.1.64:554/…` doit être ajoutée manuellement.Le temps d'exposition, l'amplification, la résolution et le FPS sont définis dans l'interface web de la caméra elle-même. La configuration comprend des zones, un modèle et la TCP.

Il n'y a pas de limite au nombre de caméras : les caméras peuvent être disposées en grille avec n'importe quel nombre ; sur des bancs de test, huit et neuf caméras ont fonctionné simultanément. Chaque caméra possède son propre modèle, ses propres zones, son seuil et son propre rythme d'analyse.

3.2. Fenêtre CAMÉRES : ajouter, redémarrer, supprimer

1
Appuyez sur CAMÉRAS au-dessus de la vidéo. Une fenêtre "PARAMÈTRES DES CAMÉRAS CONNECTÉES" s'ouvrira à l'écran entier (fermer : Échap).
2
Cliquez sur + Ajouter des caméras. Le programme interrogera le réseau et le port USB et affichera tous les appareils trouvés dans une seule liste : Hikrobot … SN: … IP: …, SICK … SN: … DeviceID: …, Android …. Les caméras SICK prennent jusqu'à 4 secondes pour être détectées, car l'appareil GigE n'apparaît pas immédiatement dans le pilote. Une caméra SICK occupée ou mal adressée sera marquée avec un symbole ⚠ et la raison de l'erreur.
3
Sélectionnez les caméras souhaitées et cliquez sur Ajouter. Pour ajouter une caméra IP, utilisez le bouton + Ajouter une caméra RTSP via un lien…. Pendant que les caméras se connectent, un écran d'attente s'affiche avec le bouton "Ignorer la caméra".
4
La caméra apparaîtra dans la liste sous la forme de la ligne Nom | Type | Numéro de série | EN DIRECT ou EN RETARD | IA: Activé | Affichage: Activé, et sa vidéo sera affichée dans la partie gauche de la fenêtre principale.

Les options situées sous la liste s'appliquent à la caméra sélectionnée : Caméra activée (sinon, elle est désactivée de l'appareil et disparaît de l'écran), Afficher la vidéo/les zones (seul l'affichage est activé, l'analyse fonctionne toujours), L'IA est activée pour la caméra sélectionnée. Le bouton Reconnecter effectue une déconnexion et une reconnexion complètes, redémarrant le flux d'IA et rechargeant les modèles.

La partie droite de la fenêtre affiche tous les paramètres de la caméra, enregistrés par le matériel lors de la connexion, avec les groupes et les unités de mesure : « Afficher les paramètres de », Ré-enregistrer depuis la caméra, Copier dans le presse-papiers. Il s'agit uniquement d'une consultation : il est possible de modifier les paramètres dans l'onglet « Caméra ».

Important. La caméra HIKROBOT utilisant la technologie GigE maintient une connexion exclusive. Après la fermeture inattendue du programme, elle reste occupée jusqu'à ce que le signal de cœur cesse de fonctionner ; le programme attend jusqu'à 25 secondes (10 tentatives) et affiche le message « la caméra est occupée par un autre processus ». Pour SICK, si l'adresse IP est incorrecte, le programme tente une fois de la corriger automatiquement, à condition qu'elle ne fasse pas partie du sous-réseau de l'adaptateur.

3.3. Onglet CAMÉRA pour HIKROBOT et SICK

Ce composant fonctionne avec la caméra, qui est encadrée d'une bordure bleue. Le programme ne sauvegarde aucune donnée sur la caméra lors de la connexion : la caméra est la source de vérité, tandis que les curseurs s'ajustent à ses valeurs. Il est possible de sauvegarder les paramètres uniquement en cliquant sur le bouton "Enregistrer les paramètres".

1
Dans la partie inférieure, définissez la largeur (W) et la hauteur (H) de l'image (ou sélectionnez une valeur prédéfinie dans la liste, qui ne contient que les dimensions prises en charge par cette caméra), puis cliquez sur APPLIQUER LA RÉSOLUTION. Généralement, on utilise la résolution complète de la caméra. La taille est arrondie à l'échelle AOI de la caméra.
2
Cliquez sur «Auto-réglage pour l'IA (par cadre)». Le programme ajuste l'ouverture (priorité) et l'amplification (pas plus de 40) afin que le 99,5e percentile de la luminosité se situe entre 220 et 248, sans éblouissement excessif. Ensuite, il définit la balance des blancs sur 1,50, la saturation sur 115 % et le contraste sur 105 %, et active la balance automatique. La case «Auto» active également le mode continu : vérification et ajustement toutes les 3 secondes, si la luminosité change.
3
Si nécessaire, ajustez manuellement : Exposition (déplacement en microsecondes, indication en ms, jusqu'à 1 s), Gain, FPS, Niveau noir. Pour SICK, en plus : Horloge des pixels (détermine le maximum de FPS et la durée minimale), Boost de gain, Gamme matérielle, WB Rouge / Vert / Bleu.
4
Appuyez sur Enregistrer les paramètres : le fichier camera_params\<SN>.ini et l'enregistrement dans la mémoire de la caméra (UserSet1 pour HIKROBOT, avec les paramètres par défaut), ainsi que EEPROM pour SICK. Le résultat s'affiche sur le bouton lui-même («✔ Enregistré»). Pour HIKROBOT, il existe une case à cocher Sauvegarde automatique dans la caméra (UserSet1) après 5 secondes de modification.

Bloc « Hikrobot : paramètres de la caméra (GenICam) »

Seules les informations fournies par la caméra sont affichées. Les lignes suivantes sont : Auto-exposition (Off / Once / Continuous), Auto-amplification, Gamme et mode de gamme, Netteté, Teinte, Saturation, Auto-équilibre des blancs, Équilibre des blancs par canal, Décalage numérique, Niveau noir activé, Limitation FPS activée, Rotation horizontale et verticale, GigE : taille du paquet, GigE : délai entre les paquets, GigE : limite de bande passante, Image de test. Le bouton "Réinitialiser les paramètres de la caméra" modifie la table.

Bloc « COULEUR DE L'IMAGE »

Disposition de Bayer (Auto / BGGR / RGGB / GRBG / GBRG), Saturation 0…200 %, Gamma 0,30…3,00, Contrast 50…200 %, bouton de réinitialisation. Le traitement logiciel s'applique à tous les types de capteurs : affichage, enregistrement, inférence et images pour l'apprentissage. Par conséquent, l'image utilisée pour l'apprentissage et l'inspection est identique. Pour HIKROBOT, la disposition est extraite du format de pixel de la caméra, tandis que pour les capteurs SICK couleur, elle est extraite du capteur et affinée à partir du premier cadre.

ParamètreQue faitEffet
Analyse par seconde (IA)limite supérieure du rythme d'inspection, 1…200moins – moins de charge pour la carte vidéo ; indépendant de la connexion de la caméra
Seuil de l'IAnon défini dans l'onglet "Camera"Seuil de reconnaissance de la zone – uniquement dans l'onglet "Inspect" (section 5.2), un par caméra
ExposureTemps d'expositionen bref – moins de flou pour les objets en mouvement ; zéro n'est pas autorisé
Gain / Gain boostAmélioration du signal de la matriceaugmente la luminosité, mais ajoute du bruit
Pixel clock (SICK)Fréquence du capteurmodifie les plages de FPS et de temps d'exposition, qui sont réinitialisés
FPSFréquence d'images en mode librenon utilisé en mode déclencheur
Largeur / HauteurTaille de l'image (AOI)Une image plus petite signifie une fréquence plus élevée et un trafic plus faible.
Important. Prenez des captures d'écran pour l'entraînement dans les mêmes conditions que celles dans lesquelles le système fonctionnera : même éclairage, même vitesse, même position de la caméra. Une fois que les paramètres ont été modifiés, le programme affiche un message dans la console pour rappeler que le modèle doit être réentraîné avec les nouvelles images.

3.4. Onglet "Caméra" pour les caméras USB/webcam

Pour les caméras USB, l'onglet affiche le bloc "Caméra USB : résolution, FPS et propriétés". Les propriétés du pilote que la caméra ne transmet pas ne sont pas affichées ; les limites des champs sont définies par le logiciel, car DirectShow ne fournit pas d'informations sur les plages.

1
Autoriser et Appliquer. Le bouton Vérifier permet de sélectionner parmi les tailles standard, allant de VGA à 8K, et affiche uniquement les tailles acceptées par la caméra. La ligne « Format de la caméra » indique la taille réelle et le nombre d'images par seconde (FPS).
2
Activez les fonctions d'exposition automatique, de mise au point automatique et de balance des blancs automatique, puis appuyez sur le bouton "Fixer les paramètres (désactiver l'automatique, conserver les réglages actuels)". L'automatisme est désactivé, et le programme ajuste manuellement la vitesse d'obturation pour obtenir la même luminosité (lorsque l'automatisme est activé, le pilote renvoie la dernière vitesse d'obturation manuelle réglée, et non celle calculée). Les valeurs et le format sont enregistrés dans la base de données et sont appliqués à chaque connexion ultérieure de cet appareil photo.
3
Série Sous contrôle IA: Sélection automatique selon les formes (20–60 secondes, ajustement de l'exposition et du contraste sur des images réelles, critère : netteté des contours sans contre-lumière), Formes, sans couleur, Formes, douces, Retour, Typiques.
4
Les valeurs saisies dans les champs sont immédiatement enregistrées dans la caméra, sans avoir besoin d'appuyer sur la touche "Entrée", et sont ensuite enregistrées dans la base de données. Le bouton "Réafficher les propriétés de la caméra" confirme que la caméra a bien enregistré les données.
Conseil. Pour l'IA, il est préférable de désactiver la saturation de la caméra en utilisant une option globale plutôt qu'un réglage spécifique à la caméra. Cette option s'appelle Entraînement en niveaux de gris (paramètre général du modèle) et se trouve dans l'onglet "Camera" (elle est également appelée "Entraînement en niveaux de gris" dans l'onglet "Modèle IA") : cela permettra d'utiliser des images en niveaux de gris pour l'entraînement et l'inspection, tout en permettant à l'opérateur de continuer à voir les couleurs via la caméra. Le modèle de l'exemple a été entraîné en niveaux de gris.

3.5. Paramètres de caméra enregistrés (ensembles)

Le bloc "Paramètres de caméra enregistrés" s'affiche pour les caméras USB, SICK et HIKROBOT. En ajustant les paramètres en fonction de l'appareil, enregistrez-les sous un nom spécifique : pour une autre carte ou un autre éclairage, il suffit de sélectionner un ensemble dans la liste.

  • Enregistrer sous… – Lit les valeurs actuelles de la caméra et demande le nom du groupe. Si le nom est déjà utilisé, il propose de le remplacer.
  • Sélection d'un ensemble dans la liste enregistre immédiatement les paramètres dans la caméra et les sauvegarde : pour USB, dans une base de données ; pour SICK et HIKROBOT, dans un fichier de paramètres et dans la mémoire de la caméra (UserSet1 / EEPROM). Ensuite, le panneau relit les valeurs provenant du matériel et affiche le nombre de paramètres qui ont été acceptés et le nombre de paramètres qui ont été modifiés.
  • Réécrire remplace la sélection actuelle par les valeurs spécifiées, Renommer et Supprimer n'affectent que l'enregistrement dans la base de données, les paramètres de la caméra ne sont pas modifiés.

Ce qui est inclus dans l'ensemble : pour USB, la résolution, le nombre d'images par seconde (FPS), les propriétés du pilote et les modes automatiques ; pour SICK, l'amplification, la durée d'exposition, le FPS, le niveau de noir, la fréquence de pixel, l'amplification, l'équilibre des couleurs R/G/B, la gamme dynamique et la couleur programmée ; pour HIKROBOT, l'amplification, la durée d'exposition, le FPS, le niveau de noir et tous les nœuds GenICam. La taille de l'image des caméras industrielles n'est pas incluse dans l'ensemble : son changement redémarre l'acquisition. Les ensembles sont communs à tous les types de caméras, de sorte qu'un seul ensemble est placé sur chaque banc de caméras identiques.

3.6. Réseau GigE et reconnexion

  • La taille du paquet GigE de HIKROBOT est automatiquement définie sur la valeur optimale lors de l'ouverture ; elle peut également être ajustée manuellement dans le bloc GenICam. Les images Jumbo de 8164 à 9000 réduisent la charge, et en cas de perte de paquets, définissez-les sur 1500 et augmentez la latence entre les paquets.
  • La ligne `Net` estime la charge de chaque caméra en fonction de ses propres données (taille de la charge utile × fréquence) et la compare au trafic réseau réel. Une différence significative indique une perte de paquets ou un trafic indésirable. Les adaptateurs virtuels et les filtres NDIS (GigEVision, uEye, Npcap) sont exclus du calcul.
  • Si la caméra est visible mais que le flux ne fonctionne pas, cliquez sur "Reconnecter" (dans la fenêtre de la CAMÉRA ou sur la vignette). La cause est généralement liée à la bande passante du réseau ou de l'USB.
  • La caméra picoCam perd ses paramètres lors de la fermeture du descripteur. Si aucun fichier de paramètres n'est présent dans la caméra, le programme applique le fichier et propose de cliquer sur « Enregistrer les paramètres » pour les enregistrer dans la caméra.

4. Modèle ZONE-PAIRE : de la grille à un modèle entraîné

4.1. Fonctionnement de la méthode : un modèle, une classe par zone

Le modèle ZONE-PAIRE est un réseau de classification YOLO11 standard, avec autant de classes que de zones, plus des classes optionnelles pour détecter les anomalies. Une classe correspond à un dossier dans les répertoires `train` et `val`. Le programme crée automatiquement tous les dossiers ; il n'est pas nécessaire de les créer manuellement. Voici l'apparence d'un dossier de modèle à partir de l'exemple après l'entraînement :

Dossier model_4: train et val – images, data.json – zones, live_template – référence de la carte, board.json – seuil, best.onnx – réseau entraîné.
Dossier model_4: train et val – images, data.json – zones, live_template – référence de la carte, board.json – seuil, best.onnx – réseau entraîné.
model_4 train\ images d'entraînement zone_001\ zone normale 1 (C30) : real_… prise par la caméra, syn_… données synthétiques zone_001_anomaly\ défaut de zone 1 : syn_…_combo1_d, _rotate1 … zone_002\ zone normale 2 (BR1) zone_002_anomaly\ défaut de zone 2 val\ ensemble de test : les quatre dossiers sont remplis automatiquement data.json zones : tableaux, coordonnées, taille, couleur, activée/désactivée ; classes ; emplacements live_template.png / .txt référence de la carte : cadre, zone d'alignement, zones rouges (exclues) live_template_zones.png référence avec les zones dessinées et les numéros board.json seuil de reconnaissance de la zone ({ "threshold": 0.50 }) train_gray.txt indicateur "nuances de gris" best.onnx modèle entraîné – il est affecté à l'inspection runs\ diag\ *.cache utile : progression de l'entraînement, images pour l'analyse, cache d'entraînement
train : deux dossiers par zone – normal et anomalie.
train : deux dossiers par zone – normal et anomalie.
val : même structure, le programme la remplit automatiquement lors de la prise de vue.
val : même structure, le programme la remplit automatiquement lors de la prise de vue.

Les fichiers real_…jpg représentent des captures d'écran réelles (enregistrées à la fois dans train et val), syn_…jpg représentent des données synthétiques, edit_…jpg représentent des captures prises dans l'éditeur de zone. Dans l'exemple, après avoir pris des captures de plusieurs cartes : zone_001 – 502 fichiers dans train et 111 dans val, zone_001_anomaly – 680 et 144, zone_002 – 813 et 181, zone_002_anomaly – 340 et 60.

Un emplacement de stockage. Toutes les définitions du modèle – les zones d'inspection, la zone d'alignement, les classes et les emplacements – se trouvent uniquement dans le dossier du modèle : data.json et live_template.txt. Il n'y a plus de zones définies dans la base de données, de sorte que les onglets "ROI" et "Inspect" du modèle AI affichent les mêmes zones, et que le dossier du modèle peut être copié sur un autre ordinateur sans perte de données. Les anciens modèles sont automatiquement transférés dans le fichier lors de la première ouverture.

Le programme reconnaît automatiquement le modèle comme une « zone de paiement » en fonction de la présence des classes de type zone_NNN. Le numéro de classe correspond au numéro global de la zone dans le réseau (1…N). D'où la règle principale de la méthode :

Important. Les zones font partie du modèle. Une fois que les cours ont été enregistrés, il n'est pas possible de les modifier (ajouter, supprimer, déplacer les tables) : les numéros de zones seront alors incompatibles avec les cours, et ces zones recevront l'étiquette NO_ZONE_CLASS. Si vous devez modifier les zones, créez un nouveau modèle.

4.2. Créer le modèle

1
Cliquez sur l'onglet «Modèle d'IA» et cliquez sur «Créer un nouveau modèle d'IA».
2
Indiquez le dossier parent et le nom du modèle (le programme propose une option model_N). La liste des classes par défaut contient les termes normal et anomalie; pour ZONE-PAIRE, ils ne sont pas nécessaires : les classes des zones seront créées automatiquement lors de la première prise de vue par zone. Vous pouvez les supprimer ou les laisser vides : avant l'apprentissage, le programme proposera de supprimer les classes vides.
3
Cliquez sur Créer un modèle. Deux dossiers apparaîtront sur le disque : train et val. Le modèle sera alors accessible pour la modification (il ne sera pas mis en place pour l'inspection). Si un modèle existe déjà, utilisez plutôt Sélectionner le dossier du modèle.

4.3. Délimiter les zones sur la carte

1
Placez la carte correctement sous la caméra, de manière à ce qu'elle soit alignée avec la ligne. Cliquez sur ROI → Ajouter à la classe (modèle d'apprentissage).
2
Dans la fenêtre de dialogue "Conserver les ROI dans la classe", sélectionnez n'importe quelle classe (cela n'a pas d'importance pour l'étiquetage) ou saisissez un nouveau nom, puis cliquez sur OK + ouvrir le ROI. Par la suite, toutes les classes de zones seront visibles ici, regroupées par le motif zone_### : un clic sur un groupe le sélectionne, un deuxième clic le désélectionne ; le bouton Supprimer le groupe supprime l'ensemble du groupe, ainsi que les images associées.
3
Une fenêtre intitulée "Sélection de la zone d'intérêt (ROI)" s'ouvrira. Faites glisser la souris en maintenant le bouton gauche enfoncé pour dessiner un rectangle autour de l'élément que vous souhaitez sélectionner. Un champ "Taille de la zone, en pixels" apparaîtra. Entrez la taille souhaitée (elle sera arrondie au multiple de 32 le plus proche, par exemple 256) et appuyez sur Entrée. Le rectangle deviendra alors un carré parfait avec l'indication de sa taille. Répétez cette opération pour chaque élément que vous devez examiner. Dans l'exemple, il y a deux zones sélectionnées : une autour de C30 et une autre autour de BR1.
4
Si le nombre de détails est important et qu'ils sont disposés de manière régulière, il est plus pratique d'utiliser un grillage : étirez le cadre sur toute la plaque et indiquez la taille de la zone. L'aide vous indiquera le nombre de lignes et de colonnes résultantes. Vous pouvez également définir dans la section Grille de zones le nombre de lignes, de colonnes, la largeur et la hauteur des cellules, puis cliquer sur Créer la grille. La grille peut être déplacée avec la souris sur l'objet.
5
La partie droite affiche chaque zone avec sa taille et l'indication "activée". Une zone désactivée ne génère pas de classe, et une table complètement cachée n'est pas prise en compte lors de l'inspection. Les boutons Toutes les zones ✓ / ✗, Couleur, Supprimer, Supprimer TOUTES les zones. Fermez la fenêtre en appuyant sur la touche Entrée – les zones seront conservées dans data.json et apparaîtront en jaune sur la vidéo.
Résultat de la délimitation dans l'onglet « Modèle IA » : deux zones jaunes sur l'image en direct – BR1 en haut à droite et C30 en bas à gauche. À droite, les boutons du modèle ZONE-PAIRE, la case « Fixer les zones au produit selon les marqueurs » et les paramètres d'entraînement.
Résultat de la délimitation dans l'onglet « Modèle IA » : deux zones jaunes sur l'image en direct – BR1 en haut à droite et C30 en bas à gauche. À droite, les boutons du modèle ZONE-PAIRE, la case « Fixer les zones au produit selon les marqueurs » et les paramètres d'entraînement.
Conseil. La zone occupée par le composant doit être significative, et il doit rester une partie de la carte de circuit : pistes, inscriptions, emplacements. C'est cette "base" qui est ensuite utilisée pour les données synthétiques (section 4.6). Pour les cartes avec des composants de 0603 à 1206 à une résolution de 11 px/mm, une taille de 128 px est idéale ; pour les condensateurs, les ponts et les connecteurs, une taille de 192 à 256 px, comme dans l'exemple, est appropriée. La taille de l'entrée réseau (Image Size) est ensuite fixée à une valeur approximativement égale à la taille de la zone.

Zones rouges : exclure une zone des données synthétiques en un seul clic

Dans l'onglet «Modèle d'IA», cliquez avec le bouton gauche sur la zone déjà créée directement sur la vidéo : la zone deviendra rouge et ne participera plus à la sélection par zone ni aux anomalies. Un clic supplémentaire la réactive. Les compteurs de fichiers dans les fenêtres «données synthétiques» sont recalculés immédiatement, et l'indication «désactivé N» sur le cadre indique le nombre de zones désactivées. La liste des zones rouges est stockée par caméra et par modèle ; dans l'onglet «Inspect», la même zone reste normale (les zones jaunes correspondantes sont décrites dans la section 5.5).

4.4. Fixer la référence : zone d'alignement

Les zones d'inspection sont définies en fonction de la position d'une carte. Pour permettre le positionnement d'une autre carte sur la ligne, avec un décalage et une rotation, le système enregistre une référence : une image de référence et une zone d'alignement, qui est une section de la carte contenant des éléments utilisés pour localiser le produit dans chaque nouvelle image. Une fois la zone d'alignement détectée, le système transfère les zones d'inspection sur la nouvelle carte. C'est ainsi que fonctionnent l'acquisition d'images, le traitement des données et l'inspection.

Deux rectangles différents. Les zones d'inspection sont celles que le modèle vérifie (en vert). Zone d'alignement est le marqueur utilisé pour localiser la carte (cadre orange). Les points de référence ne doivent jamais être placés à l'intérieur des zones d'inspection : si la carte était recherchée directement sur le condensateur, un condensateur décalé "entraînerait" avec lui la zone, et le défaut deviendrait invisible. Par conséquent, dans la zone d'alignement, utilisez l'impression sérigraphique, les trous, les pistes, les circuits imprimés, etc., mais pas la table et la bande transporteuse.
1
Dans l'onglet "Modèle IA", cochez la case "Définir les zones par rapport au produit en utilisant les marqueurs" et définissez la "période de recherche, ms" (par défaut : 100). Placez la carte sous la caméra et cliquez sur "Définir la référence".
2
Une fenêtre intitulée «Zone d'alignement : comment localiser les composants » s'ouvrira, affichant une vue en direct et des zones de contrôle vertes. Utilisez le clic gauche pour délimiter la zone sur le circuit imprimé. À droite, vous verrez «Points de référence : N · Alignement : rigide / Perspective » : il devrait y avoir des centaines de points. Si le nombre est faible, agrandissez la zone. La nouvelle zone remplace l'ancienne, et le clic droit la supprime.
3
Cliquez sur ✔ Rechercher les zones à partir de la zone sélectionnée. Le deuxième bouton ✔ Rechercher les zones à partir des zones d'inspection prend en compte les zones définies dans le champ, mais uniquement lorsque rien d'autre n'est à proximité. Si la case Demander la zone d'alignement à chaque fois est décochée, la prochaine sauvegarde reproduira la zone précédente sans fenêtre.
4
Le programme affiche «Référence enregistrée : Zone N, 1 point d'ancrage, points K» et conserve les valeurs live_template.png et live_template.txt (image, zone, zones rouges). La case cochéée Afficher les zones de prise de vue sur l'image permet de visualiser les zones détectées sur la vidéo, tandis que les points de référence utilisés pour l'alignement sont indiqués par des points bleus, ce qui permet de voir sur quoi le programme se base.
Zone d'alignement : cadre orange – zone de la carte avec les composants (3000 points de référence), zones vertes – zones d'inspection C30 et BR1, qui ne sont pas incluses dans le cadre.
Zone d'alignement : cadre orange – zone de la carte avec les composants (3000 points de référence), zones vertes – zones d'inspection C30 et BR1, qui ne sont pas incluses dans le cadre.
Image après alignement : les zones sont identifiées sur leurs composants et étiquetées "normal", les lignes bleues – les limites de la zone d'alignement, les points bleus – les points de référence correspondants sur les composants de la carte (ils ne sont pas inclus dans la zone).
Image après alignement : les zones sont identifiées sur leurs composants et étiquetées "normal", les lignes bleues – les limites de la zone d'alignement, les points bleus – les points de référence correspondants sur les composants de la carte (ils ne sont pas inclus dans la zone).
Modèle d'alignementQuand choisir
Voiture (recommandé)La carte est alignée de manière rigide (déplacement, rotation, mise à l'échelle) ; la perspective n'est prise en compte que si elle s'aligne de manière significative. Précision sur une petite zone d'alignement : 1–2 px.
RigideLa caméra regarde directement de haut, la carte est plate. La solution la plus stable, si la zone d'alignement est petite.
PerspectiveLa caméra est inclinée ou la carte est inclinée. Nécessite une grande zone avec des points sur toute la largeur, sinon la homographie est déformée.

La touche Référence avec zones ouvre la référence enregistrée avec le maillage et les numéros de zones (section 4.8). La plaque trouvée est vérifiée pour être logique : une superficie comprise entre 0,5 et 2 unités de référence, un quadrilatère concave, et les points de support doivent occuper au moins un quart de l'aire dans chaque axe – sinon, le résultat est rejeté et un message s'affiche dans la console : « Plaque non trouvée ».

Important. Si auparavant, les zones "définies" étaient identifiées avec un nombre limité de zones par image, la raison en était que la détection se faisait au niveau des zones elles-mêmes. Il est donc nécessaire de refaire la référence en utilisant la zone d'alignement des composants de la carte : le nombre de zones détectées sur la carte de ce manuel a augmenté de 46 à 51 à 106 à 112, sur un total de 134.

4.5. Capture par zone : "normal" et ses données synthétiques

Bouton ZONE-PAIRE : prise de vue par zones : cette fonction permet de découper l'image en zones, de sélectionner chaque zone et de la classer dans la catégorie zone_NNN, tout en ajoutant des données synthétiques normales. Les données synthétiques normales ne sont pas un défaut, mais plutôt une variation due à des facteurs tels que la position incorrecte du capteur, une lumière différente, ou un bruit provenant du capteur.

"ZONE-PAIRE : prise de vue par zone" : nombre de variations, prises de vue par temps, part dans val, décalage/rotation/mise à l'échelle de la zone par rapport à l'image entière, avec sélection "où", éclairage et bruit, compteur de fichiers final. La fenêtre s'étend avec la souris.
"ZONE-PAIRE : prise de vue par zone" : nombre de variations, prises de vue par temps, part dans val, décalage/rotation/mise à l'échelle de la zone par rapport à l'image entière, avec sélection "où", éclairage et bruit, compteur de fichiers final. La fenêtre s'étend avec la souris.
ConfigurationQu'est-ce que cela fait et quelles sont les options par défaut ?
Des options synthétiques pour chaque zone.Combien de fichiers synthétiques créer par motif ? Il est recommandé d'en créer 20, voire 500 au maximum, en incluant uniquement les références.
Images prises successivement : chaque variante provenant d'un nouveau cliché de la caméra.Inclus, période de 800 à 1200 ms (sans tenir compte du temps d'exposition). Chaque option est prise à partir d'un nouveau cliché réel : le bruit, les vibrations et le scintillement de la caméra sont reproduits, plutôt que d'être dessinés.
Chaque option est également associée à une probabilité, en pourcentage.20 %. La référence doit toujours se trouver dans « val » : selon Ultralytics, chaque classe doit être présente dans les deux dossiers.
Enseigner en nuances de grisCouleur supprimée des modèles "normal", "anomalie" et "inspection". Il est impossible de mélanger des fichiers de couleurs et gris dans un même modèle ; le programme affichera un avertissement.
Déplacement, pixels · vers où ?La zone de décalage se déplace sur l'ensemble de l'image de 0…2 px dans les directions spécifiées (← → ↑ ↓) ; la bande manquante est prise de la zone adjacente de la carte, et le découpage reste uniforme. La case à cocher toutes les directions permet de spécifier une direction par fichier, tandis que une direction aléatoire correspond à un seul fichier.
Angle, ° · vers quel pointPar défaut, il est désactivé : il n'y a pas de rotation, même lorsque l'image est alignée sur une zone spécifique, et l'activation brouille la limite avec le défaut. Les options « gauche / droite », « toutes les directions / une direction aléatoire » fonctionnent de la même manière que pour le décalage.
Échelle, % · diminution / augmentationPar défaut, il est désactivé. Deux cases à cocher correspondent à deux options : réduction (<100) et augmentation (>100, la zone cible prend des éléments du cadre). Chaque case cochée correspond à un fichier spécifique.
Luminosité / Contraste / GammeValeur aléatoire dans la plage pour chaque option : luminosité de 88…112, contraste de 88…112 %, gamme de 98…102 % (sur l'image) ; dans le profil « Déplacement des éléments », la luminosité est plus large pour éviter qu'elle ne devienne un indicateur.
Bruit (sigma) / FlouGranularité du capteur de 3…8 niveaux, léger flou de 0,4…0,8 px.
Colonne « général »Avec la case cochée, l'élément est inclus dans le fichier général avec les autres ; sans elle, il crée un fichier « référence + uniquement cet élément ». Plus il y a d'éléments individuels, plus il y a de fichiers par option.
1
Cliquez sur ZONE-PAIRE : capture par zones. La ligne en bas de la fenêtre affiche les informations suivantes : "Pour la variante : 1 fichier. Par zone : 21 pour l'entraînement, environ 5 pour la validation. Au total, environ 52 fichiers pour une seule capture." "Nombre de photos prises par la caméra : 20, environ 16 avec." (pour deux zones).
2
Sélectionnez le profil : Par défaut (déplacement : 0–2 px, luminosité : ±5, contraste : 95–105 %), Déplacement des éléments (déplacement : 0–1 px, luminosité : -10…10) ou Couleur et saturation (déplacement : 0–2 px, luminosité : ±2, contraste et gamme désactivés, afin que la teinte reste un indicateur).
3
Cliquez sur Annuler. La génération se déroule en arrière-plan, avec une fenêtre de progression indiquant "zones 1/2 · fichiers 26 · image 4/20" et un bouton d'annulation. Une fois terminée, le message suivant s'affiche : "Terminé : 2 zones → classes zone_001…zone_002, fichiers : 52". Le programme configure immédiatement les paramètres d'apprentissage pour la carte : Taille de l'image 128, Taille du modèle s, Nombre d'époques 50, Taille du lot 64 (section 4.9).
4
Répétez la prise de vue sur plusieurs cartes différentes et fonctionnelles en utilisant la même commande. Pour un modèle fiable, il est nécessaire d'avoir au moins 80 fichiers par classe, et surtout, plusieurs exemplaires réels (5 à 10 cartes), plutôt qu'une seule image avec des centaines de variantes.
train\zone_001 — un C30 standard sur le conducteur : real_… provenant de la caméra et syn_…_n1…n20 avec des suffixes de décalage (shiftd, shiftl, shiftr, shiftu). L'étiquette est toujours positionnée correctement par rapport à la base.
train\zone_001 — un C30 standard sur le conducteur : real_… provenant de la caméra et syn_…_n1…n20 avec des suffixes de décalage (shiftd, shiftl, shiftr, shiftu). L'étiquette est toujours positionnée correctement par rapport à la base.
trainzone_002 — BR1 standard : real_… avec trois voies et des variantes avec un léger décalage (rotl, rotr).
trainzone_002 — BR1 standard : real_… avec trois voies et des variantes avec un léger décalage (rotl, rotr).

4.6. Données synthétiques : défaut détecté en deux clics : l'élément se déplace avec la base.

Sur la base de cette observation. Le modèle apprend particulièrement bien lorsque, à titre d'exemple, il est présenté non pas une tache non dessinée, mais l'élément inspecté lui-même, ainsi que les composants de la carte autour de celui-ci: les lignes d'impression, les pistes, la couleur et la texture de la carte mère. Le programme réduit la zone d'observation à la taille de l'élément, puis déplace ou tourne cette zone, en remplissant le bord avec des pixels de l'image. Par conséquent, l'élément n'est plus à sa place par rapport à la carte mère: exactement ce que voit l'opérateur lors d'un défaut réel, avec le bruit réel du capteur, la lumière réelle et la carte mère réelle.

Une zone "normale" et une zone "anormale" ne se distinguent que par la position de l'élément par rapport à la base. Le reste est identique, c'est pourquoi le réseau apprend les relations "élément ↔ carte", et non les nuances de la tache ou l'éclairage.

Deux clics :

1
ZONE-PAIRE : image par zonesCapturer. Les extraits normaux de chaque zone, avec 20 variations de cadrage (déplacement de la fenêtre de 0 à 2 px, luminosité, bruit), sont classés dans les catégories zone_NNN.
2
ZONE-PAIRE : anomalies de zoneCréer. Les paramètres par défaut incluent déjà les deux types de décalage : décalage de la zone de 5 à 12 px dans toutes les directions et rotation de la zone (70 % de la zone, cercle) de 15 à 180°. Les fichiers sont placés dans les classes zone_NNN_anomaly.

Il n'y a plus rien à configurer : il ne faut ni dessiner de défauts, ni rechercher des cartes défectueuses. Ensuite, ENTRAÎNER LE MODÈLE D'IA.

Avant et après : ce que réalise le programme

AVANT : image d'une carte fonctionnelle. Les deux zones sont vertes (« normal »).
AVANT : image d'une carte fonctionnelle. Les deux zones sont vertes (« normal »).
APRÈS : les mêmes zones sont remplacées par des données synthétiques provenant des dossiers d'anomalies : C30 est déplacé vers la droite et vers le bas, BR1 est pivoté. Les deux zones sont rouges (« anomalie »). De même, la carte apparaîtra avec un défaut réel sur la ligne.
APRÈS : les mêmes zones sont remplacées par des données synthétiques provenant des dossiers d'anomalies : C30 est déplacé vers la droite et vers le bas, BR1 est pivoté. Les deux zones sont rouges (« anomalie »). De même, la carte apparaîtra avec un défaut réel sur la ligne.
Grand, zone 1 (C30) : à gauche, normal, prise de vue ; à droite, données synthétiques : le détail avec la base est déplacé vers le bas et vers la droite, le bord est rempli par les éléments de l'image.
Grand, zone 1 (C30) : à gauche, normal, prise de vue ; à droite, données synthétiques : le détail avec la base est déplacé vers le bas et vers la droite, le bord est rempli par les éléments de l'image.
Grand, zone 2 (BR1) : à droite, la zone du détail est tournée de 180 ° : les surfaces sont à leur place, le corps ne regarde pas dans la bonne direction.
Grand, zone 2 (BR1) : à droite, la zone du détail est tournée de 180 ° : les surfaces sont à leur place, le corps ne regarde pas dans la bonne direction.

Dossiers des anomalies, tels qu'ils sont perçus par l'utilisateur

Comparez avec les dossiers "normal" de la section 4.5 : la seule différence est la position de la pièce par rapport à la base.

train\zone_001_anomaly — défaut C30. Chaque copie de t000, t001… contient neuf fichiers : combo1_d, _dl, _dr, _l, _r, _u, _ul, _ur – la zone est décalée de 5 à 12 px dans huit directions (d = vers le bas, u = vers le haut, l = vers la gauche, r = vers la droite), rotate1 – la zone du condensateur est tournée.
train\zone_001_anomaly — défaut C30. Chaque copie de t000, t001… contient neuf fichiers : combo1_d, _dl, _dr, _l, _r, _u, _ul, _ur – la zone est décalée de 5 à 12 px dans huit directions (d = vers le bas, u = vers le haut, l = vers la gauche, r = vers la droite), rotate1 – la zone du condensateur est tournée.
train\zone_002_anomaly – défaut BR1 : le châssis a été déplacé sur chaque une des huit faces et orienté à un angle aléatoire. La texture de la carte et des points de contact est authentique.
train\zone_002_anomaly – défaut BR1 : le châssis a été déplacé sur chaque une des huit faces et orienté à un angle aléatoire. La texture de la carte et des points de contact est authentique.
Comment identifier les noms de fichiers. syn_<date>_t003_combo1_dr.jpg – Copie 3, fichier général, décalage vers le bas (d = bas, r = droite, u = haut, l = gauche) ; …_rotate1.jpg – Rotation de la zone de l'élément ; …_scale1_dn/_up – Mise à l'échelle vers le haut ou vers le bas ; …_tl/_c/_br – Position de la zone (coin, centre). Le nom permet de déterminer précisément quel défaut se trouve dans le fichier, et l'élément supplémentaire est supprimé en cliquant sur le bouton « Supprimer les données synthétiques de la classe (entraînement + validation) » dans la fenêtre des zones.

Marquage des pièces : pourquoi la rayure est "grasse" et comment cela est configuré

Les corps des pièces sont marqués : il y a des inscriptions et des traits d'une épaisseur de 1 à 2 px. Ces marquages varient d'une série à l'autre : une autre police, l'inscription sur le condensateur est orientée différemment, certains symboles sont effacés. Si un défaut de fabrication, tel qu'une "rayure", est reproduit avec une ligne aussi fine, le système ne pourra pas la distinguer du trait de marquage et du bruit du capteur, et commencera à rejeter les cartes provenant d'une autre série de pièces.

Les données synthétiques ZONE-PAIRE permettent de gérer cela de deux manières. Premièrement, le défaut principal, le déplacement de l'élément, transfère également l'étiquette avec le corps, de sorte que l'étiquette ne devient plus un indicateur : elle apparaît de la même manière, que dans le cas normal ou anormal. Deuxièmement, la ligne/rayure dessinée est par défaut épaisse (⅛ de la zone, pas moins de 3 px) et ne ressemble clairement pas à une ligne d'étiquetage. L'épaisseur est désormais définie explicitement : le champ Épaisseur de la ligne, px (0 = automatique) s'applique à la ligne et au croix.

Les défauts dessinés (rectangles, cercles, lignes, « élément disparu », tache floue et autres) sont regroupés dans un groupe déroulable Défauts synthétiques sur le motif. Par défaut, il est déroulé et désactivé : le défaut principal sur la carte est le décalage. Activez-le pour des tâches spécifiques : zone inondée, goutte supplémentaire, étiquette effacée.

Paramètres des formesCe que cela définit
Taille : de … à, % de la zone / pxTaille ou longueur de la forme. En pourcentage, en fonction de la plus petite dimension de la zone (proportionnellement à n'importe quelle zone) ; en px, identique sur toutes les zones, pratique lorsque la taille réelle de la défaut en pixels de l'image est connue.
RemplissageUni / contour / mélange (le contour est également "gras").
Épaisseur de la ligne, pxLigne / rayure et croix. 0 = automatique (gras). Pour le marquage des pièces, ne descendez pas en dessous de 3 px.
Où se trouve le défautAu centre, à gauche, à droite, en haut, en bas : indiquez où placer la figure (avec une légère dispersion aléatoire). La case "toutes les positions" génère un fichier pour chaque position sélectionnée ; la case "une position aléatoire" génère un seul fichier, avec une position choisie aléatoirement parmi les positions sélectionnées. Le compteur de fichiers en bas de la fenêtre tient compte de cela immédiatement.
Couleurs des formes : 5 emplacementsCinq emplacements au lieu d'une liste de noms. Une case à cocher indique si l'emplacement est actif. La couleur est choisie aléatoirement parmi les emplacements sélectionnés (environ 12 couleurs par canal, pour éviter une seule teinte). Un bouton permet de choisir une couleur dans la palette, et un outil de sélection de couleur (pipette) permet de prélever une couleur directement à partir de l'image de la caméra (la molette permet de zoomer, le bouton droit permet de panoramiquer) pour échantillonner une couleur d'un détail ou d'une carte. Par défaut, deux emplacements sont activés : un sombre et un clair, tandis que les trois autres sont désactivés.
Colonne « général »La forme de défaut marquée est enregistrée dans un fichier commun, ainsi que d'autres « formes communes » (par exemple, une rayure sur un élément déplacé). Sans coche, il s'agit d'un fichier distinct « normal + uniquement ce défaut ». La forme « toutes les positions » est toujours distincte.

4.7. Anomalies de zone : fenêtre des paramètres

Le bouton ZONE-PAIRE : anomalies des zones crée des classes zone_NNN_anomaly à partir des zones normales. Toutes les zones sont prises en compte, à l'exception de celles qui sont rouges (désactivées par un clic dans la section "Modèle d'IA", point 4.3). Les classes d'anomalies ne sont pas nécessaires partout : ajoutez-les aux zones où les défauts sont réellement présents, et laissez le modèle vérifier les autres zones par reconnaissance.

La fenêtre « ZONE-PAIRE : anomalies de zone » : copie du défaut en haut ; groupe de formes dessinées avec des paramètres, une position et une palette, qui peut être replié ; décalage, rotation et mise à l'échelle de la zone avec la forme de la zone et un facteur ± % ; sous-zones ; éclairage sur le défaut ; captures d'écran par temps et valeur.
La fenêtre « ZONE-PAIRE : anomalies de zone » : copie du défaut en haut ; groupe de formes dessinées avec des paramètres, une position et une palette, qui peut être replié ; décalage, rotation et mise à l'échelle de la zone avec la forme de la zone et un facteur ± % ; sous-zones ; éclairage sur le défaut ; captures d'écran par temps et valeur. La fenêtre s'étend avec la souris.
ConfigurationQue fait
Copie du défautUn seul nombre pour tous les types : combien de copies avec de nouveaux paramètres aléatoires créer pour chaque type spécifié (par défaut : 10).
▸ Défauts synthétiques sur la zone découpéeGroupe par défaut : rectangle, petits rectangles, cercle, ellipse, triangle, huit, ligne/trace, croix, `élément manquant`, tache floue, patch de bruit, morceau d'une autre zone. Les paramètres des formes, la position et la palette sont décrits dans la section 4.6.
Déplacement, px · emplacement · formePrincipal défaut de la carte. La zone (cercle ou carré) se déplace de 5 à 12 pixels dans les directions spécifiées : ← → ↑ ↓ et les deux diagonales ⤡ ⤢. Échelle verticale / horizontale, ±% – taille de la zone par rapport à la zone : 0 – toute la zone, -30 – zone 30 % plus petite (uniquement l'élément est déplacé, la base reste), +30 – zone plus grande que la zone (inclut les éléments voisins de l'image). Toutes les directions – pour chaque côté, selon le fichier.
Rotation, ° · formeLa zone (cercle ou carré, même échelle ±%) est tournée à un angle aléatoire dans la plage des deux côtés.
Échelle, % · diminution / augmentationLa zone comme défaut : réduction de 60 à 85 % ou augmentation de 120 à 160 %. Chaque côté spécifié correspond à un fichier. Généralement désactivé sur la carte.
« Général » pour le déplacement et la rotationSi les deux cases sont cochées, cela signifie qu'il s'agit d'un seul élément dans un seul fichier : le décalage et la rotation sont appliqués par une seule transformation (et non séquentiellement, car cela entraînerait un résultat confus). L'échelle et la forme de la zone sont communes et sont définies lors du décalage.
▸ Sous-zonesLa zone est divisée en 2, 4 ou 9 parties, et à l'intérieur de chaque partie, la zone est tournée ou déplacée ; la case « un fichier par sous-zone » permet d'obtenir un fichier par partie. Nécessaire pour les grandes zones avec plusieurs éléments.
Éclairage et bruit sur chaque fichier de défautActivé et égal à normal : le défaut doit se manifester par sa géométrie, et non par la lumière.
Captures d'écran par temps / dans valChaque copie à partir de la nouvelle image de la caméra (800 ms), 20 % dans val, le premier fichier de la classe dans val est toujours présent.
1
Cliquez sur ZONE-PAIRE: anomalies des zones. Le résultat est précalculé : « Zone : 2 · sur copie : 2 fichiers · sur zone : 20 · total ≈ 40 (+ partie dans val) ». Avec « toutes les directions », le déplacement des fichiers sur copie devient de neuf, comme dans les dossiers précédents.
2
Sélectionnez le profil : Par défaut (déplacement de la zone de 5–12 px + rotation de la zone, des formes et des sous-zones, les éléments sont pliés et désactivés), Déplacement des éléments (uniquement un déplacement de 4–12 px, avec une couleur normale) ou Couleur et texture (formes, "élément disparu", couleurs de la palette, sans déplacement). La fenêtre se souvient immédiatement de vos modifications, à chaque clic.
3
Cliquez sur Créer. Les classes zone_NNN_anomaly apparaîtront dans l'arborescence du modèle. Pour ajouter un défaut détecté à une classe spécifique, utilisez la fonction ROI (région d'intérêt) et sélectionnez "Ajouter à la classe".
Important. La limite inférieure du glissement synthétique (5 px) se situe juste au-dessus de la plage normale (0–2 px). Ne pas étendre la plage normale à 5 px et ne pas réduire l'anomalie à 2 px : la limite disparaîtra et le modèle oscillera sur les cartes réelles. Si vous souhaitez une sensibilité différente, ajustez les deux limites de manière cohérente et convertissez-les en millimètres (section 1.3).

4.8. Référence avec les zones : les points de soudure et l'éditeur de zone

Le bouton "Référence avec zones" ouvre la référence de la carte avec la grille. Ici, les données synthétiques sont créées sans caméra : la molette permet de zoomer, le bouton droit permet de faire une panoramique, le bouton gauche permet de sélectionner des zones (Ctrl pour ajouter, la molette pour délimiter avec une boîte, Ctrl+A pour tout sélectionner), et un double clic ouvre l'éditeur de zone.

  • Pièces de soudure pour les zones sélectionnées… – Fenêtre « Pièces de soudure : court-circuit entre les pistes ». Le programme identifie automatiquement les pistes dans la zone (limite d'Ots, bandes claires d'une largeur ≥ 2 px), et applique une goutte de soudure dans l'espace entre les pistes, en utilisant la couleur des pistes, avec un bord sombre et un reflet. Paramètres : entre les pistes verticales ou horizontales, les pièces de soudure sur les images 1 à 3, une taille de 8 à 18 % de la zone, les images pour la zone (5), à appliquer : dans l'anomalie ou dans la normale, l'éclairage de la surface, dans « val » : une nouvelle image avec un éclairage différent ou une copie exacte.
  • Outil de zone: Pinceau, Pipette, Stain de couleur, Copier la zone, Insérer, Tampon, Zone de composants; palette « soudure / espace », « carte », « ombre / masque », blanc, noir; champ « Copier » et bouton Créer une image. Ainsi, on peut dessiner un défaut qui n'existait pas encore sur la ligne : une zone inondée, un élément supplémentaire, une étiquette manquante.

Les fichiers de l'éditeur portent des noms tels que `edit_…` et sont placés dans une zone ou une anomalie de zone. Dans l'onglet "Inspect", la même fenêtre est ouverte uniquement pour la visualisation.

4.9. Entraînement du modèle

La section «Paramètres d'apprentissage» sur l'onglet «Modèle d'IA» est automatiquement remplie après la première prise de zone : Taille de l'image 128, Taille du modèle s, Époques 50, Lot 64. Ces valeurs correspondent aux zones de 108–137 pixels. Pour les zones de 256 pixels, comme dans l'exemple, utilisez une taille d'image de 192 ou 256 pixels – dans ce cas, la découpe ne sera pratiquement pas compressée (les valeurs «Époques 100» et «Taille de l'image 192» sont affichées dans la fenêtre principale). Vérifiez les valeurs et cliquez sur «TRAINER LE MODÈLE D'IA».

ParamètreQue signifie cela ?Comment choisir ?
EpochsCombien de fois le modèle parcourra l'ensemble des données ?50 pour la carte par défaut ; 100–150 si le nombre de classes anormales est élevé
Batch SizeCombien d'images par étape ?64 ; si la mémoire vidéo est insuffisante, réduisez-la
Image SizeÀ quelle taille sont réduites les découpes, en multipliant par 32Taille approximative de la zone : 128 pour la zone de 108–137 px ; 192–256 pour les zones de 256 px, comme dans l'exemple
Model Sizen / s / m / l / xs — optimal pour des centaines de paires de classes ; n manque de capacité, m et supérieur — plus lent
Devicesur quoi entraîner0 (GPU) avec une carte NVIDIA ; sans CUDA, le programme basculera automatiquement vers le CPU
Workersnombre de threads pour la préparation des données12 par défaut pour un processeur multicœur
1
Avant le démarrage, le programme vérifie la configuration : il propose de supprimer les classes vides, les dossiers inutiles dans val, et de remplir val là où il est vide. Lors du premier lancement, l'environnement d'entraînement (Python 3, les paquets ultralytics, onnx, onnxslim, onnxruntime) est installé – une connexion internet et quelques minutes sont nécessaires.
2
Pour le modèle ZONE-PAIRE, l'entraînement se fait sans erasing, flip, crop et randaugment : ces augmentations entrent en conflit avec les classes d'anomalies (une zone inversée est déjà une autre zone). La ligne correspondante s'affiche dans la console.
3
Le bouton devient rouge ARRÊTER LE MODE IA, et l'anneau à droite indique le pourcentage par époque. L'évolution de l'apprentissage est visible dans la console. Pour deux zones et 100 époque sur une carte graphique, cela prend environ 10 à 15 minutes.
4
Une fois le processus terminé, le programme exporte best.onnx vers le répertoire racine du modèle et l'assigne immédiatement à l'inspection. Le bouton "Exporter vers ONNX" effectue l'exportation sans nécessiter de réentraînement.
Conseil. La formation supplémentaire, après l'ajout d'un défaut ou de nouvelles plateformes, se fait en utilisant le même bouton : l'ensemble de données est complété, puis le modèle d'IA est entraîné best.onnx Elle est en cours de réécriture. Veuillez ne pas modifier la structure.

5. Inspection

Tout le travail se déroule dans l'onglet "Inspect". Le modèle a déjà été entraîné ; il reste à vérifier les zones, à définir le seuil, à choisir la source de fréquence et, si la carte fonctionne dans n'importe quelle position, à activer le mode de fonctionnement continu.

Dans le module "Inspect" : modèle model_4\best.onnx, ligne "Catégories d'inspection : CARTE - zone 2, 2 anomalies. La zone N est résolue dans la paire zone_N / zone_N_anomaly, seuil de 50 %, bande transporteuse active avec un intervalle de 2000 ms et un indicateur "normal · 112 points"
Dans le module "Inspect" : modèle model_4\best.onnx, ligne "Catégories d'inspection : CARTE - zone 2, 2 anomalies. La zone N est résolue dans la paire zone_N / zone_N_anomaly, seuil de 50 %, flux en direct avec une période de 2000 ms et un indicateur "normal · 112 points", source de vitesse et des cases "GPU" et "Analyse en niveaux" en bas de l'écran. Sur l'image, les deux zones sont vertes - "normal".

5.1. Définir le modèle et vérifier les zones

1
Si le modèle n'est pas sélectionné, cliquez sur «CHOISIR un modèle ONNX pour l'inspection» et spécifiez le chemin du dossier contenant le modèle dans le champ best.onnx. La ligne «Classes d'inspection» affichera toutes les classes ; les noms sont extraits directement du fichier ONNX, de sorte que les numéros de sortie correspondent toujours aux noms.
2
Cliquez sur ZONE-PAIRE : zones ↔ modèle (vérifier le seuil). La fenêtre affiche : «Nombre de zones dans la grille : 2 / Nombre de classes zone_NNN dans le modèle : 2, nombre de classes d'anomalies : 2 / Chaque zone de la grille possède sa propre classe ✔». Les avertissements «Zones sans classe dans le modèle» ou «Classes sans zone dans la grille» indiquent que la grille a été modifiée après l'entraînement.
3
NE PAS UTILISER L'IA désactive temporairement l'analyse sur cette caméra, sans supprimer les paramètres (chaque caméra conserve son propre indicateur); SUPPRIMER LE MODÈLE supprime le modèle et les emplacements.

5.2. Seuil de reconnaissance de la zone

Pour chaque zone, le réseau attribue des probabilités à toutes les classes, mais la décision est prise uniquement au sein de la paire. La proportion « normalité » est calculée comme suit : q = p(zone_N) / (p(zone_N) + p(zone_N_anomaly)), et est multipliée par le « taux de reconnaissance » – c'est-à-dire le degré auquel la paire a effectivement utilisé le port. Un taux de reconnaissance de 10 % ou plus correspond à une reconnaissance complète. La valeur finale (de 0 à 100 %) est ensuite comparée à un seuil : si elle est supérieure, la valeur est considérée comme « normale » (normal), sinon, elle est considérée comme une « anomalie » (anomaly).

La valeur par défaut est de 50 %, elle est stockée dans `board.json` à côté du modèle et s'applique immédiatement, sans redémarrage. En dessous de 50 %, la limite se déplace progressivement vers la normale : 25 % → seuil à 6 %, 10 % → 0,4 %, 1 % → presque entièrement vert ; 99 % ne filtre que les zones de confiance. Cette échelle est nécessaire pour que l'opérateur puisse distinguer la différence entre 5 % et 99 %, et non des zones entièrement rouges.

Conseil. Définissez un seuil sur une dizaine de cartes déjà testées : augmentez-le progressivement jusqu'à ce que toutes les zones apparaissent en vert, puis vérifiez sur les cartes présentant des défauts connus. Le programme enregistrera ensuite, toutes les 10 secondes, dans la console la ligne « [ZONE-PAIRE] … état normal N, anomalie M, seuil 0,50 ; valeurs les plus basses : z17:0,31 … » – ce qui permet de déterminer quelles zones sont les plus proches de la limite.

5.3. Pipeline en direct : la carte dans n'importe quelle position

«Galoche Conveyor dynamique : recherche de carte en fonction de la position comprend la recherche de la carte en fonction de la zone d'alignement avant chaque analyse : l'image est alignée avec la référence, les zones sont délimitées à partir de l'image alignée, et les limites des zones (vertes = normal, rouges = anomalie) sont dessinées sur la vidéo. Le champ Période, ms définit la fréquence de recherche de la carte (par défaut : 1000, sur l'image : 2000). L'indicateur à côté indique : «NORMAL · N points», «ANOMALIE · N points», «CARTE NON TROUÉE» ou «PAS DE RÉFÉRENCE – Veuillez enregistrer». Le verdict est basé sur une seule analyse, sans accumulation.

La référence et la zone d'alignement sont définies avec le même bouton « Définir la référence », comme lors de la prise de vue (section 4.4) ; « Référence avec zones » permet de les visualiser. Sur la vidéo, les limites de la zone d'alignement et les points de référence bleus sont dessinés, à partir desquels la carte a été alignée. Les zones qui dépassent des bords de l'image après l'alignement sont ignorées et marquées avec SKIP.

5.4. Sur quel signal analyser

La source du rythme est toujours la même : lors de l'ajout d'un nouveau, le programme supprime l'ancien.

MéthodeComment activerQuand l'utiliser
Par caméraCase "Par caméra"Contrôle continu ; le rythme est limité par le curseur "Analyse par seconde" dans l'onglet "Caméra"
Par minuterieCase "Par minuterie" et intervalle en msContrôle irrégulier, par exemple une fois par seconde
Par déclencheurSélectionner la connexion dans la liste "Déclencheur" et le front "analyse avec + en entrée" ou "avec -"Chaîne avec capteur en entrée de la caméra : l'image est prise au moment de l'arrivée de l'objet – la méthode la plus précise (section 6)
GPUCaseco «GPU»Actif par défaut ; bascule réinitialise le modèle
Analyse en niveaux de grisCaseco «Analyse en niveaux de gris»Actif automatiquement pour les modèles entraînés en niveaux de gris ; les zones sont converties en niveaux de gris avant l'inférence

5.5. Zones jaunes : désactiver une zone en cliquant

Sur la ligne, il peut être nécessaire de désactiver temporairement certaines zones : l'élément n'est pas présent sur cette version, la zone est bloquée par un dispositif, et des tests sont en cours. Pour cela, il n'est pas nécessaire de modifier le maillage ou le modèle ; les zones sont désactivées directement sur la vidéo, uniquement dans l'onglet "Inspect".

1
Cliquez avec le bouton gauche sur la zone de la caméra : la zone deviendra jaune et sera exclue de l'analyse. Un deuxième clic la réactive.
2
Groupe de zones : maintenez la touche gauche enfoncée et faites glisser le cadre sur la carte. Toutes les zones qui entrent dans le cadre sont désactivées ; si elles étaient déjà jaunes, le cadre les réactive. Cela fonctionne également lorsque vous faites défiler avec la molette.
3
La liste des zones jaunes est stockée dans la base de données par caméra et par modèle, et est conservée après le redémarrage du programme et la reconnexion de la caméra. La ligne «[Zones] … désactivées : N » s'affiche dans la console.

La fonction des zones jaunes est définie par la case à cocher générale "Les zones jaunes (désactivées par un clic) sont silencieuses" dans l'onglet "Audio" (activée par défaut).

CasecoComportement des zones jaunes
Actif (par défaut)La zone n'est pas analysée : la zone n'est pas envoyée sur le réseau, l'étiquette «OFF» est affichée, il n'y a ni transmission TCP, ni sortie de caméra. Dans un flux en direct, la zone jaune n'affecte pas le verdict «normal / anomalie».
ÉteintLa bordure jaune ne sert qu'à indiquer : la zone est analysée et fonctionne normalement. C'est pratique pour marquer les zones à vérifier, sans interrompre le contrôle.
Conseil. Il est inutile de désactiver les règles d'éjection dans les zones jaunes : lorsque la case correspondante est cochée, elles ne produisent aucun résultat, et après avoir été décochée, la zone reprendra immédiatement son fonctionnement.

5.6. Ce que l'on voit à l'écran et dans la console

  • Le résultat est indiqué pour chaque zone. Le contour de la zone est de la même couleur que celle de la table, et lorsqu'un déclencheur est activé, il devient rouge. Lorsque le nombre de zones dépasse 50, la zone normale est affichée uniquement avec un contour vert, tandis que les zones anormales et incertaines sont affichées avec des contours différents. Un grand nombre de légendes sur chaque image rendait la lecture difficile et surchargeait le rendu. Les zones jaunes sont désactivées en cliquant (section 5.5).
  • La section «Analyse par déclencheur» située en bas de l'onglet affiche chaque action sous forme de ligne : [hh:mm:ss.mmm] Caméra d'entrée + DÉCLENCHEUR 4 ms | IA 12 ms #57 ainsi que le résultat pour chaque zone. Ces lignes ne sont pas enregistrées dans la base de données.
  • Clic droit sur la zone dans la vidéo : « Définir la catégorie de détection pour cette zone → renommer la réponse du modèle pour cette zone (ne modifie pas le modèle, mais l'éjecteur et le journal afficheront le nouveau nom) » ; également, « Définir l'éjecteur pour cette zone » et le compteur de règles.
  • Cocher la case "Conserver les images de l'inspection" et le dossier : les images avec les zones dessinées sont enregistrées sous forme de fichiers inspect_….jpg. Les paramètres varient pour chaque caméra.
  • Tous les 10 minutes, un nouveau dossier, nommé `diag`, est créé pour la modélisation. Ce dossier contient une image de la chaîne de production et une liste de zones, ainsi que les 20 dernières images, afin de faciliter l'analyse des cas litigieux sans avoir à agrandir le dossier.

6. Détecteurs : capteur externe sur l'entrée de la caméra

Mode principal pour la ligne de production : la caméra capture une image grâce au signal électrique d'un capteur sur son entrée discrète. C'est le moment de capture le plus précis : l'objet est toujours au même endroit dans l'image, et l'analyse est effectuée une seule fois pour chaque objet. La fenêtre "SÉRIE DE CAPTEURS" collecte la communication "capteur → caméra" et dessine un schéma de connexion pour le connecteur sélectionné.

Fenêtre « DÉTECTEURS » pour HIKROBOT (6 broches) : capteur PNP, signal vers la broche 2, broche commune 5, schéma de câblage.
Fenêtre « DÉTECTEURS » pour HIKROBOT (6 broches) : capteur PNP, signal vers la broche 2, broche commune 5, schéma de câblage.
Le même pour SICK picoCam (6 broches) : signal vers la broche 4 (Détecteur +), broche commune 3 (Détecteur -).
Le même pour SICK picoCam (6 broches) : signal vers la broche 4 (Détecteur +), broche commune 3 (Détecteur -).
1
Cliquez sur DÉCLENCHEURS au-dessus de la vidéo. Sélectionnez Matériel du déclencheur (dans la liste, choisissez le capteur optique BAOLSEN QAF-Q2P, 4 fils ; tout autre capteur avec une sortie PNP ou NPN peut être connecté de la même manière), Connecteur de la caméra (HIKROBOT 6 broches ou SICK picoCam 6 broches), Caméra (précisez le modèle) et Type de sortie du capteur : PNP (le signal commute le "plus", cas le plus courant), NPN (le signal commute le "moins"), une résistance de 1 à 4,7 kΩ est nécessaire sur +24 V.
2
Assemblez le schéma selon le dessin : alimentation du capteur et de la caméra à partir d'un bloc de 24 V, fil de signal du capteur vers l'entrée de la caméra, fil de retour de l'entrée vers 0 V. Le fil blanc du capteur est la deuxième sortie, il n'est pas connecté.
3
Cliquez sur « Établir la connexion ». La connexion est enregistrée dans la base ; les connexions identiques ne sont pas dupliquées. Le bouton « Supprimer la connexion » permet de la supprimer.
4
Dans l'onglet Inspect, sélectionnez la connexion dans la liste Trigger et le front : "Analyse + en entrée" (image à la détection de 24 V) ou "Analyse - en entrée". Le programme met la caméra en mode déclencheur : chez HIKROBOT, TriggerMode = On, TriggerSource = Line0, chez SICK, il arrête la saisie, active le mode et redémarre. Le cercle à côté indique le niveau en entrée.

Schéma de câblage des connecteurs

BrocheHIKROBOT MV-CS, 6 pinSICK picoCam, 6 pin
1DC_PWR – Alimentation de la caméra : 9–24 VGND — alimentation de la caméra
2OPTO_IN — Entrée Line 0 (+), signal de déclenchementVCC — alimentation de la caméra (12–24 V)
3GPIO — Ligne 2, entrée ou sortieDéclencheur – entrée du déclencheur, optocoupleur (−)
4OPTO_OUT – Sortie de la ligne 1 (+)Signal d'activation + — entrée du signal d'activation, phototransducteur (+)
5OPTO_GND — optocouple générale, fil de retourFlash + — sortie discrète (+)
6GND — alimentation de la caméraFlash − — sortie discrète (−)
Important. Les connecteurs "père" sur la caméra et "mère" sur le câble sont symétriques. Le seul repère est la clé (une grande ouverture du contact) ; chez SICK, elle se trouve entre les contacts 1 et 6, et avec le connecteur, elle se dirige vers la droite. Identifiez les contacts du côté que vous tenez dans vos mains. Une erreur de connexion signifie que l'alimentation et la sortie sont connectées incorrectement : elles se trouvent côte à côte. Vérifiez la configuration de SICK en effectuant un test de continuité.
Conseil. Utilisez la mesure "avant" (+), et non "après" : sur un banc de test, la variation du temps d'image sur l'axe horizontal est de 4,2 ms, tandis que sur l'axe vertical, elle est de 40,7 ms. Vérification du capteur : la connexion entre le fil marron et le fil bleu doit toujours être de 24 V, ce qui alimente le circuit ; le signal se trouve entre le fil noir et le fil bleu, en coupant le faisceau. Si le signal ne change pas, placez une résistance de 2 à 10 kΩ entre le fil noir et le fil marron ; alors, 24 V↔0 V indique un circuit NPN.

7. Sorties : mécanisme d'éjection, sorties discrètes de la caméra et TCP

Le capteur transforme le résultat de l'inspection en une action. La règle est définie sur une zone spécifique (ou sur toutes les zones du modèle, de la classe ou des zones marquées), et elle est déclenchée lorsque le modèle détecte la classe spécifiée dans cette zone. Les actions possibles sont trois : l'envoi d'un paquet TCP au robot ou au PLC, le basculement de la sortie numérique de la caméra et l'alerte sonore pour l'opérateur. Chaque déclenchement est enregistré dans un journal.

7.1. Guide des SORTIES : contacts et vérification avec un multimètre

Le bouton "SORTIES" sur la vidéo ouvre une fenêtre d'aide qui ne permet pas de configuration : elle indique les contacts de sortie, comment les tester sans alimentation, et comment connecter une charge.

HIKROBOT — sortie Ligne 1 (optocoupleur) sur les broches 4 (+) et 5 (−), courant maximal de 25 mA.
HIKROBOT — sortie Ligne 1 (optocoupleur) sur les broches 4 (+) et 5 (−), courant maximal de 25 mA.
SICK picoCam — broche Flash (optocoupleur) sur les broches 5 (+) et 6 (−), 150 mA en continu.
SICK picoCam — broche Flash (optocoupleur) sur les broches 5 (+) et 6 (−), 150 mA en continu.
  • Sortie — « contact sec » de l'optocoupleur : il ne fournit pas sa propre tension, mais ne ferme que le circuit. Un alimentation externe est nécessaire.
  • Vérification avec un multimètre en mode Ω : Sortie ÉTEINTE — court-circuit (OL), MARÉE — centaines d'ohms. Le buzzer est muet dans les deux cas, veuillez consulter les chiffres. Si rien ne change, inversez les sondes, l'optocoupleur est polarisé.
  • Charge : +24 V → lampe → broche "+", broche "-" → GND. Pour HIKROBOT, la limite est de 25 mA : si la charge dépasse 27 mA, il faut réduire l'alimentation ou utiliser un relais intermédiaire. Pour SICK, la consommation est importante, la lampe de 20 à 30 mA peut être connectée directement.

7.2. Fenêtre OUTPUT : règle pour la zone

Le bouton SORTIE situé sur le panneau de droite (ou un clic droit sur la zone, puis "Créer un éjecteur pour cette zone") ouvre la fenêtre "SORTIE - Paquets TCP et sorties discrètes des caméras". À gauche, on trouve l'arborescence Caméras → modèles d'IA → classes → zones, avec des cases à cocher pour chaque zone. À droite, on trouve les onglets Règles de la zone, Journal des activations et Base de données.

Fenêtre OUTPUT : arbre des zones à gauche, liste des règles de la zone, groupe "Règle" et onglet TCP avec des paramètres.
Fenêtre OUTPUT : arbre des zones à gauche, liste des règles de la zone, groupe "Règle" et onglet TCP avec des paramètres.
1
Sélectionnez une zone dans l'arborescence (le titre à droite indiquera le chemin : Caméra USB HD → model_5 → 1 → Zone 1 (T1.C1)). Cliquez sur + Nouvelle TCP, + Nouvelle discrete ou + Nouvelle audio.
2
Dans le groupe "Règle", sélectionnez "Classe d'IA" qui doit être déclenchée (pour ZONE-PAIRE, cela peut être "anomalie" ou "normal"; "*" peut correspondre à n'importe quelle classe), cochez la case "Activé", et, si nécessaire, cochez "Répéter jusqu'à ce que la classe soit maintenue" avec un intervalle de répétition et "Confirmation du changement de classe, ms" (la valeur par défaut est de 1500 : la nouvelle classe doit rester en place pendant ce temps pour que le changement soit reconnu).
3
Remplissez les onglets TCP (section 7.3), Sortie de la caméra (section 7.4) ou Audio (section 7.5).
4
Vérifiez la chaîne sans attendre une erreur : Vérifier cette règle (envoie un paquet ou déclenche une sortie), Simuler l'activation de la zone (exécute toutes les règles de la zone via une file d'attente de combat avec suppression des faux déclenchements et journalisation).
5
Cliquez sur Créer dans 1 zone. Si plusieurs zones sont sélectionnées, le bouton change et affiche Créer dans N zones ; sur le nœud du modèle, il affiche "Enregistrer pour l'ensemble du modèle" ; sur le nœud de la classe, il affiche "Enregistrer pour la classe". En bas : Activer / Désactiver / Supprimer pour les éléments sélectionnés.

Une zone peut contenir plusieurs règles TCP (différents récepteurs), mais pas plus d'une règle de sortie discrète par classe, et pas plus d'un son par classe. La règle est stockée dans une base de données et fonctionne à partir d'un flux d'inférence : les règles sont conservées en mémoire, une recherche par adresse de zone est effectuée par image, tandis que les sockets et le SDK de la caméra sont gérés par un flux séparé, afin que l'analyse ne soit pas bloquée par le réseau.

7.3. Envoi de données au robot ou au PLC

Le programme fonctionne comme un client TCP : il se connecte à une adresse IP et à un port spécifiques, maintient la connexion ouverte et la réutilise. En cas de déconnexion, il tente une fois de se reconnecter et de renvoyer les données. La chaîne de caractères est encodée en UTF-8 et se termine par un retour chariot et un saut de ligne (CR+LF).

ChampAttribution
Délai de connexion, ms1000 par défaut, 100...10000.
Délai d'envoi des règles, msPause minimale entre les envois automatiques de règles ; 0 = pas de pause. Même le changement de classe attend cette pause.
CommandeLe mot est transcrit tel quel : «up» – la commande «up». Il faut un angle de classe – ajoutez une substitution : «J6 {class}» → «J6 235». Vide – utilise le modèle «Données».
Données propresTexte générique, utilisé à la place de `{data}`.
DonnéesModèle de commande. Vide = «numéro et nom de la zone» ({zoneId} {zone}). Cliquer sur le champ permet d'ajouter, cliquer à nouveau permet de supprimer ; «Tous les champs» crée un modèle structuré.
SubstitutionValeurSubstitutionValeur
{zoneId}Numéro de zone (1, 2, 3…){camera}Nom de la caméra
{zone}Nom de la zone (modifiable dans la base de données){model}Nom du modèle d'IA
{class}Classe détectée par le modèle{time}Heure (HH:MM:SS.ms)
{conf}Niveau de confiance, % (point comme séparateur){date}Date (AAAA-MM-JJ)
{data}Texte provenant de "Données propres"

Exemple de modèle structuré : zoneId={zoneId};zone={zone};class={class};conf={conf};camera={camera};model={model};time={time};date={date};data={data}. Les chiffres doivent toujours être dans un format invariant afin d'éviter les problèmes lors de l'analyse avec les PLC.

  • Vérifier la connexion ne fait que ouvrir le socket et indique « connexion établie » ou « pas de réponse après N ms ».
  • Envoyer le test fonctionne réellement et envoie bien la chaîne de caractères. Le résultat s'affiche à côté du bouton, et non dans une fenêtre.
  • Confirmation de livraison. Sans la case "répéter", la règle envoie un seul colis lors du changement de classe et le renvoie jusqu'à ce que le destinataire réponde avec la ligne ok <colis>. Avec la case cochée, la répétition est effectuée à intervalles réguliers, tant que la classe est active.
  • "La dernière commande prévaut" : si le modèle a pu fournir plusieurs résultats pendant que le superviseur était occupé, la dernière commande sera exécutée. La file d'attente est limitée à 512 tâches.

7.4. Sortie discrète de la caméra

Onglet «Sortie de la caméra» : méthode de sortie, ligne, niveau, impulsion, boutons de vérification manuelle. Les caméras USB n'ont pas de sorties discrètes – seule la TCP est disponible.
Onglet «Sortie de la caméra» : méthode de sortie, ligne, niveau, impulsion, boutons de vérification manuelle. Les caméras USB n'ont pas de sorties discrètes – seule la TCP est disponible.
ChampAttribution
SortieMéthode : automatique (SICK : Flash-pin (niveau constant) ou GPIO ; HIKROBOT : UserOutputValue ou LineInverter (strobe désactivé)). Les modèles MV-CS020/016-10GC de l'unité UserOutput n'ont pas de fonction – le programme choisira automatiquement LineInverter.
LigneFlash-pin / GPIO1…6 chez SICK ; Line1 (sortie), Line2 (bidirectionnelle) chez HIKROBOT ; Line0 – uniquement entrée.
Niveautrue / false / off. «off» – la règle est activée, mais la sortie n'est pas affectée.
Impulsion, ms (0 – maintenir)0 – le niveau est maintenu jusqu'au changement de classe ; sinon, une impulsion de 10…5000 ms avec retour.

Les boutons "Activer la sortie", "Désactiver la sortie", "Impulsion sont testés à l'aide d'un testeur ou d'une lampe ; "Ce que la caméra peut faire interroge toutes les possibilités et génère un rapport. Les tests manuels sont également enregistrés dans le même journal.

Plusieurs zones sur une seule sortie. Si plusieurs zones sont connectées à une même broche, la sortie est considérée comme un "ET logique": elle est HIGH uniquement si toutes les zones demandent HIGH, mais si au moins une zone demande LOW, la sortie est LOW. Cela s'exprime dans le journal par la ligne "zones sur la sortie N, demandent LOW k → HIGH/LOW". Ainsi, une sortie "valide" est formée à partir de centaines de zones sur une carte.
Important. Sur les périphériques flash de SICK, le même broche est utilisée à la fois pour la sortie numérique et pour l'éclairage : si vous y connectez une lampe à impulsions, utilisez GPIO. Les règles anti-bruit sont les suivantes : 500 ms par défaut (minimum 200 ms), et les événements sans activité ne sont pas enregistrés dans le journal.

7.5. Alerte sonore : son personnalisé pour chaque zone

Le troisième type de règle concerne le son émis par l'ordinateur avec le logiciel. L'opérateur n'a pas besoin de regarder l'écran : il entend un signal indiquant que la zone est en défaut, et différents sons provenant de différentes zones indiquent précisément où se trouve le problème. Ce son est disponible pour toutes les caméras, y compris celles avec USB et RTSP, qui n'ont pas de sorties dédiées.

1
Sélectionnez une zone dans l'arborescence et cliquez sur + Nouveau son. Dans le groupe «Règle», spécifiez la catégorie (par exemple, anomalie) et cochez la case Activé.
2
Dans l'onglet «Son», sélectionnez un signal dans la liste. Il y en a dix pré-enregistrés : un signal court, un signal double, un signal triple, une tonalité basse et une tonalité haute, une montée et une descente, une alarme-sirène, un long sifflet, et une cloche. Le bouton «Écouter» permet de reproduire le signal sélectionné.
3
Pour utiliser votre propre son : cliquez sur Télécharger votre fichier… et sélectionnez un fichier au format WAV, MP3 ou WMA. Le fichier sera copié dans le dossier sounds\custom situé à côté du programme (vous pouvez retirer la clé USB) et apparaîtra dans la liste avec la mention "personnalisé". Le bouton Dossier des sons ouvre ce dossier : vous pouvez y placer des fichiers directement.
4
Définissez la valeur de Pause entre les sons, en millisecondes entre 1000 et 10000. Pendant cette période, le son ne se répète pas après le signal, même si la classe de la zone change à nouveau : avec une valeur de 10000 millisecondes, l'opérateur ne recevra pas plus d'un signal toutes les 10 secondes.
5
Cliquez sur "Créer une règle pour une zone" ou cochez les zones souhaitées et créez une règle qui s'appliquera à toutes les zones sélectionnées. Chaque zone peut avoir un son différent : répétez l'opération avec un autre signal pour une autre zone.
6
La case à cocher Zones jaunes (désactivées par un clic) sont silencieuses est cochée par défaut : les zones désactivées en cliquant sur l'onglet "Inspect" (section 5.5) ne produisent aucun son et n'autorisent pas la transmission TCP ni l'enregistrement vidéo de la caméra sur l'ensemble du modèle.
FonctionnementComment cela fonctionne
Sans la case "Répéter"Un seul signal est émis lors de la confirmation du changement de catégorie de la zone (après "Confirmation du changement de catégorie"). Tant que la catégorie reste en vigueur, il n'y a pas de son.
Avec la case "Répéter, tant que la catégorie reste en vigueur"Le signal est répété à l'intervalle de "Répétition", mais pas plus souvent que la pause entre les signaux, tant que la zone reste dans la catégorie spécifiée.
Plusieurs zones en défaut simultanémentChaque zone émet son propre son. Les signaux de différentes zones ne se masquent pas mutuellement, mais seulement le signal d'une seule zone est annulé.
JournalChaque enregistrement est enregistré dans le "Journal des activations" sous la forme de la ligne "Son «…»" ; si le fichier n'est pas trouvé ou que l'appareil audio est défectueux, la ligne d'erreur est enregistrée, et le programme continue de fonctionner.
VérificationVérifier cette règle déclenche immédiatement le son ; Simuler l'activation de la zone déclenche le son en même temps que TCP et les sorties, via la file d'attente.
Conseil. Pour les zones les plus importantes (connecteurs, éléments de puissance), utilisez une sirène ou un triple signal. Pour les autres, utilisez des signaux courts. Ainsi, un seul signal indique clairement qu'il faut se déplacer immédiatement vers la ligne. La règle du signal pour l'ensemble du modèle est définie en sélectionnant le nœud ou la classe du modèle dans l'arborescence : un seul signal pour chaque défaut.

7.6. Journal des activations et base de données

La section «Journal des activations» affiche les 300 dernières entrées sous la forme de lignes : HH:MM:SS.mmm ✔/✖ Caméra · Modèle · Classe · Zone → Action [message], et est mise à jour en temps réel. Les boutons «Mettre à jour» et «Effacer le journal».

Onglet "Base de données" : emplacement, copie et restauration de la base à partir d'un seul fichier.
Onglet "Base de données" : emplacement, copie et restauration de la base à partir d'un seul fichier.

Onglet «Base de données» : le programme stocke tout dans un fichier SQLite rejectors.db situé à côté de l'exécutable, il n'y a pas de service séparé, aucun port n'est ouvert, et aucune installation n'est nécessaire. Les tables : «settings» (paramètres), «cameras» (profils de caméras), camera_models (modèles sur les caméras), «zones» (noms et géométrie des zones), «rejectors» (règles), reject_log (journal), camera_param_files (copie des paramètres des caméras), camera_presets (ensembles de paramètres des caméras). «Sauvegarder une copie de la base…» crée une sauvegarde complète de la base en utilisant la commande VACUUM INTO directement sur la base en cours ; «Importer la base à partir d'une sauvegarde…» restaure la base, en sauvegardant d'abord la version actuelle. Il est possible de consulter la base dans DBeaver sans fermer le programme ; il ne faut pas écrire dans cette base depuis l'extérieur.

8. Autres modes et tâches

Modèles standards : normal / anomalie et tous les types

Le même éditeur ROI fonctionne également pour la classification standard : comprimés, bouchons, étiquettes, pièces dans le compartiment. Les classes sont définies dans le dialogue « Nouvelle IA », (par défaut normal et anomalie, avec des noms en majuscules), les zones sont placées sur les objets, le bouton Prendre une photo avec un nombre de cercles de 1 à 50, la série Créer des photos via la caméra (image/cadre) ou l'encodeur. La section Données synthétiques pour l'IA: angles précis de 90°/180°, rotation complète de 360° avec un pas et une plage, miroir, « classes par degrés » (chaque angle dans sa propre classe - ejecteur envoie l'angle via TCP), plages de luminosité et de contraste. L'entraînement se fait avec les augmentations complètes d'Ultralytics. Le seuil de confiance pour ces modèles est défini dans la même section que pour ZONE-PAIRE, sur l'onglet Inspect.

Inspection multi-modèles (emplacements 1–20)

Il est possible d'utiliser une seule caméra pour observer jusqu'à 20 modèles : Ajouter ONNX dans le slot, puis ROI → Ajouter une classe à la modèle sélectionnée – chaque modèle dans le slot possède sa propre délimitation des zones, et les résultats de tous les modèles sont affichés sur une seule image.

Pour les configurations ZONE-PAIRE, les slots ne sont généralement pas nécessaires. Une seule version couvre déjà toute la carte : chaque zone possède sa propre paire de classes, il n'est donc pas nécessaire de fusionner des classes similaires, comme cela se faisait auparavant avec plusieurs modèles. Un exemple typique : une seule carte ZONE-PAIRE, les slots sont vides.

Quand l'inspection multi-modèles est utilisée :

SituationComment configurer
Différentes tâches sur un seul cadreZONE-PAIRE vérifie la disposition et la présence d'éléments, tandis que le modèle standard dans le deuxième emplacement effectue l'étiquetage, l'application d'une étiquette, la couleur du connecteur ou la direction de la clé. Les zones du deuxième modèle sont définies séparément via "ROI → Ajouter une classe au modèle sélectionné".
Produit sans grille fixeComptages, couvercles, pièces dans le logement : plusieurs classes de types de produits dans les modèles standards. Des classes similaires sont disposées dans des emplacements différents pour éviter toute confusion.
Deux cartes différentes dans un seul cadreDeux modèles ZONE-PAIRE dans des emplacements différents, chacun ayant sa propre référence et sa propre grille. La ligne de production fonctionne avec la référence du modèle principal.
Période de transitionLe modèle existant et entraîné reste dans l'emplacement, tandis que la nouvelle ZONE-PAIRE collecte des données. Les deux sont visibles sur un seul écran, et les règles concernant l'expulsion sont transférées au fur et à mesure que la confiance s'établit.

Les seuils, le rythme d'analyse, les zones jaunes et les règles concernant l'éjecteur s'appliquent à tous les modèles de caméra. Le bouton "SUPPRIMER LE MODÈLE" nettoie et vide les emplacements, et demande une confirmation ; "Supprimer le modèle sélectionné" supprime un modèle spécifique d'un emplacement, mais ses fichiers et ses zones restent dans la base de données.

Modèles généraux

Le bouton "MODÈLES GÉNÉRAUX" conserve l'ensemble "caméra → modèle" sous le nom : "Créer à partir des modèles actuels", "Appliquer à toutes les caméras", "Mettre à jour à partir des modèles actuels", "Renommer", "Supprimer l'ensemble". Le passage d'un ensemble de huit caméras vers un autre produit se fait par un seul choix. La suppression de l'ensemble ne supprime que le regroupement : les dossiers, les fichiers ONNX, les zones et les règles restent. Les zones appartiennent à la paire "caméra + modèle" : une seule modèle pour huit caméras, ce qui donne huit marquages indépendants.

Encodeur et expulseur sur la ligne de production

Pour les lignes avec encodeur sur le port COM (115200, ESP32) : connecter ENCODER, activer la connexion automatique, position, pas de prise de vue et correction, Définir zéro + PRENDRE UNE PHOTO. La prise de vue pour l'apprentissage et l'analyse peut se faire « selon l'encodeur » – les images sont uniformes le long du trajet de l'objet. L'ancien mécanisme d'éjection, avec un délai et une fonction anti-spam, envoie la commande REJECT au contrôleur de l'encodeur.

Enregistrement vidéo et prises de vue

Onglet Paramètres : DÉMARRER L'ENREGISTREMENT VIDÉO à partir de la caméra active, et enregistrer dans le fichier record_date_heure.avi (MJPG, fréquence d'images réelle de la caméra). Les images pour l'apprentissage sont au format real_….jpg, tandis que les images pour l'inspection sont au format inspect_….jpg et comportent des zones annotées.

9. Paramètres, console et exigences, ainsi que la licence

Settings

  • SAUVEGARDER DANS UN FICHIER / CHARGER À PARTIR D'UN FICHIER – toutes les configurations (caméra, modèles, règles) au format JSON, pratique avant une réinstallation ou pour les transférer sur un autre ordinateur. La source de vérité est la base de données, et le fichier JSON est une sauvegarde en cas de problème. Chaque modification est automatiquement enregistrée.
  • REINITIALISER À L'ORIGINAL : supprime la configuration et la disposition des fenêtres.
  • Langue de l'interface : 14 langues ; la fenêtre principale peut être changée immédiatement, tandis que les autres fenêtres sont activées lors de la prochaine ouverture.
  • Position, taille et écran de toutes les fenêtres, position des séparateurs : enregistrés dans la base ; lorsque l'écran est désactivé, il revient à la zone visible.

Console

Les cases «Caméras» et «Déclencheur» sont désactivées par défaut et permettent d'afficher les messages correspondants (les messages de la caméra sont affichés dans la section «Déclencheur»). Tous les messages sont enregistrés dans les fichiers logs\engiai-*.log, avant d'être filtrés. La console est conçue pour fonctionner pendant plusieurs semaines sans intervention : jusqu'à 800 lignes sont affichées, et les 1000 premières sont supprimées ; de nouvelles lignes sont ajoutées par groupes de 4 lignes par seconde, et non une par une ; la défilement automatique vers le bas est activé jusqu'à ce que vous défilez manuellement vers le haut ; la console ne produit aucun son. Les changements de zone sont enregistrés à un rythme de moins de 10 lignes par seconde (le reste est regroupé dans un compteur), le fichier journal est divisé en 20 Mo, les fichiers plus anciens que 14 jours sont supprimés au démarrage, et la base de données conserve les 20 000 dernières entrées. Les erreurs non traitées sont enregistrées dans crash.log, et les raisons des arrêts forcés sont indiquées dans runtime.log à côté de l'exécutable. Si quelque chose ne fonctionne pas correctement, consultez d'abord ces sections.

Exigences

ÉlémentExigence
Système d'exploitationWindows 10/11 x64.
Carte vidéo pour l'inspectionNVIDIA avec le pilote CUDA ; les bibliothèques CUDA 13 et cuDNN 9 sont incluses avec le logiciel. Sans carte vidéo, l'inspection est effectuée automatiquement par le processeur.
FormationPython 3 (avec l'option "Ajouter python.exe à PATH" lors de l'installation) et les paquets ultralytics, onnx, onnxslim, onnxruntime – le programme les installe automatiquement lors de la première utilisation. Une connexion Internet est nécessaire. La carte graphique utilisée pour l'entraînement est déterminée par PyTorch ; sans CUDA, l'entraînement se fait sur le CPU, mais le résultat est le même.
Caméras SICKPilote IDS uEye ; la caméra doit être visible dans IDS Camera Manager.
Caméras HIKROBOTSDK MVS (la bibliothèque est fournie avec le logiciel) ; pour GigE, carte réseau prenant en charge les paquets jumbo.

Licence et mode d'essai

Au démarrage, le programme se connecte au serveur de licences engi.live. Seuls les hachages des identifiants matériels et de la version sont envoyés, sans numéro de série ni nom d'utilisateur. Si le serveur n'est pas disponible, mais que l'autorisation est mise en cache, le programme fonctionne en utilisant ce cache (pour les connexions sans internet). Sans licence, un mode d'essai de 20 minutes est activé : un compte à rebours "TEST MM:SS" s'affiche dans le titre de la fenêtre et dans la barre d'état. Le bouton "ACHETER" de l'onglet Paramètres ouvre la page d'achat. Lorsqu'une licence est active, le compte à rebours n'est pas visible.

10. Liste de contrôle courte et recherche des erreurs

Liste de contrôle pour la carte électronique :

1
CAMÉRAS → «+ Ajouter des caméras» → sélectionner vos caméras → Ajouter.
2
Onglet Caméra : résolution → «Configuration automatique pour l'IA (par cadre)» (ou «Définir les paramètres» via USB) → «Enregistrer les paramètres» → «Enregistrer sous…» ensemble de paramètres. Si désiré, «Entraîner en niveaux de gris».
3
Modèle d'IA → «Créer un nouveau modèle d'IA» → nom.
4
«ROI → ajouter à la classe (modèle d'apprentissage)» → encadrer chaque composant → taille de la zone (par exemple, 256) → Entrer. Pour des centaines de composants identiques, encadrer toute la carte et utiliser un réseau.
5
Case à cocher «Définir les zones par rapport au produit en utilisant des marqueurs» → «Définir la référence» → dessiner sur le cadre la zone de la carte contenant les composants (pas la zone d'inspection) → «✔ Rechercher les zones dans la zone sélectionnée».
6
«ZONE-PAIRE : prise de vue par zone» → «Prendre». Répéter sur 3 à 5 cartes électroniques en bon état. Désactiver les zones inutiles à l'avance en cliquant sur le cadre (en rouge).
7
«ZONE-PAIRE : anomalies des zones» → «Créer» : le déplacement et la rotation de l'élément ainsi que de la base sont déjà intégrés. Si nécessaire, les points de soudure dans «référence avec les zones» peuvent être ajoutés.
8
ENTRAÎNER UN MODÈLE D'IA (taille de l'image : 128, s, 50 époques) → attendre que l'entraînement atteigne 100 % → best.onnx est défini automatiquement.
9
Inspect → «ZONE-PAIRE : zones ↔ modèle» → vérifier la correspondance → seuil. «Via la caméra» ou sélectionner un déclencheur. Pour une carte mobile, utiliser «Courant continu».
10
OUTPUT → sélectionner les zones → règle pour la classe anomaly (son, TCP ou sortie de la caméra) → «Simuler l'activation de la zone» → «Créer sur N zones».

Si quelque chose ne fonctionne pas :

SymptômeQue vérifier
La caméra n'apparaît pas dans la listeAlimentation et câble ; pour SICK : IDS Camera Manager et IP du sous-réseau de l'adaptateur ; pour HIKROBOT : attendre jusqu'à 25 secondes après la fermeture d'urgence et «Réinitialiser»
Image sombre, grise ou de mauvaise couleurCaméra → «Auto-configuration pour l'IA» ; pour SICK en couleur : disposition de Bayer et équilibre des blancs ; pour USB : «Paramètres par défaut», puis «Valider les paramètres»
Images coupées, réseau rougeGigE : taille du paquet 1500 ou jumbo sur la carte réseau, délai entre les paquets ; moins de FPS ou moins de trames ; carte réseau dédiée à la caméra
« Carte non trouvée » / image non capturéeRéférence non enregistrée ou capturée sous un autre éclairage ; peu de points de référence – agrandir la zone d'alignement et ajouter des détails ; un meuble ou une chaîne de convoyeur est présent dans la zone ; augmenter la période de recherche
Les zones se déplacent vers une autre carteLa carte est recherchée en utilisant les zones d'inspection : réenregistrer la référence avec la zone d'alignement en utilisant les détails de la carte (section 4.4) ; modèle de fusion « Automatique »
Des cartes de pièces d'autres lots sont défectueusesL'étiquetage sur les boîtiers est différent : ajouter des images normales de ce lot ; ne pas créer de rayures synthétiques inférieures à 3 px (section 4.6) ; vérifier que le défaut est un décalage et non une variation de couleur
Zones marquées NO_ZONE_CLASSLe maillage a été modifié après l'apprentissage ; restaurer le maillage ou créer un nouveau modèle et refaire la capture
Toutes les zones sont rouges sur une carte fonctionnelleAutre paiement ou autre position sans convoyeur actif ; le seuil est trop élevé ; les images ont été prises avec un éclairage différent ; fichiers colorés et gris mélangés
Le modèle ne détecte pas le déplacement de l'élémentRécalculer px/mm (section 1.3) : à un faible zoom, le déplacement est inférieur à 5 px ; réduire le champ de vision ou utiliser un appareil photo avec une plus grande résolution ; ne pas agrandir le déplacement normal
L'apprentissage est lent ou très lentDevice = cpu si aucune carte NVIDIA n'est présente ; réduire la taille du lot ; consulter la console ; vérifier que Python est dans le PATH
L'inspection ne fonctionne pasest-ce que best.onnx est sélectionné ? l'alimentation de tempo est-elle activée (par caméra, minuteur ou déclencheur) ? l'option "NE PAS UTILISER L'IA" n'est-elle pas activée ? la case "IA activée" est-elle cochée pour la caméra ?
La règle "éjecteur" est inactiveEst-ce que "Créer sur N zones" est coché ; la case "Activé" est cochée ; la classe de la règle correspond à la réponse du modèle (anomalie / normal) ; pour désactiver, le niveau n'est pas "off" ; les caméras USB n'ont pas de sorties, seulement TCP
Aucun sonLa règle a été créée et activée ; le fichier se trouve dans le dossier « sounds » (ou « sounds\custom ») ; y a-t-il une pause entre les sons ? Sans l'option « répéter », le son ne se joue que lors du changement de classe ; volume de Windows et périphérique de sortie.
Le paquet TCP est envoyé une seule fois.sans la commande «répéter», le système attend une réponse «ok <paquet>» du récepteur ; cochez la case «répéter tant que la classe est active» ou configurez la réponse côté PLC.

engiAI Ethernet System. Les noms des boutons et des champs sont présentés comme ils s'affichent dans le programme sur votre langue (captures d'écran – de l'interface russe). Les captures d'écran ont été prises sur le modèle "model_4" (deux zones de 256x256 : condensateur C30 et pont BR1), caméra USB 3264x2448, le modèle a été entraîné en niveaux de gris. Édition 3, septembre 2026 : exemple avec deux zones, création de dossiers du modèle, zone d'alignement, données synthétiques "élément avec base" avec des images "avant / après", palette et épaisseur de ligne, zones rouges, console.