Learn AI with Python · Lezione

Progetto di classificazione delle immagini

Impari a creare un modello CNN di base.

Lezione 4 di 510 passaggi

Progetto di classificazione delle immagini è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 4 di 5. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 5 lezioni in totale.

Progetto di classificazione delle immagini

In questo progetto realizzeremo una CNN semplice per classificare le immagini in categorie. La classificazione delle immagini consiste nel prevedere la categoria o l'etichetta di un'immagine di input.

Progetto di classificazione delle immagini — illustrazione 1

Dataset per la classificazione

Utilizzeremo il dataset CIFAR-10, che contiene 60.000 immagini suddivise in 10 categorie, tra cui aeroplani, automobili, uccelli e gatti. Ogni immagine misura 32×32 pixel e dispone di 3 canali di colore (RGB).

Caricamento del dataset

Caricheremo il dataset CIFAR-10 usando 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)

Creazione del modello CNN

Definiremo un'architettura CNN con livelli convoluzionali, di pooling e completamente connessi:

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')
])

Compilazione del modello

Compiliamo il modello con:

  • Funzione di perdita: entropia incrociata categoriale per la classificazione multiclasse.
  • Ottimizzatore: ottimizzatore Adam per un apprendimento efficiente.
  • Metriche: accuratezza per valutare le prestazioni.
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

Addestrare il modello

Addestriamo il modello utilizzando i dati di addestramento per 10 epoche. Durante l'addestramento, il modello impara a classificare le immagini in categorie.

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

Valutazione del modello

Dopo l'addestramento, valutiamo il modello sui dati di test per verificarne l'accuratezza:

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

Esecuzione delle previsioni

È possibile usare il modello addestrato per fare previsioni su nuove immagini:

# 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]}")

Sfide nella classificazione delle immagini

Le sfide più comuni includono:

  • Overfitting: il modello funziona bene sui dati di addestramento, ma male sui nuovi dati.
  • Sbilanciamento delle classi: rappresentazione non uniforme delle categorie nel dataset.
  • Costo computazionale: l'addestramento di reti profonde richiede risorse considerevoli.

Riepilogo e passaggi successivi

In questo progetto abbiamo:

  • Creato e addestrato una CNN per la classificazione delle immagini usando il dataset CIFAR-10.
  • Imparato a caricare, preprocessare e valutare il dataset.
  • Discusso le sfide delle attività di classificazione delle immagini.

Successivamente esploreremo tecniche di data augmentation per migliorare le prestazioni del modello generando variazioni delle immagini di addestramento.

Progetto di classificazione delle immagini — illustrazione 10
Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
53
Lezioni
225

Domande Frequenti

La lezione «Progetto di classificazione delle immagini» è gratuita?

Sì — il testo completo di «Progetto di classificazione delle immagini» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 5 lezioni in totale.

Cosa imparerò in «Progetto di classificazione delle immagini»?

Impari a creare un modello CNN di base. Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 5.

Quanto tempo richiede la lezione «Progetto di classificazione delle immagini»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Che cos'è un'immagine digitale?
  2. Elaborazione delle immagini con OpenCV
  3. Reti neurali convoluzionali (CNN)
  4. Progetto di classificazione delle immagini
  5. Tecniche di data augmentation
← Torna a Learn AI with Python