(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-05
(45)【発行日】2024-01-16
(54)【発明の名称】データ処理システム、データ処理方法、および、プログラム
(51)【国際特許分類】
G06V 30/12 20220101AFI20240109BHJP
G06V 30/412 20220101ALI20240109BHJP
【FI】
G06V30/12 B
G06V30/412
G06V30/12 J
(21)【出願番号】P 2019178690
(22)【出願日】2019-09-30
【審査請求日】2022-09-22
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002767
【氏名又は名称】弁理士法人ひのき国際特許事務所
(72)【発明者】
【氏名】井戸 陽子
【審査官】伊知地 和之
(56)【参考文献】
【文献】特開2010-073174(JP,A)
【文献】特開平03-214281(JP,A)
【文献】特開2007-233913(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/12
G06V 30/412
(57)【特許請求の範囲】
【請求項1】
文書を読み取ることにより生成された画像に対して、文字認識処理を行うことにより、前記画像上の1又は2以上の文字列を抽出する抽出手段と、
前記文書に関するデータ入力作業のワークフローの種別を判別する判別手段と、
前記抽出手段で抽出された前記文字列のチェック作業が行われるためのユーザインターフェースを提供する提供手段と、
を有するデータ処理システムであって、
前記提供手段は、
ワークフローの種別ごとに各選択候補のスコアを格納したテーブルから、前記判別手段で判別された前記ワークフローの種別
に対応する各選択候補のスコアを取得し、当該取得した各選択候補のスコアに基づいて決定された優先順位にしたがって、
前記抽出手段で抽出された前記文字列を修正するための複数の選択候補を提示する
ものであり、
前記データ処理システムは、さらに、前記ユーザインターフェースにおいて提示された前記複数の選択候補の中からユーザにより1の選択候補が選択された場合、前記テーブルに格納されている当該選択された1の選択候補のスコアに対して当該ユーザに応じた重みをつけた加算を行うことにより前記テーブルを更新する更新手段を有する
ことを特徴とするデータ処理システム。
【請求項2】
前記判別手段は、前記抽出された文字列に基づいて前記ワークフローの種別を判別する
ことを特徴とする請求項1に記載のデータ処理システム。
【請求項3】
前記判別手段は、ユーザの指示に基づいて前記ワークフローの種別を判別する
ことを特徴とする請求項1に記載のデータ処理システム。
【請求項4】
前記ワークフローは、1又は2以上のロールから構成される
ことを特徴とする請求項1乃至3のいずれか1項に記載のデータ処理システム。
【請求項5】
前記各ロールについて、実行をするユーザが定められている
ことを特徴とする請求項4に記載のデータ処理システム。
【請求項6】
前記ユーザインターフェースにおいて、
前記ユーザは、文字列を入力することにより、前記複数の選択候補以外の選択候補の選択をすることができる
ことを特徴とする請求項1乃至
5のいずれか1項に記載のデータ処理システム。
【請求項7】
前記
ワークフローの種別ごとに各選択候補のスコアを格納した前記テーブルを記憶した記憶手段を
さらに備える
ことを特徴とする請求項1乃至
6のいずれか1項に記載のデータ処理システム。
【請求項8】
前記ユーザインターフェースにおいて、前記複数の選択候補以外の文字列が入力された場合、前記記憶手段は、前記入力された文字列を
前記テーブルに記憶する
ことを特徴とする請求項
7に記載のデータ処理システム。
【請求項9】
前記チェック作業が行われた文書を保存する保存手段を有する
ことを特徴とする請求項1乃至
8のいずれか1項に記載のデータ処理システム。
【請求項10】
文書を読み取ることにより生成された画像に対して、文字認識処理を行うことにより、前記画像上の1又は2以上の文字列を抽出する抽出工程と、
前記文書に関するデータ入力作業のワークフローの種別を判別する判別工程と、
前記抽出工程で抽出された前記文字列のチェック作業が行われるためのユーザインターフェースを提供する提供工程と、
を有するデータ処理方法であって、
前記提供工程は、
ワークフローの種別ごとに各選択候補のスコアを格納したテーブルから、前記判別工程で判別された前記ワークフローの種別
に対応する各選択候補のスコアを取得し、当該取得した各選択候補のスコアに基づいて決定された優先順位にしたがって、
前記抽出工程で抽出された前記文字列を修正するための複数の選択候補を提示する
ものであり、
前記データ処理方法は、さらに、前記ユーザインターフェースにおいて提示された前記複数の選択候補の中からユーザにより1の選択候補が選択された場合、前記テーブルに格納されている当該選択された1の選択候補のスコアに対して当該ユーザに応じた重みをつけた加算を行うことにより前記テーブルを更新する更新工程を有する
ことを特徴とするデータ処理方法。
【請求項11】
請求項
10に記載されたデータ処理方法をコンピュータにより実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字認識処理により抽出された文字列についてチェック作業を行うことができるデータ処理システム、データ処理方法、及びプログラムに関するものである。
【背景技術】
【0002】
従来から、プリンタ機能、複写機能、ファクシミリ機能などの多機能を備えた画像処理装置である複合機では、帳票などの文書に対してOCR(Optical Character Recognition)処理することが広く知られている。OCR処理とは、スキャナなどを用いて、文書を読み取り、画像データに変換し、文字を取得する処理である。
OCR処理を用いることにより、一般的なオフィスで実施されている経費精算作業に代表される紙媒体の帳票からデジタルデータへの変換を伴う作業を自動化することが可能になり、データ入力作業における生産性の向上が期待できる。
【0003】
しかし、スキャナにより読み込まれた画像の品質や文字の状態にはばらつきが存在する。そのため、OCR処理の正解率は100%には到達せず、文字の誤認識が発生することがある。
そこで、OCR処理により取得された文字列に対しては、誤認識がないかをユーザが直接に確認し、必要があれば、修正をするチェック作業を行う必要がある。このようなチェック作業は、一般的に、PC(Personal Computer)や画像処理装置の表示部において行われる。
【0004】
実際の業務では、チェック作業の正確性を向上させるため、複数のチェック者を配置し、複数のチェック者によるダブルチェックが行われる場合がある。その際、各チェック者が別のチェックツールを使ってチェックをしたり、後段のチェックには熟練したチェック者を配置したりするなどして、正確性をより向上させる工夫がなされている。
しかし、OCR処理により取得された文字列に対する、誤認識された文字の発見、指定、修正など作業は煩雑であるため、特に、多くの文書を対象に処理する場合には、チェック者の作業負担は重くなるという問題がある。
【0005】
そこで、個々の文字に対するOCR処理の精度を上げるために、企業名や住所等のデータベースが存在する場合、そうしたデータベースを辞書として用いる「突合(とつごう)」と呼ばれる手法がある。この手法によれば、文字列に誤認識された文字が含まれる場合であっても、例えば企業名を表す一定の長さの文字列全体について、辞書内の単語とのマッチングの程度や整合性に基づいて、OCR結果を補正することができる。
しかし、突合処理の際に、複数の選択候補文字列がユーザに提示されることがあるが、類似する多数の選択候補が提示される場合、その中から適切な文字列を選択することはチェック者にとっては負担が重い。
【0006】
そこで、特許文献1では、文字列を修正する辞書をユーザに紐づけて備え、ユーザが頻繁に選択する文字列は正確である可能性が高いとみなして、選択された頻度の高い順に順位付けした選択候補をユーザに提示する手法が提案されている。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、特許文献1の手法では、帳票の種類を考慮することなく、ユーザごとの選択の頻度にしたがって、一律に順位を決めているため、様々な種類の帳票を処理するユーザにとっては適切な順位とならない可能性がある。すなわち、あるジャンルの帳票の処理で選択される頻度が高い文字列が、必ずしも、他のジャンルの帳票では適切であるとは限らない。
また、特許文献1の手法では、ユーザが選択した頻度を用いる際に、チェック作業を行うチェック者の熟練度も考慮されていない。したがって、提示される順位の信頼性も担保されていない。
【課題を解決するための手段】
【0009】
本発明は、文書を読み取ることにより生成された画像に対して、文字認識処理を行うことにより、前記画像上の1又は2以上の文字列を抽出する抽出手段と、前記文書に関するデータ入力作業のワークフローの種別を判別する判別手段と、前記抽出手段で抽出された前記文字列のチェック作業が行われるためのユーザインターフェースを提供する提供手段と、を有するデータ処理システムであって、前記提供手段は、ワークフローの種別ごとに各選択候補のスコアを格納したテーブルから、前記判別手段で判別された前記ワークフローの種別に対応する各選択候補のスコアを取得し、当該取得した各選択候補のスコアに基づいて決定された優先順位にしたがって、前記抽出手段で抽出された前記文字列を修正するための複数の選択候補を提示するものであり、前記データ処理システムは、さらに、前記ユーザインターフェースにおいて提示された前記複数の選択候補の中からユーザにより1の選択候補が選択された場合、前記テーブルに格納されている当該選択された1の選択候補のスコアに対して当該ユーザに応じた重みをつけた加算を行うことにより前記テーブルを更新する更新手段を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、文字認識結果を修正するための選択候補がワークフローの種別ごとに決定された優先順位にしたがって提示されるため、チェック作業を行う負担を軽減することができる。
【図面の簡単な説明】
【0011】
【
図1】データ処理システムの全体構成を示す図である。
【
図2】画像読取装置のハードウェア構成例を示す図である。
【
図3】データ入力作業の全体を示すフローチャートである。
【
図4A】データ入力作業の対象となる文書の一例である。
【
図4B】選択候補の優先順位を決定する処理を説明するための図である。
【
図5】ワークフローの種別ごとのユーザテーブルの一例である。
【
図7】ワークフローに携わるユーザを説明するための図である。
【
図9】スコア加算処理に用いられるテーブルの一例である。
【
図10】チェック処理を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下に、図面を参照して、本発明を実施するための実施例について説明する。ただし、以下に説明する実施例はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。また、以下の実施例で説明されている特徴の組み合わせのすべてが本発明の解決手段に必須のものとは限らない。
【0013】
<実施例1>
図1は、本実施例に係るデータ処理システムの全体構成を示す図である。
図1に示すように、画像処理装置100及びPC/サーバー端末101は、イーサネット(登録商標)や無線LANなどからなるLAN104に接続され、さらに、インターネット105に接続されている。また、モバイル端末103は、公衆無線通信網102などを介してインターネット105に接続されている。画像処理装置100、PC/サーバー端末101、及びモバイル端末103は、LAN104又は公衆無線通信網102を介してインターネット105に接続され、相互に通信可能となっている。なお、PC/サーバー端末101とモバイル端末103に関しては、いずれか一方がある構成でもよいし、PC/サーバー端末101やモバイル端末103などが実施する処理を画像処理装置100が行うように構成してもよい。
【0014】
画像処理装置100は、スキャナやプリンタを有する複合機である。本実施例に係るデータ処理システムにおいて、画像処理装置100は、帳票などの原稿を読み取るスキャン端末として利用され、原稿を読み取ったスキャン画像を生成する。また、画像処理装置100は、エラー通知や指示通知などの表示が行われる表示部や、スキャン操作や設定操作などの操作が行われるタッチパネルやハードボタンなどの操作部を有する。
【0015】
PC/サーバー端末101は、画像処理装置100で生成されたスキャン画像を表示する。また、PC/サーバー端末101は、画像処理装置100が生成したスキャン画像の保存やOCR処理などを実施し、再利用可能なコンテンツデータを生成する。なお、PC/サーバー端末101は、クラウドやサーバーなどの不図示の外部ストレージとの通信も可能であり、保存した画像データやメタデータを外部ストレージへ送信することができる。
なお、本実施例では、画像処理装置100においてスキャン画像の保存、メタデータの生成、外部ストレージへの送信を行うものとするが、PC/サーバー端末101において同様の処理をしてもよい。
【0016】
モバイル端末103は、操作部、無線通信部、ウェブブラウザを動作させるアプリ部を有するスマートフォンやタブレット端末である。本実施例に係るシステムにおいて、モバイル端末103は、PC/サーバー端末101と同様に、表示端末、操作端末、コンテンツデータ生成・保存端末などとして利用される。なお、表示、操作、メタデータ生成・コンテンツデータ生成・保存の機能などは、PC/サーバー端末101とモバイル端末103のいずれか一方のみが実施するようにしてもよい。
なお、以上の構成要素は、あくまで例示であり、すべての構成要素が本発明に必須というものではない。
【0017】
図2は、画像処理装置100のハードウェア構成を示すブロック図である。
制御部110は、CPU111、記憶装置112、ネットワークI/F部113、スキャナI/F部114、表示・操作部I/F部115を備え、これらはシステムバス116を介して互いに通信可能に接続されている。制御部110は、画像処理装置100全体の動作を制御する。
【0018】
CPU111は、記憶装置112に記憶された制御プログラムを読み出して、読取制御や送信制御などの各種制御を行う。
記憶装置112は、制御プログラム、画像データ、メタデータ、設定データ、処理結果データなどを格納し保存する。記憶装置112は、不揮発性メモリであるROM117、揮発性メモリであるRAM118、大容量記憶領域であるHDD119などを有する。
ROM117は、制御プログラムなどを保存する。
RAM118は、CPU111の主メモリであり、ワークエリア等の一時記憶領域として用いられる。
HDD119は、大容量記憶領域であるHDDであり、画像データ、メタデータなどを保存する記憶領域として用いられる。
【0019】
ネットワークI/F部113は、制御部110(画像処理装置100)をLAN104に接続するインタフェースである。ネットワークI/F部113は、PC/サーバー端末101やモバイル端末103等のLAN104上の外部装置に画像を送信したり、LAN104上の外部装置から各種情報を受信したりする。
【0020】
スキャナI/F部114は、スキャナ部120と制御部110とを接続するインタフェースである。スキャナ部120は、原稿上の画像を読み取って画像データを生成し、スキャナI/F部114を介して制御部110に入力する。
表示・操作部I/F部115は、表示・操作部121と制御部110とを接続するインタフェースである。表示・操作部121には、タッチパネル機能を有する液晶表示部やテンキー、スタートボタン、キャンセルボタン等のハードキーが備えられている。スタートボタンは、コピーやスキャンの処理を開始させるためのボタンである。キャンセルボタンは画像処理装置100が実行中の処理を一時停止、または中止するためのボタンである。
その他、画像処理装置100には、図示しないプリンタ部等も備えられている。
以上のように、本実施例に係る画像処理装置100は、上述したハードウェア構成により、画像処理機能を提供する。
【0021】
次に、
図7を用いて、本実施例における各種のワークフローについて説明する。なお、本実施例において、ワークフローとは、文書に対してデータ入力作業を行うための1又は2以上の処理(ロール)により定義された一連の作業手順である。なお、本実施例では、ワークフローの種別ごとに各ロールを実行する担当のユーザが予め定められている。
例えば、処理開始者がユーザAである請求書ワークフロー701を例にとると、まず、処理開始者であるユーザAが、請求書など文書についてOCR処理を行い、「企業名」、「合計金額」などの項目値を抽出した後、OCR結果をチェックする。次に、ユーザAがチェックしたOCR結果について、チェック者1として、ユーザBがチェックする。最後に、ユーザBがチェックしたOCR結果について、チェック者2として、ユーザCがさらにチェックした後、文書を請求書登録システム711に入力する。
【0022】
また、旅費精算ワークフロー702を例にとると、まず、処理開始者であるユーザAが、旅費精算書などの文書についてOCR処理を行い、旅費の精算に必要な項目値を抽出した後、OCR結果をチェックする。次に、ユーザAがチェックしたOCR結果について、チェック者1として、ユーザDがチェックする。最後に、ユーザDがチェックしたOCR結果について、チェック者2として、ユーザEがさらにチェックした後、文書を旅費精算システム712に入力する。
【0023】
また、処理開始者がユーザBである請求書ワークフロー704を例にとると、まず、処理開始者であるユーザBが、領収書などの文書についてOCR処理を行い、「企業名」、「合計金額」などの項目値を抽出した後、OCR結果をチェックする。次に、ユーザBがチェックしたOCR結果について、チェック者1として、ユーザHがチェックする。最後に、ユーザHがチェックしたOCR結果について、チェック者2として、ユーザIがさらにチェックした後、文書を請求書登録システム711に入力する。
【0024】
このように、ワークフローは、処理開始者が同じユーザであっても、請求書、旅費精算、契約書などのデータ入力作業の対象となる文書が異なると、種別は異なると判別される。また、同じ請求書ワークフローであっても、処理開始者や、チェック者1、チェック者2が異なると、ワークフローの種別は異なると判断される。すなわち、ワークフローの種別の異同は、データ入力作業の対象となる文書の異同と、処理開始者やチェック者などの処理に携わるユーザの異同に基づいて判別される。
本実施例におけるデータ入力作業は、上述のようなワークフローに対して実行される。
【0025】
図3は、画像処理装置100において実行される、文書が読み取られてから、文字認識処理が行われ、文書内の各項目値が登録されるまでの、データ入力作業の全体を示すフローチャートである。なお、
図3のフローチャートにおける各処理は、CPU111がROM117、HDD119等に記憶された制御プログラムを実行することにより実現される。
【0026】
まず、ステップS301において、CPU111は、スキャナ部120によって原稿を読み取り、スキャン画像を生成する。
次に、ステップS302において、CPU111は、スキャン画像に対して、画像変換、傾き補正、二値化等のOCR処理の前処理を行い、続いて、スキャン画像上の文字領域の特定処理及びOCR処理を行う。このように、文書内の文字領域ごとにOCR処理により文字コードが得られた後、ユーザが必要とする項目値が抽出される。なお、本実施例において、文字とは、(狭義の)文字に限られず、数字や記号などを含む、OCR処理によりコード化されるものをいう。
【0027】
ここで、
図4Aに、データ入力作業の対象となる文書401の一例を示す。ここでは、
図4Aに示すとおり、文書401は請求書であるとする。
請求書には、例えば、「企業名」、「電話番号」、「合計金額」などの項目と、それらの項目に対応した項目値(例えば、「キヤノン」、「03-123-4567」、「¥11,286」)が含まれる。
【0028】
項目値の抽出処理は、例えば、文書401を読み取ることにより取得されたスキャン画像において、ユーザが抽出対象の項目値が記載されている位置を指示することによって行われる。
【0029】
または、項目値の抽出処理は、抽出が必要な項目に対応する文字列をスキャン画像から検索し、予め定義された項目と項目値との位置関係に基づいて、ユーザの指示なしに自動的に行うことも可能である。
例えば、項目名「合計金額」の項目値を抽出する場合、処理対象の文書種別(この場合は、「請求書」)で「合計金額」の意を示す「請求金額」などの文字列を検索する。その結果、スキャン画像ら見つかった「御請求金額」の位置と、予め定義され、画像処理装置100に記憶されている「御請求金額」と金額の項目値の位置関係に基づいて、「合計金額」の項目値を検索する。この場合は、「「御請求金額」文字列の右側に金額の項目値が存在する」というルールに基づいて、項目値「¥11,286」が抽出される。
なお、以上に示した項目値抽出の手段はあくまで一例であり、ユーザが所望する情報が抽出されることについて手段は問わない。
【0030】
次に、ステップS303において、CPU111は、データ入力作業のワークフローの種別を判別する。
ワークフローの判別は、ステップS302で得られた項目値の中から、ワークフローの種別を判別するために必要な項目を抽出することにより行われる。ワークフローの種別を判別するために必要な項目とは、本実施例では、例えば、請求書であれば、「請求書」や「納品書」などの帳票のタイトル、発行元の企業名、品目や請求金額、日付のような項目である。これらの項目と各ワークフローとの結びつきの強さに基づいて、ワークフローを判別する。
ただし、ワークフローを判別する手法は、これには限られない。例えば、文書をスキャンする前に、表示・操作部121においてユーザがあらかじめ各ロールの内容を指示することによって、ワークフローを判別させるようにしてもよい。
【0031】
次に、ステップS304において、CPU111は、S304で判別した種別のワークフローにおいて各ロールを実行するユーザを特定する。
図5は、
図7で図示したようなワークフローに携わるユーザをテーブルにした、ワークフローの種別ごとのユーザテーブル501の一例である。ユーザテーブル501には、
図7で示したワークフロー701~704について、帳票種類と、処理開始者、チェック者1、チェック者2である各ユーザ名が記載されている。ワークフローの種別ごとのユーザテーブル501は、あらかじめ作成され、記憶装置112に格納されている。
【0032】
ユーザテーブル501から、例えば、請求書ワークフロー701については、処理開始者がユーザA、次のチェックを行うチェック者1がユーザB、最後のチェックを行うチェック者2がユーザCであることが分かる。
【0033】
ワークフローの各ロールを実行するユーザが特定されると、次に、ステップS305において、順次、各ロールにおいて、項目値のチェック処理が行われる。チェック処理の詳細な説明については、
図10で後述する。
【0034】
次に、ステップS306において、CPU111は、ワークフローにおけるすべてのロールについて項目値のチェック処理が終了したか否かを判定する。
チェック処理が終了していなければ、次のロールについてチェック処理をするために、ステップS304に戻る。すべてのロールについてチェック処理が終了したら、ステップS307へ進む。
そして、ステップS307において、抽出した各項目値がシステムに入力されて、データ入力作業が終了する。
【0035】
次に、
図10のフローチャートを用いて、前述のステップS305において行われる項目値のチェック処理について説明する。
ここでは、処理開始者がユーザAである請求書ワークフロー701を例にして説明する。前述したように、請求書ワークフロー701は、処理開始者がユーザAであり、チェック者1がユーザBであり、チェック者2がユーザCである。なお、
図10のフローチャートにおける処理は、CPU111がROM117、HDD119等に記憶された制御プログラムを実行することにより実現される。
【0036】
まず、ステップS1001において、CPU111は、ユーザがチェック処理をする項目値を選択する。そして、スキャン画像から項目値を抽出する元となる文字列画像と、その文字列画像をOCR処理することにより得られたOCR結果を取得する。
次に、ステップS1002において、CPU111は、S1001で取得したOCR結果を修正するための選択候補を、優先順位にしたがい、画像処理装置100に備えられた表示・操作部121にチェック用画面1101として表示する。なお、選択候補の優先順位は、
図8で後述するスコア付きの選択候補リストに基づいて生成される。
【0037】
図11は、ユーザがチェック作業を行うためのユーザインターフェースであるチェック用画面1101の一例を示している。
チェック用画面1101には、
図11(a)に示されるように、文書401のスキャン画像から抽出された文字列画像1102と、文字列画像1102をOCR処理して得られたOCR結果1103(ここでは、「キャノン」)が表示される。また、OCR結果1103の下には、ドロップダウンリストとして、OCR結果1103(「キャノン」)についての選択候補1104(「キヤノン」、「キュノン」など)が優先順位にしたがい表示される。
なお、選択候補1104の表示方法としては、これに限られず、OCR結果1103や文字列画像1102と対比しやすい位置に表示させればよい。
また、チェック用画面1101は、画像処理装置100に備えられた表示・操作部121に表示させることには限られず、PC101に備えられたモニタ(不図示)などに表示させてもよい。
【0038】
次に、ステップS1003において、チェック用画面1101に表示された選択候補1104の中から、ユーザによって1つが選択される。
選択候補からの選択は、チェック用画面1101において、ユーザが、選択候補1104の中から1つの選択候補をタッチしてから確定ボタン1105を押下したり、不図示のマウスを用いてクリックしたりすることによって実行される。
【0039】
次に、ステップS1004において、CPU111は、該当する種別のワークフローについてS1003で選択された選択候補のスコアを加算する。
例えば、チェック用画面1101においてユーザが選択候補1104の中から「キヤノン」を選択した場合、ワークフロー711について、後述するスコア付きの選択候補リスト内の「キヤノン」のスコアが加算される。なお、スコアを加算するスコア加算処理の詳細な説明については、
図8などを用いて後述する。
【0040】
次に、ステップS1005において、CPU111は、文書401から抽出したすべての項目値についてチェック処理が終了したかを確認する。
すべての項目値についてチェック処理が終了した場合は、本フローチャートの処理を終了する。まだ修正していない項目値がある場合は、ステップS1001に戻って、次の未処理の項目値について、同様の処理を行う。
【0041】
次に、
図4Bを用いて、前述のステップS1002で行われる、チェック用画面1101においてOCR結果を修正するための選択候補を表示する優先順位を決定する処理について説明する。なお、優先順位を決定する処理は、CPU111がROM117、HDD119等に記憶された制御プログラムを実行することにより実現される。
【0042】
ここでは、
図4Aに示したような請求書である文書401から、OCR結果402として、文書401の発行元の企業名である「キャノン」という文字列が抽出されたものとして説明する。
このOCR結果402に対して、ROM117、HDD119等に記憶されている企業名辞書403の中から、突合処理によって選択候補リスト404が抽出される。この例では、選択候補リスト404には、企業名としてOCR結果402である「キャノン」と近いと判断された、「キヤノン」、「キヤソン」、「キヤノー」、「キャノン」、「キュノン」などの文字列が含まれている。
【0043】
次に、辞書マネージャ405が、該当する種別のワークフローにおける優先順位にしたがい、選択候補404の並べ替えを行う。この際、辞書マネージャ405は、スコア付き選択候補リスト格納テーブル408から、請求書ワークフロー701における「キャノン」についてのスコア付きの選択候補リストを抽出する。そして、スコア付きの選択候補リストに基づいて、優先順位付きの選択候補リスト410を出力する。
スコア付きの選択候補リストには、ワークフローの種別ごと、かつ、修正対象の文字列ごとに、それぞれ、選択候補のリストが、各選択候補が正解である可能性を示すスコアとともに、スコアが高い順に記載されている。なお、各選択候補のスコアは、該当する種別のワークフローを処理した各ユーザによって選択された累積頻度である。
【0044】
図8に、スコア付き選択候補リスト格納テーブル408に格納されている、ワークフローの種別ごとのスコア付きの選択候補リストの例を示す。
(a)のスコア付きの選択候補リスト801には、ワークフロー701における文字列「キャノン」についての選択候補が、スコアが高い順に並べられている。優先順位付きの選択候補リスト410は、スコア付きの選択候補リスト801に基づいて生成される。
【0045】
次に、
図6などを用いて、前述のステップS1004で行われる選択候補のスコア加算処理について説明する。
前述のステップS1003において、
図4のチェック結果409、411、412に示されるとおり、各ユーザが請求書ワークフロー701における担当のロールについてチェック処理を行ったものとする。
すなわち、ワークフロー711において、ユーザAは、修正対象の文字列「キャノン」について、選択候補の中から「キヤノン」を選択したとする。ユーザBも、修正対象の文字列「キャノン」について、選択候補の中から「キヤノン」を選択したとする。また、ユーザCは、修正対象の文字列「キャノン」について、選択候補の中から「キュノン」を選択したとする。
【0046】
そして、各ユーザが行ったチェック処理に基づいて、該当する種別のワークフローにおける各選択候補のスコアを加算していく。ここで、本実施例では、スコアを加算していく際に、ユーザごとの重みを考慮する。このように各ユーザのチェック処理に重みを付けてスコアを加算していくことにより、各ユーザのチェック処理の熟練度や信頼度を考慮することができるため、ワークフローの種別ごとに信頼性を増した選択候補の優先順位を得ることができる。
【0047】
図6は、各ワークフローについて、ユーザごとの重みを記載したユーザ重みテーブル601の一例である。
例えば、請求書ワークフロー701、704では、各ユーザの修正に対する重みが、処理開始者については「+1」、チェック者1について「+2」、チェック者2について「+3」とされている。
また、旅費精算ワークフロー702では、各ユーザの修正に対する重みが、処理開始者については「+1」、チェック者1については「+3」、チェック者2については「+4」とされている。
この例のように、各ワークフローについて、ユーザごとに、修正に対する重みを変えることができる。特に、チェック者が複数存在する場合には、後にチェックを行うチェック者2の重みを高くすることが考えられる。
【0048】
この例では、
図5のワークフローごとのユーザテーブル501から、ワークフロー701における処理開始者はユーザAであることが分かる。また、
図6のユーザ重みテーブル601から、処理開始者の重みは「+1」であることが分かる。したがって、ワークフロー701において、ユーザAの重みは「+1」となる。
ユーザAは、チェック結果409に示されるとおり、「キヤノン」を選択したことから、選択候補優先順位リスト801において、「キヤノン」のスコアに1を加える。
【0049】
同様に、ワークフロー701において、ユーザBはチェック者1であり、チェック者1の修正の重みは「+2」であることから、ユーザBの重みは「+2」となる。
ユーザBも、チェック結果411に示されるとおり、「キヤノン」を選択したことから、選択候補優先順位リスト801において、「キヤノン」のスコアにさらに2を加える。
【0050】
同様に、ワークフロー701において、ユーザCはチェック者2であり、チェック者2の重みは「+5」であることから、ユーザCの重みは「+5」となる。
ユーザCは、チェック結果412に示されるとおり、「キュノン」を選択したことから、選択候補優先順位リスト801において、「キュノン」のスコアに5を加える。
すなわち、この例では、S1004において、スコア加算処理により、選択候補優先順位リスト801(
図8(a))に、
図9にテーブル901として示したような加算スコアが加算される。
【0051】
この結果、ワークフロー711における「キャノン」についての優先順位リスト801は、優先順位リスト802(
図8(b))のとおり更新される。ここでは、優先順位1位が「キュノン」、2位が「キヤノン」となり、選択候補について優先順位が更新前から変更されている。
【0052】
以上のとおり、実施例1によれば、OCR結果を修正するための選択候補がワークフローの種別ごとに優先順位にしたがって表示される。これにより、チェック処理におけるユーザの作業負担を軽減させることができる。
【0053】
<実施例2>
実施例1では、ユーザに対してOCR結果を修正するための選択候補を提示し、その中から正しいものを選択させるようにした。ただし、提示された選択候補の中に選択すべき選択肢が存在しない場合も考えられる。例えば、企業名辞書403には現存する企業の名前のみが記憶されているものであるが、文書内に新規な企業名が記載されている場合も想定される。
そこで、実施例2では、提示された選択候補の中に適切な選択肢が存在しない場合に、選択候補を簡便に追加できるようにする。
【0054】
実施例2では、実施例1で説明した
図10のフローチャートのS1002で表示されるチェック用画面1101において、選択候補1104に加えて、新規追加欄1106を設ける。これにより、提示された選択候補以外の企業名を入力することができる。
そして、S1003においてユーザが新規追加欄1106に新たな企業名を入力すると、入力された企業名は企業名辞書403に追加される。チェック用画面1101において入力された新たな企業名は、次回以降、同じOCR結果がチェック処理の対象となった場合に、選択候補1104に追加されて表示される。
【0055】
<その他の実施例>
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上述の実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形が可能であり、それらを本発明の範囲から除外するものではない。すなわち、上述した各実施例及びその変形例を組み合わせた構成もすべて本発明に含まれるものである。
【符号の説明】
【0056】
100 画像処理装置
401 文書
410 優先順位付きの選択候補リスト
1101 チェック用画面