Open Source OCR Engine

Bindings to 'Tesseract' < https://opensource.google.com/projects/tesseract>: a powerful optical character recognition (OCR) engine that supports over 100 languages. The engine is highly configurable in order to tune the detection algorithms and obtain the best possible results.


Simple example

text <- ocr("http://jeroenooms.github.io/images/testocr.png")
cat(text)

Roundtrip test: render PDF to image and OCR it back to text

library(pdftools)
library(tiff)
 
# A PDF file with some text
setwd(tempdir())
news <- file.path(Sys.getenv("R_DOC_DIR"), "NEWS.pdf")
orig <- pdf_text(news)[1]
 
# Render pdf to jpeg/tiff image
bitmap <- pdf_render_page(news, dpi = 300)
tiff::writeTIFF(bitmap, "page.tiff")
 
# Extract text from images
out <- ocr("page.tiff")
cat(out)
 

On Windows and MacOS the package binary package can be installed from CRAN:

install.packages("tesseract")

Installation from source on Linux or OSX requires the Tesseract library (see below).

On Debian or Ubuntu install libtesseract-dev and libleptonica-dev. Also install tesseract-ocr-eng to run english examples.

sudo apt-get install -y libtesseract-dev libleptonica-dev tesseract-langpack-eng

On Fedora and CentOS we need tesseract-devel and leptonica-devel

sudo yum install tesseract-devel leptonica-devel

On OS-X use tesseract from Homebrew:

brew install tesseract

Tesseract uses training data to perform OCR. Most systems default to English training data. To improve OCR performance for other langauges you can to install the training data from your distribution. For example to install the spanish training data:

On other platforms you can manually download training data from github and store it in a path on disk that you pass in the datapath parameter. Alternatively you can set a default path via the TESSDATA_PREFIX environment variable.

News

1.8

  • Add support for HOCR output (#20)
  • Remove 'script' and 'orientation' attributes in output (doesn't work in Tesseract 4)

1.7 (internal)

  • Add support upcoming Tesseract 4 (compiler fix + separate tessdata dir)
  • Configure script now explicitly tests for CXX11 (required by Tesseract 4)

1.6

  • Windows: update libtesseract to 3.05.01
  • tesseract_download now uses 3.04 tree (instead of 4.00) as suggested in readme
  • For static packags on Win/Mac, languages stored in: rappdirs::user_data_dir('tesseract')
  • Use 'png' instead of 'tiff' to read magick images
  • Compile with $(C_VISIBILITY) to hide internal symbols (requires Rcpp 0.12.12)
  • Use Rcpp symbol registration

1.4

  • Run engine finalizer on R exit (requires Rcpp 0.12.10)
  • Move autobrew script to separate repository
  • Add symbol registration

1.3

  • tesseract() gains an 'options' parameter for setting engine variables
  • New tessseract_download() function for installing training data on Win/Mac
  • Initiate default tesseract engine onAttach() to fail for missing training data
  • Add support for ocr() on magick images

1.2

  • Try to fix build for CRAN OS-X, again.

1.1

  • Try to fix build for CRAN OS-X build server
  • Show 'loaded' and 'available' languages in print.tesseract()

1.0

  • Initial CRAN release

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("tesseract")

2.0 by Jeroen Ooms, 2 months ago


https://github.com/ropensci/tesseract


Report a bug at https://github.com/ropensci/tesseract/issues


Browse source code at https://github.com/cran/tesseract


Authors: Jeroen Ooms [aut, cre] (<https://orcid.org/0000-0002-4035-02899>)


Documentation:   PDF Manual  


Task views: Natural Language Processing


Apache License 2.0 license


Imports Rcpp, pdftools, curl, rappdirs, tibble, digest

Suggests magick, spelling, knitr, rmarkdown

Linking to Rcpp

System requirements: Tesseract >= 3.03 (libtesseract-dev / tesseract-devel) and Leptonica (libleptonica-dev / leptonica-devel). On Debian you need to install the English training data separately (tesseract-ocr-eng)


Suggested by magick.


See at CRAN