Difference between revisions of "Third-party software integration: OCR"

From OpenKM Documentation
Jump to: navigation, search
m
 
(35 intermediate revisions by the same user not shown)
Line 1: Line 1:
Tesseract is an Open Source OCR engine adopted by Google. It works really well. The OCR natively can read TIFF documents and has hight ratio of recognition with images 300 dpi of resolution and converted to lineart (1 bit color).
+
Starting with OpenKM 5.1.9 you can choose between several OCR engines:
  
You can download the source code from http://code.google.com/p/tesseract-ocr/ and compile yourself. Also download the language files you need and uncompress them in the same folder of the application.
 
  
If you are using a computer with Debian / Ubuntu, the installation simplifies a lot:
+
{| align="center" border="1" cellpadding="5" cellspacing="0"
 +
! OCR Engine || Text Extractor || Image Formats || Program arguments
 +
|-
 +
| [[Tesseract|Tesseract 2.x]] || com.openkm.extractor.Tesseract2TextExtractor || TIFF || /path/to/tesseract ${fileIn} ${fileOut}
 +
|-
 +
| [[Tesseract|Tesseract 3.x]] || com.openkm.extractor.Tesseract3TextExtractor || TIFF PNG JPG GIF || /path/to/tesseract ${fileIn} ${fileOut}
 +
|-
 +
| [[Cuneiform]] || com.openkm.extractor.CuneiformTextExtractor || TIFF PNG JPG GIF || /path/to/cuneiform ${fileIn} -o ${fileOut}
 +
|-
 +
| Abby || com.openkm.extractor.AbbyTextExtractor || TIFF PNG JPG GIF || /path/to/abby ${fileIn} -o ${fileOut}
 +
|-
 +
|}
  
