🏭 Détecteur de Défauts Visuels — Ligne d'Inspection Qualité par CNN
Observez un réseau convolutif scanner des pièces qui défilent sur une ligne d'inspection simulée, mettant en évidence rayures, bosses et défauts d'alignement en temps réel avec un taux de réussite/échec en direct.
À propos du Détecteur de Défauts Visuels
Cette simulation montre un réseau convolutif effectuant le travail d'un inspecteur qualité par vision industrielle sur une ligne d'usine. Des pièces métalliques, chacune représentée comme une grille 40×40 d'intensités de pixels avec une texture de base en métal brossé, se déplacent le long d'un convoyeur simulé. Lorsque chaque pièce traverse la ligne d'inspection, deux noyaux fixes 3×3 — une paire de gradients de Sobel et un Laplacien — sont convolués sur sa grille de pixels en temps réel, produisant de véritables cartes d'activation. Le seuillage de ces cartes et le regroupement des pixels survivants en composantes connexes produisent de véritables boîtes englobantes, un véritable verdict réussite/échec et un véritable score de confiance, tous dérivés de la sortie de convolution réelle plutôt que d'une animation scriptée.
Trois classes de défauts sont modélisées avec des signatures distinctes au niveau des pixels : rayures (artefacts de ligne fins et assombris avec un tracé tremblé), bosses (creux d'intensité gaussiens circulaires avec un bord éclairci), et défaut d'alignement (une discontinuité de bord nette décalée par rapport à l'endroit où le bord de la pièce est attendu). Ajustez la fréquence d'injection de chaque défaut, déplacez le seuil de sensibilité de détection, basculez entre les noyaux de détection Sobel seul, Laplacien seul et combiné, et observez la matrice de confusion et le taux de réussite réagir en direct pendant que la ligne d'inspection fonctionne.
Questions Fréquentes
Quels noyaux de convolution cette simulation exécute-t-elle réellement sur chaque pièce ?
Chaque pièce est représentée comme une grille 40×40 d'intensités de pixels en niveaux de gris. Deux noyaux fixes 3×3 sont convolués sur cette grille à chaque pixel : une paire de gradients de Sobel (Gx et Gy) dont la magnitude √(Gx²+Gy²) réagit aux arêtes d'intensité nettes — la signature d'une rayure ou d'un bord mal aligné — et un Laplacien discret [[0,1,0],[1,–4,1],[0,1,0]] dont la valeur absolue réagit aux bosses et creux localisés, la signature d'une bosse. Les deux sont de véritables convolutions 2D calculées pixel par pixel sur des données d'image réelles générées pour cette pièce, et non une animation préfabriquée.
Pourquoi fusionner un noyau de contours avec un noyau de taches plutôt que d'en utiliser un seul ?
Un seul type de noyau manque des classes entières de défauts. Une carte de contours de Sobel s'allume vivement sur les rayures et les bords décalés (défaut d'alignement) mais réagit à peine à une bosse circulaire lisse, car une bosse a un gradient doux sans arête linéaire nette. Le Laplacien fait l'inverse : il réagit fortement à la courbure au centre d'une bosse mais seulement faiblement à une fine ligne de rayure droite. Prendre le maximum pixel par pixel des deux cartes normalisées (une fusion par maximum entre canaux) fait que la carte d'activation combinée capture les trois types de défauts, ce qui reflète pourquoi les vrais CNN empilent de nombreux filtres par couche plutôt que de s'appuyer sur un seul noyau appris.
Comment le curseur de sensibilité crée-t-il un véritable compromis de détection ?
La carte d'activation est normalisée à environ 0–1 et chaque pixel au-dessus du seuil de sensibilité est marqué comme pixel de défaut candidat. Abaisser le seuil signale davantage de pixels, détectant des rayures plus légères et des bosses peu profondes (taux de vrais positifs plus élevé) mais signalant aussi le bruit ordinaire de la texture du métal brossé comme une fausse alerte (taux de vrais négatifs plus faible). Augmenter le seuil fait l'inverse. La matrice de confusion dans le panneau latéral se met à jour en direct lorsque vous déplacez le curseur, car la carte d'activation brute de chaque pièce est stockée une fois et re-seuillée instantanément — exactement comme le compromis sensibilité/spécificité derrière tout véritable détecteur d'anomalies.
Y a-t-il un véritable réseau de neurones entraîné derrière cela, ou des poids choisis à la main ?
Les poids des noyaux ici sont fixes et choisis à la main, non appris par descente de gradient sur des données de défauts étiquetées. C'est une simplification délibérée. Ce que la simulation reproduit fidèlement, c'est le calcul de propagation avant que tout CNN effectue à l'inférence : convolution → seuillage de la carte de caractéristiques → regroupement de composantes connexes en boîtes englobantes → décision réussite/échec — le même pipeline qu'exécute un réseau de détection de défauts entraîné, mais avec des poids choisis à la main plutôt qu'appris à partir de milliers de pièces étiquetées.
Comment les rayures, bosses et défauts d'alignement sont-ils transformés en données de pixels réelles ?
Chaque pièce commence comme une texture de base en métal brossé : bruit directionnel plus un grain sinusoïdal léger. Une rayure est dessinée comme une fine ligne à angle aléatoire dont les pixels sont assombris le long d'un tracé légèrement tremblé avec un dégradé doux de chaque côté. Une bosse est un creux d'intensité gaussien circulaire avec un bord légèrement éclairci, imitant la façon dont la lumière accroche le bord surélevé d'une vraie bosse. Le défaut d'alignement est simulé en décalant vers l'intérieur ou l'extérieur le bord attendu de la pièce d'un côté, créant une discontinuité d'intensité nette à l'intérieur du cadre là où le CNN ne l'attend pas. Les trois sont de vraies modifications par pixel de la grille sur laquelle la convolution s'exécute réellement.
Que représentent les boîtes englobantes sur le panneau d'inspection ?
Après le seuillage, la simulation regroupe les pixels signalés adjacents en composantes connexes à l'aide d'un remplissage par diffusion à 4-connexité (le même algorithme de base utilisé pour l'étiquetage des composantes connexes dans les vrais pipelines de vision par ordinateur). Les composantes plus petites qu'un nombre minimal de pixels sont écartées comme du bruit. La boîte englobante de chaque composante survivante est dessinée sur la vue agrandie de la pièce, et son activation moyenne alimente directement la décision réussite/échec et le score de confiance — ainsi chaque boîte à l'écran correspond à un véritable regroupement de sortie de convolution seuillée, pas à une superposition décorative.
Que mesurent réellement le taux de réussite/échec et la matrice de confusion ?
Chaque pièce est générée avec une vérité terrain connue (si une rayure, une bosse ou un défaut d'alignement a réellement été injecté) et un verdict du CNN (réussite ou échec) dérivé purement de la carte d'activation seuillée. Comparer les deux produit une matrice de confusion en direct : vrais positifs (défaut réel, correctement rejeté), faux positifs (pièce propre, rejetée à tort), vrais négatifs (pièce propre, correctement acceptée) et faux négatifs (défaut réel, manqué). Le taux de réussite est simplement acceptées/total sur la session en cours. Observer ces chiffres évoluer en déplaçant le curseur de sensibilité est le même exercice qu'effectue un ingénieur qualité en ajustant le seuil d'alarme d'une véritable ligne d'inspection.
Pourquoi le sélecteur de noyau de détection change-t-il ce qui est capturé ?
Basculer le noyau de détection entre Sobel seul, Laplacien seul et la fusion combinée par maximum change quelle carte d'activation pilote réellement la décision réussite/échec, pas seulement ce qui est affiché. Avec Sobel seul sélectionné, les pièces bosselées passent fréquemment comme faux négatifs car un creux lisse produit peu de gradient ; avec Laplacien seul sélectionné, les fines rayures sont souvent manquées car leur signal de courbure est faible. Seule la carte combinée capture de manière fiable les trois classes de défauts à un seuil unique, ce qui est la raison pratique pour laquelle les vrais CNN d'inspection utilisent de nombreux canaux de convolution plutôt qu'un seul filtre, aussi bien réglé soit-il.
Deux noyaux fixes 3×3 — magnitude du gradient de Sobel et un Laplacien — convoluent sur la grille de pixels 40×40 de chaque pièce, produisant une véritable carte d'activation qui est seuillée, regroupée en composantes connexes, et transformée en boîtes englobantes, un verdict réussite/échec et un score de confiance.
3D · Moteur de rendu Three.js / WebGL · Cible 60 FPS · s'exécute entièrement côté client, sans installation