(57)【要約】【課題】モーションの転写精度を向上できるモーション生成装置、モーション生成方法、及びプログラムを提供すること。【解決手段】転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を受け付ける受付部と、受付部が受け付けた転写元のスケルトンモデルを示す情報を入力情報として、入力情報に関連付けられる転写後のスケルトンモデルを示す情報を教師データとして、教師あり学習する学習部と、学習部が教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を記憶する記憶部とを備え、転写元のスケルトンモデルを示す情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、転写後のスケルトンモデルを示す情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む。【選択図】図４
2020113116.tif 000002
【特許請求の範囲】
【請求項１】
転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を受け付ける受付部と、
前記受付部が受け付けた前記転写元のスケルトンモデルを示す情報を入力情報として、前記入力情報に関連付けられる前記転写後のスケルトンモデルを示す情報を教師データとして、教師あり学習する学習部と、
前記学習部が教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を記憶する記憶部と
を備え、
転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、
転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、モーション生成装置。
【請求項２】
前記学習部は、時刻ｔにおける前記転写元のスケルトンモデルを示す情報をＢ（ｔ）とし、前記転写後のスケルトンモデルを示す情報をＡ（ｔ）とした場合に、Ａ（ｔ）と、Ｂ（ｔ）とに基づく値を教師データとして教師あり学習する、請求項１に記載のモーション生成装置。
【請求項３】
前記学習部は、Ｂ（ｔ）を入力情報として、Ａ（ｔ）−Ｂ（ｔ）を教師データとして教師あり学習する、請求項２に記載のモーション生成装置。
【請求項４】
前記学習部は、Ｂ（ｔ）−Ｂ（ｔ−１）を入力情報として、Ａ（ｔ）−Ｂ（ｔ−１）を教師データとして、教師あり学習する、請求項２に記載のモーション生成装置。
【請求項５】
前記学習部は、Ｂ（ｔ）−Ｂ（ｔ−１）を入力情報として、Ａ（ｔ）−Ａ（ｔ−１）を教師データとして、教師あり学習する、請求項２に記載のモーション生成装置。
【請求項６】
前記学習部は、スケルトンモデルにおける少なくとも一つのノードに重み付きの誤差最小化を行った結果を、学習する、請求項１から請求項５のいずれか一項に記載のモーション生成装置。
【請求項７】
転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを受け付ける受付部と、
転写元のスケルトンモデルを示す情報を入力情報として、前記入力情報に関連付けられる前記転写後のスケルトンモデルを示す情報を教師データとして教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を使用して、前記受付部が受け付けた転写元のスケルトンモデルのモーションを示す前記情報と、転写元のスケルトンモデルの体型を示す前記情報と、転写後のスケルトンモデルの体型を示す前記情報とに基づいて、転写後のスケルトンモデルのモーションを示す情報を生成する生成部と
を備え、
転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、
転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、モーション生成装置。
【請求項８】
転写元のスケルトンモデルのモーションを示す前記情報に含まれるノード数と、転写元のスケルトンモデルの体型を示す前記情報に含まれるノード数と、転写後のスケルトンモデルの体型を示す前記情報に含まれるノード数とが、相互に一致している、請求項１から請求項７のいずれか一項に記載のモーション生成装置。
【請求項９】
転写元のスケルトンモデルのモーションを示す前記情報に含まれるノード数と、転写元のスケルトンモデルの体型を示す前記情報に含まれるノード数とが一致し、転写後のスケルトンモデルの体型を示す前記情報に含まれるノード数と転写後のスケルトンモデルのモーションを示す前記情報に含まれるノード数とが一致している、請求項１から請求項７のいずれか一項に記載のモーション生成装置。
【請求項１０】
転写元のスケルトンモデルのモーションで、つま先と足裏とのいずれか一方又は両方が接地しているタイミングでは、転写後のスケルトンモデルのモーションでもつま先と足裏とのいずれか一方又は両方が接地している、請求項７から請求項９のいずれか一項に記載のモーション生成装置。
【請求項１１】
転写元のスケルトンモデルは、モーションキャプチャによって得られる、請求項７から請求項１０のいずれか一項に記載のモーション生成装置。
【請求項１２】
転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を受け付けるステップと、
前記受け付けるステップで受け付けた転写元のスケルトンモデルを示す前記情報を入力情報として、前記入力情報に関連付けられる転写後のスケルトンモデルを示す前記情報を教師データとして、教師あり学習するステップと、
前記教師あり学習するステップで教師あり学習することによって得られる転写後のスケルトンの推定結果を記憶するステップと
を有し、
転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、
転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、モーション生成装置が実行するモーション生成方法。
【請求項１３】
転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを受け付けるステップと、
転写元のスケルトンモデルを示す情報を入力情報として、前記入力情報に関連付けられる転写後のスケルトンモデルを示す前記情報を教師データとして教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を使用して、前記受け付けるステップで受け付けた転写元のスケルトンモデルのモーションを示す前記情報と、転写元のスケルトンモデルの体型を示す前記情報と、転写後のスケルトンモデルの体型を示す前記情報とに基づいて、転写後のスケルトンモデルのモーションを示す情報を生成するステップと
を有し、
転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、
転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、モーション生成装置が実行するモーション生成方法。
【請求項１４】
コンピュータに、
転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を受け付けるステップと、
前記受け付けるステップで受け付けた前記転写元のスケルトンモデルを示す情報を入力情報として、前記入力情報に関連付けられる前記転写後のスケルトンモデルを示す情報を教師データとして、教師あり学習するステップと、
前記教師あり学習するステップで教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を記憶するステップと
を実行させ、
転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、
転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、プログラム。
【請求項１５】
コンピュータに、
転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを受け付けるステップと、
転写元のスケルトンモデルを示す情報を入力情報として、前記入力情報に関連付けられる前記転写後のスケルトンモデルを示す情報を教師データとして教師あり学習することによって得られる転写後スケルトンモデルの推定結果を使用して、前記受け付けるステップで受け付けた転写元のスケルトンモデルのモーションを示す情前記報と、転写元のスケルトンモデルの体型を示す前記情報と、転写後のスケルトンモデルの体型を示す前記情報とに基づいて、転写後のスケルトンモデルのモーションを示す情報を生成するステップと
を実行させ、
転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、
転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、モーション生成装置、モーション生成方法、及びプログラムに関する。
【背景技術】
【０００２】
コンピュータグラフィックス(CG: computer graphics)分野において、キャラクターアニメーションを生成するために、実世界の人間などから計測したモーションキャプチャデータを、計測対象の人間とは異なる姿形をしたキャラクタに適用するモーション転写（リターゲティング）という方法が知られている（例えば、非特許文献１参照）。
この方法は、実物をもとにアニメーションを生成するため、実世界のものと比べても遜色のない自然なモーションを生成できる。
【０００３】
しかし、この方法は、転写対象の体型情報が、転写元の体型情報と大きく異なる場合に、リターゲティングすることによって得られたキャラクターアニメーションの体が床にめり込む、地面に足がつかないなどの不具合が生じる場合がある。不具合が生じた場合には、アーティストが、ソフトウェアを利用して、体が床にめり込まないように、地面に足がつくように、時間をかけて手作業で修正する。
リターゲティングすることによって得られたキャラクターアニメーションの不具合に関して、転写元と、転写対象のモーションおよび体型データの集合とに基づいて、深層ニューラルネットワークを学習することで、自動でモーションの転写を行う技術が知られている（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ruben Villegas, Jimei Yang, Duygu Ceylan, Honglak Lee; Neural Kinematic Networks for Unsupervised Motion Retargetting, The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018, pp. 8639-8648
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記従来技術の問題点に鑑みてなされたものであり、モーションの転写精度を向上できるモーション生成装置、モーション生成方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施形態は、転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を受け付ける受付部と、前記受付部が受け付けた前記転写元のスケルトンモデルを示す情報を入力情報として、前記入力情報に関連付けられる前記転写後のスケルトンモデルを示す情報を教師データとして、教師あり学習する学習部と、前記学習部が教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を記憶する記憶部とを備え、転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、モーション生成装置である。
本発明の一実施形態は、前述のモーション生成装置において、前記学習部は、時刻ｔにおける前記転写元のスケルトンモデルを示す情報をＢ（ｔ）とし、前記転写後のスケルトンモデルを示す情報をＡ（ｔ）とした場合に、Ａ（ｔ）と、Ｂ（ｔ）とに基づく値を教師データとして教師あり学習する。
本発明の一実施形態は、前述のモーション生成装置において、前記学習部は、Ｂ（ｔ）を入力情報として、Ａ（ｔ）−Ｂ（ｔ）を教師データとして教師あり学習する。
本発明の一実施形態は、前述のモーション生成装置において、前記学習部は、Ｂ（ｔ）−Ｂ（ｔ−１）を入力情報として、Ａ（ｔ）−Ｂ（ｔ−１）を教師データとして、教師あり学習する。
本発明の一実施形態は、前述のモーション生成装置において、前記学習部は、Ｂ（ｔ）−Ｂ（ｔ−１）を入力情報として、Ａ（ｔ）−Ａ（ｔ−１）を教師データとして、教師あり学習する。
本発明の一実施形態は、前述のモーション生成装置において、前記学習部は、スケルトンモデルにおける少なくとも一つのノードに重み付きの誤差最小化を行った結果を、学習する。
【０００７】
本発明の一実施形態は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを受け付ける受付部と、転写元のスケルトンモデルを示す情報を入力情報として、前記入力情報に関連付けられる前記転写後のスケルトンモデルを示す情報を教師データとして教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を使用して、前記受付部が受け付けた転写元のスケルトンモデルのモーションを示す前記情報と、転写元のスケルトンモデルの体型を示す前記情報と、転写後のスケルトンモデルの体型を示す前記情報とに基づいて、転写後のスケルトンモデルのモーションを示す情報を生成する生成部とを備え、転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、モーション生成装置である。
本発明の一実施形態は、前述のモーション生成装置において、転写元のスケルトンモデルのモーションを示す前記情報に含まれるノード数と、転写元のスケルトンモデルの体型を示す前記情報に含まれるノード数と、転写後のスケルトンモデルの体型を示す前記情報に含まれるノード数とが、相互に一致している。
本発明の一実施形態は、前述のモーション生成装置において、転写元のスケルトンモデルのモーションを示す前記情報に含まれるノード数と、転写元のスケルトンモデルの体型を示す前記情報に含まれるノード数とが一致し、転写後のスケルトンモデルの体型を示す前記情報に含まれるノード数と転写後のスケルトンモデルのモーションを示す前記情報に含まれるノード数とが一致している。
本発明の一実施形態は、前述のモーション生成装置において、転写元のスケルトンモデルのモーションで、つま先と足裏とのいずれか一方又は両方が接地しているタイミングでは、転写後のスケルトンモデルのモーションでもつま先と足裏とのいずれか一方又は両方が接地している。
本発明の一実施形態は、前述のモーション生成装置において、転写元のスケルトンモデルは、モーションキャプチャによって得られる。
【０００８】
本発明の一実施形態は、転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を受け付けるステップと、前記受け付けるステップで受け付けた転写元のスケルトンモデルを示す前記情報を入力情報として、前記入力情報に関連付けられる転写後のスケルトンモデルを示す前記情報を教師データとして、教師あり学習するステップと、前記教師あり学習するステップで教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を記憶するステップとを有し、転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、モーション生成装置が実行するモーション生成方法である。
【０００９】
本発明の一実施形態は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを受け付けるステップと、転写元のスケルトンモデルを示す情報を入力情報として、前記入力情報に関連付けられる転写後のスケルトンモデルを示す前記情報を教師データとして教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を使用して、前記受け付けるステップで受け付けた転写元のスケルトンモデルのモーションを示す前記情報と、転写元のスケルトンモデルの体型を示す前記情報と、転写後のスケルトンモデルの体型を示す前記情報とに基づいて、転写後のスケルトンモデルのモーションを示す情報を生成するステップとを有し、転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、モーション生成装置が実行するモーション生成方法である。
【００１０】
本発明の一実施形態は、コンピュータに、転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を受け付けるステップと、前記受け付けるステップで受け付けた前記転写元のスケルトンモデルを示す情報を入力情報として、前記入力情報に関連付けられる前記転写後のスケルトンモデルを示す情報を教師データとして、教師あり学習するステップと、前記教師あり学習するステップで教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を記憶するステップとを実行させ、転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、プログラムである。
【００１１】
本発明の一実施形態は、コンピュータに、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを受け付けるステップと、転写元のスケルトンモデルを示す情報を入力情報として、前記入力情報に関連付けられる前記転写後のスケルトンモデルを示す情報を教師データとして教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を使用して、前記受け付けるステップで受け付けた転写元のスケルトンモデルのモーションを示す情前記報と、転写元のスケルトンモデルの体型を示す前記情報と、転写後のスケルトンモデルの体型を示す前記情報とに基づいて、転写後のスケルトンモデルのモーションを示す情報を生成するステップとを実行させ、転写元のスケルトンモデルを示す前記情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、転写後のスケルトンモデルを示す前記情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、プログラムである。
【発明の効果】
【００１２】
本発明の実施形態によれば、モーションの転写精度を向上できるモーション生成装置、モーション生成方法、及びプログラムを提供できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態のモーション生成システムの一例を示す図である。
【図２】キャラクタのスケルトンの一例を示す図である。
【図３】転写元のスケルトンモデルのモーションの画像と、転写後のスケルトンモデルのモーションの画像とを示す図である。
【図４】本発明の実施形態のモーション生成装置の一例を示すブロック図である。
【図５】モーション・体型情報ＤＢの一例を示す図である。
【図６】モーション情報ＤＢの一例を示す図である。
【図７】体型情報ＤＢの一例を示す図である。
【図８】本発明の実施形態のモーション生成システムの動作の例１を示すフローチャートである。
【図９】本発明の実施形態のモーション生成システムの動作の例２を示すフローチャートである。
【図１０】本発明の実施形態のモーション生成システムの動作の例３を示すフローチャートである。
【図１１】本発明の実施形態の変形例のモーション生成システムの一例を示す図である。
【図１２】本発明の実施形態の変形例の学習装置の一例を示すブロック図である。
【図１３】本発明の実施形態の変形例の生成装置の一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
次に、本実施形態のモーション生成装置、モーション生成方法、及びプログラムを、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
また、本願でいう「ＸＸに基づいて」とは、「少なくともＸＸに基づく」ことを意味し、ＸＸに加えて別の要素に基づく場合も含む。また、「ＸＸに基づいて」とは、ＸＸを直接に用いる場合に限定されず、ＸＸに対して演算や加工が行われたものに基づく場合も含む。「ＸＸ」は、任意の要素（例えば、任意の情報）である。
【００１５】
（実施形態）
（モーション生成システム）
本発明の実施形態のモーション生成システムを、図面を参照して説明する。
図１は、本発明の実施形態のモーション生成システムの一例を示す図である。本実施形態のモーション生成システム１は、端末装置１０と、モーション生成装置１００とを含む。これらの装置は、ネットワーク５０を介して互いに接続される。ネットワーク５０は、例えば、無線基地局、Ｗｉ−Ｆｉアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。なお、ネットワーク５０は、一部にローカルなネットワークを含んでもよい。
【００１６】
端末装置１０は、ユーザによって使用される装置である。端末装置１０は、例えば、スマートフォンなどの携帯電話、タブレット端末、パーソナルコンピュータなどの装置である。端末装置１０は、転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報（以下「訓練情報」という）を、モーション生成装置１００に複数送信する。以下、複数の訓練情報を、訓練情報集合という場合もある。
ここで、転写元のスケルトンモデルを示す情報には、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とが含まれる。転写後のスケルトンモデルを示す情報には、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とが含まれる。
本実施形態では、スケルトン（骨格構造）で、キャラクタの動きが表される。
図２は、キャラクタのスケルトンの一例を示す図である。図２に示されるように、キャラクタのスケルトンは、丸で示される複数の関節（ノード）と、線で示される複数の骨（ボーン）とを含む。複数のノードのうち、腰ノードｎｐがルート（ルートノード）とされる。
複数のノードの各々は、局所パラメータを有する。局所パラメータは、互いに直接接続された２ノードのうち、親ノードが定義する局所座標系を基準として、子のノードが定義する局所座標系のパラメータ(回転量と平行移動量)である。フォワードキネマティクスは、各ノードの局所座標系のパラメータをルートノードから順に累積することで、大域的な(ワールド座標の)回転量や平行移動量を求める計算をいう。局所座標系の一例は、３次元回転量、平行移動量（ｘ軸方向平行移動量、ｙ軸方向平行移動量、ｚ軸方向平行移動量）である。３次元回転量は、オイラー角、つまりｘ軸と、ｙ軸と、ｚ軸との各軸まわりの回転角度で表現される。本実施形態では、複数のノードの各々が、３次元回転量を示す情報と、平行移動量を示す情報とを有する場合について説明を続ける。
【００１７】
図３は、転写元のスケルトンモデルのモーションの画像と、転写後のスケルトンモデルのモーションの画像とを示す図である。図３には、転写元と転写後のそれぞれについて、複数フレーム（１００フレーム、１３０フレーム、２２０フレーム、２３０フレーム、２４０フレーム）のスケルトンのスクリーンショットを並べた画像が示される。
転写元のスケルトンモデルのモーションを示す情報は、転写元のスケルトンモデルのモーションを定義する情報と、転写元のスケルトンモデルの体型を定義する情報とが含まれる。転写元のスケルトンモデルの一例は、役者であり、モーションの一例は、ダンスをしているときの動きである。転写元のスケルトンモデルのモーションを定義する情報は、その転写元のスケルトンモデルに含まれる複数のノードの各々に関する情報を含む。具体的には、複数のノードの各々に関する情報は、３次元回転量と、平行移動量とである。複数のノードの各々に関する情報は、転写元のスケルトンモデルのモーションをモーションキャプチャすることによって得られる。
同様に、転写後のスケルトンモデルのモーションを示す情報は、転写後のスケルトンモデルのモーションを定義する情報と、転写後のスケルトンモデルの体型を定義する情報とが含まれる。転写後のスケルトンモデルの一例は、ＣＧキャラクタである。モーションの一例は、ダンスをしているときの動きであり、転写元のスケルトンモデルのモーションで、つま先と足裏とのいずれか一方又は両方が接地しているタイミングでは、転写後のスケルトンモデルのモーションでもつま先と足裏とのいずれか一方又は両方が接地している状態のモーションを含む。具体的には、転写後のスケルトンモデルの一例は、両足について、つま先と足裏とのいずれか一方又は両方が接地しているタイミングでは、転写後のスケルトンモデルのモーションでもつま先と足裏とのいずれか一方又は両方が接地している状態のモーションを含む。つまり、転写後のスケルトンモデルの一例は、両足について、つま先と足裏とのいずれか一方又は両方が接地していないタイミングでは、転写後のスケルトンモデルのモーションでもつま先と足裏とのいずれか一方又は両方が接地していない状態のモーションを含む。また、転写後のスケルトンモデルの一例は、右足について、つま先と足裏とのいずれか一方又は両方が接地しているタイミングでは、転写後のスケルトンモデルのモーションでもつま先と足裏とのいずれか一方又は両方が接地している状態のモーションを含む。また、転写後のスケルトンモデルの一例は、左足について、つま先と足裏とのいずれか一方又は両方が接地しているタイミングでは、転写後のスケルトンモデルのモーションでもつま先と足裏とのいずれか一方又は両方が接地している状態のモーションを含む。
転写後のスケルトンモデルの体型におけるモーションを定義する情報は、その転写後のスケルトンモデルに含まれる複数のノードの各々に関する情報を含む。具体的には、複数のノードの各々に関する情報は、３次元回転量と、平行移動量とである。複数のノードの各々に関する情報は、転写後のスケルトンモデルのモーションをモーションキャプチャすることによって得られる。
【００１８】
転写元のスケルトンモデルの体型を示す情報は、転写元のスケルトンモデルの体型を定義する情報が含まれる。転写元のスケルトンモデルの体型を定義する情報は、その転写元のスケルトンモデルに含まれる各ボーンの長さ（ボーン長）を示す情報を含む。各ボーン長を示す情報は、転写元のスケルトンモデルのモーションが適用される対象をモーションキャプチャすることによって得られる。
同様に、転写後のスケルトンモデルの体型を示す情報は、転写後のスケルトンモデルの体型を定義する情報が含まれる。転写後のスケルトンモデルの体型を定義する情報は、その転写後のスケルトンモデルに含まれる各ボーンのボーン長を示す情報を含む。各ボーン長を示す情報は、転写後のスケルトンモデルをアーティストが手作業で作成することによって得られる。
【００１９】
また、端末装置１０は、転写元のスケルトンモデルを示す情報（転写元のスケルトンモデルのモーションを示す情報、転写元のスケルトンモデルの体型を示す情報）と、転写後のスケルトンモデルの体型を示す情報とを含み、転写後のスケルトンモデルのモーションを示す情報を要求ための情報（以下「モーション情報要求」という）を、モーション生成装置１００に送信する。
また、端末装置１０は、モーション生成装置１００に送信したモーション情報要求に対して、モーション生成装置１００が送信し、且つ転写後のスケルトンモデルのモーションを示す情報を含むモーション情報応答を受信し、受信したモーション情報応答を処理することによって、転写後のスケルトンモデルのモーションを示す情報を取得する。
モーション生成装置１００は、端末装置１０が送信した訓練情報を複数受信し、受信した複数の訓練情報の各々に含まれる転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を取得する。モーション生成装置１００は、取得した転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けて記憶する。
モーション生成装置１００は、記憶した転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた複数の情報に基づいて、転写元のスケルトンモデルのモーションを、転写元のスケルトンモデルの体型とは異なる体型の転写後のスケルトンモデルに転写するための教師あり学習を行う。
モーション生成装置１００は、記憶した転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を複数取得し、取得した転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた複数の情報を受け付ける。
【００２０】
モーション生成装置１００は、受け付けた転写元のスケルトンモデルを示す複数の情報の各々に含まれる転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを、教師あり学習アルゴリズムに適用できるデータ形式に変換する。同様に、モーション生成装置１００は、受け付けた転写後のスケルトンモデルを示す複数の情報の各々に含まれる転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを、教師あり学習アルゴリズムに適用できるデータ形式に変換する。
モーション生成装置１００は、転写元のスケルトンモデルのモーションを示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報である２階テンソルＸを生成する。同様に、モーション生成装置１００は、転写後のスケルトンモデルのモーションを示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写後のスケルトンモデルの体型を示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写後のスケルトンモデルの集約情報である２階テンソルＹを生成する。
【００２１】
モーション生成装置１００は、転写元のスケルトンモデルの集約情報である２階テンソルＸに対して非線形変換を適用することによって、符号化する。テンソルの符号化には、畳み込みニューラルネットワーク(CNN: Convolutional Neural Network)、再帰型ニューラルネットワーク(RNN: Recurrent Neural Networks)などを適用できる。モーション生成装置１００は、最初の符号化には、符号化器のモデルパラメータＷとして正規乱数などで初期化した値を利用する。モデルパラメータＷは、ネットワークモデルのパラメータである。転写元のスケルトンモデルの集約情報である２階テンソルＸを符号化した結果を、転写元のスケルトンモデルの集約情報を符号化した結果である２階テンソルＸａと記載する。
モーション生成装置１００は、転写元のスケルトンモデルの集約情報である２階テンソルＸを符号化した結果である２階テンソルＸａから、転写後のスケルトンモデルの集約情報を推定する。その推定には、ＣＮＮ、ＲＮＮなどを適用できる。モーション生成装置１００は、転写後のスケルトンモデルの集約情報の推定結果である２階テンソルＹｓと、転写後のスケルトンモデルの集約情報である２階テンソルＹとを比較する。モーション生成装置１００は、比較結果に基づいて、モデルパラメータＷを更新し、モデルパラメータＷの更新結果を記憶する。モーション生成装置１００は、最初以降の繰り返しの学習では、更新したモデルパラメータＷを利用する。
【００２２】
モーション生成装置１００は、記憶した転写元のスケルトンモデルを示す複数の情報の各々に基づいて、転写元のスケルトンモデルの集約情報である２階テンソルＸを生成する。モーション生成装置１００は、生成した転写元のスケルトンモデルの集約情報である２階テンソルＸに基づいて、複数の訓練情報の各々について、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを生成する。ここで、Ｎは、転写元のスケルトンモデルについてのノード数×回転量などの次元として計算される値であり、Ｔはフレーム数である。ここで、フレーム数は、動画において、単位時間あたりに処理させる静止画像数、コマ数である。
モーション生成装置１００は、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸの各々を符号化することによって、転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａを生成する。ここで、Ｎａは、転写元のスケルトンモデルの集約情報を符号化した結果についてのノード数×回転量などの次元として計算される値であり、Ｎａ≦Ｎである。Ｔａ転写元のスケルトンモデルの集約情報を符号化した結果についてのフレーム数であり、Ｔａ≦Ｔである。モーション生成装置１００は、生成した転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａの各々について、転写後のスケルトンモデルの集約情報の推定結果Ｙｓを生成する。
【００２３】
モーション生成装置１００は、記憶した転写後のスケルトンモデルを示す複数の情報の各々に基づいて、転写後のスケルトンモデルの集約情報である２階テンソルＹを生成する。モーション生成装置１００は、生成した転写後のスケルトンモデルの集約情報である２階テンソルＹに基づいて、複数の訓練情報の各々について、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹを生成する。
モーション生成装置１００は、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを、誤差関数によって比較する。ここで、Ｍは、転写後のスケルトンモデルについてのノード数×回転量などの次元として計算される値である。モーション生成装置１００は、誤差関数に基づいて導出されるモデルパラメータＷを記憶する。
モーション生成装置１００は、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとの誤差関数が収束している場合には処理を終了し、収束していない場合には継続する。
【００２４】
また、モーション生成装置１００は、端末装置１０が送信したモーション情報要求を受信し、受信したモーション情報要求に含まれる転写元のスケルトンモデルを示す情報（転写元のスケルトンモデルのモーションを示す情報、転写元のスケルトンモデルの体型を示す情報）と、転写後のスケルトンモデルの体型を示す情報とを取得する。
モーション生成装置１００は、取得した転写元のスケルトンモデルを示す情報に含まれる転写元のスケルトンモデルのモーションを示す情報と転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを学習済モデルの入力として処理できるデータ形式に変換する。
モーション生成装置１００は、転写元のスケルトンモデルのモーションを示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを生成する。
モーション生成装置１００は、記憶したモデルパラメータＷを取得し、取得したモデルパラメータＷに基づいて、ＣＮＮ、ＲＮＮなどのモデルを構築する。モーション生成装置１００は、構築したモデルに基づいて、生成した転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを符号化する。
さらに、モーション生成装置１００は、構築したモデルに基づいて、転写元のスケルトンモデルの集約情報を符号化した結果である２階テンソルＸａから、転写後のスケルトンモデルの集約情報の推定結果である２階テンソルＹｓを生成する。
モーション生成装置１００は、転写後のスケルトンモデルの集約情報の推定結果である２階テンソルＹｓに基づいて、回転量、平行移動量などの転写後のスケルトンモデルのモーションを示す情報に含まれる情報を取得し、取得した情報を含むモーション情報応答を作成し、作成したモーション情報応答を、端末装置１０に送信する。
【００２５】
（モーション生成装置１００）
図４は、本発明の実施形態のモーション生成装置の一例を示すブロック図である。
モーション生成装置１００は、通信部１０５と、記憶部１１０と、操作部１２０と、情報処理部１３０と、表示部１４０と、各構成要素を図４に示されているように電気的に接続するためのアドレスバスやデータバスなどのバスライン１５０とを備える。
通信部１０５は、通信モジュールによって実現される。通信部１０５は、ネットワーク５０を介して、端末装置１０などの外部の通信装置と通信する。具体的には、通信部１０５は、端末装置１０が送信した訓練情報を複数受信し、受信した複数の訓練情報の各々を、情報処理部１３０へ出力する。
また、通信部１０５は、端末装置１０が送信したモーション情報要求を受信し、受信したモーション情報要求を、情報処理部１３０へ出力する。また、通信部１０５は、情報処理部１３０が出力したモーション情報応答を取得し、取得したモーション情報応答を、端末装置１０へ送信する。
【００２６】
記憶部１１０は、例えば、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。記憶部１１０には、情報処理部１３０により実行されるプログラム１１１と、アプリ１１２と、モーション・体型情報ＤＢ１１３と、モーション情報ＤＢ１１４と、体型情報ＤＢ１１５と、モデルパラメータ１１６とが記憶される。
アプリ１１２は、モーション生成装置１００に、端末装置１０が送信した訓練情報を受信させる。アプリ１１２は、モーション生成装置１００に、受信させた訓練情報に含まれる転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を取得させ、取得させた転写元のスケルトンモデルを示す情報に含まれる転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルを示す情報に含まれる転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を、記憶部１１０のモーション・体型情報ＤＢ１１３に記憶させる。
アプリ１１２は、モーション生成装置１００に、記憶部１１０のモーション・体型情報ＤＢ１１３に記憶させた転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を複数取得させ、取得させた転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を複数受け付けさせる。アプリ１１２は、モーション生成装置１００に、受け付けさせた転写元のスケルトンモデルのモーションを示す複数の情報の各々と、転写元のスケルトンモデルの体型を示す複数の情報の各々と、転写後のスケルトンモデルのモーションを示す複数の情報の各々と、転写後のスケルトンモデルの体型を示す複数の情報との各々とを、教師あり学習アルゴリズムに適用できるデータ形式に変換させる。
【００２７】
アプリ１１２は、モーション生成装置１００に、転写元のスケルトンモデルのモーションを示す複数の情報の各々を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す複数の情報の各々を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報であるＮ×ＴのテンソルＸを生成させる。アプリ１１２は、モーション生成装置１００に、転写後のスケルトンモデルのモーションを示す複数の情報の各々を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写後のスケルトンモデルの体型を示す複数の情報の各々を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写後のスケルトンモデルの集約情報であるＭ×ＴのテンソルＹを生成させる。
アプリ１１２は、モーション生成装置１００に、生成させた転写元のスケルトンモデルの集約情報であるＮ×ＴのテンソルＸを符号化することによって、転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×ＴａのテンソルＸａに変換させる。ここで、アプリ１１２は、最初の符号化には、符号化器のモデルパラメータＷとして正規乱数などで初期化した値を利用させる。アプリ１１２は、モーション生成装置１００に、転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×ＴａのテンソルＸａに基づいて、転写後のスケルトンモデルの集約情報の推定結果であるＭ×ＴのテンソルＹｓを生成させる。
アプリ１１２は、モーション生成装置１００に、転写後のスケルトンモデルの集約情報の推定結果であるＭ×ＴのテンソルＹｓと、転写後のスケルトンモデルの集約情報であるＭ×ＴのテンソルＹとを、誤差関数を使用して比較させる。アプリ１１２は、モーション生成装置１００に、誤差関数に基づいて導出されるモデルパラメータＷを記憶させる。アプリ１１２は、モーション生成装置１００に、転写後のスケルトンモデルの集約情報の推定結果であるＭ×ＴのテンソルＹｓと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとの誤差が収束している場合には処理を終了させ、収束していない場合には継続させる。アプリ１１２は、モーション生成装置１００に、導出させたモデルパラメータＷで更新させ、モデルパラメータＷの更新結果を記憶させる。アプリ１１２は、モーション生成装置１００に、最初以降の繰り返しの学習では、更新したモデルパラメータＷを利用して、符号化させる。
【００２８】
アプリ１１２は、モーション生成装置１００に、端末装置１０が送信したモーション情報要求を受信させる。アプリ１１２は、モーション生成装置１００に、受信させたモーション情報要求に含まれる転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルの体型を示す情報とを取得させる。アプリ１１２は、モーション生成装置１００に、取得させた転写元のスケルトンモデルを示す情報に含まれる転写元のスケルトンモデルのモーションを示す情報と転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを学習済モデルの入力として処理できるデータ形式に変換させる。アプリ１１２は、モーション生成装置１００に、転写元のスケルトンモデルのモーションを示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを生成させる。
アプリ１１２は、モーション生成装置１００に、記憶させたモデルパラメータＷを取得させ、取得させたモデルパラメータＷに基づいて、ＣＮＮ、ＲＮＮなどのモデルを構築させる。アプリ１１２は、モーション生成装置１００に、構築させたモデルに基づいて、生成させた転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを符号化させる。アプリ１１２は、モーション生成装置１００に、構築させたモデルに基づいて、転写元のスケルトンモデルの集約情報を符号化させた結果であるＮａ×Ｔａの２階テンソルＸａから、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓを生成させる。アプリ１１２は、モーション生成装置１００に、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓに基づいて、回転量、平行移動量などの転写後のスケルトンモデルのモーションを示す情報に含まれる情報を取得させる。アプリ１１２は、モーション生成装置１００に、取得させた情報を含むモーション情報応答を作成させ、作成させたモーション情報応答を、端末装置１０に送信させる。
【００２９】
（モーション・体型情報ＤＢ１１３）
図５は、モーション・体型情報ＤＢの一例を示す図である。
モーション・体型情報ＤＢ１１３は、ＩＤと、転写元のスケルトンモデルのモーションを示す情報（転写元モーション情報）と、転写元のスケルトンモデルの体型を示す情報（転写元体型情報）と、転写後のスケルトンモデルのモーションを示す情報（転写後モーション情報）と、転写後のスケルトンモデルの体型を示す情報（以下「転写後体型情報」という）とを関連付けて記憶する。ＩＤの一例は、訓練情報の識別情報である。ただし、ＩＤの単位には特に制約がないものとする。
図５に示される例では、ＩＤ「１」と、転写元モーション情報「モーション情報１」と、転写元体型情報「体型情報１」と、転写後モーション情報「モーション情報２」と、転写後体型情報「体型情報２」とが関連付けて記憶される。また、ＩＤ「２」と、転写元モーション情報「モーション情報３」と、転写元体型情報「体型情報３」と、転写後モーション情報「モーション情報４」と、転写後体型情報「体型情報４」とが関連付けて記憶される。
【００３０】
（モーション情報ＤＢ１１４）
図６は、モーション情報ＤＢの一例を示す図である。モーション情報ＤＢ１１４は、モーション・体型情報ＤＢ１１３に含まれる転写元モーション情報と、転写後モーション情報との詳細が記憶される。具体的には、モーション情報ＤＢ１１４は、モーション・体型情報ＤＢ１１３に含まれるモーション情報１〜モーション情報４の各々の詳細を記憶する。転写元モーション情報と、転写後モーション情報とは、同じフレーム数で、かつ、各フレームで対応が取れている。
前述したように、転写元モーション情報は、転写元のスケルトンモデルのモーションを定義する情報が含まれる。転写元のスケルトンモデルのモーションを定義する情報は、その転写元のスケルトンモデルに含まれる複数のノードの各々に関する情報を含む。具体的には、複数のノードの各々に関する情報は、３次元回転量と、平行移動量とである。
同様に、転写後モーション情報は、転写後のスケルトンモデルのモーションを定義する情報が含まれる。転写後のスケルトンモデルのモーションを定義する情報は、その転写後のスケルトンモデルに含まれる複数のノードの各々に関する情報を含む。具体的には、複数のノードの各々に関する情報は、３次元回転量と、平行移動量とである。
モーション情報ＤＢ１１４は、各ノードについて、フレーム毎に、ｘ軸と、ｙ軸と、ｚ軸との各々のオイラー角の回転量と平行移動量とを保持する。具体的には、フレーム「ｔ＝０」と、ノードＡのｘ回転量「３０」と、ノードＡのｙ回転量「２０」と、ノードＡのｚ回転量「３４」と、ノードＡのｘ平行移動量「１．３」と、ノードＡのｙ平行移動量「５．１」と、ノードＡのｚ平行移動量「１．１」と、ノードＢのｘ回転量「３．１」と、・・・が記憶されている。また、フレーム「ｔ＝１」と、ノードＡのｘ回転量「４０」と、ノードＡのｙ回転量「１２３」と、ノードＡのｚ回転量「１０」と、ノードＡのｘ平行移動量「１．３」と、ノードＡのｙ平行移動量「５．１」と、ノードＡのｚ平行移動量「１．１」と、ノードＢのｘ回転量「３．１」と、・・・が記憶されている。ここで、フレームｔの数Ｔは、任意の正の整数の値をとることができる。図６には、一例として、モーション情報１の詳細が示されるが、実際には、モーション情報２〜モーション情報４の詳細も含まれる。
【００３１】
（体型情報ＤＢ１１５）
図７は、体型情報ＤＢの一例を示す図である。体型情報ＤＢ１１５は、モーション・体型情報ＤＢ１１３に含まれる転写元体型情報と、転写後体型情報との詳細を示す。具体的には、体型情報ＤＢ１１５は、モーション・体型情報ＤＢ１１３に含まれる体型情報１〜体型情報４の各々の詳細を記憶する。転写元体型情報と、転写後体型情報とは、同じフレーム数で、かつ、各フレームで対応が取れている。前述したように、転写元体型情報は、転写元のスケルトンモデルの体型を定義する情報が含まれる。転写元のスケルトンモデルの体型を定義する情報は、その転写元のスケルトンモデルに含まれる各ボーンのボーン長を示す情報を含む。同様に、転写後体型情報は、転写後のスケルトンモデルの体型を定義する情報が含まれる。転写後のスケルトンモデルの体型を定義する情報は、その転写後のスケルトンモデルに含まれる各ボーンのボーン長を示す情報を含む。
体型情報ＤＢ１１５は、各ボーンのボーン長を保持する。具体的には、フレーム「ｔ＝０」と、ノードＡを親に持つボーンのボーン長「２．４」と、ノードＢを親に持つボーンのボーン長「１．２」とが関連付けられ、フレーム「ｔ＝１」と、ノードＡを親に持つボーンのボーン長「２．４」と、ノードＢを親に持つボーンのボーン長「１．３」とが関連付けられている。図７には、一例として、体型情報１の詳細が示されるが、実際には、体型情報２〜体型情報４の詳細も含まれる。
【００３２】
パラメータ１１６は、モデルパラメータＷを記憶する。図４に戻り、説明を続ける。
操作部１２０は、例えば、タッチパネルなどによって構成され、表示部１４０に表示される画面に対するタッチ操作を検出し、タッチ操作の検出結果を、情報処理部１３０へ出力する。
表示部１４０は、例えば、タッチパネルによって構成され、モーション生成装置１００が受信した訓練情報を処理する操作を受け付ける画面を表示する。また、表示部１４０は、モーション生成装置１００が受信したモーション情報要求を処理する操作を受け付ける画面を表示する。
【００３３】
情報処理部１３０の全部または一部は、例えば、ＣＰＵ（Central Processing Unit）などのプロセッサが記憶部１１０に格納されたプログラム１１１と、アプリ１１２とを実行することにより実現される機能部（以下、ソフトウェア機能部と称する）である。なお、情報処理部１３０の全部または一部は、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＦＰＧＡ（Field-Programmable Gate Array）などのハードウェアにより実現されてもよく、ソフトウェア機能部とハードウェアとの組み合わせによって実現されてもよい。情報処理部１３０は、例えば、受付部１３１と、学習部１３３と、生成部１３６とを備える。
【００３４】
受付部１３１は、通信部１０５が出力した訓練情報を複数取得し、取得した複数の訓練情報の各々に含まれる転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを取得する。受付部１３１は、取得した転写元のスケルトンモデルを示す情報に含まれる転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルを示す情報に含まれる転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を、記憶部１１０のモーション・体型情報ＤＢ１１３に記憶する。
受付部１３１は、前処理部１３２を含む。受付部１３１は、記憶部１１０のモーション・体型情報ＤＢ１１３に記憶した転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を複数取得し、取得した転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を複数受け付ける。
受付部１３１は、受け付けた転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた複数の情報を、前処理部１３２に出力する。
また、受付部１３１は、通信部１０５が出力したモーション情報要求を取得し、取得したモーション情報要求に含まれる転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を、前処理部１３２に出力する。
【００３５】
前処理部１３２は、受付部１３１が出力した転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を複数取得し、取得した複数の関連付けた情報の各々について、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報との各々を、教師あり学習アルゴリズムに適用できるデータ形式に変換する。
前処理部１３２は、転写元のスケルトンモデルのモーションを示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを生成する。同様に、モーション生成装置１００は、転写後のスケルトンモデルのモーションを示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写後のスケルトンモデルの体型を示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹを生成する。
前処理部１３２は、生成した転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを、学習部１３３に出力する。
【００３６】
具体的には、前処理部１３２は、転写元のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルのモーションを示す情報との各々に含まれる一又は複数のノードの各々の回転量（ｘ軸回転量、ｙ軸回転量、ｚ軸回転量）を示すオイラー角から四元数を導出する。また、前処理部１３２は、転写元のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルのモーションを示す情報との各々に含まれる一又は複数のノードの各々の平行移動量（ｘ軸平行移動量、ｙ軸平行移動量、ｚ軸平行移動量）について、モーション情報ＤＢ１１４に含まれる平行移動量の全てに対して平均が零で、且つ標準偏差が１となるように正規化してもよい。
また、前処理部１３２は、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報との各々に含まれるボーンのボーン長に関して、転写前後のスケルトンモデルの体型の相対的な違いを学習させるために、転写元のスケルトンモデルのボーンのボーン長と、転写後のスケルトンモデルのボーンのボーン長との比率（以下「ボーン長比率」という）を導出し、導出したボーン長比率を示す情報を、新たな体型を示す情報とする。この場合、前処理部１３２は、例えば、転写元のスケルトンモデルのボーン長を、転写後のスケルトンモデルのボーン長で除算することによって、ボーン長比率を導出する。前処理部１３２は、導出したボーン長比率の全てに対して平均が零で、且つ標準偏差が１となるように正規化を実施してもよい。
前処理部１３２は、導出した四元数と、ボーン長比率とを集約することによって、モーション・体型情報ＤＢ１１３に含まれる複数のＩＤの各々に対して、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを生成する。前処理部１３２は、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを、学習部１３３に出力する。
【００３７】
また、前処理部１３２は、受付部１３１が出力した転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を取得し、取得した転写元のスケルトンモデルを示す情報に含まれる転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを、学習済モデルの入力として処理できるデータ形式に変換する。ここで、転写元のスケルトンモデルのモーションを示す情報に含まれるノード数と、転写元のスケルトンモデルの体型を示す情報に含まれるノード数と、転写後のスケルトンモデルの体型を示す情報に含まれるノード数とは、相互に一致している。
前処理部１３２は、転写元のスケルトンモデルのモーションを示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを生成する。前処理部１３２は、生成した転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを、生成部１３６に出力する。具体的には、前処理部１３２は、転写元のスケルトンモデルのモーションを示す情報に含まれる一又は複数のノードの各々の回転量（ｘ軸回転量、ｙ軸回転量、ｚ軸回転量）を示すオイラー角から四元数を導出する。前処理部１３２は、転写元のスケルトンモデルのモーションを示す情報に含まれる一又は複数のノードの各々の平行移動量（ｘ軸平行移動量、ｙ軸平行移動量、ｚ軸平行移動量）について、平均が零で、且つ標準偏差が１となるように正規化を実施してもよい。
また、前処理部１３２は、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報との各々に含まれるボーンのボーン長に関して、ボーン長比率を導出し、導出したボーン長比率を示す情報を、新たな体型を示す情報とする。この場合、前処理部１３２は、例えば、転写元のスケルトンモデルのボーンのボーン長を、転写後のスケルトンモデルのボーンのボーン長で除算することによって、ボーン長比率を導出する。前処理部１３２は、導出したボーン長比率の全てに対して平均が零で、且つ標準偏差が１となるように正規化を実施してもよい。前処理部１３２は、転写元のスケルトンモデルのモーションを示す情報から導出された四元数と、転写元のスケルトンモデルの体型を示す情報と転写後のスケルトンモデルの体型を示す情報とから導出されたボーン長比率とを集約することによって、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを生成する。前処理部１３２は、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを、生成部１３６に出力する。
【００３８】
学習部１３３は、前処理部１３２が出力した転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階のテンソルＹとを取得し、取得した転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを入力情報として、その入力情報に関連付けられる転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹを教師データとして、教師あり学習する。学習部１３３は、符号化学習部１３４と、生成学習部１３５とを有する。
符号化学習部１３４は、符号化器のモデルパラメータと、生成器のモデルパラメータとを初期化する。符号化学習部１３４は、前処理部１３２が出力した転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを取得し、取得した転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸに対して非線形変換を適用することによって、符号化する。テンソルの符号化には、ＣＮＮ、ＲＮＮなどを適用できる。符号化学習部１３４は、最初の符号化には、符号化器のモデルパラメータＷとして正規乱数などで初期化した値を利用する。符号化学習部１３４は、最初以降の繰り返しの学習では、更新したモデルパラメータＷを利用して、符号化する。
符号化学習部１３４は、符号化することによって得られた転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを、生成学習部１３５に出力する。
【００３９】
生成学習部１３５は、符号化学習部１３４が出力した転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを取得する。生成学習部１３５は、取得した転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａに基づいて、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓを生成し、生成した転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓと、取得した転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを、誤差関数によって比較する。生成学習部１３５は、モデルパラメータＷを記憶する。生成学習部１３５は、誤差関数が収束している場合には処理を終了し、誤差関数が収束していない場合には、符号化学習部１３４との間で処理を継続する。
具体的には、符号化学習部１３４は、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階のテンソルＹとを取得する。符号化学習部１３４は、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸに対して非線形変換を適用することによって、符号化する。テンソルの符号化には、ＣＮＮ、ＲＮＮなどを適用できる。符号化学習部１３４は、時間軸方向に対する一次元の畳み込みを、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸに適用することで、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを符号化する。符号化学習部１３４は、最初の符号化には、符号化器のモデルパラメータＷとして正規乱数などで初期化した値を利用する。符号化学習部１３４は、最初以降の繰り返しの学習では、更新したモデルパラメータＷを利用して、符号化する。符号化学習部１３４は、符号化することによって得られた転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを、生成学習部１３５に出力する。
【００４０】
生成学習部１３５は、符号化学習部１３４が出力した転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを取得する。生成学習部１３５は、取得した転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａから、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓを生成する。生成学習部１３５は、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓの推定に、ＣＮＮ、ＲＮＮなどを利用できる。
生成学習部１３５は、生成した転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓと、取得した転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを、誤差関数に基づいて比較する。誤差関数の一例は、cycle consistency loss、smoothing lossである。本実施形態では、誤差関数として、前述したcycle consistency lossと、smoothing lossとに加え、式（１）に示される誤差関数Ｅｒｅｃを導入する。
Ｅｒｅｃ＝ΣＤ｜Ｙａ−Ｙｓ｜１      （１）
式（１）において、Ｄは訓練情報の集合を表し、｜・｜１はＬ１ノルムを表す。
生成学習部１３５は、誤差関数Ｅｒｅｃと、誤差関数Ｅｒｅｃ以外の誤差関数Ｅｏｔｈｅｒとを組み合わせた誤差関数Ｅ（＝Ｅｒｅｃ＋Ｅｏｔｈｅｒ）に基づいて、モデルパラメータＷを式（２）に基づいて、更新する。
【００４１】
【数１】
2020113116.tif 000003
【００４２】
式（２）において、αは学習率であり、０．０１などの定数である。パラメータ更新のアルゴリズムは、Ａｄａｍなどの任意の技術を用いることができる。生成学習部１３５は、モデルパラメータＷを示す情報を、記憶部１１０のモデルパラメータ１１６に記憶する。
また、生成部１３６は、前処理部１３２が出力した転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを取得する。生成部１３６は、符号化部１３７と、スケルトンモデル生成部１３８と、後処理部１３９とを有する。生成部１３６は、取得した転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを、符号化部１３７に出力する。
符号化部１３７は、生成部１３６が出力した転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを取得し、記憶部１１０のモデルパラメータ１１６に記憶したモデルパラメータＷを取得する。符号化部１３７は、取得したモデルパラメータＷに基づいて、ＣＮＮ、ＲＮＮなどのモデルを構築する。符号化部１３７は、構築したモデルに基づいて、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを符号化する。符号化部１３７は、符号化することによって得られる転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａを、スケルトンモデル生成部１３８に出力する。
スケルトンモデル生成部１３８は、符号化部１３７が出力した転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａを取得する。
スケルトンモデル生成部１３８は、構築したモデルと、取得した転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａとに基づいて、転写後のスケルトンモデルの集約情報の推定結果Ｙｓを生成する。
スケルトンモデル生成部１３８は、生成した転写後のスケルトンモデルの集約情報の推定結果Ｙｓを、後処理部１３９に出力する。
後処理部１３９は、スケルトンモデル生成部１３８が出力した転写後のスケルトンモデルの集約情報の推定結果Ｙｓを取得し、取得した転写後のスケルトンモデルの集約情報の推定結果Ｙｓから、一又は複数のノードの各々の回転量（ｘ軸回転量、ｙ軸回転量、ｚ軸回転量）、一又は複数のノードの各々の平行移動量（ｘ軸平行移動量、ｙ軸平行移動量、ｚ軸平行移動量）などのアニメーションに必要な情報を取得する。後処理部１３９は、取得したアニメーションに必要な情報を、ＦＢＸ(Filmbox)などのモーション用のファイル形式に変換し、モーション用のファイル形式に変換したアニメーションに必要な情報を含むモーション情報応答を作成する。後処理部１３９は、作成したモーション情報応答を、通信部１０５に出力する。
【００４３】
（モーション生成システムの動作の例１）
図８は、本発明の実施形態のモーション生成システムの動作の例１を示すフローチャートである。図８は、本発明の実施形態のモーション生成システム１の全体的な動作の一例を示す。
（ステップＳ１００）
モーション生成装置１００は、複数の訓練情報の各々に含まれる転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを取得する。モーション生成装置１００は、取得した転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とに基づいて、転写元のスケルトンモデルの集約情報を生成する。モーション生成装置１００は、取得した転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とに基づいて、転写後のスケルトンモデルの集約情報を生成する。
モーション生成装置１００は、転写元のスケルトンモデルの集約情報に対して非線形変換を適用することによって符号化する。
モーション生成装置１００は、転写元のスケルトンモデルの集約情報を符号化した結果に基づいて、転写後のスケルトンモデルの集約情報の推定結果を生成し、生成した転写後のスケルトンモデルの集約情報の推定結果と、転写後のスケルトンモデルの集約情報とを、誤差関数によって比較する。
モーション生成装置１００は、モデルパラメータＷを記憶する。モーション生成装置１００は、誤差関数が収束している場合には処理を終了し、誤差関数が収束していない場合には、処理を継続する。
【００４４】
（ステップＳ１０２）
モーション生成装置１００は、端末装置１０が送信したモーション情報要求を受信し、受信したモーション情報要求に含まれる転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルの体型を示す情報とを取得する。
（ステップＳ１０４）
モーション生成装置１００は、取得した転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルの体型を示す情報とに基づいて、転写元のスケルトンモデルの集約情報を生成する。
モーション生成装置１００は、モデルパラメータ１１６に記憶したモデルパラメータＷを取得し、取得したモデルパラメータＷに基づいて、ＣＮＮ、ＲＮＮなどのモデルを構築する。モーション生成装置１００は、構築したモデルに基づいて、生成した転写元のスケルトンモデルの集約情報を符号化する。
モーション生成装置１００は、構築したモデルに基づいて、転写元のスケルトンモデルの集約情報を符号化した結果から、転写後のスケルトンモデルの集約情報の推定結果を生成する。
（ステップＳ１０６）
モーション生成装置１００は、転写後のスケルトンモデルの集約情報の推定結果に基づいて、回転量、平行移動量などの転写後のスケルトンモデルのモーションを示す情報に含まれる情報を取得し、取得した情報を含むモーション情報応答を作成し、作成したモーション情報応答を、端末装置１０に送信する。
【００４５】
（モーション生成システムの動作の例２）
図９は、本発明の実施形態のモーション生成システムの動作の例２を示すフローチャートである。図９は、本発明の実施形態のモーション生成装置１００の全体的な動作の一例を示す。
図９は、記憶部１１０のモーション・体型情報ＤＢ１１３に、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とが関連付けて複数記憶された後の動作を示す。
（ステップＳ２００）
モーション生成装置１００の受付部１３１は、記憶部１１０のモーション・体型情報ＤＢ１１３に記憶した転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を複数取得し、取得した転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を複数受け付ける。受付部１３１は、受け付けた転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた複数の情報を、前処理部１３２に出力する。
前処理部１３２は、受付部１３１が出力した転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を複数取得し、取得した複数の関連付けた情報の各々について、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報との各々を、教師あり学習アルゴリズムに適用できるデータ形式に変換する。
前処理部１３２は、転写元のスケルトンモデルのモーションを示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報を生成する。同様に、前処理部１３２は、転写後のスケルトンモデルのモーションを示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写後のスケルトンモデルの体型を示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写後のスケルトンモデルの集約情報を生成する。前処理部１３２は、転写前のスケルトンモデルの集約情報と、転写後のスケルトンモデルの集約情報とを、符号化学習部１３４に出力する。
【００４６】
（ステップＳ２０２）
符号化学習部１３４は、符号化器と生成器とのモデルパラメータを初期化する。
（ステップＳ２０４）
符号化学習部１３４は、前処理部１３２が出力した転写元のスケルトンモデルの集約情報を取得し、取得した転写元のスケルトンモデルの集約情報に対して非線形変換を適用することによって、符号化する。
符号化学習部１３４は、符号化することによって得られた転写元のスケルトンモデルの集約情報を符号化した結果と、転写後のスケルトンモデルの集約情報とを、生成学習部１３５に出力する。
（ステップＳ２０６）
生成学習部１３５は、符号化学習部１３４が出力した転写元のスケルトンモデルの集約情報を符号化した結果と、転写後のスケルトンモデルの集約情報とを取得する。生成学習部１３５は、取得した転写元のスケルトンモデルの集約情報を符号化した結果から、転写後のスケルトンモデルの集約情報の推定結果を生成する。
（ステップＳ２０８）
生成学習部１３５は、生成した転写後のスケルトンモデルの集約情報の推定結果と、取得した転写後のスケルトンモデルの集約情報とを、誤差関数に基づいて比較する。生成学習部１３５は、誤差関数に基づいて、モデルパラメータＷを更新する。
（ステップＳ２１０）
生成学習部１３５は、誤差関数が収束しているか否かを判定する。生成学習部１３５は、誤差関数が収束している場合には処理を終了し、誤差関数が収束していない場合にはステップＳ２０４に移行する。
【００４７】
（モーション生成システムの動作の例３）
図１０は、本発明の実施形態のモーション生成システムの動作の例３を示すフローチャートである。図１０は、本発明の実施形態のモーション生成装置１００の全体的な動作の一例を示す。
図１０は、記憶部１１０のモデルパラメータ１１６に、モデルパラメータＷが記憶された後の動作を示す。
（ステップＳ３００）
端末装置１０は、モーション情報要求を送信する。モーション生成装置１００の通信部１０５は、端末装置１０が送信したモーション情報要求を受信し、受信したモーション情報要求を、情報処理部１３０に出力する。モーション生成装置１００の受付部１３１は、通信部１０５が出力したモーション情報要求を取得し、取得したモーション情報要求に含まれる転写元のスケルトンモデルを示す情報（転写元のスケルトンモデルのモーションを示す情報、転写元のスケルトンモデルの体型を示す情報）と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を、前処理部１３２に出力する。
前処理部１３２は、受付部１３１が出力した転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を取得し、取得した転写元のスケルトンモデルを示す情報に含まれる転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを、学習済モデルの入力として処理できるデータ形式に変換する。前処理部１３２は、転写元のスケルトンモデルのモーションを示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報を生成する。前処理部１３２は、生成した転写元のスケルトンモデルの集約情報を、生成部１３６に出力する。
（ステップＳ３０２）
生成部１３６は、前処理部１３２が出力した転写元のスケルトンモデルの集約情報を取得し、取得した転写元のスケルトンモデルの集約情報を、符号化部１３７に出力する。
符号化部１３７は、生成部１３６が出力した転写元のスケルトンモデルの集約情報を取得し、記憶部１１０のモデルパラメータ１１６に記憶したモデルパラメータＷを取得する。符号化部１３７は、取得したモデルパラメータＷに基づいて、ＣＮＮ、ＲＮＮなどのモデルを構築する。符号化部１３７は、構築したモデルに基づいて、転写元のスケルトンモデルの集約情報を符号化する。符号化部１３７は、符号化することによって得られる転写元のスケルトンモデルの集約情報を符号化した結果を、スケルトンモデル生成部１３８に出力する。
【００４８】
（ステップＳ３０４）
スケルトンモデル生成部１３８は、符号化部１３７が出力した転写元のスケルトンモデルの集約情報を符号化した結果を取得する。
スケルトンモデル生成部１３８は、構築したモデルと、転写元のスケルトンモデルの集約情報を符号化した結果とに基づいて、転写後のスケルトンモデルの集約情報の推定結果を生成する。
スケルトンモデル生成部１３８は、生成した転写後のスケルトンモデルの集約情報の推定結果を、後処理部１３９に出力する。
（ステップＳ３０６）
後処理部１３９は、スケルトンモデル生成部１３８が出力した転写後のスケルトンモデルの集約情報の推定結果を取得し、取得した転写後のスケルトンモデルの集約情報の推定結果から、一又は複数のノードの各々の回転量、一又は複数のノードの各々の平行移動量などのアニメーションに必要な情報を取得する。後処理部１３９は、取得したアニメーションに必要な情報を、ＦＢＸなどのモーション用のファイル形式に変換する。
後処理部１３９は、モーション用のファイル形式に変換したアニメーションに必要な情報を含み、端末装置１０を宛先とするモーション情報応答を作成する。後処理部１３９は、作成したモーション情報応答を、通信部１０５に出力する。
通信部１０５は、後処理部１３９が出力したモーション情報応答を取得し、取得したモーション情報応答を送信する。
【００４９】
前述した実施形態では、３次元回転量が、オイラー角で表現される場合について説明したが、この限りでない。例えば、３次元回転量が、クォータニオンで表現されてもよいし、指数マップ、デュアルクォータニオン、回転行列や回転軸（ｘ，ｙ，ｚ軸を表す３つの単位ベクトルで、実質的に回転行列と同じ）などで表現されてもよい。
前述した実施形態では、転写元のスケルトンモデルの一例が、役者である場合について説明したが、この例に限られない。例えば、モーションリターゲッティングという技術自体は、実世界の人間から人型キャラクタに転写するだけでなく、実世界の動物から動物キャラクタに転写してもよく、要するに適用対象は人間に限らない。
前述した実施形態では、複数のノードの各々に関する情報が、転写元のスケルトンモデルのモーションが適用される対象をモーションキャプチャすることによって得られる場合について説明したが、この例に限られない。例えば、複数のノードの各々に関する情報が、手作業で作成されてもよいし、あるいは、強化学習やシミュレーションによって機械的に生成されてもよい。  前述した実施形態では、モーション生成装置１００が、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を、教師あり学習アルゴリズムに適用できるデータ形式に変換する場合に、オイラー角から四元数に変換する場合について説明したが、この限りでない。例えば、モーション生成装置１００は、オイラー角をθとしたときのｓｉｎθ（正弦）と、ｃｏｓθ（余弦）を計算し、計算した結果を新たな回転量の情報をしてもよい。
前述した実施形態では、２階テンソルを生成する場合について説明したが、この例に限られない。例えば、３階テンソルなどの任意のテンソルを生成してもよい。
前述した実施形態では、モデルパラメータＷを記憶し、記憶したモデルパラメータＷを使用して、ＮＮ、ＲＮＮなどのモデルを構築し、構築したモデルを使用して、端末装置１０が送信したモーション情報要求に含まれる転写元のスケルトンモデルを示す情報（転写元のスケルトンモデルのモーションを示す情報、転写元のスケルトンモデルの体型を示す情報）と、転写後のスケルトンモデルの体形体型を示す情報とに基づいて、転写後のスケルトンモデルの集約情報の推定結果を生成する場合について説明したが、この例に限られない。例えば、転写後のスケルトンモデルの集約情報の推定結果を記憶し、記憶した転写後のスケルトンモデルの集約情報の推定結果を使用して、端末装置１０が送信したモーション情報要求に含まれる転写元のスケルトンモデルを示す情報（転写元のスケルトンモデルのモーションを示す情報、転写元のスケルトンモデルの体型を示す情報）と、転写後のスケルトンモデルの体形体型を示す情報とに基づいて、転写後のスケルトンモデルの集約情報の推定結果を生成するようにしてもよい。
前述した実施形態では、モーション情報要求に含まれる転写元のスケルトンモデルのモーションを示す情報に含まれるノード数と、転写元のスケルトンモデルの体型を示す情報に含まれるノード数と、転写後のスケルトンモデルの体型を示す情報に含まれるノード数とが、相互に一致している場合について説明したが、この限りでない。例えば、転写元のスケルトンモデルのモーションを示す情報に含まれるノード数と、転写元のスケルトンモデルの体型を示す情報に含まれるノード数とが一致し、転写後のスケルトンモデルの体型を示す情報に含まれる関節数と、導出される転写後のスケルトンモデルのモーションを示す情報に含まれるノード数とが一致していてもよい。つまり、転写元のスケルトンモデルのモーションを示す情報に含まれるノード数と、転写後のスケルトンモデルのモーションを示す情報に含まれるノード数とが異なっていてもよい。
【００５０】
前述した実施形態においては、生成学習部１３５が、転写元のスケルトンモデルの集約情報を入力情報として、その入力情報に関連付けられる転写後のスケルトンモデルの集約情報を教師データとして教師あり学習する場合について説明したが、この限りでない。例えば、生成学習部１３５は、転写元のスケルトンモデルの集約情報を入力情報として、その入力情報に関連付けられる転写後のスケルトンモデルの集約情報と転写元のスケルトンモデルの集約情報とに基づく値を教師データとして、教師あり学習してもよい。例えば、生成学習部１３５は、フレーム（ｔ）の転写元のスケルトンモデルの集約情報を入力データとして、フレーム（ｔ）の転写後のスケルトンモデルの集約情報とフレーム（ｔ）の転写元のスケルトンモデルの集約情報との差分を教師データとして教師あり学習してもよい。また、例えば、生成学習部１３５は、フレーム（ｔ）の転写元のスケルトンモデルの集約情報とフレーム（ｔ−１）の転写元のスケルトンモデルの集約情報との差分を入力データとして、フレーム（ｔ）の転写後のスケルトンモデルの集約情報とフレーム（ｔ−１）の転写元のスケルトンモデルの集約情報との差分を教師データとして、教師あり学習してもよい。また、例えば、生成学習部１３５は、フレーム（ｔ）の転写元のスケルトンモデルの集約情報とフレーム（ｔ−１）の転写元のスケルトンモデルの集約情報との差分を入力データとして、フレーム（ｔ）の転写後のスケルトンモデルの集約情報とフレーム（ｔ−１）の転写後のスケルトンモデルの集約情報との差分を教師データとして、教師あり学習してもよい。
具体的には、時刻（フレーム）ｔにおける転写元のスケルトンモデルの集約情報をＢ（ｔ）とし、転写後のスケルトンモデルの集約情報をＡ（ｔ）とした場合に、生成学習部１３５は、Ｂ（ｔ）を入力情報として、Ａ（ｔ）とＢ（ｔ）とに基づく値を教師データとして教師あり学習してもよい。例えば、生成学習部１３５は、Ｂ（ｔ）を入力情報として、Ａ（ｔ）−Ｂ（ｔ）を教師データとして教師あり学習してもよい。また、生成学習部１３５は、Ｂ（ｔ）−Ｂ（ｔ−１）を入力情報として、Ａ（ｔ）−Ｂ（ｔ−１）を教師データとして、教師あり学習してもよい。また、生成学習部１３５は、Ｂ（ｔ）−Ｂ（ｔ−１）を入力情報として、Ａ（ｔ）−Ａ（ｔ−１）を教師データとして、教師あり学習してもよい。このように構成することによって、教師データの変動を低減できるため、モーションの転写精度をより向上できる。
また、生成学習部１３５は、スケルトンモデルにおける少なくとも一つのノードに重み付きの誤差最小化を行った結果を、学習してもよい。例えば、生成学習部１３５は、スケルトンモデルにおける腰ノード、つま先ノード、足裏ノード、手首ノード、頭頂部ノードの少なくとも一つのノードに重み付きの誤差最小化を行った結果を、学習してもよい。腰ノードはスケルトンのルートであり、身体全体の移動や姿勢を制御する特殊なノードであること、つま先ノード、足裏ノード、手首ノード、頭頂部ノードは末端であり、視覚的に重要であることから、特に重点的に誤差を小さくする必要があるためである。
【００５１】
前述した実施形態において、モーション生成装置１００が、Ｎ×Ｔの２階テンソルＸの符号化に、ＲＮＮなどを利用する場合に、モーション生成装置１００の符号化学習部１３４は、転写前のデータを、Ｄ次元のＴ個の系列情報とみなして、ＬＳＴＭ(Long short-term memory)、ＧＲＵ(gated recurrent unit)などのＲＮＮを適用してもよい。
前述した実施形態では、生成学習部１３５が、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓと、取得した転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを、比較する場合に、式(１)に示される誤差関数を使用する場合について説明したが、この例に限られない。例えば、生成学習部１３５は、式（１）に示されるＥｒｅｃのように転写後のスケルトンモデルのモーションを直接出力するモデルを学習させるのではなく、転写前後のモーションの変化量を学習させるようにしてもよい。このように構成することによって、学習の効率化を図ることができる。この場合、生成学習部１３５は、式（３）に示される誤差関数で、生成した転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓと、取得した転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを比較する。
【００５２】
Ｅｒｅｃ＝ΣＤ｜Ｙ＋Ｘ−Ｙｓ｜１      （３）
【００５３】
本実施形態のモーション生成システムによれば、モーション生成装置１００は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む訓練情報の集合に基づいて、転写元のスケルトンモデルの集約情報と、転写後のスケルトンモデルの集約情報を生成する。モーション生成装置１００は、生成した転写元のスケルトンの集約情報に基づいて、転写後のスケルトンの集約情報の推定結果を生成する。モーション生成装置１００は、生成した転写後のスケルトンの集約情報の推定結果と、転写後のスケルトンの集約情報とに基づいて、転写元のスケルトンモデルの集約情報から、転写後のスケルトンモデルの集約情報を生成するための符号化器と、生成器のモデルパラメータＷを学習する。
さらに、モーション生成装置１００は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを受け付け、受け付けた転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報と、学習結果とに基づいて、転写後のスケルトンモデルのモーションを示す情報を生成する。このように、転写元のスケルトンモデルの集約情報を入力情報とし、転写後のスケルトンモデルの集約情報を教師データとして、教師あり学習した結果に基づいて、転写後のスケルトンモデルのモーションを示す情報を生成できるため、モーション転写を精度よく実現できる。
【００５４】
（変形例）
図１１は、本発明の実施形態の変形例のモーション生成システムの一例を示す図である。本実施形態の変形例のモーション生成システム１ａは、端末装置１０と、学習装置２００と、生成装置３００とを含む。これらの装置は、ネットワーク５０を介して互いに接続される。
モーション生成システム１ａは、前述したモーション生成装置１００の有する機能のうち、転写元のスケルトンモデルの集約情報から、転写後のスケルトンモデルの集約情報を生成するための符号化器と、生成器とのモデルパラメータを学習する機能と、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを受け付け、受け付けた転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報と、学習結果とに基づいて、転写後のスケルトンモデルのモーションを示す情報を生成する機能とを異なる装置で実現したものである。
【００５５】
学習装置２００は、端末装置１０が送信した訓練情報を複数受信し、受信した複数の訓練情報の各々に含まれる転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を取得する。学習装置２００は、取得した転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けて記憶する。
学習装置２００は、記憶した転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた複数の情報に基づいて、転写元のスケルトンモデルのモーションを、転写元のスケルトンモデルの体型とは異なる体型の転写後のスケルトンモデルに転写するための学習を行う。
学習装置２００は、記憶した転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を複数取得し、取得した転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた複数の情報を受け付ける。
【００５６】
学習装置２００は、受け付けた転写元のスケルトンモデルを示す複数の情報の各々に含まれる転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを、教師あり学習アルゴリズムに適用できるデータ形式に変換する。同様に、学習装置２００は、受け付けた転写後のスケルトンモデルを示す複数の情報の各々に含まれる転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを、教師あり学習アルゴリズムに適用できるデータ形式に変換する。
学習装置２００は、転写元のスケルトンモデルのモーションを示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報である２階テンソルＸを生成する。同様に、学習装置２００は、転写後のスケルトンモデルのモーションを示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写後のスケルトンモデルの体型を示す情報を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写後のスケルトンモデルの集約情報である２階テンソルＹを生成する。
【００５７】
学習装置２００は、転写元のスケルトンモデルの集約情報である２階テンソルＸに対して非線形変換を適用することによって、符号化する。テンソルの符号化には、ＣＮＮ、ＲＮＮなどを適用できる。学習装置２００は、最初の符号化には、符号化器のモデルパラメータＷとして正規乱数などで初期化した値を利用する。
学習装置２００は、転写元のスケルトンモデルの集約情報である２階テンソルＸを符号化した結果である２階テンソルＸａから、転写後のスケルトンモデルの集約情報を推定する。その推定には、ＣＮＮ、ＲＮＮなどを適用できる。学習装置２００は、転写後のスケルトンモデルの集約情報の推定結果と、転写後のスケルトンモデルの集約情報である２階テンソルＹとを比較する。学習装置２００は、比較結果に基づいて、モデルパラメータＷを更新し、モデルパラメータＷの更新結果を記憶する。学習装置２００は、最初以降の繰り返しの学習では、更新したモデルパラメータを利用する。
【００５８】
学習装置２００は、記憶した転写元のスケルトンモデルを示す複数の情報の各々に基づいて、転写元のスケルトンモデルの集約情報である２階テンソルＸを生成する。学習装置２００は、生成した転写元のスケルトンモデルの集約情報である２階テンソルＸに基づいて、複数の訓練情報の各々について、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを生成する。
学習装置２００は、転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸの各々を符号化することによって、転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａを生成する。学習装置２００は、生成した転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×Ｔａの２階テンソルＸａの各々について、転写後のスケルトンモデルの集約情報の推定結果Ｙｓを生成する。
学習装置２００は、最初の符号化には、符号化器のモデルパラメータＷとして正規乱数などで初期化した値を利用する。
【００５９】
学習装置２００は、記憶した転写後のスケルトンモデルを示す複数の情報の各々に基づいて、転写後のスケルトンモデルの集約情報である２階テンソルＹを生成する。学習装置２００は、生成した転写後のスケルトンモデルの集約情報である２階テンソルＹに基づいて、複数の訓練情報の各々について、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹを生成する。
学習装置２００は、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとを、誤差関数によって比較する。モーション生成装置１００は、誤差関数に基づいて導出されるモデルパラメータＷを記憶する。
学習装置２００は、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階テンソルＹとの誤差関数が収束している場合には処理を終了し、収束していない場合には継続する。
学習装置２００は、記憶したモデルパラメータＷを含むモデルパラメータ通知情報を作成し、作成したモデルパラメータ通知情報を、生成装置３００に送信する。
【００６０】
生成装置３００は、学習装置２００が送信したモデルパラメータ通知情報を受信し、受信したモデルパラメータ通知情報に含まれるモデルパラメータＷを記憶する。
生成装置３００は、端末装置１０が送信したモーション情報要求を受信し、受信したモーション情報要求に含まれる転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルの体型を示す情報とを取得する。
生成装置３００は、取得した転写元のスケルトンモデルを示す情報に含まれる転写元のスケルトンモデルのモーションを示す情報と転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを学習済モデルの入力として処理できるデータ形式に変換する。
生成装置３００は、転写元のスケルトンモデルのモーションを示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを生成する。
生成装置３００は、記憶したモデルパラメータを取得し、取得したモデルパラメータに基づいて、ＣＮＮ、ＲＮＮなどのモデルを構築する。生成装置３００は、構築したモデルに基づいて、生成した転写元のスケルトンモデルの集約情報である２階テンソルＸを符号化する。
さらに、生成装置３００は、構築したモデルに基づいて、転写元のスケルトンモデルの集約情報を符号化した結果である２階テンソルＸａから、転写後のスケルトンモデルの集約情報の推定結果である２階テンソルＹｓを生成する。
生成装置３００は、転写後のスケルトンモデルの集約情報の推定結果である２階テンソルＹｓに基づいて、回転量、平行移動量などの転写後のスケルトンモデルのモーションを示す情報に含まれる情報を取得し、取得した情報を含むモーション情報応答を作成し、作成したモーション情報応答を、端末装置１０に送信する。
【００６１】
（学習装置２００）
図１２は、本発明の実施形態の変形例の学習装置の一例を示すブロック図である。
学習装置２００は、通信部１０５と、記憶部２１０と、操作部１２０と、情報処理部２３０と、表示部１４０と、各構成要素を図１２に示されているように電気的に接続するためのアドレスバスやデータバスなどのバスライン２５０とを備える。
通信部１０５は、前述した機能に加え、情報処理部２３０が出力したモーション情報応答を取得し、取得したモーション情報応答を、生成装置３００に送信する。
記憶部２１０は、例えば、ＲＡＭ、ＲＯＭ、ＨＤＤ、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。記憶部２１０には、情報処理部２３０により実行されるプログラム２１１と、アプリ２１２と、モーション・体型情報ＤＢ１１３と、モーション情報ＤＢ１１４と、体型情報ＤＢ１１５と、モデルパラメータ１１６とが記憶される。
【００６２】
アプリ２１２は、学習装置２００に、端末装置１０が送信した訓練情報を受信させる。アプリ２１２は、学習装置２００に、受信させた訓練情報に含まれる転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を取得させ、取得させた転写元のスケルトンモデルを示す情報に含まれる転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルを示す情報に含まれる転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を、記憶部２１０のモーション・体型情報ＤＢ１１３に記憶させる。
アプリ２１２は、学習装置２００に、記憶部２１０のモーション・体型情報ＤＢ１１３に記憶させた転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を複数取得させ、取得させた転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを関連付けた情報を複数受け付けさせる。
アプリ２１２は、学習装置２００に、受け付けさせた転写元のスケルトンモデルのモーションを示す複数の情報の各々と、転写元のスケルトンモデルの体型を示す複数の情報の各々と、転写後のスケルトンモデルのモーションを示す複数の情報の各々と、転写後のスケルトンモデルの体型を示す複数の情報の各々とを、教師あり学習アルゴリズムに適用できるデータ形式に変換させる。アプリ２１２は、学習装置２００に、転写元のスケルトンモデルのモーションを示す複数の情報の各々を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す複数の情報の各々を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報であるＮ×ＴのテンソルＸを生成させる。
アプリ２１２は、学習装置２００に、転写後のスケルトンモデルのモーションを示す複数の情報の各々を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果と、転写後のスケルトンモデルの体型を示す複数の情報の各々を教師あり学習アルゴリズムに適用できるデータ形式に変換した結果とが集約された転写後のスケルトンモデルの集約情報であるＭ×ＴのテンソルＹを生成させる。アプリ２１２は、学習装置２００に、生成させた転写元のスケルトンモデルの集約情報であるＮ×ＴのテンソルＸを符号化することによって、転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×ＴａのテンソルＸａに変換させる。ここで、アプリ１１２は、最初の符号化には、符号化器のモデルパラメータＷとして正規乱数などで初期化した値を利用させる。
アプリ２１２は、学習装置２００に、転写元のスケルトンモデルの集約情報を符号化した結果であるＮａ×ＴａのテンソルＸａに基づいて、転写後のスケルトンモデルの集約情報の推定結果であるＭ×ＴのテンソルＹｓを生成させる。アプリ２１２は、学習装置２００に、転写後のスケルトンモデルの集約情報の推定結果であるＭ×ＴのテンソルＹｓと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階のテンソルＹとを、誤差関数を使用して比較させる。アプリ２１２は、学習装置２００に、誤差に基づいて導出されるモデルパラメータＷを記憶させる。
アプリ２１２は、学習装置２００に、転写後のスケルトンモデルの集約情報の推定結果であるＭ×ＴのテンソルＹｓと、転写後のスケルトンモデルの集約情報であるＭ×Ｔの２階のテンソルＹとの誤差が収束している場合には処理を終了させ、収束していない場合には継続させる。アプリ２１２は、学習装置２００に、導出させたモデルパラメータＷで更新させ、モデルパラメータＷの更新結果を、記憶させる。アプリ２１２は、学習装置２００に、最初以降の繰り返しの学習では、更新したパラメータを利用して、符号化させる。
【００６３】
情報処理部２３０の全部または一部は、例えば、ＣＰＵなどのプロセッサが記憶部２１０に格納されたプログラム２１１と、アプリ２１２とを実行することにより実現されるソフトウェア機能部である。なお、情報処理部２３０の全部または一部は、ＬＳＩ、ＡＳＩＣ、またはＦＰＧＡなどのハードウェアにより実現されてもよく、ソフトウェア機能部とハードウェアとの組み合わせによって実現されてもよい。情報処理部２３０は、例えば、受付部１３１と、学習部１３３とを備える。
生成学習部１３５は、前述した機能に加え、記憶部２１０のモデルパラメータ１１６に記憶したモデルパラメータＷを含み、生成装置３００を宛先とするモデルパラメータ通知情報を作成し、作成したモデルパラメータ通知情報を、通信部１０５に出力する。
【００６４】
（生成装置３００）
図１３は、本発明の実施形態の変形例の生成装置の一例を示すブロック図である。
生成装置３００は、通信部１０５と、記憶部３１０と、操作部１２０と、情報処理部２３０と、表示部１４０と、各構成要素を図１３に示されているように電気的に接続するためのアドレスバスやデータバスなどのバスライン３５０とを備える。
通信部１０５は、前述した機能に加え、学習装置２００が送信したモデルパラメータ通知情報を受信し、受信したモデルパラメータ通知情報を、情報処理部３３０に出力する。
記憶部３１０は、例えば、ＲＡＭ、ＲＯＭ、ＨＤＤ、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。記憶部３１０には、情報処理部３３０により実行されるプログラム３１１と、アプリ３１２と、モデルパラメータ１１６とが記憶される。
【００６５】
アプリ３１２は、生成装置３００に、学習装置２００が送信したモデルパラメータ通知情報を受信させる。アプリ３１２は、生成装置３００に、受信させたモデルパラメータ通知情報に含まれるモデルパラメータＷを、記憶部３１０のモデルパラメータ１１６に記憶させる。アプリ３１２は、生成装置３００に、端末装置１０が送信したモーション情報要求を受信させる。アプリ３１２は、生成装置３００に、受信させたモーション情報要求に含まれる転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルの体型を示す情報とを取得させる。アプリ３１２は、生成装置３００に、取得させた転写元のスケルトンモデルを示す情報に含まれる転写元のスケルトンモデルのモーションを示す情報と転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを学習済モデルの入力として処理できるデータ形式に変換させる。
アプリ３１２は、生成装置３００に、転写元のスケルトンモデルのモーションを示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果と、転写元のスケルトンモデルの体型を示す情報を学習済モデルの入力として処理できるデータ形式に変換した結果とが集約された転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを生成させる。アプリ３１２は、生成装置３００に、記憶させたモデルパラメータを取得させ、取得させたモデルパラメータに基づいて、ＣＮＮ、ＲＮＮなどのモデルを構築させる。
アプリ３１２は、生成装置３００に、構築させたモデルに基づいて、生成させた転写元のスケルトンモデルの集約情報であるＮ×Ｔの２階テンソルＸを符号化させる。アプリ３１２は、生成装置３００に、構築させたモデルに基づいて、転写元のスケルトンモデルの集約情報を符号化させた結果であるＮａ×Ｔａの２階テンソルＸａから、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓを生成させる。アプリ３１２は、生成装置３００に、転写後のスケルトンモデルの集約情報の推定結果であるＭ×Ｔの２階テンソルＹｓに基づいて、回転量、平行移動量などの転写後のスケルトンモデルを示す情報に含まれる情報を取得させる。アプリ３１２は、生成装置３００に、取得させた情報を含むモーション情報応答を作成させ、作成させたモーション情報応答を、端末装置１０に送信させる。
【００６６】
情報処理部３３０の全部または一部は、例えば、ＣＰＵなどのプロセッサが記憶部３１０に格納されたプログラム３１１と、アプリ３１２とを実行することにより実現されるソフトウェア機能部である。なお、情報処理部３３０の全部または一部は、ＬＳＩ、ＡＳＩＣ、またはＦＰＧＡなどのハードウェアにより実現されてもよく、ソフトウェア機能部とハードウェアとの組み合わせによって実現されてもよい。情報処理部３３０は、例えば、受付部１３１と、生成部１３６とを備える。
受付部１３１は、前述した機能に加え、通信部１０５が出力したモデルパラメータ通知情報を取得し、取得したモデルパラメータ通知情報を、記憶部３１０のモデルパラメータ１１６に記憶する。
（モーション生成システムの動作）
学習装置２００の動作は前述した図９を適用でき、生成装置３００の動作は前述した図１０９を適用できる。
【００６７】
前述した変形例では、生成装置３００が、学習装置２００が送信したモデルパラメータ通知情報を受信し、受信したモデルパラメータ通知情報に含まれるモデルパラメータＷを、記憶部３１０のモデルパラメータ１１６に記憶する場合について説明したが、この例に限られない。例えば、生成装置３００が、学習装置２００へ、モーション情報要求を送信するようにしてもよい。学習装置２００は、生成装置３００が送信したモーション情報応答を受信し、受信したモーション情報応答に基づいて、モーション情報応答を作成し、作成したモーション情報応答を、生成装置３００に送信する。また、学習装置２００が、転写後のスケルトンモデルの集約情報の推定結果を送信し、生成装置３００が、学習装置２００が送信した転写後のスケルトンモデルの集約情報の推定結果を受信し、受信した転写後のスケルトンモデルの集約情報の推定結果に記憶するようにしてもよい。学習装置２００は、記憶した転写後のスケルトンモデルの集約情報の推定結果に基づいて、転写後のスケルトンモデルの集約情報の推定結果を作成する。
変形例のモーション生成システムによれば、生成装置３００は、学習装置２００から取得したモデルパラメータ通知情報に基づいて、転写後のスケルトンモデルの集約情報の推定結果を導出し、導出した転写後のスケルトンモデルの集約情報の推定結果に基づいて、回転量、平行移動量などの転写後のスケルトンモデルを示す情報に含まれる情報を取得できる。
【００６８】
＜構成例＞
一構成例として、転写元のスケルトンモデルを示す情報と、転写後のスケルトンモデルを示す情報とを関連付けた情報を受け付ける受付部と、受付部が受け付けた転写元のスケルトンモデルを示す情報を入力情報として、入力情報に関連付けられる転写後のスケルトンモデルを示す情報を教師データとして、教師あり学習する学習部と、学習部が教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を記憶する記憶部とを備え、転写元のスケルトンモデルを示す情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、転写後のスケルトンモデルを示す情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、モーション生成装置。
一構成例として、学習部は、時刻ｔにおける転写元のスケルトンモデルを示す情報をＢ（ｔ）とし、転写後のスケルトンモデルを示す情報をＡ（ｔ）とした場合に、Ａ（ｔ）と、Ｂ（ｔ）とに基づく値を教師データとして教師あり学習する。
一構成例として、学習部は、Ｂ（ｔ）を入力情報として、Ａ（ｔ）−Ｂ（ｔ）を教師データとして教師あり学習する。
一構成例として、学習部は、Ｂ（ｔ）−Ｂ（ｔ−１）を入力情報として、Ａ（ｔ）−Ｂ（ｔ−１）を教師データとして、教師あり学習する。
一構成例として、学習部は、Ｂ（ｔ）−Ｂ（ｔ−１）を入力情報として、Ａ（ｔ）−Ａ（ｔ−１）を教師データとして、教師あり学習する。
一構成例として、学習部は、スケルトンモデルにおける少なくとも一つのノードに重み付きの誤差最小化を行った結果を、学習する。
一構成例として、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とを受け付ける受付部と、転写元のスケルトンモデルを示す情報を入力情報として、入力情報に関連付けられる転写後のスケルトンモデルを示す情報を教師データとして教師あり学習することによって得られる転写後のスケルトンモデルの推定結果を使用して、受付部が受け付けた転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報と、転写後のスケルトンモデルの体型を示す情報とに基づいて、転写後のスケルトンモデルのモーションを示す情報を生成する生成部とを備え、転写元のスケルトンモデルを示す情報は、転写元のスケルトンモデルのモーションを示す情報と、転写元のスケルトンモデルの体型を示す情報とを含み、転写後のスケルトンモデルを示す情報は、転写後のスケルトンモデルのモーションを示す情報と、転写後のスケルトンモデルの体型を示す情報とを含む、モーション生成装置（実施形態では、生成装置）。
一構成例として、転写元のスケルトンモデルのモーションを示す前記情報に含まれるノード数と、転写元のスケルトンモデルの体型を示す前記情報に含まれるノード数と、転写後のスケルトンモデルの体型を示す前記情報に含まれるノード数とが、相互に一致している。
一構成例として、転写元のスケルトンモデルのモーションを示す前記情報に含まれるノード数と、転写元のスケルトンモデルの体型を示す前記情報に含まれるノード数とが一致し、転写後のスケルトンモデルの体型を示す前記情報に含まれるノード数と転写後のスケルトンモデルのモーションを示す前記情報に含まれるノード数とが一致している。
一構成例として、転写元のスケルトンモデルのモーションで、つま先と足裏とのいずれか一方又は両方が接地しているタイミングでは、転写後のスケルトンモデルのモーションでもつま先と足裏とのいずれか一方又は両方が接地している。
一構成例として、転写元のスケルトンモデルは、モーションキャプチャによって得られる。
【００６９】
以上、本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組合わせを行うことができる。これら実施形態及びその変形例は、発明の範囲や要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
なお、前述のモーション生成装置１００、学習装置２００、生成装置３００は内部にコンピュータを有している。そして、前述した各装置の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリなどをいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００７０】
１、１ａ…モーション生成システム、  １０…端末装置、  ５０…ネットワーク、  １００…モーション生成装置、  １０５…通信部、  １１０、２１０、３１０…記憶部、  １１１、２１１、３１１…プログラム、  １１２、２１２、３１２…アプリ、  １１３…モーション・体型情報ＤＢ、  １１４…モーション情報ＤＢ、  １１５…体型情報ＤＢ、  １１６…モデルパラメータ、  １２０…操作部、  １３０、２３０、３３０…情報処理部、  １３１…受付部、  １３２…前処理部、  １３３…学習部、  １３４…符号化学習部、  １３５…生成学習部、  １３６…生成部、  １３７…符号化部、  １３８…スケルトンモデル生成部、  １３９…後処理部、  １４０…表示部、  ２００…学習装置、  ３００…生成装置
【図１】
2020113116.tif 000004
【図２】
2020113116.tif 000005
【図３】
2020113116.tif 000006
【図４】
2020113116.tif 000007
【図５】
2020113116.tif 000008
【図６】
2020113116.tif 000009
【図７】
2020113116.tif 000010
【図８】
2020113116.tif 000011
【図９】
2020113116.tif 000012
【図１０】
2020113116.tif 000013
【図１１】
2020113116.tif 000014
【図１２】
2020113116.tif 000015
【図１３】
2020113116.tif 000016