Projekt klasyfikacji obrazów
Tworzenie podstawowego modelu CNN.
Projekt klasyfikacji obrazów to bezpłatna lekcja Learn AI with Python 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 Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python 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.

Zbiór danych do klasyfikacji
Zbiór danych do klasyfikacji
Wykorzystamy zbiór danych CIFAR-10, który zawiera 60 000 obrazów należących do 10 kategorii, takich jak samoloty, samochody, ptaki i koty. Każdy obraz ma wymiary 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)Budowanie modelu CNN
Budowanie modelu CNN
Zdefiniujemy architekturę CNN z warstwami konwolucyjnymi, warstwami poolingowymi i warstwami 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
Model kompilujemy z użyciem:
- Funkcji straty: Kategorycznej entropii krzyżowej do klasyfikacji wieloklasowej.
- Optymalizatora: Optymalizatora Adam zapewniającego wydajne uczenie.
- Metryk: Dokładności do oceny skuteczności.
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])Trenowanie modelu
Trenowanie modelu
Trenujemy model na 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 zakończeniu trenowania 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}%")Tworzenie predykcji
Tworzenie predykcji
Możemy użyć wytrenowanego modelu do tworzenia 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 związane z klasyfikacją obrazów
Wyzwania związane z klasyfikacją obrazów
Do typowych wyzwań należą:
- Przeuczenie: Model działa dobrze na danych treningowych, ale słabo na nowych danych.
- Niezrównoważenie klas: Nierównomierna reprezentacja kategorii w zbiorze danych.
- Koszt obliczeniowy: Trenowanie głębokich sieci wymaga znacznych zasobów.
Podsumowanie i kolejne kroki
Podsumowanie i kolejne kroki
W ramach tego projektu:
- Zbudowaliśmy i wytrenowaliśmy sieć CNN do klasyfikacji obrazów, korzystając ze 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ą działanie modelu poprzez generowanie wariantów obrazów treningowych.

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 Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 5 lekcji w sumie.
Co nauczysz się w „Projekt klasyfikacji obrazów”?
Tworzenie podstawowego modelu CNN. Ćwiczysz Learn AI with Python 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ąć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python 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 Learn AI with Python?
Tak. Każda lekcja Learn AI with Python 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
- Czym są dane obrazowe?
- Przetwarzanie obrazów z OpenCV
- Konwolucyjne sieci neuronowe (CNN)
- Projekt klasyfikacji obrazów
- Techniki augmentacji danych