Find Font

Find Font

Fonts Made Easy

Created on 20th April 2024

Find Font

Find Font

Fonts Made Easy

The problem Find Font solves

1)It solves the problem of the Identifying the unique fonts
2)It is helpful for many of content creators and designers
3)To identify the fonts used in brand's logo, marketing materials

  1. Makes fonts more accessible
  2. Understanding the Global Typography Trends
  3. Make font management and organization easy
  4. Designers can find the historical fonts who are working on historical project

Challenges we ran into

  1. Choosing Appropriate Neural Model: As we are trying to identify between various fonts i.e we will be having lots of classes and we also want to scale them without change in model structure. Many CNN models will fail this, After lot of research we found ResNet18, an image classification model developed by microsoft. Which is perfect for our usecase.
  2. Dataset Generation:
    Scraping: FontSpace doesn't offer any api to get list of fonts and their webfont urls, we can use pyton scraping tools but it would take time to develop so we opted for simple javascript file which will scrap font list and store as json. We extended same script file for rendering fonts on canvas and converting it to image and further passing to python server running on localhost to save png file on disk.
    Time: Our script for finding fonts list was slow because we were using async fetch requests, we learned from it and for rendering we didn't used async but it created very big problem, not using async created thousands of fetch requests literally crashing the browser. For this we opted middle around, created various javascript threads working async internally, which saved out time.
  3. GPU : Developement was happening on Mac, so training scripts, eval scripts was built of CPU. After all setup and tested we wanted to switch on GPU training, but was a headache for us. We Installed, Reinstalled again and again because they are not matching specifications or not supported by cuda, we also had to make changes to scripts. In this process learned lot about gpu setups.
  4. TODOS:
    Image Preprocessing: Currently we can't use any screenshot to identify font, our model needs images in format that we used for training like multilines, black-white, 23px font size, 224px by 224px. We are creating script for taking any screenshot and converting it to required format.
    Similar Fonts: Model confuses in similar fonts (even humans also), so we are planing to test for similar fonts and group them together as one class

Discussion

Builders also viewed

See more projects on Devfolio