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

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

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

特許7520563文書を電子化するための画像処理システム、その制御方法及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】文書を電子化するための画像処理システム、その制御方法及びプログラム
(51)【国際特許分類】
   H04N 1/00 20060101AFI20240716BHJP
   G06V 30/14 20220101ALI20240716BHJP
【FI】
H04N1/00 L
H04N1/00 127A
G06V30/14
【請求項の数】 10
(21)【出願番号】P 2020074626
(22)【出願日】2020-04-20
(65)【公開番号】P2021118534
(43)【公開日】2021-08-10
【審査請求日】2023-04-19
(31)【優先権主張番号】P 2020007505
(32)【優先日】2020-01-21
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】中村 峻
【審査官】豊田 好一
(56)【参考文献】
【文献】特開2019-153919(JP,A)
【文献】特開2005-056315(JP,A)
【文献】特開2018-124656(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/00
G06V 30/14
(57)【特許請求の範囲】
【請求項1】
文書を電子化する画像処理システムであって、
前記電子化の対象文書のスキャン画像からテキストブロックを検出する検出手段と、
前記スキャン画像に関するプロパティを設定するための設定画面が表示される前に、前記検出手段によって検出されたテキストブロックに対し文字認識処理を行うOCR手段と、
前記OCR手段による前記文字認識処理が完了した後に表示される前記設定画面において、前記OCR手段による前記文字認識処理の完了したテキストブロックがユーザにより選択された場合は、前記OCR手段によって認識された文字列を使用して前記スキャン画像に関するプロパティを設定する設定手段と、
を備え、
過去に前記電子化を行った電子化済み文書の中に前記対象文書に類似した文書が存在しない場合、前記OCR手段は、前記設定画面が表示される前に、前記検出手段によって検出されたテキストブロックのうち一定サイズ以上のテキストブロックのみに対して前記文字認識処理を行う、
ことを特徴とする画像処理システム。
【請求項2】
前記電子化済み文書の中に前記対象文書に類似した文書が存在しない場合であって、前記検出手段によって検出されたテキストブロックの数が所定数より多い場合に、前記OCR手段は、前記検出手段によって検出されたテキストブロックのうち一定サイズ以上のテキストブロックに対して前記文字認識処理を行う、ことを特徴とする請求項1に記載の画像処理システム。
【請求項3】
前記画像処理システムにおける負荷状態を示す情報を取得する取得手段をさらに備え、
前記電子化済み文書の中に前記対象文書に類似した文書が存在しない場合であって、前記取得手段によって取得された情報が一定レベル以上の負荷状態であることを示す場合、前記OCR手段は、前記検出手段によって検出されたテキストブロックのうち一定サイズ以上のテキストブロックに対して前記文字認識処理を行う、
ことを特徴とする請求項1に記載の画像処理システム。
【請求項4】
前記電子化済み文書の中に前記対象文書に類似した文書が存在しない場合であって、前記検出手段によって検出されたテキストブロックの数が所定数以下である場合、前記OCR手段は、前記検出手段によって検出されたすべてのテキストブロックに対して前記文字認識処理を行う、ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理システム。
【請求項5】
前記検出手段によって検出されたテキストブロックの中からいずれかのテキストブロックの選択を前記設定画面において受け付ける受付手段をさらに有し、
前記受付手段により前記選択を受け付けた時に前記検出手段によって検出された全てのテキストブロックに対する文字認識処理が完了していない場合、当該全てのテキストブロックに対する前記文字認識処理が行われることを特徴とする請求項1乃至4のいずれか1項に記載の画像処理システム。
【請求項6】
前記電子化済み文書について、そのスキャン画像のプロパティに使用された文字列に対応するテキストブロックと前記検出手段による検出結果とを関連付ける学習を行う学習手段と、
前記学習によって得られた学習データを用いて、前記電子化済み文書の中に前記対象文書に類似した文書が存在するか否かを判定する判定手段と、
をさらに備えたことを特徴とする請求項1乃至5のいずれか1項に記載の画像処理システム。
【請求項7】
前記プロパティは、前記スキャン画像をファイル化する際に付与されるファイル名であることを特徴とする請求項1乃至6のいずれか1項に記載の画像処理システム。
【請求項8】
前記OCR手段は、過去に前記電子化を行った電子化済み文書の中に類似した文書が存在しない対象文書であって、所定数より多くのテキストブロックが検出された対象文書について、前記設定画面が表示される前に、前記検出手段によって検出されたテキストブロックのうち一定サイズ以上のテキストブロックのみに対して前記文字認識処理を行うことを特徴とする請求項1に記載の画像処理システム。
【請求項9】
文書を電子化する画像処理システムの制御方法であって、
前記電子化の対象文書のスキャン画像からテキストブロックを検出する検出ステップと、
前記スキャン画像に関するプロパティを設定するための設定画面が表示される前に、前記検出ステップにて検出されたテキストブロックに対し文字認識処理を行うOCRステップと、
前記文字認識処理が完了した後に表示される前記設定画面において、前記文字認識処理の完了したテキストブロックがユーザにより選択された場合は、前記OCRステップにて認識された文字列を使用して前記スキャン画像に関するプロパティを設定する設定ステップと、
を含み、
過去に前記電子化を行った電子化済み文書の中に前記対象文書に類似した文書が存在しない場合、前記OCRステップでは、前記設定画面が表示される前に、前記検出ステップにて検出されたテキストブロックのうち一定サイズ以上のテキストブロックのみに対して前記文字認識処理を行う、
ことを特徴とする制御方法。
【請求項10】
コンピュータを、請求項1乃至8のいずれか1項に記載の画像処理システムの手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書のスキャン画像に対するOCR処理の制御技術に関する。
【背景技術】
【0002】
従来より、文書の管理手法として、文書をスキャナで読み取って得られたスキャン画像を所定フォーマットのファイルに変換し、ネットワーク上のストレージサーバに送信して保存する手法が広く利用されている。ネットワーク上のストレージサーバにスキャン画像をファイルとして送信するには、ファイル名をつける必要がある。ファイル名を設定する方法として、スキャン画像をOCR処理して文字情報を抽出し、得られた文字情報の中からファイル名として用いる文字列を選択する方法がある。この際、OCR処理をスキャン画像の全体に対して行った場合、演算リソースが多く必要になったり、処理に長時間を要したりといった問題があった。この点、OCR処理に要する時間の削減を実現するものとして、特許文献1がある。特許文献1の手法では、まず、過去にスキャンされた文書における文字領域(テキストブロック)の配置情報と、そのファイル名として使用された文字列のテキストブロックの情報とを関連付けて学習データとして蓄積しておく。そして、新たに文書を電子化する際、そのスキャン画像のテキストブロックの配置情報を取得し、蓄積された学習データと照合して、テキストブロックの配置が似通った類似文書を検索する。類似文書が見つかった場合には、当該類似文書のスキャン画像のファイル名として使用されたテキストブロックに対応するテキストブロックに対してのみOCR処理を実行する。このような手法により、OCR処理時間の低減を図っている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-128715号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記特許文献1の手法は、過去にファイル名の付与がなされた類似文書が存在する場合はOCR処理時間の低減が可能である。しかしながら、類似文書が存在しない場合には、処理対象文書のスキャン画像全体に対してOCR処理を実施する必要があった。つまり、新規フォーマットの文書のスキャン画像を対象とする場合には、上記特許文献1の手法ではOCR処理時間の低減はできなかった。
【課題を解決するための手段】
【0006】
本開示に係る、文書を電子化する画像処理システムは、前記電子化の対象文書のスキャン画像からテキストブロックを検出する検出手段と、前記スキャン画像に関するプロパティを設定するための設定画面が表示される前に、前記検出手段によって検出されたテキストブロックに対し文字認識処理を行うOCR手段と、前記OCR手段による前記文字認識処理が完了した後に表示される前記設定画面において、前記OCR手段による前記文字認識処理の完了したテキストブロックがユーザにより選択された場合は、前記OCR手段によって認識された文字列を使用して前記スキャン画像に関するプロパティを設定する設定手段と、を備え、過去に前記電子化を行った電子化済み文書の中に前記対象文書に類似した文書が存在しない場合、前記OCR手段は、前記設定画面が表示される前に、前記検出手段によって検出されたテキストブロックのうち一定サイズ以上のテキストブロックのみに対して前記文字認識処理を行う、ことを特徴とする。
【発明の効果】
【0007】
本開示の技術によれば、過去に類似文書の電子化がなされていない場合にも、OCR処理に要する時間を低減でき、ユーザの利便性がさらに向上する。
【図面の簡単な説明】
【0008】
図1】画像処理システムの全体構成を示す図
図2】MFPのハードウェア構成を示すブロック図
図3】MFP連携サーバ及びストレージサーバのハードウェア構成を示すブロック図
図4】画像処理システムのソフトウェア構成を示すブロック図
図5】画像処理システム全体の処理の流れを示すシーケンス図
図6】メイン画面の一例を示す図
図7】ログイン画面の一例を示す図
図8】スキャン設定画面の一例を示す図
図9】(a)はリクエストIDの一例を示す図、(b)及び(c)は処理状況の問合せに対するレスポンスの一例を示す図
図10】実施形態1に係る、画像解析処理の詳細を示すフローチャート
図11】スキャン画像の一例を示す図
図12】ブロックセレクション処理の結果の一例を示す図
図13】スキャン画像の一例を示す図
図14】類似帳票判定処理の結果の一例を示す図
図15】ファイル名設定候補情報の一例を示す図
図16】スキャン画像の一例を示す図
図17】OCR処理の結果の一例を示す図
図18】ファイル名設定画面の一例を示す図
図19】ソフトキーボードの一例を示す図
図20】描画データ取得処理の詳細を示すフローチャート
図21】ファイル名設定処理の詳細を示すフローチャート
図22】OCR結果更新処理の詳細を示すフローチャート
図23】ファイル名設定画面の一例を示す図
図24】ファイル名設定リクエストの一例を示す図
図25】ファイル名設定学習処理の詳細を示すフローチャート
図26】学習データのデータ構造の概要を示す図
図27】変形例1に係る、画像解析処理の詳細を示すフローチャート
図28】変形例2に係る、画像解析処理の詳細を示すフローチャート
図29】変形例2に係る、OCR処理の結果の一例を示す図
図30】変形例2に係る、画像解析処理の詳細を示すフローチャート
図31】変形例2に係る、画像解析処理の詳細を示すフローチャート
【発明を実施するための形態】
【0009】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【0010】
[実施形態1]
<システム構成>
図1は、本実施形態に係る、画像処理システムの全体構成を示す図である。画像処理システムは、MFP(Multifunction Peripheral)110と、インターネット上でクラウドサービスを提供するサーバ装置120及び130とを含む。MFP110は、インターネットを介してサーバ装置120及び130と通信可能に接続されている。
【0011】
MFP110は、スキャン機能を有する情報処理装置の一例である。MFP110は、スキャン機能に加え印刷機能やBOX保存機能といった複数の機能を有する複合機である。サーバ装置120及び130は、共にクラウドサービスを提供する情報処理装置の一例である。本実施形態のサーバ装置120は、MFP110から受け取ったスキャン画像に対し画像解析を行ったり、別のサービスを提供するサーバ装置130に対しMFP110からのリクエストを転送したりするクラウドサービスを提供する。以下、サーバ装置120が提供するクラウドサービスを「MFP連携サービス」と呼ぶこととする。サーバ装置130は、インターネットを介して送られてきたファイルを保存したり、モバイル端末(不図示)などのウェブブラウザからの要求に応じて保存ファイルを提供したりするクラウドサービス(以下、「ストレージサービス」と呼ぶ)を提供する。本実施形態では、MFP連携サーバを提供するサーバ装置120を「MFP連携サーバ」と呼び、ストレージサービスを提供するサーバ装置130を「ストレージサーバ」と呼ぶこととする。
【0012】
図1に示す画像処理システム100の構成は一例であって、これに限定されない。例えば、MFP連携サーバ120の機能をMFP110が兼ね備えていてもよい。また、MFP連携サーバ120はインターネット上ではなくLAN(Local Area Network)経由でMFP110と接続されていてもよい。また、ストレージサーバ130を、メール配信サービスを行うメールサーバに置き換えて、文書のスキャン画像をメールに添付し送信する場面に適用してもよい。
【0013】
<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のハードウェア構成は一例であり、必要に応じてその他の構成を備えるものであってもよいし、一部の構成を有していなくてもよい。
【0014】
<サーバ装置のハードウェア構成>
図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など)から様々な処理のリクエストを受け、当該リクエストに応じた処理結果を返す。
【0015】
<画像処理システムのソフトウェア構成>
図4は、本実施形態に係る、画像処理システム100のソフトウェア構成を示すブロック図である。以下、画像処理システム100を構成するMFP110及び、MFP連携サーバ120及びストレージサーバ130それぞれの役割に対応したソフトウェア構成を、順に説明する。なお、以下では、各装置が有する諸機能のうち、文書をスキャンして電子化(ファイル化)し、ストレージサーバ130に保存を行うまでの処理に関わる機能に絞って説明を行うものとする。
【0016】
≪MFPのソフトウェア構成≫
MFP110の機能モジュールは、ネイティブ機能モジュール410とアディショナル機能モジュール420の2つに大別される。ネイティブ機能モジュール410はMFP110に標準的に備えられたアプリケーションであるのに対し、アディショナル機能モジュール420はMFP110に追加的にインストールされたアプリケーションである。アディショナル機能モジュール420は、Java(登録商標)をベースとしたアプリケーションであり、MFP110への機能追加を容易に実現できる。なお、MFP110には図示しない他の追加アプリケーションがインストールされていてもよい。
【0017】
ネイティブ機能モジュール410は、スキャン実行部411およびスキャン画像管理部412を有する。また、アディショナル機能モジュール420は、表示制御部421、スキャン制御部422、連携サービスリクエスト部423、画像処理部424を有する。
【0018】
表示制御部421は、操作部220のタッチパネルに、各種のユーザ操作を受け付けるためのユーザインタフェース画面(UI画面)を表示する。各種のユーザ操作には、例えば、MFP連携サーバ120へアクセスするためのログイン認証情報の入力、スキャン設定、スキャンの開始指示、ファイル名設定、ファイルの保存指示などがある。
【0019】
スキャン制御部422は、UI画面でなされたユーザ操作(例えば「スキャン開始」ボタンの押下)に応じて、スキャン設定の情報と共にスキャン実行部411に対しスキャン処理の実行を指示する。スキャン実行部411は、スキャン制御部422からのスキャン処理の実行指示に従い、スキャナI/F217を介してスキャナ部240に文書の読み取り動作を実行させ、スキャン画像データを生成する。生成したスキャン画像データは、スキャン画像管理部412によってHDD214に保存される。この際、保存されたスキャン画像データを一意に示すスキャン画像識別子の情報が、スキャン制御部422へ通知される。スキャン画像識別子は、MFP110においてスキャンした画像をユニークに識別するための番号や記号、アルファベットなどである。スキャン制御部422は、例えばファイル化する対象のスキャン画像データを上記のスキャン画像識別子を使ってスキャン画像管理部412から取得する。そして、ファイル化のために必要な処理のリクエストをMFP連携サーバ120に対して行うよう、連携サービスリクエスト部423に対して指示する。
【0020】
連携サービスリクエスト部423は、MFP連携サーバ120に対して各種処理のリクエストを行ったり、そのレスポンスを受け取ったりする。各種処理には、例えば、ログイン認証、スキャン画像の解析、スキャン画像データの送信などが含まれる。MFP連携サーバ120とのやり取りはRESTやSOAPなどの通信プロトコルを使用される。
【0021】
画像処理部424は、スキャン画像データに対し所定の画像処理を行って、表示制御部421が表示するUI画面で用いられる画像を生成する。所定の画像処理の詳細については後述する。
【0022】
なお、MFP110とは異なる装置(不図示のクライアントPCなど)が、上述のアディショナル機能モジュール420を備えていてもよい。すなわち、MFP110にて得たスキャン画像の解析リクエストや解析結果に基づくファイル名の設定等を、クライアントPCで行うようなシステム構成でも構わない。
【0023】
≪サーバ装置のソフトウェア構成≫
まず、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等)を返す。ユーザは、ウェブブラウザで表示される画面経由で、登録されているユーザ情報を確認したり、スキャン設定を変更したりできる。
【0024】
次に、ストレージサーバ130のソフトウェア構成について説明する。ストレージサーバ130は、リクエスト制御部441、ファイル管理部442、表示制御部443を有する。リクエスト制御部441は、外部装置からのリクエストを受信できる状態で待機しており、本実施形態においてはMFP連携サーバ120からのリクエストに応じて、受信したファイルの保存や保存ファイルの読み出しをファイル管理部442に指示する。そして、リクエストに応じたレスポンスをMFP連携サーバ120に返す。表示制御部443は、インターネット経由で接続されたPCやモバイル端末(いずれも不図示)上で動作しているウェブブラウザからのリクエストを受けて、画面表示に必要な画面構成情報(HTML、CSS等)を返す。ユーザは、ウェブブラウザで表示される画面経由で、保存ファイルを確認したり取得したりすることができる。
【0025】
<画像処理システム全体の処理の流れ>
図5は、MFP110で文書をスキャンし、得られたスキャン画像をファイル化してストレージサーバ130に保存する際の、装置間の処理の流れを示すシーケンス図である。図6はMFP110の起動時に表示されるメインメニューのUI画面(以下、「メイン画面」と表記)の一例を示す図である。文書をスキャンしてファイル化し、クラウドストレージサービスの利用に必要な専用のアプリケーションをMFP110にインストールすることで、メイン画面600上に「スキャンしてクラウドストレージに保存」ボタン601が表示されるようになる。そして、ユーザがメイン画面600内に表示されたメニューボタンの中から「スキャンしてクラウドストレージに保存」ボタン601を押下すると、図5のシーケンス図で示される一連の処理が開始する。以下、図5のシーケンス図に沿って、装置間のやり取りを時系列に説明する。なお、シーケンス図や後述する各フローチャートにおける記号「S」はステップを表すものとする。
【0026】
まず、MFP110内のスキャンアプリが、MFP連携サーバ120にアクセスするためのログイン認証の情報を入力するUI画面(以下、「ログイン画面」と表記)を表示する(S501)。図7にログイン画面の一例を示す。ユーザが、予め登録されているユーザIDとパスワードを、ログイン画面700上の入力欄702及び703にそれぞれ入力し「ログイン」ボタン701を押下すると、ログイン認証のリクエストがMFP連携サーバ120に送信される(S502)。MFP連携サーバ120は、ログイン要求を受信し(S503)、要求に含まれるユーザ名とパスワードが正しいかを検証し(S504)、正しければアクセストークンをMFP110に返す(S505)。以後、MFP110からMFP連携サーバ120に対して行う各種リクエストの際にこのアクセストークンを一緒に送ることで、ログイン中のユーザが特定される。本実施形態では、MFP連携サーバ120へのログインの完了によって、ストレージサーバ130へのログインも同時に完了するものとする。このためにユーザは、インターネット上のPC(不図示)のウェブブラウザ等を介して、MFP連携サービスを利用するためのユーザIDとストレージサービスを利用するためのユーザIDとの紐づけを予め行っておく。これにより、MFP連携サーバ120へのログイン認証に成功すれば同時にストレージサーバ130へのログイン認証も完了し、ストレージサーバ130にログインするための操作を省略できる。そして、MFP連携サーバ120においては、自装置にログインしたユーザからのストレージサービスに関するリクエストにも対応可能となる。 なお、ログイン認証の方法は一般的に公知な手法(Basic認証、Digest認証、OAuthを用いた認可等)を用いて行えばよい。
【0027】
MFP110は、ログイン認証の結果を受信すると(S506)、スキャン処理を実施する(S507)。図8にスキャン設定画面の一例を示す。スキャン設定画面800には、「スキャン開始」ボタン801、カラー設定欄802、解像度設定欄803が存在する。「スキャン開始」ボタン801は、原稿台にセットした文書(本実施形態では見積書や請求書といった帳票を想定)に対するスキャン処理の開始を指示するためのボタンである。カラー設定欄802では、スキャン時のカラーモードを設定する。例えばフルカラーやモノクロといった選択肢の中から指定できるようになっている。解像度設定欄803では、スキャン時の解像度を設定する。例えば600dpiや1200dpiといった選択肢の中から指定できるようになっている。なお、カラーモードと解像度は設定項目の一例であって、これらすべてが存在しなくてもよいし、これら以外の設定項目が存在してもよい。また、カラーモードや解像度に関する選択肢を、ストレージサービスの要求する設定値のみに限定したりしてもよい。ログインユーザは、このようなスキャン設定画面800を介してスキャン処理についての詳細な条件設定を行なう。スキャン設定を終えたログインユーザが、MFP110の原稿台にスキャン対象の文書をセットし、「スキャン開始」ボタン801を押下するとスキャンが実行される。これにより、紙文書を電子化した画像データが生成される。スキャンの完了後、MFP110は、スキャンによって得られた画像データを、その解析リクエストと共にMFP連携サーバ120に送信する(S508)。MFP連携サーバ120のリクエスト制御部431は、解析リクエストを受信すると(S509)、まず、データ管理部434にスキャン画像データのアップロードを指示する(S510)。この際、リクエスト制御部431は、後述する画像解析処理の終了を待たずに、受信した解析リクエストを一意に示す“processId”をMFP110に返す。図9(a)にリクエストIDの一例を示す。データ管理部434は、アップロード指示に従い、スキャン画像データを保存する(S511)。アップロード指示には、先述した“processId”が含まれており、データ管理部434は、スキャン画像データと“processId”とを対応付けて保存する。次に、リクエスト制御部431は、画像処理部432に、スキャン画像データに対する画像解析処理の実行を指示する(S512)。画像解析処理の実行指示には“processId”が含まれており、画像処理部432は、“processId”を用いて、S511にて保存されたスキャン画像データのダウンロードをデータ管理部434に指示して、スキャン画像データを受け取る(S513~S515)。そして、画像処理部432は、受け取ったスキャン画像データに対する画像解析処理を実行する(S516)。
【0028】
≪画像解析処理≫
図10は、S516において実行される画像解析処理の詳細手順を説明するフローチャートである。まず、S1001では、処理対象のスキャン画像データに対して補正処理が実行される。ここで実行される補正処理は、後続の処理のための前処理であり、例えばスキャン画像データに対する回転補正や斜行補正処理である。続くS1002では、S1001にて得られた補正後のスキャン画像データ(以下、「補正画像データ」と表記)のアップロード指示がデータ管理部434に対しなされる。このアップロード指示を受けたデータ管理部434は、補正画像データを“processId“と紐づけて保存する。続くS1003では、S1001にて得られた補正画像データに対して、画像内のテキストブロックを検出する処理(以下、「ブロックセレクション処理」と呼ぶ。)が実行される。このブロックセレクション処理によって、補正画像内に存在するテキストブロックの位置・大きさが特定される。以下に示す表1は、図11に示す見積書のスキャン画像データ(補正画像データ)に対してブロックセレクション処理を実行して得られた結果を分かりやすくまとめたものである。
【0029】
【表1】
【0030】
“1~25”の番号それぞれが示す領域は、その左上隅のX,Y座標と、幅及び高さとからなっており、これにより文字列一行に対するテキストブロックを矩形領域により表現するものとなっている。このようにテキストブロックを矩形領域として表現することから、「ブロックセレクション処理」と呼ばれる。また、表1に示すブロックセレクション結果にはさらに、各ブロック内の文字列を表現するためのカラム(領域内文字列)も存在し、ここには、後述するOCR処理により認識された各ブロックに対応する文字列が順次書き込まれていく。
【0031】
図10のフローの説明に戻る。S1004では、上述のブロックセレクション処理の結果のアップロード指示がデータ管理部434に対しなされる。このアップロード指示を受けたデータ管理部434は、ブロックセレクション処理の結果を“processId“と紐づけて保存する。図12は、データ管理部434によって保存されるブロックセレクション結果の一例を示している。図12において、“imageWidth”は、解析対象画像のX方向(横方向)のピクセル数を示す。“imageHeight”は、解析対象画像のY方向(縦方向)のピクセル数を示す。“regions”には、解析対象画像から抽出された文字領域の座標情報“rect”と、文字認識結果の情報“text”が含まれる。“rect”は抽出されたテキストブロック1つ1つの座標を示す。“x”は領域の左上のX座標、“y”は領域の左上のY座標、“width”は領域のX方向のピクセル数、“height”は領域のY方向のピクセル数を示す。“text”は、“rect”が示すテキストブロックに対しOCR処理を行って得られた文字認識結果(認識された文字列)の情報が入る。図12においては、どの“text”も情報が入っておらず空白であるが、後述のOCR処理の対象となったブロック内で認識された文字列が順次書き込まれていく。これら“rect”と“text”の各情報は、解析対象画像内の全テキストブロックの分だけ得られることになる(図12では一部省略している)。
【0032】
図10のフローの説明に戻る。S1005では、電子化の対象文書についてのS1004にて保存されたブロックセレクション結果と、電子化が済んだ文書についてのブロックセレクション結果とが比較される。続くS1006では、比較結果に基づき、電子化済み文書の中に、電子化対象の文書とテキストブロックの配置が類似するものがあるか否かが判定される。本実施形態では、処理対象文書として見積書等の帳票を想定している。そこで、S1005とS1006の両処理を合わせて「類似帳票判定処理」と呼ぶこととする。なお、現に電子化の対象となっている文書と過去の電子化済み文書との間でテキストブロックの配置の類否を判定することは、文書フォーマットの類否を判定することと同義である。よって、類似帳票判定処理は、文書フォーマットの類否判定処理と言い換えることもできる。この類似帳票判定処理で使用する過去に電子化された帳票に関する情報(学習データ)は、後述する学習処理(S531)により保存、蓄積される。類似帳票判定処理の結果、テキストブロックの配置が一致または類似する類似帳票が存在した場合はS1007に進み、存在しなかった場合はS1010に進む。
【0033】
いま、図13に示すような見積書が過去にスキャンされ、そのスキャン画像に対するブロックセレクション結果が学習データとして保存されているとする。このとき、S1005にて出力される類似帳票判定結果を図14に示す。図14において、“matched”は、今回解析の対象となるスキャン画像(解析対象画像)について、過去のスキャン画像の中にテキストブロックの配置、すなわち、フォーマットが一致・類似するものが見つかったかどうかを示す値が格納される。“formId”は、類似帳票のスキャン画像があった場合は当該スキャン画像を一意に示す値が格納され、なかった場合には解析対象画像を一意に識別する値であって今回設定したファイル名を後述の学習処理にて学習させる際に使用する値が格納される。“matchingScore”は、類似帳票があった場合にどの程度類似していたかを示す値が格納される。“matchingScore”は、過去のスキャン画像におけるテキストブロックの配置情報と解析対象画像におけるテキストブロックの配置情報との一致度合を表す“0~1”までの実数値が格納される。この実数値は大きいほど、類似度合いが高いことを示す。“rectInfoArray”は、類似帳票に対して以前にユーザがファイル名設定時に使用したテキストブロックに対応する、解析対象画像のテキストブロックを示す情報が格納される。ここで、今回のスキャン以前に、図13に示す見積書のスキャン画像に対して「見積書」と「下丸子株式会社」の2つの文字列を使用してファイル名の設定がなされ、その際のユーザ入力情報の学習処理(入力結果学習)が済んでいるものとする。そして、今回、図11に示す見積書のスキャン画像を解析対象画像として類似帳票判定処理が行われた結果、過去に電子化された図13に示す見積書のスキャン画像と類似していると判定されたとする。図14の例は、この判定結果に基づき、図13に示す過去のスキャン画像に対するユーザ入力情報が、図11に示す今回のスキャン画像に対する自動入力対象の情報として格納された状態を示している。まず、後述の学習処理で生成された学習データを用いて、図13に示す過去のスキャン画像に対するファイル名に使用された「見積書」と「下丸子株式会社」の各テキストブロックの座標情報とその一部が重なるテキストブロックを特定する。そして、一部が重なるテキストブロックの座標情報とその文字列を、“rectInfoArray”内の“text”に格納する。ここで“rectInfoArray”内に含まれる各項目について説明する。“key”は、自動入力に使用するテキストブロックを一意に示す値が格納される。“region”は、テキストブロックの座標情報と当該文字領域内で認識された文字列が格納される。“rect”は抽出されたテキストブロック1つ1つの座標を示す。“x”は領域の左上のX座標、“y”は領域の左上のY座標、“width”は領域のX方向のピクセル数、“height”は領域のY方向のピクセル数を示す。“text”は、“rect”が示すテキストブロックに対しOCR処理を行って得られた文字認識結果(認識された文字列)の情報が入る。図14においては、いずれの“text”も情報が入っておらず空白であるが、図11に示す今回のスキャン画像に対する後述のOCR処理によって認識された各ブロック内で認識された文字列が格納される。“metadataArray”は、ファイル名を自動入力するための、ファイル名に使用するテキストブロックの順番と区切り文字がどこに入るかを示す情報が格納される。ファイル名以外にもフォルダパスやメタデータなどのプロパティ情報が設定されている場合は“rectInfoArray”や“metadataArray”に必要な情報が追加される。ここで“metadataArray”内に含まれる各項目について説明する。“key“は、スキャン画像に設定する設定値を一意に示す値が格納される。“keyType”は、“key”の設定値の種別を示す値が格納される。ファイル名に使用する場合は、“key”が“filename”で、“keyType”が“filename”となる。“value”は、“key”の値に使用するテキストブロックと区切り文字の情報が格納される。図14の例では、“rectInfoArray”の中の“fileRegion0”の“key”を持つ領域、区切り文字、“fileRegion1”の“key”を持つ領域、の順番でファイル名を自動入力することを示す。
【0034】
図10のフローの説明に戻る。S1007では、類似帳票判定処理にて見つかった類似帳票に対しファイル名として設定された文字列のテキストブロックに対応する、解析対象画像のテキストブロックの情報(以下、「ブロック情報」と呼ぶ)を取得する。具体的には、前述の図14の例における、各“rect”の情報が取得される。続くS1008では、S1007にて取得したブロック情報で特定される各テキストブロックに対して、OCR処理が実行される。前述の図14の例の場合、 (x, y, width, height) = (1019, 303, 489, 95), (406, 626, 594, 71)の2つのテキストブロックに対応するブロック情報がS1007にて取得される。この場合、当該2つのテキストブロックそれぞれに対してOCR処理が実行されて、「見積書」と「品川株式会社」の各文字列がそれぞれ認識される。
【0035】
続くS1008では、解析対象画像に対するファイル名の設定候補となるブロックや文字列の情報(以下、「ファイル名設定候補情報」と表記)が生成され、データ管理部434に保存される。図15に示すように、ファイル名設定候補情報は、S1007でのOCR処理によって得られた文字列を、図14で示した類似帳票判定結果の“text”に追記することで得られるものである。
【0036】
ここまで、S1006で類似帳票があるとの判定結果であった場合について説明した。続いて、S1006で類似帳票がないとの判定結果であった場合のS1010以降の処理手順について説明する。
【0037】
まず、S1010では、解析対象画像から抽出されたテキストブロックの数が、所定数(閾値)より多いか否かが判定される。この所定数は、MFP連携サーバ120内の画像処理部432の処理能力や、画像解析対象となる各種帳票等の文書フォーマットの内容(想定されるブロック数など)に基づいて予め決定すればよい。判定の結果、テキストブロックの数が所定数以下であった場合はS1011に進み、所定数より多かった場合はS1012に進む。S1011では、解析対象画像に対するブロックセレクション処理によって抽出されたすべてのテキストブロックに対してOCR処理が実行される。一方、S1012では、抽出された全テキストブロックのうち、その面積(すなわち、幅と高さとの積)が一定サイズ以上のテキストブロックのみを対象としてOCR処理が実行される。ここで、テキストブロックは行単位で抽出されることから、文字サイズの大きい文字を含むテキストブロックほどその面積は大きくなる。一般的に、帳票のタイトル(見積書や請求書など)、会社名、住所、日付といった文字列部分の文字サイズが大きいことから、結果的に、これらの文字列を含むようなテキストブロックに対してだけOCR処理が実行されることになる。ここで、具体例を用いて説明する。いま、S1010の判定に用いる所定数が“30”であったとする。そして、解析対象画像が図11に示すスキャン画像であって、ブロックセレクション処理によって、前述の表1に示す結果が得られたとする。この場合、解析対象画像に含まれるテキストブロックの数“25”は、所定数“30”よりも少ないため、S1011にて抽出された25個のテキストブロックのすべてに対してOCR処理が実行されることになる。一方、解析対象画像が図16に示すスキャン画像であって、ブロックセレクション処理によって、下記の表2に示す内容の結果が得られたとする。
【0038】
【表2】
【0039】
この場合、解析対象画像に含まれるブロックの数“33”は、所定数“30”よりも多いため、S1012にて抽出された33個のテキストブロックのうち面積が一定サイズ以上のテキストブロックに対してだけOCR処理が実行されることになる。いま、「一定サイズ」の値が“30000”であったとする。上記表2に示された全33個のテキストブロックのうち、面積が“30000”を超えるテキストブロックは、番号が1, 5, 8, 32の4つのテキストブロックである。よって、これら4つのテキストブロックに対してOCR処理が実行され、それぞれ「見積書」、「東京都港区1-1-1」、「品川株式会社」、「川崎株式会社」の文字列が取得されることになる。
【0040】
以上が、S516において実行される画像解析処理の内容である。図5のシーケンス図の説明に戻る。なお、S517以降の説明では、類似帳票が存在し(S1006でNO)、かつ、ブロック数が所定数より多い(S1010でYES)と判定され、一定サイズ以上のテキストブロックにのみOCR処理を行う場合の処理の流れを説明することとする。
【0041】
上述の画像解析処理を実行した画像処理部432は、画像解析処理の結果のアップロードをデータ管理部434に指示する(S517)。ここでアップロードされる画像解析処理の結果には、前述のS1008、S1011、S1012におけるOCR処理の結果、さらにS1009が実行された場合の結果(ファイル名設定候補情報)が含まれる。ここでは、S1012でのOCR処理によって得られた文字認識結果のアップロード指示がデータ管理部434に対してなされることになる。以下の表3は、このときアップロードされる文字認識結果を分かりやすくまとめたものである。
【0042】
【表3】
【0043】
そして、図17は、上記アップロード指示と共にデータ管理部434に対し送信される、文字認識結果の実際のデータを示している。また、上記アップロード指示には、データの紐づけを行うための“processId”が含まれる。上記表3や図17から明らかなように、S1003のブロックセレクション処理の結果(図12を参照)に、S1012のOCR処理によって得られた認識文字列が追記された内容となっている。上記アップロード指示を受けたデータ管理部434は、OCR結果を図17で示したデータ形式で、“processId”と紐づけて保存する(S518)。そして、画像処理部434は、画像解析処理が完了したことをリクエスト制御部431に通知する(S519)。この完了通知には、画像解析結果と紐づけるための“processId”が含まれる。リクエスト制御部431は、画像解析処理の完了通知を受信し(S520)、完了通知に含まれる“processId”を指定して、画像解析結果のダウンロードをデータ管理部434に対して指示する(S521)。この際にダウンロードされる画像解析結果には、S517にて画像処理部432がアップロード指示したデータに加えて、S1002にて画像処理部432がアップロード指示した補正画像データも含まれる。画像解析結果のダウンロード指示を受けたデータ管理部434は、リクエスト制御部431より指定された“processId”に紐づいている画像解析結果を取得し、リクエスト制御部431に渡す(S522)。そして、リクエスト制御部431は、取得した画像解析結果に基づいて、MFP110の操作部220上に表示するファイル名設定画面の描画データを生成する(S523)。図18にファイル名設定画面の一例を示す。図18のファイル名設定画面1800において、ファイル名領域1801は、ユーザが設定したファイル名を表示する領域である。また、ファイル名領域1801の空白部分をタッチすると、図19に示すようなソフトキーボード1900が表示され、任意の文字を入力することができる。ファイル名が設定され文字列が表示されていた場合は、その文字列をタッチするとタッチした部分の文字列を修正するためのソフトキーボードが表示され、入力した文字を修正することができる。プレビュー領域1802は、スキャン画像の1ページ目のプレビュー画像を表示する。さらにプレビュー画像内のテキストブロックをタッチすると、タッチした位置に対応するテキストブロックをファイル名に追加することができる。選択した文字列は、選択したことがわかるように選択したテキストブロックなどに線、枠線などの形状や色などを付加して表示してもよい。複数のテキストブロックを選択した場合、それぞれのテキストブロックの色を異なる色にしてもよい。また、選択したテキストブロックが中央になるようにプレビュー画像の表示位置の変更や、拡大率の変更を行ってもよい。また、テキストブロックが複数存在する場合、あらかじめ設定された領域数分のテキストブロックが表示されるように、プレビュー画像の表示位置を算出してもよい。例えば、ファイル名に使用した領域のうち、一番上部の領域と一番下部の領域の中央部分が、プレビュー領域1802の縦方向の中央になるように表示位置と拡大率の変更を行い、プレビュー表示を行う。一度選択したテキストブロックを再度タッチすると、選択が解除されて対応するファイル名の文字列を削除して、テキストブロックに付与した線や色なども表示しない状態に戻す。例では文字列が非選択時の場合に、テキストブロックはプレビュー画像上には表示されないように記載している。しかし、ユーザにどの領域がタッチできるのかを示すために色や枠線を用いてテキストブロックがわかるように表示してもよい。また、テキストブロックがわかるようにする表示は、ボタンなどで表示と非表示が切り替えられるようにしてもよい。プレビュー領域に対してスワイプ操作を行うと、プレビュー領域1802で表示される画像の位置を移動することができる。ファイル名削除ボタン1803は、ファイル名のうち末尾に追加されているテキストブロックに対応する文字を削除する。プレビュー拡大ボタン1804は、プレビュー領域1802に表示しているプレビュー画像の倍率を大きくする。プレビュー縮小ボタン1805は、プレビュー領域1802に表示しているプレビュー画像の倍率を小さくする。拡大および縮小時にプレビュー領域1802の中央の座標が拡大および縮小前と同一となるように表示位置の調整を行う。プレビュー初期表示ボタン1806は、スワイプ操作によるプレビュー画像の表示位置の移動やプレビュー拡大ボタン1804やプレビュー縮小ボタン1805を押して表示倍率を変更していた場合に、初期状態の表示倍率と表示位置とに戻す。送信ボタン1807は、ファイル名設定画面1800で設定したファイル名と共にスキャン画像をMFP連携サーバ120へ送信するためのボタンである。送信が完了するとスキャン処理を終了し最初の画面に戻る。リクエスト制御部431にて、ファイル名設定画面1800の描画データを生成する際、プレビュー領域1802については、S1002にて画像処理部432がアップロード指示した補正画像データを用いる。また、スキャン画像に対するファイル名の初期状態を設定し、さらにはプレビュー領域1802内のテキストブロックがタッチされた際に、対応する文字列をファイル名に使用する文字列として設定するために、S517にて画像処理部432がアップロード指示したデータを用いる。ファイル名の初期状態の設定処理の手順や、テキストブロックのタッチによるファイル名の設定処理の手順の詳細については後述する。
【0044】
図5の説明に戻る。リクエスト制御部431が生成したファイル名設定画面の描画データは、後述の描画データ取得処理(S525)に従って、MFP110に送信される(S524)。
【0045】
≪描画データ取得処理≫
図20は、MFP110が描画データを取得する処理の流れを示すフローチャートである。図20のフローチャートに示す一連の処理は、前述のスキャン画像の解析リクエストの送信処理(S508)が完了したことを契機に実行される。
【0046】
まず、S2001では、リクエスト制御部431より受信した“processId”を用いて、MFP連携サーバ120に対し、画像解析処理の状況確認の問い合わせがなされる。MFP連携サーバ120は、状況確認の問い合わせを受けると、“processId”に紐づいている画像解析処理の状況を確認し、処理中であった場合は例えば図9(b)で示すようなレスポンスを返す。一方、処理が終了していた場合は例えば図9(c)で示すようなレスポンスを返す。この際のレスポンスには、“status”に現在の処理状況を示す文字列が格納される。図9(b)の“status”が“processing”の時は、MFP連携サーバ120で処理が行われている最中であることを示す。図9(c)の“status”が“completed”の時は、処理が完了している状態であることを示す。なお、図9(c)で示すレスポンスが、S524においてMFP連携サーバ120が送信する描画データにあたる。続くS2002では、問い合わせに対するレスポンスに基づき、画像解析処理が完了したか否かが判定される。具体的には、上述の“status”が“completed”でなければS2003に進み、“completed”であればS2004に進む。S2003では、画像解析処理の完了を待つために、所定時間だけ待機し、待機後にS2001の処理を再度実施する。S2004では、画像解析処理において生成された描画データを取得して本フローを終了する。
【0047】
図5の説明に戻る。ファイル名設定画面の描画データを受信したMFP110は、今回のスキャン画像に対するファイル名設定処理を、MFP連携サーバ120と協働して実行する(S526)。
【0048】
≪ファイル名設定処理≫
図21は、MFP110におけるファイル名設定処理の詳細手順を説明するフローチャートである。まず、S2101において、MFP110は、S525で取得した描画データに基づき、図18で示したファイル名設定画面を操作部220上に描画表示する。続くS2102において、MFP110は、操作部220のタッチパネルを介して、プレビュー領域1802内の任意のテキストブロックがユーザによってタッチされたか否かを判定する。この判定は、具体的には次の手順で行う。まず、ユーザによってタッチパネルがタッチされた場合に、そのタッチ座標を取得する。次に、描画データに含まれるOCR結果(表3及び図17を参照)を構成するテキストブロックのうち、取得したタッチ座標をその矩形領域に含むようなテキストブロックが存在するか否かを判定する。判定の結果、存在する場合にはテキストブロックがタッチされたと判定する。それ以外の場合、すなわち、ユーザによりタッチされていない場合や、タッチされた座標がどのテキストブロックの矩形領域にも含まれない場合にはタッチされていないと判定する。S2202の判定の結果、どのテキストブロックもタッチされていない場合はS2103に進み、タッチされたテキストブロックが存在する場合はS2104に進む。
【0049】
S2103において、MFP110は、ユーザによって送信ボタン1807がタッチされたか否かを判定する。判定の結果、タッチされていない場合はS2102に戻る。一方、送信ボタン1807がタッチされた場合は、本フローチャートを終了して、ファイル名設定リクエストの送信(S527)に進む。
【0050】
S2104において、MFP110は、タッチされたテキストブロックのOCR結果(認識文字列)が既に取得されているか否かを判定する。この判定は、具体的には描画データに含まれるOCR結果のうち、タッチされたテキストブロックに対する認識文字列(表3における「領域内文字列」の値や、図17における“text”の値)が空であるか否かにより行う。タッチされたブロックに対応する認識文字列が空であった場合はS2105に進み、空でなかった場合はS2107に進む。
【0051】
S2105において、MFP110は、OCR結果の更新をMFP連携サーバ120に対してリクエストする。図22は、MFP連携サーバ120におけるOCR結果更新処理の詳細手順を説明するフローチャートである。図22のフローチャートに示す一連の処理は、MFP連携サーバ120のリクエスト制御部431が、MFP110より更新リクエストを受けたことを契機に処理が開始される。
【0052】
まず、S2201では、リクエスト制御部431が、MFP110からのOCR結果の更新リクエストを受信する。この更新リクエストには、“processId”と、OCR結果の更新対象となるブロック(S2102にてMFP110がユーザによってタッチされたと判定したブロック)の“rect”の情報が含まれている。OCR結果の更新リクエストを受けたリクエスト制御部431は、画像処理部432に対してOCR結果の更新処理の実行を指示する。この実行指示には、MFP110から受信したOCR結果の更新リクエストと同様に、“processId”と、OCR結果の更新対象のブロックの“rect”の情報が含まれる。
【0053】
続くS2202では、画像処理部432が、S2201にてリクエスト制御部431より受けとった更新リクエストに含まれる、更新対象の“rect”の情報を取得する。さらに、画像処理部432は、“processId”を用いて、S2203にてブロックセレクション結果を取得し、S2204にて補正画像データを取得する。そして、S2205にて、画像処理部432は、S2202及びS2204にて取得したブロックセレクション結果と補正画像データを用いて、更新対象のブロックに対してOCR処理を実行する。そして、S2206において、画像処理部432は、S2205のOCR処理によって得られた認識文字列を、更新対象のブロックに対応する新たな認識文字列として保存するよう、データ管理部434に指示する。この指示を受けてデータ管理部434は、新たに取得された認識文字列を更新対象のブロックと対応付けて保存する。以上が、MFP連携サーバ120におけるOCR結果更新処理の内容である。
【0054】
図21のフローの説明に戻る。OCR結果の更新処理が終わると、S2106において、MFP110は、OCR結果をMFP連携サーバ120より再取得する。そして、S2107において、MFP110は、再取得したOCR結果のうち、タッチされたブロックに対する認識文字列を取得する。続くS2108において、MFP110は、S2107で取得した認識文字列を、今回のスキャン画像に対するファイル名を構成する文字列として設定し、S2103に進む。
【0055】
図21及び図22のフローを参照しつつ説明したここまでの処理手順について、具体例を用いて説明する。いま、ファイル名設定画面1800のプレビュー画像領域1802における座標(x, y)=(1259, 343)の部分がユーザによってタッチされたとする(S2102でYES)。この座標は、表3で示したOCR結果のうち、番号“1”のテキストブロックに含まれているので、タッチされたと判定されて、S2104に進む。番号“1”のブロックについての認識文字列(領域内文字列)である「見積書」は既に取得済みなので(S2104でYES)、続いてS2107及びS2108の処理が実行されることになる。そして、続くS2103において送信ボタン1807がタッチされず(S2103でNO)、戻り先のS2102において座標(x, y)=(1974, 470)へのタッチが検出されたとする。いま、座標(x, y)=(1974, 470)は、表3で示したOCR結果のうち、番号“4”のテキストブロックに含まれているので、S2102でYESとなってS2104に進む。番号“4”のテキストブロックについては認識文字列(領域内文字列)が未取得であるので、S2104でNOとなって、S2105及びS2106の処理が実行される。両処理によって、番号“4”のテキストブロックについての認識文字列として「R12-3456」が追記されたOCR結果が再取得されることになる。以上のような処理手順を経て、ファイル名設定画面の表示内容が、図23に示すような状態に変化する。その状態で、ユーザにより送信ボタン1807がタッチされると、ファイル名設定リクエストの送信(S527)に進むことになる。
【0056】
図5のフローの説明に戻る。ファイル名の設定処理が完了すると、MFP110は、電子対象の帳票のスキャン画像データをストレージサーバ130に保存する際に、S526にて設定されたファイル名を用いるようMFP連携サーバ120のリクエスト制御部431にリクエストする。このリクエストを「ファイル名設定リクエスト」と呼ぶ。ファイル名設定リクエストには、図24に示すような、“processId”と、当該ファイル名に使用した文字列に対応するテキストブロックとそれらの認識文字列を含む情報が含まれる。
【0057】
ファイル名設定リクエストを受け取ったリクエスト制御部431は、MFP110より送信されたファイル名設定リクエストを受信すると(S528)、ファイル名設定の学習処理の実行を画像処理部432に指示する(S529)。この学習指示には、S528にてリクエスト制御部431が受信したファイル名設定リクエストと同一のデータが含まれる。画像処理部432は、ファイル名設定の学習指示を受けて(S530)、ファイル名設定の学習処理を実行する(S531)。
【0058】
≪ファイル名設定の学習処理≫
図25は、画像処理部432が実行するファイル名設定の学習処理の詳細手順を説明するフローチャートである。まず、S2501では、S530でリクエスト制御部431からの学習指示が取得される。続くS2502では、S2501で取得した学習指示に含まれる情報、具体的には“processId”に紐づくブロックセレクション結果及びファイル名に使用されたテキストブロックの情報が、データ管理部434からダウンロードされる。続くS2503では、電子化対象の帳票のスキャン画像を一意に表すための“formId”がUUID形式で生成される。続くS2504では、ブロックセレクション結果とファイル名として使用されたテキストブロックの情報がマージされ、上述の“formId”と紐付けられた学習データが生成される。図26に、学習データの一例を示す。続くS2505では、S2504で生成した学習データがデータ管理部434にアップロードされる。このアップロードが完了すると、本フローを終了する。
【0059】
図5のフローの説明に戻る。ファイル名設定の学習処理が完了すると、画像処理部432は、リクエスト制御部431にファイル名設定の学習処理が完了した旨を通知する(S532)。リクエスト制御部431は、学習処理の完了通知を受信すると(S533)、ストレージサーバアクセス部433に対してファイル送信を指示する(S534)。このファイル送信指示には、“processId”と、S526にて設定されたファイル名とが含まれる。ファイル名は、スキャン画像データに関するプロパティ(属性)として設定される情報の一種である。ストレージサーバアクセス部433はファイル送信指示を受け取ると(S535)、まず、ファイル送信指示に含まれる“processId”から送信対象の補正画像データをデータ管理部434から取得する。そして、その補正画像データに対してファイル送信指示に含まれるファイル名を付与する。次に、ストレージサーバアクセス部433は、ストレージサーバ130に対してファイルを送信する(S536)。ファイルを受信したストレージサーバ130は、当該ファイルを保存する(S537)。そして、ストレージサーバアクセス部433は、リクエスト制御部431に対しファイル送信完了の旨を通知する(S538)。リクエスト制御部431は、ファイル送信の完了通知を受け取ると(S539)、MFP110に対して同じくファイル送信完了の旨を通知する(S540)。ファイル送信の完了通知をMFP110が受信すると(S541)、MFP110で文書をファイル化してストレージサーバ130に保存するまでの一連の処理が終了する。
【0060】
<変形例1>
次に、MFP連携サーバ120における処理の負荷状態に応じてOCR処理の対象ブロックを切り替えることでユーザに対する応答性のばらつきを抑える態様を、実施形態1の変形例として説明する。
【0061】
図27は、本変形例に係る、画像処理部432が実行する画像解析処理(S516)の詳細手順を示すフローチャートである。なお、前述の図10のフローチャートと共通のステップについては同じ符号を付してその説明を省略し、以下では差異点のみを説明することとする。
【0062】
S1010の判定結果がNO、すなわち、スキャン画像に含まれるブロックの数が所定数以下であった場合、本フローではS2701に進む。
【0063】
S2701では、リクエスト制御部431から、MFP連携サーバ120のCPU311の使用率が取得される。続くS2702では、S2701で取得したCPU使用率が、所定の閾値より低いか否かが判定される。ここで、所定の閾値は、MFP連携サーバ120が搭載するCPUの性能やMFP連携サーバ120に接続されるMFPの台数等に応じて予め決定しておけばよい。判定の結果、CPU使用率が一定レベルより低かった場合はS1011に進み、一定レベル以上であった場合はS1012に進む。
【0064】
上記のようにすることで、テキストブロックの数や大きさといった画像解析処理の結果として得られる情報のみならず、一般に処理時間に影響を与えうるシステムの処理負荷状況に関する情報も加味して、OCR処理の対象ブロックを決定することができる。その結果、システムの負荷状態に依るユーザへの応答性の劣化を抑制できる。
【0065】
なお、本変形例ではMFP連携サーバ120の処理負荷状況の指標としてCPU311の使用率を用いたがこれに限定されるものではなく、一般にシステムの負荷状態の指標となり得るものであればよい。
【0066】
<変形例2>
次に、MFP連携サーバ120におけるOCR処理の完了状態を記憶してユーザの操作に対する逐次の応答時間を削減することで、ユーザの体感としての応答性を向上させる態様を、実施形態1のさらなる変形例として説明する。
【0067】
図28は、本変形例に係る、画像処理部432が実行する画像解析処理(S516)の詳細手順を示すフローチャートである。なお、前述の図10のフローチャートと共通のステップについては同じ符号を付してその説明を省略し、以下では差異点のみを説明することとする。
【0068】
S1011において、解析対象画像に対するブロックセレクション処理によって抽出されたすべてのテキストブロックについてのOCR処理が完了すると、本変形例ではS2801に進む。
【0069】
S2801において、画像処理部432は、ブロックセレクション処理で抽出されたすべてのテキストブロックに対してOCR処理が実行済みであることを示す情報を保持する。本変形例では、S1011で得られたOCR処理結果に、解析対象画像の全面に対してOCR処理が完了したことを示すフラグ(全面OCR完了フラグ)の値をONに設定する。
【0070】
図29は、属性“isFullOcrCompleted”で表される全面OCR完了フラグ2901を含むOCR処理結果の一例を示す図である。いま、その属性値として、ONに相当する“true”が設定されており、解析対象画像の全面に対してOCR処理が完了したことを示している。
【0071】
図30は、本変形例におけるファイル名設定処理(S526)の詳細手順を示すフローチャートである。なお、前述の図21のフローチャートと共通のステップについては同じ符号を付してその説明を省略し、以下では差異点のみを説明することとする。
【0072】
S2102の判定結果がYES、すなわち、プレビュー領域1802内の任意のテキストブロックがユーザによってタッチされた場合、本フローではS3001に進む。
【0073】
S3001において、画像処理部432は、OCR処理結果に含まれる前述の全面OCR完了フラグ2901の属性値が“true”であるか否かを判定する。
【0074】
判定の結果、属性値が“true”であった場合(S3001がYESの場合)、S2107に進む。一方、属性値が“false”であった場合、もしくはOCR処理結果に“isFullOcrCompleted”のような全面OCR完了フラグ2901が存在しなかった場合には、S2105に進む。
【0075】
図31は、本変形例におけるOCR結果更新処理(S2105)の詳細手順を示すフローチャートである。なお、前述の図22のフローチャートと共通のステップについては同じ符号を付してその説明を省略し、以下では差異点のみを説明することとする。
【0076】
S2201、S2203、S2204の各処理を順に実行した後、本フローでは、図10のフローチャートにおけるS1011の処理が実行される。すなわち、解析対象画像に対するブロックセレクション処理によって抽出されたすべてのテキストブロックに対してOCR処理が画像処理部432によって実行される。
【0077】
続いて、前述のS2801のフラグ設定処理を実行され、S1011の処理で得られたOCR処理結果に対して、解析対象画像の全面に対してOCR処理が完了したことを示す情報が追記される。
【0078】
上記のように解析対象画像に対するOCR処理の完了状態を記憶しておくことで、ユーザがOCR未実施のテキストブロックを選択する都度、OCR処理のオーバーヘッドが掛かることでユーザが感じる応答性の劣化を抑制することができる。
【0079】
以上のとおり、本実施形態によれば、類似文書へのファイル名付与が過去に行われていなかった場合でも、今回のスキャン画像に含まれるテキストブロックの数に応じてOCR処理の実施対象とするテキストブロックを決定することができる。それにより、一般的にはテキストブロックの数に比例するOCR処理の所要時間を、解析対象画像に含まれるテキストブロックの数に依らず削減することができ、ひいてはファイル名設定画面の描画データの生成に要する時間も抑制できる。さらに、解析対象画像に含まれるテキストブロックの数が多い場合でも、一般にファイル名として付与されやすいことが知られている、大きさが一定以上のテキストブロックに対してのみOCR処理を予め実施しておくことができる。そのため、ユーザがファイル名を設定する時に初めてOCR処理を実施する手法に比べて応答性を向上することができる。
【0080】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31