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