8. 仕分け付きOCR機能

8.1. 仕分けの概要

仕分ける基準を以下のどちらかを選択して使用することができます。
・画像仕分け:画像の特徴量が近いフォームに仕分ける
・キーワード仕分け:設定したキーワードが画像内に含まれるフォームに仕分ける

8.1.1. 処理の流れ

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

8.1.2. 画像仕分けについて

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

2段階目では詳細仕分けを行います。
グループ内の画像に対して色または指定領域のみでの画像比較を行います。


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

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

仕分けの定義は仕分け定義フォルダで行います。
仕分け定義フォルダは以下の通りに構成します。
仕分け定義フォルダはフォーム定義のグループのフォルダの中に配置します。
フォルダのパスには日本語を含まないでください。

AIRead_conf/                 --------- フォーム定義フォルダ
└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 から始まるように名称固定

8.3. AIRead FormEditor で仕分け定義を設定

8.3.1. FormEditor の起動

<AIREAD_HOME>\FormEditor\AIReadFormEditor.exe をダブルクリック、もしくはスタートメニューのショートカットから起動
します。

FormEditor を起動してグループを開いてください。

仕分け定義を押下すると以下の画面が表示されます。

8.3.2. 仕分け定義の操作

8.3.2.1. 仕分け設定(画像仕分け)

画像仕分けを選択している状態で設定を押下すると、以下の設定変更ダイアログを表示します。

<定義項目>

No.名称説明
1フォームフォーム定義で定義した帳票の名称
2詳細仕分けグループ画像の色や一部分の特徴で仕分けをする場合に指定
詳細は「8.3.3.2. 詳細仕分けの設定」を参照
3連続チェックあり:複数ページ帳票を読み取ってかつ仕分けに失敗した場合、前のページの仕分け結果を採用する

<設定>

No.名称説明
1最大特徴点数画像の比較に使用する特徴的な点を検出する数の最大値
多くすると仕分け精度が上がる傾向にある一方、処理時間が増加する
2特徴点のマッチング回数閾値入力画像とテンプレート画像が似ていると判断するのに最低限必要な特徴点のマッチ数
全てのテンプレート画像に対して特徴点のマッチ数がこの値に達しない場合、判定失敗となる
この値を上げると厳密な判定ができるが、判定失敗になる画像が増えやすくなる
3画像間サイズ差閾値入力画像とテンプレート画像のピクセルでの面積を比較し、その差がこの値より大きい場合そのテンプレート画像との比較をスキップする
-1を指定した場合、このスキップ処理は行われない
8.3.2.2. 仕分け設定(キーワード仕分け)

キーワード仕分けを選択している状態で設定を押下すると、以下の設定変更ダイアログを表示します。

<定義項目>

No.名称説明
1フォームフォーム定義で定義した帳票の名称
2キーワード仕分けで使用する帳票内のキーワード(文字列)を指定
3連続チェックあり:複数ページ帳票を読み取ってかつ仕分けに失敗した場合、前のページの仕分け結果を採用する

<設定>

No.名称説明
1仕分けで読み取りをしたい範囲方向(T:上、B:下、R:右、L:左)と割合で指定
例)T,20,L,50 → 上から20%、かつ左から50%の範囲
範囲を絞ることで処理時間を削減できる
2仕分け失敗時の挙動仕分け失敗時の挙動を以下から選択
・仕分けに失敗したらfalse
・仕分けに失敗したら指定したフォームで抽出
3仕分け失敗時に使用するフォーム仕分けに失敗したら使用するフォームを指定
仕分け失敗時の挙動で「仕分けに失敗したら指定したフォームで抽出」を指定した場合のみ
8.3.2.3. 仕分け定義の保存

保存 を押下すると、編集済みの仕分け定義が保存されます。
仕分け定義を変更した場合は、必ず保存してください。

8.3.3. 画像仕分けの設定

8.3.3.1. 大まかな仕分けの設定

画像仕分けを選択します。
仕分け対象としたいフォームにチェックをいれてください。
詳細仕分けが不要な場合はこれで設定完了です。

8.3.3.2. 詳細仕分けの設定

詳細仕分けには、色もしくは、指定領域での画像比較での仕分けができます。
詳細仕分けグループを追加してください。

フォームに詳細仕分けグループをセットします。
詳細仕分けをしたいフォームに同じグループを設定してください。

No.項目名説明
1詳細仕分けの方法
詳細仕分けを指定しない詳細仕分けは行わない
グループに属する定義情報が1つしかない場合は詳細な仕分けは不要
色で詳細仕分けをするグループに属する定義情報が2つ以上ある場合に、色の類似度合いで判定を行う方法
領域で詳細仕分けを行うグループに属する定義情報が2つ以上ある場合、指定した領域に絞って判定を行う方法
2フォームID選択中の定義情報が表示される
3X Y W H領域で詳細仕分けを行う を選択した場合に、指定した領域の座標
X:指定した領域の左上のX座標(ピクセル)
Y:指定した領域の左上のY座標(ピクセル)
W:指定した領域の幅(ピクセル)
H:指定した領域の高さ(ピクセル)
8.3.3.3. 色で詳細仕分けを行う場合

レイアウトは似ているが色が異なる帳票を仕分けたい場合は、色で詳細仕分けをする を選択します。

8.3.3.4. 指定した領域で詳細仕分けを行う場合

