【iOS】オープンソースのOCRライブラリ調査

はじめに

iOSで利用可能なオープンソースのOCRライブラリを調査してみました。

前提条件

下記条件で調査しました。

  • 無料であること
  • オフラインで利用できること
  • サーバサイドやクラウドサービスを介さず利用できること
  • 手書き文字は考慮しないこと
  • 日本語の認識が可能であること
  • 日本語学習データの作成 or チューニングが可能なこと

調査結果

以下の3つのライブラリをピックアップしてみました。

Tesseract OCR iOS SwiftOCR SwiftyTesseract
OCRエンジン パターン認識 ニューラルネットワーク LSTMニューラルネットワーク
日本語学習データの提供
ライセンス MIT license Apache License,
Version 2.0
MIT License
依存ライブラリ Tesseract 3
Leptonica
libpng
libjpeg
libtiff
Swift-AI
GPUImage
Union-Find
Tesseract 4
Leptonica
libpng
libjpeg
libtiff

Tesseract OCR iOS

OCRエンジンにGoogleが開発を進めているTesseractを採用しているだけあって、情報量が多く人気もあるライブラリです。ただし、Tesseract本体、及び、対応する学習データのバージョンが若干古いため、日本語の認識精度に関しては疑問符が付きます。現在進行系でTesseract最新バージョンの実装を進めている(?)模様。

SwiftOCR

Tesseractよりパフォーマンスに優れる点をアピールしているライブラリです。ただし、短い英数字コードの認識が得意らしく、誌や文を認識したい場合はTesseractが良いと説明しています。日本語を認識するためには学習データを作成する必要があり、トレーニングツールが提供されているとは言え、十分な精度を望むのであれば導入に相応の時間を要しそうです。

SwiftyTesseract

Tesseract OCR iOSに同じく、TesseractをOCRエンジンとして採用しているライブラリです。Tesseract OCR iOSとの違いは最新安定バージョンのTesseractを採用している点で、パフォーマンスと認識精度が大きく向上しています。ただし、Tesseract本体のAPIを完全にはサポートしておらず、利用できない機能があるので注意が必要です。

まとめ

ここ数年で見聞きする機会が多くなった「ディープラーニング」によって、OCRライブラリの文字認識精度が飛躍的に向上している印象を受けました。
調査したライブラリの中では、SwiftyTesseractが最も手軽かつ実用向きではないかと考えます。
他にも有用なライブラリをご存知の方がいらっしゃいましたら、ぜひご教示ください。

おまけ

クラウド可かつ課金可まで条件を緩めると、Firebase向けML Kitのテキスト認識(OCR)一択な気がします。