Le Machine Learning Blog

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

 

computer vision

Ceci est le deuxième article d'une série de trois articles, expliquant comment construire un classificateur d'images sans coder. Si vous n'avez pas lu la partie 1, s'il vous plaît lisez-la ici avant de continuer.

Maintenant que nous avons décidé de construire un classificateur d'images avec deux classes, nous aurons besoin d'un dataset d'images propre. Dans mon exemple, j'ai décidé de créer un classificateur d'images capable de juger si un bébé peut ou non prendre dans ses bras un objet en toute sécurité. Mon classificateur d'images s'appellera "can_I_hug_it".

 

can i hug it

 

J'ai choisi cette classification exprès car c'est quelque chose de très subjectif et difficile à expliquer avec des mots et des règles. Qu'est-ce qui rend un objet ou une chose sûre? la forme est certes très importante, mais aussi les matériaux, la taille et d'autres propriétés. Est-il sûr de prendre un chien dans ses bras? Ça dépend. Si c'est un petit chien mignon, oui, pourquoi pas? Mais si nous parlons d'un rottweiler enragé, il serait préférable de ne pas le faire et de partir le plus tôt possible. Est-il possible de prendre dans les mains une araignée? seulement si c'est un jouet… vous avez compris l'idée, j'espère...

toy spider

Nous allons construire notre dataset de données avec des images provenant d'Internet. Nous utiliserons google images ainsi que “Fatkun batch download l'image”, Un plug-in de chrome gratuit qui vous permet de télécharger des images par lots depuis n'importe quelle page. Commencez par ajouter le plug-in «Fatkun batch download image» à votre navigateur.

 

fatkun image download

 

Maintenant, allez sur google images et tapez le nom de quelque chose que vous pouvez prendre dans les bras, comme par exemple «lapin» et cliquez sur le plug-in que vous venez d'installer dans le coin supérieur droit de votre navigateur. Cliquez sur "seulement cet onglet", sinon vous obtiendrez toutes les images de tous les onglets ouverts sur chrome.

 

bunnies

Cela ouvrira le plugin et sélectionnera toutes les images que vous avez obtenues de Google.

Cliquez sur les images que vous souhaitez désélectionner. Vous devez vous assurer que votre dataset est propre, alors assurez-vous de ne sélectionner que les images de lapins que vous pouvez prendre dans les bras. Essayez d'éviter les dessins, les images floues, les images de choses imaginaires ou les dessins animés et les faux positifs comme des photos de lapins effrayants. Rappelez-vous que la fiabilité de votre classificateur d'images dépend de la fiabilité des images d'entraînement que vous utilisez.

 

bunnies selection

 

Avant de télécharger les images, cliquez sur "Plus d'options" pour renommer automatiquement les images téléchargées, en commençant par le préfixe "bunny".

 

fatkun options

 

Assurez-vous que dans les paramètres de chrome, l'option qui demande où télécharger chaque image n'est pas activée, sinon vous obtiendrez une fenêtre pop-up pour chaque image que vous téléchargez et ce sera agaçant.

 

chrome settings do not ask where to download

Par défaut, les images seront téléchargées dans votre dossier "downloads".

Maintenant que vous avez téléchargé quelques images de lapins, faites le même exercice pour d'autres choses qui peuvent être prises dans les bras. Voici les mots de recherche que j'ai utilisés:

  1. Lapin
  2. Bébé
  3. Peluche
  4. Boa de plumes
  5. Chien gentil
  6. Minou
  7. Porcelet
  8. Oreiller
  9. Poussin
  10. Chemise

N'oubliez pas de changer le préfixe des fichiers à chaque fois que vous effectuez une nouvelle recherche sur google, sinon le plug-in essaiera de réécrire les articles avec le même nom et vous obtiendrez des pop-ups pour vous dire qu'il existe déjà un fichier avec ce nom.

 

puppy fatkun download

 

Répétez le processus jusqu'à ce que vous ayez 1000 images de choses que vous pouvez prendre dans les bras. Copiez maintenant toutes ces images dans un dossier de votre ordinateur appelé "hug".

Lorsque vous avez terminé, votre dossier devrait ressembler à ceci.

 

hug dataset

