Articles

Stage ML: Classification des images

Découvrez comment Google a développé le modèle de classification des images de pointe qui alimente la recherche dans Google Photos. Suivez un cours intensif sur les réseaux neuronaux convolutifs, puis créez votre propre classificateur d’images pour distinguer les photos de chat des photos de chien.

Prérequis

  • Cours intensif d’apprentissage automatique ou expérience équivalente avec les fondamentaux du ML

  • Maîtrise des bases de la programmation et une certaine expérience du codage en Python

Introduction

En mai 2013, Google a publié search for personalphotos, donnant aux utilisateurs la possibilité de récupérer des photos dans leurs bibliothèques en fonction des objets présents dans les images.

capture d'écran de Google Photos montrant la recherche de Siamesecats Figure 1. Google Photos search forSiamese cats livre la marchandise!

La fonctionnalité, incorporée plus tard dans GooglePhotosen 2015, a été largement perçue comme un changeur de jeu, une preuve de concept selon laquelle un logiciel de vision informatique pouvait classer les images selon les normes humaines, ajoutant de la valeur de plusieurs façons:

  • Les utilisateurs n’avaient plus besoin de marquer les photos avec des étiquettes comme « plage » pour catégoriser le contenu de l’image, éliminant une tâche manuelle qui pouvait devenir assez fastidieuse lors de la gestion d’ensembles de centaines ou de milliers d’images.
  • Les utilisateurs pouvaient explorer leur collection de photos de nouvelles manières, en utilisant searchterms pour localiser des photos avec des objets qu’ils n’auraient peut-être jamais marqués. Par exemple, ils pouvaient rechercher « palmier » pour faire surface à toutes leurs photos de vacances qui avaient des palmiers en arrière-plan.
  • Le logiciel pourrait potentiellement « voir » des distinctions taxonomiques que les utilisateurs finaux eux-mêmes pourraient ne pas être en mesure de percevoir (par exemple, distinguer les chats siamois etabyssins), augmentant ainsi la connaissance du domaine des utilisateurs.

Comment fonctionne la classification des images

La classification des images est un problème d’apprentissage supervisé: définissez un ensemble de classes cibles (objets à identifier dans les images) et entraînez un modèle à les reconnaître en utilisant des exemples de photos étiquetés. Les premiers modèles de vision par ordinateur reposaient sur des données pixeldonnées brutes comme entrée dans le modèle. Cependant, comme le montre la figure 2, les données de pixels brutes ne fournissent pas une représentation suffisamment stable pour englober les variations de la trame d’un objet telles qu’elles sont capturées dans une image. La position de l’objet, l’arrière-plan derrière l’objet, l’éclairage ambiant, l’angle de la caméra et la mise au point de la caméra peuvent tous produire des fluctuations dans les données brutes de pixels; ces différences sont suffisamment importantes pour qu’elles ne puissent pas être corrigées en prenant des valeurs moyennes pondérées des pixels RVB.

collage de photos mettant en vedette des chats dans une variété de positions, avec différentes conditions d'arrière-plan et d'éclairage, et les données moyennes de pixels obtenues à partir des images Figure 2. Gauche: Les chats peuvent être capturésdans une photo dans une variété de poses, avec différents décors et conditions d’éclairage. À droite: la moyenne des données de pixels pour tenir compte de cette variété ne produit aucune information significative.

Pour modéliser les objets de manière plus flexible, les modèles de vision par ordinateur classiques ont ajouté de nouvelles caractéristiques dérivées des données de pixels, telles que des histogrammes de couleurs, des textures et des formes. L’inconvénient de cette approche était que l’ingénierie des fonctionnalités était devenue un véritable fardeau, car il y avait tellement d’entrées à modifier. Pour un catclassifieur, quelles couleurs étaient les plus pertinentes? Quelle devrait être la flexibilité de la formeles définitions doivent-elles être? Parce que les fonctionnalités devaient être réglées de manière si précise, la construction de modèles de robustesse était assez difficile et la précision en souffrait.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.