Tesseract-OCR の各言語のラッパーいろいろ

サーバーサイドでOCRさせたいので各言語のtesseract-ocrラッパーを調査。

[2017/02/20 追記]

tesserocrを追加。

また、以下の情報はTesseract 3.0xについてのみです。4.xについては調査していません*1

最新の3.05でも動くものは動くと思いますが、新機能であるTSV出力は未対応だろうと思います。

[追記ここまで]

なお、APIとして使う分にはtesseractコマンドを呼び出すタイプはリクエストの度にプロセスを生成することになるので好ましくないかと。

今更であはるけれども書いておくと、Tesseract-OCRというのはGoogleが開発を支援しているオープンソースOCRエンジンのこと。

ご本尊:tesseract-ocr · GitHub

Ruby

ruby-tesseract-ocr

3.03 までサポート(3.04はまだ)。ruby-FFIライブラリによりlibtesseract経由でOCRAPIruby的。

GitHub - meh/ruby-tesseract-ocr: A Ruby wrapper library to the tesseract-ocr API.

3.04でtesseract-ocr側のAPIに変更が入っているのと、OCR結果を格納するC++の構造体の仕様が変わってるのでそこで引っかかってる。

少なくともFFIの知識がいる。

rtesseract

RMagickで画像処理を行った後、tesseractコマンドを実行するように見える。 バージョンごとのAPI変更の影響は受けにくい。

rtesseract/lib at master · dannnylo/rtesseract · GitHub

Python 2/3

もうちょっと仲良くしろよ……。なんで三つもあるんだ。

pyocr

3.04までOK。 tesseract-ocr 3.04でlibtesseractを呼び出す。 3.04未満のバージョンではPopen関数経由。

GitHub - jflesch/pyocr: A Python wrapper for Tesseract and Cuneiform

pytesseract

Popen関数でtesseractコマンド自体を呼び出すタイプ GitHub - madmaze/pytesseract: A Python wrapper for Google Tesseract

tesserocr

GitHub - sirfz/tesserocr: A Python wrapper for the tesseract-ocr API

tesseract 3.04 以降。

Go

3.02以降対応(コミットログを見る限り3.04も対応してる模様)。

exec関数でtesseractコマンド自体を呼び出すタイプ。

GitHub - otiai10/gosseract: Golang OCR library, wrapping Tesseract-ocr

go-tesseract

同じくexec関数でtesseractコマンド自体を呼び出すタイプ。

GitHub - KuroiKitsu/go-tesseract: Go wrapper for Tesseract OCR.

Swift(iOS)

iOS用。

GitHub - gali8/Tesseract-OCR-iOS: Tesseract OCR iOS is a Framework for iOS7+, compiled also for armv7s and arm64.

過去記事参照。

Windows

Tesseract-OCRの最新版のバイナリはWindows用には公式には提供されていない。PDF出力機能関係の問題があるとかないとかよくわからない。 バージョン 3.03/3.04についてはCygwin向けのパッケージを利用するか、有志がビルドした非公式バイナリを使う。

GitHub - charlesw/tesseract: A .Net wrapper for tesseract-ocr

Android

Tess4J

どっちかというとJava用のラッパーか。

3.05ベースにバージョンアップ済み。

tess-two

GitHub - rmtheis/tess-two: Fork of Tesseract Tools for Android

すでに3.05ベースにバージョンアップしている模様。  

Apache License。

APIとして完成しているもの

OpenOCR

ジョブキューまであるのでフルスペック。内部でどのGo言語ラッパーを呼び出しているのかは未調査。

OpenOCR by tleyden

GitHub - tleyden/open-ocr: Run your own OCR-as-a-Service using Tesseract and Docker

番外編(Tesseract-OCRとは別)

tesseract-OCR ではないけれど。

Microsoft OCR Library for Windows Runtime

WinRT/Metro TIPS:OCR(光学文字認識)機能を実装するには?[ユニバーサルWindowsアプリ開発] - @IT

NuGet Gallery | Microsoft OCR Library for Windows Runtime 1.0.0

SaaSタイプのAPI

利用規約の面からアウトだったかもしれないけどEverNoteAPIいうのもあったはず。

文字認識 | docomo Developer support | NTTドコモ

Vision API - 機械学習による画像認識, OCR  |  Google Cloud Platform


ひとまずここまで。

*1:そもそもまだリリースされていません。