WFI-SynthFont

A Synthetic Benchmark for Font Family Identification

Words in known fonts, printed or painted on real surfaces and in real scenes, with the exact font, the text and the position of every letter.

GitHub - v1.0 Explore
v1.0 · 600 fonts · 11,995 images

600 Fonts

200 sans-serif, 200 serif, 100 slab serif and 100 monospaced, from Adobe Fonts, Creative Fabrica, Google Fonts and DaFont (commercial-use licenses only).

11,995 Images

20 per font: a word printed on a close-up surface, painted in a real scene, or on a printed object - in three levels, easy, medium and hard.

Letter-Level Annotations

For every image: the exact font, the text, the word box and the four corners of every letter, plus how it was made (size, blur, noise, light). Also in COCO format.

Explore

0/0
Loading...

20 example images from 20 different fonts, over all types, levels and categories, scaled to 1200 px. Green: the word; blue: each letter. All 11,995 images, full size, are in the release.

Fonts

Ten sheets show all 600 fonts of v1.0, 60 per sheet. Fonts that only have capitals (107) are written in capitals.

FontFamilyCategorySourceImages

Images

TypeEasyMediumHardPer font
texture: the word printed or painted straight on a close-up photo of a real surface (wood, plaster, concrete, brick, metal, fabric, leather, paper, cardboard)32510
scene: the word painted on a wall inside a real photo (rooms, shops, facades, workshops)1236
object: the word on a printed object (label, box, book cover, poster, menu, shop sign, packaging, business card, painted wall)1124

The images are frontal, with no slant or perspective, so an upright font never looks italic; texture and scene images add only a small camera deviation (corners moved at most 1.5 %, rotation at most 1°). Text contrast is at least 70 grey levels (50 on the hard level), no letter is clipped, and the long side is never over 2000 px. One word per image, 7-12 letters, taken from COCO-Text v2.

Results: WhatFontIs API

The WhatFontIs API on all 11,995 images of v1.0, September 2026. The API searches its whole catalogue of over 1.2 million fonts, not only the 600 fonts of the set. A result is correct when it is the right font family, in any weight or from any source: an image in Roboto Bold answered with Roboto Regular is correct; answered with Arial Bold it is wrong, however close it looks.

ImagesCorrect at 1In top 5In top 20
All images - Top-1 font family accuracy 83.7 %11,99583.7 %93.3 %96.5 %
texture5,99783.6 %93.3 %96.3 %
scene3,59982.4 %92.3 %96.0 %
object2,39985.9 %95.0 %97.5 %
easy2,99585.2 %93.9 %97.4 %
medium3,00083.3 %92.8 %96.0 %
hard6,00083.1 %93.3 %96.3 %
sans-serif4,00075.7 %88.7 %94.2 %
serif4,00084.0 %95.1 %97.7 %
slab serif1,99595.0 %98.5 %99.0 %
monospaced2,00087.8 %94.0 %96.1 %

The 3 images where no letters were found count as misses.

Download

Annotations, font list and tools are in the GitHub repository. The images of v1.0 are in the release v1.0, as four zip files:

FileSizeImages
WFI-SynthFont_v1.0_images_part1.zip466 MB00000-02998
WFI-SynthFont_v1.0_images_part2.zip470 MB02999-05997
WFI-SynthFont_v1.0_images_part3.zip460 MB05998-08996
WFI-SynthFont_v1.0_images_part4.zip604 MB08997-11994

With the GitHub CLI:

gh release download v1.0 --repo whatfontis/WFI-SynthFont

Unzip all four into v1/; they create v1/scenes/NNNNN.jpg. The text crops (the word cut out of each image, unscaled) come from python tools/make_crops.py v1. Font files are not included.

Annotations

FileWhat it holds
v1/labels.jsonlone line per image: text, font (title, family, source, category, WhatFontIs page), type, level, crop box, word and letter corners, how it was made (cap height, font size, ink colour, contrast, blur, noise, JPEG quality, effects, camera transform) and the background
v1/annotations.jsonthe same set in COCO format: images, categories (one per font), annotations (word box, text, letters)
v1/fonts.jsonthe fonts: title, family, source, category, capitals-only flag, WhatFontIs page, number of images
v1/backgrounds.jsonthe background photos, with source page, author and license
words.txtthe word list the texts were drawn from (shared by all versions)
v1/specimens/ten sheets showing all 600 fonts, 60 per sheet
tools/make_crops.pycuts the text crops out of the images

Licenses and credits

Known gaps in v1.0

Questions about the set: contact us.

WhatFontIs the best font finder for you!