https://github.com/sanster/text_renderer
Generate text images for training deep learning ocr model
https://github.com/sanster/text_renderer
crnn ocr synthtext
Last synced: 6 days ago
JSON representation
Generate text images for training deep learning ocr model
- Host: GitHub
- URL: https://github.com/sanster/text_renderer
- Owner: Sanster
- License: mit
- Created: 2018-05-28T06:33:14.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-01-17T07:58:32.000Z (over 3 years ago)
- Last Synced: 2025-05-16T00:06:30.200Z (6 days ago)
- Topics: crnn, ocr, synthtext
- Language: Python
- Size: 12.6 MB
- Stars: 1,434
- Watchers: 42
- Forks: 387
- Open Issues: 60
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# New version release:https://github.com/oh-my-ocr/text_renderer
# Text Renderer
Generate text images for training deep learning OCR model (e.g. [CRNN](https://github.com/bgshih/crnn)).
Support both latin and non-latin text.# Setup
- Ubuntu 16.04
- python 3.5+Install dependencies:
```
pip3 install -r requirements.txt
```# Demo
By default, simply run `python3 main.py` will generate 20 text images
and a labels.txt file in `output/default/`.

# Use your own data to generate image
1. Please run `python3 main.py --help` to see all optional arguments and their meanings.
And put your own data in corresponding folder.2. Config text effects and fraction in `configs/default.yaml` file(or create a
new config file and use it by `--config_file` option), here are some examples:|Effect name|Image|
|------------|----|
|Origin(Font size 25)||
|Perspective Transform||
|Random Crop||
|Curve||
|Light border||
|Dark border||
|Random char space big||
|Random char space small||
|Middle line||
|Table line||
|Under line||
|Emboss||
|Reverse color||
|Blur||
|Text color||
|Line color||3. Run `main.py` file.
# Strict mode
For no-latin language(e.g Chinese), it's very common that some fonts only support
limited chars. In this case, you will get bad results like these:


Select fonts that support all chars in `--chars_file` is annoying.
Run `main.py` with `--strict` option, renderer will retry get text from
corpus during generate processing until all chars are supported by a font.# Tools
You can use `check_font.py` script to check how many chars your font not support in `--chars_file`:
```bash
python3 tools/check_font.pychecking font ./data/fonts/eng/Hack-Regular.ttf
chars not supported(4971):
['第', '朱', '广', '沪', '联', '自', '治', '县', '驼', '身', '进', '行', '纳', '税', '防', '火', '墙', '掏', '心', '内', '容', '万', '警','钟', '上', '了', '解'...]
0 fonts support all chars(5071) in ./data/chars/chn.txt:
[]
```# Generate image using GPU
If you want to use GPU to make generate image faster, first compile opencv with CUDA.
[Compiling OpenCV with CUDA support](https://www.pyimagesearch.com/2016/07/11/compiling-opencv-with-cuda-support/)Then build Cython part, and add `--gpu` option when run `main.py`
```
cd libs/gpu
python3 setup.py build_ext --inplace
```# Debug mode
Run `python3 main.py --debug` will save images with extract information.
You can see how perspectiveTransform works and all bounding/rotated boxes.
# Todo
See https://github.com/Sanster/text_renderer/projects/1## Citing text_renderer
If you use text_renderer in your research, please consider use the following BibTeX entry.
```BibTeX
@misc{text_renderer,
author = {weiqing.chu},
title = {text_renderer},
howpublished = {\url{https://github.com/Sanster/text_renderer}},
year = {2021}
}
```