0Pricing
Python Academy · Lekcja

Projekt klasyfikacji obrazów

Budowanie podstawowego modelu CNN

Projekt klasyfikacji obrazów to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 4 z 5. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 5 lekcji w sumie.

Projekt klasyfikacji obrazów

Projekt klasyfikacji obrazów

W tym projekcie zbudujemy prostą sieć CNN do klasyfikowania obrazów według kategorii. Klasyfikacja obrazów polega na przewidywaniu kategorii lub etykiety obrazu wejściowego.

Projekt klasyfikacji obrazów — ilustracja 1

Zbiór danych do klasyfikacji

Zbiór danych do klasyfikacji

Użyjemy zbioru danych CIFAR-10, który składa się z 60 000 obrazów należących do 10 kategorii, takich jak samoloty, samochody, ptaki i koty. Każdy obraz ma rozmiar 32×32 piksele i 3 kanały kolorów (RGB).

Wczytywanie zbioru danych

Wczytywanie zbioru danych

Wczytamy zbiór danych CIFAR-10 za pomocą 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)

Tworzenie modelu CNN

Tworzenie modelu CNN

Zdefiniujemy architekturę CNN z warstwami konwolucyjnymi, poolingowymi i w pełni połączonymi:

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

Kompilowanie modelu

Kompilowanie modelu

Kompilujemy model z użyciem:

  • Funkcja straty: Kategorycznej entropii krzyżowej do klasyfikacji wieloklasowej.
  • Optymalizator: Optymalizatora Adam zapewniającego wydajne uczenie.
  • Metryki: Dokładności do oceny wydajności.
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

Trenowanie modelu

Trenowanie modelu

Trenujemy model za pomocą danych treningowych przez 10 epok. Podczas trenowania model uczy się klasyfikować obrazy według kategorii.

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

Ocena modelu

Ocena modelu

Po wytrenowaniu oceniamy model na danych testowych, aby sprawdzić jego dokładność:

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

Generowanie predykcji

Generowanie predykcji

Możemy użyć wytrenowanego modelu do generowania predykcji dla nowych obrazów:

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

Wyzwania w klasyfikacji obrazów

Wyzwania w klasyfikacji obrazów

Do typowych wyzwań należą:

  • Przeuczenie: Model działa dobrze na danych treningowych, ale słabo na nowych danych.
  • Nierównowaga klas: Nierówna reprezentacja kategorii w zbiorze danych.
  • Koszt obliczeniowy: Trenowanie głębokich sieci wymaga znacznych zasobów.

Podsumowanie i kolejne kroki

Podsumowanie i kolejne kroki

W tym projekcie:

  • Zbudowaliśmy i wytrenowaliśmy sieć CNN do klasyfikacji obrazów z użyciem zbioru danych CIFAR-10.
  • Nauczyliśmy się wczytywać, wstępnie przetwarzać i oceniać zbiór danych.
  • Omówiliśmy wyzwania związane z zadaniami klasyfikacji obrazów.

Następnie poznamy techniki augmentacji danych, które poprawiają wydajność modelu przez generowanie zmodyfikowanych wersji obrazów treningowych.

Projekt klasyfikacji obrazów — ilustracja 10

Często zadawane pytania

Czy lekcja „Projekt klasyfikacji obrazów” jest bezpłatna?

Tak — pełny tekst „Projekt klasyfikacji obrazów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 5 lekcji w sumie.

Co nauczysz się w „Projekt klasyfikacji obrazów”?

Budowanie podstawowego modelu CNN Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Python Academy?

Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 5.

Ile czasu zajmuje lekcja „Projekt klasyfikacji obrazów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?

Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Czym są dane obrazowe?
  2. Przetwarzanie obrazów za pomocą OpenCV
  3. Konwolucyjne sieci neuronowe (CNN)
  4. Projekt klasyfikacji obrazów
  5. Techniki augmentacji danych
← Powrót do Python Academy