Skip to content

Generate text images for training deep learning ocr model

Notifications You must be signed in to change notification settings

muyilangjun1/text_renderer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Text Renderer

Generate text images for training deep learning ocr model.

example1.jpg example2.jpg

example3.jpg example4.jpg

Setup

The code was only tested on Ubuntu 16.04.

Install dependencies:

pip3 install -r requirements.txt

Generate image

Run python3 main.py, images and labels.txt will generate at output/default/

Some optional arguments:

  • config_file: control the params used when render images
  • num_img: how many images to generate
  • length: chars or words in a generated image
  • output_dir: where to save the images
  • corpus_dir: recursively find all txt file in corpus_dir
  • corpus_mode: different corpus types have different way to generate samples
    • random: random pick chars from chars file
    • chn: pick continuous chars from corpus
    • eng: pick words from corpus, space is included in label
  • chars_file: chars not contained in chars_file will be filtered
  • bg_dir: 50% image background are loaded from background image dir

Strict mode

If some chars in corpus is not supported by your font, your will get bad result:

bad_example1

bad_example2

bad_example3

Run main.py with --strict, renderer will retry get sample from corpus until all chars are supported by a font.

Tools

Check how many chars your font not support for a charset:

python3 tools/check_font.py

checking font ./data/fonts/eng/Hack-Regular.ttf
chars not supported(4971):
['', '', '广', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '','', '', '', ''...]
0 fonts support all chars(5071) in ./data/chars/chn.txt:
[]

Debug mode

Run python3 main.py --debug will save images with extract information. You can see how perspectiveTransform works and all bounding/rotated boxes.

debug_demo

Generate image using GPU

If you want to use GPU to speed up image generating, first compile opencv with CUDA. Compiling OpenCV with CUDA support

Then build Cython part, and add --gpu options when run main.py

cd libs/gpu
python3 setup.py build_ext --inplace

Todo

See https://github.com/Sanster/text_renderer/projects/1

About

Generate text images for training deep learning ocr model

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 82.9%
  • C++ 17.1%