/lstm_ctc_ocr

Use CTC + tensorflow to OCR

Primary LanguagePython

  • master:
  • both standard ctc and warpCTC
  • read data at once
  • dev:
  • the pipline version of lstm_ctc_ocr, resize to same size
  • beta:
  • generate data on the fly
  • deal with multi-width image, padding to same width

How to use

  1. ./train.sh for training ./test.shfor testing
  2. ./lib/utils/genImg.py for generate some data for further testing

Notice that,
the beta & pipline version use warpCTC as default : please install the warpCTC tensorflow_binding first
if your machine does not support warpCTC, then use standard ctc version in the master branch

  • standard CTC: use tf.nn.ctc_loss to calculate the ctc loss

Dependency

Some details

The training data:
data

Notice that, parameters can be found in ./lstm.yml(higher priority) and lib/lstm/utils/config.y
some parameters need to be fined tune:

  • learning rate
  • decay step & decay rate
  • image_height
  • optimizer?

in ./lib/lstm/utils/gen.py, the height of the images are the same, and I pad the width to the same for each batch, so if you want to use your own data, the height of the image shall be the same.

Result

The accurary can be more that 95% acc

Read this blog for more details and this blog for how to use tf.nn.ctc_loss or warpCTC