JP2024035965A - 情報処理装置、情報処理装置の制御方法、およびプログラム - Google Patents

情報処理装置、情報処理装置の制御方法、およびプログラム Download PDF

Info

Publication number
JP2024035965A
JP2024035965A JP2022140624A JP2022140624A JP2024035965A JP 2024035965 A JP2024035965 A JP 2024035965A JP 2022140624 A JP2022140624 A JP 2022140624A JP 2022140624 A JP2022140624 A JP 2022140624A JP 2024035965 A JP2024035965 A JP 2024035965A
Authority
JP
Japan
Prior art keywords
handwritten
area
image
printed
print
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
JP2022140624A
Other languages
English (en)
Inventor
拓也 小川
Takuya Ogawa
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 JP2022140624A priority Critical patent/JP2024035965A/ja
Publication of JP2024035965A publication Critical patent/JP2024035965A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Character Discrimination (AREA)

Abstract

【課題】文書画像を活字画像および手書き文字画像に分離する場合に、活字を手書き文字だと誤判定し、本来は活字である文字が活字画像に含まれず、手書き文字画像に含まれてしまう場合あった。【解決手段】画像処理サーバ103が、画像処理装置101でスキャンされた文書画像上の手書き画素を手書き画像として抽出して手書き領域を取得し(S322、S323)、前記手書き画像に基づいて前記文書画像上の活字画素を活字画像として抽出して活字領域を取得し(S324、S325)、前記手書き領域と近接する前記活字領域、および、前記手書き領域と重なる前記活字領域を探索し(S364)、前記手書き領域と、前記探索した活字領域のそれぞれの高さに基づいて、前記手書き領域および該領域に属する前記手書き画像内の手書き画素を、前記活字領域および該領域に属する前記活字領域内の活字画素に補正する(S365~S366)。【選択図】図3B

Description

