|
Some technically challenging projects on Optical Character Recognition (OCR)
have included the following concepts:
-
Creating algorithm for visual captcha
-
Developing captcha plug-in for web based applications
-
Developing captcha image for web based applications
-
Decoding visual captcha and converting to text (e.g. reading license plates)
-
Reading complex hand written documents
-
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:
-
Gaussian blur for alphabet thinning
-
Blobization for merging pixels into characters
-
Graph cuts (Spatially Coherent Clustering with Graph Cuts - Zabih and Kolmogorov, CVPR '04)
-
Normalized cuts (Normalized cuts and image segmentation - Jianbo Shi, Malik, J. - Pattern Analysis and Machine Intelligence)
-
Meanshift transform for mode finding
-
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++
|