Skip to content

honzatran/nocr

Repository files navigation

NOCR

##Overview NOCR is an open source C++ software package for text recognition in natural scenes, based on OpenCV. The package consists of a library, console program and GUI program for text recognition.

###Platforms NOCR is for now only compatible with linux platform.

###External library used

  1. OpenCV - standard C++ library for computer vision, version 2.4.10,
  2. Qt - used for implementation of the GUI program, version 5.
  3. Boost - used library for memory pool
  4. PugiXML - xml library
  5. LibSVM - support vector machine library

The latter two are already a part of our package.

##Library We have decomposed main problem into three distinct subproblems, letter localization, OCR with probability outputs and word formatting using located letters. We localize letters on the input bitmap in the first phase, afterwards words are detected from recognized letters using probality outputs from OCR and letter's location on image.

###Letter Localization In our thesis we proposed to solve letter localization problem using algorithm ER proposed by Neumann and Matas. The implementation was designed for research purposes, so it is easily upgratable and offers easy way to modifify the algorithm. It's divided into two seperated phases. Look at source codes of algorithm for first phase of ER and header of second phase algorithm's implementation header and correspoding cpp file.

###OCR OCR with probability output is implemented using support vector machine from LibSVM and direction histogram. For further details see OCR interface, OCR implementation and direction histogram

###Word formation Second part of our thesis was focused on improving existing algorithm for word formatting from Phan a co. See the header file for further details.

###Integration Our library is providing easy integration of any algorithm for letter localization and any OCR with probability outputs and the modified algorithm for word formation using policy classes. See text recognition header for further details.

##Console application Our console application uses api provided from the nocr library for text recognition in natural scenes. It also supports XML and plane text output. For futher details use option help.

##GUI application GUI application using the library provided api.

##Installation If you don't have installed OpenCV, version 2.4.10 and Boost library, install them first.

1.  git clone https://github.com/honzatran/nocr
2.  mkdir release && cd release
3.  cmake -DCMAKE_BUILD_TYPE=RELEASE ..
4.  make

Directory bin contains console and GUI application binaries and directory lib contains shared library NOCR.