(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-09
(45)【発行日】2024-02-20
(54)【発明の名称】情報処理装置、プログラム、情報処理方法
(51)【国際特許分類】
G06F 3/04842 20220101AFI20240213BHJP
G06F 3/04812 20220101ALI20240213BHJP
G06F 3/0487 20130101ALI20240213BHJP
G06V 30/12 20220101ALI20240213BHJP
G06V 30/412 20220101ALI20240213BHJP
【FI】
G06F3/04842
G06F3/04812
G06F3/0487
G06V30/12 B
G06V30/12 J
G06V30/412
(21)【出願番号】P 2020044448
(22)【出願日】2020-03-13
【審査請求日】2023-03-01
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】中川 雅司
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2011-232925(JP,A)
【文献】特開2000-155633(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/048-3/04895
G06V 30/12
G06V 30/412
(57)【特許請求の範囲】
【請求項1】
文書画像を表示する第1のペインと、前記文書画像に関連づけるべき複数のメタデータを入力するための複数の入力欄と、を含む画面を表示する表示手段と、
前記第1のペインに表示された前記文書画像内の文字領域の1つがユーザにより選択された場合、当該選択された文字領域の文字認識結果を、前記複数の入力欄のうちの入力先として特定されている
第1の入力欄に入力する第1の入力手段と、
前記第1の入力手段によって前記文字認識結果が前記
第1の入力欄に入力された後
に、前記ユーザによってマウスのホイール操作が為された場合、前記第1の入力欄に入力された前記文字認識結果を、当該ホイール操作に応じて特定される第2の入力欄に移動させる第1のホイール操作手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記ユーザによって前記マウスのポインタが当該選択された文字領域から外れた時点で、前記文字認識結果が前記第1の入力欄に入力されている状態ならば、前記文字認識結果の入力先の入力欄を前記第1の入力欄に確定する一方、
前記ユーザによって前記マウスのポインタが当該選択された文字領域から外れた時点で、前記文字認識結果が前記第2の入力欄に入力されている状態ならば、前記文字認識結果の入力先の入力欄を前記第2の入力欄に確定する確定手段を、更に備えることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記確定手段により前記文字認識結果の入力先の入力欄が確定された後、前記複数の入力欄のうちに未入力の入力欄がある場合、当該未入力の入力欄のうちの1つを次の入力先として自動的に特定する特定手段を、更に備えることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記特定手段は、さらに、前記次の入力先として自動的に特定した入力欄に、カーソルを自動的に移動させることを特徴とする請求項
3に記載の情報処理装置。
【請求項5】
前記ユーザによりキーボードを用いて文字列がキー入力された場合、当該キー入力された文字列を前記複数の入力欄のうちの入力先として特定されている
前記第1の入力欄に入力する第2の入力手段を、更に備えることを特徴とする請求項
1に記載の情報処理装置。
【請求項6】
前記表示手段は、前記複数の入力欄を、それぞれの項目名と対応づけて表示する、ことを特徴とする請求項1乃至
5のいずれか1項に記載の情報処理装置。
【請求項7】
前記表示手段は、前記第1の入力手段によって前記選択された文字領域の文字認識結果が前記
第1の入力欄に入力された場合、さらに、当該選択された文字領域の部分画像を当該入力欄に対応づけて表示する、ことを特徴とする請求項1乃至
6のいずれか1項に記載の情報処理装置。
【請求項8】
前記表示手段は、前記複数の入力欄を、前記画面の第2のペインに表示することを特徴とする請求項1乃至
7のいずれか1項に記載の情報処理装置。
【請求項9】
文書画像を表示する第1のペインと、前記文書画像に関連づけるべき複数のメタデータを入力するための複数の入力欄と、を含む画面を表示する表示手段と、
前記第1のペインに表示された前記文書画像内の文字領域の1つがユーザにより選択された場合、当該選択された文字領域の文字認識結果を、前記複数の入力欄のうちの入力先として特定されている1つの入力欄に入力する第1の入力手段と、
前記第1の入力手段により入力された前記文字認識結果の確度が、所定閾値以上であるか否か判定する判定手段
と、
前記第1の入力手段によって前記文字認識結果が前記特定されている1つの入力欄に入力された後、前記判定手段で前記文字認識結果の確度が前記所定閾値以上であると判定し、かつ、前記複数の入力欄のうちに未入力の入力欄がある場合に、当該未入力の入力欄のうちの1つを次の入力先として自動的に特定する
特定手段と、
を備えることを特徴とす
る情報処理装置。
【請求項10】
前記特定手段は、前記第1の入力手段によって前記文字認識結果が前記特定されている1つの入力欄に入力された後、前記判定手段で前記文字認識結果の確度が前記所定閾値以上でないと判定した場合、前記特定されている1つの入力欄を入力先として維持する、ことを特徴とする請求項
9に記載の情報処理装置。
【請求項11】
前記第1のペインに表示された前記文書画像内の文字領域の1つが前記ユーザにより選択される前に、前記ユーザによって前記マウスの
第2のホイール操作が為された場合、現在の入力先として特定されている
前記第1の入力欄を、当該
第2のホイール操作に応じて特定される入力欄に変更する第2のホイール操作手段を、更に有することを特徴とする請求項
1に記載の情報処理装置。
【請求項12】
前記第2のホイール操作手段は、更に、前記
第2のホイール操作に応じて変更した入力欄にカーソルを移動させることを特徴とする請求項11に記載の情報処理装置。
【請求項13】
コンピュータを、請求項1乃至12のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項14】
文書画像を表示する第1のペインと、前記文書画像に関連づけるべき複数のメタデータを入力するための複数の入力欄と、を含む画面を表示する表示ステップと、
前記第1のペインに表示された前記文書画像内の文字領域の1つがユーザにより選択された場合、当該選択された文字領域の文字認識結果を、前記複数の入力欄のうちの入力先として特定されている
第1の入力欄に入力する第1の入力ステップと、
前記第1の入力ステップで前記文字認識結果が前記
第1の入力欄に入力された後
に、前記ユーザによってマウスのホイール操作が為された場合、前記第1の入力欄に入力された前記文字認識結果を、当該ホイール操作に応じて特定される第2の入力欄に移動させる第1のホイール操作手段と、
を備えることを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データ内に含まれる文字画像に基づいて、当該画像データにメタデータを関連づけるための装置、方法、プログラムに関する。
【背景技術】
【0002】
従来、スキャンや撮影された画像から、光学文字認識(OCR)を用いて、文字列を抽出する技術がある。特許文献1には、スキャンした文書画像の帳票種別を識別して、当該識別した帳票種別に基づき特定される欄に記載されている文字画像のOCR結果を、当該文書画像のファイル名等に用いる技術が開示されている。また、特許文献2、3には、スキャン画像をプレビュー表示し、ユーザにより選択された文字領域のOCR結果を、当該スキャン画像のファイル名やメタデータ等に用いる技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開昭62-051866号公報
【文献】特開2019-041150号公報
【文献】特開2012-053911号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本出願人は、PCのディスプレイに表示された文書画像上で、マウスポインタを用いてユーザに複数の文字領域を選択させ、当該選択された複数の文字領域のOCR結果を用いて、当該文書画像に対してメタデータを付与(関連付け)するシステムを検討している。
【0005】
文書画像のメタデータとして複数種類の項目名それぞれに対応する値を入力することを考えた場合、例えば、
図4のような設定画面を用いることが考えられる。
図4の設定画面は、文書画像402を表示するためのプレビューペイン401と、当該文書画像のメタデータとして複数種類の項目名に対する値を入力するためのメタデータペイン411とで構成されている。例えば、メタデータペイン411には、メタデータの項目名として予め定義されている「Customer Name」、「Address」、「Telephone Number」が表示されており、ユーザはこれらの項目名それぞれに対応するデータを入力する必要があるものとする。例えば、項目名「Customer Name」に対応する値として、文書画像内に記述されている「XYZ Corporation」を関連付けたいものとする。同様に、項目名「Address」には「1 Pumpkin Road, New York, NY」を関連付け、項目名「Telephone Number」には「(123)456-7890」をそれぞれ関連付けたいものとする。この場合、以下のような操作が必要になる。まず最初に、ユーザは、メタデータペイン411の「Customer Name」という項目名を選択し、次に、その項目名に関連付けたい文字列を含む文字領域として、プレビューペイン401に表示されている文書画像内の文字領域「XYZ Corporation」を選択する。そうすることで、メタデータペイン411の項目名「Customer Name」に対して、当該選択された文字領域の部分画像が部分画像表示欄412に表示され、かつ、当該選択された文字領域の文字認識結果の「XYZ Corporation」が入力欄413に入力される。さらに、ユーザが、次に付与したいメタデータの項目名として「Address」を選択し、その項目名に関連付けたい文字列を含む文字領域として、プレビューペイン401に表示されている文書画像内の文字領域「1 Pumpkin Road, New York, NY」を選択する。そうすることで、メタデータペイン411の項目名「Address」に対して、当該選択された文字領域の部分画像が部分画像表示欄414に表示され、かつ、当該選択された文字領域の文字認識結果の「1 Pumpkin Road, New York, NY」が入力欄415に入力される。項目名「Billing Name」においても、同様の手順の操作を行うことにより、選択された文字領域の部分画像が部分画像表示欄416に表示され、かつ、当該選択された文字領域の文字認識結果が入力欄417に表示される。このように、メタデータの各項目名に対して文字認識結果の文字列を関連付けたい場合、ユーザは、メタデータペイン411の所望の項目名を選択してから、プレビューペイン401に表示された文書画像上の所望の文字領域を選択するという操作を、繰り返し行う必要が生じる。メタデータとして付与すべき項目名の数が多くなると、メタデータペイン411における選択操作と、プレビューペイン401における選択操作とを行うために、マウスポインタを行き来させる回数が多くなり、ユーザの操作負荷が大きくなってしまう。
【課題を解決するための手段】
【0006】
上記の課題を解決するため、本発明の情報処理装置は、文書画像を表示する第1のペインと、前記文書画像に関連づけるべき複数のメタデータを入力するための複数の入力欄と、を含む画面を表示する表示手段と、前記第1のペインに表示された前記文書画像内の文字領域の1つがユーザにより選択された場合、当該選択された文字領域の文字認識結果を、前記複数の入力欄のうちの入力先として特定されている第1の入力欄に入力する第1の入力手段と、前記第1の入力手段によって前記文字認識結果が前記第1の入力欄に入力された後に、前記ユーザによってマウスのホイール操作が為された場合、前記第1の入力欄に入力された前記文字認識結果を、当該ホイール操作に応じて特定される第2の入力欄に移動させる第1のホイール操作手段と、を備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、表示されている文書画像上で選択した文字領域の文字認識結果を用いて、メタデータの入力を行う際に、操作性が向上する。
【図面の簡単な説明】
【0008】
【
図4】メタデータが入力されていない状態の設定画面の例
【
図5】メタデータの一部が入力されている状態の設定画面の例
【
図6】スキャン文書処理サーバーにより実行される処理フローチャート
【
図7】文書画像上の文字領域がクリックされた際の設定画面の例
【
図8】実施例1のクライアント端末により実行される処理フローチャート
【
図10】実施例2のクライアント端末により実行される処理フローチャート
【
図12】実施例3のクライアント端末により実行される処理フローチャート
【
図13】実施例4のクライアント端末により実行される処理フローチャート
【発明を実施するための形態】
【0009】
[実施例1]
図1は、本発明を実施するためのシステムの一例である。ネットワーク101は、有線または無線のインターネット/イントラネットなどで構成される。スキャン文書処理サーバー111は、スキャン文書(スキャンにより取得された文書画像)に対してOCR処理などを実行する。クライアント端末121は、スキャン文書から抽出したデータをユーザーが確認したり修正したりするための端末である。クライアント端末121としては、パーソナルコンピューター、ラップトップコンピューター、タブレットコンピューター、スマートフォンなどのデバイスを利用することが可能である。業務サーバー131は、スキャン文書から抽出したデータを受信して各種処理を行うための外部システムである。なお、スキャン文書は、スキャン機能を有するスキャン装置141(スキャナや複合機)において文書を読み取ることにより生成される。なお、スキャン装置は、ネットワークに直接接続されてスキャン文書処理サーバー111等に文書画像を送信できるようにしてもよいし、クライアント端末121にケーブル接続されて、クライアント端末経由で文書画像を送信できるようにしてもよい。
【0010】
図2は、スキャン文書処理サーバー111、クライアント端末121、業務サーバー131のいずれかとして利用可能な情報処理装置のハードウェア構成例を示している。ネットワークインターフェース202は、LANなどのネットワーク105に接続して、他のコンピューターやネットワーク機器との通信を行うためのインタフェースである。通信の方式としては、有線・無線のいずれでもよい。ROM204には、組込済みプログラムおよびデータが記録されている。RAM205は、ワークエリアとして利用可能な一時メモリ領域である。二次記憶装置206は、HDDやフラッシュメモリであり、後述する処理を行うためのプログラムや各種データが記憶される。CPU203は、ROM204、RAM205、二次記憶装置206などから読み込んだプログラムを実行する。ユーザーインターフェース201は、ディスプレイ、キーボード、マウス、ボタン、タッチパネルなどで構成され、ユーザからの操作を受け付けたり、情報の表示を行ったりする。各処理部は、入出力インターフェース207を介して接続されている。
【0011】
図3は、本実施形態における各装置で実行されるソフトウェア(プログラム)の構成図である。各装置にインストールされたソフトウェアは、それぞれのCPUで実行され、また、各装置間は、相互に通信可能な構成となっている。
【0012】
スキャン文書処理アプリケーション311は、スキャン文書処理サーバー111にインストールされたプログラムである。本実施例では、スキャン文書処理サーバー111はスキャン文書処理アプリケーション311を実行することによってWebアプリケーションサーバーとして動作するものとして説明するが、これに限るものではない。312は、スキャン文書処理アプリケーション311によって提供されるAPI(Application Programming Interface)である。313は、スキャン文書処理アプリケーション311によって提供されるWeb UIである。
【0013】
データストア321は、スキャン文書処理アプリケーション311、および、後述するバックエンドアプリケーション331が使用するデータを保存・管理するためのモジュールである。データストア321には、次に説明する各種データが格納される。スキャン文書格納部322は、スキャン文書の画像を、JPEG等の画像ファイル或いはPDF(Portable Document Format)等の文書ファイルとして保存する。スキャン文書ジョブキュー323は、後述するメタデータ入力処理待ちのジョブを管理するキューを保持する。メタデータ管理部324は、スキャン文書ごとに付加が必要な複数のメタデータの一覧・メタデータごとの名前(複数のメタデータそれぞれの項目名)、値のフォーマット(文字列・数字など)などを管理する。スキャン文書処理結果格納部325は、OCR処理結果、帳票判別結果を格納する。また、スキャン文書処理結果格納部325は、スキャン文書ごとに関連付けられたメタデータとその抽出領域情報や、編集されたメタデータの値などを格納する。
【0014】
バックエンドアプリケーション331は、バックグラウンド処理を実行するためのプログラムである。バックエンドアプリケーション331は、以下に示すようなバックグラウンドで順次実行されうる処理を担当する。OCR処理部332は、スキャン文書格納部322から文書画像を取得し、OCR処理を実行する。OCR処理では、文字列と認識された領域の始点座標・幅・高さ、および認識できたOCR結果文字列を抽出する。帳票処理部333は、入力画像を領域解析することに識別される領域の配置パターンや、OCR処理結果の文字列の情報や、入力画像から検出された2次元コード等を用いて、帳票の種別を判別する。なお、帳票種別の判別処理は、パターン認識、機械学習などいずれの手法でもよい。外部システム通信部334は、外部の業務サーバー131にスキャン文書およびそのOCR結果等の送信処理を実行する。スキャン文書およびその処理結果を外部システムに送信する必要が無い場合(スキャン文書処理サーバー内で処理結果を保存する場合や、クライアント端末で処理結果を保存する場合)は、外部システム通信部334は省略可能である。
【0015】
クライアントアプリケーション351は、クライアント端末で実行されるプログラムである。本実施例では、前記スキャン文書処理アプリケーション311のWebアプリケーションとして提供されるものとする。すなわち、クライアント端末のウェブブラウザーでWeb UI313を表示して、必要なデータをAPI312を介して送受信することにより実現する方法があるが、これに限るものではない。例えば、必要なデータをAPI312を介して送受信するよう作成された、コンピュータのデスクトップで動作するアプリケーションや、スマートフォン等で動作するモバイルアプリケーションなどでもよい。
【0016】
業務アプリケーション361は、業務サーバー131で実行されるプログラムである。業務データストレージ362は、業務アプリケーション361が使用するデータを保存するためのモジュールである。業務アプリケーション361では、ファイル管理・文書管理・受注管理・会計処理などの各種業務において、スキャン文書処理サーバでの処理結果(メタデータと文書画像)を受信して、各種業務に係る処理を実行する。なお、業務の種類を限定するものでない。
【0017】
図6を用いて、スキャン文書処理サーバー111により実行される処理フローについて説明する。
【0018】
ステップS601において、スキャン文書処理サーバー111は、スキャン装置141でスキャンすることにより生成されたスキャン文書(すなわち、文書画像)を受信し、スキャン文書格納部322に保存する。
【0019】
ステップS602において、スキャン文書処理サーバー111は、OCR処理部332および帳票処理部333を用いて、文字認識処理および帳票種別判別処理(帳票認識処理)を実行する。文字認識結果の文字列、各文字領域の位置情報、帳票種別の判別結果は、スキャン文書処理結果格納部325に格納される。また、帳票種別判別処理により、帳票種別が判別された場合は、当該判別された帳票種別に付与すべきメタデータの項目名も特定されるものとする。帳票種別は、前述したように、スキャン文書を領域解析することに識別される領域の配置パターンや、文字認識結果の文字列の情報や、スキャン文書から検出された2次元コード等を用いて判別することができる。
【0020】
また、スキャンした文書にメタデータを付与する際に利用した文字領域の位置情報と当該文書のレイアウトとを学習して学習済みモデルを作成しておくようにしてもよい。そうすれば、同じ帳票種別の類似するレイアウトを有する新たな文書をスキャンした場合に、当該学習済みモデルに基づき、メタデータとして利用する文字領域の位置を特定し、当該文字領域の文字認識結果を用いて当該スキャン文書に対してメタデータを自動的に付与することができる。この場合、ユーザは、当該自動付与されたメタデータが正しいかどうかをクライアント端末で確認し、必要に応じてメタデータを修正した後、外部システム(業務サーバー)への登録指示を行えばよい。
【0021】
一方で、文字認識処理により文書のタイトルを認識することで帳票種別を判別することができたとしても、類似のレイアウトを有する文書を学習済みでなかったり、一部の文字領域が特定できなかった場合などは、メタデータを自動的に付与することができない。この場合、ユーザは、自動付与されていないメタデータに関して、ユーザの操作により入力を行った後、外部システム(業務サーバー)への登録指示を行うことになる。
【0022】
ステップS603において、スキャン文書処理サーバー111は、クライアント端末からスキャン文書の表示リクエストを受信したか判定する。表示リクエストを受信したと判定した場合は、ステップS604において、当該リクエストされたスキャン文書のプレビュー画像と、文字認識結果(文字領域の位置情報、および、各文字領域で認識された文字列の情報)と、帳票種別に対応するメタデータの項目名とを、クライアント端末に送信する。このとき、学習済みモデルに基づき、メタデータの少なくとも一部が既に自動付与されている場合は、自動付与されているメタデータの情報も一緒に送信する。
【0023】
図4を用いて、クライアント端末においてクライアントアプリケーション351を実行することにより表示される画面UIの動作概要を説明する。なお、クライアントアプリケーションがWebアプリケーションである場合は、ウェブブラウザー上で表示される画面である。プレビューペイン401には、スキャンされた文書画像(ページ画像)402がプレビュー表示される。プレビューペイン401では、文書画像402をスクロールしたりズームしたりすることにより、文書画像内のユーザ所望の箇所を表示させることができる。メタデータペイン411には、当該プレビューペインにプレビュー表示されている文書画像に対して、メタデータとして設定するための値を入力するための複数の入力欄(入力用のGUI部品(入力用コントロールとも呼ぶ))が含まれている。メタデータとして使用される複数の項目名は、スキャンした文書画像の帳票種別に応じて決定されるものとする。例えば、文書画像402は「購入注文書」として帳票判別され、購入注文書に対して付与(関連付け)すべきメタデータの項目名として、「Customer Name」、「Address」、「Telephone Number」の3つがあった場合、
図4のようなメタデータペイン411を含む設定画面が表示される。メタデータペイン411には、各項目名に関するメタデータを入力するための入力欄413,415,417と、文字認識結果を用いてメタデータの入力を行った場合に当該文字認識結果の認識元となった文字領域の部分画像を表示するための部分画像表示欄412,414,416と、が含まれている。類似帳票に基づいてメタデータが自動付与されている場合は、入力欄に当該自動付与されたメタデータが表示されるが、メタデータが自動付与されなかった場合は
図4のように空欄となっている。この場合、ユーザが、所望の項目名を選択することで入力先の項目名を特定した後に、文書画像402内の所望の文字領域を選択すると、当該選択された文字領域の部分画像が、当該入力先として選択中の項目名に対応する部分画像表示欄に表示される。そして、当該選択された文字領域の部分画像に対応する文字認識結果が、当該入力先として選択中の項目名に対応する入力欄に入力される。なお、入力欄に対して、ユーザがクライアント端末のキーボードを用いて、文字列をキー入力したり修正したりすることも可能とする。
【0024】
図4の421を用いて、文書画像402における直交座標系を説明する。
図4の421は、文書画像402の上端側の一部を模式的に示しており、ページ画像402の左上の角が、当該ページ画像における原点として定義している。OCR処理部332は、ページ画像に対してOCR処理を実行して、文字列として認識された文字領域422,423,424それぞれの始点座標(文字領域の左上の座標)・幅・高さを取得する。
図4の421では、網掛けされている文字領域422,423,424の情報が取得されたものとする。当該取得された文字領域の情報は内部的に保持され、ユーザが文書画像上でマウスクリックすると、当該クリックされた位置に対応する文字領域が選択状態となる。なお、文書画像402には、他にも文字領域が存在するが、ここでは説明を省略する。例えば、文字領域424の場合は、始点座標(1200,700)、幅720、高さ120などと表現される。
【0025】
図5は、類似帳票に基づいて、項目名「Customer Name」512に関してはメタデータが自動付与されたが、それ以外の項目名に関してはメタデータが付与されなかった場合の画面の例である。この場合、メタデータペイン511内の項目名「Customer Name」512に対しては、当該自動付与に用いられた文字領域の部分画像が切り出されて部分画像表示欄513に表示され、かつ、当該自動付与されたメタデータ(当該文字領域の文字認識結果)が入力欄514に入力された状態で表示される。なお、メタデータが未設定である項目名に関して、部分画像表示欄は515のように部分画像が未設定であることを示す「+」ボタンを表示し、かつ、入力欄は516のように空欄にする。ユーザは、未設定の項目名に対しては、
図4の場合と同様に、文書画像内の所望の文字領域を選択したり、キーボードを用いてキー入力したりすることにより、各項目名のメタデータを設定することになる。
【0026】
クライアント端末において、スキャン文書に対して付与するメタデータを確認・修正した後、ユーザにより登録指示が為された場合、クライアント端末はスキャン文書処理サーバーに対して登録リクエストを送信する。このとき、登録リクエストには、
図4や
図5の画面を介して設定されたメタデータに関する情報が含まれている。スキャン文書処理サーバー111は、ステップS605において、クライアント端末から当該登録リクエストを受信すると、ステップS606に進んで、当該文書画像とメタデータとを外部システム(業務サーバー131)等に登録する。
【0027】
図8のフローチャートを用いて、クライアント端末121のクライアントアプリケーション351により表示されるメタデータの設定画面について説明する。スキャン文書処理サーバー111のスキャン文書処理アプリケーション311は、スキャン文書ジョブキュー323から処理待ちのスキャン文書ジョブの一覧に関するキューを取得し、クライアントアプリケーション351に提供する。クライアント端末のユーザーが、当該提供された処理待ちのスキャン文書ジョブ一覧の中から、所望のスキャン文書ジョブを処理対象として選択すると、クライアントアプリケーション351は当該選択されたジョブの表示リクエストをサーバー111に送信する。スキャン文書処理アプリケーション311は、前述したS603で表示リクエストを受信すると、スキャン文書格納部322から当該リクエストされたスキャン文書のプレビュー画像を取得する。さらに、スキャン文書処理結果格納部325から当該リクエストされたスキャン文書の文字認識結果(文字領域の位置情報と、各文字領域で文字認識された文字列の情報)を取得する。さらに、メタデータ管理部から、当該リクエストされたスキャン文書の帳票種別に対応するメタデータの項目名の一覧と、メタデータの少なくとも一部が既に自動付与されている場合は当該付与済みのメタデータの情報とを取得する。そして、スキャン文書処理アプリケーション311は、これらのデータをクライアントアプリケーション351に提供する。クライアントアプリケーション351は、ステップS801において、当該提供されたプレビュー画像、文字認識結果、メタデータの項目名、既に付与済みのメタデータの情報とを受信する。
【0028】
ステップS802において、クライアントアプリケーション351は、S801で受信した情報に基づいて、プレビューペインにプレビュー画像を表示し、メタデータペインにメタデータの項目名と既に付与済みのメタデータの情報とを表示する。ステップS803において、クライアントアプリケーション351は、変数nを1に設定する。
【0029】
ステップS804において、クライアントアプリケーション351は、メタデータのn番目の項目名の入力欄(入力コントロール)にデータが既に入力されているか判定する。既に入力されていると判定した場合は、ステップS805に進んで、変数nをインクリメントする。そして、ステップS806で全ての項目名にデータが入力済みでないと判定した場合は、ステップS804に戻って、次の項目名にデータが既に入力されているか判定する。
【0030】
ステップS804で、n番目の項目名の入力欄にデータが未だ入力されていないと判定した場合は、ステップS808に進み、当該n番目の項目名の入力欄(入力コントロール)にカーソルを合わせて、当該n番目の項目名を入力先として特定する。例えば、
図4の例では、全ての項目名が未入力の状態なので、1番目の項目名(Customer Name)の入力欄413にカーソルが表示され、現在の入力先となる。なお、このとき、当該項目名が入力先として選択中であることを分かりやすく表示するために、当該項目名に係る領域を太線枠で強調表示するなどしてもよい。また、
図5の例では、1番目の項目名(Customer Name)に関してはデータが入力欄514に入力されているので、2番目の項目名(Address)の入力欄516にカーソルが表示される。
【0031】
ステップS809において、クライアントアプリケーション351は、プレビューペイン501に表示しているプレビュー画像内の文字領域がユーザによりクリック操作されたか(すなわち、プレビュー画像内の文字領域がユーザにより選択されたか)判定する。
【0032】
プレビュー画像内の文字領域が選択されたと判定された場合、ステップS810において、当該選択された文字領域に関する文字認識結果が、当該カーソルが合わせられている入力欄(すなわち、選択中の項目名に関する入力欄)に入力される。文字認識結果が入力欄に入力された後は、ステップS805、S806、S804を経由してステップS808に進むことにより、次の未入力の項目名の入力欄にカーソルが自動的に移動することになる。すなわち、ユーザーが、プレビューペインに表示されているプレビュー画像において、所望の文字領域を選択する操作を行うだけで、メタデータペインにおいて、未入力の項目名のうちの1つが次の入力先として特定されてカーソルが自動的に移動する。したがって、ユーザは、プレビューペイン内でのクリック操作だけで、メタデータペイン内の各項目名に関するデータを順次入力していくことができ、ユーザがマウスポインタを移動させる手間を軽減することができる。例えば、
図5の例のように、カーソルが入力欄516にあわせられているときに、プレビュー画像内の文字列「1 Pumpkin Road, New York, NY」の箇所がユーザによりクリックされた場合、
図7(a)のように、当該クリックされた位置の文字領域702が選択されて網掛け表示(又は色付け表示)され、当該選択された文字領域に対応する文字認識結果がメタデータペイン710の入力欄712に入力される。なお、この際、各項目名のデータ入力に利用された文字領域701と702は、網掛けの種類(又は色付けの種類)を変えて表示する。そして、メタデータペイン710の各項目名の左側に、対応する文字領域の網掛けの種類(又は色付けの種類)を凡例表示すれば、各項目名に関連付けたデータがどの位置の文字領域から抽出された文字列なのか、ユーザは容易に判別できるようになる。
【0033】
また、当該選択された文字領域に関する文字認識結果が、当該選択中の入力欄に入力された結果、全ての項目名の入力欄にデータが入力された場合は、ステップS805、S806、S807の順に進むことにより、登録ボタンにフォーカスが合わせられることになる。例えば、
図7(a)の画面のようにカーソルが入力欄713に移動した状態で、ユーザによりプレビュー画像内の文字領域703が選択されると、
図7(b)のように、入力欄713に対応する文字列が入力される。
図7(b)では、メタデータペインのすべての入力欄711,712,713にデータが入力されているので、登録ボタン(Registerボタン)714にフォーカスが当たっている。登録ボタンにフォーカスが当たっている状態でユーザがキーボードのEnterキーを押下すれば、後述するステップS816の登録処理が実行される。
【0034】
ステップS811において、クライアントアプリケーション351は、ユーザによりキーボードを介してキー入力されたか判定し、キー入力されたと判定した場合は、ステップS812に進む。ステップS812において、クライアントアプリケーション351は、当該キー入力された文字列を、当該カーソルが合わせられている入力欄に入力する。このように、プレビュー画像内に所望の文字列が無かった場合は、キーボード操作でキー入力することも簡単に行える。キー入力を行った場合も、ステップS805、S806、S804を経由してステップS808に進むことにより、次の未入力の項目名の入力欄にカーソルが自動的に移動することになる。
【0035】
ステップS813において、クライアントアプリケーション351は、現在選択中の項目名(現在カーソルが合わせられている項目名)とは異なる他の項目名がユーザにより選択指示されたか判定し、選択されたと判定した場合はステップS814に進む。
【0036】
ステップS814において、クライアントアプリケーション351は、当該ユーザにより選択された項目名の入力欄にカーソルを合わせ、ステップS809以降の処理に戻る。
【0037】
ステップS815において、クライアントアプリケーション351は、登録指示が為されたか、キャンセル指示が為されたか判定する。登録指示が為されたと判定した場合は、ステップS816において、クライアントアプリケーション351は、メタデータペインの各項目名の入力欄に入力されているデータとともに、登録リクエストを送信する。なお、登録指示は、登録ボタンにフォーカスが当たっている状態でキーボードのEnterキーが押下されるか、マウス操作により登録ボタンがクリックされるか為された場合に実行される。キャンセル指示が為されたと判定した場合は、ステップS817において、クライアントアプリケーション351は、当該設定画面において入力されたデータを破棄して、処理待ちのスキャン文書ジョブの一覧を表示する画面(不図示)に戻る。
【0038】
上記実施例によれば、プレビューペインに表示されているプレビュー画像上で、ユーザが所望の文字領域を選択するだけで、対応する文字列がメタデータペインの各項目名の入力欄に入力されるとともに、未入力の項目名にカーソルが自動的に移動する。これにより、ユーザは、プレビューペインとメタデータペインとの間で、マウスポインタを移動させる頻度を減らすことができ、操作性が向上する。
【0039】
[実施例2]
実施例1では、
図8のS809でユーザにより文字領域が選択された場合、S810でその文字認識結果を入力欄に入力した後、S805、S806、S804を経由して、S808で次の項目名の入力欄にカーソルが自動的に移動するようになっていた。実施例2では、ユーザによりプレビュー画像内の文字領域が選択された場合、当該文字領域の文字認識結果の確度(信頼度)が低い場合は、カーソルを次の項目名の入力欄へ移動させずに、当該入力された文字認識結果をユーザが修正しやすくする。
【0040】
図10のフローチャートと
図9の画面例とを用いて、実施例2におけるクライアント端末121のクライアントアプリケーション351により表示されるメタデータの設定画面について説明する。
図10のフローチャートの各ステップのうち、
図8と同様のステップについては、同じ番号を付与し、詳細な説明は省略する。
【0041】
図10のステップS809においてプレビュー画像内の文字領域がユーザによりクリック操作されたと判定した場合、ステップS810において、当該選択された文字領域に関する文字認識結果が、現在カーソルが合っている入力欄に入力される。その後、
図10のステップS1001において、クライアントアプリケーション351は、当該入力された文字認識結果の確度(信頼度)が所定の閾値以上であるか判定する。ステップS1001において、文字認識結果の確度が所定の閾値以上であると判定した場合は、実施例1と同様に、ステップS805、S806、S804,S808の順に遷移することにより、次の未入力の項目名の入力欄に、カーソルが自動的に移動する。一方、ステップS1001において、文字認識結果の確度が所定の閾値より低い文字を含むと判定した場合は、カーソルを別の入力欄に移動させずに、ステップS811に遷移して、キーボード等での修正処理が行われたか判定する。
【0042】
例えば、
図5のようにカーソルが入力欄516にあるときに、
図9のようにプレビュー画像内の文字領域902が選択された場合、当該選択された文字領域の文字認識結果を入力欄に入力する。このとき、文字認識結果の文字列の中に、誤認識された文字が含まれる場合、当該文字認識結果の確度(信頼度)が低いので、カーソル912を移動させずに同じ入力欄に維持する。このとき、
図9のように、当該入力された文字列全体を選択状態にしておく。こうすることで、ユーザがこの状態から直接キーボードでキー入力すれば、当該入力されている文字列全体を当該キー入力された文字で置換することもできるし、キーボードの矢印キーを押して一部の文字のみ修正対象とすることもできる。なお、文字認識結果の確度が所定の閾値より低い場合は、文字認識結果に誤字が含まれている可能性がある旨のメッセージをさらに表示して、ユーザに注意喚起するようにしてもよい。
【0043】
実施例2によれば、文字認識結果に誤認識した文字が含まれている可能性がある場合、次の項目名の入力欄に自動的に移動しないようにするので、ユーザーが誤認識文字に気付かずにスキャン文書にメタデータを付与することを防止することができる。
【0044】
[実施例3]
実施例3では、ユーザがプレビュー画像内の文字領域をクリックしたときに当該文字領域の文字認識結果の入力先となった入力欄がユーザが意図していた入力欄と異なっていた場合に、マウスホイール操作により簡単に入力先を変更できるようにする。
【0045】
図12のフローチャートと
図11の画面例とを用いて、実施例3におけるクライアント端末121のクライアントアプリケーション351により表示されるメタデータの設定画面について説明する。
図12のフローチャートの各ステップのうち、
図8と同様のステップについては、同じ番号を付与し、詳細な説明は省略する。
【0046】
図12のステップS809においてプレビュー画像内の文字領域がユーザによりクリック操作されたと判定した場合、ステップS810において、当該選択された文字領域に関する文字認識結果が、現在カーソルが合っている入力欄に入力される。その後、
図12のステップS1201において、マウスポインタの位置が当該クリック(選択)した文字領域の範囲から外れたか、マウスのホイールが操作されたか判定する。
【0047】
マウスポインタが動かされて当該選択した文字領域から外れたとステップS1201で判定した時点で、入力欄に入力されている文字認識結果の文字列を確定して、ステップS805に進む。その後、未入力の入力欄がある場合は、ステップS806、S804を経由してS808に進むことにより、次の未入力の入力欄にカーソルが自動的に移動する。
【0048】
一方、マウスポインタで文字領域をクリックした後、マウスポインタがその文字領域内に留まっている状態で、マウスのホイール操作が為されたとステップS1201で判定した場合は、ステップS1202に進む。そして、マウスホイールの操作方向が下方向であった場合は、S1202において、当該n番目の項目名の入力欄に入力された文字認識結果の文字列を、1つ下の項目名(n+1番目の項目名)の入力欄に移動させ、変数nをn+1に更新する。さらに続けて下方向のマウスホイール操作が為された場合は、さらに1つ下の項目名の入力欄に当該入力された文字認識結果の文字列を移動させ、変数nを更新する。一方、マウスホイールの操作方向が上方向であった場合は、当該n番目の項目名の入力欄に入力された文字認識結果の文字列を、1つ上の項目名(n-1番目の項目名)の入力欄に移動させ、変数nをn-1に更新する。なお、本実施形態では、マウスホイール操作によって、文字認識結果の文字列が一番下(最後)の項目名の入力欄に移動された後、さらに、下方向へのマウスホイール操作が続けて行われた場合は、一番上(先頭)の項目名の入力欄に当該文字列を移動させる。逆に、一番上(先頭)の項目名の入力欄に文字列が移動された後、さらに、上方向へのマウスホイール操作が行われた場合は、一番下(最後)の項目名の入力欄に当該文字列を移動させるものとする。このように、実施例3では、ホイール操作に応じて「ループ状」に文字列を移動させるものとするが、これに限るものではない。すなわち、最後の項目名の入力欄に移動させた後にさらに下方向にホイール操作されたとしても先頭に戻らずにそのまま留まらせるようにしてもよい。また、先頭の項目名の入力欄に移動させた後にさらに上方向にホイール操作されたとしても最後に移動せずにそのまま留まらせるようにしてもよい。
【0049】
本実施形態では、プレビュー画像上で文字領域をクリックすることにより入力欄に入力した文字列を、マウスホイール操作の方向に応じて移動させることができる。したがって、ユーザがクリックした文字領域の文字列が別の項目名の入力欄に入力すべきものであった場合に、ユーザはマウスホイール操作により簡単に修正することができる。
【0050】
なお、実施例3で説明した
図12のフローチャートに、実施例2で説明した「文字認識結果の確度が所定閾値以上であるか」の処理を加えることも可能である。その場合は、
図12のステップS1201において、マウスポインタの位置が当該選択した文字領域から外れたと判断した場合に、
図10で説明したステップS1001の判定処理を行うようにすればよい。このようにすれば、マウスポインタの位置が当該選択した文字領域から外れた場合に、文字認識結果の確度が所定閾値以上であれば、未入力の項目名の入力欄にカーソルが自動的に移動する。一方、文字認識結果の確度が所定閾値より低ければ、当該選択中の項目名の入力欄にカーソルが留まるようになる。
【0051】
[実施例4]
上述した実施例3では、プレビュー画像内で文字領域を選択した直後にマウスのホイール操作が為された場合に、当該選択された文字領域の文字認識結果を、ホイール操作に応じた入力欄に移動させる例について説明した。
【0052】
実施例4では、プレビュー画像内で文字領域を選択する前にマウスのホイール操作が為された場合、ホイール操作に応じて、入力先として特定されている入力欄を変更する例について、
図13のフローチャートを用いて説明する。
図13のフローチャートの各ステップのうち、
図8と同様のステップについては、同じ番号を付与し、詳細な説明は省略する。
図13では、ステップS808とステップS809との間に、ステップS1301とステップS1302を設ける。
【0053】
ステップS1301において、マウスのホイール操作が為されたか判定し、ホイール操作が為されたと判定した場合はステップS1302に遷移し、ホイール操作が為されなかったと判定した場合はステップS809に遷移する。
【0054】
ステップS1302においては、マウスホイールの操作方向に連動して、現在の入力先となっている入力欄に表示されているカーソルを移動させることにより、入力先として特定されている入力欄を変更する。すなわち、ホイールの操作方向が下方向であった場合は、現在の入力先として特定されている項目名の入力欄に表示されているカーソルを、その項目より下にある項目名の入力欄に順次移動させていく。また、ホイールの操作方向が上方向であった場合は、現在の入力先として特定されている項目名の入力欄に表示されているカーソルを、その項目より上にある項目名の入力欄に順次移動させていく。
【0055】
このように構成することにより、マウスポインタがプレビューペイン上にある場合であっても、マウスのホイール操作によって、現在の入力先として特定されている項目名の入力欄を容易に変更することができる。
【0056】
なお、上述した
図13では、ステップS1301とS1302の処理を、実施例1(
図8のフローチャート)に組み込む場合について説明したが、これに限るものではない。例えば、実施例2(
図10)や実施例3(
図12)のステップS808とステップS809との間に、ステップS1301とステップS1302を組み込むようにしてもよい。
【0057】
[その他の実施例]
実施例1~4で説明した処理を実現させるためのプログラム(ソフトウエア)は、ネットワーク又はコンピュータ読取可能な記憶媒体を介して、システム或いは装置に供給されてもよい。そのシステム或いは装置のコンピュータ(CPUやMPU等)が当該プログラムを読み出して実行することにより、上述した実施例の処理を実現することができる。