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

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 :
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 mm | 200 mm | 300 mm | 400 mm |
|---|---|---|---|---|
| 3264 px (8 mégapixels via USB, comme sur les images) | 0,03 мм/px → Déplacement ≈ 0,15 mm | 0,06 → ≈ 0,3 mm | 0,09 → ≈ 0,45 mm | 0,12 → ≈ 0,6 mm |
| 2448 px (HIKROBOT 5 MP) | 0,04 → ≈ 0,2 mm | 0,08 → ≈ 0,4 mm | 0,12 → ≈ 0,6 mm | 0,16 → ≈ 0,8 mm |
| 1920 px (SICK picoCam, HIKROBOT 2 MP) | 0,05 → ≈ 0,25 mm | 0,10 → ≈ 0,5 mm | 0,16 → ≈ 0,8 mm | 0,21 → ≈ 1,0 mm |
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.

Boutons au-dessus de la vidéo
| Bouton | Ce qu'il fait |
|---|---|
| MASQUER LA VIDÉO | Supprime l'image de l'écran. L'analyse continue, seule la redessin est économisée. |
| SORTIES | Fenê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ÉRAS | Fenê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ÉNSIBILITEURS | Connexion 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ÉRAUX | Ensembles 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 ROI | Dessiner-vous un grillage de zones sur la vidéo. |
Onglets à droite
| Onglet | Attribution |
|---|---|
| Camera | Paramè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 Model | Cré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. |
| Inspect | Onglet 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. |
| Settings | Langage de l'interface (14 langues), achat de licence, sauvegarde et chargement des paramètres, enregistrement vidéo. |
| Console | Journal 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
| Type | Comment se connecter | Ce 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 RTSP | La 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
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 ».
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".
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ètre | Que fait | Effet |
|---|---|---|
| Analyse par seconde (IA) | limite supérieure du rythme d'inspection, 1…200 | moins – moins de charge pour la carte vidéo ; indépendant de la connexion de la caméra |
| Seuil de l'IA | non défini dans l'onglet "Camera" | Seuil de reconnaissance de la zone – uniquement dans l'onglet "Inspect" (section 5.2), un par caméra |
| Exposure | Temps d'exposition | en bref – moins de flou pour les objets en mouvement ; zéro n'est pas autorisé |
| Gain / Gain boost | Amélioration du signal de la matrice | augmente la luminosité, mais ajoute du bruit |
| Pixel clock (SICK) | Fréquence du capteur | modifie les plages de FPS et de temps d'exposition, qui sont réinitialisés |
| FPS | Fréquence d'images en mode libre | non utilisé en mode déclencheur |
| Largeur / Hauteur | Taille de l'image (AOI) | Une image plus petite signifie une fréquence plus élevée et un trafic plus faible. |
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.
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 :



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.
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 :
4.2. Créer le modèle
4.3. Délimiter les zones sur la carte

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.


| Modèle d'alignement | Quand 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. |
| Rigide | La caméra regarde directement de haut, la carte est plate. La solution la plus stable, si la zone d'alignement est petite. |
| Perspective | La 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 ».
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.

| Configuration | Qu'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 gris | Couleur 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 point | Par 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 / augmentation | Par 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 / Gamme | Valeur 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) / Flou | Granularité 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. |


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 :
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




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.


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 formes | Ce que cela définit |
|---|---|
| Taille : de … à, % de la zone / px | Taille 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. |
| Remplissage | Uni / contour / mélange (le contour est également "gras"). |
| Épaisseur de la ligne, px | Ligne / 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éfaut | Au 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 emplacements | Cinq 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.

