文字認識ソフトTesseract
 快適ソフトトップへ 
 
       
 Tesseract 紹介・DownLoad・インストール   追加の言語辞書のダウンロード(必須) 
 オプション   Tesseractの使い方 
 TessToolの紹介   TessToolのダウンロード   試用体験記 

 Tesseract Ver5.0.0 試用体験記

                                   更新 2021/09/07(火)                                      (C)文責 炭本 治之   以下は,2021/08/20時点の最新版Ver5.0.0を試用したときの体験記です。   Ver4以下のTesseractには当てはまりません。

 ■英文画像の文字認識

   ・文字サイズが同じ,文字と次の文字の間隔がちゃんとあるなら,認識精度は99.9%以上。     誤認識の文字は1000文字に1文字くらいしかない。    ・文字サイズが異なる文字が混じっているか,     プロポーショナルフォントで文字と文字の間隔がない場合は,     その文字のところで誤認識するか,     その文字の直後の文字を認識しないことがある。    ・言語辞書は,2021年8月20日時点では,      eng.traineddate ファイルサイズ  4MBのもの      eng.traineddate ファイルサイズ 15MBのもの     の2つが公開されている。     固定サイズフォントの場合は,どちらも認識精度は99.9%以上。     プロポーショナルフォントの場合は,後者の方が少しだけ誤認識が少ない。     英文中のギリシャ文字は英字に誤認識する。

 ■横書き日本語画像の文字認識

   ・言語辞書は,2021年8月20日時点では,      jpn.traineddate ファイルサイズ 13MBのもの      jpn.traineddate ファイルサイズ 34MBのもの     の2つが公開されている。     (1)jpn.traineddate ファイルサイズ 13MBのもの      ひらがな・カタカナ・漢字に,半角英数字が混じっていてもちゃんと認識する。      ただし,普段あまり使わない漢字は,辞書作成の際に学習させていないようで,      認識できない漢字がある。      例えば,患者の「患」,捏造の「捏」はこの辞書では認識できない。     (2)jpn.traineddate ファイルサイズ 34MBのもの      こちらの方が辞書サイズが大きいので,認識精度も良いだろうと思っていたら,      そうではなかった。      まず,半角英字が混じっていたら,半角英字はでたらめな文字に誤認識する。      半角1〜9は@〜Hに誤認識する。      こちらの辞書は,半角英数字が1文字もないときに使うべき。      漢字の認識では,ShiftJIS漢字1の約6000漢字のほとんどを認識できる。      ただし,認識できない文字も確かにある。      例えば,「鰯」の字は,鯵か鯨に誤認識してしまう。      たぶん,辞書を作成するときに,日本人でもめったに使わないような漢字は      学習させていないのだろう。

 ■縦書き日本語画像の文字認識

    jpn_vertは縦書き日本語認識用の辞書。     Page Segment Modeは5を指定して認識させる。     A6サイズ文庫本を600dpiでスキャンし,できた画像ファイルを認識させたところ,     誤認識文字は10〜20文字に1文字くらいだった。     かなりの数の誤認識文字があるので,それをを手作業で修正する必要がある。

 ■その他に気づいたこと

  (1)ノイズがあっても問題ない    鉛筆で下線が引いてあったり,背景に薄汚れたしみなどのノイズがあっても,    それらを文字として誤認識することがない。   (2)日本語を正しく認識させるコツがある    いきなり,5行以上を一度に認識させると,誤認識文字が多いようだ。    次のように使うと,かなり正確に認識する。     (1)最初は1行で10文字だけを認識させる     (2)次は1行全体を認識させる     (3)誤認識が少ないようなら2行か3行ずつ認識させる    つまり,それまでどのような画像をどう認識してきたかのTesseractの過去の経験が,    次に認識するときの認識精度に影響している。   (3)日本語の認識精度は不安定で変動する    最初は誤認識していた文字が,途中から正しく認識できるように変わる,    ということが頻繁に起きる。    私のパソコンではjpn_35MBを使った場合,「鯵」の字は単独では認識できないが,    「鯵」を含む数個の文字列,例えば,「鯵フライ」なら認識できるという,    不思議な現象が起きた。    つまり,     (a)1文字を認識(--psm 10)     (b)1行で3〜5文字を認識(--psm 7) ←これが最も認識精度が高いようだ     (c)1行で40文字以上を認識(--psm 7)     (d)複数行で100文字以上を認識(--psm 6)    たぶん,辞書を作成するときに,1文字ずつ学習させたのではなく,    1行かつ3文字以上の文字列で学習させたのだろう。   (4)9ptのサイズの文字を300dpiでスキャンすると,全角文字のサイズは      35ピクセル × 35ピクセル    くらいになる。    400dpiや600dpiでスキャンすると,全角文字のサイズをもっと大きくできるが,    そうしても認識精度は向上しない。    A5版書籍をスキャンするときは300dpiで十分。    A6版の文庫本をスキャンするときは600dpiが必要。   (5)オプションに dpi=300 を追加して実行しても認識精度は向上しない   ・読取領域を指定するときに,上余白が大きすぎると,文字の一部を読み飛ばして    しまうことがある。   ・コマンドの末尾に logfile を追加して実行すると,エラーが起きた場合は,    バッチファイルのあるフォルダに Tesseract.log が出力される。    しかし,出力内容が正しくない。    コマンドプロンプトで表示される出力内容と不一致になっている。   ・Tesseractが出力するテキストファイルは,     文字コードUTF8で,     改行コードLf(0x0A)     段落読み取りの場合,全角文字の後にスペースが追加される。     逆単一引用符Chr$(&H60),Chr$(12)など,ShiftJISでは使わない文字も出力される。    ShiftJISのテキストファイルにするときは,文字コード,改行コードを変換し,    全角文字直後のスペースを削除し,ShiftJISでは使わない文字は削除/変換する必要がある。

 ■結論

  ・英文,横書き日本語の文字認識     TessToolも併用すればTesseractは十分実用レベルにある   ・縦書き日本語の文字認識     横書き日本語の認識に比べると,誤認識文字が多い。     それでも,全面的に手作業で入力するよりは,     TessTool併用でTesseractを使う方が,楽にテキストファイルを作成できる (終わり) ページの先頭へ