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

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

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

<>
  • 特許-画像処理装置、方法、プログラム 図1
  • 特許-画像処理装置、方法、プログラム 図2
  • 特許-画像処理装置、方法、プログラム 図3
  • 特許-画像処理装置、方法、プログラム 図4
  • 特許-画像処理装置、方法、プログラム 図5
  • 特許-画像処理装置、方法、プログラム 図6
  • 特許-画像処理装置、方法、プログラム 図7
  • 特許-画像処理装置、方法、プログラム 図8
  • 特許-画像処理装置、方法、プログラム 図9
  • 特許-画像処理装置、方法、プログラム 図10
  • 特許-画像処理装置、方法、プログラム 図11
  • 特許-画像処理装置、方法、プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-04
(45)【発行日】2024-10-15
(54)【発明の名称】画像処理装置、方法、プログラム
(51)【国際特許分類】
   G06V 30/14 20220101AFI20241007BHJP
【FI】
G06V30/14 340K
【請求項の数】 7
(21)【出願番号】P 2020123283
(22)【出願日】2020-07-17
(65)【公開番号】P2022019445
(43)【公開日】2022-01-27
【審査請求日】2023-07-04
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【弁理士】
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【弁理士】
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【弁理士】
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【弁理士】
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】榎本 誠
【審査官】秦野 孝一郎
(56)【参考文献】
【文献】特開2000-148906(JP,A)
【文献】特表2015-534171(JP,A)
【文献】特開2013-074609(JP,A)
【文献】特開2017-228170(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/14
(57)【特許請求の範囲】
【請求項1】
規表現式と、正規表現式ごとに予め定義したスペース文字に関するパラメータとを関連づけた正規表現定義を記憶する記憶手段と、
文書画像に対して文字認識処理を実行する文字認識手段と、
前記スペース文字に関するパラメータに基づいて、前記文字認識手段による文字認識結果の文字列に対してスペース文字を挿入することにより、検索用文字列を生成する生成手段と、
前記生成手段で生成された前記検索用文字列から、前記正規表現式に一致する箇所を検索する検索手段と、
前記検索手段で検索された箇所に基づいて、前記文字認識結果の文字列を分割する分割手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記生成手段は、前記スペース文字に関するパラメータとして規定された間隔より、前記文字認識結果の文字列の隣り合う文字間の距離が大きい箇所に前記スペース文字を挿入することにより、前記検索用文字列を生成する、ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記スペース文字に関するパラメータとして、文字高さを用いて規定されたパラメータが定義されている正規表現定義に対して、前記生成手段は、前記文字認識結果の文字列における文字高さに対する前記文字認識結果の文字列の隣り合う文字間の距離が、前記スペース文字に関するパラメータより大きい箇所に前記スペース文字を挿入することにより、前記検索用文字列を生成する、ことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記スペース文字に関するパラメータとして、スペースを削除することが定義されている正規表現定義に対して、前記生成手段は、前記文字認識結果の文字列に対してスペース文字を挿入せずに前記検索用文字列を生成する、ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記文書画像においてユーザが指定した位置が、前記分割手段で分割された文字列に対応する位置であった場合、当該分割した後の文字列を選択する選択手段を、更に有することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
【請求項6】
規表現式と、正規表現式ごとに予め定義したスペース文字に関するパラメータとを関連づけた正規表現定義に基づいて、文字認識結果の文字列を分割する画像処理方法であって、
文書画像に対して文字認識処理を実行する文字認識ステップと、
前記スペース文字に関するパラメータに基づいて、前記文字認識ステップで得た文字認識結果の文字列に対してスペース文字を挿入することにより、検索用文字列を生成する生成ステップと、
前記生成ステップで生成された前記検索用文字列から、前記正規表現式に一致する箇所を検索する検索ステップと、
前記検索ステップで検索された箇所に基づいて、前記文字認識結果の文字列を分割する分割ステップと、
を有することを特徴とする画像処理方法。
【請求項7】
コンピュータを、請求項1乃至5のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、方法及びプログラムに関する。
【背景技術】
【0002】
紙の文書をスキャンし、電子化して保管する業務がある。従来、電子化する際に、文字認識を実施してファイル名に利用するシステムがあった。例えば、文書画像上から文字認識結果をユーザが選択して、その文字認識結果をファイル名として任意のストレージに保存するシステムがあった。しかしながら、文字認識結果を使用しているため、文字認識結果の揺れ、例えばファイル名として設定したい文字列に余分な空白文字が存在したときに、ファイル名にも空白文字が含まれてしまい、好ましくない。そこで、特許文献1では、文字認識結果をファイル名に利用する際に、先頭の空白文字を除去するなどファイル名として好適な文字列に変換する方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2013-74609号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の方法では、選択された文字認識結果に空白が入っていた場合に、ファイル名として好適な文字列に変換できるが、そもそもファイル名として選択した文字認識結果の文字列の範囲が好ましくないことがある。例えば、日付をファイル名として選択したい場合であっても、その日付の左右に付随する文字も含めて1つの文字列を形成しており、それら全体の文字列を選択しまうことがある。例えば、日付の項目名称として“支払期日”が記載されており、その項目名称と日付とを分離できない場合は、1つの文字列として選択されてしまう。この場合、ユーザは、当該選択された文字列の文字錦結果から、余分な部分を手動で選択して削除する必要がある。
【課題を解決するための手段】
【0005】
本発明の画像処理装置は、規表現式と、正規表現式ごとに予め定義したスペース文字に関するパラメータとを関連づけた正規表現定義を記憶する記憶手段と、文書画像に対して文字認識処理を実行する文字認識手段と、前記スペース文字に関するパラメータに基づいて、前記文字認識手段による文字認識結果の文字列に対してスペース文字を挿入することにより、検索用文字列を生成する生成手段と、前記生成手段で生成された前記検索用文字列から、前記正規表現式に一致する箇所を検索する検索手段と、前記検索手段で検索された箇所に基づいて、前記文字認識結果の文字列を分割する分割手段と、を有することを特徴とする。
【発明の効果】
【0006】
本発明によれば、文字認識結果の文字列を適切な位置で分割して抽出することができる。
【図面の簡単な説明】
【0007】
図1】画像処理システムのシステム構成を示す図である。
図2】画像形成装置101のハードウェア構成を説明する図である。
図3】画像処理サーバ102、ユーザ端末103のハードウェア構成を説明する図である。
図4】帳票画像400とその文字認識結果の例を示す図である。
図5】第1の実施形態の処理フローを示す図である。
図6】第1の実施形態における、正規表現定義のリストを示す図である。
図7】文字認識結果の例を示す表である。
図8】第1の実施形態における、分割処理後の結果の例である。
図9】第2の実施形態における、正規表現定義のリストを示す図である。
図10】第2の実施形態における、文字認識結果の例である
図11】第3の実施形態における、正規表現定義のリストを示す図である。
図12】第3の実施形態における、文字認識結果の例である。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するため必須の手段であるとは限らない。
【0009】
<第1の実施形態>
図1は、第1の実施形態に係る画像処理システム100の構成例を示す図である。この画像処理システム100は、画像形成装置101と、画像処理サーバ102と、ユーザ端末103とを有する。画像形成装置101、画像処理サーバ102と、ユーザ端末103は、ネットワーク104により相互に接続され、通信可能である。
【0010】
画像形成装置101は、ユーザ端末103から画像データの印刷依頼(印刷データ)を受信して印刷することや、画像形成装置101に備わるスキャナで画像データを読み取ることや、スキャナで読み取られた画像データを印刷することなどが可能な複合機である。また、画像処理サーバ102は、画像形成装置101のスキャナで読み取られた画像データに対して後述の画像処理を実行し、その画像処理結果を、ユーザ端末103に送信することが可能な画像処理装置である。なお、画像処理サーバ102は、クラウド、すなわちインターネット上に配置される仮想サーバであってもよい。ユーザ端末103は、画像処理サーバ102から受信した画像処理結果を、ユーザインターフェイスを備えたアプリケーションでユーザと対話的に追加処理をすることが可能である。なお、本実施形態では、ユーザ端末103は、ディスプレイとキーボードやマウスを備えた一般的なPCを想定するが、例えばタッチパネルを備えたモバイル端末であってもよい。
【0011】
本実施形態では、画像形成装置101が請求書などの紙の帳票をスキャンし、画像処理サーバ102がそこから必要となる情報を抽出して電子的に格納し、ユーザ端末103が抽出結果の確認と修正が可能なユーザインターフェイスを提供する、一連のデータ入力支援処理の説明を行う。
【0012】
図2は、画像形成装置101の構成の一例を示す図である。画像形成装置101は、コントローラ201、プリンタ202、スキャナ203、及び操作部204を有する。コントローラ201は、CPU211、RAM212、HDD213、ネットワークI/F214、プリンタI/F215、スキャナI/F216、操作部I/F217、及び拡張I/F218を有する。
【0013】
CPU211は、画像形成装置101の全体を制御する。CPU211は、RAM212、HDD213、ネットワークI/F214、プリンタI/F215、スキャナI/F216、操作部I/F217、及び拡張I/F218とのデータの授受を制御可能である。また、CPU211は、HDD213から読み出した制御プログラム(命令)をRAM212に展開し、RAM212に展開した命令を実行する。HDD213は、CPU211で実行可能な制御プログラム、画像形成装置101で使用する設定値、及びユーザから依頼された処理に関するデータ等を記憶する。RAM212は、CPU211がHDD213から読み出した命令を一時的に格納するための領域を有する。また、RAM212は、命令の実行に必要な各種のデータを記憶しておくことも可能である。例えば画像処理では、CPU211は入力されたデータをRAM212に展開することで処理を行うことが可能である。
【0014】
ネットワークI/F214は、画像処理システム100内の装置とネットワーク通信を行うためのインターフェイスである。ネットワークI/F214は、データ受信を行ったことをCPU211に伝達することや、RAM212上のデータをネットワーク104に送信することが可能である。プリンタI/F215は、CPU211から送信された印刷データをプリンタ202に送信することや、プリンタ202から受信したプリンタの状態をCPU211に伝達することが可能である。スキャナI/F216は、CPU211から送信された画像読み取り指示をスキャナ203に送信し、スキャナ203から受信した画像データをCPU211に伝達することや、スキャナ203から受信した状態をCPU211に伝達することが可能である。操作部I/F217は、操作部204から入力されたユーザからの指示をCPU211に伝達することや、ユーザが操作するための画面情報を操作部204に伝達することが可能である。拡張I/F218は、画像形成装置101に外部機器を接続することを可能とするインターフェイスである。拡張I/F218は、例えば、USB(Universal Serial Bus)形式のインターフェイスを具備する。画像形成装置101は、USBメモリ等の外部記憶装置が拡張I/F218に接続されることにより、当該外部記憶装置に記憶されているデータの読み取り及び当該外部記憶装置に対するデータの書き込みを行うことが可能である。
【0015】
プリンタ202は、プリンタI/F215から受信した画像データを用紙に印刷することや、プリンタ202の状態をプリンタI/F215に伝達することが可能である。
【0016】
スキャナ203は、スキャナI/F216から受信した画像読み取り指示に従って、読み取り部に置かれた用紙に表示されている情報を読み取ってデジタル化してスキャナI/F216に伝達することが可能である。また、スキャナ203は、自身の状態をスキャナI/F216に伝達することが可能である。
【0017】
操作部204は、画像形成装置101に対して各種の指示を行うための操作をユーザに行わせるためのインターフェイスである。例えば、操作部204は、タッチパネルを有する液晶画面を具備し、画像形成装置101のユーザに操作画面を提供するとともに、ユーザからの操作を受け付ける。
【0018】
図3(a)は、画像処理サーバ102の構成の一例を示す図である。画像処理サーバ102は、CPU301、RAM302、HDD303、及びネットワークI/F304を有する。CPU301は、画像処理サーバ102の全体を制御する。CPU301は、RAM302、HDD303、及びネットワークI/F304とのデータの授受を制御可能である。また、CPU301は、HDD303から読み出した制御プログラム(命令)をRAM302に展開し、RAM302に展開した命令を実行する。
【0019】
図3(b)は、ユーザ端末103の構成の一例を示す図である。ユーザ端末103は、CPU311、RAM312、HDD313、ネットワークI/F314、入出力I/F315を有する。CPU311は、ユーザ端末103の全体を制御する。CPU311は、RAM312、HDD313、ネットワークI/F314、及び入出力I/F315とのデータの授受を制御可能である。ディスプレイ320は、液晶などの表示デバイスによって構成され、入出力I/F315から受信した表示情報を表示する。入力装置330は、マウス、あるいはタッチパネルといったポインティングデバイス、およびキーボードによって構成され、ユーザからの操作を受け付けて、入出力I/F315に操作情報を送信する。HDD313には、画像処理サーバ102からネットワークI/F314を介して受信した画像処理結果を格納することが可能である。本実施形態では、CPU311は、HDD313から読み出したアプリケーションプログラムをRAM312に展開し、操作部I/F315にて表示情報の表示とユーザ操作の受け付けを行う。
【0020】
図4(a)は、本実施形態において想定する帳票画像400の一例を示す図である。帳票画像400は、画像形成装置101のスキャナで紙文書(例えば請求書)を読み取ることにより取得した画像である。項目値401乃至403は、画像処理システム100で抽出対象にしたい項目文字列の例である。図4(a)の項目値401は、この文書の内容を示すタイトルの値であり、項目値402は、発行日を示す日付の値であり、項目値403は請求金額の値である。なお、説明のために、項目値401~403の位置を矩形枠で示しているが、実際の帳票画像に矩形枠は記載されていないものとする。
【0021】
図4(b)は、帳票画像400に対して、汎用の領域解析処理と光学文字認識(OCR)処理とを実行した場合に得られる文字認識結果の文字列(OCR文字列)の例である。文字列410乃至417の8個の文字領域が特定され、各文字領域からOCR文字列が抽出されている。領域解析処理およびOCR処理の結果に基づき抽出された各文字領域の位置を矩形枠で示す。文字列410は、項目値401の文字列とその左側にある文字列とを包含する1つの文字領域に対応する文字列として得られている。また、文字列411は、項目値402とその左側の文字列とを包含する1つの文字領域に対応する文字列として抽出されている。また、文字列413も、項目値403とその左側の文字列とを包含する領域に対応する文字列として抽出されている。
【0022】
この文字列をユーザによるファイル名作成のUIに用いるユースケースを説明する。例えば、ユーザが帳票画像上の所望の位置をクリックした場合に、当該クリックした位置に対応する、図4(b)の領域解析結果に基づく文字領域が選択されるようなUI(ユーザインタフェース)について説明する。このようなUIでは、ユーザが“請求書”の文字列上をクリックすると、領域解析結果に基づく文字領域の文字列(すなわち、文字領域410の“ABC(株)様請求書”という文字列)が選択されることになる。したがって、ユーザが“請求書”の文書タイトル部分のみをファイル名として選択したかった場合は、当該選択された文字列の中から、余分な“ABC(株)”の文字列を削除する必要がある。
【0023】
そこで、本実施形態では、ユーザがファイル名として使用したい文字列を選択する際に、、図4(b)のようなOCR文字列から、項目値401~403のような文字列を適切に抽出する画像処理について説明する。
【0024】
本実施形態における項目値の抽出とは、目的とする値が、余分な文字が付随していない独立した文字列となっている状態を示す。例えば、帳票画像400に対して、項目値401の“請求書”という一つの文字列が独立している状態である。
【0025】
図6の正規表現定義リスト600は、複数の正規表現定義をテーブル形式で示した例である。本実施形態における正規表現定義は、各定義IDに対して、正規表現式と、正規表現パラメータとの組み合わせを関連付けることにより定義してる。この予め定義された複数の正規表現定義は、画像処理サーバ102のHDD303に格納されている。正規表現式は、抽出したい項目、例えば日付や、電話番号、金額、文書タイトルに含まれる文字など、抽出対象にしたい文字列を一つの正規表現式で記述したものである。正規表現パラメータとは、正規表現式ごとに定義した、正規表現検索を実施する際に対象となるOCR文字列をどのように解釈するかのパラメータである。例えば、隣接する文字と文字の間の距離がどの程度離れていればスペース文字(空白文字)として扱うか、などをパラメータで記述したものである。
【0026】
図6の正規表現定義リスト600の例では、3個の正規表現定義610、620、630が定義されている。
【0027】
正規表現定義ID610は、“¥S*書”の正規表現パターンと、“スぺース=2h”の正規表現パラメータからなる。“¥S*書”の正規表現パターンは、スペース文字以外(¥S)の複数の文字と“書”という文字とを組み合わせたパターンを表しており、例えば“請求書”、“見積書”などの文字列が該当するパターンとして検索可能である。正規表現パラメータの“スペース=2h”は、OCR文字列を検索文字列に変換する際に、隣接する文字同士の距離が、文字高さ(h)に対して2倍以上空いてれば、スペース文字を挿入して扱うことを示している。なお、本実施形態では、正規表現パラメータとして、スペース文字と扱うための閾値に文字高さを用いて規定しているが、例えば画像のピクセルサイズや、紙面上の物理的な距離、平均文字幅などを基準として用いてもよい。
【0028】
正規表現定義ID620は、日付に関する正規表現定義であり、“¥d{2,4}年¥d{1,2}月¥d{1,2}日”の正規表現式と、“スペース削除”の正規表現パラメータからなる。“¥d{2,4}年¥d{1,2}月¥d{1,2}日”の正規表現式は、2~4桁の数字と、“年”と、1~2桁の数字と、“月”と、1~2桁の数字と、“日”と、を組み合わせたパターンを表しており、このパターンに一致する日付の文字列が検索可能である。正規表現パラメータの“スペース削除”とは、OCR文字列を検索文字列に変換する際に、隣り合った文字の間の距離によらず、スペース文字を挿入しないことを示している。
【0029】
正規表現定義ID630は、“[1-9][¥d,]*円”の正規表現式と、“スぺース=1h”の正規表現パラメータからなる。“[1-9][¥d,]*円”の正規表現式は、1~9のいずれかの数字で始まり、1桁以上のカンマを含む数字と、“円”と、を組み合わせたパターンを表しており、このパターンに一致する金額を表す文字列が検索可能である。正規表現パラメータの“スペース=1h”とは、OCR文字列を検索文字列に変換する際に、隣接する文字同士の距離が、文字高さ(h)を基準として、文字高さ1個分以上空いていればスペース文字を挿入して扱うことを示している。
【0030】
図4の帳票画像400と、図6の正規表現定義リスト600とを例として用いて、本実施形態の画像処理を図5のフローチャートを用いて説明する。
【0031】
まずS501において、画像形成装置101のCPU211は、スキャナ203で読み取った帳票画像400を、画像処理サーバ102へ送信する。画像処理サーバ102は、その画像形成装置101から送信された帳票画像400を取得する。
【0032】
次にS502において、画像処理サーバ102のCPU301は、帳票画像400に治して領域解析処理を行うことにより文字領域を特定し、文字領域に対して文字認識処理を実行する。文字認識処理の結果、CPU301は、文字領域(文字ブロック)の座標と、文字領域中の各文字の座標と、当該文字認識結果の文字コードとを得る。ここで得た文字領域単位の文字コードの配列をOCR文字列と呼ぶ。帳票画像400に文字認識処理を実施した結果、文字列410乃至417がOCR文字列として取得されたものとする。
【0033】
次にS503において、画像処理サーバ102のCPU301は、HDD303に格納された正規表現定義リスト600から、正規表現定義の1つ(例えば正規表現定義610)を処理対象とする。
【0034】
次にS504において、画像処理サーバ102のCPU301は、S503で処理対象とした正規表現定義の正規表現パラメータに基づいて、S502で得た文字列の認識結果を解釈し、検索用文字列として正規化する。
【0035】
図7は文字認識結果の例である。文字認識結果701は、文字列410の文字認識結果である。文字認識結果702は、項目値402を含むOCR文字列411の文字認識結果である。文字認識結果703は、項目値403を含むOCR文字列413の文字認識結果である。文字認識結果701乃至703の表における文字の行は各認識文字を表し、距離の行は、次の文字までの距離として、文字高さを相対基準とした距離を表している。正規表現定義610の正規表現パラメータは、“スペース=2h”であり、これは文字同士の距離が文字高さを相対基準として文字高さ2個分以上であればスペース文字とみなすことを示している。
【0036】
CPU301は、文字列410の文字認識結果701に対して、各文字と隣の文字までの距離を走査しスペース挿入条件に合致する文字を検出する。検出の結果、“様”の文字が、隣の“請”の文字まで2.1文字高さに相当する距離ぶん離れているため、ここにスペース文字を挿入して検索用文字列“ABC(株)様 請求書”を生成する。
【0037】
なお、正規表現パラメータごとに、検索用の文字列は変わるので、例えば“スペース=1h”と定義していた場合は、さらに“請”と“求”、“求”と“書”の間にスペース文字を挿入し、“ABC(株) 様 請 求 書”となるし、“スペース削除”と定義していた場合は“ABC(株)様請求書”となる。
【0038】
次にCPU301は、文字列411の文字認識結果702に対して、各文字と隣の文字までの距離を走査しスペース挿入条件に合致する文字を検出する。検出の結果、“年”と“月”の文字が隣の文字まで2文字高さ以上離れているため、ここにスペース文字を挿入して検索用文字列“発行日:2020年 5月 15日”を形成する。
【0039】
残りの文字列412乃至417に対しても同様の処理を実行し、すべての文字列に対する検索用文字列を形成する。
【0040】
次に、S505において、画像処理サーバ102のCPU301は、S504で得たすべての検索用文字列に対して、S503で処理対象とした正規表現定義の正規表現式にマッチするかどうか判定するための正規表現検索処理を実施する。
【0041】
文字列410の検索用文字列“ABC(株)様 請求書”に対して正規表現定義610の正規表現式の検索を行った場合、“請求書”の部分が一致する。続いて、文字列411の検索用文字列“発行日:2020年 5月 15日”に対して正規表現定義610の正規表現式の検索を行った場合、一致する箇所は得られない。同様に、残りの文字列412乃至417の検索用文字列に対しても正規表現定義610の正規表現式を用いて同様の処理を実施し、その結果、他の文字列には正規表現式は一致しない。
【0042】
S506において、画像処理サーバ102のCPU301は、S505の検索結果で得られた“請求書”の一致情報をRAM302へと格納する。
【0043】
次に、S507において、画像処理サーバ102のCPU301は、未処理の正規表現定義が残っているか判別し、未処理の正規表現定義が残っている場合は、S503へ戻って、未処理の正規表現定義の1つを次の処理対象として、同様にS504乃至S507の処理を実施する。
【0044】
例えば、正規表現定義610を最初の処理対象としていた場合は、正規表現定義620を次の処理対象とする。この場合、S504において、文字認識結果702に対して、正規表現定義620のパラメータに基づいて、検索文字列を生成する。正規表現定義620のパラメータは“スペース削除”であるため、文字間の距離にかかわらず、スペース文字を挿入しないので、文字認識結果702からは、検索用文字列として“発行日:2020年5月15日”が得られる。そして、正規表現定義620の正規表現式に一致する箇所として、“2020年5月15日”の検索結果が得られる。
【0045】
同様に、正規表現定義630を処理対象とした場合は、S504において、文字認識結果703に対して、正規表現定義630のパラメータ“スペース=1h”に基づいて、“合計金額: 11,286円”の検索文字列を形成する。そして、正規表現定義630の正規表現式に一致する箇所として、S505において、“11,286円”が検索される。
【0046】
S507において、正規表現定義のすべてを処理済みと判断した場合は、S508に進む。
【0047】
S508において、画像処理サーバ102のCPU301は、S506の処理でRAMに格納された検索結果をもとに文字列の分割処理を実施する。分割処理とは、OCR文字列中において、正規表現式で一致した範囲の両端で、OCR文字列を分割する処理のことである。例えば、OCR文字列410の“ABC(株)様請求書”において、“請求書”の左右を文字列の区切りとして分割する。ただし、“請求書”の右側は、OCR文字列の右端であるため分割は発生せず、“請求書”の左側の位置(すなわち、“様”と“請”の間)で分割することにより、OCR文字列410を二つのOCR文字列に分割する。同様に、“2020年5月15日”、“11,286円”についても処理を行い、フローチャートの処理を終了する。
【0048】
図8は、帳票画像400に対して、図5のフローチャートを適用した後のOCR文字列の位置を矩形枠で示した図である。OCR文字列410がOCR文字列800と801に分割され、OCR文字列411がOCR文字列802と803に分割され、OCR文字列413がOCR文字列804と805に分割されている。なお、OCR文字列412、414乃至417は元のままとなっている。
【0049】
本画像処理を適用した結果、ユーザが、帳票画像400に対してファイル名付けをする際に、文書タイトルである“請求書”の上の位置でユーザがクリック操作で指定した場合、図4の文字列410の代わりに、図8のOCR文字列801が選択されることになる。すなわち、正規表現定義に合致する文字列を抽出して選択することが可能となる。
【0050】
もし、本実施形態で説明した正規表現定義のパラメータに基づく検索用文字列を利用しなかった場合は、以下のような処理になってしまう。例えば、S502の文字認識処理によって、OCR文字列“ABC(株)様 請 求 書”が得られた場合、正規表現定義610の正規表現式では、“書”の前にスペース文字が存在するために一致せず、即ち“請求書”の文字列を抽出することができない。このように、一般の文字認識処理では、文字間の距離に基づきスペース文字を挿入する処理が文書画像全体に対して一律で適用されてしまうので、認識結果において、本来の文書作成者の意図通りになっているとは限らない。そのため、正規表現式でスペースをどう表現するかが難しい。
【0051】
一方、本実施形態では、正規表現定義ごとに、正規表現のパラメータとして、スペースをどう扱うかを定義しているため、正規表現ごとに適切なスペース文字を扱えるようになる。例えば、“請求書”などの文書タイトルでは、スペース以外の文字列が連続する文字列を項目値抽出の手がかりにした上で、タイトルの文字間は一定以上の文字間があることを勘案して、“スペース=2h”とスペースの条件を定義することができる。また、例えば、日付など書式で明確に抽出することができる場合は“スペース削除”としてスペースを無視ができる。
【0052】
このように、本実施形態では、ファイル名などによく使用する文字列を正規表現式で予め定義するとともに、文書内で各文字列の文字がどのような間隔で記載されているか(スペース文字を入れるべきかどうか)を文字列ごとに定義することができる。これにより、分割したい文字列の位置をより正確に特定することができる。
【0053】
なお、文字認識処理で出力されるスペース文字が信頼できる場合は、認識結果をそのまま用いるパラメータを設定してもよい。例えば、英語文書の英文の文字認識処理などで、単語辞書によって単語を認識し、単語間に轍書きのスペース文字を挿入している場合などが想定される。
【0054】
その他、本実施形態では項目値の抽出をファイル名付けの例で説明したが、帳票保存のメタデータや、文書転記システムへの値の自動入力などに用いてもよい。
【0055】
以上説明した通り、本実施形態を適用することによって、ユーザが項目値をファイル名付けなどに好適なOCR文字列に分割することができる。
【0056】
<第2の実施形態>
第1の実施形態では、項目値ごとに1つの正規表現定義を用いているが、その限りではなく、複数の正規表現定義を用いてもよい。
【0057】
図9の正規表現定義リスト800は電話番号に対する正規表現定義の例である。正規表現定義910は、“¥d{2,4}[¥-¥(]¥d{2,4}[¥-¥)]¥d{4}”の正規表現式のみで正規表現パラメータなし、正規表現定義911は910と同じ正規表現式で、“スペース削除”の正規表現パラメータからなる。正規表現定義910,911の正規表現式は、2~4桁の数字と、“-”あるいは“(”と、2~4桁の数字と、“-”あるいは“)”と、4桁の数字と、で構成される日本の電話番号が検索可能である。
【0058】
正規表現定義920は、“¥d{2,4}¥s¥d{2,4}¥s¥d{4}”の正規表現式のみで正規表現パラメータなし、正規表現定義921は920と同じ正規表現式と、“スペース=1h”の正規表現パラメータからなる。正規表現定義920,921は、2~4桁の数字と、スペース文字と、2~4桁の数字と、スペース文字と、4桁の数字と、で構成される日本の電話番号が検索可能である。
【0059】
図10は、帳票中の電話番号の文字認識結果の例である。OCR文字列1010では、“1”の文字の前後の文字間が大きいため、S502の文字認識の結果、1の前後にスペース文字が挿入され“TEL: 0 1 23-456-7890”という文字列になっている。正規表現定義910では、正規表現パラメータがないため、このOCR文字列をそのまま検索用文字列として扱うことになり、正規表現式“¥d{2,4}[¥-¥(]¥d{2,4}[¥-¥)]¥d{4}”で検索しても一致しない。正規表現定義911では、“スペース削除”のパラメータがあるため、検索用文字列“TEL:0123-456-7890”となり、電話番号の部分を抽出することができる。
【0060】
OCR文字列1020は、電話番号の区切りとしてハイフンが存在せずにスペース文字が存在する例である。OCR文字列1020の“1”の文字の前後の文字間が大きいため、S502の文字認識の結果、1の前後にスペース文字が挿入され“TEL: 0 1 23 456 7890”という文字列になっている。正規表現定義920では、正規表現パラメータがないため、このOCR文字列をそのまま検索用文字列として扱うことになり、正規表現式“¥d{2,4}¥s¥d{2,4}¥s¥d{4}”で検索しても一致しない。正規表現定義921では、“スペース=1h”のパラメータがあるため、検索用文字列“TEL:0123-456-7890”となり、電話番号の部分を抽出することができる。
【0061】
このような、文字認識結果の出力するスペース文字に対して正規表現式のみで一致させようとすると、先頭の2~4桁の数字という正規表現式“¥d{2,4}”に対して“[¥d¥s]{2,7}”という記述にせざるを得なくなる。すなわち、スペースの数が不定のため、最大のスペースを想定して桁数の定義も2~7桁と定義することになってしまうが、このような正規表現では、多くの文字列が合致してしまい、本来抽出したい項目値以外のノイズが増えることになる。
【0062】
以上説明した通り、本実施形態を適用することによって、文字認識結果の出力するスペース文字の影響を軽減し、正規表現式をシンプルに定義することが可能である。
【0063】
<第3の実施形態>
第1の実施形態では、抽出したいパターンを正規表現定義により定義し、その一致した左右端で分割したが、分割以外の動作を正規表現パラメータにより規定してもよい。
【0064】
図11の正規表現定義リスト1100は正規表現パラメータ2として、正規表現式に一致した時の動作を規定している。正規表現定義1111は、正規表現式は“.*no”で、例えばいずれかの文字の連続と“no”の組み合わせを表しており、正規表現パラメータは“スペース削除”、動作定義で分割を定義している。分割は、第一の実施形態で説明した、検索結果の左右端で分割する動作である。正規表現定義1112は、“nov”の文字列を表し、正規表現パラメータは“スペース削除”、動作定義でプロテクトを定義している。プロテクトは、検索結果に一致した範囲を分割しないという動作の定義である。
【0065】
図12の文字列1201“Invoice No 10123”はインボイス番号を表しており、正規表現定義1111のみを正規表現定義リストとして用いた場合に、図5のフローチャートの処理の結果、“Invoice No”に一致する。その結果、“Invoice No”と“10123”に分割される。
【0066】
図12の文字列1202“12 Nov 2019”は日付を表しており、正規表現定義1111だけを正規表現定義リストに用いた場合に、検索の結果、“12 No”と一致する。その結果、“12 No”と“v 2019”に分割されてしまい、日付を抽出したいユーザにとっては、好ましくない結果となる。正規表現定義リストに正規表現定義1112も加えて検索することにより、文字列1202の“Nov”と一致し、その範囲内では分割を実施しないという検索結果が、S506により格納され、S508で、分割情報がプロテクトされ、分割が実施されず、意図しない分割を防ぐことができる。
【0067】
また、それ以外の動作の規定をしてもよい。正規表現定義1120ではサブマッチ分割として、正規表現式のグループ化を用いて、サブマッチによる一致箇所の左右でも分割するという定義を行うことができる。正規表現定義1120の正規表現式“(.*no)(¥d*)”を文字列1201に対して正規表現検索した結果、サブマッチ1で“Invoice No”、サブマッチ2で“10123”が一致し、その間で分割を実施する。
【0068】
以上説明した通り、本実施形態を適用することによって、意図しない分割を防ぐ、あるいはより複雑な分割を実施することができる。
【0069】
<第4の実施形態>
第1の実施形態では、項目値の抽出の方法は、OCR文字列を分割することで実現したが、結合してもよい。例えば、帳票画像400のOCR文字列411が、文字認識の結果、“発行日:2020年”と、“5月”、“15日”の3のOCR文字列に分割されているケースでは、S503の検索用文字列生成処理において、同じ文字高さの近傍にあるOCR文字列を結合してから、S504の正規表現式によって検索を行い、一致した場合は一致範囲を結合する。
【0070】
以上説明した通り、本実施形態を適用することによって、文字認識結果の出力するOCR文字列の粒度に影響されることなく、正規表現式で抽出することが可能である。
【0071】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワークまたは記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0072】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【0073】
100 画像処理システム
101 画像形成装置
102 画像処理サーバ(画像処理装置)
103 ユーザ端末
104 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12