(57)【要約】【課題】妨げ要素を含む画像から妨げ要素を含まない画像を生成するよう生成器を学習させる方式よりも、生成画像に対する処理に適した画像を生成器が生成できるようにする。【解決手段】妨げ要素を含む学習用画像１０２から生成器１０が生成した生成画像１５０は評価器３０に入力される。評価器３０内の本体処理部３２は、生成画像１５０と、学習用画像１０２から妨げ要素を除いた正解画像１０４と、の各々に対して所定の本体処理を行い、各々についての本体処理の結果を出力する。評価値計算部３４は、生成画像１５０と正解画像１０４の各々についての前記本体処理の結果から、生成画像１５０の評価値を計算する。評価値推定部３６は評価値計算部３４が計算する評価値を推定する。評価値推定部３６は、推定した評価値と、評価値計算部３４が計算下評価値との差に基づいて学習する。生成器１０は、評価値推定部３６が推定した評価値に基づいて学習する。【選択図】図３
2020140346.tif 000002
【特許請求の範囲】
【請求項１】
入力画像から生成画像を生成する生成手段と、
前記生成画像に対して処理を実行して処理結果を出力する処理手段と、
前記処理結果を評価する評価手段であって、前記評価の結果として、前記入力画像が前記生成手段に入力された場合に前記処理手段の前記処理によって得られるべき正解、に対する前記処理結果の近さを表す評価値を出力する、評価手段と、
正解画像に対して前記処理の妨げとなる妨げ要素が加わった学習用画像を前記入力画像として前記生成手段に入力し、前記学習用画像に応じて前記評価手段が出力した前記評価値に基づいて前記生成手段に学習を行わせる学習手段と、
を含む画像処理装置。
【請求項２】
前記生成手段が前記学習用画像から生成した前記生成画像と、前記学習用画像に対応する前記正解画像と、のうちの少なくとも一方の画像が入力され、入力された画像が前記生成画像及び前記正解画像のうちのいずれであるかの識別を実行する識別手段であって、前記識別の結果と、前記一方の画像に対応付けて入力される、前記一方の画像が前記生成画像及び前記正解画像のうちのいずれであるかを示す解答情報と、の比較に基づいて前記識別を学習可能な識別手段、
を更に含み、前記生成手段は、前記学習において、更に、前記識別の結果と前記解答情報との前記比較の結果とを用いる、請求項１に記載の画像処理装置。
【請求項３】
前記生成手段と前記識別手段との組は、敵対的生成ネットワークとして構成されており、
前記学習手段は、前記生成手段に学習を行わせるのと並行して、前記識別手段に対して前記正解画像又は前記生成画像を入力することにより前記識別手段に前記識別の学習を行わせ、前記生成手段の学習により前記識別手段による前記識別の結果が所定条件を満たすと前記識別手段の学習を終了し、その後、更なる前記入力画像を前記生成手段に入力して前記生成手段を更に学習させる、
請求項２に記載の画像処理装置。
【請求項４】
前記評価手段は、
前記処理結果と、前記学習用画像と対応付けて入力される、前記学習用画像から前記生成手段が生成する前記生成画像に対する前記処理によって得られるべき正解と、を比較することにより、前記評価値を計算する評価値計算手段と、
前記生成画像から所定の計算により前記処理結果の前記評価値の推定する推定手段であって、前記推定手段が推定した評価値と、前記評価値計算手段が計算した前記評価値と、の差に基づいて、前記推定についての学習を行う推定手段と、
を含み、
前記学習手段は、前記生成手段を学習させるのに用いる前記評価値として、前記推定手段が推定した前記評価値を用いる、請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記学習用画像に対応する前記正解画像が入力され、当該正解画像に対して前記処理を実行することにより得られた処理結果を、前記正解として前記評価値計算手段に入力する手段、
を更に含む、請求項４に記載の画像処理装置。
【請求項６】
ユーザに対して、前記学習用画像、前記正解画像、又は当該学習用画像から前記生成手段が生成した前記生成画像を提示し、前記処理により得られるべき前記正解の入力を前記ユーザから受け付け、受け付けた前記正解を前記評価値計算手段に入力する手段、
を更に含む、請求項４に記載の画像処理装置。
【請求項７】
コンピュータを、
入力画像から生成画像を生成する生成手段、
前記生成画像に対して処理を実行して処理結果を出力する処理手段、
前記処理結果を評価する評価手段であって、前記評価の結果として、前記入力画像が前記生成手段に入力された場合に前記処理手段の前記処理によって得られるべき正解、に対する前記処理結果の近さを表す評価値を出力する、評価手段、
正解画像に対して前記処理の妨げとなる妨げ要素が加わった学習用画像を前記入力画像として前記生成手段に入力し、前記学習用画像に応じて前記生成手段が生成した前記生成画像と前記正解画像との差と、前記学習用画像に応じて前記評価手段が出力した前記評価値と、に基づいて前記生成手段に学習を行わせる学習手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
画像に対して文字認識等の処理を行う場合に、その画像から、その処理の妨げとなる要素（以下、妨げ要素と呼ぶ）を除去する前処理を行うことがある。妨げ要素は、前処理に対する本体の処理（例えば文字認識）の精度（すなわち正解率）を低下させる要素である。
【０００３】
例えばＦＡＸ送信やコピー等の繰り返し、筆記具等による記入の重なり、透かしやステガノグラフィ等の地紋の重なり、あるいはそれらの混合等により、本来の処理の対象である画像が激しく劣化する場合がある。このような劣化により、本来の画像から変化した部分が妨げ要素の一例である。
【０００４】
また、帳票のように記入枠や罫線等を含んだ文書から、人間が記入した文字のみを文字認識するシステムでは、記入枠や罫線等が文字と重なる等により、文字認識の精度の低下をもたらす場合がある。この場合、記入枠や罫線等が妨げ要素となる。
【０００５】
妨げ要素を除く前処理としては、例えば画像の二値化、画像から特定の色の部分を除去する処理（カラードロップアウトとも呼ばれる）等が知られている。二値化やカラードロップアウトにより、薄い地紋や罫線等、あるいは特定色の地紋や罫線等が除去又は低減される。
【０００６】
また、前処理にニューラルネットワーク等の機械学習技術を用いることも行われている。
【０００７】
特許文献１には、撮影した文書に対するＯＣＲ（光学文字認識）処理において、前処理、レイアウト分析、文字認識処理等を、ニューラルネットワークを利用して行うシステムが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−００８８０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
妨げ要素を含む入力画像が入力され、この入力画像から妨げ要素を低減された生成画像を生成するよう学習した生成手段を考える。このような生成手段を構成するには、妨げ要素を含まない正解画像と、その正解画像に妨げ要素を加えた入力画像と、のペアを学習データとして生成手段に与え、生成手段が入力画像から生成する生成画像が正解画像に近くなるよう生成手段を学習させるという方法が考えられる。
【００１０】
しかし、この方法で構成された生成手段が生成する生成画像は、必ずしも本体の処理に適した画像とならない。生成手段が妨げ要素を除くことに最適化しすぎた結果、生成手段が、本体の処理の対象となる部分を変化させる場合があるからである。例えば、地紋有りの入力画像と地紋有りの正解画像のペアを用いて学習した生成手段は、入力画像中から地紋を除去した生成画像を生成するものの、その地紋の除去に伴って生成画像中の文字の濃度が薄くなったり、文字の一部が消えたりすることがある。このように濃度が薄くなったり文字の一部が消えたりした画像は、本体の処理の一例である文字認識の精度の低下を招く。
【００１１】
本発明は、妨げ要素を含む画像から妨げ要素を含まない画像を生成するよう生成手段を学習させる方式よりも、その生成画像に対する処理に適した生成画像を生成手段が生成できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
請求項１に係る発明は、入力画像から生成画像を生成する生成手段と、前記生成画像に対して処理を実行して処理結果を出力する処理手段と、前記処理結果を評価する評価手段であって、前記評価の結果として、前記入力画像が前記生成手段に入力された場合に前記処理手段の前記処理によって得られるべき正解、に対する前記処理結果の近さを表す評価値を出力する、評価手段と、正解画像に対して前記処理の妨げとなる妨げ要素が加わった学習用画像を前記入力画像として前記生成手段に入力し、前記学習用画像に応じて前記評価手段が出力した前記評価値に基づいて前記生成手段に学習を行わせる学習手段と、を含む画像処理装置である。
【００１３】
請求項２に係る発明は、前記生成手段が前記学習用画像から生成した前記生成画像と、前記学習用画像に対応する前記正解画像と、のうちの少なくとも一方の画像が入力され、入力された画像が前記生成画像及び前記正解画像のうちのいずれであるかの識別を実行する識別手段であって、前記識別の結果と、前記一方の画像に対応付けて入力される、前記一方の画像が前記生成画像及び前記正解画像のうちのいずれであるかを示す解答情報と、の比較に基づいて前記識別を学習可能な識別手段、を更に含み、前記生成手段は、前記学習において、更に、前記識別の結果と前記解答情報との前記比較の結果とを用いる、請求項１に記載の画像処理装置である。
【００１４】
請求項３に係る発明は、前記生成手段と前記識別手段との組は、敵対的生成ネットワークとして構成されており、前記学習手段は、前記生成手段に学習を行わせるのと並行して、前記識別手段に対して前記正解画像又は前記生成画像を入力することにより前記識別手段に前記識別の学習を行わせ、前記生成手段の学習により前記識別手段による前記識別の結果が所定条件を満たすと前記識別手段の学習を終了し、その後、更なる前記入力画像を前記生成手段に入力して前記生成手段を更に学習させる、請求項２に記載の画像処理装置である。
【００１５】
請求項４に係る発明は、前記評価手段は、前記処理結果と、前記学習用画像と対応付けて入力される、前記学習用画像から前記生成手段が生成する前記生成画像に対する前記処理によって得られるべき正解と、を比較することにより、前記評価値を計算する評価値計算手段と、前記生成画像から所定の計算により前記処理結果の前記評価値の推定する推定手段であって、前記推定手段が推定した評価値と、前記評価値計算手段が計算した前記評価値と、の差に基づいて、前記推定についての学習を行う推定手段と、を含み、前記学習手段は、前記生成手段を学習させるのに用いる前記評価値として、前記推定手段が推定した前記評価値を用いる、請求項１〜３のいずれか１項に記載の画像処理装置である。
【００１６】
請求項５に係る発明は、前記学習用画像に対応する前記正解画像が入力され、当該正解画像に対して前記処理を実行することにより得られた処理結果を、前記正解として前記評価値計算手段に入力する手段、を更に含む、請求項４に記載の画像処理装置である。
【００１７】
請求項６に係る発明は、ユーザに対して、前記学習用画像、前記正解画像、又は当該学習用画像から前記生成手段が生成した前記生成画像を提示し、前記処理により得られるべき前記正解の入力を前記ユーザから受け付け、受け付けた前記正解を前記評価値計算手段に入力する手段、を更に含む、請求項４に記載の画像処理装置である。
【００１８】
請求項７に係る発明は、コンピュータを、入力画像から生成画像を生成する生成手段、前記生成画像に対して処理を実行して処理結果を出力する処理手段、前記処理結果を評価する評価手段であって、前記評価の結果として、前記入力画像が前記生成手段に入力された場合に前記処理手段の前記処理によって得られるべき正解、に対する前記処理結果の近さを表す評価値を出力する、評価手段、正解画像に対して前記処理の妨げとなる妨げ要素が加わった学習用画像を前記入力画像として前記生成手段に入力し、前記学習用画像に応じて前記生成手段が生成した前記生成画像と前記正解画像との差と、前記学習用画像に応じて前記評価手段が出力した前記評価値と、に基づいて前記生成手段に学習を行わせる学習手段、として機能させるためのプログラムである。
【発明の効果】
【００１９】
請求項１又は７に係る発明によれば、単に妨げ要素を含む画像から妨げ要素を含まない画像を生成するよう生成手段を学習させる方式よりも、その生成画像に対する処理に適した生成画像を生成手段が生成できるようにすることができる。
【００２０】
請求項２に係る発明によれば、評価手段の出力する評価値のみに基づいて生成手段を学習させる方式よりも、生成手段が生成する生成画像の、正解画像からずれを抑えることができる。
【００２１】
請求項３に係る発明によれば、識別手段による識別の結果が所定の条件を満たした後も識別手段の学習を続ける方式と比べて、画像処理装置全体の学習に要するコストを低減することができる。
【００２２】
請求項４に係る発明によれば、処理手段の処理内容が未知であるため評価値計算手段が求めた評価値が生成手段の学習に利用できない場合でも、生成手段の学習に利用可能な評価値を推定することができる。
【００２３】
請求項５又は６に係る発明によれば、評価手段が用いる正解を用意する必要がなくなる。
【図面の簡単な説明】
【００２４】
【図１】実施形態の画像処理装置により学習した前処理部（すなわち生成器）が組み込まれる装置の例を示す図である。
【図２】ＧＡＮ（敵対的生成ネットワーク）により生成器を学習させる仕組みを比較例として示す図である。
【図３】第１の実施形態の画像処理装置の構成を例示する図である。
【図４】第２の実施形態の画像処理装置の構成を例示する図である。
【図５】第２の実施形態における生成器の学習のための処理の手順を例示する図である。
【図６】第２の実施形態における評価値推定部の学習のための処理の手順を例示する図である。
【図７】第３の実施形態の画像処理装置の構成を例示する図である。
【図８】第４の実施形態の画像処理装置の構成を例示する図である。
【図９】第５の実施形態における学習制御部の処理手順を例示する図である。
【発明を実施するための形態】
【００２５】
この実施形態の画像処理装置は、例えば、画像データに対して前処理を行う装置（前処理部と呼ぶ）を学習させるために用いられる。
【００２６】
すなわち、図１に示すように、入力画像に対して本体処理部１１００が何らかの本体処理を実行することを考える。本体処理は、例えばＯＣＲ（光学文字認識）や顔認識等といった処理である。入力画像の中には、そのままでは本体処理部１１００の処理に適さないもの、言い換えればそのままその処理を適用すると十分な精度の処理結果が得られないものが少なくない。これは、入力画像の中に、本体処理部１１００の行う処理に対する妨げ要素が含まれているからであると考えられる。すなわち、妨げ要素は、入力画像が含む要素のうち、本体処理部１１００の処理の精度を低下させる要素のことである。なお、ここでいう「要素」は、入力画像を構成する様々な形態の部分又は成分等のことである。例えば、入力画像中の特定の一以上の画素からなる部分や、入力画像の各画素が持っている色成分、入力画像が含む周波数成分等が、要素の例である。
【００２７】
このような妨げ成分の影響を低減して本体処理部１１００の処理の精度を向上させるために、図１に例示するシステムでは、入力画像を前処理部１０００で前処理することで、入力画像中に含まれる妨げ要素を除去又は低減する。前処理部１０００は前処理結果の画像である生成画像を出力する。生成画像が含む妨げ要素は、入力画像の妨げ成分よりも少ない又は弱い。本体処理部１１００は、その生成画像に対して、自身の処理を実行することにより、処理結果を生成し出力する。
【００２８】
前処理部１０００を構成する方法の一つとして、機械学習を利用する方法がある。例えば、近年、ＧＡＮ（Generative adversarial networks：敵対的生成ネットワーク）を利用した画像生成が盛んに研究されており、このＧＡＮを前処理部１０００に利用することが考えられる。
【００２９】
図２に、後で説明する実施形態の画像処理装置に対する比較例として、前処理部１０００を学習させるためのＧＡＮベースの装置を例示する。図２に示す画像処理装置は、生成器（ジェネレータ）１０と識別器（ディスクリミネータ）２０とを含む。生成器１０と識別器２０とはＧＡＮを構成する。
【００３０】
この画像処理装置には、学習用画像１０２と正解画像１０４のペアを含む学習データ１００が入力される。学習用画像１０２は妨げ要素を含んだ画像である。学習用画像１０２とペアになる正解画像１０４は、その学習用画像１０２から妨げ要素群を除去して得られる画像である。言い換えれば、正解画像１０４は、本体処理部１１００の処理の妨げとなる妨げ要素を含まない画像であり、これに対応する学習用画像１０２は，その正解画像１０４に対して何らかの妨げ要素を加えることにより得られる画像である。例えば、実際の帳票を読み取ることにより得られる画像が学習用画像１０２の一例であり、その学習用画像１０２から文字認識の妨げとなる罫線や汚れ等を除去することで得られる画像が正解画像１０４の一例である。
【００３１】
生成器１０は、学習用画像１０２から生成画像１５０を生成するニューラルネットワークである。生成画像１５０は、学習用画像１０２に対応する正解画像１０４を推定した画像である。すなわち、生成器１０は、妨げ要素を含んだ学習用画像１０２から、妨げ要素を含まない正解画像１０４に近い生成画像１５０を生成する。生成器１０は、多数の学習用画像１０２を用いて学習することで、より正解画像１０４に近い生成画像１５０を生成できるようになる。
【００３２】
識別器２０は、入力された画像が、学習用画像１０２に対応する正解画像１０４、及び学習用画像１０２から生成器１０が生成した生成画像１５０、のうちのいずれであるかを識別するニューラルネットワークである。学習制御部５０は、正解画像１０４又は生成画像１５０を識別器２０に入力する。これに応じて、識別器２０は、入力された画像が正解画像１０４（言い換えれば、実物:real）又は生成画像１５０（言い換えれば偽物:fake）のいずれであるかを識別し、その識別結果を示す信号を出力する。また、識別器２０は、その識別結果の確信度を出力してもよい。確信度とは、その識別結果が正解である蓋然性（すなわち確からしさの度合い）を示す評価値である。
【００３３】
識別結果判定部２２は、識別器２０の識別結果が正しいか誤りかを判定する。例えば、識別器２０に入力された画像が正解画像１０４であり、これに対する識別器２０の識別結果が「正解画像」である場合には、その識別結果は正しい。また例えば、識別器２０に入力された画像が生成画像１５０であり、これに対する識別器２０の識別結果が「正解画像」である場合には、その識別結果は誤りである。識別結果判定部２２には、識別器２０に入力された画像が正解画像１０４と生成画像１５０のいずれであるかを示す解答情報が与えられ、その解答情報を参照することで、識別器２０の識別結果が正しいか誤りかを判定する。識別結果判定部２２の判定結果（すなわち、正しいか誤りかを示す情報）から求められる損失信号が識別器２０及び生成器１０にフィードバックされる。識別器２０及び生成器１０は、この損失信号に基づいて学習を行う。また、損失信号に加え、又はその代わりに、確信度の情報を、学習のために識別器２０及び生成器１０にフィードバックしてもよい。なお、識別結果判定部２２の判定結果のフィードバックによる識別器２０及び生成器１０の学習の手法は、従来のＧＡＮで用いられているものと同様のものでよい。
【００３４】
画像比較部４０は、正解画像１０４と、この正解画像１０４に対応する学習用画像１０２から生成器１０が生成した生成画像１５０とを比較し、比較結果を示す信号を生成器１０にフィードバックする。比較結果を示す信号は、例えば正解画像１０４と生成画像１５０の差分を示す信号である。生成器１０は、前述した識別結果判定部２２からの損失信号と、この画像比較部４０からの比較結果の信号とに基づいて学習を行う。この学習も従来技術を用いればよい。
【００３５】
学習制御部５０は、生成器１０及び識別器２０の学習を制御する。学習制御部５０は、学習データ１００を読み込み、これに含まれる学習用画像１０２を生成器１０に、学習用画像１０２及び正解画像１０４を識別器２０に入力する。また学習制御部５０は、この入力に応じて識別結果判定部２２及び画像比較部４０が出力する信号を、生成器１０及び識別器２０にフィードバックすることで、生成器１０及び識別器２０を学習させる。生成器１０及び識別器２０は、フィードバックされた信号に応じて、各々のニューラルネットワークのノード間の結合の重みパラメータを更新することにより、学習を行う。
【００３６】
ＧＡＮを構成する生成器１０及び識別器２０は、前者が教師データ（正解画像１０４）になるべく近い偽物（生成画像１５０）を生成しようとし、後者がその偽物を正しく識別しようとするという形で、いわば互いに切磋琢磨しながら学習を進める。
【００３７】
この画像処理装置の学習には、例えば「pix2pix」というアルゴリズム（Phillip Iso1a他による論文「Image-to-Image Translation with Conditional Adversarial Networks」、Berkeley AI Research (BAIR) Laboratory, UC Berkeley参照）と同様の方式を用いてもよい。また、他の例として、Ｃｙｃｌｅ  ＧＡＮと呼ばれるＧＡＮと同様の仕組みを用いてもよい。Ｃｙｃｌｅ  ＧＡＮを用いた場合、入力画像のすべてに正解画像が用意されていない場合でも学習が可能である。
【００３８】
図２に例示した画像処理装置により学習した生成器１０は、正解画像１０４に近い生成画像１５０を生成することができる。しかし、生成器１０が生成する生成画像１５０は、必ずしも本体処理部１１００の処理に適した画像となるとは限らない。生成器１０の学習が、妨げ要素を除くことに最適化しすぎるあまり、生成器１０が、入力画像のうちの、本体処理部１１００の処理の対象となる部分を変化させる場合があるからである。このように変化した生成画像１５０は、妨げ要素はよく低減されているものの、本体処理部１１００が処理の対象とする部分が変化したために、その処理の精度を低下させてしまう場合がある。
【００３９】
そこで、生成器１０の学習において、上述したＧＡＮの仕組みを用いる場合よりも、本体処理部１１００の処理結果の精度の低下を緩和できる仕組みの実施形態を、以下に説明する。
【００４０】
＜第１の実施形態＞
図３は、本発明に係る画像処理装置の第１の実施形態の構成を示す図である。図３において、図２に示した装置の構成要素と同様の構成要素には、同一の符号を付した。
【００４１】
図３に示す画像処理装置は、生成器１０と評価器３０とを含む。この画像処理装置には、学習用画像１０２と正解画像１０４のペアを含む学習データ１００が入力される。
【００４２】
生成器１０は、図２に示した装置の生成器１０と同様のものである。生成器１０は、十分な学習を済ませた後、図１に示すシステムにおける前処理部１０００として用いられる。生成器１０は、生成手段の一例である。
【００４３】
評価器３０は、評価手段の一例である。評価器３０は、生成器１０を図１の装置の前処理部１０００として用いたときに、その生成器１０が生成する生成画像１５０が、その装置の本体処理部１１００が行う処理にとってどの程度適切な画像となっているかを示す評価値を求める。この評価値は、本体処理部１１００が生成画像１５０を処理することにより得られる処理結果の、正解に対する近さを示す値である。ここでいう「正解」は、その学習用画像１０２が図１のシステムに入力された場合に、本体処理部１１００が処理結果として出力すべき（すなわち出力して欲しい）値のことである。
【００４４】
例えば、本体処理部１１００が行う処理が帳票に記入されている文字列の認識である場合、実際に記入されているその文字列が「正解」である。これに対し、本体処理部１１００がその帳票の画像の前処理部１０００による前処理の結果（すなわち生成画像１５０）から認識した文字列が、本体処理部１１００の「処理結果」である。そして、評価値は、その「処理結果」のその「正解」に対する近さを示す値である。
【００４５】
図３に示す例では、評価器３０は、本体処理部３２、評価値計算部３４、評価値推定部３６、及び評価値比較部３８を含む。
【００４６】
本体処理部３２は、処理手段の一例であり、生成器１０（＝前処理部１０００）の適用先である図１のシステムの本体処理部１１００と同じ装置（すなわち、実行する処理も性能も同じ装置）である。この例では、本体処理部３２には、学習用画像１０２から生成された生成画像１５０と、その学習用画像１０２に対応する正解画像１０４とが入力される。そして、本体処理部３２は、生成画像１５０と正解画像１０４とに対してそれぞれ処理を実行し、それぞれについての処理結果を出力する。そして、正解画像１０４についての処理結果を、上述の「正解」として用いる。
【００４７】
評価値計算部３４は、評価値計算手段の一例であり、本体処理部３２から入力される、生成画像１５０についての処理結果と正解画像１０４についての処理結果とから、評価値を計算する。この評価値は、後者（すなわち正解）に対する前者の近さ（別の角度から言えば、前者と後者の差）を示す値である。例えば、本体処理部３２が文字認識である場合、評価値計算部３４は、生成画像１５０についての処理結果である文字列の、正解画像１０４についての処理結果である文字列に対する編集距離を評価値として計算してもよい。この場合、編集距離としては、生成画像１５０又は正解画像１０４のうちの所定の一方から認識された文字列の長さで正規化した値を用いる。
【００４８】
評価値推定部３６は、推定手段の一例であり、評価値計算部３４が計算する評価値を推定する。評価値推定部３６は、入力される生成画像１５０からその評価値を推定する。評価値推定部３６は、ニューラルネットワークとして構成されており、評価値の推定についての学習を行う。
【００４９】
評価値比較部３８は、評価値計算部３４が計算した評価値（評価値の「計算値」という）と、評価値推定部３６が推定した評価値（評価値の「推定値」という）とを比較し，比較結果を示す信号を出力する。この信号は、計算値に対する推定値の差を示す信号である。この信号は評価値推定部３６にフィードバックされる。評価値推定部３６は、フィードバックされた信号を用いて、推定値が計算値に近くなるように学習を行う。
【００５０】
評価器３０が求めた評価値は、生成器１０にフィードバックされ、生成器１０の学習に用いられる。すなわち、生成器１０は、評価値が良い値になるよう、自身のニューラルネットワークノード間の結合の重みパラメータを更新する。
【００５１】
学習制御部５０は、学習手段の一例であり、学習データ１００を生成器１０及び評価器３０に入力し、生成器１０及び評価値推定部３６に学習を実行させるための制御を行う。
【００５２】
生成器１０にフィードバックされる評価値は、評価値計算部３４が計算した評価値ではなく、評価値推定部３６が推定した評価値（すなわち推定値）の方である。これは以下の理由からである。
【００５３】
すなわち、評価値に基づいて生成器１０が学習できるためには、その評価値を求める手段を関数として捉えた場合、その関数が微分可能でなければならない。
【００５４】
評価値計算部３４が計算する評価値は、本体処理部３２の処理結果を入力とするものである。ここで、本体処理部３２の処理を表す関数が未知である場合、この関数は微分できないので、本体処理部３２の処理結果に依存する評価値計算部３４の評価値を求める関数も最終的に微分できなくなってしまう。これに対して、ニューラルネットワークである評価値推定部３６を表す関数は微分可能なので、評価値推定部３６が求めた評価値は、生成器１０の学習に用いることができる。
【００５５】
更に説明する。生成器１０を表す関数をＧ、本体処理部３２を表す関数をＯ、評価値計算部３４が計算した評価値（すなわち処理結果と正解との差）をｈとする。入力画像をｘとした場合、生成器１０の損失関数Ｌのうち、評価器３０に対応する項Ｌｅは、抽象的に以下のように表現できる。
Ｌｅ＝ｈ（Ｏ（Ｇ（ｘ）））
【００５６】
すなわちＬｅは、ｙ＝Ｇ（ｘ）と、ｚ＝Ｏ（ｙ）と、Ｌｅ＝ｈ（ｚ）の合成関数となる。
【００５７】
ここでＬｅを微分すると以下のようになる。
ｄＬｅ／ｄｘ＝（ｄＬｅ／ｄｚ）＊（ｄｚ／ｄｙ）＊（ｄｙ／ｄｘ）
【００５８】
このうち右辺２番目のｄｚ／ｄｙは、本体処理部３２を表す関数Ｏの微分であるが、この関数Ｏは未知であるため、微分ができない。このため、Ｌｅひいては生成器１０の損失関数Ｌが微分できなくなる。これにより生成器１０の学習が不可能となる。
【００５９】
これに対して、ニューラルネットワークである評価値推定部３６を表す関数Ｅは、ニューラルネットワークであるため微分可能である。損失関数Ｌのうち評価器３０に対応する項Ｌｅとして評価値推定部３６が推定した評価値を用いる場合、その項Ｌｅは以下のように表現される。
Ｌｅ＝Ｅ（（Ｇ（ｘ）））
【００６０】
すなわちＬｅは、ｙ＝Ｇ（ｘ）と、Ｌｅ＝Ｅ（ｙ）の合成関数となる。このＬｅの微分は以下のようになる。
ｄＬｅ／ｄｘ＝（ｄＬｅ／ｄｙ）＊（ｄｙ／ｄｘ）
【００６１】
このうち右辺１番目の項ｄＬｅ／ｄｙは評価値推定部３６を表す関数Ｅの微分であり、２番目の項ｄｙ／ｄｘは生成器１０を表す関数Ｇの微分である。評価値推定部３６も生成器１０もニューラルネットワークで構成されているので、それら関数Ｅ及びＧは共に微分可能である。したがって、項Ｌｅも微分可能となる。このため、生成器１０は、評価値推定部３６が推定した評価値を用いて学習を行うことが可能になる。
【００６２】
このように、図３の例では、本体処理部３２の関数が微分不可（例えばその関数が未知であるため）である場合でも評価値を用いて生成器１０が学習を行うことができるようにするために、評価値推定部３６を設けている。評価値推定部３６は、学習が進むと、評価値計算部３４が計算する評価値と極めて近い評価値を推定するものと期待される。
【００６３】
以上に説明したように、図３に例示した画像処理装置は、本体処理部３２の処理結果が正解に近くなるように生成器１０を学習させる。学習が済んだ生成器１０を、図１のシステムの前処理部１０００として利用した場合、前処理部１０００は、本体処理部１１００の処理において正解が得られやすい生成画像を生成し、本体処理部１１００に入力する。
【００６４】
なお、図３に例示した評価器３０が評価値推定部３６及び評価値比較部３８を含むのは、上述したとおり、本体処理部３２の処理内容を表す関数が未知であるためであった。すなわち、評価値計算部３４が本体処理部３２の処理結果を用いて計算する評価値を生成器１０にフィードバックしたとしても、その評価値が計算される過程が微分可能といえないため、生成器１０の学習にその評価値を使用できないためであった。逆に言えば、本体処理部３２の処理内容を表す関数が既知であり、かつ微分可能である場合には、評価器３０は、評価値推定部３６及び評価値比較部３８を含まなくてもよい。このことは、以下に示す他の実施形態にも該当する。
【００６５】
＜第２の実施形態＞
上記第１の実施形態の画像処理装置は、識別器２０と画像比較部４０とを含まなかったが、それら２つのうちの一方又は両方を追加することで、画像処理装置の性能を更に向上させることも考えられる。
【００６６】
図４に示す画像処理装置は、図３の構成に対して識別器２０及び識別結果判定部２２と画像比較部４０とを追加したものである。
【００６７】
識別器２０及び識別結果判定部２２と、画像比較部４０とは、図２に示した比較例における同符号の構成要素と同じ機能を果たす。識別器２０は、識別手段の一例である。
【００６８】
生成器１０は、識別結果判定部２２の出力する損失信号、画像比較部４０が出力する比較結果の信号、及び評価器３０が出力する評価値、を用いて学習を行う。
【００６９】
図４に示した画像処理装置における、生成器１０の学習のための処理の手順を図５に例示する。
【００７０】
この手順では、学習制御部５０が、学習データ１００を蓄積している蓄積部（図示省略）から、１つの学習データ１００（これは学習用画像１０２と正解画像１０４とのペアを含む）を取り出し、生成器１０に入力する。生成器１０は学習用画像１０２から生成画像１５０を生成する（Ｓ１０）。次に、画像比較部４０、識別器２０、及び評価器３０が、その生成画像１５０を並列的に処理する（Ｓ１２、Ｓ１４、Ｓ１６）。すなわち、画像比較部４０は、その生成画像１５０と正解画像１０４との差を算出する（Ｓ１２）。識別器２０は、入力された画像（この場合は生成画像１５０）が正解画像１０４及び生成画像１５０のいずれであるかの識別を行い、その識別の結果の確信度を求める（Ｓ１４）。また評価器３０は、入力された生成画像１５０から評価値を求める（Ｓ１６）。画像比較部４０が求めた差、識別器２０が求めた確信度、評価器３０が求めた評価値は、生成器１０にフィードバックされる。ここで評価器３０からフィードバックされる評価値は、評価値推定部３６が推定した値である。生成器１０は、それら差、確信度、評価値の３つの値から損失を求め、その損失に従って自らのニューラルネットワークを学習させる（Ｓ１８）。ここで損失は、例えば、それら３つの値の重み付き和として求める。そして、学習制御部５０は、学習終了条件が達成されたかどうかを判定し（Ｓ２０）、達成されていなければ、別の学習用画像１０２と正解画像１０４とのペアを取り出し、Ｓ１０以降の処理を繰り返す。学習終了条件が達成されると、図６の処理を終了する。学習終了条件は、例えば、この手順のループの実行回数が所定回数に達したこと、又は、生成器１０の学習が収束したことなどである。
【００７１】
なお、図４の例では、Ｓ１４にて識別器２０が確信度を求め、この確信度を生成器１０にフィードバック（Ｓ１８）したが、これは一例に過ぎない。この代わりに、又はこれに加えて、識別器２０の識別結果に対する識別結果判定部２２の判定結果を示す信号を生成器１０にフィードバックしてもよい。
【００７２】
図４に示した画像処理装置における、評価値推定部３６の学習のための処理の手順を図６に例示する。
【００７３】
この処理は、上述した生成器１０の学習のための処理と並行して行われる。すなわち、学習制御部５０が、１つの学習データ１００を取り出し、その中の学習用画像１０２を生成器１０に入力し、生成器１０がその学習用画像１０２から生成画像１５０を生成する（Ｓ１０）。評価値推定部３６は、その生成画像１５０から評価値を推定する（Ｓ３２）。また本体処理部３２は、その生成画像１５０を処理して処理結果を求める（Ｓ３４）。更に、本体処理部３２は、その学習データ１００中の正解画像１０４を処理して処理結果を求める（Ｓ３６）。この処理結果は正解として用いる。評価値計算部３４は、その正解と生成画像１５０の処理結果とから評価値を計算する（Ｓ３８）。そして、評価値比較部３８が、評価値計算部３４が計算した評価値と、評価値推定部３６が推定した評価値とを比較して比較結果の信号を求め、その信号を損失信号として評価値推定部３６にフィードバックすることにより、評価値推定部３６を学習させる（Ｓ４０）。そして、学習制御部５０は、学習終了条件が達成されたかどうかを判定し（Ｓ４２）、達成されていなければ、別の学習用画像１０２と正解画像１０４とのペアを取り出し、Ｓ１０以降の処理を繰り返す。学習終了条件が達成されると、図６の処理を終了する。
【００７４】
なお、識別器２０が行う学習は、一般的なＧＡＮにおける識別器の場合と同様で良いので、説明を省略する。
【００７５】
この第２の実施形態では、生成器１０と識別器２０と評価値推定部３６とが競合的に学習することで、本体処理部３２ひいては適用先のシステムの本体処理部１１００、の処理に適した生成画像１５０を生成するよう生成器１０の学習が進む。
【００７６】
この第２の実施形態の装置構成は、識別器２０及び画像比較部４０を備えているので、これらを備えない第１の実施形態の装置よりも、生成器１０の学習が収束しやすいと期待される。
【００７７】
また、評価器３０からの評価値のフィードバックのみに基づいて生成器１０が学習すると、本体処理部３２に適した生成画像１５０を生成する方向性が強くなる余り、生成器１０が正解画像１０４から大きくずれた画像を生成してしまうよう学習してしまう可能性がある。このようになった場合、本体処理部３２の処理に予期できない悪影響を及ぼすことも考えられる。これに対し、この第２の実施形態では、識別器２０及び画像比較部４０の出力する信号も生成器１０にフィードバックすることにより、生成器１０が正解画像１０４から大きくずれた画像を生成してしまう可能性が低くなる。
【００７８】
この第２の実施形態では、画像処理装置は識別器２０と画像比較部４０の両方を含んでいたが、これは一例に過ぎない。それら両者のうちいずれか一方のみを含む装置構成であっても、第１の実施形態の装置と比べて、生成器１０の学習が早くなるなどのことが見込まれる。
【００７９】
以上では、第２の実施形態の代表例として、図３の構成に対して識別器２０と画像比較部４０の両方を追加した構成を説明した。しかし、図３の構成に対して識別器２０と画像比較部４０のうちの一方のみを追加した構成でも、図３の構成に比して学習が早くなる等の作用が見込まれる。
【００８０】
＜第３の実施形態＞
図４に示した第２の実施形態の画像処理装置は、評価器３０内の本体処理部３２が正解画像１０４を処理することで正解を求め、評価値計算部３４がその正解を生成画像１５０に対する本体処理部３２の処理結果と比較することで、評価値を計算した。
【００８１】
これに対して、図７に示す第３の実施形態の画像形成装置では、正解画像１０４に対応する本体処理部３２の処理結果が処理結果正解１０６としてあらかじめ用意され、学習データ１００中に含まれる形で入力される。評価値計算部３４は、この処理結果正解１０６と、これに対応する生成画像１５０に対する本体処理部３２の処理結果とから評価値を計算する。その他の構成要素の機能は、第２の実施形態と同じでよい。
【００８２】
このように処理結果正解１０６をあらかじめ用意しておくことは、図２に示した第１の実施形態の構成にも適用可能である。
【００８３】
＜第４の実施形態＞
図８に示す第４の実施形態の画像処理装置は、第２の実施形態の装置が備える構成要素群に加えて、正解入力用ＵＩ（ユーザインタフェース）６０を備えている。正解入力用ＵＩ６０は、評価値計算部３４が評価値の計算に用いる正解の入力をユーザから受け付けるためのユーザインタフェース処理を行う。正解入力用ＵＩ６０は、例えば、正解の入力作業を行う作業者の操作する端末に対して、画像を表示する表示欄と、正解を入力する入力欄とを含んだ入力画面を、例えばウェブページ等の形態で提示する。表示欄には、学習用画像１０２、正解画像１０４、又は学習用画像１０２から生成された生成画像１５０が表示される。作業者は、その入力画面に表示された画像を見て、その画像に対応する正解を入力欄に入力する。正解入力用ＵＩ６０は、作業者が入力した正解を受け取り、その正解を評価値計算部３４に渡す。評価値計算部３４は、学習用画像１０２から生成器１０が生成した生成画像１５０を本体処理部３２が処理することにより得られた処理結果と、正解入力用ＵＩ６０から受け取った正解とに基づき、評価値を計算する。その他の構成要素の機能は、第２の実施形態と同じでよい。
【００８４】
このように正解入力用ＵＩ６０を設ける点は、図２に示した第１の実施形態の構成にも適用可能である。
【００８５】
＜第５の実施形態＞
この第５の実施形態は、図４に示した第２の実施形態の画像処理装置において、識別器２０の学習を途中で停止させる制御を行う。
【００８６】
画像処理装置内の生成器１０、識別器２０及び評価値推定部３６の学習が進むと、識別器２０が騙されるようになる一方、評価値推定部３６は学習を行う、と言う状況が生じる。例えば、本体処理部３２が文字認識処理を行うものである場合、学習が進むと生成器１０が識別器２０を騙せる（すなわち識別器２０が正解画像１０４であると識別してしまう）品質の生成画像１５０を生成できるようになる。ここで「騙せる品質」とは、識別器２０が正解画像１０４であると識別してしまう程度の生成画像１５０の品質である。しかし、その品質の生成画像１５０では文字認識には適さない（すなわち評価器３０が求める評価値は低い）という状況も起こり得る。このような状況では、評価値推定部３６の性能は更なる学習により更に向上していくが、識別器２０の性能はこれ以上学習しても向上しない。
【００８７】
そこで、この実施形態では、学習制御部５０が、識別器２０が騙されるようになった状況が生じたかどうかを判定し、そのような状況が生じた場合に、識別器２０の学習を終了させる。識別器２０の学習を終了させることで、それまで識別器２０の学習に割かれていた計算資源やエネルギーが不要になる。それら計算資源やエネルギーは、評価値推定部３６や生成器１０の学習のための処理に振り向けてもよい。なお、識別器２０が騙されるようになったかどうかは、次々と入力されてくる学習用画像１０２に対して識別器２０が次々と出力する識別の結果が所定条件を満たすようになったかどうかで判定する。所定条件には例えば以下のものがある。
【００８８】
学習制御部５０は、例えば、次々に入力される生成画像１５０に対して識別器２０が５０％近傍の確信度を出力する事態が所定回数以上続いた場合に、「識別器２０が騙されるようになった状況」が生じたと判定する。ここで、５０％近傍の確信度とは、５０％プラスマイナス所定値の範囲内である確信度であり、この所定値は予め定める。確信度が５０％近傍であることは、識別器２０が入力された画像を生成画像とも正解画像とも判断できないことを示す。
【００８９】
また別の例では、学習制御部５０は、次々と入力される生成画像１５０についての識別器２０の識別結果の正解率が５０％近傍である状況が所定の回数以上にわたって続いた場合に、「識別器２０が騙されるようになった状況」が生じたと判定してもよい。
【００９０】
このように、学習制御部５０は、学習の進捗に伴う識別器２０の識別性能の変化を監視することで、識別器２０が騙されるようになった状況が生じたことを検知する。そして、そのような状況を検知すると、識別器２０の学習を停止する。
【００９１】
図９に、この第５の実施形態において学習制御部５０が実行する制御の手順を例示する。この手順では、学習制御部５０は、まず、生成器１０、識別器２０及び評価値推定部３６の全てを学習の対象に設定する（Ｓ５０）。次に、学習制御部５０は、学習データ１００を１つ取り出し、生成器１０及び識別器２０等に入力することで、学習対象に設定されている装置群（この時点では、生成器１０、識別器２０及び評価値推定部３６の三者）を競合的に学習させる（Ｓ５２）。
【００９２】
学習制御部５０は、識別器２０の識別結果を監視することで、識別器２０が騙されるようになったかどうかを判定する（Ｓ５４）。この判定は、上述した判定手法を用いて行えばよい。また、図は、新たな学習データが入力される都度、毎回、Ｓ５４を実行するものとなっているが、Ｓ５４の判定は毎回行う必要はなく、例えば所定回数ごとに実行する等でもよい。
【００９３】
Ｓ５４の判定結果がＹｅｓの場合、学習制御部５０は、識別器２０を学習対象から除外する（Ｓ５６）。この時点以降は、生成器１０と評価値推定部３６とが学習を行い、識別器２０は学習を行わない。
【００９４】
その後、学習制御部５０は、生成器１０及び評価値推定部３６も含めた画像処理装置全体の学習についての学習終了条件が達成されたかどうかを判定し（Ｓ５８）、達成されていなければＳ５２に戻る。また学習制御部５０は、Ｓ５８で学習終了条件が達成されたと判定した場合には、画像処理装置全体の学習を終了する。
【００９５】
また、Ｓ５４の判定結果がＮｏの場合には、Ｓ５６を飛ばしてＳ５８に進む。
【００９６】
以上に説明した各実施形態の画像処理装置は、コンピュータに上述のその画像処理装置を構成する要素群の機能を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）及びリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、フラッシュメモリやＳＳＤ（ソリッドステートドライブ）、ＨＤＤ（ハードディスクドライブ）や等の固定記憶装置を制御するコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバス等を介して接続された回路構成を有する。それら各機能の処理内容が記述されたプログラムがネットワーク等の経由でフラッシュメモリ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。また、それら画像処理装置の要素のうち、ニューラルネットワークにより構成される要素等の一部の要素は、ハードウエア回路として構成されてもよい。
【符号の説明】
【００９７】
１０  生成器、２０  識別器、２２  識別結果判定部、３０  評価器、３２  本体処理部、３４  評価値計算部、３６  評価値推定部、３８  評価値比較部、４０  画像比較部、５０  学習制御部、１００  学習データ、１０２  学習用画像、１０４  正解画像、１５０  生成画像、１０００  前処理部、１１００  本体処理部。
【図１】
2020140346.tif 000003
【図２】
2020140346.tif 000004
【図３】
2020140346.tif 000005
【図４】
2020140346.tif 000006
【図５】
2020140346.tif 000007
【図６】
2020140346.tif 000008
【図７】
2020140346.tif 000009
【図８】
2020140346.tif 000010
【図９】
2020140346.tif 000011