1) Teachable Machine
Comment entraîner des images avec Teachable Machine et créer un modèle d'IA.

Notions théoriques
Qu'est-ce que Teachable Machine ?
Teachable Machine est un outil en ligne développé par Google qui facilite la création de modèles d'IA.
Nous allons utiliser Teachable Machine pour créer un modèle de reconnaissance d'images en quelques étapes simples.
Voyons les 4 concepts clés à comprendre :
- Convolutional Neural Network (CNN)
- Le Transfer Learning
- L'Architecture et les Poids
- Les labels
Réseau de neurones convolutif
Teachable Machine utilise un type spécial de réseau de neurones appelé Réseau de Neurones Convolutif ou Convolutional Neural Network (CNN), spécialement conçu pour traiter les images.
Pour comprendre comment un Réseau de Neurones Convolutif fonctionne, il faut imaginer comment notre propre cerveau traite une image. Nous ne voyons pas "une voiture" instantanément. Nous voyons d'abord des lignes, puis des formes, puis nous en déduisons que c'est une voiture.
Qu'est-ce qu'une convolution ?
Une convolution est une opération mathématique (somme pondérée) qui extrait des motifs locaux dans une image en combinant les valeurs des pixels d’une petite zone (appelée fenêtre ou kernel) autour de chaque point. Le résultat est un nouveau pixel qui résume l ’information locale.

