Le Machine Learning Blog

Comment faire un classificateur d'images sans coder. Partie 3

 

introducing cloud automl vision

 

Ceci est le troisième article d'une série de trois articles expliquant comment construire un classificateur d'images sans coder. Cliquez ici pour lire la partie 1 et cliquez ici pour lire la partie 2.

 

Maintenant que nous avons un dataset d'images propres, nous pouvons entraîner notre classificateur d'images. Pour cela, nous utiliserons un nouveau service incroyable de Google Cloud, appelé Vision AutoML. Veuillez noter qu'au moment de la rédaction de cet article, ce service est en version bêta. Cela signifie que le produit peut changer sans avertissement et doit être utilisé pour des tests et non pour des applications en production.

 

 

Google Cloud AutoML Vision est une plate-forme de machine learning automatisée et entièrement gérée. À notre connaissance, il s'agit actuellement du seul service de ce type et nous, au Machine Learning Lab, étions très impatients de le tester depuis son annonce au début de cette année !!

 

excited

 

AutoML Vision permet d'entraîner un modèle de machine learning afin qu'il puisse classifier des images. Il est très simple à utiliser et ne nécessite aucune connaissance en programmation. Nous avons suivi les didacticiels officiels de Google mais nous avons pensé qu'ils étaient un peu confus pour les non-développeurs, alors nous avons décidé d'écrire le nôtre.

 

Tutoriel Google Cloud AutoMl Vision

La première chose à faire est de créer un compte cloud Google.

Cliquez ici et connectez-vous avec votre compte gmail (si vous en avez un) ou créez un nouveau compte. Google offre 300 $ de crédit pour que vous puissiez jouer avec leurs produits et leurs APIs. Vous pouvez activer ce crédit si vous le souhaitez.

 

free google cloud trial

 

Vous devrez accepter les termes et conditions

 

free

 

Et vous devrez remplir vos coordonnées et fournir une carte de crédit valide pour continuer. Votre carte de crédit ne sera facturée que si vous dépensez plus que le crédit de 300 $. Le reste de ce tutoriel suppose que vous créez un compte en tant qu'individu. Si vous créez un compte en tant que société, certaines fonctionnalités et options pourraient être différentes

 

free google cloud trial

 

Notez que vous serez probablement contacté par un représentant commercial de Google en Irlande (si vous vous trouvez en Europe). Leur équipe est fantastique et ils peuvent répondre à toutes vos questions sur Google Cloud. Dites-leur que Camilo Rodriguez du Lab Machine Learning leur passe le bonjour !!

Si tout s'est bien passé et que votre carte de crédit a été acceptée, vous devriez voir un écran de bienvenue et votre tableau de bord de la console Google Cloud.

 

google cloud console dashboard

 

Maintenant, avant de commencer, vous devez créer un nouveau projet. Cliquez ici

Allez-y et créez un nouveau projet.

 

google cloud create new project

 

Allez-y et donnez-lui un nom. Vous ne pouvez utiliser que des lettres et des chiffres. J'ai décidé de nommer mon projet "can-i-hug-it", car il est représentatif de ce que je veux réaliser.

 

google cloud name new project

 

Votre nouveau projet devrait maintenant être visible sur le tableau de bord du gestionnaire de ressources. Si ce n'est pas le cas, attendez quelques instants et rafraîchissez votre navigateur.

 

google cloud console ressource manager

 

Vous devez maintenant activer la facturation pour votre projet. Normalement, cette étape est effectuée automatiquement si vous avez un seul compte de facturation et que vous êtes l'administrateur de la facturation, mais vérifiez simplement pour vous en assurer.

Rappelez-vous que vous ne serez facturé que si vous dépassez le crédit gratuit de 300 $.

Pour cela, cliquez sur le menu de droite du projet. Cliquez sur "facturation".

 

google cloud console billing

 

Votre projet devrait apparaître ici, sinon aller sur cette page de Google pour lire des instructions sur l'activation de la facturation pour vos projets.

Rappelez-vous qu'à tout moment, vous pouvez désactiver la facturation pour votre projet, mais cela risque de le casser et vous ne pourrez plus utiliser les fonctionnalités avant de réactiver la facturation.

Si tout va bien, cliquez sur le bouton "Google Cloud Platform" en haut à gauche pour revenir à votre tableau de bord.

 

google cloud dashboard button

 

Maintenant, vous devrez vous assurer que quelques APIs sont activées pour construire votre classificateur d'images.

