0Pricing
Learn AI with Python · Урок

Проект по классификации изображений

Построение базовой модели CNN

«Проект по классификации изображений» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 4 из 5. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 5 уроков всего.

Проект классификации изображений

Проект классификации изображений

В этом проекте мы создадим простую CNN для классификации изображений по категориям. Классификация изображений заключается в предсказании категории или метки входного изображения.

Проект по классификации изображений — иллюстрация 1

Набор данных для классификации

Набор данных для классификации

Мы будем использовать набор данных CIFAR-10, состоящий из 60 000 изображений в 10 категориях, таких как самолёты, автомобили, птицы и кошки. Размер каждого изображения — 32×32 пикселя, оно содержит 3 цветовых канала (RGB).

Загрузка набора данных

Загрузка набора данных

Мы загрузим набор данных CIFAR-10 с помощью 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)

Создание модели CNN

Создание модели CNN

Мы определим архитектуру CNN со свёрточными, субдискретизирующими и полносвязными слоями:

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

Компиляция модели

Компиляция модели

Мы компилируем модель с помощью следующих компонентов:

  • Функция потерь: категориальная кросс-энтропия для многоклассовой классификации.
  • Оптимизатор: оптимизатор Adam для эффективного обучения.
  • Метрики: точность для оценки качества работы.
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

Обучение модели

Обучение модели

Мы обучаем модель на обучающих данных в течение 10 эпох. Во время обучения модель учится классифицировать изображения по категориям.

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

Оценка модели

Оценка модели

После обучения мы оцениваем модель на тестовых данных, чтобы проверить её точность:

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

Получение предсказаний

Получение предсказаний

Мы можем использовать обученную модель для получения предсказаний по новым изображениям:

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

Проблемы классификации изображений

Проблемы классификации изображений

К распространённым проблемам относятся:

  • Переобучение: Модель хорошо работает на обучающих данных, но плохо — на новых.
  • Дисбаланс классов: Неравномерное представление категорий в наборе данных.
  • Вычислительные затраты: Обучение глубоких сетей требует значительных ресурсов.

Итоги и следующие шаги

Итоги и следующие шаги

В этом проекте мы:

  • Создали и обучили CNN для классификации изображений с использованием набора данных CIFAR-10.
  • Научились загружать, предварительно обрабатывать и оценивать набор данных.
  • Рассмотрели проблемы, возникающие при классификации изображений.

Далее мы изучим методы расширения данных, чтобы повысить качество модели за счёт создания вариантов обучающих изображений.

Проект по классификации изображений — иллюстрация 10

Часто задаваемые вопросы

Урок «Проект по классификации изображений» бесплатный?

Да — полный текст урока «Проект по классификации изображений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 5 уроков всего.

Чему я научусь в уроке «Проект по классификации изображений»?

Построение базовой модели CNN Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn AI with Python?

Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 5.

Сколько времени занимает урок «Проект по классификации изображений»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn AI with Python?

Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Что такое данные изображений
  2. Обработка изображений с OpenCV
  3. Сверточные нейронные сети (CNN)
  4. Проект по классификации изображений
  5. Методы расширения данных
← Назад к Learn AI with Python