Новый AI Framework Text2Poster автоматически генерирует плакаты на основе текста

28.01.2023,  ,  
Новый AI Framework Text2Poster автоматически генерирует плакаты на основе текста

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

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

Вот как объясняют процесс сами авторы (Chuhao Jin, Hongteng Xu, Ruihua Song, Zhiwu Lu): «Имитируя процесс ручного редактирования плакатов, наша система использует крупномасштабную предварительно обученную визуально-текстовую модель для получения фоновых изображений из заданных текстов, выстраивает тексты на изображениях итеративно с помощью каскадных автокодеров, и, наконец, стилизует тексты с помощью метода, основанного на сопоставлении. Мы обучаем модули системы с помощью стратегий слабого и самоконтролируемого обучения, что снижает потребность в меченых данных. Объективные и субъективные эксперименты показывают, что наш Text2Poster превосходит современные методы, включая академические исследования и коммерческое программное обеспечение, по качеству создаваемых постеров.«

Ссылка на Github проекта Text2Poster: https://github.com/chuhaojin/Text2Poster-ICASSP-22.

Чтобы проверить работу генератора плакатов достаточно запустить Python-файл, предварительно внеся свои данные:

import os, time, json, requests
timestamp = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
input_text_elements = {
 "sentences": [
 ["CHILDREN'S DAY", 90], # [text, font_size]
 ["Children are The Future of Nation", 50] # [text, font_size]
 ],
 "background_query": "Children's Day!" # sentence used to retrieve background images.
}
input_text_elements = json.dumps(input_text_elements)
api_url = "http://bl.mmd.ac.cn:8889/text2poster"
response = requests.get(api_url, params = {"input_text_elements": input_text_elements})
f = open("poster-{}.jpg".format(timestamp), "wb")
f.write(response.content)
f.close()
print("Save poster to:", "poster-{}.jpg".format(timestamp))

Ниже результаты, которые получились у нас. Можно определенно сказать, что Text2Poster пока плохо понимает русский язык, зато понимает по-китайски. Также не понятно — ориентируется ли нейросеть на слова, указанные в заголовке и подзаголовке.

prompt: celebrating the new year at the TV in a Soviet apartment at the table

prompt: ussr 80s

prompt: winter in Petersburg

Хорошие ли плакаты получились на выходе? — Определенно не очень. Но сама мысль о том, что создание плакатов и постеров можно поставить на поток, довольно скоро начнет будоражить умы — и разработчиков, и предприимчивых людей.

А вот и плакаты от самих авторов: