CookGAN — это генеративно-состязательная нейросеть, которая синтезирует реалистичное изображение блюда на основе списка ингредиентов. Модель основывается на StackGAN. Для того, что бы соотносить списки ингредиентов с изображениями, исследователи обучают отдельную модель с механизмом внимания. Результаты из ассоциативной модели используются затем в генеративной модели.
Предыдущие подходы к генерации изображений из текста обычно опираются на предобученную текстовую модель, которая извлекает признаки из текста. Затем идет генеративно-состязательная сеть (GAN), которая генерирует фотореалистичные изображения на основе признаков из текста. Предыдущие модели фокусировались в основном на генерации изображений цельных объектов: птиц, цветов и т.п. Задача генерации изображений блюд предполагает, что изначальный вид ингредиентов в списке меняется в процессе готовки. Получается, что итоговое изображение блюда зачастую не содержит ингредиенты в их дефолтном виде. Такая особенность усложняет задачу генерации. Исследователи сначала обучили модель для ассоциирования ингредиентов и изображений, которая включала в себя механизм внимания. Обученная модель далее используется как условие (condition) в GAN. Чтобы контролировать содержание изображений и их качество, исследователи вводят cycle-consistent ограничение.
Архитектура подхода
Подход можно разделить на два этапа:
- На первом этапе исследователи обучили ассоциативную модель, которая извлекает признаки из текстового списка ингредиентов и соотносит в скрытом пространстве ингредиенты с изображениями. Во время обучения модель принимает на вход три объекта: рецепт, изображение блюда и рецепт другого блюда. Модель учится максимизировать ассоциацию между рецептом и изображением блюда. При этом, ассоциация между изображением блюда и рецептом другого блюда минимизируется;
- Генеративная модель основана на архитектуре StackGAN-v2. Она состоит из 3 частей, которые объединены. Каждая часть ответственна за генерацию изображения определенного масштаба. У каждой части сети свой дискриминатор
Оценка работы модели
Исследователи посмотрели, как предложенная CookGAN с механизмом внимания и без работает в сравнении с базовой моделью. В качестве задачи они выбрали извлечение рецепта по фотографии блюда (im2recipe) и извлечение изображения блюда по рецепту (recipe2im). Ниже видно, что нейросеть выдает результаты лучше, чем базовая модель.