Skip to content

UROP: Typographical branding using deep learning based on company's mission and vision statement

Notifications You must be signed in to change notification settings

OpenSUTD/face-of-fonts

 
 

Repository files navigation

face-of-fonts

Typeface recommendation project using deep learning with dataset taken from corporate branding guides. Won the first prize on the Tsinghua's brain inspired competition

Inspiration

Each typography has its own meaning. Therefore, when a company wants to design its own fonts, they will have to use the font that can stand for their company culture. Bearing this in mind, we explore the relationship between a company's culture and the typography they use.

We use online scraping to scrape the mission and vision statement of each company, and the font they use as their official font from their official website, as well as LinkedIn.

During scraping, one interesting finding is that companies related to technology prefer sans-serif for their futuristic feeling while universities prefer serif (like Garamond) for their seriousness. if you are interested in the intuition behind click here

Solution

Here we collected a dataset of the 9 most common fonts used by a big company. With a training set of total 2300. we wish to predict what font is suitable for the company based on their vision and mission statement.

We used CNN architecture for text classification published by Yoon Kim as a base architecture with a bit of moderation on the architecture. Getting a prediction of 45.5%. We are confident that there are more things to be explored between a company's culture and font!

Based line

The baseline for this project using the simple SVM gives a result of about 22%.

Downloads

You will need 'GoogleNews-vectors-negative300.bin.gz' or GloVe for the word embeddings. We did not include it in this repository.

Run this project

  1. download the word vectors, we used 300d GLoVe vector.
  2. install packages using requirements.
  3. run python model/classify.py to test the accuracy

Result: It trains about 4 mins on a normal PC with only CPU. You should get an accuracy of around 46%.

To make things even cooler

We can turn each font to its corresponding vector, using a completely new idea -- Font2vec from "fontjoy" for thousands of Google fonts. And then after getting your predicted result in each portion of the font, you can see what the composed font is by adding all of your font vector vectors together. This enables you to get predictions not limited to 9 fonts but to all 900 google fonts. Check here for a quick idea of font2vec fontjoy

To do this run python inference/GUI.py the final prediction looks something like this: demo

Credits to TensorFlow implementation of Text Classifier

About

UROP: Typographical branding using deep learning based on company's mission and vision statement

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Python 100.0%