(57)【要約】      （修正有）【課題】コンテンツを容易に作成する画像生成装置、画像生成方法及びプログラムを提供する。【解決手段】方法は、オブジェクトが含まれる第１の画像とオブジェクトの属性を表す属性情報との少なくとも一方を含む外見情報を入力として外見情報の特徴を表す外見特徴ベクトルを出力し、オブジェクトのターゲットポーズを表すポーズ指示情報を入力としてポーズ指示情報の特徴を表すポーズ特徴ベクトルを出力し、外見特徴ベクトルとポーズ特徴ベクトルとを入力としてオブジェクトのポーズをターゲットポーズとした第２の画像を出力する。【選択図】図５
2019204476.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトが含まれる第１の画像と前記オブジェクトの属性を表す属性情報との少なくとも一方が含まれる外見情報を入力として前記外見情報の特徴を表す外見特徴ベクトルを出力する第１のニューラルネットワークと、前記オブジェクトのターゲットポーズを表すポーズ指示情報を入力として前記ポーズ指示情報の特徴を表すポーズ特徴ベクトルを出力する第２のニューラルネットワークと、前記外見特徴ベクトルと前記ポーズ特徴ベクトルとを入力として前記オブジェクトのポーズを前記ターゲットポーズとした第２の画像を出力する第３のニューラルネットワークとが格納されたメモリと、
前記メモリと接続され、前記外見情報を前記第１のニューラルネットワークに入力し、前記外見特徴ベクトルを生成し、前記ポーズ指示情報を前記第２のニューラルネットワークに入力し、前記ポーズ特徴ベクトルを生成し、前記外見特徴ベクトルと前記ポーズ特徴ベクトルとを前記第３のニューラルネットワークに入力し、前記第２の画像を生成するプロセッサと、
を有することを特徴とする画像生成装置。
【請求項２】
前記メモリには、
オブジェクトが含まれる第３の画像を入力として前記ポーズ指示情報を出力する第４のニューラルネットワークが格納され、
前記プロセッサは、
前記第３の画像を前記第４のニューラルネットワークに入力し、前記ポーズ指示情報を生成する、ことを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記プロセッサは、
前記第１の画像に含まれる前記オブジェクトを複数の所定のパーツに分解した複数のパーツ画像をそれぞれ生成し、生成した前記複数のパーツ画像を、前記ターゲットポーズに基づいて結合した第４の画像を生成し、
前記第４の画像と前記属性情報とが含まれる外見情報とを前記第１のニューラルネットワークに入力し、前記外見特徴ベクトルを生成する、ことを特徴とする請求項１又は２に記載の画像生成装置。
【請求項４】
前記オブジェクトは、イラストとして描かれた人物であり、
前記属性情報は、前記人物の性別、髪の色、肌の色、目の色、体型及び服装のうちの少なくとも１つの属性を含む情報である、ことを特徴とする請求項１乃至３の何れか一項に記載の画像生成装置。
【請求項５】
前記オブジェクトは、イラストとして描かれた人物の顔であり、
前記属性情報は、前記人物の顔部分以外の属性である服装、体型及び背景のうちの少なくとも１つの属性を含む情報であり、
前記プロセッサは、
前記人物の顔以外の部分を、前記属性情報により補完した前記第２の画像を生成する、ことを特徴とする請求項１乃至３の何れか一項に記載の画像生成装置。
【請求項６】
前記プロセッサは、
前記第２の画像をｎ−１フレーム目のフレーム画像として、前記ｎ−１フレーム目のフレーム画像を入力画像とした外見情報を前記第１のニューラルネットワークに入力し、前記外見情報を生成し、
ｎフレーム目における前記ポーズ指示情報を前記第２のニューラルネットワークに入力し、前記ポーズ特徴ベクトルを生成し、
前記外見特徴ベクトルと前記ポーズ特徴ベクトルとを前記第３のニューラルネットワークに入力し、ｎフレーム目のフレーム画像として第２の画像を生成する、ことを特徴とする請求項１乃至５の何れか一項に記載の画像生成装置。
【請求項７】
前記第１のニューラルネットワーク及び前記第２のニューラルネットワークは、エンコーダとして機能する畳み込みニューラルネットワークであり、
前記第３のニューラルネットワークは、デコーダとして機能する畳み込みニューラルネットワークである、ことを特徴とする請求項１乃至５の何れか一項に記載の画像生成装置。
【請求項８】
オブジェクトが含まれる第１の画像と前記オブジェクトの属性を表す属性情報との少なくとも一方が含まれる外見情報と前記オブジェクトのターゲットポーズを表すポーズ指示情報とを入力として前記外見情報の特徴及び前記ポーズ指示情報の特徴を表す特徴ベクトルを出力する第１のニューラルネットワークと、前記特徴ベクトルを入力として前記オブジェクトのポーズを前記ターゲットポーズとした第２の画像を出力する第２のニューラルネットワークとが格納されたメモリと、
前記メモリと接続され、前記外見情報と前記ポーズ指示情報とを前記第１のニューラルネットワークに入力し、前記特徴ベクトルを生成し、前記特徴ベクトルを前記第２のニューラルネットワークに入力し、前記第２の画像を生成するプロセッサと、
を有することを特徴とする画像生成装置。
【請求項９】
オブジェクトが含まれる第１の画像を入力として前記オブジェクトを構成する所定の複数のパーツを表す複数のパーツ画像を出力する第５のニューラルネットワークと、前記第１の画像を入力として前記オブジェクトのボーン毎の所定の重みを表す複数のウェイト画像を出力する第６のニューラルネットワークとが格納されたメモリと、
前記メモリと接続され、前記第１の画像を前記第５のニューラルネットワークに入力し、前記複数のパーツ画像を生成し、前記第１の画像を前記第６のニューラルネットワークに入力し、前記複数のウェイト画像を生成し、
前記複数のパーツ画像を用いて前記オブジェクトに定義されたメッシュのパーツに含まれる頂点に対して、前記複数のウェイト画像のうち、該頂点が含まれるパーツに対応するウェイト画像が表す重みを設定するプロセッサと、
を有することを特徴とする画像生成装置。
【請求項１０】
前記プロセッサは、
前記オブジェクトのターゲットポーズを表すポーズ指示情報を入力として、前記メッシュが表すポーズが前記ターゲットポーズとなるように、前記重みが設定されたメッシュを表す重み付きメッシュを変換する、ことを特徴とする請求項９に記載の画像生成装置。
【請求項１１】
オブジェクトが含まれる第１の画像を入力として、前記オブジェクトを構成する所定の複数のパーツ毎に、前記オブジェクトのボーンに関する所定の重みを表す複数のウェイト画像を出力するニューラルネットワークが格納されたメモリと、
前記メモリと接続され、前記第１の画像を前記ニューラルネットワークに入力し、前記複数のウェイト画像を生成し、
前記オブジェクトに定義されたメッシュのパーツに含まれる頂点に対して、前記複数のウェイト画像のうち、該頂点が含まれるパーツに対応するウェイト画像が表す重みを設定するプロセッサと、
を有することを特徴とする画像生成装置。
【請求項１２】
オブジェクトが含まれる第１の画像と前記オブジェクトの属性を表す属性情報との少なくとも一方が含まれる外見情報を第１のニューラルネットワークに入力して、前記外見情報の特徴を表す外見特徴ベクトルを生成し、
前記オブジェクトのターゲットポーズを表すポーズ指示情報を第２のニューラルネットワークに入力して、前記ポーズ指示情報の特徴を表すポーズ特徴ベクトルを生成し、
前記外見特徴ベクトルと前記ポーズ特徴ベクトルとを第３のニューラルネットワークに入力して、前記オブジェクトのポーズを前記ターゲットポーズとした第２の画像を生成する、
処理をコンピュータが実行することを特徴とする画像生成方法。
【請求項１３】
オブジェクトが含まれる第１の画像と前記オブジェクトの属性を表す属性情報との少なくとも一方が含まれる外見情報を第１のニューラルネットワークに入力して、前記外見情報の特徴を表す外見特徴ベクトルを生成し、
前記オブジェクトのターゲットポーズを表すポーズ指示情報を第２のニューラルネットワークに入力して、前記ポーズ指示情報の特徴を表すポーズ特徴ベクトルを生成し、
前記外見特徴ベクトルと前記ポーズ特徴ベクトルとを第３のニューラルネットワークに入力して、前記オブジェクトのポーズを前記ターゲットポーズとした第２の画像を生成する、
処理をコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
オブジェクトが含まれる第１の画像を第５のニューラルネットワークに入力して、前記オブジェクトを構成する所定の複数のパーツを表す複数のパーツ画像を生成し、
前記第１の画像を第６のニューラルネットワークに入力して、前記オブジェクトのボーン毎の所定の重みを表す複数のウェイト画像を生成し、
前記複数のパーツ画像を用いて前記オブジェクトに定義されたメッシュのパーツに含まれる頂点に対して、前記複数のウェイト画像のうち、該頂点が含まれるパーツに対応するウェイト画像が表す重みを設定する、
処理をコンピュータが実行することを特徴とする画像生成方法。
【請求項１５】
オブジェクトが含まれる第１の画像を第５のニューラルネットワークに入力して、前記オブジェクトを構成する所定の複数のパーツを表す複数のパーツ画像を生成し、
前記第１の画像を第６のニューラルネットワークに入力して、前記オブジェクトのボーン毎の所定の重みを表す複数のウェイト画像を生成し、
前記複数のパーツ画像を用いて前記オブジェクトに定義されたメッシュのパーツに含まれる頂点に対して、前記複数のウェイト画像のうち、該頂点が含まれるパーツに対応するウェイト画像が表す重みを設定する、
処理をコンピュータに実行させることを特徴とするプログラム。
【請求項１６】
オブジェクトが含まれる第１の画像をニューラルネットワークに入力して、前記オブジェクトを構成する所定の複数のパーツ毎に、前記オブジェクトのボーンに関する所定の重みを表す複数のウェイト画像を生成し、
前記オブジェクトに定義されたメッシュのパーツに含まれる頂点に対して、前記複数のウェイト画像のうち、該頂点が含まれるパーツに対応するウェイト画像が表す重みを設定する、
処理をコンピュータが実行することを特徴とする画像生成方法。
【請求項１７】
オブジェクトが含まれる第１の画像をニューラルネットワークに入力して、前記オブジェクトを構成する所定の複数のパーツ毎に、前記オブジェクトのボーンに関する所定の重みを表す複数のウェイト画像を生成し、
前記オブジェクトに定義されたメッシュのパーツに含まれる頂点に対して、前記複数のウェイト画像のうち、該頂点が含まれるパーツに対応するウェイト画像が表す重みを設定する、
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置、画像生成方法及びプログラムに関する。
【背景技術】
【０００２】
近年、人物が写っている画像と、ターゲットとなるポーズ（以降、「ターゲットポーズ」とも表す。）を表すポーズ指示情報とを入力として、入力した画像に写っている人物のポーズをターゲットポーズに変換した画像を生成する機械学習の手法が提案されている（例えば、非特許文献１及び２参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】L. Ma, X. Jia, Q. Sun, B. Schiele, T. Tuytelaars, and L. Van Gool. Pose guided person image generation. In NIPS, 2017.
【非特許文献２】A. Siarohin, E. Sangineto, S. Lathuiliere, and N. Sebe. Deformable gans for pose-based human image generation. arXiv preprint arXiv:1801.00055 (2017)
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記の手法は実写の画像を対象としているが、例えば、実写の画像に限られず、イラストやマンガ等として人物が描かれている画像等も対象とすることができれば、イラストやマンガ等も含むコンテンツを容易に作成することができるようになる。
【０００５】
また、人物の属性（例えば、性別や髪の色、肌の色等）を表す属性情報と、ポーズ指示情報とを入力として、この人物のポーズがターゲットポーズとなっている画像を生成することができれば、コンテンツを容易に作成することができるようになる。
【０００６】
本発明の実施の形態は、上記の点に鑑みてなされたもので、コンテンツを容易に作成可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の実施の形態は、オブジェクトが含まれる第１の画像と前記オブジェクトの属性を表す属性情報との少なくとも一方が含まれる外見情報を入力として前記外見情報の特徴を表す外見特徴ベクトルを出力する第１のニューラルネットワークと、前記オブジェクトのターゲットポーズを表すポーズ指示情報を入力として前記ポーズ指示情報の特徴を表すポーズ特徴ベクトルを出力する第２のニューラルネットワークと、前記外見特徴ベクトルと前記ポーズ特徴ベクトルとを入力として前記オブジェクトのポーズを前記ターゲットポーズとした第２の画像を出力する第３のニューラルネットワークとが格納されたメモリと、前記メモリと接続され、前記外見情報を前記第１のニューラルネットワークに入力し、前記外見特徴ベクトルを生成し、前記ポーズ指示情報を前記第２のニューラルネットワークに入力し、前記ポーズ特徴ベクトルを生成し、前記外見特徴ベクトルと前記ポーズ特徴ベクトルとを前記第３のニューラルネットワークに入力し、前記第２の画像を生成するプロセッサと、を有することを特徴とする。
【発明の効果】
【０００８】
コンテンツを容易に作成可能とすることができる。
【図面の簡単な説明】
【０００９】
【図１】第一の実施形態に係る画像生成システムの全体構成の一例を示す図である。
【図２】第一の実施形態に係る画像生成装置のハードウェア構成の一例を示す図である。
【図３】第一の実施形態に係る画像生成時における画像生成装置の機能構成の一例を示す図である。
【図４】第一の実施形態に係る学習時における画像生成装置の機能構成の一例を示す図である。
【図５】第一の実施形態に係る画像生成処理の一例を示すフローチャートである。
【図６】第一の実施形態に係る画像生成の一例を説明するための図（実施例１）である。
【図７】第一の実施形態に係る画像生成の一例を説明するための図（実施例２）である。
【図８】第一の実施形態に係る学習処理の一例を示すフローチャートである。
【図９】第二の実施形態に係る画像生成時における画像生成装置の機能構成の一例を示す図である。
【図１０】第二の実施形態に係る画像生成処理の一例を示すフローチャートである。
【図１１】第二の実施形態に係る画像生成の一例を説明するための図（実施例３）である。
【図１２】第三の実施形態に係る画像生成時における画像生成装置の機能構成の一例を示す図である。
【図１３】第三の実施形態に係る画像生成処理の一例を示すフローチャートである。
【図１４】前処理の一例を説明するための図である。
【図１５】動画への応用例を説明するための図である。
【図１６】第四の実施形態に係る画像生成装置の機能構成の一例を示す図である。
【図１７】第四の実施形態に係る画像生成処理の一例を示すフローチャートである。
【図１８】パーツ画像の生成の一例を説明するための図である。
【図１９】メッシュの生成の一例を説明するための図である。
【図２０】ウェイト画像の生成の一例を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態（以降、「実施形態」とも表す。）について、図面を参照しながら詳細に説明する。以降で説明する各実施形態では、イラストやマンガ等として人物が描かれている画像（以降、「入力画像」と表す。）及び属性情報の少なくとも一方が含まれる外見情報と、ターゲットポーズを表すポーズ指示情報とを入力として、画像生成モデルにより、当該人物のポーズがターゲットポーズとなっている画像（以降、「出力画像」と表す。）を生成する画像生成システム１について説明する。
【００１１】
以降の各実施形態では、一例として、画像生成モデルがニューラルネットワークである場合について説明する。ただし、画像生成モデルの全部又は一部がニューラルネットワーク以外の機械学習モデルにより実現されていても良い。
【００１２】
また、以降の各実施形態では、入力画像は、イラストやマンガ等として人物が描かれた画像であるものとして説明するが、これに限られない。入力画像は、例えば、イラストやマンガ等として任意のオブジェクトが描かれた画像であっても良いし、写真等として任意のオブジェクトが写っている画像であっても良い。なお、オブジェクトとしては、人物以外にも、例えば、動物、植物、ロボット、車両（例えば、自動車やバス、鉄道等）等であっても良い。
【００１３】
また、入力画像は、人物が着色されていても良いし、モノクロであっても良いし、いわゆる線画等であっても良い。更に、入力画像には、人物の他に、背景、マンガにおけるコマ割り等が含まれていても良い。
【００１４】
［第一の実施形態］
＜全体構成＞
まず、本実施形態に係る画像生成システム１の全体構成について、図１を参照しながら説明する。図１は、第一の実施形態に係る画像生成システム１の全体構成の一例を示す図である。
【００１５】
図１に示すように、本実施形態に係る画像生成システム１には、画像生成装置１０と、１台以上のユーザ端末２０とが含まれる。また、画像生成装置１０とユーザ端末２０とは、例えばインターネット等の通信ネットワークＮを介して通信可能に接続されている。
【００１６】
画像生成装置１０は、ユーザ端末２０から送信された外見情報及びポーズ指示情報を入力として、当該外見情報により表される人物のポーズが、当該ポーズ指示情報が示すターゲットポーズとなっている出力画像を生成する。そして、画像生成装置１０は、出力画像をユーザ端末２０に送信する。
【００１７】
ユーザ端末２０は、ユーザが利用するＰＣ（パーソナルコンピュータ）やスマートフォン、タブレット端末等であり、外見情報及びポーズ指示情報を画像生成装置１０に送信する。また、ユーザ端末２０は、画像生成装置１０から受信した出力画像を表示等する。
【００１８】
なお、図１に示す画像生成システム１の構成は一例であって、他の構成であっても良い。例えば、画像生成装置１０とユーザ端末２０とが一体で構成されていても良い。
【００１９】
＜ハードウェア構成＞
次に、本実施形態に係る画像生成装置１０のハードウェア構成について、図２を参照しながら説明する。図２は、第一の実施形態に係る画像生成装置１０のハードウェア構成の一例を示す図である。
【００２０】
図２に示すように、本実施形態に係る画像生成装置１０は、入力装置１１と、表示装置１２と、外部Ｉ／Ｆ１３と、通信Ｉ／Ｆ１４と、プロセッサ１５と、ＲＡＭ（Random Access Memory）１６と、ＲＯＭ（Read Only Memory）１７と、補助記憶装置１８とを有する。これら各ハードウェアは、それぞれがバス１９を介して通信可能に接続されている。
【００２１】
入力装置１１は、例えばキーボードやマウス、タッチパネル等であり、画像生成装置１０の利用者が各種操作を入力するのに用いられる。表示装置１２は、例えばディスプレイ等であり、画像生成装置１０の処理結果（例えば、出力画像等）を表示する。なお、画像生成装置１０は、入力装置１１及び表示装置１２の少なくとも一方を有していなくても良い。
【００２２】
外部Ｉ／Ｆ１３は、外部装置とのインタフェースである。外部装置には、記録媒体１３ａ等がある。画像生成装置１０は、外部Ｉ／Ｆ１３を介して、記録媒体１３ａ等の読み取りや書き込み等を行うことができる。記録媒体１３ａには、画像生成装置１０が有する各機能部を実現する１以上のプログラム等が記録されていても良い。
【００２３】
記録媒体１３ａには、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【００２４】
通信Ｉ／Ｆ１４は、画像生成装置１０を通信ネットワークＮに接続するためのインタフェースである。画像生成装置１０が有する各機能部を実現する１以上のプログラムは、通信Ｉ／Ｆ１４を介して、所定のサーバ装置等から取得（ダウンロード）されても良い。
【００２５】
プロセッサ１５は、例えば、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等の処理回路（processing circuit、processing circuitry）であり、ＲＯＭ１７や補助記憶装置１８等からプログラムやデータをＲＡＭ１６上に読み出して処理を実行する演算装置である。なお、画像生成装置１０は、プロセッサ１５として、ＣＰＵとＧＰＵとの両方を有していても良いし、ＣＰＵ又はＧＰＵのいずれか一方のみを有していても良い。
【００２６】
ＲＡＭ１６は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ１７は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１７には、例えば、ＯＳ（Operating System）に関する設定やネットワークに関する設定等が格納されている。
【００２７】
補助記憶装置１８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置１８に格納されているプログラムやデータには、例えば、ＯＳ、各種アプリケーションプログラム、画像生成装置１０が有する各機能部を実現する１以上のプログラム等がある。
【００２８】
本実施形態に係る画像生成装置１０は、図２に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図２では、本実施形態に係る画像生成装置１０が１台の装置（コンピュータ）で実現される場合のハードウェア構成の一例を示したが、これに限られない。本実施形態に係る画像生成装置１０は、複数台の装置（コンピュータ）で実現されていても良い。
【００２９】
＜機能構成＞
次に、本実施形態に係る画像生成装置１０の機能構成について説明する。本実施形態に係る画像生成装置１０には、学習データセットを用いて画像生成モデルの学習を行う「学習時」と、外見情報とポーズ指示情報とを入力として、学習済み画像生成モデルにより出力画像を生成する「画像生成時」とがある。
【００３０】
画像生成時における画像生成装置１０の機能構成について、図３を参照しながら説明する。図３は、第一の実施形態に係る画像生成時における画像生成装置１０の機能構成の一例を示す図である。
【００３１】
図３に示すように、画像生成時における画像生成装置１０は、機能部として、画像生成処理部１００を有する。画像生成処理部１００は、画像生成装置１０にインストールされた１以上のプログラムがプロセッサ１５に実行させる処理により実現される。
【００３２】
画像生成処理部１００は、画像生成モデルにより実現され、学習済みの画像生成モデルのパラメータを用いて、ユーザ端末２０から入力された外見情報及びポーズ指示情報から出力画像を生成する。そして、画像生成処理部１００は、出力画像をユーザ端末２０に出力する。ここで、画像生成処理部１００には、外見特徴ベクトル生成部１１０と、ポーズ特徴ベクトル生成部１２０と、画像生成部１３０とが含まれる。
【００３３】
外見特徴ベクトル生成部１１０は、エンコーダ（符号化器）として機能するニューラルネットワークにより実現され、外見情報から外見特徴ベクトルを生成する。外見特徴ベクトルとは、外見情報（入力画像及び／又は属性情報）の特徴を表すベクトルである。なお、以降では、外見特徴ベクトル生成部１１０を実現するニューラルネットワークを「第１のニューラルネットワーク」とも表す。第１のニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク（ＣＮＮ：Convolutional Neural Network）等を用いることができる。
【００３４】
ポーズ特徴ベクトル生成部１２０は、エンコーダとして機能するニューラルネットワークにより実現され、ポーズ指示情報からポーズ特徴ベクトルを生成する。ポーズ特徴ベクトルとは、ポーズ指示情報の特徴を表すベクトルである。また、ポーズ指示情報とは、例えば、人物の目や耳、首、肩、肘、膝等の人体の特徴点の位置を表す情報である。なお、以降では、ポーズ特徴ベクトル生成部１２０を実現するニューラルネットワークを「第２のニューラルネットワーク」とも表す。第２のニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク等を用いることができる。
【００３５】
画像生成部１３０は、デコーダ（復号化器）として機能するニューラルネットワークにより実現され、外見特徴ベクトル生成部１１０により生成された外見特徴ベクトルと、ポーズ特徴ベクトル生成部１２０により生成されたポーズ特徴ベクトルとから出力画像を生成する。なお、以降では、画像生成部１３０を実現するニューラルネットワークを「第３のニューラルネットワーク」とも表す。第３のニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク等を用いることができる。
【００３６】
学習時における画像生成装置１０の機能構成について、図４を参照しながら説明する。図４は、第一の実施形態に係る学習時における画像生成装置１０の機能構成の一例を示す図である。
【００３７】
図４に示すように、学習時における画像生成装置１０は、機能部として、画像生成処理部１００と、パラメータ更新部２００とを有する。画像生成処理部１００とパラメータ更新部２００とは、画像生成装置１０にインストールされた１以上のプログラムがプロセッサ１５に実行させる処理により実現される。
【００３８】
画像生成処理部１００は、画像生成モデルにより実現され、初期化されたパラメータ又は学習中のパラメータを用いて、学習データセットに含まれる各学習データから出力画像をそれぞれ生成する。学習データは、画像生成モデルの学習に用いられるデータであり、例えば、外見情報と、ポーズ指示情報と、出力画像の正解データを示す正解画像とが含まれる。ここで、画像生成処理部１００には、上述したように、外見特徴ベクトル生成部１１０と、ポーズ特徴ベクトル生成部１２０と、画像生成部１３０とが含まれる。
【００３９】
パラメータ更新部２００は、画像生成処理部１００により生成された出力画像と、当該出力画像の生成に用いられた学習データに含まれる正解画像との誤差を算出した上で、この誤差を用いて、任意の最適化手法により画像生成モデルのパラメータを更新する。これにより、学習済みの画像生成モデルのパラメータが得られる。
【００４０】
なお、本実施形態では、外見特徴ベクトル生成部１１０とポーズ特徴ベクトル生成部１２０とが異なる機能ブロックである場合について説明するが、外見特徴ベクトル生成部１１０とポーズ特徴ベクトル生成部１２０とが１つの機能ブロック（例えば、「外見及びポーズ特徴ベクトル生成部」）であっても良い。この場合、第１のニューラルネットワークと第２のニューラルネットワークとが１つのニューラルネットワークで表され、外見及びポーズ特徴ベクトル生成部は、この１つのニューラルネットワークにより実現される。また、この場合、外見及びポーズ特徴ベクトル生成部が生成するベクトル（外見及びポーズ特徴ベクトル）としては、例えば、上述した外見特徴とポーズ特徴とが混在したベクトルとすれば良い。
【００４１】
＜画像生成処理＞
次に、外見情報とポーズ指示情報とを入力として、画像生成モデルにより、出力画像を生成する処理について、図５を参照しながら説明する。図５は、第一の実施形態に係る画像生成処理の一例を示すフローチャートである。なお、図５では、画像生成モデルのパラメータ（すなわち、学習生成モデルを構成する各ニューラルネットワークのパラメータ）は予め学習済みであるものとする。
【００４２】
ステップＳ１０１：画像生成処理部１００は、ユーザ端末２０から送信された外見情報及びポーズ指示情報を入力する。なお、ユーザは、ユーザ端末２０を用いて、例えば、Ｗｅｂブラウザや所定のアプリケーション等によって表示された画面上から外見情報及びポーズ指示情報を指定することで、これらの外見情報及びポーズ指示情報を画像生成装置１０に送信することができる。
【００４３】
ステップＳ１０２：画像生成処理部１００の外見特徴ベクトル生成部１１０は、第１のニューラルネットワークにより、入力された外見情報から外見特徴ベクトルを生成する。なお、第１のニューラルネットワークの入力層の構成（ユニット数等）は、外見情報として入力されるデータの次元数に応じて決定される。一方で、第１のニューラルネットワークの中間層（隠れ層）及び出力層の構成は任意に決定することができる。
【００４４】
ステップＳ１０３：画像生成処理部１００のポーズ特徴ベクトル生成部１２０は、第２のニューラルネットワークにより、入力されたポーズ指示情報からポーズ特徴ベクトルを生成する。なお、第２のニューラルネットワークの入力層の構成は、ポーズ指示情報として入力されるデータの次元数に応じて決定される。一方で、第２のニューラルネットワークの中間層（隠れ層）及び出力層の構成は任意に決定することができる。
【００４５】
なお、上記のステップＳ１０２及びステップＳ１０３の処理は順不同である。すなわち、画像生成処理部１００は、上記のステップＳ１０３の処理を行った後に、上記のステップＳ１０２の処理を行っても良い。又は、画像生成処理部１００は、上記のステップＳ１０２の処理と上記のステップＳ１０３の処理とを並列に行っても良い。
【００４６】
ステップＳ１０４：画像生成処理部１００の画像生成部１３０は、第３のニューラルネットワークにより、外見特徴ベクトルとポーズ特徴ベクトルとから出力画像を生成する。なお、第３のニューラルネットワークの入力層の構成は、外見特徴ベクトルとして入力されるデータの次元数と、ポーズ特徴ベクトルとして入力されるデータの次元数とに応じて決定される。また、第３のニューラルネットワークの出力層の構成は、出力画像として出力されるデータの次元数（例えば、入力画像として入力されるデータの次元数と同一の次元数）に応じて決定される。一方で、第３のニューラルネットワークの中間層（隠れ層）の構成は任意に決定することができる。
【００４７】
ステップＳ１０５：画像生成処理部１００は、上記のステップＳ１０４で生成した出力画像をユーザ端末２０に出力（送信）する。これにより、ユーザ端末２０では、例えば、出力画像が表示される。
【００４８】
（実施例１）
ここで、上記の画像生成処理（図５）の実施例として、外見情報が表す人物のポーズが、ポーズ指示情報が表すターゲットポーズとなっている出力画像を生成する場合について、図６も参照しながら説明する。図６は、第一の実施形態に係る画像生成の一例を説明するための図（実施例１）である。
【００４９】
まず、画像生成処理部１００は、入力画像及び属性情報の少なくとも一方が含まれる外見情報と、ポーズ指示情報とを入力する（ステップＳ１０１）。図６に示すように、入力画像とは、イラストやマンガ等として人物の全身が描かれている画像である。また、属性情報とは、人物の属性（例えば、性別、髪の色、肌の色、目の色、体型、服装等）を表す情報である。更に、ポーズ指示情報とは、例えば、人物の目や耳、首、肩、肘、膝等の人体の特徴点の位置を表す情報である。なお、ポーズ指示情報は、人体の特徴点の位置を表す情報に限られず、例えば、人物のポーズを線分の組み合わせとして表した情報（この情報は、「ボーン情報」又は単に「ボーン」とも称される。）等であっても良い。
【００５０】
ここで、属性情報が表す人物の属性としては、入力画像が外見情報に含まれる場合には、当該入力画像に描かれている人物の属性とすることが考えられる。又は、属性情報が表す人物の属性として、出力画像に描かれる人物の属性（すなわち、入力画像に描かれている人物の属性のうち、ユーザが変更したい属性）としても良い。
【００５１】
また、ポーズ指示情報としては、図６に示すように、人体の特徴点の位置を表す情報の他に、例えば、「座っている」、「立っている」、「寝ている」、「歩いている」等の姿勢又は行動を表す情報が含まれても良い。
【００５２】
次に、画像生成処理部１００の外見特徴ベクトル生成部１１０は、外見情報から外見特徴ベクトルを生成する（ステップＳ１０２）。同様に、画像生成処理部１００のポーズ特徴ベクトル生成部１２０は、ポーズ指示情報からポーズ特徴ベクトルを生成する（ステップＳ１０３）。
【００５３】
次に、画像生成処理部１００の画像生成部１３０は、外見特徴ベクトルとポーズ特徴ベクトルとから出力画像を生成する（ステップＳ１０４）。これにより、外見情報が表す人物のポーズが、ポーズ指示情報が表すターゲットポーズとなっている出力画像が生成される。
【００５４】
そして、画像生成処理部１００は、出力画像をユーザ端末２０に出力する（ステップＳ１０５）。
【００５５】
以上のように、実施例１では、人物の全身が描かれている入力画像と、人物の属性を表す属性情報との少なくとも一方が含まれる外見情報を用いて、この外見情報が表す人物のポーズを、ポーズ指示情報が表すターゲットポーズとした出力画像を得ることができる。これにより、ユーザは、例えば、１枚の入力画像を準備するだけで、この入力画像に描かれている人物の別ポーズの出力画像を得ることができる。したがって、実施例１における画像生成装置１０によれば、イラストやマンガ等のコンテンツを容易に作成することができるようになる。
【００５６】
（実施例２）
次に、上記の画像生成処理（図５）の実施例として、外見情報が表す人物のポーズが、ポーズ指示情報が表すターゲットポーズとなっている出力画像を生成する場合に、属性情報によって入力画像に描かれていない部分を補完する場合について、図７も参照しながら説明する。図７は、第一の実施形態に係る画像生成の一例を説明するための図（実施例２）である。なお、実施例２では、入力画像と属性情報との両方が外見情報に含まれるものとする。
【００５７】
まず、画像生成処理部１００は、外見情報とポーズ指示情報とを入力する（ステップＳ１０１）。ここで、外見情報に含まれる入力画像は、例えばイラストやマンガ等として人物の全身の一部分（例えば、顔の部分等）が描かれている画像であるものとする。また、外見情報に含まれる属性情報は、入力画像に描かれていない部分（例えば、顔以外の部分）の属性を表す情報である。属性情報としては、例えば、服装や体型等が挙げられるが、これら以外にも、背景等が含まれていても良い。
【００５８】
次に、画像生成処理部１００の外見特徴ベクトル生成部１１０は、外見情報から外見特徴ベクトルを生成する（ステップＳ１０２）。同様に、画像生成処理部１００のポーズ特徴ベクトル生成部１２０は、ポーズ指示情報からポーズ特徴ベクトルを生成する（ステップＳ１０３）。
【００５９】
次に、画像生成処理部１００の画像生成部１３０は、外見特徴ベクトルとポーズ特徴ベクトルとから出力画像を生成する（ステップＳ１０４）。これにより、外見情報が表す人物のポーズが、ポーズ指示情報が表すターゲットポーズとなっている出力画像が生成される。
【００６０】
そして、画像生成処理部１００は、出力画像をユーザ端末２０に出力する（ステップＳ１０５）。
【００６１】
以上のように、実施例２では、少なくとも全身の一部（例えば、顔の部分等）が描かれている入力画像と、この入力画像に描かれていない人体の部分を補完する属性情報とが含まれる外見情報を用いて、この外見情報が表す人物のポーズを、ポーズ指示情報が表すターゲットポーズとした出力画像を得ることができる。これにより、ユーザは、例えば、顔のみを描いた１枚の入力画像を準備するだけで、この入力画像に描かれている顔の全身が補完された人物のポーズがターゲットポーズである出力画像を得ることができる。したがって、実施例２における画像生成装置１０によれば、実施例１と比べて、イラストやマンガ等のコンテンツをより容易に作成することができるようになる。
【００６２】
＜学習処理＞
次に、画像生成処理部１００を実現する画像生成モデルを学習する処理（すなわち、画像生成モデルのパラメータを更新する処理）について、図８を参照しながら説明する。図８は、第一の実施形態に係る学習処理の一例を示すフローチャートである。なお、図８では、画像生成モデルのパラメータ（すなわち、学習生成モデルを構成する各ニューラルネットワークのパラメータ）は、例えば、適切な初期値に初期化されているものとする。
【００６３】
ステップＳ２０１：画像生成処理部１００は、学習データセットを入力する。学習データセットは、１以上の学習データの集合である。各学習データには、例えば、外見情報と、ポーズ指示情報と、出力画像の正解データを示す正解画像とが含まれる。
【００６４】
ここで、各学習データに含まれる外見情報やポーズ指示情報の内容は、画像生成モデルの構成によって異なる。例えば、画像生成時に、属性情報が用いられない場合（すなわち、属性情報が外見情報に含まれない場合）、各学習データとして、属性情報が外見情報に含まれない学習データを用いる。同様に、例えば、画像生成時に、入力画像が用いられない場合（すなわち、入力画像が外見情報に含まれない場合）、各学習データとして、入力画像が外見情報に含まれない学習データを用いる。また、例えば、画像生成時に、人物の全体の一部分が描かれている入力画像が用いられる場合、各学習データとして、人物の全体の一部分が描かれている入力画像が外見情報に含まれる学習データを用いる。
【００６５】
ステップＳ２０２〜ステップＳ２０５：画像生成処理部１００は、図５のステップＳ１０１〜ステップＳ１０４と同様に、各学習データに含まれる外見情報及びポーズ指示情報から出力画像をそれぞれ生成する。
【００６６】
ステップＳ２０６：パラメータ更新部２００は、各学習データ毎に、ステップＳ２０５で生成された出力画像と、当該学習データに含まれる正解画像との誤差を算出する。なお、誤差の算出に用いられる誤差関数としては任意の誤差関数を用いることができる。
【００６７】
ステップＳ２０７：パラメータ更新部２００は、上記のステップＳ２０６で算出した誤差を用いて、任意の最適化手法により画像生成モデルのパラメータを更新する。これにより、学習済みの画像生成モデルのパラメータが得られる。なお、オンライン学習を行う場合は、ステップＳ２０２〜ステップＳ２０７を学習データ毎に繰り返しても良い。
【００６８】
なお、上記では、教師あり学習の方法により画像生成処理部１００を実現する画像生成モデルを学習する場合について説明したが、これに限られず、例えば、敵対的生成ネットワーク（ＧＡＮｓ：Generative Adversarial Networks）等の教師なし学習の方法が組み合わせられても良い。
【００６９】
［第二の実施形態］
次に、第二の実施形態について説明する。第二の実施形態では、ターゲットポーズをとっている人物が描かれた画像（又はターゲットポーズをとっている人物が写っている画像）からポーズ指示情報を生成し、このポーズ指示情報を用いて出力画像を生成する場合について説明する。以降では、ターゲットポーズをとっている人物が描かれた画像又はターゲットポーズをとっている人物が写っている画像を「ポーズ指示画像」と表す。
【００７０】
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と同一の構成要素については同一の符号を付与し、その説明を省略するものとする。
【００７１】
＜機能構成＞
次に、本実施形態に係る画像生成装置１０の機能構成について説明する。以降では、画像生成時における画像生成装置１０の機能構成について、図９を参照しながら説明する。図９は、第二の実施形態に係る画像生成時における画像生成装置１０の機能構成の一例を示す図である。なお、学習時における画像生成装置１０の機能構成は、第一の実施形態と同様であるため、その説明を省略する。
【００７２】
図９に示すように、画像生成時における画像生成装置１０は、機能部として、第一の実施形態で説明した機能部に加えて、ポーズ情報生成部３００を有する。ポーズ情報生成部３００は、画像生成装置１０にインストールされた１以上のプログラムがプロセッサ１５に実行させる処理により実現される。
【００７３】
ポーズ情報生成部３００は、ポーズ推定器として機能するニューラルネットワークにより実現され、ポーズ指示画像からポーズ情報を生成する。すなわち、ポーズ情報生成部３００は、ポーズ指示画像を入力として、当該ポーズ指示画像に描かれている（又は写っている）人物のポーズを示すポーズ情報を生成する。なお、以降では、ポーズ情報生成部３００を実現するニューラルネットワークを「第４のニューラルネットワーク」とも表す。第４のニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク等を用いることができる。ポーズ推定器として機能するニューラルネットワークについては、例えば、以下の参考文献１を参照されたい。
【００７４】
［参考文献１］
A. Toshev and C. Szegedy. Deeppose: Human pose estimation via deep neural networks. In CVPR, 2014.
また、本実施形態に係る画像生成処理部１００は、ポーズ情報生成部３００により生成されたポーズ情報をポーズ指示情報として入力する。そして、本実施形態に係る画像生成処理部１００は、ユーザ端末２０から入力された外見情報と、ポーズ指示情報とから出力画像を生成する。
【００７５】
＜画像生成処理＞
次に、外見情報とポーズ指示画像とを入力として、画像生成モデルにより、出力画像を生成する処理について、図１０を参照しながら説明する。図１０は、第二の実施形態に係る画像生成処理の一例を示すフローチャートである。なお、図１０のステップＳ１０２及びステップＳ１０４〜ステップＳ１０５は、図５と同様であるため、その説明を省略する。また、図１０では、画像生成モデルのパラメータ（すなわち、学習生成モデルを構成する各ニューラルネットワークのパラメータ）と、第４のニューラルネットワークのパラメータとは予め学習済みであるものとする。
【００７６】
ステップＳ３０１：画像生成処理部１００は、ユーザ端末２０から送信された外見情報を入力する。また、ポーズ情報生成部３００は、ユーザ端末２０から送信されたポーズ指示画像を入力する。なお、ユーザは、ユーザ端末２０を用いて、例えば、Ｗｅｂブラウザや所定のアプリケーション等によって表示された画面上から外見情報及びポーズ指示画像を指示することで、これらの外見情報及びポーズ指示画像を画像生成装置１０に送信することができる。
【００７７】
ステップＳ３０２：ポーズ情報生成部３００は、第４のニューラルネットワークにより、入力されたポーズ指示画像からポーズ情報を生成する。なお、第４のニューラルネットワークの入力層の構成は、ポーズ指示画像として入力されるデータの次元数に応じて決定される。一方で、第４のニューラルネットワークの中間層及び出力層の構成は任意に決定することができる。
【００７８】
ステップＳ３０３：画像生成処理部１００のポーズ特徴ベクトル生成部１２０は、ポーズ情報生成部３００により生成されたポーズ情報をポーズ指示情報として、第２のニューラルネットワークにより、入力されたポーズ指示情報からポーズ特徴ベクトルを生成する。
【００７９】
なお、ステップＳ１０２及びステップＳ３０３の処理は順不同である。すなわち、画像生成処理部１００は、上記のステップＳ３０３の処理を行った後に、ステップＳ１０２の処理を行っても良い。又は、画像生成処理部１００は、ステップＳ１０２の処理と上記のステップＳ３０２の処理とを並列に行っても良い。
【００８０】
このように、ポーズ指示情報は、ポーズ情報生成部３００により、ユーザにより指定されたポーズ指示画像から生成される。これにより、ユーザは、例えば、任意の画像に描かれている（又は写っている）人物のポーズをターゲットポーズとすることができる。
【００８１】
（実施例３）
ここで、上記の画像生成処理（図１０）の実施例として、外見情報が表す人物のポーズが、ポーズ指示情報が表すターゲットポーズとなっている出力画像を生成する場合について、図１１を参照しながら説明する。図１１は、第二の実施形態に係る画像生成の一例を説明するための図（実施例３）である。
【００８２】
まず、画像生成処理部１００は、入力画像及び属性情報の少なくとも一方が含まれる外見情報を入力する。また、ポーズ情報生成部３００は、ポーズ指示画像を入力する（ステップＳ３０１）。図１１に示すように、ポーズ指示画像とは、ターゲットポーズとなるポーズの人物の全身が描かれている又は写っている画像である。
【００８３】
次に、ポーズ情報生成部３００は、ポーズ指示画像からポーズ情報を生成する（ステップＳ３０２）。
【００８４】
そして、画像生成処理部１００は、外見情報を入力すると共に、ポーズ情報生成部３００により生成されたポーズ情報をポーズ指示情報として入力することで、出力画像を生成及び出力する（ステップＳ１０２、ステップＳ３０３及びステップＳ１０４〜ステップＳ１０５）。
【００８５】
以上のように、実施例３では、ポーズ指示情報をポーズ指示画像から生成した上で、このポーズ指示情報と外見情報とを用いて出力画像を得ることができる。これにより、ユーザは、例えば、入力画像等の外見情報を準備すると共に、ポーズ指示画像を準備するだけで、この入力画像に描かれている人物の別ポーズの出力画像を得ることができる。したがって、実施例３における画像生成装置１０によれば、イラストやマンガ等のコンテンツをより容易に作成することができるようになる。
【００８６】
なお、ポーズ情報生成部３００により学習データセットを容易に作成することもできるようになる。すなわち、ポーズ情報生成部３００によりポーズ指示画像からポーズ情報を生成した上で、このポーズ指示画像を正解画像、生成したポーズ情報をポーズ指示情報として、任意の入力画像と、当該ポーズ指示情報と、当該正解画像との組を学習データとする。ただし、このとき、入力画像に描かれている（又は写っている）人物の属性が、ポーズ指示画像に描かれている（又は写っている）人物と同じ属性であり、かつ、入力画像に描かれている（又は写っている）人物のポーズと、ポーズ指示情報が示すポーズとが別ポーズである必要がある。
【００８７】
これにより、ユーザは、画像生成モデルを学習させるための学習データセットを容易に作成することができるようになる。
【００８８】
［第三の実施形態］
次に、第三の実施形態について説明する。第三の実施形態では、入力画像が外見情報に含まれるものとし、当該入力画像に対して所定の前処理を行う場合について説明する。
【００８９】
なお、第三の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と同一の構成要素については同一の符号を付与し、その説明を省略するものとする。
【００９０】
＜機能構成＞
次に、本実施形態に係る画像生成装置１０の機能構成について説明する。以降では、画像生成時における画像生成装置１０の機能構成について、図１２を参照しながら説明する。図１２は、第三の実施形態に係る画像生成時における画像生成装置１０の機能構成の一例を示す図である。なお、学習時における画像生成装置１０の機能構成は、第一の実施形態と同様であるため、その説明を省略する。
【００９１】
図１２に示すように、画像生成時における画像生成装置１０は、機能部として、第一の実施形態で説明した機能部に加えて、前処理部４００を有する。前処理部４００は、画像生成装置１０にインストールされた１以上のプログラムがプロセッサ１５に実行させる処理により実現される。
【００９２】
前処理部４００は、外見情報に含まれる入力画像に対する所定の前処理として、当該入力画像を複数のパーツ画像に分解した上で、これらのパーツ画像を、ポーズ指示情報が表すポーズに合せて結合した画像を生成する。なお、パーツ画像とは、人物の顔や胴体、腕、足等のパーツを表す画像のことである。
【００９３】
＜画像生成処理＞
次に、外見情報とポーズ指示情報とを入力として、当該外見情報に含まれる入力画像に対して所定の前処理を行った上で、画像生成モデルにより、出力画像を生成する処理について、図１３を参照しながら説明する。図１３は、第三の実施形態に係る画像生成処理の一例を示すフローチャートである。なお、図１３のステップＳ１０３〜ステップＳ１０５は、図５と同様であるため、その説明を省略する。また、図１３では、画像生成モデルのパラメータ（すなわち、学習生成モデルを構成する各ニューラルネットワークのパラメータ）は予め学習済みであるものとする。
【００９４】
ステップＳ４０１：前処理部４００は、ユーザ端末２０から送信された外見情報及びポーズ指示情報を入力する。
【００９５】
ステップＳ４０２：前処理部４００は、外見情報に含まれる入力画像を複数のパーツ画像に分解した上で、これらのパーツ画像を、ポーズ指示情報が表すポーズに合せて結合した画像（この画像を「前処理後の入力画像」と表す。）を生成する。そして、前処理部４００は、前処理後の入力画像と属性情報とが含まれる外見情報と、ポーズ指示情報とを画像生成処理部１００に出力する。これにより、画像生成処理部１００には、当該外見情報と当該ポーズ指示情報とが入力される。
【００９６】
ここで、前処理部４００による前処理の一例について、図１４を参照しながら説明する。図１４は、前処理の一例を説明するための図である。
【００９７】
Ｓｔｅｐ１）まず、前処理部４００は、入力した外見情報に含まれる入力画像を複数のパーツ画像に分解する。すなわち、前処理部４００は、入力画像に描かれている人物部分について、例えば、前腕部分（手首から肘までの部分）を表すパーツ画像と、上腕部分（肘から肩までの部分）を表すパーツ画像と、胴体部分を表すパーツ画像と、顔部分を表すパーツ画像と、大腿部分を表すパーツ画像と、下腿部分を表すパーツ画像とに分解する。
【００９８】
なお、入力画像に描かれている人物部分を前腕部分、上腕部分、胴体部分、顔部分、大腿部分、及び下腿部分に分解することは一例であって、これに限られない。例えば、胴体部分は、更に、胸郭部分と腹部部分とに分解されても良い。また、足部分や手部分等に分解されても良い。
【００９９】
Ｓｔｅｐ２）前処理部４００は、上記のＳｔｅｐ１で得られたパーツ画像を、ポーズ指示情報が表すポーズに合せて結合することで、前処理後の入力画像を生成する。すなわち、前処理部４００は、ポーズ指示情報が表す特徴点の位置に対して、当該特徴点に対応するパーツ画像を配置することで、前処理後の入力画像を生成する。
【０１００】
例えば、ポーズ指示情報として、「肩の位置情報」と「肘の位置情報」とが含まれる場合、これらの「肩の位置情報」と「肘の位置情報」とで特定される直線上に、「上腕部分のパーツ画像」を配置する。他のパーツ画像についても同様に、ポーズ指示情報に含まれる特徴点の位置から特定される直線上に、この直線に対応する部分のパーツ画像を配置する。
【０１０１】
ステップＳ４０３：画像生成処理部１００の外見特徴ベクトル生成部１１０は、第１のニューラルネットワークにより、前処理後の入力画像が含まれる外見情報を入力として、外見特徴ベクトルを生成する。
【０１０２】
このように、前処理後の入力画像が外見情報から外見特徴ベクトルが生成される。これにより、本実施形態では、より高い精度の出力画像（すなわち、ポーズ指示情報が表すポーズにより近いポーズの人物が描かれている出力画像）を得ることができるようになる。
【０１０３】
なお、本実施形態では、学習データに含まれる入力画像として前処理後の入力画像を用いて学習処理を行うことが好ましい。
【０１０４】
［応用例］
ここで、本実施形態に係る画像生成装置１０を用いて、動画（アニメーション画像）を生成する場合の応用例について、図１５を参照しながら説明する。図１５は、動画への応用例を説明するための図である。
【０１０５】
図１５に示すように、例えば、ｎフレーム目のフレーム画像を出力画像として得る場合には、ｎ−１フレーム目のフレーム画像として得られた出力画像が含まれる外見情報と、ｎフレーム目のターゲットポーズを表すポーズ指示情報とを画像生成処理部１００を入力する。これにより、出力画像として、ｎフレーム目のフレーム画像が得られる。
【０１０６】
同様に、例えば、ｎ＋１フレーム目のフレーム画像を出力画像として得る場合には、ｎフレーム目のフレーム画像として得られた出力画像が含まれる外見情報と、ｎ＋１フレーム目のターゲットポーズを表すポーズ指示情報とを画像生成処理部１００を入力する。これにより、出力画像として、ｎ＋１フレーム目のフレーム画像が得られる。
【０１０７】
このように、ｎ−１フレーム目のフレーム画像として得られた出力画像と、ｎフレーム目のターゲットポーズを表すポーズ指示情報とを画像生成処理部１００に繰り返し入力することで、動画に含まれる各フレーム画像が得られる。
【０１０８】
なお、このとき、各フレームのターゲットポーズを表すポーズ指示情報は、例えば、現実の俳優等の動作を撮影した動画を用いて、第二の実施形態で説明したポーズ情報生成部３００により生成することもできる。これにより、現実の俳優等の動作と同様の動作を行うアニメーション動画を高い精度で容易に作成することができるようになる。
【０１０９】
［第四の実施形態］
次に、第四の実施形態について説明する。第四の実施形態では、上記の応用例と同様に、動画（アニメーション画像）を生成する場合について説明する。従来、ゲームやアニメ等では、例えば、キャラクターに対してメッシュと、ボーンとを定義した上で、ボーンを変化させることで、当該キャラクターのポーズを変化させることが行われている。このとき、スキニングと呼ばれる作業を事前に行う必要がある。なお、ボーンは「スケルトン」等と称されても良い。
【０１１０】
スキニングとは、メッシュの各頂点に対して、ボーンへの追従度合いを示すウェイトを設定することである。言い換えれば、スキニングとは、或るボーンが変化した場合に、このボーンの変化に対してメッシュの各頂点がどの程度変化するかを示すウェイトを設定することである。このようなスキニングは、例えば、ＤＣＣ（Digital Content Creation）ツール等のソフトウェアを用いて行われることが多い。なお、ウェイトは「重み」等と称されても良い。
【０１１１】
ここで、スキニングを手作業で行うには多くの時間や手間を要する。特に、キャラクターに定義されるボーンの数が多くなるに従って、より多くの時間や手間を要するようになる。これに対して、既存のＤＣＣツールには、例えば、ボーンの階層からウェイトを設定する機能やメッシュの頂点とボーンとの距離に応じてウェイトを設定する機能、ヒートマップを用いてウェイトを設定する機能等を有するものがある。このような機能を用いることで、スキニングの時間や手間を削減することは可能である。
【０１１２】
しかしながら、上記の既存のＤＣＣツールが有する機能を用いたスキニングでは、適切なスキニングが行えない場合があった。例えば、メッシュの頂点とボーンとの距離に応じてウェイトを設定する機能では、腕のボーンと、腰のボーンとが近い場合に、腰付近のメッシュの頂点に対して、腕のボーンの変化に追従するようにウェイトが設定されてしまうことがあった。
【０１１３】
そこで、第四の実施形態では、効率的に適切なスキニングを行うことで、動画を生成する画像生成装置１０について説明する。なお、第四の実施形態に係る画像生成システム１の全体構成と、画像生成装置１０のハードウェア構成とは、第一の実施形態と同様であるため、その説明を省略する。
【０１１４】
＜機能構成＞
まず、本実施形態に係る画像生成装置１０の機能構成について、図１６を参照しながら説明する。図１６は、第四の実施形態に係る画像生成装置１０の機能構成の一例を示す図である。
【０１１５】
図１６に示すように、本実施形態に係る画像生成装置１０は、機能部として、画像生成処理部５００を有する。画像生成処理部５００は、画像生成装置１０にインストールされた１以上のプログラムがプロセッサ１５に実行させる処理により実現される。
【０１１６】
画像生成処理部５００は、ユーザ端末２０から外見情報及びポーズ指示情報を入力して、当該外見情報に含まれる入力画像に描かれている（又は写っている）人物等のウェイト付きメッシュを生成した上で、このウェイト付きメッシュをポーズ指示情報に変換すると共にレンダリングすることで出力画像を生成する。ここで、ウェイト付きメッシュとは、メッシュの各頂点に対してウェイトが割り当てられた情報である。また、本実施形態では、外見情報には、入力画像が含まれるものとする。なお、外見情報には、入力画像の他に、例えば、この入力画像に描かれている（又は写っている）人物等のボーンを示す情報等が含まれていても良い。
【０１１７】
また、画像生成処理部５００は、例えば、ｎ−１フレーム目のウェイト付きメッシュと、新たに入力されたｎフレーム目のポーズ指示情報とを用いて、このｎ−１フレーム目のウェイト付きメッシュをｎフレーム目のウェイト付きメッシュに変換する。そして、画像生成処理部５００は、このｎフレーム目のウェイト付きメッシュをレンダリングすることで、ｎフレーム目の出力画像を生成する。このように、画像生成処理部５００は、ｎ−１フレーム目のウェイト付きメッシュと、ｎフレーム目のポーズ指示情報とを用いて、ｎフレーム目の出力画像を生成する。これより、各フレームの出力画像によって構成される動画を生成することができる。
【０１１８】
ここで、画像生成処理部５００には、パーツ画像生成部５１０と、ウェイト画像生成部５２０と、メッシュ生成部５３０と、割当部５４０と、変換部５５０と、レンダリング部５６０と、画像修正部５７０とが含まれる。
【０１１９】
パーツ画像生成部５１０は、パーツ画像生成器として機能するニューラルネットワークにより実現され、学習済みのパーツ画像生成器のパラメータを用いて、入力画像から複数のパーツ画像を生成する。これらのパーツ画像は、上述したように、例えば、人物の顔や胴体、腕、足等のパーツを表す画像のことである。なお、以降では、パーツ画像生成器として機能するニューラルネットワーク（すなわち、パーツ画像生成部５１０を実現するニューラルネットワーク）を「第５のニューラルネットワーク」とも表す。第５のニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク等を用いることができる。
【０１２０】
ここで、パーツ画像生成器として機能する第５のニューラルネットワークは、例えば、人物等が描かれた（又は写っている）画像と、この人物等の各パーツを表す正解画像とが含まれる学習データを用いて、任意の最適化手法により学習される。
【０１２１】
ウェイト画像生成部５２０は、ウェイト画像生成器として機能するニューラルネットワークにより実現され、学習済みのウェイト画像生成器のパラメータを用いて、入力画像から複数のウェイト画像を生成する。これらのウェイト画像は、例えば、入力画像に描かれている（又は写っている）人物等の複数のボーン各々のウェイトを表す画像である。例えば、或るボーンのウェイト画像は、当該ボーンに関するウェイトの範囲を表す画像や当該ボーンに関するウェイトのヒートマップを表す画像等で表される。なお、以降では、ウェイト画像生成器として機能するニューラルネットワーク（すなわち、ウェイト画像生成部５２０を実現するニューラルネットワーク）を「第６のニューラルネットワーク」とも表す。第６のニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク等を用いることができる。
【０１２２】
ここで、ウェイト画像生成器として機能する第６のニューラルネットワークは、例えば、人物等が描かれた（又は写っている画像）と、この人物等の複数のボーン各々に関するウェイトを表す正解画像とが含まれる学習データを用いて、任意の最適化手法により学習される。なお、この学習データには、例えば、当該人物等の複数のボーンを示す情報（ボーン情報）が含まれていても良い。
【０１２３】
メッシュ生成部５３０は、パーツ画像生成部５１０により生成されたパーツ画像を入力として、メッシュを生成する。メッシュとは、入力画像に描かれている（又は写っている）人物等を定義する複数の多角形形状のことである。これらの多角形形状は、三角形や四角形であっても良いし、任意の矩形形状であっても良い。また、この多角形形状は、２次元形状であっても良いし、３次元形状であっても良い。なお、メッシュは、例えば、当該メッシュを構成する多角形形状の頂点と線分とを示す情報により表される。
【０１２４】
割当部５４０は、メッシュ生成部５３０により生成されたメッシュと、ウェイト画像生成部５２０により生成されたウェイト画像とを入力として、ウェイト付きメッシュを生成する。ウェイト付きメッシュとは、メッシュに対して、各ウェイト画像が表すウェイトを割り当てた情報である。このとき、割当部５４０は、メッシュの各パーツ（より正確には、各パーツを構成する多角形形状の頂点）に対して、当該パーツに対応するボーンのウェイト画像が表すウェイトを割り当てる。例えば、割当部５４０は、メッシュの顔部分（より正確には、顔部分を構成する多角形形状の頂点）に対しては、顔部分に対応するボーンのウェイト画像が表すウェイトを割り当てる。同様に、割当部５４０は、メッシュの腕部分（より正確には、腕部分を構成する多角形形状の頂点）に対しては、腕部分のウェイト画像が表すウェイトを割り当てる。なお、パーツに対応するボーンとは、例えば、当該パーツに含まれるボーンのことである。
【０１２５】
なお、ウェイト付きメッシュは、例えば、メッシュと、当該メッシュを構成する多角形形状の各頂点のボーン毎のウェイトを表すリストとの組で表される。
【０１２６】
変換部５５０は、割当部５４０により生成されたウェイト付きメッシュと、ポーズ指示情報とを入力として、ウェイト付きメッシュを、ターゲットポーズが表すウェイト付きメッシュとなるように変換する。なお、変換は「変形」と称されても良い。以降では、「変換」と表すものとする。この変換（又は変形）は、ウェイト付きメッシュが表すポーズが、ポーズ指示情報が表すターゲットポーズとなるように、メッシュの各頂点に割り当てられたウェイトに応じて、当該メッシュをアフィン変換することを意味する。
【０１２７】
レンダリング部５６０は、変換部５５０により変換されたウェイト付きメッシュ（又は、このウェイト付きメッシュから抽出したメッシュ）をレンダリングして、レンダリング画像を生成する。レンダリング部５６０は、例えば、ウェイト付きメッシュ（又は、このウェイト付きメッシュから抽出したメッシュ）に対して、入力画像に描かれている（又は写っている）人物等のテクスチャを重畳させることで、レンダリング画像を生成する。
【０１２８】
画像修正部５７０は、レンダリング部５６０により生成されたレンダリング画像に対して所定の修正を行って、出力画像を生成する。ここで、所定の修正は、例えば、インペインティング（inpainting）等であり、画素の補間や余計な画素の削除等が挙げられる。なお、画像修正部５７０は、例えば、ニューラルネットワークにより実現される。以降では、画像修正部５７０を実現するニューラルネットワークを「第７のニューラルネットワーク」とも表す。第７のニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク等を用いることができる。
【０１２９】
なお、画像生成処理部５００に含まれる機能部の構成は一例であって、他の構成であっても良い。例えば、パーツ画像生成部５１０とウェイト画像生成部５２０とが１つの機能部（例えば、パーツ単位ウェイト画像生成部）であっても良い。この場合、パーツ単位ウェイト画像生成部は、パーツ単位ウェイト画像生成器として機能するニューラルネットワークにより実現され、外見情報を入力として、パーツ毎のウェイト画像を生成する。
【０１３０】
＜画像生成処理＞
次に、外見情報とポーズ指示情報とを入力として、フレーム毎に、出力画像（フレーム画像）を生成及び出力する場合について、図１７を参照しながら説明する。図１７は、第四の実施形態に係る画像生成処理の一例を示すフローチャートである。
【０１３１】
ステップＳ５０１：画像生成処理部５００は、ユーザ端末２０から送信された外見情報及びポーズ指示情報を入力する。なお、ユーザは、ユーザ端末２０を用いて、例えば、Ｗｅｂブラウザや所定のアプリケーション等によって表示された画面上から外見情報を指定することで、当該外見情報を画像生成装置１０に送信することができる。また、ユーザは、ユーザ端末２０を用いて、例えば、現実の俳優等の動作を撮影した動画を指定等することで、当該ポーズ指示情報を画像生成装置１０に送信することができる。なお、ポーズ指示情報は、例えば、モーションキャプチャ等から取得した現実の俳優等の動きを示す情報であっても良い。
【０１３２】
ステップＳ５０２：パーツ画像生成部５１０は、入力画像を入力として、複数のパーツ画像を生成する。ここで、パーツ画像の生成について、図１８を参照しながら説明する。図１８は、パーツ画像の生成の一例を説明するための図である。
【０１３３】
図１８に示すように、パーツ画像生成部５１０は、イラストやマンガ等の人物が描かれた入力画像を入力として、当該人物の複数のパーツの各々を表す複数のパーツ画像を生成する。例えば、パーツ画像生成部５１０は、人物の顔部分を表すパーツ画像、胴体の上部部分を表すパーツ画像、胴体の下部部分を表すパーツ画像、左腕の前腕部分を表すパーツ画像、左腕の上腕部分を表すパーツ画像、右腕の前腕部分を表すパーツ画像、右腕の上腕部分を表すパーツ画像、左足の大腿部分を表すパーツ画像、左足の下腿部分を表すパーツ画像、右足の大腿部分を表すパーツ画像、右足の下腿部分を表すパーツ画像等を生成する。なお、これらのパーツ画像は一例であって、パーツ画像生成部５１０は、予め決められた任意のパーツを表すパーツ画像を生成することができる。
【０１３４】
ステップＳ５０３：次に、メッシュ生成部５３０は、上記のステップＳ５０２で生成したパーツ画像を入力として、これらのパーツ画像からメッシュを生成する。ここで、メッシュの生成について、図１９を参照しながら説明する。図１９は、メッシュの生成の一例を説明するための図である。
【０１３５】
図１９に示すように、メッシュ生成部５３０は、各パーツ画像を入力として、入力画像に描かれている人物全体のメッシュを生成する。ここで、メッシュ生成部５３０は、例えば、パーツ画像からパーツ毎のメッシュを定義した上で、これらパーツ毎のメッシュを結合することで、人物全体のメッシュを生成すれば良い。なお、以降では、メッシュとは、人物全体のメッシュのことを表す。
【０１３６】
ステップＳ５０４：ウェイト画像生成部５２０は、入力画像を入力として、複数のウェイト画像を生成する。ここで、ウェイト画像の生成について、図２０を参照しながら説明する。図２０は、ウェイト画像の生成の一例を説明するための図である。
【０１３７】
図２０に示すように、ウェイト画像生成部５２０は、入力画像を入力として、各ボーンに関するウェイト画像を生成する。例えば、各ボーンを一意に識別する情報をボーンＩＤとした場合、ボーンＩＤ「ｂｏｎｅ００１」のボーンに関するウェイト画像、ボーンＩＤ「ｂｏｎｅ００２」のボーンに関するウェイト画像、ボーンＩＤ「ｂｏｎｅ００３」のボーンに関するウェイト画像等を生成する。なお、図２０に示す例では、当該ボーンに関するウェイトの範囲以外を黒色としたウェイト画像を生成した場合を示している。
【０１３８】
なお、上記のステップＳ５０２〜ステップＳ５０３の処理と、上記のステップＳ５０４の処理とは順不同である。すなわち、画像生成処理部５００は、上記のステップＳ５０４の処理を行った後に、上記のステップＳ５０２〜ステップＳ５０３の処理を行っても良い。又は、画像生成処理部５００は、上記のステップＳ５０２〜ステップＳ５０３の処理と、上記のステップＳ５０４の処理とを並列に行っても良い。
【０１３９】
ステップＳ５０５：割当部５４０は、上記のステップＳ５０３で生成したメッシュと、上記のステップＳ５０４で生成したウェイト画像とを入力として、ウェイト付きメッシュを生成する。ここで、割当部５４０により生成されたウェイト付きメッシュは、例えば、補助記憶装置１８等の記憶装置に格納される。
【０１４０】
なお、上述したように、メッシュに含まれる１つの頂点に対して複数のウェイト画像が対応することが有り得る。この場合、当該頂点に対して、複数のウェイトが割り当てられる。例えば、或る頂点に対して、ボーンＩＤ「ｂｏｎｅ１００」のウェイト画像が表すウェイトと、ボーンＩＤ「ｂｏｎｅ１０１」のウェイト画像が表すウェイトとが割り当てられる場合が有り得る。
【０１４１】
ステップＳ５０６：次に、変換部５５０は、ウェイト付きメッシュと、ポーズ指示情報とを入力として、ウェイト付きメッシュが表すポーズが、ポーズ指示情報が示すターゲットポーズとなるように、当該ウェイト付きメッシュを変換する。これにより、ウェイト付きメッシュが表すポーズがターゲットポーズに変換される。なお、変換前のウェイト付きメッシュは、変換後のウェイト付きメッシュで上書きされる。
【０１４２】
ステップＳ５０７：次に、レンダリング部５６０は、上記のステップＳ５０６で変換したウェイト付きメッシュ（又は、このウェイト付きメッシュから抽出したメッシュ）をレンダリングして、レンダリング画像を生成する。すなわち、レンダリング部５６０は、例えば、ウェイト付きメッシュ（又は、このウェイト付きメッシュから抽出したメッシュ）に対して、入力画像に描かれている（又は写っている）人物等のテクスチャを重畳させることで、レンダリング画像を生成する。これにより、入力画像に描かれている（又は写っている）人物等のポーズがターゲットポーズとなったレンダリング画像が生成される。
【０１４３】
ステップＳ５０８：画像修正部５７０は、上記のステップＳ５０７で生成したレンダリング画像に対して所定の修正を行って、出力画像を生成する。なお、本ステップの処理は、必ずしも行われなくても良い。この場合、上記のステップＳ５０７で生成したレンダリング画像をそのまま出力画像とすれば良い。ただし、レンダリング画像に対して、例えば、インペインティング等の所定の修正を行うことで、より自然な出力画像を得ることができる。
【０１４４】
ステップＳ５０９：画像生成処理部５００は、上記のステップＳ５０８で生成した出力画像をユーザ端末２０に出力（送信）する。ここで、出力画像はｎフレーム目の出力画像であるものとする。この場合、ユーザ端末２０には、ｎフレーム目の出力画像が表示される。
【０１４５】
ステップＳ５１０：次に、画像生成処理部５００は、次のポーズ指示情報（すなわち、ｎ＋１フレーム目のポーズ指示情報）が入力されたか否かを判定する。次のポーズ指示情報が入力されなかった場合、画像生成処理部５００は、画像生成処理を終了する。一方で、次のポーズ指示情報が入力された場合、画像生成処理部５００は、ステップＳ５０６の処理に戻る。これにより、上記のステップＳ５０６〜ステップＳ５０９により、ｎ＋１フレーム目のポーズ指示情報を用いてウェイト付きメッシュが変換された上で、ｎ＋１フレーム目の出力画像がユーザ端末２０に出力される。したがって、上記のステップＳ５０６〜ステップＳ５０９がフレーム毎に繰り返し実行されることで、ユーザ端末２０には、各フレームの出力画像が動画として表示される。
【０１４６】
以上により、本実施形態に係る画像生成装置１０は、出力画像として各フレームのフレーム画像を生成することができる。しかも、このとき、本実施形態に係る画像生成装置１０は、ニューラルネットワークを用いて、人物等に定義されたメッシュの各頂点に対して、各ボーンのウェイトを設定することができる。
【０１４７】
これにより、本実施形態に係る画像生成装置１０によれば、効率的に適切なスキニングを行うことができる。したがって、本実施形態に係る画像生成装置１０が出力する各フレームの出力画像は、動画として、自然で適切な動きを表現することができるようになる。
【０１４８】
＜まとめ＞
以上のように、各実施形態に係る画像生成装置１０は、外見情報とポーズ指示情報とを入力として、当該外見情報が表す人物のポーズを、当該ポーズ指示情報が表すターゲットポーズとした出力画像を生成することができる。これにより、各実施形態に係る画像生成装置１０では、マンガやイラスト等のコンテンツを容易に作成することができるようになる。特に、各実施形態に係る画像生成装置１０では、様々なポーズの様々な人物の出力画像を得ることができるため、例えば、マンガやイラスト等における、いわゆるモブキャラクターを容易に作成することができるようになる。
【０１４９】
また、画像生成装置１０により生成された出力画像は、マンガやイラスト等のコンテンツだけでなく、例えば、ゲーム内に登場するキャラクターやビデオ通話として表示されるキャラクター等のコンテンツにも適用することができる。
【０１５０】
なお、上述した第１のニューラルネットワーク〜第７のニューラルネットワークは、それぞれ複数のレイヤで構成されていても良い。
【０１５１】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更、各実施形態の組み合わせ等が可能である。
【符号の説明】
【０１５２】
１        画像生成システム
１０      画像生成装置
２０      ユーザ端末
１００    画像生成処理部
１１０    外見特徴ベクトル生成部
１２０    ポーズ特徴ベクトル生成部
１３０    画像生成部
【図１】
2019204476.tif 000003
【図２】
2019204476.tif 000004
【図３】
2019204476.tif 000005
【図４】
2019204476.tif 000006
【図５】
2019204476.tif 000007
【図６】
2019204476.tif 000008
【図７】
2019204476.tif 000009
【図８】
2019204476.tif 000010
【図９】
2019204476.tif 000011
【図１０】
2019204476.tif 000012
【図１１】
2019204476.tif 000013
【図１２】
2019204476.tif 000014
【図１３】
2019204476.tif 000015
【図１４】
2019204476.tif 000016
【図１５】
2019204476.tif 000017
【図１６】
2019204476.tif 000018
【図１７】
2019204476.tif 000019
【図１８】
2019204476.tif 000020
【図１９】
2019204476.tif 000021
【図２０】
2019204476.tif 000022