7. 仕分け付きOCR機能

あらかじめテンプレートとなる画像とその画像に使用する帳票定義を登録しておくことで、入力画像に対して最も似ているテンプレートを自動で判定し、その帳票定義を利用したOCRの実行が可能です。

7.1. 概要

7.1.1. 処理の流れ

仕分け付きOCRの処理は下記のように進みます。

  1. 入力画像が複数ページであれば、ページごとに分割
  2. 画像がTIFFであれば、DPI変換
    ※「TIFFを300DPIに変換してからOCRを実行する」を設定している場合
  3. 画像の回転補正
    ※「回転補正を行う」を設定している場合
  4. 3.の画像でフォーマット判定
  5. 判定に成功したら、フォーマットの帳票定義を使ってOCRを行う
  6. 判定に失敗した場合、失敗フォルダに入力画像を移動する

7.1.2. フォーマット判定について

フォーマット判定は2段階に分かれております。
1段階目では画像全体から特徴的な箇所(特徴点)を抽出し、各テンプレート画像と入力画像を比較して最もマッチした画像を持つグループを判定します(大まかな仕分け)。

2段階目ではグループ内の画像に対して色または指定領域のみでの画像比較を行います(詳細仕分け)。
色での判定は画像の見た目はほとんど似ているが色違いの帳票を判別したい場合に使います。
指定領域での画像比較は、特定の場所に会社のロゴ等判別しやすい箇所がある場合に使います。
なお、下図のグループ2-詳細1のように、グループに属する画像が1つしかない場合は詳細な判定は行わずに判定結果が確定します。

7.2. 仕分け定義フォルダの構成

仕分けの定義は仕分け定義フォルダで行います。
仕分け定義フォルダは以下の通りに構成します。
仕分け定義フォルダの配置場所は任意ですが、フォルダの絶対パスに日本語を含まないでください。

?ClassifyDir(任意の英数をつかったフォルダ名)    --------- 1. 仕分け定義フォルダ
├?option.csv (固定名)                                    --------- 2. 仕分け定義ファイル
├?setting.ini (固定名)                                    --------- 3. 仕分け設定ファイル
└?Templates (固定名)                                    --------- 4. テンプレートフォルダ
 └?1                                                          --------- 5. 大まかな仕分けフォルダ
  └?1                                                       --------- 6. 詳細仕分けフォルダ
   └? template.jpg (固定名)                       --------- 7. テンプレート画像
  └?2
   └? template.jpg(固定名)
 └?2
  └?1
   └? template.jpg (固定名)
                                               

No.名称説明
1仕分け定義フォルダ仕分け定義を格納するフォルダ
フォルダ名は任意
2仕分け定義ファイルテンプレート画像に紐づく仕分け定義を記載したファイル(csv形式)
3仕分け設定ファイル仕分けに使用する設定を記載する
4テンプレートフォルダテンプレート画像を格納するフォルダ
5大まかな仕分けフォルダ大まかな仕分けのグループを表すフォルダ
数字で1,2…と順につける
6詳細仕分けフォルダ詳細仕分けの画像を配置するフォルダ
数字で1,2…と順につける
7テンプレート画像入力画像と比較するテンプレート画像
ファイルの名前は template から始まるように名称固定

7.3. 仕分け定義ファイルの作成

仕分け定義ファイルはCSV形式で下記のように記載してください。

1,1,S,order,1,0,10,10,50,50
1,2,S,order2,1,0,10,10,50,50
2,1,E,Invoice,0,0,,,,  

・文字エンコード:UTF-8
・改行コード:LF

CSV中の各列の意味は下記の通りです。

No.名称説明
1グループ番号大まかな仕分けのグループ番号
大まかな仕分けフォルダ名を指定する
2詳細番号詳細仕分けの番号
詳細仕分けフォルダ名を指定する
3抽出モード抽出モードの設定
S : 座標指定
E : キーワード抽出
W : 表検出付全文OCR
※キーワード抽出はEnterprise版のみ使用可
4フォーマットIDOCR時に使用するフォーマットID
5色判定フラグ詳細仕分けに色の類似度合いを使用するかのフラグ
0 : 使用しない(デフォルト)
1 : 使用する
※同一グループ内では同一の設定にしてください
6領域指定フラグ詳細仕分けで画像の注目する領域を絞ったマッチングを行うかのフラグ
0 : 行わない(デフォルト)
1 : 行う
※同一グループ内では同一の設定にしてください
※色判定と同時に使うことはできません(両方設定されていた場合、色判定のみ行います)
7指定領域始点X領域指定の左上のX座標(左上原点、単位はピクセル)
8指定領域始点Y領域指定の左上のY座標(左上原点、単位はピクセル)
9指定領域横幅領域指定の横幅(単位はピクセル)
10指定領域縦幅領域指定の縦幅(単位はピクセル)

7.4. 仕分け設定ファイル

仕分け設定ファイルは下記のように記載してください。

maxFeatures=2000
matchCtTh=50
sizeDiffTh=-1

・文字エンコード:UTF-8
・改行コード:LF

各項目の意味は下記の通りです。

