JP2023085950A - 画像処理装置、画像処理方法及びプログラム - Google Patents

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

Info

Publication number
JP2023085950A
JP2023085950A JP2021200280A JP2021200280A JP2023085950A JP 2023085950 A JP2023085950 A JP 2023085950A JP 2021200280 A JP2021200280 A JP 2021200280A JP 2021200280 A JP2021200280 A JP 2021200280A JP 2023085950 A JP2023085950 A JP 2023085950A
Authority
JP
Japan
Prior art keywords
image
text block
similarity
registered document
handwritten
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
JP2021200280A
Other languages
English (en)
Inventor
崇 宮内
Takashi Miyauchi
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 JP2021200280A priority Critical patent/JP2023085950A/ja
Publication of JP2023085950A publication Critical patent/JP2023085950A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Character Input (AREA)
  • Character Discrimination (AREA)

Abstract

Figure 2023085950000001
【課題】手書き文字を含む帳票において高精度な帳票判別を実現する。
【解決手段】画像処理装置は、読取画像及び登録済み文書画像を、手書き文字を含む画像と手書き文字以外の画像とに分離する画像分離部と、手書き文字以外の画像から第一テキストブロックを検出する第一テキストブロック検出部と、手書き文字を含む画像から第二テキストブロックを検出する第二テキストブロック検出部と、読取画像が登録済み文書画像に該当するか否かを識別する識別部と、を有する。識別部は、第一テキストブロックを用いて読取画像と登録済み文書画像との全体位置合わせを行い、読取画像及び登録済み文書画像の第一テキストブロックに関する第一類似度と読取画像及び登録済み文書画像の第二テキストブロックに関する第二類似度とを算定し、第一類似度及び第二類似度を用いて読取画像が登録済み文書画像に該当するか否かを判定する。
【選択図】図12

Description

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

Claims (11)

  1. 手書き文字を含む原稿から読み取られた読取画像の処理をする画像処理装置であって、
    前記読取画像及び登録済み文書画像を、手書き文字を含む画像と手書き文字以外の画像とに分離する画像分離部と、
    前記手書き文字以外の画像から第一テキストブロックを検出する第一テキストブロック検出部と、
    前記手書き文字を含む画像から第二テキストブロックを検出する第二テキストブロック検出部と、
    前記第一テキストブロックと前記第二テキストブロックとを用いて、前記読取画像が登録済み文書画像に該当するか否かを識別する識別部と、を有し、
    前記識別部は、
    前記第一テキストブロックを用いて、前記読取画像と前記登録済み文書画像との全体位置合わせを行い、
    前記読取画像の第一テキストブロックと前記登録済み文書画像の第一テキストブロックとが類似する値である第一類似度を算定し、
    前記読取画像の第二テキストブロックと前記登録済み文書画像の第二テキストブロックとが類似する値である第二類似度を算定し、
    前記第一類似度及び前記第二類似度を用いて、前記読取画像が登録済み文書画像に該当する否かを判定する
    ことを特徴とする画像処理装置。
  2. 前記識別部は、前記第一類似度を算定する場合は、前記第二類似度を算定する場合よりも、厳密な算定基準を用いる
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記識別部は、前記第一類似度と前記第二類似度とのそれぞれに、異なる重み付けをすることで、前記読取画像が登録済み文書画像に該当するか否かを判定する
    ことを特徴とする請求項1または2に記載の画像処理装置。
  4. 前記識別部は、前記第一類似度の重みを前記第二類似度の重みよりも大きくする
    ことを特徴とする請求項3に記載の画像処理装置。
  5. 前記識別部は、前記第一類似度の算定結果に基づいて、前記第二類似度の算定を行うか否かを決定する
    ことを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
  6. 前記識別部は、前記読取画像の第二テキストブロックと前記登録済み文書画像の第二テキストブロックとが重なった場合には前記第二類似度を加算し、前記読取画像の第二テキストブロックと前記登録済み文書画像の第一テキストブロックとが重なった場合には前記第二類似度を減算する
    ことを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
  7. 前記手書き文字以外の画像から罫線を検出する罫線検出部を有し、
    前記識別部は、前記読取画像の第二テキストブロックと前記登録済み文書画像の第二テキストブロックとが重なった場合であっても、前記罫線をまたいで重なった場合には前記第二類似度を加算しない
    ことを特徴とする請求項6に記載の画像処理装置。
  8. 前記登録済み文書画像の第二テキストブロックから前記読取画像における第二テキストブロックの出現範囲を推定する範囲推定部を有し、
    前記識別部は、前記出現範囲と前記読取画像の第二テキストブロックとが重なった場合に前記第二類似度を加算する
    ことを特徴とする請求項1乃至7のいずれか1項に記載の画像処理装置。
  9. 前記手書き文字以外の画像から罫線を検出する罫線検出部を有し、
    前記範囲推定部は、前記登録済み文書画像の第一テキストブロックと前記罫線とに基づいて、前記出現範囲を推定する
    ことを特徴とする請求項8に記載の画像処理装置。
  10. 手書き文字を含む原稿から読み取られた読取画像の処理をする画像処理方法であって、
    前記読取画像及び登録済み文書画像を、手書き文字を含む画像と手書き文字以外の画像とに分離する画像分離工程と、
    前記手書き文字以外の画像から第一テキストブロックを検出する第一テキストブロック検出工程と、
    前記手書き文字を含む画像から第二テキストブロックを検出する第二テキストブロック検出工程と、
    前記第一テキストブロックと前記第二テキストブロックとを用いて、前記読取画像が登録済み文書画像に該当するか否かを識別する識別工程と、を有し、
    前記識別工程では、
    前記第一テキストブロックを用いて、前記読取画像と前記登録済み文書画像との全体位置合わせを行い、
    前記読取画像の第一テキストブロックと前記登録済み文書画像の第一テキストブロックとが類似する値である第一類似度を算定し、
    前記読取画像の第二テキストブロックと前記登録済み文書画像の第二テキストブロックとが類似する値である第二類似度を算定し、
    前記第一類似度及び前記第二類似度を用いて、前記読取画像が登録済み文書画像に該当する否かを判定する
    ことを特徴とする画像処理方法。
  11. 手書き文字を含む原稿から読み取られた読取画像の処理をコンピュータに実行させるプログラムであって、
    前記読取画像及び登録済み文書画像を、手書き文字を含む画像と手書き文字以外の画像とに分離する画像分離工程と、
    前記手書き文字以外の画像から第一テキストブロックを検出する第一テキストブロック検出工程と、
    前記手書き文字を含む画像から第二テキストブロックを検出する第二テキストブロック検出工程と、
    前記第一テキストブロックと前記第二テキストブロックとを用いて、前記読取画像が登録済み文書画像に該当するか否かを識別する識別工程と、を有し、
    前記識別工程では、
    前記第一テキストブロックを用いて、前記読取画像と前記登録済み文書画像との全体位置合わせを行い、
    前記読取画像の第一テキストブロックと前記登録済み文書画像の第一テキストブロックとが類似する値である第一類似度を算定し、
    前記読取画像の第二テキストブロックと前記登録済み文書画像の第二テキストブロックとが類似する値である第二類似度を算定し、
    前記第一類似度及び前記第二類似度を用いて、前記読取画像が登録済み文書画像に該当する否かを判定する
    ことを特徴とするプログラム。