本発明は、情報処理装置、情報処理装置の制御方法、およびプログラムに関する。
近年、コンピュータの普及に伴う労働環境の変化により、業務帳票の電子化が進んでいる。帳票の電子化は、帳票をスキャンしてOCRを実行することで行われる。OCR(Optical Character Recognition)は、入力された文字画像を電子テキストデータに変換するシステムである。
電子化の対象には、活字と手書き文字とが混在する帳票が含まれる。活字は、文字毎に特定のフォント種類やサイズ下で、文字形状が一意である。手書き文字は、同じ文字であっても自由記入され形状が動的に変わる。このような文字形状の性質の違いのため、OCRは、活字画像用のOCR(以降「活字OCR」と呼称する)と、手書き文字用のOCR(以降「手書きOCR」と呼称する)が実行される。
活字OCRと手書きOCRには、それぞれのOCRが対象とする文字画像のみを入力する必要がある。そうでなければ、各OCRの認識精度が低下してしまう。そのため、活字と手書き文字とが混在する帳票画像を、活字画像と手書き文字画像とに分離して処理を行う。そこで、活字と手書き文字とが混在する画像から、手書き文字を抽出する技術が検討されている。
特許文献1では、手書きと活字が混在した画像から細線を抽出し、細線毎に輝度の分散に応じて手書きか否かを判定することで、手書き文字を抽出する技術が提案されている。
特開2010-218106号公報
しかし、入力画像の文字の色、印刷出力時のインクむら、スキャン環境などによっては輝度分散の大きい活字細線が現れる場合がある。このような場合、特許文献1の技術では、活字であるにも関わらず、手書き文字と誤判定される可能性がある。そのため、本来、活字である文字および文字の一部が活字画像に含まれず、手書き文字画像に含まれてしまう。その結果、活字に対して手書きOCRが実行され、OCRの認識精度が低下する場合があった。
本発明は、上記の課題を解決するためになされたものである。本発明は、文書画像から手書き文字と活字を抽出する場合に、活字を手書きと抽出する誤抽出を抑える仕組みを提供することを目的とする。
本発明は、文書画像上の手書き画素を手書き画像として抽出して手書き領域を取得する第1取得手段と、前記文書画像上の活字画素を活字画像として抽出して活字領域を取得する第2取得手段と、前記手書き領域と近接する前記活字領域、および、前記手書き領域と重なる前記活字領域を探索する探索手段と、前記手書き領域と、前記探索した活字領域のそれぞれの高さに基づいて、前記手書き領域および該領域に属する前記手書き画像内の手書き画素を、前記活字領域および該領域に属する前記活字領域内の活字画素に補正する補正手段と、を有することを特徴とする。
本発明によれば、文書画像中から手書き文字と活字を抽出する場合に、活字を手書きと抽出する誤抽出を抑えることができる。
本実施形態に係る画像処理システムの構成を示す図。 画像処理装置および画像処理サーバのハードウェア構成を示す図。 第1実施形態におけるOCR依頼処理およびOCR処理のフローチャート。 第1実施形態における手書き誤抽出補正処理のフローチャート。 第1実施形態のOCR処理におけるデータ生成処理の概要を示す図。 第1実施形態のOCR処理におけるデータ生成処理の概要を示す図。 第1実施形態のOCR処理におけるデータ生成処理の概要を示す図。 第2実施形態におけるOCR処理のフローチャート。 第2実施形態における手書き誤抽出削除処理のフローチャート。 第2実施形態のOCR処理におけるデータ生成処理の概要を示す図。
以下、本発明を実施するための形態について図面を用いて説明する。なお、本発明を実現するための構成は実施形態に記載された構成のみに限定されるものではない。同様の効果を得られる範囲で実施形態に記載の構成の一部を省略または均等物に置き換えてもよい。
〔第1実施形態〕
図1は、本発明の一実施形態に係る画像処理システムの構成の一例を示す図である。
本実施形態の画像処理システム100は、画像処理装置101、画像処理サーバ103、活字OCRサーバ104、手書きOCRサーバ105、DBサーバ106を有する。画像処理装置101、画像処理サーバ103、活字OCRサーバ104、手書きOCRサーバ105、DBサーバ106は、ネットワーク107を介して通信可能に接続されている。
画像処理装置101は、MFP(Multi Function Peripheral)等と呼ばれるデジタル複合機などであり、印刷機能やスキャン機能を有する。画像処理装置101は、帳票のテキスト化を行う際に、原稿をスキャンして処理対象とする画像データを得る(以降「処理対象画像」と呼称する)。そして、画像処理装置101は、得られた処理対象画像を、ネットワーク107を介して画像処理サーバ103に送信する。
画像処理サーバ103は、処理対象画像から手書きOCRの対象とする画像(以降「手書き画像」と呼称する)と、活字OCRの対象とする画像(以降「活字画像」と呼称する)を生成する。すなわち、画像処理サーバ103は、画像処理装置101が生成した処理対象画像に対して手書き抽出を行う。そして、画像処理サーバ103は、抽出結果を基に、処理対象を手書き画像と活字画像とに分離する。また、画像処理サーバ103は、手書き画像に基づいて手書きOCRの対象とする領域を算出し、手書き画像と共に手書きOCRサーバ105に送信する。さらに、画像処理サーバ103は、活字画像に基づいて活字OCRの対象とする領域を算出し、活字画像と共に活字OCRサーバ104に送信する。
活字OCRサーバ104は、活字画像に含まれる活字に対してOCR(光学文字認識)を行うことができる。活字OCRサーバ104は、画像処理サーバ103より、活字画像と、活字画像上の領域であってOCRの対象とする活字を含む領域(以降この領域を「活字OCR対象領域」と呼称する)の情報を受信する。そして、活字画像中の活字OCR対象領域に対してOCR処理を行ってテキストデータを取得し、当該テキストデータを画像処理サーバ103に送信する。
手書きOCRサーバ105は、手書き画像に含まれる手書き文字に対してOCRを行うことができる。手書きOCRサーバ105は、画像処理サーバ103より、手書き画像と、手書き画像上の領域であってOCRの対象とする手書き文字を含む領域(以降この領域を「手書きOCR対象領域」と呼称する)の情報を受信する。そして、手書きOCRサーバ105は、手書き画像中の手書きOCR対象領域に対してOCR処理を行ってテキストデータを取得し、当該テキストデータを画像処理サーバ103に送信する。
DBサーバ106は、画像処理サーバ103より送信されたテキストデータを、データベースに保存する。DBサーバ106に保存された情報は、他のシステムから参照できるようになる。
図2は、画像処理装置101および画像処理サーバ103のハードウェア構成の一例を示すブロック図である。なお、活字OCRサーバ104、手書きOCRサーバ105、DBサーバ106のハードウェア構成は、画像処理サーバ103と同様とし、説明を省略する。
図2(a)に画像処理装置101のハードウェア構成の一例を示す。
画像処理装置101は、CPU201、ROM202、RAM204、プリンタデバイス205、スキャナデバイス206、原稿搬送デバイス207、ストレージ208、入力デバイス209、表示デバイス210、および外部インタフェース211を備える。各デバイスは、データバス203によって相互通信可能に接続されている。
CPU201は、画像処理装置101を統括的に制御するためのコントローラである。CPU201は、ROM202に格納されているブートプログラムによりOS(オペレーティングシステム)を起動する。このOS上で、ストレージ208に記憶されているコントローラプログラムが実行される。コントローラプログラムは、画像処理装置101を制御するためのプログラムである。CPU201は、これらのプログラムを実行することにより、データバス203によって接続されている各デバイスを統括的に制御する。RAM204は、CPU201の主メモリやワークエリア等の一時記憶領域として動作する。
プリンタデバイス205は、画像データを用紙(記録材)上に印刷するものである。印刷方式には、感光体ドラムや感光体ベルトなどを用いた電子写真印刷方式や、微小ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式などがあるが、どの方式でもよい。
スキャナデバイス206は、CCDなどの光学読取装置を用いて紙などの原稿上の走査を行い、電気信号データを得てこれを変換し、スキャン画像データを生成する。
ADF(オート・ドキュメント・フィーダ)などの原稿搬送デバイス207は、原稿搬送デバイス207上の原稿台に載置された原稿を1枚ずつスキャナデバイス206に搬送する。
ストレージ208は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの、読み出しと書き込みが可能な不揮発メモリであり、ここには、前述のコントローラプログラムなど、様々なデータが記録される。
入力デバイス209は、タッチパネルやハードキーなどから構成さる入力装置である。入力デバイス209は、ユーザの操作指示を受け付け、指示位置を含む指示情報をCPU201に伝達する。
表示デバイス210は、LCDやCRTなどの表示装置である。表示デバイス210は、CPU201が生成した表示データを表示する。CPU201は、入力デバイス209より受信した指示情報と、表示デバイス210に表示させている表示データとから、いずれの操作が成されたかを判定する。そして、CPU201は、この判定結果に応じて、画像処理装置101を制御するとともに、新たな表示データを生成し表示デバイス210に表示させる。
外部インタフェース211は、LANや電話回線、赤外線といった近接無線などのネットワークを介して、外部機器と、画像データをはじめとする各種データの送受信を行う。外部インタフェース211は、学習装置102やPC(不図示)などの外部機器より、PDLデータを受信する。CPU201は、外部インタフェース211が受信したPDLデータを解釈し、画像を生成する。生成した画像は、プリンタデバイス205により印刷したり、ストレージ208に記憶したりする。また、外部インタフェース211は、画像処理サーバ103などの外部機器より画像データを受信する。受信した画像データをプリンタデバイス205により印刷したり、ストレージ208に記憶したり、外部インタフェース211により、他の外部機器に送信したりする。
図2(b)に画像処理サーバ103を構成可能な情報処理装置のハードウェア構成の一例を示す。
画像処理サーバ103は、CPU261、ROM262、RAM264、ストレージ265、入力デバイス266、表示デバイス267、外部インタフェース268を備える。各部は、データバス263を介して相互にデータを送受信することができる。
CPU261は、画像処理サーバ103の全体を制御するためのコントローラである。CPU261は、不揮発メモリであるROM262に格納されているブートプログラムによりOSを起動する。CPU261は、このOSの上で、ストレージ265に記憶されている画像処理サーバプログラムを実行する。CPU261がこの画像処理サーバプログラムを実行することより、処理対象画像から手書きの画素を抽出して消去する。CPU261は、これらのプログラムを実行することにより、データバス263などのバスを介して各部を制御する。
RAM264は、CPU261のメインメモリやワークエリア等の一時記憶領域として動作するものである。
ストレージ265は、読み出しと書き込みが可能な不揮発メモリであり、前述の画像処理プログラムを記録する。
入力デバイス266は、マウスやキーボードなどから構成さる入力装置である。
表示デバイス267は、図2(a)を用いて説明した表示デバイス210と同様であるので、詳細な説明は省略する。
外部インタフェース268は、図2(a)を用いて説明した外部インタフェース211と同様であるので、詳細な説明は省略する。
なお、画像処理サーバ103、活字OCRサーバ104、手書きOCRサーバ105、DBサーバ106のいずれか複数は、同一の装置上に構成されてもよい。
また、画像処理サーバ103、活字OCRサーバ104、手書きOCRサーバ105、DBサーバ106は、それぞれ1台のコンピュータにより実現されるものであっても、複数のコンピュータにより実現されるものであってもよい。例えば、これらのサーバは、クラウドコンピューティングの技術を利用して実現される構成であってもよい。
以下、図3A、図3Bのフローチャートを用いて、第1実施形態に係る処理について説明する。なお、以下、図3A、図3Bをまとめた「図3」と記載する。
まず、画像処理装置101によるOCR依頼処理について説明する。
画像処理装置101は、活字および手書き文字を含む原稿をスキャンして処理対象画像を得る。そして、処理対象画像を画像処理サーバ103に送信して、活字および手書き文字のOCRを依頼する。
図3(a)は、本実施形態のOCR依頼処理の一例を示すフローチャートである。この処理は、画像処理装置101のCPU201が、ストレージ208に記録されているコントローラプログラムを読み出し、RAM204に展開して実行することにより実現される。この処理は、ユーザが画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。なお、図中、「S」はステップを示す。
まずCPU201は、S301において、スキャナデバイス206や原稿搬送デバイス207を制御して、原稿をスキャンして処理対象画像を生成する。処理対象画像は、フルカラー(RGB3チャネル)の画像データとして生成される。
次にCPU201は、S302において、上記S301で生成した手書き処理対象を、外部インタフェース211を介して、画像処理サーバ103に送信する。
次に、画像処理サーバ103によるOCR処理について説明する。
図3(b)は、第1実施形態のOCR処理の一例を示すフローチャートである。
図4A~図4Cは、第1実施形態のOCR処理におけるデータ生成処理の概要を説明するための図である。以下、図4A~図4Cをまとめて「図4」と記載する。
画像処理サーバ103は、画像処理装置101から処理対象画像を受信し、当該画像データに含まれる活字や手書き文字をOCRしてテキストデータを得る。活字に対するOCRは、活字OCRサーバ104に実行させる。また、手書き文字に対するOCRは、手書きOCRサーバ105に実行させる。本実施形態におけるOCR処理(図3(b)および後述する図3(c)の処理)は、CPU261が、ストレージ265に記憶されている画像処理サーバプログラムを読み出し、RAM264に展開して実行することで実現される。図3(b)の処理は、ユーザが、画像処理サーバ103の電源をON(オン)にすると開始される。なお、これらの図中の「S」はステップを示す。
まずCPU261は、S321において、処理対象画像を画像処理装置101より受信したか否かを判定する。処理対象画像を受信していた場合(S321でNoの場合)、CPU261は、S334に処理を遷移させる。
S334において、処理を終了するか否かを判定する。ユーザが、画像処理サーバ103の電源のOFFなどの所定の操作を行った場合には、CPU261は、S334でYesと判定し、本フローチャートの処理を終了する。一方、そうでない場合は、CPU261は、S334でNoと判定し、S321に処理を戻し、処理対象画像の受信の監視を継続する。
一方、外部インタフェース268を介して、処理対象画像を受信していた場合(S321でYesの場合)、CPU261は、S322に処理を遷移させる。
なお、処理対象画像は、例えば、図4(a)に示すような画像である。図4(a)の画像において、「12」「10」「田中太郎」「02」「32」「1268」は手書き文字であり、それ以外の文字は活字である。
S322において、CPU261は、手書き抽出処理を実行し、画像処理装置101から受信した処理対象画像上の手書き画素を抽出した画像(以降「手書き抽出画像」と呼称する)を生成する。この手書き抽出処理については、例えば、画像中の画素の輝度特徴を基に手書きか否かを判定し、画素単位で手書き文字を抽出する方法(例えば特許文献1に開示される方法)など、公知の技術を適用し実現することができる。なお、この方法に限定されるものではない。生成された手書き抽出画像は、処理対象画像と同じサイズであり、手書きであると判定された画素には手書きであることを示す値が、手書きではないと判定された画素には手書きではないことを示す値が、それぞれ記録された画像データである。
図4(a)の画像を処理対象画像とした手書き抽出画像の一例を図4(b)に示す。ただし、図4(b)では、画素値が手書きを示す値である画素のみを図示している。図4(b)の例では、本来活字である「番号」が、手書き文字として誤抽出されている。
次にCPU261は、S323において、上記S322で生成した手書き抽出画像から手書き領域を算出する。手書き領域は、処理対象画像中の手書き記入項目毎の手書き文字を内包する領域であり、例えば、複数の文字からなる文字行である。手書き領域は、例えば、処理対象画像上の手書き画素位置(座標)と、当該画素位置からの幅や高さから成る情報として表現される。また、手書き領域は、記入項目数に応じて複数得られる場合がある。
手書き領域の算出方法は、例えば、手書き抽出画像上の黒画素の集合を検出し、検出した黒画素の集合を含む矩形状の範囲を文字列領域とする方法(例えば特許第6493559号広報が開示する方法)を取り得る。また、例えば、次のような方法を取り得る。まず、手書き抽出画像を白黒に二値化して二値画像を生成する。次に、この二値画像において黒画素が連結する部分(連結黒画素)を抽出し、これに外接する矩形を作成する。これら矩形群について、矩形間の距離を評価し、予め定めた閾値以下の距離である矩形の統合を行うことで、文字である矩形群を得ることができる。これの方法に限定されるものではなく、この他にも、公知の技術などを適用し実現することができる。
図4(b)の手書き抽出画像から算出した手書き領域の一例を図4(c)に示す。
図4(c)では、抽出された手書き文字に対して手書き領域431、432、433、434、435、436を算出している。また、図4(c)では、誤抽出された本来活字である「番号」に対しても、手書き領域437を算出している。
次にCPU261は、S324において、上記S322で抽出した手書き画素に基づいて、画像処理装置101から受信した処理対象画像上の手書き画素を除去し、活字画素を抽出した画像(以降「活字抽出画像」と呼称する)を生成する。
CPU261は、処理対象画像の画素であって、上記S322で生成した手書き抽出画像において画素値が手書きを示す値である画素と同位置の画素を、白(RGB=(255,255,255))に変更する。図4(a)の画像を処理対象画像とした活字抽出画像の一例を図4(d)に示す。
CPU261は、S325において、上記S324で生成した活字抽出画像から活字領域を算出する。活字領域は、処理対象画像中の印刷内容の項目毎の活字を内包する領域であり、例えば、複数の文字からなる文字行である。活字領域は、例えば、処理対象画像上の活字画素位置(座標)と、当該画素位置からの幅や高さから成る情報として表現される。また、活字領域は、項目数に応じて複数得られる場合がある。活字領域の算出方法は、例えば、活字抽出画像に対してS323と同様の処理を行う方法を取り得る。
図4(d)の活字抽出画像から算出した活字領域の一例を図4(e)に示す。
図4(e)に示す例では、抽出した活字に対して活字領域451、452、453、454、455、456を算出している。
上記S322~S325の処理で、処理対象画像から手書き抽出画像と活字抽出画像を生成した。また、各画像に基づいて、手書き領域と活字領域を算出した。その結果、本来活字である「番号」を、手書き文字として誤抽出してしまっている。このままでは、本来活字である「番号」が活字OCRに入力されず、手書きOCRに入力されてしまう。
そこで、CPU261は、S326において、上記S323で算出した手書き領域と、上記S325で算出した活字領域の高さに基づいて、手書き誤抽出補正処理を施す。
手書き誤抽出補正処理(S326)は、上記S323で算出した手書き領域において、本来活字領域として抽出されるべき領域を特定し、特定した手書き領域を活字領域に、当該領域内の手書き画素を活字画素に補正する処理である。ここで、手書き誤抽出補正処理(S326)を、図3(c)を用いて詳細に説明する。
図3(c)は、第1実施形態の手書き誤抽出補正処理の一例を示すフローチャートである。
まずCPU261は、S361において、上記S323で算出した手書き領域の内1つを選択する。
次にCPU261は、S362において、上記S325で取得した活字領域の中から、上記S323で選択した手書き領域と同一行の領域を探索し取得する。具体的には、上記S361で選択した手書き領域の水平方向の開始位置を0、幅を処理対象画像の横幅分とした場合に(すなわち選択した手書き領域を水平方向左右に広げた場合に)、この領域と重なる活字領域を取得する。
次にCPU261は、S363において、上記S362で取得した活字領域の内1つを選択する。
次にCPU261は、S364において、上記S361で選択した手書き領域と、上記S363で選択した活字領域とが、近接している、および/または重なっているか否かを判定する。
まず、近接しているか否かを判定する方法について示す。
近接しているか否かを判定する条件は以下に示す条件とする。
・Xts≦Xhs、且つ、Xhs-Xte<Ht
・Xts>Xhs、且つ、Xts-Xhe<Ht
以上の条件のいずれかを満たせば近接していると判定する。
ここで、Xhsは手書き領域の水平方向の始点、Xheは手書き領域の水平方向の終点である。また、Xtsは活字領域の水平方向の始点、Xteは活字領域の水平方向の終点である。また、Htは、活字領域の高さである。なお、活字は正方形に収まるデザインであるため、Htは活字一文字分の幅を表す。
すなわち、以上の条件による判定は、活字領域と手書き領域の水平方向の間隔が、活字一文字分より小さければ近接していると判定する。
次に、重なっているか否かの判定方法について説明する。
重なっているか否かの判定は、活字領域と手書き領域の領域座標間で論理積を取り、その結果が真であれば重なっていると判定する。
以上の判定の結果、近接している、および/または重なっている場合(S364でYesの場合)、CPU261は、S365に処理を遷移させる。一方、そうでない場合(S364でNoの場合)、CPU261は、S367に処理を遷移させる。
図4(c)の手書き領域について、図4(e)の活字領域と近接している、および/または重なっているか否かを判定する処理の概念図を図4(f)に示す。
図4(f)において、S362と合わせて、各手書き領域と活字領域の判定の組み合わせは次になる。
手書き領域431は活字領域452と近接している。
手書き領域432は活字領域452と近接している、および/または重なっている。
手書き領域433はどの活字領域とも近接していない、および/または重なっていない。
手書き領域434は活字領域455と近接している。
手書き領域435は活字領域455、456と近接している。
手書き領域436は活字領域456と近接している。
手書き領域437は活字領域454と近接している。
CPU261は、S365において、上記S361で選択した手書き領域と、上記S363で選択した活字領域の高さを比較し、当該手書き領域が活字領域の誤抽出であるか否かを判定する。
活字は基本的に大きさが斉一である(拗音では小さくなる)ため、高さが大きくなることはない。すなわち、活字領域と高さが揃っている手書き領域は、活字領域が誤抽出されていると言える。そのため、当該手書き領域の高さが、上記S363で選択した活字領域の高さ以下である場合(S365でYesの場合)、CPU261は、誤抽出であると判定して、S366に処理を遷移させる。一方、そうでない場合(S365でNoの場合)、CPU261は、誤抽出ではないと判定し、S367に処理を遷移させる。
図4(f)に示す処理概念図、および先述した各手書き領域と活字領域の判定の組み合わせにおいて、手書き領域437の高さは活字領域454の高さ以下であるため、S365でYesと判断され、誤抽出であると判定される。それ以外の手書き領域は、近接する活字領域より高いため、S365でNoと判断され、誤抽出ではないと判定される。
CPU261は、S366において、手書き抽出画像から上記S361で選択した手書き領域情報、および当該手書き領域内に属する手書き画素を削除する。また、活字抽出画像の当該手書き画素と同位置の画素を復元する。すなわち、手書き領域に属する手書き画像内の手書き画素を、活字領域内の活字画素に置換する補正を行う。
図4(g)は、図4(b)および(c)の手書き抽出画像および手書き領域に対して、S366の処理を施された結果の一例を示すものである。この処理の結果、手書き抽出画像から領域437の画素が削除されている。
また、図4(h)は、図4(d)および(e)の活字抽出画像および活字領域に対して、S366の処理を施された結果の一例を示すものである。この処理の結果、活字抽出画像に領域437の画素が復元されている。
S366の処理の後、CPU261は、S367に処理を進める。
CPU261は、S367において、上記S363~S366の処理を、上記S362で算出した全ての活字領域に対して行ったか否かを判定する。全ての活字領域に対して行った場合(S367でYesの場合)、CPU261は、S368に処理を遷移させる。
一方、そうでない場合(S367でNoの場合)、CPU261は、繰り返しS363~S366までの処理を行うように制御する。
CPU261は、S368において、上記S361~S367までの処理をS322で算出した全ての手書き領域に対して行ったか否かを判定する。全ての手書き領域に対して行った場合(S368でYesの場合)、CPU261は、S369に処理を遷移させる。
一方、そうでない場合(S368でNoの場合)、CPU261は、繰り返しS362~S367の処理を行うように制御する。
CPU261は、S369において、上記S366で誤抽出を補正した活字抽出画像の画素欠け修復を行う。活字抽出画像は、手書き画素が重なった箇所の活字画素が欠けている。そこで、上記S366で誤抽出を補正した活字抽出画像に対して、活字画素欠け修復を行う。活字画素欠け修復は、例えば、上記S364で重なっていると判定された活字領域に対して、文字の線分の方向成分を考慮して同一方向の文字線分を補間する処理を施すことによって修復する方法(特許2747491号公報が開示する方法)など、公知の技術を適用し実現することができる。
なお、上述の活字画素欠け修復を行わず、上記S364で重なっていると判定された活字領域および当該領域内に属する画素を削除してもよい。これは、元々他の文字が重なっている活字は可読性が極めて低く、そもそもOCR非対象とすべき文字であるためである。
次にCPU261は、S370において、手書き誤抽出の補正および活字画素の欠けを修復した活字抽出画像から活字領域の再算出を行う。活字領域の再算出方法は、例えば、上記S369で活字画素欠け修復を実施した後の活字抽出画像に対して上記S322と同様の処理を行う方法を取り得る。
S370の処理の後、CPU261は、本フローチャートの処理を終了する。
以上の処理によって、手書き文字として誤抽出された活字を補正できた。
図4(i)は、手書き誤抽出補正処理によって補正された手書き抽出画像と手書き領域の一例を示す図である。
図4(j)は、手書き誤抽出補正処理によって補正された活字抽出画像と活字領域の一例を示す図である。上述のS370での活字領域の再算出により、活字「電話」の活字領域454と、手書き領域437として誤抽出されていた手書き「番号」とが合わさり、活字「電話番号」の活字領域471と補正された。
図4(i)及び(j)に示すように、手書き誤抽出補正処理によって、誤抽出していた箇所が補正されている。
以下、図3(b)に示すOCR処理の説明に戻る。
CPU261は、上記S326の手書き誤抽出補正処理(図3(c))を終了すると、S327に処理を進める。
CPU261は、S327において、上記S326の手書き誤抽出補正処理による補正後の手書き抽出画素画像と手書き領域を、それぞれ「手書き画像」と「手書きOCR対象領域」として取得する。また、CPU261は、手書き誤抽出補正処理による補正後の活字抽出画像と活字領域を、それぞれ「活字画像」と「活字OCR対象領域」として取得する。
CPU261は、S328において、上記S327で取得した手書きOCR対象領域と手書き画像とを、外部インタフェース268を介して、手書きOCRサーバ105に送信し、手書きOCR(手書き文字の認識処理)を実行させる。手書きOCRには公知の技術を適用し実現することができる。
次にCPU261は、S329において、手書きOCRサーバ105から、手書きOCR結果を受信したか否かを判定する。手書きOCR結果とは、手書きOCRサーバ105が、手書きOCR対象領域に含まれていた手書き文字を認識して得たテキストデータである。外部インタフェース268を介して、手書きOCRサーバ105から、手書きOCR結果を受信していたならば(S329でYesの場合)、CPU261は、S330に処理を遷移させる。一方、まだ手書きOCR結果を受信していなければ(S329でNoの場合)、CPU261は、S329の処理を繰り返すように制御する。
CPU261は、S330において、上記S327で取得した活字OCR対象領域と活字画像とを、外部インタフェース268を介して、活字OCRサーバ104に送信し、活字OCR(活字の認識処理)を実行させる。活字OCRには公知の技術を適用し実現することができる。
次にCPU261は、S331において、活字OCRサーバ104から、活字OCR結果を受信したか否かを判定する。活字OCR結果とは、活字OCRサーバ104が、活字OCR対象領域に含まれていた活字を認識して得たテキストデータである。外部インタフェース268を介して、活字OCRサーバ104から、活字OCR結果を受信していたならば(S331でYesの場合)、CPU261は、S332に処理を遷移させる。一方、まだ活字OCR結果を受信していなければ(S331でNoの場合)、CPU261は、S331の処理を繰り返すように制御する。
CPU261は、S332において、上記S329で受信した手書きOCR結果と、上記S331で受信した活字OCR結果を、上記S326で取得した各領域の座標順に並べる。この時、手書きOCR結果には手書きであることを示す属性を、活字OCR結果には活字であることを示す属性を付与する。これにより、手書きOCR結果と活字OCR結果が統合された入力帳票のOCR結果を取得する。ここで、OCR結果は、入力された文字を認識して得たテキストデータと、入力された文字の属性と、入力された文字の領域から構成される。
CPU261は、S333において、上記S332で取得したOCR結果を、外部インタフェース268を介して、DBサーバ106に送信して保存させる。
図4(k)は、図4(a)の入力画像のOCR結果の一例を示す図である。
図4(k)において、テキスト列401は、テキストデータを格納する。属性列402は、テキストデータが手書きか活字かを示す値を格納する。領域座標列403は、テキストデータの領域の開始位置(左上座標)、および開始位置からの幅や高さから成る情報を格納する。
次にCPU261は、S334において、処理を終了するか否かを判定する。ユーザが、画像処理サーバ103の電源のOFFなどの所定の操作を行った場合には、CPU261はS334でYesと判定し、本フローチャートの処理を終了する。一方、そうでない場合には、CPU261はS334でNoと判定し、S321に処理を遷移させるように制御する。
以上、本実施形態に示したとおり、文書画像上の手書き文字を抽出して手書き文字画像と活字画像に分離した後で、各画像に基づいて手書き領域と活字領域を算出し、領域間の高さを比較することで活字の手書き誤抽出を補正する。このような構成により、読取画像(文書画像)中の文字に対して所定の画像処理を施すことが可能な画像処理システムを提供できる。特に、読取画像中の手書き文字を抽出して手書き文字画像と活字画像に分離した上で、手書き抽出画像と活字画像との比較により、活字の手書き誤抽出を補正できる。また、文字の一部が欠けた活字を修復することができる。これらの構成により、読取画像に対する文字認識精度を向上させることができる。
〔第2実施形態〕
第2実施形態では、第1実施形態とは別の手書き誤抽出補正処理について説明する。第2実施形態では、手書き誤抽出の補正を、手書き抽出画像と活字画像との比較ではなく、手書きOCR結果と活字OCR結果との比較により実現する。第2実施形態の画像処理システムの構成は、特徴部分を除いて第1実施形態の構成と同様である。そのため、同様の構成については、同様の符号を付し、その詳細な説明を省略する。
以下、本実施形態における画像処理サーバ103によるOCR処理について説明する。
図5Aは、第2実施形態におけるOCR処理のフローチャートである。
図6は、第2実施形態のOCR処理におけるデータ生成処理の概要を説明するための図である。
本実施形態におけるOCR処理(図5Aおよび後述する図5Bの処理)は、CPU261が、ストレージ265に記憶されている画像処理サーバプログラムを読み出し、RAM264に展開して実行することで実現される。図5Aの処理は、ユーザが、画像処理サーバ103の電源をON(オン)にすると開始される。なお、これらの図中の「S」はステップを示す。また、図3と同一のステップには同一のステップ番号を付してある。
まずCPU261は、S321~S325の処理を行い、手書き抽出画像と活字抽出画を生成し、手書き領域と活字領域を算出する。S321~S325は、図3(b)のフローチャートにおける同符合の処理と同様の処理である。
次にCPU261は、S369~S370の処理を行い、活字画素の欠け修復、および活字画素欠け修復後の活字抽出画像から活字領域の再算出を行う。S369~S370は、図3(c)のフローチャートにおける同符合の処理と同様の処理である。
次にCPU261は、S327~S332の処理を行い、手書きOCR結果と活字OCR結果の取得、および手書きOCR結果と活字OCR結果が統合された入力帳票のOCR結果を取得する。S327~S332は、図3(b)のフローチャートにおける同符合の処理と同様の処理である。
図6(a)は、図4(a)の入力画像に対する上記S332までのOCR結果の一例を示す図である。
図6(a)において、OCR結果601は、本来活字であるが手書きとして誤抽出され、手書きOCRに入力された「番号」のOCR結果である。「番号」は、手書きOCRが対象とする文字画像ではないため、テキストが「85」と誤認識された結果になっている。
そこで、CPU261は、S501において、S332で取得したOCR結果に基づいて、手書き誤抽出削除処理を施す。手書き誤抽出削除処理は、S332で取得したOCR結果において手書き属性が付与されている領域について、本来は活字属性が付与されるべきOCR結果を特定し、特定したOCR結果を削除する処理に対応する。以下、図5Bを用いて詳細に説明する。
図5Bは、本実施形態における手書き誤抽出削除処理の一例を示すフローチャートである。
まずCPU261は、S511において、上記S332で取得したOCR結果の中から、手書き属性をもつOCR結果を1つ選択する。
次にCPU261は、S512において、上記S332で取得したOCR結果の中から、活字属性をもつOCR結果であって、上記S511で選択したOCR結果と同一行のOCR結果を取得する。具体的には、上記S511で選択したOCR結果の領域の水平方向の開始位置を0、幅を処理対象画像の横幅分とした場合に、当該領域と重なる領域をもち、かつ、活字属性をもつOCR結果を取得する。
次にCPU261は、S513において、上記S512で取得したOCR結果の内1つを選択する。
次にCPU261は、S514において、上記S511で選択したOCR結果と、上記S513で選択したOCR結果とが、近接している、および/または重なっているか否かを判定する。この処理は、上記S511で選択したOCR結果の領域を手書き領域、上記S513で選択したOCR結果の領域を活字領域とし、図3(b)のフローチャートにおけるS364の処理と同様の処理を行う。以上の判定の結果、近接している、および/または重なっている場合(S514でYesの場合)、CPU261は、S515に処理を遷移させる。
一方、そうでない場合(S514でNoの場合)、CPU261は、S517に処理を遷移させる。
CPU261は、S515において、手書き領域(上記S511で選択したOCR結果の領域)と活字領域(上記S513で選択したOCR結果の領域)の高さを比較し、当該手書き領域が活字領域の誤抽出であるか否かを判定する。この処理は、図3(b)のフローチャートにおけるS365の処理と同様の処理を行う。当該手書き領域の高さが、活字領域の高さ以下である場合(S515でYesの場合)、CPU261は、S516に処理を遷移させる。
一方、そうでない場合(S515でNoの場合)、CPU261は、S517に処理を遷移させる。
CPU261は、S516において、上記S332で取得したOCR結果の中から、S511で選択したOCR結果を削除する。ここで削除する理由は、手書きだと誤抽出され、手書きOCRに入力された活字のOCR結果は、信頼できる結果ではないためである。
S516の処理の後、CPU261は、S517に処理を遷移させる。
CPU261は、S517において、上記S513~S516の処理をS362で算出した全ての活字領域に行ったか否かを判定する。全ての活字領域に行った場合(S517でYesの場合)、CPU261は、S518に処理を遷移させる。
一方、そうでない場合(S517でNoの場合)、CPU261は、繰り返しS513~S516までの処理を行うように制御する。
CPU261は、S518において、上記S511~S517までの処理を、手書き属性をもつ全てのOCR結果に行ったか否かを判定する。手書き属性をもつ全てのOCR結果に行った場合(S518でYesの場合)、CPU261は、本手書き誤抽出削除処理を終了する。
一方、そうでない場合(S518でNoの場合)、CPU261は、繰り返しS512~S517までの処理を行うように制御する。
以上の処理によって、手書き文字として誤抽出された活字のOCR結果を削除できた。図6(b)は、図6(a)のOCR結果に対して、S501の手書き誤抽出削除処理(図5B)を施した結果の一例を示す図である。
以下、図5Aに示すOCR処理の説明に戻る。
CPU261は、上記S501の手書き誤抽出削除処理(図5B)を終了すると、S333~S334の処理を実行する。S333~S334は、図3(b)のフローチャートにおける同符合の処理と同様の処理である。
以上、本実施形態に示したとおり、読取画像中の文字に対して所定の画像処理を施すことが可能な画像処理システムを提供できる。特に、読取画像中の手書き文字と活字それぞれのOCR結果を取得した上で、手書き領域と活字領域との比較により、活字の手書き誤抽出を補正できる。また、文字の一部が欠けた活字を修復することができる。これらの構成により、読取画像に対する文字認識精度を向上させることができる。
以上、各実施形態によれば、文書画像中から手書き文字と活字を抽出する場合に、活字を手書きと抽出する誤抽出等を抑えることができる。これにより、活字OCRと手書きOCRに、それぞれのOCRが対象とする文字画像を適切に入力することが可能となり、各OCRの認識精度を向上することができる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
101 画像処理装置
103 画像処理サーバ
104 活字OCRサーバ
105 手書きOCRサーバ
106 DBサーバ

