始めに
JavaでPDFファイルをOCR処理してみたの続編です。
主に、tess4j 4.1について書いています
この記事の目的
tess4j 4.1に関してググってもあまり情報が出てこないので、動かし方と動かした結果を書いてみます
ネット上の情報のだけだと、実行時エラーでるので
修正箇所
JavaでPDFファイルをOCR処理してみたから変更した個所を記載します。
gradleファイル
compile group: 'net.sourceforge.tess4j', name: 'tess4j', version: '4.1.1'
な感じでモジュールの依存を記載します
tessdata/configs/api_config
textord_tabfind_vertical_horizontal_mix T
を追記します。この記載がないと実行時エラーが発生します
jpn.traineddata
GitHubからダウンロードした学習用データで上書きします
実行
Gradleからrunコマンドで実行するだけです
実行結果
処理速度
Win10pro iCore5 2.2GH メモリ16Gで3系と4系の実行結果を「平成 28年 度 春 期 情報処理安全確保支援士試験 午後2」の変換処理で比較してみました
4系 約2分半
3系 約8分
4系のほうが圧倒的に早いです
文字認識
3系は日本語と英字が混じっていたら誤変換率が無茶苦茶高かったのですが、4系はこれが劇的に改善されていました
例えば、3系で
問ー 膿S の特徴はどれか。
ア 鐘長によつて, 段数が決まる。
と変換されていた箇所が4系で
問 ① AES の 特 徴 は ど れ か 。
ア 鍵 長 に よ っ て , 段 数 が 決 ま る 。
と意味のある文字にきちんと変換されるようになっています