Пару лет назад я показал, как мы можем использовать ИИ для переноса стилей, такой как CycleGAN, для преобразования графики одной игры, чтобы она выглядела похожей на другую, на примере Fortnite в PUBG. Этот проект до сих пор остается одним из самых просматриваемых, и спустя два года он все еще привлекает новых зрителей. Это означает, что это направление исследований в области ИИ вызывает большой интерес, но, к сожалению, мы пока не видим больших подвижек по превращению таких прототипов в реальность. Хотя и были представлены версии этого ИИ, работающиее на более высоком разрешении, они нуждались в использованию нескольких графических процессоров для обучения, что является непрактичным для использования в реальном мире.

К счастью, по прошествии большого количества времени у нас наконец-то есть статья, демонстрирующая значительный прогресс в попытке уменьшить вычислительную мощность, необходимую для обучения этого ИИ. Статья от Калифорнийского университета в Беркли и Adobe называется «Contrastive Learning (контрастное обучение) для непарного преобразования изображений» (CUT).

Графика Fortnite преобразована в PUBG с помощью CUT.
Графика Fortnite преобразована в PUBG с помощью CUT.

Используя тот же набор данных и то же самое аппаратное обеспечение с тем же графическим процессором, которое я использовал в прошлый раз,  эта новая модель позволила мне перейти с разрешения 256p до 400p для синтезированных изображений. Более того, мне понадобилось чуть меньше чем за 2 часа на обучение модели, по сравнению с 8+ часами в прошлый раз.

CycleGAN и Patchwise Contrastive Framework.

Наблюдается существенная разница в количестве требуемых вычислительных мощностей по сравнению с CycleGAN. Итак, чем отличается этот подход от CycleGAN? Теперь он использует фреймворк Patchwise Contrastive Learning, который требует значительно меньше графической памяти и вычислений по сравнению с CycleGAN.

Сети CycleGAN
Сети CycleGAN

Генерирующая сеть обучается конвертировать изображение Fortnite в PUBG. Если вы помните, в CycleGAN мы создали бы еще одну сеть, которая пытается преобразовать PUBG в Fortnite для расчета погрешности реконструкции, и это создает огромные накладные расходы с точки зрения требований к мощности графического процессора и памяти.

А здесь мы используем  Contrastive Loss (контрастную потерю). Во-первых, вместо того, чтобы работать со всеми изображениями сразу, этот метод фокусируется на извлечении фрагментов из входных и выходных изображений. Задача нашей модели здесь - определить, какой из нескольких входных ключей является положительным совпадением с нашим проверочным фрагментом, полученным из синтезированного изображения. Это называется Contrastive Learning, и это позволяет модели обучаться лучшему представлению признаков с помощью самоконтроля.

Сравнение с CycleGAN

Этот новый подход является причиной того, что синтезированные с помощью этого метода изображения имеют более четкие границы разделения объектов и сохраняет больше информации из исходного изображения после преобразования.

И помните, все это еще и имеет меньшие требования к графическому процессору, так что это просто фантастика! Чтобы узнать больше о результатах этой статьи на других наборах данных, посетите страницу этого проекта.

Полезные ссылки

  1. Полный текст статьи (PDF)

  2. Страница проекта

  3. Код (GitHub)

Спасибо за внимание. Если вам понравилась эта статья, вы можете следить за другими моими работами на Medium, GitHub или подписаться на мой YouTube-канал.


Перевод материала подготовлен в преддверии старта курса "Компьютерное зрение" от OTUS. Если вы заинтересованы в обучении по данному направлению, рекомендуем посмотреть запись дня открытых дверей, в рамках которого мы подробно рассказываем о процессе обучения, а также приглашаем всех желающих записаться на бесплатный демо-урок по теме: "Компьютерное зрение в спортивной аналитике".

- УЗНАТЬ О КУРСЕ ПОДРОБНЕЕ

- ЗАПИСАТЬСЯ НА ДЕМО-УРОК