Répétez maintenant le processus pour les choses que vous ne devriez pas prendre dans les bras "not_hug". Voici les mots-clés que j'ai utilisés dans ma recherche sur google images:

  1. Hache
  2. Cactus
  3. Hérisson
  4. Clown tueur
  5. Couteau
  6. Chien effrayant
  7. Scie
  8. Araignée

Comme précédemment, assurez-vous que vous obtenez 1000 images de choses qui ne sont pas sûrs de prendre dans les bras et que vous les avez toutes dans un dossier appelé "not_hug".

À ce stade, vous devriez avoir deux dossiers de 1000 images chacun.

 

hug and not hug dataset

Passez rapidement en revue les images et assurez-vous qu'elles représentent toutes les deux les étiquettes que vous avez.

Maintenant que nous avons un ensemble de données propre, nous devons renommer chaque fichier dans ces dossiers pour pouvoir les manipuler ultérieurement.

Notez que si vous avez MacOS, vous pouvez utiliser une petite application gratuite qui effectue toutes les étapes suivantes. Il s'appelle NameChanger et vous pouvez le télécharger ici.

 

Si vous avez un ordinateur Windows, voici ce que vous devez faire:

Ouvrez le dossier "hug" et tapez CTRL + E pour sélectionner tous les fichiers. Cliquez sur le premier fichier avec le bouton droit de votre souris et sélectionnez l'option «changer le nom».

 

file name change batch windows

 

Renommez tous les fichiers en «sample»

 

file name change batch windows

 

Cela changera les noms de tous les fichiers sélectionnés.

Tous vos fichiers doivent s'appeler maintenant sample (1) .jpg, sample (2) .jpg, etc.

 

file name change batch windows

Maintenant, nous devons supprimer les espaces des noms de fichiers. Nous devons renommer "sample (12) .jpg" en "sample(12).jpg". Il est nécessaire de faire cette étape, car le service de Google que nous utiliserons n'accepte pas les espaces dans les noms de fichiers ni dans les noms d'étiquettes. Je sais que j'ai promis qu'il n'y avait pas de code ici, mais à moins que vous ne vouliez renommer tous les fichiers manuellement, vous devez utiliser un petit script que j'ai préparé pour vous.

 

Si vous avez un ordinateur Windows, allez dans le dossier “hug”. Cliquez sur le bouton droit de votre souris et sélectionnez l’option «nouveau» puis «fichier texte».

 

new text document

 

Ouvrez le fichier dans n'importe quelle application d'édition de texte comme notepad et copiez ces lignes de texte:

 

: renameNoSpace [/ R] [FolderPath]
@Écho off
setlocal disableDelayedExpansion
si / i "% ~ 1" == "/ R" (
définir "forOption =% ~ 1% 2"
définir "inPath ="
) autre (
définir "forOption ="
if "% ~ 1" neq "" (définir "inPath =% ~ 1 \") sinon définir "inPath ="
)
pour% forOption% %% F dans ("% inPath% * *") fait (
si / i "% ~ f0" neq "%% ~ fF" (
set "folder = %% ~ dpF"
set "fichier = %% ~ nxF"
setlocal enableDelayedExpansion
echo ren "! folder !! file!" "! fichier: =!"
ren "! folder !! file!" "! fichier: =!"
endlocal
)
)

 

Enregistrez et fermez le fichier.

Faites un clic droit sur votre fichier et changez son nom et son extension en «renameNoSpace.bat»

file extension change

 

Windows vous demandera si vous êtes sûr de vouloir modifier l'extension du fichier, cliquez sur "oui".

Si le script que vous avez créé se trouve dans le même dossier que les images, vous pouvez simplement double-cliquer dessus et il renommera automatiquement tous vos fichiers en effaçant les espaces dans les noms.

À ce stade, tous vos noms de fichiers dans le dossier «hug» doivent être nommés sample(1).jpg, sample(2).jpg, etc.

 

files rename no spaces

 

Faites maintenant la même chose pour les fichiers du dossier “not_hug”, mais nommez les fichiers “example”, au lieu de “sample”.

À ce stade, votre jeu de données d'images devrait ressembler à ceci sur votre ordinateur:

 

proper can i hug it dataset

 

Maintenant que vous disposez d'un dataset correct et propre et que tous les fichiers sont nommés correctement, vous devrez créer votre classificateur d'images avec Google Cloud Vision Auto ML, lisez la troisième partie de cet article.

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