| Configuration | Que fait |
|---|---|
| Copie du défaut | Un 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ée | Groupe 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 · forme | Principal 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, ° · forme | La zone (cercle ou carré, même échelle ±%) est tournée à un angle aléatoire dans la plage des deux côtés. |
| Échelle, % · diminution / augmentation | La 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 rotation | Si 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-zones | La 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éfaut | Activé 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 val | Chaque 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. |
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ètre | Que signifie cela ? | Comment choisir ? |
|---|---|---|
| Epochs | Combien 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 Size | Combien 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 32 | Taille 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 Size | n / s / m / l / x | s — optimal pour des centaines de paires de classes ; n manque de capacité, m et supérieur — plus lent |
| Device | sur quoi entraîner | 0 (GPU) avec une carte NVIDIA ; sans CUDA, le programme basculera automatiquement vers le CPU |
| Workers | nombre de threads pour la préparation des données | 12 par défaut pour un processeur multicœur |
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.

5.1. Définir le modèle et vérifier les zones
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.
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éthode | Comment activer | Quand l'utiliser |
|---|---|---|
| Par caméra | Case "Par caméra" | Contrôle continu ; le rythme est limité par le curseur "Analyse par seconde" dans l'onglet "Caméra" |
| Par minuterie | Case "Par minuterie" et intervalle en ms | Contrôle irrégulier, par exemple une fois par seconde |
| Par déclencheur | Sé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) |
| GPU | Caseco «GPU» | Actif par défaut ; bascule réinitialise le modèle |
| Analyse en niveaux de gris | Caseco «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".
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).
| Caseco | Comportement 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». |
| Éteint | La 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. |
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é.


Schéma de câblage des connecteurs
| Broche | HIKROBOT MV-CS, 6 pin | SICK picoCam, 6 pin |
|---|---|---|
| 1 | DC_PWR – Alimentation de la caméra : 9–24 V | GND — alimentation de la caméra |
| 2 | OPTO_IN — Entrée Line 0 (+), signal de déclenchement | VCC — alimentation de la caméra (12–24 V) |
| 3 | GPIO — Ligne 2, entrée ou sortie | Déclencheur – entrée du déclencheur, optocoupleur (−) |
| 4 | OPTO_OUT – Sortie de la ligne 1 (+) | Signal d'activation + — entrée du signal d'activation, phototransducteur (+) |
| 5 | OPTO_GND — optocouple générale, fil de retour | Flash + — sortie discrète (+) |
| 6 | GND — alimentation de la caméra | Flash − — sortie discrète (−) |
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.


- 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.

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).
| Champ | Attribution |
|---|---|
| Délai de connexion, ms | 1000 par défaut, 100...10000. |
| Délai d'envoi des règles, ms | Pause minimale entre les envois automatiques de règles ; 0 = pas de pause. Même le changement de classe attend cette pause. |
| Commande | Le 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 propres | Texte générique, utilisé à la place de `{data}`. |
| Données | Modè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é. |
| Substitution | Valeur | Substitution | Valeur |
|---|---|---|---|
| {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

| Champ | Attribution |
|---|---|
| Sortie | Mé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. |
| Ligne | Flash-pin / GPIO1…6 chez SICK ; Line1 (sortie), Line2 (bidirectionnelle) chez HIKROBOT ; Line0 – uniquement entrée. |
| Niveau | true / 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.
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.
| Fonctionnement | Comment 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ément | Chaque 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é. |
| Journal | Chaque 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érification | Vé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. |
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» : 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.
Quand l'inspection multi-modèles est utilisée :
| Situation | Comment configurer |
|---|---|
| Différentes tâches sur un seul cadre | ZONE-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 fixe | Comptages, 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 cadre | Deux 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 transition | Le 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ément | Exigence |
|---|---|
| Système d'exploitation | Windows 10/11 x64. |
| Carte vidéo pour l'inspection | NVIDIA 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. |
| Formation | Python 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 SICK | Pilote IDS uEye ; la caméra doit être visible dans IDS Camera Manager. |
| Caméras HIKROBOT | SDK 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 :
Si quelque chose ne fonctionne pas :
| Symptôme | Que vérifier |
|---|---|
| La caméra n'apparaît pas dans la liste | Alimentation 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 couleur | Camé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 rouge | GigE : 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ée | Ré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 carte | La 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éfectueuses | L'é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_CLASS | Le 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 fonctionnelle | Autre 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ément | Ré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 lent | Device = 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 pas | est-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 inactive | Est-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 son | La 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.
