IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7516024情報処理装置、その制御方法及びプログラム
<>
  • 特許-情報処理装置、その制御方法及びプログラム 図1
  • 特許-情報処理装置、その制御方法及びプログラム 図2
  • 特許-情報処理装置、その制御方法及びプログラム 図3
  • 特許-情報処理装置、その制御方法及びプログラム 図4
  • 特許-情報処理装置、その制御方法及びプログラム 図5
  • 特許-情報処理装置、その制御方法及びプログラム 図6
  • 特許-情報処理装置、その制御方法及びプログラム 図7
  • 特許-情報処理装置、その制御方法及びプログラム 図8
  • 特許-情報処理装置、その制御方法及びプログラム 図9
  • 特許-情報処理装置、その制御方法及びプログラム 図10
  • 特許-情報処理装置、その制御方法及びプログラム 図11
  • 特許-情報処理装置、その制御方法及びプログラム 図12
  • 特許-情報処理装置、その制御方法及びプログラム 図13
  • 特許-情報処理装置、その制御方法及びプログラム 図14
  • 特許-情報処理装置、その制御方法及びプログラム 図15
  • 特許-情報処理装置、その制御方法及びプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-05
(45)【発行日】2024-07-16
(54)【発明の名称】情報処理装置、その制御方法及びプログラム
(51)【国際特許分類】
   G06V 30/412 20220101AFI20240708BHJP
   G06V 30/14 20220101ALI20240708BHJP