Normalement, ces APIs sont déjà activées lors de la création du projet, mais pour en être sûr, cliquez sur "Aller à la vue d'ensemble des APIs".

 

google cloud dashboard api overview button

 

Il est possible que vous receviez un message indiquant que vous n'êtes pas autorisé à afficher les services activés sur ce projet, même si vous êtes l'administrateur.

 

google cloud console bug

 

Ceci est sans aucun doute un bug de Google Cloud sur Internet Explorer mais n'y prêtez pas beaucoup d'attention. J'ai basculé mon navigateur vers Chrome et soudain, cela a fonctionné.

 

google cloud console bug

 

Normalement, les trois APIs dont vous avez besoin sont déjà activées, comme dans la capture d'écran ci-dessus. Mais si ce n'est pas le cas, vous pouvez les activer en cliquant sur le bouton "Activer les API et les services"

 

google cloud enable apis and services

 

Vous devriez voir une bibliothèque des APIs. Tapez les noms de ces APIs un par un.

La bibliothèque complétera automatiquement les noms.

 

  • Google Cloud Storage
  • Google AutoML
  • Google Cloud json Storage

 

google cloud api library

 

Assurez-vous que les trois API mentionnées ci-dessus sont activées ou activez-les maintenant.

 

google cloud console api enabled

 

Maintenant que vous êtes prêt, vous pouvez enfin commencer à construire votre classificateur d'images.

Mais d'abord, vous devrez mettre vos images sur Google Cloud. Revenez au tableau de bord et cliquez sur "stockage" puis sur "browser"

 

google cloud storage browse button

 

Vous devrez créer un "bucket". Un "bucket" est simplement un dossier sur Google Cloud où vous pouvez stocker des fichiers et des documents. C'est un peu comme Dropbox. Cliquez sur "create bucket"

 

google cloud create bucket

 

Donnez-lui un nom (il doit être unique), sélectionnez votre région et laissez toutes les autres options intactes. Cliquez sur "créer"

 

google cloud bucket options

 

Maintenant que vous avez votre "bucket", vous pouvez mettre vos images que vous avez téléchargées sur votre ordinateur dans l'article précédent de ce didacticiel. Je vous recommande de créer deux dossiers. Un pour les images "hug" et un pour les images "not_hug".

 

google cloud bucket folder create

 

Maintenant, allez simplement dans le dossier "hug" et téléchargez vos images "hug" en cliquant sur "upload files".

 

google cloud bucket upload images

 

Vous pouvez soumettre plusieurs images en même temps, en cliquant sur CTRL + E dans votre explorateur, puis en cliquant sur "Ouvrir".

 

google cloud bucket batch image upload

 

Si vous avez 1000 images dans le dossier "hug", selon votre connexion Internet, ce processus peut prendre de 5 à 20 minutes. Vous verrez une image au bas de votre navigateur montrant le processus de l'opération.

 

google cloud bucket image upload process

 

Si pour une raison quelconque, l'opération est interrompue, ce n'est pas grave. Retournez dans le dossier du "bucket" et vérifiez le nom du fichier qui a été importé le dernier, heureusement pour vous, ils ont tous des numéros de 1 à 1000. Continuez à partir de ce point.

Lorsque vous avez fini de soumettre les images dans le dossier "hug", répétez le même processus sur le dossier "not_hug" avec les images "not_hug".

 

google cloud bucket batch image upload

 

Et allez prendre un café en attendant que les images soient téléchargées.

 

workstation with coffee

 

Bon travail!! votre dataset est maintenant sur le cloud.

Maintenant que vos images sont sur Google Cloud, vous devez entraîner votre modèle. Pour cela, vous devrez accéder à AutoML. Google dispose d'une interface utilisateur agréable à laquelle vous pouvez accéder en en cliquant ici.

Vous devrez donner des autorisations à AutoML avant de l'utiliser.

 

google automl access

 

Sélectionnez votre projet et cliquez sur "continuer".

 

automl tutorial

 

On vous demandera probablement à nouveau d'activer la facturation et d'activer les APIs. Cliquez simplement sur le premier bouton. Il ouvrira un nouvel onglet dans votre navigateur que vous pourrez fermer ultérieurement.

Si vous cliquez sur le deuxième bouton, vous pourrez continuer.

 

automl setup

 

Créez un nouveau dataset, donnez-lui un nom et cochez l'option indiquant que vous importerez les images ultérieurement.

 

automl create daset

 

