Vision par ordinateur pour débutants : Construire un classificateur d'images
La vision par ordinateur permet à l'IA de comprendre et de traiter les informations visuelles. Ce guide vous accompagne dans la construction de votre premier classificateur d'images.
Qu'est-ce que la vision par ordinateur ?
La vision par ordinateur est le domaine de l'IA qui apprend aux ordinateurs à interpréter et comprendre le monde visuel. Les applications incluent :
- Classification d'images (qu'y a-t-il sur cette photo ?)
- Détection d'objets (où sont les objets ?)
- Segmentation d'images (quels pixels appartiennent à quel objet ?)
- Reconnaissance faciale (qui est cette personne ?)
Configuration
pip install tensorflow matplotlib numpy pillow
Chargement des données
Nous utiliserons le jeu de données CIFAR-10 (60 000 images couleur 32x32 en 10 classes) :
import tensorflow as tf
from tensorflow import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
# Normaliser les valeurs des pixels
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255
Construction d'un réseau de neurones convolutionnel
model = keras.Sequential([
keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(32,32,3)),
keras.layers.MaxPooling2D(2,2),
keras.layers.Conv2D(64, (3,3), activation='relu'),
keras.layers.MaxPooling2D(2,2),
keras.layers.Flatten(),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
model.compile(
optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy']
)
Entraînement
history = model.fit(
x_train, y_train,
batch_size=64,
epochs=10,
validation_data=(x_test, y_test)
)
Utiliser le transfert d'apprentissage
Pour de meilleurs résultats avec moins de données, utilisez un modèle pré-entraîné :
base_model = keras.applications.MobileNetV2(
input_shape=(224,224,3),
include_top=False,
weights='imagenet'
)
base_model.trainable = False # Geler les couches de base
model = keras.Sequential([
keras.layers.Resizing(224,224),
base_model,
keras.layers.GlobalAveragePooling2D(),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
Détection d'objets avec YOLO
Pour détecter plusieurs objets dans une image, utilisez YOLO (You Only Look Once) :
pip install ultralytics
yolo predict model=yolov8n.pt source='image.jpg'
Application concrète : Agriculture marocaine
Une équipe de chercheurs marocains a construit un système de vision utilisant le transfert d'apprentissage qui :
- Identifie les maladies des cultures à partir de photos de smartphones
- Atteint 94% de précision sur les variétés locales
- Fonctionne hors ligne sur les appareils mobiles
- Aide les agriculteurs à diagnostiquer les problèmes précocement
Prochaines étapes
- Essayez le traitement vidéo en temps réel
- Construisez une application mobile avec vision embarquée
- Explorez la génération d'images avec les modèles de diffusion
Notre « AI Builder Bootcamp » couvre la vision par ordinateur avec des projets concrets.