0Pricing
Python Academy · Leçon

Projet de classification d’images

Création d’un modèle CNN de base

Projet de classification d’images est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 5. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 5 leçons au total.

Projet de classification d’images

Projet de classification d’images

Dans ce projet, nous allons construire un CNN simple pour classer des images en différentes catégories. La classification d’images consiste à prédire la catégorie ou l’étiquette d’une image d’entrée.

Projet de classification d’images — illustration 1

Jeu de données pour la classification

Jeu de données pour la classification

Nous utiliserons le jeu de données CIFAR-10, qui contient 60 000 images réparties en 10 catégories, comme les avions, les voitures, les oiseaux et les chats. Chaque image mesure 32×32 pixels et possède 3 canaux de couleur (RGB).

Chargement du jeu de données

Chargement du jeu de données

Nous chargerons le jeu de données CIFAR-10 à l’aide de TensorFlow :

import tensorflow as tf
from tensorflow.keras.datasets import cifar10

# Load dataset
(x_train, y_train), (x_test, y_test) = cifar10.load_data()

# Normalize the pixel values to [0, 1]
x_train = x_train / 255.0
x_test = x_test / 255.0

print("Training data shape:", x_train.shape)

Construction du modèle CNN

Construction du modèle CNN

Nous définirons une architecture CNN composée de couches convolutives, de couches de mise en commun et de couches entièrement connectées :

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# Define the CNN model
model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    MaxPooling2D((2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(10, activation='softmax')
])

Compilation du modèle

Compilation du modèle

Nous compilons le modèle avec :

  • Fonction de perte : Entropie croisée catégorielle pour la classification multiclasse.
  • Optimiseur : Optimiseur Adam pour un apprentissage efficace.
  • Mesures : Exactitude pour évaluer les performances.
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

Entraînement du modèle

Entraînement du modèle

Nous entraînons le modèle à l’aide des données d’entraînement pendant 10 époques. Au cours de l’entraînement, le modèle apprend à classer les images en différentes catégories.

# Train the model
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

Évaluation du modèle

Évaluation du modèle

Après l’entraînement, nous évaluons le modèle sur les données de test afin de vérifier son exactitude :

# Evaluate the model
loss, accuracy = model.evaluate(x_test, y_test)
print(f"Test Accuracy: {accuracy * 100:.2f}%")

Réalisation de prédictions

Réalisation de prédictions

Nous pouvons utiliser le modèle entraîné pour effectuer des prédictions sur de nouvelles images :

# Predict the category of a test image
import numpy as np

sample_image = x_test[0]
sample_label = y_test[0]

prediction = np.argmax(model.predict(sample_image[np.newaxis, ...]))
print(f"Predicted Label: {prediction}, Actual Label: {sample_label[0]}")

Difficultés de la classification d’images

Difficultés de la classification d’images

Les difficultés courantes comprennent :

  • Surapprentissage : Le modèle fonctionne bien sur les données d’entraînement, mais mal sur de nouvelles données.
  • Déséquilibre des classes : Représentation inégale des catégories dans le jeu de données.
  • Coût de calcul : L’entraînement de réseaux profonds nécessite des ressources importantes.

Résumé et prochaines étapes

Résumé et prochaines étapes

Dans ce projet, nous avons :

  • Construit et entraîné un CNN pour la classification d’images à l’aide du jeu de données CIFAR-10.
  • Appris à charger, prétraiter et évaluer le jeu de données.
  • Examiné les difficultés liées aux tâches de classification d’images.

Ensuite, nous explorerons des techniques d’augmentation des données afin d’améliorer les performances du modèle en générant des variantes des images d’entraînement.

Projet de classification d’images — illustration 10

Questions Fréquemment Posées

La leçon « Projet de classification d’images » est-elle gratuite ?

Oui — le texte complet de « Projet de classification d’images » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 5 leçons au total.

Qu'est-ce que j'apprendrai dans « Projet de classification d’images » ?

Création d’un modèle CNN de base Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 5.

Combien de temps prend la leçon « Projet de classification d’images » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Qu’est-ce qu’une donnée image ?
  2. Traitement d’images avec OpenCV
  3. Réseaux neuronaux convolutifs (CNN)
  4. Projet de classification d’images
  5. Techniques d’augmentation des données
← Retour à Python Academy