Qu’est-ce que la reconnaissance d’objets ?

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.

Utilisation de la reconnaissance d’objets pour identifier différentes catégories d’objets.

Figure 1. Utilisation de la reconnaissance d’objets pour identifier différentes catégories d’objets.

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.

Reconnaissance d’objets (à gauche) et détection d’objets (à droite).

Figure 2. Reconnaissance d’objets (à gauche) et détection d’objets (à droite).

Comment fonctionne la reconnaissance d’objets ?

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.

Figure 3 : Techniques proposées par le Machine Learning et le Deep Learning pour la reconnaissance des objets.

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.

Figure 4 : Application de Deep Learning pour la reconnaissance des plats au restaurant.

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 :

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.

Processus de Machine Learning pour la reconnaissance d’objets.

Figure 5 : Processus de Machine Learning pour la 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.

Figure 6 : Facteurs clés à prendre en compte pour choisir entre Deep Learning et Machine Learning.

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.

Reconnaissance d’objets

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 :

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

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

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