(57)【要約】【課題】骨構造が異なるソースターゲット間で、高精度なモーション移転処理を実行可能とした装置、方法を提供する。【解決手段】モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、モーション移転先のターゲットモデルの骨構造Ｔを、骨構造Ｐに変換する処理と、骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行する。データ処理部は、モーション移転元のソースモデルの骨構造Ｓを骨構造Ｐに変換したソースモデルインスタンスと、モーション移転先のターゲットモデルの骨構造Ｔを骨構造Ｐに変換したターゲットモデルインスタンスを生成し、生成した同一骨構造を有するインスタンス間で、モーション移転処理を実行する。【選択図】図６
2020149396.tif 000002
【特許請求の範囲】
【請求項１】
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部は、
モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、
モーション移転先のターゲットモデルの骨構造Ｔを、前記骨構造Ｐに変換する処理と、
骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行する情報処理装置。
【請求項２】
前記データ処理部は、さらに、
前記モーション移転処理実行後のターゲットモデルの骨構造Ｐを骨構造Ｔに再変換する請求項１に記載の情報処理装置。
【請求項３】
前記データ処理部は、
モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換したソースモデルインスタンスと、
モーション移転先のターゲットモデルの骨構造Ｔを、前記骨構造Ｐに変換したターゲットモデルインスタンスを生成し、
生成した同一骨構造を有するソースモデルインスタンスと、ターゲットモデルインスタンスとの間で、モーション移転処理を実行する請求項１に記載の情報処理装置。
【請求項４】
前記骨構造Ｐは、様々なカテゴリに対応するクラス単位の３次元モデルであるクラスパラメトリックモデルの骨構造である請求項１に記載の情報処理装置。
【請求項５】
前記データ処理部は、
前記クラスパラメトリックモデルと前記ソースモデルのメッシュ上の特徴点間距離、または、メッシュ間距離の少なくともいずれかを最小化するように、前記クラスパラメトリックモデルを、前記ソースモデルにフィットさせるメッシュフィッティング処理を実行して、前記ソースモデルの骨構造Ｓを、骨構造Ｐに変換する請求項４に記載の情報処理装置。
【請求項６】
前記データ処理部は、
前記クラスパラメトリックモデルと前記ターゲットモデルのメッシュ上の特徴点間距離、または、メッシュ間距離の少なくともいずれかを最小化するように、前記クラスパラメトリックモデルを、前記ターゲットモデルにフィットさせるメッシュフィッティング処理を実行して、前記ターゲットモデルの骨構造Ｔを、骨構造Ｐに変換する請求項４に記載の情報処理装置。
【請求項７】
前記データ処理部は、
前記ソースモデルの骨構造とモーション情報、および、
モーション移転後のターゲットモデルの骨構造とモーション情報とを対応付けたデータをデータベースに記録する処理を実行する請求項１に記載の情報処理装置。
【請求項８】
前記データ処理部は、
前記ソースモデルの一部のモーションのみを、前記ターゲットモデルに移転するモーション移転処理を実行する請求項１に記載の情報処理装置。
【請求項９】
前記データ処理部は、
複数のソースモデルから異なる部分の部分的モーションを取得して、前記ターゲットモデルの各部分に前記部分的モーションを移転するモーション移転処理を実行する請求項１に記載の情報処理装置。
【請求項１０】
前記データ処理部は、
複数のソースモデルから取得される複数のモーションに対して、ユーザの設定した重み（係数）による合成処理、または関数を用いた合成処理によって得られる合成モーションを前記ターゲットモデルに移転するモーション移転処理を実行する請求項１に記載の情報処理装置。
【請求項１１】
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部は、
モーションパラメータ変換関数Ｆを用いてソースモデルのモーションパラメータを、ターゲットモデル対応のモーションパラメータに変換し、変換パラメータをターゲットモデルに適用して、ソースモデルのモーションを、前記ソースモデルと異なる骨構造を持つターゲットモデルに移転するモーション移転処理を実行する情報処理装置。
【請求項１２】
前記データ処理部は、
データベースから、同一モーションを有するソースモデルとターゲットモデルのモーションを規定するモーションパラメータを取得し、
取得したモーションパラメータに基づいて、ソースモデルのモーションを示すモーションパラメータＰｓを入力して、ターゲットモデルのモーションを示すモーションパラメータＰｔを算出する前記モーションパラメータ変換関数Ｆを算出する請求項１１に記載の情報処理装置。
【請求項１３】
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部が、
モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、
モーション移転先のターゲットモデルの骨構造Ｔを、前記骨構造Ｐに変換する処理と、
骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行する情報処理方法。
【請求項１４】
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部が、
モーションパラメータ変換関数Ｆを用いてソースモデルのモーションパラメータを、ターゲットモデル対応のモーションパラメータに変換し、変換パラメータをターゲットモデルに適用して、ソースモデルのモーションを、前記ソースモデルと異なる骨構造を持つターゲットモデルに移転するモーション移転処理を実行する情報処理方法。
【請求項１５】
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、
モーション移転先のターゲットモデルの骨構造Ｔを、前記骨構造Ｐに変換する処理と、
骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行させるプログラム。
【請求項１６】
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
モーションパラメータ変換関数Ｆを用いてソースモデルのモーションパラメータを、ターゲットモデル対応のモーションパラメータに変換し、変換パラメータをターゲットモデルに適用して、ソースモデルのモーションを、前記ソースモデルと異なる骨構造を持つターゲットモデルに移転するモーション移転処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、および情報処理方法、並びにプログラムに関する。さらに詳細には、ある１つの３次元（３Ｄ）モデル（ソースモデル）のモーション（姿勢、動き）を別のモデル（ターゲットモデル）に移転するモーション移転処理を実行する情報処理装置、情報処理システム、並びにプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータ・グラフィクス（ＣＧ：Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）技術を用いた３次元（３Ｄ）画像生成技術が、映画やゲームなど様々な分野で利用されている。
【０００３】
例えば、特許文献１（特開２００８−０５２７２６号公報）は、ある１つの３次元（３Ｄ）モデル（ソースモデル）のモーションを別のモデル（ターゲットモデル）に移転して、モーション（姿勢、動き）を再現する構成を開示している。
ソースとターゲットの２つのキャラクタの部分に最小限のトポロジ類似性があれば、これらの間でモーション移転を可能とする構成を開示している。
【０００４】
具体的には、ソースとターゲットの各部分にユーザがタグを付与し、タグ情報を用いて、ソースとターゲット間のマッピングを行い、モーションを移転する構成である。
この処理を行うことで、骨構造を定義することなく、モーションの移転が可能となる。しかし、この手法は、ユーザがソースのどの部分がターゲットのどの部分に対応するかを判別してタグを対応付けることが必要であり、専門的な知識が必要となる。
また、タグの数が少ないと、正確なモーション（姿勢、動き）の移転ができないという問題もある。
【０００５】
正確なタグ対応付けを行い、タグの数を増やすことで、より高精度なモーション移転が可能となるが、こ処理のためには、高度な専門知識と、膨大な作業量が必要となるという問題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−０５２７２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本開示は、例えば上述の問題点に鑑みてなされたものであり、高度な専門知識のないユーザであっても、簡単にある１つの３次元（３Ｄ）モデル（ソースモデル）のモーションを、別のモデル（ターゲットモデル）に移転して再現するモーション移転を可能とした情報処理装置、および情報処理方法、並びにプログラムを提供するものである。
【課題を解決するための手段】
【０００８】
本開示の第１の側面は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部は、
モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、
モーション移転先のターゲットモデルの骨構造Ｔを、前記骨構造Ｐに変換する処理と、
骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行する情報処理装置にある。
【０００９】
さらに、本開示の第２の側面は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部は、
モーションパラメータ変換関数Ｆを用いてソースモデルのモーションパラメータを、ターゲットモデル対応のモーションパラメータに変換し、変換パラメータをターゲットモデルに適用して、ソースモデルのモーションを、前記ソースモデルと異なる骨構造を持つターゲットモデルに移転するモーション移転処理を実行する情報処理装置にある。
【００１０】
さらに、本開示の第３の側面は、
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部が、
モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、
モーション移転先のターゲットモデルの骨構造Ｔを、前記骨構造Ｐに変換する処理と、
骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行する情報処理方法にある。
【００１１】
さらに、本開示の第４の側面は、
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部が、
モーションパラメータ変換関数Ｆを用いてソースモデルのモーションパラメータを、ターゲットモデル対応のモーションパラメータに変換し、変換パラメータをターゲットモデルに適用して、ソースモデルのモーションを、前記ソースモデルと異なる骨構造を持つターゲットモデルに移転するモーション移転処理を実行する情報処理方法にある。
【００１２】
さらに、本開示の第５の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、
モーション移転先のターゲットモデルの骨構造Ｔを、前記骨構造Ｐに変換する処理と、
骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行させるプログラムにある。
【００１３】
さらに、本開示の第６の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
モーションパラメータ変換関数Ｆを用いてソースモデルのモーションパラメータを、ターゲットモデル対応のモーションパラメータに変換し、変換パラメータをターゲットモデルに適用して、ソースモデルのモーションを、前記ソースモデルと異なる骨構造を持つターゲットモデルに移転するモーション移転処理を実行させるプログラムにある。
【００１４】
なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
【００１５】
本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【００１６】
本開示の一実施例の構成によれば、骨構造が異なるソースターゲット間で、高精度なモーション移転処理を実行可能とした装置、方法が実現される。
具体的には、例えば、モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、モーション移転先のターゲットモデルの骨構造Ｔを、骨構造Ｐに変換する処理と、骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行する。データ処理部は、モーション移転元のソースモデルの骨構造Ｓを骨構造Ｐに変換したソースモデルインスタンスと、モーション移転先のターゲットモデルの骨構造Ｔを骨構造Ｐに変換したターゲットモデルインスタンスを生成し、生成した同一骨構造を有するインスタンス間で、モーション移転処理を実行する。
本構成により、骨構造が異なるソースターゲット間で、高精度なモーション移転処理を実行可能とした装置、方法が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
【図面の簡単な説明】
【００１７】
【図１】骨構造の一例について説明する図である。
【図２】骨構造と３次元モデルのモーションとの対応について説明する図である。
【図３】異なる骨構造の例について説明する図である。
【図４】従来処理と、本開示の処理を適用したモーション移転処理例について説明する図である。
【図５】従来処理と、本開示の処理を適用したモーション移転処理例について説明する図である。
【図６】本開示の情報処理装置の構成と処理の一例について説明する図である。
【図７】本開示の情報処理装置の実行する処理とインスタンスやモデルの具体例について説明する図である。
【図８】データベースに格納するデータの具体例について説明する図である。
【図９】本開示の情報処理装置の実行する処理のシーケンスについて説明するフローチャートを示す図である。
【図１０】本開示の情報処理装置の構成と処理の一例について説明する図である。
【図１１】本開示の情報処理装置の実行する処理のシーケンスについて説明するフローチャートを示す図である。
【図１２】情報処理装置のハードウェア構成例について説明する図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しながら本開示の情報処理装置、および情報処理方法、並びにプログラムの詳細について説明する。なお、説明は以下の項目に従って行なう。
１．本開示の情報処理装置の実行する処理の概要について
２．本開示の情報処理装置の構成と実行する処理の詳細について
３．データベースに格納したソースターゲットのモーション対応情報を利用したモーション移転処理例について
４．情報処理装置のハードウェア構成例について
５．本開示の構成のまとめ
【００１９】
［１．本開示の情報処理装置の実行する処理の概要について］
本開示の情報処理装置は、一つの３次元（３Ｄ）モデル（ソースモデル）のモーションを別のモデル（ターゲットモデル）に移転して、モーション（姿勢、動き）を再現する処理を実行する装置である。例えば、ある人物（ソースモデル）のモーション（姿勢、動き）をカメラによって撮影し、その人物のモーション（姿勢、動き）を、表示部に表示される３次元キャラクタ（ターゲットモデル）の動きに反映させるといった処理を行う。
【００２０】
このような３次元モデル間のモーション移転処理の一般的な手法として、モデルの骨構造を用いる手法が知られている。
３次元モデル間のモーション移転には、モデルの骨構造を構成する各骨の移転処理や、回転等のパラメータを用いた処理が実行される。
【００２１】
骨構造の一例を図１に示す。３次元モデルにおいて利用される骨構造は、図１に示すように、人体の頭部、手、足等の部位、肘、肩等の実際の骨構造を簡略的に接続した構成である。
例えば、ソースモデルの骨構造を解析し、解析結果をターゲットモデルの骨構造に反映させることで、３次元モデル間のモーション移転処理が可能となる。
【００２２】
しかし、この骨構造を用いたモーション移転処理は、ソースモデルとターゲットモデルの骨構造が同一である場合には簡単に高精度に実行することが可能であるが、同一の骨構造でない場合は、高精度なモーション移転は困難である。
すなわち、ソースモデルとターゲットモデルの骨構造が異なる場合、モデル間の各骨の動きの移転や、回転等のパラメータを用いた動き再現処理を正確に行うことができなくなる。
【００２３】
本開示の情報処理装置は、この問題を解決するものである。
すなわち、ソースモデルとターゲットモデルの骨構造が異なっていても、モデル間のモーション（姿勢、動き）移転を迅速にかつ正確に行うことを可能とするものである。
【００２４】
本開示の情報処理装置は、クラスパラメトリックモデルをソースモデルとターゲットモデルにフィットさせる処理を行い、各モデルの骨構造だけではなくソースモデルのメッシュの変化をも考慮したモーション移転を行う。
クラスパラメトリックモデルとは、様々なカテゴリ対応のクラス、例えば人物クラス、四脚動物クラス、鳥類クラス等、様々なクラス対応のインスタンスを、パラメータを変更して表すことを可能としたモデルである。すなわち、様々なカテゴリに対応するクラス単位の３次元モデルである。
【００２５】
クラスパラメトリックモデルは、形状パラメータと骨構造のパラメータの両方を持つ。クラスパラメトリックモデルのクラスは、例えば人物、四脚動物等である。
例えば、人物のクラスパラメトリックモデルを生成するには、予め、複数種類の体形の人の３次元形状を取得して、主成分分析の次元削減技術を用いて、人物の形状の空間を数個のパラメータで（基底ベクトルの係数）表すといった処理を行う。
【００２６】
本開示の情報処理装置は、ソースモデルのメッシュ、すなわち、３次元モデルの分割領域である「メッシュ」の形状を考慮する手法を用いてソースモデルの様々なモーションをターゲットモデルに移転する。さらに、このメッシュ形状を考慮したモーション移転情報をデータベースに保存し、データベースに記録された情報を用いてターゲットの骨構造のどの部分がソースの骨構造のどの部分、または複数の部分の組み合わせに依存しているかの関数を推定するといった処理を行う。
【００２７】
また、本開示の処理では、メッシュ形状を考慮したモーション移転を行うものであり、入力としてソースのモーション（骨構造のパラメータ）さえあれば、ターゲットのモーション（骨構造のパラメータ）を高速、例えばリアルタイムに計算することも可能となる。
【００２８】
前述したように、本開示の情報処理装置は、一つの３次元（３Ｄ）モデル（ソースモデル）のモーションを別のモデル（ターゲットモデル）に移転して、動きを再現する処理を実行する。
【００２９】
例えば、ＣＧ（コンピューターグラフィックス）処理を伴う情報処理分野では、様々な３Ｄキャラクタがモデリングされる。一般的なキャラクタモデルはメッシュと骨構造（リグ）で構成される。
【００３０】
骨構造（リグ）は、先に図１を参照して説明したように、人体の頭部、手、足等の部位、肘、肩等の実際の骨構造を簡略的に接続した構成である。
メッシュは、３次元モデルの分割領域である。メッシュはキャラクタモデルのポリゴン面に相当する。
【００３１】
骨構造（リグ）は、３次元モデルに動きなどをつける際の基本的な接続構成として用いられる。骨構造は、関節で接続され、各関節がモデルのポリゴンメッシュと接続される。
【００３２】
３次元モデルの動きを指示するオペレータやユーザは、３次元モデルの関節の位置を移動、または回転させると、この処理に併せて間接に接続されたメッシュも動かせる。この結果、ユーザは、３次元モデルの多数のメッシュの複雑な変形処理を行うことなく、数個の関節の位置の移動や回転処理を行うのみで、３次元モデルキャラクタを様々なポーズに変形させることが可能となる。
【００３３】
骨構造の関節の位置の移動や回転によって実行される３次元モデルの変形例を図２に示す。
図２には、２つの３次元モデルを示している。これらは、いずれも体の同じ位置に関節を持つ同一の骨構造を有する３次元モデルである。
この同一の骨構造の関節の位置の移動や回転によって左のように直立した３次元モデルや、右に示すようにジャンプした３次元モデル等、様々な動き、姿勢の３次元モデルを容易に生成することができる。
【００３４】
しかし、この骨構造の関節位置の移動、回転によって３次元モデルの姿勢（ポーズ）を変更させる場合、ソースモデルとターゲットモデルの骨構造は、同一の骨構造であることが前提である。
ソースモデルとターゲットモデルの骨構造が異なる場合、モデル間の各骨の動きの移転や、回転等のパラメータを用いた動き再現処理を正確に行うことができなくなる。
【００３５】
現状において、３次元モデルに適用される骨構造は一種類ではなく、様々な異なる骨構造が利用されている。例えば、３次元モデルデータを格納したデータベース単位で利用される骨構造は異なっていることが多い。
【００３６】
ソースモデルとターゲットモデルの骨構造が異なる場合、モデル間の各骨の動きの移転や、回転等のパラメータを用いた動き再現処理を正確に行うことができなくなる。
図３に、異なる骨構造の例を示す。
図３には、以下の２種類の骨構造を示している。
（１）骨構造例１
（２）骨構造例２
【００３７】
図３に示す２つの骨構造例１，２は、間接位置が異なっており、異なる骨構造を有する。
例えば、ソースモデルが、図３（１）に示す骨構造例１と同様の骨構造であり、ターゲットモデルが図３（２）に示す骨構造例２と同様の骨構造である場合、モデル間の各骨の動きの移転や、回転等のパラメータを用いた動きや姿勢の再現処理、すなわちモーション移転を正確に行うことができなくなる。
【００３８】
すなわち、骨構造例１と同様の骨構造を持つソースモデルの骨構造を解析して、その解析結果として得られるパラメータを、骨構造例２と同様の骨構造を持つターゲットモデルに適用しても、パラメータの反映位置がずれてしまい、正確な動きや姿勢の再現ができなくなる。
【００３９】
本開示の情報処理装置は、この問題を解決するものである。
すなわち、ソースモデルとターゲットモデルの骨構造が異なっていても、モデル間の各骨の動きの移転や、回転等のパラメータを用いた動きや姿勢の再現処理、すなわちモーション移転を正確に行うことを可能とするものである。
【００４０】
本開示の情報処理装置は、クラスパラメトリックモデルをソースモデルとターゲットモデルにフィットする処理を行い、各モデルの骨構造だけではなくソースモデルのメッシュの変化をも考慮したモーション移転を行う。
なお、前述したように、クラスパラメトリックモデルとは、所定のクラスの様々なインスタンスを、パラメータを変更して表すことを可能としたモデルである。
【００４１】
ソースモデルの姿勢（ポーズ）や動きをターゲットモデルの姿勢や動きに反映させるモーション移転を、本開示の処理、すなわち、クラスパラメトリックモデルを適用して実行した処理例と、従来型のタグ設定によって実行した処理例との比較例を図４に示す。
【００４２】
図４には、ソースモデル１０と、ソースモデル１０の姿勢や動きを再現したターゲットモデル２１，２２を示す例である。
ターゲットモデル２１が、本開示の処理、すなわち、クラスパラメトリックモデルを適用して生成したターゲットモデルである。
一方、ターゲットモデル２２が、従来型のタグ設定によって生成したターゲットモデルである。
【００４３】
なお、ソースモデル１０の骨構造と、ターゲットモデル２１，２２の骨構造は異なっている。
図４に示すターゲットモデル２１、すなわち、クラスパラメトリックモデルを適用して生成したターゲットモデル２１の姿勢は、ソースモデル１０により近い姿勢となっているのが分かる。
一方、従来型のタグ設定によって生成したターゲットモデル２２は、顔の向きが、ほぼ正面であり、やや下向きのソースモデル１０とは異なる姿勢となっている。
これは、骨構造の違いにより、タグの対応付けに位置ずれが発生する等の理由に起因するものである。
【００４４】
図５に、もう一つの例を示す。
図５も、図４と同様、ソースモデル３０と、ソースモデル３０の姿勢や動きを再現したターゲットモデル３１，３２を示す例である。
ターゲットモデル３１が、本開示の処理、すなわち、クラスパラメトリックモデルを適用して生成したターゲットモデルである。
一方、ターゲットモデル３２が、従来型のタグ設定によって生成したターゲットモデルである。
【００４５】
なお、ソースモデル３０の骨構造と、ターゲットモデル３１，３２の骨構造は異なっている。
図５に示すターゲットモデル３１、すなわち、クラスパラメトリックモデルを適用して生成したターゲットモデル３１の姿勢は、ソースモデル３０により近い姿勢となっているのが分かる。
一方、従来型のタグ設定によって生成したターゲットモデル３２は、顔の向きが、ほぼ正面であり、やや上向きのソースモデル３０とは異なる姿勢となっている。
これは、骨構造の違いにより、タグの対応付けに位置ずれが発生する等の理由に起因するものである。
【００４６】
［２．本開示の情報処理装置の構成と処理の詳細について］
次に、図６以下を参照して、本開示の情報処理装置の構成と処理の詳細について説明する。
【００４７】
図６を参照して、本開示の情報処理装置１００の一構成例について説明する。
情報処理装置１００は、入力データとして、以下の３種類のデータを入力する。
ソースモデル１０１、
クラスパラメトリックモデル１０２、
ターゲットモデル１０３、
【００４８】
本開示の情報処理装置１００は、ソースモデル１０１のモーションをターゲットモデル１０３に移転して再現する処理を実行する。
【００４９】
クラスパラメトリックモデル１０２は、パラメータの変更により、様々なクラスの様々なインスタンスを表すことが可能なモデルである。クラスパラメトリックモデル１０２は、形状パラメータと骨構造のパラメータの両方を持つ。クラスパラメトリックモデル１０２のクラスは例えば人物、四脚動物等である。例えば、人物のクラスパラメトリックモデルを生成するには、予め複数種類の体形の人の３次元形状を取得して、主成分分析の次元削減技術を用いて、人物の形状の空間を数個のパラメータで（基底ベクトルの係数）表す。
【００５０】
なお、ソースモデル１０１や、クラスパラメトリックモデル１０２、およびターゲットモデル１０３は、様々な３次元モデルを格納した３次元モデルデータベースから取得することが可能である。
具体的にはゲームキャラクタ等の３次元モデルが利用可能である。ただし、いずれも骨構造情報が属性情報として付加され、利用可能であることが必要である。また、ソースモデル１０１や、クラスパラメトリックモデル１０２についてはモーション情報が取得可能であるか、または解析可能であることが必要である。
【００５１】
なお、モーション情報とは、モデルのモーション（動きや姿勢）を規定する情報であり、例えば骨構造を構成する各骨の配置情報等である。モーション情報は、各骨の配置情報を含み、モーションパラメータとも呼ばれる。骨構造を構成する各骨対応のモーションパラメータによって、そのモデルのモーション（動きや姿勢）が規定される。
【００５２】
なお、以下に説明する実施例では、人物を処理対象とした実施例について説明する。
入力データは、例えば図７に示すように、
ソースモデル１０１、
クラスパラメトリックモデル１０２、
ターゲットモデル１０３、
これら３種類の３次元モデルである。
【００５３】
例えば、クラス＝人物のクラスパラメトリックモデル１０２は、骨構造Ｐを持つ。例えば図３に示す骨構造例１、または骨構造例２等の骨構造である。
これに対して、
ソースモデル１０１の骨構造はＳ、
ターゲットモデル１０３の骨構造はＴであり、
Ｐ≠Ｓ≠Ｔ
である。すなわち、
ソースモデル１０１と、クラスパラメトリックモデル１０２と、ターゲットモデル１０３の骨構造はそれぞれ異なる骨構造である。
【００５４】
なお、本開示の情報処理装置１００は、ソースモデル１０１と、ターゲットモデル１０３の骨構造が異なる場合にも高精度なモーション移転が実行可能となるという効果を奏するものである。ソースモデル１０１と、クラスパラメトリックモデル１０２と、ターゲットモデル１０３の骨構造が全て異なるという条件は必須ではない。
【００５５】
例えば、ソースモデル１０１と、クラスパラメトリックモデル１０２の骨構造が同一である場合や、ターゲットモデル１０３と、クラスパラメトリックモデル１０２の骨構造が同一である場合にも本開示の情報処理装置１００の処理により、ソースモデル１０１からターゲットモデル１０３への高精度なモーション移転が可能となる。
【００５６】
ただし、前述したように、ソースモデル１０１とターゲットモデル１０３の骨構造が異なる場合、ソースモデル１０１の骨構造から得られるソースモデル１０１のモーション（姿勢や動き）を示すパラメータを、異なる骨構造を持つターゲットモデル１０３に正しく反映させることができず、正確なモーション移転を行うことができない。
【００５７】
図６に示すように、入力データは、
ソースモデル１０１の骨構造Ｓと、モーション情報、
クラスパラメトリックモデル１０２の骨構造Ｐと、形状、モーション情報、
ターゲットモデル１０３の骨構造Ｔ、
これらの各データである。
【００５８】
情報処理装置１００のソースモデルメッシュフィッティング部１１１は、ソースモデル１０１と、クラスパラメトリックモデル１０２のメッシュフィッティング処理を行い、ソースモデルインスタンス１２１を生成する。
メッシュフィッティングとは、クラスパラメトリックモデル１０２のパラメータを変更して、入力ソースモデル１０１に一致するクラスのインスタンスを表す３Ｄモデル化オブジェクト、すなわちソースモデルインスタンス１２１を生成する処理である。
【００５９】
メッシュフィッティング処理は、例えば、クラスパラメトリックモデル１０２のメッシュ上の特徴点と、入力ソースモデル１０１のメッシュ上の特徴点間の距離、または、クラスパラメトリックモデル１０２とソースモデル１０１のメッシュ間距離、これらの少なくともいずれかをパラメータの変更で最小化するように、クラスパラメトリックモデル１０２を、入力ソースモデル１０１にフィットさせる処理を実行する。
【００６０】
なお、特徴点検出処理や、メッシュ間距離最小化手法は、既存の手法が適用可能である。例えば、特徴点検出処理としてはＯｐｅｎＰｏｓｅ手法、メッシュ間距離最小化手法としてはＩＣＰ方法等が適用できる。
【００６１】
ソースモデルメッシュフィッティング部１１１がメッシュフィッティング処理により実行する具体的な処理は、ソースモデル１０１の骨構造Ｓをクラスパラメトリックモデル１０２の骨構造Ｐと同じ骨構造Ｐに変換する処理である。
なお、この処理により、元々の骨構造Ｓの入力ソースモデル１０１のモーション（動きや姿勢）は、骨構造Ｐのソースモデルインスタンス１２１に反映され、入力ソースモデル１０１のモーションと同じモーションを持つ骨構造Ｐのソースモデルインスタンス１２１が生成されることになる。
【００６２】
このように、ソースモデルメッシュフィッティング部１１１は、ソースモデル１０１と、クラスパラメトリックモデル１０２のメッシュフィッティング処理を行い、ソースモデルインスタンス１２１を生成する。
ソースモデルメッシュフィッティング部１１１が生成するソースモデルインスタンス１２１は、骨構造がクラスパラメトリックモデル１０２の骨構造Ｐと同じ骨構造Ｐを有する。
【００６３】
また、元のソースモデル１０１が骨構造Ｓの下で有していた動き情報は、クラスパラメトリックモデル１０２の骨構造Ｐに対応するように変換（正規化）された正規化モーション情報となる。
【００６４】
一方、ターゲットモデルメッシュフィッティング部１１２は、ターゲットモデル１０３と、クラスパラメトリックモデル１０２を入力して、メッシュフィッティング処理を行い、ターゲットモデルインスタンス１２２を生成する。
【００６５】
ターゲットモデルメッシュフィッティング部１１２は、クラスパラメトリックモデル１０２のメッシュ上の特徴点と、入力ターゲットモデル１０３のメッシュ上の特徴点間の距離、または、クラスパラメトリックモデル１０２とターゲットモデル１０３のメッシュ間距離、これらの少なくともいずれかをパラメータの変更で最小化するように、クラスパラメトリックモデル１０２を、入力ターゲットモデル１０３にフィットさせる処理を実行する。
【００６６】
ターゲットモデルメッシュフィッティング部１１２におけるメッシュフィッティング処理によって、ターゲットモデル１０３の骨構造Ｔが、クラスパラメトリックモデル１０２の骨構造Ｐと同じ骨構造Ｐに変換される。
【００６７】
図７の中段に、ソースモデルメッシュフィッティング部１１１が生成するソースモデルインスタンス１２１と、ターゲットモデルメッシュフィッティング部１１２が生成するターゲットモデルインスタンス１２２の例を示す。
ソースモデルインスタンス１２１と、ターゲットモデルインスタンス１２２は、いずれも同じ骨構造Ｐ、すなわち、クラスパラメトリックモデル１０２の骨構造Ｐと同じ骨構造を有する。
【００６８】
ソースモデルメッシュフィッティング部１１１が生成するソースモデルインスタンス１２１と、
ターゲットモデルメッシュフィッティング部１１２が生成するターゲットモデルインスタンス１２２、
これら２つのインスタンスは、モーション移転部１２３に入力される。
【００６９】
モーション移転部１２３は、ソースモデルインスタンス１２１の姿勢、モーションを、ターゲットモデルインスタンス１２２に移転するモーション移転処理を実行して、モーション移転ターゲットモデルインスタンス１２４を生成する。
【００７０】
ソースモデルインスタンス１２１と、ターゲットモデルインスタンス１２２は、いずれも同じ骨構造Ｐを有しており、ソースモデルインスタンス１２１の骨構造の解析によって得られるパラメータ、例えば関節のや回転量を示すパラメータを取得して、ターゲットモデルインスタンス１２２の骨構造に反映させることで、ソースターゲット間の正確な姿勢、動きの移転処理、すなわちモーション移転処理を行うことができる。なお、モーション移転処理に際しては、例えば、手や足等の位置調整のための処理として逆運動学の数式を用いた解析処理により、手や足等の微妙な位置や角度の調整を行う構成としてもよい。
【００７１】
このように、モーション移転部１２３は、ソースモデルインスタンス１２１の姿勢、モーションを、ターゲットモデルインスタンス１２２に移転する処理を行い、この処理結果として、モーション移転ターゲットモデルインスタンス１２４を生成する。
【００７２】
モーション移転部１２３の生成したモーション移転ターゲットモデルインスタンス１２４の例を図７の下段に示す。
モーション移転ターゲットモデルインスタンス１２４は、クラスパラメトリックモデル１０２の骨構造Ｐと同じ骨構造を有する。
また、姿勢、動きは、ソースモデルインスタンス１２１の姿勢、動きを反映した姿勢、動き、すなわちリターゲット正規化モーションを有する。
【００７３】
このモーション移転部１２３の生成したモーション移転ターゲットモデルインスタンス１２４を最終出力としてもよいが、このモーション移転ターゲットモデルインスタンス１２４は、入力データであるターゲットモデル１０３の骨構造Ｔと、異なる骨構造Ｐを有する。
従って、オプション処理として、骨構造Ｐを有するモーション移転ターゲットモデルインスタンス１２４を、入力データであるターゲットモデル１０３の骨構造Ｔに戻す処理を行ってもよい。
【００７４】
この処理を行うのが、モーション移転ターゲットモデル変換部１２５である。
モーション移転ターゲットモデル変換部１２５は、モーション移転部１２３が生成したモーション移転ターゲットモデルインスタンス１２４と、入力データであるターゲットモデル１０３を入力する。
モーション移転ターゲットモデル変換部１２５は、これら２つのモデルを適用して、モーション移転ターゲットモデルインスタンス１２４の骨構造変換処理を実行して、モーション移転ターゲットモデル１２６を生成する。
モーション移転ターゲットモデル１２６は、入力データであるターゲットモデル１０３の骨構造Ｔを有する。
【００７５】
モーション移転ターゲットモデル変換部１２５が実行する具体的な処理は、モーション移転ターゲットモデルインスタンス１２４のメッシュ上の特徴点と、入力ターゲットモデル１０３のメッシュ上の特徴点間の距離、または、モーション移転ターゲットモデルインスタンス１２４と入力ターゲットモデル１０３のメッシュ間距離、これらの少なくともいずれかを入力ターゲットモデル１０３の骨構造Ｔのパラメータの変更で最小化するように、入力ターゲットモデル１０３を、モーション移転ターゲットモデルインスタンス１２４にフィットさせる処理である。すなわち、モーション移転ターゲットモデルインスタンス１２４との同一のモーションを持つモーション移転ターゲットモデル１２６を生成する。
この結果として、モーション移転ターゲットモデル１２６が生成される。
【００７６】
モーション移転ターゲットモデル１２６は、入力データであるターゲットモデル１０３の骨構造Ｔを有し、ソースモデル１０１の姿勢、動きを反映した姿勢、動きを有する３次元モデルとなる。
すなわち、ソースモデルの姿勢、動きを高精度に再現したターゲットモデルが生成される。
【００７７】
なお、データベース１３０には、入力データとしてのソースモデル１０１の骨構造Ｓと、モーションを示すパラメータと、モーション移転ターゲットモデル１２６の骨構造Ｔと、モーションを示すパラメータの対応データが格納される。
モーションを示すパラメータは、具体的には、例えば、骨構造を構成する各骨の配置を示すパラメータである。このパラメータは、モデルのモーション（動き、姿勢）に応じて異なる値となる。
データベース１３０には、３次元モデル自体は格納しても格納しなくてもよい。
【００７８】
図８を参照して、データベース１３０に格納されるデータの例について説明する。
図８に示す（ａ），（ｂ），（ｃ）・・・の各データがデータベース１３０に格納されるデータの例である。
図８の下部に示す３次元モデルは参考データであり、データベースには格納されない。
データベース１３０には、様々な動きに対応するソースモデル、およびターゲットモデルの（骨構造、モーション）情報を示すデータが対応付けて格納される。
【００７９】
このデータベース１３０の格納データは、その後のモーション移転処理に利用される。
データベース１３０格納データを利用したモーション移転処理の具体例については、後段で説明する。
【００８０】
次に、図９に示すフローチャートを参照して、本開示の情報処理装置１００が実行する処理のシーケンスについて説明する。
なお、図９に示すフローチャートに従った処理は、例えば、情報処理装置１００の記憶部に格納されたプログラムに従って、プログラム実行機能を持つＣＰＵ等を備えたコントローラからなるデータ処理部の制御の下に実行される。
図９に示すフローの各ステップの処理について、順次、説明する。
【００８１】
（ステップＳ１０１）
まず、情報処理装置１００は、ステップＳ１０１において、入力ソースモデルの骨構造とモーション情報をＤＢに保存する。
【００８２】
この処理は、図６に示す入力データであるソースモデル１０１の（骨構造、モーション）情報をデータベース１３０に格納する処理である。
【００８３】
モーション情報は、具体的には、例えば、骨構造を構成する各骨の配置を示すパラメータである。このパラメータは、ソースモデルのモーション（動き、姿勢）に応じて異なる値となる。
【００８４】
（ステップＳ１０２）
次に、情報処理装置１００は、ステップＳ１０２において、クラスパラメトリックモデルを入力ソースモデルにフィットさせるメッシュフィッティングを実行して、ソースモデルインスタンスを生成する。
【００８５】
この処理は、図６に示すソースモデルメッシュフィッティング部１１１の実行する処理である。
ソースモデルメッシュフィッティング部１１１は、ソースモデル１０１と、クラスパラメトリックモデル１０２のメッシュフィッティング処理を行い、ソースモデルインスタンス１２１を生成する。
【００８６】
例えば、クラスパラメトリックモデル１０２のメッシュ上の特徴点と、入力ソースモデル１０１のメッシュ上の特徴点間の距離、または、クラスパラメトリックモデル１０２とソースモデル１０１のメッシュ間距離、これらの少なくともいずれかをパラメータの変更で最小化するように、クラスパラメトリックモデル１０２を、入力ソースモデル１０１にフィットさせる処理を実行する。
【００８７】
この処理により、元々の骨構造Ｓの入力ソースモデル１０１のモーションは、骨構造Ｐのソースモデルインスタンス１２１に反映され、入力ソースモデル１０１のモーションと同じモーションを持つ骨構造Ｐのソースモデルインスタンス１２１が生成される。
【００８８】
（ステップＳ１０３）
次に、情報処理装置１００は、ステップＳ１０３において、クラスパラメトリックモデルを入力ターゲットモデルにフィットさせるメッシュフィッティングを実行して、
ターゲットモデルインスタンスを生成する。
【００８９】
この処理は、図６に示すターゲットモデルメッシュフィッティング部１１２の実行する処理である。
ターゲットモデルメッシュフィッティング部１１２は、クラスパラメトリックモデル１０２のメッシュ上の特徴点と、入力ターゲットモデル１０３のメッシュ上の特徴点間の距離、または、クラスパラメトリックモデル１０２とターゲットモデル１０３のメッシュ間距離、これらの少なくともいずれかをパラメータの変更で最小化するように、クラスパラメトリックモデル１０２を、入力ターゲットモデル１０３にフィットさせる処理を実行する。
【００９０】
この処理により、ターゲットモデル１０３の骨構造Ｔが、クラスパラメトリックモデル１０２の骨構造Ｐと同じ骨構造Ｐに変換される。
【００９１】
（ステップＳ１０４）
次に、情報処理装置１００は、ステップＳ１０４において、ソースモデルインスタンスからターゲットモデルインスタンスにモーションを移転して、モーション移転ターゲットモデルインスタンスを生成する。
【００９２】
この処理は、図６に示すモーション移転部１２３が実行する処理である。
モーション移転部１２３は、ソースモデルインスタンス１２１の姿勢、モーションを、ターゲットモデルインスタンス１２２に移転するモーション移転処理を実行して、モーション移転ターゲットモデルインスタンス１２４を生成する。
【００９３】
ソースモデルインスタンス１２１と、ターゲットモデルインスタンス１２２は、いずれも同じ骨構造Ｐを有しており、ソースモデルインスタンス１２１の骨構造の解析によって得られるパラメータ、例えば関節の位置や回転量を示すパラメータを取得して、ターゲットモデルインスタンス１２２の骨構造に反映させることで、ソースターゲット間の正確な姿勢、動きの移転処理、すなわちモーション移転処理を行うことができる。
【００９４】
（ステップＳ１０５）
次に、情報処理装置１００は、ステップＳ１０５において、入力ターゲットモデルをターゲットインスタンスにフィットさせるメッシュフィッティングを実行し、ターゲットインスタンスの骨構造を入力ターゲットモデルの骨構造に再変換して、モーション移転ターゲットモデルを生成する。
【００９５】
この処理は、図６に示すモーション移転ターゲットモデル変換部１２５が実行する処理である。
先に図６を参照して説明したように、この処理はオプション処理である。
このステップＳ１０５の処理は、骨構造Ｐを有するモーション移転ターゲットモデルインスタンス１２４を、入力データであるターゲットモデル１０３の骨構造Ｔに戻す処理である。
【００９６】
モーション移転ターゲットモデル変換部１２５は、モーション移転部１２３が生成したモーション移転ターゲットモデルインスタンス１２４と、入力データであるターゲットモデル１０３を入力する。
モーション移転ターゲットモデル変換部１２５は、これら２つのモデルを適用して、モーション移転ターゲットモデルインスタンス１２４の骨構造変換処理を実行して、モーション移転ターゲットモデル１２６を生成する。
モーション移転ターゲットモデル１２６は、入力データであるターゲットモデル１０３の骨構造Ｔを有する。
【００９７】
（ステップＳ１０６）
最後に、情報処理装置１００は、ステップＳ１０６において、モーション移転ターゲットモデルの骨構造とモーション情報をＤＢに保存する。
【００９８】
この処理は、図６に示すモーション移転ターゲットモデル変換部１２５が、最終的なモーション移転ターゲット３次元モデルとして生成したモーション移転ターゲットモデル１２６の（骨構造、モーション）情報をデータベース１３０に格納する処理である。
【００９９】
モーション情報は、具体的には、例えば、骨構造を構成する各骨の配置を示すパラメータである。このパラメータは、ターゲットモデルのモーション（動き、姿勢）に応じて異なる値となる。
【０１００】
このデータベース格納処理の結果として、先に図８を参照して説明したデータがデータベース１３０に格納される。
すなわち、データベース１３０には、入力データとしてのソースモデル１０１の骨構造Ｓと、モーションを示すパラメータと、モーション移転ターゲットモデル１２６の骨構造Ｔと、モーションを示すパラメータの対応データが格納される。
このデータベース１３０の格納データは、その後のモーション移転処理に利用される。
【０１０１】
なお、上述した実施例では、１つのソースモデルを用いて、その１つのソースモデルから取得した全てのモーションを１つのターゲットモデルに移転するモーション移転処理を行う実施例について説明したが、例えば、ソースモデルの一部のモーションのみを、ターゲットモデルに移転するモーション移転処理を実行する構成としてもよい。
【０１０２】
さらに、複数のソースモデルから異なる部分の部分的モーションを取得して、ターゲットモデルの各部分に前記部分的モーションを移転するモーション移転処理を実行する構成としてもよい。
また、複数のソースモデルから取得される複数のモーションに対して、ユーザの設定した重み（係数）による合成処理、または関数を用いた合成処理によって得られる合成モーションをターゲットモデルに移転するモーション移転処理を実行することも可能である。
【０１０３】
［３．データベースに格納したソースターゲットのモーション対応情報を利用したモーション移転処理例について］
次に、実施例２として、データベースに格納したソースターゲットのモーション対応情報を利用したモーション移転処理例について説明する。
【０１０４】
上述した実施例では、クラスパラメトリックモデルを利用して骨構造の異なるソースモデルからターゲットモデルへのモーション移転を実行する構成について説明した。
【０１０５】
上述した実施例に従ったソースモデルからターゲットモデルへのモーション移転処理を、数多く実行すると、データベース１３０には、様々なモーションに対応するソースモデルとターゲットモデルの（骨構造、モーション）情報の対応データが蓄積される。
【０１０６】
以下に示す第２実施例は、このデータベースに格納されたデータを利用することで、骨構造の異なるソースモデルからターゲットモデルへのモーション移転を実行する実施例である。
本実施例では、クラスパラメトリックモデルを利用することなく、骨構造の異なるソースモデルからターゲットモデルへのモーション移転を実行することが可能となる。
【０１０７】
図１０は、本実施例の情報処理装置２００の一構成例を示す図である。
図１０を参照して、本実施例の情報処理装置２００の構成と実行する処理について説明する。
情報処理装置２００は、入力データとして、以下の２種類のデータを入力する。
ソースモデル１０１、
ターゲットモデル１０３、
【０１０８】
情報処理装置２００は、ソースモデル１０１のモーションをターゲットモデル１０３に移転して再現する処理を実行する。
【０１０９】
データベース１３０は、先に図６を参照して説明した情報処理装置１００のデータベース１３０である。
データベース１３０には、先に図８を参照して説明したように、様々なモーションに対応するソースモデルとターゲットモデルの（骨構造、モーション）情報の対応データが格納されている。
【０１１０】
モーション情報は、具体的には、例えば、骨構造を構成する各骨の配置を示すパラメータである。このパラメータは、モデルのモーション（動き、姿勢）に応じて異なる値となる。
【０１１１】
図１０に示すモーションパラメータ変換関数算出部１３３は、データベース１３０から、ソースモデルとターゲットモデルの（骨構造、モーション）情報の対応データを取り出す。
図１０に示すソースモデルモーション情報１３１と、リターゲットモーション情報１３２である。
なお、これらの情報はデータベースに同じ動き単位のソース／ターゲット対応動き情報として格納されている。
先に図８を参照して説明した（ａ），（ｂ），（ｃ）等の対応データである。
【０１１２】
モーションパラメータ変換関数算出部１３３は、データベース１３０から、ソースモデルとターゲットモデルの（骨構造、モーション）情報の対応データを、多数、取得する。
モーションパラメータ変換関数算出部１３３は、これらの対応データに基づいて、ターゲットの骨構造のどの部分がソースの骨構造のどの部分（または複数の部分の組み合わせ）に対応しているかを示す関数、すなわち「モーションパラメータ変換関数」を算出する。
図１０に示すモーションパラメータ変換関数１３４を生成する。
【０１１３】
モーションパラメータ変換関数Ｆは、ソースモデルのモーションを示すモーションパラメータＰｓを入力して、ターゲットモデルのモーションを示すモーションパラメータＰｔを算出する関数である。すなわち、
Ｐｔ＝Ｆ（Ｐｓ）・・・（式１）
上記（式１）に示す関数Ｆを算出する。
【０１１４】
すなわち、様々な動きを持つソースモデル１０１の動き情報パラメータ（Ｐｓ）を、上記のモーションパラメータ変換関数Ｆに基づいて変換することで、ターゲットモデルのモーションを示すモーションパラメータＰｔを算出することができる。
【０１１５】
このターゲットモデルのモーションを示すモーションパラメータＰｔは、ソースモデルの動き情報パラメータ（Ｐｓ）によって規定されるソースモデルのモーションと同じ動きをターゲットモデルに再現させるためモーションパラメータである。
【０１１６】
図１０に示すように、モーション移転元であるソースモデル１０１、すなわち入力データ中のソースモデル１０１から動き情報パラメータＰｓを取得して、モーションパラメータ変換関数Ｆ，１３４に基づく変換処理を行い、ターゲットモデルのモーションを示すモーションパラメータＰｔを算出する。
【０１１７】
この算出したモーションパラメータＰｔを、入力データであるターゲットモデル１０３に適用することで、ソースモデルのモーションと同じ動きを持つターゲットモデル、すなわち、図１０に示すモーション移転ターゲットモデル１５０を生成することができる。
【０１１８】
なお、モーションパラメータ変換関数Ｆの算出方法としては、様々な方法が適用可能である。例えば、ソースとターゲットの骨構造が異なることを前提とした線形回帰を用いて関数を算出することが可能である。
【０１１９】
例えば、データベースに格納されているあるモーションに対応するソースモデルの骨構造のパラメータを、
Ｓ＝｛ｓｉ｜ｉ∈ソースの骨｝、
とする。
ｓ１，ｓ２，ｓ３・・・は、例えば、データベースに格納されているあるモーションに対応するソースモデルの骨各々に対応するパラメータである。骨構造パラメータをユークリッド変換として表すときのｉ番目の係数である。この係数によって、各骨の配置（位置、角度等）が決定される。
【０１２０】
さらに、データベースに上記ソースに対応付けて格納されているターゲットの骨構造のパラメータ、すなわち、上記ソースと同じ動きを示すターゲットの骨構造のパラメータを、
Ｔ＝｛ｔｉ｜ｉ∈ターゲットの骨｝、
とする。
ｔ１，ｔ２，ｔ３・・・は、データベースに格納されているターゲットモデルの骨各々に対応するパラメータである。骨構造パラメータをユークリッド変換として表すときのｉ番目の係数である。この係数によって、各骨の配置（位置、角度等）が決定される。
【０１２１】
ここで、ターゲットの骨構造のｉ番目のパラメータ係数ｔｉを、以下に示す（式２）、すなわち、
ｔｉ＝Σｊｃｉｊｓｊ・・・（式２）
ただし、ｃｉｊは係数、
上記（式２）に示すように、
ｔｉをｓ１，ｓ２，・・・，ｓｎ、の線形結合として表現する。
ただし、ｎは、ソースの骨構造の骨の数であり、ｊ＝１〜ｎである。
【０１２２】
先に図８を参照して説明したように、データベース１３０には、多数の異なるモーションに対応するソースとターゲットのモーションパラメータのペアデータが格納されている。
【０１２３】
モーションパラメータ変換関数算出部１３３は、これらのデータベース１３０に格納された多数のペアデータを用いて、上記（式２）の係数ｃｉｊを推定する。
例えば、線形最小二乗法を利用して推定することが可能である。
【０１２４】
このように、ターゲットの骨構造のｉ番目のパラメータ係数ｔｉに対応する係数ｃｉｊが推定できる。
これを、ターゲットの骨構造のすべての骨、すなわち
ｉ＝１〜ｍ、
ただし、ｍはターゲットモデルの骨構造を構成する骨の数、
について、全て実行し、
ｉ＝１〜ｍ、全てに対応する係数ｃｉｊを算出する。
【０１２５】
このようにして算出した、ｉ＝１〜ｍ、全てに対応する係数ｃｉｊを用いて、先に説明したモーションパラメータ変換関数Ｆ、すなわち、
Ｐｔ＝Ｆ（Ｐｓ）・・・（式１）
上記（式１）に示す関数Ｆを算出する。
この変換関数Ｆは、ソースモデルのモーションを示すモーションパラメータＰｓを入力して、ターゲットモデルのモーションを示すモーションパラメータＰｔを算出する関数である。
【０１２６】
モーションパラメータ変換関数算出部１３３は、このようにして、データベース１３０から取得したソースモデルとターゲットモデルの（骨構造、モーション）情報の対応データを用いて、上記（式１）に示す関数、すなわちモーションパラメータ変換関数を算出する。
【０１２７】
このように本実施例２においては、データベース１３０に格納されたデータを利用することで、骨構造の異なるソースモデルからターゲットモデルへのモーション移転を行うための変換関数、すなわち、モーションパラメータ変換関数を算出し、算出した関数を適用して、骨構造の異なるソースモデルからターゲットモデルへのモーション移転を実行する。
【０１２８】
次に、図１１に示すフローチャートを参照して、本実施例の情報処理装置２００が実行する処理のシーケンスについて説明する。
なお、図１１に示すフローチャートに従った処理は、例えば、情報処理装置２００の記憶部に格納されたプログラムに従って、プログラム実行機能を持つＣＰＵ等を備えたコントローラからなるデータ処理部の制御の下に実行される。
図１１に示すフローの各ステップの処理について、順次、説明する。
【０１２９】
（ステップＳ２０１）
まず、情報処理装置２００は、ステップＳ２０１において、データベースに格納されたソースモデルのモーション情報と、ターゲットモデルのモーション情報を取得する。
【０１３０】
この処理は図１０に示すモーションパラメータ変換関数算出部１３３が実行する処理である。
モーションパラメータ変換関数算出部１３３は、データベース１３０から、ソースモデルとターゲットモデルのモーション情報の対応データを取り出す。
【０１３１】
モーション情報は、具体的には、例えば、骨構造を構成する各骨の配置を示すパラメータである。このパラメータは、モデルのモーション（動き、姿勢）に応じて異なる値となる。
【０１３２】
（ステップＳ２０２）
次に、情報処理装置２００は、ステップＳ２０２において、データベースから取得したパラメータ（モーションパラメータ）を用いて、ソースモデルのモーションを、ターゲットモデルのモーションに変換する関数（モーションパラメータ変換関数）を算出する。
【０１３３】
この処理も図１０に示すモーションパラメータ変換関数算出部１３３が実行する処理である。
モーションパラメータ変換関数算出部１３３は、ソースモデルのモーションを示すモーションパラメータＰｓを入力して、ターゲットモデルのモーションを示すモーションパラメータＰｔを算出する関数、すなわち、以下に示すモーションパラメータ変換関数を算出する。
Ｐｔ＝Ｆ（Ｐｓ）・・・（式１）
【０１３４】
様々な動きを持つソースモデルの動き情報パラメータ（Ｐｓ）を、上記のモーションパラメータ変換関数Ｆに基づいて変換することで、ターゲットモデルのモーションを示すモーションパラメータＰｔを算出することができる
【０１３５】
（ステップＳ２０３）
次に、情報処理装置２００は、ステップＳ２０３において、モーションパラメータ変換関数を適用して、ソースモデルのモーションパラメータを、ターゲットモデル対応のモーションパラメータに変換し、変換パラメータをターゲットモデルに適用する。この処理によって、ソースモデルのモーションを、ターゲットモデルに移転する。
この処理は、図６に示すモーションパラメータ変換関数１３４を適用した処理である。
【０１３６】
図１０に示すように、モーション移転元であるソースモデル１０１、すなわち入力データ中のソースモデル１０１から動き情報パラメータＰｓを取得して、モーションパラメータ変換関数Ｆ，１３４に基づくパラメータ変換処理を行い、ターゲットモデルのモーションを示すモーションパラメータＰｔを算出する。
【０１３７】
この算出したモーションパラメータＰｔを、入力データであるターゲットモデル１０３に適用することで、ソースモデルのモーションと同じ動きを持つターゲットモデル、すなわち、図１０に示すモーション移転ターゲットモデル１５０を生成する。
【０１３８】
このように本実施例２においては、データベース１３０に格納されたデータを利用することで、骨構造の異なるソースモデルからターゲットモデルへのモーション移転を行うための変換関数、すなわち、モーションパラメータ変換関数を算出し、算出関数を適用して、骨構造の異なるソースモデルからターゲットモデルへのモーション移転を実行する。
【０１３９】
［４．情報処理装置のハードウェア構成例について］
次に、図１２を参照して本開示の情報処理装置のハードウェア構成例について説明する。
本開示の情報処理装置は、例えば、具体的には、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理装置によって構成することが可能である。
【０１４０】
図１２に示すように情報処理装置３００は、コントローラ３０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３、入出力インタフェース３０５、および、これらを互いに接続するバス３０４を備える。
【０１４１】
コントローラ３０１は、必要に応じてＲＡＭ３０３等に適宜アクセスし、各種演算処理を行いながら情報処理装置３００の各ブロック全体を統括的に制御する。コントローラ３０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等であってもよい。ＲＯＭ３０２は、コントローラ３０１に実行させるＯＳ、プログラムや各種パラメータなどのファームウェアが固定的に記憶されている不揮発性のメモリである。ＲＡＭ３０３は、コントローラ３０１の作業用領域等として用いられ、ＯＳ、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。
【０１４２】
入出力インタフェース３０５には、入力部３０６、出力部３０７、記憶部３０８、通信部３０９、および、リムーバブルメディア３１１を装着可能なドライブ３１０等が接続される。
なお、入出力インタフェース１０５は、これらの各要素の他、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子やＩＥＥＥ端子等を介して外部周辺機器と接続可能に構成されてもよい。
【０１４３】
入力部３０６は、例えば、撮像画像の入力処理や、ユーザの操作情報等を入力可能な入力部である。入力部３０６が撮像部を有する構成としてもよい。
入力部３０６には、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の入力装置も含まれる。
出力部３０７は、例えば表示部に対するデータ出力を行う。出力部３０７が表示部を有する構成としてもよい。
【０１４４】
記憶部３０８は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や、フラッシュメモリ（ＳＳＤ；Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、その他の固体メモリ等の不揮発性メモリである。記憶部３０８には、ＯＳや各種アプリケーション、各種データが記憶される。記憶部３０８は、また、入力画像や、画像情報、生成した出力画像等の記憶領域としても利用される。
【０１４５】
通信部３０９は、例えばＥｔｈｅｒｎｅｔ（登録商標）用のＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）であり、ネットワークを介した通信処理を担う。
【０１４６】
ドライブ３１０は、リムーバブルメディア３１１を利用したデータ記録、再生処理に利用される。
リムーバブルメディア３１１は、例えばＢＤ、ＤＶＤ、ＣＤ、ＨＤＤ、フラッシュメモリ等によって構成される。
【０１４７】
［５．本開示の構成のまとめ］
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０１４８】
なお、本明細書において開示した技術は、以下のような構成をとることができる。
（１）  ３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部は、
モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、
モーション移転先のターゲットモデルの骨構造Ｔを、前記骨構造Ｐに変換する処理と、
骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行する情報処理装置。
【０１４９】
（２）  前記データ処理部は、さらに、
前記モーション移転処理実行後のターゲットモデルの骨構造Ｐを骨構造Ｔに再変換する（１）に記載の情報処理装置。
【０１５０】
（３）  前記データ処理部は、
モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換したソースモデルインスタンスと、
モーション移転先のターゲットモデルの骨構造Ｔを、前記骨構造Ｐに変換したターゲットモデルインスタンスを生成し、
生成した同一骨構造を有するソースモデルインスタンスと、ターゲットモデルインスタンスとの間で、モーション移転処理を実行する（１）または（２）に記載の情報処理装置。
【０１５１】
（４）  前記骨構造Ｐは、様々なカテゴリに対応するクラス単位の３次元モデルであるクラスパラメトリックモデルの骨構造である（１）〜（３）いずれかに記載の情報処理装置。
【０１５２】
（５）  前記データ処理部は、
前記クラスパラメトリックモデルと前記ソースモデルのメッシュ上の特徴点間距離、または、メッシュ間距離の少なくともいずれかを最小化するように、前記クラスパラメトリックモデルを、前記ソースモデルにフィットさせるメッシュフィッティング処理を実行して、前記ソースモデルの骨構造Ｓを、骨構造Ｐに変換する（４）に記載の情報処理装置。
【０１５３】
（６）  前記データ処理部は、
前記クラスパラメトリックモデルと前記ターゲットモデルのメッシュ上の特徴点間距離、または、メッシュ間距離の少なくともいずれかを最小化するように、前記クラスパラメトリックモデルを、前記ターゲットモデルにフィットさせるメッシュフィッティング処理を実行して、前記ターゲットモデルの骨構造Ｔを、骨構造Ｐに変換する（４）または（５）に記載の情報処理装置。
【０１５４】
（７）  前記データ処理部は、
前記ソースモデルの骨構造とモーション情報、および、
モーション移転後のターゲットモデルの骨構造とモーション情報とを対応付けたデータをデータベースに記録する処理を実行する（１）〜（６）いずれかに記載の情報処理装置。
【０１５５】
（８）  前記データ処理部は、
前記ソースモデルの一部のモーションのみを、前記ターゲットモデルに移転するモーション移転処理を実行する（１）〜（７）いずれかに記載の情報処理装置。
【０１５６】
（９）  前記データ処理部は、
複数のソースモデルから異なる部分の部分的モーションを取得して、前記ターゲットモデルの各部分に前記部分的モーションを移転するモーション移転処理を実行する（１）〜（７）いずれかに記載の情報処理装置。
【０１５７】
（１０）  前記データ処理部は、
複数のソースモデルから取得される複数のモーションに対して、ユーザの設定した重み（係数）による合成処理、または関数を用いた合成処理によって得られる合成モーションを前記ターゲットモデルに移転するモーション移転処理を実行する（１）〜（７）いずれかに記載の情報処理装置。
【０１５８】
（１１）  ３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部は、
モーションパラメータ変換関数Ｆを用いてソースモデルのモーションパラメータを、ターゲットモデル対応のモーションパラメータに変換し、変換パラメータをターゲットモデルに適用して、ソースモデルのモーションを、前記ソースモデルと異なる骨構造を持つターゲットモデルに移転するモーション移転処理を実行する情報処理装置。
【０１５９】
（１２）  前記データ処理部は、
データベースから、同一モーションを有するソースモデルとターゲットモデルのモーションを規定するモーションパラメータを取得し、
取得したモーションパラメータに基づいて、ソースモデルのモーションを示すモーションパラメータＰｓを入力して、ターゲットモデルのモーションを示すモーションパラメータＰｔを算出する前記モーションパラメータ変換関数Ｆを算出する（１１）に記載の情報処理装置。
【０１６０】
（１３）  情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部が、
モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、
モーション移転先のターゲットモデルの骨構造Ｔを、前記骨構造Ｐに変換する処理と、
骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行する情報処理方法。
【０１６１】
（１４）  情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記データ処理部が、
モーションパラメータ変換関数Ｆを用いてソースモデルのモーションパラメータを、ターゲットモデル対応のモーションパラメータに変換し、変換パラメータをターゲットモデルに適用して、ソースモデルのモーションを、前記ソースモデルと異なる骨構造を持つターゲットモデルに移転するモーション移転処理を実行する情報処理方法。
【０１６２】
（１５）  情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、
モーション移転先のターゲットモデルの骨構造Ｔを、前記骨構造Ｐに変換する処理と、
骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行させるプログラム。
【０１６３】
（１６）  情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
３次元モデル間のモーション移転を実行するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
モーションパラメータ変換関数Ｆを用いてソースモデルのモーションパラメータを、ターゲットモデル対応のモーションパラメータに変換し、変換パラメータをターゲットモデルに適用して、ソースモデルのモーションを、前記ソースモデルと異なる骨構造を持つターゲットモデルに移転するモーション移転処理を実行させるプログラム。
【０１６４】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１６５】
また、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１６６】
以上、説明したように、本開示の一実施例の構成によれば、骨構造が異なるソースターゲット間で、高精度なモーション移転処理を実行可能とした装置、方法が実現される。
具体的には、例えば、モーション移転元のソースモデルの骨構造Ｓを、骨構造Ｐに変換する処理と、モーション移転先のターゲットモデルの骨構造Ｔを、骨構造Ｐに変換する処理と、骨構造Ｐを持つソースモデルのモーションを、骨構造Ｐを持つターゲットモデルに移転するモーション移転処理を実行する。データ処理部は、モーション移転元のソースモデルの骨構造Ｓを骨構造Ｐに変換したソースモデルインスタンスと、モーション移転先のターゲットモデルの骨構造Ｔを骨構造Ｐに変換したターゲットモデルインスタンスを生成し、生成した同一骨構造を有するインスタンス間で、モーション移転処理を実行する。
本構成により、骨構造が異なるソースターゲット間で、高精度なモーション移転処理を実行可能とした装置、方法が実現される。
【符号の説明】
【０１６７】
１００  情報処理装置
１０１  ソースモデル
１０２  クラスバラメトリックモデル
１０３  ターゲットモデル
１１１  ソースモデルメッシュフィッティング部
１１２  ターゲットモデルメッシュフィッティング部
１２１  ソースモデルインスタンス
１２２  ターゲットモデルインスタンス
１２３  モーション移転部
１２４  モーション移転ターゲットモデルインスタンス
１２５  モーション移転ターゲットモデル変換部
１２６  モーション移転ターゲットモデル
１３０  データベース
１３１  ソースモデルモーション情報
１３２  ターゲットモデルモーション情報
１３３  モーションパラメータ変換関数算出部
１３４  モーションパラメータ変換関数
１５０  モーション移転ターゲットモデル
２００  情報処理装置
３００  情報処理装置
３０１  コントローラ
３０２  ＲＯＭ
３０３  ＲＡＭ
３０４  バス
３０５  入出力インタフェース
３０６  入力部
３０７  出力部
３０８  記憶部
３０９  通信部
３１０  ドライブ
３１１  リムーバブルメディア
【図１】
2020149396.tif 000003
【図２】
2020149396.tif 000004
【図３】
2020149396.tif 000005
【図４】
2020149396.tif 000006
【図５】
2020149396.tif 000007
【図６】
2020149396.tif 000008
【図７】
2020149396.tif 000009
【図８】
2020149396.tif 000010
【図９】
2020149396.tif 000011
【図１０】
2020149396.tif 000012
【図１１】
2020149396.tif 000013
【図１２】
2020149396.tif 000014