| | --- |
| | license: mit |
| | base_model: microsoft/resnet-18 |
| | tags: |
| | - generated_from_trainer |
| | datasets: |
| | - gaborcselle/font-examples |
| | metrics: |
| | - accuracy |
| | model-index: |
| | - name: font-identifier |
| | results: |
| | - task: |
| | name: Image Classification |
| | type: image-classification |
| | dataset: |
| | name: imagefolder |
| | type: imagefolder |
| | config: default |
| | split: test |
| | args: default |
| | metrics: |
| | - name: Accuracy |
| | type: accuracy |
| | value: 0.963265306122449 |
| | widget: |
| | - src: hf_samples/ArchitectsDaughter-Regular_1.png |
| | example_title: Architects Daughter |
| | - src: main/hf_samples/Courier_28.png |
| | example_title: Courier |
| | - src: main/hf_samples/Helvetica_3.png |
| | example_title: Helvetica |
| | - src: hf_samples/IBMPlexSans-Regular_25.png |
| | example_title: IBM Plex Sans |
| | - src: hf_samples/Inter-Regular_43.png |
| | example_title: Inter |
| | - src: hf_samples/Lobster-Regular_25.png |
| | example_title: Lobster |
| | - src: hf_samples/Trebuchet_MS_11.png |
| | example_title: Trebuchet MS |
| | - src: hf_samples/Verdana_Bold_43.png |
| | example_title: Verdana Bold |
| | language: |
| | - en |
| | --- |
| | |
| |
|
| | # font-identifier |
| |
|
| | This model is a fine-tuned version of [microsoft/resnet-18](https://huggingface.co/microsoft/resnet-18) on the imagefolder dataset. |
| | Result: Loss: 0.1172; Accuracy: 0.9633 |
| |
|
| | Try with any screenshot of a font, or any of the examples in [the 'samples' subfolder of this repo](https://huggingface.co/gaborcselle/font-identifier/tree/main/hf_samples). |
| |
|
| | ## Model description |
| |
|
| | Identify the font used in an image. Visual classifier based on ResNet18. |
| |
|
| | I built this project in 1 day, with a minute-by-minute journal [on Twitter/X](https://twitter.com/gabor/status/1722300841691103467), [on Pebble.social](https://pebble.social/@gabor/111376050835874755), and [on Threads.net](https://www.threads.net/@gaborcselle/post/CzZJpJCpxTz). |
| |
|
| | The code used to build this model is in this github rep |
| |
|
| | ## Intended uses & limitations |
| |
|
| | Identify any of 48 standard fonts from the training data. |
| |
|
| | ## Training and evaluation data |
| |
|
| | Trained and eval'd on the [gaborcselle/font-examples](https://huggingface.co/datasets/gaborcselle/font-examples) dataset (80/20 split). |
| |
|
| | ## Training procedure |
| |
|
| | ### Training hyperparameters |
| |
|
| | The following hyperparameters were used during training: |
| | - learning_rate: 5e-05 |
| | - train_batch_size: 16 |
| | - eval_batch_size: 16 |
| | - seed: 42 |
| | - gradient_accumulation_steps: 4 |
| | - total_train_batch_size: 64 |
| | - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08 |
| | - lr_scheduler_type: linear |
| | - lr_scheduler_warmup_ratio: 0.1 |
| | - num_epochs: 50 |
| |
|
| | ### Training results |
| |
|
| | | Training Loss | Epoch | Step | Validation Loss | Accuracy | |
| | |:-------------:|:-----:|:----:|:---------------:|:--------:| |
| | | 4.0243 | 0.98 | 30 | 3.9884 | 0.0204 | |
| | | 0.8309 | 10.99 | 338 | 0.5536 | 0.8551 | |
| | | 0.3917 | 20.0 | 615 | 0.2353 | 0.9388 | |
| | | 0.2298 | 30.99 | 953 | 0.1326 | 0.9633 | |
| | | 0.1804 | 40.0 | 1230 | 0.1421 | 0.9571 | |
| | | 0.1987 | 46.99 | 1445 | 0.1250 | 0.9673 | |
| | | 0.1728 | 48.0 | 1476 | 0.1293 | 0.9633 | |
| | | 0.1337 | 48.78 | 1500 | 0.1172 | 0.9633 | |
| |
|
| | ### Confusion Matrix |
| |
|
| | Confusion matrix on test data. |
| |
|
| |  |
| |
|
| |
|
| | ### Framework versions |
| |
|
| | - Transformers 4.36.0.dev0 |
| | - Pytorch 2.0.0 |
| | - Datasets 2.12.0 |
| | - Tokenizers 0.14.1 |