Tesseract OCR iOSで日本語を読ませる

Googleが出資しているという文字認識APIiOS用ラッパー、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

したらアンインストールできた…気がする。