JP2023030811A - 情報処理装置、抽出処理装置、画像処理システム、情報処理装置の制御方法、及びプログラム - Google Patents

情報処理装置、抽出処理装置、画像処理システム、情報処理装置の制御方法、及びプログラム Download PDF

Info

Publication number
JP2023030811A
JP2023030811A JP2021136149A JP2021136149A JP2023030811A JP 2023030811 A JP2023030811 A JP 2023030811A JP 2021136149 A JP2021136149 A JP 2021136149A JP 2021136149 A JP2021136149 A JP 2021136149A JP 2023030811 A JP2023030811 A JP 2023030811A
Authority
JP
Japan
Prior art keywords
image
handwritten
learning
noise
processing apparatus
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
JP2021136149A
Other languages
English (en)
Inventor
剛 大石
Takeshi Oishi
裕介 村松
Yusuke Murakami
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 JP2021136149A priority Critical patent/JP2023030811A/ja
Priority to US17/884,825 priority patent/US20230062113A1/en
Publication of JP2023030811A publication Critical patent/JP2023030811A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/16Image preprocessing
    • G06V30/164Noise filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19147Obtaining sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Character Discrimination (AREA)

Abstract

【課題】様々なノイズに対する学習データを作成してノイズに対してロバストな学習を可能とすることで、スキャンなどを要因としたノイズの影響を十分に学習してノイズの影響による手書き文字の抽出精度の低下を抑える情報処理装置、抽出処理装置、画像処理システム、情報処理装置の制御方法及びプログラムを提供する。【解決手段】学習装置では、手書き画像(S501~S505でランダムに切り出された前景画像)とノイズ画像(S507~S508でランダムに切り出されたノイズ画像)とを重ねて合成画像を生成し(S509)、手書き画像における手書きの画素を示す正解ラベルを生成し(S506)、合成画像と正解ラベルとを対にしたデータを、画像から手書きの画素を推定するモデルの学習のための学習データとして生成する(S510)。【選択図】図5

Description

本発明は、情報処理装置、抽出処理装置、画像処理システム、情報処理装置の制御方法、及びプログラムに関する。
近年、コンピュータの普及に伴う労働環境の変化により、業務資料の電子化が進んでいる。こうした電子化の対象は、手書き文字が記入された文書にも及んでおり、手書き文字を抽出して電子化する技術が検討されている。
特許文献1では、保険書類点検において手書き領域を抽出し、その内容の文字認識の可否により人手によるチェックの回数を変える技術が開示されている。この技術によれば、印刷文書の手書き領域に記入された、情報価値のある手書き文字を抽出することが可能となる。このように画像中から特定のオブジェクト(特許文献1では手書き文字)を抽出するようなタスクに置いて、抽出対象の形状や背景の種類を様々な条件で学習ができるように画像を加工し、学習データを増強する技術が提案されている(特許文献2)。
特許文献2では、認識したいオブジェクトを画像中から抽出し、回転や拡縮などの画像変換を行ったものを背景となる別の画像に張り付けることによって学習データを作成することによって効率の良い学習を実現している。
特開2010-122791号公報 US-B-010546217
Long, et al. "Fully Convolutional Networks for Semantic Segmentation",The IEEE Conference on Computer Vision and Pattern Recognition(CVPR),2015,pp.3431-3440
MFP(Multifunction Peripheral)などの画像処理装置で資料を電子化した場合、スキャン毎に画像中にノイズが発生する(原稿台の汚れ、スジやゴミ等)。このようなノイズは、スキャン機能を持つデバイス特有のノイズであり、以降「スキャンノイズ」と呼称する。このようなスキャンノイズは、スキャンごとにランダムな位置に発生するため、学習データを作成する際には、できるだけ様々な位置に発生するように画像を生成することが好ましい。
しかし、特許文献2のように、スキャン画像を用いて画像の増強を行う方法によって学習データを作成すると、スキャンノイズの出現位置が固定化され、ノイズの影響に対してロバストな学習を行うことが困難となる。このため、特許文献2のように作成された学習データを用いて学習した場合、スキャンなどを要因としたノイズの影響を十分に学習することができず、ノイズの影響で手書き文字の抽出精度が低下してしまう可能性があった。
本発明は、上記の課題を解決するためになされたものである。本発明は、様々なノイズに対する学習データを作成することができ、ノイズに対してロバストな学習を行うことが可能となる仕組みを提供することを目的とする。
本発明は、手書き画像を取得する第1取得手段と、ノイズ画像を取得する第2取得手段と、前記手書き画像と前記ノイズ画像とを重ねて合成画像を生成する合成手段と、手書き画像における手書きの画素を示す正解ラベルを生成する正解ラベル生成手段と、前記合成画像と前記正解ラベルとを対にしたデータを、画像から手書きの画素を推定するモデルの学習のための学習データとして生成するデータ生成手段と、を有することを特徴とする。
本発明によれば、様々なノイズに対する学習データを作成することができ、ノイズに対してロバストな学習を行うことが可能となる。この結果、スキャンなどを要因としたノイズの影響を十分に学習することができ、ノイズの影響による手書き文字の抽出精度の低下を抑えることが可能となる。
本実施形態を示す画像処理システムの構成の一例を示す図。 画像処理装置、学習装置及び画像処理サーバのハードウェア構成図。 学習装置の論理的な構成の概略を示すブロック図。 第1実施形態における学習処理を説明するフローチャート。 第1実施形態における学習データ生成処理を説明するフローチャート。 第1実施形態における前景元画像の一例を示す図。 第1実施形態におけるノイズ元画像の一例を示す図。 第1実施形態における前景画像とノイズ画像の合成を説明する図。 第1実施形態における前景画像とノイズ画像の合成を説明する図。 第1実施形態における手書き抽出依頼処理および手書き抽出処理を説明するフローチャート。 第1実施形態における処理対象画像および処理対象画像から手書き画素を推定した結果を例示する図。 第1実施形態における手書き抽出画像および背景抽出画像を例示する図。 第2実施形態における背景元画像および学習画像の合成を説明する図。
以下、本発明を実施するための形態について図面を用いて説明する。
以下、ノイズを含めて生成した学習データを用いて学習した手書き抽出を行うニューラルネットワークを用いて、手書き記入された帳票から手書き文字を抽出し、記入内容を文字認識してデータベース等に保存する方法について説明する。
〔第1実施形態〕
図1は、本発明の一実施形態を示す画像処理システムの構成の一例を示す図である。
本実施形態の画像処理システム100は、画像処理装置101、学習装置102、画像処理サーバ103を含む。画像処理装置101、学習装置102、画像処理サーバ103は、ネットワーク104を介して接続されている。
画像処理装置101は、デジタル複合機などであり、スキャン機能や印刷機能を有する。
画像処理装置101は、白紙に手書きのみが記入された原稿をスキャン機能によりスキャンして画像データを生成する(以降、この画像を「前景元画像」と呼称する)。画像処理装置101は、このように複数枚の原稿をスキャンして前景元画像を複数生成する。
また、画像処理装置101は、白紙の原稿などをスキャンすることにより、スキャンによって発生するノイズを含んだ画像データを生成する(以降、この画像を「ノイズ元画像」と呼称する)。
そして、画像処理装置101は、ネットワーク104を介して、上述のように生成した前景元画像とノイズ元画像を学習装置102に送信する。
学習装置102は、画像処理装置101が生成した前景元画像とノイズ元画像とから、手書き抽出を行うニューラルネットワークを学習するための学習データを生成する。そして、学習装置102は、生成した学習データを用いてニューラルネットワークの学習を行って、学習結果(ニューラルネットワークのパラメータなど)を生成する。学習装置102は、学習結果を、ネットワーク104を介して、画像処理サーバ103に送信する。
また、画像処理装置101は、手書き抽出を行う際に、手書きが含まれる原稿をスキャンして処理対象とするスキャン画像データを得る(以降、このスキャン画像データを「処理対象画像」と呼称する)。そして、画像処理装置101は、処理対象画像を、ネットワーク104を介して、上述のように取得した画像処理サーバ103に送信する。
画像処理サーバ103は、画像処理装置101が生成した処理対象画像に対して手書き抽出を行う。画像処理装置101は、学習装置102が生成した学習結果を用いることで、ニューラルネットワークにより推論して処理対象画像中の手書きの画素を抽出し、手書き部分と活字部分(背景部分)を分離した画像(手書き部分の画像、活字部分の画像)を生成する。
なお、画像処理サーバ103は、上述のように生成した画像(手書き部分の画像、活字部分の画像)を、手書きOCRサーバ(不図示)や活字OCRサーバ(不図示)にそれぞれ送信し、OCR処理結果を受け取るように構成してもよい。なお、OCRは、Optical Character Recognitionの略である。
以下、図2を用いて、画像処理装置101、学習装置102及び画像処理サーバ103のハードウェア構成について説明する。
図2(a)は、画像処理装置101のハードウェア構成の一例を示すブロック図である。
画像処理装置101は、CPU201、ROM202、RAM204、プリンタデバイス205、スキャナデバイス206、原稿搬送デバイス207、ストレージ208、入力デバイス209、表示デバイス210、及び外部インターフェース211を備える。これら各デバイスは、データバス203によって相互通信可能に接続されている。
CPU201は、画像処理装置101を統括的に制御するためのコントローラである。CPU201は、ROM202に格納されているブートプログラムによりストレージ208に記憶されているOS(オペレーティングシステム)を起動する。このOS上で、ストレージ208に記憶されているコントローラプログラムが実行される。コントローラプログラムは、画像処理装置101を制御するためのプログラムである。CPU201は、データバス203によって接続されている各デバイスを統括的に制御する。RAM204は、CPU201の主メモリやワークエリア等の一時記憶領域として動作する。
プリンタデバイス205は、画像データを用紙(記録材)上に印刷するものである。これには感光体ドラムや感光体ベルトなどを用いた電子写真印刷方式や、微小ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式などがあるが、どの方式でもかまわない。
スキャナデバイス206は、CCD(Charge Coupled Device)などの光学読取装置を用いて紙などの原稿上の走査を行い、電気信号データを得てこれを変換し、スキャン画像データを生成する。また、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などの外部機器より画像データを受信する。CPU201は、受信した画像データをプリンタデバイス205により印刷したり、ストレージ208に記憶したり、外部インターフェース211により、他の外部機器に送信したりする。
また、外部インターフェース211は、スキャナデバイス206により生成された画像データやストレージ208に記憶されている画像データ等を学習装置102や画像処理サーバ103などの外部機器に送信したりする。
図2(b)は、学習装置102のハードウェア構成の一例を示すブロック図である。
学習装置102は、CPU231、ROM232、RAM234、ストレージ235、入力デバイス236、表示デバイス237、外部インターフェース238、GPU239を備える。これら各部は、データバス233を介して相互にデータを送受信することができる。
CPU231は、学習装置102の全体を制御するためのコントローラである。CPU231は、不揮発メモリであるROM232に格納されているブートプログラムによりストレージ235に記憶されているOSを起動する。このOSの上で、ストレージ235に記憶されている学習データ生成プログラムおよび学習プログラムを実行する。CPU231が学習データ生成プログラムを実行することより、学習データを生成する。また、CPU231が学習プログラムを実行することにより、手書き抽出を行うニューラルネットワークを学習する。CPU231は、データバス233などのバスを介して各部を制御する。
RAM234は、CPU231のメインメモリやワークエリア等の一時記憶領域として動作するものである。
ストレージ235は、HDDやSSDなどの読み出しと書き込みが可能な不揮発メモリであり、前述の学習データ生成プログラムや学習プログラムなど、様々なデータが記録される。
入力デバイス236は、マウスやキーボードなどから構成さる入力装置である。表示デバイス237は、図2(a)を用いて説明した表示デバイス210と同様である。
外部インターフェース238は、図2(a)を用いて説明した外部インターフェース211と同様である。
GPU239は、画像処理プロセッサであり、CPU231と協調して画像データの生成やニューラルネットワークの学習を行う。
図2(c)は、画像処理サーバ103のハードウェア構成の一例を示すブロック図である。
画像処理サーバ103は、CPU261、ROM262、RAM264、ストレージ265、入力デバイス266、表示デバイス267、外部インターフェース268を備える。これらの各部は、データバス263を介して相互にデータを送受信することができる。
CPU261は、画像処理サーバ103の全体を制御するためのコントローラである。CPU261は、不揮発メモリであるROM262に格納されているブートプログラムによりストレージ265に記憶されているOSを起動する。このOSの上で、ストレージ265に記憶されている画像処理サーバプログラムを実行する。CPU261がこの画像処理サーバプログラムを実行することより、処理対象画像から手書きの画素を抽出して消去する。CPU261は、データバス263などのバスを介して各部を制御する。
RAM264は、CPU261のメインメモリやワークエリア等の一時記憶領域として
動作するものである。
ストレージ265は、HDDやSSDなどの読み出しと書き込みが可能な不揮発メモリであり、前述の画像処理プログラムなど、様々なデータが記録される。
入力デバイス266は、図2(b)を用いて説明した入力デバイス236と同様である。表示デバイス267は、図2(a)を用いて説明した表示デバイス210と同様である。
外部インターフェース268は、図2(a)を用いて説明した外部インターフェース211と同様である。
なお、学習装置102や画像処理サーバ103は情報処理装置であり、1台のコンピュータにより実現されるものであっても、複数のコンピュータにより実現されるものであってもよい。例えば、学習装置102や画像処理サーバ103は、クラウドコンピューティングの技術を用いて実現される構成でもよい。学習装置102や画像処理サーバ103は、クラウドサービス等により実現される構成であってもよい。
図3は、学習装置102の論理的な構成の概略を示すブロック図である。
学習データ生成部301は、ニューラルネットワークを学習するための学習データを生成する。CPU231が、学習データ生成プログラムをRAM234に展開して実行することによって、学習データ生成部301が実現される。
学習部302は、学習データ生成部301が生成した学習データを用いて、ニューラルネットワークを学習する。CPU231が、学習プログラムをRAM234に展開して実行することによって、学習部302が実現される。
なお、CPU231が、学習データ部301や学習部302が実行する計算処理の一部をGPU239と協調して実行する構成でもよい。
次に、学習装置102による学習処理について説明する。
図4は、第1実施形態における学習処理を説明するフローチャートである。この処理は、学習装置102の学習部302等により実現される。すなわち、CPU231が学習プログラム等をRAM234に展開して実行することにより実現される。
この学習処理は、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。なお、本実施形態において、ニューラルネットワークの学習には、ミニバッチ法を用いるものとするが、これに限定されない。なお、学習処理の開始は上記のような手段だけではなく、ネットワーク104を介してPC(不図示)などから受け付けた入力をトリガーとして実行するようにしてもよい。
まずS401において、CPU231は、ニューラルネットワークを初期化する。すなわち、CPU231は、ニューラルネットワークを構築し、当該ニューラルネットワークに含まれる各パラメータの値を、ランダムに決定して初期化する。構築するニューラルネットワークの構造は、様々なものを用いることができるが、例えば、非特許文献1に示されるFCN(Fully Convolutional Networks)の形態を取り得る。
次にS402において、CPU231は、学習データを取得する。CPU231は、後述する学習データ生成処理を実行して、所定の数(ミニバッチサイズ、例えば「10」)の学習データを取得する。なお、ここでは、学習データ生成部301で予め生成されてストレージ235等に記憶されている学習データを取得する構成でもよい。
次にS403~S404において、CPU231は、ニューラルネットワークの学習を行う。
まずS403で、CPU231は、ニューラルネットワークの誤差を算出する。まず、CPU231は、各学習データに含まれる入力画像をニューラルネットワークに入力して出力を得る。当該出力は、入力画像と同じ画像サイズの画像であり、予測結果として、手書きであると判定された画素は、画素の値が手書きを示す値、そうではないと判定された画素は、画素の値が手書きではないことを示す値である画像である。そして、CPU231は、当該出力と正解ラベル画像との差を評価して誤差を求める。当該評価には、指標として交差エントロピーを用いることができる。
次にS404で、CPU231は、ニューラルネットワークのパラメータを調整する。すなわち、CPU231は、上記S403において算出した誤差をもとに、バックプロパゲーション法によってニューラルネットワークのパラメータ値を変更する。
次にS405において、CPU231は、学習を終了するか否かを判定する。詳細には、CPU231は、上記S402~S404の処理を、所定回数(例えば「60000回」)行ったか否かを判定する。当該所定回数は、本学習処理の開始時にユーザが操作入力するなどして決定することができる。まだ所定回数行っていない場合、CPU231は終了しないと判断し(S405でNOと判断し)、S402に遷移し、ニューラルネットワークの学習を続ける。
一方、すでに所定回数行った場合、CPU231は終了すると判断し(S405でYESの場合)、CPU231は、S406に処理を遷移する。
S406で、CPU231は、学習結果として、上記S404で調整したニューラルネットワークのパラメータを、画像処理サーバ103に送信し、本フローチャートの処理を終了する。
次に、学習装置102による学習データ生成処理について説明する。
図5は、第1実施形態における学習データ生成処理を説明するフローチャートである。この処理は、学習装置102の学習データ生成部301により実現される。すなわち、CPU231が学習データ生成をRAM234に展開して実行することにより実現される。
まずS501において、CPU231は、ストレージ235に記憶している前景元画像を選択して読み出す。この前景元画像について図6を用いて説明する。
図6は、前景元画像の一例を示す図である。
図6のように、前景元画像は、手書きのみにより文字等が書かれた画像である。前景元画像は、例えば、図6のように白紙600に手書き文字601~603が記入された原稿を画像処理装置101でスキャンすることによって生成される。学習装置102は、あらかじめ、上述のように生成された複数の前景元画像を、画像処理装置101から受信し、ストレージ235に記憶しているものとする。上記S501では、その中からランダムに一つを選択する。
次にS502において、CPU231は、上記S501で読み出した前景元画像を回転して加工する。回転角度は所定の範囲(例えば「-10度~+10度の間」)からランダムに選択して決定する。
次にS503において、CPU231は、上記S502で回転された前景元画像の一部(例えば「縦×横=512×512」の大きさ)を切り出した画像データを生成する(以降この画像データを「前景画像」と呼称する)。なお、切り出す位置はランダムに決定する。
次にS504において、CPU231は、上記S503で生成した前景画像を、変倍して加工する。変倍率は所定の範囲(例えば「50%~150%の間」)からランダムに選択して決定する。さらに、変倍後の前景画像の一部(例えば「縦×横=256×256」の大きさ)を中央等から切り出して前景画像を更新する。
次にS505において、CPU231は、前景画像の各画素の輝度を変更して加工する。詳細には、CPU231は、前景画像をグレースケール化し、そしてガンマ補正を用いて前景画像の輝度を変更する。ガンマ値は所定の範囲(例えば「0.1~10.0」の間)からランダムに選択して決定する。
次にS506において、CPU231は、前景画像に対して正解ラベル画像を生成する(正解ラベル生成処理)。まず、CPU231は、前景画像に対して二値化処理を行う。CPU231は予め定めた閾値より低い値である画素の値を、手書きを示す値(例えば「255」以降も同様)とし、他の画素の値を、手書きではないことを示す値(例えば「0」以降も同様)とした画像データを前景画像に対する正解ラベル画像として生成する。二値化の方法は、閾値を用いた方法に限ることはなく、公知の2値化手法を適用することが可能である。
次にS507において、CPU231は、ストレージ235に記憶しているノイズ元画像を選択して読み出す。このノイズ元画像について図7を用いて説明する。
図7は、ノイズ元画像の一例を示す図である。
ノイズ元画像は、帳票などをスキャンした場合に画像中に現れるノイズを含む画像であり、例えば、白紙を画像処理装置101でスキャンすることによって生成される。学習装置102は、あらかじめ、上述のように生成されたノイズ元画像を、画像処理装置101から受信し、ストレージ235に記憶しているものとする。
図7では、白紙701を画像処理装置101のスキャン機能を介して得られたスキャン画像702中に、ノイズ704およびノイズ705が発生している例を示している。
ノイズ704は、例えばスキャンによってランダムに現れるスキャンノイズを表している。また、ノイズ705は、例えば画像処理装置101の汚れなどに起因するスジ状のノイズを表している。また、これら以外に、読取りデバイス(CCD、ラインセンサ)に応じたノイズ、画像処理する過程で施した画像圧縮による圧縮ノイズなども含まれる。
次にS508において、CPU231は、上記S507で取得したノイズ元画像の一部(例えば「縦×横=512×512」の大きさ)を切り出した画像データを生成する(以降、この画像データを「ノイズ画像」と呼称する)。切り出す位置はランダムに決定する。なお、この時切り出したノイズ画像の画素値を評価し、一定のノイズを含まないようなノイズ画像は採用せず、別の位置から切り出すように構成してもよい。例えば、画素値の輝度値が閾値(例えば「200」)を下回る場合に画素にノイズが発生しているとし、切り出した画像中の各画素に対して判定を行う。あらかじめ設定した割合(例えば画素数の「10%」)を下回る場合には切り出したノイズ画像は採用せず、再度別のノイズ画像を切り出すといった形態が考えられる。なお、ノイズの判定処理はこの形態に限定したものではなく、ノイズの有無を評価する別形態を用いてもよい。
次にS509において、CPU231は、上記S501~S505で取得した前景画像と上記S507~S508で取得したノイズ画像の合成を行うことにより、画像を生成する(以降、この画像を「合成画像」と呼称する)。例えばCPU231は、前景画像とノイズ画像のそれぞれ同じ座標を比較し、輝度の低い方の画素値を採用した新しい画像を作ることで画像の合成を行う。なお、合成の手段は上記に限らず、例えば、それぞれの画像中の同じ座標の画素を一定の割合でブレンドするようにして画素値を決めるようにしてもよい。
次にS510において、CPU231は、上記S509で合成して生成した合成画像と、上記S506で生成した正解ラベル画像とを対応付け、学習データとしてストレージ235の所定の領域に保存する。
次にS511において、CPU231は、学習データ生成処理を終了するか否かを判定する。まだ予め決定した学習データの数だけ学習データを生成していない場合、CPU231は、まだ終了しないと判断し(S511でNOと判断し)、S501に処理を遷移する。
一方、すでに予め決定した学習データの数だけ学習データを生成している場合、CPU231は、終了すると判断し(S511でYESと判断し)、本フローチャートの処理を終了する。
以下、上述のように生成された学習データについて図8A、図8Bを用いて説明する。
図8A、図8Bは、第1実施形態における前景画像とノイズ画像を合成した合成画像の一例を示す図である。以下、図8A、図8Bをまとめて図8と記載する。
図8(a)は、第1実施形態における学習画像の合成イメージを示すものである。
前景画像801は、図5のS501~S505によって生成された前景画像の例である。これは、図6に例示した前景元画像600中の手書き文字601が部分的に切り出されて回転などの処理が加えられた画像である。
ノイズ画像802は、図5のS507~S508によって生成されたノイズ画像の例である。これは、図7に例示したノイズ元画像702中のノイズ704が部分的に切り出されて生成された画像である。
合成画像803は、図5のS508によって生成された合成画像の例である。前景画像801およびノイズ画像802に対して同一座標の画素値を比較するなどして生成した画像である。
正解ラベル画像804は、図5のS506によって生成された正解ラベル画像の例である。画像801の手書き文字部分を表すように画素が構成されており、合成画像803と対になるように学習データとして取り扱われる。
図8(b)~図8(d)は、画素レベルでの合成イメージを示すものである。
図8(b)、図8(c)および図8(d)は、それぞれ前景画像801、ノイズ画像802、合成画像803中の同一座標(幅:x1~x2、高さ:y1~y2)で切り出された部分画像である。矩形は、画像を構成する画素を表している。
合成画像807の各画素は、上述の通り合成対象となる前景画像805とノイズ画像806の同一座標の画素値に基づいて決定される。合成画像807中の画素810は、同一の座標である前景画像805の画素808と、ノイズ画像806の画素809が持つ輝度値を比較し、画素の輝度値が低い方の輝度値を採用する。画素810においては、前景画像805の画素808の輝度値のほうが低いと判断され、画素810の輝度値として採用されている。一方、画素813の場合、前景画像805の画素811とノイズ画像806の画素812を比較し、輝度値が低いと判定されたノイズ画像806の画素812が合成画像807の画素813に採用される。
以上のように、本実施形態では、手書き文字画像(前景画像)とノイズ画像を重ねて合成画像を生成し、合成結果と手書き文字のラベル情報(正解ラベル画像)を組み合わせて学習データを生成する。これにより、様々なノイズに対する学習データを作成することができ、ノイズに対してロバストな学習を行うことが可能となる。
次に、画像処理装置101のスキャン機能により原稿から画像データを読み取り、画像処理サーバ103で手書き文字抽出を行う事例について説明する。
まず画像処理装置101は、活字および手書き文字を含む原稿をスキャンして処理対象画像を得る。そして、処理対象画像を画像処理サーバ103に送信して手書き文字の抽出を依頼する。以下、図9(a)を用いて説明する。
図9(a)は、画像処理装置101による手書き抽出依頼処理の一例を示すフローチャートである。この処理は、画像処理装置101のCPU201が、ストレージ208に記録されているコントローラプログラムを読み出し、RAM204に展開して実行することにより実現される。この処理は、ユーザが、画像処理装置101の入力デバイス209を介して所定の操作を行うことで開始される。
まずS901において、CPU201は、スキャナデバイス206や原稿搬送デバイス207を制御して、原稿をスキャンして処理対象画像を生成する。処理対象画像は、フルカラー(RGB3チャネル)の画像データとして生成される。ここでスキャンする原稿は、例えば図10(a)に示すような注文票などの帳票であり、各項目の右に手書きで値が記入されている。
次にS902において、CPU201は、上記S901で生成した手書き抽出処理対象を、外部インターフェース211を介して、画像処理サーバ103に送信する。
次に画像処理サーバ103による手書き抽出処理について説明する。
画像処理サーバ103は、画像処理装置101から処理対象画像を受信し、当該スキャン画像データに含まれる手書き文字を抽出した画像データを得る。以下、図9(b)を用いて説明する。
図9(b)は、画像処理サーバ103による手書き抽出処理の一例を示すフローチャートである。この処理は、CPU261が、ストレージ265に記憶されている画像処理サーバプログラムを読み出し、RAM264に展開して実行することで実現される。この処理は、例えば、ユーザが画像処理サーバ103の電源をON(オン)にすると開始される。
まずS911において、CPU261は、手書き抽出を行うニューラルネットワークをロードする。まずCPU261は、図4のS401の場合と同一のニューラルネットワークを構築する。そして、図4のS406において学習装置102から送信された学習結果(ニューラルネットワークのパラメータ)を、構築したニューラルネットワークに反映する。これにより、画像から手書きの画素を推定するための学習済みモデルが生成される。
なお、画像処理サーバ103は、あらかじめ図4のS406において学習装置102から送信された学習結果を受信し、ストレージ265に記憶しているものとする。
次にS912において、CPU261は、処理対象となる処理対象画像を、画像処理装置101より受信し、取得したかを判定する。外部インターフェース268を介して処理対象画像を取得している場合(S912でYESの場合)、CPU261は、S913に遷移する。一方、そうでない場合(S912でNOの場合)、CPU261は、S917に遷移する。
S913では、CPU261は、画像処理装置101から受信した処理対象画像から手書きの画素を抽出する。まずCPU261は、処理対象画像をグレースケール化する。そして、このグレースケール化した処理対象画像を、上記S911で構築したニューラルネットワークに入力して、手書きの画素を推定させる。すなわち、上記S911で生成した学習済みモデルを用いて、手書き画素を推定する。この結果、処理対象画像と同じサイズであり、手書きであると判定された画素には、手書きであること示す値(例えば「1」)、手書きではないと判定された画素には、手書きではないことを示す値(例えば「0」)が、それぞれ記録された画像データが得られる。以下、図10を用いて説明する。
図10(a)の画像を「処理対象画像」として、手書き画素を推定した結果の画像を図10(b)に示す。図10では、結果を見やすくするために、値が「0」の画素を黒、値が「1」の画素を白で表現している。以降この画像データを「推定結果」と呼称する。
次にS914において、CPU261は、上記S913で作成した推定結果をマスクとして、処理対象画像から手書きに対応する部分を抽出し、手書きだけの画像を作成する。具体的には、処理対象画像と同じサイズの画像であり、推定結果が手書きの座標(画素)に処理対象画像の画素値を、推定結果が手書きではない座標(画素)に「255」をそれぞれ代入した画像を作る。以降この画像を「手書き抽出画像」と呼称する。ここで作成された手書き抽出画像を図11(a)に例示する。
次にS915において、CPU261は、上記S913で作成した推定結果をマスクとして、処理対象画像から背景に対応する部分を抽出し、背景だけの画像を作成する。具体的には、処理対象画像と同じサイズの画像であり、推定結果が手書きではない座標(画素)に処理対象画像の画素値を、推定結果が手書きの座標(画素)に「255」をそれぞれ代入した画像を作る。以降この画像を「背景抽出画像」と呼称する。ここで作成された背景抽出画像を図11(b)に例示する。
次にS916において、CPU261は、手書き抽出画像および背景抽出画像を出力する。詳細には、CPU261は、上記S914で得た手書き抽出画像および上記S915で得た背景抽出画像を、外部インターフェース268を介して、画像処理装置101に送信する。
次にS917において、CPU261は、処理を終了するか否かを判定する。ユーザが、画像処理サーバ103の電源のOFFなどの所定の操作を行った場合、CPU261は、処理を終了すると判定し(S917でYESと判定し)、本フローチャートの処理を終了する。そうでない場合、CPU261は、処理を終了しないと判定し(S917でNOと判定し)、S912に処理を遷移する。
なお、上記S916では、手書き抽出結果を画像処理装置101に送信したが、別の処理を行うように構成してもよい。例えば、外部インターフェース268を通して手書き抽出画像および背景抽出画像をそれぞれ手書きOCRサーバ(不図示)および活字OCRサーバ(不図示)に送信して各OCRの入力としたり、DBサーバ(不図示)に送信して保存してもよい。このように、手書き抽出結果の出力先は限定されない。
以上に示したように、手書き文字のみを含む画像データとノイズのみを含む画像データを用いて、手書き文字とノイズが重なるように合成して手書き抽出を行うニューラルネットワークを学習するための学習データを生成する。そして、生成した学習データを用いてニューラルネットワークを学習し、当該学習の結果を用いて、スキャン画像中から手書き文字の領域を抽出することが可能となる。この時、ノイズ画像を学習データに合成して学習したことによって、スキャン時に発生するノイズの影響によらず、精度の良い抽出結果を得ることが可能となる。
なお、本実施形態では、学習データ生成部301と学習部302は、学習装置102において実現されるものとしたが、それぞれ別体の装置において実現されるようにしてもよい。この場合、学習データ生成部301を実現する装置は、学習データ生成部301が生成した学習データを、学習部302を実現する装置に送信する。そして、学習部302は受信した学習データをもとにニューラルネットワークを学習する。
また、画像処理装置101、画像処理サーバ103、別体の装置として説明したが、この構成に限らず複数の機能を同じ装置で行うよう集約してもよい。
また、本実施形態では、学習処理において、学習データ生成処理を呼び出して学習データを生成した。しかし、事前に学習データ生成処理によって学習データを大量に生成しておいて、学習処理時にはそこから随時、ミニバッチサイズ分をサンプルするようにしてもよい。
また、押印のみが成された原稿(白紙に印影のみの原稿)をスキャンして前景元画像を生成したり、電子文書を印字した薄紙の裏面をスキャンして前景元画像を生成したりしてもよい。これらにより、押印や裏写りに対応する画素を検出するニューラルネットワークを学習するための学習データを合成して生成することができる。
また、図5のS505やS506で得た前景画像およびこれに対する正解ラベル画像を学習データに含めてもよい。図5のS508で得たノイズ画像と、これに対する正解ラベル画像として、ノイズ画像と同じ画像サイズであり、全ての画素が手書きではないことを示す値である画像を生成し、学習データに含めてもよい。
なお、本実施形態では、入力画像をグレースケール画像として生成したが、フルカラー画像など他の形式として生成してもよい。
なお、本実施形態では、ノイズ画像に対して回転などの画像加工を行っていないが、前景画像と同様に画像加工の処理(図5のS502、S504、S505など)を含めて画像を生成するような手段をとってもよい。
〔第2実施形態〕
第1実施形態では、手書き画像である前景画像に対してノイズ画像の合成を行った。しかし、活字や罫線など背景となる情報を含んだ画像(以下「背景元画像」と呼称する)と前景画像を合成し、その合成画像に対してノイズ画像を合成するように構成してもよい。以下、この実施形態について図12を用いて説明する。
図12(a)は、第2実施形態における背景元画像を例示する図である。
背景元画像1201は帳票のフォーマットを示したものである。第2実施形態では、図12(a)のように、「フリガナ」など帳票の入力項目を表す活字1202や、罫線1203を含んだ画像を背景情報として合成の素材として用いる。
図12(b)は、第2実施形態における学習画像の合成イメージを示すものであり、前景画像とノイズ画像を用いた第1実施形態の例に背景画像を加えた場合の合成例を示す。
図12(b)の例では、まず前景画像1211と背景画像1212の合成を行い、合成画像1213を生成する。背景画像1212として、元となる背景元画像(例えば背景元画像1201)に対して、第1実施形態における図5のS501~S505と同様の処理を行い、部分的に切り出したものを使用する。そして、生成した合成画像1213に対して、さらにノイズ画像1214を合成することによって、最終的な学習データ画像1215を生成する。なお、上記の前景画像およびノイズ画像の生成方法は第1実施形態と同様である。
なお、上記各実施形態の学習データ生成処理において、ノイズ画像を前景画像または前景画像と背景画像を合成した合成画像に対して合成する場合に、一定の割合でノイズ画像を合成しない画像を設けてもよい。これにより、ノイズの影響が少ない場合の学習データを含めることが可能となる。
なお、上記各実施形態では、画像から手書きの画素を推定するモデルとして、ニューラルネットワークを用いたモデルを例示しているが、これに限定されるものでない。
以上、各実施形態では、手書き文字画像とノイズのみが存在する画像を用いて、合成画像を生成し、合成結果と手書き文字のラベル情報を組み合わせて学習を行う構成を説明した。これにより、様々なノイズに対する学習データを作成することができ、ノイズに対してロバストな学習を行うことが可能となる。この結果、スキャンなどを要因としたノイズの影響を十分に学習することができ、ノイズの影響による手書き文字の抽出精度の低下を抑えることが可能となる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
101 画像処理装置
102 学習装置
103 画像処理サーバ

Claims (12)

  1. 手書き画像を取得する第1取得手段と、
    ノイズ画像を取得する第2取得手段と、
    前記手書き画像と前記ノイズ画像とを重ねて合成画像を生成する合成手段と、
    手書き画像における手書きの画素を示す正解ラベルを生成する正解ラベル生成手段と、
    前記合成画像と前記正解ラベルとを対にしたデータを、画像から手書きの画素を推定するモデルの学習のための学習データとして生成するデータ生成手段と、
    を有することを特徴とする情報処理装置。
  2. 前記第2取得手段は、白紙の原稿を読み取ることで生成された画像からランダムに切り出された画像を前記ノイズ画像として取得することを特徴とする請求項1に記載の情報処理装置。
  3. 前記第1取得手段は、手書きで書かれた画像からランダムに切り出された画像を前記手書き画像として取得することを特徴とする請求項2に記載の情報処理装置。
  4. 前記合成手段は、前記手書き画像と前記ノイズ画像の対応する画素の画素値をそれぞれ比較し、該比較の結果に応じて前記合成画像の画素値を決定することを特徴とする請求項1~3のいずれか1項に記載の情報処理装置。
  5. 前記正解ラベル生成手段は、前記手書き画像を二値化することで前記正解ラベルを生成することを特徴とする請求項1~4のいずれか1項に記載の情報処理装置。
  6. 前記合成手段は、前記手書き画像、背景となる情報を含んだ画像、および、前記ノイズ画像を重ねて合成画像を生成する、ことを特徴とする請求項1~5のいずれか1項に記載の情報処理装置。
  7. 前記学習データを用いて、画像から手書きの画素を推定するモデルの学習を行う学習手段を有することを特徴とする請求項1~6のいずれか1項に記載の情報処理装置。
  8. 請求項1~6のいずれか1項に記載の情報処理装置で生成された学習データを用いて学習したモデルを用いて、処理対象の画像から手書きの画素を推定する推定手段を有することを特徴とする抽出処理装置。
  9. 前記推定手段による推定の結果に基づき、前記処理対象の画像から、手書きに対応する部分を抽出した画像と、背景に対応する分を抽出した画像を作成する作成手段を有することを特徴とする請求項8に記載の抽出処理装置。
  10. 請求項1~6のいずれか1項に記載の情報処理装置と、請求項8又は9に記載の抽出処理装置を有することを特徴とする画像処理システム。
  11. 手書き画像を取得する第1取得工程と、
    ノイズ画像を取得する第2取得工程と、
    前記手書き画像と前記ノイズ画像とを重ねて合成画像を生成する合成工程と、
    前記手書き画像における手書きの画素を示す正解ラベルを生成する正解ラベル生成工程と、
    前記合成画像と前記正解ラベルとを対にしたデータを、画像から手書きの画素を推定するモデルの学習のための学習データとして生成するデータ生成工程と、
    を有することを特徴とする情報処理装置の制御方法。
  12. コンピュータを、請求項1~7のいずれか1項に記載の各手段として機能させるためのプログラム。