No.項目名書式説明
1maxFeatures1以上の整数値画像の比較に使用する特徴的な点を検出する数
多くすると仕分け精度が上がる傾向にある一方、処理時間が増加する
(デフォルト:2000)
2matchCtTh0以上の整数値大まかな仕分け時に、入力画像とテンプレート画像が似ていると判断するのに最低限必要な特徴点のマッチ数
全てのテンプレート画像に対して特徴点のマッチ数がこの値に達しない場合、判定失敗となる
この値を上げると厳密な判定ができるが、判定失敗になる画像が増えやすくなる
(デフォルト:50)
3sizeDiffTh-1以上の整数値テンプレート画像と入力画像のピクセルでの面積を比較し、その差がこの値より大きい場合そのテンプレート画像との比較をスキップする
-1を指定した場合、このスキップ処理は行われない
(デフォルト:-1)

7.5. フォーマット専用設定の準備(任意)

仕分け付きOCR時には、フォーマットIDごとに専用のOCR設定を使用することが可能です。
この機能により、フォーマットごとに出力先フォルダの変更や、画像処理設定の指定が可能です。

7.5.1. フォーマット専用設定の作成

フォーマット専用設定のフォーマットは、3.2. 共通設定ファイルで設定に記載の内容と同じです。
下記のように、上書きしたい設定だけ記載することが可能です。

[AIRead] OUTPUT=./output/order/

ただし、下記の設定は仕分け処理の前後で変更できない設定であるため上書きすることができません。
記載があっても無視されます。

  • 上書きできない設定一覧
No.項目名書式説明
2INPUT文字列画像を取り込むフォルダパス
7LOGS_PATH文字列照合結果ログ、実行ログを出力するフォルダパス
8LOGS_LEVEL0~3実行ログのレベル
0:DEBUG
1:INFO
2:WARNING
3:ERROR
21LOG_ROTATION_SIZE0以上の整数ログファイル1つの最大サイズ(MB)
0の場合、実行単位でログを出力する
22LOG_MAX_SIZE0以上の整数ログファイルを保存する最大容量(MB)
0の場合、削除しない ※LOG_ROTATION_SIZEより大きい値を設定すること
23-1PROFILE_CONFIG_DIR文字列座標指定用帳票定義フォルダのパス
23-2PROFILE_KWCONFIG_DIR文字列キーワード指定用帳票定義フォルダのパス

※No.は3.2. 共通設定ファイルで設定の内容に合わせております。

7.5.2. フォーマット専用設定ファイルの配置

フォーマット専用の設定ファイルは、各帳票定義フォルダに配置します。
配置しない場合は共通設定ファイルの内容がそのまま使われます。

7.5.2.1. 座標指定のフォーマット専用設定ファイル

座標指定のフォーマット専用設定ファイルは、下記のように各帳票定義フォルダ中にAIRead_setting.iniのファイル名で配置します。

?AIRead_conf (座標指定/全文OCR兼用の帳票定義フォルダ)
└?FormID (任意のフォームID)
├?AIRead_format.ini (固定名)
└?AIRead_setting.ini (固定名)

7.5.2.2. 全文OCR専用設定ファイル

全文OCRの場合、下記のように個別設定ファイルのみを各帳票定義フォルダ中にAIRead_setting.iniのファイル名で配置します。

?AIRead_conf (座標指定/全文OCR兼用の帳票定義フォルダ)
└?FormID (任意のフォームID)
└?AIRead_setting.ini (固定名)

7.5.2.3. キーワード指定のフォーマット専用設定ファイル

キーワード指定の場合、各帳票定義フォルダ中にAIRead_setting.iniのファイル名で配置します。

?AIRead_conf_kw (キーワード指定用の帳票定義フォルダ)
└?FormID (任意のフォームID)
├? IDE_metadata_setting.ini (固定名)
├? IDE_setting.ini (固定名)
└?AIRead_setting.ini (固定名)

7.6. 実行方法

仕分け付きのOCRの実行は、仕分けの登録と実行の2段階で行います。

7.6.1. 仕分け登録

配置されたテンプレート画像の登録は、下記のコマンドで行います。

"%AIREAD_JAVA%/java" -Xmx8192m -classpath %CLASSPATH% %MAIN_CLASS_NAME%
-R [仕分け定義フォルダ] -s [SettingFile]
  • オプション: バッチの中身は引数で書き換えることができます。
No.引数説明
1-R [仕分け定義フォルダ]仕分け定義が格納されたフォルダを指定
2-s [SettingFile]共通設定ファイルを指定

※run_register.bat はサンプル帳票の実行ファイルです。ダブルクリックで実行できます。

7.6.2. 仕分け付きOCRの実行

仕分け付きOCRの実行は、下記のコマンドで行います。

"%AIREAD_JAVA%/java" -Xmx8192m -classpath %CLASSPATH% %MAIN_CLASS_NAME%
-A [仕分け定義フォルダ] -s [SettingFile]
  • オプション: バッチの中身は引数で書き換えることができます。
No.引数説明
1-A [仕分け定義フォルダ]仕分けに使用するフォルダを指定
2-s [SettingFile]共通設定ファイルを指定

※run_assort.bat はサンプル帳票の実行ファイルです。ダブルクリックで実行できます。