Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have always found OCR technology to be behind on open source systems. I've also watched the Ocropus project since its infancy. I've tried what I've heard is the best OCR engine available for Linux, Tesseract, and have found it woefully lacking for business documents. Are there any other more promising OCR implementations? What about the even more hopeful goal for interpreting handwriting? What is possible on *nix systems in this field?

share|improve this question

I found a similar question over on StackOverflow and the Asprise OCR SDK, one of the linked commercial products, boasts a Linux version.

share|improve this answer

Well, depends what you mean by 'business documents'.


I tested cuneiform with some business letters and I was quite astonished by its low error rate (regarding mis-recognized characters or words).

For my use case I only need the raw text for indexing purposes - I am not interested in text to layout element mapping or something like that.

And the documents are just one column.

Unfortunately, cuneiform currently (as of 1.1) has some problems:

You can disable the layout algorithm like this:

$ cuneiform --singlecolumn -l ger -f text -o foo.txt image-0001

(-l specifies the language of the source document)


Convert an image to text and print to stdout:

$ tesseract image-0001 stdout

Display the supported languages:

$ tesseract --list-langs

Has issues with umlauts (when scanning with english as specified language).

Also supports 'Orientation and script detection' (OSD).


$ ocrad -F utf8 image-0001

Text is printed by default to stdout.

In a business document, it missed an underlined word, where cuneiform/tesseract/gocr didn't.


$ gocr image-0001

Text is printed by default to stdout.


Sane has very good support for a lot of automated document feed (ADF) scanners, e.g. for the Avision and Fujitsu ones.

Included with Sane is the scanadf command line program which you can use to build scripted scan pipelines.

share|improve this answer
I tried Cuneiform. It works well if you need to recognize scanned image (not photos). I used Yagf as a GUI. – Sergei Oct 13 '12 at 9:58

There are few popular OCR command-line tools:

  • Tesseract (ReadMe, FAQ) (Python)

    Also available for: Tesseract .NET, Tesseract iOS

    An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. Tesseract is probably the most accurate open source OCR engine available.


    tesseract [inputFile] [outputFile] [-l optionalLanguageFile] [PathTohOCRConfigFile]

    Example: Make existing PDF searchable ( OCR ) via command line / script

  • GOCR

    Open-source character recognition. It converts scanned images of text back to text files. GOCR can be used with different front-ends, which makes it very easy to port to different OSes and architectures. It can open many different image formats, and its quality have been improving in a daily basis.

  • OCRopus™ (FAQ) (written in Python, NumPy, and SciPy)

    OCR system focusing on the use of large scale machine learning for addressing problems in document analysis, featuring pluggable layout analysis, pluggable character recognition, statistical natural language modeling, and multi-lingual capabilities.

    The OCRopus engine is based on two research projects: a high-performance handwriting recognizer developed in the mid-90's and deployed by the US Census bureau, and novel high-performance layout analysis methods.

    OCRopus is development is sponsored by Google and is initially intended for high-throughput, high-volume document conversion efforts. We expect that it will also be an excellent OCR system for many other applications.

  • Tessnet2 (Open source, OCR, Tesseract, .NET, DOTNET, C#, VB.NET, C++/CLI)

    Tesseract is a C++ open source OCR engine. Tessnet2 is .NET assembly that expose very simple methods to do OCR. Tessnet2 is under Apache 2 license (like tesseract), meaning you can use it like you want, included in commercial products.

Other already suggested: ABBYY CLI OCR for Linux, Asprise OCR.

Read also:

For more complete list, check: List of optical character recognition software at Wikipedia.

share|improve this answer

... OCR is more than "only character recognition". Image handling, preprocessing - page/layout analysis to find the texts, images, tables or barcodes. For the recognition, you have to deal with different fonts, sizes and languages. This is important because to get good results you have to use dictionaries and language definitions. Finally people expect more export options than text (e.g., XML, RTF, or searchable PDF). There are some commercial options for SDKs, but they are not cheap and for free.

Recently I found a CLI OCR for Linux from ABBYY. There is a free 100 page trial.

share|improve this answer

If you have a budget, I strongly recommend ABBYY FineReader Engine CLI for Linux. Our company has been using it in our web-application for a year and we plan to renew the license. Very good recognition quality, command-line interface, recognition in many languages.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.