レイアウトが似ていて一部異なる

帳票があるときは、領域で詳細仕分けを行う を選択します。

領域で詳細仕分けを行う を選択した状態で、画像上の任意の場所をドラッグすると、領域の指定を行うことができます。

8.3.4. キーワード仕分けの設定

キーワード仕分けを選択します。
仕分け対象としたいフォームにチェックをいれ、画像に存在する文字列をキーワードとして設定してください。

・半角スペースで区切るとOR条件、セミコロン(;)で区切るとAND条件でキーワードを検索して識別します。
 例1)「請求 西新宿株式会社」と設定した場合、画像内に請求西新宿株式会社を両方含んでいれば識別される。
 例2)「請求;西新宿株式会社」と設定した場合、画像内に請求と西新宿株式会社のどちらかがあれば識別される。

・複数のフォームのキーワードが検知された場合、キーワードの文字数が多いフォームを採用します。

8.3.5. 仕分けの実行

画像の仕分けのみを行う場合は、仕分け実行を押下すると仕分け実行ダイアログが表示されます。
ダイアログ上から、対象の画像を指定して仕分け実行します。

No.名称説明
1画像ファイル名仕分け対象の画像を指定する
2ページ番号仕分け対象の画像が複数枚つづりのPDF/TIFF である場合は、対象とするページを選択する
3仕分け実行指定した画像を対象に、仕分けの判定を行う
4仕分け結果仕分け実行 ボタンで実行した仕分け結果が表示される

8.3.6. 仕分け付OCRの実行

画像の仕分け付でAIReadの実行を行う場合は、AIRead ボタンを押下すると実行ダイアログが表示されます。
ダイアログ上から、対象の画像を指定して仕分け付のOCRを実行します。

正常に実行が完了すると、AIRead Viewerが起動します。
Viewer の詳細については、5.3. AIReadViewerで結果を確認を参照ください。

8.4. 直接仕分け定義を設定

8.4.1. 仕分け定義ファイルの編集

仕分け設定ファイルを直接編集する場合は、テキストエディタで<AIREAD_HOME>\ClassifyDir\option.csv で編集します。

1,1,S,order,1,0,10,10,50,50
1,2,S,order2,1,0,10,10,50,50
2,1,S,Invoice,0,0,,,,  
画像仕分け

1,1,S,Invoice1,,1,0,0,0,0,請求
1,2,S,Invoice2,,1,0,0,0,0,請求 西新宿株式会社
キーワード仕分け

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

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

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

8.4.2. 仕分け設定ファイルの編集

仕分け設定ファイルを直接編集する場合は、テキストエディタでClassifyDir\setting.ini を編集します。

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

classificationType=IMAGE_FEATURE
maxFeatures=2000
matchCtTh=50
sizeDiffTh=-1
keywordRect=

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

No.項目名書式説明
1classificationTypeIMAGE_FEATURE
KEYWORD
仕分けの方法を指定する
 IMAGE_FEATURE:画像仕分け
 KEYWORD:キーワード仕分け
2maxFeatures1以上の整数値画像の比較に使用する特徴的な点を検出する数
多くすると仕分け精度が上がる傾向にある一方、処理時間が増加する
(デフォルト:2000)
3matchCtTh0以上の整数値大まかな仕分け時に、入力画像とテンプレート画像が似ていると判断するのに最低限必要な特徴点のマッチ数
全てのテンプレート画像に対して特徴点のマッチ数がこの値に達しない場合、判定失敗となる
この値を上げると厳密な判定ができるが、判定失敗になる画像が増えやすくなる
(デフォルト:50)
4sizeDiffTh-1以上の整数値テンプレート画像と入力画像のピクセルでの面積を比較し、その差がこの値より大きい場合そのテンプレート画像との比較をスキップする
-1を指定した場合、このスキップ処理は行われない
(デフォルト:-1)
5keywordRect文字列仕分けで読み取りをしたい範囲を方向(T:上、B:下、R:右、L:左)と割合で以下の形式で指定する
[方向], [画像全体に対する割合],...
例)T,20,L,50 → 上から20%、かつ左から50%の範囲
範囲を絞ることで処理時間を削減できる
6defaultProfileMode0,1仕分け失敗時の挙動を指定する
0:仕分けに失敗したらfalse
1:仕分けに失敗したら指定したフォームで抽出
7defaultFormID文字列仕分け失敗時に使用するフォームを指定する

8.5. batからの仕分け付OCR実行

bat を用いて、仕分け付きのOCRの実行を行う場合は、仕分けの登録と実行の2段階で行います。

8.5.1. 仕分け登録

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

call "%AIREAD_HOME%\IDELibrary\scripts\set_envs.bat"
set MAIN_CLASS_NAME=co.jp.ariseinnovation.AIReadEE.AIReadEE

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

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

8.5.2. 仕分け付きOCRの実行

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

call "%AIREAD_HOME%\IDELibrary\scripts\set_envs.bat"
set MAIN_CLASS_NAME=co.jp.ariseinnovation.AIReadEE.AIReadEE

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

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

8.5.3. 仕分けのみの実行

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

call "%AIREAD_HOME%\IDELibrary\scripts\set_envs.bat"
set MAIN_CLASS_NAME=co.jp.ariseinnovation.AIReadEE.AIReadEE

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