目次
8. 仕分け付きOCR機能
8.1. 仕分けの概要
仕分ける基準を以下のどちらかを選択して使用することができます。
・画像仕分け:画像の特徴量が近いフォームに仕分ける
・キーワード仕分け:設定したキーワードが画像内に含まれるフォームに仕分ける
8.1.1. 処理の流れ
- 入力画像が複数ページであれば、ページごとに分割
- 画像がTIFFであれば、DPI変換
※「TIFFを300DPIに変換してからOCRを実行する」を設定している場合 - 画像の回転補正
※「回転補正を行う」を設定している場合 - 3.の画像で画像 or キーワード仕分け
- 判定に成功したら、仕分けられたフォームの帳票定義を使ってOCRを行う
- 判定に失敗した場合、失敗フォルダに入力画像を移動する
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. SortingEditor の操作
8.3.2.1. 仕分け設定(画像仕分け)
画像仕分けを選択している状態で設定を押下すると、以下の設定変更ダイアログを表示します。
No. | 名称 | 説明 |
1 | 最大特徴点数 | 画像の比較に使用する特徴的な点を検出する数の最大値 多くすると仕分け精度が上がる傾向にある一方、処理時間が増加する |
2 | 特徴点のマッチング回数閾値 | 入力画像とテンプレート画像が似ていると判断するのに最低限必要な特徴点のマッチ数 全てのテンプレート画像に対して特徴点のマッチ数がこの値に達しない場合、判定失敗となる この値を上げると厳密な判定ができるが、判定失敗になる画像が増えやすくなる |
3 | 画像間サイズ差閾値 | 入力画像とテンプレート画像のピクセルでの面積を比較し、その差がこの値より大きい場合そのテンプレート画像との比較をスキップする -1を指定した場合、このスキップ処理は行われない |
8.3.2.2. 仕分け設定(キーワード仕分け)
キーワード仕分けを選択している状態で設定を押下すると、以下の設定変更ダイアログを表示します。
No. | 名称 | 説明 |
1 | 仕分けで読み取りをしたい範囲 | 方向(T:上、B:下、R:右、L:左)と割合で指定 例)T,20,L,50 → 上から20%、かつ左から50%の範囲 範囲を絞ることで処理時間を削減できる |
8.3.2.3. 仕分け定義の保存
保存 を押下すると、編集済みの仕分け定義が保存されます。
仕分け定義を変更した場合は、必ず保存してください。
8.3.3. 画像仕分けの設定
8.3.3.1. 大まかな仕分けの設定
画像仕分けを選択します。
仕分け対象としたいフォームにチェックをいれてください。
詳細仕分けが不要な場合はこれで設定完了です。
8.3.3.2. 詳細仕分けの設定
詳細仕分けには、色もしくは、指定領域での画像比較での仕分けができます。
詳細仕分けグループを追加してください。
フォームに詳細仕分けグループをセットします。
詳細仕分けをしたいフォームに同じグループを設定してください。
No. | 項目名 | 説明 |
1 | 詳細仕分けの方法 | |
詳細仕分けを指定しない | 詳細仕分けは行わない グループに属する定義情報が1つしかない場合は詳細な仕分けは不要 | |
色で詳細仕分けをする | グループに属する定義情報が2つ以上ある場合に、色の類似度合いで判定を行う方法 | |
領域で詳細仕分けを行う | グループに属する定義情報が2つ以上ある場合、指定した領域に絞って判定を行う方法 | |
2 | フォームID | 選択中の定義情報が表示される |
3 | X 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 | フォーマットID | OCR時に使用するフォーマット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. | 項目名 | 書式 | 説明 |
1 | classificationType | IMAGE_FEATURE KEYWORD | 仕分けの方法を指定する IMAGE_FEATURE:画像仕分け KEYWORD:キーワード仕分け |
2 | maxFeatures | 1以上の整数値 | 画像の比較に使用する特徴的な点を検出する数 多くすると仕分け精度が上がる傾向にある一方、処理時間が増加する (デフォルト:2000) |
3 | matchCtTh | 0以上の整数値 | 大まかな仕分け時に、入力画像とテンプレート画像が似ていると判断するのに最低限必要な特徴点のマッチ数 全てのテンプレート画像に対して特徴点のマッチ数がこの値に達しない場合、判定失敗となる この値を上げると厳密な判定ができるが、判定失敗になる画像が増えやすくなる (デフォルト:50) |
4 | sizeDiffTh | -1以上の整数値 | テンプレート画像と入力画像のピクセルでの面積を比較し、その差がこの値より大きい場合そのテンプレート画像との比較をスキップする -1を指定した場合、このスキップ処理は行われない (デフォルト:-1) |
5 | keywordRect | 文字列 | 仕分けで読み取りをしたい範囲を方向(T:上、B:下、R:右、L:左)と割合で以下の形式で指定する [方向], [画像全体に対する割合],... 例)T,20,L,50 → 上から20%、かつ左から50%の範囲 範囲を絞ることで処理時間を削減できる |
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 [仕分け定義フォルダ] | 仕分けに使用するフォルダを指定 |