Googleが出資しているという文字認識APIのiOS用ラッパー、Tesseract OCR iOSを使って文字認識をさせてみた備忘録です。
環境:macOS HighSierra, MacBook Pro 2016, XCode9.3
本体のリポジトリはここ。ただし、CocoaPodsから読ませるので、直接Cloneしない。
github.com
CocoaPodsが入ってない場合は、まずCocoaPodsをインストール。
qiita.com
終わったらここを参考にインストールしていく。
a244.hateblo.jp
テストコードは公式Wikiの方を使用した。シミュレータで動かす分にはこちらのほうがシンプルで良い。
上の記事でも言っているとおり、BridgingHeaderはいらないので惑わされないように(リンクが通らなくて1時間くらい悩んだ)。
Using Tesseract OCR iOS · gali8/Tesseract-OCR-iOS Wiki · GitHub
Tesseract OCR iOSの中身はTesseract3.03らしく、最新(2018/4/8時点でmasterは4.00)の学習データ(tessdata)は使えない。
Githubで公開されている3.04か、Wikiからそれ以前のものを選んで使う。
GitHub - tesseract-ocr/tessdata at 3.04.00
Data Files · tesseract-ocr/tesseract Wiki · GitHub
英語版(eng.tessdata)は3.04そのままでも動くが、日本語版(jpn.tessdata)は3.04を使うとエラーが出る。
read_params_file: parameter not found: allow_blob_division
これを解決するために、下記に従って学習データ内のパラメータを変更するのだが、このときビルドに使うソースは3.04を使うこと。
GitHub - tesseract-ocr/tesseract at 3.04.01
4.00だと加工後のtessdataを読み込んでくれない。
a244.hateblo.jp
それから、./configureにパラメータをつけると私の環境では失敗してしまったので、パラメータをなくしたら上手くいった。
これは上の記事を読みながら事前に
$ brew link icu4c --force
しておいたからかも。
./autogen.sh ./configure make sudo make install make training sudo make training-install
なお、一度4.00をインストールしてしまったときは、makeしたディレクトリで
sudo make uninstall sudo make training-uninstall
したらアンインストールできた…気がする。