Исследовательская группа Microsoft Research представила генеративно-состязательную нейросеть, которая способна генерировать изображения с несколькими объектами на основе текстового описания. В отличие от более ранних подобных алгоритмов text-to-image, способных воспроизводить изображения только базовых объектов, эта нейросеть может справляться со сложными описаниями более качественно.
Сложность создания подобного алгоритма заключалась в том, что, во-первых, ранее бот был не способен в хорошем качестве воссоздавать все базовые объекты по их описаниям, и, во-вторых, не мог проанализировать то, как несколько объектов могут относиться друг к другу в рамках одной композиции. К примеру, чтобы создать изображение по описанию «Женщина в шлеме сидит на лошади», нейросеть должна была семантически «понять», как каждый из объектов относится друг к другу. Эти проблемы удалось решить, обучив нейросеть на основе открытого дата-сета COCO, содержащего разметку и данные сегментации для более 1,5 млн объектов.
В основе алгоритма лежит объектно-ориентированная генеративно-состязательная нейросеть ObjGAN (Object-driven Attentive Generative Adversarial Newtorks). Она анализирует текст, выделяя из него слова-объекты, которые необходимо расположить на изображении. В отличие от обычной генеративно-состязательной сети, состоящей из одного генератора, который создает изображения, и одного дискриминатора, который оценивает качество сгенерированных изображений, ObjGAN содержит два различных дискриминатора. Один анализирует, насколько реалистичен каждый из воспроизведенных объектов и насколько он соответствует имеющемуся описанию. Второй определяет, насколько вся композиция реалистична и соотносится с текстом.
Предшественником алгоритма ObjGAN стал AttnGAN, также разработанный исследователями Microsoft. Он способен генерировать изображения объектов по более простым текстовым описаниям. Технология преобразования текста в изображения может применяться для помощи дизайнерам и художникам в создании эскизов.
Алгоритм ObjGAN находится в открытом доступе на GitHub.
Больше технических подробностей.