JP2024032186A - 画像処理装置、画像処理装置の制御方法、及びプログラム - Google Patents

画像処理装置、画像処理装置の制御方法、及びプログラム Download PDF

Info

Publication number
JP2024032186A
JP2024032186A JP2022135700A JP2022135700A JP2024032186A JP 2024032186 A JP2024032186 A JP 2024032186A JP 2022135700 A JP2022135700 A JP 2022135700A JP 2022135700 A JP2022135700 A JP 2022135700A JP 2024032186 A JP2024032186 A JP 2024032186A
Authority
JP
Japan
Prior art keywords
registered
handwritten
character string
document
area
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
JP2022135700A
Other languages
English (en)
Inventor
純也 荒川
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 JP2022135700A priority Critical patent/JP2024032186A/ja
Publication of JP2024032186A publication Critical patent/JP2024032186A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Character Input (AREA)
  • Image Analysis (AREA)

Abstract

【課題】スキャン文書と登録文書との類否判定の処理コストを軽減することを目的とする。【解決手段】画像処理装置は、前記文書をスキャンして取得されたスキャン文書に含まれる文字列領域を特定する特定手段と、前記特定手段が特定した前記文字列領域を用いて、予め登録された登録済み文書と前記スキャン文書との類似度を算出する算出手段と、前記算出手段が算出した第1の類似度が第1の閾値を超える登録済み文書を前記予め登録された登録済み文書の中から抽出する抽出手段と、前記抽出手段によって抽出された前記第1の類似度が第1の閾値を超える登録済み文書のうち、前記算出手段が算出した第2の類似度が第2の閾値を超える前記登録済み文書を、前記スキャン文書に類似する文書として決定する決定手段と、を備える。【選択図】図10

Description

