OCR using Convolutional Neural Network for Urdu language


(Karthik Kamalakannan) #1

I have been developing OCR(Optical character recognition) for Urdu language to identify Urdu ligatures with Noori/Nastalique fonts. Input to this module is any scanned image of any urdu literature and then it can identify the text and convert it int editable text.

I want to know which approach is best to solve this problem:

  1. Machine Learning
  2. Neural Networks

Right now I am trying CNN (Convolutional Neural Network) approach using Keras(python library), in which i am using training dataset containing 150X150 B/W images of ligatures for training of network but i am confused how many layers should i add and how input should be given to network

Please guide me how I can approach to the correct way of solution to this problem.

This is a query from a visitor of skcript.com named Abbas Haider.

(Naveen Honest Raj) #2

OCR Recognition is one of the exciting things to do. And CNN is the right choice to go. So here are few things that might help you with your network.

  1. Make sure your dataset is large and distributed nearly even for every class of character.
  2. The HyperParameters like ‘the number of hidden layers’ is not a fixed value. There are few ways you can find which range might give you the best accuracy. Iterate the network through different values of hidden layers. And I guess 2-layered CNN is good to go.
  3. Use smaller strides so that even the smallest details are also considered for predictions ( as because your image size is 150 * 150 )

Make yourself comfortable with some other ImageRecognition-specific frameworks. I heard Kur is one of the good recognition. If you got some time, experiment with it.