(57)【要約】      （修正有）【課題】現実の物体を表す３Ｄモデル化オブジェクトを深度マップから再構築するための改善された解決策を提供する。【解決手段】現実の物体のクラスについてのインスタンスを表す３Ｄモデル化オブジェクトを、前記インスタンスの深度マップから再構築するように構成された関数を学習するための、コンピュータによって実施される方法は、前記クラスのパラメトリックモデルを提供すること（Ｓ１０）と、データベースを作成することと、データベースを用いて前記関数を学習すること（Ｓ３０）とを含む。【選択図】図１
2018073393.tif 000002
【特許請求の範囲】
【請求項１】
現実の物体のクラスについて、前記クラスのインスタンスを表す３Ｄモデル化オブジェクトを、前記インスタンスの深度マップから再構築するように構成された関数を学習するための、コンピュータによって実施される方法であって、
前記クラスのパラメトリックモデルを提供すること（Ｓ１０）と、
データベースを作成することであって、
前記パラメトリックモデルのパラメータを変更（Ｓ２２）して、それぞれが前記クラスの各インスタンスを表す３Ｄモデル化オブジェクトを生成することと、
生成された各３Ｄモデル化オブジェクトについて、前記生成された３Ｄモデル化オブジェクトによって表される各インスタンスの深度マップを合成すること（Ｓ２４）と
を含む、作成することと、
合成された各デプスマップを、対応する３Ｄモデル化オブジェクトに関連付けること（Ｓ２６）と、
前記データベースを用いて前記関数を学習すること（Ｓ３０）と
を含む方法。
【請求項２】
生成された各３Ｄモデル化オブジェクトの各深度マップを合成することは、
仮想視点を提供すること（Ｓ２４２）と、
前記仮想視点から、前記生成された３Ｄモデル化オブジェクトまでの、正確な深度を表す理論深度マップを決定すること（Ｓ２４４）とを含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
生成された各３Ｄモデル化オブジェクトの各深度マップを合成することは、さらに、前記理論深度マップの、少なくとも前記生成された３Ｄモデル化オブジェクトの輪郭に対応する位置に、摂動を加えること（Ｓ２４６）を含む
ことを特徴とする請求項２に記載の方法。
【請求項４】
摂動を加えることは、前記深度マップにランダムなノイズを加えることを含む
ことを特徴とする請求項３に記載の方法。
【請求項５】
前記ランダムなノイズはガウスノイズである
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記ランダムなノイズは、深度センサのノイズに対応する
ことを特徴とする請求項４または５に記載の方法。
【請求項７】
前記現実の物体のクラスは、人体のクラスである
ことを特徴とする請求項１〜６のいずれか１つに記載の方法。
【請求項８】
現実の物体のクラスについて、前記クラスのインスタンスを表す３Ｄモデル化オブジェクトを、前記インスタンスの深度マップから再構築するように構成された関数であって、請求項１〜７のいずれかに記載の方法で学習可能な関数。
【請求項９】
現実の物体のクラスについて、前記クラスのインスタンスを表す３Ｄモデル化オブジェクトを、前記インスタンスの深度マップから再構築するための方法であって、
請求項８に記載の関数を提供すること（Ｓ４０）と、
深度マップを提供すること（Ｓ５０）と、
前記深度マップに前記関数を適用すること（Ｓ６０）と
を含む方法。
【請求項１０】
前記深度マップは深度センサによって取得される
ことを特徴とする請求項９に記載の方法。
【請求項１１】
請求項９または１０に記載の方法で取得可能な３Ｄモデル化オブジェクト。
【請求項１２】
請求項１〜７のいずれかに記載の方法、および／または、請求項９〜１０のいずれかに記載の方法を実行するための命令を含むコンピュータプログラム。
【請求項１３】
請求項８に記載の関数、請求項１１に記載の３Ｄモデル化オブジェクト、および／または、請求項１２に記載のコンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体。
【請求項１４】
請求項１３に記載のコンピュータ読み取り可能記憶媒体に接続されたプロセッサを含むシステム。
【請求項１５】
深度センサをさらに含む
ことを特徴とする請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より具体的には、現実の物体、例えば人体を表す３Ｄモデル化オブジェクを深度マップから再構築することに関する方法、システム、およびプログラムに関する。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。ＣＡＤは、コンピュータ支援設計（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。ＣＡＥは、コンピュータ支援エンジニアリング（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｅｎｇｉｎｅｅｒｉｎｇ）の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。ＣＡＭは、コンピュータ支援製造（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理（Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ：  ＰＬＭ）システムに組み込むことができる。ＰＬＭとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するＰＬＭソリューション（製品名ＣＡＴＩＡ、ＥＮＯＶＩＡ、ＤＥＬＭＩＡ）は、製品エンジニアリング知識をオーガナイズするエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
【０００３】
このフレームワークにおいて、コンピュータビジョンおよびコンピュータグラフィックスの分野では、より便利な技術が提供されている。実際、この分野には、３Ｄ再構築への応用例がある。３Ｄ再構築は、シリアスゲーム、ビデオゲーム、建築、考古学、リバースエンジニアリング、３Ｄアセットデータベース、あるいは仮想環境など、（例えば、テクスチャ化された）３Ｄモデルの作成を含む任意の分野で使用することができる。いくつかの学術界および産業界のプレイヤーたちが、例えばＲＧＢおよび／または深度画像解析によるＡｃｕｔｅ３Ｄ、Ａｕｔｏｄｅｓｋ、ＶｉｓｕａｌＳＦＭ、あるいはＲＧＢ深度分析によるＲｅｃｏｎｓｔｒｕｃｔＭｅ、ＭｉｃｒｏｓｏｆｔのＫｉｎｅｃｔ（登録商標）用ＳＤＫなど、３Ｄ再構築のためのソフトウェア・ソリューションを提供している。
【０００４】
ＲＧＢ−深度（またはＲＧＢ−Ｄ）画像解析は、標準的なＲＧＢデータに加えて深度データを提供する「エミッタ−レシーバ」センサを用いて３Ｄ再構築を行うアプローチである。深度データは、主に再構築処理で用いられるデータを構成してもよい。以下の論文がこのアプローチに関連する。「Ｙａｎ  Ｃｕｉ他：Ｄ  Ｓｈａｐｅ  Ｓｃａｎｎｉｎｇ  ｗｉｔｈ  ａ  Ｔｉｍｅ−ｏｆ−Ｆｌｉｇｈｔ  Ｃａｍｅｒａ，ＣＶＰＲ  ２０１０」、「ＲＳ．Ｉｚａｄｉ他：ｉｎｅｃｔＦｕｓｉｏｎ：Ｒｅａｌ−Ｔｉｍｅ  Ｄｅｎｓｅ  Ｓｕｒｆａｃｅ  Ｍａｐｐｉｎｇ  ａｎｄ  Ｔｒａｃｋｉｎｇ，Ｓｙｍｐｏｓｉｕｍ  ＩＳＭＡＲ  ２０１１」、および「Ｒ．Ｎｅｗｃｏｍｂｅ他：Ｌｉｖｅ  Ｄｅｎｓｅ  Ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｗｉｔｈ  ａ  Ｓｉｎｇｌｅ  Ｍｏｖｉｎｇ  Ｃａｍｅｒａ，ＩＥＥＥ  ＩＣＣＶ２０１１」。深度マップ解析再構築法は、視差マップまたは近似された３Ｄ点群に基づく。視差マップは、ステレオビジョンまたは構造化光（例えば「Ｋｉｎｅｃｔ」の装置など参照）または「Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ」の３Ｄカメラを使用して取得される。
【０００５】
ＲＧＢ−Ｄ画像解析は、特に、人体など、現実の物体の３Ｄ再構築処理において使用され得る。このような処理の目的は、ユーザのＲＧＢ−Ｄ（すなわち、深度マップ画像を有するカラー画像）の取得から始めて、ユーザの身体の正確な３Ｄ形状および／または姿勢を予測することである。これは、仮想試着シミュレーション、拡張現実、モノのインターネットや、ビデオゲームなどにおいて多くの用途を持ち、ユーザの身体形状や姿勢が、例えば、単一のＲＧＢ−Ｄセンサを用いてキャプチャされる。
【０００６】
３Ｄ人体再構築についての文献の大部分は、「最適化ベースの方法」と呼ぶことができる、方法の１つの分類にまとめることができる。これらの方法では、ユーザの視点を３Ｄパラメトリック身体モデルと比較するコスト関数に適用された最適化技法を用いて、３Ｄ人体パラメータ、姿勢および形状を推定する。
以下は、最適化ベースの方法の例を開示している論文の一覧である。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Ｂａｌａｎ，Ｌ．Ｓ．  Ｄｅｔａｉｌｅｄ  Ｈｕｍａｎ  Ｓｈａｐｅ  ａｎｄ  Ｐｏｓｅ  ｆｒｏｍ  Ｉｍａｇｅｓ．ＣＶＰＲ，２００７．
【非特許文献２】Ｂａｌａｎ，Ｍ．Ｂ．  Ｔｈｅ  Ｎａｋｅｄ  Ｔｒｕｔｈ：Ｅｓｔｉｍａｔｉｎｇ  Ｂｏｄｙ  Ｓｈａｐｅ  Ｕｎｄｅｒ  Ｃｌｏｔｈｉｎｇ．ＥＣＣＶ，２００８．
【非特許文献３】Ａ．Ｗｅｉｓｓ，Ｄ．Ｈ．  Ｈｏｍｅ  ３Ｄ  ｂｏｄｙ  ｓｃａｎｓ  ｆｒｏｍ  ｎｏｉｓｙ  ｉｍａｇｅ  ａｎｄ  ｒａｎｇｅ  ｄａｔａ．ＩＣＣＶ，２０１１．
【非特許文献４】Ｆ．Ｐｅｒｂｅｔ，Ｓ．Ｊ．  Ｈｕｍａｎ  Ｂｏｄｙ  Ｓｈａｐｅ  Ｅｓｔｉｍａｔｉｏｎ  Ｕｓｉｎｇ  Ｍｕｌｔｉ−Ｒｅｓｏｌｕｔｉｏｎ  Ｍａｎｉｆｏｌｄ  Ｆｏｒｅｓｔ．ＣＶＰＲ，２０１４．
【非特許文献５】Ｍ．Ｌｏｐｅｒ，Ｍ．Ｂ．  ＯｐｅｎＤＲ：Ａｎ  ａｐｐｒｏｘｉｍａｔｅ  Ｄｉｆｆｅｒｅｎｔｉａｂｌｅ  Ｒｅｎｄｅｒｅｒ．ＥＣＣＶ，２０１．４
【非特許文献６】Ｐ．Ｇｕａｎ，Ａ．Ｗ．  Ｅｓｔｉｍａｔｉｎｇ  ｈｕｍａｎ  ｓｈａｐｅ  ａｎｄ  ｐｏｓｅ  ｆｒｏｍ  ａ  ｓｉｎｇｌｅ  ｉｍａｇｅ．ＩＣＣＶ，２００９．
【非特許文献７】Ｙ．Ｃｈｅｎ，Ｚ．Ｌ．  Ｔｅｎｓｏｒ−ｂａｓｅｄ  Ｈｕｍａｎ  Ｂｏｄｙ  Ｍｏｄｅｌｉｎｇ．ＣＶＰＲ，２０１３．
【０００８】
これらの論文で述べられているように、最適化ベースの方法は、ＲＧＢ−Ｄカメラを用いてユーザをキャプチャすることから始まる。これにより、ＲＧＢ画像と深度マップ画像が得られる。この方法は、形状及び姿勢パラメータで制御されるパラメトリックモデルを用いて３Ｄの人体を表す。形状パラメータは、人間に固有の形状をキャプチャし、姿勢パラメータは身体の姿勢をキャプチャする。
【０００９】
このパラメトリックモデルをユーザＲＧＢ−Ｄの取得で使用するとき、最適化ベースの方法では、２つの最適化ステップを用いてモデルパラメータを予測することがよくある。
【００１０】
第１のステップは、パラメトリック身体モデルのシルエットと、観測したシルエット（ユーザの深度マップから抽出したもの）とのマッチングを行うことによって、身体パラメータ（形状および姿勢）を検索することからなる。
【００１１】
２つのシルエットは、例えば以下のように定義される双方向コストを用いて比較する。
【数１】
2018073393.tif 000003
ここでＳはユーザのシルエットであり、Ｔはモデルのシルエットであり、また、
・インデックス（ｉ，ｊ）の画素がＳ内にある場合Ｓｉｊ＝１であり、その他の場合０。
・画素（ｉ，ｊ）がＴ内にない場合、Ｃｉｊ（Ｔ）＝画素（ｉ，ｊ）からＳ内の最も近い画素への距離であり、その他の場合０。
【００１２】
第２のステップは、身体パラメータと観察した深度マップについて、両マップのコスト関数を最小化することによって両者のマッチングを行うことからなる。コスト関数は、以下に定義されるように、重なり合った２つの深度マップ間の距離として定義される。
【数２】
2018073393.tif 000004
ここで、ＤＳはユーザの深度マップであり、ＤＴはモデルの深度マップであり、ρはＧｅｍａｎ−ＭｃＣｌｕｒｅ推定量であり、Ｎは重複する画素の数である。
【００１３】
もう１つの最適化ベースの方法は、上述の「Ｆ．Ｐｅｒｂｅｔ，Ｓ．Ｊ．  Ｈｕｍａｎ  Ｂｏｄｙ  Ｓｈａｐｅ  Ｅｓｔｉｍａｔｉｏｎ  Ｕｓｉｎｇ  Ｍｕｌｔｉ−Ｒｅｓｏｌｕｔｉｏｎ  Ｍａｎｉｆｏｌｄ  Ｆｏｒｅｓｔ．ＣＶＰＲ，２０１４」に提案されている。この方法は、形状パラメータのみを検索し、人体形状の多様体上のエネルギー関数を最適化する際の形状推定のタスクを定式化する。単一の人間の深度マップから始めて、類似度を用いて多様体上に初期解を見つける。そして、Ｉｔｅｒａｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔを用いて、解を精緻化する。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
最適化に基づく再構築方法を使用する３Ｄ人体再構築は、複数の欠点を有する。１つは収束速度が遅いことに関する。例えば、上述の「Ａ．Ｗｅｉｓｓ，Ｄ．Ｈ．  Ｈｏｍｅ  ３Ｄ  ｂｏｄｙ  ｓｃａｎｓ  ｆｒｏｍ  ｎｏｉｓｙ  ｉｍａｇｅ  ａｎｄ  ｒａｎｇｅ  ｄａｔａ．ＩＣＣＶ，２０１１」に記載のように、この方法は収束に４５分以上かかることがある。これは、未知数が多く、目的関数が複雑である（ほとんどの場合区別できない）ことに起因する。また、使用される最適化目的関数が凸ではないので、最適化方法が極小値に拘束される可能性がある。極小値問題を回避する一般的な戦略は、最適化をそれぞれ異なる未知数を有する複数の最適化問題に分割することによって、姿勢パラメータと形状パラメータとの間で最適化を交互に行うことである。これは特に、上述の「Ｂａｌａｎ，Ｍ．Ｂ．  Ｔｈｅ  Ｎａｋｅｄ  Ｔｒｕｔｈ：Ｅｓｔｉｍａｔｉｎｇ  Ｂｏｄｙ  Ｓｈａｐｅ  Ｕｎｄｅｒ  Ｃｌｏｔｈｉｎｇ．ＥＣＣＶ，２００８」で提案されている。これにより、未知数の多いベクトルの最適化が回避され、収束を助けるが、それでもなお時間がかかり収束は保証されない。
【００１５】
このような文脈において、現実の物体を表す３Ｄモデル化オブジェクトを深度マップから再構築するための改善された解決策が依然として必要である。
【課題を解決するための手段】
【００１６】
したがって、現実の物体のクラスについて、当該クラスのインスタンスを表す３Ｄモデル化オブジェクトを、当該インスタンスの深度マップから再構築するように構成された関数を学習するための、コンピュータによって実施される方法が提供される。本方法は、「学習方法」または「オフライン」モードまたは方法と呼ばれることがある。
【００１７】
当該学習方法は、前記クラスのパラメトリックモデルを提供することを含む。当該学習方法はまた、データベースを作成することを含む。データベースの作成は、パラメトリックモデルのパラメータを変更して、それぞれが当該クラスの各インスタンスを表す３Ｄモデル化オブジェクトを生成することを含む。データベースの作成はまた、生成された各３Ｄモデル化オブジェクトについて、生成された３Ｄモデル化オブジェクトによって表される各インスタンスの、それぞれの状態の深度マップを合成することを含む。データベースの作成はまた、合成された各深度マップを、対応する３Ｄモデル化オブジェクトに関連付けることも含む。学習方法はまた、データベースを用いて関数を学習することを含む。
【００１８】
一例において、学習方法は、以下のうちの１つまたは複数を含んでいてもよい。
・生成された各３Ｄモデル化オブジェクトの各深度マップを合成することは、仮想視点を提供することと、仮想視点から、生成された３Ｄモデル化オブジェクトまでの、正確な深度を表す理論深度マップを決定することとを含む。
・生成された各３Ｄモデル化オブジェクトの各深度マップを合成することは、さらに、理論深度マップの、少なくとも生成された３Ｄモデル化オブジェクトの輪郭に対応する位置に、摂動を加えることを含む。
・摂動を加えることは、深度マップにランダムなノイズを加えることを含む。
・ランダムなノイズはガウスノイズである。
・ランダムなノイズは、深度センサのノイズに対応する。
深度センサは、後述する再構築方法および／または後述するシステムに含まれる深度センサと同じ、または同じ種類である。
【００１９】
現実の物体のクラスは人体のクラスであり、かつ／あるいは、学習方法によって学習された関数が出力され、例えば不揮発性メモリなどのメモリに記憶され、かつ／または、例えば後述のシステムなどの遠隔システムに送信され、例えば、学習方法は別の装置によって実行される。
【００２０】
また、学習方法に従って学習可能な関数、すなわち、学習方法によって出力された関数に対応するデータ構造が提供される。一例では、関数は学習方法に従って効果的に学習される。この関数は、「再構築関数」と呼ばれることがある。
【００２１】
さらに、現実の物体のクラスについて、当該クラスのインスタンスを表す３Ｄモデル化オブジェクトを、当該インスタンスの深度マップから再構築するための方法が提供される。このような方法は、「再構築方法」または「オンライン」モードまたは方法と呼ばれることがある。
【００２２】
再構築方法は、再構築関数を提供することを含む。再構築方法はまた、深度マップを提供することを含む。再構築方法はまた、再構築関数を深度マップに適用することを含む。例において、深度マップは、深度センサによって取得されてもよい。
【００２３】
再構築方法により得られる３Ｄモデル化オブジェクト、すなわち、再構築方法によって出力される３Ｄモデル化オブジェクトに対応するデータ構造がさらに提供される。３Ｄモデル化オブジェクトは、「再構築３Ｄモデル化オブジェクト」と呼ばれることがある。
【００２４】
さらには、前記学習方法、および／または、前記再構築方法を実行するための命令を含むコンピュータプログラムが提供される。
【００２５】
さらに、上述のデータ構造のいずれか１つまたは組み合わせ、すなわち、再構築３Ｄモデル化オブジェクト、再構築関数、および／またはコンピュータプログラムが記録されたコンピュータ読み取り可能な記憶媒体、すなわちメモリが提供される。
【００２６】
さらに、コンピュータ読み取り可能な記憶媒体またはメモリに接続されたプロセッサを含むシステムが提供される。例において、前記システムはさらに、深度センサを含んでいてもよい。
【００２７】
以下、非限定的な例として、本発明の実施の形態を添付の図面を参照しつつ説明する。
【図面の簡単な説明】
【００２８】
【図１】本学習方法の一例のフローチャートを示す。
【図２】本再構築方法の一例のフローチャートを示す。
【図３】本システムの一例を示す。
【図４】本方法群の例および、それらのテストを示す。
【図５】本方法群の例および、それらのテストを示す。
【図６】本方法群の例および、それらのテストを示す。
【図７】本方法群の例および、それらのテストを示す。
【図８】本方法群の例および、それらのテストを示す。
【図９】本方法群の例および、それらのテストを示す。
【図１０】本方法群の例および、それらのテストを示す。
【発明を実施するための形態】
【００２９】
提供される方法、プログラム、媒体、およびシステムは、現実の物体のクラスのインスタンスを表す３Ｄモデル化オブジェクトの、当該現実の物体のインスタンスの深度マップからの再構築を、特にそのような文脈において機械学習のパラダイムを実装することによって改善し、その利点を享受する。
【００３０】
再構築方法により、インスタンスを表す比較的単純なデータ構造、すなわちインスタンスの深度マップから、３Ｄモデル化オブジェクトを取得することが可能になる。例では、再構築方法は、インスタンスの単一の深度マップに基づいて実行されてもよい。深度マップは、深度センサを用いて深度測定値を取得することを含む処理、またはそのことからなる処理によって取得することができる。したがって、例えば、ＲＧＢ−Ｄカメラのような深度センサを含む任意の装置またはシステムを用いて、単一の深度マップなど、インスタンスの深度マップを単純に取得することによって、再構築方法を非常に簡単に実行することができる。再構築方法は、次いで、再構築関数を深度マップに直接適用するにあたり、再構築関数を適用して、３Ｄモデル化オブジェクトを直接出力することを含んでいてもよい。演算の複雑性は、深度マップのサイズのみに依存する。したがって、再構築方法は比較的高速であり、リアルタイムで実行できる。これにより、多くの消費者向けアプリケーションの可能性を開く。
【００３１】
また、例では、再構築方法は、任意の姿勢のインスタンスの深度マップに基づいて実行されてもよい。言い換えれば、インスタンスの３Ｄ再構築の前に深度データを取得するために、インスタンスは任意の姿勢をとることができる。よって３Ｄ再構築は、深度の取得時に自由な姿勢をとることを可能にする。姿勢の変動を考慮した再構築関数のおかげで、再構築方法では、深度データを取得する際に基準姿勢をとる必要がない。これにより、再構築方法を実行する際の柔軟性が向上する。
【００３２】
これはすべて、再構築関数を取得する方法、言い換えれば、学習方法の特異性によるものである。特に、再構築関数は、機械学習が適切な結果をもたらすことができるように、適切に作成されたデータベース上で学習される（すなわち、機械学習によって得られる）。そのような学習に適した既存のデータベースは利用できない（例えば、インターネット上で利用可能な画像を簡単に検索し、学習データベースを形成するために適切に索引付けすることができるような、例えば、画像内の猫を認識する機能の機械学習の文脈とは異なる）。したがって、本学習方法は、クラスのパラメトリックモデルを利用して、そのようなアドホック学習データベースを作成／合成する。次いで、作成したデータベース上で、再構築関数（すなわち、学習方法）を得るための機械学習処理を、実行することができる。具体的には、データベースの作成により、それぞれが対応する３Ｄモデル化オブジェクトに関連付けられた深度マップが得られる。したがって、学習方法は、そのようなデータベース、およびその具体的な「３Ｄモデル化オブジェクト−深度マップ」のデータ関連付けに基づいて、深度マップから３Ｄモデル化オブジェクトを再構築する再構築関数を学習することができる。
【００３３】
ここで、本方法およびシステムの一般的な例を、図１〜３を参照して説明する。
【００３４】
図１は、オフライン学習方法の一例を示す。
【００３５】
図１の方法により、少なくとも現実の物体のクラス（すなわち、少なくとも１つのクラス）について、深度マップから３Ｄモデル化オブジェクトを再構築するように構成された関数が得られる。このように、学習方法によって得られる再構築関数は、後に、そのようなクラスの現実の物体のそれぞれに再構築方法を適用できるようなものである。学習方法は、深度マップを引数として受け取る関数が、そうした引数をどのように処理するかを表すデータ構造を出力する。したがって、当該データ構造を用いてそのような処理を実行することができる。学習は、再構築関数がクラスのインスタンスを表す深度マップに任意の時点で適用されるとき、再構築によって、当該インスタンスを比較的正確に表す（すなわち、ジオメトリの観点で当該インスタンスの実際のモルフォロジーに比較的近い）３Ｄモデル化オブジェクトへと導く。関数はまた、クラスまたは抽象深度マップ（すなわち、現実の物体を表さない）のうち、現実の物体を表す深度マップに適用することができ、例えば、最も近い深度マップから抽象深度マップへの再構築に対応するクラスのインスタンスを表す３Ｄモデル化オブジェクトへと導く。あるいは、そのような場合にエラーまたはヌルを出力するように関数を制限することができる。しかしこれは単に実施上の事項であるため、以下ではこれ以上説明しない。
【００３６】
図１の学習方法は、Ｓ１０において、現実の物体のクラスのパラメトリックモデル（すなわち、少なくとも１つのパラメトリックモデル）を提供することを含む。このデータ構造は広く知られているものではあるが、ここで詳細に説明する。
【００３７】
「現実の物体のクラス」という表現は、類似のモルフォロジーを有する現実の物体の集合、グループ、またはカテゴリを指す。「モルフォロジー」という用語は、その姿勢に関係なく、現実の物体の３Ｄ形状を指す。言い換えれば、現実の物体のモルフォロジーは、現実の物体がとることができるすべての姿勢についての、達成可能な３Ｄ形状の分布である。現実の物体の姿勢は、内部変形の自由度（もしあれば）に関して、現実の物体がどのように立っているかに対応する（姿勢は、現実の物体に内部変形の自由度が全くない場合には、現実の物体が示すことのできる一意な３Ｄ形状である）。言い換えれば、現実の物体の姿勢は、その内部変形の自由度の特定の構成に対応する。内部自由度は、現実の物体のブロック部材（すなわち、現実の物体のうち変形しない部分）間にある、現実の物体のうち変形可能な部分に対応することができる。変形可能な部分は、関節を形成することができる。関節は、２つのブロック部材間の回転を可能にし、ねじれ可能であり、かつ／あるいは、（例えばわずかに）伸縮可能である。
【００３８】
クラスの要素を「インスタンス」と呼ぶ。したがって、インスタンスはそのクラスの現実の物体である。インスタンスは３Ｄ形状を有しており、形状は、もし姿勢があれば、それによって変わる。インスタンスは、インスタンスのそのような３Ｄ形状をモデル化する３Ｄモデル化オブジェクトによって表すことができる。特に、変更（Ｓ２２）において、それぞれがクラスのインスタンスを表す３Ｄモデル化オブジェクトが生成される。３Ｄモデル化オブジェクトは、所与の姿勢のインスタンスを表すことができる。例えば、再構築方法によって出力された３Ｄモデル化オブジェクトは、深度マップによって表されるインスタンス姿勢をとるインスタンス（その深度マップが再構築のために提供される）を表すことができる。しかし、必ずしもそうである必要はなく、特に、本方法の用途を考慮し、変更（Ｓ２２）と合成（Ｓ２４）がどのように行われるかに依存する。これについては、後ほど、変更（Ｓ２２）および合成（Ｓ２４）について説明するときに、より詳細に説明する。
【００３９】
現実の物体のクラスは、そのような３Ｄモデル化オブジェクト（それぞれ、それがモデル化した現実の物体の姿勢を表す）によってこのように表現される現実の物体の集合体である。そのような３Ｄモデル化オブジェクトは、それぞれ、同じパラメトリックモデルのパラメータ値に対応する。したがって、クラスは、このような代表的なパラメトリックモデルによって定義してもよい。パラメトリックモデルは、クラスのすべての現実の物体に共通であり、それによってクラスを表す。言い換えれば、現実の物体のクラスは、それぞれの３Ｄ形状が同じパラメトリックモデルを共有するという事実によって集めることができる現実の物体の集合体である。したがって、パラメトリックモデルを用いて、それぞれの姿勢をとるクラスのインスタンス、すなわち、出力された３Ｄ形状を有し、当該それぞれの姿勢をとる現実の物体を表す、（異なるパラメータ値に対応する）異なる３Ｄ形状を得ることができる。このようなパラメトリックモデルが、Ｓ１０において、そうした目的のために提供される。なお、現実の物体のクラスは、異なるパラメトリックモデル、すなわち、異なるデータ構造および／または異なる数学的表現を有するモデルによって表すことができるが、その場合も同じモルフォロジーのクラスが得られ、したがって、その点で同等である。学習方法は、Ｓ１０で、１つまたは複数のそのようなパラメトリックモデルを提供し、処理することができる。また、学習方法は、現実の物体の単一のクラスまたは現実の物体の複数のクラスに適用できる（クラスごとに、それぞれのパラメトリックモデルがＳ１０で提供される）。以下の説明は、本方法によって企図される、単一のクラスの場合、およびＳ１０で提供される単一のパラメトリックモデルに関する。複数の場合への適応は容易である。
【００４０】
よってパラメトリックモデルは、入力パラメータに基づいて、３Ｄモデル化オブジェクトを導出することができるデータ構造（例えば、直接的に３Ｄモデル化オブジェクト）を出力する関数であってもよい。したがって、パラメトリックモデルのパラメータの値の集合は、３Ｄモデル化オブジェクトを表す（パラメータごとに１つの値）。パラメトリックモデルの画像（すなわち、その領域全体にわたってパラメトリックモデルを適用することによって出力された値の集合）は、各姿勢における現実の物体のクラスのインスタンスそれぞれの３Ｄ形状を表す。パラメータは、２つの異なるカテゴリに分けることができる：すなわち、形状パラメータと姿勢パラメータである。形状パラメータは、クラスにおける現実の物体の選択を制御し、姿勢パラメータは、選択された現実の物体の姿勢を制御する。パラメトリックモデルの複雑さ、および、特に、関与するパラメータの数は、クラス内の現実の物体のモルフォロジーの複雑さ、および、クラスおよび／または姿勢をモデル化する際の精緻さと合成要件の比（言い換えれば、クラスおよび／または姿勢をモデル化する際に求められる識別レベル）によって変わる。この数字は、一般に１００未満、またはさらに７５未満である可能性がある。例えば、後述する人体のクラスでは、Ｓ１０で提供されるパラメトリックモデルは、インスタンス選択を表すのに、５個より多く、かつ／あるいは、１５個未満（例えば、１０個程度）のパラメータが関与してもよく、かつ／あるいは、選択されたインスタンスの姿勢を表すのに、２０個または３０個より多く、かつ／あるいは６０個または４５個未満のパラメータが関与してもよい。パラメトリックモデルは、パラメトリック領域上で連続的であってもよい。パラメータの各領域は、有界または非有界の実数の範囲である。各パラメータは、変形のタイプまたは同相性を、例えば連続的に、制御することができる。
【００４１】
例えば、現実の物体のクラスのパラメトリックモデルは、それ自体既知である主成分分析（ＰＣＡ）によって、それぞれの姿勢（例えば１０００個より多い姿勢）をとるクラスのインスタンスの３Ｄ形状のサンプルから決定することができる。３Ｄ形状は任意の方法でモデル化することができ、例えばデータベースから検索されたり、手動で設計されたりする。そして、パラメトリックモデルは、クラスのインスタンスの任意の形状を、そのようなＰＣＡによって出力され、パラメータ値によって重み付けされた、主成分の合計として記述する。学習方法は、パラメトリックモデルのそのような決定を行う先行ステップを含んでいてもよく、あるいは、パラメトリックモデルは予め決定され、Ｓ１０において単純に取得され提供されてもよい。
【００４２】
「パラメトリックモデル」の概念は、先行技術、そして特に、上述の先行技術の、最適化ベースの方法において、そのように知られている。実際、このような方法においては、最適化処理で、現実の物体のクラスのパラメトリックモデルの最適なパラメータを検索することが多い。Ｓ１０で提供されるパラメトリックモデルは、そのような先行技術に開示された、そのようなパラメトリックモデルであってもよい。論文「Ａ．Ｗｅｉｓｓ，Ｄ．Ｈ．  Ｈｏｍｅ  ３Ｄ  ｂｏｄｙ  ｓｃａｎｓ  ｆｒｏｍ  ｎｏｉｓｙ  ｉｍａｇｅ  ａｎｄ  ｒａｎｇｅ  ｄａｔａ．ＩＣＣＶ，２０１１」は、特に、人体のクラスのパラメトリックモデルについて詳細に記述している。
【００４３】
例では、パラメトリックモデルの出力は、頂点（３Ｄ点）の集合、および、メッシュの三角形を定義するこの点の集合上の、それらに対応する接続部として定義される、３Ｄ三角メッシュ構造であってもよい。この３Ｄメッシュは、基準メッシュの変形としてモデル化される。変形は、三角形の辺のレベルで行われる。これは以下のように定義される。
【数３】
2018073393.tif 000005
ここで、ｅｋ，ｊは、変形したメッシュのｋ番目の三角形のｊ番目の辺であり、これはサイズ（３×１）のベクトルである。
【数４】
2018073393.tif 000006
は基準メッシュ中の対応するものである。サイズ（３×１）のｘｋ，ｊは、ｋ番目のメッシュ三角形中のｊ番目の頂点である。  ｎＴは、３Ｄ人体出力メッシュ中の三角形の数である。Ｄｋは、サイズ（３×３）の変形行列である。
【００４４】
例では、この行列は以下の要素に分解できる。
【００４５】
１．サイズ（３×３）のグリッド変形姿勢行列Ｒｐ（ｋ）。これは例えば、三角形ｋが属する剛体部分ｐ（ｋ）の回転である。この行列は、姿勢パラメータｗの関数である。姿勢パラメータｗは体の関節の局所回転である。
【００４６】
２．サイズ（３×３）の非グリッド変形姿勢行列Ｑｋ。これは、例えば特に関節領域および筋肉領域の変形三角形に対して、補正変形行列として機能する。各Ｑｋ行列は、２つの最も近い三角形関節局所回転（６つのパラメータ）とＱｋの９つの行列値の間の線形回帰としてモデル化される。
【００４７】
３．サイズ（３×３）の形状変形行列Ｓｋ。これは形状パラメータβの関数である。この行列は、個人間のモルフォロジーの変化をモデル化してもよく、身体の形状を、その姿勢とは独立して変形させる役割を果たす。すべてのメッシュ三角形に対して積み重ねられた行列Ｓｋは、人体形状のデータベースに対する主成分分析としてモデル化される。
【数５】
2018073393.tif 000007
ここで、Ｓはサイズ（９×ｎＴ）の行列であり、Ｓ０は平均身体形状であり、Ｓｌはｌ番目の主成分である。
【００４８】
Ｅはサイズ（ｎＥ×３）のエッジ行列（すべての三角形についての積み重ねられたｅｋ，ｊ）、Ｘはサイズ（ｎｖ×３）の身体の頂点の行列である、身体モデルの出力であり、最後に、Ｍは、サイズ（ｎＥ×ｘｎｖ）である。
【００４９】
現実の物体のクラスは、３Ｄ再構築が有用であることが証明された任意のクラスであってもよい。この方法は、異なる姿勢をとることができる現実の物体、すなわち、少なくとも１つの内部自由度を有する現実の物体のクラスについて、特に有用である。実際、この方法によって可能になる自由形式の深度データ取得は、そのような場合に特に有用である。これは特に、現実の物体のクラスが人体のクラスである場合に当てはまる。さらに、深度データからの３Ｄ再構築に関する研究は、そのような現実の物体のクラスに主に焦点を当ててきたが、これは特に、例えば、仮想試着シミュレーション、拡張現実、モノのインターネットや、ビデオゲームなど、有望な用途があるからであり、これらにおいては、ユーザの身体形状や姿勢が、例えば、単一のＲＧＢ−Ｄセンサを用いてキャプチャされる。
【００５０】
しかし、クラスは、動物、身体器官の部分、または植物／樹木、または（例えば機械）部品や部品の集合体、より一般的には任意の剛体の集合体（例えば移動機構）など、他のタイプの現実の物体の集合であってもよい。製品は、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および／または海洋石油／ガス生産、または交通を含む、限定されることのない様々な産業分野において用いてもよい。本方法は、地上車両の部品（例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラック、バス、電車を含む）、航空車両の部品（例えば、航空機体機器、航空宇宙機器、推進機器、防衛製品、航空路線機器、宇宙機器を含む）、海軍車両の部品（例えば、海軍用機器、商業用船舶、オフショア機器、ヨットおよび作業船、船舶用機器を含む）、一般的な機械部品（例えば、工業用製造機械、大型移動機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む）、電気機械部品または電子部品（例えば、家電、セキュリティおよび／または制御および／または計装製品、コンピューティングおよび通信機器、半導体、医療装置および設備を含む）、消費者製品（例えば、家具、家庭用および庭用製品、レジャー用品、ファッション用品、耐久消費財小売用品、織物類小売用品を含む）、包装（例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品包装を含む）などのように、任意の機械部品であり得る工業製品を意図したものであってもよい。
【００５１】
ここで図１の学習方法のその他のステップについて説明する。
【００５２】
当該学習方法は、パラメトリックモデルに基づきデータベースを作成することを含む。データベースは、機械学習のために使用することができ、したがって、「学習データベース」と呼ぶことができる。このような学習データベースは、機械学習の分野でそれ自体知られているように、訓練データベース（Ｓ３０で、再構築関数の候補を決定するため）、および、テストデータベース（Ｓ３０で、再構築関数の候補がうまく機能するかどうかを評価するため）を含んでいてもよい。訓練データベースは、テストデータベースより多くのデータを含んでいてもよく、例えば、データの総数の６０％を超える数（例えば、８０％程度）のデータを含んでいてもよい。データの総数は、企図されている学習の品質と、企図されている現実の物体の特定のクラスに対する深度マップの識別能に依存する。この数は、１，０００、１０，０００、５０，０００、さらには１００，０００より大きくてもよい（例えば、非常に高速な学習の場合は４０，０００程度、非常に正確な学習の場合は１２０，０００程度）。
【００５３】
データベースの作成には、パラメトリックモデルのパラメータを変更（Ｓ２２）して、それぞれが当該クラスの各インスタンスを表す３Ｄモデル化オブジェクトを生成することを含む。言い換えれば、本方法は、Ｓ２２において、パラメトリックモデルを使用することによって、すなわち特定のパラメータ値を有するパラメトリックモデルを評価した結果を決定することによって、クラスにおける（それぞれの姿勢をとる）インスタンスを表す３Ｄモデル化オブジェクトを決定する。従って、変更（Ｓ２２）により、パラメトリックモデルのパラメトリック領域のサンプリングが達成される。パラメータ値は、Ｓ２２において任意の方法で変化させることができる。Ｓ２２で生成された３Ｄモデル化オブジェクトは、クラスにおける異なるインスタンスを表すことができる。クラスのインスタンスの少なくとも一部に関して、同じインスタンスが、Ｓ２２で生成された、厳密に２つ以上の３Ｄモデル化オブジェクトによって表されてもよい（例えば、インスタンスの、異なる姿勢を表す）。あるいは、クラスの各インスタンスは、生成された最大１つの３Ｄモデル化オブジェクトによって表現されてもよい（したがって、最大で１つの姿勢がすべてのインスタンスに対して提供される）。生成された３Ｄモデル化オブジェクトは、（すべてのインスタンスについて）同じ姿勢、または異なる姿勢のインスタンスを表すことができる。例では、変更は、パラメトリック領域のサンプリングにおける規則性のレベル、および／または、ランダム性のレベルを含む。例では、サンプリングは、パラメータの最小値および最大値による制約を受ける各モデルパラメータに一様に適用してもよい。最小値／最大値も、妥当な身体形状を与えるものである。
【００５４】
学習方法はまた、生成された各３Ｄモデル化オブジェクトについて、生成された３Ｄモデル化オブジェクトによって表される各インスタンスの深度マップをＳ２４において合成することを含む。言い換えれば、本学習方法は、生成された３Ｄモデル化オブジェクトごとに、人工的に（例えば、自動的に）、３Ｄモデル化オブジェクトによって表されるインスタンスの深度を測定する場合に得られる深度マップを表す深度マップをＳ２４で構築する。これは演算により、すなわち測定なしで行われる。これにより、対応する３Ｄモデル化オブジェクトにおける深度マップを変換し、それによって深度マップによって表されるクラスのインスタンスをモデル化することができる関数を事後学習することによって、再構築関数を構築することができる。
【００５５】
そのため、本学習方法は、合成された各深度マップを、対応する３Ｄモデル化オブジェクトに関連付ける（Ｓ２６）ことによって、データベースを作成する。図１に示すように、Ｓ２６で所与の深度マップに関連付けられた、対応する３Ｄモデル化オブジェクトは、Ｓ２４で当該所与の深度マップが合成された、Ｓ２２で生成された３Ｄモデル化オブジェクトであってもよい。これにより、インスタンスだけでなく、再構築方法の間に深度マップが測定される場合のインスタンスの姿勢も表す、３Ｄモデル化オブジェクトを再構築する再構築関数を学習することが可能になる。しかし必ずしもそうでなくてもよい。実際、例では、Ｓ２６において、合成された深度マップは、必ずしも正しい姿勢をとらない、そのようなインスタンスを表す任意の３Ｄモデル化オブジェクトに関連付けられてもよい。これは、本方法の用途がインスタンスのみ（姿勢ではない）を再構築することか、あるいは姿勢も再構築することかによって変わる。どの場合も、機械学習の分野でそれ自体知られているように、Ｓ２６で実行された関連付けは、Ｓ３０で学習されるものを条件とするため、Ｓ２６の実行の仕方は、正確に、再構築関数の目的によって変わる。
【００５６】
データベースが作成されると、本学習方法は、Ｓ３０において、データベースに基づいて再構築関数を学習する。学習（Ｓ３０）は、機械学習の分野でそれ自体知られている任意の機械学習方式で、古典的なやり方で実行される。学習（Ｓ３０）の実行の仕方は、学習する再構築関数について想定している構造に密接に関連する。例えば、再構築関数は回帰関数を含み、機械は回帰学習を学習する。特に、再構築関数は、ニューラルネットワークの適用を含んでもよい。ニューラルネットワークは、例えば、畳み込み層、および／または、最大プーリング層のような、線形演算を適用することによって点ごとの非線形性をもたらす層を（例えば、交互に）含む、（例えば、３つ以上の）処理層を実装することができる。ニューラルネットワークは、例えば、深層畳み込みニューラルネットワーク（ＣＮＮ）であってもよい。再構築関数はまた、上記の処理（群）の前に初期（生）の深度マップの前処理を含んでもよい。前処理は、未処理の深度マップを充実させること、および／または、未処理の深度マップからインスタンスの別の表現を導出することを含むか、あるいはそうすることから構成されていてもよい。前処理は、例えば、初期の手作業による特徴抽出（例えば、算出した法線マップ、またはそれを算出することに基づく）のような、初期特徴抽出を含むか、あるいはそれから構成されていてもよい。あるいは、本方法は、初期の（未処理の）深度マップにおいて上記の処理（群）を直接実行してもよい（言い換えれば、本方法は、そのような任意の前処理から導出されてもよい）。しかしながら、線形および非線形回帰アルゴリズム（例えば、カーネルベースのもの）のように、作成されたデータベースからの他のタイプの機械学習を実施することもできる。
【００５７】
ここで、生成された各３Ｄモデル化オブジェクトの深度マップの合成（Ｓ２４）について、より詳細に説明する。
【００５８】
合成（Ｓ２４）は、再構築関数をどのように訓練したいかに応じて、任意の方法で実行することができる。図１に示されたＳ２４の効率的かつ単純な例は、仮想視点を提供すること（Ｓ２４２）と、仮想視点から、生成された３Ｄモデル化オブジェクトまでの、正確な深度を表す理論深度マップを決定すること（Ｓ２４４）とを含む。言い換えれば、Ｓ２２で生成された各３Ｄモデル化オブジェクトに対して、正確な理論深度マップが、生成された３Ｄモデル化オブジェクトに関連付けられた基準フレーム内に提供される理論的視点に基づいて、例えば理論的視点からの透視投影の適用からなる単純なジオメトリ演算を用いて、算出される。視点は、Ｓ２４２の反復にわたって（すなわち、異なる３Ｄモデル化オブジェクトにわたって）異なる、生成された３Ｄモデル化オブジェクトに関連付けられた球面基準座標に対して、同一であるか、あるいは１つまたは複数の（例えば、すべての）球面座標を提供してもよい。極角および方位角は固定されてもよい（例えば、このような角度の変動が、パラメトリックモデルのパラメータによって直接与えられる）。半径は、例において、固定されていてもよいし、境界であってもよい（例えば、再構築方法で使用されるハードウェアが、インスタンスの位置決めのための測定スポットを１つしか提供しない場合）。
【００５９】
図１の例の合成（Ｓ２４）はまた、Ｓ４４で得た理論深度マップに摂動を加えること（Ｓ２４６）を含む。摂動は、少なくとも、生成された３Ｄモデル化オブジェクトの輪郭に対応する理論マップの位置に加えられる。生成された３Ｄモデル化オブジェクトの輪郭は、深度の不連続性（例えば、インスタンスから背景へ、および／または、隆起部から後部への経路）に対応する。輪郭に対応する位置は、輪郭そのものを示すか、あるいは、所定の閾値（例えば数ピクセル）以下の幅を有する、輪郭を囲む細片を示してもよい。言い換えれば、理論マップ（すなわち、仮想視点からの透視投影によって得られる）は、Ｓ２４６で、少なくとも生成された３Ｄモデル化オブジェクトの輪郭において修正される。摂動は、輪郭の規則性を減少させるような、輪郭における深度データの任意のタイプの修正である。これにより、学習が大幅に改善され、より正確な再構築関数が実現される。
【００６０】
実際、深度マップなどの２Ｄ画像からの機械学習は、通常、２Ｄ画像内の非常に際立った特徴に大きな重みを与えることにつながる。合成（Ｓ２４）の理論演算は、特に、生成された３Ｄモデル化オブジェクトの輪郭を含む、そのような際立った特徴を示す理論深度マップをもたらす。理論深度マップが訓練のためにそのように使用されると、そのようなクリーンな輪郭を見つけることに深く依拠する再構築関数が得られることになる。しかし、現実の深度測定において、現実の物体の輪郭は決して完全に規則的ではない（規則性の欠如は通常、パラメトリックモデルでは捉えられない）だけでなく、さらに重要なことには、深度センサがノイズの多い計測値しか提供しないため、輪郭がそれほどクリーンではない。Ｓ２４６における摂動の追加は、望まれない規則性（すなわち、理論深度マップにおける輪郭の過度な「クリーンさ」）を壊す。そのような規則性は、実際には再構築関数を学習するときに訓練のレベルを下げ、その結果、再構築関数の有用性が低下することになる。
【００６１】
加えること（Ｓ２４６）は、深度マップにランダムなノイズを加えることを含んでいてもよい。ランダムなノイズは、理論深度マップ全体に適用されるランダム変数であって、理論深度マップにおける生成された３Ｄモデル化オブジェクトの輪郭において特に顕著なものであってもよい。ランダムなノイズはガウスノイズであってもよい。
【００６２】
例において、ランダムなノイズの追加は、数学的には以下に対応していてもよい：
【数６】
2018073393.tif 000008
ここでＩｉｊは深度画像におけるｉ×ｊ画素位置の深度値であり、
【数７】
2018073393.tif 000009
は、ｉ×ｊ画素位置における正規化深度画像勾配値であり、
【数８】
2018073393.tif 000010
は平均値が０で分散が１ｃｍ〜５ｃｍのガウス分布からサンプリングされた実数である。
【００６３】
特に効率的な学習方法は、Ｓ２４６において、Ｓ２４４で出力された理論深度マップに深度センサのノイズに対応するランダムなノイズを加えることである。深度センサについては広く研究されており、それらが示すノイズの特性は、既知であるか、あるいは知ることができる。本学習方法は、特に、特定の深度センサを有するシステムの使用を意図した再構築方法に結合してもよい。そのような場合、そのような特定の深度センサと同タイプの深度センサのノイズ、さらには当該特定の深度センサの特定のノイズは、ランダムガウスノイズとしてモデル化され、学習中にＳ２４６で追加されてもよい。これにより、特に正確な再構築関数が得られる。
【００６４】
図２は、オンライン（または「インライン」）再構築方法の一例を示す。このような方法は、再構築関数を（例えば所定のデータとして）用いて、クラスのインスタンスを表す３Ｄモデル化オブジェクトをインスタンスの深度マップから再構築するのに用いる。
【００６５】
したがって、本再構築方法は、例えば図１の方法によって得られた再構築関数を提供すること（Ｓ４０）を含む。再構築関数はメモリに記憶され、いつでも利用可能であってもよい。
【００６６】
再構築方法はまた、深度マップを提供すること（Ｓ５０）を含む。Ｓ５０で提供される深度マップは、代表的な３Ｄモデル化オブジェクトが再構築されるべきインスタンスを表す。深度マップは、例えば、所与の姿勢をとるインスタンスに対して深度センサが実行する測定によって取得される。取得は、深度画像を一度キャプチャすることからなってもよい。これにより、取得が高速かつ単純になる。インスタンスは取得中に自由な姿勢を取ってもよい。これにより、取得が柔軟になる。
【００６７】
再構築方法は、次いで、再構築関数を深度マップに適用すること（Ｓ６０）を含む。再構築関数の適用（Ｓ６０）は高速であり、正確な結果につながる。言い換えれば、再構築で得られた３Ｄモデル化オブジェクトは、Ｓ５０で深度マップが提供されるインスタンスの正確な表現である。これは特に、学習方法が深度センサの測定値におけるノイズを考慮した場合（先に説明したステップＳ２４６）に当てはまる。
【００６８】
再構築関数は機械学習した関数であるため、その適用（Ｓ６０）は最適化ベースの方法を実行するのに対し、比較的高速であり、極小値に落ち込むリスクがないため比較的堅牢である。再構築関数の適用は、実際、１秒より速いか、その程度であってもよい。ＣＮＮ回帰学習方法の場合、再構築関数の適用（Ｓ６０）は、特に、一連の畳み込み層、そしてドット積を含んでいるか、あるいはそれらから構成されていてもよい。例において、再構築関数の適用（Ｓ６０）は、特に以下の一連のものを含んでいるか、あるいはそれらから構成されていてもよい。
【００６９】
１．総複雑度が
【数９】
2018073393.tif 000011
である、連続する畳み込み層。ここで、ｌは畳み込み層のインデックス、ｄはニューラルネットワークの深さ（畳み込み層の数）、ｎｌはｌ番目の層におけるフィルタ数、ｓｌはフィルタの空間サイズ、そして最後に、ｍｌは出力特徴マップの空間サイズである。
【００７０】
２．最後の畳み込み層の出力と学習した完全に接続された層との間のドット積。最後の畳み込み層のサイズはＷｄ×Ｗｄ×ｎｄであり、
【数１０】
2018073393.tif 000012
である。ここでＷ０は入力深度画像の幅であり、かつ高さである。
【００７１】
ＣＮＮの、学習した完全に接続された層パラメータは、サイズがｄｆｃであり、この層は、求めているモデルパラメータを含むことになる。このドット積の複雑度は、
【数１１】
2018073393.tif 000013
である。
【００７２】
全体として、このアプローチの複雑度は、
【数１２】
2018073393.tif 000014
である。
【００７３】
一例として、以下のパラメータの場合を考えることができる。
【数１３】
2018073393.tif 000015
この例では、複雑度は８＊１０６回程度の演算である。これに対して、既存の最適化に基づくアルゴリズムは、同じ例で、３＊１０１１回程度の演算を要することがある。
【００７４】
再構築された３Ｄモデル化オブジェクトは、前述の用途でそのように使用することができる。あるいは、再構築された３Ｄモデル化オブジェクトは、最適化に基づくアルゴリズムにおいて初期化データとして使用されてもよい。再構築された３Ｄモデル化されたオブジェクトは出発点として好ましいため、最適化に基づくアルゴリズムがより速く収束する。また、最適化に基づくアルゴリズムは、姿勢最適化（すなわち、再構築された３Ｄモデル化オブジェクトの形状パラメータが固定される）に限定されてもよい。
【００７５】
モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。使用するシステムの種類に応じて、異なる種類のデータによってモデル化オブジェクトが定義されてもよい。実際、システムは、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、ＰＤＭシステム、および／またはＰＬＭシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＰＤＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＰＤＭデータ、ＣＡＭデータ、ＣＡＥデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、以下に示すこのようなシステムの定義から明らかなように、システムは、ＣＡＤ兼ＰＬＭシステムであってもよい。
【００７６】
ＣＡＤシステムは、少なくとも、ＣＡＴＩＡのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。ＣＡＤシステムは、例えば、辺や線を用い、また、場合により面や曲面を用いて、ＣＡＤモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Ｂスプライン（ＮＵＲＢＳ）など、様々な様式で表現されてもよい。具体的には、ＣＡＤファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は１つまたは複数のＣＡＤファイルに格納されていてもよい。ＣＡＤシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり１メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
【００７７】
ＣＡＤの文脈において、モデル化オブジェクトは、典型的には、３Ｄモデル化オブジェクトであってもよい。「３Ｄモデル化オブジェクト」は、３Ｄ表現が可能なデータによってモデル化される任意のオブジェクトを意味する。３Ｄ表現は、その部品をすべての角度から見ることを可能にする。たとえば、３Ｄで表現された３Ｄモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、３Ｄモデル化されていない２Ｄアイコンについては除外される。３Ｄ表現の表示は、設計を容易にする（すなわち、設計者が作業を達成するスピードを統計的に速める）。
【００７８】
本方法は、コンピュータによって実施される。すなわち、本方法のステップ（あるいは略全てのステップ）が少なくとも１つのコンピュータ、または類似の任意のシステムによって実行される。よって本方法のステップは、コンピュータにより、完全に自動的に、あるいは半自動的に実行される可能性がある。例えば、本方法の少なくともいくつかのステップは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例えば、このレベルは、ユーザが設定し、かつ／あるいは、予め定義されていてもよい。
【００７９】
本方法のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法を実行することである。当該システムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェイス（ＧＵＩ）を備えていてもよい。また、メモリはデータベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分（例えば、プログラム用に１つ、場合によりデータベース用に１つ）を含む。システムはさらに、プロセッサに接続され、３Ｄ再構築のためのインスタンスの深度マップを取得するよう構成された深度センサを備えていてもよい。システムはまた、取得中にインスタンスが姿勢をとるためのポージングスポットを備えていてもよい。
【００８０】
図３は、深度センサに接続されたコンピュータシステムとしての本システムの例を示す。
【００８１】
本例のシステムは、内部通信バス１０００に接続された中央演算処理装置（ＣＰＵ）１０１０、および同じくバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを備える。システムは、さらに、バスに接続されたビデオランダムアクセスメモリ１１００と関連付けられたグラフィックス処理装置（ＧＰＵ）１１１０を備える。ビデオＲＡＭ１１００は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ１０２０は、ハードドライブ１０３０などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスク１０４０を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。システムはまた、深度センサ１０９０を含んでいてもよい。
【００８２】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
【００８３】
３Ｄ再構築は、３Ｄ設計処理の一部であってもよい。「３Ｄモデル化オブジェクトの設計」とは、３Ｄモデル化オブジェクトを作り上げる工程の少なくとも一部である任意の行為あるいは一連の行為を指す。３Ｄ再構築は、仮想試着シミュレーション、拡張現実、モノのインターネット、およびビデオゲームの一部であってもよい。
【００８４】
ここで、人体のクラスに適用され図１〜２の例と合致する方法の例について、図４〜１０を参照して説明する。例ではＲＧＢ−Ｄカメラが記載されているが、深度センサを備えた任意のシステムを実装することができる（例えばＲＧＢカメラなしの、例えば純粋な深度検知装置）。また、例にはメッシュの形を取る３Ｄモデル化オブジェクトが示されている。Ｂ−Ｒｅｐｓのような、他のタイプの３Ｄモデル化オブジェクトが実装されてもよい（パラメトリックモデル上に提供される）。
【００８５】
従来の最適化ベースの方法は、新しいユーザが提示されるたびに３Ｄ身体モデルパラメータを検索する。本例の方法のアイデアは、異なる方法で課題を表す。すなわち、本例の方法では、３Ｄ身体モデルパラメータを検索する代わりに、機械学習を利用して、任意のＲＧＢ−Ｄカメラ深度マップから、その３Ｄ身体モデルパラメータへの直接マッピング関数を学習する。これは、図４に表すパイプラインに示されている。このようなマッピングは、既知の身体モデルパラメータを有するユーザ深度マップの大きなデータベースから学習される。本例の方法は、このアイデアを用いて、３Ｄ人体再構築の学習ベースの新たなカテゴリを定義する。最先端のアルゴリズムとは異なり、本例の方法は、より高速で、リアルタイム動作を達成し、これにより多くの消費者向けアプリケーションの可能性を開く。それらは、入力としてユーザの深度マップ画像のみを必要とし、ユーザが基準姿勢で立つ必要はない。本例の方法の詳細なパイプラインを図５に示す。
【００８６】
ここで、図５に示すオフライン学習について説明する。
【００８７】
＜概略＞
３Ｄモデルから抽出できる直接的な情報は、その深度マップである。再構築方法が求めるのはその逆であり、深度マップから、３Ｄ身体モデルメッシュ、またはより正確にその内部パラメータ（形状およびポーズ）を推測することが求められる。オフライン前処理は、合成的に生成されたデータベースからモデルパラメータへのマッピング関数を学習する。この方法は、ノイズの多いＲＧＢ−Ｄカメラ深度取得をエミュレートするために、ユーザの輪郭にランダムなノイズを合成的に追加する。深度画像データベースとその身体モデルパラメータが学習データを構成する。
【００８８】
＜合成データベース作成＞
本例の方法では、人体の形状と姿勢の変化に対応するパラメトリック３Ｄ身体モデルを既に所有していると仮定している。このモデルは、姿勢および形状パラメータを、対応する３Ｄ身体モデルに変換する。深度マップデータベースを構築する際、本方法は、第１に、形状および姿勢パラメータ空間をランダムにサンプリングし、対応する３Ｄ身体モデルを生成してもよい。第２に、３Ｄ身体モデルは、共通の上方向のベクトル、同じ地平面に対して、および同じ縮尺で位置合わせされてもよい。最後に、仮想カメラを用いて３Ｄモデルごとに深度マップを抽出できる。
【００８９】
＜ノイズ追加＞
本例の方法は、ノイズの多いセンサの深度マップをエミュレートするために、ランダムなノイズ（ガウス分布）をデータベースの深度マップ、特に身体モデルの輪郭に追加する。これにより、同じ深度マップ画像構造に対して確実に高品質の学習とテストが行える。
【００９０】
＜特徴マップ抽出＞
特徴抽出の部分はオプションである。本方法は、生成されたノイズの多い深度マップを使用するか、あるいは深度マップから、法線マップや画像で表現された任意の種類の深度特徴など、より明確な特徴を抽出することができる。特徴抽出の役割は、次のステップにおいて学習アルゴリズムを助ける深度マップの、より明確な表現を推測することである。
【００９１】
＜回帰学習＞
本方法は、モデルパラメータ（形状および姿勢）と結合された深度マップ画像特徴データベースから、特徴画像の空間からモデルパラメータへの回帰関数を学習する。深層畳み込みニューラルネットワーク（ＣＮＮ）の特徴を利用してこの回帰を解くことができる。
【００９２】
＜深層畳み込みニューラルネットワーク（ＣＮＮ）＞
畳み込みニューラルネットワークは、畳み込みニューラルネットワークのアーキテクチャを表す図６に示すように、層として構成された一連の単純な操作によって入力画像を変換する。各層は、点ごとの非線形性が後に続く線形演算を適用する。形式としては、ベクトルとして表される画像ｘに対するＣＮＮの出力ｆ（ｘ）は、
【数１４】
2018073393.tif 000016
である。
【００９３】
ここで、
【数１５】
2018073393.tif 000017
の項は、線形演算に対応する行列であり、関数
【数１６】
2018073393.tif 000018
は点ごとの非線形関数（シグモイド）であり、関数
【数１７】
2018073393.tif 000019
はダウンサンプリング演算（プーリング）を実行する。ＣＮＮの場合、行列
【数１８】
2018073393.tif 000020
は特定の構造を持ち、空間マップの畳み込みに対応する。
【００９４】
＜訓練＞
深度マップの集合についてＣＮＮを学習することによって、当該アイデアを検証するためのテストを行った。損失関数は、予測パラメータとグラウンドトゥルースなパラメータのユークリッド距離となるよう定義した。
【００９５】
テストにおいて、論文「Ｋｒｉｚｈｅｖｓｋｙ，Ｉ．  Ｓｕｔｓｋｅｖｅｒ，Ｇ．Ｈｉｎｔｏｎ．  ＩｍａｇｅＮｅｔ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ｗｉｔｈ  Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ．ＮＩＰＳ，２０１２」に開示されている方式、すなわちＡｌｅｘＮｅｔのアーキテクチャを、最後の二つの層に小さな変更を加えて用いて回帰ＣＮＮを訓練した。本例では、層Ｎ−１の出力数を身体パラメータの数に変更し、最終層（層Ｎ）を取り除き、回帰問題に適したユークリッド損失層で置き換えた。
【００９６】
このテストでは、１２０Ｋ個を超えるインスタンスを有するデータベースを、学習用に８０％、テスト用に２０％に分割して使用した。このテストには、各反復で３２個の深度画像のバッチベース学習を用いる確率的勾配降下法（Ｓｔｏｃｈａｓｔｉｃ  Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ、ＳＧＤ）によってネットワークを訓練して、行列
【数１９】
2018073393.tif 000021
【数２０】
2018073393.tif 000022
および
【数２１】
2018073393.tif 000023
の最良のパラメータを見つけることが含まれている。図７のプロットは、訓練損失およびテスト損失の経時変化を示す。
【００９７】
ここで、図５に示すオンラインフェーズ（特にオンラインテスト）について説明する。
【００９８】
リアルタイムでＲＧＢ−Ｄを取得し、上記事前学習した回帰関数を用いると、人の３Ｄ身体モデルパラメータを直接的に推定することができる。
【００９９】
図８のプロットは、（ランダムな身体モデルパラメータを使用して）ランダムに生成された合成深度マップから予測した３Ｄ身体モデルを示す。これは、予測された３Ｄ身体モデルとグラウンドトゥルースの３Ｄ身体モデルの各頂点間について算出した損失関数（ユークリッド距離）のヒートマップを示す。このプロットでは、テストのために、形状のみが予測され、姿勢はＴ基準姿勢に設定された。学習した回帰関数が、体の形状をよく予測していることが分かる：見つかった最大誤差は、頂点の非常に小さな集合で４．４５ｍｍであった。
【０１００】
別のテストでは、姿勢パラメータを回帰学習関数に統合した。図９−１０のプロットは、予測した（黒色の）身体モデルとグラウンドトゥルースの（グレーの色調の）身体モデルの差異を示す。予測した人体が、グラウンドトゥルースのモデルに非常に近いことが分かる。
【０１０１】
これにより、姿勢最適化アルゴリズムを使用して、姿勢精緻化ステップに完璧な初期設定を与えることができる。
【図１】
2018073393.tif 000024
【図２】
2018073393.tif 000025
【図３】
2018073393.tif 000026
【図４】
2018073393.tif 000027
【図５】
2018073393.tif 000028
【図６】
2018073393.tif 000029
【図７】
2018073393.tif 000030
【図８】
2018073393.tif 000031
【図９】
2018073393.tif 000032
【図１０】
2018073393.tif 000033
【外国語明細書】
2018073393.tif 000034
2018073393.tif 000035
2018073393.tif 000036
2018073393.tif 000037
2018073393.tif 000038
2018073393.tif 000039
2018073393.tif 000040
2018073393.tif 000041
2018073393.tif 000042
2018073393.tif 000043
2018073393.tif 000044
2018073393.tif 000045
2018073393.tif 000046
2018073393.tif 000047
2018073393.tif 000048
2018073393.tif 000049
2018073393.tif 000050
2018073393.tif 000051
2018073393.tif 000052
2018073393.tif 000053
2018073393.tif 000054
2018073393.tif 000055
2018073393.tif 000056
2018073393.tif 000057
2018073393.tif 000058
2018073393.tif 000059
2018073393.tif 000060
2018073393.tif 000061
2018073393.tif 000062
2018073393.tif 000063
【図１】
2018073393.tif 000064
【図２】
2018073393.tif 000065
【図３】
2018073393.tif 000066
【図４】
2018073393.tif 000067
【図５】
2018073393.tif 000068
【図６】
2018073393.tif 000069
【図７】
2018073393.tif 000070
【図８】
2018073393.tif 000071
【図９】
2018073393.tif 000072
【図１０】
2018073393.tif 000073