(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022178309
(43)【公開日】2022-12-02
(54)【発明の名称】情報処理装置及び情報処理プログラム
(51)【国際特許分類】
G06V 30/24 20220101AFI20221125BHJP
G06V 30/162 20220101ALI20221125BHJP
【FI】
G06K9/62 620D
G06K9/38 Z
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021085034
(22)【出願日】2021-05-20
(71)【出願人】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】100115129
【弁理士】
【氏名又は名称】清水 昇
(74)【代理人】
【識別番号】100102716
【弁理士】
【氏名又は名称】在原 元司
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】安藤 惇
(72)【発明者】
【氏名】久保 周作
(72)【発明者】
【氏名】岡田 茂
(72)【発明者】
【氏名】山口 政幸
(72)【発明者】
【氏名】小坂 史
(72)【発明者】
【氏名】鈴木 裕介
【テーマコード(参考)】
5B029
5B064
【Fターム(参考)】
5B029AA01
5B029BB02
5B029DD04
5B064AA01
5B064BA01
5B064CA03
5B064EA08
5B064EA38
(57)【要約】
【課題】文字を含む表内のうち、文字認識を行うための前処理であって、背景がある領域に対して、背景を除去する複数の前処理が可能である場合に、前処理のうちの第1前処理を行った結果に対して文字認識処理を行い、その文字認識処理の結果を加工した特徴に応じて、前処理のうちの第2前処理を行うようにすることができる情報処理装置を提供する。
【解決手段】情報処理装置は、プロセッサを備え、前記プロセッサは、文字を含む表画像に対して文字認識を行うための前処理であって、背景がある領域に対して、前記背景を除去する複数の前処理が可能であり、前記前処理のうちの第1前処理(例:単純二値化)を行った結果に対して文字認識処理を行い、前記文字認識処理の結果を加工した特徴に応じて、前記前処理のうちの第2前処理を行うか否かを判定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサを備え、
前記プロセッサは、
文字を含む表画像に対して文字認識を行うための前処理であって、背景がある領域に対して、前記背景を除去する複数の前処理が可能であり、
前記前処理のうちの第1前処理を行った結果に対して文字認識処理を行い、前記文字認識処理の結果を加工した第1特徴に応じて、前記前処理のうちの第2前処理を行うか否かを判定し、
前記第2前処理を行った場合は、前記第2前処理を行った結果に対して文字認識処理を行い、前記文字認識処理の結果を加工した第2特徴に応じて、前記前処理のうちの第3前処理を行うか否かを判定し、
前記第1特徴と前記第2特徴は異なる特徴である、
情報処理装置。
【請求項2】
前記プロセッサは、
前記第1特徴が、予め定められた時間内に第2前処理が終了しないことを示している場合は、前記第2前処理を行わないように制御する、
請求項1に記載の情報処理装置。
【請求項3】
前記プロセッサは、
さらに、前記第1特徴が、第1前処理の場合よりも第2前処理を行った場合に文字認識処理の精度の向上が予め定められた値未満であること、又は、その値以下となることを示している場合は、前記第2前処理を行わないように制御する、
請求項2に記載の情報処理装置。
【請求項4】
前記プロセッサは、
前記第1特徴が、予め定められた時間内に第2前処理が終了することを示している場合は、前記第2前処理を行うように制御する、
請求項1に記載の情報処理装置。
【請求項5】
前記プロセッサは、
さらに、前記第1特徴が、第1前処理の場合よりも第2前処理を行った場合に文字認識処理の精度の向上が予め定められた値より上がること、又は、その値以上となることを示している場合は、前記第2前処理を行うように制御する、
請求項4に記載の情報処理装置。
【請求項6】
前記第1特徴及び前記第2特徴として、少なくとも確信度を含める、
請求項1から5のいずれか1項に記載の情報処理装置。
【請求項7】
前記第1特徴又は前記第2特徴として、確信度の他に、文字種毎の文字数、文字密度、文字種を示す空間における文字ベクトル、白抜き文字か否か、下線があるか否か、斜体であるか否か、のいずれか1つ以上を用いる、
請求項6に記載の情報処理装置。
【請求項8】
前記第2前処理は、第1前処理よりも処理時間は長いが、第2前処理を行った結果に対して文字認識処理を行った結果は、第1前処理を行った結果に対して文字認識処理を行った結果よりも高精度である、
請求項1に記載の情報処理装置。
【請求項9】
前記第3前処理は、第2前処理よりも処理時間は長いが、第3前処理を行った結果に対して文字認識処理を行った結果は、第2前処理を行った結果に対して文字認識処理を行った結果よりも高精度である、
請求項1に記載の情報処理装置。
【請求項10】
前記プロセッサは、
予め機械学習により第2前処理を行うか否かを判断することを学習した人工知能に対して、前記第1特徴を入力して、第2前処理を行うか否かを判断する、
請求項1に記載の情報処理装置。
【請求項11】
前記プロセッサは、
予め機械学習により第3前処理を行うか否かを判断することを学習した人工知能に対して、前記第2特徴を入力して、第3前処理を行うか否かを判断する、
請求項10に記載の情報処理装置。
【請求項12】
プロセッサを備えたコンピュータの前記プロセッサに、
文字を含む表画像に対して文字認識を行うための前処理であって、背景がある領域に対して、前記背景を除去する複数の前処理が可能であり、
前記前処理のうちの第1前処理を行った結果に対して文字認識処理を行い、前記文字認識処理の結果を加工した第1特徴に応じて、前記前処理のうちの第2前処理を行うか否かを判定し、
前記第2前処理を行った場合は、前記第2前処理を行った結果に対して文字認識処理を行い、前記文字認識処理の結果を加工した第2特徴に応じて、前記前処理のうちの第3前処理を行うか否かを判定する
処理を実行させるための情報処理プログラムであって、
前記第1特徴と前記第2特徴は異なる特徴である、
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【0002】
特許文献1には、入力された文書原稿に含まれる網掛け領域を自動的にかつ高速に検出して文字情報は保存したままで網掛け情報を除去し、特に文字認識の前処理に好適な網掛け領域処理方法を提供することを課題とし、入力される文書画像データより網掛け領域を構成する小ドットを抽出し、この小ドットを統合して前記文書画像データ中の網掛け候補領域を抽出し、この網掛け候補領域の大きさに基づいて網掛け領域を判定し、この網掛け領域と判定された領域から網掛け情報を除去することが開示されている。
【0003】
特許文献2には、証憑画像を区画した区画画像の種別を精度よく判定するための情報処理装置、学習装置及び学習済モデル等を提供することを課題とし、情報処理装置は、学習済モデルを記憶する記憶部と、受付部と、処理部を含み、学習済モデルは、証憑画像を区画した区画画像と、区画画像が含む文字列の種別を示す種別情報とを対応付けたデータセットに基づき、区画画像と種別との関係を機械学習した学習済モデルであり、受付部は、認識処理の対象となる証憑画像の入力を受け付け、処理部は、入力として受け付けた証憑画像を区画することによって、区画画像を生成し、学習済モデルに基づいて、生成した区画画像の種別を決定することが開示されている。
【0004】
特許文献3には、入力に対する判定手段の判定結果を複数の後段処理のうち選択されたものに処理させるシステムに対して、それら後段処理を選ぶための、その判定結果の判定確度の区間を区切る閾値として、蓄積されている過去の判定結果の情報を反映した閾値を決定することを課題とし、N個の後段処理は、前段にある文字認識部(判定手段の例)の認識確度(判定確度に対応)の異なる区間に対応付けられ、過去の文字認識で得られた認識確度と正誤情報(その認識が正解か否かを示す情報)とのペアを多数、学習用データとして入力し、認識確度が高い区間から順に、認識確度が当該区間に属する各学習用データの正誤情報から求められる認識の正解率が、その区間に対応する判定手段の目標正解率を満たすよう当該区間を規定する前記閾値を決定することが開示されている。
【0005】
特許文献4には、文字と背景との境界がより明瞭な二値画像を得られる画像処理装置等を提供することを課題とし、予め定められた色空間における画像情報である入力画像情報を取得する入力画像情報取得部と、入力画像情報を基に注目画素を選択する注目画素選択部と、注目画素を含む予め定められた範囲の画像領域を局所領域として設定する局所領域設定部と、局所領域に含まれる画素の色値の平均値である平均色値を算出する平均色値算出部と、平均色値と注目画素の色値との差を予め定められた色空間におけるベクトル量で表した色変位を算出する色変位算出部と、色変位に基づき注目画素の画像情報を二値化する二値化決定部と、を備えることが開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第3566738号公報
【特許文献2】特開2020-144636号公報
【特許文献3】特開2019-159374号公報
【特許文献4】特開2015-082774号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
文字を含む表を対象として、文字認識を行うことが行われている。特に、例えば、表内の項目名を記載している欄には、網掛け、塗りつぶし等の背景がある領域があり、その背景は文字認識を行う上で精度を下げる原因となっているので、背景を除去する前処理が必要である。そして、その前処理は複数種類があり、どれかを選択する必要がある。しかし、対象とする文字画像によって最適な前処理は異なる場合があり、前処理による文字認識の精度の向上と処理時間とはトレードオフの関係にある。そこで、本発明では、文字を含む表内のうち、文字認識を行うための前処理であって、背景がある領域に対して、背景を除去する複数の前処理が可能である場合に、前処理のうちの第1前処理を行った結果に対して文字認識処理を行い、その文字認識処理の結果を加工した特徴に応じて、前処理のうちの第2前処理を行うようにすることができる情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【0008】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、プロセッサを備え、前記プロセッサは、文字を含む表画像に対して文字認識を行うための前処理であって、背景がある領域に対して、前記背景を除去する複数の前処理が可能であり、前記前処理のうちの第1前処理を行った結果に対して文字認識処理を行い、前記文字認識処理の結果を加工した第1特徴に応じて、前記前処理のうちの第2前処理を行うか否かを判定し、前記第2前処理を行った場合は、前記第2前処理を行った結果に対して文字認識処理を行い、前記文字認識処理の結果を加工した第2特徴に応じて、前記前処理のうちの第3前処理を行うか否かを判定し、前記第1特徴と前記第2特徴は異なる特徴である、情報処理装置である。
【0009】
請求項2の発明は、前記プロセッサは、前記第1特徴が、予め定められた時間内に第2前処理が終了しないことを示している場合は、前記第2前処理を行わないように制御する、請求項1に記載の情報処理装置である。
【0010】
請求項3の発明は、前記プロセッサは、さらに、前記第1特徴が、第1前処理の場合よりも第2前処理を行った場合に文字認識処理の精度の向上が予め定められた値未満であること、又は、その値以下となることを示している場合は、前記第2前処理を行わないように制御する、請求項2に記載の情報処理装置である。
【0011】
請求項4の発明は、前記プロセッサは、前記第1特徴が、予め定められた時間内に第2前処理が終了することを示している場合は、前記第2前処理を行うように制御する、請求項1に記載の情報処理装置である。
【0012】
請求項5の発明は、前記プロセッサは、さらに、前記第1特徴が、第1前処理の場合よりも第2前処理を行った場合に文字認識処理の精度の向上が予め定められた値より上がること、又は、その値以上となることを示している場合は、前記第2前処理を行うように制御する、請求項4に記載の情報処理装置である。
【0013】
請求項6の発明は、前記第1特徴及び前記第2特徴として、少なくとも確信度を含める、請求項1から5のいずれか1項に記載の情報処理装置である。
【0014】
請求項7の発明は、前記第1特徴又は前記第2特徴として、確信度の他に、文字種毎の文字数、文字密度、文字種を示す空間における文字ベクトル、白抜き文字か否か、下線があるか否か、斜体であるか否か、のいずれか1つ以上を用いる、請求項6に記載の情報処理装置である。
【0015】
請求項8の発明は、前記第2前処理は、第1前処理よりも処理時間は長いが、第2前処理を行った結果に対して文字認識処理を行った結果は、第1前処理を行った結果に対して文字認識処理を行った結果よりも高精度である、請求項1に記載の情報処理装置である。
【0016】
請求項9の発明は、前記第3前処理は、第2前処理よりも処理時間は長いが、第3前処理を行った結果に対して文字認識処理を行った結果は、第2前処理を行った結果に対して文字認識処理を行った結果よりも高精度である、請求項1に記載の情報処理装置である。
【0017】
請求項10の発明は、前記プロセッサは、予め機械学習により第2前処理を行うか否かを判断することを学習した人工知能に対して、前記第1特徴を入力して、第2前処理を行うか否かを判断する、請求項1に記載の情報処理装置である。
【0018】
請求項11の発明は、前記プロセッサは、予め機械学習により第3前処理を行うか否かを判断することを学習した人工知能に対して、前記第2特徴を入力して、第3前処理を行うか否かを判断する、請求項10に記載の情報処理装置である。
【0019】
請求項12の発明は、プロセッサを備えたコンピュータの前記プロセッサに、文字を含む表画像に対して文字認識を行うための前処理であって、背景がある領域に対して、前記背景を除去する複数の前処理が可能であり、前記前処理のうちの第1前処理を行った結果に対して文字認識処理を行い、前記文字認識処理の結果を加工した第1特徴に応じて、前記前処理のうちの第2前処理を行うか否かを判定し、前記第2前処理を行った場合は、前記第2前処理を行った結果に対して文字認識処理を行い、前記文字認識処理の結果を加工した第2特徴に応じて、前記前処理のうちの第3前処理を行うか否かを判定する処理を実行させるための情報処理プログラムであって、前記第1特徴と前記第2特徴は異なる特徴である、情報処理プログラムである。
【発明の効果】
【0020】
請求項1の情報処理装置によれば、文字を含む表内のうち、文字認識を行うための前処理であって、背景がある領域に対して、背景を除去する複数の前処理が可能である場合に、前処理のうちの第1前処理を行った結果に対して文字認識処理を行い、その文字認識処理の結果を加工した特徴に応じて、前処理のうちの第2前処理を行うようにすることができる。
【0021】
請求項2の情報処理装置によれば、予め定められた時間内に前処理を終了させることができる。
【0022】
請求項3の情報処理装置によれば、第1特徴が、第1前処理の場合よりも第2前処理を行った場合に文字認識処理の精度の向上が予め定められた値未満であること、又は、その値以下となることを示している場合は、第2前処理を行わないように制御することができる。
【0023】
請求項4の情報処理装置によれば、第1特徴が、予め定められた時間内に第2前処理が終了することを示している場合は、第2前処理を行うように制御することができる。
【0024】
請求項5の情報処理装置によれば、第1特徴が、第1前処理の場合よりも第2前処理を行った場合に文字認識処理の精度の向上が予め定められた値より上がること、又は、その値以上となることを示している場合は、第2前処理を行うように制御することができる。
【0025】
請求項6の情報処理装置によれば、第1特徴及び第2特徴として、少なくとも確信度を含めて用いることができる。
【0026】
請求項7の情報処理装置によれば、第1特徴又は第2特徴として、確信度の他に、文字種毎の文字数、文字密度、文字種を示す空間における文字ベクトル、白抜き文字か否か、下線があるか否か、斜体であるか否か、のいずれか1つ以上を用いることができる。
【0027】
請求項8の情報処理装置によれば、第1前処理よりも処理時間は長いが、第2前処理を行った結果に対して文字認識処理を行った結果は、第1前処理を行った結果に対して文字認識処理を行った結果よりも高精度である第2前処理を用いることができる。
【0028】
請求項9の情報処理装置によれば、第2前処理よりも処理時間は長いが、第3前処理を行った結果に対して文字認識処理を行った結果は、第2前処理を行った結果に対して文字認識処理を行った結果よりも高精度である第3前処理用いることができる。
【0029】
請求項10の情報処理装置によれば、人工知能を用いて、第2前処理を行うか否かを判断することができる。
【0030】
請求項11の情報処理装置によれば、人工知能を用いて、第3前処理を行うか否かを判断することができる。
【0031】
請求項12の情報処理プログラムによれば、文字を含む表内のうち、文字認識を行うための前処理であって、背景がある領域に対して、背景を除去する複数の前処理が可能である場合に、前処理のうちの第1前処理を行った結果に対して文字認識処理を行い、その文字認識処理の結果を加工した特徴に応じて、前処理のうちの第2前処理を行うようにすることができる。
【図面の簡単な説明】
【0032】
【
図1】本実施の形態の構成例についての概念的なモジュール構成図である。
【
図2】本実施の形態を利用したシステム構成例を示す説明図である。
【
図3】本実施の形態により処理対象となる表画像の例を示す説明図である。
【
図4】本実施の形態の構成例についての具体的なモジュール構成図である。
【
図5】本実施の形態による処理例を示すフローチャートである。
【
図6】本実施の形態の構成例についてのより具体的なモジュール構成と処理例の説明図である。
【
図7】本実施の形態による処理例を示す説明図である。
【
図8】本実施の形態による処理例を示す説明図である。
【
図9】本実施の形態による処理例を示す説明図である。
【
図10】本実施の形態による処理例を示す説明図である。
【
図11】本実施の形態による処理例を示す説明図である。
【
図12】本実施の形態による処理例を示す説明図である。
【
図13】本実施の形態による処理例を示す説明図である。
【
図14】本実施の形態による実験結果の例を示す説明図である。
【
図15】本実施の形態による実験結果の例を示す説明図である。
【
図16】本実施の形態による実験結果の例を示す説明図である。
【
図17】本実施の形態による実験結果の例を示す説明図である。
【
図18】本実施の形態による前処理例(遺伝的アルゴリズム前処理)を示すフローチャートである。
【
図19】本実施の形態による前処理例(遺伝的アルゴリズム前処理)を示すフローチャートである。
【発明を実施するための形態】
【0033】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(「ソフトウェア」の解釈として、コンピュータ・プログラムを含む)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(例えば、コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(例えば、データの授受、指示、データ間の参照関係、ログイン等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(「2以上の値」には、もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。また、「A、B、C」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その1つのみを選んでいる場合(例えば、Aのみ)を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(「ネットワーク」には、一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(つまり、社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。
【0034】
本実施の形態である情報処理装置100は、文字認識処理を行う機能を有している。
図1の例に示すように、情報処理装置100は、少なくともプロセッサ105、メモリ110を有しており、それらをつないでデータのやりとりをするためのバス198により構成されている。この他に、情報処理装置100は、出力装置185、受付装置190、通信装置195を有していてもよい。そして、バス198を介して、プロセッサ105、メモリ110、出力装置185、受付装置190、通信装置195の間でデータのやりとりが行われる。特に、情報処理装置100は、文字認識の複数の前処理が可能であり、いずれの前処理を行うかを決定するものである。
【0035】
なお、
図1の例に示すブロック図は、本実施の形態を実現するコンピュータのハードウェア構成例をも示している。本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、
図1に例示するようなコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。具体例として、処理部としてプロセッサ105を用い、記憶装置としてメモリ110を用いている。
【0036】
プロセッサ105は、1つであってもよいし、複数あってもよい。プロセッサ105として、例えば、CPU(Central Processing Unitの略)、マイクロプロセッサ等を含む。複数のプロセッサ105を用いる場合は、密結合マルチプロセッサ、疎結合マルチプロセッサのいずれの形態であってもよい。例えば、1つのプロセッサ105内に複数のプロセッサ・コアが搭載されていてもよい。さらに、複数のコンピュータを通信路で結んで仮想的に一台のコンピュータのように振る舞わせるシステムとしてもよい。具体例として、疎結合マルチプロセッサであって、クラスタシステム、コンピュータクラスタとして構成してもよい。プロセッサ105は、プログラムメモリ140内のプログラムを実行する。
【0037】
メモリ110として、例えば、レジスタやキャッシュメモリ等のプロセッサ105内部の半導体メモリを含めてもよいし、RAM(Random Access Memoryの略)やROM(Read Only Memoryの略)等によって構成される主記憶装置であるメインメモリであってもよいし、永続性記憶装置としての機能を有するHDD(Hard Disk Driveの略)やSSD(Solid State Driveの略)の内部記憶装置、CD、DVD、Blu-ray(登録商標) Disc、USBメモリ、メモリーカード等の外部記憶装置又は補助記憶装置であってもよいし、また、通信回線を介して接続されたサーバー等の記憶装置を含めてもよい。
メモリ110は、主にデータを記憶するデータメモリ120と主にプログラムを記憶するプログラムメモリ140を有している。なお、データメモリ120、プログラムメモリ140には、図示している情報、モジュールのプログラムの他、本コンピュータを起動するためのOS等のプログラム、モジュールの実行において適宜変化するパラメータ等のデータが格納されていてもよい。
【0038】
出力装置185は、例えば、表示装置187、印刷装置189等を有している。液晶ディスプレイ、有機ELディスプレイ、3次元ディスプレイ、プロジェクター等の表示装置187は、プロセッサ105による処理結果、データメモリ120内のデータ等を、テキストやイメージ情報等として表示する。プリンタ、複合機等の印刷装置189は、プロセッサ105による処理結果、データメモリ120内のデータ等を印刷する。また、出力装置185として、スピーカー、機器を振動させるアクチュエータ等を含んでいてもよい。
受付装置190は、例えば、指示受付装置192、文書読取装置194等を有している。キーボード、マウス、マイク、カメラ(視線検知カメラ等を含む)等の指示受付装置192は、これらに対する利用者の操作(動作、音声、視線等を含む)に基づいたデータを受け付ける。
また、タッチスクリーンのように、表示装置187と指示受付装置192の両方の機能を備えているものがあってもよい。その場合、キーボードの機能の実現について、物理的なキーが存在しなくても、タッチスクリーン上にソフトウェアでキーボード(いわゆるソフトウェアキーボード、スクリーンキーボード等ともいわれる)を描画して、キーボードの機能を実現するようにしてもよい。
なお、ユーザーインタフェースとして、主に、表示装置187、指示受付装置192が用いられる。
スキャナ、カメラ等の文書読取装置194は、文書を読み取り又は撮影して、発生する画像データを受け付ける。
通信装置195は、通信回線を介して他の装置と接続するためのネットワークカード等の通信回線インタフェースである。
【0039】
本実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のプログラムメモリ140にソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、本実施の形態が実現される。つまり、ソフトウェアによる情報処理がハードウェア資源(少なくともプロセッサ105、メモリ110、場合によっては出力装置185、受付装置190、通信装置195を含む)を用いて、本実施の形態が具体的に実現されており、全体として自然法則を利用している。
なお、
図1に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、
図1に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、プロセッサ105として、GPU(Graphics Processing Unitの略、GPGPU(General-Purpose computing on Graphics Processing Unitsの略)を含む)を用いてもよいし、一部のモジュールの実行を専用のハードウェア(例えば特定用途向け集積回路(具体例として、ASIC(Application Specific Integrated Circuitの略)等がある)や再構成可能な集積回路(具体例として、FPGA(Field-Programmable Gate Arrayの略)等がある)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに
図1に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、サーバー、パーソナルコンピュータの他、携帯情報通信機器(携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む)、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)等に組み込まれていてもよい。
【0040】
プロセッサ105は、バス198を介してメモリ110、出力装置185、受付装置190、通信装置195と接続されている。プロセッサ105は、プログラムメモリ140内のプログラムである各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する。例えば、指示受付装置192によってユーザーの操作を受け付けたことを契機として、プログラムメモリ140内のその操作に対応するモジュールによる処理を実行し、その処理結果をデータメモリ120に記憶させたり、表示装置187に出力したり、通信装置195を制御して他の装置に送信したりする。
【0041】
メモリ110は、データメモリ120、プログラムメモリ140を有しており、バス198を介してプロセッサ105、出力装置185、受付装置190、通信装置195と接続されている。
データメモリ120は、画像記憶モジュール122、文字認識処理結果記憶モジュール124を有している。
画像記憶モジュール122は、対象となる表の画像を記憶する。例えば、スキャナ、カメラ等の文書読取装置194で読み込んだ画像、ファックス等で通信回線を介して外部機器から受信した画像、ハードディスク(コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む)等から読み出された画像等がある。画像は、二値化を行う必要がある多値画像(カラー画像を含む)である。記憶されている画像は、1枚であってもよいし、複数枚であってもよい。また、その画像の内容として、文字を含む表が含まれている。なお、表には、帳票、テーブル等といわれているものを含む。
【0042】
文字認識処理結果記憶モジュール124は、文字認識処理モジュール150による認識処理の結果、及び、その結果を加工した特徴を記憶する。
【0043】
プログラムメモリ140は、前処理モジュール142、文字認識処理モジュール150、制御モジュール152を記憶している。
前処理モジュール142は、前処理(A)モジュール144、前処理(B)モジュール146、前処理(C)モジュール148を有している。前処理モジュール142は、複数の前処理が可能である。本実施の形態では、3種類の前処理(前処理(A)モジュール144、前処理(B)モジュール146、前処理(C)モジュール148)の例を示しているが、4種類以上の前処理であってもよい。
ここでの前処理とは、画像記憶モジュール122内の文字を含む表画像に対して文字認識を行うための処理であって、文字に背景がある領域に対して、その背景を除去する処理を行うものである。
したがって、前処理モジュール142による前処理が行われた画像を、文字認識処理モジュール150が文字認識処理する。
例えば、前処理モジュール142が行う前処理として、二値化処理がある。以下の説明では、二値化処理を例示して説明する。
【0044】
前処理(A)モジュール144は、画像記憶モジュール122内の文字を含む表画像に対して文字認識を行うための処理であって、文字に背景がある領域に対して、その背景を除去する処理(第1前処理)を行う。前処理(A)モジュール144として、例えば、単純二値化処理が挙げられる。単純二値化処理とは、予め定められた閾値を用いて、画像の二値化を行う画像処理である。
【0045】
前処理(B)モジュール146は、画像記憶モジュール122内の文字を含む表画像に対して文字認識を行うための処理であって、文字に背景がある領域に対して、その背景を除去する処理(第2前処理)を行う。前処理(B)モジュール146は、前処理(A)モジュール144よりも後に行われることになる。前処理(B)モジュール146は、前処理(A)モジュール144よりも高品質な二値化処理を行う。ただし、処理速度は、前処理(B)モジュール146の方が前処理(A)モジュール144よりも遅い(つまり、処理時間が長い)。前処理(B)モジュール146として、例えば、高品質二値化処理がある。高品質二値化処理とは、単純二値化処理よりも文字認識処理モジュール150による文字認識結果の精度がよくなることが期待できる前処理であればよく、前述の閾値を画像に応じて変更する前処理が該当する。例えば、モード法、P-タイル法、判別分析法等がある。
【0046】
前処理(C)モジュール148は、画像記憶モジュール122内の文字を含む表画像に対して文字認識を行うための処理であって、文字に背景がある領域に対して、その背景を除去する処理(第3前処理)を行う。前処理(C)モジュール148は、前処理(B)モジュール146よりも後に行われることになる。前処理(C)モジュール148は、前処理(B)モジュール146よりも高品質な二値化処理を行う。ただし、処理速度は、前処理(C)モジュール148の方が前処理(B)モジュール146よりも遅い(つまり、処理時間は長い)。前処理(C)モジュール148として、例えば、遺伝的アルゴリズム二値化処理がある。遺伝的アルゴリズム二値化処理については、
図18、
図19の例に示すフローチャートを用いて後述する。
【0047】
前処理(B)モジュール146による第2前処理は、前処理(A)モジュール144による第1前処理よりも処理時間は長いが、前処理(B)モジュール146による第2前処理を行った結果に対して文字認識処理を行った結果は、前処理(A)モジュール144による第1前処理を行った結果に対して文字認識処理を行った結果よりも高精度である。前処理(B)モジュール146は、前処理(A)モジュール144よりも高品質な二値化処理を行う。ここでの高品質とは、文字認識処理による認識率の精度が向上することをいう。
前処理(C)モジュール148による第3前処理は、前処理(B)モジュール146による第2前処理よりも処理時間は長いが、前処理(C)モジュール148による第3前処理を行った結果に対して文字認識処理を行った結果は、前処理(B)モジュール146による第2前処理を行った結果に対して文字認識処理を行った結果よりも高精度である。
3つの二値化処理及びその関係については、表1を用いて後述する。
【0048】
文字認識処理モジュール150は、前処理モジュール142によって前処理された画像を、文字認識処理する。既存の文字認識処理を用いればよい。例えば、帳票用の文字認識処理であってもよいし、表画像内で使用されている言語に対応した文字認識処理(例えば、英数字専用の文字認識処理、日本語用文字認識処理等)等であってもよい。また、機械学習された人工知能モデルによる文字認識処理であってもよい。
なお、文字認識処理モジュール150は、1種類であってもよいし、複数種類であってもよい。つまり、全ての前処理に対して1種類の文字認識処理を行ってもよいし、前処理毎に異なる文字認識処理を行うようにしてもよい。前者は、第1前処理、第2前処理、第3前処理のいずれであっても同じ文字認識処理を行うことである。ただし、もちろんのことながら、前処理が異なるので、文字認識の対象となる表画像(前処理の結果である表画像)は異なることになり、したがって、同じ文字認識処理であったとしても、その文字認識の結果も異なることとなる。後者として、具体的には、第1前処理に適合する第1文字認識処理を行い、第2前処理に適合する第2文字認識処理を行い、第3前処理に適合する第3文字認識処理を行うようにしてもよい。以下の説明では、前者を例として説明する。
【0049】
制御モジュール152は、機械学習モジュール154を有している。制御モジュール152は、前処理モジュール142のうちの前処理(A)モジュール144を行った結果に対して文字認識処理を行い、その文字認識処理の結果を加工した第1特徴に応じて、前処理モジュール142のうちの前処理(B)モジュール146を行うか否かを判定する。
次に、制御モジュール152は、前処理(B)モジュール146を行った場合は、前処理(B)モジュール146を行った結果に対して文字認識処理を行い、その文字認識処理の結果を加工した第2特徴に応じて、前処理モジュール142のうちの前処理(C)モジュール148を行うか否かを判定する。
なお、4種類以上の前処理を有する場合は、同様の処理を繰り返すことになる。
【0050】
第1特徴と第2特徴は異なる特徴である。例えば、前処理(A)モジュール144によって生成される第1特徴は、確信度と文字数と文字密度等に関する特徴であり、前処理(B)モジュール146によって生成される第2特徴は、確信度と文字密度と斜体等に関する特徴であり、前処理(C)モジュール148によって生成される第3特徴は、確信度と白抜き文字と文字数等に関する特徴である。なお、ここで、「異なる特徴」とは、特徴を構成する要素のうち1つ以上が異なることをいう。したがって、同じ要素が含まれていてもよい。前述の例では、特徴のうち確信度は同じであるが、その他の要素では異なるものがある。つまり、第1特徴と第2特徴にあっては文字数、斜体は互いに異なっているので、第1特徴と第2特徴は異なる特徴である。そして、第2特徴と第3特徴にあっては文字密度と斜体、白抜き文字と文字数は互いに異なっているので、第2特徴と第3特徴は異なる特徴である。
【0051】
また、第1特徴が、予め定められた時間内に第2前処理が終了しないことを示している場合は、その第2前処理を行わないように制御するようにしてもよい。業務用に文字認識処理を行う場合に、予め定められた処理速度を達成する必要がある。そのために、前処理にかかる時間も予め定められた時間内に終了させる必要がある。したがって、前処理(B)モジュール146による前処理よりも前に行われる前処理(A)モジュール144と文字認識処理モジュール150の処理結果を加工した第1特徴を用いて、前処理(B)モジュール146による処理時間を推定している。
【0052】
さらに、第1特徴が、第1前処理の場合よりも第2前処理を行った場合に文字認識処理の精度の向上が予め定められた値未満であること、又は、その値以下となることを示している場合は、第2前処理を行わないように制御するようにしてもよい。そもそも前処理(B)モジュール146による前処理を行うのは、前処理(A)モジュール144と文字認識処理モジュール150の処理結果(文字認識処理の結果)よりも、前処理(B)モジュール146と文字認識処理モジュール150の処理結果(文字認識処理の結果)の精度が高くなることが期待されるからである。その精度の向上が予め定められた値未満又は以下である場合は、処理時間を余分にかけただけのバランスがとれないので、前処理(B)モジュール146による前処理は行わずに、前処理(A)モジュール144と文字認識処理モジュール150の処理結果を用いるようにしたものである。なお、単に精度の向上があればよいとする場合は、予め定められた値を0とすればよい。
【0053】
また、第1特徴が、予め定められた時間内に第2前処理が終了することを示している場合は、第2前処理を行うように制御するようにしてもよい。
さらに、第1特徴が、第1前処理の場合よりも第2前処理を行った場合に文字認識処理の精度の向上が予め定められた値より上がること、又は、その値以上となることを示している場合は、第2前処理を行うように制御するようにしてもよい。
【0054】
第1特徴及び第2特徴として、少なくとも確信度を含めるようにしてもよい。
第1特徴又は第2特徴として、確信度の他に、文字種毎の文字数、文字密度、文字種を示す空間における文字ベクトル、白抜き文字か否か、下線があるか否か、斜体であるか否か、のいずれか1つ以上を用いるようにしてもよい。
「文字種」として、例えば、かな漢字、アルファベット、数字、その他の文字等がある。
「文字種を示す空間」とは、文字種を軸とした空間をいう。その軸として、具体的には、かな漢字成分、アルファベット成分、数字成分、その他の文字成分がある。
【0055】
機械学習モジュール154は、予め機械学習により第2前処理を行うか否かを判断することを学習した人工知能である。
この機械学習モジュール154に対して、第1特徴を入力して、前処理(B)モジュール146による第2前処理を行うか否かを判断する。
人工知能は、機械学習における教師データとして、特徴、その特徴である場合に第2前処理を行ったことを示す情報を用いている。なお、「その特徴である場合に第2前処理を行ったか否かを示す情報」は、(1)文字認識の結果を加工したその特徴が、予め定められた時間内に第2前処理が終了することを示している場合は、第2前処理を行うことを示す情報である。さらに、反教師データとして、(2)文字認識の結果を加工したその特徴が、予め定められた時間内に第2前処理が終了しないことを示している場合は、第2前処理を行わないことを示す情報を加えるようにしてもよい。
【0056】
また、機械学習モジュール154は、予め機械学習により第3前処理を行うか否かを判断することを学習した人工知能であってもよい。
この機械学習モジュール154に対して、第2特徴を入力して、前処理(C)モジュール148による第3前処理を行うか否かを判断するようにしてもよい。
【0057】
図2は、本実施の形態を利用したシステム構成例を示す説明図である。
図2(a)に示す例は、スタンドアロン型のシステム例を示している。複合機200Aは、情報処理装置100を有している。
例えば、複合機200Aのスキャナで読み込んだ帳票等の表を含む文書の画像を、情報処理装置100が文字認識処理し、その文字認識結果を表示、又は、記憶装置に記憶させる。
【0058】
図2(b)に示す例は、ネットワーク型のシステム例を示している。情報処理装置100、複合機200B、文字認識処理サーバー250、端末280は、通信回線290を介してそれぞれ接続されている。情報処理装置100の文字認識処理モジュール150の代わりに文字認識処理サーバー250を利用するようにしてもよい。通信回線290は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、情報処理装置100、文字認識処理サーバー250による機能は、クラウドサービスとして実現してもよい。
例えば、複合機200Bのスキャナで読み込んだ帳票等の表を含む文書の画像を、情報処理装置100に送信し、情報処理装置100で前処理を行い、文字認識処理サーバー250に文字認識処理させ、その文字認識結果を端末280に送信する。
【0059】
図3は、本実施の形態により処理対象となる表画像の例を示す説明図である。
図3(a)に示す表画像310、
図3(B)に示す表画像320は、情報処理装置100によって文字認識の対象となる「文字を含む表画像」の例である。
表には、例えば、タイトル領域(1段目等)に網掛け、塗りつぶし等の背景がある領域があることが多い。
図3の例では、表画像310には網掛け・塗りつぶし領域315があり、表画像320には網掛け・塗りつぶし領域325がある。なお、「背景がある領域」とは、文字が記載されている領域において、文字の背後が白以外である領域をいう。例えば、網掛け、白以外の色による塗りつぶし、模様等が該当する。
【0060】
表内の網掛け、塗りつぶし等により文字認識処理が阻害される。つまり、網掛け、塗りつぶし等の背景がある文字画像を認識すると、背景がない文字画像を認識した場合よりも、認識結果の正解率が低くなる。
これに対し、文字認識処理の実行前の処置として画像処理を施し、文字認識処理におけるノイズとなる網掛け、塗りつぶし等を除去し、文字の抽出精度を向上させる手段をとっている。この処理を本実施の形態では、前処理という。
しかし、網掛け、塗りつぶし等の状態は様々であり、すべての状態に対し最大の効果を発揮する唯一の前処理はない。つまり、表画像の背景の状態により適切な前処理は異なる。
したがって、網掛け、塗りつぶし等の状態に応じて、前処理として、よりよい抽出結果を得られる画像処理を選択する必要がある。
【0061】
ただし、次に述べるような制限がある。
1.処理時間
文字認識装置の品質として、ユーザーにおける利便性の観点から、対象としている画像を処理するのに要する時間には制限が設けられている。例えば、表内に網点の背景が1か所ある帳票1枚に対して、予め定められた制限時間(例えば、8秒以内等)が設けられている場合がある。
【0062】
2.前処理
処理時間の制限により多数の前処理(二値化処理)を試すことはできない。つまり、前処理と文字認識処理を、複数回繰り返して行うと、制限時間を超えてしまうことになる。
各種網掛け等の背景の状態に対応できる、広範囲をカバーする前処理のセットを用意する。このセットとして、例えば、次の3種類の前処理がある。
(1)単純二値化:前処理(A)モジュール144による前処理の一例に該当する。
(2)高品質二値化:前処理(B)モジュール146による前処理の一例に該当する。
(3)遺伝的アルゴリズム二値化:前処理(C)モジュール148による前処理の一例に該当する。
【表1】
(1)「単純二値化」は、処理時間は短い。そして、その特性として、以下のことを挙げることができる。「処理が早いが、実行前に閾値を決定するため、同じ設定ですべての帳票の状態に適用することは難しい。」
(2)「高品質二値化」は、処理時間は長い。そして、その特性として、以下のことを挙げることができる。「単純二値化よりは処理が遅くなるが、塗りつぶしの境界を線分として抽出できるなど高機能。」
(3)「遺伝的アルゴリズム二値化」は、処理時間の制限を超える場合がある。そして、その特性として、以下のことを挙げることができる。「処理時間が長い。二値化も含め各種画像処理を組み合わせたもの。遺伝的アルゴリズムを利用して、最も効果がでる組み合わせで構成している。」
したがって、前処理を行う順番として、「単純二値化」、「高品質二値化」、「遺伝的アルゴリズム二値化」が適している。途中で、制限時間を超えそうな場合は、そこで処理を中止すればよい。つまり、次の段階の前処理を行うと、制限時間を超えてしまう場合は、現段階での文字認識処理の結果を利用すればよい。また、途中で、文字認識処理の精度が十分であると判断された場合は、そこで処理を中止すればよい。つまり、制限時間と文字認識処理の精度とのバランスをとる必要がある。
【0063】
3.網掛け、塗りつぶし等の背景がある領域の位置は不明である。
本実施の形態では、表のレイアウト解析結果から網掛け、塗りつぶしが比較的多用される表見出し領域を対象とする。具体的には、
図3の例に示したように、表の1段目が対象となる。
表見出しは、その表の属性抽出において重要なキーワードがあるため、そこに対する抽出精度を向上させることができる。
【0064】
前述した3種類の二値化処理に絞ったとしても、すべての二値化処理を実行すると処理時間の制限を満たせない。そこで、本実施の形態は、最低限の画像処理セット(前処理(A)モジュール144と文字認識処理モジュール150)を保持した上で、すべての二値化処理を実行するのではなく、順次、処理を行い、よい抽出結果が得られないと判定されたなら後段の二値化処理と文字認識処理を続行する処理フローとすることで、平均的にみた処理時間で制限時間以内となるようにしている。つまり、早い段階でよい結果が得られると判定されれば処理時間が短くなる。ここでの「順次行われる処理」は、具体的には、(1)前処理(A)モジュール144と文字認識処理モジュール150、(2)前処理(B)モジュール146と文字認識処理モジュール150、(3)前処理(C)モジュール148と文字認識処理モジュール150、の処理の順番である。
【0065】
各二値化処理の実行順序について詳細に説明する。
前処理(C)モジュール148による二値化処理は、単体で処理時間の制限を超えてしまう可能性があるため、なるべくこの処理が到達しない後段へ配置した。
前処理(A)モジュール144による二値化処理は、他の2つの前処理よりも処理速度が速く、また、事前の実験により本実施の形態で取り扱う帳票の過半数(例えば、60%程度)で、よい抽出結果が得られる事がわかったことから、前段へ配置した。
【0066】
後段の二値化処理を行うか否かの判定処理について説明する。
判定には回帰などの古典的な機械学習を使用した。演算能力が限られた組み込み機器で動作すること、また、各種データを複合的に判断することによって高い判定精度が得られるためである。なお、もちろんのことながら、ディープラーニング(DeepLerning)等を用いた機械学習を使用してもよい。
【0067】
網掛け、塗りつぶし等がある多数の帳票を使用して、教師あり機械学習モデルを作成した。使用したデータは以下の通りである。
・学習データは以下の通りである。
画像よりも結果に寄与すると考えられる、文字認識処理の出力データを利用する。文字認識処理の対象は、網掛け、塗りつぶし等がある表のタイトル領域としている。
・文字認識処理の出力データは、以下の通りである。なお、これらは例示である。
(1)抽出文字列:文字認識結果の主となるものであって、テキスト列である。
(2)文字認識処理領域情報:文字認識の対象である文字又は文字列の画像がある位置、大きさ等を示す情報であり、具体的には、その文字又は文字列の画像の外接矩形の左上の位置座標、縦と横のサイズ等が該当する。
(3)確信度:文字認識結果(テキスト列)の信頼度(正しさ)を示す値である。
(4)文字の大きさ:文字認識の対象である文字のフォントサイズである。
(5)白抜き文字正否:文字認識の対象である文字が白抜き文字であるか否かを示す情報である。
(6)斜体正否:文字認識の対象である文字が斜体文字であるか否かを示す情報である。
(7)下線有無:文字認識の対象である文字に下線が施されているか否かを示す情報である。
(8)取り消し線有無:文字認識の対象である文字に取り消し線が施されているか否かを示す情報である。
【0068】
文字認識処理の出力データに対して加工を行う。つまり、機械学習が可能であり、かつ、機械学習の精度を向上させるデータへの加工を行う。加工の過程、具体的なデータについては、後述する。
・加工データは、以下の通りである。なお、これらは例示である。
(1)文字数(かな漢字):文字認識処理で抽出された文字列に含まれるかな漢字の数である。
(2)文字数(数字):文字認識処理で抽出された文字列に含まれる数字の数である。
(3)文字数(アルファベット):文字認識処理で抽出された文字列に含まれるアルファベットの数である。
(4)文字数(その他):文字認識処理で抽出された文字列に含まれるその他(かな漢字、数字、アルファベット以外の文字)の数である。
(5)文字密度(かな漢字、アルファベット):文字認識処理の対象となった文字列画像あたりのかな漢字とアルファベットの文字数である。
(6)文字密度(数字、その他):文字認識処理の対象となった文字列画像あたりの数字とその他の文字数である。
(7)文字ベクトル:文字種でエンコーディングした、長さ4のベクトルである。具体的には、4次元空間(各軸が、かな漢字、アルファベット、数字、その他で構成された4次元空間)で表現される、文字認識処理で抽出された文字列のベクトルである。
(8)確信度、白抜き正否、斜体正否、下線有無:前述した文字認識処理の出力データをそのまま用いている。
【0069】
・正解ラベルの生成は、以下の通りである。
文字認識処理で抽出された文字列の編集距離を用い、3種の二値化処理による文字認識処理の結果の中で最もよい編集距離となったものを1(正解)とし、それ以外を0(誤答)としてラベリングする。ただし、その編集距離が予め定められた値以上となっていることを条件として、1(正解)としてもよい。編集距離は、文字認識処理で抽出された文字列を正しい文字列に変換するための編集の手数によって算出される。最もよい編集距離の文字列とは、3種の二値化処理による二値化画像のそれぞれに対して文字認識処理で抽出された3つの文字列のうち、正しい文字列に最も近い文字列をいう。
【0070】
図4は、本実施の形態の構成例についての具体的なモジュール構成図である。
画像処理装置400は、前処理と文字認識処理410、判定モジュール420、キー・バリュー抽出モジュール460を有している。
【0071】
画像402は、スキャンされた画像内の文字認識処理の対象となる領域画像である。具体的には、表画像又は表内の1段目の画像である。
前処理と文字認識処理410は、データ加工モジュール430、前処理採否判定モジュール450と接続されている。前処理と文字認識処理410は、画像402を受け付け、文字認識処理結果412を出力する。前処理と文字認識処理410内の前処理は、各種二値化処理(単純二値化処理、高品質二値化処理、遺伝的アルゴリズム二値化処理)を指す。そして、二値化処理を行った画像に対して、文字認識処理を実行する処理を行う。
文字認識処理結果412は、前処理と文字認識処理410が出力する、抽出文字列、文字サイズ等の文字認識処理に関わるデータである。
【0072】
判定モジュール420は、データ加工モジュール430、機械学習モデル440、前処理採否判定モジュール450を有している。判定モジュール420は、前処理と文字認識処理410による処理を繰り返すか否かの判定を行う。ただし、前処理と文字認識処理410による処理は、単なる繰り返しではなく、次の段階の二値化処理へと進む。今回の二値化処理が単純二値化処理であれば高品質二値化処理、今回の二値化処理が高品質二値化処理であれば遺伝的アルゴリズム二値化処理を行うことになる。
【0073】
データ加工モジュール430は、前処理と文字認識処理410、機械学習モデル440と接続されている。データ加工モジュール430は、加工データ432を出力する。データ加工モジュール430は、前処理と文字認識処理410が出力する文字認識処理結果412を機械学習可能なデータに変換する。
加工データ432は、データ加工処理によって加工されたデータである。
【0074】
機械学習モデル440は、データ加工モジュール430、前処理採否判定モジュール450と接続されている。機械学習モデル440は、加工データ432、モデルパラメタ438を受け付け、次に前処理と文字認識処理410に処理を行わせるか否かを示す分類確率を前処理採否判定モジュール450に出力する。既に機械学習された機械学習モデル440は、ロジスティック回帰、SVM、RandomForest等の機械学習器である。
モデルパラメタ438は、前処理と文字認識処理410、データ加工モジュール430の工程を踏んで得られたデータで学習を行った導出したパラメータ群である。機械学習モデル440と併せて学習済みモデルと呼ぶ。
【0075】
前処理採否判定モジュール450は、前処理と文字認識処理410、機械学習モデル440、キー・バリュー抽出モジュール460と接続されている。前処理採否判定モジュール450は、学習済みモデルが出力する分類確率を用いて、高い精度の帳票属性抽出を行えるかを判定する。
【0076】
キー・バリュー抽出モジュール460は、前処理採否判定モジュール450と接続されている。キー・バリュー抽出モジュール460は、加工データ432又は文字認識処理結果412を受け付け、キー・バリュー抽出を行う。具体的には、表画像内のキーとなるテキストを属性とし、その属性の値(バリュー)を抽出し、両者の対応付けを行う。
【0077】
図5は、本実施の形態による処理例を示すフローチャートである。
ステップS502では、画像を読み取る。表を含む帳票等の文書を、スキャナで画像として読み込む。
ステップS504では、前処理と文字認識処理410が、ステップS502で読み取った画像に対して、単純二値化処理と文字認識処理を行う。ここでは第1前処理である単純二値化処理を行い、その処理結果に対して文字認識処理を行う。
【0078】
ステップS506では、ステップS502で読み取った画像内の表領域を検知する。既に知られた文書画像のレイアウト解析を用いればよい。例えば、画像から縦線、横線を抽出し、その縦線、横線で構成される表を抽出するようにしてもよい。
ステップS508では、表内のタイトル領域の検知と切り出しを行う。ステップS506で抽出された表領域から、1段目のタイトル領域を抽出すればよい。
なお、
図5の例に示すフローチャートでは、ステップS502、ステップS504、ステップS506、ステップS508の順で行っているが、ステップS502、ステップS506、ステップS508、ステップS504の順で行ってもよい。つまり、表内のタイトル領域に対してだけ、ステップS504の処理を行うようにしてもよい。
【0079】
ステップS510では、判定処理を行い、基準を満たす場合はステップS520へ進み、基準を満たさない場合はステップS512へ進む。ここでの判定処理は、ステップS504の処理結果、つまり、文字認識処理の結果を用いて判定を行う。なお、表内のタイトル領域における文字認識処理の結果を用いて、その文字認識処理の結果の可否を判断する。具体的には、ステップS508で切り出したタイトル領域に対して行われた、ステップS504の文字認識処理の結果だけを用いるようにしている。
【0080】
ステップS512では、前処理と文字認識処理410が、ステップS502で読み取った画像に対して、高品質二値化処理と文字認識処理を行う。ここでは第2前処理である高品質二値化処理を行い、その処理結果に対して文字認識処理を行う。
ステップS514では、判定処理を行い、基準を満たす場合はステップS520へ進み、基準を満たさない場合はステップS516へ進む。ここでの判定処理は、ステップS512の処理結果、つまり、文字認識処理の結果を用いて判定を行う。なお、表内のタイトル領域における文字認識処理の結果を用いて、その文字認識処理の結果の可否を判断する。具体的には、ステップS508で切り出したタイトル領域に対して行われた、ステップS512の文字認識処理の結果だけを用いるようにしている。
【0081】
ステップS516では、前処理と文字認識処理410が、ステップS502で読み取った画像に対して、遺伝的アルゴリズム二値化処理と文字認識処理を行う。ここでは第3前処理である遺伝的アルゴリズム二値化処理を行い、その処理結果に対して文字認識処理を行う。
ステップS518では、判定処理を行い、基準を満たす場合はステップS520へ進み、基準を満たさない場合はステップS520へ進む。ここでの判定処理は、ステップS516の処理結果、つまり、文字認識処理の結果を用いて判定を行う。なお、表内のタイトル領域における文字認識処理の結果を用いて、その文字認識処理の結果の可否を判断する。具体的には、ステップS508で切り出したタイトル領域に対して行われた、ステップS516の文字認識処理の結果だけを用いるようにしている。
【0082】
なお、ステップS518の処理は、行わなくともよい。4種類目の二値化処理を行う場合は、ステップS518で基準を満たさないと判定した場合に、その4種類目の二値化処理を行うこととなる。なお、4種類目の二値化処理は、遺伝的アルゴリズム二値化処理よりも処理時間は長いが、4種類目の二値化処理を行った結果に対して文字認識処理を行った結果は、遺伝的アルゴリズム二値化処理を行った結果に対して文字認識処理を行った結果よりも高精度である。
また、ステップS518で基準を満たさないと判定した場合は、ステップS520に進まずに、エラー処理としてもよい。つまり、文字認識結果が基準を満たしていないので、例えば、ユーザーによるテキスト変換を促すようにしてもよい。
【0083】
ステップS520では、文字認識結果(ステップS504、ステップS512、ステップS516のいずれかの処理結果)に対して、後処理を行う。例えば、前述したキー・バリュー抽出を行う。
【0084】
図6は、本実施の形態の構成例についてのより具体的なモジュール構成と処理例の説明図である。
図6の例は、いわゆる判定器を示しており、機械学習モデルとしてロジスティック回帰を用いたものである。具体的には、
図6の例では、
図6(b)に示した学習(実験領域と記載)、
図6(a)に示したプラグイン(Plugin、つまり、学習済みモデルであって、実践の文字認識処理を行うもの)による分類、についての概要図を示している。
【0085】
図6(b)の例に示すように、事前の実験で回帰係数を得て、
図6(a)の例に示す画像処理装置600(プラグイン)に定義し、回帰式を解き、前処理の合否の判定を行うようにしている。
図6(b)の例に示す左側のグラフでは、×印は各文字認識処理結果のデータ(加工後)を示している。
回帰式は、次のように表される。
Y=a
1x
1+a
2x
2+a
3x
3+・・・
ここでx
iは、加工データである。
機械学習とは、回帰係数a
iを求めることである。
そして、
図6(b)の例に示す右側のグラフに示すようなF(Y)によって判定パラメータを生成する。ここでF(Y)は、回帰式Yの値から0と1に変換する関数であり、一般的にシグモイド(sigmoid)関数が用いられる。
入力データ(加工データ)と正解データ(分類のための0と1のラベル)を用いて、学習を行う。ロジスティック回帰における学習とは、ラベルの0と1を精度よく分ける回帰式の回帰係数を求めることである。
【0086】
図6(a)の例に示す画像処理装置600は、
図4の例に示した画像処理装置400をさらに具体的に示したものである。なお、
図4の例に示した画像処理装置400と同種の部位には同一符号を付し重複した説明を省略する。判定モジュール620は判定モジュール420に対応し、データ加工モジュール630はデータ加工モジュール430に対応し、回帰係数638はモデルパラメタ438に対応し、回帰式計算:Y640は機械学習モデル440に対応し、前処理採否判定モジュール650は前処理採否判定モジュール450に対応する。
【0087】
画像処理装置600は、前処理と文字認識処理410、判定モジュール620、キー・バリュー抽出モジュール460を有している。
前処理と文字認識処理410は、データ加工モジュール630、前処理採否判定モジュール650と接続されている。前処理と文字認識処理410は、画像402を受け付け、文字認識処理結果412を出力する。
判定モジュール620は、データ加工モジュール630、回帰式計算:Y640、前処理採否判定モジュール650を有している。
データ加工モジュール630は、前処理と文字認識処理410、回帰式計算:Y640と接続されている。データ加工モジュール630は、加工データ432を出力する。データ加工モジュール630は、後述する
図7、
図8の例に示す加工レシピにしたがって、前処理と文字認識処理410の処理結果に対する加工を行う。
回帰式計算:Y640は、データ加工モジュール630、前処理採否判定モジュール650と接続されている。回帰式計算:Y640は、加工データ432、回帰係数638を受け付ける。回帰式計算:Y640は、前述の回帰式の回帰係数638(回帰係数a
i)を用いて、回帰式の計算を行う。
前処理採否判定モジュール650は、前処理と文字認識処理410、回帰式計算:Y640、キー・バリュー抽出モジュール460と接続されている。前処理採否判定モジュール650は、前述のF(Y)を用いて、次の段階の二値化処理を行うか否かを判定する。
キー・バリュー抽出モジュール460は、前処理採否判定モジュール650と接続されている。キー・バリュー抽出モジュール460は、加工データ432を受け付ける。
【0088】
図7は、本実施の形態による処理例を示す説明図である。
図7に示す例を用いて、加工データを生成する処理について説明する。なお、この加工処理は、機械学習においても用いられるし、機械学習済みの機械学習モジュール154における加工処理(
図6の例に示したデータ加工モジュール630)でも用いられる。
【0089】
画像402に対してxxx二値化710による前処理を行う。ここでのxxx二値化710は、単純二値化処理、高品質二値化処理、遺伝的アルゴリズム二値化処理のいずれかである。
xxx二値化710による処理結果(二値画像)に対して、文字認識処理720による文字認識処理を行う。
文字認識処理720による処理結果として、文字認識処理結果データ730を出力する。なお、機械学習の際、文字認識処理720は、画像402内の網かけ、塗りつぶし等の背景がある領域に対して、文字認識処理を行う。
【0090】
文字認識処理結果データ730に対して、加工処理740を行い、学習データ750を生成する。
文字認識処理結果データ730として、例えば、「char」、「x」、「y」、「w」、「h」、「similarity」、「fontsize」、「reverse」、「italic」、「underline」、「doubleUnderline」、「linethrough」、「doubleLinethrough」がある。
それぞれのデータ(xxx二値化710による処理結果)は、次の意味を有する。
・char:文字認識処理によって抽出された文字列である。
・x:文字認識処理の対象となった画像中の領域のx座標である。
・y:文字認識処理の対象となった画像中の領域のy座標である。
・w:文字認識処理の対象となった画像中の領域の幅である。
・h:文字認識処理の対象となった画像中の領域の高さである。
・similarity:抽出した文字列の確信度である。つまり、画像から文字への変換の信頼度である。
・fontsize:抽出した文字列の文字サイズである。
・reverse:抽出した文字列が白抜き文字であるか否かを示す数値(2値)である。
・italic:抽出した文字列が斜体であるか否かを示す数値(2値)である。
・underline:抽出した文字列に下線が有るか否かを示す数値(2値)である。
・doubleunderline:抽出した文字列に二重下線が有るか否かを示す数値(2値)である。
・linethrough:抽出した文字列に取り消し線が有るか否かを示す数値(2値)である。
・doublelinethrough:抽出した文字列に二重取り消し線が有るか否かを示す数値(2値)である。
【0091】
学習データ750として、「文字ベクトル(成分1)」、「文字ベクトル(成分2)」、「文字ベクトル(成分3)」、「文字ベクトル(成分4)」、「similarity」、「reverse」、「italic」、「underline」、「文字数(かな漢字)」、「文字数(アルファベット)」、「文字数(数字)」、「文字数(その他)」、「文字密度(かな漢字、アルファベット)」、「文字密度(数字、その他)」がある。
それぞれのデータ(加工処理740による処理結果)は、次の意味を有する。
・文字ベクトル(成分1):抽出した文字列を4つの文字種別(かな漢字、アルファベット、数字、その他)でベクトル化した際の第1成分(かな漢字成分)である。
・文字ベクトル(成分2):文字ベクトルの第2成分(アルファベット成分)である。
・文字ベクトル(成分3):文字ベクトルの第3成分(数字成分)である。
・文字ベクトル(成分4):文字ベクトルの第4成分(その他文字成分)である。
・文字数(かな漢字):抽出した文字列に含まれるかな漢字の数である。
・文字数(アルファベット):抽出した文字列に含まれるアルファベットの数である。
・文字数(数字):抽出した文字列に含まれる数字の数である。
・文字数(その他):抽出した文字列に含まれるかな漢字・アルファベット・数字以外の文字の数である。
・文字密度(かな漢字、アルファベット):文字認識処理をかけた領域面積当たりのかな漢字とアルファベットの文字数である。
・文字密度(数字、その他):文字認識処理をかけた領域面積当たりの数字とその他文字の文字数である。
【0092】
例えば、文字認識処理結果データ730の「char」から学習データ750の「文字ベクトル(成分1)」、「文字ベクトル(成分2)」、「文字ベクトル(成分3)」、「文字ベクトル(成分4)」、「文字数(かな漢字)」、「文字数(アルファベット)」、「文字数(数字)」、「文字数(その他)」を生成する。
また、文字認識処理結果データ730の「char」と「w」と「h」から学習データ750の「文字密度(かな漢字、アルファベット)」、「文字密度(数字、その他)」を生成する。
【0093】
そして、文字認識処理結果データ730の「char」と正しい文字列から、編集距離を算出する。この処理は、機械学習の際にだけ行われる処理である。
【0094】
図8は、本実施の形態による処理例を示す説明図である。
図7の例に示した処理内容を状態遷移図的に示したものである。
学習データ750として、文字認識処理抽出文字列802、X座標804、Y座標806、領域幅808、領域高さ810、確信度812、フォントサイズ814、白抜き816、斜体818、下線820、二重下線822、取り消し線824がある。
このうち、文字認識処理抽出文字列802に対して計数処理860を施して、文字数(かな漢字)832、文字数(アルファベット)834、文字数(数字)836、文字数(その他)838を生成する。
また、文字認識処理抽出文字列802に対してベクトル化処理870を施して、文字ベクトル成分1:842、文字ベクトル成分2:844、文字ベクトル成分3:846、文字ベクトル成分4:848を生成する。
また、文字数(かな漢字)832、文字数(アルファベット)834、文字数(数字)836、文字数(その他)838、領域幅808、領域高さ810に対して文字数/領域処理880を施して、文字密度(かな漢字・アルファベット)852、文字密度(数字・その他)854を生成する。
【0095】
そして、確信度812、フォントサイズ814、白抜き816、斜体818、下線820、文字数(かな漢字)832、文字数(アルファベット)834、文字数(数字)836、文字数(その他)838、文字ベクトル成分1:842、文字ベクトル成分2:844、文字ベクトル成分3:846、文字ベクトル成分4:848、文字密度(かな漢字・アルファベット)852、文字密度(数字・その他)854のデータを学習データ又は回帰式計算:Y640が対象とする加工データ432として使用する。
【0096】
図9は、本実施の形態による処理例を示す説明図である。機械学習の処理例を示すものである。
【0097】
網掛け、塗りつぶし等の背景がある表が含まれている画像402を用意する。また、各画像402に記載されている文字列(正解文字列)を予め用意しておく。
1.N件の網掛け、塗りつぶし等の背景がある画像402に対し、各種の二値化処理を施す。
2.各二値化画像に対し、文字認識処理を行う。
3.文字認識処理によって出力された抽出文字列の編集距離を算出する。
4.文字認識処理によって出力されたデータを加工する。
5.各二値化処理と文字認識処理から得られた編集距離を用いて、最もよい編集距離となるデータに正解ラベル(1)を付与する。ほかは誤答ラベル0とする。
6.学習データセット(加工データと正解ラベル)を用いて学習を行う。
【0098】
具体的には、
図9の例に示すように、以下のような処理を行う。
N件の画像402に対して、単純二値化902Aの処理を行い、その二値化した画像に対して文字認識処理904Aの処理を行い、その文字認識処理結果に対してデータ加工906Aの処理を行い、その処理結果及び正解ラベル作成912の処理結果を用いて、学習908Aを行う。
N件の画像402に対して、高品質二値化902Bの処理を行い、その二値化した画像に対して文字認識処理904Bの処理を行い、その文字認識処理結果に対してデータ加工906Bの処理を行い、その処理結果及び正解ラベル作成912の処理結果を用いて、学習908Bを行う。
N件の画像402に対して、遺伝的アルゴリズム二値化902Cの処理を行い、その二値化した画像に対して文字認識処理904Cの処理を行い、その文字認識処理結果に対してデータ加工906Cの処理を行い、その処理結果及び正解ラベル作成912の処理結果を用いて、学習908Cを行う。
なお、正解ラベル作成912は、抽出文字列の編集距離算出910A、抽出文字列の編集距離算出910B、抽出文字列の編集距離算出910Cの処理結果と正解文字列を用いて、最もよい編集距離であるものに正解ラベルを付与し、それ以外には誤答ラベルを付与して、学習908A、学習908B、学習908Cに供給する。
【0099】
図10は、本実施の形態による処理例を示す説明図である。単体の判定器による処理例を示すものである。
学習データ750は、文字認識処理結果を加工して作成したデータである。学習データ750をxxx二値化判定モデル1020に入力1010し、確率1040を出力1030する。
確率1040は、文字認識処理による抽出文字の編集距離が0.7以上かつ3種の二値化処理のうちで最高である確率である。逆にいえば、この確率1040を正解データとして使用し、学習を行う。
【0100】
図11は、本実施の形態による処理例を示す説明図である。単体の判定器による処理例を計算グラフとして示したものである。
・入力データ
データの項目については前述の通りである。例えば、単純二値化の判定器を作成する場合は、単純二値化を施した画像に対する文字認識処理データを使用する。
これを多数(前述のN件)の網掛け、塗りつぶし等の背景がある領域について実行する。
【0101】
・乗算処理(×)と加算処理(+)
入力データに対し重み(回帰係数、
図11では重みa11102-1等)を掛け、それらを加算し回帰式の解を得る。
つまり、
図11の例では、重みa1:1102-1と文字ベクトル成分x1:1104-1を乗算処理1110-1して結果(数式1)を得る。
【数1】
重みa1:1102-1と文字ベクトル成分x1:1104-1を乗算処理1110-1した結果と、重みa2:1102-2と文字ベクトル成分x2:1104-2を乗算処理1110-2した結果と、・・・、重みa14:1102-14と文字密度(数字、その他)x14:1104-14を乗算処理1110-14した結果を、加算処理1120して結果(数式2)を得る。
【数2】
【0102】
・シグモイド関数
0~1に変換し、確率に落とし込む。
つまり、
図11の例では、数式2を、数式3でシグモイド関数1130処理した結果である確率(0~1)を得る。
【数3】
【0103】
・閾値処理
出力した確率に対し0又は1に分ける閾値を適用し、0又は1に落とし込む。
この結果と、予め算出しておいた編集距離に基づく正解ラベルを用いて、結果が合致しているか否かを出力する。
つまり、
図11の例では、確率(0~1)に閾値(0~1)による閾値処理を行って、判定結果(0又は1)1150を得る。
この合致する割合が高くなるよう重みを調整する機械学習を行う。
なお、正解ラベルは、3種の前処理と文字認識処理で得られた抽出文字列の編集距離を比較し、最もよい編集距離であるものに1(正解)を、そうでないものに0を付与したデータである。
【0104】
前述の通り、各判定器(機械学習モデル)が出力する確率に対してある閾値を適用して正解か否かを示す情報(1又は0)に分類する。
したがって、閾値の設定によって判定精度が変わってくる。例えば、閾値を高く設定すれば、厳しい判定となるような効果がある。
本実施の形態では、3種の判定器を直列に接続した構成であるため、各判定器が単独で判定精度が高くなるように閾値を設定するよりも、3種の判定結果を合わせてみたときに正解が多くなるように調整する必要がある。
そこで、以下のような閾値の全体最適化を図る機構を設けている。
【0105】
図12は、本実施の形態による処理例を示す説明図である。閾値変更の処理例を示すものである。
各判定器によって判定確率を算出する。具体的には、以下の通りである。
単純二値化判定モジュール1212は単純二値化処理・文字認識処理結果データ1202を用いて判定確率1222を算出し、その単純二値化判定モジュール1212における閾値1232を用いて閾値調整1220を行う。
高品質二値化判定モジュール1214は高品質二値化処理・文字認識処理結果データ1204を用いて判定確率1224を算出し、その高品質二値化判定モジュール1214における閾値1234を用いて閾値調整1220を行う。
遺伝的アルゴリズム二値化判定モジュール1216は遺伝的アルゴリズム二値化処理・文字認識処理結果データ1206を用いて判定確率1226を算出し、その遺伝的アルゴリズム二値化判定モジュール1216における閾値1236を用いて閾値調整1220を行う。
【0106】
そして、3種の判定確率を使用して、実際の処理フローの評価順(単純二値化処理、高品質二値化処理、遺伝的アルゴリズム二値化処理の順)で採用する判定結果を決定する。具体的には、以下の通りである。
処理パス決定1240は、単純二値化処理、高品質二値化処理、遺伝的アルゴリズム二値化処理の順で評価して、判定結果テーブル1260を生成する。
【0107】
その判定結果(3要素のワンホットベクトル)に編集距離を重みとして掛けてスコアとする。
すべての画像402についてのスコアを加算し、システム全体としての判定精度スコア(最適化スコア)とする。具体的には、以下の通りである。
スコア算出処理として、判定結果テーブル1260に対して重みテーブル1270による重みづけ1280の処理を行って、総和(最適スコア)1290を生成する。
判定結果テーブル1260は、画像欄1262、単純二値化採否欄1264、高品質二値化採否欄1266、遺伝的アルゴリズム二値化採否欄1268を有している。画像欄1262は、対象とした画像を本実施の形態で一意に識別するための情報(画像No)を記憶している。単純二値化採否欄1264は、その画像に対しての単純二値化処理の採否を記憶している。高品質二値化採否欄1266は、その画像に対しての高品質二値化処理の採否を記憶している。遺伝的アルゴリズム二値化採否欄1268は、その画像に対しての遺伝的アルゴリズム二値化処理の採否を記憶している。
重みテーブル1270は、画像欄1272、単純二値化欄1274、高品質二値化欄1276、遺伝的アルゴリズム二値化欄1278を有している。画像欄1272は、画像Noを記憶している。単純二値化欄1274は、その画像に対しての単純二値化処理を行った場合の重みを記憶している。高品質二値化欄1276は、その画像に対しての高品質二値化処理を行った場合の重みを記憶している。遺伝的アルゴリズム二値化欄1278は、その画像に対しての遺伝的アルゴリズム二値化処理を行った場合の重みを記憶している。
【0108】
そして、3種の判定器(単純二値化判定モジュール1212、高品質二値化判定モジュール1214、遺伝的アルゴリズム二値化判定モジュール1216)の閾値(閾値1232、閾値1234、閾値1236)を変更し(閾値変更1292)、再度、閾値調整1220の処理を、任意の回数だけ繰り返す。
この工程によって判定精度スコアを得られたときの閾値(採用する閾値(スコアが最大)1294)を採用する。
【0109】
図13は、本実施の形態による処理例を示す説明図である。
図13の例は、
図9の例に示した機械学習の処理に、閾値調整1320を加えたものである。
学習908Aは、閾値1332Aを用いて、学習処理を行う。
学習908Bは、閾値1332Bを用いて、学習処理を行う。
学習908Cは、閾値1332Cを用いて、学習処理を行う。
そして、閾値調整1320は、閾値1332A、閾値1332B、閾値1332Cをそれぞれ閾値処理して新たな閾値1332A、閾値1332B、閾値1332Cとして、それぞれ学習908A、学習908B、学習908Cに供給する。
【0110】
図14は、本実施の形態による実験結果の例を示す説明図である。64件の画像に対する実験結果を示している。
前述した方法で作成した判定器を用いた処理フローを構成し、その処理フローを実施した際の性能を示したものである。なお、比較のため、3種の二値化処理をそれぞれ単独で使用した場合の数値(単一の前処理で実施した場合欄1404内の数値)を併記している。
【0111】
実験結果1400は、評価項目欄1402、単一の前処理で実施した場合欄1404、判定モジュール使用欄1412を有しており、単一の前処理で実施した場合欄1404は、単純二値化欄1406、高品質二値化欄1408、遺伝的アルゴリズム二値化欄1410を有している。評価項目欄1402は、評価項目を示している。単一の前処理で実施した場合欄1404は、単一の前処理で実施した場合の実験結果を示している。単純二値化欄1406は、前処理として単純二値化を実施した場合の実験結果を示している。高品質二値化欄1408は、前処理として高品質二値化を実施した場合の実験結果を示している。遺伝的アルゴリズム二値化欄1410は、前処理として遺伝的アルゴリズム二値化を実施した場合の実験結果を示している。判定モジュール使用欄1412は、判定モジュールを使用した場合の実験結果を示している。
【0112】
例えば、実験結果1400の1行目は、評価項目欄1402の「網掛け、塗りつぶし等の背景がある領域内の文字列の抽出率(64件における平均)」では、単一の前処理で実施した場合欄1404の単純二値化欄1406は「0.70」であり、単一の前処理で実施した場合欄1404の高品質二値化欄1408は「0.69」であり、単一の前処理で実施した場合欄1404の遺伝的アルゴリズム二値化欄1410は「0.56」であり、判定モジュール使用欄1412は「0.87」であることを示している。
実験結果1400の2行目は、評価項目欄1402の「処理時間(64件における平均)」では、単一の前処理で実施した場合欄1404の単純二値化欄1406は「4.10秒」であり、単一の前処理で実施した場合欄1404の高品質二値化欄1408は「6.90秒」であり、単一の前処理で実施した場合欄1404の遺伝的アルゴリズム二値化欄1410は「13.10秒」であり、判定モジュール使用欄1412は「6.12秒」であることを示している。
この例では、制限処理時間を8秒としているが、判定モジュールを使用した場合は、その制限処理時間内(6.12秒)で、単独の二値化処理を行った場合よりもよい抽出率(0.87)が得られている。
【0113】
結果への寄与の実験結果について、
図15~
図17の例を用いて説明する。
図15~
図17の例に示す各グラフは、機械学習によって得られた回帰係数を、降順に示している。回帰係数の絶対値が大きいほど出力への寄与度も大きい。留意すべき事項としては、判定はデータの複合的な結果となるため、ある1つの値の高さのみで判定が決定づけられるわけではない。
【0114】
図15は、本実施の形態による実験結果の例を示す説明図である。判定器(単純二値化処理)の回帰係数を示すものである。
入力データ「確信度」の場合の回帰係数は「0.751」であり、入力データ「文字数(かな漢字)」の場合の回帰係数は「0.326」であり、入力データ「文字密度(数字、その他)」の場合の回帰係数は「0.274」であり、入力データ「文字ベクトル(その他)」の場合の回帰係数は「0.231」であり、入力データ「白抜き文字」の場合の回帰係数は「0.179」であり、入力データ「文字密度(かな漢字、アルファベット)」の場合の回帰係数は「-0.010」であり、入力データ「文字数(数字)」の場合の回帰係数は「-0.112」であり、入力データ「下線」の場合の回帰係数は「-0.116」であり、入力データ「文字ベクトル(数字)」の場合の回帰係数は「-0.147」であり、入力データ「斜体」の場合の回帰係数は「-0.240」であり、入力データ「文字ベクトル(アルファベット)」の場合の回帰係数は「-0.327」であり、入力データ「文字数(アルファベット)」の場合の回帰係数は「-0.369」であり、入力データ「文字ベクトル(かな漢字)」の場合の回帰係数は「-0.670」であり、入力データ「文字数(その他)」の場合の回帰係数は「-1.010」であることを示している。
【0115】
この実験結果により、確信度の係数は正で最も大きく、単純二値化判定では確信度が高いほど正解(ラベル1)となりやすい傾向が読み取れる。
文字数(その他)は負で最大であるため、文字数(その他)の入力が大きくなるほど、不正解(ラベル0)となりやすい。
文字密度(かな漢字、アルファベット)は係数が小さいため、出力への寄与も小さくなる。つまり、単純二値化処理の判定においては、さほど重要ではないといえる。
【0116】
したがって、入力データの最小の組み合わせとして、確信度と文字数(その他)の組を用いるようにしてもよい。また、入力データの最大の組み合わせとして、文字密度(かな漢字、アルファベット)以外のデータの組(具体的には、確信度、文字数(かな漢字)、文字密度(数字、その他)、文字ベクトル(その他)、白抜き文字、文字数(数字)、下線、文字ベクトル(数字)、斜体、文字ベクトル(アルファベット)、文字数(アルファベット)、文字ベクトル(かな漢字)、文字数(その他)の組み合わせ)を用いるようにしてもよい。
【0117】
同様に、これらの入力データ(単純二値化処理と文字認識処理による処理結果)と前処理の処理時間の関係(回帰係数)を調査することができる。その結果、これらの入力データが、予め定められた時間内に高品質二値化処理が終了しないことを示している場合は、高品質二値化処理を行わないように制御する。つまり、単純二値化処理と文字認識処理による処理結果(抽出文字列)を最終的な認識結果とすればよい。また、これらの入力データが、予め定められた時間内に高品質二値化処理が終了することを示している場合は、高品質二値化処理を行うように制御する。つまり、単純二値化処理と文字認識処理による処理結果(抽出文字列)は採用せずに、高品質二値化処理と文字認識処理による処理結果(抽出文字列)を最終的な認識結果とすればよい。
また、高品質二値化処理による処理時間が制限処理時間内に収まること、及び、「高品質二値化処理後の文字認識処理の精度の向上が単純二値化処理よりも予め定められた値より上がること、又は、その値以上となること」を示している場合は、高品質二値化処理を行うように制御するようにしてもよい。
【0118】
図16は、本実施の形態による実験結果の例を示す説明図である。判定器(高品質二値化処理)の回帰係数を示すものである。
入力データ「確信度」の場合の回帰係数は「0.889」であり、入力データ「文字密度(数字、その他)」の場合の回帰係数は「0.606」であり、入力データ「斜体」の場合の回帰係数は「0.306」であり、入力データ「文字数(数字)」の場合の回帰係数は「0.102」であり、入力データ「文字密度(かな漢字、アルファベット」の場合の回帰係数は「-0.061」であり、入力データ「白抜き文字」の場合の回帰係数は「-0.084」であり、入力データ「文字ベクトル(アルファベット)」の場合の回帰係数は「-0.163」であり、入力データ「文字数(アルファベット)」の場合の回帰係数は「-0.276」であり、入力データ「下線」の場合の回帰係数は「-0.319」であり、入力データ「文字数(かな漢字)」の場合の回帰係数は「-0.321」であり、入力データ「文字ベクトル(その他)」の場合の回帰係数は「-0.344」であり、入力データ「文字数(その他)」の場合の回帰係数は「-0.375」であり、入力データ「文字ベクトル(数字)」の場合の回帰係数は「-0.419」であり、入力データ「文字ベクトル(かな漢字)」の場合の回帰係数は「-0.581」であることを示している。
【0119】
この実験結果により、確信度の係数は正で最も大きく、高品質二値化処理では確信度が高いほど正解(ラベル1)となりやすい傾向が読み取れる。
文字ベクトル(かな漢字)は負で最大であるため、文字ベクトル(かな漢字)の入力が大きくなるほど、不正解(ラベル0)となりやすい。
文字密度(かな漢字、アルファベット)と白抜き文字は係数が小さいため、出力への寄与も小さくなる。つまり、高品質二値化処理の判定においては、さほど重要ではないといえる。
【0120】
したがって、入力データの最小の組み合わせとして、確信度と文字ベクトル(かな漢字)の組を用いるようにしてもよい。また、入力データの最大の組み合わせとして、文字密度(かな漢字、アルファベット)と白抜き文字以外のデータの組(具体的には、確信度、文字密度(数字、その他)、斜体、文字数(数字)、文字ベクトル(アルファベット)、文字数(アルファベット)、下線、文字数(かな漢字)、文字ベクトル(その他)、文字数(その他)、文字ベクトル(数字)、文字ベクトル(かな漢字)の組み合わせ)を用いるようにしてもよい。いずれの場合であっても、この
図16の例で示した入力データの組み合わせは、
図15の例で示した入力データの組み合わせとは異なるものである。
【0121】
同様に、これらの入力データ(高品質二値化処理と文字認識処理による処理結果)と前処理の処理時間の関係(回帰係数)を調査することができる。その結果、これらの入力データが、予め定められた時間内に遺伝的アルゴリズム二値化処理が終了しないことを示している場合は、遺伝的アルゴリズム二値化処理を行わないように制御する。つまり、高品質二値化処理と文字認識処理による処理結果(抽出文字列)を最終的な認識結果とすればよい。また、これらの入力データが、予め定められた時間内に遺伝的アルゴリズム二値化処理が終了することを示している場合は、遺伝的アルゴリズム二値化処理を行うように制御する。つまり、高品質二値化処理と文字認識処理による処理結果(抽出文字列)は採用せずに、遺伝的アルゴリズム二値化処理と文字認識処理による処理結果(抽出文字列)を最終的な認識結果とすればよい。
また、遺伝的アルゴリズム二値化処理による処理時間が制限処理時間内に収まること、及び、「遺伝的アルゴリズム二値化処理後の文字認識処理の精度の向上が高品質二値化処理後の文字認識処理よりも予め定められた値より上がること、又は、その値以上となること」を示している場合は、遺伝的アルゴリズム二値化処理を行うように制御するようにしてもよい。
【0122】
図17は、本実施の形態による実験結果の例を示す説明図である。判定器(遺伝的アルゴリズム二値化処理)の回帰係数を示すものである。
入力データ「確信度」の場合の回帰係数は「1.097」であり、入力データ「白抜き文字」の場合の回帰係数は「1.007」であり、入力データ「文字数(かな漢字)」の場合の回帰係数は「0.740」であり、入力データ「文字ベクトル(その他)」の場合の回帰係数は「0.433」であり、入力データ「文字数(アルファベット)」の場合の回帰係数は「0.319」であり、入力データ「文字密度(かな漢字、アルファベット)」の場合の回帰係数は「0.119」であり、入力データ「文字ベクトル(数字)」の場合の回帰係数は「0.040」であり、入力データ「文字密度(数字、その他)」の場合の回帰係数は「-0.066」であり、入力データ「文字ベクトル(かな漢字)」の場合の回帰係数は「-0.170」であり、入力データ「下線」の場合の回帰係数は「-0.300」であり、入力データ「文字ベクトル(アルファベット)」の場合の回帰係数は「-0.335」であり、入力データ「文字数(数字)」の場合の回帰係数は「-0.349」であり、入力データ「斜体」の場合の回帰係数は「-0.739」であり、入力データ「文字数(その他)」の場合の回帰係数は「-1.156」であることを示している。
【0123】
この実験結果により、確信度の係数は正で最も大きく、遺伝的アルゴリズム二値化処理では確信度が高いほど正解(ラベル1)となりやすい傾向が読み取れる。
文字数(その他)は負で最大であるため、文字数(その他)の入力が大きくなるほど、不正解(ラベル0)となりやすい。
文字ベクトル(数字)と文字密度(数字、その他)は係数が小さいため、出力への寄与も小さくなる。つまり、遺伝的アルゴリズム二値化処理の判定においては、さほど重要ではないといえる。
【0124】
したがって、入力データの最小の組み合わせとして、確信度と文字数(その他)の組を用いるようにしてもよい。また、入力データの最大の組み合わせとして、文字ベクトル(数字)と文字密度(数字、その他)以外のデータの組(具体的には、確信度、白抜き文字、文字数(かな漢字)、文字ベクトル(その他)、文字数(アルファベット)、文字密度(かな漢字、アルファベット)、文字ベクトル(かな漢字)、下線、文字ベクトル(アルファベット)、文字数(数字)、斜体、文字数(その他)の組み合わせ)を用いるようにしてもよい。いずれの場合であっても、この
図17の例で示した入力データの組み合わせは、
図16(又は
図15)の例で示した入力データの組み合わせとは異なるものである。
【0125】
同様に、これらの入力データ(遺伝的アルゴリズム二値化処理と文字認識処理による処理結果)と前処理の処理時間の関係(回帰係数)を調査することができる。その結果、これらの入力データが、予め定められた時間内に第4の二値化処理が終了しないことを示している場合は、第4の二値化処理を行わないように制御する。つまり、遺伝的アルゴリズム二値化処理と文字認識処理による処理結果(抽出文字列)を最終的な認識結果とすればよい。また、これらの入力データが、予め定められた時間内に第4の二値化処理が終了することを示している場合は、第4の二値化処理を行うように制御する。つまり、遺伝的アルゴリズム二値化処理と文字認識処理による処理結果(抽出文字列)は採用せずに、第4の二値化処理と文字認識処理による処理結果(抽出文字列)を最終的な認識結果とすればよい。
また、第4の前処理による処理時間が制限処理時間内に収まること、及び、「第4の前処理後の文字認識処理の精度の向上が遺伝的アルゴリズム二値化処理よりも予め定められた値より上がること、又は、その値以上となること」を示している場合は、第4の前処理を行うように制御するようにしてもよい。
なお、第4の前処理としたが、「本実施の形態では処理困難であること」をユーザーに提示する、又は、「ユーザーによって文字画像をテキスト化すること」をユーザーに提案するようにしてもよい。
【0126】
図18は、本実施の形態による前処理例(遺伝的アルゴリズム前処理)を示すフローチャートである。この遺伝的アルゴリズム前処理は既に公知となっている。
遺伝子データとして、画像処理種類を示す情報と画像処理パラメータの組み合わせを用いる。そして、この遺伝的アルゴリズム前処理は画像処理種類とパラメータを同時に交叉と突然変異をさせるため、最適解に向かうかは運によるところが大きい。理想的には、よい画像処理組み合わせが現れたらその画像処理組み合わせでのパラメータを最適化させる。
【0127】
ステップS1802では、初期化を行う。
ステップS1804では、画像処理種類についての交叉を発生させる。
【0128】
ステップS1806では、画像処理種類についての突然変異を発生させる。
ステップS1808では、パラメータの最適化を行う。ステップS1808の詳細な処理については、
図19の例に示すフローチャートを用いて後述する。
【0129】
ステップS1810では、全ての画像処理の組み合わせが終了したか否かを判断し、終了した場合はステップS1812へ進み、それ以外の場合はステップS1808へ戻る。
ステップS1812では、評価を行う。
【0130】
ステップS1814では、その世代での評価が終了したか否かを判断し、終了した場合は処理を終了し(ステップS1899)、それ以外の場合はステップS1816へ進む。
ステップS1816では、次世代の画像処理種類を選択し、ステップS1804へ戻る。
【0131】
図19は、本実施の形態による前処理例(遺伝的アルゴリズム前処理)を示すフローチャートである。
図18の例で示したフローチャート内のステップS1808の詳細な処理例を示すものである。
ステップS1902では、初期化を行う。
ステップS1904では、画像処理パラメータについての交叉を発生させる。
【0132】
ステップS1906では、画像処理パラメータについての突然変異を発生させる。
ステップS1908では、評価を行う。
【0133】
ステップS1910では、終了したか否かを判断し、終了した場合は処理を終了し(ステップS1999)、それ以外の場合はステップS1912へ進む。
ステップS1912では、次世代の画像処理パラメータを選択し、ステップS1904へ戻る。
【0134】
上記各実施形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えば CPU: Central Processing Unit、等)や、専用のプロセッサ(例えば GPU: Graphics Processing Unit、ASIC: Application Specific Integrated Circuit、FPGA: Field Programmable Gate Array、プログラマブル論理デバイス、等)を含むものである。
また上記各実施形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は上記各実施形態において記載した順序のみに限定されるものではなく、適宜変更してもよい。
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD-R、DVD-RW、DVD-RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD-ROM)、CDレコーダブル(CD-R)、CDリライタブル(CD-RW)等、ブルーレイ・ディスク(Blu-ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digitalの略)メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【0135】
100…情報処理装置
105…プロセッサ
110…メモリ
120…データメモリ
122…画像記憶モジュール
124…文字認識処理結果記憶モジュール
140…プログラムメモリ
142…前処理モジュール
144…前処理(A)モジュール
146…前処理(B)モジュール
148…前処理(C)モジュール
150…文字認識処理モジュール
152…制御モジュール
154…機械学習モジュール
185…出力装置
187…表示装置
189…印刷装置
190…受付装置
192…指示受付装置
194…文書読取装置
195…通信装置
198…バス
200…複合機
250…文字認識処理サーバー
280…端末
290…通信回線
400…画像処理装置
402…画像
410…前処理と文字認識処理
412…文字認識処理結果
420…判定モジュール
430…データ加工モジュール
432…加工データ
438…モデルパラメタ
440…機械学習モデル
450…前処理採否判定モジュール
460…キー・バリュー抽出モジュール