JP2021076975A - 画像処理装置、画像処理方法およびプログラム - Google Patents

画像処理装置、画像処理方法およびプログラム Download PDF

Info

Publication number
JP2021076975A
JP2021076975A JP2019201589A JP2019201589A JP2021076975A JP 2021076975 A JP2021076975 A JP 2021076975A JP 2019201589 A JP2019201589 A JP 2019201589A JP 2019201589 A JP2019201589 A JP 2019201589A JP 2021076975 A JP2021076975 A JP 2021076975A
Authority
JP
Japan
Prior art keywords
character string
character
image
file name
property
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019201589A
Other languages
English (en)
Inventor
祐人 佐々木
Hiroto Sasaki
祐人 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2019201589A priority Critical patent/JP2021076975A/ja
Publication of JP2021076975A publication Critical patent/JP2021076975A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Machine Translation (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】ユーザが意図した領域の文字列をスキャン画像のプロパティとして自動設定する。【解決手段】スキャン画像を解析して文字列とその文字列に対応する固有表現とを抽出し、当該抽出された文字列のうち、基準文書のプロパティに設定された文字列の固有表現に対応する文字列を、前記文書のスキャン画像のプロパティに設定する。【選択図】図26

Description

本発明は、文書をスキャンして得た画像データから抽出した文字情報を基に生成されたメタデータを画像データに対して付与する技術に関する。
画像形成装置において、文書をスキャンして得た画像データに対して、OCR(optical character recognition)処理を行うことで、画像データ内の文字列をデジタルデータとして抽出する技術が存在する。また、抽出した文字列をメタデータとして画像データに設定することも可能である。前記メタデータとは一般的にファイル名、日付、作成者などが挙げられるが、それ以外であってもキー・バリュー構造を持つデータであればこれに該当する。例えば、「書類種別」というキーに対して、「注文書」というバリュー構造を持つデータもメタデータである。
こうした画像データに対して、その画像データを解析したうえで抽出した文字列および画像情報をもとに、適切なメタデータを設定する技術が存在する(特許文献1を参照)。
特開2005−57360号公報
ところで、帳票の可読性を向上させるため、“住所”や“宛先”などの記載位置の交換、文字の大きさ、ページ内の文字の位置、左揃えや中央揃えや右揃えなどの行内の文字の配置の変更など、帳票のフォーマットのレイアウトが変更されることが多々ある。帳票の画像データに対して、メタデータが位置情報のみで自動的に設定される場合、帳票のフォーマットのレイアウトが変更されると、ユーザにとって意図しない文字情報がメタデータとして自動設定されてしまう恐れがある。
一方、特許文献1では、メタデータとして適切な位置をあらかじめ特徴量として保持しておき、それを適用することにより、位置を考慮したうえで、メタデータとしてより適切な領域を設定することが可能となる。しかしながら、特許文献1の手法では、メタデータとする領域を指定するためのルールを変更することが加味されていない。そのため、ユーザが特定の文字領域を指定してメタデータを付与した後、同じフォーマットの別の帳票の画像データが入力されても、前に指定した特定の文字領域をメタデータとして自動で設定するユースケースに対応できない。
本発明の一態様に係る画像処理装置は、文書のスキャン画像のプロパティを設定するための画像処理装置であって、前記スキャン画像を解析して文字列と当該文字列に対応する固有表現とを抽出する抽出手段と、前記抽出手段によって前記スキャン画像から抽出された前記文字列のうち、前記文書と異なる基準文書のプロパティに設定された文字列の固有表現に対応する文字列を、前記文書のスキャン画像のプロパティに設定する設定手段と、を有する、ことを特徴とする。
本発明によれば、ユーザが意図した領域の文字列をスキャン画像のプロパティとして自動設定することがきる。
画像処理システムの全体構成例を示す図である。 MFPのハードウェア構成例を示す図である。 MFP連携サーバおよびストレージサーバのハードウェア構成例を示す図である。 画像処理システムのソフトウェア構成例を示すブロック図である。 画像処理システム全体の処理の流れを示すシーケンス図である。 メイン画面例を示す図である。 ログイン画面例を示す図である。 スキャン設定画面例を示す図である。 リクエストIDの一例とスキャン画像解析リクエストのレスポンスデータ例とを示す図である。 ファイル名設定画面例を示す図である。 学習リクエストの一例を示す図である。 MFPにおける処理の流れを示すフローチャートである。 スキャン画像例を示す図である。 ファイル名設定画面例を示す図である。 文字認識結果例を示す図である。 類似帳票判定結果例を示す図である。 スキャン画像例を示す図である。 MFPでのファイル名設定処理の流れを示すフローチャートである。 MFPでのファイル名設定処理の流れを示すフローチャートである。 プレビュー領域の初期表示部分を示す図である。 プレビュー領域の初期表示部分を示す図である。 ファイル名設定画面例を示す図である。 ソフトキーボード画面例を示す図である。 ガイダンスメッセージが表示されたファイル名設定画面例を示す図である。 文字列に対してタッチ操作がなされたときのファイル名設定画面例を示す図である。 MFP連携サーバにおける処理の流れを示すフローチャートである。 候補文字列ブロックリスト作成処理の手順例を示すフローチャートである。 ファイル名設定済みの元原稿例を示す図である。 候補文字列ブロックが左揃えのスキャン画像例を示す図である。 候補文字列ブロックが右揃えのスキャン画像例を示す図である。 候補文字列ブロックが中央揃えのスキャン画像例を示す図である。
以下、本発明を実施するための形態について図面を用いて説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。また、実施形態で説明されている構成要素の組み合わせのすべてが、課題を解決するための手段に必須のものとは限らず、種々の変形及び変更が可能である。
<<実施形態1>>
<システム構成>
図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画面で用いられる画像を生成する。所定の画像処理の詳細については後述する。
<サーバ装置のソフトウェア構成>
まず、MFP連携サーバ120のソフトウェア構成について説明する。MFP連携サーバ120は、リクエスト制御部431、画像処理部432、ストレージサーバアクセス部433、データ管理部434、表示制御部435を有する。
リクエスト制御部431は、外部装置からのリクエストを受信できる状態で待機しており、受信したリクエスト内容に応じて、画像処理部432、ストレージサーバアクセス部433、データ管理部434に対し所定の処理の実行を指示する。
画像処理部432は、MFP110から送られてくるスキャン画像データに対して、文字領域の検出処理、文字認識処理、固有表現の抽出処理、類似文書の判定処理といった画像解析処理の他、回転や傾き補正といった画像加工処理を行う。
ストレージサーバアクセス部433は、ストレージサーバ130に対する処理のリクエストを行う。クラウドサービスでは、RESTやSOAPなどのプロトコルを用いてストレージサーバにファイルを保存したり、保存したファイルを取得したりするための様々なインタフェースを公開している。ストレージサーバアクセス部433は、公開されたインタフェースを使用して、ストレージサーバ130に対するリクエストを行う。
データ管理部434は、MFP連携サーバ120で管理するユーザ情報や各種設定データ等を保持・管理する。
表示制御部435は、インターネット経由で接続されたPCやモバイル等の別端末(不図示)上で動作しているウェブブラウザからのリクエストを受けて、画面表示に必要な画面構成情報(HTML、CSS等)を返す。ユーザは、ウェブブラウザで表示される画面経由で、MFP連携サーバ120に登録されているユーザ情報を確認したり、スキャン設定を変更したりできる。
次に、ストレージサーバ130のソフトウェア構成について説明する。ストレージサーバ130は、リクエスト制御部441、ファイル管理部442、表示制御部443を有する。リクエスト制御部441は、外部装置からのリクエストを受信できる状態で待機しており、本実施形態においてはMFP連携サーバ120からのリクエストに応じて、受信したファイルの保存や保存ファイルの読み出しをファイル管理部442に指示する。そして、リクエストに応じたレスポンスをMFP連携サーバ120に返す。表示制御部443は、インターネット経由で接続されたPCやモバイル等の別端末(不図示)上で動作しているウェブブラウザからのリクエストを受けて、画面表示に必要な画面構成情報(HTML、CSS等)を返す。ユーザは、ウェブブラウザで表示される画面経由で、ストレージサーバ130に登録されている保存ファイルを確認したり取得したりできる。
<画像処理システム全体の処理の流れ>
図5は、MFP110で文書をスキャンし、得られたスキャン画像をファイル化してストレージサーバに保存する際の、装置間の処理の流れを示すシーケンス図である。図6は、MFP110の起動時に表示されるメインメニューのUI画面(以下、「メイン画面」と表記)の一例を示す図である。文書をスキャンしてファイル化し、クラウドストレージサービスの利用に必要な専用のアプリケーションをMFP110にインストールすることで、メイン画面600上に「スキャンしてクラウドストレージに保存」ボタン601が表示されるようになる。そして、ユーザがメイン画面600内に表示されたメニューボタンの中から「スキャンしてクラウドストレージに保存」ボタン601を押下すると、図5のシーケンス図で示される一連の処理が開始する。以下、図5のシーケンス図に沿って、装置間のやり取りを時系列に説明する。なお、以下の説明において記号「S」はステップを表す。
MFP110は、MFP連携サーバ120にアクセスするためのログイン認証の情報を入力するUI画面(以下、「ログイン画面」と表記)を操作部220に表示する(S501)。図7は、ログイン画面700の一例を示す図である。ユーザが、予め登録されているユーザ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の一例を示す図である。スキャン設定画面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に返す。図9(a)は、リクエストIDの一例を示す図である。一方、解析処理の実行指示を受けた画像処理部432は、スキャン画像に対する解析処理を実行する(S508)。この画像解析処理では、まずスキャン画像内に存在する文字領域を検出する処理を行う。文字領域の検出は、例えば、ある閾値で2値化を行った画像から文字と推測される矩形領域を抽出する方法など、既知の方法を適用すればよい。次に、文字領域検出処理によって見つかった各文字領域に対して、文字認識(OCR:Optical Character Recognition)処理を行う。さらに、文字認識処理によって認識された文字領域に対して、固有表現を抽出する処理を行う。なお、固有表現の抽出処理の詳細については後述する。そして、今回のスキャン対象の帳票が、過去のスキャン対象の帳票と類似しているかどうかを判定する処理(類似帳票判定処理)を行う。この類似帳票の判定では、スキャン画像内に存在する各文字領域が当該スキャン画像のどこに位置するかを示す配置情報を用いる。具体的には、過去のスキャン画像についての配置情報と今回のスキャン画像についての配置情報とを比較し、文字領域の配置が類似しているかどうかを判定する。すなわち、処理対象の文書のスキャン画像が、基準文書の基準スキャン画像の特徴量に近い特徴量を持つかどうかを判定する。これは、文字領域の配置が類似していれば、それらは同一のフォーマットを用いて作成された帳票であると推測できることに基づいている。この類似帳票の判定で使用する過去のスキャン画像の配置情報は、後述の「帳票学習処理」によって蓄積される。これら画像解析処理によって得られた結果は、リクエスト制御部431に渡される。なお、本実施形態では、文字領域の配置の類似度合いのみに基づき帳票の類否を判定しているが、例えば、OCR処理結果から帳票の種別(見積書、請求書など)を特定し、得られた種別の情報を加味して類否を判定してもよい。
上記画像解析処理が行われている間、MFP110は、上述のリクエストIDを使用して、MFP連携サーバ120に対して定期的(例えば数百ミリ秒から数ミリ秒程度毎)に処理状況の問合せを行う(S509〜S509’)。この問合せは、MFP連携サーバ120からの画像解析処理の完了レスポンス(S510)が取得できるまで繰り返し実行される。MFP連携サーバ120は、処理状況の問合せを受けると、リクエストIDに対応する画像解析処理の進行状況を確認し、完了していない場合は処理中を表すレスポンス(図9(b)を参照)を返す。また、完了していた場合は完了を表すレスポンス(図9(c)を参照)を返す。このレスポンスの“status”には現在の処理状況を示す文字列、具体的には、MFP連携サーバ120で処理が行われている最中である場合には“processing”が入り、処理が完了している場合には“completed”が入る。なお、処理が失敗した場合の“failed”など、他のステータスを表す文字列が入ることもある。図9(c)に示すとおり、処理完了時のレスポンスには、ステータス情報に加え、スキャン画像の解析結果に関する情報などを含む。
処理完了レスポンスを受信した後、MFP110は、当該レスポンスに含まれる、画像解析結果の格納先を示すURLを用いて、画像解析処理の結果を、MFP連携サーバ120に対してリクエストする(S511)。この場合のURLには、“ocrResultUrl”と“matchingResultUrl”がある。リクエストを受けてMFP連携サーバ120のリクエスト制御部431は、画像解析処理の結果情報を返す。
そして、MFP110は、取得した結果情報を使用して、ファイル名を設定するためのUI画面(以下、「ファイル名設定画面」と表記)を表示する(S512)。図10は、ファイル名設定画面の一例を示す図である。ユーザが、ファイル名を設定して送信ボタン1007を押下すると、MFP110は、まず、当該ファイル名を設定する際にユーザが行った入力操作に関する情報(設定時入力情報)を含んだ学習リクエストをMFP連携サーバ120に送信する(S513)。図11は、学習リクエストの一例を示す図である。“learningContent”において学習内容が特定され、その中には、ファイル名に使用された文字領域に関する“rectInfoArray”とメタデータに関する“metadataArray”がある。“rectInfoArray”には、ファイル名設定時に使用した文字領域の座標情報が入る。“metadataArray”には、ファイル名に使用した文字列に対応する文字領域の情報と、当該文字列に付随する区切り文字(セパレータ)の情報が入る。図11の例では、先頭が“fileRegion0”の文字領域の文字列、その次が区切り文字、そして末尾が“fileRegion1”の文字領域の文字列、の順に並ぶファイル名構成であることを示している。
学習リクエストを受信したMFP連携サーバ120では、リクエスト制御部431が、画像処理部432に対し帳票学習処理の実行を指示する(S514)。この指示を受けて画像処理部432は、スキャン画像に存在する各文字領域の配置情報と、S513で受け取った学習リクエストに含まれるファイル名設定時の入力情報(ファイル名の構成情報)を保存する(S515)。
その後、MFP110は、スキャン画像のデータとそのファイル化の際に設定するファイル名等の情報と共に、当該スキャン画像の保存リクエストをMFP連携サーバ120に送信する(S516)。保存リクエストを受信したMFP連携サーバ120では、リクエスト制御部431が、ファイル生成処理を開始すると共に保存リクエストを正常に受けたことを示すレスポンスをMFP110に返す。そのレスポンスを受け取ったMFP110は、処理を終了し、スキャン設定画面の表示状態(S504)に戻る。一方、MFP連携サーバ120では、事前に登録されたスキャン設定からファイルフォーマットの情報を取得し、当該ファイルフォーマットに従ってスキャン画像をファイル化する(S517)。この際、生成されたファイルには保存リクエストにて指定されたファイル名が付されることになる。こうして生成されたスキャン画像ファイルは、ストレージサーバ130に送信され、保存される(S518)。
以上が、画像処理システム全体の処理の流れである。
<MFPの処理詳細>
続いて、MFP110における動作に着目して、上述の画像処理システムでストレージサービスを利用する場合の処理について詳しく説明する。図12は、MFP110における処理の流れを示すフローチャートである。この一連の処理は、制御部210において、CPU211がHDD214に記憶された制御プログラムを実行することにより実現され、前述のメイン画面600での「スキャンしてクラウドストレージに保存」ボタン601の押下に応答して開始される。以下、図12に示すフローチャートに沿って詳しく説明する。なお、各処理の冒頭における記号「S」はステップを意味する。
S1201では、表示制御部421は、前述のログイン画面700を表示する。ログイン画面700上でユーザ名(ユーザID)とパスワードが入力欄702及び703にそれぞれ入力され、「ログイン」ボタン701の押下が検知されると、処理がS1202に進む。
S1202では、連携サービスリクエスト部423は、ログイン認証リクエストをMFP連携サーバ120に送信する。MFP連携サーバ120でのログイン認証によって正規のユーザであることが確認されると、連携サービスリクエスト部423は、アクセストークンをMFP連携サーバ120から受信する。
S1203において、アクセストークンを受信したMFP110では、表示制御部421が、前述のスキャン設定画面800を操作部220に表示する。ログインユーザによって原稿台に文書がセットされ、「スキャン開始」ボタン801の押下が検知されると、表示制御部421は、スキャン指示部422に対してその旨を通知する。
S1204において、上記通知を受けたスキャン指示部422は、スキャン実行部411に対してスキャン処理の実行を指示する。当該指示を受けてスキャン実行部411は、原稿台に置かれた文書をスキャンする。本フローの説明においては、スキャン対象として帳票(より具体的には見積書)を例に説明を行うものとする。これにより、図13に示すような見積書のスキャン画像が得られる。スキャンによって生成されたスキャン画像データは、スキャン画像管理部412に保存され、当該スキャン画像を特定可能な識別子がスキャン指示部422に通知される。この際、スキャンの実行中である旨を示すメッセージ画面(不図示)が操作部220上に表示されるようにしてもよい。
次にS1205において、連携サービスリクエスト部423は、スキャン指示部422を介してスキャン画像データを取得し、MFP連携サーバ120にその解析リクエストと共に送信する。当該解析リクエストに基づき、MFP連携サーバ120では、受信したスキャン画像データに対して、前述の画像解析処理が実行される。その際、MFP連携サーバ120のリクエスト制御部431からリクエストIDが返される。
S1206において、リクエストIDを取得した連携サービスリクエスト部423は、処理ステータスの取得リクエストをリクエストIDと共にMFP連携サーバ120に送信する。当該取得リクエストに基づき、MFP連携サーバ120は、リクエストIDで特定される画像解析処理の進行状況に応じたレスポンスをMFP110に返す。
S1207において、連携サービスリクエスト部423は、受け取ったレスポンスにおけるステータスが処理中を示す“processing”であった場合はS1206に戻る。そして、所定時間の経過を待って、再び処理ステータスの取得リクエストをMFP連携サーバ120に送信する。受け取ったレスポンスにおけるステータスが完了を示す“completed”であった場合は、S1208に進む。ここで、本実施形態における処理完了時のレスポンスに含まれる画像解析結果の情報について、前述の図9(c)を参照しつつ説明する。画像解析結果の情報には、“ocrResultUrl”、“matchingResultUrl”、“formKeys”の3種類の情報がある。“ocrResultUrl”は、画像解析処理のうちOCR処理の結果を取得するためのURLの情報である。“matchingResultUrl”は、画像解析処理のうち類似帳票判定処理の結果を取得するためのURLの情報である。“formKeys”は、ファイル名、メタデータ、フォルダパスといったプロパティをスキャン画像に設定するための設定値の情報であり、MFP連携サーバ120において事前設定されている。“formKeys”の中には以下の情報が含まれる。
・key:スキャン画像に設定する設定値を一意に示す値
・keyType:keyの設定値の種別を示す値
・value:設定値の初期値(例えば、スキャン画像であることを示す“scan”)
・type:設定値に入力する値の種類を示す値
(例えば、文字列なら“string”、数値なら“number”、日付なら“date”など)
・displayName:MFPのタッチパネル上に設定画面を表示するときの表示名
・required:その設定値を入力することが必須かどうかを示す値
・multiSelect:ファイル名に複数の文字領域の文字列を使用するかどうかを示す値
・separator:複数の文字領域の文字列を使用する場合の文字列間を繋ぐ区切り文字の内容
・autoInput:初期ファイル名の自動入力を行うかどうかを示す値
図9(c)には、スキャン画像にファイル名を設定する場合の“formKeys”が示されている。この図9(c)の場合を例に、“value”、“displayName”、“required”、“multiSelect”の各値が、次のS1209で表示されるファイル名設定画面(図10)にどのような影響をあたえるかを説明する。いま、“value”の内容は空である。この場合、ファイル名設定画面1000のファイル名入力欄1001には初期値が表示されないことになる。また、“displayName”は「ファイル名」となっている。この場合、図10のファイル名設定画面1000のように設定のタイトルやラベルを示す「ファイル名」の文字列が画面上部に(この例では白抜き文字で)表示されることになる。また、“required”は「true」となっている。この場合、ファイル名入力欄1001に文字列が入っていない空の状態では送信ボタン1007を押下することができなくなる。また、“multiSelect”が「true」となっている。この場合、スキャン画像から検出された複数の文字領域を選択することが可能になり、これによって各文字領域に対応した文字列を繋げたファイル名を設定できることになる。これら“formKeys”に含まれる上記の内容は、MFP連携サーバ120の表示制御部435が表示するファイル名条件設定画面を介してユーザが設定する。図14は、ファイル名条件設定画面の一例を示す図である。ファイル名条件設定画面1400内のチェックボックス1401は、以前にスキャン画像のファイル名設定時に用いた文字領域の情報を使用して自動的にファイル名を入力するか否かをユーザが選択するために用いる。設定欄1402には、ファイル名に複数の文字領域に対応する複数の文字列を使用する場合に、文字列間に挿入する区切り文字に何を使用するかをプルダウン表示される選択肢(アンダースコア、ハイフンなど)の中から設定する。ここでは、アンダースコアが選択されている。設定欄1403には、ファイル名設定画面(図10)の初期表示の際に予め入力状態にしておき、ユーザにファイル名の候補として提示する文字列(初期ファイル名)を設定する。このファイル名条件設定画面1400で設定した内容はデータ管理部434で保持され、処理完了時のレスポンスを作成する際に参照される。
S1208において、連携サービスリクエスト部423は、処理完了時のレスポンスに含まれるURLにアクセスして、画像解析結果を取得する。図9(c)の例では“ocrResultUrl”と“matchingResultUrl”に情報が格納されているので、この2つのURLにアクセスして画像解析結果を取得する。以下の表1は、図13のスキャン画像から検出された文字領域(以下、文字列ブロックともいう)の座標と、各文字領域についての文字認識結果(認識された文字列)と固有表現抽出結果を示している。ただし、表1ではその一部を省略している。
Figure 2021076975
そして、図15は、“ocrResultUrl”にアクセスして取得される、図13のスキャン画像についての文字認識結果を示している。“imageWidth”は、解析対象のスキャン画像のX方向(横方向)のピクセル数を示す。“imageHeight”は、解析対象のスキャン画像のY方向(縦方向)のピクセル数を示す。“regions”は、スキャン画像から検出した文字領域の座標情報(“rect”)と、その文字領域に対応する文字列情報(“text”)が含まれる。“rect”には、検出した文字領域を特定する情報が含まれる。“x”は、文字領域の左上隅のX座標を示す。“y”は、文字領域の左上隅のY座標を示す。“width”は、文字領域のX(幅)方向のピクセル数を示す。“height”は、文字領域のY(高さ)方向のピクセル数を示す。“text”は、“rect”で特定される文字領域をOCR処理して得られた文字列の情報を示す。“namedEntity”は、文字列の情報から固有表現の抽出処理で得られた固有表現の情報を示す。なお、抽出する固有表現がない場合は空でも構わない。このrect”と“text”と“namedEntity”の情報が、解析対象のスキャン画像内の検出された全ての文字領域分だけ含まれる。ただし、図15ではその一部を省略している。
そして、図16は、“matchingResultUrl”にアクセスして取得される、図13のスキャン画像についての類似帳票判定結果を示している。“matched”には、前述の類似帳票判定処理によって、今回解析対象のスキャン画像と類似しているものが過去のスキャン画像の中から見つかったかどうかを示す値として“true”又は“false”が入る。値が“true”であれば、今回のスキャン対象の帳票が以前にスキャンした帳票と類似していることを示し、“false”であれば類似していないことを表す。“formId”には、類似する帳票が見つかった場合は、過去の類似帳票スキャン画像を一意に示す値(ID値)が入る。一方、類似する帳票が見つからなかった場合は、今回スキャンを行った帳票のスキャン画像を一意に示す新たに作成されたID値が入る。そして、この新たに作成されたID値は、過去に類似帳票が存在しなかった帳票のスキャン画像についてのファイル名設定時の入力情報(ファイル名の構成情報)を学習させるときに使用される。“matchingScore”には、類似する帳票があった場合に一致度合いを示す値が入る。本実施形態の類似度は、過去のスキャン画像における文字領域の配置情報と今回のスキャン画像における文字領域の配置情報との一致度合いを0〜1までの実数値で表したものであり、その値が大きいほど類似した帳票であることを示す。“rectInfoArray”には、過去の類似帳票のスキャン画像に対するファイル名設定時に使用された文字領域に対応する、今回解析対象のスキャン画像における文字領域を示す情報が入る。
図16の例の場合は、以前に、見積書をスキャンして得られた図13のスキャン画像に対して「見積書」と「品川株式会社」の2つの文字列を使用してファイル名を設定し、その入力情報の学習を行っている。その後に、同一フォーマットで作成した見積書をスキャンして図17に示すスキャン画像を生成し、当該スキャン画像について類似帳票判定処理を行った結果、図13のスキャン画像と類似していると判定される。そして、図13のスキャン画像に対するファイル名の設定時に使用された文字領域の情報が、自動入力の対象となる文字領域の情報として格納された状態を、図16の例に示している。以下、図16に示す類似帳票判定処理の結果が得られるまでの過程を説明する。
前提として、前述の図11の学習リクエストに基づく学習結果が、データ管理部434に保存されているものとする。そして、類似帳票判定処理では、以前のファイル名設定時に用いた「見積書」と「品川株式会社」の文字領域の座標情報を用いて、今回のスキャン画像に含まれる文字領域の中の当該座標情報で示された文字領域とその一部が重なる文字領域が特定される。そして、一部が重なると特定された文字領域の座標情報と当該文字領域の文字列を“rectInfoArray”の“text”に格納される。“key”には、ファイル名の自動入力に使用する文字領域を一意に示す値が入る。“region”には“key”が一意に示す文字領域の座標情報と当該文字領域に対するOCR処理によって得られた文字列が格納される。そして、“rect”には、key”が一意に示す文字領域を特定する情報が含まれる。この場合において、“x”は文字領域の左上隅のX座標、“y”は文字領域の左上隅のY座標、“width”は文字領域のX(幅)方向のピクセル数、height”は文字領域のY(高さ)方向のピクセル数を示す。そして、“rect”で特定される文字領域をOCR処理して得られた文字列の情報が“text”に入っている。“namedEntity”には、“text”に入っている文字列の情報に対し固有表現抽出処理を行って抽出した抽出結果を示す情報が入っている。固有表現が設定されていない場合、空が設定される。“metadataArray”には、ファイル名を自動入力する際に使用する文字領域の順番と区切り文字がどこに入るかを示す情報が格納される。ファイル名以外にもメタデータなどのプロパティ情報が設定されている場合には、“rectInfoArray”や“metadataArray”において、必要な情報が追加される。“key”には、スキャン画像に設定する設定値を一意に示す値が格納される。“keyType”には、“key”の設定値の種別を示す値が格納される。ファイル名に使用する場合は、“key”には“filename”が入り、“keyType”には“filename”が入る。“value”には、“key”の値に使用する文字領域と区切り文字の情報が格納される。図16の例では、“rectInfoArray”の中の“fileRegion0”の“key”を持つ文字領域の文字列が1番目、区切り文字が2番目、“fileRegion1”の“key”を持つ文字領域の文字列が3番目となっている。そして、この順番でファイル名入力欄1001に自動入力され、初期ファイル名として表示されることになる。なお、MFP連携サーバ120の詳細な画像処理の内容については後述する。
S1209において、表示制御部421が、前述のファイル名設定画面1000を操作部220に表示して、ユーザが、スキャン画像に対するファイル名の設定を行えるようにする。このファイル名設定処理の詳細については後述する。
S1210において、連携サービスリクエスト部423が、S1206の処理ステータスのリクエストに対するレスポンスを参照して、ファイル名の自動入力を行う設定となっているか否かを判定し、次の処理を決定する。具体的には、前述の図9(c)で示した処理完了時のレスポンスに含まれる“autoInput”の値を参照し、自動入力を行う設定を意味する“true”の場合はS1211へ進む。一方、自動入力を行わない設定を意味する“false”の場合はS1214へ進む。
S1211において、連携サービスリクエスト部423は、今回のスキャン画像に類似するスキャン画像が過去に存在していたかどうかを、S1208で取得した画像解析結果に基づき判定する。具体的には、前述の図16で示した類似帳票判定処理の結果に含まれる“matched”の値を参照し、過去のスキャン画像の中に類似したものが存在することを示す“true”の場合はS1212へ進む。一方、類似したものが存在しないことを示す“false”の場合はS1213へ進む。
S1212において、連携サービスリクエスト部423は、S1209のファイル名設定処理において、ファイル名入力欄1001に自動入力されていた初期ファイル名に対して、ユーザが変更を加えたかどうかを判定する。この場合の変更には、例えば今回のファイル名に使用する文字領域を、初期ファイル名で使用されている文字領域と異なるものにしたり、区切り文字を追加したり或いは削除したりすることを含む。そして、この判定は、図16の類似帳票判定処理の結果に含まれる“metadataArray”の“value”の値と、今回のスキャン画像に対するファイル名設定を行った後のファイル名入力欄1001への入力情報との比較により行う。比較の結果、差異があれば初期ファイル名に対して変更がなされたと判断してS1213へ進み、一致していれば初期ファイル名に対して変更がなされていないと判断してS1214へ進む。なお、“formKeys”の“value”によって自動入力されていたファイル名の先頭文字列については、ユーザによって削除されていても入力情報が変わったとみなさずにS1214に進んでもよい。
S1213では、連携サービスリクエスト部423が、今回のスキャン画像に対して設定されたファイル名の構成を表す設定時入力情報の学習リクエスト(前述の図11を参照)を、MFP連携サーバ120へ送信する。この場合の学習リクエストに含まれる“formId”には、S1208で取得した画像解析結果の類似判定処理結果に含まれる“formId”の値が使用される。図16の例では、“formId”として“aaaaaaaa-ffff-49ab-acf8-55558888eeee”が入っているので、これが学習リクエストに格納されることになる。また、“learningContent”には、ファイル名設定時に使用した入力情報の内容が格納される。まず、rectInfoArray”には、ファイル名に使用した文字列が属する文字領域の座標情報が、その文字領域の数分だけ格納される。そして、“metadataArray”には、ファイル名の設定に用いた文字領域と区切り文字の情報が格納される。前述の表1を参照して、このときのユーザが行った操作を説明すると、ファイル名設定画面1000のプレビュー領域1002において、最初に番号1の「見積書」をタッチする。その次に、番号8の「品川株式会社」をタッチし、最後に送信ボタン1007を押下している。学習リクエストを受けたMFP連携サーバ120は、このようなユーザ操作に基づく入力情報を蓄積し、当該蓄積した入力情報を次回以降の画像解析処理から使用することになる。学習リクエストを送信後、当該学習リクエストを正常に処理した旨のレスポンスをMFP連携サーバ120から受け取ると、S1214へ進む。
S1214では、連携サービスリクエスト部423が、処理対象のスキャン画像データとS1209で設定されたファイル名とを対応付けて、MFP連携サーバ120に送信する。この送信完了によって本処理が終了する。なお、本実施形態ではスキャン画像データとそのファイル名の送信を最後に行っているが、スキャン処理が終わり、スキャン画像管理部412によるスキャン画像データの保存の時点で並行して、MFP連携サーバ120に送信しておいてもよい。
以上が、MFP110における動作に着目したストレージサービスを利用する場合の処理の流れである。なお、上記の説明では、1枚の見積書をスキャンして得られた1つのスキャン画像をファイル化する際のファイル名設定を行う場面を想定していた。しかし、本実施形態はこれに限定されるものではなく、複数の文書をスキャンして得られた複数のスキャン画像をファイル化する際のファイル名設定を行う場面にも同様に適用可能である。この場合、ファイル名設定画面1000内にページめくりをするためのボタンを設け、2ページ目や3ページ目のスキャン画像の文字領域からもファイル名の設定を行えるようにしてもよい。
<ファイル名設定処理>
続いて、前述のS1209にて表示制御部421が実行するファイル名設定処理について、図18および図19に示すフローチャートに沿って詳しく説明する。
S1801では、前述のファイル名設定画面1000のファイル名入力欄1001に初期状態で表示されるファイル名(初期ファイル名)が生成される。初期ファイル名は、以下の手順で生成される。まず、前述の処理完了時のレスポンスを参照し、“formKeys”の“value”に何らかの値が入っていれば、当該値をファイル名の先頭に設定する。例えば、“formKeys”の“value”として“scan”の文字列が入っていた場合は、初期ファイル名の先頭に“scan”を設定する。次に、“matchingResultUrl”にアクセスして取得した類似帳票判定結果に従って所定の文字列を設定する。すなわち、“matched”の値が“true”であり、かつ、“matchingScore”が一定以上の数値(例えば0.6以上)であると、“metadataArray”の“value”で指定されるファイル名構成に従って文字列を設定する。具体的には、“value”において指定された順番に従って“rectInfoArray”で特定される文字領域の文字列を設定する。
図16の類似帳票判定結果の例では、“matched”の値が“true”であり、かつ、“matchingScore”が“0.74・・・”なので一定以上の数値である。そして、“metadataArray”の“value”にて、最初が“fileRegion0”、次が“separator”、最後が“fileRegion1”の並びであることが指定されている。よって、“fileRegion0”の“text”の値の「見積書」、処理完了レスポンスに含まれる“separator”の値の「_(アンダースコア)」、“fileRegion1”の“text”の値の「下丸子株式会社」が順に連結される。こうして「見積書_下丸子株式会社」が、初期ファイル名として生成されることになる。もし、“formKeys”の“value”に何らかの値(例えば“scan_”)が入っていた場合は、その文字を先頭に追加した「scan_見積書_下丸子株式会社」が初期ファイル名となる。類似帳票判定結果において、“matched”の値が“false”で、“matchingScore”が一定未満の数値の場合は、“formKeys”の“value”に文字列が入っていればその文字列がそのまま初期ファイル名となる。また、“formKeys”の“value”に文字列が入っていなければ初期ファイル名なし(空欄)となる。なお、本実施形態では、“matched”の値と“matchingScore”の値の2つを、“metadataArray”の“value”の順番に従って“rectInfoArray”で指定された情報を初期ファイル名生成の条件とした。しかし、これに限定されず、いずれか一方の結果のみを条件としてもよい。例えば、“matched”の値が“true”であることのみを条件に初期ファイル名を生成してもよいし、類似度合いを示す値が閾値以上であることのみを条件にファイル名を生成してもよい。
S1802では、ファイル名設定画面1000のプレビュー領域1002に初期状態で表示する際にスキャン画像をどの程度縮小して表示するか(以下、「初期変倍率」と呼ぶ)が決定される。この初期変倍率の決定には、“ocrResultUrl”にアクセスして取得した文字認識結果を用いる。まず、スキャン画像内で検出された全ての文字領域のうち最も左にある文字領域と最も右にある文字領域をそれぞれ求める。この場合において、最も左の文字領域となるのは、全文字領域の中で、x座標の値が最小値の文字領域である。また、最も右の文字領域となるのは、全文字領域の中で、x座標の値と文字領域幅(width)を足した合計値が最大となる文字領域である。こうして決定した最も左にある文字領域の左辺がプレビュー領域1002の左辺と、最も右にある文字領域の右辺がプレビュー領域1002の右辺とそれぞれ一致するような変倍率を、初期変倍率として決定する。なお、決定した文字領域の端とプレビュー領域の端とを完全に一致させてしまうと、当該文字領域が小さい場合にユーザが選択(押下)しづらくなることがあるため、一定量のマージンを持たせて初期変倍率を決定してもよい。例えば、プレビュー領域1002内で最も左に表示されることになる文字領域の左端と、最も右に表示されることになる文字領域の右端からそれぞれ10ピクセル分の余白が確保されるように初期変倍率を決定するといった具合である。また、プレビュー領域1002上に各種ボタンなどのUIコンポーネントが重畳表示される場合には、当該UIコンポーネントに文字領域が重ならないように初期変倍率を決定してもよい。具体的には、UIコンポーネントの幅分をプレビュー領域1002の幅から差し引いたうえで、最も左の文字領域と最も右の文字領域とが残りの領域の幅内に収まるように初期変倍率を決定してもよい。前述の図10のファイル名設定画面1000の例では、プレビュー領域1002内に3つの操作ボタン(拡大ボタン1004、縮小ボタン1005、復帰ボタン1006)が存在しているので、これらのボタンに文字領域が重ならないように初期変倍率を決定する。また、スキャン対象となる帳票の上下左右の端部付近には印刷処理に関わるヘッダ情報などが印刷されていることがあり、このようなヘッダ情報などに対応する文字領域の文字列がファイル名の一部に採択される可能性は低い。そこで、スキャン画像の上下左右の端の一定量(例えば50ピクセル)以内に存在する文字領域は、上記最も左および最も右の文字領域を求める際に除外するようにしてもよい。また、最も左の文字領域と最も右の文字領域とに基づき決定した初期変倍率に従うと、プレビュー表示される各文字領域の高さ平均が所定の閾値未満となる場合は、所定の閾値以上となるように初期変倍率を変更してもよい。この場合において、「高さの平均」は、全文字領域についての平均でもよいし、一部の文字領域についての平均でもよい。一部の文字領域についての平均の例としては、決定された初期変倍率にてプレビュー領域1002に表示されることになる文字領域の高さの平均や、スキャン画像の特定部分(例えば上半分)の文字領域の高さの平均などが挙げられる。具体例を説明する。いま、最も左の文字領域の左端と最も右の文字領域の右端との間隔(幅)が2000ピクセル、プレビュー領域1002の幅が800ピクセル、所定の閾値が15ピクセルであったとする。ここで、全文字領域の高さの平均が60ピクセルであった場合に算出される初期変倍率は0.4(=800÷2000)であり、全文字領域の高さの平均は24ピクセル(=60×0.4)で所定の閾値未満ではないため0.4がそのまま初期変倍率となる。一方、全文字領域の高さの平均が30ピクセルであった場合には、全文字領域の高さの平均は12ピクセル(=30×0.4)となる。この場合、所定の閾値未満となるため、全文字領域の高さの平均が所定の閾値以上(ここでは閾値と同じ値)になるように、初期変倍率を0.5(=0.4×15÷12)に変更する。
S1803では、S1802で決定した初期変倍率による拡縮後のスキャン画像のどの部分を、ファイル名設定画面1000のプレビュー領域1002内に初期状態で表示するかが決定される。上記S1802で決定された変倍率にて拡縮した後のスキャン画像においては、最も左の文字領域と最も右の文字領域とが収まる幅が、プレビュー領域1002の幅と略一致する。したがって、まず、左右方向についてはプレビュー領域1002の中にこれら左右の文字領域がちょうど収まるように、例えば最も左の文字領域の左辺がプレビュー領域1002の左辺と一致するように初期状態で表示する部分(以下、「初期表示部分」と呼ぶ。)が決まる。そのうえで、最も上にある文字領域がプレビュー領域1002の上端付近に位置するように、上下方向の初期表示部分を決定する。このとき、初期変倍率の決定時にマージンを考慮していた場合は、同様にマージン分を考慮して、初期表示部分を決定すればよい。例えば、スキャン画像の上端から一定量(例えば50ピクセル)以内に存在する文字領域は表示対象から除外し、それ以外の文字領域の中で最も上にある文字領域が、プレビュー領域1002の上端に表示されるように決定してもよい。図20は、図13のスキャン画像について決定された初期表示部分を示す図である。図20における線の枠が、プレビュー領域1002に初期状態で表示されるスキャン画像の範囲を示している。また、最も左の文字領域と最も右の文字領域とに基づき決定した初期変倍率に従うと、プレビュー表示される各文字領域の高さ平均が所定の閾値未満となる場合がある。この場合、文字領域の高さの平均が閾値になるように拡大率を調整してから、文字領域の左端と上端の座標によって決定した表示位置を適用する。図21は、文字領域の高さの平均が閾値を満たせずに初期変倍率を調整した場合の、スキャン設定画面1000の初期表示の一例を示す図である。図21における線の枠が、プレビュー領域1002に初期状態で表示されるスキャン画像の範囲を示している。この例では、初期変倍率の値を大きくする調整を行った後、最も左の文字領域の左端と最も上の文字領域の上端に合わせて表示部分が決定されている。その結果、帳票の右側に相当する領域が表示部分に含まれなくなるが、プレビュー領域1002内に存在する各文字領域については視認性が確保されることになる。なお、上述のようにして初期表示部分を決定した結果、類似帳票が存在して初期ファイル名がファイル名入力欄1001に自動で入力された場合における当該初期ファイル名に使用された文字列の文字領域が、プレビュー領域1002に表示されないケースがある。この場合には、例えば、初期ファイル名に使用した文字列の文字領域がプレビュー領域1002の中央に表示されるように、初期表示部分を決定すればよい。このとき、ファイル名入力欄1001に自動入力された初期ファイル名を構成する文字列と当該初期ファイル名に使用された文字列の文字領域とを、それぞれ強調表示(例えば色を変更するなど)してもよい。図22は、図13のスキャン画像において文字列「川崎株式会社」が初期ファイル名に自動入力されている場合のスキャン設定画面1000の例を示す図である。ここでは、文字列「川崎株式会社」に対応する文字領域がプレビュー領域1002の中央に位置するように、さらに、当該文字領域とファイル名入力欄1001に入力されている文字列「川崎株式会社」の色を変更して表示している。このとき、強調表示する文字領域の文字サイズが小さい場合には、適切な文字サイズとなるように初期変倍率を調整してもよい。この調整後の初期変倍率は、例えば、操作部220のタッチパネルのサイズとプレビュー領域1002に初期状態で表示する範囲とに基づき得ることができる。具体的には、初期ファイル名に使用している文字列の文字領域の高さを基に、文字サイズが何ポイントかを求め、求めたポイントが閾値以上(所定サイズ以上)になるようにプレビューの初期変倍率を調整すればよい。
S1804では、S1801〜S1803までの処理結果を用いて、前述のファイル名設定画面1000が操作部220に表示される。ユーザは、図10に例示したファイル名設定画面1000を用いて、ストレージサーバ130に保存するスキャン画像についてのファイル名を設定する。以下、詳しく説明する。
1)ファイル名入力欄
ユーザが、ファイル名入力欄1001をタッチすると、操作部220のタッチパネル表示がソフトキーボードに切り替わり、任意の文字を入力したり自動入力された文字列を編集したりすることができる。例えば、前述の図22の例のように「川崎株式会社」が自動入力された状態のファイル名入力欄1001の文字列部分をタッチすると、図23に示すソフトキーボード2300が表示される。この際、図23に示すように、入力エリア2301にタッチされた文字列が入力された状態で表示される。これにより、ユーザはソフトキーボード2300を操作して、タッチした「川崎株式会社」の文字列を修正することができる。図10に示すような文字列が未入力状態のファイル名入力欄1001がタッチされた場合、入力エリア2301が未入力状態のソフトキーボード2300が表示され、ユーザはこれを操作して任意の文字列をファイル名入力欄1001に入力することができる。
2)プレビュー領域
プレビュー領域1002には、前述のとおり、変倍処理が施されたスキャン画像の特定部分が表示される。そして、プレビュー領域1002内の任意の文字領域をタッチして選択すると、当該選択した文字領域の文字列がファイル名入力欄1001に追加される。この際、選択したことが分かるよう、選択に係る文字領域に対して下線を付したり、枠で囲んだり、色を付すなどして強調表示してもよい。また、選択した文字領域が中央になるように表示部分を変更したり或いは表示倍率を変更したりしてもよい。さらに、複数の文字領域が選択された場合においては、それぞれの文字領域に対して異なる色を付すなど、文字領域ごとに表示態様を異ならせてもよい。そして、ユーザは、一度選択した文字領域を再度タッチすると、選択状態が解除(すなわち、文字領域に対して付した線や色を削除し元の状態に戻す。)され、ファイル名入力欄1002内の当該文字領域に対応する文字列も削除される。なお、本実施形態では、文字領域が未選択の状態では、プレビュー領域1002に各文字領域に示す枠などは表示しないこととしている。しかし、ユーザがタッチ可能な部分を認識できるよう各文字領域を示す枠などを予め表示しておき、選択された際にはその色を変えるなどしてもよい。また、各文字領域が分かるようにする表示を行うかどうかをユーザがボタンなどで切り替えられるようにしてもよい。そして、ユーザは、プレビュー領域1002においてスワイプ操作を行うことで、表示される画像部分を移動することができる。
3)各種操作ボタン
「×」マークのボタン1003は、ファイル名入力欄1001に入力中の文字列のうち末尾を削除するための削除ボタンである。「+」マークのボタン1004は、プレビュー領域1002に表示中の画像を拡大して表示させるための拡大ボタンであり、各文字領域をより大きく表示させたいときなどに用いる。「−」マークのボタン1005は、プレビュー領域1002に表示中の画像を縮小して表示させるための縮小ボタンであり、より広い範囲を表示させたいときなどに用いる。拡大や縮小を行うときには、プレビュー領域1002の中央の座標が拡大や縮小を行う前と同一となるように表示位置の調整がなされる。「Uターン矢印」マークのボタン1006は、スワイプ操作による表示位置の移動や、拡大ボタン1004や縮小ボタン1005の押下による表示倍率の変更を行っていた場合に、プレビュー領域1002を初期表示状態に戻すための復帰ボタンである。「送信」ボタン1007は、ファイル名設定画面1000で設定したファイル名にてスキャン画像をファイル化してストレージサーバ130に保存させるためのボタンである。この「送信」ボタン1007の押下に応答して、設定されたファイル名の情報と共にスキャン画像データがMFP連携サーバ120へ送信される。
S1805では、初期表示状態のファイル名設定画面1000内に、操作ガイダンスが表示される。この操作ガイダンスによって、初めて操作するユーザでも、プレビュー領域1002内の文字領域をタッチして選択することでファイル名が設定できるということを容易に理解することができる。図24は、図10に示すファイル名設定画面1000におけるプレビュー領域1002の上部に、操作ガイダンスとしてメッセージ2401を重畳表示した状態を示している。このような操作ガイダンスは、操作方法を既に知っているユーザにとっては不要となるため、タッチ操作やスワイプ操作など何からかのユーザ操作を検知した時点で、当該操作ガイダンスは非表示にされる。また、一般的な文書の上部には例えば文書タイトル、会社名、帳票番号、日付といった、当該文書にとって重要な意味を持つ文字や数字が存在することが多い。よって、これら重要な意味を持つ文字列の文字領域と操作ガイダンスとが重ならないよう、文字列の属性に応じて、プレビュー領域1002に表示する画像部分を下にずらすなどしてもよい。また、いずれかの文字領域に操作ガイダンスが重なってしまったり或いは文字領域から一定距離以内に入ってしまうときは、重なったり近づきすぎたりしないように操作表示位置を決定すればよい。このように、操作ガイダンスの表示位置を固定せずに柔軟に決定することで、ユーザが文字領域を選択しやすくなる。
S1806は、ユーザ操作の有無の監視処理である。所定間隔でユーザ操作の有無をチェックし、何らかのユーザ操作が検知されればS1807に進む。そして、S1807では、前述のとおり、操作ガイダンスが非表示にされる。
S1808〜S1815は、検知されたユーザ操作の内容に応じて次の処理を決定する判定処理である。なお、検知されたユーザ操作に対応する処理が完了するとS1806に戻り、次のユーザ操作が検知されるのを待つ。
S1808では、検知されたユーザ操作が、プレビュー領域1002内のいずれかの文字領域へのタッチ操作であったかどうかが判定される。具体的には、まず、タッチされた位置の座標をスキャン画像の座標に対応付けて変換する。そして、変換後の座標が、前述の文字認識結果(図15を参照)の“regions”で特定される各文字領域のうちいずれかの領域内に含まれれば、文字領域へのタッチであると判定する。判定結果、文字領域へのタッチであればS1816に進み、文字領域へのタッチでなければS1809に進む。文字領域へのタッチであった場合のS1816では、タッチされた文字領域が、既に選択されているかどうかが判定される。タッチされたのが未選択の文字領域の場合はS1817に進み、タッチされたのが選択済みの文字領域の場合はS1818に進む。
S1817では、タッチされた文字領域の文字列がファイル名入力欄1001に追加され、当該文字領域に対して、選択されたことを示す強調表示処理がなされる。この際、ファイル名入力欄1001に他の文字列が入力されていなければ、そのまま文字列が追加される。そして、当該文字領域をファイル名設定に使用したことが、ファイル名設定時の入力情報として記憶される。一方、ファイル名入力欄1001に既に他の文字列が入力されていた場合は、区切り文字が追加された後、タッチされた文字領域の文字列が追加される。この場合、当該文字領域をファイル名設定に使用したことに加え、「第1の文字領域」、「区切り文字」、「第2の文字領域」といったように、文字列間に区切り文字を挿入したことも記憶される。図25は、「見積書」と文字認識された文字領域が最初に選択され、続いて「下丸子株式会社」と文字認識された文字領域が選択された場合のファイル設定画面1000を示した図である。ファイル名入力欄1001には、タッチした文字領域の順に対応する2つの文字列が入力されており、当該2つの文字列の間にセパレータとしてアンダースコアが入力されている。
S1818では、タッチされた文字領域の文字列がファイル名入力欄1001から削除され、当該文字領域についての選択されたことを示す強調表示が取り消され、選択されていないことを示す通常表示の状態に戻る。また、その文字列に区切り文字がついていた場合は、当該区切り文字も一緒に削除される。例えば、初期ファイル名の生成に用いたファイル名構成が[「第1の文字領域」、「区切り文字」、「第2の文字領域」]であったとする。この場合において、「第1の文字領域」となっている文字領域をユーザがタッチした場合は、当該第1の文字領域の文字列と一緒に区切り文字も削除され、ファイル名入力欄1001には「第2の文字領域」の文字列のみが残ることになる。
検知されたユーザ操作が文字領域へのタッチでなかった場合のS1809では、検知されたユーザ操作が、プレビュー領域1002内でのスワイプ操作であったかどうかが判定される。スワイプ操作が検知された場合はS1819に進み、そうでなければS1810に進む。
S1819では、プレビュー領域1002に表示する画像部分をスワイプされた方向に移動させる処理が実行される。具体的には、ユーザがタッチパネル上で指を動かした移動量に応じて、プレビュー領域1002に表示する画像部分を更新する。この処理は、プレビュー領域1002内の文字領域以外の領域でのタッチ操作を検知した場合に限定して行ってもよい。また、文字領域へのタッチ操作であった場合もその後のユーザが指を移動させた量に応じて文字領域へのタッチとして扱わずにスワイプ操作として扱ってもよい。
S1810では、検知されたユーザ操作が、拡大ボタン1004又は縮小ボタン1005の押下であったかどうかが判定される。拡大ボタン1004又は縮小ボタン1005の押下であった場合はS1820に進み、そうでなければS1811に進む。
S1820では、プレビュー領域1002に表示中の画像部分を、拡大又は縮小する処理が実行される。具体的には、拡大ボタン1004が押下されていた場合はスキャン画像の変倍率を一定量増やし、縮小ボタン1005が押下されていた場合はスキャン画像の変倍率を一定量減らす処理がなされる。ここでの一定量は任意であるが、例えば現状の倍率を基準として10%程度である。この際、一定量の拡大又は縮小を行うまでの間に、初期変倍率が存在したり、スキャン画像の幅/高さとプレビュー領域1002の幅/高さとが一致する倍率が存在したりしたときは、その倍率で留めてもよい。なお、プレビュー領域1002内にスキャン画像全体が収まる倍率(最小倍率)未満は縮小されず、最小の文字領域が一定サイズの大きさになる倍率(最大倍率)以上には拡大できないように制御される。
S1811では、検知されたユーザ操作が、復帰ボタン1006の押下であったかどうかが判定される。復帰ボタン1006の押下であった場合はS1821に進み、そうでなければS1812に進む。
S1821では、プレビュー領域1002を初期表示状態に戻す処理が実行される。具体的には、プレビュー領域1002に表示するスキャン画像の変倍率をS1802で決定した初期変倍率に戻し、さらに、プレビュー領域1002への表示部分をS1803で決定した初期表示部分に戻す処理がなされる。この際、初期変倍率や初期表示部分の調整がなされていた場合には、当該調整後の初期変倍率や初期表示部分に戻すのが望ましい。
S1812では、検知されたユーザ操作が、ファイル名入力欄1001に入力されている文字列へのタッチ操作であったかどうかが判定される。この際、ファイル名入力欄1001に入力されている文字列の後ろの空白領域に対してのタッチ操作が検知された場合は、最後尾の文字列へのタッチ操作として扱えばよい。ファイル名入力欄1001に入力されている文字列へのタッチ操作であればS1822に進み、そうでなければS1813に進む。
S1822では、タッチ操作がなされた文字列が入力エリア2301に入力された状態の編集用ソフトキーボードが操作部220に表示される。いま、ファイル名設定画面1000が図25に示す状態であったと仮定する。この状態下で、ファイル名入力欄1001の「見積書」の文字列へのタッチ操作が検知された場合は、ソフトキーボードの入力エリア2301に「見積書」の文字列が入力された状態のソフトキーボード2300が表示されることになる。また、「下丸子株式会社」の文字列へのタッチ操作或いはその後ろの空白領域へのタッチ操作が検知された場合は、末尾の文字列である「_下丸子株式会社」の文字が入力エリア2301に入力された状態のソフトキーボード2300が表示されることになる。なお、ソフトキーボード2300の操作は一般的なキーボードの操作と同じであるためその説明を省略する。続くS1823は、ユーザ操作の有無の監視処理である。ソフトキーボード2300におけるOKボタン2302の押下の有無を所定間隔でチェックし、OKボタン2302の押下が検知されればS1824に進む。なお、OKボタン2302以外のキーが押下された場合は、当該押下されたキーに応じて、入力エリア2301に表示されている文字列の編集が行われることになる。例えば、ユーザは、ソフトキーボード2300を用いて、文字認識処理で誤認識していた文字列の修正を行うことができる。
S1824では、区切り文字を削除する変更が行われたかが判定される。本実施形態ではこの判定は、S1812でタッチされた文字列がS1822で区切り文字とともに表示された場合にのみ行われ、区切り文字とともに表示されなかった文字列については、区切り文字の削除が行われなかったものとして扱うものとする。すなわち、S1822で文字列の先頭に区切り文字が付与された状態で表示された場合、OKボタン2302が押下された時点で、文字列の先頭に区切り文字が存在するかどうかに基づいて、区切り文字を削除するような文字列の編集が行われたか判定する。例えば、S1812で「下丸子株式会社」の文字列へのタッチ操作がなされると、上述のとおりソフトキーボード2300の入力エリア2301には区切り文字が先頭に付された「_下丸子株式会社」の状態で表示される。そこで、先頭に区切り文字が残っているかどうかをチェックすることで、区切り文字の削除が行われたかどうかを判定する。また、S1812で「見積書」の文字列へのタッチ操作がなされると、上述のとおり入力エリア2301には「見積書」が表示されるので、この場合は、区切り文字を削除する変更は行われなかったものとして扱う。
なお、上述した例では、S1812でタッチされた文字列の前に区切り文字が存在する場合に、S1822で、区切り文字が先頭に付された文字列が入力エリア2301に表示されるものとして説明したが、これに限るものではない。例えば、S1812でタッチされた文字列の後ろに区切り文字が存在する場合に、S1822で、当該タッチされた文字列の後ろに区切り文字を付して入力エリア2301に表示するように構成した場合も、S1824で同様の判定を行うことができる。すなわち、図25の例で「見積書」の文字列へのタッチ操作に応じてソフトキーボード2300の入力エリア2301に「見積書_」のように末尾に区切り文字を付して表示するように構成した場合について説明する。この場合は、本ステップS1824において末尾に区切り文字が残っているかどうかをチェックすることで、区切り文字の削除が行われたかどうかを判定すればよい。
S1824で区切り文字の削除が行われたと判定された場合はS1825に進む。そして、S1825では、区切り文字がファイル名から削除されたことが記憶される。例えば、初期ファイル名の生成に用いたファイル名構成が[「第1の文字領域」、「区切り文字」、「第2の文字領域」]であったとする。このとき、ファイル名入力欄1001における「第2の文字領域」に対応する文字列をタッチし、ソフトキーボード2300を使用して区切り文字を削除すると、変更後のファイル名構成は[「第1の文字領域」、「第2の文字領域」]となる。そして、この変更後のファイル名構成の情報が保持されることになる。
続くS1826では、ファイル名に区切り文字を追加する変更が行われたかが判定される。区切り文字の追加が行われたと判定された場合はS1827に進み、区切り文字の追加が行われていないと判定された場合はS1828に進む。そして、S1827では、区切り文字がファイル名に追加されたことが記憶される。例えば、初期ファイル名の生成に用いたファイル名構成が[「第1の文字領域」、「第2の文字領域」]であったとする。このとき、ファイル名入力欄1001の「第2の文字領域」に対応する文字列をタッチし、ソフトキーボード2300を使用して区切り文字を先頭に追加すると、変更後のファイル名構成は[「第1の文字領域」、「区切り文字」、「第2の文字領域」]となる。そして、この変更後のファイル名構成の情報が保持されることになる。
そして、S1828では、操作部220の表示画面が、ソフトキーボード2300からファイル名設定画面1000に戻された上で、変更後の内容にファイル名が修正される。この際、修正を行った文字列に対応する文字領域がプレビュー領域1002の中央にくるようにスキャン画像の表示部分を変更してもよい。なお、ファイル名に使用されている文字列の一部が修正されても、ファイル名構成が変わっていなければ、ファイル名構成の情報が新たに保持されることはない。ただし、ある文字列に含まれる全ての文字を削除する修正を行った場合はファイル名構成も変わる。よって、この場合も(フローチャートでは省略しているが)、変更後のファイル名の構成情報が保持されることになる。例えば、初期ファイル名の生成に用いたファイル名構成が[「第1の文字領域」、「区切り文字」、「第2の文字領域」]であったとする。このときに、ファイル名入力欄1001における「第2の文字領域」に対応する文字列をタッチし、ソフトキーボード2300を使用してすべての文字を削除したとする。この場合、不要となった区切り文字も削除されて変更後のファイル名構成は[「第1の文字領域」]に変わるので、当該変更後のファイル名構成の情報が保持されることになる。
S1813では、検知されたユーザ操作が、文字列が入力されていない状態の空欄のファイル名入力欄1001へのタッチ操作であったかどうかが判定される。空欄のファイル名入力欄1001へのタッチ操作であればS1829に進み、そうでなければS1814に進む。
S1829では、入力エリア2301に何も入力されていない状態の文字列追加用ソフトキーボードが操作部220に表示される。続くS1830は、ユーザ操作の有無の監視処理である。ソフトキーボード2300におけるOKボタン2302の押下の有無を所定間隔でチェックし、OKボタン2302の押下が検知されればS1831に進む。そして、S1831では、操作部220の表示画面が、ソフトキーボード2300からファイル名設定画面1000に戻された上で、入力された文字列がファイル名に追加される。
S1814では、検知されたユーザ操作が、削除ボタン1003の押下であったかどうかが判定される。削除ボタン1003の押下であった場合はS1832に進み、そうでなければS1815に進む。S1832では、ファイル名入力欄1001に入力されている文字列のうち末尾の文字列が削除される。例えば、初期ファイル名の生成に用いたファイル名構成が[「第1の文字領域」、「区切り文字」、「第2の文字領域」]であれば、削除ボタン1003の押下によって「第2の文字領域」に対応する文字列が削除される。この結果、削除後のファイル名構成は[「第1の文字領域1」]となり、ファイル名は「第1の文字領域」に対応した文字列のみとなる。この際、削除された文字列に対応する文字領域については、プレビュー領域1002において非選択を示す状態に戻される。そして、変更後のファイル名構成の情報が保持されることになる。
S1815では、検知されたユーザ操作が、送信ボタン1007の押下であったかどうかが判定される。送信ボタン1007の押下であった場合は、本処理を終了し、図12のフローチャートのS1210に進む。
以上が、S1209にて実行されるファイル名設定処理の内容である。
<MFP連携サービスの処理詳細>
続いて、MFP連携サーバ120における動作に着目して、上述の画像処理システムでMFP連携サービスを利用する場合の処理について詳しく説明する。図26は、MFP110からのマッチング要求に対して、類似帳票判定および、ファイル名自動抽出処理を行うための、MFP連携サーバ120における処理の流れを示すフローチャートである。この一連の処理は、MFP連携サーバ120の制御部310において、CPU311がHDD314に記憶された制御プログラムを実行することにより実現される。本フローチャートの詳細について、フォーマット変更前の基準文書例である元帳票例を示す図28、フォーマット変更後の帳票のスキャン画像例を示す図29を用いて説明する。なお、図28に示す元帳票のスキャン画像(基準スキャン画像)のプロパティであるファイル名として、ユーザ操作によって“品川株式会社”が既に設定されている状態であるものとする。
図26に示す処理は、図12のS1205にてMFP110によって送信された、スキャン画像およびスキャン画像の解析リクエストをMFP連携サーバ120が受信したことをトリガに実行される。
S2601では、CPU311は、スキャン画像データと、その解析リクエストを受信する。この際、受信した解析リクエストには、スキャンを実行させたユーザであるログインユーザを特定できる識別情報が含まれている。続いて、S2602では、CPU311は、スキャン画像データの解析リクエストの受信で取得したユーザ識別情報に紐づく学習データをHDD314から取得する。なお、学習データの保存方法は、SQLやNoSQL(Not only SQL)といったデータベース構造になっていることが望ましい。ここでは、学習DBという単語を用いて説明する。
続いて、S2603では、CPU311は、受信したスキャン画像から複数の文字列ブロックに対応するOCR処理結果および位置情報を取得し、文字列ブロックリストに挿入する。前記OCR処理結果とは、例えば、図28の元帳票における、“見積書”、“東京都港区B-B-B”、“品川株式会社”などの文字情報を示す。また、位置情報とは、各ブロックの左上隅のX座標、Y座標および、各ブロックの長さ、高さにおいてピクセル数で表現される。この操作によって、スキャン画像の中の全ての文字列ブロックに対して、OCR処理結果および位置情報が付与される。文字列ブロックリストには、スキャン画像の中の全ての文字列ブロックに関し、それぞれの文字列ブロックとOCR処理結果と位置情報とを対応付けて保持される。
続いて、S2604では、CPU311は、文字列ブロックに対して形態素解析を実施する。ここで、形態素解析処理とは、自然言語処理など、文字列を所定のルールに従って単語に分割する処理のことを示す。例えば、OCR処理結果の文字列として「株式会社西取手白山商会」があり、形態素解析処理を実施すると、「株式会社」「西取手」「白山」「商会」のように単語を分割する。形態素解析処理にも様々は方法があるが本実施形態では特に問わない。
続いて、S2605では、CPU311は、S2604の処理で得られた形態素解析結果である、OCR処理結果の文字列を構成する各単語に対して固有表現抽出処理を実施する。ここで、固有表現抽出処理とは、形態素解析結果である上述の各単語を解析して固有名詞から一般名詞である固有表現を抽出する処理のことを示す。なお、ここでの固有表現として、組織名(ORGANIZATION)、人名(PERSON)、地名(LOCATION)、日付表現(DATE)、時間表現(TIME)が挙げられる。また、ここでの固有表現として、金額表現(MONEY)、割合表現(PERCENT)、固有物名(ARTIFACT)なども挙げられる。固有表現は、これ以外でも構わない。例えば、形態素解析処理を施した文字列に対して固有表現抽出処理を行うと、「<START:ORGANIZATION 重要度=0.9>株式会社 西取手 白山 商会<END>」のような結果を出力する。これは、文字列「株式会社西取手白山商会」というのは、ORGANIZATION(組織名)であると認識することが可能であり、文字列の意味/種別を見出すことが可能となる。なお、重要度は、ファイル名自動抽出処理で対象としての重要性の軽重を0から1の範囲の数値で示しており、一般名詞ごとに予め設定されていてもよいし、設定されていなくてもよい。
続いて、S2606では、CPU311は、学習DBから取得した学習データおよび文字列ブロックリストを用いて帳票マッチングを実施する。帳票マッチングとは、学習DB上の学習データに、スキャン画像と一致するデータである基準文書の基準スキャン画像があるかどうかを検索する処理である。ここで、対象のスキャン画像と一致した帳票の学習データが存在しない場合(S2607のNO)、本フローチャートを終了する。
一方で、対象のスキャン画像と一致した帳票の学習データが存在した場合(S2607のYES)、処理をS2608に移行する。
続いて、S2608では、CPU311は、スキャン画像上の文字列ブロックにファイル名設定時に用いた文字領域(以下、ファイル名設定という)が存在するかを判定する。ここで、対象のファイル名設定が存在しない場合(S2608のNO)、本フローチャートを終了する。なお、S2607およびS2608における帳票マッチングの処理の詳細については、図12にてすでに説明しているためここでは割愛する。
一方で、対象のファイル名設定が存在する場合(S2608のYES)、処理をS2609に移行する。S2609では、CPU311は、ファイル名設定に対応する文字列ブロックを用いて候補文字列ブロックリストを作成する。候補文字列ブロックリストとは、スキャン画像中の文字列ブロックから、元のファイル名設定の文字列近傍であるファイル名になる可能性のある文字列ブロックを複数抽出したリストである。なお、候補文字列ブロックリストの取得方法については、図27の説明にて後述する。図29のスキャン画像を例に挙げると、候補文字列ブロック取得処理により、候補文字列ブロックリストには、“下丸子株式会社”、“〒100−9999”、“東京都大田区A−A−A”が設定されている状態になる。
続いて、S2610では、候補文字列ブロックリストの要素に対して、ファイル名設定ブロックの位置に近い順にソートする。ファイル名設定ブロックとは、ユーザが元々ファイル名として設定したブロックであり、このブロックにおいても他ブロックと同様に、位置情報を取得できる。ソートについては、候補文字列ブロックリスト内のブロックのY座標と、ファイル名設定ブロックのY座標を比較し、その差分の絶対値が近い順にソートする。図29のスキャン画像の例においては、図28の元帳票における“品川株式会社”とのY座標比較において近い順にソートされるので、“東京都大田区A−A−A”、“〒100−9999”、“下丸子株式会社”の順にソートされる。
続いて、S2612では、CPU311は、ファイル名設定ブロックの固有表現と候補文字列ブロックの固有表現が一致するかどうかを判定する。なお、元帳票におけるファイル名設定ブロックの固有表現抽出に関しては、この段階で実施してもよいし、OCR処理実施のタイミングで行ってもよい。なお、本実施形態においては、図5のS508の解析処理の固有表現抽出において、すでに表1のようなスキャン画像すべてに対して固有表現を抽出しているため、本フローチャート(図26)開始の前にすでに抽出済みであることを想定している。
CPU311は、一致したとの判定結果を得た場合(S2612のYES)、対象の候補文字列ブロックをファイル名として設定し(S2613)、本処理を終了する。一方で、CPU311は、一致しなかったとの判定結果を得た場合(S2612のNO)、次の処理を行う。すなわち、候補文字列ブロックリスト内のターゲットの候補文字列ブロックをインクリメントし(S2614)、再度ファイル名設定ブロックの固有表現と候補文字列ブロックの固有表現が一致するかどうかを判定する(S2612)。この操作を候補文字列ブロックリストの要素数分繰り返す(S2611)。CPU311は、万が一、ファイル名設定の固有表現と一致する候補文字列ブロックがなかった場合、候補文字列ブロックリストの先頭の候補文字列ブロックをファイル名として設定し(S2615)、本処理を終了する。図28においては、元帳票のファイル名設定ブロックである“品川株式会社”の固有表現が、組織名(ORGANIZATION)であって、一致する文字列ブロックを候補文字列ブロックの先頭から検索していく。図29に示す図が対象のスキャン画像である場合、以下のように、固有表現に対応する文字列がファイル名として選択される。すなわち、“東京都大田区A−A−A”、“〒100−9999”、“下丸子株式会社”はそれぞれ、地名(LOCATION)、地名(LOCATION)、組織名(ORGANIZATION)であるため、“下丸子株式会社”がファイル名として選択される。
図26に示すフローを適用することにより、元のスキャン画像(基準スキャン画像)のファイル名に設定していたブロックに一番近く、かつ固有表現が一致する文字列ブロックを、スキャン画像のファイル名として設定することが可能となる。
図27は、候補文字列ブロックリスト作成処理の手順例を示すフローチャートである。また、図28は、”品川株式会社”をファイル名に設定して既に登録済みの基準文書例である元原稿例を示す図である。図29、図30、図31はそれぞれ候補文字列のブロックが左揃え、右揃え、中央揃えの場合の帳票例を示す図である。図27から図31を用いて、スキャン画像および学習データのファイル名設定から、候補文字列ブロックを作成する手順について説明する。
まず、S2701では、CPU311は、ファイル名設定ブロックの左端のX座標と右端のX座標の中に一部でも含まれるブロックを取得する。図29に示す帳票をスキャンした場合を例に挙げると、“下丸子株式会社”、“〒100−9999”、“東京都大田区A−A−A”、“品目”、“GF−1555”の5つのブロックが抽出される。
続いて、抽出したブロックのそれぞれに対して(S2702)、CPU311は、左端のX座標が一致するかどうかを判定する(S2703)。判定結果が一致するであれば(S2703のYES)、処理をS2704に移行し、判定結果が一致しないであれば(S2703のNO)、処理をS2705に移行する。判定結果が一致するであった場合のS2704では、S2702で抽出されたブロックが第一のリストである左端一致ブロックリストに追加される。すなわち、左一致ブロックリストには、対象文字列の左辺および右辺のX座標を含む文字列の範囲内の文字列のうち左辺の座標に重なる文字列が含まれる。
続いて、S2705では、CPU311は、右端のX座標が一致するかどうかを判定する。判定結果が一致するであれば(S2705のYES)、処理をS2706に移行し、判定結果が一致しないであれば(S2705のNO)、処理をS2707に移行する。処理結果が一致するであった場合のS2706では、S2702で抽出されたブロックが第二のリストである右端一致ブロックリストに追加される。すなわち、右一致ブロックリストには、対象文字列の左辺および右辺のX座標を含む文字列の範囲内の文字列のうち右辺の座標に重なる文字列が含まれる。
続いて、中心のX座標が一致するかどうかが判定される(S2707)。判定結果が中心のX座標が一致するであれば(S2707のYES)、処理をS2708に移行し、判定結果が中心のX座標が一致しないであれば(S2707のNO)、S2708をスキップして処理をS2709に移行する。判定結果が中心のX座標が一致するであった場合のS2708では、S2702で抽出されたブロックが第三のリストである中心一致ブロックリストに追加される。すなわち、中心一致ブロックリストには、対象文字列の左辺および右辺のX座標を含む文字列の範囲内の文字列のうち中心の座標に重なる文字列が含まれる。この一連の処理により、左端一致ブロックリスト、右端一致ブロックリスト、中央一致ブロックリストにそれぞれのブロックが挿入される。なお、本フローチャートによると、例えば右端と左端がそれぞれ一致しているブロックに対しては、左端ブロックリスト、右端ブロックリストそれぞれに重複して追加される。また、S2703、S2705、S2707のそれぞれの処理に対して、完全に一致していなくても、例えばある一定のピクセルの誤差までは一致していると判定するなど、一致判定に余裕を持たせてもよい。
これらの処理を図29に示す帳票に対して行うと、左端一致ブロックリストに“下丸子株式会社”、“〒100−9999”、“東京都大田区A−A−A”がそれぞれ設定され、中央一致ブロックリストに“品目”、“GF-1555”がそれぞれ設定される。
続いて、S2709では、CPU311は、要素が一つ以上含まれるブロックリストに対して期待値を導出して決定する。この決定で用いられる演算式は、期待値をEとし、要素数をkとし、ファイル名設定ブロックと対象のブロックのY軸上での距離をyとし、係数をαとすると下記の式(1)で表される。なお、αは0より大きい固定値であればどのような値でも構わない。
Figure 2021076975
上述の式(1)を左端一致ブロックリスト、右端一致ブロックリスト、中央一致ブロックリストそれぞれに適応すると、それぞれの期待値lE、rE、cEはそれぞれ下記の式(2)、式(3)、式(4)のようになる。
Figure 2021076975
Figure 2021076975
Figure 2021076975
続いて、S2710にて、左端一致ブロックリストの期待値lE、右端一致ブロックリストの期待値rE、中央一致ブロックリストの期待値cEをそれぞれ比較し、期待値が一番大きなブロックリストを候補ブロックリストとして採用し、本処理を終了する。図29に示すスキャン画像において本手法を用いると、左端一致ブロックリストが候補ブロックリストとして採用される。
なお、図30に示したような右揃えの文字列ブロックである場合は、右端一致ブロックリストが候補ブロックリストとして採用される。図31に示したような中央揃えの文字列ブロックである場合は、中央揃えブロックリストが候補として自動で採用される。
図27で示した手法を用いることにより、ファイル名としてふさわしい候補のリストが左端揃えか、右端揃えか、中央揃えかを自動で決定することが可能となり、よりファイル名としてふさわしい文字列ブロックのリストを生成することが可能となる。
本実施形態によれば、帳票のスキャン画像に対してある文字列ブロックをファイル名に設定し別の帳票をスキャンしてスキャン画像を得た場合、次のような効果を奏する。すなわち、ファイル名に設定した文字列ブロックの位置が当該別の帳票で変更されて元の帳票のスキャン画像と異なる位置にあったとしても、それに追従して自動でファイル名として適切な位置を設定できる。これにより、帳票のフォーマット変更などでスキャン画像のファイル名の位置を変更されたとしても、それに追従して自動で適切な文字列ブロックをファイル名として設定することが可能となる。
なお、本実施形態では、ファイル名を設定する例について説明したが、これに限定されない。ファイル名以外であっても、例えば、“タイトル”、“金額”、“住所”、“宛先”などといったメタ情報を付与する場合でも、ファイル名設定と同様の処理として適用可能である。
<<実施形態2>>
実施形態1では、ファイル名設定がなされている状態で、対象帳票と同じフォーマットの帳票をスキャンした場合、ファイル名設定対象となる文字列の位置がレイアウト変更などで変更されても固有表現の利用により適切な箇所を自動で設定できる例を示した。本実施形態では、ユーザにより、元の位置が再設定されるユースケースに対応する例について説明する。
MFP連携サーバ120のCPU311は、上述のユーザ操作を検知した場合、次回以降該当する帳票に対して、図26における固有表現比較処理(S2609〜S2615)の機能をオフにし、ファイル名の位置情報のみを用いてファイル名の自動設定を行う。
本実施形態によれば、位置情報および固有表現との比較を用いて自動でファイル名設定がなされた場合、再度ユーザに元々設定されていたファイ名の位置に指定し直されると、次回から対象の帳票に対しては固有表現比較を実施しない。すなわち、スキャン画像において、基準スキャン画像のプロパティを示す文字列の位置情報に対応する位置の文字列が当該スキャン画像の前記プロパティに設定されると、次の文書のスキャン画像において、前記基準スキャン画像と比較しない。そして、前回のスキャン画像に設定されたプロパティに対応する文字列と同じ位置の文字列を自動的に当該次の文書のスキャン画像のプロパティに設定する。したがって、ファイル名付けを文字列の内容ではなく、文字列の位置に重点を置いてファイル名を設定しているユーザに対して、修正設定後には所望のファイル名設定を提供することが可能となる。
なお、本実施形態でも、ファイル名を設定する例について説明したが、これに限定されない。ファイル名以外であっても、例えば、“タイトル”、“金額”、“住所”、“宛先”などといったメタ情報を付与する場面でも、ファイル名設定と同様な処理として適用可能である。
<<実施形態3>>
実施形態1では、ファイル名設定がなされている状態で、対象帳票と同じフォーマットの帳票をスキャンした場合、ファイル名設定対象となる文字列の位置がレイアウト変更などで変更されても固有表現の利用により適切な箇所を自動で設定できる例を示した。本実施形態では、MFP連携サーバ120のCPU311が自動で固有表現比較を用いて設定されたファイル名領域に対し、その後同一フォーマットのスキャン画像に対して同位置を設定し続けられるケースに対応する例について説明する。
上述した場面でも、対象のフォーマット画像のレイアウト構成がそのタイミング以降で変更されたと判定することができる。
よって、本実施形態では、MFP連携サーバ120のCPU311は、実施形態1の位置情報及び固有表現を用いたファイル名自動設定を行った後、その後同一フォーマットの帳票のスキャン画像に対してファイル名設定の変更がない場合、次のように処理する。すなわち、ファイル名設定が変更されずに、ファイル名自動設定された回数を変更無し回数としてカウントする。続いて、CPU311は、スキャン画像が表示された画面にて当該スキャン画像のプロパティに設定された特定の文字列の選択が所定の回数以上変更がなく、変更無しカウント数が予め決められた所定の回数以上に達すると、CPU311は、次の処理を行う。すなわち、CPU311は、対象のフォーマットの帳票のスキャン画像に対する、ファイル名設定の文字列ブロックの座標情報を上書きして記憶する。なお、座標情報と同様に、文字列情報、固有表現情報も管理する場合はこのタイミングで上書きする。
本実施形態によれば、実施形態1で設定されたファイル名に対して、所定回数以上同位置を設定され続けた場合、その位置を本来のファイル名設定の位置として設定し直すことが可能となる。これにより、それ以降、実施形態1のようなフォーマットの要素変更がされた場合でも、より精度高い自動設定を行うことが可能となる。
なお、本実施形態でも、ファイル名を設定する例について説明したが、これに限定されない。ファイル名以外であっても、例えば、“タイトル”、“金額”、“住所”、“宛先”などといったメタ情報を付与する場面でも、ファイル名設定と同様の処理として適用可能である。
[その他の実施形態]
上記では、ファイル名となる可能性のある文字列を複数含むスキャン画像を処理対象とする場合について説明した。ファイル名となる可能性のある文字列を1つのみ含むスキャン画像を処理対象とすることも可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (12)

  1. 文書のスキャン画像のプロパティを設定するための画像処理装置であって、
    前記スキャン画像を解析して文字列と当該文字列に対応する固有表現とを抽出する抽出手段と、
    前記抽出手段によって前記スキャン画像から抽出された前記文字列のうち、前記文書と異なる基準文書のプロパティに設定された文字列の固有表現に対応する文字列を、前記文書のスキャン画像のプロパティに設定する設定手段と、
    を有する、ことを特徴とする画像処理装置。
  2. 前記基準文書のプロパティに設定された文字列に関する領域に対応する、前記スキャン画像における領域から、当該スキャン画像のプロパティの候補である文字列を選択する選択手段を有し、
    前記設定手段は、前記選択手段によって選択された文字列のうち、前記基準文書のプロパティに設定された文字列の固有表現に対応する文字列を、前記スキャン画像のプロパティに設定する
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記文字列の位置情報を取得する取得手段を有し、
    前記設定手段は、前記基準文書のプロパティに設定された文字列に関する位置情報と、前記取得手段によって取得された、前記スキャン画像から抽出された文字列の位置情報とに基づき、前記スキャン画像から抽出された前記文字列のうち、前記基準文書のプロパティに設定された文字列の固有表現に対応する文字列を、前記スキャン画像のプロパティに設定する、ことを特徴とする請求項2に記載の画像処理装置。
  4. 前記設定手段は、前記スキャン画像から抽出された文字列のうち、前記基準文書のプロパティに設定された文字列の固有表現に対応する文字列であって、前記基準文書のプロパティに設定された文字列に対応する位置の近傍に位置する文字列を、前記スキャン画像のプロパティに設定する
    ことを特徴とする請求項2または3に記載の画像処理装置。
  5. 前記設定手段は、前記スキャン画像から抽出された文字列のうち、前記基準文書のプロパティに設定された文字列の固有表現に対応する文字列であって、前記基準文書のプロパティに設定された文字列に対応する位置に最も近い位置にある文字列を、前記スキャン画像のプロパティに設定する
    ことを特徴とする請求項2から4のいずれか一項に記載の画像処理装置。
  6. 前記選択手段は、
    対象文字列の左辺および右辺のX座標を含む文字列の範囲内の文字列のうち左辺の座標に重なる文字列を含む第一のリストを生成する第一の生成手段と、
    前記対象文字列の左辺および右辺のX座標を含む文字列の範囲内の文字列のうち右辺の座標に重なる文字列を含む第二のリストを生成する第二の生成手段と、
    前記対象文字列の左辺および右辺のX座標を含む文字列の範囲内の文字列のうち中心の座標が重なる文字列を含む第三のリストを生成する第三の生成手段と、
    前記第一の生成手段と前記第二の生成手段と前記第三の生成手段によって生成された、前記第一のリスト、前記第二のリスト、前記第三のリストに含まれる各文字列と前記基準文書の前記プロパティに設定された前記文字列との距離に応じた期待値を導出する導出手段と、
    を有し、
    前記第一のリスト、前記第二のリストおよび前記第三のリストのうち、前記期待値が最大となるリストに含まれる前記文字列から、前記スキャン画像の前記プロパティの候補である文字列を選択する
    ことを特徴とする請求項2から5のいずれか一項に記載の画像処理装置。
  7. 前記設定手段は、前記スキャン画像において、前記基準文書のプロパティに設定された文字列の位置情報に対応する位置の文字列が当該スキャン画像のプロパティに設定されると、次の文書のスキャン画像において、前記基準文書の前記プロパティに設定された前記文字列と比較せずに、前回の前記スキャン画像に設定された前記プロパティに対応する文字列と同じ位置の文字列を自動的に当該次の文書のスキャン画像のプロパティに設定する
    ことを特徴とする請求項2から6のいずれか一項に記載の画像処理装置。
  8. 前記設定手段は、前記スキャン画像が表示された画面にて当該スキャン画像のプロパティに設定された特定の文字列の選択が所定の回数以上変更がないときに、前記特定の文字列の位置を設定対象の文字列として上書きする
    ことを特徴とする請求項2から7のいずれか一項に記載の画像処理装置。
  9. 前記設定手段は、前記文書のスキャン画像の特徴量に類似する特徴量を有する基準文書を判定し、前記抽出手段によって前記スキャン画像から抽出された前記文字列のうち、当該類似すると判定された基準文書のプロパティに設定された文字列の固有表現に対応する文字列を、前記スキャン画像のプロパティに設定することを特徴とする請求項1から8のいずれか一項に記載の画像処理装置。
  10. 前記プロパティは、スキャン画像のファイル名である
    ことを特徴とする請求項1から9のいずれか一項に記載の画像処理装置。
  11. 文書のスキャン画像のプロパティを設定するための画像処理方法であって、
    前記スキャン画像を解析して文字列と当該文字列に対応する固有表現とを抽出する抽出ステップと、
    前記抽出ステップにて前記スキャン画像から抽出された文字列のうち、前記文書と異なる基準文書のプロパティに設定された文字列の固有表現に対応する文字列を、前記文書のスキャン画像のプロパティに設定する設定ステップと、
    を有する、ことを特徴とする画像処理方法。
  12. コンピュータを、請求項1から10のいずれか一項に記載の画像処理装置として機能させるためのプログラム。
