3.6. 個別後処理設定
読み取り結果を変換する設定を作成します。
作成された後処理設定ファイルと読み取り項目との紐づけは、RuleEditor/FormEditor から行います。
No. | 項目名 | 説明 |
1 | 設定ファイル保存先 | 後処理設定ファイルの保存先を指定する デフォルトは、<AIREAD_HOME>\IDELibrary\OcrPostProcess |
2 | 設定名 | 選択中の後処理設定ファイルが表示される 後処理設定ファイルを追加する場合は、設定名に入力した名前で追加される |
3 | 設定名リスト | 作成済みの後処理設定ファイルの一覧が表示される |
4 | 設定名追加ボタン | 入力した設定名で後処理設定ファイルを追加する 選択中の設定ファイル保存先に、同一の設定名の後処理設定ファイルが存在する場合は追加不可 |
5 | 設定名削除ボタン | 選択中の後処理設定ファイルを削除する |
6 | 設定情報リスト | 選択中の後処理設定ファイルの設定情報を表示する |
3.6.1. 設定情報リストの設定
No. | 項目名 | 説明 |
1 | 変換対象 | 変換対象の文字を指定する 変換対象の文字は正規表現で記載する |
2 | 変換後の文字 | 変換対象の文字から変換する文字を指定する 変換後の文字は単語でも指定可能 |
3.7. 個別OCR設定
フォーマット定義ごとに個別でOCR設定の定義を行います。
「個別OCR設定の呼出」ボタンを押下することで、個別OCR設定用のAIRead ControlPanel 画面を呼び出します。
個別OCR設定の呼出 ボタンを押下することで、3.2.5. 共通設定ファイルの指定、3.4.4. 共通設定ファイルの指定で指定した共通設定ファイルの各OCR設定を引き継いで呼び出します。
指定した共通設定ファイルが存在しない場合、共通設定ファイル指定ダイアログが表示されます。
AIRead on Cloudで有効な設定は☁マーク(□)がついた項目のみとなります。
Enterprise 版での利用に限り、個別設定は定義ファイルを指定したとき(キーワードで仕分けを行わないとき)のみ有効です。
これは、帳票識別時の処理フローが OCR処理→帳票識別→キーワード抽出 となっており、帳票定義(個別設定含む) が判明した時点で既にOCR処理後であるためです。
- 個別設定の保存
設定の編集が完了したら、保存してください。個別設定が反映されます。
- 個別設定画面の終了
保存が完了したら、右上の×ボタンで画面を閉じてください。
3.7.1. 基本設定
ファイルの入出力や抽出モードに関わる設定を行います。
No. | 内容 | 項目名 | 書式 | 説明 |
---|---|---|---|---|
1 | 活字用OCRモデル | OCR_LANG | 文字列 | 活字OCRエンジンで利用するモデル名 OCRモデルフォルダに存在するファイルの拡張子".traineddata"を除外したファイル名を指定する 例)Japanese.traineddata → Japanese |
2 | 抽出モードの設定 | COMPONENT_LEVEL | MANUAL ITEM CELL HW_ITEM | 抽出モードを選択する ・MANUAL : 座標指定 ・ITEM : キーワード指定 ・CELL : キーワード指定(表検出付き) ・HW_ITEM: キーワード指定(手書き文字あり) ※FormEditorから個別設定を行う場合は、「座標指定」から変更不可 ※RuleEditorから個別設定を行う場合は、キーワード指定、キーワード指定(表検出付き)、キーワード指定(手書き文字あり)から選択可能 |
3 | セル内の改行に付与する文字 | LINE_SEPARATER | 変更不可 | <抽出モードの設定=キーワード指定(表検出付き)のみ指定> 認識されたセル中の文字列が改行されていた場合、行間に付与する文字を指定する ※現状半角スペースから変更不可 |
3.7.2. モード別設定
モード別(座標指定、キーワード指定)のパラメータを設定します。
3.7.2.1. 座標指定モード
<Standardのみ>
座標指定OCRを実行時の設定はこちらで行います。
No. | 内容 | 項目名 | 書式 | 説明 |
---|---|---|---|---|
1 | 手書き用OCRモデル | HAND_WRITE_OCR_LANG | 文字列 | 指定された手書きモデルが存在しないときに使用するモデル名 "OCR_MODEL_PATH/tessdata/"以下に存在するフォルダ名 例)jpn |
2 | 改善した手書きの文字切り取りロジックを使用する | USE_SEGMENT_MODEL | true, false | フリーピッチで複数行の手書き文字を読み取る場合はチェック(true)する ※処理時間がチェックをしない場合と比べて1.5~2.5倍ほど増加する |
3 | OCR結果にスペースを含める | EXPORT_SPACE | true, false | チェック(true)の時、OCR結果にスペースを含める (活字読み取り時のみ) |
4 | 文字を置換する信頼度(手書き) | HW_REPLACE_THRESH | 0~100 | 手書きの項目が指定された閾値未満の信頼度の時、任意の文字に変換する |
5 | 置換後の文字 | HW_REPLACE_CHAR | 文字列 | 文字を置換する信頼度(手書き)で変換する文字(1文字) |
6 | 位置合わせ最大矩形の認識マージン | FORMAT_MARGIN | 0以上 | 位置合わせ時に大きな矩形を認識しない画像端(上下左右)からの範囲を指定する 単位はピクセル (デフォルト 15) |
7 | 位置合わせ外接矩形の認識マージン | FIX_TEXT_HEIGHT | 0以上 | 位置合わせ時に外接矩形を認識しない画像端(上下左右)からの範囲を指定する 単位はピクセル (デフォルト 100) |
8 | 活字のノイズ閾値 | PRINT_NOISE_FILTERS | -1~100 | 活字の認識で、項目中の最大文字高さに対して指定された閾値以下の文字をノイズとして除去する 例) 30 を指定 → 読み取り範囲内の最大文字に対し30%以下の高さの文字をノイズとみなして除去する (デフォルト -1:本機能は動作しない) ※小さい文字や記号がノイズとして削除される可能性有り |
9 | 手書きノイズの閾値 (文字の高さ、複数文字指定時) | HW_NOISE_FILTERS | 文字列 | 手書き文字の認識で指定したモデルについて、項目中の最大文字高さに対して任意の割合以下の文字をノイズとして除去する 手書き文字の文字数を「複数」で設定した項目を対象とする [モデル名]:[閾値(%)]の形式で記載する カンマ区切りで複数指定可能 例) number:25,money:30 → 数値モデルは25%、通貨モデルは30%の高さの文字をノイズとみなして除去する ※小さい文字や記号がノイズとして削除される可能性があります |
10 | 手書きノイズの閾値 (白画素の割合、1文字指定時) | HW_WHITE_THRESHOLD | 0~1.0 | 手書き項目に1文字指定をしているとき、 その項目画像を読取対象外(ノイズ)と判断する白ピクセルの割合と判断する閾値を指定する 例) 0.99 を指定 → 手書き項目が1文字指定のとき、項目内の白ピクセルの割合が99%以上であれば、項目内の記載をノイズと判断して除去する (デフォルト 0.975) |
11 | 取り消された文字は認識しない | IGNORE_CANCELED_STRINGS | true, false | チェック(true)の時、二重取り消し線で消された文字や塗りつぶされた文字を読み飛ばす |
12 | 改行を出力する | RECOGNIZE_NEWLINE | true, false | チェック(true)の時、読み取り項目内の改行を認識して\nとして出力する |
3.7.2.2. キーワード指定モード
<Enterpriseのみ>
キーワード指定実行時の設定はこちらで行います。
<Standard/Enterprise共通>
全文OCRを実行時の一部の設定もこちらで行います。
No. | 内容 | 項目名 | 書式 | 説明 |
---|---|---|---|---|
1 | テキスト付きPDFでもOCRを実行する | OCR_PDF_WITH_TEXT | true, false | <Enterpriseのみ> チェックあり(true):テキスト付きPDFの場合でもOCRを実行する チェックなし(false):PDFのテキスト情報を使用して抽出する |
2 | 改善した文字列検知ロジックを使用する | USE_DL_STRING_DETECTION | true, false | <抽出モードの設定=キーワード指定、キーワード指定(表検出付き)のみ指定> チェック(true)の時、従来のOCRよりも文字列検知の改善した処理を行う ※メモリの使用量が約500MB程度増加し、処理時間がA4画像1枚当たり5秒/枚ほど増加する ※文字列検知の処理が従来のものと変更となるため、読み取り結果に影響する可能性有り |
3 | OCR結果から除外する文字リスト | BLACK_LIST_EXT | 文字列 | <Enterpriseのみ> 抽出処理時にキーワードおよび抽出する値から除外する文字を指定する |
4 | 1つの文字列とみなす文字間隔 | LINKED_ITEM_THRESHOLD | 数値 | <Enterpriseのみ> 1つの文字列とみなす文字の間隔を設定 値は文字の大きさ(高さ)に対する倍率 |
5 | 改善したスペース検出ロジックを使用する | SPACE_MODE | 0,1 | 0:スペース検知の改善した検出を行う 1:従来のスペース認識機能を使用する |
3.7.3. 画像処理
文字認識の前に実施する画像処理関連の設定を変更します。
No. | 内容 | 項目名 | 書式 | 説明 |
---|---|---|---|---|
1 | 傾き補正を行う | IS_SLOPE_CORRECTION | true, false | チェック(true)の時、文字認識前に傾き補正を行う(35度まで) |
2 | 回転補正を行う | AUTO_ROTATION | true, false | チェック(true)の時、文字認識前に90/180/270度の画像回転補正を行う |
3 | 直線除去を行う最短の長さ | LINE_REMOVAL_THRESHOLD | 0以上の整数 | 直線とみなす長さのしきい値(ピクセル) 0の場合、文字の大きさから自動で設定する |
4 | 直線除去時の文字高さに対する倍率 | LINE_REMOVAL_MULTIPLE_BY_TEXT_HEGHT | 0.1以上の数値 | 指定した値×文字高さの平均(ピクセル)が直線除去の対象となる 直線除去を行う最短の長さ の値が0の場合にのみ動作する |
5 | 点線除去を行う最短の長さ | HOUGH_THRESHOLD | 0以上の整数 | 点線とみなす長さのしきい値(ピクセル) |
6 | 罫線除去で欠けてしまった文字の復元処理を行う | RESTORE_TEXT | true, false | チェック(true)の時、罫線除去時に欠けてしまう罫線と隣接した文字を復元する ※必ず復元できるわけではない ※副作用として文字にノイズがつく場合がある |
7 | 二値化の閾値 | THRESH_VALUE | 0~255 | 文字認識前の画像の二値化(白黒化)のしきい値 0の場合、画像全体のヒストグラムから自動で設定する 詳細は3.8.1. 二値化の閾値を参照 |
8 | 直線除去時の二値化の閾値 | BINTHRESH_ON_LINE_REMOVAL | 0~255 | 直線除去時の二値化パラメータのしきい値 0の場合、画像全体のヒストグラムから自動で設定する |
9 | 短い罫線(横)除去の閾値 | SHORT_LINE_THRESH_H | -1以上 | 長い罫線に接している短い罫線(横)を検知・除去する閾値 罫線の長さ(ピクセル)を指定する -1 : 除去を行わない 0 : 除去を行わない(-1と同じ) 1以上 : この値を直線検知の閾値とする |
10 | 短い罫線(縦)除去の閾値 | SHORT_LINE_THRESH_V | -1以上 | 長い罫線に接している短い罫線(縦)を検知・除去する閾値 罫線の長さ(ピクセル)を指定する -1 : 除去を行わない 0 : 除去を行わない(-1と同じ) 1以上 : この値を直線検知の閾値とする |
11 | 短い点線も除去する | USE_SHORT_DOTLINE_REMOVAL | true, false | チェック(true)の時、短い罫線除去時に点線も除去対象とする ※処理時間がA4画像1枚当たり2秒ほど増加する ※文字が除去される副作用が発生する可能性がある |
12 | 細かいノイズ除去の閾値(幅) | THIN_LINE_REMOVAL_THRESHOLD_W | 0以上 | 指定した幅(ピクセル)より細かいノイズを除去する 値が大きいほど大きなサイズのノイズを除去する (デフォルト 0、推奨値 3) 詳細は3.8.2. 細かいノイズ除去を参照 |
13 | 細かいノイズ除去の閾値(高さ) | THIN_LINE_REMOVAL_THRESHOLD_H | 0以上 | 指定した高さ(ピクセル)より細かいノイズを除去する 値が大きいほど大きなサイズのノイズを除去する (デフォルト 0、推奨値 3) 詳細は3.8.2. 細かいノイズ除去を参照 |
14 | 細かいノイズ除去の縮小フィルタ(幅) | ERODE_THIN_LINE_W | 1以上 | 細かいノイズ除去の収縮処理のフィルターサイズ(幅) 値が大きいとより独立したノイズのみ除去する (デフォルト 12) 詳細は3.8.2. 細かいノイズ除去を参照 |
15 | 細かいノイズ除去の縮小フィルタ(高さ) | ERODE_THIN_LINE_H | 1以上 | 細かいノイズ除去の収縮処理のフィルターサイズ(高さ) 値が大きいとより独立したノイズのみ除去する (デフォルト 7) 詳細は3.8.2. 細かいノイズ除去を参照 |
16 | TIFFを300DPIに変換してからOCRを実行する | CONV_TIFF_DPI | true, false | チェック(true)の時、TIFFを300DPIに変換してからOCRを実行する TIFFで縦横のDPIが異なる場合に指定する |
17 | 抽出する色 | EXTRACTION_COLORS | 文字列 | 抽出する色を指定する(指定した色以外を除去する) 複数色を指定する場合はカンマ区切りで記載する 例) EXTRACTION_COLORS=K,R 指定可能な色 ・K(黒) ・R(赤) ・Y(黄) ・G(緑) ・C(シアン) ・B(青) ・P(紫) 個別で指定する場合は、直接数値を指定 詳細は3.8.5. 色の抽出・除去を参照 |
18 | 除去する色 | REMOVAL_COLORS | 文字列 | 除去する色を指定する 指定方法は色抽出(EXTRACTION_COLORS)と同様 抽出する色と両方指定した場合は抽出を優先する 詳細は3.8.5. 色の抽出・除去を参照 |
19 | 色抽出・除去を罫線除去の前に行う | FILTER_COLOR_BEFORE_LINEREMOVAL | true, false | チェック(true)の時、罫線除去の前に色抽出・除去を行う |
20 | 罫線を延長する長さ | LINE_EXTENSION_LEN | 0以上 | 検知した罫線を延長する 単位はピクセル (デフォルト 0) |
21 | 矩形の丸い角を除去する閾値 | ROUNDED_CORNER_THRESHOLD | 0~100 | 半径が指定した値未満の丸い角を除去する 単位はピクセル 0の場合は除去されない (デフォルト 0) 詳細は3.8.3. 丸い角の除去を参照 |
22 | 丸い角の除去範囲を拡張する長さ | ROUNDED_CORNER_PADDING | 0~100 | 丸い角を除去する際に、指定した値分の除去範囲を拡大する 単位はピクセル (デフォルト 10) 詳細は3.8.3. 丸い角の除去を参照 |
23 | ドット背景除去を行う | REMOVE_DOTTED_BACKGROUND | true, false | チェック(true)の時、ドット背景除去を行う |
24 | ドットサイズ | DOT_SIZE_THRESHOLD | 1~10 | ドット背景除去時の削除するドットのピクセルサイズを指定する 縦横が指定したピクセル以下のものを削除する (デフォルト 4) |
25 | 小さい矩形を削除 | REMOVE_SMALL_RECTANGLES | true, false | チェック(true)の時、小さい矩形の除去を行う |
26 | 除去する矩形の最小面積 | REMOVE_RECTANGLE_MIN_AREA_ THRESHOLD | 0以上の整数 | 「小さい矩形を削除除去する」がチェック(true)の時に除去する矩形の最小面積を指定する |
27 | 除去する矩形の最大面積 | REMOVE_RECTANGLE_MAX_AREA_ THRESHOLD | 0以上の整数 | 「小さい矩形を削除除去する」がチェック(true)の時に除去する矩形の最大面積を指定する |
28 | 斜め線を除去 | REMOVE_DIAGONAL_LINES | true, false | チェック(true)の時、矩形内の斜めの線を除去する |
28~31のパラメータは普段は折り畳まれておりますが、全て表示を押下することで表示されるようになります。
※パラメータ増加に伴い、使用頻度の低いパラメータがデフォルトで非表示になっています。
No. | 内容 | 項目名 | 書式 | 説明 |
---|---|---|---|---|
28 | ノイズ除去を行う | DE_NOISE | true, false | ノイズ除去処理の有無 チェック(true)の時、文字認識前にノイズ除去を行う |
29 | 罫線除去を無効化する | SKIP_LINE_REMOVE | true, false | チェック(true)の時、文字認識前の罫線除去を無効化する(罫線除去は行わない) |
30 | 白黒反転処理を実施する黒の比率 | BLACK_WHITE_THRESHOLD | 0~100 | 二値化後に白黒を反転するしきい値(%) 設定した%より黒の割合が多い場合に白黒を反転する |
31 | シャープ補正値 | SHARPEN_VALUE | 0以上の少数 | OCR実行前に画像をシャープ化する 画像がぼやけている場合などに利用すると効果的 0の場合は処理しない |
3.7.4. 文字認識調整
文字認識に関する設定を変更します。
No. | 内容 | 項目名 | 書式 | 説明 |
---|---|---|---|---|
1 | 文字列の切取ロジック | PAGE_SEG_MODE | 4, 6 | OCRエンジンの活字文字検知/分割アルゴリズムを指定する ・4 : 1行内の文字サイズが可変とみなして文字を検知 ・6 : 1行内の文字サイズが固定とみなして文字を検知 |
2 | 再読み込みの閾値 | RESCAN_THRESHOLD | 0~100 | 指定した値よりもコンポーネントのConf値が閾値より低い場合に読み直す(活字のみ) ※コンポーネント内の文字のConf値の平均値 |
3.8. ユースケース
3.8.1. 二値化の閾値
OCRは画像を白と黒だけに変換(二値化)した状態で行います。各ピクセルの明るさ(黒0~255白)に対して、黒と白の境界とする値が二値化の閾値です。閾値は0~255を設定します。
二値化の閾値が低いと元の画像で濃い色のみが二値化で黒くなり、高いと薄い色でも黒くなります。
また、閾値を0とした場合は画像全体の明るさを基に自動で閾値を判定します。それによって目的の文字が消えてしまうなどあった場合は閾値を直接調整してください。
二値化の閾値の設定によって、下記画像のように変化します。
3.8.2. 細かいノイズ除去
細かいノイズ除去の閾値では、除去対象とするノイズの幅・高さを指定します。
どちらかのパラメータの対象となる場合は除去対象となります。
ControlPanel項目名 | 共通設定ファイル項目名 | 推奨値 |
---|---|---|
細かいノイズ除去の閾値(幅) | THIN_LINE_REMOVAL_THRESHOLD_W | 3 |
細かいノイズ除去の閾値(高さ) | THIN_LINE_REMOVAL_THRESHOLD_H | 3 |
細かいノイズ除去の縮小フィルタは、近隣の文字・ノイズを結合して除去対象となるのを防ぎます。
結合する文字・ノイズ間の距離(ピクセル)を指定します。
ControlPanel項目名 | 共通設定ファイル項目名 | 推奨値 |
---|---|---|
細かいノイズ除去の縮小フィルタ(幅) | ERODE_THIN_LINE_W | 12 |
細かいノイズ除去の縮小フィルタ(高さ) | ERODE_THIN_LINE_H | 7 |
3.8.3. 丸い角の除去
帳票によっては丸い角の矩形が存在し、直線除去では角が残ってしまい誤読の原因となる場合があります。
そういった場合に、下記のパラメータを設定することで丸い角の除去を行います。
ControlPanel項目名 | 共通設定ファイル項目名 | 推奨値 |
---|---|---|
矩形の丸い角を除去する | ROUNDED_CORNER_THRESHOLD | 30 |
丸い角の除去範囲を拡張する長さ | ROUNDED_CORNER_PADDING | 10 |
3.8.4. 表検出付全文OCR
コントロールパネルの抽出モードの設定で「キーワード指定(表検出付)」を指定した状態で全文OCRを実行すると、認識した罫線を基に表を検出し、表の各セルに対してOCRを行います。
この際、表の各セルのOCR結果は表の行・列の形に再現可能な情報が付与され構造化されます。ETL等で後続処理に表の情報を渡したい場合などにご利用ください。
なお、構造化情報の利用に応じて出力形式を選択可能です。
・付与された構造化情報含め出力したい場合: CSV形式
・構造化した表の形で出力したい場合: SIMPLE_CSV / SIMPLE_SEPARATE_CSV形式
※v2.3.1からタブ区切りのSIMPLE_TXT / SIMPLE_SEPARATE_TXT形式も追加されました
※表が段組みになっている場合には正しく構造化されません。
行と列が揃っている表にのみ有効です。
3.8.5. 色の抽出・除去
帳票上の印影や背景の色がOCRに影響し、正しく読み取りを行えない場合があります。
OCRを行う前に、必要な文字の色のみ抽出、もしくは余計な色の除去を行って調整します。
色の指定はHSV色空間で範囲指定します。
3.8.5.1. HSV色空間について
要素 | 指定範囲 | 説明 | |
---|---|---|---|
H | 色相 | 0~179 | 具体的な色を定義する要素 色が環状で表現するため、0°と179°で同じ色となる |
S | 彩度 | 0~255 | 色相で定義された色の鮮やかさ・濃さを表す要素 彩度が255で最も鮮やかとなり、減少に合わせて色が薄くなり、0で灰色になる |
V | 明度 | 0~255 | 色相で定義された色の明るさ・暗さを表す要素 明度が255で最も明るく(白)、明度の減少に合わせて暗くなり、0で黒になる |
3.8.5.2. 色の指定方法(GUI)
No. | 項目名 | 説明 |
1 | 指定した色 | カラーパレット、もしくはスポイトで対象とした色が表示される |
2 | 色の選択ボタン | カラーパレットを開き、対象とする色を指定する |
3 | スポイトボタン | スポイト画面を開き、クリックした場所の色を抽出して対象とする |
4 | 色相 | 対象とした色の色相の表示、または色相を直接入力する |
5 | 彩度 | 対象とした色の彩度の表示、または彩度を直接入力する |
6 | 明度 | 対象とした色の明度の表示、または明度を直接入力する |
7 | ±(指定幅) | 対象とした色の色相、彩度、明度に対して、指定した数値分の幅を上下に持たせる 指定された数値分の幅は、from-to の範囲となる |
8 | 色の対象範囲(from) | 対象とした色から±で指定した数値分をマイナスして表示する |
9 | 色の対象範囲(to) | 対象とした色から±で指定した数値分をプラスして表示する |
10 | 確定ボタン | 指定した色の範囲をAIRead ContorlPanel に反映させる |
11 | キャンセルボタン | 編集内容を反映させずに、AIRead ContorlPanel へ戻る |
例)赤い色の範囲を指定する場合(GUI)
対象の色の値に対して幅を持たせることで、近い色も対象とすることができます。
3.8.5.3. 色の指定方法(テキスト)
テキストで設定を行う場合、対象としたい色の色相、彩度、明度の順で”:”(コロン)で区切り、色の指定を行います。
色相が0°、彩度、明度が200を指定する際は、下記の指定となります。
0 : 200 : 200 - 0 : 200 : 200 |
色相に前後の幅を持たせ、さらに明るい色も対象としたい場合は、下記のような指定を行います。
-15 : 200 : 200 - 15 : 200 : 255 |
色相(-15 - 15) | 明度(200 - 255) |
0から±15の値 | 明度200より明るい色を取得するため、55プラスした値 |
※彩度を変更しない場合は、同じ値とします。
例)赤い色の範囲を指定する場合(テキスト)
純粋な赤色は、下記のように表現できます。
純粋な赤色の表現
0 : 255 : 255 |
実際は印刷等の条件により赤色の色合いは異なるため、範囲に幅を持たせることで色を対象とすることが可能です。
例)赤色を含むピンクからオレンジ色の範囲
-10:180:250-10:220:255 |
※色相 -10 は 170 と同義