画像やpdfの文字認識を行うtesseractを検証してみる
大量のpdf...しかも紙をスキャンしたもので完全なる画像... に書かれた文字(注 手書きの文字ではなく、印刷文字です)をテキスト化する必要があったのですが、 全部読んで手入力するとか時間の無駄遣いすぎるので、 tesseractを使って自動で認識させてみました。 tesseractとは https://github.com/tesseract-ocr/ オープンソースのOCRエンジン。 今回のネタは〜の使い方ではありませんので、インストール方法とかは省きます。 Linux, Mac, Windowsで使うことができます。 CUI(コマンドライン、ターミナル)で使うことができるので、 複数枚を一気にやりたい時なんかに便利です。 現在最新安定板は3.05ですが、4.00 alphaを使いましょう。 4.00は内部でLSTMが使われており、認識精度が大幅に向上しています。 ただしalpha版の為、3.xで使えていたホワイトワード/ブラックワードなどが使えない問題があります。 しかしその問題を吹き飛ばすくらい精度が上がっているのも確かです。 使い方は簡単で tesseract <画像ファイル名> <出力ファイル名(.txtは自動付与される)> とするだけです。 僕は今回(LSTMが得意と思われる)手紙のような文章、ではなく、 シリアル番号、日付日時(日本のフォーマット)を読んだのですが、 80%以上の精度が出ました。 これは「完全一致」の精度です(1文字間違っていたらアウト) さて、ここからは本筋とは離れますが、実はtesseractはpdf入力には対応していません。 まずはpdfをpngに変換しないとなのですが、 この変換も自動化しないと意味がないので、今回はImageMagickを使って一括変換しました。 http://imagemagick.org/script/index.php これもLinux, Mac, Windows他で使うことができます。 またpdfを扱うにはghostscriptも必要です。 https://www.ghostscript.com これでpdfをpngに変換できるようにな...