以下、本開示の技術を実施するための形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
<第1の実施形態>
[システム構成]
図1は、本実施形態に係る、画像処理システムの全体構成を示す図である。画像処理システムは、MFP(Multifunction Peripheral)110、MFP連携サーバ120およびストレージサーバ130を含む。MFP110は、LAN(Local Area Network)経由でインターネット上の各種サービスを提供するサーバに対して通信可能に接続されている。
図1は、本実施形態に係る、画像処理システムの全体構成を示す図である。画像処理システムは、MFP(Multifunction Peripheral)110と、インターネット上でクラウドサービスを提供するサーバ装置120及び130と、を含む。MFP110は、インターネットを介してサーバ装置120及び130と通信可能に接続されている。
MFP110は、スキャン機能を有する画像処理装置の一例である。MFP110は、スキャン機能に加え印刷機能やBOX保存機能といった複数の機能を有する複合機である。サーバ装置120及び130は、共にクラウドサービスを提供する画像処理装置の一例である。本実施形態のサーバ装置120は、MFP110から受け取ったスキャン画像に対し画像解析を行ったり、別のサービスを提供するサーバ装置130に対しMFP110からのリクエストを転送したりするクラウドサービスを提供する。
以下、サーバ装置120が提供するクラウドサービスを「MFP連携サービス」と呼ぶこととする。サーバ装置130は、インターネットを介して送られてきたファイルを保存したり、モバイル端末(不図示)などのウェブブラウザからの要求に応じて保存ファイルを提供したりするクラウドサービス(以下、「ストレージサービス」と呼ぶ)を提供する。本実施形態では、MFP連携サーバを提供するサーバ装置120を「MFP連携サーバ」と呼び、ストレージサービスを提供するサーバ装置130を「ストレージサーバ」と呼ぶこととする。
図1に示す画像処理システム100の構成は一例であって、これに限定されない。例えば、MFP連携サーバ120の機能をMFP110が兼ね備えていてもよい。また、MFP連携サーバ120はインターネット上ではなくLAN(Local Area Network)経由でMFP110と接続されていてもよい。また、ストレージサーバ130を、メール配信サービスを行うメールサーバに置き換えて、文書のスキャン画像をメールに添付し送信する場面に適用してもよい。
[MFPのハードウェア構成]
図2は、MFP110のハードウェア構成を示すブロック図である。MFP110は、制御部210、操作部220、プリンタ部221、スキャナ部222、モデム223を有する。制御部210は、以下の各部211~219で構成され、MFP110全体の動作を制御する。CPU211は、ROM212に記憶された様々な制御プログラム(後述の機能構成図で示す各種機能に対応するプログラム)を読み出して実行する。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。なお、本実施例では1つのCPU211が1つのメモリ(RAM213またはHDD214)を用いて後述のフローチャートに示す各処理を実行するものとするが、これに限定されない。例えば、複数のCPUや複数のRAMまたはHDDを協働させて各処理を実行してもよい。HDD214は、画像データや各種プログラムを記憶する大容量記憶部である。操作部I/F215は、操作部220と制御部210とを接続するインタフェースである。
操作部220には、表示部としても機能するタッチパネルやキーボードなどが備えられており、ユーザによる操作/入力/指示を受け付ける。なお、タッチパネルへのタッチ操作には、人の指による操作やタッチペンによる操作が含まれる。プリンタI/F216は、プリンタ部221と制御部210とを接続するインタフェースである。印刷用の画像データはプリンタI/F216を介して制御部210からプリンタ部221へ転送され、紙等の記録媒体上に印刷される。スキャナI/F217は、スキャナ部222と制御部210とを接続するインタフェースである。スキャナ部222は、不図示の原稿台やADF(Auto Document Feeder)にセットされた原稿を光学的に読み取ってスキャン画像データを生成し、スキャナI/F217を介して制御部210に入力する。スキャナ部222で生成されたスキャン画像データは、プリンタ部221にて印刷したり(コピー出力)、HDD214に保存したり、LANを介してMFP連携サーバ120等の外部装置にファイル送信したりすることができる。モデムI/F218は、モデム223と制御部210とを接続するインタフェースである。モデム223は、PSTN上のファクシミリ装置(不図示)との間で画像データをファクシミリ通信する。ネットワークI/F219は、制御部210(MFP110)をLANに接続するインタフェースである。MFP110は、ネットワークI/F219を用いて、スキャン画像データをMFP連携サーバ120に送信したり、MFP連携サーバ120から各種データを受信したりする。以上説明したMFP110のハードウェア構成は一例であり、必要に応じてその他の構成を備えるものであってもよいし、一部の構成を有していなくてもよい。
[サーバのハードウェア構成]
図3は、MFP連携サーバ120/ストレージサーバ130のハードウェア構成を示すブロック図である。MFP連携サーバ120とストレージサーバ130は共通のハードウェア構成を有し、CPU311、ROM312、RAM313、HDD314及びネットワークI/F315で構成される。CPU311は、ROM312に記憶された制御プログラムを読み出して各種処理を実行することで、全体の動作を制御する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、画像データや各種プログラムを記憶する大容量記憶部である。ネットワークI/F315は、制御部310をインターネットに接続するインタフェースである。MFP連携サーバ120及びストレージサーバ130は、ネットワークI/F315を介して他の装置(MFP110など)から様々な処理のリクエストを受け、当該リクエストに応じた処理結果を返す。
[画像処理システムの機能構成]
図4は、本実施形態に係る、画像処理システム100の機能構成を示すブロック図である。以下、画像処理システム100を構成するMFP110及び、MFP連携サーバ120及びストレージサーバ130それぞれの役割に対応した機能構成を順に説明する。なお、以下では、各装置が有する諸機能のうち、文書をスキャンして電子化(ファイル化)し、ストレージサーバ130に保存を行うまでの処理に関わる機能に絞って説明を行うものとする。
[MFPの機能構成]
MFP110の機能モジュールは、ネイティブ機能モジュール410とアディショナル機能モジュール420の2つに大別される。ネイティブ機能モジュール410はMFP110に標準的に備えられたアプリケーションであるのに対し、アディショナル機能モジュール420はMFP110に追加的にインストールされたアプリケーションである。アディショナル機能モジュール420は、Java(登録商標)をベースとしたアプリケーションであり、MFP110への機能追加を容易に実現できる。なお、MFP110には図示しない他の追加アプリケーションがインストールされていてもよい。
ネイティブ機能モジュール410は、スキャン実行部411およびスキャン画像管理部412を有する。また、アディショナル機能モジュール420は、表示制御部421、スキャン制御部422、連携サービスリクエスト部423、画像処理部424を有する。
表示制御部421は、操作部220のタッチパネルに、各種のユーザ操作を受け付けるためのユーザインタフェース画面(UI画面)を表示する。各種のユーザ操作には、例えば、MFP連携サーバ120へアクセスするためのログイン認証情報の入力、スキャン設定、スキャンの開始指示、ファイル名設定、ファイルの保存指示などがある。
スキャン制御部422は、UI画面でなされたユーザ操作(例えば「スキャン開始」ボタンの押下)に応じて、スキャン設定の情報と共にスキャン実行部411に対しスキャン処理の実行を指示する。スキャン実行部411は、スキャン制御部422からのスキャン処理の実行指示に従い、スキャナI/F217を介してスキャナ部222に文書の読み取り動作を実行させ、スキャン画像データを生成する。生成したスキャン画像データは、スキャン画像管理部412によってHDD214に保存される。この際、保存されたスキャン画像データを一意に示すスキャン画像識別子の情報が、スキャン制御部422へ通知される。スキャン画像識別子は、MFP110においてスキャンした画像をユニークに識別するための番号や記号、アルファベットなどである。スキャン制御部422は、例えばファイル化する対象のスキャン画像データを上記のスキャン画像識別子を使ってスキャン画像管理部412から取得する。そして、ファイル化のために必要な処理のリクエストをMFP連携サーバ120に対して行うよう、連携サービスリクエスト部423に対して指示する。
連携サービスリクエスト部423は、MFP連携サーバ120に対して各種処理のリクエストを行ったり、そのレスポンスを受け取ったりする。各種処理には、例えば、ログイン認証、スキャン画像の解析、スキャン画像データの送信などが含まれる。MFP連携サーバ120とのやり取りはRESTやSOAPなどの通信プロトコルを使用される。画像処理部424は、スキャン画像データに対し所定の処理を行って、表示制御部421が表示するUI画面で用いられる画像を生成する。
なお、MFP110とは異なる装置(不図示のクライアントPCなど)が、上述のアディショナル機能モジュール420等によって実現される一部の機能を備えていてもよい。すなわち、MFP110にて得たスキャン画像の解析リクエストや解析結果に基づくファイル名の設定等を、クライアントPCで行うようなシステム構成でも構わない。
また、クライアントPCにおいてファイル名の設定等を行う場合、ファイル名等の設定を行うためのプログラム(モジュール)は、クライアントPCに予めインストールしておくように構成してもよいが、これに限るものではない。例えば、クライアントPCが備える汎用のウェブブラウザを利用して、ファイル名等の設定を行うためのウェブアプリケーションをMFP連携サーバ120から取得して実行するように構成してもよい。
[サーバ装置の機能構成]
まず、MFP連携サーバ120の機能構成について説明する。MFP連携サーバ120は、リクエスト制御部431、画像処理部432、ストレージサーバアクセス部433、データ管理部434、表示制御部435を有する。リクエスト制御部431は、外部装置からのリクエストを受信できる状態で待機しており、受信したリクエスト内容に応じて、画像処理部432、ストレージサーバアクセス部433、データ管理部434に対し所定の処理の実行を指示する。
画像処理部432は、MFP110から送られてくるスキャン画像データに対して、文字領域の検出処理、文字認識処理(OCR処理)、類似文書の判定処理といった解析処理の他、回転や傾き補正といった画像加工処理を行う。なお、以下では、スキャン画像から検出される文字領域のことを「テキストブロック」と呼ぶこととする。また、対象となる文書として、見積書や請求書といった帳票を例に説明を行うこととし、そのスキャン画像を「帳票画像」と呼ぶ場合がある。
ストレージサーバアクセス部433は、ストレージサーバ130に対する処理のリクエストを行う。クラウドサービスでは、RESTやSOAPなどのプロトコルを用いてストレージサーバにファイルを保存したり、保存したファイルを取得したりするための様々なインタフェースを公開している。ストレージサーバアクセス部433は、公開されたインタフェースを使用して、ストレージサーバ130に対するリクエストを行う。データ管理部434は、MFP連携サーバ120で管理するユーザ情報、画像解析結果、各種設定データ等を保持・管理する。
表示制御部435は、インターネット経由で接続されたPCやモバイル端末(いずれも不図示)上で動作しているウェブブラウザからのリクエストを受けて、画面表示に必要な画面情報(HTML、CSS等)を返す。ユーザは、ウェブブラウザで表示される画面経由で、登録されているユーザ情報を確認したり、スキャン設定を変更したりできる。
次に、ストレージサーバ130の機能構成について説明する。ストレージサーバ130は、リクエスト制御部441、ファイル管理部442、表示制御部443を有する。リクエスト制御部441は、外部装置からのリクエストを受信できる状態で待機しており、本実施形態においてはMFP連携サーバ120からのリクエストに応じて、受信したファイルの保存や保存ファイルの読み出しをファイル管理部442に指示する。そして、リクエストに応じたレスポンスをMFP連携サーバ120に返す。表示制御部443は、インターネット経由で接続されたPCやモバイル端末(いずれも不図示)上で動作しているウェブブラウザからのリクエストを受けて、画面表示に必要な画面構成情報(HTML、CSS等)を返す。ユーザは、ウェブブラウザで表示される画面経由で、保存ファイルを確認したり取得したりすることができる。
[全体の処理の流れ]
図5は、MFP110で文書(帳票)をスキャンし、得られた帳票画像をファイル化してストレージサーバに保存する際の、装置間の処理の流れを示すシーケンス図である。図6はMFP110の起動時に表示されるメインメニューのUI画面(以下、「メイン画面」と表記)の一例を示す図である。文書をスキャンしてファイル化し、クラウドストレージサービスの利用に必要な専用のアプリケーションをMFP110にインストールすることで、メイン画面600上に「スキャンしてクラウドストレージに保存」ボタン601が表示されるようになる。そして、ユーザがメイン画面600内に表示されたメニューボタンの中から「スキャンしてクラウドストレージに保存」ボタン601を押下すると、図5のシーケンス図で示される一連の処理が開始する。なお、図5のシーケンス図は、スキャン画像をファイル化する際に付与されるファイル名を設定する場合の説明となっているが、ファイル名の他、フォルダパスやメタデータといったプロパティ全般に適用可能である。
以下、図5のシーケンス図に沿って、装置間のやり取りを時系列に説明する。なお、以下の説明において記号「S」はステップを表す。
MFP110は、MFP連携サーバ120にアクセスするためのログイン認証の情報を入力するUI画面(以下、「ログイン画面」と表記)を操作部220に表示する(S501)。図7にログイン画面の一例を示す。ユーザが、予め登録されているユーザIDとパスワードを、ログイン画面700上の入力欄702及び703にそれぞれ入力し「ログイン」ボタン701を押下すると、ログイン認証のリクエストがMFP連携サーバ120に送信される(S502)。
ログイン認証のリクエストを受けたMFP連携サーバ120は、当該リクエストに含まれるユーザIDとパスワードを用いて認証処理を行う(S503)。認証処理の結果、正規のユーザであることが確認されれば、MFP連携サーバ120は、アクセストークンをMFP110に返す。以後、MFP110からMFP連携サーバ120に対して行う各種リクエストの際にこのアクセストークンを一緒に送ることで、ログイン中のユーザが特定される。本実施形態では、MFP連携サーバ120へのログインの完了によって、ストレージサーバ130へのログインも同時に完了するものとする。このためにユーザは、インターネット上のPC(不図示)のウェブブラウザ等を介して、MFP連携サービスを利用するためのユーザIDとストレージサービスを利用するためのユーザIDとの紐づけを予め行っておく。これにより、MFP連携サーバ120へのログイン認証に成功すれば同時にストレージサーバ130へのログイン認証も完了し、ストレージサーバ130にログインするための操作を省略できる。そして、MFP連携サーバ120においては、自装置にログインしたユーザからのストレージサービスに関するリクエストにも対応可能となる。なお、ログイン認証の方法は一般的に公知な手法(Basic認証、Digest認証、OAuthを用いた認可等)を用いて行えばよい。
ログインが完了すると、MFP110には、スキャン設定用のUI画面(以下、「スキャン設定画面」と表記)が操作部220に表示される(S504)。図8にスキャン設定画面の一例を示す。スキャン設定画面800には、「スキャン開始」ボタン801、カラー設定欄802、解像度設定欄803が存在する。「スキャン開始」ボタン801は、原稿台にセットした文書(本実施形態では見積書や請求書といった帳票を想定)に対するスキャン処理の開始を指示するためのボタンである。カラー設定欄802では、スキャン時のカラーモードを設定する。例えばフルカラーやモノクロといった選択肢の中から指定できるようになっている。解像度設定欄803では、スキャン時の解像度を設定する。例えば600dpiや1200dpiといった選択肢の中から指定できるようになっている。なお、カラーモードと解像度は設定項目の一例であって、これらすべてが存在しなくてもよいし、これら以外の設定項目が存在してもよい。また、カラーモードや解像度に関する選択肢を、ストレージサービスの要求する設定値のみに限定したりしてもよい。ログインユーザは、このようなスキャン設定画面800を介してスキャン処理についての詳細な条件設定を行なう。スキャン設定を終えたログインユーザが、MFP110の原稿台にスキャン対象の文書をセットし、「スキャン開始」ボタン801を押下するとスキャンが実行される(S505)。これにより、紙文書を電子化したスキャン画像データが生成される。スキャンの完了後、MFP110は、スキャンによって得られたスキャン画像データを、その解析リクエストと共にMFP連携サーバ120に送信する(S506)。
帳票画像の解析リクエストを受けたMFP連携サーバ120では、リクエスト制御部431が画像処理部432に対し、解析処理の実行を指示する(S507)。その際、リクエスト制御部431は、受信した解析リクエストを一意に特定可能なリクエストIDをMFP110に返す。
一方、解析処理の実行指示を受けた画像処理部432は、解析リクエストに係る帳票画像に対する解析処理を実行する(S508)。この解析処理では、まず解析対象となる帳票画像内に存在するテキストブロックを検出する処理を行う。テキストブロックの検出は、例えば、ある閾値で2値化を行った画像から文字と推測される矩形領域を抽出する方法等、既知の方法を適用すればよい。次に、テキストブロック検出処理によって見つかった各テキストブロックに対して、文字認識処理(OCR:Optical Character Recognition)を行う。
そして、解析対象の帳票画像が以前に電子化された帳票画像と類似しているかどうかを学習データとして登録されている帳票と照合して判別する処理(帳票判別処理)を行う。解析対象の帳票画像と類似している過去の帳票(画像)を類似帳票とよぶ。
この帳票判別処理では、解析対象の帳票画像内に存在する各テキストブロックが当該帳票画像内のどこにそれぞれ位置するかを示す配置情報を用いる。具体的には、今回の解析対象の帳票画像の配置情報と、学習データ等に登録された過去の帳票画像の配置情報とを比較し、テキストブロックの配置が同一・類似であるかどうかを判定する。これは、テキストブロックの配置が同一又は類似の関係にあれば、それらは同一の文書フォーム(帳票フォーム)を用いて作成された同種の帳票であると推測できることに基づいている。
これら解析処理によって得られた結果は、リクエスト制御部431に渡される。なお、本実施形態では、テキストブロックの配置の一致度合いのみに基づき帳票の類否判定を行っているが、例えば、OCR結果から帳票の種別(見積書、請求書など)を特定し、得られた種別の情報を加味して類否判定を行ってもよい。なお、本ステップの詳細については、図11を用いて後述する。
上記解析処理が行われている間、MFP110は、上述のリクエストIDを使用して、MFP連携サーバ120に対して定期的(例えば数百ミリ秒から数ミリ秒程度毎)に処理状況の問合せを行う(S509~S509’)。この問合せは、MFP連携サーバ120からの解析処理の完了レスポンス(S510)が取得できるまで繰り返し実行される。MFP連携サーバ120は、処理状況の問合せを受けると、リクエストIDに対応する解析処理の進行状況を確認し、完了していない場合は処理中を表すレスポンスを返す。
レスポンスには、現在の処理状況を示す項目である“status”が含まれ、“status”に保持される文字列によって現在の処理状況が示される。例えば“status”に保持される文字列が“processing”の場合、MFP連携サーバ120で処理が行われている最中であることを示す。“completed”の場合、処理が完了している状態であることを示す。“failed”の場合、処理が失敗したことを示す。“completed”の場合、処理が完了していることを示す。なお、レスポンスには、“status”と共にスキャン画像を解析した解析結果情報、スキャン設定情報等が含まれる。
処理完了レスポンスを受信した後、MFP110は、当該レスポンスに含まれる画像解析結果の格納先を示すURLを用いて、解析処理の結果をMFP連携サーバ120に対してリクエストする(S511)。リクエストを受けてMFP連携サーバ120のリクエスト制御部431は、解析処理の結果情報を返す。
そして、スキャン設定画面の表示から画像解析結果の取得までの一連の処理(S504~S511)が、ファイル化対象の帳票の数だけ繰り返されることになる。もしくは、S505にて複数の帳票をまとめてスキャンし、その解析リクエスト(S506)に基づく解析指示(S507)と解析処理(S508)を帳票単位で分割して行うようにしてもよい。
MFP110は、スキャンした帳票の一覧を確認するための各帳票画像にファイル名を設定してストレージサーバ130に保存するファイルを指示するためのUI画面(ストレージ保存画面)をリクエストする(S512)。MFP110は、MFP連携サーバ120の表示制御部435の制御によって生成された画面情報に基づき、ストレージ保存画面を操作部220のタッチパネルに表示する(S513)。ストレージ保存画面の詳細については後述する。
UI画面は、例えば、MFP110にインストールされているウェブブラウザによって表示される。MFP110は、ストレージ保存画面を表示するためのURLを用いて、そのURLにアクセスすることでMFP連携サーバ120からストレージ保存画面を表示するための画面情報を取得する。ユーザは、MFP110のウェブブラウザでストレージ保存画面によって、帳票画像のファイルの一覧を確認することができる。
ユーザが、ストレージ保存画面900内のスキャン済み帳票一覧901(図9参照)で、帳票画像のファイルを選択し、「編集」ボタン903(図9参照)を押下すると、MFP110は、その入力を受け付ける。そして、MFP110は、選択された帳票画像のファイル名を設定するためのファイル名設定画面1000(図10参照)を表示する。ファイル名設定画面1000については後述する。その後ユーザが、ファイル名設定画面1000でファイル名の入力を行い、「OK」ボタン1007(図10参照)を押すと、MFP110は、その入力を受け付け、ストレージ保存画面900に戻る。
ユーザがストレージ保存画面900の「送信」ボタン902(図9参照)を押下すると、MFP110は、その入力を受け付ける。MFP110は、ユーザの選択に係る帳票のスキャン画像に対するファイル名等のプロパティの設定においてユーザが行った入力操作に関する情報(設定時入力情報)を含んだ学習リクエストをMFP連携サーバ120に送信する(S514)。
学習リクエストを受信したMFP連携サーバ120では、リクエスト制御部431が、画像処理部432に対し学習処理の実行を指示する(S515)。画像処理部432は、解析対象の帳票画像に存在する各テキストブロックの配置情報と、S514で受け取った学習リクエストに含まれるファイル名設定時の入力情報(ファイル名に使用したテキストブロックの情報)を、学習データとして保存する(S516)。学習処理が完了すると、リクエスト制御部431は、処理完了のレスポンスをMFP110に返す。
その後、MFP110は、選択に係る帳票画像のデータとそのファイル送信時に設定するファイル名等の情報と共に、当該帳票画像の保存リクエストをMFP連携サーバ120に送信する(S517)。保存リクエストを受信したMFP連携サーバ120では、リクエスト制御部431が、ファイル生成処理を開始すると共に保存リクエストを正常に受けたことを示すレスポンスをMFP110に返す。
そのレスポンスを受け取ったMFP110は、送信した帳票画像のファイルを一覧から削除する。そしてMFP110は処理を終了し、スキャン設定画面の表示状態(S504)に戻る。
一方、MFP連携サーバ120では、事前に登録されたスキャン設定からファイルフォーマットの情報を取得し、当該ファイルフォーマットに従って帳票画像をファイル化する(S518)。こうして生成された帳票画像ファイルは、ストレージサーバ130に送信され、保存される(S519)。
[ストレージ保存画面について]
図9は、S513においてMFP110のタッチパネルに表示されるストレージ保存画面900の一例を示す図である。画像解析処理が行われ、ストレージサーバ130に送信される前の帳票画像のファイルの一覧を、ユーザは、ストレージ保存画面900で確認することができる。
図9のストレージ保存画面900には、スキャン済み帳票一覧901、「送信」ボタン902、「編集」ボタン903、「削除」ボタン904が存在する。さらに、グループバー908、グループ表示切り替えボタン909、一覧表示順キー選択リスト910、一覧表示フィルタリスト911が存在する。
「削除」ボタン904は、帳票画像のファイルを削除するためのボタンである。ユーザが、スキャン済み帳票一覧901の中から任意の帳票画像のファイルを選択し「削除」ボタン904を押下することで、選択された帳票画像のファイルがスキャン済み帳票一覧901から削除される。
「編集」ボタン903は、帳票画像のファイルのファイル名を設定するためのUI画面に画面を切り替えるためのボタンである。ユーザが、ストレージ保存画面900から、任意の帳票画像のファイルを選択し、「編集」ボタン903を押すと、MFP110は、その指示を受け付ける。そして、MFP110の表示制御部421は、選択された帳票画像のファイル名を設定するためのUI画面(以下、「ファイル名設定画面」と表記)をMFP連携サーバ120にリクエストして、ファイル名設定画面をタッチパネルに表示させる。
図10は、ファイル名設定画面1000の一例を示す図である。ファイル名設定画面1000においてユーザがファイル名を設定して「OK」ボタン1007を押下すると、タッチパネルに表示される画面は、再び図9に示すストレージ保存画面900に戻る。ファイル名設定画面1000の説明については、後述する。
「送信」ボタン902は、ストレージサーバ130に、帳票画像のファイルデータを送信するためのボタンである。ユーザが、スキャン済み帳票一覧901から任意の帳票画像のファイルを選択し、「送信」ボタン902を押下することで、ストレージサーバ130に対して選択された帳票画像のファイルの送信が実行される。なお、ファイルの送信が正常に完了した場合、そのファイルに関する一行分の情報が、スキャン済み帳票一覧901から削除される。
スキャン済み帳票一覧901には、今回スキャンして得られた帳票画像のファイルの情報が、各行にファイルごとに表示されるように一覧形式で表示される。スキャン済み帳票一覧901は、「ファイル名」、「送信先」、「スキャン日時」の3つの項目を有する。
「ファイル名」は、今回スキャンして得られた帳票画像のファイル名を表示する列である。帳票画像が学習済み帳票である場合、その帳票画像のファイル名については、その帳票画像に類似する帳票における学習時の入力情報と、その帳票画像の文字認識結果と、に基づきファイル名が生成される。帳票画像が未学習帳票の場合、スキャン実行した日時等のデフォルトのファイル名が生成される。そして、生成されたファイル名が「ファイル名」の列に表示される。
なお、“学習済み”とは、帳票判別処理において、学習データの中に同一の帳票フォームで作成された帳票(類似帳票)があると判定され、その類似帳票にファイル名等のプロパティの設定に用いられた情報(設定時入力情報)が保存されている帳票である。また、“未学習”とは設定時入力情報が保存されていない帳票である。つまり帳票判別処理において、類似帳票が無いと判定された場合も、解析対象の帳票画像は新規の帳票であることから未学習の帳票となる。
なお、未学習帳票であるの場合のデフォルトのファイル名はスキャンする前にユーザが設定できるようにしてもよい。上述したファイル名設定画面1000でユーザがファイル名を入力した場合はその名称が表示される。
「送信先」はファイルの送信先であるストレージサーバ130の名称を表示するための項目である。「スキャン日時」は帳票をスキャンした日時を表示するための項目である。
本実施形態では、スキャン済み帳票一覧901に表示されている今回スキャンして得られた帳票画像のファイルを、類似する帳票ごとにまとめて表示させることができる。つまり、S508における類似帳票の判定において、同一の帳票に類似していると判定された帳票画像については、同一の種別の帳票として、その帳票画像のファイル群を1つのグループとしてまとめて表示することができる。
さらに、本実施形態については、未学習の帳票画像についても類似している帳票画像についてはまとめて表示させることができる。このため、新規の帳票を複数スキャンした場合であっても、ユーザはスキャン済み帳票一覧901から所望のファイルを探しやすくなりユーザの負荷を軽減させることができる。未学習の帳票画像に類似する帳票を判定する方法については図11を用いて後述する。
グループバー908は、同一のグループとして、まとめて表示されている帳票画像のファイルのグループを識別するための名称(グループ名)を表示する領域である。グループバー908は、グループごとにそれぞれ追加されている。
グループ名は、例えば、学習済み帳票画像については、類似帳票のグループ名を取得して表示される。また、未学習の帳票画像については、例えば「未学習」を示す文字列が含まれたグループ名が表示される。また、未学習の帳票画像のグループのグループバー908の背景色は、学習済みの帳票画像のグループのグループバーとは異なる色に変更されてもよい。または、グループバーの形状を、変更してユーザが区別しやすいようにしてもよい。
グループ表示切り替えボタン909は、グループ内の、帳票画像の個別のファイルを表示するか非表示にするかを切り替えるためのボタンである。グループ表示切り替えボタン909の押下によって非表示に設定された場合、図9のスキャン済み帳票一覧901内の「未学習03」に示すように、それぞれの帳票画像のファイルを示す各行は表示されない。図9のスキャン済み帳票一覧901内の「未学習03」に示すように、グループバー908のみが表示された状態にすることができる。
一覧表示順キー選択リスト910は、スキャン済み帳票一覧901において表示される帳票画像のファイルの表示順を変更するための基準となる項目を選択するためのプルダウンである。一覧表示順キー選択リスト910に含まれる項目は、例えば、「帳票名」、「帳票名(降順)」、「未学習から」、「未学習から(降順)」がある。
「帳票名」が選択された場合は、学習済の帳票画像のファイルから、ファイル名が昇順になる順番で表示され、その後に、未学習の帳票画像のファイルが、ファイル名で昇順になる順番で表示されるようにファイルが並び替えられる。「帳票名(降順)」が選択された場合は、学習済の帳票画像のファイルから、ファイル名が降順になる順番で表示され、その後に、未学習の帳票画像のファイルが、ファイル名が降順になる順番で表示されるようにファイルが並び替えられる。「未学習から」が選択された場合は、未学習の帳票画像のファイルから、ファイル名が昇順になる順番で並べられ、次に、学習済み帳票画像のファイルが、ファイル名が昇順になる順番でファイルが並び替えられる。「未学習から(降順)」が選択された場合は、未学習の帳票画像のファイルから、ファイル名が降順になる順番で並べられ、次に、学習済み帳票画像のファイルが、ファイル名が降順になる順番で、帳票画像のファイルが並び替えられる。
昇順は、例えば、数値の”1”から”9”の順、アルファベットの”A”から”Z”の順,平仮名や漢字の読みの”あ”から”を”の順などで並べられる順番である。以下同様に昇順はまた降順とはファイル名を基準にして並び変えられることを指す。
一覧表示フィルタリスト911は、特定の帳票画像のファイルのみを、スキャン済み帳票一覧901に表示するための、基準となる項目を選択するためのプルダウンである。項目には、例えば、「すべて」、「学習済」、「未学習」、「ファイル名未入力」がある。
「すべて」は、表示できる全ての帳票画像のファイルを表示するための項目である。「学習済」は、表示できる帳票画像のうち、学習済みの帳票画像のファイルのみを表示するための項目である。「未学習」は未学習の帳票画像のファイルのみ表示するための項目である。「ファイル名未入力」はファイル名がデフォルト値である帳票画像のファイルのみを表示するための項目である。
例えば、図9では一覧表示フィルタリスト911には「すべて」が選択されているため、全ての帳票画像のファイルが表示されている。例えば、一覧表示フィルタリスト911で「学習済」が選択されると、「未学習01」「未学習02」「未学習03」のグループのファイルを表示されないようにすることができる。
[ファイル名設定]
ユーザは、図10に示したファイル名設定画面1000によって、ストレージサーバ130に保存させる帳票画像のファイル名を設定することができる。図10(a)のファイル名設定画面1000は、どのテキストブロックも選択されていない状態における画面の例を示す図である。ファイル名入力欄1001は、ユーザが設定したファイル名を表示する領域である。また、ファイル名入力欄1001の空白部分をタッチすると、ソフトキーボードが表示され、ユーザは任意の文字を入力することができる。ファイル名となる文字列が入力・表示されている状態では、その文字列をタッチするとタッチした部分の文字列を修正するためのソフトキーボードが表示され、入力・表示中の文字を修正することができる。プレビュー領域1002は、帳票画像のプレビューを表示する領域である。
さらにプレビュー表示された画像内のテキストブロックをユーザがタッチすると、タッチした位置に対応するテキストブロック内の文字列を、ファイル名を構成する文字列としてファイル名入力欄1001に追加することができる。タッチ等によって選択されたテキストブロックは、選択したことが分かるように当該テキストブロックなどに線、枠、色などを付して強調表示してもよい。また、ユーザが複数のテキストブロックを選択した場合、それぞれのテキストブロックの色を異なる色にしてもよい。また、選択したテキストブロックが中央になるようにプレビュー表示位置の変更や、拡大率の変更を行ってもよい。また、テキストブロックが複数存在する場合、予め設定されたブロック数分のテキストブロックが表示されるように、プレビュー表示位置を算出してもよい。例えば、ファイル名に使用した領域のうち、一番上部の領域と一番下部の領域との間における中央が、プレビュー領域の縦方向の中央になるように表示位置と拡大率の変更を行い、プレビュー表示を行ってもよい。一度選択したテキストブロックを再度タッチすると、選択が解除されて対応する文字列を削除して、当該テキストブロックに付与した線や色なども表示しない状態に戻される。
図10(a)のファイル名設定画面1000では、各テキストブロックはプレビュー画像上には表示されないようにしている。しかし、ユーザにどの部分が選択可能なのかを示すために、色や枠線を用いて各テキストブロックが視認できるように表示してもよい。また、各テキストブロックを視認可能にする表示は、ボタンなどで表示と非表示が切り替えられるようにしてもよい。プレビュー画像に対してスワイプ操作を行うと、プレビュー領域1002に表示されるプレビュー画像の位置を移動することができる。
削除ボタン1003は、ファイル名入力欄1001に表示中の文字のうち末尾にあるテキストブロックに対応する文字を削除するためのボタンである。拡大ボタン1004は、プレビュー領域1002に表示しているプレビュー画像の表示倍率を大きくするためのボタンである。縮小ボタン1005は、プレビュー領域1002に表示しているプレビュー画像の表示倍率を小さくするためのボタンである。拡大および縮小時にプレビュー領域1002の中央の座標が拡大および縮小前と同一となるように表示位置の調整がなされる。初期表示ボタン1006は、スワイプ操作によるプレビュー画像の表示位置の移動、拡大ボタン1004や縮小ボタン1005による表示倍率の変更が行われていた場合に、初期状態の表示倍率と表示位置に戻すためのボタンである。OKボタン1007は、ファイル名の設定が完了した段階で、設定されたファイル名と共に帳票画像データをMFP連携サーバ120へ送信するべく、前述の図9に示すストレージ保存画面900にUI画面を戻すためのボタンである。
図10(b)は、「見積書」と文字認識されたテキストブロックが最初に選択され、続いて「下丸子株式会社」と文字認識されたテキストブロックが選択された場合のファイル名設定画面1000を示した図である。ファイル名入力欄1001には、タッチされたテキストブロックの順に対応する2つの文字列が入力されており、当該2つの文字列の間にセパレータとしてのアンダースコアが入力されている。なお、アンダースコアは、ユーザが手動で入力してもよいし、自動で入力されるようにしてもよい。
[スキャン画像解析処理の詳細]
続いて、本実施形態におけるMFP連携サーバ120で行われる解析処理(S508)の詳細について、図11のフローチャートに沿って詳しく説明する。つまり、図11のフローチャートで示される一連の処理は、MFP連携サーバ120のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。また、図11におけるステップの一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。なお、各処理の説明における記号「S」は、当該フローチャートにおけるステップであることを意味する。今回スキャンして得られた帳票画像から、解析対象の帳票画像が1つ選択されて、解析対象の帳票画像に対して、図11のフローチャートの処理が行われる。
S1101において画像処理部432は、解析リクエストに係る解析対象の帳票画像を取得する。そして、画像処理部432は、解析対象の帳票画像に存在するテキストブロックを検出する。これにより解析対象の帳票画像内に含まれる文字列単位のテキストブロックの配置や大きさが特定される。
S1102において画像処理部432は、S1101で帳票画像を解析して検出した全てのテキストブロックに対して文字認識処理を行う。
S1103において画像処理部432は、解析対象の帳票画像に対し、前述の帳票判別処理を実行する。S1104では、S1103の処理の結果、解析対象の帳票画像の文書フォーマットと一致する文書フォーマットをもつ類似帳票が、学習データから見つかったかが判定される。類似帳票が見つかった場合(S1104でYES)、S1105において画像処理部432は、解析の結果を示す解析結果情報を生成する。
図12は、S1105または後述するS1107において生成される、帳票画像の解析結果情報のデータ構造の一例を示す図である。図12(a)は、解析対象の帳票画像に類似すると判定された学習データの帳票が、設定時入力情報が保存されている学習済みの帳票である場合の解析結果情報のデータ構造の例である。
解析対象の帳票画像が学習済み帳票である場合、解析対象の帳票画像から検出された全テキストブロックのうち、類似帳票において設定時入力情報として登録されているテキストブロックに対応するテキストブロックを取得する。本実施形態では設定時入力情報として登録されているテキストブロックとは、当該類似帳票のファイル名に使用された文字列を含むテキストブロックである。そして画像処理部432は、類似帳票において登録されているテキストブロックに対応する解析対象の帳票画像のテキストブロックに基づき解析結果情報を生成する。
本ステップにおいて生成される図12(a)の解析結果情報の、“matched”には、帳票判別処理の結果に基づき、解析対象の帳票画像に類似する類似帳票が学習データから見つかったかどうかを示す値が格納される。類似帳票があった場合は”true”が保持され、類似帳票なかった場合は“false”が保持される。
“formId”は、帳票の種別を一意に示す識別子である値を保持するための項目である。類似帳票がある場合は、その類似帳票に付与された値と同一の値が保持される。
“matchingScore”は、解析対象の帳票画像と、類似帳票との類似度を示す値が格納される。“matchingScore”に保持される値は、類似帳票におけるテキストブロックの配置情報と、解析対象の帳票画像のテキストブロックの配置情報との一致度合を表す0~1の実数値である。また、値が大きいほど解析対象の帳票画像は類似帳票に類似した帳票の画像であることを示す。
“rectInfoArray”は、類似帳票においてユーザがファイル名の設定するために指定した文字列を含むテキストブロックに対応する、解析対象の帳票画像のテキストブロックを示す情報が保持される。“rectInfoArray”には、“key”,“region”,“rect”,“text”の情報が1つ以上含まれる。
“key”には、ファイル名用いられるテキストブロックを識別するための一意の値が保持される。“region”には、それぞれの”key”によって識別されるテキストブロックの情報を保持される。“region”内にはさらに、そのテキストブロックの座標情報を保持する項目である“rect”と、そのテキストブロックから認識された文字列とを保持する項目“text”がある。“rect”における“x”は、テキストブロックの左上のX座標、“y”は左上のY座標、“width”はX方向のピクセル数、“height”はY方向のピクセル数を示す。“text”は“rect”が示すテキストブロックに対してOCR処理した結果得られた文字列を保持する項目である。
“metadataArray”は、ファイル名を自動入力するためのファイル名に使用するテキストブロックの順番と区切り文字を示す情報を保持する項目である。“metadataArray”には、“key”,“keyType”,“value”の情報が含まれる。
“key”は、帳票画像に設定する設定項目を一意に示す値が格納される。“keyType”は、“key”の設定値の種別を示す値が格納される。“rectInfoArray”において保持された情報をファイル名に使用する場合、“key”には“filename”、“keyType”には“filename”がそれぞれ保持される。
“value”は、“key”の値に基づく設定値を生成するための、使用する文字列の順番と、文字列を区切る文字との情報が保持される。図12の例では“rectInfoArray”の中の“fileRegion0”の“key”を持つ領域、区切り文字、“fileRegion1”の“key”を持つ領域、の順番で設定値(ファイル名)を生成することを示す。さらに具体的には「見積書_下丸子株式会社」というファイル名が生成されることを示す。
他にも、ファイル名以外にもメタデータなどの他のプロパティが設定されている場合は“rectInfoArray”や“metadataArray”に必要な情報が追加される。
一方、類似帳票がない場合(S1104がNO)、S1106において画像処理部432は、データ管理部434に、解析対象の帳票画像のテキストブロックの配置等の情報を、新規の帳票の文書フォームとして学習データに登録するように指示する。
つまり、本ステップの段階では、新規の帳票についてはファイル名等の設定時入力情報はユーザによって設定されていないが、少なくとも解析対象の帳票画像のテキストブロックの配置情報が、新規の帳票の情報として学習データに登録される。つまり、学習データには、未学習の帳票のテキストブロックの配置情報が登録される。
そして、今回スキャンして得られた複数のスキャン画像のうち、次に解析対象となるスキャン画像については、スキャン実行時に学習データに登録されていた学習済みの帳票に加えて、S1106で登録された新規帳票にも類似するかを照合される。
そして、S1106において登録されたテキストブロックの情報は、本フローチャートの終了後にユーザによってファイル名等のプロパティが設定されたら、その設定時入力情報とともに、学習済み帳票として学習データに登録される。
S1107において画像処理部432は、解析対象の帳票画像の解析結果情報を生成する。図12(b)は、解析対象の帳票画像が未学習の帳票である場合の解析結果情報を示す図である。図12(b)に示すよう類似帳票がない場合は、解析結果情報は、“matched”と、“formId”と、の項目のみで構成される。なお、“formId”の値については、新規帳票として新たな値が付与されて、その値が保持される。
S1108において画像処理部432は、S1105またはS1107で生成された解析結果情報をMFP連携サーバ120内のHDDに記憶させて本フローチャートの処理を終了する。本フローチャートの処理が終了後、今回スキャンして得られた帳票画像から、未解析の帳票画像が解析対象の帳票画像に選択されて、未解析の帳票画像がなくなるまで図11のフローチャートが繰り返されるように処理制御される。
次の解析対象の帳票画像が、S1106の処理で登録された新規の帳票と類似する場合、S1104では類似する帳票はある(S1104がYES)と判定されてS1105に進むことになる。この場合は、新規の帳票は、設定時入力情報が保存されていない「未学習の帳票」であるから、S1104がYESと判定された場合であっても、解析対象の帳票画像は、「未学習の帳票画像」である。よって、新規帳票と類似していると判定された場合におけるS1105の処理では、図12(a)の解析結果情報の“rectInfoArray”以下の情報については格納されないで解析結果情報が生成される。なお、“formId”に保持される値については類似する帳票画像に付与したのと同じ“formId”の値が付与される。
生成された解析結果情報は、S513のストレージ保存画面900を作成するために使用される。この解析結果情報を使用し、“formId”が同じ値である帳票画像のファイルについては、まとめてグループ化して表示される。特に本実施形態では、設定時入力情報が保存されていない未学習の帳票画像であっても、他の未学習の帳票画像と類似している場合は、解析結果情報の“formId”には同じ値が保持される。
例えば、図9のスキャン済み帳票一覧901におけるファイル名が「201911201100(1)」と「201911201100(3)」の帳票画像には図11のフローチャートの結果、解析結果情報には同じ“formId”の値が付与されている。よって、未学習帳票であっても、同一の文書フォームの画像は、まとめてスキャン済み帳票一覧901に表示させることができる。このため、ユーザは、新規の帳票を複数スキャンした場合であっても、種類毎に帳票画像のファイルを確認できるようになる。
“formId”に保持されている値に対応するグループ名は、例えば、MFP連携サーバ120のHDDに記憶されている。ストレージ保存画面900のグループバー908に表示されるグループ名は、この“formId”に保持されている値に関連付けられているグループ名が取得されて表示される。
グループ名は、例えば、帳票画像のテキストブロックの文字列を組みあわせて生成されたファイル名に基づき、グループ名が生成されてもよい。または、グループ名はユーザによって編集可能にしてもよい。例えば、S1106で新規帳票として登録された帳票のグループ名については、未学習であることを示す文字列と通し番号とで構成されるグループ名が生成されて、“formId”の値に関連付けられてMFP連携サーバ120のHDDに記憶される。
グループ名が生成または編集された場合、“formId”の値に関連付けられているグループ名も更新される。例えば、S514ではグループ名を構成する文字列およびそのテキストブロックの位置情報も、MFP連携サーバ120に送られ、S516において、グループ名が更新されて保存される。なお、解析結果情報にグループ名を保持する領域を設けて、解析結果情報にグループ名が保持されてもよい。なお、グループ名の決定および更新の方法については後述する実施形態2および実施形態3で詳細に説明する。
以上説明したように本実施形態によれば、設定時入力情報が保存されていない未学習の新規帳票をスキャンして得られた帳票画像のファイルについても、類似している帳票をグループ化して表示することができる。よって、ユーザが、新規の帳票を複数スキャンした場合であっても、所望の新規の帳票画像のファイルを探しやすくすることができ、ユーザの負荷を軽減することができる。
なお、ストレージ保存画面900およびファイル名設定画面1000はMFP110のタッチパネルに表示されるものとして説明したが、画像処理システム100内の他のクライアントPC等の情報処理装置の表示部に表示させてもよい。この場合、クライアントPCは、表示するための画面情報をMFP連携サーバ120にリクエストする。MFP連携サーバ120では、解析結果情報を使用し、“formId”が同じ値の帳票画像についてはまとめて表示するためのストレージ保存画面900の画面情報をクライアントPCに返す。この場合でも、クライアントPCのウェブブラウザで、ユーザは帳票の種類毎に帳票画像のファイルを確認できることができる。
<実施形態2>
本実施形態では、解析対象の帳票画像と、解析対象の帳票画像と類似していると判定された学習済み帳票と、を比較して、“formId”の値に関連付けられて登録されているグループ名をより適切な名称に更新する方法を説明する。本実施形態については、実施形態1からの差分を中心に説明する。特に明記しない部分については実施形態1と同じ構成および処理である。
図13は、“formId”の値に関連づけられているグループ名を保持している、「グループ名リスト」の一例をテーブル形式で示した図である。「グループ名リスト」は、MFP連携サーバ120のHDDに記憶されている。
図13(a)は、今回のスキャンが実行される前に、記憶されていたグループ名リストの一例である。図13(a)を用いて、グループ名リストについて説明する。グループ名リストでは、各行(レコード)に、つまり“formId”の値に関連付けられたグループ名に関する情報が保持されている。グループ名リストに保持されている帳票の種別ごとのグループ名は、以前の帳票のスキャン時における解析結果または学習結果に基づき登録されている。グループ名リストへの新規の帳票の登録については、実施形態3で説明する。
次に、グループ名リストの項目(テーブルの各列)について説明する。“groupNo”にはデータベース上の通し番号が保持されている。“formId”には、図12で説明したように帳票の種別を一意に示す値が保持されている。
“formName”には、それぞれの帳票の種別、つまり、“formId”の値に関連付けられたグループ名が保持されている。“fileRegion0~N”には、そのグループ名に用いられている文字列の一部が保持されている。グループ名は、帳票画像のファイル名の一部を用いて生成される。グループ名リストの“fileRegion0~N”は、図12で説明した解析結果情報に含まれるファイル名を生成するために用いられるテキストブロックの文字列を示す“fileRegion0~N”の“text”の文字列が保持されている。ただし、グループ名リストの“fileRegion0~N”には、解析結果情報の“fileRegion0~N”のうち、グループ名に用いられた文字列の“fileRegion”のみ情報が転記されている。つまり、ファイル名を構成する全ての文字列がグループ名に用いられるとは限らない。そのため、解析結果情報の“fileRegion0~N”のうちのグループ名に用いられた文字列のみが保持されている。なお、“fileRegion0~N”に保持されている文字列が認識されたテキストブロックの位置の情報も保持されているが省略している。
ユーザはグループ名を修正することが可能であり、“userText”には、MFP連携サーバ120によって受け付けられた、ユーザが指定した任意の文字列が保持されている。“duplicateNum”には、重複するグループ名が生成された場合にグループ名を区別できるように、グループ名に追加される連番が保持されている。
“formName”に保持されているグループ名は、“fileRegion0~N”、“userText”、および“duplicateNum”に保持されている文字列とseparatorとによって構成されている。separatorは、ファイル名に使用される区切りと同じ文字が用いられてもよいし、別途設定されてもよい。本実施形態では、separatorは、_(アンダーバー)であるものとして説明する。“formNameArray”には、“fileRegion0~N”、“userText”、および“duplicateNum”の文字列とseparatorとによって構成されるグループ名の、文字列の並び順を保持している。
図11のフローチャートにおいて、解析対象の帳票画像が学習済みの帳票である場合、グループ名リストから“formId”の値に関連付けられたグループ名が取得される。しかし本実施形態では、現在記憶されているグループ名をそのまま用いない。本実施形態では、グループ名リストの情報と、解析対象の帳票画像の文字列と、を比較して、グループ名リストに現在保持されているグループ名を、適切な名称に更新する。
図14は、今回スキャンして得られた帳票画像に学習済みの帳票画像がある場合、その学習済みの帳票画像を処理対象としてグループ名を更新する処理を説明するためのフローチャートである。本フローチャートは、図11に示す解析処理が今回スキャンして得られた全ての帳票画像に対して行われた後に実行される。
S1401において画像処理部432は、MFP連携サーバ120のHDDに保存されているグループ名リストから、処理対象の帳票画像における解析結果情報の“formId”の値と関連付けてられているグループ名の情報を取得する。
例えば、S1105において類似帳票の“formId”の値が取得されて、処理対象の帳票画像の解析結果情報に“formId”の値”aaaaaaaa-ffff-49ab-acf8-55558888eeee”が保持されたとする。この場合、図13(a)の現在のグループ名リストにおける“formId”が”aaaaaaaa-ffff-49ab-acf8-55558888eeee”である“groupNo”が1のレコードの情報が、グループ名の情報として取得される。なお、図13(a)では、“formId”が”aaaaaaaa-ffff-49ab-acf8-55558888eeee”に関連付けられているグループ名として「請求書_下丸子株式会社」が保持されている。以下、本フローチャートでは、処理対象の帳票画像の類似帳票のグループ名の情報は、“groupNo”が1のレコードの情報であるものとして説明する。
S1402において画像処理部432は、S1401で取得したグループ名に、帳票内の文字列が用いられている場合、その文字列のテキストブロックの位置情報を取得する。そして、画像処理部432は、処理対象の帳票画像のテキストブロックのうち、取得したテキストブロックの位置と同じ位置にあるテキストブロックを特定して、そのテキストブロックに含まれる文字列を取得する。ここで同じとは全く同じに限られない。近傍にある対応するテキストブロックも同じ位置に含めてもよい。
例えば、図13(a)のスキャン開始時のグループ名リストの“groupNo”が1のレコードには、“fileRegion0”と“fileRegion1”とに文字列が保持されている。このためグループ名は“fileRegion0”と“fileRegion1”が示すテキストブロックに保持されている文字列を用いて構成されている。このため“groupNo”が1のレコードの“fileRegion0”および“fileRegion1”のテキストブロックの位置情報を取得し、そのテキストブロックの位置と同じ位置にある処理対象の帳票画像のテキストブロックの文字列を取得する。
なお、今回スキャンして得られた帳票画像のうち、学習データの同一の帳票に類似すると判定された帳票画像が複数あった場合は、他の帳票画像からも同様に文字列を取得する。
S1403において画像処理部432は、グループ名リストにおいてグループ名に用いられていた文字列と、S1402で取得した文字列と、を比較する。
図15は、現在のグループ名リストに保持されているグループ名を構成する文字列と、S1402において取得された文字列と、比較するためにテーブル形式でまとめた図である。図15のテーブルの“No”が1のレコードは、グループ名リストの“groupNo”が1のレコードのグループ名に用いられている文字列を表している。“groupNo”が1のレコードでは、“fileRegion0”の文字列が「請求書」で、“fileRegion1”の文字列が「下丸子株式会社」である。図15のテーブルの“No”が2のレコードは、処理対象の帳票画像から取得された、“fileRegion0”と“fileRegion1”に対応するテキストブロックの文字列を表している。処理対象の帳票画像では“fileRegion0”の文字列は「見積書」で、“fileRegion1”の文字列は「下丸子株式会社」である。
図15に示すように、“fileRegion1”の文字列は同じであるが、“fileRegion0”の文字列は、登録されているグループ名では「請求書」であり、処理対象の帳票画像では「見積書」で異なる。このように、処理対象の帳票画像の文字列と、現在登録されているグループ名とを比較すると、同じ位置にあるテキストブロックでも含まれる文字列が異なることがある。このため、このまま登録されているグループ名を、処理対象の帳票画像のグループ名として用いて、グループ名に「請求書」を含めて表示してしまうと、帳票画像には含まれない文字列が含まれるグループ名が表示されることになる。この場合、ユーザが帳票画像のファイルを見つける上で好ましくない。このため本実施形態では、過去に生成されたグループ名をそのまま用いないで、グループ名を更新する。
S1404において画像処理部432は、S1403の比較結果から、現在のグループ名を構成する文字列と、S1402で取得した文字列と、の文字列のうち、一致する文字列を用いて処理対象の帳票画像の種別を表すグループ名を生成する。一致しない文字列は、グループ名には用いられない。図15の例では、画像処理部432は、すべての帳票で一致する“fileRegion1”の文字列を用いてグループ名を生成する。例えば、画像処理部432は“fileRegion1”の文字列「下丸子株式会社」をグループ名とする。そして、グループ名リストにおける“groupNo”が1のレコードの“formName”に保持されているグループ名を「下丸子株式会社」に更新する。その結果、グループ名リストは、図13(b)に示すとおり、“groupNo”が1のレコードにおける”filename”には、更新されたグループ名「下丸子株式会社」が保持される状態となる。
S1404で更新されたグループ名は、S512のスキャン済み帳票一覧901の画面情報を作成するために使用される。つまり、スキャン済み帳票一覧901のグループバー908には、更新されたグループ名リストに登録されているグループ名が表示される。
以上説明したように本実施形態によれば、ファイル名などに使用されている特徴的な文字列のうち、類似する帳票で共通の文字列をグループ名として使用することで、類似する帳票すべてに共通する特徴的なグループ名を生成することが可能となる。よって、学習データの帳票に類似する帳票が増えた場合であっても、グループが区別できるような特徴的なグループ名をユーザ自身でメンテナンスする作業負荷を抑制することができる。このため、複数の帳票画像のグループがリストに混在する場合でも、ユーザが所望の帳票を見つける手間を軽減することができる。
<実施形態3>
実施形態1では、未学習の帳票画像のファイルのグループ名については、「未学習01」のように、未学習を表す文字列と連番とでグループ名を生成するものとして説明した。しかしながら、今回スキャンして得られた帳票画像に未学習の帳票画像が多数あった場合、ユーザは、帳票画像のファイルを探すのが困難になることがある。そこで本実施形態では、未学習の帳票画像のファイルのグループ名を適切な名称に決定してまとめて表示する方法について説明する。本実施形態については、実施形態2からの差分を中心に説明する。特に明記しない部分については実施形態2と同じ構成および処理である。
[未学習帳票のグループ名の生成処理]
図16は、今回スキャンされて得られた帳票画像のうち、未学習の帳票のグループ名を決定するためのフローチャートである。本フローチャートは、図11に示す解析処理が今回スキャンした全ての帳票された後に実行される。また、本フローチャートの説明では、図11のS1104の判定において類似帳票が無いと判定された、任意の帳票画像が処理対象であるものとして説明する。類似帳票が無いと判定された帳票画像が複数ある場合は、それぞれを処理対象にして本フローチャートの処理が行われる。
S1601において画像処理部432は、未学習の帳票であることを示す文字列と数字とを組み合わせた名称を生成する。数字は、未学習のファイルのグループ名が生成されるごとにインクリメントされる連番であり、最初に本フローチャートの処理対象となる帳票画像であれば、例えば、「未学習01」の名称が生成される。
なお、生成される名称は、「未学習01」のような名称に限られない。「未学習」の文字列の代わりに、プロパティを設定するための情報が保存されていないことを示す他の文字列(「新規」など)が用いられてもよい。また連番を表す数字の代わりに他のグループ名と区別するための文字(アルファベットなど)が用いられてもよい。本フローチャートの説明では本ステップで「未学習01」が生成されたものとして説明する。
S1602において画像処理部432は、MFP連携サーバ120のHDDに記憶されているグループ名リストに登録されているグループ名に用いられている文字列を取得する。
図13(b)は本フローチャートの開始時に記憶されているグループ名リストであるとする。この場合、図13(b)のグループ名リストの“fileRegion0~N”に保持されている文字列が本ステップによって取得される。重複を省くと、本フローチャート開始時までにグループ名に用いられている文字列は、「見積書」、「下丸子株式会社」、「川崎株式会社」、「品川株式会社」、「東京株式会社」、「請求書」であるため、これらの文字列が本ステップにおいて取得される。つまり、登録されている学習済み帳票のグループ名の文字列が取得される。
S1603において画像処理部432は、処理対象の帳票画像に、S1602で取得された文字列を含むテキストブロックがあるかを検索する。帳票画像をOCR処理した結果は「文字認識結果」として記憶されている。このため、処理対象の帳票画像の文字認識結果から対象の文字列を検索してテキストブロックがあるかを検索する。
図18は、今回スキャンされた帳票画像を示す図である。図18(a)は本フローチャートの処理対象の未学習の帳票画像である。図18(b)は、図18(a)の帳票画像と類似する別の帳票画像を示す図であり、説明は後述する。
図19は、帳票画像に対してOCR処理をした結果得られた文字認識結果をテーブル形式で示した図である。図19(a)の文字認識結果は、図18(a)の帳票画像に対しOCR処理をした結果得られた文字認識結果の例である。図19(b)の文字認識結果は、図18(b)の帳票画像に対しOCR処理をした結果得られた文字認識結果の例である。文字認識結果は、例えば、MFP連携サーバ120のHDDに保存されている。
ここで、図19の文字認識結果について説明する。文字認識結果のレコード(テーブルの各行)には“rectNo”、“x”、“y”、“width”、“height”、“text”の各項目の値またはテキストデータが保持され、テキストブロックごとにレコードが生成されている。“rectNo”はテキストブロックの通し番号を保持する列である。
“x”はテキストブロックの左上のx座標、“y”はテキストブロックの左上のy座標、“width”はテキストブロックのX方向のピクセル数、“height”はテキストブロックのY方向のピクセル数をそれぞれ保持する列である。“text”はそのテキストブロックに含まれる文字列を保持する列である。本実施形態では、画像内の座標は例えば、原点が左上で、縦方向がY方向、横方向がX方向に延びる座標系が用いられる。
S1602において取得された、過去のグループ名に用いられている文字列が、「見積書」、「下丸子株式会社」、「川崎株式会社”」、「品川株式会社」、「東京株式会社」「請求書」であるとする。また、処理対象の帳票画像の文字認識結果は図19(a)であるものとする。この場合、S1603において画像処理部432は、図19(a)の“text”の列の文字列を検索範囲にする。そして、検索範囲から、「見積書」、「下丸子株式会社」、「川崎株式会社」「品川株式会社」、「東京株式会社」「請求書」のいずれかの文字列が含まれるか検索して、テキストブロックがあるかを検索する。本ステップの処理の結果、図19(a)の文字認識結果から、「見積書」が含まれる“rectNo”が1のテキストブロックが検索結果として得られる。同様に、「見積書No:」が含まれる“rectNo”が4のテキストブロック、「川崎株式会社」が含まれる“rectNo”が11のテキストブロックが検索結果として得られる。
同じ文字列が複数のテキストブロックに存在する場合は、検索値との一致度が高い方のテキストブロックを検索結果として残す。例えば、“rectNo”が1の「見積書」と、“rectNo”が4の「見積書No:」と、は同じ「見積書」を含む文字列であるが、「見積書」との一致度は“rectNo”が1のテキストブロックの文字列の方が大きい。そのため“rectNo”が4のテキストブロックは検索結果から除外される。
S1604において画像処理部432は、S1603の検索の結果、処理対象の帳票画像の文字認識結果に、グループ名として用いられている文字列が含まれるテキストブロックがあったかを判定する。テキストブロックがある場合(S1604がYES)、S1605へ進む。
S1605において画像処理部432は、S1603の検索の結果得られたテキストブロックに含まれる文字列を取得する。つまり本ステップよって、他のグループ名に使用されている文字列のうち、処理対象の未学習の帳票画像にも含まれている文字列が取得されることになる。例えば、図19(a)の文字認識結果の場合、“rectNo”が1のテキストブロックからは「見積書」、“rectNo”が11のテキストブロックからは「川崎株式会社」の文字列が取得される。
S1606において画像処理部432は、今回スキャンして得られた帳票画像のうち、本フローチャートの処理対象の帳票画像に類似する未学習の帳票画像があるかを判定する。つまり、本フローチャートの処理対象の帳票画像は、学習データに類似する帳票がないと判定された帳票画像であるが、S1106で新規帳票として学習データに登録されている。このため今回スキャンして得られた未学習の帳票画像であっても、本フローチャートの処理対象の帳票画像と類似している帳票画像については、解析情報結果の“formId”に、処理対象の帳票画像の“formId”の値と同じ値が付与されている。このため、例えば、“formId”に同じ値を保持している帳票画像があれば、本フローチャートの処理対象の帳票画像に類似する未学習の帳票画像はあると判定される。
図18(b)は今回スキャンして得られた複数の未学習帳票の帳票画像のうち、本フローチャートの処理対象である図18(a)の帳票画像と類似すると判定された帳票画像の一例である。
類似する未学習の帳票がある場合(1606がYES)、S1607において画像処理部432は、類似する未学習の帳票画像の文字認識結果から、S1603の検索の結果得られたテキストブロックと同じ位置にあるテキストブロックの文字列を取得する。ここで同じとは全く同じに限られない。近傍にあるような対応するテキストブロックも同じ位置に含めてもよい。
図19(b)は、図18(b)の処理対象の帳票画像に類似する未学習の帳票画像に対してOCR処理された結果得られた文字認識結果である。本ステップでは図19(b)から、S1603の結果得られた図19(a)の“rectNo”が1のテキストブロックに対応する位置、つまり同じまたは近傍にある、図19(b)の“rectNo”が1のテキストブロックが特定される。また、図19(a)の“rectNo”が11のテキストブロックに対応する位置にある、図19(b)の“rectNo”が11のテキストブロックが特定される。そして、図19(b)の文字認識結果から、“rectNo”が1のテキストブロックからは「見積書」、“rectNo”が11のテキストブロックからは「川崎株式会社」の文字列が取得される。
なお、類似する未学習の帳票画像が複数ある場合は、同様にそれぞれの帳票画像から文字列が取得される。そして、画像処理部432は、本ステップで取得された文字列と、S1605で取得された文字列とを比較する。
S1608において画像処理部432は、S1607における処理対象の帳票画像から取得された文字列と、処理対象の帳票画像と類似する帳票画像から取得された文字列との比較の結果、一致する文字列があるか判定する。一致する文字列がある場合(S1608がYES)はS1609に進む。例えば、図19(b)の“rectNo”が1の文字列は「見積書」、“rectNo”が11の文字列は「川崎株式会社」である。図19の例の場合、「見積書」と「川崎株式会社」との両方とも処理対象の帳票画像から取得された文字列と同じ文字列であるため、一致する文字列があると判定される。
S1609において画像処理部432は、S1608の比較の結果、一致すると判定された文字列を、S1601で生成された名称に追加して、グループ名を生成する。なお、一致しない文字列につてはグループ名には用いられない。名称に新たに文字列を追加する際は区切り文字があると各要素の切れ目がわかりやすくなる。このため例えば、文字列と文字列との間に_(アンダーバー)を挿入して、文字列を追加してもよい。
例えば、S1607の比較の結果、複数の帳票に共通する文字列が「見積書」と「川崎株式会社」とであったとすると、本ステップで生成されるグループ名は「未学習01_見積書_川崎株式会社」となる。
一方、処理対象の帳票画像に類似する他の未学習帳票画像がない場合(S1606がNO)、S1610において画像処理部432は、S1605で取得した文字列をS1601で生成された名称に追加するようにして、名称を生成する。
S1611において画像処理部432は、生成した新規の帳票のグループ名を、MFP連携サーバ120のHDDに保存されているグループ名リストに記憶させる。つまり処理対象の帳票画像の“formId”の値と関連付けられて、生成されたグループ名がグループ名リストに記憶される。
図17は、グループ名リストをテーブルで表した図であり、図17(a)は、未学習の帳票画像のグループ名が記憶された後のグループ名リストである。本フローチャートの処理対象の帳票画像の“formId”の値が「fffffff-kkkk-81ab-acf9-77772222jjjj」であるとする。そして、本フローチャートの処理の結果生成されたグループ名が「未学習01_見積書_川崎株式会社」であるとする。この場合、図17(a)における“groupNo”が6のレコードに示すように、生成されたグループ名が“formId”の値と関連づけて記憶される。
なお、S1604において処理対象の帳票画像の文字認識結果に、グループ名として用いられている文字列が含まれるテキストブロックがないと判定された場合(S1604がNO)がある。この場合は、S1601で生成された名称がグループ名として処理対象の帳票画像の“formId”の値と関連付けて記憶される。つまり、グループ名リストに、S1601で生成された「未学習01」が、処理対象の帳票画像の“formId”の値と関連付けて記憶される。
また、一致する文字列が無かった場合(S1608がNO)も同様に、S1601で生成された名称がグループ名として処理対象の帳票画像の“formId”の値と関連付けて記憶される。
[未学習帳票のグループ名の更新処理]
図16のフローチャートの終了後、ユーザが未学習の帳票画像に対してファイル名の入力を行った場合は、その入力されたファイル名に応じて、図16のフローチャートにおいて生成されたグループ名が更新される。
図20は、ファイル情報が入力された後のグループ名を更新する処理のフローチャートである。本フローチャートの処理は、ユーザによってファイル名が入力された帳票画像を処理対象にして実行される。
S2001において画像処理部432は、処理対象の帳票画像のファイル名に用いられている文字列と、その文字列が処理対象の帳票画像内の文字列から選択された文字列である場合、その文字列を含むテキストブロックの位置情報を取得する。
図21は、ユーザが未学習の帳票画像に対してファイル名を生成するための情報(ファイル情報)が入力された後に更新された解析結果情報である。図21において、“rectInfoArray”以下の領域は、図12(a)の解析結果情報と同じ構造でデータが保持されている。図21の例では“fileRegion0”の文字列、区切り文字、“fileRegion1”の文字列、区切り文字、“fileRegion2”の文字列の順番でファイル名がユーザによって生成されたことを示す。このため、更新された解析結果情報から、ユーザによって入力されたファイル名の文字列およびテキストブロックが取得される。
つまり、図21の場合、本ステップによって“fileRegion0”のテキストブロックの位置情報およびそのテキストブロックに含まれる「見積書」の文字列が取得される。同様に、“fileRegion1”のテキストブロックの位置情報および「川崎株式会社」の文字列と、“fileRegion2”のテキストブロックの位置情報および「M5432」の文字列と、が取得される。
なお、ファイル情報が入力された場合、入力されたファイル情報を、解析情報結果とは別のデータとして記憶されてもよい。
S2002において画像処理部432は、今回スキャンして得られた帳票画像のうち、本フローチャートの処理対象の帳票画像に類似する未学習の帳票画像があるかを判定する。
判定方法は、例えば、S1606と同様に“formId”に、処理対象の帳票画像の“formId”の値と同じ値を保持している帳票画像があれば、本フローチャートの処理対象の帳票画像に類似する未学習の帳票画像はあると判定される。
類似する未学習帳票がある場合(S2002でYES)、S2003において画像処理部432は、処理対象の帳票画像に類似する他の帳票画像から、S2001で取得されたテキストブロックと同じ位置にあるテキストブロックに含まれる文字列を取得する。帳票画像をOCR処理した結果得られた文字認識結果が記憶されているため、それぞれの文字認識結果からテキストブロックを検索して文字列を取得する。ここで同じとは全く同じに限られない。近傍にある対応するテキストブロックも同じ位置に含めてもよい。なお、類似する未学習帳票が複数ある場合は、同様にそれぞれの未学習帳票から文字列が取得される。
そして、画像処理部432は、本ステップで取得された文字列と、S2001で取得された文字列と、について、同じまたは近傍の位置にある対応するテキストブロックの文字列を比較する。
図22は、S2001で取得された文字列と、本ステップで取得された文字列とを比較するために、帳票ごとの文字列をテーブル形式でまとめた図である。図22のテーブルの“No”が1のレコードは、S2001で取得された文字列を表している。テーブルの“No”が2のレコードは、本ステップで取得された文字列を表している。図22に示すように、“fileRegion0”および“fileRegion1”の文字列は2つの帳票で一致するが、“fileRegion2”の文字列は、2つの帳票で異なる。
S2004において画像処理部432は、S2003の比較結果に基づき、処理対象の帳票画像の文字列と、処理対象の帳票画像に類似する帳票画像の文字列との、文字列のうち、一致する文字列を用いて処理対象の帳票画像の種別を表すグループ名を生成する。図22の例では、画像処理部432は、すべての帳票で一致する“fileRegion0”の文字列「見積書」および“fileRegion1”の文字列「川崎株式会社」を用いてグループ名を生成する。文字列と文字列との間に_(アンダーバー)を挿入して、文字列を追加してもよい。例えば、「見積書_川崎株式会社」のようなグループ名が生成される。
類似する未学習帳票がない場合(S2002でNO)、S2005において画像処理部432は、ファイル名に用いられた文字列を用いてグループ名を生成する。
S2006において画像処理部432は、生成したグループ名に基づき、MFP連携サーバ120のHDDに記憶されているグループ名リストを更新する。図17(b)は、本フローチャートの処理の結果更新されたグループ名リストの例である。本フローチャートの処理対象の帳票画像の“formId”の値が「fffffff-kkkk-81ab-acf9-77772222jjjj」であり、本フローチャートの処理の結果生成されたグループ名が「見積書_川崎株式会社」であるとする。この場合、図17(b)における“groupNo”が6のレコードに示すように、生成されたグループ名が、”formName”に保持されてグループ名が更新される。
図16および図20のフローチャートにおける処理の結果更新されたグループ名リストは、ストレージ保存画面900の画面情報を作成するために使用される。このため、スキャン済み帳票一覧901のグループバー908には、更新されたグループ名リストに登録されているグループ名を表示させることができる。
以上説明したように本実施形態によれば、設定時入力情報が保存されていない未学習の新規帳票をスキャンして得られた帳票画像のファイルについても、特徴を表すグループ名を表示させて、帳票画像をグループ化して表示させることができる。このため、ユーザによるグループ名を入力する等の負荷を軽減させることができる。また、ユーザが、新規の帳票を複数スキャンした場合であっても、所望の新規の帳票画像のファイルを探しやすくすることができ、ユーザの負荷を軽減することができる。
<その他の実施形態>
上述した実施形態では、図11の解析処理、図14、16、および20のグループ名生成または更新処理はMFP連携サーバ120の画像処理部432が処理するもとして説明したが、MFP110の画像処理部424によって行われてもよい。
画像処理部432によってグループ名が生成される場合、日付を示すような文字列、「M5432」のような帳票毎にユニークな文字列は、生成するグループ名から除外する処理が行われてもよい。例えば、日本語の帳票では、数値、アルファベット、および記号の少なくとも1つのみから構成される文字列、または年月日と数値の組み合わせの文字列は、グループ名として用いられてないように処理が行われてもよい。
また、実施形態2および実施形態3では、MFP連携サーバ120でグループ名が生成される形態を説明したが、ストレージ保存画面900が表示された後にグループ名をユーザが編集できるようにしてもよい。例えば、ユーザによる、グループ名に任意の文字列を追加する、またはグループ名に任意のテキストブロックの文字列を追加する等の指示が受け付けられてもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。