本開示は、手書き文字を含む帳票の類否判定技術に関する。
一般に帳票と呼ばれる例えば見積書などの紙文書をスキャンして電子化し、当該帳票の記載内容に基づいて電子化した帳票画像のファイル名を設定することで帳票管理を行うシステムがある。ファイル名を設定する方法には、帳票画像に文字認識処理を実行した認識結果に基づいて自動設定する方法がある。
文字認識処理結果に基づきファイル名を自動設定する方法では、ユーザがファイル名に使用したい文字領域を指定すると、帳票管理を行うシステムは指定された文字列領域の位置と帳票全体のレイアウト情報とを対応付けて登録する。新規帳票がスキャンされた際、登録済み帳票全体のレイアウト情報との一致度に基づき、スキャン帳票に類似するフォーマットの帳票が登録されているかを判定する。類似帳票が登録されていた場合、登録された文字領域の位置と対応関係にある文字領域の文字列を、ファイル名で使用する文字列としてユーザに提示することが可能となる。
帳票管理を行うシステムにおいては、活字特性を利用してスキャン帳票の文字領域から文字ブロックを抽出している(以下、「活字ブロックセレクション」と呼ぶ。)。しかし、手書き文字を含むスキャン帳票に活字ブロックセレクションを適用すると、手書き文字は1つ1つの文字の大きさ及び配置が均等ではないので、手書き文字領域においては適切な文字ブロックを抽出することができない。このような問題に対して、例えば特許文献1では、以下の技法を開示している。この技法ではスキャン文書の印刷領域に存在するオブジェクトに対して活字OCR処理を行い、活字OCR処理の認識率が閾値未満であるオブジェクトを手書き文字と判断して当該オブジェクトに対して手書きOCR処理を行うことにより、文書の類否判定を行う。
特開2019-008697号公報
帳票には様々な種別があり、手書き文字領域をわずかしか含まない帳票も存在する。特許文献1の技法では活字OCR処理の認識率が閾値未満である箇所が1つしか存在しない場合、即ち手書き文字領域が1つしか存在しない場合でも、処理負荷が高い手書きOCR処理が実行されてしまい、処理効率は良くない。帳票が、手書き文字領域をわずかしか含まない場合は、スキャン帳票に手書きOCR処理を行わずに登録帳票との類否帳票判定を実行可能な場合もある。
本開示は上記問題点に鑑みてなされたものであり、類否帳票判定において処理コストを軽減することを目的とする。
本開示に係る画像処理装置は、活字と手書き文字とが混在した文書の類否判定を行う画像処理装置であって、前記文書をスキャンして取得されたスキャン文書に含まれる文字列領域を特定する特定手段と、前記特定手段が特定した前記文字列領域を用いて、予め登録された登録済み文書と前記スキャン文書との類似度を算出する算出手段と、前記算出手段が算出した第1の類似度が第1の閾値を超える登録済み文書を前記予め登録された登録済み文書の中から抽出する抽出手段と、前記抽出手段によって抽出された前記第1の類似度が第1の閾値を超える登録済み文書のうち、前記算出手段が算出した第2の類似度が第2の閾値を超える前記登録済み文書を、前記スキャン文書に類似する文書として決定する決定手段と、を備えることを特徴とする。
本開示により、類否帳票判定において処理コストを軽減することが可能になる。
画像処理システムの全体構成を示す図。 MFPのハードウェア構成図。 クライアントPC及びMFP連携サーバのハードウェア構成図。 画像処理システムのソフトウェア構成図。 各機器間の処理の流れを示すシーケンスチャート。 画像処理部が行う領域分離と文字領域解析の一例を示す図。 MFP又はクライアントPCが表示する画面の一例を示す図。 画像処理部が行う文字認識処理を示すフローチャート。 文字認識処理及び入力情報保存処理で保存されるデータ構造の一例を示す図。 画像処理部が行う類否帳票判定を示すフローチャート。 画像処理部が行う第1のマッチング方法を示すフローチャート。 位置合わせパラメータ推定のペアブロックの決定方法を説明する図。 文字列領域情報を利用したマッチング方法を説明する図。 画像処理部が行う第2のマッチング方法を示すフローチャート。 手書き配置情報を利用したマッチング方法を説明する図。 本開示の効果を説明する図 本開示の効果を説明する図 画像処理部が行う第1のマッチング方法を示すフローチャート。
以下、本開示の実施形態について、添付図面を参照して説明する。なお、以下の実施形態は本開示を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが本開示の解決手段に必須のものとは限らない。
本開示は、一般的な紙文書を対象としているが、以下の実施形態では、見積書などの帳票を例にとって説明する。
なお、同一の構成については、同じ符号を付して説明する。また、シーケンスチャート及びフローチャートにおける各工程(ステップ)については「S」で始まる符号を用いて示す。
[実施形態1]
<画像処理システムの全体構成>
図1は、画像処理システムの全体構成を示す図である。画像処理システムは、MFP(Multifunction Peripheral)110、クライアントPC111、MFP連携サーバ120及びクラウドストレージ130を含む。MFP110及びクライアントPC111は、LAN(Local Area Network)経由でインターネット上の各種サービスを提供するサーバに対して通信可能に接続されている。
MFP110は、スキャナやプリンタといった複数の機能を有する複合機であり、画像処理装置の一例である。クライアントPC111はMFP連携サーバ120に対して依頼したサービスの提供を受けるコンピュータであるか、又はアプリケーションを含む装置である。MFP連携サーバ120は、MFP110においてスキャンした画像ファイルを保存したり、別のストレージサービス等が有するファイル保存サービスに転送したりする機能を有するコンピュータであるか、又はアプリケーションを含む装置である。クラウドストレージ130は、インターネットを介してファイルを保存したりウェブブラウザを用いてファイルを取得したりすることができるサービスを有する装置である。
本実施形態の画像処理システムは、MFP110、クライアントPC111、MFP連携サーバ120及びクラウドストレージ130を含んでいるが、これに限定されない。例えば、MFP110がクライアントPC111又はMFP連携サーバ120の機能を兼ね備えていてもよい。また、MFP連携サーバ120はインターネット上に配置されたサーバには限定されず、LAN上に配置されたサーバであってもよい。また、クラウドストレージ130はメールサーバなどに置き換えてもよく、所望の装置にスキャンした画像をメールに添付して送信してもよい。
<MFPのハードウェア構成>
図2は、MFP110のハードウェア構成図である。MFP110は、制御部210、操作部220、プリンタ部221、スキャナ部222、及びモデム223を含む。制御部210は、以下に記載する構成要素を含み、MFP110全体の動作を制御する。
CPU211は、ROM212に記憶された制御プログラムを読み出して、読取、印刷、及び通信などのMFP110が有する各種機能を実行し、MFP110を制御する。
ROM212は、CPU211において実行される制御プログラムを格納する。
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に入力される。MFP110は、スキャナ部222において生成された画像データをプリンタ部221から出力(コピー)し、ファイルとして送信、又はメールに添付して送信する。
モデムI/F218は、モデム223と制御部210とを接続するインターフェースである。モデム223は、PSTN上のファクシミリ装置との間で画像データをファクシミリ通信する。
ネットワークI/F219は、MFP110の制御部210をLANに接続するインターフェースである。MFP110は、ネットワークI/F219を用いてインターネット上の各サービスに画像データ及び情報を送信し、様々な情報を受信する。
<クライアントPC及びMFP連携サーバのハードウェア構成>
図3は、クライアントPC111及びMFP連携サーバ120のハードウェア構成図である。クライアントPC111及びMFP連携サーバ120は、CPU311、ROM312、RAM313、HDD314及びネットワークI/F315を含む。
CPU311は、ROM312に記憶された制御プログラムを読み出して各種処理を実行することにより、全体の動作を制御する。
ROM312は、CPU311において実行される制御プログラムを格納する。
RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。
HDD314は、画像データ、各種情報、及び各種プログラムを記憶する大容量記憶デバイスである。
ネットワークI/F315は、クライアントPC111及びMFP連携サーバ120をインターネットに接続するインターフェースである。クライアントPC111及びMFP連携サーバ120は、ネットワークI/F315を介してMFP110等の他の装置から処理リスエストを受け、様々な情報を送受信する。
<画像処理システムのソフトウェア構成>
図4は、本実施形態に係る画像処理システムのソフトウェア構成図である。
MFP110のソフトウェア構成は、ネイティブ機能部410と追加機能部420の大きく2つに分けられる。
ネイティブ機能部410に含まれる各ユニットはMFP110に標準的に備えられたものであるのに対し、追加機能部420はMFP110に追加インストールされたアプリケーションである。追加機能部420はJava(登録商標)をベースとしたアプリケーションであり、MFP110へ容易に機能を追加することを可能にする。なお、MFP110には他の追加アプリケーション(不図示)がインストールされていても良い。
ネイティブ機能部410は、スキャン実行部411及び画像データ保存部412を含む。
追加機能部420は、表示制御部421、スキャン指示部422、及び連携サービスリクエスト部423を含む。
スキャン実行部411は、スキャン指示部422からスキャン設定を含んだスキャン要求を受け取る。スキャン実行部411は、スキャン要求に従い、スキャナI/F217を介してスキャナ部222を用いて、原稿台に置かれた文書原稿を読み取ることにより電子化されたスキャン文書を生成する。生成されたスキャン文書は、画像データ保存部412に送信される。スキャン実行部411は、保存したスキャン文書を一意に示すスキャン文書識別子(不図示)をスキャン指示部422へ送る。スキャン文書識別子はMFP110においてスキャンした文書をユニークに識別するための番号、記号、及びアルファベット等で表される。
画像データ保存部412は、スキャン実行部411から受け取ったスキャン文書をHDD214に保存する。
表示制御部421は、MFP110の操作部220のタッチパネル機能を有する液晶表示部に、ユーザによる操作を受け付けるためのUI画面を表示する。例えば、MFP連携サーバ120へアクセスするための認証情報の入力、スキャン設定、スキャン開始の操作、及びプレビュー画面等のUI画面を表示する。スキャン指示部422は、UI画面を介して入力されたユーザ指示に応じたスキャン設定と共にスキャン実行部411にスキャン処理を要求する。
スキャン指示部422は、スキャン実行部411から受け取ったスキャン文書識別子に対応するスキャン文書を画像データ保存部412から取得する。スキャン指示部422は、MFP連携サーバ120がスキャン文書に対して行う指示を連携サービスリクエスト部423に要求する。
連携サービスリクエスト部423は、MFP連携サーバ120に対して各種処理の要求を行う。例えば、MFP連携サーバ120に対してログイン、スキャン文書の解析、及びスキャン文書の送信等の要求を行う。連携サービスリクエスト部423とMFP連携サーバ120とのやり取りにはREST又はSOAP等のプロトコルが使用される。ここで、RESTはRepresentational State Transfer、SOAPはSimple Object Access Protocolの略である。連携サービスリクエスト部423とMFP連携サーバ120との間の通信は、その他の通信手段を用いてもよい。
MFP連携サーバ120は、リクエスト制御部431、画像処理部432、クラウドストレージアクセス部433、データ管理部434、及び表示制御部435を含む。
リクエスト制御部431は、外部装置からの要求を受信できる状態で待機する。処理要求を受け取ると要求に応じて適宜、画像処理部432、クラウドストレージアクセス部433、及びデータ管理部434に処理を指示する。
画像処理部432は、画像に対して文字領域解析、文字認識処理、及び類否帳票判定(類否判定)等の画像認識処理、並びに画像の回転、及び傾き補正などの画像に対する画像加工処理を行う。
クラウドストレージアクセス部433は、クラウドストレージ130に対する処理の要求を行う。クラウドサービスは一般的にRESTやSOAPなどのプロトコルを用いて、クラウドストレージにファイルを保存したり、保存したファイルを取得したりするための様々なインターフェースを公開している。クラウドストレージアクセス部433は、公開されたクラウドストレージのインターフェースを使用してクラウドストレージの操作を行う。
データ管理部434は、MFP連携サーバ120で管理するユーザ情報及び各種設定データ、並びに登録文書のデータを管理し、各種データ及び各種情報をHDD314に保存し、又はHDD314から読み出す。
表示制御部435は、インターネットを介して接続されたPCやモバイル等の別端末(不図示)上で動作しているウェブブラウザからのリクエストを受け取り、画面表示に必要な画面構成情報(HTML、CSS等)を返す。ここで、HTMLはHyper Text Markup Language、CSSはCascading Style Sheetsの略である。ユーザは、ウェブブラウザに表示される画面を介してMFP連携サーバ120に登録しているユーザ情報を確認したり、スキャンする際の設定を変更したりする。
なお図4では、MFP110に追加機能部420をインストールする構成の例について説明したが、本開示はこの構成に限定されず、クライアントPC111に追加機能部420の機能が含まれていてもよい。
<全体の処理の流れ>
図5は、MFP110においてスキャンした画像をファイル化してクラウドストレージに送信する際の各装置間の処理の流れを示すシーケンスチャートである。以下では、各装置間のやり取りを中心に説明する。なお、図5ではMFP110がMFP連携サーバ120とやり取りを行う記載としているが、後述する解析結果取得、画面表示、及び登録指示等はMFP110でなくクライアントPC111が実行する構成としてもよい。
MFP110は、通常の状態では提供する各機能を実施するためのボタンを並べたメイン画面をタッチパネル上に表示する。
MFP110にスキャンした帳票をクラウドストレージに送信するための追加アプリケーション(以下、「スキャンアプリ」と呼ぶ。)をインストールすることにより、アプリケーションの機能を使用するボタンがMFP110のメイン画面に表示される。ユーザがこのボタンを押下するとスキャンした帳票をクラウドストレージに送信するための画面が表示され、図5のシーケンスチャートにおいて示す処理が行われる。
S501では、MFP110は、MFP連携サーバ120にアクセスするための認証情報を入力するログイン画面を表示する。
S502では、MFP110は、ログイン画面を介して受け付けたユーザ名とパスワードを用いて、MFP連携サーバ120にログイン要求を行う。
S503では、MFP連携サーバ120は、ログイン要求に含まれるユーザ名及びパスワードが正しいかを検証し、ユーザ名及びパスワードが正しい場合は、アクセストークンをMFP110に返す。以降のスキャンアプリからMFP連携サーバ120に対して行う各種要求にはこのアクセストークンが各種要求と共に発行される。この情報に基づいて、MFP110は各種要求に対する処理対象のユーザを特定することが可能となる。ユーザ認証の方法は、Basic認証、Digest認証、又はOAuthを用いた認可等の一般的に公知な方法を用いて行う。
S504では、MFP110は、MFP連携サーバ120からログイン処理完了を受け付けると、スキャン設定画面を表示する。
S505では、MFP110は、「スキャン開始」ボタンの押下を受け付けると、スキャン設定画面で設定された各種スキャン設定に従って、原稿台に置かれた紙帳票又はADFにセットされた紙帳票をスキャンし、スキャン帳票(スキャン文書)を生成する。
S506では、MFP110は、S505において生成されたスキャン帳票とともに、スキャン帳票の解析要求を、MFP連携サーバ120に送信する。
S507では、MFP連携サーバ120は、MFP110からスキャン帳票の解析要求を受信すると、MFP連携サーバ120の画像処理部432でスキャン帳票の画像解析を開始し、処理はS508に進む。その間、画像解析処理の終了を待たずに、MFP連携サーバ120は、MFP連携サーバ120に依頼した解析を一意に示す識別子である"processId"をMFP110のスキャンアプリに返す。
S508では、画像処理部432は、過去にスキャンした帳票の情報と今回スキャンした画像の情報を比較することにより、画像処理部432は類似した帳票を過去にスキャンしたか否かを判定する。以下では、この処理を類否帳票判定と称する。過去にスキャンした帳票の情報は、後述するS516の処理によって、データ管理部434を介してHDD314に保存され、類否帳票判定はデータ管理部434を介してHDD314に格納されたデータを利用する。
類否帳票判定において利用される可能性がある情報は、簡易配置情報、活字配置情報、及び手書き配置情報である。
簡易配置情報は、スキャン帳票全体に対して、活字用の文字領域解析処理(活字ブロックセレクション)を適用して取得した文字列領域の情報である。
活字配置情報は、スキャン帳票全体に対して、手書き領域分離処理を行った後に、非手書き領域に対して、活字用の文字領域解析処理を適用して取得した文字列領域の情報である。
手書き配置情報は、スキャン帳票全体に対して、手書き領域分離処理を行った後に、手書き領域に対して、手書き用の文字領域解析処理を適用して取得した文字列領域の情報である。
ここで、文字領域解析処理とは、処理対象の画像領域を、前景領域と背景領域とに分類した上で、前景領域を文字列領域とそれ以外の領域とに分離することにより、文字列領域とその他の領域とを検出する処理である。手書き領域分離処理は、文字列領域を手書き文字領域と非手書き領域(印字された領域)とに分離する処理である。類否帳票判定の詳細については後述する。
S509では、画像処理部432は、S508で得られた判定結果に基づいて、文字認識処理を行う。文字認識処理の対象領域は、S508の判定結果により、部分領域の場合と、画像全体の場合がある。文字認識処理の詳細については、後述する。
S510では、MFP110は、S506に対するレスポンスで受け取った"processId"を使用してMFP連携サーバ120に定期的(例えば数百ミリ秒から数ミリ秒程度毎)に"processId"の画像解析の処理状況の確認を行う。MFP110はS510の処理をMFP連携サーバ120から解析処理完了のレスポンスが取得できるまで(S511の処理が実行されるタイミングまで)継続して行う。
MFP連携サーバ120は、S510の処理状況確認の要求を受け取ると指定された"processId"の処理の状況を確認し、処理状況確認の要求に対するレスポンスをMFP110に返す。レスポンスには、"status"に現在の処理状況を示す文字列が格納される。例えば"status"が"processing"の場合は、MFP連携サーバ120において処理が行われている状態であることを示す。"status"が"completed"の場合は、MFP連携サーバ120において処理が完了している状態であることを示す。なお、処理が失敗した場合には"failed"等の他のステータスがMFP110に返される。また処理完了時("status"が"completed"の場合)のレスポンスには、ステータス情報、並びにスキャン帳票を解析した結果及びスキャン設定等の情報が含まれる。
S511では、MFP110は、処理の完了を検知し、処理はS512に進む。
S512では、MFP110は上述したレスポンスに含まれる結果情報が格納されているURLから結果情報を取得する。
S513では、MFP110は、S512において取得した結果情報を使用してファイル名を設定するためのファイル名設定画面を表示する。図7(b)は、MFP110において表示されるファイル名設定画面710の一例を示したものである。ファイル名設定画面での処理の詳細については後述する。
S514では、MFP110は、ファイル名設定画面においてスキャン帳票にファイル名が設定されOKボタン717が押下されると、ファイル名を設定するために使用した文字領域情報及び登録リクエストをMFP連携サーバ120に送信する。
S515では、MFP連携サーバ120が登録リクエストを受信するとMFP連携サーバ120のリクエスト制御部431は、画像処理部432に帳票登録を要求する。
S516では、画像処理部432は、以下の情報を、データ管理部434を介してHDD314に保存する。保存される情報は、S508での類否帳票判定結果及びS509での文字認識結果である帳票情報、並びにS514における文字領域情報を受け取ったユーザがファイル名に使用した文字列領域の入力情報である。保存される帳票情報は、簡易配置情報、活字配置情報、及び手書き配置情報である。なお、これらの情報以外の情報を、データ管理部434を介してHDD314に保存してもよい。
S517では、MFP110はスキャン帳票及びスキャン帳票をファイル化した後に設定されるファイル名等の情報をMFP連携サーバ120に送信する。
S518では、MFP連携サーバ120は当該スキャン帳票及び情報を受信すると、MFP連携サーバ120はファイル生成処理を開始し、MFP連携サーバ120は当該スキャン帳票及び情報を正常に受信したことをMFP110に返す。MFP110は当該スキャン帳票及び情報の送信に対するレスポンスを受け取ると処理を終了し、画面表示はS504のスキャン設定画面表示に戻る。
MFP連携サーバ120は、S518においてMFP連携サーバ120に登録されたスキャン設定からクラウドストレージ130に送信するファイルフォーマットの情報を取得し、その設定に基づいてスキャン帳票からファイルを生成する。
S519では、MFP連携サーバ120は、生成したファイルのファイル名をS517において受信したファイル名に設定して生成したファイルをクラウドストレージ130に送信する。クラウドストレージ130からMFP連携サーバ120にファイル送信完了が送信されると、図5に示す処理フローは終了する。
図6は、画像処理部432において実行される手書き領域分離処理と文字領域解析処理の処理結果の一例を示す図である。
図6(a)は、スキャン帳票を表している。図6(b)は非手書き領域を表している。図6(c)は、手書き領域分離の結果として得られる手書き文字領域を表している。図6(b)に示すように、非手書き領域においては、罫線などの文字列領域以外の印字された前景領域が含まれる。
手書き領域分離処理は、手書き領域特有の特徴を利用して、手書きで書かれた領域だけを抽出する処理である。手書き領域分離処理は、手書き特有のガタツキやカスレの情報を利用して、手書き画素を分離する処理であるが、一般的に難易度が非常に高い処理である。十分な精度を出すためには、ディープラーニング等の計算コストが高く、計算時間を要する技術を活用する必要がある。
ここで、手書き領域分離処理の具体例について説明を行う。本実施形態において用いられる手書き領域分離処理は、スキャン帳票の手書きされた画素を判定し、手書き画素のみの画像(手書き文字領域)と、印刷された文字及び背景の画像(非手書き領域)に分離する処理である。この処理を実現するために、ディープラーニングを使用したセマンティックセグメンテーションを利用する。学習には、手書き画像と印刷画像を重畳した手書き活字混在画像を複数生成し、これを学習データとして用いる。また、生成した手書き活字混在画像の手書き画像のみを2値化した画像データを用意する。この画像の画素値は、手書き画素を示すラベル値であり、これを教師データとする。これらの学習データと教師データとを用いて、セマンティックセグメンテーションを行うように構成されたDeep Neural Network(DNN)の学習を行うことにより、手書き領域分離処理を実行可能な学習モデルが生成される。
この学習モデルを用いて、スキャン帳票を入力として、手書き領域分離処理を実行すると、画素毎に手書き画素のラベル又は非手書き画素のラベルが出力される。そして、ラベル値に従って画素を分離し、手書き画素のみを含む手書き文字領域と、印刷された活字文字及び罫線を含む非手書き領域との2つの領域を生成する。ここで説明をした手書き領域分離処理を常に実施すると、計算コストがかかり、処理費用がかさむ。さらに、計算時間がかかるために、ユーザの待ち時間も長くなる。
図6(d)は、図6(b)に示した非手書き領域に対して、活字用の文字領域解析処理を実施した結果である活字配置情報を示している。
また、図6(e)は、図6(c)に示した手書き文字領域に対して、手書き用の文字領域解析処理を実施した結果である手書き配置情報を示している。
図6(f)は、図6(a)に示したスキャン帳票画像全体に対して、活字用の文字領域解析処理を実施した結果である簡易配置情報を示している。手書き領域に対しても、活字用の文字領域解析処理を実施しているため、正しく文字列領域を抽出できていない箇所がある。
活字用の文字領域解析処理の具体例について説明する。まず、白黒に2値化されたスキャン帳票に対し輪郭線追跡を行って、黒画素輪郭で囲まれる画素の塊(画素ブロック)を抽出する。なお、手書き領域分離処理が既に行われている場合には、非手書き領域に対して処理を行う。そして、面積が所定の大きさよりも大きい黒画素の塊については、内部にある白画素に対しても輪郭線追跡を行い白画素の塊を抽出し、さらに一定の大きさ以上の面積の白画素の塊の内部から再帰的に黒画素の塊を抽出する。このようにして得られた黒画素の塊を前景領域と決定する。決定された前景領域は、大きさ及び形状で分類し異なる属性を持つ領域に分類する。
例えば、縦横比が1に近く大きさが一定の範囲の前景領域を文字相当の画素塊とし、さらに近接する文字が整列良くグループ化され得る領域は文字列領域(TEXT)と決定する。扁平な画素塊や、一定大きさ以上でかつ矩形の白画素塊を整列よく内包する黒画素塊の占める範囲を線領域(LINE)と決定する。他にも、不定形の画素塊が散在している領域を写真領域(PHOTO)と決定したり、それ以外の形状の画素塊を図画領域(PICTURE)と決定したりしてもよい。このようにしてオブジェクトの属性毎に領域分割された領域の中から、文字属性を有すると決定された前景領域(TEXT)が文字列領域として検出される。
続いて、手書き用の文字領域解析処理の具体例について説明する。まず、手書き領域分離処理の結果として得られる手書き領域塊の中から近接する領域をグループ化する。グループ化する際には、文字列領域や線領域を超えた領域塊で結合しないように、領域同士の距離だけでなく、活字配置情報を利用してもよい。グループ化された領域のうち、活字配置情報の文字列領域を内包するような領域を丸囲み記号(CIRCLE)として決定し、残りの領域を手書き文字列領域(HWTEXT)として決定する。
ここで、活字用の文字領域解析処理と手書き用の文字領域解析処理とを異なるものとしている理由について説明をする。同じ文字列領域であっても活字と手書き文字とでは外接矩形内の文字密度、及びエッジ特性等の文字領域解析で利用する画像特徴は異なる。また非手書き領域には、手書き文字領域とは異なり、罫線が存在する。したがって、前景領域の種類も活字と手書きとは異なるので、活字用の文字領域解析処理と手書き用の文字領域解析処理とを使用する必要がある。
なお、領域分離及び文字領域解析の処理精度を上げるために、事前に傾き補正処理と回転補正処理を実施しておいてもよい。
傾き補正では、まず画像データからスキャン帳票の傾きの角度を検出し、検出した傾きだけ逆方向に画像を回転することでスキャン帳票の傾きを補正する。傾き補正の対象となる傾きは、例えば、原稿のスキャン時に、MFP110のスキャナ部222の原稿フィーダ内のローラの摩耗などが原因でまっすぐに文書原稿が読み取られないことで発生する。あるいは、スキャンされた文書原稿が印刷時にまっすぐ印刷されなかったためによっても傾きが発生する。
傾きの角度の検出方法として、まず、画像データ内に含まれるオブジェクトを検出し、水平方向あるいは鉛直方向に隣り合うオブジェクト群を連結する。そして、連結されたオブジェクト群の中心位置を結んだ角度が、水平方向又は鉛直方向からどれだけ傾いているかを導出して傾きを求める。なお、傾きの検出方法はこの方法に限られない。他にも例えば、画像データ内に含まれるオブジェクトの中心座標を取得し、0.1度単位で中心座標群を回転させて、中心座標群が水平方向あるいは垂直方向に並ぶ割合がもっとも高い角度をスキャン帳票の傾きとして求める方法でもよい。
回転補正とは、画像内の文字が正立する向きになるように、90度単位で画像を回転する処理である。回転補正の方法は、例えば、傾き補正後のスキャン帳票を基準画像として、基準画像と、基準画像を90回転した画像と、基準画像を180度回転した画像と、基準画像を270度回転した画像と、の4枚の画像を用意する。そして、それぞれの画像に対し、高速処理可能な簡易的なOCR処理を実行して、一定値以上の確信度で認識された文字の数が最も多い画像を回転補正後の画像とする方法がある。ただし、回転補正の方法はこの方法に限定されない。
図7は、MFP110又はクライアントPC111が表示する画面の一例を示す図である。
図7(a)はスキャン済み帳票一覧画面700の一例を示す図である。ユーザは、スキャン済み帳票一覧画面700においてスキャン及び画像解析処理が完了し、クラウドストレージ130に送信する前の帳票の一覧を閲覧することが可能である。またスキャン済み帳票一覧画面700はスキャン済み帳票一覧701、送信ボタン702、編集ボタン703、及び削除ボタン704を含む。スキャン済み帳票一覧701はスキャン及び画像解析処理(S505からS509までの処理)が完了した帳票の一覧を表示する画面である。スキャン済み帳票一覧701は帳票名705、送信先706、ステータス707、及び種類708から構成されている。
帳票名705は帳票の名前を一意に識別する識別子である。送信先706は帳票のファイルを送信するクラウドストレージ130の名前である。ステータス707は帳票に対して類否帳票判定を行った際の結果を示しており、「未登録」又は「登録済」のいずれかが表示される。「未登録」は類似帳票が存在しないと判定されたことを示し、「登録済」は類似帳票が存在したと判定されたことを示している。種類708は類似帳票の種類を表している。例えば「見積書」及び「請求書」等が表示される。またステータス707が登録済の帳票に関しては、どの請求書のフォーマットに該当するかに関する詳細な種類が表示される。図7(a)の例では、種類708に「請求書AAA」及び「請求書BBB」が表示される。ステータス707の内容は類否帳票判定処理により決定した最も類似する帳票と関連付けられている。
送信ボタン702はMFP連携サーバ120を経由して、クラウドストレージ130に対して帳票を送信するためのボタンである。スキャン済み帳票一覧701から任意の帳票を選択し、送信ボタン702を押下することにより、選択された帳票のデータはMFP連携サーバ120を経由して送信先706に表示されているクラウドストレージ130に送信される。なおクラウドストレージ130への送信が正常に完了した場合、その帳票はスキャン済み帳票一覧701から削除される。
編集ボタン703は、図7(b)に示されるファイル名設定画面710に遷移するためのボタンである。スキャン済み帳票一覧701から任意の帳票を選択し、編集ボタン703を押下することにより、表示画面は選択された帳票のファイル名設定画面710へ遷移する。
削除ボタン704は帳票の削除を行うボタンである。ユーザはスキャン済み帳票一覧701から任意の帳票を選択し、削除ボタン704を押下すると、選択された帳票は削除される。
図7(b)はファイル名設定画面710の一例を示す図である。ファイル名領域711は、ユーザが設定したファイル名を表示する領域である。また、ファイル名領域711の空白部分をタッチすると、ソフトキーボードが表示され、任意の文字を入力することが可能となる。ファイル名が設定され文字列が表示されていた場合は、その文字列をタッチするとタッチした部分の文字列を修正するためのソフトキーボードが表示され、入力されている文字を修正することができる。
プレビュー領域712は、スキャン帳票を表示する。さらに画像の文字領域をタッチすると、タッチした位置に対応する文字領域をファイル名に追加することができる。
選択した文字列は、選択したことがわかるように選択した文字領域などに線、若しくは枠線等の形状又は色などを付与して表示してもよい。複数の文字領域を選択した場合、それぞれの文字領域の色を異なる色にしてもよい。また、選択した文字領域が中央になるようにプレビュー表示位置の変更や、拡大率の変更を行ってもよい。また、文字領域が複数存在する場合、予め設定された領域数分の文字領域が表示されるように、プレビュー表示位置を算出してもよい。
例えば、ファイル名に使用した領域のうち、一番上部の領域と一番下部の領域の中央部分が、プレビュー領域の縦方向の中央になるように表示位置と拡大率の変更を行い、プレビュー表示を行う。一度選択した文字領域を再度タッチすると、選択が解除されて対応するファイル名の文字列を削除して、文字領域に付与した線又は色等も表示しない状態に戻す。一例として、文字列が非選択時の場合に、文字領域はプレビュー上には表示されないようにしてもよい。ユーザにどの領域がタッチできるのかを示すために色又は枠線を用いて文字領域がわかるように表示してもよい。また、文字領域がわかるようにする表示は、ボタン等を用いて文字領域の表示と非表示が切り替えられるようにしてもよい。プレビュー領域に対してスワイプ操作を行うと、プレビュー領域で表示される画像の位置を移動することが可能となる。
ファイル名削除ボタン713は、ファイル名のうち末尾に追加されている文字領域に対応する文字を削除する。
プレビュー拡大ボタン714は、プレビュー領域に表示している画像の拡大倍率を大きくする。
プレビュー縮小ボタン715は、プレビュー領域に表示している画像の拡大倍率を小さくする。
拡大及び縮小時にプレビュー領域の中央の座標が拡大及び縮小前と同一となるように表示位置の調整を行う。
プレビュー初期表示ボタン716は、スワイプによるプレビュー画像の表示位置の移動、並びにプレビュー拡大ボタン714及びプレビュー縮小ボタン715を押下して表示倍率を変更していた場合に、初期状態の倍率と表示位置に戻す。
OKボタン717は、ファイル名設定画面で設定したファイル名と共にスキャン帳票をMFP連携サーバ120へ送信し、登録処理(S514からS516までの処理)を実行する。MFP連携サーバ120への送信が完了すると表示画面はスキャン済み帳票一覧画面700に戻る。
図8は、本画像処理システムにおけるMFP連携サーバ120の画像処理部432が行う文字認識処理の詳細を示すフローチャートである。本処理フローは図5におけるS509に対応する処理のフローである。本処理フローにおける処理は、画像処理部432において行われる。本処理フローの詳細を以下に記載する。
S801では、帳票が入力され、類否帳票判定(S508の処理)が行われる。類否帳票判定の結果、S801において類似する帳票が存在すると判定された場合には、処理はS802に進む。S801において類似する帳票が存在しないと判定された場合には、処理はS810に進む。
S802では、類似帳票と判定された帳票の情報として登録され、ファイル名にも利用されている文字列領域である登録済み文字列領域情報をデータ管理部434より取得する。
S803では、登録済み文字列領域情報に、手書き文字領域が含まれており、さらに、スキャン帳票に対して手書き領域分離処理が行われているか否かを判定する。判定の結果、手書き領域が含まれており、さらに、手書き領域分離処理が行われていないと判定された場合には、処理はS804に進む。なお、後述する類否帳票判定内の条件判定が適切に設定されていれば、基本的に、S804に進む可能性は低い。また、登録済み文字列領域情報に、手書き文字領域が含まれていない場合、又はスキャン帳票に対して手書き領域分離処理が行われている場合には、処理はS806に進む。
S804では、手書き領域分離処理を実行し、処理はS805に進む。なお、登録済み文字列情報に含まれる文字列領域に対応するスキャン帳票側の周辺領域にだけ、手書き領域の分離処理を実施してもよい。
S805では、分離された領域に対して、文字領域解析処理を行う。手書き領域に対しては手書き用の文字列解析処理を行い、非手書き領域に対しては活字用の文字解析処理を行い、文字領域解析処理が完了すると、処理はS806に進む。
S806では、登録済み文字列情報に含まれる文字列領域と対応関係にあるスキャン帳票内の文字列領域を決定し、処理はS807に進む。この文字列領域はファイル名を決定する際に利用される。なお、文字列領域を決定する際には、登録されている文字列領域が活字領域であれば、スキャン帳票の簡易配置情報又は活字配置情報に含まれる文字列領域から決定する。登録されている文字列領域が手書き文字領域であれば、スキャン帳票の手書き配置情報に含まれる文字列領域から決定する。また、日付記入欄のように、手書きと活字の組み合わせの項目について登録されている場合には、登録時に決定した組み合わせを用いた文字列領域から決定する。
S807では、S806において決定された文字列領域に対して文字認識処理を実施し、文字列を抽出する。その際、対象の文字列領域が活字領域であれば、活字用の文字認識エンジンを利用し、手書き文字領域であれば、手書き文字用の認識エンジンを利用して文字認識を実施する。この処理により、対象帳票においてユーザが所望すると思われるファイル名を、類似帳票のファイル名設定ルールに基づいて提示することができる。なお、ファイル名に利用される文字列領域は1つであるとは限らない。複数の文字列領域がファイル名として利用される場合には、上記S806及びS807の処理は、対象となる文字列領域の数だけ繰り返され、すべての文字領域に対してS806及びS807の処理を行うと、処理はS808に進む。
S808では、S807の処理において得られた文字認識結果を登録済み帳票(登録済み文書)が保存されている保存領域に追加する。
S809では、S801において入力された帳票を登録済み帳票(登録済み文書)としてリクエスト制御部431に通知し、本処理フローは終了する。類似帳票に手書き領域が含まれず、スキャン帳票に手書き領域分離処理が行われていない場合には、手書き領域分離処理の計算コストが軽減されるので、高速に処理が行える。
S810では、スキャン帳票に対して手書き領域分離処理が行われているか否かを判定する。手書き領域分離処理が行われていないと判定された場合には処理はS811に進み、手書き領域分離処理が行われていると判定された場合には処理はS813に進む。
S811では、スキャン帳票全体に手書き領域分離処理を実行し、処理はS812に進む。
S812では、分離された領域に対して、文字領域解析処理を行う。手書き領域に対しては、手書き用の文字列解析処理を行い、非手書き領域に対しては、活字用の文字解析処理を行い、文字領域解析処理が完了すると、処理はS813に進む。
S813では、帳票の全文字列領域に対して文字認識処理を実施することにより、文字列を抽出し、処理はS814に進む。ここで全文字領域に対して文字認識処理を行うのは、類似帳票が存在しないと判定され、ファイル名設定に使用する領域が不明であるためである。なお、全文字列領域に対して文字認識処理を実施する際は、文字領域解析で得られた各配置情報に基づき、活字領域であれば、活字用の文字認識エンジンを利用し、手書き文字領域であれば、手書き文字用の認識エンジンを利用して文字認識を実施する。
S814では、S813において得られた文字認識結果を未登録帳票(未登録文書)の保存領域に追加し、処理はS815に進む。
S815では、S801において入力された帳票を未登録帳票(未登録文書)としてリクエスト制御部431に通知し、本処理フローは終了する。
図9は本画像処理システムにおける画像処理部432が行う文字認識処理(S509の処理)及び入力情報保存処理(S516の処理)において保存するデータ構造の一例を示す図である。
図9(a)は画像処理部432が入力情報保存処理(S516の処理)において保存する登録データのデータ構造の一例を示す。"formId"はMFP連携サーバ120が記憶した帳票データを管理するために付与した値である。"registeredContent"には、ファイル名に使用した入力情報を示す情報及び帳票の各種配置情報を設定する。
"fileInfoArray"には、ファイル名に使用したそれぞれの文字領域の座標情報を設定する。当該設定は、ファイル名に使用した文字領域のすべてに対して行われる。その具体的な内容の例を、図9(b)に示す。
図9(b)に示すように、各文字領域は"key"及び"regions"の情報を有する。"key"は文字領域の名前である。"regions"は具体的な文字領域の情報である。ファイル名の1つの文字列領域が、帳票上の複数の文字列領域となる場合があるため、配列となっている。"regions"の1つ1つの要素は、"type"、"rect"、及び"relatedInfo"の情報を有する。"type"はその文字領域の種類を表し、"printedText"であれば活字、"handwrittenText"であれば手書き文字であることを示している。"rect"はその文字領域の位置及び大きさを表し、"x"は領域の左上のX座標、"y"は領域の左上のY座標、"width"は領域のX方向のピクセル数、"height"は領域のY方向のピクセル数を示す。"relatedInfo"はファイル名に使用した文字領域に関連する文字領域情報を表している。"relatedInfo"は"regions"と同様に、"type"及び"rect"の情報を有する。"type"の"handwrittenCircle"は、手書きで丸囲みが書かれていることを意味する。また、"relatedInfo"は"type"と"rect"との間に"text"の情報を有する場合があるが、これは"rect"の文字領域に対して文字認識処理を行った結果として抽出された文字を示している。本例においては、「女」と書かれた活字の上に、手書きの丸囲みが書かれていることが表現されている。
図9(c)は、"metadataArray"の例を示す。"metadataArray"には、ファイル名に設定した文字領域と区切り文字の順番を示す情報を設定する。図9(c)の例では、"fileRegion0"、"separator"、"fileRegion1"、"separator"、及び"fileRegion2"と設定している。図7(b)を参照して、図9(c)に示す例におけるユーザ操作を説明する。ユーザはファイル名設定画面710上で順番に「入会申込書」、「門田若葉」、及び「女」をタッチした後、OKボタン717を押下した状態を示している。画像処理部432はこの情報を蓄積しておき、次回の類否帳票判定においてこの情報が使用される。
図9(d)は、"printedTextArray"の例を示す。"printedTextArray"には、活字配置情報が設定される。1つ1つの配置情報には、"type"、"text"、及び"rect"が含まれる。それぞれの情報は、前述した"fileInfoArray"に含まれる同一名の要素と同一である。
図9(e)は、"handwrittenTextArray"の例を示す。"handwrittenTextArray"には、手書き配置情報が設定される。1つ1つの配置情報には、"type"、"text"、及び"rect"が含まれる。それぞれの情報は、前述した"fileInfoArray"に含まれる同一名の要素と同一である。
図9(f)は、"simpleTextArray"の例を示す。"simpleTextArray"には、簡易配置情報が設定される。1つ1つの配置情報には、"type"、"text"、及び"rect"が含まれる。それぞれの情報は、前述した"fileInfoArray"に含まれる同一名の要素と同一種類の情報である。ただし、"type"の値の"NA"は、文字種類が不明であることを意味する。手書き領域が含まれない帳票については、処理方式にも依存するが、"simpleTextArray"と"printedTextArray"とに含まれる座標情報は一致する場合が多い。
図9(g)は、類否帳票判定処理の結果及びユーザに提示するファイル名の結果を表すデータ構造の一例を示す。"matched"には、解析対象の画像が類否帳票判定により以前にスキャンした画像と類似した帳票が見つかったか否かを示す値が格納される。
"formId"には、類似する帳票があった場合にはその帳票を一意に示す値が格納され、類似する帳票がなかった場合にはS516においてスキャンした画像の入力情報を登録させるときに使用する値が格納される。"matchingScore"は、類似する帳票があった場合にどの程度類似していたかを示す値が格納される。"matchingScore"は過去にスキャンした画像の配置情報と今回スキャンした画像の配置情報の一致度合を0から1までの実数値を用いて表し、値が大きいほど類似した帳票であることを示す。"fileInfoArray"は、類似する帳票に対して以前にユーザがファイル名設定時に使用した文字領域に対応する、今回の解析対象の画像の文字領域を示す情報が格納される。
図9(b)の例では、図7(b)の画像を以前にスキャンして「入会申込書」、「門田若葉」、及び「女」を使用してファイル名を設定し入力結果を登録した。その後、別の画像をスキャンして図7(b)のスキャン帳票と類否帳票判定を行った結果、当該別の画像が図7(b)の類似帳票であると判定された。そして、図7(b)の画像において入力した情報が自動入力対象の情報として機能することにより、当該別の画像から取得した情報を登録済み帳票の保存領域に格納された状態を図9(g)に示す。"metadataArray"、"printedTextArray"、"handwrittenTextArray"、及び"simpleTextArray"には、図9(a)の同一名の要素及び同一種類の情報が含まれる。
ここまで本開示のシステム構成及び処理フローについて説明を行った。次に本開示において画像処理部432が行う類否帳票判定処理(S508の処理)について、説明を行う。
図10は、画像処理部432が行う類否帳票判定処理(S508の処理)の一例を示すフローチャートである。本処理フローにおける全てのステップは、画像処理部432が実行する。
実施形態1では本処理フローを開始する際、登録帳票と類似関係にあるかの判定基準によって決定される閾値(マッチング閾値)は予め固定された値を取ることにしているが、後述するS1012の処理において動的に値を決定してもよい。
S1000では、スキャン帳票の画像全体に対して、活字用の文字領域解析処理を実行して、簡易配置情報を取得し、処理はS1001に進む。活字用の文字領域解析処理は、高速に処理を実行することが可能である。画像内に活字しか存在しないことを想定した場合、活字における拘束条件を利用して、様々な処理を省略することが可能となるため、高速な処理を実現できる。拘束条件は、例えば、同じサイズのフォントが連続する場合が多い、文字の上下の行は平行など、活字が有する条件である。ただし、前述したように、手書き文字が存在する場合には適切なテキストブロックを取得することは困難である。
S1001では、データ管理部434によって管理される登録帳票群の中から登録帳票を1つ選択し、各種配置情報を取得する。S1001からS1003までの処理は、スキャン帳票と選択した登録帳票との間で、1対1で実施するマッチング処理である。
S1002では、S1001において選択した登録帳票が下記に記述する判定方法を用いてスキャン帳票とのマッチング対象であるか否かを判定する。選択した登録帳票がマッチング対象であると判定された場合には、処理はS1003に進む。選択した登録帳票がマッチング対象でないと判定された場合には、処理はS1004に進む。判定方法としては、スキャン帳票と登録帳票との間に、画像の幅又は高さに一定以上差異が存在する場合、又はアスペクト比に一定以上差異が存在する場合にはマッチング対象では無いと判定する。なお、判定方法は上記の方法に限定されない。例えば、スキャン帳票と登録帳票との間に、罫線領域の有無で差異が存在する場合にはマッチング対象外として判断される。なお、S1002の処理は、処理の高速化のための処理であり、精度に影響が生じ得るケースでは、全ての登録帳票をマッチング対象としても良い。
S1003では、スキャン帳票の簡易配置情報と登録帳票の配置情報とを利用して、マッチング処理を行い、処理はS1004に進む。マッチング処理の結果として、簡易マッチングスコアが算出される。このマッチング処理は、スキャン帳票又は登録帳票に手書き文字列が含まれている場合には精度が得られない場合があるが、スキャン帳票及び登録帳票に活字文字列しか含まれない場合には、十分な精度が得られる。帳票マッチング処理の詳細については後述する。
S1004では、すべての登録帳票が選択されたかを判定する。すべての登録帳票が選択されている場合には処理はS1005に進む。すべての登録帳票が選択されていない場合には処理はS1001に戻り、次の登録帳票を選択する。
S1005では、まず画像処理部432は、各登録帳票がスキャン帳票にある割合で類似していると判定するための閾値(候補抽出閾値)を決定する。候補抽出閾値はS1004までの処理結果を考慮して動的に決定してもよいし、予め固定の値を設定してもよい。
各登録帳票の簡易マッチングスコアが候補抽出閾値より高い登録帳票を抽出する、又は各登録帳票の簡易マッチングスコアの値及び配置情報を利用して算出した値が候補抽出閾値より高い登録帳票を抽出し、処理はS1006に進む。
ここで、S1005の処理において抽出される登録帳票群のサブセットは、最終的に、最も高いマッチングスコアとなる可能性がある登録帳票を含む必要がある。またS1003におけるマッチングは、手書き領域分離処理を行っていない状態においてマッチング処理を行っているため、手書き文字列が含まれる登録帳票に対して算出された簡易マッチングスコアには誤差が存在する可能性がある。誤差とは、手書き領域分離処理を行ってから行われるマッチング処理において算出されるマッチングスコアと簡易マッチングスコアとの差分である。この誤差により、抽出された登録帳票群のサブセットにおいてマッチングスコアの値が増加又は減少することにより、登録帳票のマッチングスコアの順序が入れ替わり、最も高いマッチングスコアになる登録帳票も入れ変わる可能性がある。
具体的な抽出方法の例について、説明をする。
抽出方法1では、Score_i > f(Score_x)となる登録帳票が抽出され、抽出された登録帳票から登録帳票群のサブセットが形成される。
抽出方法2では、Score_i > f(Score_x, Ratio_i)となる登録帳票が抽出され、抽出された登録帳票から登録帳票群のサブセットが形成される。
抽出方法3では、Score_i > f(Score_x, Ratio_i, Ratio_x)となる登録帳票が抽出され、抽出された登録帳票から登録帳票群のサブセットが形成される。
ここで、Score_iは、登録帳票iの簡易マッチングスコアである。ここでは、簡易マッチングスコアの値は0から1までの値であるとし、数値1が最も類似していることを意味する。登録帳票群の総数をNとした場合には、iは、1からNまでの整数をとる。Score_xは、最大の簡易マッチングスコアを有する登録帳票xの簡易マッチングスコアである。Ratio_iは、登録帳票iの手書き文字の割合である。手書き文字の割合は、手書き配置情報に含まれる文字列領域の数を手書き配置情報及び活字配置情報に含まれる文字列領域の数で除算すればよい。文字列領域の面積を考慮したい場合は、文字列領域の面積で重みをつけて、割合を算出する。Ratio_xは、最大の簡易マッチングスコアを有する登録帳票xの手書き文字の割合である。
f(引数群)は、引数群を入力とする関数である。
抽出方法1の場合は、f(Score_x) = Score_x - MaxErrorなどの関数が考えられる。これは、想定される最大誤差をMaxErrorとして定義し、その値をScore_xから引くことにより、順序の入れ替えが想定される下限の簡易マッチングスコア、即ち候補抽出閾値を求めている。これにより、この下限の簡易マッチングスコア(候補抽出閾値)よりも大きなScore_iを有する登録帳票を抽出する。簡易マッチングスコアの値が0から1までの値をとる場合には、MaxErrorは、0.1から0.3までの値などが想定される。MaxErrorがScore_xの値により変わることが想定される場合は、1次元LookUpテーブルを参照して値を算出するようなf(Score_x)を利用してもよい。つまり、f(引数群)の出力は、引数を利用した直接的な計算結果でも良いし、テーブルを参照した値でも良い。
抽出方法2の場合のf(引数群)は、Score_x及びRatio_iを引数としている。これは、簡易マッチングスコアの誤差は、手書き文字列の割合が大きいほど、大きくなる場合があることが想定されるためである。手書き文字列の割合が多いということは、正しい文字列領域となっていない文字列領域が多いため、ノイズとなる領域が多くなり、誤差の増加につながる。つまり、Ratio_iの値によって、想定される最大誤差が異なることになる。このような場合、Score_xの値だけに依存して、一律に抽出基準を決めるのではなく、Ratio_iの値に応じて、異なる簡易マッチングスコアの基準(候補抽出閾値)より高いマッチングスコアを有する登録帳票を抽出した方がよい。これにより、抽出された登録帳票が抽出方法1よりも少ない場合でも、適切な登録帳票が抽出されていることが期待できる。
抽出方法3の場合のf(引数群)は、抽出方法2の引数に追加して、Ratio_xも引数に追加している。これは、Score_x自体も誤差を含んでいる可能性があり、その誤差の度合いは、Ratio_xの値に依存するためである。Score_x自体の誤差も考慮して簡易マッチングスコアの基準(候補抽出閾値)を算出し、この値より高いマッチングスコアを有する登録帳票を抽出する。これにより、抽出された登録帳票が抽出方法1及び抽出方法2よりも少ない場合でも、適切な登録帳票が抽出されていることが期待できる。
なお、引数が多ければ、それだけ条件が複雑となり、適切なf(引数群)を設計するための設計工数が必要となるので、一概に、引数が多いほど的確な方法となるわけではない。また、ここで示した抽出方法は一例に過ぎない。2番目又は3番目に高い簡易マッチングスコアを有する登録帳票についても考慮して誤差を補正する方法なども考えられる。
さらに、S1012において、スキャン帳票が登録帳票と判定されるための閾値を超える可能性がある、簡易マッチングスコアを有する登録帳票が1つもない場合には、1つも登録帳票は抽出しないようにする。これは、必要のない手書き領域分離処理を行わないために必要な処理である。具体的には、Score_xが一定以下の場合には、f(引数群)を1以上として、どの帳票とも抽出されないようにすればよい。この際、他の引数を考慮しても良い。
S1006では、S1005において抽出された登録帳票群のサブセットの中に、所定以上の手書き文字列領域が含まれている登録帳票が存在するかの判定を行う。抽出された登録帳票群のサブセットすべてに手書き文字列領域が含まれていない場合には、順序が入れ替わる可能性がないので、そのままマッチングスコアを確定し、処理は1012に進む。この場合、手書き領域分離処理を行わないため、その分の計算コストを節約することが可能になる。また、全体の処理も早く終了することとなる。
抽出された登録帳票群のサブセットに手書き文字列領域が含まれている登録帳票がある場合は、処理はS1007に進む。ここで「所定以上の手書き文字列領域を含む」とは、S1005において手書き文字列領域が考慮されている場合は、少しでも手書き文字列領域が含まれていればよい。S1005において手書き文字列領域が考慮されていない場合は、ノイズ除去を目的として、数パーセント以上を所定以上の値として設定すればよい。
S1007では、S1005において抽出された登録帳票群のサブセットに複数の登録帳票が含まれているかを判定する。抽出された登録帳票群のサブセットに複数の登録帳票が含まれている場合は、処理はS1008に進む抽出された登録帳票群のサブセットに1つの登録帳票のみが含まれている場合は、処理はS1013に進む。抽出された登録帳票群のサブセットに1つの登録帳票のみが含まれている場合は、S1008以降の手書き領域分離処理を行う必要が無いので、処理コストを軽減することが可能となる。
S1008では、スキャン帳票の画像内に存在する領域を、手書き文字領域と非手書き領域に分離し、処理はS1009に進む。前述したように、この処理を精度よく行うためには、計算コストが高く、時間がかかる処理を適用する必要がある。
S1009では、S1008において分離した各領域に対して文字領域の解析を行う。この解析結果として、スキャン帳票の活字配置情報と手書き配置情報を取得し、処理はS1010に進む。
S1010では、S1005において抽出された登録帳票群のサブセットの中から登録帳票1つを抽出し、各種配置情報を取得し、処理はS1011に進む。S1010からS1012までの処理は、スキャン帳票と抽出した登録帳票との間で、1対1で実施するマッチング処理である。
S1011では、スキャン帳票の配置情報と登録帳票の配置情報を利用して、マッチング処理を行い、処理はS1012に進む。マッチングスコアの値は、簡易マッチングスコアからマッチング処理の結果として算出された標準マッチングスコアに更新される。本帳票マッチング処理の詳細については後述する。
S1012では、S1005において抽出された登録帳票がすべて、S1010において選択されたかを判定する。すべての抽出された登録帳票に対してS1010及びS1011の処理が実行されている場合には処理はS1013に進む。すべての抽出された登録帳票が選択されていない場合には処理をS1010に戻り、次の登録帳票の選択を行う。
S1013では、画像処理部432は、S1005において抽出された登録帳票のうち、どの登録帳票がマッチング閾値を超えているかを判定する。マッチング閾値を超えている登録帳票が1つ以上ある場合、画像処理部432は、スキャン帳票は最も高いマッチングスコアを有する登録帳票と同じ帳票であると判定する。
S1007において抽出された登録帳票群のサブセットに1つの登録帳票のみしか含まれない場合は、上述した手書き領域分離処理は行われない。この場合、画像処理部432は標準マッチングスコアではなく当該登録帳票の簡易マッチングスコアがマッチング閾値を超えているかを判定することにより類否判定を行う。当該登録帳票の簡易マッチングスコアがマッチング閾値を超えている場合は、画像処理部432は、スキャン帳票は当該登録帳票と同じ帳票であると判定する。
抽出された登録帳票のすべてがマッチング閾値未満である場合は、画像処理部432は、当該スキャン帳票は未登録帳票(未登録文書)であると判定する。
このような処理フローを採用することにより、スキャン帳票が活字しか記載されていない帳票である場合には、手書き領域分離処理を行わないで処理を終了する可能性が高い。これにより、計算コストの軽減、ユーザの待ち時間の軽減が期待できる。
同様に候補抽出閾値を超える登録帳票が1つの場合も手書き分離処理を行うことなく、当該登録帳票とスキャン帳票との類否判定が行われるので、計算コストは軽減される。
一方、スキャン帳票に手書きが記載されている可能性が高い場合には、手書き領域分離処理を行うため、類否帳票判定の精度の維持もすることが可能となる。
続いて、図11のフローチャートを用いて、画像処理部432が行う活字用領域解析結果のマッチング処理であるS1003の処理の詳細について説明する。本処理フローにおけるすべてのステップは、画像処理部432が実行する。
S1101では、位置合わせパラメータを推定し、処理はS1102に進む。スキャン帳票の簡易配置情報、及び登録帳票の活字配置情報のうち文字列領域のみを利用して、画像全体のシフト(平行移動)量を推定する例について説明する。
本来、スキャン帳票の活字配置情報を利用する方が正確な位置合わせパラメータの推定が期待できる。しかしながら、本ステップにおいては、手書き領域分離処理が、まだ行われていないため、スキャン帳票の簡易配置情報を利用して位置合わせパラメータの推定を行う。
まず、登録帳票の各文字列領域と対応関係の候補となるスキャン帳票の文字列領域との間で、ペアブロック候補群を決定する。ペアブロック候補群の決定方法について図12を用いて説明する。
図12は、登録帳票における文字列領域とスキャン帳票における文字列領域とを同じ座標系に描画したときの一部分を切り出した図である。図12において、実線の矩形1200は登録帳票の文字列領域を示し、破線の矩形1201、1202、及び1203は、登録帳票の文字列領域を示す矩形1200の周囲にあるスキャン帳票の文字列領域群を示している。また、図12において、一点鎖線の円1204は、登録帳票の文字列領域を示す矩形1200の左上頂点を中心に一定距離を半径とした範囲を示している。
ペアブロック候補群を決定するために、スキャン帳票の文字列領域群のうち、円1204の中に、左上頂点が入るものを探す。図12では、文字列領域を示す矩形1201及び1202が該当する。
次に、登録帳票の文字列領域を示す矩形1200と、スキャン帳票の文字列領域の矩形1201及び1202との間でオーバーラップ率を求める。オーバーラップ率は、登録帳票の文字列領域とスキャン帳票の文字列領域との左上頂点同士を合わせて、両文字列領域の共通部分の面積をまず算出する。そして、共通部分の面積/(両文字列領域のうち大きい方の面積)によって得られる値をオーバーラップ率とする。このようにして登録帳票の文字列領域とスキャン帳票の各文字列領域とのオーバーラップ率を求め、オーバーラップ率が一定条件以上の組合せをペアブロック候補群に加える。この際、一定条件は、例えば、対象となるスキャン帳票の文字列領域のオーバーラップ率が、最大オーバーラップ率に係数ηを乗算した値以上、かつ、所定の閾値以上であると設定すればよい。この場合、係数ηは最大オーバーラップ率と近いオーバーラップ率を有するスキャン帳票の文字列領域を候補に含めるために設定されているので、例えば0.5から0.8の範囲から選択された値であり、1.0未満の値であるとする。また、所定の閾値は最低ラインを規定するものであるので、例えば0.3から0.7の範囲から選択された値であり、1.0未満の値であるとする。図12の例であれば、スキャン帳票の文字列領域を示す矩形1201及びと1202のうち、登録帳票の文字列領域を示す矩形1200と形状の近い、スキャン帳票の文字列領域を示す矩形1201のみがペアブロック候補群に加えられる。
このようにして得られたペアブロック候補群について、ペアとなった登録帳票の文字列領域とスキャン帳票の文字列領域の左上頂点のX方向及びY方向の差分量(シフト量)を算出する。そして、シフト量ヒストグラムに投票する。このときのヒストグラムのビン(区間)の範囲は任意である。このように、ペアブロック候補群を決定し、シフト量ヒストグラムに投票するまでの処理を、登録帳票の各文字列領域に対して行い、最終的に得られたシフト量ヒストグラムから最大のピーク点となる位置を算出し、画像全体のシフト量とする。
なお、ノイズの影響が懸念される場合は、生成したシフト量ヒストグラムに対してスムージングを掛けてもよい。また、最大となるピーク点以外の局所的なピーク点についても、シフト量の候補として算出し、その中からシフト量を選んでもよい。
位置合わせのパラメータ推定については上記の方法に限る定されない。登録帳票の活字配置情報のうち、文字列領域のみではなく、罫線領域を利用して位置合わせをしてもよい。また、登録帳票の手書き配置情報を利用して、スキャン帳票の簡易配置情報において、手書きの可能性のある文字列領域を除去するようにしてもよい。画像全体のシフト(平行移動)に関する補正のみを行う例について説明したが、印刷及びスキャンのズレとして、倍率に関するズレが想定される場合には、シフト量だけでなく、倍率のズレも考慮した位置合わせを行ってもよい。
S1102では、S1101において推定した位置合わせパラメータに従って、スキャン帳票の簡易配置情報に含まれる各文字列領域の座標を補正することで、位置合わせされたスキャン帳票の文字列領域群を取得し、処理はS1103に進む。
S1103では、スキャン帳票の位置合わせ後の簡易配置情報と登録帳票の活字配置情報との間でマッチングを行い、類似度を表す簡易マッチングスコアを算出する。活字及び罫線などの印字領域は固定である場合が多い。そのため、登録帳票の活字配置情報を用いた、簡易マッチングスコアの算出では、文字列領域や罫線の配置の相関性が直接的に反映されるような方法で算出を行うことが望ましい。
以下では、活字配置情報のうち、文字列領域のみを利用して、簡易マッチングスコアを算出する例について説明する。まず、登録帳票に含まれる文字列領域の中から注目する文字列領域を選択する。続いて、登録帳票の注目文字列領域と対応関係にある、位置合わせ後のスキャン帳票における文字列領域の検索を実行する。
ここで、対応関係にある文字列領域とは、登録帳票の注目文字列領域と位置合わせ後のスキャン帳票の文字列領域群とを同じ座標系に描画した際に、登録帳票の注目文字列領域と重なりが生じる位置合わせ後のスキャン帳票の文字列領域のことを指す。この場合、対応関係にある文字列領域は1つであるとは限らず、複数見つかる場合もある。
次に、検索によって見つかった位置合わせ後のスキャン帳票の文字列領域と、登録帳票の注目文字列領域とのオーバーラップしている面積を求める。オーバーラップ面積を求める際には、位置合わせ後のスキャン帳票では文字列領域の位置合わせが済んでいるため、左上頂点を合わせるといった処理は不要である。
図13は、オーバーラップ面積を説明する図である。図13(a)の例では、実線の矩形で示す登録帳票の文字列領域1301と、破線の矩形で示す位置合わせ後のスキャン帳票の文字列領域1302とが重なっており、オーバーラップ面積は斜線領域1303の面積となる。また、図13(b)の例では、実線の矩形で示す登録帳票の文字列領域1304と、破線で示す位置合わせ後のスキャン帳票の2つの文字列領域1305及び1306とが重なっており、オーバーラップ面積は2つの斜線領域1307及び1308の合計値となる。
登録帳票の全文字列領域について注目して算出したオーバーラップ面積を合計し、総オーバーラップ面積OverlapAreaを求める。簡易マッチングスコアScore_sは、登録帳票の全文字列領域の総面積TotalArea_Lを用いて、以下の式(1)によって求める。
Score_s = OverlapArea / TotalArea_L・・・式(1)
ここで、登録帳票の文字列の総面積だけを用いるのは、スキャン帳票の文字列の総面積には、手書き領域の面積も含まれる可能性があり、適切なマッチングスコアにならない可能性があるためである。そこで、スキャン帳票の活字部分の文字列の総面積を推定することにより、下記のような式(2)~式(4)を用いて簡易マッチングスコアを求めることも可能である。
Score_s = OverlapArea / max(TotalArea_SS, TotalArea_L)・・・式(2)
Score_s = OverlapArea × 2 / (TotalArea_SS + TotalArea_L)・・・式(3)
Score_s = (OverlapArea / TotalArea_SS ) ×(OverlapArea / TotalArea_L)・・・式(4)
ここで、max(X,Y)は、XとYの大きい方の値をとる関数である。TotalArea_SSは、スキャン帳票の活字部分の文字列の総面積の推定値である。例えば、下記のような式(5)で求めることが可能である。
TotalArea_SS = TotalArea_S × (TotalArea_L / (TotalArea_L + TotalArea_LH)・・・式(5)
ここで、TotalArea_Sは、スキャン帳票の全文字列領域の総面積である。TotalArea_LHは、登録帳票の手書き配置情報に含まれる文字列の総面積である。TotalArea_Sは、簡易配置情報の文字列の面積であるため、手書き領域の面積が含まれている可能性がある。そこで、スキャン帳票の活字領域の割合が、登録帳票と同一であると仮定して、推定を行っている。この推定方法では精度が向上しない場合には、単純な式(1)を利用すればよい。
なお、簡易マッチングスコアの算出方法は上記に限定されない。例えば、配置情報のうち、文字列領域のみではなく、罫線領域を利用してもよい。以上が、簡易マッチングスコアの算出方法となる。
続いて、画像処理部432が行う領域分離後の文字領域解析結果でのマッチングS10011の詳細について、図14のフローチャートを用いて説明する。本処理フローにおけるすべてのステップは、画像処理部432が実行する。
S1401では、位置合わせパラメータを推定し、処理はS1402に進む。スキャン帳票の活字配置情報と、登録帳票の活字配置情報のうち、文字列領域のみを利用して、画像全体のシフト(平行移動)量を推定する例について説明する。本ステップでは、S1101の処理とは異なり、スキャン帳票の活字配置情報を利用することができるので、スキャン帳票に手書き文字列領域が含まれている場合であっても、正確な位置合わせパラメータの推定が期待できる。
位置合わせパラメータの推定方法自体は、S1101の推定方法において、スキャン帳票の簡易配置情報を利用する代わりに、スキャン帳票の活字配置情報を利用すればよい。なお、両方の帳票とも活字配置情報を利用しているので、S1101の推定方法において、スキャン帳票の活字配置情報と登録帳票の活字配置情報の関係を変えて、処理を実行してもよい。
S1402では、S1401において推定した位置合わせパラメータに従って、スキャン帳票の活字配置情報に含まれる各文字列領域の座標を補正することで、位置合わせされたスキャン帳票の文字列領域群を取得し、処理はS1403に進む。
S1403では、位置合わせを行った後のスキャン帳票の活字配置情報と登録帳票の活字配置情報との間でマッチングを行い、活字配置情報の類似度を表す活字マッチングスコアScore_pを算出し、処理はS1404に進む。S1403の処理では、S1103の処理とは異なり、スキャン帳票の活字配置情報を利用することができるため、スキャン帳票に手書き文字列領域が含まれている場合であっても、正確なマッチングスコアの算出が期待できる。
マッチングスコアの算出方法自体は、S1103の推定方法において、スキャン帳票の簡易配置情報を利用する代わりに、スキャン帳票の活字配置情報を利用すればよい。この際、TotalArea_SSの値は、推定値ではなく、スキャン帳票の活字配置情報に含まれる文字列の総面積を利用する。なお、両方の帳票とも活字配置情報を利用しているので、S1103の推定方法において、スキャン帳票の活字配置情報と登録帳票の活字配置情報の関係を変えて、処理を実行してもよい。
S1404では、S1401において推定した位置合わせパラメータに従って、スキャン帳票の手書き配置情報に含まれる各文字列領域の座標を補正することで、位置合わせされたスキャン帳票の手書き文字列領域群を取得し、処理はS1405に進む。
S1405では、位置合わせを行った後のスキャン帳票の手書き配置情報と登録帳票の手書き配置情報との間でマッチングを行い、手書き配置情報の類似度を表す手書きマッチングスコアScore_hwを算出し、処理はS1406に進む。手書きマッチングスコアの算出は、活字マッチングスコアの算出で利用した方法と比べて、文字列領域などの配置の相関性が直接的に反映されない方法を利用する。これは、同じ記入欄であっても実際に記入される位置や文字の大きさが変わったり、条件に該当する場合にのみ記入されたりと、手書き配置情報は活字配置情報と比べて変動する可能性が高いためである。
本実施形態では、手書き配置情報のうち、手書き文字列領域同士で重なりのある文字列領域数をカウントして、このカウントを利用して、手書きマッチングスコアを算出する例について説明する。
まず、位置合わせを行った後のスキャン帳票に含まれる手書き文字列領域の中から注目する手書き文字列領域を選択する。続いて、位置合わせを行った後のスキャン帳票の注目手書き文字列領域に対応関係にある、登録帳票における手書き文字列領域の検索を実行する。ここで、対応関係にある手書き文字列領域とは、位置合わせを行った後のスキャン帳票の注目手書き文字列領域と登録帳票の手書き文字列領域群とを同じ座標系に描画した際に、スキャン帳票の注目文字列領域と重なりが生じる登録帳票の手書き文字列領域を指す。この場合において、対応関係にある手書き文字列領域は1つであるとは限らず、複数見つかる場合もある。
スキャン帳票の全手書き文字列領域群について注目し、対応関係にある手書き文字列領域が見つかった注目手書き文字列領域の総数OverlapCountを算出する。手書きマッチングスコアScore_hwは、スキャン帳票の全手書き文字列領域数Count_Qと登録帳票の全手書き文字列領域数Count_Lを用いて、以下の式(6)によって求める。
Score_hw = OverlapCount × 2 / (Count_Q + Count_L)・・・式(6)
このように、対応関係にある手書き文字列領域を見つける際、注目手書き文字列領域の数を利用することにより、同一帳票において記入される位置や文字の大きさが変わったりしても、容易に対応関係にある手書き文字列領域を見つけることが可能となる。
一方で、重なりが生じたブロックすべてを無条件で対応関係にある手書き文字列領域としてしまうと、類似した配置ではない手書き配置情報同士でも手書きマッチングスコアが高くなってしまう可能性がある。
そこで、手書きマッチングスコアの算出において、手書き配置情報だけでなく、活字配置情報も利用して不用意にマッチングスコアが高くなり過ぎないように制約条件を設ける。具体例として、図15を用いて、活字配置情報を利用して減点対象のブロックを決定する方法について説明する。
図15(a)はスキャン帳票、図15(b)は登録帳票を表している。ここで、スキャン帳票の申込日の手書き文字列領域に注目した場合、その注目手書き文字列領域内の登録帳票の手書き文字列領域群及び活字文字列領域群を同じ座標系に描画した例を図15(c)に示す。一点鎖線で示す矩形1501は、スキャン帳票の注目手書き文字列領域である。実線の矩形1502、1503、及び1504は、それぞれ登録帳票内の日付における手書き文字列領域である。破線の矩形1505、1506、及び1507は、それぞれ登録帳票内の日付における活字文字列領域である。スキャン帳票の注目手書き文字列領域を示す矩形1501と登録帳票の手書き文字列領域を示す矩形1502、1503、及び1504とは重なっている。一方で、スキャン帳票の注目手書き文字列領域を示す1501は登録帳票の活字文字列領域を示す矩形1505及び1506とも大きく重なっている。このようにスキャン帳票の注目手書き文字列領域が登録帳票側の活字文字列領域にも大きく重なっている場合には、スキャン画像は当該登録帳票と同一帳票である可能性は低い。したがって、注目手書き文字列領域を示す矩形1501は対応文字列領域のブロックとしてではなく、減点対象としてカウントする。スキャン帳票の全手書き文字列領域群において減点対象としてカウントされた注目手書き文字列領域の総数をDeductionCountとすると、手書きマッチングスコアScore_hw は以下の式(7)によって求められる。
Score_hw = (OverlapCount - DeductionCount)× 2 / (Count_Q + Count_L)・・・式(7)
Score_hwは、0から1までの値を取るように規格化される。なお、手書きマッチングスコアの算出において、活字配置情報も利用してマッチングスコアが高くなり過ぎないように制約条件を設ける方法は上記の方法に限定されない。例えば、登録帳票の活字文字列領域と重なりのある注目手書き文字列領域について、減点対象とカウントするのではなく、単純に対応手書き文字列領域が見つかった数としてカウントしないだけでもよい。また、手書きマッチングスコアの算出方法についても、式(6)及び式(7)に限定されない。
S1406では、S1403の処理において求めた活字マッチングスコアScore_p及びS1405の処理において求めた手書きマッチングスコアScore_hwを統合した標準マッチングスコアScore_totalを算出する。本実施形態では、以下の式(8)で示すように、活字マッチングスコアと手書きマッチングスコアの重み付き線形和によって求める。
Score_total = W_p × Score_p + W_hw × Score_hw・・・式(8)
W_p及びとW_hwはそれぞれ、活字マッチングスコアに対する重み及び手書きマッチングスコアに対する重みである。活字マッチングスコアに対する重みW_p及び手書きマッチングスコアに対する重みW_hwは、例えば、W_p=0.8とW_hw=0.2のように、活字のマッチングスコアに対する重みを大きくする方が望ましい。これは、手書き帳票において、活字配置情報の方が安定して利用できる確率が高いためである。
また、それぞれの重みW_pとW_hwは、登録帳票ごとに変更してもよい。例えば、登録帳票における活字ブロック数が多いほど、活字マッチングスコアに対する重みW_pを上げるという方法が考えられる。また、運用の過程で重みを変更してもよい。以上が、標準マッチングスコアの算出方法の説明である。
実施形態1では、スキャン帳票に活字帳票も含まれることを想定して、必要性が高いときにのみ、手書き領域分離処理を行うフローについて説明を行った。これにより、計算コストの軽減及びユーザの待ち時間の軽減が可能となる。一方、スキャン帳票に手書きが記載されている可能性が高い場合には、手書き領域分離を行うため、類否帳票判定の精度の維持することが可能となる。
以下に、図16及び図17を参照して実施形態1の効果を説明する。
図16は、スキャン帳票1から簡易配置情報の文字列領域を切り出した状態においてスキャン帳票1と登録帳票A、登録帳票B及び登録帳票Cとの各類似度が手書き領域分離処理を行うかの基準値である候補抽出閾値αを超えている場合の一例を示している。また登録帳票とマッチングしたかを判定するための閾値は、マッチング閾値βで表されている。
図16(a)は、スキャン帳票1の簡易配置情報の文字列領域(簡易文字列領域)を切り出した状態を表す「状態1」を示している。
また、登録帳票は、「活字文字列領域」と「手書き文字列領域」とに分離されている。登録帳票の例として、登録帳票Aを図16(c)に、登録帳票Bを図16(d)に、登録帳票Cを図16(e)に示している。
まず、スキャン帳票1の状態1と各登録帳票との間で簡易マッチングを行い、スキャン帳票1の状態1と登録帳票A、登録帳票B、及び登録帳票Cとの類似度の結果を図16(f)において丸印で表す。図16(f)に示すように、簡易マッチングでは、状態1との類似度は、登録帳票A、登録帳票C、登録帳票Bの順番になっている。登録帳票Aの活字文字列領域が最もスキャン帳票1の状態1に近いので、登録帳票Aが最も高い類似度を示している。
登録帳票A、登録帳票B、及び登録帳票Cはすべて候補抽出閾値αを超えているので、次にスキャン帳票1に対して手書き領域分離処理が実行され、その結果を図16(b)に示す。図16(b)に示される結果を「状態2」と称する。状態2では、図16(b)の右下の部分が活字文字列領域から手書き文字列領域へと判定が変更されている。
手書き領域分離処理を行った後のスキャン帳票1の状態2と登録帳票A、登録帳票B、及び登録帳票Cとの類似度の結果を図16(f)において四角で表す。またマッチングをしているかの基準値であるマッチング閾値βで表す。
図16(f)に示すように、状態2との類似度は、登録帳票B、登録帳票A、登録帳票Cの順番になっている。これは、登録帳票Bの右下部分が手書き文字列領域であるので、類似度の値が上昇したためである。また、マッチング閾値βを超えているのも登録帳票Bだけであるので、スキャン帳票1は登録帳票Bにマッチングしていると判定される。
このように、手書き領域分離処理を行うと、より精確な類似度を判定することが可能となる。
図17は、スキャン帳票2から簡易配置情報の文字列領域を切り出した状態において、スキャン帳票2と登録帳票Dとの類似度のみが手書き領域分離処理を行うかの基準値である候補抽出閾値αを超えている場合の一例を示している。スキャン帳票2と登録帳票E及び登録帳票Fとの各類似度は候補抽出閾値αより低い値である。
図17(a)は、スキャン帳票2の簡易配置情報の文字列領域(簡易文字列領域)を切り出した状態を表す「状態3」を示している。
また、登録帳票は、「活字文字領域」と「手書き文字列領域」とに分離されている。登録帳票の例として、登録帳票Dを図17(b)に、登録帳票Eを図17(c)に、登録帳票Fを図17(d)に示している。
まず、スキャン帳票2の状態3と各登録帳票との間で簡易マッチングを行い、スキャン帳票2の状態3と登録帳票D、登録帳票E、及び登録帳票Fとの類似度の結果を図17(f)において丸印で表す。図17(f)に示すように、状態3との類似度は、登録帳票D、登録帳票E、登録帳票Fの順番になっている。また登録帳票Dとの類似度のみが候補抽出閾値αを超えている。これは、登録帳票Dの活字文字列領域がスキャン帳票2の状態3に最も近いためである。
候補抽出閾値αを超えている登録帳票は登録帳票Dのみである。S1007の処理及びS1013の処理の項で説明したように、簡易マッチングスコアが候補抽出閾値αを超える登録帳票が1つしか存在しない場合は、処理時間がかかる手書き領域分離処理は行われない。類似度がマッチング閾値βを超えるか否かの判定も簡易マッチングスコアに基づく類似度を用いて実行される。
この例の場合、簡易マッチングスコアに基づく類似度である登録帳票Dの類似度はマッチング閾値βよりも高いので、スキャン帳票2は登録帳票Dにマッチングしていると判定される。
図17に示される例のように、候補抽出閾値αを超えている登録帳票が1つのみの場合は、手書き領域分離処理を実行することなく、スキャン帳票に類似する登録帳票を決定できるので、処理負荷を軽減し、かつ、処理速度を早めることが可能になる。
<実施形態2>
実施形態1では、スキャン帳票の簡易配置情報と、登録帳票の活字配置情報とを利用して、1回目の簡易マッチング処理を行う例について説明した。しかしながら、登録帳票の手書き配置情報及び簡易配置情報を活用していない。これらの情報を活用することにより、簡易マッチングスコアの誤差が減らすることができれば、S1005の処理において考慮すべき誤差量が減少する。したがって、本来抽出対象とはならない登録帳票が登録帳票群のサブセットに抽出されるのを抑制することが可能となる。上記抑制が可能になると、S1007の処理において手書き領域分離処理を行う可能性のある登録帳票群のサブセットの数が減少し、処理コストが減少し、処理時間も削減される。そこで、登録帳票の手書き配置情報及び簡易配置情報を活用して、より精度の高い統合簡易マッチングスコアを算出する方法を以下に説明する。
なお、実施形態2においては、実施形態1からの差分を中心に説明する。特に明記しない部分については実施形態1と同じ構成が採用され、同一の処理が実行される。
図18は、実施形態2における画像処理部432が行う活字用領域解析結果のマッチング処理(S1003の処理)のフローチャートである。本処理フローにおけるすべてのステップは、画像処理部432が実行する。以下に、図11に示したフローチャートとの差異について説明する。
S1801からS1803までの処理は、S1101からS1103までの処理と同一な処理であり、説明を省略する。なお、S1803の出力は、簡易マッチングスコアではなくて、簡易活字マッチングスコアScore_p_sである。
S1804では、位置合わせを行った後のスキャン帳票の簡易配置情報と登録帳票の手書き配置情報との間でマッチング処理を行い、両者の類似度を表す簡易手書きマッチングスコアScore_hwを算出し、処理はS1805に進む。
簡易手書きマッチングスコアの算出は、簡易活字マッチングスコアの算出で利用した方法と比べて、文字列領域などの配置の相関性が直接的に反映されない方法を利用する。これは、同じ記入欄であっても実際に記入される位置や文字の大きさが変わったり、条件に該当する場合にのみ記入されたりと、手書き配置情報は活字配置情報と比べて変動する可能性が高いためである。また、簡易手書き配置情報に含まれる手書き領域は、手書き文字列領域が活字文字列領域と結合したり、手書き文字列領域が分割されたりして、正常な文字列領域となっていない可能性がある。
実施形態2では、登録帳票の手書き配置情報の文字列領域のうち、スキャン帳票の簡易手書き配置情報に含まれる文字列領域と重なりのあった文字列領域数をカウントして、このカウントを利用して、簡易手書きマッチングスコアを算出する例について説明する。
まず、登録帳票の手書き配置情報に含まれる手書き文字列領域の中から注目手書き文字列領域を選択する。続いて、登録帳票の注目手書き文字列領域と対応関係にある、位置合わせを行った後のスキャン帳票における簡易配置情報の文字列領域の検索を実行する。対応関係にある文字列領域とは、登録帳票の注目手書き文字列領域と位置合わせした後のスキャン帳票の簡易配置情報の文字列領域群とを同じ座標系に描画した際に登録帳票の注目手書き文字列領域と重なりがあるスキャン帳票の簡易配置情報の文字列領域を指す。この場合、対応関係にある文字列領域は1つとは限らず、複数見つかる場合もある。
次に、見つかった対応文字列領域の特性を分析する。対応関係にある文字列領域は、スキャン帳票の簡易配置情報の文字列領域であり、本当に手書き文字列領域であるかは分からない。そこで、対応文字列領域の特性を分析して、正常な手書き文字列領域である可能性が高くない対応領域は無効とする。
例えば、対応関係にある文字列領域が、S1803において登録帳票の活字文字列領域と対応関係にあるとしてマッチングスコア計算に利用されていた場合には、活字領域の可能性があるため、当該対応関係にある文字列領域は無効領域とする。また、対応関係にある文字列領域と登録帳票の簡易配置情報の文字列領域とを同じ座標系に描画した際に、対応文字列領域に類似した簡易配置情報の文字列領域が存在しない場合も当該対応関係にある文字列領域は無効領域とする。これは、もし同一種類の帳票であった場合には、正常な文字列領域抽出ができていない領域であり、活字領域が混入している可能性があるためである。また、既に他の注目手書き文字列領域の対応領域と判定されていた場合も当該対応関係にある文字列領域は無効領域とする。これは、二重カウントを防ぐためである。なお、これ以外の特性を利用して、当該対応関係にある文字列領域を無効領域としてもよい。また、上記で説明をした一部の条件だけを利用してもよい。
続いて、登録帳票の全手書き文字列領域群について注目し、無効領域を削除した後に、対応関係にある手書き文字列領域が見つかった注目手書き文字列領域の総数OverlapCountを算出する。簡易手書きマッチングスコアScore_hw_sは、登録帳票の全手書き文字列領域数Count_Lを用いて、以下の式(9)によって求める。
Score_hw_s = OverlapCount / (Count_L)・・・式(9)
このように、対応関係にある文字列領域が見つかった注目手書き文字列領域の数を利用することにより、同一帳票において記入される位置や文字の大きさが変わったりしても、対応関係にある文字列領域を見つけることが可能となる。さらに、対応関係にある文字列領域の特性を分析して、一部の領域を無効領域とすることにより精度を向上させることが可能となる。なお、簡易手書きマッチングスコアの算出方法については、式(9)に限定されない。
S1805では、S1803の処理において求められた簡易活字マッチングスコアScore_p_s と、S1804において求められた手書きマッチングスコアScore_hw_sとを統合した統合簡易マッチングスコアScore_isを算出する。統合簡易マッチングスコアScore_isは、以下の式(10)に示すように、簡易活字マッチングスコアと簡易手書きマッチングスコアとの重み付き線形和によって求める。
Score_is = W_p_s × Score_p_s + W_hw_s × Score_hw_s・・・式(10)
W_p_s及びW_hw_sはそれぞれ、簡易活字マッチングスコアに対する重み及び簡易手書きマッチングスコアに対する重みである。簡易活字マッチングスコアに対する重みW_p_s及び簡易手書きマッチングスコアに対する重みW_hw_sは、例えば、W_p_s=0.8及びW_hw_s=0.2のように、簡易活字マッチングスコアに対する重みを大きくする方が望ましい。これは、手書き帳票において、活字配置情報の方が安定して利用できる確率が高いためである。また、それぞれの重みW_p_s及びW_hw_sは、登録帳票ごとに変更してもよい。例えば、登録帳票における活字文字列領域数が多いほど、活字マッチングスコアに対する重みW_p_sを上げるという方法が考えられる。また、運用の過程で重みを変更してもよい。
以上が、実施形態2における統合簡易マッチングスコアの算出方法である。このように、登録帳票の手書き配置情報及び簡易配置情報も活用することにより、より詳細な分析をして、統合簡易マッチングスコアを算出することが可能となる。
これにより、登録帳票及びスキャン帳票において活字文字列領域の形状が類似している場合でも、手書き領域の形状が大きく異なる帳票同士の統合簡易マッチングスコアを低下させることが可能となる。
逆に、登録帳票及びスキャン帳票において活字文字列領域の形状が少し異なっている場合でも、手書き領域の形状が非常に類似している帳票同士の統合簡易マッチングスコアを上昇させることが可能となる。
これにより、簡易マッチングスコアの誤差を削減することが可能となる。また、S1005の処理において考慮すべき誤差量が減少するので、本来抽出対象とはならない登録帳票が抽出されるのを抑制することが可能となる。S1007の処理において、手書き領域分離処理を行う可能性が減少し、処理コスト及び処理時間がより一層削減される。
(その他の実施形態)
本開示は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (17)

  1. 活字と手書き文字とが混在した文書の類否判定を行う画像処理装置であって、
    前記文書をスキャンして取得されたスキャン文書に含まれる文字列領域を特定する特定手段と、
    前記特定手段が特定した前記文字列領域を用いて、予め登録された登録済み文書と前記スキャン文書との類似度を算出する算出手段と、
    前記算出手段が算出した第1の類似度が第1の閾値を超える登録済み文書を前記予め登録された登録済み文書の中から抽出する抽出手段と、
    前記抽出手段によって抽出された前記第1の類似度が第1の閾値を超える登録済み文書のうち、前記算出手段が算出した第2の類似度が第2の閾値を超える前記登録済み文書を、前記スキャン文書に類似する文書として決定する決定手段と、
    を備えることを特徴とする画像処理装置。
  2. 前記算出手段は、
    前記第1の類似度の算出には、前記スキャン文書に対して活字用の文字領域解析を行って得られた前記スキャン文書の簡易配置情報を用い、
    前記第2の類似度の算出には、
    前記抽出手段によって複数の前記登録済み文書が抽出された場合、前記スキャン文書に対して手書き領域分離を行って得られた前記スキャン文書の活字配置情報及び手書き配置情報を用い、
    前記抽出手段によって1つの前記登録済み文書が抽出された場合、前記スキャン文書に対して活字用の文字領域解析を行って得られた前記スキャン文書の簡易配置情報を用いる、
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記第1の閾値は前記算出手段が算出した前記第1の類似度に応じて決定される、ことを特徴とする請求項1に記載の画像処理装置。
  4. 前記第2の閾値は前記登録済み文書が前記スキャン文書と類似関係にあるかの判定基準によって決定される、ことを特徴とする請求項1に記載の画像処理装置。
  5. 前記スキャン文書に対して活字用の文字領域解析が実行される場合、前記登録済み文書との位置合わせを行った前記スキャン文書の前記簡易配置情報及び前記登録済み文書の活字配置情報に基づいて前記第1の類似度又は前記第2の類似度を算出する、ことを特徴とする請求項2に記載の画像処理装置。
  6. 前記スキャン文書に対して手書き領域分離が実行される場合、前記スキャン文書の前記活字配置情報及び前記スキャン文書の前記手書き配置情報を用いた標準マッチングスコアに基づいて前記第2の類似度を算出する、ことを特徴とする請求項2に記載の画像処理装置。
  7. 前記標準マッチングスコアは、活字マッチングスコアと手書きマッチングスコアとの重み付き線形和により算出される、ことを特徴とする請求項6に記載の画像処理装置。
  8. 前記活字マッチングスコアの重みは前記手書きマッチングスコアの重みより大きい、ことを特徴とする請求項7に記載の画像処理装置。
  9. 前記活字マッチングスコアは、前記登録済み文書との位置合わせを行った前記スキャン文書の前記活字配置情報及び前記登録済み文書の活字配置情報に基づいて算出される、ことを特徴とする請求項7に記載の画像処理装置。
  10. 前記手書きマッチングスコアは、前記登録済み文書との位置合わせを行った前記スキャン文書の前記手書き配置情報と前記登録済み文書との間で対応関係にある文字列領域の総数、前記登録済み文書の全手書き文字列領域数、及び前記スキャン文書の全手書き文字列領域数に基づいて算出されることを特徴とする請求項7に記載の画像処理装置。
  11. 前記スキャン文書に対して活字用の文字領域解析が実行される場合、前記スキャン文書の前記簡易配置情報、前記登録済み文書の活字配置情報及び前記登録済み文書の手書き配置情報を用いた統合簡易マッチングスコアに基づいて前記第1の類似度又は前記第2の類似度を算出する、ことを特徴とする請求項2に記載の画像処理装置。
  12. 前記統合簡易マッチングスコアは、簡易活字マッチングスコアと簡易手書きマッチングスコアとの重み付き線形和により算出される、ことを特徴とする請求項11に記載の画像処理装置。
  13. 前記簡易活字マッチングスコアの重みは前記簡易手書きマッチングスコアの重みより大きい、ことを特徴とする請求項12に記載の画像処理装置。
  14. 前記簡易活字マッチングスコアは、前記登録済み文書との位置合わせを行った前記スキャン文書の前記簡易配置情報及び前記登録済み文書の活字配置情報に基づいて算出される、ことを特徴とする請求項12に記載の画像処理装置。
  15. 前記簡易手書きマッチングスコアは、前記登録済み文書との位置合わせを行った前記スキャン文書の前記簡易配置情報と前記登録済み文書の手書き配置情報とが重なり合う手書き文字列領域の総数、及び前記登録済み文書の全手書き文字列領域数に基づいて算出される、ことを特徴とする請求項12に記載の画像処理装置。
  16. 活字と手書き文字とが混在した文書の類否判定を行う画像処理装置の制御方法であって、
    前記文書をスキャンして取得されたスキャン文書に含まれる文字列領域を特定するステップと、
    前記特定するステップにおいて特定された前記文字列領域を用いて、予め登録された登録済み文書と前記スキャン文書との類似度を算出するステップと、
    前記算出するステップにおいて算出された第1の類似度が第1の閾値を超える登録済み文書を前記予め登録された登録済み文書の中から抽出するステップと、
    前記抽出するステップにおいて抽出された前記第1の類似度が第1の閾値を超える登録済み文書のうち、前記算出するステップにおいて算出された第2の類似度が第2の閾値を超える前記登録済み文書を、前記スキャン文書に類似する文書として決定するステップと、
    を備えることを特徴とする画像処理装置の制御方法。
  17. コンピュータを、請求項1乃至請求項15のいずれか一項に記載の画像処理装置として機能させるためのプログラム。
JP2022135700A 2022-08-29 2022-08-29 画像処理装置、画像処理装置の制御方法、及びプログラム Pending JP2024032186A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022135700A JP2024032186A (ja) 2022-08-29 2022-08-29 画像処理装置、画像処理装置の制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022135700A JP2024032186A (ja) 2022-08-29 2022-08-29 画像処理装置、画像処理装置の制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2024032186A true JP2024032186A (ja) 2024-03-12

Family

ID=90193113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022135700A Pending JP2024032186A (ja) 2022-08-29 2022-08-29 画像処理装置、画像処理装置の制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2024032186A (ja)

Similar Documents

Publication Publication Date Title
JP4533273B2 (ja) 画像処理装置及び画像処理方法、プログラム
JP5042562B2 (ja) 画像処理装置、手書き情報認識方法、手書き情報認識プログラム
US11616884B2 (en) Image processing system for computerizing document, control method thereof, and storage medium
JP2019149788A (ja) 画像処理装置、および画像処理装置の制御方法とプログラム
JP2004265384A (ja) 画像処理システム及び情報処理装置、並びに制御方法及びコンピュータプログラム及びコンピュータ可読記憶媒体
US11463594B2 (en) Image processing apparatus for inputting characters using touch panel, control method thereof and storage medium
US11908215B2 (en) Information processing apparatus, information processing method, and storage medium
US11252287B2 (en) Image processing apparatus that displays guidance for user operation, control method thereof and storage medium
JP2019057174A (ja) スキャン画像から文字情報を取得する画像処理装置、画像処理方法、及びプログラム
US20220201146A1 (en) Information processing apparatus, information processing system, control method of the same, and storage medium
US11265431B2 (en) Image processing apparatus for inputting characters using touch panel, control method thereof and storage medium
US11393234B2 (en) Image processing system for computerizing document, control method thereof, and storage medium
US11575799B2 (en) Image processing apparatus for setting property including character strings and separators to scanned image, control method thereof and storage medium
JP2019153919A (ja) 画像処理装置、その制御方法、及びプログラム
JP2024032186A (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
JP2023085950A (ja) 画像処理装置、画像処理方法及びプログラム
US11620840B2 (en) Image processing apparatus for extracting a desired character string from a scanned image
JP2024034778A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
US20220319218A1 (en) Image processing apparatus, image processing system, control method thereof, and storage medium
JP2023054708A (ja) 情報処理装置、文書分割方法、及びプログラム
JP2019159420A (ja) 画像処理装置、制御方法、およびそのプログラム
JP2024034740A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP7124859B2 (ja) データ出力システム、情報処理システム、データ出力方法、プログラム
JP2022045011A (ja) 画像処理装置、画像処理装置の制御方法およびプログラム
JP2022189109A (ja) 画像処理装置、画像処理方法およびプログラム