tesseract のオプション PSM をいじってみた

Linux, Windows7tesseract

オプションPSMを指定して認識具合を少し調べてみました。

★前提環境★
・Windows 7 (32bit)
・tesseract 3.05.02

ページセグメンテーションモード -psm

tesseract --help-psm

Page segmentation modes:
0 Orientation and script detection (OSD) only.
 言語データ:osd.traineddata 必須
 OSD は Orientation and script detection の略
 言語の種類やテキストの傾斜角度等を xxxxx.osd に出力

1 Automatic page segmentation with OSD.
 言語データ:osd.traineddata 必須
 回転(90度・180度・270度)したテキストも認識する

2 Automatic page segmentation, but no OSD, or OCR.
 テキストの傾斜角度にかかわる情報を画面に標準出力する。
 ファイルは何も作成されない。

3 Fully automatic page segmentation, but no OSD. (Default)
 デフォルトのオプション。
 水平テキスト(横書き文書)と垂直テキスト(縦書き文書)に対応
 傾斜角度のあるテキストは非対応

4 Assume a single column of text of variable sizes.
 可変サイズのテキストとして扱う。

5 Assume a single uniform block of vertically aligned text.
 ユニフォームブロックの垂直テキストと仮定する。

6 Assume a single uniform block of text.
 ユニフォームブロックのテキストと仮定する。
 デフォルトよりも認識率が良い。

7 Treat the image as a single text line.
 単一のテキスト行として扱う。
 画像内に複数行が存在する場合は、画像内の文字すべてが誤認識する。

8 Treat the image as a single word.
 単語として扱う。行に複数の単語がある場合は、
 単語間の空白は削られて出力される。「太陽 お月様」 → 「太陽お月様」
 画像内に複数行が存在する場合は、画像内の文字すべてが誤認識する。

9 Treat the image as a single word in a circle.
 謎

10 Treat the image as a single character.
 1文字として扱う。2文字以上ある場合は、すべてが誤認識する。

11 Sparse text. Find as much text as possible in no particular order.
 色の薄いテキスト。できるだけ多くのテキストを探す。
 デフォルトで探せなかったテキストも認識する。

12 Sparse text with OSD.
 言語データ:osd.traineddata 必須
 上記11番、及び、
 回転(90度・180度・270度)したテキストも認識する

13 Raw line. Treat the image as a single text line,
 bypassing hacks that are Tesseract-specific.

テストの結果


★テスト条件★ ・Windows 7 (32bit)
・tesseract 3.05.02
・画像形式 :PNG
・フォント :MS明朝
・サイズ  :26pt
・文字色  :黒
・背景色  :白
・文字数  :いろいろ(1~50文字程度)
・言語データ:付属の jpn.traineddata
・コマンド : tesseract xxx.png result -l jpn -psm n
 ※n は psmのオプション番号



★感想★
PSM 1 と 12 は水平テキスト・垂直テキスト・水平テキストが時計回りに90度・180度・270回転したテキストに対応します。

テストはしていませんが、垂直テキストの回転も、同様に良好な結果が得られるものと思われます。

PSM 9 は用途不明です。読解力なくごめんなさい。
1文字のみ認識させたいのであれば、デフォルトのPSM 3 では駄目です。PSM 10 を指定しましょう。

中途半端に傾斜(時計回りに20度)しているテキストは、どのオプションも総じて苦手なようです。
スキャンした紙面から文字を認識させたいのであれば、水平・垂直に極力気を配りましょう。

表には触れていませんが、色の薄い(グレー色 #c3d7ec )文字は PSM 6 または 11 及び 12 で認識率が他より良好です。