Классификация изображений

В этом задании нам необходимо классифицировать персонажей мультсериала «Симпсоны». Как известно, сериал идет более 25 лет, и за это время скопилось очень много видеоматериала. Персонажи менялись вместе с изменяющимися технологиями, и Гомер Симпсон-2023 не очень похож на Гомера Симпсона-1989.

Задача

Сегодня нам предстоит помочь телекомпании FOX в обработке их контента. Как известно, сериал «Симпсоны» идет на телеэкранах более 25 лет, и за это время скопилось очень много видеоматериала. Персонажи менялись вместе с изменяющимися графическими технологиями, и Гомер Симпсон-2018 не очень похож на Гомера Симпсона-1989. В этом задании нам необходимо классифицировать персонажей, проживающих в Спрингфилде.

Ноутбук

(ноутбук проекта)

Выводы

В данном проекте от нас требовалось обучить классификатор изображений персонажей мультсериала Симпсоны. В нашем распоряжении был набор из более чем 20 тысяч картинок. Метрика, по которой оценивается результат работы — F1.

Мы разделили набор данных на обучающую и валидационную выборки в соотношении 80% к 20% соответственно. Для удобства работы мы создали DataModule (класс, объединяющий загрузчики обучающих и валидационных изображений).

К изображениям обучающей выборки мы применяем следующие трансформации (аугментации):

  • уменьшение до размера 224 на 224 (чтобы затем использовать предобученные модели)
  • случайное отображение по горизонтали
  • случайное вращение изображения на угол до 20 градусов
  • небольшое размытие
  • нормализация.

К валидационной выборке применялись лишь уменьшение изображение и нормализация.

В качестве модели мы выбрали ResNext. Данная модификация архитектуры RexNet была предложена в 2017 году и продемонстрировала хорошие результаты на соревновании ImageNet. В качестве направления дальнейшего развития данного проекта можно попробовать обучить модели с различными архитектурами (DenseNet, ElasticNet и т.д.) и сравнить их результаты.

Обучение происходило с оптимизатором AdamW в течение 20 эпох. В качестве функции потерь была выбрана кросс-энтропия.

На каждой эпохе обучения мы фиксировали значение функции потерь и метрики F1.

После обучения мы получили предсказания на тестовых данных и загрузили их на платформу kaggle. Результирующее значение метрики F1 на тестовой выборке (0.993) соответствует максимальному балу за данную задачу.