Une convolution permet ainsi d'extraire des caractéristiques spécifiques d'une image, comme les bords, les textures ou les motifs.
Un Réseau de Neurones Convolutif (CNN) est constitué d'une superposition de filtres successifs qui scrutent l'image étape par étape :
- Les premières couches (Le détail) : Elles ne voient que des pixels. Elles cherchent des choses toutes simples : une ligne verticale, une bordure horizontale, un changement de couleur brutal.
- Les couches intermédiaires (La forme) : Elles combinent les lignes. Elles commencent à reconnaître des cercles, des carrés, des textures (comme les poils d'un animal ou le grain du bois).
- Les dernières couches (Le sens) : C'est ici que la magie opère. Elles assemblent les formes pour identifier des concepts complets : une oreille pointue, une feuille d'arbre, une main fermée.
CNN est une suite d'opérations visuelles. Chaque étape extrait des informations de plus en plus complexes, jusqu'à ce que le modèle puisse dire : "Ceci est une voiture" ou "Ceci est une pomme".
Le Transfer Learning
Si vous deviez apprendre à un ordinateur à voir à partir de zéro, il faudrait des millions d'images et des jours de calcul intensif. C'est là qu'intervient la technologie clé de Teachable Machine : le Transfer Learning (apprentissage par transfert).
Le Transfer Learning, c'est l'astuce pour aller vite.
Pourquoi réinventer la roue ? Teachable Machine utilise un modèle qui a déjà passé des années à "étudier" le monde (sur des bases de données géantes comme ImageNet). Ce modèle sait déjà ce qu'est une texture, une ombre ou une courbe.
- Ce que nous faisons : Nous figeons les connaissances de base de ce modèle (il sait déjà voir).
- Ce que nous ajoutons : Nous n'entraînons que la toute fin du réseau (les dernières couches) pour qu'il spécialise sa vision sur vos classes spécifiques.
C'est comme si vous recrutiez un expert en vision générale, et que vous lui donniez une formation rapide de quelques heures uniquement pour reconnaître vos produits. C'est ce qui permet d'obtenir un résultat puissant avec seulement quelques dizaines de vos photos.
L'Architecture et les Poids
Une fois l'apprentissage terminé, vous exportez un modèle (fichier .h5).
Mais qu'y a-t-il vraiment dans un modèle ?
Architecture et Poids sont les 2 éléments clés du modèle d'IA.
Les 2 composants inséparables d'un modèle d'IA sont :
- L'Architecture (Le plan) : C'est la structure du réseau. Combien de couches ? De quelle taille ? Comment sont-elles connectées ? Sans cela, pas de cerveau.
- Les Poids (La mémoire) : C'est le résultat de l'entraînement. Chaque connexion entre deux neurones possède une "force" (un poids). Au départ, ces forces sont aléatoires. En voyant vos images, le modèle ajuste ces millions de petits curseurs pour réduire les erreurs.
Quand vous jouez à un jeu vidéo :
- l'architecture, c'est le moteur du jeu (le logiciel),
- les poids, c'est votre partie sauvegardée (votre progression).
Si vous avez le moteur mais pas la sauvegarde, vous ne pouvez pas reprendre là vous en étiez.
Les labels
Il y a une dernière subtilité importante à connaître. Le réseau de neurones est un mathématicien pur. Il ne parle pas français.
En sortie, le réseau de neurones nous donne des probabilités numériques :
- Sortie du modèle : "Classe 0 : 95%, Classe 1 : 5%"
C'est là que le fichier labels.txt intervient. Il fait le lien entre le langage de la machine et le français :
- Contenu de labels.txt :
Pierre
Feuille
Sans ce fichier, votre programme Python indiquera qu'il s'agit de la Classe 0, mais nous ne saurons pas qu'il s'agit d'une Pierre.
Les labels (étiquettes) stockées dans le fichier labels.txt font le lien entre les indices numériques (0, 1, 2, ...) et les noms compréhensibles par un humain ("Pierre", "Feuille", "Ciseaux").
Le fichier labels.txt est donc le dictionnaire indispensable pour rendre l'IA compréhensible par un humain.
Exemple pratique
Voici un exemple de création d'un modèle de reconnaissance des gestes de la main inspiré du jeu Pierre-Feuille-Ciseaux (appelé aussi Chifoumi).

Pour créer ce modèle d'IA avec Teachable Machine, et apprendre à reconnaitre les gestes "Pierre", "Feuille" et "Ciseaux" :
- on peut utiliser le jeu de données
Rock Paper Scissorshébergé publiquement par TensorFlow, qui contient des milliers d'images de mains dans les 3 positions (Pierre, Feuille, Ciseaux) téléchargeable à l'adresse suivante : https://storage.googleapis.com/learning-datasets/rps.zip. - Il faut ensuite se rendre sur le site https://teachablemachine.withgoogle.com/ et sélectionner "Image Project".
- Puis attendre la fin du cycle d'entraînement.
- Et enfin exporter le modèle (
keras_model.h5au format Keras) et les labels (labels.txt).
Les 2 fichiers keras_model.h5 et labels.txt seront nécessaires pour notre code en Python, lors de la prochain tutoriel avec TensorFlow.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes

Nous allons créer un modèle d'intelligence artificielle capable de reconnaître les symboles du jeu "Pierre-Feuille-Ciseaux".
Le jeu "Pierre-Feuille-Ciseaux" est aussi appelé "Chifoumi" : https://fr.wikipedia.org/wiki/Pierre-feuille-ciseaux.
Vous allez utiliser des images existantes pour entraîner le modèle, puis exporter le modèle au format Keras et les labels associés.
Les 2 fichiers keras_model.h5 et labels.txt seront nécessaires pour notre code en Python, lors de la prochain tutoriel avec TensorFlow.
1. Récupération des données
Commencez par télécharger le jeu de données "Rock Paper Scissors" fourni par TensorFlow.
Le jeu de données "Rock Paper Scissors" (fichier
rps.zip) contient des milliers d'images déjà labellisées "Pierre", "Feuille" ou "Ciseaux".

Téléchargez le fichier rps.zip à l'adresse suivante : https://storage.googleapis.com/learning-datasets/rps.zip.
Une fois le téléchargement terminé, décompressez le fichier rps.zip pour obtenir un dossier contenant 3 sous-dossiers :
rock(pour Pierre),paper(pour Feuille)- et
scissors(pour Ciseaux).
Ces 3 dossiers contiennent les images que nous allons utiliser pour l'entraînement.
2. Initialisation du projet
Pour créer un nouveau modèle d'IA dédié à la classification d'images, rendez-vous sur le site : https://teachablemachine.withgoogle.com/.

Sur la page d'accueil, il suffit de :
-
cliquer sur le bouton Commencer

-
choisir le type de projet Projet Images

-
choisir le mode Modèle d'image standard

3. La classe "Pierre"

Nous allons commencer par enseigner au modèle ce qu'est une "Pierre" :
-
Dans l'interface, repérez la 1ère classe (nommée "Class 1") et renommez-la en "Pierre".
-
Ensuite, cliquez sur le bouton Importer
-
Puis cliquez sur "Sélectionnez des images de vos fichiers ou faites-les glisser et déposez-les ici"
-
Enfin sélectionnez environ 200 images provenant du dossier
rps/rock(que vous avez décompressé précédemment).Par exemple, vous pouvez sélectionner les fichiers
rock01-000.pngàrock02-079.png.
infoVous verrez les vignettes apparaître sous la classe "Pierre".
4. La classe "Feuille"
Le modèle doit maintenant apprendre à reconnaître une "Feuille" :
-
Dans l'interface, repérez la 2ème classe (nommée "Class 2") et renommez-la en "Feuille".
-
Ensuite, cliquez sur le bouton Importer
-
Puis cliquez sur "Sélectionnez des images de vos fichiers ou faites-les glisser et déposez-les ici"
-
Enfin sélectionnez environ 200 images provenant du dossier
rps/paper(que vous avez décompressé précédemment).Par exemple, vous pouvez sélectionner les fichiers
paper01-000.pngàpaper02-079.png.
infoVous verrez les vignettes apparaître sous la classe "Feuille".
5. La classe "Ciseaux"
Pour terminer la configuration du jeu de données, il est nécessaire d'ajouter la 3ème classe "Ciseaux" :
-
Dans l'interface, cliquez sur le bouton Ajouter une classe situé en dessous des 2 premières classes.
-
Repérez la 3ème classe (nommée "Class 3") et renommez-la en "Ciseaux".
-
Ensuite, cliquez sur le bouton Importer
-
Puis cliquez sur "Sélectionnez des images de vos fichiers ou faites-les glisser et déposez-les ici"
-
Enfin sélectionnez environ 200 images provenant du dossier
rps/scissors(que vous avez décompressé précédemment).Par exemple, vous pouvez sélectionner les fichiers
scissors01-000.pngàscissors02-079.png.
infoVous verrez les vignettes apparaître sous la classe "Ciseaux".
6. Lancement de l'entraînement
Maintenant que les données sont prêtes, vous allez lancer le processus mathématique qui permettra au réseau de neurones d'apprendre les caractéristiques visuelles de chaque geste :
-
Cliquez dessus sur le bouton Entrainer le modèle.
infoC'est le moment où le Transfer Learning opère...
- Ne fermez pas l'onglet, le modèle est en train d'apprendre.
- C'est à dire que le réseau de neurones ajuste ses poids pour distinguer vos 3 classes.

-
Attendez que s'affiche Modèle entrainé.

7. Test du modèle
Avant d'exporter, il est crucial de vérifier si le modèle fonctionne correctement en conditions réelles.
Vous allez tester le modèle en utilisant votre webcam pour faire les gestes "Pierre", "Feuille" et "Ciseaux".
-
Vérifiez que l'Entrée est bien Activé
-
Autorisez l'accès à la webcam si le navigateur vous le demande.
-
Observez l'image de la webcam qui s'affiche à l'écran.
-
Sous l'image, vous verrez les 3 barres de confiance correspondant aux 3 classes.
-
Montrez votre main faisant un geste (Pierre, Feuille ou Ciseaux) devant la caméra et observez la barre de confiance qui s'affiche.

8. Exportation au format Keras
L'objectif final est de récupérer les fichiers du modèle pour les utiliser, ultérieurement, dans un programme en Python :

- Cliquez sur le bouton "Exporter le modèle" en haut à droite.

Dans la fenêtre qui s'ouvre :
- cliquez sur l'onglet Tensorflow
- sélectionnez le format Keras
- puis cliquez sur le bouton Télécharger mon modèle
- et attendez que la conversion se termine...
Une fois la conversion terminée, un fichier ZIP (
converted_keras.zip) sera automatiquement téléchargé.
Veuillez décompresser le fichier converted_keras.zip, il contient 2 fichiers essentiels :
keras_model.h5(le modèle d'IA)labels.txt(le traducteur)
Conservez ces 2 fichiers précieusement, ils seront nécessaires pour le prochain tutoriel.