Posters are widely used in numerous commercial and non-commercial contexts to promote and disseminate information as a form of media with artistic and practical elements. For example, e-commerce companies use attractive banners to advertise their products. Websites for public events such as conferences are often decorated with educational posters.
Text2Poster is a unique system, an automatic poster generator that uses an extensive pre-trained visual and text model to generate relevant background images from input texts, as shown in the figure below.
Here's how the authors themselves (Chuhao Jin, Hongteng Xu, Ruihua Song, Zhiwu Lu) explain the process: “ Simulating the process of manually editing posters, our system uses a large-scale pre-trained visual-text model to obtain background images from given texts, building texts on the images iteratively using cascading autoencoders, and finally stylizes texts using a matching-based method. We train system modules using weak and self-supervised learning strategies, which reduces the need for labeled data. Objective and subjective experiments show that our Text2Poster outperforms current methods, including academic research and commercial software, in the quality of posters produced. "
Link to Github of the Text2Poster project: https://github.com/chuhaojin/Text2Poster-ICASSP-22 .
To check the operation of the poster generator, just run the Python file after entering your data:
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)
Below are the results we got. We can definitely say that Text2Poster does not understand Russian well yet, but it does understand Chinese. It is also not clear whether the neural network focuses on the words indicated in the title and subtitle.
prompt: celebrating the new year at the TV in a Soviet apartment at the table
prompt: ussr 80s
prompt: winter in Petersburg
Did the posters turn out good? - Definitely not very good. But the very idea that the creation of posters can be put on stream will soon begin to excite the minds of both developers and enterprising people.
And here are the posters from the authors themselves: