JP2023026170A - Image processing device, image processing system, image processing method, and program - Google Patents
Image processing device, image processing system, image processing method, and program Download PDFInfo
- Publication number
- JP2023026170A JP2023026170A JP2021131909A JP2021131909A JP2023026170A JP 2023026170 A JP2023026170 A JP 2023026170A JP 2021131909 A JP2021131909 A JP 2021131909A JP 2021131909 A JP2021131909 A JP 2021131909A JP 2023026170 A JP2023026170 A JP 2023026170A
- Authority
- JP
- Japan
- Prior art keywords
- image
- handwritten
- image processing
- ocr
- pixels
- 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
Links
Images
Landscapes
- Character Input (AREA)
- Character Discrimination (AREA)
- Image Analysis (AREA)
Abstract
Description
本発明は、画像処理装置、画像処理システム、画像処理方法、及びプログラムに関する。 The present invention relates to an image processing device, an image processing system, an image processing method, and a program.
近年、コンピュータの普及に伴う労働環境の変化により、業務資料の電子化が進んでいる。こうした電子化の対象は手書き文字が記入された文書にも及んでおり、手書き文字を抽出する技術が検討されている。特許文献1では、手書きと活字が混在した原稿から細線を抽出し、細線毎に輝度の分散に応じて手書きか否かを判定することで、手書き文字を抽出することが記載されている。
In recent years, due to changes in the working environment accompanying the spread of computers, the digitization of work materials is progressing. Documents in which handwritten characters are entered are also being digitized, and techniques for extracting handwritten characters are being studied.
しかしながら、括弧やハイフン、ピリオドといった構成する画素数が少ない文字は輝度分散に特徴が表れにくい。そのため、特許文献1に記載の技術では、手書き文字を精度よく抽出することができない。
However, characters with a small number of pixels, such as parentheses, hyphens, and periods, are less likely to exhibit characteristics in luminance distribution. Therefore, the technique described in
そこで本発明は、手書き文字領域の推定精度を向上させることを目的とする。 SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to improve the estimation accuracy of a handwritten character area.
本発明の画像処理装置は、手書きを含む原稿の読取画像を取得する取得手段と、前記読取画像における、処理対象領域を抽出する第1の抽出手段と、前記読取画像における、手書き部分と背景部分とを推定する推定手段と、前記読取画像における、前記処理対象領域内に存在する輪郭を抽出する第2の抽出手段と、前記抽出された輪郭の座標位置と前記推定された手書き部分の座標位置と前記推定された背景部分の座標位置とに基づいて、前記推定手段による推定結果を補正するよう制御する制御手段と、を有することを特徴とする。 An image processing apparatus according to the present invention includes acquisition means for acquiring a read image of a document including handwriting, first extraction means for extracting a processing target area in the read image, and handwritten portions and background portions in the read image. estimating means for estimating , second extracting means for extracting a contour existing in the processing target area in the read image, the coordinate position of the extracted contour and the estimated coordinate position of the handwritten portion and control means for controlling to correct the estimation result by the estimation means based on the estimated coordinate position of the background portion.
本発明によれば、手書き文字領域の推定精度を向上させることができる。 According to the present invention, it is possible to improve the accuracy of estimating a handwritten character area.
以下、本発明の実施形態について、図面を参照して説明する。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[実施形態1]
<画像処理システム>
本実施形態では、合成して生成した学習データを用いて学習した手書き画素の推定を行うニューラルネットワークを用いて、手書き記入された帳票から手書き文字の領域を抽出し、記入内容を文字認識してDB(データベース)に保存する方法について説明する。
図1は、本実施形態に係る画像処理システムの全体構成例を示す図である。画像処理システム100は、画像処理装置101、学習装置102、画像処理サーバ103、活字OCRサーバ104、手書きOCRサーバ105、及びDBサーバ106により構成される。画像処理装置101、学習装置102、画像処理サーバ103、活字OCRサーバ104、手書きOCRサーバ105、及びDBサーバ106は、ネットワーク107を介して相互に接続されている。
画像処理装置101は、スキャン機能と印刷機能を備えたデジタル複合機であり、例えばMFP(Multi Function Peripheral)である。
[Embodiment 1]
<Image processing system>
In this embodiment, using a neural network that estimates handwritten pixels learned using synthetically generated learning data, a region of handwritten characters is extracted from a handwritten form, and character recognition is performed on the content of the entry. A method of saving in a DB (database) will be described.
FIG. 1 is a diagram showing an example of the overall configuration of an image processing system according to this embodiment. The
The
画像処理システム100における学習フェーズでは、画像処理装置101は、白紙に手書きのみが記入された原稿をスキャンして画像データを生成する(以降、この画像データを「前景元画像」と呼称する)。画像処理装置101は、複数枚の原稿をスキャンして前景元画像を複数得る。前景元画像は、第1の読取画像の一例である。また、画像処理装置101は、電子文書を印刷し印刷原稿を出力する。さらに、この印刷原稿をスキャンして画像データを生成する(以降、この画像データを「背景元画像」と呼称する)。画像処理装置101は、複数枚の印刷原稿をスキャンして背景元画像を複数得る。背景元画像は、第2の読取画像の一例である。画像処理装置101は、ネットワーク107を介して、前景元画像と背景元画像を学習装置102に送信する。
学習装置102は、画像処理装置101から受信した前景元画像と背景元画像とを蓄積し、蓄積した画像を合成して手書き抽出を行うためのニューラルネットワークを学習する際に用いる学習データを生成する。そして、生成した学習データを用いてニューラルネットワークの学習を行って、学習結果(ニューラルネットワークのパラメータ等)を生成する。
In the learning phase of the
The
画像処理システム100における利用フェーズでは、画像処理装置101は、手書き抽出を行う際に、手書きが含まれる帳票をスキャンして処理対象とする読取画像を生成する(以降、このスキャン画像データを「処理対象画像」と呼称する)。画像処理装置101は、画像生成装置の一例である。画像処理装置101は、ネットワーク107を介して、処理対象画像を画像処理サーバ103に送信する。
画像処理サーバ103は、画像処理装置101から受信した処理対象画像に対して手書き抽出を行う。この際、学習装置102は、ネットワーク107を介して、学習結果を画像処理サーバ103に送信する。画像処理装置101は、学習装置102から受信した学習結果を用いることで、ニューラルネットワークにより推論して処理対象画像中の手書きの画素を推定する。そして、画像処理サーバ103は、推定結果に基づいて、活字OCRの対象とする領域と手書きOCRの対象とする領域を抽出し、これらの領域の情報を処理対象画像と共に活字OCRサーバ104と手書きOCRサーバ105に送信する。画像処理サーバ103は、画像処理装置の一例である。
In the usage phase of the
The
活字OCRサーバ104は、処理対象画像に含まれる活字に対して活字を文字認識するのに適したOCR(光学文字認識:Optical Character Recognition/Reader)を行う。活字OCRサーバ104は、画像処理サーバ103から、処理対象画像、及び処理対象画像上の領域であってOCRの対象とする活字を含む領域(以降、この領域を「活字対象領域」と呼称する)の情報を受信する。そして、処理対象画像中の活字対象領域に対してOCRを行ってテキストデータを取得する。活字OCRサーバ104は、当該テキストデータを画像処理サーバ103に送信する。
手書きOCRサーバ105は、処理対象画像に含まれる手書き文字に対して手書き文字を文字認識するのに適したOCRを行う。手書きOCRサーバ105は、画像処理サーバ103から、処理対象画像、及び処理対象画像上の領域であってOCRの対象とする手書き文字を含む領域(以降、この領域を「手書き対象領域」と呼称する)の情報を受信する。そして、処理対象画像中の手書き対象領域に対してOCRを行ってテキストデータを取得する。手書きOCRサーバ105は、当該テキストデータを画像処理サーバ103に送信する。活字OCRサーバ104及び手書きOCRサーバ105は、OCR装置の一例である。
画像処理サーバ103は、活字OCRサーバ104及び手書きOCRサーバ105から受信したテキストデータを統合して、DBサーバ106に送信する。
DBサーバ106は、画像処理サーバ103から受信したテキストデータを帳票の記入内容を示す情報として、DBに保存する。DBに保存された情報は、他のシステムから参照することが可能である。
The printed character OCR server 104 performs OCR (Optical Character Recognition/Reader) suitable for character recognition of printed characters included in the image to be processed. The type OCR server 104 receives from the
The handwritten OCR server 105 performs OCR suitable for recognizing handwritten characters on the handwritten characters included in the image to be processed. The handwritten OCR server 105 receives from the
The
The DB server 106 stores the text data received from the
<各装置のハードウェア構成>
次に、図2を用いて、上述した画像処理システム100を構成する各装置のハードウェア構成について説明する。図2(a)は、画像処理装置101のハードウェア構成例を示す。図2(b)は、学習装置102のハードウェア構成例を示す。図2(c)は、画像処理サーバ103のハードウェア構成例を示す。なお、活字OCRサーバ104、手書きOCRサーバ105、及びDBサーバ106のハードウェア構成は、画像処理サーバ103と同様とし、説明を省略する。
<Hardware configuration of each device>
Next, with reference to FIG. 2, the hardware configuration of each device constituting the
図2(a)に示すように、画像処理装置101は、次を備える。CPU201、ROM202、RAM204、プリンタデバイス205、スキャナデバイス206、原稿搬送デバイス207、ストレージ208、入力デバイス209、表示デバイス210、及び外部インタフェース211を備える。各デバイスは、データバス203によって相互通信可能に接続されている。
As shown in FIG. 2A, the
CPU201は、画像処理装置101を統括的に制御するためのコントローラである。CPU201は、ROM202に格納されているブートプログラムによりOS(オペレーティングシステム)を起動する。このOS上で、ストレージ208に記憶されているコントローラプログラムが実行される。コントローラプログラムは、画像処理装置101を制御するためのプログラムである。CPU201は、データバス203によって接続されている各デバイスを統括的に制御する。RAM204は、CPU201の主メモリやワークエリア等の一時記憶領域として動作する。
A
プリンタデバイス205は、CPU201の制御下で、画像データを用紙(記録材、シート)上に印刷する。これには感光体ドラムや感光体ベルトなどを用いた電子写真印刷方式や、微小ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式などがあるが、どの方式でもかまわない。スキャナデバイス206は、CPU201の制御下で、CCDなどの光学読取装置を用いて紙などの原稿上の走査を行い、電気信号データを得てこれを変換し、画像データ(読取画像)を生成する。また、ADF(オート・ドキュメント・フィーダ)などの原稿搬送デバイス207は、原稿搬送デバイス207上の原稿台に載置された原稿を1枚ずつスキャナデバイス206に搬送する。
A
ストレージ208は、HDDやSSDなどの、読み出しと書き込みが可能な不揮発メモリであり、ここには、前述のコントローラプログラムなど、様々なデータが記録される。入力デバイス209は、タッチパネルやハードキーなどから構成さる入力装置である。入力デバイス209は、ユーザの操作指示を受け付ける。そして、指示位置を含む指示情報をCPU201に伝達する。表示デバイス210は、LCDやCRTなどの表示装置である。表示デバイス210は、CPU201が生成した表示データを表示する。CPU201は、入力デバイス209より受信した指示情報と、表示デバイス210に表示させている表示データとから、いずれの操作が成されたかを判定する。そしてこの判定結果に応じて、画像処理装置101を制御するとともに、新たな表示データを生成し表示デバイス210に表示させる。
The
外部インタフェース211は、LANや電話回線、赤外線といった近接無線などのネットワークを介して、CPU201の制御下で、外部機器と、画像データをはじめとする各種データの送受信を行う。外部インタフェース211は、学習装置102やPC(不図示)などの外部機器より、PDLデータを受信する。CPU201は、外部インタフェース211が受信したPDLデータを解釈し、画像を生成する。CPU201は、生成した画像を、プリンタデバイス205により印刷したり、ストレージ208に記憶したりする。また、外部インタフェース211は、画像処理サーバ103などの外部機器より画像データを受信する。CPU201は、受信した画像データを、プリンタデバイス205により印刷したり、ストレージ208に記憶したり、外部インタフェース211により、他の外部機器に送信したりする。
The
図2(b)に示すように、学習装置102は、CPU231、ROM232、RAM234、ストレージ235、入力デバイス236、表示デバイス237、外部インタフェース238、及びGPU239を備える。各部は、データバス233を介して相互にデータを送受信することができる。
CPU231は、学習装置102の全体を制御するためのコントローラである。CPU231は、不揮発メモリであるROM232に格納されているブートプログラムによりOSを起動する。このOSの上で、ストレージ235に記憶されている学習データ生成プログラム及び学習プログラムを実行する。CPU231が学習データ生成プログラムを実行することより、学習データ生成部301(図3)としての機能が実現する。また、CPU231が学習プログラムを実行することにより、手書き画素の推定を行うニューラルネットワークを学習する学習部302(図3)としての機能が実現する。CPU231は、データバス233などのバスを介して各部を制御する。RAM234は、CPU231のメインメモリやワークエリア等の一時記憶領域として動作する。
As shown in FIG. 2B, the
The
ストレージ235は、読み出しと書き込みが可能な不揮発メモリであり、前述の学習データ生成プログラムや学習プログラム、画像処理装置101が生成した前景元画像と背景元画像、後述する学習データ生成処理(図5)で生成した学習データを記憶する。
入力デバイス236は、マウスやキーボードなどから構成さる入力装置である。表示デバイス237は、図2(a)を用いて説明した表示デバイス210と同様である。
外部インタフェース238は、図2(a)を用いて説明した外部インタフェース211と同様である。
GPU239は、画像処理プロセッサであり、CPU231と協働して画像データの生成やニューラルネットワークの学習を行う。
The
The input device 236 is an input device including a mouse and keyboard. The
The
The
図2(c)に示すように、画像処理サーバ103は、CPU261、ROM262、RAM264、ストレージ265、入力デバイス266、表示デバイス267、及び外部インタフェース268を備える。各部は、データバス263を介して相互にデータを送受信することができる。
CPU261は、画像処理サーバ103の全体を制御するためのコントローラである。CPU261は、不揮発メモリであるROM262に格納されているブートプログラムによりOSを起動する。このOSの上で、ストレージ265に記憶されている画像処理プログラムを実行する。CPU261がこの画像処理プログラムを実行することより、後述するフローチャートに示す処理が実現する。CPU261は、データバス263などのバスを介して各部を制御する。
RAM264は、CPU261のメインメモリやワークエリア等の一時記憶領域として動作する。ストレージ265は、読み出しと書き込みが可能な不揮発メモリであり、前述の画像処理プログラムを記憶する。
入力デバイス266は、図2(b)を用いて説明した入力デバイス236と同様である。表示デバイス267は、図2(a)を用いて説明した表示デバイス210と同様である。
外部インタフェース268は、図2(a)を用いて説明した外部インタフェース211と同様である。
As shown in FIG. 2C, the
A
The
The
The
図3は、学習装置102の機能構成例を示すブロック図である。学習装置102は、学習データ生成部301と学習部302の機能を有する。CPU231がストレージ235に記憶されている学習データ生成プログラムをRAM234に展開して実行することより、学習データ生成部301としての機能が実現する。また、CPU231がストレージ235に記憶されている学習プログラムをRAM234に展開して実行することにより、手書き画素の推定を行うニューラルネットワークを学習する学習部302としての機能が実現する。また、CPU231が、学習データ生成部301や学習部302が実行する計算処理の一部を、GPU239と協働して実行する。
学習データ生成部301は、ニューラルネットワークを学習するための学習データを生成する。
学習部302は、学習データ生成部301が生成した学習データを用いて、ニューラルネットワークを学習する。
FIG. 3 is a block diagram showing a functional configuration example of the
The learning
The
続いて図4~図8を用いて、本実施形態に係る画像処理システム100が学習フェーズで実行する処理について説明する。
<学習処理>
図4は、学習処理を示すフローチャートである。本フローチャートは、学習装置102の学習部302により実現される。本フローチャートは、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。なお、本実施形態において、ニューラルネットワークの学習には、ミニバッチ法を用いるものとする。以下、各工程(ステップ)について先頭にSを付けて表記することで、工程(ステップ)の表記を省略する。
Next, processing executed in the learning phase by the
<Learning processing>
FIG. 4 is a flow chart showing the learning process. This flowchart is implemented by the
まずS401において、CPU231は、ニューラルネットワークを初期化する。具体的には、CPU231は、ニューラルネットワークを構築し、当該ニューラルネットワークに含まれる各パラメータの値を、ランダムに決定して初期化する。構築するニューラルネットワークの構造は、様々なものを用いることができるが、例えばFCN(Fully Convolutional Networks)の形態を取り得る。
S402において、CPU231は、学習データを取得する。CPU231は、学習データ生成処理を実行して、所定の数(ミニバッチサイズ、例えば10)の学習データを取得する。なお、事前の学習データ生成処理によって生成した大量の学習データから、ミニバッチサイズ分の学習データを取得してもよい。学習データ生成処理については、図5で後述する。
S403において、CPU231は、ニューラルネットワークの誤差を算出する。具体的には、CPU231は、各学習データに含まれる入力画像をニューラルネットワークに入力して出力を得る。当該出力は、入力画像と同じ画像サイズであり、予測結果として、手書きであると判定された画素は、手書きを示す値を有し、手書きではないと判定された画素は、手書きではないことを示す値を有する画像である。そして、CPU231は、当該出力と正解ラベル画像との差を評価して誤差を求める。当該評価には指標として交差エントロピーを用いることができる。
First, in S401, the
In S402, the
In S403, the
S404において、CPU231は、ニューラルネットワークのパラメータを調整する。具体的には、CPU231は、S403において算出した誤差をもとに、バックプロパゲーション法によってニューラルネットワークのパラメータの値を変更する。
S405において、CPU231は、学習を終了するか否かを判定する。これは次のようにして行う。CPU231は、S402~S404の処理を、所定回数(例えば、60000回)行ったか否かを判定する。当該所定回数は、本フローチャートの開始時にユーザの操作入力などにより、予め決定することができる。CPU231が処理回数が所定回数に達したと判定した場合、処理はS406に遷移する。CPU231が処理回数が所定回数に達していないと判定した場合、処理はS402に遷移し、CPU231はニューラルネットワークの学習を継続する。
S406において、CPU231は、学習結果として、S404において調整したニューラルネットワークのパラメータを、画像処理サーバ103に送信する。その後、本フローチャートの処理が終了する。
以上のような学習処理によれば、学習データを用いて手書き画素の推定を行うニューラルネットワークの学習を行うことができる。
In S404, the
In S405, the
In S406, the
According to the learning process described above, it is possible to learn a neural network that estimates handwritten pixels using learning data.
<学習データ生成処理>
次に、図4のS402で実行される学習データ生成処理について説明する。図5は、学習データ生成処理を示すフローチャートである。本フローチャートは、学習装置102の学習データ生成部301により実現される。図6~図8は、学習データ生成処理で生成されるデータを説明するための図である。
まずS501において、CPU231は、ストレージ235に記憶している前景元画像を選択して読み出す。図6は、前景元画像の例を示す。前景元画像は手書きのみが書かれた画像であり、白紙に手書きのみが記入された原稿を画像処理装置101でスキャンすることで生成される。前景元画像はストレージ235に予め複数記録されているとする。本ステップでは、複数の前景元画像の中からランダムにひとつを選択する。ここでは図6の前景元画像601~603のうち、前景元画像601が選択されたものとして説明する。
S502において、CPU231は、S501で読み出した前景元画像を回転して加工する。回転角度は所定の範囲(例えば、-10度~10度の間)からランダムに選択して決定する。
<Learning data generation processing>
Next, the learning data generation process executed in S402 of FIG. 4 will be described. FIG. 5 is a flowchart showing learning data generation processing. This flowchart is implemented by the learning
First, in S<b>501 , the
In S502, the
S503において、CPU231は、前景元画像の一部(例えば、縦×横=512×512の大きさ)を切り出した画像データを生成する(以降、この画像データを「前景画像」と呼称する)。切り出す位置はランダムに決定する。
S504において、CPU231は、S503で生成した前景画像を、変倍して加工する。変倍率は所定の範囲(例えば、50%~150%の間)からランダムに選択して決定する。さらに、変倍後の前景画像の一部(例えば、縦×横=256×256の大きさ)を中央から切り出して前景画像を更新する。
S505において、CPU231は、前景画像の各画素の輝度を変更して加工する。CPU231は、前景画像をグレースケール化し、そしてガンマ補正を用いて前景画像の輝度を変更する。ガンマ値は所定の範囲(例えば、0.1~10.0の間)からランダムに選択して決定する。この時点での前景画像の例を図8(a)に示す。
In S503, the
In S504, the
In S505, the
S506において、CPU231は、ストレージ235に記憶している背景元画像を選択して読み出す。図7は、背景元画像の例を示す。背景元画像は画像処理装置101で電子文書をプリントした原稿をそのままスキャンすることで生成される。この原稿は、手書きを含まず、活字や罫線等の帳票に印刷されるようなオブジェクトのみを含む。本実施形態では、利用フェーズでスキャンされる帳票と特徴(活字の大きさ、罫線の有無など)の似た電子文書を用いる。また、帳票に記入された手書き文字を対象とするため、帳票の手書き記入される領域を背景元画像として用いる。背景元画像はストレージ235に予め複数記録されているとする。本ステップでは、複数の背景元画像の中からランダムにひとつを選択する。
S507において、CPU231は、S506で読み出した背景元画像を回転して加工する。回転角度は所定の範囲(例えば、-10度~10度の間)からランダムに選択して決定する。
S508において、CPU231は、背景元画像の一部(S503で前景画像を切り出したときと同じ大きさ)を切り出して画像データを生成する(以降、この画像データを「背景画像」と呼称する)。切り出す位置はランダムに決定する。
S509において、CPU231は、S508で生成した背景画像を、変倍して加工する。変倍率は所定の範囲(例えば、50%~150%の間)からランダムに選択して決定する。さらに、変倍後の背景画像の一部(S504で前景画像を切り出したときと同じ大きさ)を中央から切り出して背景画像を更新する。
S510において、CPU231は、背景画像の各画素の輝度を変更して加工する。CPU231は、背景画像をグレースケール化し、そしてガンマ補正を用いて背景画像の輝度を変更する。ガンマ値は所定の範囲(例えば、0.1~10.0の間)からランダムに選択して決定する。この時点での背景画像の例を図8(b)に示す。
In S<b>506 , the
In S507, the
In S508, the
In S509, the
In S510, the
以上のようなステップにより、以降のステップで学習データを生成する際に合成対象となる前景画像と背景画像が得られる。本実施形態において、学習装置102は、前景画像と背景画像のそれぞれに、回転、変倍、及び輝度の変更を行う。これにより、学習データの多様性が得られ、当該学習データを用いて学習するニューラルネットワークの汎化性能を向上できる。なお、前景画像と背景画像のそれぞれに対して行う画像処理は、回転、変倍、及び輝度の変更に限られない。また、回転、変倍、及び輝度の変更のうちの何れかを選択的に行ってもよい。また、学習装置102は、前景元画像及び背景元画像を、そのままの大きさで用いるのではなく、より小さな部分画像をランダムに切り出して用いる。これにより、学習処理でRAM234に展開したり、CPU231やGPU239が参照したりする際の効率性が考慮されるとともに、各一枚の前景元画像と背景元画像から、複数且つ多様な学習データを生成することができる。
Through the steps described above, a foreground image and a background image to be synthesized when generating learning data in subsequent steps are obtained. In this embodiment, the
S511において、CPU231は、前景画像に対して正解ラベル画像を生成する。まず、CPU231は、前景画像に対して二値化処理を行う。そして、予め定めた閾値よりも低い値である画素の値を、手書きを示す値(例えば255、以降も同様)とし、他の画素の値を、手書きではないことを示す値(例えば0、以降も同様)とした画像データを、前景画像に対する正解ラベル画像として生成する。図8(a)の前景画像から生成された正解ラベル画像の例を図8(c)に示す。図8(c)における白画素が、手書きを示す値を有する画素である。
S512において、CPU231は、学習データの入力画像を生成する。CPU231は、前景画像と背景画像のそれぞれ同じ座標を比較し、輝度の低い方の画素値を採用した新しい画像を作る事で画像の合成を行う。図8(a)の前景画像と図8(b)の背景画像を合成して生成された入力画像の例を図8(d)に示す。
S513において、CPU231は、S512で合成して生成した入力画像と、S511で生成した正解ラベル画像(正解データ)とを対応付け、学習データとしてストレージ235の所定の領域に保存する。CPU231は、予め決定された学習データの数が生成されるまで、本フローチャートに示す一連の処理を繰り返し実行する。
In S511, the
In S512, the
In S513, the
以上のような学習データ生成処理によれば、手書き画素の推定を行うニューラルネットワークの学習を行うための学習データを生成することができる。 According to the learning data generation process as described above, it is possible to generate learning data for learning a neural network that estimates handwritten pixels.
続いて図9A~図13を用いて、本実施形態に係る画像処理システム100が利用フェーズで実行する処理について説明する。利用フェーズではまず、画像処理装置101が、活字及び手書き文字を含む原稿をスキャンして処理対象画像を生成する。そして、処理対象画像を画像処理サーバ103に送信して、活字及び手書き文字のOCRを依頼する。
Next, processing executed in the usage phase by the
<OCR依頼処理>
図9A(a)は、OCR依頼処理を示すフローチャートである。本フローチャートは、画像処理装置101のCPU201が、ストレージ208に記録されているコントローラプログラムを読み出し、RAM204に展開して実行することにより実現される。本フローチャートは、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。
<OCR request processing>
FIG. 9A(a) is a flowchart showing OCR request processing. This flowchart is implemented by the
S901において、CPU201は、スキャナデバイス206や原稿搬送デバイス207を制御して、原稿をスキャンして処理対象画像(読取画像)を生成する。処理対象画像は、フルカラー(RGB3チャネル)の画像データとして生成される。図10(a)は、スキャンする原稿の例を示す。図10(a)に示すように、原稿は登録票などの帳票であり、帳票における各項目の右側に手書き文字が記入されている。
S902において、CPU201は、S901で生成した処理対象画像を、外部インタフェース211を介して、画像処理サーバ103に送信する。その後、本フローチャートの処理が終了する。
In S901, the
In S<b>902 , the
<OCR処理>
次に、画像処理サーバ103によるOCR処理について説明する。画像処理サーバ103は、画像処理装置101から処理対象画像を受信し、当該処理対象画像に含まれる活字や手書き文字をOCRしてテキストデータを得る。活字に対するOCRは、活字OCRサーバ104に実行させる。手書き文字に対するOCRは、手書きOCRサーバ105に実行させる。図9A(b)は、このOCR処理を示すフローチャートである。本フローチャートは、CPU261が、ストレージ265に記憶されている画像処理プログラムを読み出し、RAM264に展開して実行することで実現される。本フローチャートは、ユーザが、画像処理サーバ103の電源をON(オン)にすると開始される。
<OCR processing>
Next, OCR processing by the
まずS921において、CPU261は、手書き画素の推定を行うニューラルネットワークをロードする。まず、CPU261は、図4のフローチャートのS401の場合と同一のニューラルネットワークを構築する。そして、図4のフローチャートのS406において、学習装置102から送信された学習結果(ニューラルネットワークのパラメータ)を、構築したニューラルネットワークに反映する。
S922において、CPU261は、外部インタフェース268を介して、画像処理装置101から処理対象画像を受信したか否かを判定する。処理対象画像を受信していた場合、処理はS923に遷移する。受信していない場合、処理はS937に遷移する。本フローチャートでは、処理対象画像として、図10(a)に示す原稿をスキャンして得られた処理対象画像として受信したものとする。
First, in S921, the
In S<b>922 , the
S923において、CPU261は、S922で受信した処理対象画像に対して処理対象領域抽出処理を行い、処理対象画像に含まれる手書き文字及び活字の領域を処理対象領域として抽出する。処理対象領域抽出処理の詳細は、図9B(a)で後述する。図10(a)の処理対象画像について処理領域抽出処理を行った結果として得られた処理対象領域を、図12(a)の領域1201~1205に示す。
S924において、CPU261は、S922で受信した処理対象画像の手書き部分を推定する。まずCPU261は、処理対象画像をグレースケール化する。そして、このグレースケール化した処理対象画像を、S921で構築したニューラルネットワークに入力して、各画素について手書きであるかを推定する。この結果として、処理対象画像と同じサイズであり、手書きであると判定された画素には、手書きであること示す値(例えば1)、手書きではないと判定された画素には、手書きではないことを示す値(例えば0)が、それぞれ記録された画像データが得られる。以降、この画像データを「推定マップ」と呼称する。また、手書きであると判定された画素を、「手書き推定画素」と呼称し、手書きではないと判定された画素を、「背景推定画素」と呼称する。図10(a)の処理対象画像に対する推定マップを図10(b)に示す。図10(b)では、結果を見やすくするために、値が0の画素を黒画素で表現し、値が1の画素を白画素で表現している。この時点で、電話番号の入力欄に印字されている活字のハイフンや括弧の一部が手書きとして誤判定されている。
S925において、CPU261は、S924の推定結果について手書き判定を補正する補正処理を行って、手書き判定の誤りを補正する。補正処理の詳細は、図9B(b)で後述する。図10(b)の推定マップを補正した結果を表す画像を図10(c)に示す。補正処理によって、誤判定されていた箇所が補正されているのがわかる。
In S923, the
In S924, the
In S925, the
S926において、CPU261は、S925で補正した推定マップをマスクとして、手書きだけを抽出した画像を生成する。具体的には、まずCPU261が処理対象画像と同じサイズの画像を生成し、手書き推定画素の座標については、処理対象画像の画素値を代入し、背景推定画素の座標については、255を代入する。以降、この画像を「手書き抽出画像」と呼称する。図10(c)の補正された推定マップをマスクとして生成した手書き抽出画像を図11(a)に示す。
S927において、CPU261は、手書き抽出画像を対象に処理対象領域抽出処理を行い、手書き抽出画像に含まれる手書きOCRの対象とする領域(手書き対象領域)を決める。この処理の詳細はS923と同様であり、図9B(a)で後述する。図11(a)の手書き抽出画像について処理対象領域抽出処理を行った結果として得られた手書き対象領域を図12(b)の領域1221~1224に示す。
S928において、CPU261は、手書き対象領域と手書き抽出画像とを手書きOCRの対象として、外部インタフェース268を介して、手書きOCRサーバ105に送信し、手書きOCRを実行させる。手書きOCRサーバ105のCPU261は、受信した手書きOCRの対象に対して、手書きOCRの処理を実行する。手書きOCRには公知の技術を適用し実現することができる。
S929において、CPU261は、手書きOCRサーバ105から、手書きOCR結果を受信したか否かを判定する。手書きOCR結果とは、手書きOCRサーバ105が、手書き対象領域に含まれていた手書き文字を認識して得たテキストデータである。CPU261が外部インタフェース268を介して手書きOCRサーバ105から手書きOCR結果を受信したと判定するまでS929の処理を繰り返し、受信したと判定した場合、処理はS930に遷移する。
In S926, the
In S<b>927 , the
In S<b>928 , the
In S<b>929 , the
続いてS930において、CPU261は、S925で補正した推定マップをマスクとして、背景だけを抽出した画像を生成する。具体的には、まずCPU261が処理対象画像と同じサイズの画像を生成し、背景推定画素の座標については、処理対象画像の画素値を代入し、手書き推定画素の座標については、255を代入する。以降、この画像を「背景抽出画像」と呼称する。図10(c)の補正された推定マップをマスクとして生成した背景抽出画像を図11(b)に示す。
S931において、CPU261は、背景抽出画像を対象に処理対象領域抽出処理を行い、背景抽出画像に含まれる活字OCRの対象とする領域(活字対象領域)を決める。この処理の詳細はS923と同様であり、図9B(a)で後述する。図11(b)の背景抽出画像について処理対象領域抽出処理を行った結果として得られた活字対象領域を図12(c)の領域1241~1245に示す。
S932において、CPU261は、S931で得た活字対象領域と背景抽出画像とを活字OCRの対象として、外部インタフェース268を介して、活字OCRサーバ104に送信し、活字OCRを実行させる。活字OCRサーバ104のCPU261は、受信した活字OCRの対象に対して、活字OCRの処理を実行する。活字OCRには公知の技術を適用し実現することができる。
S933において、CPU261は、活字OCRサーバ104から、活字OCR結果を受信したか否かを判定する。活字OCR結果とは、活字OCRサーバ104が、活字対象領域に含まれていた活字を認識して得たテキストデータである。CPU261が外部インタフェース268を介して活字OCRサーバ104からから活字OCR結果を受信したと判定するまでS933の処理を繰り返し、受信したと判定した場合、処理はS934に遷移する。
Subsequently, in S930, the
In S931, the
In S932, the
In S<b>933 , the
続いてS934において、CPU261は、各処理対象領域についてOCR結果を集計する。まずCPU261は、S923で得た処理対象領域のうち、S927で得た手書き対象領域と、S931で得た活字対象領域のどちらかのみを含むものについては、そのOCR結果をそのまま処理対象領域のOCR結果とする。また、処理対象領域内に、手書き対象領域と活字対象領域の両方を含むものについては、手書きOCR結果と活字OCR結果を、処理対象領域での位置関係に応じて並べたものを処理対象領域のOCR結果とする。
図12を用いて本ステップの処理について説明する。例えば、処理対象領域1203は手書き対象領域1221のみを含むため、そのOCR結果である「田中太郎」をOCR結果とする。一方、処理対象領域1205は手書き対象領域1222,1223,1224及び活字対象領域1244,1245を含むため、各OCR結果を元の位置関係の順番に並べて「02-(32)-1268」をOCR結果とする。
Subsequently, in S934, the
The processing of this step will be described with reference to FIG. For example, since the processing target area 1203 includes only the
S935において、CPU261は、各処理対象領域のOCR結果を統合する。ここでは各処理対象領域について、その位置関係や、意味的な妥当性を評価することで、項目と値のペアを推定する。例えば、処理対象領域1202に対し、最も近い処理対象領域は領域1203であり、且つ領域1202のOCR結果「氏名」が項目名だとすると、領域1203のOCR結果「田中太郎」は氏名を含むので値としての妥当性が高い。よって、領域1202のOCR結果と領域1203のOCR結果を、氏名に関する項目と値のペアであると推定する。同様の方法で、領域1204と領域1205のOCR結果もそれぞれ項目と値のペアであると推定する。
S936において、CPU261は、S935で得た項目と値のペアを、外部インタフェース268を介して、DBサーバ106に送信して保存させる。
S937において、CPU261は、一連の処理を終了するか否かを判定する。CPU261が画像処理サーバ103の電源のOFFなどの所定の操作を検知しない限り、処理はS922に遷移する。CPU261が所定の操作を検知した場合には、本フローチャートの処理が終了する。
以上のようなOCR処理によれば、手書きと活字が混在する処理対象画像から、手書き文字のみの領域と活字のみの領域とを抽出し、各領域に対して行った文字認識の結果をDBサーバ106に保存することができる。
In S935, the
In S<b>936 , the
In S937, the
According to the OCR processing as described above, an area containing only handwritten characters and an area containing only printed characters are extracted from an image to be processed in which handwritten characters and printed characters are mixed, and the results of character recognition performed on each area are stored in a DB server. 106.
<処理対象領域抽出処理>
次に、図9A(b)のS923,S927,S931で実行される処理対象領域抽出処理について説明する。図9B(a)は、処理対象領域抽出処理を示すフローチャートである。本フローチャートは、CPU261が、ストレージ265に記憶されている画像処理プログラムを読み出し、RAM264に展開して実行することで実現される。本フローチャートは、図9A(b)のS923,S927,S931で、それぞれ処理対象画像、手書き抽出画像、背景抽出画像を入力として実行される。
まずS951において、CPU261は、入力画像に収縮処理を掛ける。これにより、文字が太らされて、文字を構成する部首や点などの小さなパーツが周辺の文字と繋がり、後段の処理(S953)でこれらがノイズとして扱われることを抑制することができる。
S952において、CPU261は、黒画素が連結している領域の外接矩形を取得する。CPU261は、S951で収縮処理した画像に対して、黒画素が連結している領域を探索し、探索された全ての領域について個別に外接矩形を生成する。
S953において、CPU261は、S952で生成した外接矩形の中から、文字のものである可能性の低い矩形を除外する。例えば、矩形の辺の長さや面積に所定範囲を設け、当該所定範囲から外れるものについては文字ではないと推定して取り除く。これにより、図表を囲っている大きな矩形や、小さなノイズを囲っている極小の矩形を除外することができる。
S954において、CPU261は、近接する外接矩形同士を連結する。CPU261は、S953の結果残った各矩形について、その左右の一定の距離内に別の矩形がある場合は、それらの矩形を全て結合した新しい矩形に置き換える。これにより、文字単体ではなく単語や文章全体などのまとまりを囲う矩形を形成できる。この結果得られた各矩形を、処理対象領域とする。その後、図9A(b)のフローに戻る。
<Processing target region extraction processing>
Next, the processing target area extraction processing executed in S923, S927, and S931 of FIG. 9A(b) will be described. FIG. 9B(a) is a flowchart showing the processing target area extraction process. This flowchart is implemented by the
First, in S951, the
In S952, the
In S953, the
In S954, the
以上のような処理対象領域抽出処理によれば、記入項目を表す活字や、記入欄に記入された手書き文字などの領域を処理対象領域として抽出することができる。S923では、CPU261が、処理対象画像に含まれる手書き文字及び活字の領域を抽出する。S927では、CPU261が、手書き抽出画像から処理対象領域を抽出して、抽出した領域を手書き対象領域として決定する。S931では、CPU261が、背景抽出画像から処理対象領域を抽出して、抽出した領域を活字対象領域として決定する。
According to the process target area extraction process described above, it is possible to extract areas such as typed characters representing entry items and handwritten characters entered in entry fields as process target areas. In S923, the
<手書き判定の補正処理>
次に、図9A(b)のS925で実行される手書き判定の誤りを補正する補正処理について説明する。図9B(b)は、本実施形態に係る補正処理を示すフローチャートである。本フローチャートは、CPU261が、ストレージ265に記憶されている画像処理プログラムを読み出し、RAM264に展開して実行することで実現される。本フローチャートは、図9A(b)のS925で、S924で得られた推定マップを入力として実行される。
<Correction processing for handwriting determination>
Next, a correction process for correcting an error in handwriting determination performed in S925 of FIG. 9A(b) will be described. FIG. 9B(b) is a flowchart showing correction processing according to the present embodiment. This flowchart is implemented by the
まずS971において、CPU261は、図9A(b)のS923で得た全ての処理対象領域について、後続するS972からS977までの処理が終了したか否かを判定する。CPU261が全ての処理対象領域について処理が終了したと判定した場合には、図9A(b)のフローに戻る。一方で、CPU261が未処理の処理対象領域が存在すると判定した場合には、処理対象領域を一つ選択して、処理はS972に遷移する。このようにして、CPU261は、処理対象画像から複数の処理対象領域が抽出された場合には、当該複数の処理対象領域に対して、補正を行うかを順次判定していく。以下、図12(a)に示した処理対象領域1205が選択されたものとして説明する。
S972において、CPU261は、S971で選択した処理対象領域内に存在する輪郭を抽出する。輪郭の抽出は、処理対象領域内の画像を二値化した後、一般的な輪郭追跡アルゴリズム等を用いて行う。図13(a)は、処理対象領域1205から抽出された輪郭1301~1312を示す。図13(a)に示すように、文字のストロークを輪郭(アウトライン)で囲む領域が抽出される。
S973において、CPU261は、S972で抽出した全ての輪郭について、後続するS974からS977までの処理が終了したか否かを判定する。CPU261が全ての輪郭について処理が終了したと判定した場合には、処理はS971に遷移する。一方で、CPU261が未処理の輪郭が存在すると判定した場合には、輪郭を一つ選択して、処理はS974に遷移する。このようにして、CPU261は、処理対象領域から複数の輪郭が抽出された場合には、当該複数の輪郭に対して、補正を行うか順次判定していく。以下、図13(a)の輪郭1307が選択されたものとして説明する。なお本実施形態では、輪郭1301や輪郭1312のように、一つの閉領域が複数の輪郭によって形成される場合には、当該複数の輪郭を一つの輪郭として扱う。
First, in S971, the
In S972, the
In S973, the
S974において、CPU261は、S973で選択した輪郭の外接矩形を算出する。輪郭1307について算出された外接矩形を、図13(a)の点線枠1321で示す。
S975において、CPU261は、S974で算出した外接矩形が所定の条件を満たすか否かを判定する。本実施形態において、所定の条件は、手書きと混同しやすい活字の輪郭の外接矩形を示す条件である。手書きと混同しやすい活字は、例えば活字の括弧やハイフンである。活字の括弧やハイフンの外接矩形の形状は、予め様々なフォントやサイズで集計しておき、取りうる面積や縦横比の範囲を統計的に規定しておく。活字の括弧の外接矩形の範囲は、例えば縦が6~15ピクセル、且つ横が26~34ピクセルである。また活字のハイフンの外接矩形の範囲は、例えば縦が2~6ピクセル、且つ横が20~40ピクセルである。活字の括弧やハイフンの外接矩形は、細長い形状を有する傾向がある。CPU261が外接矩形が所定の条件を満たすと判定した場合には、S976に遷移し、所定の条件を満たさないと判定した場合には、S973で選択した輪郭は補正の対象外として、再びS973に遷移する。
In S974, the
In S975, the
S976において、CPU261は、S973で選択した輪郭内に手書き部分と背景部分との両方が含まれるか否かを判定する。当該判定は、S973で選択した輪郭の座標位置と、手書き推定画素の座標位置と、背景推定画素の座標位置とを比較することにより行う。具体的には、抽出された輪郭で囲まれる領域内に手書き推定画素と背景推定画素との両方が存在するかを判定する。図13(b)は、図10(b)に示す推定マップのうち、処理対象領域1205の画像を抜き出して示す。図13(b)では、図13(a)の輪郭1307に対応する位置に、手書き推定画素と背景推定画素との両方が存在していることがわかる。CPU261が輪郭内に手書き推定画素と背景推定画素との両方が含まれると判定した場合、S977に遷移し、手書き推定画素のみ、または背景推定画素のみが含まれると判定した場合、S973で選択した輪郭は補正の対象外として、再びS973に遷移する。
S977において、CPU261は、S973で選択した輪郭内にある画素を、すべて背景推定画素に補正する。図13(b)に示す推定マップに対して、本ステップの処理を実行した結果を図13(c)に示す。図13(c)に示すように、輪郭1307内に存在していた手書き推定画素が、背景推定画素に補正されている。その後処理はS973に遷移する。
In S976, the
In S977, the
以上のような補正処理によれば、画像処理サーバ103は、処理対象領域内に所定の条件を満たす輪郭が存在し、且つ当該輪郭内に手書きであると推定された画素と背景であると推定された画素の両方が含まれる場合には、推定結果の補正を行う。具体的には、活字の括弧やハイフン等の条件を満たす輪郭に対して、輪郭内の全体が背景部分を示すように、推定結果の補正を行う。
According to the above-described correction processing, the
以上のような実施形態1によれば、手書き部分の推定後、処理対象領域内のストロークにおいて、手書きに推定された部分と背景に推定された部分との両方が存在する場合、推定の誤りとして補正できる。これにより、処理対象領域内のストロークについて、手書き部分の推定位置を補正することが可能になり、処理対象の手書き画像において、文字の一部が欠損されることや、余計な部分が付加されることを抑制できる。即ち、手書き文字領域の推定精度を向上できる。さらには、手書き文字の認識精度の向上を図ることができる。また実施形態1では、処理対象領域内のストロークが、手書きと混同しやすい活字のストロークなど所定の特徴を示す場合に、そのストロークの位置における推定結果を背景部分に補正できる。これにより、活字の括弧やハイフンなどの手書きと混同しやすい活字のストロークに対する推定の誤りを補正することが可能になり、推定精度の更なる向上を図ることができる。 According to the first embodiment as described above, after estimating a handwritten portion, if there are both a portion estimated to be handwritten and a portion estimated to be background in strokes in the processing target area, an estimation error is can be corrected. As a result, it is possible to correct the estimated position of the handwritten part for the strokes in the processing target area, and in the handwritten image to be processed, part of the character is lost or an extra part is added. can be suppressed. That is, it is possible to improve the estimation accuracy of the handwritten character area. Furthermore, it is possible to improve the recognition accuracy of handwritten characters. Further, in the first embodiment, when the strokes in the processing target area show predetermined features such as strokes of printed characters that are likely to be confused with handwriting, the estimation results at the positions of the strokes can be corrected to the background portion. As a result, it is possible to correct errors in estimation of type strokes, such as parentheses and hyphens, which are likely to be confused with handwriting, and to further improve the estimation accuracy.
本実施形態の第1の変形例として、処理対象領域から抽出された輪郭が所定の条件を満たし、且つ当該輪郭内の領域に手書き推定画素と背景推定画素が混在することに応じて、推定結果を補正する形態であれば、補正内容は上記と異なってもよい。 As a first modification of the present embodiment, an estimation result , the content of correction may be different from the above.
本実施形態の第2の変形例として、処理対象領域から抽出された輪郭が所定の条件を満たし、且つ当該輪郭内に手書き推定画素と背景推定画素が混在する場合であっても、当該輪郭を補正対象外とする条件があってもよい。この条件としては、例えば、当該輪郭の外側の周辺に、手書き推定画素が存在しないことである。 As a second modification of the present embodiment, even if a contour extracted from a region to be processed satisfies a predetermined condition and includes a mixture of estimated handwriting pixels and estimated background pixels, the contour is There may be a condition to exclude the correction target. This condition is, for example, that there are no presumed handwritten pixels around the outside of the contour.
[実施形態2]
本実施形態では、手書き判定の補正処理において、輪郭内にある手書き推定画素の数と背景推定画素の数とに応じて、補正内容を切り替える点で、実施形態1とは異なる。なお、本実施形態に係る画像処理システム100の構成は、特徴部分を除いて実施形態1の構成と同様である。そのため、同様の構成については、同様の符号を付し、その詳細な説明を省略する。以下、実施形態1との差分を中心に説明する。
[Embodiment 2]
This embodiment differs from the first embodiment in that, in the handwriting determination correction process, the correction content is switched according to the number of estimated handwriting pixels and the number of estimated background pixels in the contour. Note that the configuration of the
<手書き判定の補正処理>
以下、図9A(b)のS925で実行される手書き判定の誤りを補正する補正処理について説明する。図14は、本実施形態に係る補正処理を示すフローチャートである。本フローチャートは、CPU261が、ストレージ265に記憶されている画像処理プログラムを読み出し、RAM264に展開して実行することで実現される。本フローチャートは、図9A(b)のS925で、S924で手書き画素を推定した結果として得られた画像を入力として実行される。
<Correction processing for handwriting determination>
The correction process for correcting an error in handwriting determination performed in S925 of FIG. 9A(b) will be described below. FIG. 14 is a flowchart showing correction processing according to this embodiment. This flowchart is implemented by the
図14のS971からS975までは、実施形態1と同様である。なお、本実施形態の説明では、図10(a)の処理対象画像について手書き画素を推定した結果として、図15(a)に示すような推定マップが得られたとする。この時点で、電話番号の入力欄に手書き記入の補助的に印字されている活字のハイフンや括弧の一部が手書きとして誤判定され、電話番号の入力欄に手書きで記入されている「1」の一部が背景として誤判定されている。 S971 to S975 in FIG. 14 are the same as in the first embodiment. In the description of the present embodiment, it is assumed that an estimation map as shown in FIG. 15A is obtained as a result of estimating handwritten pixels for the image to be processed in FIG. 10A. At this point, some of the hyphens and parentheses printed in the phone number input field to assist handwriting are misjudged as handwritten, and the handwritten "1" is entered in the phone number input field. are misidentified as background.
次にS1401において、CPU261は、S973で選択した輪郭内に対応する位置にある画素のうち、手書き推定画素の数と、背景推定画素の数とをそれぞれカウントする。
S1402において、CPU261は、S1401でカウントした手書き推定画素の数と背景推定画素の数とを比較し、手書き推定画素の数が背景推定画素の数よりも多いか否かを判定する。CPU261が手書き推定画素の数が背景推定画素の数よりも多いと判定した場合、S1404に遷移し、手書き推定画素の数が背景推定画素の数よりも少ないと判定した場合、S1403に遷移する。
図15(b)は、図15(a)に示す推定マップのうち、処理対象領域1205の画像を抜き出して示す。図15(b)に示す推定マップのうち、図13(a)の輪郭1307の領域内にある画素では、手書き推定画素の数が背景推定画素の数を下回る。そのため、背景推定画素の数の方が多いとして、処理はS1403に遷移する。一方で、図13(a)の輪郭1309の領域内にある画素では、手書き推定画素の数が背景推定画素の数を上回る。そのため、手書き推定画素の数の方が多いとして、処理はS1404に遷移する。なお本ステップでは、手書き推定画素の数と背景推定画素の数とを比較しているが、所定の画素数と比較することにより判定を行ってもよい。図15(b)の推定マップにおける、図13(a)の輪郭1307に対して次に説明するS1403を実行し、図13(a)の輪郭1309に対して次に説明するS1404を実行した結果を、図15(c)に示す。
Next, in S1401, the
In S1402, the
FIG. 15(b) shows an image of the
S1403において、CPU261は、S973で選択した輪郭内に位置する画素を、すべて背景推定画素となるよう補正する。S973で輪郭1307が選択された場合には、図15(c)に示すように、輪郭1307内にある手書き推定画素が、すべて背景推定画素に補正される。その後処理はS973に遷移する。
S1404において、CPU261は、S973で選択した輪郭内に位置する画素を、すべて手書き推定画素となるよう補正する。S973で輪郭1309が選択された場合には、図15(c)に示すように、輪郭1309内にある背景推定画素が、すべて手書き推定画素に補正される。その後処理はS973に遷移する。
In S1403, the
In S1404, the
以上のような補正処理によれば、画像処理サーバ103は、処理対象領域内に存在する輪郭内に位置する画素のうち、手書きであると推定された画素数と背景であると推定された画素数とを比較し、当該比較の結果に応じて、推定結果の補正を行う。具体的には、手書きであると推定された画素数の方が多ければ、当該輪郭内の全体が手書き部分を示すように、推定結果の補正を行う。また、手書きであると推定された画素数の方が少なければ、当該輪郭内の全体が背景部分を示すように、推定結果の補正を行う。
According to the above-described correction processing, the
以上のような実施形態2によれば、手書き部分の推定後、処理対象領域内のストロークにおける、手書きに推定された画素数と背景に推定された画素数とを比較し、当該比較の結果に応じて推定の誤りを補正できる。具体的には、手書きに推定された部分の画素数と、背景に推定された部分の画素数のうち、画素数の多い方の部分に統合されるように、そのストロークの位置における推定結果を補正できる。これにより、処理対象の手書き画像において、文字の一部が欠損されることや、余計な部分が付加されることを抑制できる。即ち、手書き文字領域の推定精度を向上させることができる。 According to the second embodiment as described above, after estimating a handwritten portion, the number of pixels estimated to be handwritten and the number of pixels estimated to be background in the strokes in the processing target area are compared, and the result of the comparison is Estimate errors can be corrected accordingly. Specifically, the estimation result at the position of the stroke is combined with the number of pixels estimated for the handwriting and the number of pixels estimated for the background, whichever has the larger number of pixels. can be corrected. As a result, it is possible to prevent a part of the character from being lost or an extra part from being added to the handwritten image to be processed. That is, it is possible to improve the estimation accuracy of the handwritten character area.
本実施形態の第1の変形例として、S975の処理をスキップしてもよい。この場合、画像処理サーバ103は、抽出された輪郭について、当該輪郭の外接矩形の形状によるふるい分けを行うことなく、輪郭内に手書きに推定された部分と背景に推定された部分との両方が存在する領域を、補正対象とする。
As a first modified example of this embodiment, the process of S975 may be skipped. In this case, the
以上、本発明を実施形態と共に説明したが、上記実施形態は本発明を実施するにあたり具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。 As described above, the present invention has been described together with the embodiments, but the above-described embodiments merely show specific examples for implementing the present invention, and the technical scope of the present invention should not be construed in a limited manner. It should not be. That is, the present invention can be embodied in various forms without departing from its technical concept or main features.
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other embodiments)
The present invention supplies a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in the computer of the system or apparatus reads and executes the program. It can also be realized by processing to It can also be implemented by a circuit (for example, ASIC) that implements one or more functions.
本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。例えば、画像処理装置101と画像処理サーバ103とを別体の装置として説明したが、画像処理サーバ103が画像処理装置101の機能を具備してもよい。また、画像処理サーバ103と活字OCRサーバ104と手書きOCRサーバ105とをそれぞれ別体の装置として説明したが、画像処理サーバ103が活字OCRサーバ104と手書きOCRサーバ105としての機能を具備してもよい。また、活字OCRサーバ104と手書きOCRサーバ105とを別体の装置として説明したが、活字OCRサーバ104と手書きOCRサーバ105とが一体的に構成されていてもよい。また、画像処理サーバ103と学習装置102とを別体の装置として説明したが、画像処理サーバ103が学習装置102としての機能を具備してもよい。
The present invention may be applied to a system composed of a plurality of devices or to an apparatus composed of one device. For example, although the
100:画像処理システム、101:画像処理装置、102:学習装置、103:画像処理サーバ、104:活字OCRサーバ、105:手書きOCRサーバ 100: Image processing system, 101: Image processing device, 102: Learning device, 103: Image processing server, 104: Type OCR server, 105: Handwriting OCR server
Claims (20)
前記読取画像における、処理対象領域を抽出する第1の抽出手段と、
前記読取画像における、手書き部分と背景部分とを推定する推定手段と、
前記読取画像における、前記処理対象領域内に存在する輪郭を抽出する第2の抽出手段と、
前記抽出された輪郭の座標位置と前記推定された手書き部分の座標位置と前記推定された背景部分の座標位置とに基づいて、前記推定手段による推定結果を補正するよう制御する制御手段と、
を有することを特徴とする画像処理装置。 Acquisition means for acquiring a read image of a document including handwriting;
a first extraction means for extracting a processing target area in the read image;
estimating means for estimating a handwritten portion and a background portion in the read image;
a second extraction means for extracting a contour existing in the processing target area in the read image;
control means for controlling correction of the estimation result by the estimation means based on the coordinate position of the extracted contour, the estimated coordinate position of the handwritten portion, and the estimated coordinate position of the background portion;
An image processing device comprising:
前記画像処理装置は、
前記画像生成装置から、前記読取画像を取得する取得手段と、
前記読取画像における、処理対象領域を抽出する第1の抽出手段と、
前記読取画像における、手書き部分と背景部分とを推定する推定手段と、
前記読取画像における、前記処理対象領域内に存在する輪郭を抽出する第2の抽出手段と、
前記抽出された輪郭の座標位置と前記推定された手書き部分の座標位置と前記推定された背景部分の座標位置とに基づいて、前記推定手段による推定結果を補正するよう制御する制御手段と、
前記制御手段により補正された前記推定結果に基づき生成される手書き画像を手書きOCRの対象とし、前記制御手段により補正された前記推定結果に基づき生成される背景画像を活字OCRの対象として、前記OCR装置に対して送信する送信手段と、
を有し、
前記OCR装置は、
前記画像処理装置から、前記手書きOCRの対象と前記活字OCRの対象とを受信する受信手段と、
前記手書きOCRの対象に対して、手書き文字に対応したOCRを実行し、前記活字OCRの対象に対して、活字に対応したOCRを実行する処理手段と、
を有することを特徴とする画像処理システム。 An image processing system including an image generation device that generates a read image of a document including handwriting, an image processing device, and an OCR device,
The image processing device is
acquisition means for acquiring the read image from the image generation device;
a first extraction means for extracting a processing target area in the read image;
estimating means for estimating a handwritten portion and a background portion in the read image;
a second extraction means for extracting a contour existing in the processing target area in the read image;
control means for controlling correction of the estimation result by the estimation means based on the coordinate position of the extracted contour, the estimated coordinate position of the handwritten portion, and the estimated coordinate position of the background portion;
A handwritten image generated based on the estimation result corrected by the control means is subjected to handwritten OCR, and a background image generated based on the estimation result corrected by the control means is subjected to printed character OCR. a transmitting means for transmitting to the device;
has
The OCR device is
receiving means for receiving the handwritten OCR target and the printed character OCR target from the image processing apparatus;
a processing means for performing OCR corresponding to handwritten characters on the handwritten OCR target, and performing OCR corresponding to printed characters on the printed character OCR target;
An image processing system comprising:
前記読取画像における、処理対象領域を抽出する第1の抽出ステップと、
前記読取画像における、手書き部分と背景部分とを推定する推定ステップと、
前記読取画像における、前記処理対象領域内に存在する輪郭を抽出する第2の抽出ステップと、
前記抽出された輪郭の座標位置と前記推定された手書き部分の座標位置と前記推定された背景部分の座標位置とに基づいて、前記推定ステップによる推定結果を補正するよう制御する制御ステップと、
を含むことを特徴とする画像処理方法。 an acquisition step of acquiring a read image of a document including handwriting;
a first extraction step of extracting a processing target area in the read image;
an estimation step of estimating a handwritten portion and a background portion in the read image;
a second extraction step of extracting a contour existing in the processing target area in the read image;
a control step of controlling to correct the estimation result obtained by the estimation step based on the coordinate position of the extracted contour, the estimated coordinate position of the handwritten part, and the estimated coordinate position of the background part;
An image processing method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021131909A JP2023026170A (en) | 2021-08-13 | 2021-08-13 | Image processing device, image processing system, image processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021131909A JP2023026170A (en) | 2021-08-13 | 2021-08-13 | Image processing device, image processing system, image processing method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023026170A true JP2023026170A (en) | 2023-02-24 |
Family
ID=85252594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021131909A Pending JP2023026170A (en) | 2021-08-13 | 2021-08-13 | Image processing device, image processing system, image processing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023026170A (en) |
-
2021
- 2021-08-13 JP JP2021131909A patent/JP2023026170A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8320019B2 (en) | Image processing apparatus, image processing method, and computer program thereof | |
US8112706B2 (en) | Information processing apparatus and method | |
JP7387339B2 (en) | Image processing system, image processing method, and program | |
JP7262993B2 (en) | Image processing system, image processing method, image processing apparatus | |
US11568623B2 (en) | Image processing apparatus, image processing method, and storage medium | |
US9973654B1 (en) | Methods and devices for enhancing edges of a graphic object | |
US9626601B2 (en) | Identifying image transformations for improving optical character recognition quality | |
US20090148042A1 (en) | Text representation method and apparatus | |
JP2023030811A (en) | Information processing apparatus, extraction processing apparatus, image processing system, control method of information processing apparatus, and program | |
US8229214B2 (en) | Image processing apparatus and image processing method | |
EP2782065B1 (en) | Image-processing device removing encircling lines for identifying sub-regions of image | |
US11082581B2 (en) | Image processing apparatus and method for control to smooth a character region of a binary image and perform character recognition | |
US9582476B2 (en) | Image processing device | |
CN110210467B (en) | Formula positioning method of text image, image processing device and storage medium | |
US9215344B2 (en) | Image forming apparatus, image processing apparatus, image forming method, image processing method, and non-transitory computer readable medium | |
US20210097271A1 (en) | Character recognition using previous recognition result of similar character | |
JP2023026170A (en) | Image processing device, image processing system, image processing method, and program | |
US11288536B2 (en) | Image processing apparatus, image processing method, and non-transitory computer-readable storage medium | |
JP2023021595A (en) | Image processing device, image processing system, image processing method, and program | |
JP5517028B2 (en) | Image processing device | |
US8125691B2 (en) | Information processing apparatus and method, computer program and computer-readable recording medium for embedding watermark information | |
US20100104131A1 (en) | Document processing apparatus and document processing method | |
US20230029990A1 (en) | Image processing system and image processing method | |
JP7379063B2 (en) | Image processing system, image processing method, and program | |
JP2024035965A (en) | Information processing device, control method for information processing device, and program |