JP2019201589A 2019-11-06 2019-11-06 画像処理装置、画像処理方法およびプログラム Pending JP2021076975A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019201589A JP2021076975A (ja) 2019-11-06 2019-11-06 画像処理装置、画像処理方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019201589A JP2021076975A (ja) 2019-11-06 2019-11-06 画像処理装置、画像処理方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2021076975A true JP2021076975A (ja) 2021-05-20

Family

ID=75899671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019201589A Pending JP2021076975A (ja) 2019-11-06 2019-11-06 画像処理装置、画像処理方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2021076975A (ja)

Similar Documents

Publication Publication Date Title
JP7317561B2 (ja) タッチパネルを用いた文字入力のための画像処理装置、その制御方法及びプログラム
US11616884B2 (en) Image processing system for computerizing document, control method thereof, and storage medium
JP7297510B2 (ja) ユーザ操作のためのガイダンスを表示する画像処理装置、その制御方法及びプログラム
JP2021163178A (ja) 情報処理装置
US11265431B2 (en) Image processing apparatus for inputting characters using touch panel, control method thereof and storage medium
JP2022096218A (ja) 情報処理装置、情報処理システム、その制御方法及びプログラム
US11393234B2 (en) Image processing system for computerizing document, control method thereof, and storage medium
JP2021184190A (ja) 画像処理装置、画像処理方法、およびプログラム
JP7330742B2 (ja) スキャン画像にプロパティを設定するための画像処理装置、その制御方法及びプログラム
JP2023053602A (ja) 装置、情報処理方法、及びプログラム
JP2021076975A (ja) 画像処理装置、画像処理方法およびプログラム
JP7358663B2 (ja) タッチパネルを用いた文字入力のための画像処理装置、その制御方法及びプログラム
JP2021164132A (ja) 画像処理システム、及びプログラム
JP7387282B2 (ja) スキャン画像のプレビュー表示を行なう画像処理装置、その制御方法及びプログラム
JP2020178284A (ja) スキャン画像のプレビュー表示を行う画像処理装置、その制御方法及びプログラム
JP2020177523A (ja) スキャン画像のプレビュー表示を行う画像処理装置、その制御方法及びプログラム
JP2020177526A (ja) スキャン画像のプレビュー表示を行う画像処理装置、その制御方法及びプログラム
JP2023120267A (ja) タッチパネルを用いた文字入力のための画像処理装置、その制御方法及びプログラム
JP2024034778A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP2023071227A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP2024034740A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP2022113038A (ja) 画像処理装置、方法、及びプログラム