Helper function to download training data from the official tessdata repository. On Linux, the fast training data can be installed directly with yum or apt-get.
Helper function to download training data from the contributed tessdata_contrib repository.
Usage
tesseract_download(
lang,
model = c("fast", "best"),
datapath = NULL,
progress = interactive()
)
tesseract_contributed_download(
lang,
model = c("fast", "best"),
datapath = NULL,
progress = interactive()
)
Arguments
- lang
three letter code for language, see tessdata repository.
- model
either
fast
orbest
is currently supported. The latter downloads more accurate (but slower) trained models for Tesseract 4.0 or higher- datapath
destination directory where to download store the file
- progress
print progress while downloading
Details
Tesseract uses training data to perform OCR. Most systems default to English training data. To improve OCR performance for other languages you can to install the training data from your distribution. For example to install the spanish training data:
tesseract-ocr-spa (Debian, Ubuntu)
tesseract-langpack-spa (Fedora, EPEL)
On Windows and MacOS you can install languages using the tesseract_download
function which downloads training data directly from
github
and stores it in a the path on disk given by the TESSDATA_PREFIX
variable.
Examples
# download the french training data
# this is wrapped around a \donttest{} block because otherwise the clang19
# CRAN check will fail with a "> 5 seconds" message
# \donttest{
dir <- tempdir()
tesseract_download("fra", model = "best", datapath = dir)
#> [1] "/tmp/RtmphFJR7E/fra.traineddata"
file <- system.file("examples", "french.png", package = "cpp11tesseract")
text <- ocr(file, engine = tesseract("fra", datapath = dir))
cat(text)
#> La fonction du langage, dit-on, est d'exprimer la pensée en la manifestant extérieurement. Il faut
#> pourtant apporter à cette formule une précision importante, et même en souligner l'insuffisance. En
#> effet la pensée doit ici être entendue au sens conceptuel, voire rationnel : l'expérience a montré que
#> les singes anthropoïdes peuvent accéder à une expression symbolique abstraite (utilisation de la
#> langue des signes des personnes sourdes, manipulation de symboles abstraits), mais il n'a jamais pu
#> être établi qu'un animal non humain soit capable d'exprimer une idée, ni même un concept. En
#> d'autres termes, certains animaux sont capables d'exprimer leurs besoins (la faim, la soif), leurs
#> émotions (désirs ou craintes, tristesse ou joie…), mais aucun ne semble capable de porter un
#> jugement liant des concepts, à l'exception de notre espèce. Cette précision rejoint la remarque déjà
#> formulée par des philosophes. Par exemple, remarque Aristote, les autres animaux peuvent exprimer
#> le plaisir ou la douleur, qui sont des sensations, non le juste et l'injuste, qui sont des idées (et c'est
#> pourquoi l'Homme, et l'Homme seulement, est « un animal politique »). Selon Descartes, seul le
#> langage (sous la forme de paroles articulées ou de tout autre système de signes équivalent) est
#> capable de formuler des idées et de les communiquer à d'autres.
# }
# download the greek training data
# this is wrapped around a \donttest{} block because otherwise the clang19
# CRAN check will fail with a "> 5 seconds" message
# \donttest{
dir <- tempdir()
tesseract_contributed_download("grc_hist", model = "best", datapath = dir)
#> [1] "https://github.com/tesseract-ocr/tessdata_contrib/raw/main/grc_hist/best/grc_hist.traineddata"
#> [1] "/tmp/RtmphFJR7E/grc_hist.traineddata"
file <- system.file("examples", "polytonicgreek.png",
package = "cpp11tesseract")
text <- ocr(file, engine = tesseract("grc_hist", datapath = dir))
cat(text)
#> 20 Ε 2 Σ. ΣΣ ν
#> ἠὲ καὶ ἀμφαδίην, ἐπεὶ οὔ τινα δείδιμεν ἔμπης·
#> οὐ γάρ τίς με βίῃ γε ἑκὼν ἀέκοντα δίηται,
#>
#> 2 . 2 ’ 2 ο 2 2 Σ Α ΣΣΣ . 2 ῳ.
#> οὐδέ τι ἰδρείῃ, ἐπεὶ οὐδ’ ἐμὲ νήϊδά γ’ οὕτως
#> ἔλπομαι ἐν Σαλαμῖνι γενέσθαι τε τραφέμεν τε.
# }