Cette interface utilisateur de Google est toujours en version bêta et présente quelques problèmes. Par exemple, il a automatiquement créé un deuxième «bucket» dans Google Cloud Storage, différent de celui que nous utilisions auparavant. Il a également lié le projet de classificateur d'images à ce nouveau "bucket". Ne vous inquiétez pas, nous transférerons les images d'un bucket à l'autre et vous vous sentirez comme un ingénieur expert en devops :)

Ouvrez un nouvel onglet et accédez au tableau de bord dans le menu de stockage, cliquez sur le bouton "transférer".

 

google cloud storage transfer button

Cliquez maintenant sur "créer un transfert"

 

google cloud storage transfer

 

Vous devez maintenant spécifier que vous souhaitez déplacer les fichiers de votre bucket précédent vers le bucket nouvellement créé. Vous devez donc parcourir la source et la destination.

Veillez également à supprimer les données de la source une fois qu'elles seront transférées à leur destination (pour éviter les doublons) et à exécuter la tâche maintenant.

google cloud bucket to bucket transfer

 

Dans mon cas, l'opération a pris moins de 45 secondes. C'est assez impressionnant, car Google transférait 2000 fichiers d'un centre de données en Europe vers un centre de données aux États-Unis. Assez vite si vous me demandez!

 

google cloud bucket transfer complete

 

Si vous voulez vous assurer que l'opération a été un succès, allez simplement sur le nouveau bucket. Vous verrez les deux dossiers contenant les images.

 

google cloud bucket browsing

 

Ok, vos images sont dans le bon bucket, mais le modèle ne sait toujours pas qu'elles sont là. Vous devez maintenant créer un fichier .csv où vous devez spécifier l'emplacement de chaque image, ainsi que l'étiquette dont il dispose.

Ouvrez Microsoft Excel ou même mieux, les Google sheet et créez un nouveau document.

 

google sheets blank document

 

Laissez ce document ouvert pour l'instant et allez dans le dossier de votre ordinateur contenant les images "hug".

Assurez-vous de voir les fichiers sous forme de liste et non de voir leurs aperçus.

Maintenant, sélectionnez tous les fichiers avec CTRL + E, appuyez sur MAJ et cliquez sur le bouton droit de votre souris. Vous devriez voir une option "copier comme chemin" comme ci-dessous.

 

windows copy as path files

 

Revenez à votre fichier Excel et collez les noms de vos fichiers.

 

create csv file automl vision

 

Vous devriez avoir 1000 lignes dans votre fichier et si vous faites la même chose pour les fichiers "not_hug", vous obtiendrez 2000 lignes dans votre fichier Excel.

Maintenant, vous devez renommer les chemins des images sur votre ordinateur avec le chemin de votre cloud.

Votre chemin d'accès au bucket commence par "gs: //", puis le nom du bucket lui même et le nom du dossier sont séparés par "/"

 

google cloud bucket path

 

dans mon cas particulier, le chemin où se trouvent les images "hug" est comme ceci:

"gs://can-i-hug-it-215408-vcm/hug/"

 

Donc, dans le fichier Excel, tapez CTRL + F puis "plus d'options".

Recherchez et remplacez tous les chemins locaux de votre ordinateur par les chemins d'accès au cloud de google.

 

find and replace fonction in excel

 

Le but est de remplacer toutes les lignes comme ceci:

C:\Utilisateurs\Camilo\Documents\MLAB\programas\ can_i_hug_it\dataset\hug\sample(14).jpg

dans quelque chose comme ça:

gs://can-i-hug-it-215408-vcm/hug/sample(14).jpg

qui est l'emplacement du fichier dans le cloud.

A présent, votre fichier Excel devrait ressembler à ceci:

 

renamed files bucket

 

Maintenant, écrivez le nom des étiquettes sur la deuxième colonne et copiez-les sur toutes les lignes. Dans mon exemple, l'étiquette de toutes ces images est "hug"

 

image path with labels

 

Maintenant, dans le même fichier juste après le dernier enregistrement, répétez le même processus avec les images "not_hug". Rappelez-vous qu'ils sont sur un chemin différent, à la fois sur votre ordinateur et dans le bucket de Google. Attribuez-leur également tous les libellés "not_hug".

Maintenant, si vous avez tout fait correctement, votre fichier Excel devrait ressembler à ceci et vous devriez avoir 2000 lignes dans votre fichier:

 

all image paths with labels

 

Vous devez maintenant exporter votre fichier Excel en tant que fichier .csv. Cliquez sur "Fichier" puis sur "Exporter vers csv".

 

