Comment faire un classificateur d'images sans coder. Partie 3
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 !!
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.
Vous devrez accepter les termes et conditions
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
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.
Maintenant, avant de commencer, vous devez créer un nouveau projet. Cliquez ici
Allez-y et créez un nouveau projet.
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.
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.
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".
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.
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".
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.
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é.
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"
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
Assurez-vous que les trois API mentionnées ci-dessus sont activées ou activez-les maintenant.
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"
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"
Donnez-lui un nom (il doit être unique), sélectionnez votre région et laissez toutes les autres options intactes. Cliquez sur "créer"
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".
Maintenant, allez simplement dans le dossier "hug" et téléchargez vos images "hug" en cliquant sur "upload files".
Vous pouvez soumettre plusieurs images en même temps, en cliquant sur CTRL + E dans votre explorateur, puis en cliquant sur "Ouvrir".
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.
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".
Et allez prendre un café en attendant que les images soient téléchargées.
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.
Sélectionnez votre projet et cliquez sur "continuer".
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.
Créez un nouveau dataset, donnez-lui un nom et cochez l'option indiquant que vous importerez les images ultérieurement.
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".
Cliquez maintenant sur "créer un transfert"
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.
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!
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.
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.
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.
Revenez à votre fichier Excel et collez les noms de vos fichiers.
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 "/"
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.
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:
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"
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:
Vous devez maintenant exporter votre fichier Excel en tant que fichier .csv. Cliquez sur "Fichier" puis sur "Exporter vers 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".
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.
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"
Sélectionnez le chemin où vous avez enregistré votre fichier .csv et cliquez sur "ok".
Cela importera les images sur le projet AutoML.
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 ...
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"
À 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 :)
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!
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 ...
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.
Maintenant, testez-le avec quelque chose que vous ne pouvez pas prendre dans le bras.
Ç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 !!
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 :)
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.
- Se connecter pour poster des commentaires