Leçon 1 — Ce qu'un ordinateur voit d'une image
Une image est un tableau de nombres
Quand vous regardez une photographie de chat, vous voyez un chat. Quand un ordinateur la reçoit, il reçoit une grille de nombres.
Une image en niveaux de gris de 224 pixels de côté est un tableau de 224 lignes et 224 colonnes, chaque case contenant une valeur d'intensité entre 0 pour le noir et 255 pour le blanc. Soit 50 176 nombres.
Une image en couleurs est trois tableaux superposés : un pour le rouge, un pour le vert, un pour le bleu. Ce sont les canaux. La même image de 224 pixels de côté devient donc 224 × 224 × 3, soit 150 528 nombres. Cet empilement s'appelle un tenseur, et c'est la seule chose que le modèle recevra jamais.
C'est la taille d'entrée des grands modèles pré-entraînés sur ImageNet, devenue une convention de fait. Vos images sont redimensionnées à cette taille avant d'entrer dans le réseau, ce qui a une conséquence pratique importante : un défaut plus petit que quelques pixels après redimensionnement devient invisible. Sur du contrôle qualité fin, il faut donc travailler sur des imagettes découpées plutôt que sur l'image entière réduite.
Le vrai problème : le même objet ne produit jamais deux fois la même grille
Voilà où la difficulté se niche. Photographiez le même chat deux fois et aucun nombre de la grille n'est identique. Il suffit de :
- un éclairage différent, qui décale toutes les valeurs ;
- un angle différent, qui redistribue complètement la géométrie ;
- une distance différente, qui change l'échelle ;
- un arrière-plan différent, qui remplit la majorité des pixels ;
- une occlusion partielle, un objet devant le chat ;
- un capteur différent, avec sa propre balance des couleurs et son propre bruit.
Un humain reconnaît le chat dans les six cas sans effort. Pour le modèle, ce sont six tenseurs numériquement très éloignés qui doivent tous mener à la même conclusion.
C'est ce qu'on appelle la variance intra-classe : les différences entre deux images d'un même objet sont souvent plus grandes que les différences entre deux images d'objets distincts. Un chat noir en contre-jour ressemble plus, numériquement, à un chien noir en contre-jour qu'à un chat roux en pleine lumière.
Cette phrase est la clé de tout projet de vision : votre jeu d'entraînement doit couvrir la variabilité réelle, sinon le modèle apprendra la variabilité que vous lui avez montrée et rien d'autre.
Pourquoi les anciennes méthodes plafonnaient
Avant 2012, on procédait en deux temps. Un ingénieur concevait à la main des descripteurs — des fonctions qui résument une image en quelques centaines de nombres censés être stables : histogrammes de gradients, points d'intérêt, textures. Puis on entraînait un classifieur classique sur ces descripteurs.
Cela fonctionnait, moyennement. Chaque descripteur était le fruit de mois de travail, restait spécifique à un type de problème, et il fallait souvent en combiner plusieurs. Le taux d'erreur sur le concours de référence ImageNet stagnait autour de 26 %.
En 2012, un réseau convolutif profond a fait tomber ce chiffre à 16 % d'un coup. Sa particularité : personne n'avait conçu ses descripteurs. Le réseau les avait appris à partir des pixels. En 2015, les modèles passaient sous le taux d'erreur humain sur cette tâche.
Le basculement est le même que dans le reste de l'apprentissage profond : on est passé de « décrire les caractéristiques utiles » à « laisser le modèle les découvrir ».
Le prétraitement que tout le monde applique
Entre votre fichier image et le modèle, quatre opérations sont quasi systématiques. Les connaître évite des heures de débogage.
Le redimensionnement ramène toutes les images à la taille attendue. Attention au rapport d'aspect : un redimensionnement qui écrase l'image déforme les objets, alors qu'un recadrage perd de l'information sur les bords. Les deux stratégies sont défendables, il faut juste la même à l'entraînement et en production.
La mise à l'échelle des valeurs ramène les intensités de l'intervalle 0-255 vers un intervalle centré, souvent en soustrayant une moyenne et en divisant par un écart-type. Utiliser une normalisation différente de celle du modèle pré-entraîné est l'erreur la plus fréquente des débutants, et elle se traduit par des prédictions absurdes sans message d'erreur.
L'augmentation de données crée artificiellement de la variété à l'entraînement : rotations, symétries, variations de luminosité, recadrages aléatoires, léger flou. C'est le levier le plus rentable quand on manque d'images, et il simule précisément la variabilité de prise de vue décrite plus haut.
L'ordre des canaux. Certaines bibliothèques lisent les canaux dans l'ordre bleu-vert-rouge, d'autres rouge-vert-bleu. Une inversion silencieuse dégrade les performances sans lever d'exception. C'est un classique.
Retourner horizontalement une photographie de chat produit une image plausible. Retourner une radiographie ou une image de circuit imprimé produit une image qui n'existe pas dans la réalité, et le modèle apprend une invariance fausse. Choisissez vos augmentations en fonction de ce que le capteur peut réellement produire.
À retenir
- Une image est un tenseur : hauteur × largeur × canaux, soit environ 150 000 nombres pour une entrée standard.
- Le même objet produit des grilles numériquement très différentes selon l'éclairage, l'angle, l'échelle, le fond et le capteur.
- La variance intra-classe dépasse souvent la variance inter-classe : c'est le cœur de la difficulté.
- Les descripteurs conçus à la main plafonnaient ; le deep learning les apprend.
- Le prétraitement — redimensionnement, normalisation, augmentation, ordre des canaux — doit être identique à l'entraînement et en production.
Leçon suivante — La convolution : détecter un motif partout dans l'image →