$ aptitude install tesseract-ocr
+
{{Advice|Check this [http://www.splitbrain.org/blog/2010-06/15-linux_ocr_software_comparison Linux OCR Software Comparison].}}
  
And
+
So, if you want to pass a command line parameter to your tesseract executable, you should use this configuration:
  
  $ aptitude install tesseract-ocr-eng
+
  system.ocr=/usr/bin/tesseract ${fileIn} ${fileOut} -l esp
  
If you want to add support for english language. Now you have to tell OpenKM to use this OCR application. Edit the file OpenKM.cfg:
+
{{Note|You need to modify the '''registered.text.extractors''' configuration property to match the OCR engine you have configured using '''system.ocr'''. By default only Cuneiform text extractor is enabled. If you want to configure Tesseract remove the Cuneiform extractor and add the Tesseract extractor.}}
  
$ vim OpenKM.cfg
+
You can also use an OpenOffice.org dictionary to enhance the OCR process. You can find these language specific dictionaries at [http://extensions.services.openoffice.org/en/dictionaries OpenOffice.org Dictionary Repository]. After download, set this configuration property with the path to the dictorionay file:
  
And set the system.ocr property to the path of the tesseract executable:
+
system.openoffice.dictionary=/path/to/dictionary.(oxt|zip)
  
<source lang="java">
+
Since OpenKM 5.1.10 you have a new configuration property which make possible to perform OCR in upside down scanned pages. This optional configuration property is called '''system.ocr.rotate''' and is defined as a list of degrees to rotate the pages. For example:
system.ocr=/usr/local/bin/tesseract
 
</source>
 
  
For more info, go to http://code.google.com/p/tesseract-ocr/.
+
  system.ocr.rotate=90;180;270;
 +
 
 +
=== Software required ===
 +
You can enable any of these text extractors adding it in the '''textFilterClasses''' param of the '''SearchIndex''' section in your repository.xml file.
 +
 
 +
Starting with OpenKM 5.1 we offer integration with [http://en.openocr.org/ Cognitive OpenOCR (Cuneiform)]. This OCR engine make a very good job improving Tesseract conversion ratios.
 +
 
 +
* [[Tesseract]]
 +
* [[Cuneiform]]
 +
 
 +
=== Older OpenKM versions ===
 +
Starting from OpenKM 5.1.8 Cuneiform configuration was changed and the parameters are, set in '''system.ocr''' configuration. Should be set to "/usr/bin/cuneiform ${fileIn} -o ${fileOut}". See [[Migration from 5.1.7 to 5.1.8]] for more info. In older OpenKM releases the right configuration was "/usr/bin/cuneiform".
 +
 
 +
Starting from OpenKM 5.1.9 Tesseract configuration has changed and the parameters are, set in '''system.ocr''' configuration. Should be set to "/usr/bin/tesseract ${fileIn} ${fileOut}". See [[Migration from 5.1.8 to 5.1.9]] for more info. In older OpenKM releases the right configuration was "/usr/bin/tesseract".
  
 
[[Category: Installation Guide]]
 
[[Category: Installation Guide]]
There is also another interesting free OCR application called OCRopus. It has many improvements over Tesseract but is on early development stage. Last released version (0.3.1) is quite usable and works very well but have to be compiled and actually is a difficult task. Visit http://code.google.com/p/ocropus/ for more info.
 

Latest revision as of 11:20, 25 March 2013

Starting with OpenKM 5.1.9 you can choose between several OCR engines:


OCR Engine Text Extractor Image Formats Program arguments
Tesseract 2.x com.openkm.extractor.Tesseract2TextExtractor TIFF /path/to/tesseract ${fileIn} ${fileOut}
Tesseract 3.x com.openkm.extractor.Tesseract3TextExtractor TIFF PNG JPG GIF /path/to/tesseract ${fileIn} ${fileOut}
Cuneiform com.openkm.extractor.CuneiformTextExtractor TIFF PNG JPG GIF /path/to/cuneiform ${fileIn} -o ${fileOut}
Abby com.openkm.extractor.AbbyTextExtractor TIFF PNG JPG GIF /path/to/abby ${fileIn} -o ${fileOut}

Nota idea.png Check this Linux OCR Software Comparison.

So, if you want to pass a command line parameter to your tesseract executable, you should use this configuration:

system.ocr=/usr/bin/tesseract ${fileIn} ${fileOut} -l esp

Nota clasica.png You need to modify the registered.text.extractors configuration property to match the OCR engine you have configured using system.ocr. By default only Cuneiform text extractor is enabled. If you want to configure Tesseract remove the Cuneiform extractor and add the Tesseract extractor.

You can also use an OpenOffice.org dictionary to enhance the OCR process. You can find these language specific dictionaries at OpenOffice.org Dictionary Repository. After download, set this configuration property with the path to the dictorionay file:

system.openoffice.dictionary=/path/to/dictionary.(oxt|zip)

Since OpenKM 5.1.10 you have a new configuration property which make possible to perform OCR in upside down scanned pages. This optional configuration property is called system.ocr.rotate and is defined as a list of degrees to rotate the pages. For example:

 system.ocr.rotate=90;180;270;

Software required

You can enable any of these text extractors adding it in the textFilterClasses param of the SearchIndex section in your repository.xml file.

Starting with OpenKM 5.1 we offer integration with Cognitive OpenOCR (Cuneiform). This OCR engine make a very good job improving Tesseract conversion ratios.

Older OpenKM versions

Starting from OpenKM 5.1.8 Cuneiform configuration was changed and the parameters are, set in system.ocr configuration. Should be set to "/usr/bin/cuneiform ${fileIn} -o ${fileOut}". See Migration from 5.1.7 to 5.1.8 for more info. In older OpenKM releases the right configuration was "/usr/bin/cuneiform".

Starting from OpenKM 5.1.9 Tesseract configuration has changed and the parameters are, set in system.ocr configuration. Should be set to "/usr/bin/tesseract ${fileIn} ${fileOut}". See Migration from 5.1.8 to 5.1.9 for more info. In older OpenKM releases the right configuration was "/usr/bin/tesseract".