JP2021136149A 2021-08-24 2021-08-24 情報処理装置、抽出処理装置、画像処理システム、情報処理装置の制御方法、及びプログラム Pending JP2023030811A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021136149A JP2023030811A (ja) 2021-08-24 2021-08-24 情報処理装置、抽出処理装置、画像処理システム、情報処理装置の制御方法、及びプログラム
US17/884,825 US20230062113A1 (en) 2021-08-24 2022-08-10 Information processing apparatus, information processing method and non-transitory storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021136149A JP2023030811A (ja) 2021-08-24 2021-08-24 情報処理装置、抽出処理装置、画像処理システム、情報処理装置の制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2023030811A true JP2023030811A (ja) 2023-03-08

Family

ID=85286286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021136149A Pending JP2023030811A (ja) 2021-08-24 2021-08-24 情報処理装置、抽出処理装置、画像処理システム、情報処理装置の制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US20230062113A1 (ja)
JP (1) JP2023030811A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023067164A (ja) * 2021-10-29 2023-05-16 キヤノン株式会社 画像処理装置及び画像処理方法

Also Published As

Publication number Publication date
US20230062113A1 (en) 2023-03-02

Similar Documents

Publication Publication Date Title
JP4118749B2 (ja) 画像処理装置、画像処理プログラムおよび記憶媒体
JP7387339B2 (ja) 画像処理システム、画像処理方法、及びプログラム
JP2015195549A (ja) 画像処理装置、画像処理方法
JP4350778B2 (ja) 画像処理装置、画像処理プログラムおよび記録媒体
JP7262993B2 (ja) 画像処理システム、画像処理方法、画像処理装置
JP2018139457A (ja) 画像処理装置、画像処理の制御方法、及びプログラム
US7991231B2 (en) Method and apparatus for determining whether image characters or graphics are handwritten
JP2023030811A (ja) 情報処理装置、抽出処理装置、画像処理システム、情報処理装置の制御方法、及びプログラム
US9338310B2 (en) Image processing apparatus and computer-readable medium for determining pixel value of a target area and converting the pixel value to a specified value of a target image data
JP6452657B2 (ja) 画像処理装置、その制御方法、及びプログラム
JP2022147074A (ja) 画像処理装置、画像処理方法およびプログラム
WO2020105366A1 (ja) 情報処理装置、情報処理方法、プログラムおよび記憶媒体、並びに、画像形成システム
JP2020067959A (ja) 画像処理装置、その制御方法及びプログラム
US8260057B2 (en) Image processing apparatus that obtains a ruled line from a multi-value image
JP4941157B2 (ja) ぬりえ製造装置、ぬりえ製造方法及びそのプログラム
JP2019114927A (ja) 画像処理装置、コンピュータプログラム、および、画像処理方法
JP2009017247A (ja) 画像処理装置およびプログラム
JP4059389B2 (ja) 画像処理装置、画像処理プログラムおよび記憶媒体
JP2018182464A (ja) 画像処理装置及びプログラム
JP5517028B2 (ja) 画像処理装置
JP2020087320A (ja) 画像処理装置、画像処理方法、及びプログラム
JP6025803B2 (ja) 画像処理装置
US11811984B2 (en) Image processing system, image processing apparatus and method of controlling the same, and storage medium
JP2023021595A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP7362405B2 (ja) 画像処理装置、画像処理方法、およびプログラム