Claims (11)

  1. 文書画像上の手書き画素を手書き画像として抽出して手書き領域を取得する第1取得手段と、
    前記文書画像上の活字画素を活字画像として抽出して活字領域を取得する第2取得手段と、
    前記手書き領域と近接する前記活字領域、および、前記手書き領域と重なる前記活字領域を探索する探索手段と、
    前記手書き領域と、前記探索した活字領域のそれぞれの高さに基づいて、前記手書き領域および該領域に属する前記手書き画像内の手書き画素を、前記活字領域および該領域に属する前記活字領域内の活字画素に補正する補正手段と、
    を有することを特徴とする情報処理装置。
  2. 前記補正手段は、前記手書き領域の高さが前記活字領域の高さ以下の場合に、前記補正を行うことを特徴とする請求項1に記載の情報処理装置。
  3. 前記補正後の前記手書き領域に対応する前記手書き画像は、手書き文字の認識処理により文字認識され、前記補正後の前記活字領域に対応する前記活字画像は、活字の認識処理が実行されることを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記補正後に前記活字領域を取得する第3取得手段を有し、
    前記補正後の前記手書き領域に対応する前記手書き画像は、手書き文字の認識処理により文字認識され、前記第3取得手段により取得された前記活字領域に対応する前記活字画像は、活字の認識処理が実行されることを特徴とする請求項1又は2に記載の情報処理装置。
  5. 前記補正後に前記活字画素の欠けを修復する修復手段を有し、
    前記第3取得手段は、前記修復後に前記活字領域を取得することを特徴とする請求項4に記載の情報処理装置。
  6. 文書画像上の手書き画素を手書き画像として抽出し、該抽出した手書き画像に基づいて手書き領域を取得する第1取得手段と、
    前記文書画像上の活字画素を活字画像として抽出し、該抽出した活字画像に基づいて活字領域を取得する第2取得手段と、
    前記手書き領域に対応する前記手書き画像に基づく手書き文字の認識処理の結果と、前記活字領域に対応する前記活字画像に基づく活字の認識処理の結果とを取得する第4取得手段と、
    前記手書き領域と近接する前記活字領域、および、前記手書き領域と重なる前記活字領域を探索する探索手段と、
    前記手書き領域と、前記探索した活字領域のそれぞれの高さに基づいて、前記手書き領域に対応する手書き文字の認識処理の結果を削除する削除手段と、
    を有することを特徴とする情報処理装置。
  7. 前記削除手段は、前記手書き領域の高さが前記活字領域の高さ以下の場合に、前記削除を行うことを特徴とする請求項6に記載の情報処理装置。
  8. 前記活字画素の欠けを修復し、該修復後に前記活字領域を取得する修復手段を有することを特徴とする請求項6又は7に記載の情報処理装置。
  9. 情報処理装置の制御方法であって、
    文書画像上の手書き画素を手書き画像として抽出して手書き領域を取得する第1取得工程と、
    前記文書画像上の活字画素を活字画像として抽出して活字領域を取得する第2取得工程と、
    前記手書き領域と近接する前記活字領域、および、前記手書き領域と重なる前記活字領域を探索する探索工程と、
    前記手書き領域と、前記探索した活字領域のそれぞれの高さに基づいて、前記手書き領域および該領域に属する前記手書き画像内の手書き画素を、前記活字領域および該領域に属する前記活字領域内の活字画素に補正する補正工程と、
    を有することを特徴とする情報処理装置の制御方法。
  10. 情報処理装置の制御方法であって、
    文書画像上の手書き画素を手書き画像として抽出して手書き領域を取得する第1取得工程と、
    前記文書画像上の活字画素を活字画像として抽出して活字領域を取得する第2取得工程と、
    前記手書き領域に対応する前記手書き画像に基づく手書き文字の認識処理の結果と、前記活字領域に対応する前記活字画像に基づく活字の認識処理の結果とを取得する第4取得工程と、
    前記手書き領域と近接する前記活字領域、および、前記手書き領域と重なる前記活字領域を探索する探索工程と、
    前記手書き領域と、前記探索した活字領域のそれぞれの高さに基づいて、前記手書き領域に対応する手書き文字の認識処理の結果を削除する削除工程と、
    を有することを特徴とする情報処理装置の制御方法。
  11. コンピュータに、請求項9又は10に記載の制御方法を実行させるためのプログラム。
