Optical Character Recognition Tool


Some technically challenging projects on Optical Character Recognition (OCR) have included the following concepts:

  1. Creating algorithm for visual captcha
  2. Developing captcha plug-in for web based applications
  3. Developing captcha image for web based applications
  4. Decoding visual captcha and converting to text (e.g. reading license plates)
  5. Reading complex hand written documents
  6. Extracting hand written mathematical text from scanned documents and creating MS Excel based calculations

We are currently working on developing various other uses for OCR technology such as reading number plates of vehicles, facial image recognition for security purposes, and email image recognition for anti-spam applications.

Our OCR development is scientific and uses the state of the art algorithms to work solve optical character recognition problems.


We use the following tools to analyze and develop the OCR solutions:

  Matlab 7.0

Prototyping in Matlab comes with a good set of visualization tools. This helps in identifying the problems in the different algorithms, resulting in quicker development times. It also enables access to support from the research community and researchers distribute part of their source code as matlab libraries, which reduces the time required to develop new algorithms.

The commonly used tools include the following: Optimization toolbox, Support Vector Machine library, Shape Context library and Image Processing library


  Visual C++

Matlab lacks optimization for execution of the algorithms, therefore the code developed in Matlab is generally ported to C++ and optimized for real-time detection of the OCR.


The OCR detection requires two problems to be solved simultaneously:

  Segmentation

Segmentation is the problem of finding the boundaries of the alphabets using some sort of image processing or machine learning algorithm. There were several techniques used for segmentation and pre-processing described below:


  1. Gaussian blur for alphabet thinning
  2. Blobization for merging pixels into characters
  3. Graph cuts (Spatially Coherent Clustering with Graph Cuts - Zabih and Kolmogorov, CVPR '04)
  4. Normalized cuts (Normalized cuts and image segmentation - Jianbo Shi, Malik, J. - Pattern Analysis and Machine Intelligence)
  5. Meanshift transform for mode finding
  6. Medial Axis transform for skeletonization of alphabets

  Recognition

Recognition determines what alphabet is constituted by the segmented characters using our machine learning algorithm.

Our segmentation algorithm looks specifically for character segmentation and works much better than other publicly published works.


Programming language:VC++

Need Help?
   Request a Quote
   Email Us
or call us at

1-919-490-5971