Control Systems and Automation
Harnessing Matlab's Image Processing Toolbox for Industrial Inspection
Table of Contents
Dans la fabrication moderne, la marge d'erreur a diminué à près de zéro. Un seul composant défectueux peut se transformer en rappels coûteux, en risques de sécurité et en dommages de marque. L'inspection industrielle, processus systématique de vérification de la qualité du produit, est donc devenue une partie non négociable de la production. Pourtant, l'inspection manuelle traditionnelle a du mal à suivre le rythme des lignes à grande vitesse et des tailles de défauts microscopiques. C'est là que la vision de la machine entre, et au cÅur de nombreux systèmes de vision réussis, se trouve la boîte à outils de traitement d'image de MATLAB.
Avec sa riche bibliothèque d'algorithmes et son intégration matérielle transparente, la boîte à outils permet aux ingénieurs de construire des systèmes d'inspection automatisés à la fois robustes et adaptables.
Inspection industrielle et vision des machines
L'inspection industrielle comprend une vaste gamme de tâches : vérifier la finition de la surface, vérifier les dimensions, détecter les contaminants, assurer le montage correct, et les codes ou étiquettes de lecture. Les systèmes de vision automatique de la machine automatisent ces tâches à l'aide de caméras et de logiciels de traitement d'image.Les avantages par rapport aux inspecteurs humains sont clairs : une vitesse plus élevée, une précision plus constante et la capacité de fonctionner dans des environnements difficiles.
La boîte à outils n'est pas une île; elle s'intègre à l'écosystème plus large de MATLAB, y compris la boîte à outils de vision informatique pour la vision 3D, la boîte à outils de l'apprentissage profond pour les réseaux neuronaux et la boîte à outils de conduite automatisée pour les applications spécialisées.
Capacités clés de la boîte à outils de traitement d'image pour l'inspection
Acquisition d'images et E/S
Avant que tout algorithme puisse fonctionner, les images doivent être capturées de manière fiable. La boîte à outils fournit des interfaces directes à une grande variété de caméras via la boîte à outils d'acquisition d'images (un produit d'accompagnement). Elle prend en charge GigE Vision, USB3 Vision, Camera Link, et de nombreuses familles de caméras propriétaires. Pour l'inspection, le déclenchement est critique. La boîte à outils permet les déclencheurs logiciels ou les déclencheurs matériels via des cartes d'entrée et d'entrée, permettant la capture synchrone avec des courroies de convoyeur ou des bras robotisés.
Prétraitement et amélioration
Les images industrielles du monde réel sont rarement propres. La poussière, l'éclairage inégal, l'éblouissement des lentilles et le bruit des capteurs dégradent la qualité de l'image. La boîte à outils offre une suite complète d'opérations de filtrage pour préparer les images à l'analyse :
- Réduction du bruit: Filtrage médian, brouillage gaussien, filtrage bilatéral et moyens non locaux dénuisant. Le filtrage médian est particulièrement efficace pour éliminer le bruit de sel et de poivre commun dans les caméras à grande vitesse.
- Ajustement contrastif:[ Étalification de l'histogramme, égalisation de l'histogramme adaptatif (CLAHE) et correction gamma. CLAHE est utile pour les images avec des gradients d'éclairage spectaculaires, tels que ceux pris sous éclairage angle pour la détection des défauts.
- Sharping et déblurring:[ Masquage non ébranlé, déconvolution Wiener et déconvolution aveugle. Ceux-ci peuvent récupérer les bords fins dégradés par flou de mouvement dans les lignes à grande vitesse.
- Opérations morphologiques : Dilatation, érosion, ouverture, fermeture et transformations de chapeau. Le traitement morphologique est le fondement de nombreuses routines de détection des défauts – par exemple, en utilisant un filtre de chapeau supérieur pour mettre en évidence de petits défauts lumineux sur un fond sombre.
La sélection des étapes de prétraitement dépend du type de défaut et de la configuration d'imagerie. Les ingénieurs créent généralement un script MATLAB qui charge des images d'échantillons, applique un lot de filtres et visualise les résultats pour converger sur un pipeline optimal.
Segmentation : Trouver des régions d'intérêt
La segmentation divise une image en régions significatives. Lors de l'inspection, nous voulons isoler les défauts potentiels, mesurer les limites des parties ou identifier les caractéristiques.
- Troisièmement: Global (méthode Otsu), local (seuil adapté) et seuil multiniveaux. La méthode Otsu=" est une agrafe pour les histogrammes bimodals, tandis que le seuil adaptatif gère un éclairage inégal par calcul des seuils pour le voisinage de chaque pixel.
- La segmentation basée sur l'âge:[ Canny, Sobel, Prewitt, Roberts et Laplacian des détecteurs de bord gaussien. Le détecteur de bord de Canny est largement utilisé en raison de sa bonne localisation et de son faible taux de faux positifs.
- Segmentation en région:[ Transformation du bassin hydrographique, contours actifs (snakes) et algorithmes de division et de fusion. La transformation du bassin versant est puissante pour séparer les objets qui se chevauchent, mais nécessite souvent un contrôle morphologique des marqueurs pour éviter la sursegmentation.
- Segmentation basée sur les couleurs:[ Utiliser des espaces de couleur (RGB, HSV, L*a*b*) pour isoler des gammes de couleurs spécifiques. Ceci est essentiel pour des tâches comme l'inspection des circuits imprimés (PCB) pour la couleur correcte du masque de soudure ou la détection de contaminants colorés étrangers dans les produits alimentaires.
- Segmentation d'apprentissage profond:[ Bien que non native de la boîte à outils de traitement d'image, les réseaux de segmentation sémantique et d'instance peuvent être importés de la boîte à outils de l'apprentissage profond. La boîte à outils de traitement d'image fournit `semanticseg` et `pixelLabelDatastore` pour évaluer ces réseaux et pour traiter leurs sorties.
Extraction et mesure des caractéristiques
Une fois segmentés, nous les quantifions. La boîte à outils comprend la fonction standard or `regionprops`, qui calcule des dizaines de propriétés : zone, périmètre, boîte de délimitation, centroïde, excentricité, longueurs d'axes majeurs et mineurs, orientation, nombre d'Euler, etc. Pour l'inspection industrielle, les mesures typiques comprennent :
- Géométrie: Vérification du centre des trous, des diamètres dans la tolérance et des coins non écaillés.
- Texture: Utiliser des caractéristiques de la matrice de co-occurrence (GLCM) de niveau gris – contraste, corrélation, énergie, homogénéité – pour détecter des anomalies de surface comme des rayures ou des taches.
- Caractéristiques d'intensité: Moyenne, écart type et histogramme de la balance des valeurs à l'intérieur d'une région. Une fissure dans une coulée métallique, par exemple, apparaît comme une région sombre et étroite dont l'intensité diffère significativement du matériau environnant.
- Moment invariants:[ Les moments Hu et les moments Zernike qui sont invariants pour la traduction, la rotation et l'échelle. Ils sont utilisés pour reconnaître les logos, les étiquettes ou l'orientation de la pièce.
La boîte à outils prend également en charge les détecteurs de fonctionnalités avancés (SURF, MSER, BRISK) généralement sous la boîte à outils de vision informatique, mais la détection de fonctionnalités de base (Harris corner, Fast) est disponible dans le traitement d'image.
Reconnaissance et classement des modèles
Pour les modèles de défauts complexes, l'apprentissage automatique ou l'apprentissage profond est nécessaire. La boîte à outils de traitement d'image s'intègre à la boîte à outils Statistiques et apprentissage automatique et à la boîte à outils Deep Learning.
- Extrait des caractéristiques des images d'entraînement étiquetées (bons vs défectueux).
- Former un classificateur (machine à vecteur de soutien, forêt aléatoire, voisin k-neareset, ou un réseau neuronal convolutionnel).
- Validate avec un réglage de maintien et des paramètres d'écoute.
- Déployer le modèle formé dans le système d'inspection.
La boîte à outils fournit une application visuelle `imageLabeler` pour l'étiquetage des défauts de vérité au sol interactivement. Pour l'apprentissage profond, la fonction `trainNetwork` peut être utilisée directement sur les tableaux d'images ou les datastores. De nombreuses équipes d'inspection industrielle trouvent qu'un classificateur classique sur des caractéristiques bien choisies surperforme l'apprentissage profond lorsque les données étiquetées sont rares – et la boîte à outils de traitement d'image rend facile de tester les deux approches.
Construire un système d'inspection complet : une approche étape par étape
Étape 1: Spécification du système
Commencez par définir les types de défauts, les gammes de tailles, le débit requis et la précision (faibles taux d'acceptation/rejet). Par exemple : « Détecter les rayures de plus de 2 mm sur une surface métallique plate se déplaçant à 1 m/s, avec un taux de rejet faux maximum de 0,1%. » Cela stimule la résolution de la caméra, le choix de l'objectif, l'éclairage et la complexité de l'algorithme.
Étape 2 : Configuration de l'acquisition d'images
Sélectionnez une caméra avec une résolution et un taux d'image suffisants. Utilisez le `imaqtool` de MATLAB pour configurer la caméra, définir l'exposition, gagner et mode de déclenchement. En production, déclencher des signaux d'un PLC ou encoder synchroniser la capture avec la position de la pièce. La boîte à outils d'acquisition d'image peut enregistrer des images dans un fichier vidéo ou directement dans la mémoire pour le traitement en temps réel.
Étape 3: Étalonnage et référence
Pour les mesures dimensionnelles, l'étalonnage de la caméra est essentiel. La boîte à outils de vision informatique fournit l'application `cameraCalibrator` en utilisant un motif de tableau de contrôle pour calculer les paramètres intrinsèques (fx, fy, cx, cy) et les coefficients de distorsion de la lentille. La boîte à outils de traitement d'image applique ensuite `undistortImage` pour corriger les images avant la mesure.
Étape 4: Développement de l'algorithme de prototype
En utilisant un ensemble représentatif d'images (sans défaut et avec différents défauts), développez l'algorithme de manière interactive dans les applications Image Segmenter[ et Color Thresholder[. Ces applications vous permettent d'essayer différentes méthodes de segmentation et d'exporter le code en tant que fonction MATLAB. Par exemple, l'application Image Segmenter génère automatiquement du code qui utilise des contours actifs ou des coupes de graphiques.
Étape 5 : Traitement par lots et optimisation
Une fois un algorithme candidat codé, exécutez-le sur un grand lot d'images marquées. Utilisez `parfor` (Parallel Computing Toolbox) pour accélérer l'évaluation à travers plusieurs cœurs de processeurs ou GPU. Calculez la matrice de confusion et les courbes ROC pour quantifier les performances.
Étape 6 : Mise en oeuvre et intégration en temps réel
Pour le déploiement sur une ligne de production, l'algorithme doit fonctionner dans le temps de cycle alloué. Le code MATLAB peut être converti en C/C++ en utilisant le code MATLAB, qui permet l'exécution sur des périphériques embarqués (par exemple, NVIDIA Jetson, Intel Processors, ou ARM Cortex). La boîte à outils de traitement d'image prend en charge la génération de code pour de nombreuses fonctions (`imfilter`, `im2bw`, `regionprops`, etc.). Pour les systèmes nécessitant une interface PLC, le code peut communiquer sur OPC UA, Modbus, ou via des E/S numériques. MathWorks offre également la Vision HDL Toolbox[ pour les implémentations basées sur FPGA où la la latence doit être en microsecondes.
Étape 7 : Maintenance et améliorations
Les conditions de production changent : nouvelles conceptions de pièces, éclairage différent, vieillissement de la caméra. La nature modulaire des scripts MATLAB facilite la reformulation des classificateurs, l'ajustement des seuils ou l'échange des étapes de prétraitement sans réécrire le système entier.
Applications et études de cas dans le monde réel
Automobile: Inspection des soudures
Dans la fabrication automobile, les soudures sur les composants du châssis doivent être continues et exemptes de porosité. Grâce à une caméra lumineuse structurée, un système MATLAB capture le profil de la soudure. Le prétraitement élimine les réflexions de l'arc de soudure. La segmentation isole la région de soudure et le traitement morphologique met en évidence les lacunes.
Électronique : Vérification des composants des PCB
Un système de vision utilisant MATLAB prend une image de chaque carte, l'enregistre sur une image de référence dorée (en utilisant la correspondance de fonction ou la corrélation de phase) et soustrait les deux images. L'image résiduelle est seuil pour localiser les composants qui diffèrent. Les fonctions `imregister` et `imwarp` de la boîte à outils permettent un alignement précis malgré la page de guerre de la carte. La segmentation de couleur dans l'espace L*a*b* distingue les défauts de soudure des pièces manquantes.
Pharmaceutique: Présence de plaquettes thermoformées
Les boîtes de blister doivent contenir le nombre correct de pilules sans fissures ou de comprimés manquants. Un rétroéclairage à contraste élevé illumine chaque blister. La boîte à outils de traitement d'image `imFindCircles` (Hough transform) détecte rapidement les pilules circulaires. Pour une détection plus robuste sous un éclairage variable, un classificateur d'apprentissage de machine formé sur l'histogramme des gradients orientés (HOG) caractéristiques peuvent être utilisés. Le système peut inspecter 150 paquets par minute, en faisant glisser n'importe quel paquet avec moins que le nombre de pilules prévu ou avec une circulaire irrégulière.
Comparaison MATLAB avec OpenCV et autres outils
OpenCV est une bibliothèque ouverte populaire pour la vision informatique, et elle a ses mérites – la familiarité, les coûts et une grande communauté. Cependant, pour l'inspection industrielle, MATLAB offre des avantages distincts:
- Environnement de développement intégré: L'IDE MATLAB, avec des scripts en direct et des applications, accélère le prototypage. OpenCV nécessite généralement plus de codage manuel et de configuration de construction.
- Visualisation avancée :[ Le tracé interactif, les montages d'images et la création d'interfaces utilisateur (App Designer) permettent aux ingénieurs de construire rapidement des interfaces graphiques prototypes pour les opérateurs d'usine.
- Support de l'équipement :[ MATLAB se connecte sans problème à de nombreuses caméras industrielles et appareils DAQ sans avoir besoin d'emballages spéciaux.
- Production de code: Le codeur MATLAB peut produire un code C/C++ hautement optimisé qui fonctionne souvent plus rapidement que OpenCV écrit à la main pour certaines opérations, en particulier lorsque les bibliothèques spécifiques à la cible sont intégrées.
- Support et documentation: MathWorks offre une documentation étendue, des webinaires et un support technique – valorisable lorsqu'une ligne de production est en panne.
Cela dit, OpenCV est encore largement utilisé et offre des fonctions comme « FindContours » que MATLAB se rapproche de « bwboundarys ». Le choix dépend de l'expertise de l'équipe de développement et du budget du projet.De nombreuses organisations utilisent à la fois: MATLAB pour la R&D et OpenCV pour le déploiement final sur les systèmes embarqués sensibles aux coûts.
Pièges courants et comment les éviter
- Sur-dépendance à l'égard d'une méthode de segmentation :[ Aucune méthode ne fonctionne pour toutes les images. Tester plusieurs techniques (portant sur les thresholding, le bassin versant, les contours actifs) et envisager d'utiliser une approche en cascade (p. ex. segmentation grossière suivie d'une analyse fine).
- Ignorer l'éclairage:[ Même le meilleur algorithme échoue avec un éclairage faible. Investir dans l'éclairage adéquat – diffuse, rétroéclairage, structuré – et assurer la cohérence dans la production.
- Données insuffisantes sur la formation :[ Pour les classificateurs d'apprentissage automatique, recueillir des images de plusieurs lignes de production, dans des conditions variables, pour éviter une suradaptation.
- Négligence du système :[ Dans l'inspection en temps réel, chaque milliseconde compte. Profilez votre code avec le profileur MATLAB et remplacez les boucles lentes par des opérations vectorisées. Utilisez `coder.extrinsic` pour gérer les compromis de performance.
- Calibration de la couche d'ozone:[ Sans cartographie précise du pixel au monde, les mesures dimensionnelles sont inutiles.
Avantages de l'adoption du MATLAB pour l'inspection
- Développement rapide:[ Le workflow impulsé par l'application et une grande bibliothèque de fonctions signifie qu'un prototype peut être construit en jours plutôt qu'en semaines.
- Le contrôle précis de chaque étape minimise les faux positifs et négatifs, économise les coûts et améliore la réputation de qualité.
- Flexibilité: La même base de codes peut être adaptée à différents produits et types de défauts avec des changements minimes – souvent juste en ajustant quelques paramètres.
- Intégration: MATLAB s'interface facilement avec les systèmes d'automatisation en usine, les bases de données (pour la traçabilité) et les logiciels d'entreprise pour l'analyse.
- Scalability:[ Le code qui fonctionne sur un banc d'essai peut être compilé pour une machine dédiée ou déployé sur plusieurs stations à l'aide du serveur de production MATLAB.
Conclusion : L'avenir de l'inspection automatisée avec MATLAB
La boîte à outils de traitement d'images de MATLAB offre une plateforme complète et éprouvée pour la construction de tels systèmes. Que vous preniez une simple vérification de présence/absence ou un classificateur perfectionné basé sur le réseau neuronal, la profondeur et la facilité d'utilisation de la boîte à outils réduisent les risques et le temps de déploiement. En investissant dans une approche méthodique – préciser, prototype, tester, déployer et entretenir – vous pouvez créer des systèmes d'inspection qui répondent non seulement aux normes de qualité d'aujourd'hui, mais qui sont suffisamment souples pour s'adapter aux défis de demain.Pour plus de détails techniques et d'exemples téléchargeables, consultez la documentation de la et explorez des études de cas à la page de la solution d'inspection industrielle MathWorks.