JP2022140624A 2022-09-05 2022-09-05 情報処理装置、情報処理装置の制御方法、およびプログラム Pending JP2024035965A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022140624A JP2024035965A (ja) 2022-09-05 2022-09-05 情報処理装置、情報処理装置の制御方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022140624A JP2024035965A (ja) 2022-09-05 2022-09-05 情報処理装置、情報処理装置の制御方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2024035965A true JP2024035965A (ja) 2024-03-15

Family

ID=90198186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022140624A Pending JP2024035965A (ja) 2022-09-05 2022-09-05 情報処理装置、情報処理装置の制御方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP2024035965A (ja)

Similar Documents

Publication Publication Date Title
US7664321B2 (en) Image processing method, system, program, program storage medium and information processing apparatus
US8320019B2 (en) Image processing apparatus, image processing method, and computer program thereof
JP4631133B2 (ja) 文字認識処理のための装置、方法及び記録媒体
US8131081B2 (en) Image processing apparatus, and computer program product
US7609914B2 (en) Image processing apparatus and its method
US11574489B2 (en) Image processing system, image processing method, and storage medium
US11983910B2 (en) Image processing system, image processing method, and storage medium each for obtaining pixels of object using neural network
US11341733B2 (en) Method and system for training and using a neural network for image-processing
US20100020351A1 (en) Image processing apparatus, image processing method, and computer readable medium
US11568623B2 (en) Image processing apparatus, image processing method, and storage medium
US11418658B2 (en) Image processing apparatus, image processing system, image processing method, and storage medium
JP5089524B2 (ja) 文書処理装置、文書処理システム、文書処理方法、及び、文書処理プログラム
US20230071008A1 (en) Computer-readable, non-transitory recording medium containing therein image processing program for generating learning data of character detection model, and image processing apparatus
JP2009027243A (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2024035965A (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP7301529B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP5517028B2 (ja) 画像処理装置
US20230029990A1 (en) Image processing system and image processing method
JP7452059B2 (ja) 情報処理装置及びプログラム
US11811984B2 (en) Image processing system, image processing apparatus and method of controlling the same, and storage medium
US11659106B2 (en) Information processing apparatus, non-transitory computer readable medium, and character recognition system
US20220301326A1 (en) Ocr target area position acquisition system, computer-readable non-transitory recording medium storing ocr target area position acquisition program, hard copy, hard copy generation system, and computer-readable non-transitory recording medium storing hard copy generation program
JP7452060B2 (ja) 情報処理装置及びプログラム
JP2023021595A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP2023026170A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム