Skip to content
This repository has been archived by the owner on Jun 11, 2020. It is now read-only.


Folders and files

Last commit message
Last commit date

Latest commit



37 Commits

Repository files navigation

This repository has been archived. Please see all the other (much better) implementations around GitHub


A TensorFlow implementation of

But what is a CRNN?

It is a Convolutional Recurrent Neural Network that can be used as an OCR


  • Tensorflow (tested with 1.8) pip3 install tensorflow
  • Scipy pip3 install scipy

What training data was used?

All training data (200 000 examples) were generated using my other project

To do the same, simply install that project with pip (pip install trdg) and do trdg -c 200000 -w 1 -t 8. -t should be your processor thread count.

Pretrained model

Available in CRNN/save. Use python3 -ex ../data/test --test --restore to test.

Specify charset

You can specify charset to include only numbers python --train -ex ../data/test -it 50000 -cs 0123456789


It works but is a suboptimal solution for OCR in its current form as it makes some mistakes. Do note that I used a bigger char vector than the paper.

For fun, here are a list of words with their prediction:

Ground truth Prediction Image
retardates retardates 1
pay-roller poy-roler 2
rhizopodist rhizospodist 3
theriacas trenagas 4
semantically semanticaly 5
dualistic duaistic 6
high-flying highi-fling 7
grossify grsity 8
scutular scutular 9
crispened crispened 10