excel export to csv

 

Une fois le fichier créé, accédez au dossier des téléchargements de votre ordinateur et remplacez le nom du fichier par "labels.csv".

 

file rename

 

Maintenant, allez dans votre bucket et importez ce fichier que vous venez de créer, vous devez savoir comment télécharger des fichiers dans le bucket maintenant.

Une fois que vous faites cela, il devrait être visible sur votre bucket.

 

csv file on bucket

 

Ok, maintenant que vous avez vos images et le fichier avec les chemins d'accès à chaque image, ainsi que les étiquettes, retournez à l'interface utilisateur d'AutoML Vision et cliquez sur "Ajouter des images" et "sélectionnez le fichier csv sur le stockage dans le cloud"

 

add images autoML

 

Sélectionnez le chemin où vous avez enregistré votre fichier .csv et cliquez sur "ok".

Cela importera les images sur le projet AutoML.

 

csv path on bucket

 

Cette opération prendra probablement quelques minutes, car elle analyse votre fichier .csv, importe chaque image que vous avez dans votre bucket et lui attribue l'étiquette que vous avez décidé de lui donner.

Profitez-en pour aller chercher un autre café :)

Une fois cela fait, ça devrait ressembler à ça ...

imported complete automl

Comme vous pouvez le voir, toutes mes images n'ont pas été importées, il en manque quelques unes.

Ce n'est pas important, comme je l'ai expliqué précédemment, ce service est toujours en version bêta.

 

Ok, maintenant que vous avez toutes les images avec les étiquettes correctes importées dans AutoML, vous devez maintenant former le modèle. Normalement, c'est l'étape la plus difficile du processus et les professionnels du machine learning peuvent passer des semaines voire des mois à faire cette partie. Mais grâce à google cloud AutoML, vous pouvez maintenant former votre propre modèle en cliquant simplement sur le bouton "train"

 

train model button autoML

 

À ce stade, vous avez la possibilité d'attribuer un budget d'entraînement à votre modèle.

Plus vous entraînez votre modèle, plus il sera précis.

Pour ce nombre d'images, cependant, 10 minutes devraient suffire. De plus, la première heure de formation est actuellement gratuite :)

 

train model automl vision

 

Cliquez sur démarrer l'entraînement.

Google vous dira qu'il entraîne votre modèle et que vous pouvez fermer la fenêtre si vous le souhaitez.

Il vous enverra un email dès que l'entraînement sera terminée!

 

automl vision training in progress

 

Une fois l'entraînement terminé, vous pouvez revenir à votre modèle et voir les résultats de l'entraînement dans l'onglet "évaluer". Dans mon cas, les résultats sont assez impressionnants !!

Je n'entrerai pas dans les détails en expliquant ces résultats, je laisserai ça pour un autre article, mais sachez que mon modèle est précis jusqu'à 98,5%, c'est vraiment incroyable ...

 

model results auto ml vision

Maintenant à la partie la plus sympa. Vous pouvez désormais tester votre modèle!

Trouvez une image sur Internet de quelque chose que vous pouvez prendre dans les bras et de quelque chose que vous ne devriez pas prendre dans les bras. Évidemment, utilisez des images que VOUS N'AVEZ PAS déjà utilisé dans votre dataset d'entraînement.

Vous pouvez tester votre modèle en "prédisant" l'étiquette que votre modèle lui attribue.

 

automl vision predict hug

Maintenant, testez-le avec quelque chose que vous ne pouvez pas prendre dans le bras.

automl vision predict not hug

 

Ça a marché, bravo !!

Vous avez créé un programme fonctionnel qui utilise l’intelligence artificielle pour analyser les images et vous indiquer si elles doivent être prises ou non dans les bras. Et surtout, vous avez tout fait sans coder !!

 

drop mike

 

Vous pouvez maintenant vendre ce logiciel aux fabricants de caméras bébé du monde entier, devenir millionnaire et ensuite m'inviter sur votre île privée :)

 

cash

 

Le machine learning est un domaine incroyable où de nombreux progrès sont réalisés chaque jour. Si vous voulez comprendre comment fonctionne le machine learning et ce que Google fait sous le capot, Contactez moi ou laissez simplement un commentaire ci-dessous.

 

Merci beaucoup d'avoir lu tout ce tutoriel, j'espère que vous l'avez apprécié autant que moi.

 

 

Intelligence Artificielle
Apprentissage profond
Réseaux de neurones
Apprentissage supervisé
Apprentissage automatique