(57)【要約】【課題】複雑な構造のオブジェクトを含む高解像度の生成画像を生成する。【解決手段】画像生成器２８及び画像識別器３０は、それぞれ異なる解像度に対応する複数のステージにおいて、低解像度に対応するステージから高解像度に対応するステージに向かって段階的に学習を行う。各ステージにおいて、画像識別器３０は、当該ステージの解像度に変換された学習用画像２２及び構造情報２６、並びに生成画像５０に基づいて、学習用画像２２と生成画像５０とのいずれが生成画像であるかを識別するように学習し、画像生成器は、潜在ベクトル２４に基づいて当該ステージの解像度の生成画像５０を生成し、当該ステージの解像度に変換された学習用画像２２及び構造情報２６、並びに画像識別器３０からのフィードバック（識別結果）に基づいて、生成画像５０が学習用画像２２の特徴を示すように学習する。【選択図】図３
2019219914.tif 000002
【特許請求の範囲】
【請求項１】
潜在ベクトルから生成した生成画像が学習用画像の特徴を示すように学習する画像生成器と、
前記学習用画像、及び、前記画像生成器が生成した前記生成画像に基づいて、前記学習用画像と前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する画像識別器と、
を備え、
前記画像生成器は、前記画像識別器の識別結果に基づいてさらに学習し、
前記画像生成器及び前記画像識別器は、それぞれ異なる解像度に対応する複数のステージにおいて、低解像度に対応するステージから高解像度に対応するステージへ向かって段階的に学習を行い、
各ステージにおいて、
前記画像生成器は、さらに、前記学習用画像の構造を示す構造情報を考慮して、前記潜在ベクトルから、当該ステージに定められた解像度の前記生成画像を生成するように学習し、
前記画像識別器は、さらに、前記構造情報を考慮して、当該ステージに定められた解像度に変換された前記学習用画像と当該ステージで前記画像生成器が生成した前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する、
ことを特徴とする画像生成装置。
【請求項２】
前記構造情報は、前記学習用画像内のオブジェクトの複数の特徴点の位置を示す情報である、
ことを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記構造情報は、前記特徴点に対応する画素の座標情報を有する構造画像であり、
各ステージにおいて、
前記画像生成器及び前記画像識別器は、当該ステージに定められた解像度に変換された前記構造画像を考慮して学習する、
ことを特徴とする請求項２に記載の画像生成装置。
【請求項４】
前記潜在ベクトルは、所定の確率分布に基づいて生成される、
ことを特徴とする請求項１から３のいずれか１項に記載の画像生成装置。
【請求項５】
前記潜在ベクトルは、前記学習用画像に基づいて生成される、
ことを特徴とする請求項１から３のいずれか１項に記載の画像生成装置。
【請求項６】
それぞれ異なる解像度に対応する複数のステージにおいて学習を行い、ステージ毎に、潜在ベクトルから生成した当該ステージに定められた解像度の生成画像が当該ステージに定められた解像度の学習用画像の特徴を示すように学習する処理を低解像度に対応するステージから高解像度に対応するステージへ向かって段階的に行う画像生成器であって、
各ステージにおいて、さらに、前記学習用画像の構造を示す構造情報を考慮して、前記生成画像を生成するように学習する、
ことを特徴とする画像生成器。
【請求項７】
学習用画像、及び、潜在ベクトルから画像生成器が生成した生成画像に基づいて、それぞれ異なる解像度に対応する複数のステージにおいて学習を行い、ステージ毎に、それぞれ当該ステージに定められた解像度に変換された前記学習用画像と前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する処理を低解像度に対応するステージから高解像度に対応するステージへ向かって段階的に行う画像識別器であって、
各ステージにおいて、さらに、前記学習用画像の構造を示す構造情報を考慮して、前記学習用画像と前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する、
ことを特徴とする画像識別器。
【請求項８】
コンピュータを、
潜在ベクトルから生成した生成画像が学習用画像の特徴を示すように学習する画像生成器と、
前記学習用画像、及び、前記画像生成器が生成した前記生成画像に基づいて、前記学習用画像と前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する画像識別器と、
して機能させ、
前記画像生成器は、前記画像識別器の識別結果に基づいてさらに学習し、
前記画像生成器及び前記画像識別器は、それぞれ異なる解像度に対応する複数のステージにおいて、低解像度に対応するステージから高解像度に対応するステージへ向かって段階的に学習を行い、
各ステージにおいて、
前記画像生成器は、さらに、前記学習用画像の構造を示す構造情報を考慮して、前記潜在ベクトルから、当該ステージに定められた解像度の前記生成画像を生成するように学習し、
前記画像識別器は、さらに、前記構造情報を考慮して、当該ステージに定められた解像度に変換された前記学習用画像と当該ステージで前記画像生成器が生成した前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する、
ことを特徴とする画像生成プログラム。
【請求項９】
潜在ベクトルから生成した生成画像が学習用画像の特徴を示すように学習する画像生成器と、
前記学習用画像、及び、前記画像生成器が生成した前記生成画像に基づいて、前記学習用画像と前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する画像識別器と、
を用いる画像生成方法であって、
前記画像生成器は、前記画像識別器の識別結果に基づいてさらに学習し、
前記画像生成器及び前記画像識別器は、それぞれ異なる解像度に対応する複数のステージにおいて、低解像度に対応するステージから高解像度に対応するステージへ向かって段階的に学習を行い、
各ステージにおいて、
前記画像生成器は、さらに、前記学習用画像の構造を示す構造情報を考慮して、前記潜在ベクトルから、当該ステージに定められた解像度の前記生成画像を生成するように学習し、
前記画像識別器は、さらに、前記構造情報を考慮して、当該ステージに定められた解像度に変換された前記学習用画像と当該ステージで前記画像生成器が生成した前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する、
ことを特徴とする画像生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置、画像生成器、画像識別器、画像生成プログラム、及び、画像生成方法に関する。
【背景技術】
【０００２】
近年、ディープニューラルネットワークなどを用いた機械学習技術を利用することで、画像を自動生成する技術が提案されている。
【０００３】
非特許文献１には、画像の特徴を示す潜在ベクトルに基づいて画像を生成する画像生成器と、入力画像が、画像生成器が生成した生成画像であるか否かを識別する画像識別器との組からなるＧＡＮｓ（Generative Adversarial Nets）という技術が開示されている。ＧＡＮｓにおいては、画像識別器は、入力画像が生成画像であるか否かをより好適に識別できるように学習し、一方、画像生成器は、画像識別器をだます（画像識別器が誤識別する）ように本物の画像に近い生成画像を生成するように学習する。
【０００４】
非特許文献２には、ＧＡＮｓの改良技術であるＰＧ（Progressive Growing of）ＧＡＮｓが開示されている。ＰＧＧＡＮｓでは、それぞれ異なる解像度に対応する複数のステージで画像生成器及び画像識別器の学習を行う。具体的には、まず、画像識別器は、画像生成器が生成した解像度４×４［ｄｐｉ］の生成画像と、実画像（画像生成器が生成した画像でない画像）とのうち、いずれが生成画像であるか否かを識別するように学習し、識別結果を画像生成器にフィードバックする。画像生成器は、当該識別結果を考慮して潜在ベクトルが示す特徴を有する生成画像を生成するように学習する。解像度４×４［ｄｐｉ］に対応するステージの学習が終了すると、より高い解像度（８×８［ｄｐｉ］）のステージに進み、同様の処理を段階的に繰り返していく。
【０００５】
非特許文献３には、人の像を含む画像と、当該人の姿勢を示すポーズ情報とに基づいて、当該ポーズ情報が示す姿勢の人の像を含む画像を生成する技術が開示されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio, "Generative Adversarial Nets" In NIPS 2014.
【非特許文献２】Tero Karras, Timo Aila, Samuli Laine, Jaakko Lehtinen , "Progressive Growing of GANs for Improved Quality, and Stability, and Variation", In ICLR 2018.
【非特許文献３】Liqian Ma, Qianru Sun, Xu Jia, Bernt Schiele, Tinne Tuytelaars, and Luc Van Gool, "Pose Guided Person Image Generation", In NIPS 2017.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来、複雑な構造のオブジェクトを含む高解像度の生成画像を生成することは困難であった（以下、画像内のオブジェクトの構造を単に「画像の構造」と記載する場合がある）。なお、ここで高解像度とは、５１２×５１２［ｄｐｉ］程度以上の解像度を意味する。
【０００８】
上述の非特許文献２に記載のＰＧＧＡＮｓを用いれば、簡単な構造（例えば人物像の顔のみ）の高解像度の生成画像を生成することができるが、複雑な構造の画像を生成することが難しい。例えば、体は後ろ向きであるが顔だけ前を向いている人物像を含む画像や、顔が２つある動物の画像などが生成されてしまう場合があった（非特許文献２の図１４〜１７など参照）。
【０００９】
一方、上述の非特許文献３に記載の技術を用いれば、構造を指定した上で生成画像を生成することが可能ではあるが、生成画像のエッジがぼやけるなどしており（非特許文献３の図４〜６参照）、まして高解像度の生成画像を生成することが困難であった。
【００１０】
したがって、複雑な構造のオブジェクトを含む高解像度の生成画像を生成できる技術が望まれている。また、例えばＧＡＮｓで用いられるような画像識別器においては、複雑な構造を有する高解像度の画像が生成画像であるか否かを好適に識別できるのが望ましい。
【００１１】
本発明の目的は、複雑な構造のオブジェクトを含む高解像度の生成画像を生成することにある。あるいは、本発明の目的は、複雑な構造のオブジェクトを含む高解像度の画像が生成画像であるか否かを好適に識別できるようにすることにある。
【課題を解決するための手段】
【００１２】
本発明は、潜在ベクトルから生成した生成画像が学習用画像の特徴を示すように学習する画像生成器と、前記学習用画像、及び、前記画像生成器が生成した前記生成画像に基づいて、前記学習用画像と前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する画像識別器と、を備え、前記画像生成器は、前記画像識別器の識別結果に基づいてさらに学習し、前記画像生成器及び前記画像識別器は、それぞれ異なる解像度に対応する複数のステージにおいて、低解像度に対応するステージから高解像度に対応するステージへ向かって段階的に学習を行い、各ステージにおいて、前記画像生成器は、さらに、前記学習用画像の構造を示す構造情報を考慮して、前記潜在ベクトルから、当該ステージに定められた解像度の前記生成画像を生成するように学習し、前記画像識別器は、さらに、前記構造情報を考慮して、当該ステージに定められた解像度に変換された前記学習用画像と当該ステージで前記画像生成器が生成した前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する、ことを特徴とする画像生成装置である。
【００１３】
望ましくは、前記構造情報は、前記学習用画像内のオブジェクトの複数の特徴点の位置を示す情報である、ことを特徴とする。
【００１４】
望ましくは、前記構造情報は、前記特徴点に対応する画素の座標情報を有する構造画像であり、各ステージにおいて、前記画像生成器及び前記画像識別器は、当該ステージに定められた解像度に変換された前記構造画像を考慮して学習する、ことを特徴とする。
【００１５】
望ましくは、前記潜在ベクトルは、所定の確率分布に基づいて生成される、ことを特徴とする。
【００１６】
望ましくは、前記潜在ベクトルは、前記学習用画像に基づいて生成される、ことを特徴とする。
【００１７】
また、本発明は、それぞれ異なる解像度に対応する複数のステージにおいて学習を行い、ステージ毎に、潜在ベクトルから生成した当該ステージに定められた解像度の生成画像が当該ステージに定められた解像度の学習用画像の特徴を示すように学習する処理を低解像度に対応するステージから高解像度に対応するステージへ向かって段階的に行う画像生成器であって、各ステージにおいて、さらに、前記学習用画像の構造を示す構造情報を考慮して、前記生成画像を生成するように学習する、ことを特徴とする画像生成器である。
【００１８】
また、本発明は、学習用画像、及び、潜在ベクトルから画像生成器が生成した生成画像に基づいて、それぞれ異なる解像度に対応する複数のステージにおいて学習を行い、ステージ毎に、それぞれ当該ステージに定められた解像度に変換された前記学習用画像と前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する処理を低解像度に対応するステージから高解像度に対応するステージへ向かって段階的に行う画像識別器であって、各ステージにおいて、さらに、前記学習用画像の構造を示す構造情報を考慮して、前記学習用画像と前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する、ことを特徴とする画像識別器である。
【００１９】
また、本発明は、コンピュータを、潜在ベクトルから生成した生成画像が学習用画像の特徴を示すように学習する画像生成器と、前記学習用画像、及び、前記画像生成器が生成した前記生成画像に基づいて、前記学習用画像と前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する画像識別器と、して機能させ、前記画像生成器は、前記画像識別器の識別結果に基づいてさらに学習し、前記画像生成器及び前記画像識別器は、それぞれ異なる解像度に対応する複数のステージにおいて、低解像度に対応するステージから高解像度に対応するステージへ向かって段階的に学習を行い、各ステージにおいて、前記画像生成器は、さらに、前記学習用画像の構造を示す構造情報を考慮して、前記潜在ベクトルから、当該ステージに定められた解像度の前記生成画像を生成するように学習し、前記画像識別器は、さらに、前記構造情報を考慮して、当該ステージに定められた解像度に変換された前記学習用画像と当該ステージで前記画像生成器が生成した前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する、ことを特徴とする画像生成プログラムである。
【００２０】
また、本発明は、潜在ベクトルから生成した生成画像が学習用画像の特徴を示すように学習する画像生成器と、前記学習用画像、及び、前記画像生成器が生成した前記生成画像に基づいて、前記学習用画像と前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する画像識別器と、を用いる画像生成方法であって、前記画像生成器は、前記画像識別器の識別結果に基づいてさらに学習し、前記画像生成器及び前記画像識別器は、それぞれ異なる解像度に対応する複数のステージにおいて、低解像度に対応するステージから高解像度に対応するステージへ向かって段階的に学習を行い、各ステージにおいて、前記画像生成器は、さらに、前記学習用画像の構造を示す構造情報を考慮して、前記潜在ベクトルから、当該ステージに定められた解像度の前記生成画像を生成するように学習し、前記画像識別器は、さらに、前記構造情報を考慮して、当該ステージに定められた解像度に変換された前記学習用画像と当該ステージで前記画像生成器が生成した前記生成画像とのいずれが前記画像生成器が生成した画像であるかを識別するように学習する、ことを特徴とする画像生成方法である。
【発明の効果】
【００２１】
本発明によれば、画像の複雑な構造を指定した上で、高解像度の生成画像を生成することができる。また、本発明によれば、複雑な構造のオブジェクトを含む高解像度の画像が生成画像であるか否かを好適に識別できる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態に係る画像生成装置の構成概略図である。
【図２】学習用画像及び構造情報の例を示す図である。
【図３】本実施形態に係る画像生成器及び画像識別器の構造を示す概念図である。
【図４】本実施形態に係る画像生成装置により生成されたキャラクタを示す第１の図である。
【図５】本実施形態に係る画像生成装置により生成されたキャラクタを示す第２の図である。
【図６】本実施形態に係る学習処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２３】
＜画像生成装置の構成＞
以下、本発明の実施形態について説明する。図１には、本実施形態に係る画像生成装置１０の構成概略図が示されている。画像生成装置１０は、例えばパーソナルコンピュータあるいはサーバなどであってよいが、以下に説明する機能を発揮可能な限りにおいてどのような装置であってもよい。
【００２４】
詳細は後述するが、画像生成装置１０は、学習器（画像生成器２８及び画像識別器３０）を備えており、当該学習器を学習することで、画像の特徴を示す潜在ベクトル２４（後述）から生成画像を生成する。特に、画像生成装置１０は、画像内のオブジェクトの構造を示す構造情報２６（後述）に基づいて、当該構造情報２６が示す構造の生成画像であって高解像度の生成画像を生成する。
【００２５】
制御部１２は、例えばＣＰＵなどを含んで構成される。制御部１２は、後述の記憶部２０に記憶された画像生成プログラムに従って、画像生成装置１０の各部を制御する。特に、制御部１２は、後述の画像生成器２８及び画像識別器３０を学習させる学習処理を実行する。このように、制御部１２は、当該学習処理を実行する学習部としても機能する。
【００２６】
表示部１４は、例えば液晶ディスプレイなどを含んで構成される。表示部１４には、種々の画面が表示される。特に、表示部１４には、画像生成装置１０が生成した生成画像が表示される。
【００２７】
入力部１６は、マウス、キーボード、あるいはタッチパネルなどを含んで構成される。入力部１６は、ユーザの指示を画像生成装置１０に入力するために用いられる。
【００２８】
通信部１８は、例えばネットワークアダプタなどを含んで構成される。通信部１８は、ＬＡＮあるいはインターネットなどの通信回線を介して他の装置と通信するために用いられる。
【００２９】
記憶部２０は、例えばＲＡＭ、ＲＯＭ、あるいはハードディスクなどを含んで構成される。記憶部２０には、画像生成装置１０の各部を動作させるための画像生成プログラムが記憶される。また、図１に示される通り、記憶部２０には、学習用画像２２、潜在ベクトル２４、構造情報２６、画像生成器２８、及び、画像識別器３０が記憶される。
【００３０】
学習用画像２２は、画像生成器２８及び画像識別器３０を学習するために用いられる画像である。学習用画像２２は、複雑な構造を有するオブジェクトが含まれていてよい。複雑な構造を有するオブジェクトとは、例えば、姿勢が分かる程度に胴体及び手足を含む人物像、同じく姿勢が分かる程度に胴体及び手足を含むキャラクタ像などである。複雑な構造を有するオブジェクトとしては、人型のオブジェクトに限られない。また、複雑な構造を有するオブジェクトとは、当該オブジェクトが有する特徴点間の位置関係が変化し得るオブジェクトであるともいえる。例えば、人物像は、種々の姿勢を取り得るものであり、特徴点間（例えば頭と右手間）の位置関係が固定されておらず、姿勢に応じて変化する。
【００３１】
潜在ベクトル２４は、画像の特徴を示す情報である。潜在ベクトル２４としては、画像生成器２８及び画像識別器３０の学習に用いられる、所定の確率分布に基づいて生成されるもの、学習用画像２２の特徴を示すもの、及び、学習済みの画像生成器２８に生成画像を生成させるときに用いられる、ユーザが生成したい画像の特徴を示すものがある。
【００３２】
潜在ベクトル２４は、どのように生成されてもよいが、学習用の潜在ベクトル２４は、所定の確率分布より、又は学習用画像２２に基づいて生成される。具体的には、所定の確率分布から生成する場合、該確率分布が指定した次元数をサンプリングすることで生成される。所定の確率分布としては、正規分布、一様分布などが上げられる。また、学習用画像から生成する場合は、学習用画像２２を潜在ベクトル２４に変換する処理を行うエンコーダに学習用画像２２を入力することで、当該学習用画像２２の特徴を示す潜在ベクトル２４を生成することができる。
【００３３】
潜在ベクトル２４は、画像の特徴を表現した複数次元のベクトルである。潜在ベクトル２４によって定義される潜在空間は、学習用画像の特徴を表現した空間である。潜在空間を画像の特徴によって、更に条件付け出来るようするために、潜在ベクトルに構造情報２６を連結してもよい。
【００３４】
構造情報２６は、画像の構造を示す情報である。画像の構造としては、例えば、画像に人物像が含まれていればその人物像の姿勢である。あるいは、画像の構造として、画像内のオブジェクトが存在する位置、複数のオブジェクトの位置関係などを含んでいてもよい。構造情報２６としては、画像生成器２８及び画像識別器３０の学習に用いられる、学習用画像２２の構造を示すもの、及び、学習済みの画像生成器２８に生成画像を生成させるときに用いられる、ユーザが生成したい画像の構造を示すものがある。
【００３５】
学習時に用いられる構造情報２６は、学習用画像２２内のオブジェクトの複数の特徴点の位置を示す情報であってよい。本実施形態では、学習時に用いられる構造情報２６は、学習用画像２２内のオブジェクトの複数の特徴点に対応する複数の画素の座標情報を有する構造画像である。
【００３６】
図２に、学習用画像２２と、当該学習用画像２２の構造を示す構造情報２６の例が示されている。図２（ａ）に示すように、学習用画像２２が全身を含む人物像である場合、図２（ｂ）に示すように、構造情報２６は、当該人物像の複数の特徴点に対応する画素の位置が示されたものとなる。具体的には、構造情報２６は、人物像の右眼、左眼、右耳、左耳、鼻、右肩、左肩、右肘、左肘、右手、左手、右膝、左膝、右足、左足などの特徴点に対応する画素が白（輝度１００％）、その他の画素が黒（輝度０％）で表された構造画像である。また、構造情報２６には、特徴点に対応する各画素が、人物像のどの特徴点に対応するものであるのか（例えば右眼なのか左眼なのか）を示す情報も有している。このように、構造情報２６は、画像内のオブジェクトの各特徴点の位置に対応する画素に特徴点を示す情報が付された画像であってよい。
【００３７】
なお、構造情報２６としては、図２（ｂ）に示されるような構造画像に限られない。例えば、画像の構造を説明した文章であってもよい。この場合、制御部１２が当該文章を解析することで、構造情報２６が表現する画像の構造を取得することができる。また、構造情報２６には、画像内のオブジェクトの位置に関する情報のみならず、オブジェクトの特徴を示す属性情報が含まれていてもよい。オブジェクトが人物像である場合、属性情報としては、例えば、眼鏡の有無、服装、髪の色、人種などである。なお、構造情報２６としては、上記のような明示的な情報に限られない。例えば、上記情報が埋め込まれた単なる数値ベクトルなどでもよい。
【００３８】
画像生成器２８は、潜在ベクトル２４に基づいて、当該潜在ベクトル２４が示す内容の画像を生成する。以下、画像生成器２８が生成した画像を「生成画像」と記載する。特に、画像生成器２８は、構造情報２６にも基づいて生成画像を生成する。画像生成器２８は学習器であり、具体的には畳み込みニューラルネットワークを含んで構成されている。畳み込みニューラルネットワークの実体は、畳み込みニューラルネットワークに関する各種パラメータ（層構造、各層のニューロン構造、各層におけるフィルタ数、フィルタサイズ、ストライド幅、ゼロパディング幅、及び各フィルタの各要素の重みなど）、並びに、入力データ（潜在ベクトル２４及び構造情報２６）に対して処理を行うための処理実行プログラムである。したがって、記憶部２０に画像生成器２８が記憶されるとは、上記各種パラメータ及び処理実行プログラムが記憶部２０に格納されることを意味する。
【００３９】
画像生成器２８は、学習用画像２２、学習用の潜在ベクトル２４、学習用画像２２の構造を示す構造情報２６、及び、画像識別器３０の識別結果に基づいて、学習用画像２２の特徴を示す生成画像であって、構造情報２６が示す構造の生成画像を生成するように学習する。画像生成器２８の構造及び学習方法の詳細については後述する。
【００４０】
画像識別器３０は、入力された画像が、実画像（生成画像でない画像）であるか生成画像であるかを識別する。本実施形態では、画像識別器３０には、実画像と生成画像の両方が入力され、画像識別器３０は、入力された２つの画像のうち、いずれが生成画像であるかを識別する。画像識別器３０は、画像生成器２８同様学習器であり、具体的には畳み込みニューラルネットワークを含んで構成されている。したがって、記憶部２０に画像識別器３０が記憶されるとは、上記各種パラメータ及び処理実行プログラムが記憶部２０に格納されることを意味する。
【００４１】
画像識別器３０は、学習用画像２２及び生成画像に基づいて、学習用画像２２と生成画像のいずれが生成画像であるかを識別するように学習する。画像識別器３０の構造及び学習方法の詳細については後述する。
【００４２】
画像生成装置１０の構成概要としては以上の通りである。以下、図３を参照しながら、画像生成器２８及び画像識別器３０の構造及び学習方法の詳細について説明する。図３には、画像生成器２８及び画像識別器３０の構造（ステージ８の構造参照）及び、各学習ステージにおける学習処理の概念図が示されている。図３において、上下方向略中央に引かれた一点鎖線の上側が画像生成器２８の構造を示しており、当該一点鎖線の下側が画像識別器３０の構造を示している。
【００４３】
＜画像生成器の構造＞
図３において、白色のボックスは畳み込み層４０を示している。畳み込み層４０が学習処理の対象である。畳み込み層４０に記載されたＮ×Ｎの文字は、当該畳み込み層４０がＮ×Ｎ［ｄｐｉ］の（空間）解像度に対応していることを示している。すなわち、Ｎ×Ｎの畳み込み層４０は、解像度がＮ×Ｎ［ｄｐｉ］の生成画像を生成するように学習される。
【００４４】
図３に示す通り、画像生成器２８は、それぞれ対応する解像度が異なる複数の畳み込み層４０を含んで構成される。本実施形態では、画像生成器２８は、４×４、８×８、１６×１６、３２×３２、６４×６４、１２８×１２８、２５６×２５６、及び、５１２×５１２の８層の畳み込み層４０を含む構造となっている。
【００４５】
図３において、グレーのボックスはダウンサンプリング層４２を示している。ダウンサンプリング層４２は、構造情報２６をダウンサンプリング（変換）してその解像度を低下させるものである。ダウンサンプリング層４２は、学習対象でも学習対象でなくてもよい。ダウンサンプリング層４２に記載されたＮ×Ｎの文字は、当該ダウンサンプリング層４２がＮ×Ｎ［ｄｐｉ］の解像度に対応していることを示している。すなわち、Ｎ×Ｎのダウンサンプリング層４２は、構造情報２６をＮ×Ｎの解像度にダウンサンプリングして出力する。
【００４６】
図３に示す通り、画像生成器２８は、それぞれ対応する解像度が異なる複数のダウンサンプリング層４２を含んで構成される。本実施形態では、画像生成器２８は、４×４、８×８、１６×１６、３２×３２、６４×６４、及び、１２８×１２８の８層のダウンサンプリング層４２を含む構造となっている。
【００４７】
＜画像識別器の構造＞
画像生成器２８同様、白色のボックスは畳み込み層４４を示しており、畳み込み層４４が学習処理の対象である。畳み込み層４４に記載されたＮ×Ｎの文字は、当該畳み込み層４４がＮ×Ｎ［ｄｐｉ］の解像度に対応していることを示している。すなわち、Ｎ×Ｎの畳み込み層４４は、いずれも解像度がＮ×Ｎ［ｄｐｉ］の学習用画像２２と生成画像のうち、いずれが生成画像であるかを識別するように学習される。
【００４８】
画像識別器３０は、画像生成器２８の畳み込み層４０と同じ数の畳み込み層４４を含んで構成される。本実施形態では、画像識別器３０は、４×４、８×８、１６×１６、３２×３２、６４×６４、１２８×１２８、２５６×２５６、及び、５１２×５１２の８層の畳み込み層４４を含む構造となっている。
【００４９】
画像識別器３０も、複数のダウンサンプリング層４２を有している。本実施形態では、画像識別器３０は、４×４、８×８、１６×１６、３２×３２、６４×６４、及び、１２８×１２８の８層のダウンサンプリング層４２を含む構造となっている。画像識別器３０のダウンサンプリング層４２は、構造情報２６のみならず学習用画像２２もダウンサンプリングする。
【００５０】
＜画像生成器及び画像識別器の学習方法＞
画像生成器２８及び画像識別器３０は、それぞれ異なる解像度に対応する複数のステージにおいて学習を行う。具体的には、低解像度に対応するステージから高解像度に対応するステージに向かって段階的に学習を行う。特に、本実施形態では、画像生成器２８は、学習用画像２２及び潜在ベクトル２４のみならず学習用画像２２の構造を示す構造情報２６を考慮して学習し、画像識別器３０も、学習用画像２２の構造を示す構造情報２６を考慮して学習することを特徴としている。以下、詳細に説明する。
【００５１】
まず、画像生成器２８及び画像識別器３０は、最も低い解像度（本実施形態では４×４［ｄｐｉ］）に対応するステージ１から学習を開始する。ステージ１においては、画像生成器２８は解像度４×４［ｄｐｉ］の畳み込み層４０を学習し、画像識別器３０は、解像度４×４［ｄｐｉ］の畳み込み層４４を学習する。
【００５２】
具体的には、画像識別器３０は、４×４のダウンサンプリング層４２で４×４［ｄｐｉ］にダウンサンプリングされた学習用画像２２ａ及び構造情報２６ａ、並びに、画像生成器の４×４の畳み込み層４０が生成した４×４［ｄｐｉ］の生成画像５０ａに基づいて、生成画像５０ａと学習用画像２２ａのいずれが生成画像であるかを識別可能なように、４×４の畳み込み層４４のパラメータを更新する（すなわち学習する）。
【００５３】
ここで、４×４の畳み込み層４４は、構造情報２６ａを考慮して学習されるから、例えば、生成画像５０ａが、構造情報２６ａが示す構造を有している否かを考慮しながら学習することができる。すなわち、生成画像５０ａの構造が構造情報２６ａが示す構造とは類似していない構造であれば、４×４の畳み込み層４４は、生成画像５０ａは学習用画像２２ａでない、すなわち生成画像であると判定するように学習される。
【００５４】
さらに、画像識別器３０は、識別結果を出力する。例えば、生成画像５０ａが生成画像と識別された場合は「１」を出力し、学習用画像２２ａが生成画像と識別された場合は「０」を出力する。画像識別器３０の識別結果は画像生成器２８にフィードバックされる。なお、画像識別器３０の出力は、上記のような「０」と「１」に限られない。生成画像５０ａと学習用画像２２ａに対応する異なる値を出力すればよい。
【００５５】
画像生成器２８の４×４の畳み込み層４０は、潜在ベクトル２４に基づいて４×４［ｄｐｉ］の生成画像５０ａを生成する。そして、４×４［ｄｐｉ］にダウンサンプリングされた学習用画像２２ａ及び構造情報２６ａ、生成画像５０ａ、並びに、画像識別器３０からフィードバックされた識別結果に基づいて、生成画像５０ａが学習用画像２２ａに近づくように４×４の畳み込み層４０のパラメータを更新する（すなわち学習する）。
【００５６】
ここで、４×４の畳み込み層４０は、構造情報２６ａを考慮して学習されるから、４×４の畳み込み層４４は、構造情報２６ａが示す構造を参考にしながら生成画像５０ａを生成することができる。これにより、学習用画像２２ａにより近い生成画像５０ａが生成されやすくなるといえる。
【００５７】
ステージ１において、画像生成器２８（の４×４の畳み込み層４０）及び画像識別器３０（の４×４の畳み込み層４４）は、上述の学習処理を繰り返す。その過程において、画像生成器２８は画像識別器３０を「だますように」、すなわち画像識別器３０が生成画像５０ａが生成画像でないと誤識別するように学習し、その一方において、画像識別器３０は学習用画像２２ａと生成画像５０ａとを正しく識別するように学習する。これにより、画像生成器２８はより学習用画像２２ａに近い生成画像５０ａを生成することが可能となり、画像識別器３０はより正確に学習用画像２２ａと生成画像５０ａを識別可能となる。
【００５８】
そして、画像生成器２８及び画像識別器３０がナッシュ均衡となる、すなわち、画像生成器２８のパラメータを更新しても画像識別器３０をよりだませなくなり、また、画像識別器３０のパラメータを更新しても学習用画像２２ａと生成画像５０ａの識別精度が向上しなくなった場合に、ステージ１の学習処理、すなわち、４×４の畳み込み層４０，４４の学習処理を終え、ステージ１の次に高い解像度（本実施形態では８×８［ｄｐｉ］）に対応するステージであるステージ２へ進む。
【００５９】
ステージ２においても、基本的にステージ１と同様の方法で学習処理が行われる。ステージ２においては、画像生成器２８は解像度８×８［ｄｐｉ］の畳み込み層４０を学習し、画像識別器３０は、解像度８×８［ｄｐｉ］の畳み込み層４４を学習する。
【００６０】
具体的には、画像識別器３０は、８×８のダウンサンプリング層４２で８×８［ｄｐｉ］にダウンサンプリングされた学習用画像２２ｂ及び構造情報２６ｂ、並びに、画像生成器の８×８の畳み込み層４０が生成した８×８［ｄｐｉ］の生成画像５０ｂに基づいて、生成画像５０ｂと学習用画像２２ｂのいずれが生成画像であるかを識別可能なように、８×８の畳み込み層４４のパラメータを更新する。
【００６１】
８×８の畳み込み層４４の出力は４×４の畳み込み層４４に渡され、４×４の畳み込み層４４の処理結果を考慮して、画像識別器３０としての識別結果を出力する。ステージ２でも、画像識別器３０の識別結果は画像生成器２８にフィードバックされる。
【００６２】
画像生成器２８の８×８の畳み込み層４０は、４×４の畳み込み層４０の処理結果を考慮して、学習用画像２２の特徴を示す潜在ベクトル２４に基づいて８×８［ｄｐｉ］の生成画像５０ｂを生成する。そして、８×８［ｄｐｉ］にダウンサンプリングされた学習用画像２２ｂ及び構造情報２６ｂ、生成画像５０ｂ、並びに、画像識別器３０からフィードバックされた識別結果に基づいて、生成画像５０ｂが学習用画像２２ｂに近づくように８×８の畳み込み層４０のパラメータを更新する。
【００６３】
そして、画像生成器２８及び画像識別器３０がナッシュ均衡となった場合に、次ステージの処理に進む。
【００６４】
上述の学習処理を全てのステージ（本実施形態ではステージ８まで）について行うことで、画像生成器２８及び画像識別器３０が学習される。
【００６５】
学習済みの画像生成器２８は、画像の特徴を示す潜在ベクトル２４及び構造情報２６に基づいて、当該潜在ベクトル２４が示す特徴を有し、且つ、当該構造情報２６が示す構造を有する高解像度（本実施形態では５１２×５１２［ｄｐｉ］）の生成画像を生成することができるようになる。また、学習済みの画像識別器３０は、高解像度画像と構造情報２６に基づいて、当該高解像度画像が生成画像であるか実画像であるかをより精度よく識別することができるようになる。
【００６６】
上述のように、本実施形態に係る画像生成器２８は、高解像度の画像生成を可能にするＰＧＧＡＮｓをベースとしながら、さらに構造情報２６も考慮して学習されるから、高解像度であり、且つ、複雑な構造の生成画像を生成することが可能となる。同様に、本実施形態に係る画像識別器３０は、高解像度の画像識別を可能にするＰＧＧＡＮｓをベースとしながら、さらに構造情報２６も考慮して学習されるから、高解像度であり、且つ、複雑な構造の画像の識別が可能となる。
【００６７】
なお、本実施形態では、ＧＡＮｓを用いて、画像生成器２８と画像識別器３０を並行して学習させていたが、画像生成器２８と画像識別器３０とを個別に学習するようにしてもよい。その場合であっても、画像生成器２８及び画像識別器３０は、それぞれ異なる解像度に対応する複数のステージにおいて学習を行い、構造情報２６を考慮しながら学習を行う。
【００６８】
画像生成器２８を個別に学習する場合、画像生成器２８は、各ステージにおいて、潜在ベクトル２４、及び、当該ステージに対応する解像度の構造情報２６に基づいて生成画像５０を生成し、当該ステージに対応する解像度の学習用画像２２、生成画像５０、及び当該ステージに対応する解像度の構造情報２６に基づいて、生成画像５０が学習用画像２２に近づくように学習する。
【００６９】
また、画像識別器３０を個別に学習する場合、画像識別器３０は、各ステージにおいて、それぞれ当該ステージに対応する解像度の学習用画像２２、生成画像５０、及び構造情報２６に基づいて、当該学習用画像２２及び当該生成画像５０のいずれが生成画像であるかを識別するように学習する。
【００７０】
＜学習済みの画像生成器及び画像識別器による画像生成＞
上述の学習処理によって十分に学習された画像生成器２８は、潜在ベクトル２４及び構造情報２６に基づいて、当該潜在ベクトル２４が示す特徴を有し、当該構造情報２６が示す構造を有する生成画像を生成できるようになる。
【００７１】
学習済みの画像生成器２８は、種々の利用方法が考えられるが、そのうちの一つとして、アニメあるいはゲームなどのキャラクタを自動生成するために用いることができる。特に、様々な姿勢の高解像度のキャラクタを簡単に自動生成することができる。特に、昨今、アニメ業界では人材不足に陥っており、アニメ制作の効率化が急がれている。したがって、様々な姿勢の高解像度のアニメのキャラクタを効率良く生成できることが望まれている。
【００７２】
図４に、自動生成された様々な姿勢の高解像度のキャラクタ５０’が示されている。まず、キャラクタの基準画像から上述のエンコーダを用いることなどによって、自動生成したいキャラクタの特徴を示す潜在ベクトル２４を生成する。なお、図４においては、便宜上、潜在ベクトル２４が実際のキャラクタの基準画像で示されている。さらに、当該キャラクタの姿勢を示す構造情報２６を用意する。当該構造情報２６はユーザが自ら作成してもよいし、Openposeなどの技術を用いて種々の画像から自動生成することもできる。
【００７３】
そして、潜在ベクトル２４と構造情報２６を学習済みの画像生成器２８に入力することで、当該構造情報２６が示す姿勢を取る、当該潜在ベクトル２４が示す特徴を有するキャラクタ５０’を自動生成することができる。同一の潜在ベクトル２４と様々な構造情報２６との組み合わせを学習済みの画像生成器２８に入力することで、図４に示すように、同じキャラクタの様々な姿勢の画像を簡単に自動生成することができる。
【００７４】
また、学習用画像２２から構築された、画像の特徴を表現する潜在空間内から潜在ベクトル２４をサンプリングすることで、キャラクタ（潜在ベクトル２４）を自動生成することも可能である。例えば、潜在空間において、図５に示す一番左側のキャラクタの特徴を示す潜在ベクトル２４ａに対応する座標（ａ座標）と、図５に示す一番右側のキャラクタの特徴を示す潜在ベクトル２４ｂに対応する座標（ｂ座標）との間に線分を定義する。そうすると、当該線分上の座標（例えばｃ座標、ｄ座標、ｅ座標、ｆ座標）に対応する潜在ベクトル２４ｃ、２４ｄ、２４ｅ、２４ｆは、図５に示す通り、潜在ベクトル２４ａが示すキャラクタと、潜在ベクトル２４ｂが示すキャラクタの間の特徴を有するキャラクタを示すものとなる。図５の例では、潜在ベクトル２４ａが示すキャラクタの服が濃い色となっており、潜在ベクトル２４ｂが示すキャラクタの服が薄い色となっているから、潜在ベクトル２４ｃ、２４ｄ、２４ｅ、２４ｆへと向かうに従って、服の色が徐々に薄くなっていっている。さらに、構造情報２６が属性情報を含んでおり、且つ、構造情報２６も考慮した潜在空間を構築した場合、属性情報を指定することで、指定した特徴を持った画像を自動生成することも可能である。例えば、男性・黒髪・目は青色といった属性情報を与えると、それに該当した画像が生成される。
【００７５】
なお、本実施形態では、画像生成器２８と画像識別器３０が組み合わされて用いられるが、画像生成器２８は単体で用いることができる。
【００７６】
また、学習済みの画像識別器３０も単体で用いることができる。例えば、入力画像と構造情報２６を学習済みの画像識別器３０に入力することで、画像識別器３０は、当該入力画像が画像生成器２８によって生成された生成画像であるか実画像であるかを識別することができる。それと共に、入力画像の構造が、構造情報２６が示す構造であるか否かを識別することが可能になる。これにより、画像識別器３０は、入力画像は生成画像であるが構造情報２６が示す構造ではない、など識別することができる。
【００７７】
＜学習処理の流れ＞
以下、図６に示すフローチャートに従って、画像生成器２８及び画像識別器３０の学習処理の流れを説明する。
【００７８】
ステップＳ１０において、制御部１２は、変数ｎを１に設定する。変数ｎは画像生成器２８及び画像識別器３０の学習ステージ（図３参照）を示す変数である。変数ｎが１の場合、ステージ１の学習処理が行われることを意味する。
【００７９】
ステップＳ１２において、制御部１２は、学習用画像２２及び構造情報２６（構造画像）をダウンサンプリング層４２に入力して、ステージｎに対応する解像度に変換する。
【００８０】
ステップＳ１４において、画像識別器３０は、ステップＳ１２で解像度が変換された学習用画像２２及び構造情報２６、並びに、ステージｎに対応する解像度の生成画像に基づいて、ステージｎに対応する畳み込み層４４のパラメータを更新する（すなわち学習する）。
【００８１】
ステップＳ１６において、制御部１２は、ステップＳ１２で解像度が変換された学習用画像２２、潜在ベクトル２４、及び、ステップＳ１２で解像度が変換された構造情報２６を画像生成器２８に入力する。
【００８２】
ステップＳ１８において、画像生成器２８は、潜在ベクトル及び構造情報２６に基づいて、ステージｎに対応する解像度の生成画像５０を生成する。
【００８３】
ステップＳ２０において、画像識別器３０は識別結果を画像生成器２８にフィードバックする。
【００８４】
ステップＳ２２において、画像生成器２８は、ステップＳ１２で解像度が変換された学習用画像２２及び構造情報２６、ステップＳ１８で生成した生成画像５０、並びに、ステップＳ２０でフィードバックされた画像識別器３０の識別結果に基づいて、ステージｎに対応する畳み込み層４０のパラメータを更新する（すなわち学習する）。
【００８５】
ステップＳ２４において、制御部１２は、画像生成器２８と画像識別器３０がナッシュ均衡となったか否かを判定する。ナッシュ均衡となっていない場合は、再度ステップＳ１４に戻り、当該ステージにおける学習処理を繰り返す。ナッシュ均衡となった場合はステップＳ２６に進む。
【００８６】
ステップＳ２６において、制御部１２は、予め定められた全てのステージで学習処理が終了したか否かを判定する。終了していない場合はステップＳ２８に進み、変数ｎが１インクリメントされ、ステップＳ１２に戻る。すなわち、次のステージにおける学習処理を実行する。全てのステージでの学習処理が終了した場合は学習処理を終了する。
【００８７】
以上、本発明に係る実施形態を説明したが、本発明は上記実施形態に限られるものではなく、本発明の趣旨を逸脱しない限りにおいて種々の変更が可能である。
【符号の説明】
【００８８】
１０  画像生成装置、１２  制御部、１４  表示部、１６  入力部、１８  通信部、２０  記憶部、２２  学習用画像、２４  潜在ベクトル、２６  構造情報、２８  画像生成器、３０  画像識別器、４０，４４  畳み込み層、４２  ダウンサンプリング層、５０  生成画像。
【図１】
2019219914.tif 000003
【図２】
2019219914.tif 000004
【図３】
2019219914.tif 000005
【図４】
2019219914.tif 000006
【図５】
2019219914.tif 000007
【図６】
2019219914.tif 000008