0Pricing
Python Academy · Lezione

Progetto di classificazione delle immagini

Creazione di un modello CNN di base.

Progetto di classificazione delle immagini è una lezione Python Academy 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 Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 5 lezioni in totale.

Progetto di classificazione delle immagini

Progetto di classificazione delle immagini

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

Progetto di classificazione delle immagini — illustrazione 1

Dataset per la classificazione

Dataset per la classificazione

Utilizzeremo il dataset CIFAR-10, costituito da 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

Caricamento del dataset

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

Costruzione del modello CNN

Costruzione 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

Compilazione del modello

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

Addestramento del modello

Addestramento del modello

Addestreremo 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

Valutazione del modello

Dopo l'addestramento, valuteremo 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}%")

Effettuare previsioni

Effettuare previsioni

Possiamo utilizzare il modello addestrato per effettuare 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

Sfide nella classificazione delle immagini

Tra le sfide più comuni troviamo:

  • 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 significative.

Riepilogo e prossimi passi

Riepilogo e prossimi passi

In questo progetto abbiamo:

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

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

Progetto di classificazione delle immagini — illustrazione 10

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 Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 5 lezioni in totale.

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

Creazione di un modello CNN di base. Eserciti Python Academy 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 Python Academy?

Non è richiesta alcuna esperienza precedente. Python Academy 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 Python Academy?

Sì. Ogni lezione Python Academy 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 cosa sono i dati delle immagini?
  2. Elaborazione delle immagini con OpenCV
  3. Reti neurali convoluzionali (CNN)
  4. Progetto di classificazione delle immagini
  5. Tecniche di aumento dei dati
← Torna a Python Academy