(57)【要約】【課題】主たる生成手段が学習していない種類の入力画像が入力される可能性がある場合に、入力画像をその主たる生成手段に入力して生成画像を生成させる方式よりも、その入力画像から本体処理に適した生成画像を生成できる蓋然性を高める。【解決手段】第１前処理部１００−１と識別部１２０とはＧＡＮ（敵対的生成ネットワーク）として構成され、学習用画像と、これを本体処理部１１０の処理に適した画像に直した正解画像とを用いて学習済みである。第２前処理部１００−２、・・・、第Ｎ前処理部１００−Ｎは、例えばカラードロップアウト等、第１前処理部１００−１とは異なる既存の処理により、入力画像を前処理する。制御部１３０は、それら前処理部１００の前処理結果である生成画像を順に識別部１２０に入力する。識別部１２０は、入力された画像が本物（すなわち正解画像とみなせる）であると判定した場合、その画像を本体処理部１１０に入力する。【選択図】図１
2020144735.tif 000002
【特許請求の範囲】
【請求項１】
入力画像から主たる生成画像を生成する主生成手段と、
前記入力画像から前記主生成手段とは異なる方法で従たる生成画像を生成する、少なくとも１つの従生成手段と、
処理対象として入力された画像に対して本体処理を実行する本体処理手段と、
前記主たる生成画像及び前記少なくとも１つの従生成手段の各々が生成した前記従たる生成画像からなる一群の生成画像のうちの少なくとも１つの生成画像が入力され、当該生成画像が前記本体処理に適しているか否かの識別を実行し、前記一群の生成画像のうち前記本体処理に適していると識別した１つの生成画像を前記処理対象として前記本体処理手段に入力する識別手段と、
を含み、
前記主生成手段と前記識別手段との組は、敵対的生成ネットワークとして構成されており、前記主生成手段は、正解画像と前記正解画像に前記本体処理の妨げとなる妨げ要素が加わった学習用画像とのペア群を用いて、前記学習用画像から前記正解画像を前記主たる生成画像として生成する学習を済ませており、前記識別手段は、前記ペア群を用いて、前記主生成手段が前記学習用画像から生成した前記主たる生成画像と前記正解画像とを識別する学習を済ませており、
前記識別手段は、入力された前記生成画像が前記正解画像であると識別した場合に、当該生成画像が前記本体処理に適していると識別する、
画像処理装置。
【請求項２】
前記入力画像を解析することにより、前記主生成手段及び前記少なくとも１つの従生成手段からなる一群の生成手段を動作させる順序のうち少なくとも最初から所定番目までの順序を求め、求めた順序に従って動作させた前記生成手段に対して前記入力画像を入力し、この入力に応じて当該生成手段が生成した前記生成画像が前記識別手段に入力されるようにし、この入力に応じて前記識別手段が前記処理対象を前記本体処理手段に入力した場合には、前記一群の生成手段のうち、前記順序において当該生成手段の後の生成手段は動作させずに前記入力画像についての処理を終了する制御を行う順序制御手段、
を更に含む請求項１に記載の画像処理装置。
【請求項３】
前記ペア群に含まれる前記学習用画像は、所定の種類の文書の様々なサンプルを読み取ることにより得られた画像であり、
前記順序制御手段は、前記所定の種類の文書の画像と、別の種類の文書の画像とを識別する学習を行ったものであり、前記入力画像が前記所定の種類の文書の画像であると識別した場合には、前記順序において、前記主生成手段を最初のものとする、
請求項２に記載の画像処理装置。
【請求項４】
前記本体処理手段が前記処理対象として入力された前記生成画像に対して実行した前記本体処理の結果をユーザに提示すると共に、前記ユーザから前記結果に対する修正の入力を受け付ける修正受付手段と、
前記識別手段を追加的に学習させる追加学習手段と、
を含み、
前記追加学習手段は、前記修正受付手段が前記結果に対して受け付けた前記修正が所定の条件を満たす場合に、前記処理対象として入力された前記生成画像が前記正解画像ではないと識別するよう前記識別手段を学習させる、
請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記所定の条件は、前記修正受付手段が受け付けた前記修正が、前記本体処理の誤りを原因として起こりやすいものとして予め登録されている種類の修正に該当しない、という条件である、請求項４に記載の画像処理装置。
【請求項６】
コンピュータを、
入力画像から主たる生成画像を生成する主生成手段、
前記入力画像から前記主生成手段とは異なる方法で従たる生成画像を生成する、少なくとも１つの従生成手段、
処理対象として入力された画像に対して本体処理を実行する本体処理手段、
前記主たる生成画像及び前記少なくとも１つの従生成手段の各々が生成した前記従たる生成画像からなる一群の生成画像のうちの少なくとも１つの生成画像が入力され、当該生成画像が前記本体処理に適しているか否かの識別を実行し、前記一群の生成画像のうち前記本体処理に適していると識別した１つの生成画像を前記処理対象として前記本体処理手段に入力する識別手段、
として機能させるためのプログラムであって、
前記主生成手段と前記識別手段との組は、敵対的生成ネットワークとして構成されており、前記主生成手段は、正解画像と前記正解画像に前記本体処理の妨げとなる妨げ要素が加わった学習用画像とのペア群を用いて、前記学習用画像から前記正解画像を前記主たる生成画像として生成する学習を済ませており、前記識別手段は、前記ペア群を用いて、前記主生成手段が前記学習用画像から生成した前記主たる生成画像と前記正解画像とを識別する学習を済ませており、
前記識別手段は、入力された前記生成画像が前記正解画像であると識別した場合に、当該生成画像が前記本体処理に適していると識別する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
画像に対して文字認識等の処理を行う場合に、その画像から、その処理の妨げとなる要素（以下、妨げ要素と呼ぶ）を除去する前処理を行うことがある。妨げ要素は、前処理に対する本体の処理（例えば文字認識）の精度（すなわち正解率）を低下させる要素である。
【０００３】
例えばＦＡＸ送信やコピー等の繰り返し、筆記具等による記入の重なり、透かしやステガノグラフィ等の地紋の重なり、あるいはそれらの混合等により、本来の処理の対象である画像が激しく劣化する場合がある。このような劣化により、本来の画像から変化した部分が妨げ要素の一例である。
【０００４】
また、帳票のように記入枠や罫線等を含んだ文書から、人間が記入した文字のみを文字認識するシステムでは、記入枠や罫線等が文字と重なる等により、文字認識の精度の低下をもたらす場合がある。この場合、記入枠や罫線等が妨げ要素となる。
【０００５】
妨げ要素を除く前処理としては、例えば画像の二値化、画像から特定の色の部分を除去する処理（カラードロップアウトとも呼ばれる）等が知られている。二値化やカラードロップアウトにより、薄い地紋や罫線等、あるいは特定色の地紋や罫線等が除去又は低減される。
【０００６】
また、前処理にニューラルネットワーク等の機械学習技術を用いることも行われている。
【０００７】
特許文献１には、撮影した文書に対するＯＣＲ（光学文字認識）処理において、前処理、レイアウト分析、文字認識処理等を、ニューラルネットワークを利用して行うシステムが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−００８８０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
妨げ要素を含む入力画像が入力され、この入力画像から妨げ要素を低減された生成画像を生成するよう学習した生成手段を考える。このような生成手段を構成するには、妨げ要素を含まない正解画像と、その正解画像に妨げ要素を加えた入力画像と、のペアを学習データとして生成手段に与え、生成手段が入力画像から生成する生成画像が正解画像に近くなるよう生成手段を学習させるという方法が考えられる。この学習の処理では、生成手段がターゲットとしている種類の文書のサンプル群を学習データとして生成手段に学習させる。
【００１０】
このように学習させた生成手段に対して、ターゲットとは別の種類の文書の画像が入力される場合があり得る。このような場合、生成手段は、その別の種類の文書について学習していないので、生成手段が生成する生成画像が、本体処理に適さないものになる可能性がある。例えば、Ａ社の発注伝票を学習した生成手段にＢ社の発注伝票の画像が入力された場合、Ｂ社の発注伝票からの罫線や汚れ等の妨げ要素の除去がうまくなされず、本体処理の一例である文字認識に誤りをもたらす可能性がある。
【００１１】
本発明は、主たる生成手段が学習していない種類の入力画像が入力される可能性がある場合に、入力画像をその主たる生成手段に入力して生成画像を生成させる方式よりも、その入力画像から本体処理に適した生成画像を生成できる蓋然性を高めることを目的とする。
【課題を解決するための手段】
【００１２】
請求項１に係る発明は、入力画像から主たる生成画像を生成する主生成手段と、前記入力画像から前記主生成手段とは異なる方法で従たる生成画像を生成する、少なくとも１つの従生成手段と、処理対象として入力された画像に対して本体処理を実行する本体処理手段と、前記主たる生成画像及び前記少なくとも１つの従生成手段の各々が生成した前記従たる生成画像からなる一群の生成画像のうちの少なくとも１つの生成画像が入力され、当該生成画像が前記本体処理に適しているか否かの識別を実行し、前記一群の生成画像のうち前記本体処理に適していると識別した１つの生成画像を前記処理対象として前記本体処理手段に入力する識別手段と、を含み、前記主生成手段と前記識別手段との組は、敵対的生成ネットワークとして構成されており、前記主生成手段は、正解画像と前記正解画像に前記本体処理の妨げとなる妨げ要素が加わった学習用画像とのペア群を用いて、前記学習用画像から前記正解画像を前記主たる生成画像として生成する学習を済ませており、前記識別手段は、前記ペア群を用いて、前記主生成手段が前記学習用画像から生成した前記主たる生成画像と前記正解画像とを識別する学習を済ませており、前記識別手段は、入力された前記生成画像が前記正解画像であると識別した場合に、当該生成画像が前記本体処理に適していると識別する、画像処理装置である。
【００１３】
請求項２に係る発明は、前記入力画像を解析することにより、前記主生成手段及び前記少なくとも１つの従生成手段からなる一群の生成手段を動作させる順序のうち少なくとも最初から所定番目までの順序を求め、求めた順序に従って動作させた前記生成手段に対して前記入力画像を入力し、この入力に応じて当該生成手段が生成した前記生成画像が前記識別手段に入力されるようにし、この入力に応じて前記識別手段が前記処理対象を前記本体処理手段に入力した場合には、前記一群の生成手段のうち、前記順序において当該生成手段の後の生成手段は動作させずに前記入力画像についての処理を終了する制御を行う順序制御手段、を更に含む請求項１に記載の画像処理装置である。
【００１４】
請求項３に係る発明は、前記ペア群に含まれる前記学習用画像は、所定の種類の文書の様々なサンプルを読み取ることにより得られた画像であり、前記順序制御手段は、前記所定の種類の文書の画像と、別の種類の文書の画像とを識別する学習を行ったものであり、前記入力画像が前記所定の種類の文書の画像であると識別した場合には、前記順序において、前記主生成手段を最初のものとする、請求項２に記載の画像処理装置である。
【００１５】
請求項４に係る発明は、前記本体処理手段が前記処理対象として入力された前記生成画像に対して実行した前記本体処理の結果をユーザに提示すると共に、前記ユーザから前記結果に対する修正の入力を受け付ける修正受付手段と、前記識別手段を追加的に学習させる追加学習手段と、を含み、前記追加学習手段は、前記修正受付手段が前記結果に対して受け付けた前記修正が所定の条件を満たす場合に、前記処理対象として入力された前記生成画像が前記正解画像ではないと識別するよう前記識別手段を学習させる、請求項１〜３のいずれか１項に記載の画像処理装置である。
【００１６】
請求項５に係る発明は、前記所定の条件は、前記修正受付手段が受け付けた前記修正が、前記本体処理の誤りを原因として起こりやすいものとして予め登録されている種類の修正に該当しない、という条件である、請求項４に記載の画像処理装置である。
【００１７】
請求項６に係る発明は、コンピュータを、入力画像から主たる生成画像を生成する主生成手段、前記入力画像から前記主生成手段とは異なる方法で従たる生成画像を生成する、少なくとも１つの従生成手段、処理対象として入力された画像に対して本体処理を実行する本体処理手段、前記主たる生成画像及び前記少なくとも１つの従生成手段の各々が生成した前記従たる生成画像からなる一群の生成画像のうちの少なくとも１つの生成画像が入力され、当該生成画像が前記本体処理に適しているか否かの識別を実行し、前記一群の生成画像のうち前記本体処理に適していると識別した１つの生成画像を前記処理対象として前記本体処理手段に入力する識別手段、として機能させるためのプログラムであって、前記主生成手段と前記識別手段との組は、敵対的生成ネットワークとして構成されており、前記主生成手段は、正解画像と前記正解画像に前記本体処理の妨げとなる妨げ要素が加わった学習用画像とのペア群を用いて、前記学習用画像から前記正解画像を前記主たる生成画像として生成する学習を済ませており、前記識別手段は、前記ペア群を用いて、前記主生成手段が前記学習用画像から生成した前記主たる生成画像と前記正解画像とを識別する学習を済ませており、前記識別手段は、入力された前記生成画像が前記正解画像であると識別した場合に、当該生成画像が前記本体処理に適していると識別する、プログラムである。
【発明の効果】
【００１８】
請求項１又は６に係る発明によれば、主生成手段が学習していない種類の入力画像が入力される可能性がある場合に、入力画像をその主生成手段に入力して生成画像を生成させる方式よりも、その入力画像から本体処理に適した生成画像を生成できる蓋然性を高めることができる。
【００１９】
請求項２に係る発明によれば、主生成手段及び少なくとも１つの従生成手段からなる一群の生成手段を固定的な順序で動作させる方式と比べて、入力画像に対して本体処理手段による本体処理が実行されるのを早めることができる。
【００２０】
請求項３に係る発明によれば、主生成手段が学習した学習用画像に類似する画像をいずれかの従生成手段に先に処理させる場合よりも、入力画像に対して本体処理手段による本体処理が実行されるのを早めることができる。
【００２１】
請求項４に係る発明によれば、識別手段に追加的に学習させない場合に比べて、学習用画像群に類似しない入力画像が入力された場合の識別手段の識別を、本体処理の結果が修正を受けにくい方向に学習させることができる。
【００２２】
請求項５に係る発明によれば、本体処理の誤りを原因とする処理結果の修正により識別手段が誤った方向に学習することを防ぐことができる。
【図面の簡単な説明】
【００２３】
【図１】第１の実施形態の画像処理装置の構成を例示する図である。
【図２】第１前処理部及び識別部として用いられる生成器及び識別器を学習させるためのＧＡＮの構成を例示する図である。
【図３】第２の実施形態の画像処理装置の構成を例示する図である。
【図４】第３の実施形態の画像処理装置の構成を例示する図である。
【発明を実施するための形態】
【００２４】
＜第１の実施形態＞
この実施形態の画像処理装置を、図１に示す。
【００２５】
図１に示す画像処理装置は、入力画像に対して本体処理部１１０により何らかの本体処理を行うための装置である。本体処理は、例えばＯＣＲ（光学文字認識）や顔認識等といった処理である。本体処理部１１０は、本体処理手段の一例である。入力画像の中には、そのままでは本体処理部１１０の処理に適さないもの、言い換えればそのままその処理を適用すると十分な精度の処理結果が得られないものが少なくない。これは、入力画像の中に、本体処理部１１０の行う処理に対する妨げ要素が含まれているからであると考えられる。すなわち、妨げ要素は、入力画像が含む要素のうち、本体処理部１１０の処理の精度を低下させる要素のことである。なお、ここでいう「要素」は、入力画像を構成する様々な形態の部分又は成分等のことである。例えば、入力画像中の特定の一以上の画素からなる部分や、入力画像の各画素が持っている色成分、入力画像が含む周波数成分等が、要素の例である。
【００２６】
このような妨げ成分の影響を低減して本体処理部１１０の処理の精度を向上させるために、図１に例示するシステムでは、入力画像を、Ｎ個（Ｎは２以上の整数）の前処理部１００のいずれか、すなわち第１前処理部１００−１、第２前処理部１００−２、第３前処理部１００−３、・・・、又は第Ｎ前処理部１００−Ｎで前処理することで、入力画像中に含まれる妨げ要素を除去又は低減する。第１前処理部１００−１、第２前処理部１００−２、第３前処理部１００−３、・・・、第Ｎ前処理部１００−Ｎは、互いを区別する必要がない場合には、前処理部１００と呼ぶこととする。それらＮ個の前処理部１００は、それぞれ前処理結果の画像である生成画像を出力する。生成画像が含む妨げ要素は、入力画像の妨げ成分よりも少ない又は弱い。本体処理部１１０は、その生成画像に対して、自身の処理を実行することにより、処理結果を生成し出力する。
【００２７】
Ｎ個の前処理部１００のうち、第１前処理部１００−１は、ＧＡＮ（Generative adversarial networks：敵対的生成ネットワーク）を用いて構成されている。すなわち、ＧＡＮに、あらかじめ用意した学習データ群を学習させ、この学習が済んだＧＡＮの生成器を第１前処理部１００−１として用いる。
【００２８】
ここで、ＧＡＮの学習により第１前処理部１００−１を構成する仕組みについて、図２を参照して説明する。図２に示すＧＡＮは、生成器（ジェネレータ）１０と識別器（ディスクリミネータ）２０とを含む。
【００２９】
このＧＡＮは、あらかじめ用意した学習データ５０のセットを用いて学習する。このセットに含まれる個々の学習データ５０は、学習用画像５２と正解画像５４のペアを含む。学習用画像５２は妨げ要素を含んだ画像である。学習用画像５２とペアになる正解画像５４は、その学習用画像５２から妨げ要素群を除去して得られる画像である。言い換えれば、正解画像５４は、本体処理部１１０の処理の妨げとなる妨げ要素を含まない画像であり、これに対応する学習用画像５２は、その正解画像５４に対して何らかの妨げ要素を加えることにより得られる画像である。例えば、実際の帳票を読み取ることにより得られる画像が学習用画像５２の一例であり、その学習用画像５２から文字認識の妨げとなる罫線や汚れ等を除去することで得られる画像が正解画像５４の一例である。
【００３０】
生成器１０は、学習用画像５２から生成画像５６を生成するニューラルネットワークである。生成画像５６は、学習用画像５２に対応する正解画像５４を推定した画像である。すなわち、生成器１０は、妨げ要素を含んだ学習用画像５２から、妨げ要素を含まない正解画像５４に近い生成画像５６を生成する。生成器１０は、多数の学習用画像５２を用いて学習することで、より正解画像５４に近い生成画像５６を生成できるようになる。
【００３１】
識別器２０は、入力された画像が、学習用画像５２に対応する正解画像５４、及び学習用画像５２から生成器１０が生成した生成画像５６、のうちのいずれであるかを識別するニューラルネットワークである。学習制御部４０は、正解画像５４又は生成画像５６を識別器２０に入力する。これに応じて、識別器２０は、入力された画像が正解画像５４（言い換えれば、本物:real）又は生成画像５６（言い換えれば偽物:fake）のいずれであるかを識別し、その識別結果を示す信号を出力する。また、識別器２０は、その識別結果の確信度を出力してもよい。確信度とは、その識別結果が正解である蓋然性（すなわち確からしさの度合い）を示す評価値である。
【００３２】
識別結果判定部２２は、識別器２０の識別結果が正しいか誤りかを判定する。例えば、識別器２０に入力された画像が正解画像５４であり、これに対する識別器２０の識別結果が「正解画像」である場合には、その識別結果は正しい。また例えば、識別器２０に入力された画像が生成画像５６であり、これに対する識別器２０の識別結果が「正解画像」である場合には、その識別結果は誤りである。識別結果判定部２２には、識別器２０に入力された画像が正解画像５４と生成画像５６のいずれであるかを示す解答情報が与えられ、その解答情報を参照することで、識別器２０の識別結果が正しいか誤りかを判定する。識別結果判定部２２の判定結果（すなわち、正しいか誤りかを示す情報）から求められる損失信号が識別器２０及び生成器１０にフィードバックされる。識別器２０及び生成器１０は、この損失信号に基づいて学習を行う。また、損失信号に加え、又はその代わりに、確信度の情報を、学習のために識別器２０及び生成器１０にフィードバックしてもよい。なお、識別結果判定部２２の判定結果のフィードバックによる識別器２０及び生成器１０の学習の手法は、従来のＧＡＮで用いられているものと同様のものでよい。
【００３３】
画像比較部３０は、正解画像５４と、この正解画像５４に対応する学習用画像５２から生成器１０が生成した生成画像５６とを比較し、比較結果を示す信号を生成器１０にフィードバックする。比較結果を示す信号は、例えば正解画像５４と生成画像５６の差分を示す信号である。生成器１０は、前述した識別結果判定部２２からの損失信号と、この画像比較部３０からの比較結果の信号とに基づいて学習を行う。この学習も従来技術を用いればよい。
【００３４】
学習制御部４０は、生成器１０及び識別器２０の学習を制御する。学習制御部４０は、学習データ５０を読み込み、これに含まれる学習用画像５２を生成器１０に、学習用画像５２及び正解画像５４を識別器２０に入力する。また学習制御部４０は、この入力に応じて識別結果判定部２２及び画像比較部３０が出力する信号を、生成器１０及び識別器２０にフィードバックすることで、生成器１０及び識別器２０を学習させる。生成器１０及び識別器２０は、フィードバックされた信号に応じて、各々のニューラルネットワークのノード間の結合の重みパラメータを更新することにより、学習を行う。
【００３５】
ＧＡＮを構成する生成器１０及び識別器２０は、前者が教師データ（正解画像５４）になるべく近い偽物（生成画像５６）を生成しようとし、後者がその偽物を正しく識別しようとするという形で、いわば互いに切磋琢磨しながら学習を進める。
【００３６】
この画像処理装置の学習には、例えば「pix2pix」というアルゴリズム（Phillip Isola他による論文「Image-to-Image Translation with Conditional Adversarial Networks」、Berkeley AI Research (BAIR) Laboratory, UC Berkeley参照）と同様の方式を用いてもよい。また、他の例として、Ｃｙｃｌｅ  ＧＡＮと呼ばれるＧＡＮと同様の仕組みを用いてもよい。Ｃｙｃｌｅ  ＧＡＮを用いた場合、入力画像のすべてに正解画像が用意されていない場合でも学習が可能である。
【００３７】
図２に例示した画像処理装置により学習した生成器１０は、入力される学習用画像５２から、正解画像５４に近い生成画像５６を生成することができる。同様に、学習に用いた学習データ５０のセットに含まれる学習用画像５２群に対して傾向がある程度近い画像が入力された場合には、生成器１０は、その画像から、妨げ要素群が除去又はよく低減された生成画像を生成する。この生成画像は、本体処理部１１０が行う本体処理に適したものとなっている。
【００３８】
学習データ５０は、例えばある企業のある帳票というように所定の種類の紙文書をスキャナ等で光学的に読み取ることにより得られた画像である。
【００３９】
しかし、生成器１０がそのように品質のよい生成画像５６を生成できるのは、学習した範囲内、すなわち学習に用いた学習データ５０のセットに含まれる学習用画像５２群にある程度近い画像が入力された場合、に限られる。
【００４０】
逆に、学習した範囲からある程度以上外れた画像が入力された場合には、生成器１０は、予期できない画像を生成する。この場合に生成器１０が生成する生成画像は、妨げ要素が十分に除去又は低減されていない。それどころか、その生成画像は、その入力された画像が含んでいる画像内容（すなわち妨げ要素でない画像の本体）自体が変化している場合すらある。このような生成画像は、本体処理部１１０が実行する本体処理には適さない。
【００４１】
例えば、ある企業の業務に用いる紙の伝票を読み取って、その記入内容を電子化する画像処理装置を構築する場合を考える。この場合、伝票をスキャンした画像を文字認識することとなる。ここで、伝票には、罫線やロゴマークなどのように電子化の対象でない画像が含まれたり、汚れが含まれたりしている。これらは、本体処理である文字認識に対する妨げ要素となる。そこで、ＧＡＮに対して、例えば、その企業のその業務の伝票のサンプルの画像群を学習用画像５２とし、それら伝票中の認識対象の文字の部分のみを抽出した画像群を正解画像５４として入力することで、そのＧＡＮを学習させる。学習したＧＡＮの生成器１０は、同じ企業の同じ業務の伝票をスキャンした画像が入力された場合、その画像から妨げ要素をよく除去又は低減した生成画像を生成する。
【００４２】
その生成器１０を用いる画像処理装置が、例えば更に別の１以上の企業や別の１以上の業務の新たな伝票群を処理することとなった場合を考える。この場合、それら新たに処理することとなった伝票群について、生成器１０に学習させるか、または、それら新たな伝票群用に学習した新たな生成器１０を用意し、画像形成装置に追加することが望ましい。しかし、このような追加の学習のためには、新たな伝票群についてのサンプル画像と正解画像を大量に用意する必要があるため、少なくとも急には対応することができない。
【００４３】
このように、ＧＡＮの仕組みで学習した生成器１０を前処理部（図１では第１前処理部１００−１）は、学習したサンプルの範囲からある程度傾向が離れた画像に適切に対応できないという問題がある。
【００４４】
そこで、図１に示した本実施形態の画像処理装置は、第１前処理部１００−１（すなわち、学習済みの生成器１０）の他に、第２前処理部１００−２、第３前処理部１００−３、・・・、第Ｎ前処理部１００−Ｎと、識別部１２０と、制御部１３０とを備える。
【００４５】
第２前処理部１００−２、第３前処理部１００−３、・・・、第Ｎ前処理部１００−Ｎは、第１前処理部１００−１とは異なる方法で、妨げ要素群の少なくとも一部に対して除去又は低減の効果が見込める前処理を実行する。また、第２前処理部１００−２、第３前処理部１００−３、・・・、第Ｎ前処理部１００−Ｎが実行する前処理の方向は、互いに異なるものとする。
【００４６】
画像処理装置が、紙の帳票に記入された文字を認識して電子化する装置である場合を例に取ると、第２前処理部１００−２、・・・、第Ｎ前処理部１００−Ｎは、帳票の文字認識に用いられている既存の前処理技術を用いたものであってもよい。例えば、第２前処理部１００−２が実行する前処理は、入力画像の二値化であってもよい。二値化により、帳票の薄い色のついた罫線や地紋が除去される場合がある。また、第３前処理部１００−３が実行する前処理は、入力画像を第２前処理部１００−２とは別の濃度閾値で二値化する処理であってもよい。また、第４前処理部１００−４が行う前処理は、例えばカラードロップアウト処理であってもよい。カラードロップアウト処理により、帳票の色付きの地紋などが除去される場合がある。また、第５前処理部１００−５は、第１前処理部１００−１とは異なるサンプル画像のセットを用いて、それらサンプル画像内の妨げ要素の除去又は低減を学習したニューラルネットワーク（例えばＧＡＮの生成器）であってもよい。以上、第２前処理部１００−２、・・・、第Ｎ前処理部１００−Ｎの例をいくつか挙げたが、それらはあくまで例示的なものにすぎない。
【００４７】
図１の画像処理装置において、第１前処理部１００−１は、主生成手段の一例であり、これが生成する生成画像は、主たる生成画像の一例である。これに対し、第２前処理部１００−２、・・・、第Ｎ前処理部１００−Ｎは、従生成手段の一例であり、それらが生成する生成画像は従たる生成画像の一例である。
【００４８】
識別部１２０は、第１前処理部１００−１である生成器１０とＧＡＮを構成していた識別器２０を含む。すなわち、本実施形態では、生成器１０と識別器２０とを含むＧＡＮを学習データのセットで学習させた後、生成器１０を第１前処理部１００−１として画像処理装置に搭載すると共に、識別器２０をその画像処理装置内の識別部１２０に組み込むのである。また、識別部１２０は、入力された画像を記憶し、内蔵する識別器２０の識別結果に応じてその記憶した画像を後段の本体処理部１１０に出力するか破棄するかを制御するための手段を含む。
【００４９】
識別部１２０は、与えられた学習データのセットを用いて、入力された画像が本物（すなわち正解画像５４）か、偽物（すなわち生成画像５６）かを識別するよう学習済みである。正解画像５４は妨げ要素を含んでいない画像なので、識別部１２０が本物であると識別した画像は、妨げ要素が除去又はよく低減されている蓋然性が高い。すなわち、識別部１２０が本物と識別した画像は、本体処理部１１０の処理に適した画像である可能性が高い。そこで、識別部１２０は、入力された画像が本物であると識別した場合に、その画像を後段の本体処理部１１０に入力する。
【００５０】
制御部１３０は、第１前処理部１００−１、・・・、第Ｎ前処理部１００−Ｎを制御することで、第ｋ前処理部１００−ｋがそれぞれ生成した第ｋの生成画像が順に１つずつ識別部１２０に入力されるようにする。
【００５１】
第１の例では、制御部１３０は、第１前処理部１００−１から順に、第ｋ前処理部１００−ｋをｋの値の小さい順に起動し、起動した第ｋ前処理部１００−ｋに入力画像を渡す。起動した第ｋ前処理部１００−ｋは、その入力画像に対して前処理を行うことにより第ｋの生成画像を生成し、その第ｋの生成画像を識別部１２０に入力する。識別部１２０は、入力された第ｋの生成画像が本物（すなわち本体処理部１１０の処理に適している）か偽物（すなわち適していない）かを識別する。そして、本物と識別した場合には、その第ｋの生成画像を本体処理部１１０に入力する。本体処理部１１０は、入力された第ｋの生成画像に対して本体処理（例えばＯＣＲ処理）を実行し、その処理結果を出力する。また識別部１２０は、第ｋの生成画像を偽物と識別した場合、その第ｋの生成画像を破棄する。また識別部１２０は、入力された第ｋの生成画像に対する識別の結果を制御部１３０に通知する。制御部１３０は、通知された識別の結果が「偽物」である場合、制御変数ｋを１増加させ、次の前処理部１００に前処理を実行させ、その前処理部１００が生成した生成画像を識別部１２０に識別させる。逆に、通知された識別の結果が「本物」である場合、制御部１３０は、次の前処理部１００は起動せず、今回の入力画像についての処理を終了する。この場合、識別部１２０で本物と識別された生成画像を出力した第ｋ前処理部１００−ｋより順番が後の前処理部１００は、起動されず、したがってその入力画像に対して前処理を行わない。例えば個々の前処理部１００をソフトウエアとして実装する場合、この例の制御を用いることにより、Ｎ個の前処理部１００のうち起動するものが最小限で済む。
【００５２】
また、第２の例として、第１前処理部１００−１、・・・、第Ｎ前処理部１００−Ｎの全てを動作させ、入力画像をそれら全ての前処理部１００に前処理させる方式を用いてもよい。この方式では、第１前処理部１００−１、・・・、第Ｎ前処理部１００−Ｎは、前処理の結果である生成画像を、制御部１３０からの出力指示があるまで保持する。制御部１３０は、ｋ＝１から順に、第ｋ前処理部１００−ｋに対して保持している生成画像を識別部１２０に出力するよう指示する。この指示に応じて、第ｋ前処理部１００−ｋに保持された第ｋの生成画像が識別部１２０に入力され、識別部１２０はその第ｋの生成画像を識別する。識別部１２０が第ｋの生成画像が本物であると判定した場合は、第１の例と同様、その生成画像が本体処理部１１０に渡され、これによりその入力画像についての処理は終了する。この場合、第ｋ前処理部１００−ｋよりも順番が後の前処理部１００が保持している生成画像は破棄される。識別部１２０が第ｋの生成画像が偽物であると判定した場合は、制御部１３０は、ｋを１増加させ、次の前処理部１００が保持する生成画像を識別部１２０に供給する。例えば、Ｎ個の前処理部１００をハードウエアとして内蔵している装置の場合、第２の例の制御を用いることにより、第１の例よりも、入力画像が入力されてから本体処理部１１０の処理結果が得られるまでの時間が短くなる。
【００５３】
＜第２の実施形態＞
以上、第１の実施形態について説明した。次に図３を参照して第２の実施形態を説明する。
【００５４】
図３に示す第２の実施形態の画像処理装置は、第１の実施形態の画像処理装置に対して解析部１３２を追加したものである。
【００５５】
解析部１３２は、入力画像を解析する。制御部１３０ａは、解析部１３２の解析結果に従って、第１前処理部１００−１、・・・・、第Ｎ前処理部１００−Ｎを動作させる順序を決定し、その順序に従って、それら前処理部１００に前処理を実行させる。特に制御部１３０ａは、それらＮ個の前処理部１００のうち最初から所定番目（すなわちｎ番目（ｎ＜Ｎ））までの順序を少なくとも決定する。もっとも単純には、制御部１３０ａは、それらＮ個の前処理部１００のうち、最初に動作させるもの（すなわち最初に前処理を実行させるもの）を決定する。解析部１３２と制御部１３０ａの組が、順序制御手段の一例である。
【００５６】
この制御の第１の例では、解析部１３２は、入力画像を解析することにより、第１前処理部１００−１と識別部１２０内の識別器２０の学習に用いた学習データ５０のセット（以下、第１セットと呼ぶ）の学習用画像５２と同種の画像であるかを判定する。このような解析部１３２は、例えば、ニューラルネットワークにそれら学習用画像５２群を学習させることで構築すればよい。例えば、そのニューラルネットワークに第１セットの学習用画像５２と、第１セット内の学習用画像５２とは異なる画像（例えばランダムに生成した画像）と例えばランダムに解析部１３２に入力し、両者を判別できるようそのニューラルネットワークを学習させればよい。すなわち、解析部１３２のニューラルネットワークが、入力画像を処理して、その入力画像が第１セットの学習用画像に該当するか否かを示す出力を生成する処理が、解析部１３２が行う解析の例である。入力画像が第１セットの学習用画像５２であると解析部１３２が判定した場合、入力画像は第１セットの学習用画像５２群と類似した画像であるといえる。この例では、入力画像が第１セットの学習用画像５２に該当すると解析部１３２が判定した場合、制御部１３０ａは、入力画像を最初に第１前処理部１００−１に入力する。入力画像は、第１セットの学習用画像５２に似ているため、第１前処理部１００−１により妨げ要素群を十分に低減できる蓋然性が高い。一方、入力画像が第１前処理部１００−１の学習した学習用画像５２に該当しないと解析部１３２が判定した場合、制御部１３０ａは、入力画像を、第２前処理部１００−２、・・・・、第Ｎ前処理部１００−Ｎのうちの所定の前処理部１００に最初に入力する。
【００５７】
このように、第１の例では、入力画像に対して最初に動作させる前処理部を、第１前処理部１００−１とするか、それ以外の所定の前処理部１００とするかという順序を決定する。例えば、入力画像が第１セットの学習用画像に該当すると解析部１３２が判定した場合、第１前処理部１００−１がその入力画像から生成した生成画像は、かなり高い確率で、識別部１２０により本物として識別され、本体処理部１１０に送られる。したがって、その他の前処理部１００を動作させる必要が出てくる確率は低い。
【００５８】
次に第２の例を説明する。この例では、画像処理装置は、第１前処理部１００−１、第２前処理部１００−２、第３前処理部１００−３の３つの前処理部１００を含み、それらのうちどれを最初に実行するかという順序を決定する。またこの例では、第２前処理部１００−２が、第１前処理部１００−１とは別の学習データのセットで妨げ要素の除去又は低減を学習したものであるとする。例えば、第１前処理部１００−１がＡ社の帳票からの妨げ要素の除去を学習したものであり、第２前処理部１００−２がＢ社の帳票からの妨げ要素の除去を学習したものである場合である。第１前処理部１００−１が学習した学習データのセットを第１セットと呼び、第２前処理部１００−２が学習した学習データのセットを第２セットと呼ぶこととする。また、第３前処理部１００−３は既存のカラードロップアウト処理を実行するものであるとする。この例では、解析部１３２は、入力画像が、（ａ）第１セットの学習用画像に該当する、（ｂ）第２セットの学習用画像に該当する、（ｃ）そのどちらでもない、のいずれであるかを判定する。このために、解析部１３２としては、例えばニューラルネットワークに、その３つのケースを識別するための学習を行わせたものを用いる。これには、第１セットの学習用画像、第２セットの学習用画像、その他の画像を解析部１３２に例えばランダムに入力し、それら三者を判別できるようそのニューラルネットワークを学習させればよい。制御部１３０ａは、解析部１３２の解析の結果が（ａ）であれば入力画像を最初に第１前処理部１００−１に処理させ、（ｂ）であれば入力画像を最初に第２前処理部１００−２に処理させ、（ｃ）であれば入力画像を最初に第３前処理部１００−３に処理させる。すなわち、入力画像から最も質のよい（すなわち妨げ要素の除去又は低減の度合いが高い）生成画像を生成できると期待される前処理部１００に、最初に入力画像を入力するのである。これにより、最初の前処理部１００の生成する生成画像が識別部１２０により本物と識別される確率が高くなり、２番目以降の前処理部１００を動作させる必要性が少なくなる。なお、最初の前処理部１００の前処理結果が識別部１２０で偽物と識別された場合、２番目にどの前処理部１００に入力画像を入力するかは、例えば予め定めておけばよい。
【００５９】
第３の例は、第２の例と同じ３つの前処理部１００を持つ画像処理装置において、制御部１３０ａが、解析部１３２の解析の結果に従い、入力画像に対してそれら３つをどの順で適用するかを決定する。このために、解析部１３２は、入力画像が上述した第２の例において挙げた（ａ）、（ｂ）、（ｃ）のそれぞれにどの程度の確率（確信度とも呼ばれる）で該当するかを求める。このためには、解析部１３２に、上述した第２の例の場合と同様の学習を行わせる。また、その学習の結果に基づき、解析部１３２が、入力画像が（ａ）、（ｂ）、（ｃ）のそれぞれに該当する確率を出力するよう設定する。そして、このように学習及び設定した解析部１３２に入力画像が入力され、これに応じて入力画像が（ａ）、（ｂ）、（ｃ）のそれぞれに該当する確率を解析部１３２が出力する。制御部１３０ａは、その確率が高い順に、入力画像を入力する。例えば、確率の高い順に（ｂ）、（ａ）、（ｃ）である場合、制御部１３０ａは、まず第２前処理部１００−２に入力画像を入力する。これに応じて第２前処理部１００−２が生成した生成画像が識別部１２０で本物と識別された場合には、他の前処理部１００は用いられない。逆にその生成画像が偽物と識別された場合は、次に制御部１３０ａは、第１前処理部１００−１に入力画像を入力させる。これにより生成された生成画像を識別部１２０が偽物と判定した場合、制御部１３０ａは、入力画像を第３前処理部１００−３に入力する。なお、識別部１２０が、それら３つすべての前処理部１００の生成画像を偽物と判定した場合には、制御部１３０ａは、所定の例外処理を実行する。この例外処理は、例えば、ユーザに対してエラーを通知する処理であってもよいし、解析部１３２が最も確率が高いと判定した前処理部１００が生成した画像を本体処理部１１０に処理させる処理であってもよい。
【００６０】
このように、第３の例は、入力画像がどの前処理部１００に処理させると成功する確率が高いかを解析部１３２が判定し、その確率が高い順に従って、それら３つの前処理部１００に順に入力画像を処理させるものである。なお、ここでいう成功とは、前処理部１００が入力画像から生成した生成画像が、識別部１２０により本物と識別されることである。
【００６１】
＜第３の実施形態＞
次に、図４を参照して、第３の実施形態を説明する。
【００６２】
図３に示す第２の実施形態の画像処理装置は、第１の実施形態の画像処理装置に対して修正受付部１４０及び学習制御部１５０を追加したものである。
【００６３】
修正受付部１４０は、修正受付手段の一例であり、本体処理部１１０が出力した処理結果に対して、チェック者（人間）から修正の入力を受け付ける。例えば、修正受付部１４０は、入力画像と、その入力画像に対応して本体処理部１１０が出力した処理結果とを画面に表示する。チェック者は、その画面で、例えば入力画像と処理結果とを見比べて、その処理結果が正しいかどうかを判断する。そして、その処理結果に誤りがあれば、チェック者は、修正受付部１４０に対して修正の入力を行う。例えば、本体処理部１１０がＯＣＲ処理を行うものである場合、修正受付部１４０は、そのＯＣＲ処理の処理結果の文字列に対する文字の修正を受け付ける。チェック者のチェック、及び修正（もしあれば）を受けた後の処理結果が、この画像処理装置の最終的な処理結果として出力される。
【００６４】
世の中には、帳票に記入された文字列を電子化するデータエントリのためのシステムとして、その帳票の画像と、その画像のＯＣＲ結果とを人間に提示し、人間に確認、及び必要に応じて修正を求めることで、正確な電子化を期するものがある。第３の実施形態の画像処理装置は、そのようなシステムとして利用することも可能である。
【００６５】
学習制御部１５０は、追加学習手段の一例であり、修正受付部１４０が受け付けた修正に従って、識別部１２０内のニューラルネットワーク（すなわち識別器２０）を追加的に学習させるための制御を行う。上述のように、そのニューラルネットワークは、ＧＡＮ内の識別器２０として、生成器１０（＝第１前処理部１００−１）と競合的に学習を済ませたものであるが、このニューラルネットワークを更に追加的に学習させるのである。学習制御部１５０は、修正受付部１４０が受け付けた修正が所定の条件を満たす場合に、その修正の対象である処理結果の元になった生成画像を本物（すなわち正解画像）でないと識別するよう、識別部１２０内のニューラルネットワークを学習させる。この追加的な学習の基本的な考え方は、以下の通りである。
【００６６】
すなわち、この考え方では、修正受付部１４０がチェック者から修正を受け付けた場合、修正された処理結果の元になった生成画像は、本体処理部１１０の処理にとって適切でなかったと考える。その生成画像は、識別部１２０で本物（すなわち本体処理部１１０の処理にとって適切）と識別されたため、本体処理部１１０で処理されたのである。しかし、その処理結果は誤っていたから修正されたのであり、その生成画像は結果として本体処理部１１０の処理には適していなかったと考える。そして、その誤りの原因の一つが、識別部１２０の識別結果が誤りであったことだと考えるのである。
【００６７】
このような考え方に基づき、学習制御部１５０は、修正された処理結果の元になった生成画像を、識別部１２０内のニューラルネットワークが本物と判定しないよう（すなわち、例えばそれを偽物と判定するよう）、そのニューラルネットワークを学習させる。すなわち、この例では、処理結果に対して修正がなされたこと自体が、識別部１２０にその処理結果の元となった生成画像が正解画像でないとの学習をさせるための所定の条件である。なお、追加的な学習では、修正がなされなかった処理結果の元となった生成画像を本物と識別するよう、その生成画像と本物を示すラベルとを更に識別部１２０内のニューラルネットワークに学習させてもよい。
【００６８】
例えば、第１前処理部１００−１の出力した生成画像を識別部１２０が本物と識別し、その生成画像を本体処理部１１０が処理したところ、その処理結果に対してチェック者が修正受付部１４０に対して修正を入力したとする。この場合、学習制御部１５０は、例えば、その生成画像を入力信号とし、「偽物」とのラベルを教師信号としてそのニューラルネットワークに与えることで、そのニューラルネットワークを追加的に学習させる。
【００６９】
この追加的な学習は、処理結果に対して修正が行われる都度行ってもよいし、学習用のサンプル（すなわち修正された処理結果の元になった生成画像）がある程度蓄積されるごとに行ってもよい。後者の例における追加的な学習の実行のタイミングとしては、例えば、この画像処理装置を用いて業務が行われる業務時間の終了後のある時刻のように、予め定められた時刻であってもよいし、サンプルの量が所定量まで蓄積されたタイミングであってもよい。
【００７０】
このように識別部１２０に追加的な学習を行わせることで、識別部１２０が識別を誤る確率が低くなり、これにより本体処理部１１０の処理結果の正解率の向上が期待される。
【００７１】
以上の例では、チェック者が処理結果を修正した場合、直ちに、その処理結果の元となった生成画像を本物と識別した識別部１２０が誤りであるとしたが、これはあくまで一例に過ぎない。処理結果が修正される原因には、識別部１２０の識別の誤り以外に、本体処理部１１０が行う本体処理の誤りもある。また、入力された修正の内容から、その修正が本体処理の誤りによるものである確率が高いと判断できる場合がある。例えば、本体処理がＯＣＲ処理である場合、ＯＣＲ処理で起こりやすい誤認識のパターンはよく知られている。例えば、アルファベットの大文字の「Ｏ」と数字の「０」、アルファベットの小文字の「ｌ」と数字の「１」は、互いに誤認識されやすい。また、句読点や記号の中にも別の句読点や記号と誤認識されやすいものがいくつか知られている。修正受付部１４０が受け付けた修正が、このような誤認識のパターンに対応するもの（例えば大文字の「Ｏ」が数字の「０」に修正された場合）のみである場合、その修正は本体処理部１１０のＯＣＲ処理が原因である確率が高い。
【００７２】
そこで、学習制御部１５０に、本体処理部１１０の本体処理の誤りを原因として起こりやすい修正のパターンを登録しておく。そして、ある入力画像に対応する処理結果について修正受付部１４０が受け付けた修正がそのパターンに該当するものだけである場合は、その修正を、識別部１２０の追加的な学習の材料にしない。逆に、修正受付部１４０が受け付けた修正の中に、そのパターンに該当しないものが含まれている場合には、その修正の対象の処理結果の元となった生成画像を偽物と識別するよう、識別部１２０に追加的な学習を行わせる。この例では、処理結果に対してなされた修正が、本体処理部１１０の本体処理の誤りを原因として起こりやすい修正のパターンに該当しないことが、識別部１２０にその処理結果の元となった生成画像が正解画像でないとの学習をさせるための所定の条件である。
【００７３】
また、本体処理がＯＣＲ処理である場合において、修正受付部１４０が受け付けた修正が、ＯＣＲ処理の指定言語と異なる言語での修正である場合は、学習制御部１５０は、その修正を識別部１２０の追加的な学習の材料としない。ここで、ＯＣＲ処理の指定言語とは、認識対象の文字列をどの言語の文字列として認識するかを示す指定である。この指定言語が誤りである場合、ＯＣＲ処理の結果も誤りとなりやすいので、修正が起こりやすい。指定言語と異なる言語で行われた修正は、ＯＣＲ処理に起因する修正であって、識別部１２０の識別の誤りによるものではないと考えられるので、その修正は識別部１２０の追加的な学習には用いない。また、修正受付部１４０が受け付けた修正が、アルファベットの大文字を小文字に直すものやその逆、又は全角文字を半角文字に直すものやその逆の修正である場合にも、学習制御部１５０は、その修正を識別部１２０の追加的な学習には用いない。この例では、処理結果に対してなされた修正が、本体処理部１１０のＯＣＲ処理の指定言語とは異なる言語でなされたものでないこと、又は大文字と小文字、全角と半角、との間での相互の修正ではないことが、識別部１２０にその処理結果の元となった生成画像が正解画像でないとの学習をさせるための所定の条件である。
【００７４】
仮に第１前処理部１００−１（すなわち生成器１０）に追加的な学習を行わせようとすると、サンプル画像とそれに対応する正解画像とを用意する必要があるが、これには手間が掛かる。これに対し、本実施形態では、データエントリのシステムで採用されるケースが多い人間による修正、を利用して識別部１２０に追加的な学習を行わせるので、第１前処理部１００−１に追加的な学習を行わせる場合よりも手間が掛からない。
【００７５】
以上に説明した各実施形態の画像処理装置は、コンピュータに上述のその画像処理装置を構成する要素群の機能を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）及びリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、フラッシュメモリやＳＳＤ（ソリッドステートドライブ）、ＨＤＤ（ハードディスクドライブ）等の固定記憶装置を制御するコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバス等を介して接続された回路構成を有する。それら各機能の処理内容が記述されたプログラムがネットワーク等の経由でフラッシュメモリ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。また、それら画像処理装置の要素のうち、ニューラルネットワークにより構成される要素等の一部の要素は、ハードウエア回路として構成されてもよい。
【符号の説明】
【００７６】
１０  生成器、２０  識別器、２２  識別結果判定部、３０  画像比較部、４０  学習制御部、１００  前処理部、１００−１  第１前処理部、１１０  本体処理部、１２０  識別部、１３０，１３０ａ  制御部、１３２  解析部、１４０  修正受付部、１５０  学習制御部。
【図１】
2020144735.tif 000003
【図２】
2020144735.tif 000004
【図３】
2020144735.tif 000005
【図４】
2020144735.tif 000006