Here is some information about my project, I want to tell you smth about it, let me speak some russian lower
Паттерны внешности | Предпочтения гдетотамцев |
---|---|
футуристичные | кофе |
смышлённые по виду | жёлто-чёрные тона |
милые | минимализм в архитектуре |
с синей кожей | закат солнца |
большеголовые | интерьер из дерева |
лупоглазые | много литературы |
-
Image captioning - это процесс автоматического создания описания или подписи к изображению с помощью алгоритмов машинного обучения. Он использует компьютерное зрение и естественный язык для создания описания, которое наиболее точно отражает содержание изображения.
-
Работают над этим, потому что автоматическое создание описания для изображений может значительно упростить и ускорить работу в различных приложениях. Это может помочь людям с ограниченными возможностями зрения понимать содержание изображений, а также повысить доступность контента для всех пользователей. Кроме того, это может быть полезно для автоматической обработки больших объемов данных, таких как фотографии в социальных сетях и медиабиблиотеках.
-
Формулировка задачи image captioning заключается в следующем. Дана обучающая выборка из пар изображение - описание. Задача обучиться на полученных данных и в последствии выдавать наиболее подходящее описание картинки из тестового датасета, поданной в модель без описания.
Отмечу, что в представленном google colab ноутбуке был приведён более подробный анализ данных, а также были приведены идентичные выводы, однако ввиду технического задания я продублирую эту информацию здесь:
-
Как видно из описания датасета и представленных картинок (см. ноутбук), на датасете изображены фотографии отелей с различными шумами и большой дисперсией. То есть некоторые фотографии перевёрнуты, некоторые визуально испорчены, некоторые сделаны в хорошем качестве, иные - в плохом.
-
Выше массив всех встречающихся размеров изображений (см. ноутбук), как видно в тестовой выборке встречаются len(list_sizes) = 15 уникальных размеров
-
В моём датасете 1000 объектов в целях экономии времени анализа данных.
-
Все изображения из класса traffickcam (так как мой сервис для инопланетян будет давать им не вылизанные фотографии, а реалистичный фотоматериал). Так что уникальными классами можно считать chain_id отелей на фотографиях, выше представлен их полный список из 58 штук.
-
Очевидно, что относительно рассмотрения класса trafickcam датасет является сбалансированным, но если брать за класс chain_id, то датасет (ввиду представленной выше аналитики, см. ноутбук) не сбалансирован, однако по представленным диаграммам видно, что преобладают классы с малым (< 10) количеством фотографий.
В этом разделе я приведу описание итогов генерации описаний к картинкам и их кластеризации по тегам (за более подробной информацией обращайтесь в colab ноутбук):
- Была проведена кластеризация по следующим тегам:
- cheap room in hostel with bad interior
- cheap room in hotel with bad interior
- average quality hotel room with average interior quality
- superior hotel room with higher quality interier
- luxury hotel room with luxury interier
- Адекватность данной кластеризации можно проверить имперически, что и было сделано
- Отмечу, что данная часть является важной для задани классификации отелей, хотя и не даёт обобщённого описания изображению
- Далее был приведён скрипт, генерирующий обобщённое описание к изображениям отеля, таким образом была решена задача описания объекта
- корректность скрипта проверена в работе имперически
Здесь приведён краткий отчёт о работе заключетельного блока colab блокнота.
-
Задача - изменить стилистику фотографии под инопланетян, не меняя сути
-
Я написал свою нейросеть для решения этой проблемы. Конечно, можно было залить часть фотографий в StableDiffusionMagic и добавить описания стилистического преобразования, но это скучно. По сему настоящим исследованием проблемы является именно своя родная нейросеточка.
-
Идея в том, чтобы использовать фото отеля за базу, а за стилистический образец взять фото самого красивого инопланетянина. Таким образом, цель будет достигнута.
-
В качестве основных гиперпараметров нейросети были взяты кол-во эпох - 200 (на первом примере) и 250 (на втором примере), learnig_rate = lr = 0.003 = константа Karpathy. Все остальные гиперпараметры - стандартные.
-
В качестве функции лосса я использовал лосс из этого потрясающего видеоурока по стилевой трансформации:
-
Указанная функция состоит из style_loss и content_loss. Как было продеманстрировано в google colab, style_loss падает с прошествием эпох, content_loss напротив растёт, что доказывает эффективность модели, так как style_loss показывает схожесть со стилем инопланетянина, content_loss показывает, насколько фотография отличается от исходного изображения.
-
Результат этого блока - рабочая нейросеть, которая умеет трансформировать изображения под запросы инопланетной культуры.
В представленном google colab ноутбуке присутствуют все необходимые рабочие методы и модели по техническому анализу изображения для инопланетян, которые не меняют суть исходных данных. Стоит отметить, что инопланетяне, сгенерированные в процессе этой работы - просто душки!