JP2021200280A 2021-12-09 2021-12-09 画像処理装置、画像処理方法及びプログラム Pending JP2023085950A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021200280A JP2023085950A (ja) 2021-12-09 2021-12-09 画像処理装置、画像処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021200280A JP2023085950A (ja) 2021-12-09 2021-12-09 画像処理装置、画像処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2023085950A true JP2023085950A (ja) 2023-06-21

Family

ID=86775825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021200280A Pending JP2023085950A (ja) 2021-12-09 2021-12-09 画像処理装置、画像処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2023085950A (ja)

Similar Documents

Publication Publication Date Title
JP5181888B2 (ja) グラフィカルユーザインターフェースを生成する方法及びシステム
JP5095535B2 (ja) 画像処理方法、画像処理システム、画像処理装置及びプログラム
US11616884B2 (en) Image processing system for computerizing document, control method thereof, and storage medium
JP5042562B2 (ja) 画像処理装置、手書き情報認識方法、手書き情報認識プログラム
US11843732B2 (en) Image processing apparatus for inputting characters using touch panel, control method thereof and storage medium
JP2019149788A (ja) 画像処理装置、および画像処理装置の制御方法とプログラム
US11252287B2 (en) Image processing apparatus that displays guidance for user operation, control method thereof and storage medium
US11908215B2 (en) Information processing apparatus, information processing method, and storage medium
JP2019057174A (ja) スキャン画像から文字情報を取得する画像処理装置、画像処理方法、及びプログラム
US11265431B2 (en) Image processing apparatus for inputting characters using touch panel, control method thereof and storage medium
JP2022096218A (ja) 情報処理装置、情報処理システム、その制御方法及びプログラム
US11647139B2 (en) Image processing apparatus, image processing system, 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
US20230156138A1 (en) Information processing apparatus, method of controlling information processing apparatus, and storage medium
JP2023085950A (ja) 画像処理装置、画像処理方法及びプログラム
US20220319218A1 (en) Image processing apparatus, image processing system, control method thereof, and storage medium
JP2024032186A (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
US11620840B2 (en) Image processing apparatus for extracting a desired character string from a scanned image
JP2024034740A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP2022045011A (ja) 画像処理装置、画像処理装置の制御方法およびプログラム
US20230273952A1 (en) Image processing apparatus, image processing method, and storage medium
JP2024034778A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP2023054708A (ja) 情報処理装置、文書分割方法、及びプログラム
JP2021144673A (ja) 画像処理装置、画像処理方法、およびプログラム