TesseractでOCR

Tesseract OCR はオープンソースの OCR エンジンである。バージョン4以降は LSTM をサポートしている。性能は最新の OCR にはかなわないが、気軽に使えるオープンソースのエンジンとして今も一定の需要があるようだ。

Homebrew を使っている Mac なら brew install tesseract でインストールできる。

tessdata_best のリポジトリから英語用 eng.traineddata,日本語用の jpn.traineddata,日本語縦書き用の jpn_vert.traineddata をダウンロードし,Apple Silicon 版 Homebrew の Tesseract なら /opt/homebrew/share/tessdata に入れる(もともとある eng.traineddata は best 版ではないらしい)。

例えば hoge.png に入った英語の画像を認識して hoge.txt に入れたい場合:

tesseract hoge.png hoge

認識対象文字が数字に限られている場合:

tesseract hoge.png hoge digits

この digits は /opt/homebrew/share/tessdata/configs/digits というファイルを指す。この中には tessedit_char_whitelist 0123456789-. と書き込まれている。こういう config ファイルは自分で追加することができる。

言語を指定するには

tesseract hoge.png hoge -l eng   # 英語
tesseract hoge.png hoge -l jpn -c preserve_interword_spaces=1  # 日本語
tesseract hoge.png hoge -l jpn_vert -c preserve_interword_spaces=1  # 日本語縦書き
tesseract hoge.png hoge -l eng+jpn  # 英語と日本語
tesseract hoge.png hoge -l snum  # シリアルナンバー

などとすればよい。対応する *.traineddata が /opt/homebrew/share/tessdata に入っている必要がある。

参考:Tesseract OCR 近況(2018/06)Tesseract 近況 その2 (2018/10 Early)