【FI】
G06V30/412
G06V30/14 340K
【請求項の数】 4
(21)【出願番号】P 2019162509
(22)【出願日】2019-09-06
(65)【公開番号】P2021043478
(43)【公開日】2021-03-18
【審査請求日】2022-09-06
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002767
【氏名又は名称】弁理士法人ひのき国際特許事務所
(72)【発明者】
【氏名】榎本 誠
【審査官】宮島 潤
(56)【参考文献】
【文献】特開2015-135576(JP,A)
【文献】特開2005-56432(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/14 - 30/168
G06V 30/224
G06V 30/40 - 30/416
(57)【特許請求の範囲】
【請求項1】
文書画像から文字認識処理を行うことにより文字列を取得する取得手段と、
前記取得手段により取得された文字列を、項目名か項目値か判定するための文字列パターンもしくは辞書とマッチングすることにより、前記取得手段により取得された文字列が項目名か項目値かを判別する判別手段と、
前記項目名であると判別された文字列のうち、前記文書画像上で水平方向又は垂直方向に連続する複数の文字列ごとにグループ化することにより、複数の項目名グループを作成するグループ化手段と、
前記グループ化手段で作成された前記複数の項目名グループの上端の位置と、前記判別手段で前記項目値であると判別された文字列の位置とに基づいて、前記複数の項目名グループのうちの連続する1以上の項目名グループと、当該連続する1以上の項目名グループの下部に存在する項目名グループとの間に、前記項目値であると判別された文字列が存在する場合に、当該連続する1以上の項目名グループの上端の位置から、当該連続する1以上の項目名グループの下部に存在する項目名グループの上端の位置までを1つの検索領域として、複数の検索領域を設定する第1設定手段と、
前記第1設定手段で設定された前記複数の検索領域の各々において、各検索領域に含まれる前記項目名であると判別された文字列と前記項目値であると判別された文字列との位置関係が、前記項目名および前記項目値に対応付けられた所定のルールで定義される位置関係と同じ位置関係であることに基づいて、前記項目名に対応する前記項目値を抽出する第1抽出手段と、
を有し、
前記第1設定手段で設定される前記複数の検索領域の各々は、前記グループ化手段で作成された前記複数の項目名グループのうちの連続する以上の項目名グループと、前記項目値であると判別された複数の文字列のうちの、当該連続する以上の項目名グループと前記連続する1以上の項目名グループの下部に存在する項目名グループとの間に位置する1以上の文字列と、を含む領域である、
ことを特徴とする情報処理装置。
【請求項2】
前記文書画像から罫線を抽出する第2抽出手段と、
前記抽出された罫線の組み合わせから表の枠を抽出し、該抽出した表の枠に対応する領域を設定する第2設定手段と、を有し、
前記第1設定手段は、前記第2設定手段で設定した前記表の枠に対応する領域のそれぞれにおいて、前記グループ化手段で作成された前記複数の項目名グループの位置と、前記判別手段で前記項目値であると判別された文字列の位置とに基づいて、前記複数の検索領域を設定する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
文書画像から文字認識処理を行うことにより文字列を取得する取得工程と、
前記取得工程により取得された文字列を、項目名か項目値か判定するための文字列パターンもしくは辞書とマッチングすることにより、前記取得工程により取得された文字列が項目名か項目値かを判別する判別工程と、
前記項目名であると判別された文字列のうち、前記文書画像上で水平方向又は垂直方向に連続する複数の文字列ごとにグループ化することにより、複数の項目名グループを作成するグループ化工程と、
前記グループ化工程において作成された前記複数の項目名グループの上端の位置と、前記判別工程において前記項目値であると判別された文字列の位置とに基づいて、前記複数の項目名グループのうちの連続する1以上の項目名グループと、当該連続する1以上の項目名グループの下部に存在する項目名グループとの間に、前記項目値であると判別された文字列が存在する場合に、当該連続する1以上の項目名グループの上端の位置から、当該連続する1以上の項目名グループの下部に存在する項目名グループの上端の位置までを1つの検索領域として、複数の検索領域を設定する第1設定工程と、
前記第1設定工程において設定された前記複数の検索領域の各々において、各検索領域に含まれる前記項目名であると判別された文字列と前記項目値であると判別された文字列との位置関係が、前記項目名および前記項目値に対応付けられた所定のルールで定義される位置関係と同じ位置関係であることに基づいて、前記項目名に対応する前記項目値を抽出する第1抽出工程と、
を有し、
前記第1設定工程において設定される前記複数の検索領域の各々は、前記グループ化工程において作成された前記複数の項目名グループのうちの連続する以上の項目名グループと、前記項目値であると判別された複数の文字列のうちの、当該連続する以上の項目名グループと前記連続する1以上の項目名グループの下部に存在する項目名グループとの間に位置する1以上の文字列と、を含む領域である、
ことを特徴とする情報処理装置の制御方法。
【請求項4】
コンピュータを、請求項1または2のいずれか1項に記載の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書画像から必要な情報を抽出する情報処理装置、その制御方法及びプログラムに関する。
【背景技術】
【0002】
従来、スキャナなどにより読み込んだ文書画像に対し、あらかじめ特定の帳票の内容を定義しておくことで、文書画像のレイアウト特徴から帳票の種別を特定し、画像内の所定位置の文字を認識して必要な情報を抽出する帳票認識の技術がある。しかし、請求書などのフォーマットは発行者が任意に設定できるため定型化されておらず、事前に定義することは難しい。
【0003】
このような課題を解決する従来技術として、項目名、項目値に相当する文字列を検索し、それらの関係性によって情報を抽出する方法がある。この方法では、例えば、“日付”という項目名の文字列の隣にある数字から構成される文字列を項目値として抽出する。しかし、この方法では、請求書の明細など複雑なレイアウトになると、関係性の定義が困難になる。
【0004】
また、複雑なレイアウトから情報を抽出する技術として特許文献1が提案されている。特許文献1では、文書画像中の表領域の表構造を解析し、表のヘッダに相当する文字列などから、表セルの内容に属性を付けていく方法を用いている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2010-003155号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1の技術では、表構造が必要であり、文書が表構造を成していない場合に対応できない。そのため、表構造を成していない場合も含めて、項目名、項目値による抽出で、複雑なレイアウトを有する文書画像に対応したいといった要望があった。
【0007】
本発明は、上記の課題を解決するためになされたものである。本発明の目的は、表構造の有無にかかわらず、レイアウトが複雑な文書画像であっても、項目名と項目値の位置の関係性から項目値を適切に抽出することを可能にする仕組みを提供することである。
【課題を解決するための手段】
【0008】
本発明は、文書画像から文字認識処理を行うことにより文字列を取得する取得手段と、前記取得手段により取得された文字列を、項目名か項目値か判定するための文字列パターンもしくは辞書とマッチングすることにより、前記取得手段により取得された文字列が項目名か項目値かを判別する判別手段と、前記項目名であると判別された文字列のうち、前記文書画像上で水平方向又は垂直方向に連続する複数の文字列ごとにグループ化することにより、複数の項目名グループを作成するグループ化手段と、前記グループ化手段で作成された前記複数の項目名グループの上端の位置と、前記判別手段で前記項目値であると判別された文字列の位置とに基づいて、前記複数の項目名グループのうちの連続する1以上の項目名グループと、当該連続する1以上の項目名グループの下部に存在する項目名グループとの間に、前記項目値であると判別された文字列が存在する場合に、当該連続する1以上の項目名グループの上端の位置から、当該連続する1以上の項目名グループの下部に存在する項目名グループの上端の位置までを1つの検索領域として、複数の検索領域を設定する第1設定手段と、前記第1設定手段で設定された前記複数の検索領域の各々において、各検索領域に含まれる前記項目名であると判別された文字列と前記項目値であると判別された文字列との位置関係が、前記項目名および前記項目値に対応付けられた所定のルールで定義される位置関係と同じ位置関係であることに基づいて、前記項目名に対応する前記項目値を抽出する第1抽出手段と、を有し、前記第1設定手段で設定される前記複数の検索領域の各々は、前記グループ化手段で作成された前記複数の項目名グループのうちの連続する以上の項目名グループと、前記項目値であると判別された複数の文字列のうちの、当該連続する以上の項目名グループと前記連続する1以上の項目名グループの下部に存在する項目名グループとの間に位置する1以上の文字列と、を含む領域であることを特徴とする。
【発明の効果】
【0009】
本発明によれば、表構造の有無にかかわらず、レイアウトが複雑な文書画像であっても、項目名と項目値の位置の関係性から項目値を適切に抽出することが可能になる。
【図面の簡単な説明】
【0010】
図1】第1実施形態に係る情報処理システムを示す図である。
図2】第1実施形態に係る抽出処理を示すフローチャートである。
図3】スキャン画像の一例を示す図である。
図4】第1実施形態に係る検索領域抽出処理を示すフローチャートである。
図5】第1実施形態に係るコンテンツ種別の判別パターンを示す図である。
図6】第1実施形態に係るコンテンツ種別の判別結果を示す図である。
図7】第1実施形態に係るグループ化処理の結果を示す図である。
図8】第1実施形態に係る検索領域分割処理を示すフローチャートである。
図9】第1実施形態に係る検索領域分割処理の結果を示す図である。
図10】第1実施形態に係る項目抽出処理を示すフローチャートである。
図11】第1実施形態に係る抽出ルールを示す図である。
図12】第1実施形態に係る項目抽出処理の過程を示す図である。
図13】第2実施形態に係る検索領域抽出処理を示すフローチャートである。
図14】第2実施形態に係る検索領域抽出処理の結果を示す図である。
図15】第3実施形態に係る項目抽出処理を示すフローチャートである。
図16】第3実施形態に係る検索領域抽出処理の過程を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態について図面を用いて説明する。
〔第1実施形態〕
図1は、本発明の一実施形態を示す情報処理装置を適用可能な情報処理システムの構成の一例を示す図である。
【0012】
本実施形態の情報処理システムは、複写機100と、情報処理装置110とを有する。
複写機100は、スキャナ101と、プリンタ102と、通信部103とを有する複合機(MFP;Multifunction Peripheral)である。
【0013】
複写機100において、スキャナ101は、文書のスキャンを行ってスキャン画像を生成する。プリンタ102は、シート等に画像を形成する。通信部103は、ネットワークを介して外部装置(例えば情報処理装置110)と通信を行う。
【0014】
情報処理装置110は、CPU111と、ROM112と、RAM113と、HDD114と、表示部115と、入力部116と、通信部117等を有する。情報処理装置110は、例えばパーソナルコンピュータ(PC)等で構成可能である。
【0015】
CPU111は、ROM112に記憶された制御プログラムを読み出して各種処理を実行する。RAM113は、CPU111の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD114は、各種データや各種プログラム等を記憶する。なお、HDD(Hard Disk Drive)の代わりに又は併用してSSD(Solid State Drive)等の他の記憶装置を備えていてもよい。
【0016】
なお、後述する情報処理装置110の機能や処理は、CPU111がROM112又はHDD114等に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。
【0017】
通信部117は、ネットワークを介して外部装置(例えば複写機100)との通信処理を行う。表示部115は、各種情報を表示する。入力部116は、キーボードやマウスを有し、ユーザによる各種操作を受け付ける。なお、表示部115と入力部116は、タッチパネルのように一体に設けられていてもよい。また、表示部115はプロジェクタによる投影を行うものであってもよく、入力部116は投影された画像に対する指先の位置をカメラで認識するものであってもよい。
【0018】
本実施形態においては、複写機100のスキャナ101によりレシート等の文書をスキャンし、入力画像(例えば図3のスキャン画像301のような画像)を生成する。該入力画像は、通信部103により情報処理装置110に送信される。
情報処理装置110では、複写機100から送信された入力画像を通信部117により受信し、これをHDD114等の記憶部に記憶する。
【0019】
図2は、本実施形態に係る情報抽出処理の一例を示すフローチャートである。なお、図2及び後述する図4図8及び図10に示すフローチャートの処理は、情報処理装置110のCPU111がROM112又はHDD114等に格納されているプログラムを読み出して実行することにより実現されるものである。
【0020】
S201において、情報処理装置110のCPU111は、複写機100に指示を行い、スキャナ101により文書のスキャン処理を実行させる。そして、CPU111は、該スキャン処理により読み取られたスキャン画像を、通信部117を介して取得し、HDD114に格納する。なお、複写機100の図示しない操作部からの指示によりスキャナ101が文書をスキャンし、スキャン画像を情報処理装置110にプッシュ送信する構成でもよい。
【0021】
図3は、文書のスキャン画像の一例を示す図である。
スキャン画像301は、例えば請求書をスキャンした画像である。
スキャン画像301には、例えば請求元の会社名や請求日が入っており、明細情報として、商品ごとの単価や小計、それらを計算した小計、合計金額などが含まれている。
本実施形態では、これらの値を抽出する処理について説明する。また、本実施形態では、文書として請求書の画像を用いるが、請求書以外の文書でもよい。
【0022】
以下、図2のフローチャートの説明に戻る。
次にS202において、CPU111は、スキャン画像301に対して文字認識処理(OCR;Optical Character Recognition)を行い、該文字認識処理により得られた各文字の文字候補情報をRAM113に格納する。さらに、CPU111は、上記取得した文字候補情報に基づく文字列情報を取得する。なお、文字認識処理とは、CPU111が文字を含む文書画像から文字領域を特定し、該文字領域の各文字画像の特徴量を算出し、該特徴量と文字認識辞書とを比較し、類似する1つ以上の文字候補を算出する処理のことである。また、文字候補情報に基づく文字列情報を取得する処理とは、CPU111が隣接する文字に対応する文字列候補を連結して文字列を形成し、複数の文字列により1つの画像の文字列情報を構成する処理である。なお、文字列は意味を成す文字単位でまとまっていればよく、その他、形態素解析や正規表現パターンや辞書などを用いて、結合や分離を行ってもよい。また、本実施形態において、文字とは、数字や記号も含むものとする。
【0023】
次にS203において、CPU111は、上記S202により得られた文字列情報から、検索するための領域を複数抽出する(検索領域抽出処理)。以下、検索領域抽出処理について図4を用いて詳細に説明する。
【0024】
図4は、第1実施形態における図2のS203の検索領域抽出処理の詳細の一例を示すフローチャートである。
S401において、CPU111は、図2のS202により得られた文字列情報から、文字列が項目の種別・属性を示す項目名であるか、項目の値を示す項目値であるかのコンテンツ種別判定を行う。コンテンツ種別判定は、例えば、正規表現パターンを用いて行う。以下、図5を用いて説明する。
【0025】
図5は、コンテンツ種別判定用の正規表現パターン群の一例を示す図である。
表501は、項目名パターンカラム502、項目値パターンカラム503を有する。
項目名パターンカラム502には、項目名の判定として使う正規表現式が格納される。
項目値パターンカラム503には、項目値の判定として使う正規表現式が格納される。
【0026】
項目名パターンカラム502には、例えば、正規表現式“請求.*”があり、文字列“請求書”、や“請求先”はこのパターンにマッチし、項目名として判定される。
項目値パターンカラム503には、例えば、正規表現式“\d{2,4}[/\-\.年]\d{1,2}[/\-\.月]\d{1,2}日?”がある。この正規表現式は、2桁から4桁の数字、1桁または2桁の数字、1桁または2桁の数字が、“/”や“-”、“.”といった記号または“年”、“月”、“日”によって区切られた文字列パターンを示している。例えば、文字列“2019/5/1”がこのパターンにマッチし、項目値として判定される。また、本手法は一例であり、例えば辞書を用いて、辞書とのマッチングにより判定してもよい。その他、OCRの誤認識を補正するために、OCRの複数の認識候補の利用や、誤認識傾向を示すコンフュージョンマトリクスを用いてもよい。または、既知のDP(Dynamic Programming)マッチングの手法を用いて曖昧マッチングで検索してもよい。本実施形態では、コンテンツ種別の判定は、請求書に必要なもののみを説明しているが、ここは特殊な帳票の語彙に依存しない汎用的な語彙に基づいたものとする。
【0027】
図6は、図4のS401のコンテンツ種別判定結果の一例を示す図である。
図6(a)は、スキャン画像301の文字列情報に対して正規表現式群501を適用し、コンテンツ種別を判別した結果に対応する。
文字列601は“請求書”であり、前述した通り、コンテンツ種別が項目名と判別されている。同様に、文字列602~611も項目名として判別されている。また、文字列612~624は、項目値として判別されている。
【0028】
図6(b)は、説明のために、図6(a)から文字列を不可視化し、コンテンツ種別が項目名である文字列601~611を斜線矩形で記したものに対応する。
【0029】
以下、図4のフローチャートの説明に戻る。
次にS402において、CPU111は、上記S401により得られたコンテンツ種別情報を基に、項目名グループを作成する処理(グループ化)を行う。
本実施形態ではグループ化とは、画像座標で連続、すなわち間に項目値を挟まずに隣接する項目名文字列を水平方向、あるいは垂直方向に連結し項目名行、あるいは項目名列を作成する処理である。以下、図7を用いて説明する。
【0030】
図7は、図4のS402のグループ化処理の結果の一例を示す図である。
701は、項目名文字列601と603が垂直方向に連結した項目名列である。
702は、項目名文字列602と603が水平方向に連結した項目名行である。
703は、文字列602と604が垂直方向に連結した項目名列である。
704は、項目名文字列605~608が水平方向に連結した項目名行である。
705は、項目名文字列609~611が垂直方向に連結した項目名列である。
このように、グループ化処理では、項目名と判別された文字列が文書画像上で水平方向又は垂直方向に1以上連続する場合には該1以上連続する文字列を1つのグループとし、項目名行、項目名列のような項目名グループを作成する。
なお、本実施形態では、画像上の水平方向をX軸とし、垂直方向をY軸とし、画像左上を原点とする。
【0031】
以下、図4のフローチャートの説明に戻る。
次にS403において、CPU111は、検索領域の分割処理を行う。本実施形態の検索領域分割処理(S403)では、最初の状態は画像全体から、S402のグループ化処理結果を用いて、複数の検索領域に分割していく。本実施形態では、Y座標の上部から項目名グループを順に処理し、1以上の項目名グループと1以上の項目値文字列を1つの検索領域単位として分割していく。具体的な処理例は、図8のフローチャートを用いて説明する。
【0032】
図8は、図4のS403の検索領域分割処理の詳細の一例を示すフローチャートである。
S801において、CPU111は、項目名グループを外接矩形上端のY座標を用いて上から順となるようにソートする。以降、項目名グループの外接矩形上端のことを単に項目名グループの上端と定義する。
【0033】
S802において、CPU111は、処理の対象とする第一の項目名グループを示す変数iを0に設定する。
S803において、CPU111は、処理の対象とする第一の項目名グループの下部に存在する第二の項目名グループを示す変数jをi+1に設定する(j=i+1)。
【0034】
S804において、CPU111は、項目名グループのi番目の上端Y座標からj番目の上端Y座標の間のY座標値を持つ項目値文字列が存在するか否かを判別する。存在しない場合(S804でNoの場合)、CPU111は、S805へ処理を進める。
【0035】
S805において、CPU111は、変数jに1加算する。
次にS806において、CPU111は、項目名グループのj番目が項目名グループに存在するか否かを判別する。存在する場合、すなわち最大値を超えていない場合(S806でNoの場合)、CPU111は、S804に処理を戻す。
一方、項目名グループのj番目が項目名グループに存在しない場合、すなわち最大値を超えている場合(S806でYesの場合)、CPU111は、S807に処理を進める。S807の処理については後述する。
【0036】
また上記S804において、項目名グループのi番目の上端Y座標からj番目の上端Y座標の間のY座標値を持つ項目値文字列が存在する場合(S804でYesの場合)、CPU111は、S808へ処理を進める。
【0037】
S808において、CPU111は、一つの検索領域として、項目名グループのi番目の上端Y座標からj番目の上端Y座標を1つの検索領域として設定する。
次にS809において、CPU111は、変数iにjの値を代入する(i=j)。
次にS810において、CPU111は、項目名グループのi番目が項目名グループの最後の一つ前以降か否かを判別する。項目名グループのi番目が項目名グループの最後の一つ前以降でない場合(S810でNoの場合)、CPU111は、S803に処理を戻す。
【0038】
一方、項目名グループのi番目が項目名グループの最後の一つ前以降である場合(S810でYesの場合)、CPU111は、S807に処理を進める。
S807において、CPU111は、項目名グループのi番目からページ下端までを検索領域として設定し、本フローチャートの処理を終了する。
ここで、S403の検索領域分割結果について図9を用いて説明する。
【0039】
図9は、図4のS403の検索領域分割結果の一例を示す図である。
検索領域901は、スキャン画像301に対して、項目名グループ701上端から704上端の間で分割した検索領域である。
検索領域902は、項目名グループ704上端と705上端の間で分割した検索領域である。
検索領域903は、項目名グループ705上端から、ページ下端で分割した検索領域である。
【0040】
このように、文書画像上で1以上のグループが連続する領域と、該領域と隣接する1以上の項目値と判別された文字列が連続する領域とを合わせて1つの検索領域とし、文書画像上に1又は複数の検索領域を設定する。これにより、文書画像中から日付、電話番号、金額などのルール定義した項目値を抽出する検索範囲を限定することができる。
本実施形態で説明した検索領域分割方法は一例であり、Y座標をX座標として読み替え、スキャン画像左端からX座標に分割する処理を加えてもよい。
【0041】
以下、図4のフローチャートの説明に戻る。
図4のS403の検索領域分割処理を終了すると、CPU111は、図4の検索領域抽出処理(図2のS203)を終了し、図2のS204に処理を進める。
【0042】
以下、図2のフローチャートの説明に戻る。
S204において、CPU111は、帳票種別に応じたルールを用いて検索領域ごとに項目抽出処理を行う。項目抽出処理は、定義されたルールに従って特定の値を抽出する処理である。以下、項目抽出処理について、図10を用いて詳細に説明する。
【0043】
図10は、図2のS204の項目抽出処理の詳細の一例を示すフローチャートである。
S1001において、CPU111は、帳票の種別ごとの抽出ルールを読み込む。以下、図11を用いて説明する。
【0044】
図11は、本実施形態における領収書の抽出ルールの一例を示す図である。なお、抽出ルールは、例えばHDD114に予め格納されているものとする。
表1101は、抽出ルールの定義内容を説明のために簡略化したテーブルである。
ラベル列1102には、検索内容の名称を定義している。
検索種別列1103には、検索方法を定義している。
定義列1104には、検索方法ごとの定義値を定義している。
【0045】
金額ラベル1105では、正規表現により、数字とカンマ、ドットの数字列と、その前方に“\”記号、後方に“円”があればそれらを検索するように定義している。
小計項目名ラベル1106では、辞書検索により、“小計”や“計”に一致する文字列を検索するように定義している。
合計項目名ラベル1107では、辞書検索により、“合計”や“税込金額”、“請求金額”に一致する文字列を検索するように定義している。
アイテム小計項目値1108では、位置関係による検索により、“小計項目名”ラベルの下に存在する“金額”ラベルを検索するように定義している。
小計項目値1109では、位置関係による検索により、“小計項目名”ラベルの右に存在する“金額”ラベルを検索するように定義している。
合計項目値1110では、位置関係による検索により、“合計項目名”ラベルの右に存在する“金額”ラベルを検索するように定義している。
【0046】
以下、図10のフローチャートの説明に戻る。
S1002において、CPU111は、上記S1001で取得した抽出ルールに従って、図2のS202で認識した文字列に対して、辞書や正規表現による項目検索を行う。
S1003において、CPU111は、上記S1002で取得した項目について、図4のS403で分割した検索領域ごとに位置関係による検索を行う。
【0047】
図12は、スキャン画像301について、S1002で取得した項目を示した図である。
図10のS1002において、文字列1201、1202が“小計項目名”として検索される。また、文字列1206が“合計項目名”として検索される。また、文字列1211~1213、1214~1216、1217~1219、1203~1205が”金額”として検索される。
【0048】
また、図10のS1003における、検索領域902の範囲における位置関係検索では、金額文字列1217~1219は、小計項目名文字列1201の下座標(位置関係(下))に存在するため、“アイテム小計項目値”として検索される。また、検索領域903の範囲における位置関係検索では、金額文字列1203は、小計項目名文字列1202の右座標(位置関係(右))に存在するため、“小計項目値”として検索される。さらに、金額文字列1205は、合計項目名文字列1206の右座標(位置関係(右))に存在するため、“合計項目値”として検索される。
【0049】
本実施形態で説明したような検索領域分割を行わなかった場合、すなわち画像全体に対して位置関係検索を行った場合は、金額文字列1203は、小計項目名文字列1201の下方に位置するため、“アイテム小計項目値”としても検索されてしまう。同様に、金額文字列1204、1205においても、アイテム小計項目値として誤って検索されてしまうことになる。誤って検索されないようにするには、例えば、“アイテム小計項目値”と“小計項目値”で、項目名と項目値の距離の短い方を選択するなどの制限を加える必要がある。
【0050】
しかし、このような制限を加えても、例えば、小計項目名文字列1202の位置が左方に位置する場合などは、金額文字列1203から小計項目名文字列1202までの距離が、金額文字列1203からの距離よりも長くなってしまう場合がある。この場合、金額文字列1203はアイテム小計項目値として誤って検索されてしまい、うまくいかない。その他、単価項目名の下に位置するアイテム単価項目値が左ある場合は、アイテム小計項目値にするといった方法もあるが、ケースによって様々であり、ルールとして記載すると非常に複雑になる。
【0051】
なお、本実施形態で説明した抽出ルールテーブル1101は、本実施形態の説明のための一例であり、定義内容はこれに限定するものではない。例えば、“小計”であれば小計に相当する語彙をユースケースに応じて拡張し、さらに精度向上のために様々な制約などの条件を記述してもよい。このように図2のS204の項目抽出処理(図10)では、帳票の種別によって、あるいはユースケースに応じてカスタマイズ可能にすることが望ましい。
【0052】
また、本実施形態で説明した、図2のS203の検索領域抽出(図4)は、項目抽出のためのルールの修正や追加、拡張をユースケースに依存しない、汎用的な語彙やパターンによる簡単な処理によって、単純化することができる。
【0053】
以上説明した通り、文書画像を適切な領域に分割することで、項目値抽出のルールを簡単に定義することが可能になる。また、検索領域を項目抽出処理の前で分割することで、単純なルール定義で精度よく項目を抽出することが可能となる。よって、表構造の有無にかかわらず、レイアウトが複雑な文書画像であっても、項目名と項目値の位置の関係性から項目値を適切に抽出することができる。
【0054】
〔第2実施形態〕
第2実施形態では、上述した第1実施形態との差分のみの説明とし、特に明記しない部分については第1実施形態と同じ構成/手順となるものとする。
上記第1実施形態では文字認識結果のみを利用して検索領域を抽出したが、第2実施形態では、表の枠を検索領域として抽出してもよい。
【0055】
図13は、第2実施形態における図2のS203の検索領域抽出処理の詳細の一例を示すフローチャートである。なお、S401、S402の処理内容は第1実施形態の図4のフローチャートと同一であるため、説明を省略する。なお、図15に示すフローチャートの処理は、情報処理装置110のCPU111がROM112又はHDD114等に格納されているプログラムを読み出して実行することにより実現されるものである。
【0056】
S1301において、CPU111は、罫線の抽出を行う。罫線の抽出は既知の手法、例えばハフ変換などの手法を用いて行うことが可能である。
次にS1302において、CPU111は、上記S1301により取得した罫線情報から、表の枠(テーブル枠)を抽出し、画像全体と別の検索領域として分割する。表の枠を取得するには、例えば、4本の罫線の組み合わせをそれぞれ評価し、四角形を構成する組を抽出し、それらの四角形で重なりがあるものに関しては、最も面積の大きいものを残し、それを表枠とする。
【0057】
次にS1303において、CPU111は、上記S1302で得た複数の検索領域から1つ処理対象の検索領域として設定する。
次にS1304において、CPU111は、上記S1303で処理対象とした検索領域のさらなる分割処理を行う。検索領域分割処理は、図4のS403と同一であるため説明を省略する。
【0058】
次にS1305において、未処理の検索領域があるかを判定する。未処理の検索領域がある場合(S1305でYesの場合)、CPU111は、S1303に処理を戻す。
一方、未処理の検索領域がない場合(S1305でNoの場合)、CPU111は、本フローチャートの処理を終了する。
【0059】
図14は、第2実施形態における図2のS203の検索領域抽出結果の一例を示す図である。
図14(a)の1400は、図2のS201で取得したスキャン画像である。
図14(b)は、スキャン画像1400に対して、S203の検索領域抽出処理を実施した例である。図13のS1302において、CPU111は、表枠1401、1402、1403を検索領域として抽出する。さらに、S1304において、CPU111は、検索領域1403を検索領域1404、1405へ分割する。
【0060】
上述した第1実施形態では1401と1402は別の検索領域として分割されないが、第2実施形態では、罫線からの表枠を用いることで別の検索領域として抽出することが可能となる。その結果、検索領域1401と1402では会社名、電話番号といった類似した情報を分割できる。
以上説明した通り、第2実施形態によれば、表枠を用いることで、さらに項目抽出処理時の検索領域を限定することができる。
【0061】
〔第3実施形態〕
上記第2実施形態では、表の罫線から表枠を検索領域として分割したが、罫線が一部存在しない表や、罫線の抽出に失敗する場合などに、本来設定すべき検索領域より、検索領域が小さくなってしまう可能性がある。第3実施形態では、このような場合に、項目名グループの情報を用いて、検索領域を拡張するように構成する。
【0062】
図15は、第3実施形態における図2のS203の検索領域抽出処理の詳細の一例を示すフローチャートである。なお、S401、S402及びS1301~S1305の処理内容は第2実施形態の図13のフローチャートと同一であるため、説明を省略する。なお、図15に示すフローチャートの処理は、情報処理装置110のCPU111がROM112又はHDD114等に格納されているプログラムを読み出して実行することにより実現されるものである。
【0063】
S1501では、CPU111は、S1302で取得した表枠に対して、S402で取得した項目名グループが収まらない場合に、該S402で取得した項目名グループを包含するように検索領域を拡張する。
【0064】
図16は、第3実施形態における図2のS203の検索領域抽出結果の一例を示す図である。
図16(a)の1601は、図2のS201で取得したスキャン画像の例である。
1602は、図15のS1302で取得した表枠である。スキャン画像1601は、表が存在しているが、左右の罫線が存在していないため、本来抽出すべき表枠より狭くなっている。
【0065】
1603は、図15のS402で取得した項目名グループの例である。図16(a)に示す例では、表枠1602に対して、項目名グループ1603が収まっていない。このため、CPU111は、図15のS1501において、項目名グループ1603が表枠1602内に収まるように、表枠1602を、図16(b)に示す表枠1604のように拡張する。
図16(b)の1604は、図15のS1501で拡張した検索領域である。
【0066】
以上説明した通り、第3実施形態によれば、表枠に対して、項目名グループを利用することで検索領域を適切な状態に拡張することができる。これにより、項目名と項目値の位置の関係から、複雑な構成の表や、罫線が省略されているような表からでも、項目値を適切に抽出することが可能となる。
【0067】
以上、各実施形態では、項目値抽出の処理の前に、簡単に項目名らしい文字列、項目値らしい文字列を判別し、その並びによって、検索領域を分割し限定する。これにより、表構造の有無にかかわらず、レイアウトが複雑な文書画像であっても、項目名と項目値の位置の関係性から項目値を適切に抽出することが可能になる。
【0068】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
【0069】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0070】
100 複写機
110 情報処理装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16