Introduction à la reconnaissance d'images
3 choses à savoir
La reconnaissance d'images est un processus qui consiste à identifier un objet ou une caractéristique dans une image ou une vidéo. Elle est utilisée dans de nombreuses applications telles que la détection de défauts, l'imagerie médicale et la vidéosurveillance.
La reconnaissance d'images peut accélérer les tâches fastidieuses, et traiter les images avec plus de rapidité ou de précision qu'une inspection manuelle. Cette technique est incontournable pour de nombreuses applications. Elle est la principale composante d'applications de Deep Learning telles que :
- Inspection visuelle : pour l'identification des pièces défectueuses et non défectueuses dans le processus de fabrication, plusieurs milliers de pièces peuvent être inspectées dans la ligne de montage.
- Classification d'images : catégorisation d'images basée sur leur contenu. Cette fonctionnalité est particulièrement utile dans les applications telles que la recherche d'images et les systèmes de recommandation dans le commerce électronique.
- Conduite autonome : la capacité à reconnaître un panneau stop ou un piéton dans une image est primordiale dans les applications de conduite autonome.
- Robotique : la reconnaissance d'images peut être utilisée par les robots pour identifier des objets et améliorer leur navigation autonome en repérant des lieux ou des objets sur leur trajectoire.
La reconnaissance d'images est la technologie au cœur de ces applications. Elle identifie des objets ou des scènes dans des images et utilise ces informations pour prendre des décisions au sein de systèmes plus importants. La reconnaissance d'images apporte à ces systèmes des renseignements exploitables qui leur permettent essentiellement de prendre de meilleures décisions.
Comparaison entre la reconnaissance d'images et la détection d'objets
La reconnaissance d'images et la détection d'objets sont deux techniques similaires souvent utilisées conjointement. La reconnaissance d'images identifie les objets ou les scènes dans des images, tandis que la détection d'objets trouve les instances de ces objets et leurs emplacements dans des images.
Faster R-CNN et YOLOv3 sont des techniques de détection d'objets fréquemment employées.
Techniques de reconnaissance d'images
Il existe de nombreuses méthodes permettant d'implémenter la reconnaissance d'images, dont les techniques de Machine Learning et de Deep Learning. Le choix de la technique à utiliser dépend de l'application, mais généralement, plus le problème est complexe, plus il est intéressant d'explorer les techniques de Deep Learning.
Reconnaissance d'images avec le Deep Learning
La reconnaissance d'images avec le Deep Learning peut nécessiter de passer par un réseau de neurones à convolution pour apprendre automatiquement les caractéristiques pertinentes à partir d'un échantillon d'images et identifier ces caractéristiques dans de nouvelles images.
Voici un workflow de Deep Learning typique pour la reconnaissance d'images :
Préparer les données d'apprentissage : commencez par un ensemble d'images que vous classez par catégories. Cette phase peut inclure des étapes de prétraitement consistant à améliorer la cohérence des images pour que le modèle soit plus précis.
Créer un modèle de Deep Learning : même si vous pouvez créer un modèle de Deep Learning de toutes pièces, il peut être plus intéressant d'utiliser un modèle pré-entraîné comme point de départ pour votre application. (En savoir plus sur les modèles pré-entraînés)
Entraîner le modèle : réaliser l'apprentissage du modèle consiste à lui présenter des données de test. Celui-ci peut ensuite itérer sur ces données plusieurs fois pour apprendre automatiquement les caractéristiques les plus importantes dans les images. Au fil de l'apprentissage, le modèle assimilera des caractéristiques de plus en plus sophistiquées jusqu'à distinguer avec précision les différentes classes d'images dans le jeu d'apprentissage.
Tester : testez le modèle sur des données qu'il n'a pas encore analysées et regardez s'il a bien identifié le contenu des images. Si les résultats ne sont pas à la hauteur de vos attentes, recommencez ces quatre étapes jusqu'à atteindre un niveau de précision acceptable.
Les techniques de Deep Learning peuvent sembler compliquées, mais n'hésitez pas à commencer par des exemples simples pour bien démarrer et vous familiariser avec la technologie.
Conseil : les techniques de Deep Learning sont souvent utilisées pour la reconnaissance d'images, car elles offrent des résultats très précis et robustes. Elles fonctionnent souvent mieux avec un jeu de données d'apprentissage volumineux, et des techniques comme l'apprentissage par transfert peuvent simplifier le workflow de reconnaissance d'images. Deep Learning Toolbox™ propose un environnement pour le design et l'implémentation de réseaux de neurones profonds avec des algorithmes, des modèles pré-entraînés et des applications.
Reconnaissance d'images avec le Machine Learning
Une approche de Machine Learning pour la reconnaissance d'images consiste à identifier et extraire les caractéristiques clés des images, puis à les utiliser comme entrées dans un modèle de Machine Learning.
- Préparer les données d'apprentissage : vous commencez par un ensemble d'images que vous classez par catégories.
- Extraire les caractéristiques : vous sélectionnez les caractéristiques pertinentes dans chaque image. Vous pouvez utiliser un algorithme d'extraction de caractéristiques capable d'extraire les caractéristiques de contour ou de points intérêt (coins) pour distinguer les différentes classes dans vos données.
- Créer un modèle de Machine Learning : ces caractéristiques sont ajoutées à un modèle de Machine Learning qui les sépare pour représenter des catégories distinctives, puis utilise ces informations pour analyser et classifier de nouveaux objets.
Il existe toute une variété d'algorithmes de Machine Learning et de méthodes d'extraction de caractéristiques, ce qui vous laisse le choix entre de nombreuses combinaisons pour créer un modèle précis de reconnaissance d'objets.
Conseil : utiliser le Machine Learning pour la reconnaissance d'objets permet de choisir la meilleure combinaison de caractéristiques et de classificateurs pour l'apprentissage. Cette méthode peut donner des résultats précis avec peu de données. Statistics and Machine Learning Toolbox™ offre des fonctions et des applications pour décrire, analyser et modéliser des données.
Reconnaissance d'images : comparaison entre le Deep Learning et le Machine Learning
Comment choisir entre le Deep Learning et le Machine Learning pour la reconnaissance d'images ? En résumé, la différence est qu'avec le Machine Learning, vous choisissez manuellement les caractéristiques, tandis que le Deep Learning les apprend automatiquement.
Reconnaissance d'images avec les techniques traditionnelles de traitement d'images
Outre le Deep Learning et le Machine Learning, de nombreuses techniques traditionnelles de traitement d'images sont très efficaces pour la reconnaissance d'images dans certaines applications. Ces techniques conviennent généralement mieux à des applications de reconnaissance basée sur les pixels, telles que :
- La reconnaissance d'images basée sur les couleurs : les couleurs constituent souvent une excellente caractéristique pour la reconnaissance d'images. Par exemple, les caractéristiques Hue Saturation Value (HSV) ou Red Green Blue (RGB) peuvent donner des indications sur l'image.
- La correspondance de modèle : cette technique utilise une petite image, ou un modèle, pour trouver des régions correspondantes dans une image plus grande.
- La segmentation d'image et l'analyse de blob : cette technique utilise des propriétés simples d'un objet telles que la taille, la couleur ou la forme.
MATLAB® simplifie les étapes complexes de la reconnaissance d'images.
- Applications de labellisation d'images : les données nettoyées et prétraitées maximisent les chances de réussite pour la reconnaissance d'images. Avec l'application Image Labeler, vous pouvez automatiser les phases de recadrage et de labellisation des images.
- Explorer les algorithmes de Deep Learning et de Machine Learning : les premières fois, il n'est pas toujours évident de choisir entre les techniques de Deep Learning et de Machine Learning. Avec MATLAB, vous avez la possibilité d'essayer toutes les combinaisons d'approches. Explorez les modèles pré-entraînés pour le Deep Learning ou les algorithmes de classification pour le Machine Learning.
Vous pouvez interopérer avec des réseaux et des architectures de réseaux provenant d'environnements tels que TensorFlow™, Keras, PyTorch et Caffe2 en utilisant les fonctionnalités d'importation et d'exportation ONNX™ (Open Neural Network Exchange).
- Génération automatique de code pour le déploiement : à terme, votre algorithme devra peut-être être déployé en dehors de l'environnement sur ordinateur. MATLAB propose des outils de génération de code pour déployer votre algorithme de reconnaissance d'images n'importe où : sur le web, sur du hardware embarqué ou sur des serveurs de production.
Voir aussi : reconnaissance de formes