La reconnaissance d’objets est une technique de computer vision utilisée pour l’identification d’objets présents dans des images et des vidéos. La reconnaissance d’objets est le produit d’algorithmes de Deep Learning et de Machine Learning. Lorsqu’un être humain observe des photos ou regarde une vidéo, il est en mesure de percevoir immédiatement les personnes, les objets, les scènes et les détails visuels qu’il a sous les yeux. Le but est d’apprendre à un ordinateur à réaliser ce dont les humains sont naturellement capables, et à acquérir un niveau de compréhension approprié de ce que contient l’image.
La reconnaissance d’objets est une technologie essentielle au fonctionnement des voitures autonomes, en leur permettant par exemple de reconnaître un panneau stop ou encore de différencier un piéton d’un lampadaire. Elle est également précieuse dans de nombreuses autres applications, telles que l’identification de maladies en bioimagerie, l’inspection industrielle ainsi que la vision robotique.
Reconnaissance d’objets vs. détection d’objets
La détection d’objets et la reconnaissance d’objets sont des techniques similaires pour identifier des objets, mais qui diffèrent dans leur mise en oeuvre. La détection d’objets est le processus qui s’emploie à rechercher des instances d’objets dans les images. Dans le cas du Deep Learning, la détection d’objets est un sous-ensemble de la reconnaissance d’objets, où l’objet est non seulement identifié mais également situé dans l’image. Cela permet l’identification et la localisation d’objets multiples dans une même image.
Diverses approches de reconnaissance d’objets sont possibles. Récemment, les techniques proposées par le Machine Learning et le Deep Learning remportent un succès croissant pour la résolution des problèmes posés par la reconnaissance d’objets. Si, dans un cas comme dans l’autre, il s’agit d’apprendre à identifier les objets dans les images, les deux techniques diffèrent néanmoins dans leur manière de procéder.
La section suivante explique en quoi le Machine Learning et le Deep Learning se distinguent s’agissant de la reconnaissance d’objets, et montre comment implémenter les deux techniques.
Techniques de reconnaissance d’objets
Reconnaissance d’objets à l’aide du Deep Learning
Le Deep Learning est aujourd’hui couramment utilisé pour la reconnaissance d’objets. Des modèles de Deep Learning, tels que des réseaux de neurones à convolution, ou CNN, sont utilisés pour l’apprentissage automatique des caractéristiques intrinsèques d’un objet afin de rendre possible son identification. Par exemple, un CNN peut apprendre à identifier les différences qui existent entre les chats et les chiens en analysant des milliers d’images d’apprentissage et en apprenant les caractéristiques qui distinguent les chats des chiens.
Deux approches sont possibles pour mettre en œuvre de la reconnaissance d’objets à l’aide du Deep Learning :
- Entraînement d’un modèle en partant de zéro : pour entraîner un réseau profond en partant de zéro, il vous faut réunir un très gros jeu de données labellisées et concevoir une architecture de réseau qui apprendra les caractéristiques voulues et bâtira le modèle. Les résultats peuvent être impressionnants, mais cette approche nécessite une grande quantité de données d’apprentissage, et vous devez configurer les couches et les pondérations dans le CNN.
- Utilisation d’un modèle de Deep Learning préentraîné : La plupart des applications de Deep Learning utilisent l’approche dite de l’apprentissage par transfert, qui consiste à perfectionner un modèle préentraîné. Vous démarrez avec un réseau existant, tel qu’AlexNet ou GoogLeNet, qu’il vous faut enrichir avec de nouvelles données contenant des classes auparavant inconnues du réseau. Cette méthode, moins fastidieuse, est aussi susceptible de fournir plus rapidement des résultats dans la mesure où le modèle a déjà été entraîné sur des milliers voire des millions d’images.
Le Deep Learning offre un haut niveau de fiabilité, mais nécessite de grandes quantités de données pour parvenir à des prédictions précises.
Reconnaissance d’objets à l’aide du Machine Learning
Le Machine Learning, également fréquemment utilisé pour la reconnaissance d’objets, propose des approches différentes de celles du Deep Learning. Parmi les techniques de Machine Learning couramment mises en œuvre, citons à titre d’exemple les suivantes :
- L’extraction de caractéristiques HOG avec un modèle de Machine Learning SVM
- Les représentations par sac de mots, avec des algorithmes SURF et MSER, par exemple
- L’algorithme de Viola-Jones, qui peut être utilisé pour la reconnaissance de divers d’objets, y compris les visages et les bustes.
Processus de Machine Learning
Pour réaliser la reconnaissance d’objets via une approche de type Machine Learning standard, vous commencez par rassembler une collection d’images (ou de vidéos) et sélectionnez les caractéristiques pertinentes dans chaque image. Par exemple, un algorithme d’extraction de caractéristiques pourrait avoir pour objet l’extraction de contours ou de coins utiles pour la distinction de classes dans vos données.
Ces caractéristiques sont ajoutées à un modèle de Machine Learning, qui les distribue dans des catégories distinctes, puis utilise ces informations pour l’analyse et la classification des nouveaux objets.
Vous pouvez utiliser un ensemble d’algorithmes de Machine Learning et de méthodes d’extraction de caractéristiques offrant de multiples combinaisons pour créer un modèle précis de reconnaissance d’objets.
L’utilisation du Machine Learning pour la reconnaissance d’objets offre la possibilité de choisir la meilleure combinaison de caractéristiques et de classificateurs pour l’apprentissage. Cette approche peut permettre d’obtenir des résultats précis avec un minimum de données.
Machine Learning vs. Deep Learning pour la reconnaissance d’objets
La meilleure approche à adopter pour la reconnaissance d’objets dépend de votre application et du problème que vous tentez de résoudre. Dans de nombreux cas, le Machine Learning peut être une technique efficace, surtout si vous savez quelles caractéristiques de l’image sont les plus pertinentes à utiliser pour la différentiation des classes d’objets.
Pour opérer un choix avisé entre Machine Learning et Deep Learning, posez-vous avant tout la question de savoir si vous disposez d’un GPU suffisamment puissant et de beaucoup d’images d’apprentissage labellisées. Si la réponse à l’une ou l’autre de ces questions est Non, une approche de type Machine Learning peut être le meilleur choix. Les techniques de Deep Learning ont tendance à mieux fonctionner avec un grand nombre d’images, et un GPU puissant permet de réduire le temps nécessaire à l’apprentissage du modèle.
En savoir plus
Autres méthodes de reconnaissance d’objets
D’autres approches plus basiques pour la reconnaissance d’objets peuvent parfois suffire selon l’application.
- L’appariement de modèle utilise une petite image, ou modèle, pour la recherche de régions concordantes dans une image plus grande.
- La segmentation d’image et l’analyse de blob s’appuie sur les propriétés fondamentales de l’objet, telles que sa taille, sa couleur ou sa forme.
Typiquement, lorsqu’un objet peut être reconnu à l’aide d’une technique simple, telle que la segmentation d’image, il est préférable de commencer par cette approche basique. Cela peut permettre de se doter d’une solution robuste sans nécessité de faire appel à des centaines voire à des milliers d’images d’entraînement ou de mettre en œuvre une solution trop complexe.
Deep Learning et Machine Learning avec MATLAB
Avec MATLAB, quelques lignes de code suffisent pour développer des modèles de Machine Learning et de Deep Learning appliqués à la reconnaissance d’objets et ce, sans être nécessairement un expert du domaine.
L’utilisation de MATLAB pour la reconnaissance d’objets vous permet d’aboutir plus rapidement pour plusieurs raisons :
- Vous mettez à profit votre expertise métier et apprenez la science des données avec MATLAB :
Grâce à MATLAB, vous apprenez rapidement et devenez vite expert du Machine Learning et du Deep Learning. Avec MATLAB, cet apprentissage est à la fois pratique et simple. MATLAB rend en outre la création de modèles de reconnaissance d’objets accessible à vos spécialistes métiers, ce qui vous évite de confier cette tâche à des data scientists susceptibles de ne pas bien connaître votre secteur d’activité ou votre application.
- Vous utilisez des apps pour labelliser vos données et créer des modèles :
Dans MATLAB, vous développez des modèles de Machine Learning et de Deep Learning en ne recourant qu’à un minimum de code.
Grâce à l’app Classification Learner, vous créez rapidement vos modèles de Machine Learning et comparez différents algorithmes de Machine Learning sans écrire de code.
Avec l’app Image Labeler, vous labellisez les objets dans les images de façon interactive et automatisez la labellisation de la vérité terrain dans les vidéos pour entraîner et tester vos modèles de Deep Learning. Cette approche interactive et automatisée permet d’obtenir de meilleurs résultats, plus rapidement.
- Vous intégrez la reconnaissance d’objets dans un processus unique :
MATLAB vous permet d’unifier plusieurs domaines au sein d’un processus unique. Grâce à MATLAB, il vous est possible de mener votre réflexion et votre programmation dans un environnement unique. Vous disposez d’outils et de fonctions à la fois pour le Machine Learning et pour le Deep Learning, et également pour un éventail de domaines qui enrichissent ces algorithmes, tels que la robotique, la computer vision ou encore l’analyse de données.
MATLAB automatise le déploiement des modèles dans des systèmes d’entreprise, des clusters, le cloud et des dispositifs embarqués.
En savoir plus sur la reconnaissance d’objets
Pour plus d’informations, consultez les rubriques consacrées aux solutions MATLAB, Image Processing Toolbox, Computer Vision Toolbox, Statistics and Machine Learning Toolbox et Deep Learning Toolbox.
Vidéos
Reconnaissance d'objets : Deep Learning et Machine Learning pour la Computer Vision (26:57)
Téléchargement: vous pouvez également télécharger le code de démonstration utilisé dans la présentation.