(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-21
(45)【発行日】2022-11-30
(54)【発明の名称】深度マップからの現実の物体の3D再構築
(51)【国際特許分類】
G06T 19/00 20110101AFI20221122BHJP
【FI】
G06T19/00 A
【外国語出願】
(21)【出願番号】P 2017173981
(22)【出願日】2017-09-11
【審査請求日】2020-08-12
(32)【優先日】2016-09-12
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】モハメド アミネ アヤリ
(72)【発明者】
【氏名】ヴィンセント グイテニー
【審査官】村松 貴士
(56)【参考文献】
【文献】特表2014-524071(JP,A)
【文献】特開2008-309595(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00 - 7/90
G06T 15/00 - 19/20
(57)【特許請求の範囲】
【請求項1】
人体のクラスである、現実の物体のクラスについて、前記クラスのインスタンスを表す
3Dモデル化オブジェクトを、前記インスタンスの深度マップから再構築するように構成
された関数を学習するための、コンピュータによって実施される方法であって、前記3D
モデル化オブジェクトは、前記深度マップによって表される前記インスタンスの姿勢にお
ける前記インスタンスの3次元形状をモデル化するものであり、
形状および姿勢を含む前記クラスのパラメトリックモデルを提供すること(S10)で
あって、当該パラメトリックモデルはパラメトリック領域上で連続であり、
データベースを作成することであって、
前記パラメトリックモデルのパラメータを変更(S22)して、それぞれが前記クラ
スの各インスタンスを表す3Dモデル化オブジェクトを生成することと、
生成された各3Dモデル化オブジェクトについて、前記生成された3Dモデル化オブ
ジェクトによって表される各インスタンスの深度マップを合成すること(S24)と、
合成された各深度マップを、対応する3Dモデル化オブジェクトに関連付けること(
S26)と、
を含み、
前記データベースを用いて前記関数を学習すること(S30)と
を含む方法。
【請求項2】
生成された各3Dモデル化オブジェクトの各深度マップを合成することは、
仮想視点を提供すること(S242)と、
前記仮想視点から、前記生成された3Dモデル化オブジェクトまでの、正確な深度を表
す理論深度マップを決定すること(S244)とを含む
ことを特徴とする請求項1に記載の方法。
【請求項3】
生成された各3Dモデル化オブジェクトの各深度マップを合成することは、さらに、前
記理論深度マップの、少なくとも前記生成された3Dモデル化オブジェクトの輪郭に対応
する位置に、摂動を加えること(S246)を含む
ことを特徴とする請求項2に記載の方法。
【請求項4】
摂動を加えることは、前記深度マップにランダムなノイズを加えることを含む
ことを特徴とする請求項3に記載の方法。
【請求項5】
前記ランダムなノイズはガウスノイズである
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記ランダムなノイズは、深度センサのノイズに対応する
ことを特徴とする請求項4または5に記載の方法。
【請求項7】
深度マップを提供すること(S50)と、
前記深度マップに
、学習された前記関数を適用すること(S60)と
を
さらに含む
請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記深度マップは深度センサによって取得される
ことを特徴とする請求項7に記載の方法。
【請求項9】
請求項1~8のいずれかに記載の方法を実行するための命令を含むコンピュータプログラム。
【請求項10】
請求項9に記載のコンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体。
【請求項11】
請求項10に記載のコンピュータ読み取り可能記憶媒体と、当該記憶媒体に接続され、
請求項9に記載のコンピュータプログラムを実行するためのプロセッサを含む、コンピュータシステム。
【請求項12】
深度センサをさらに含む
ことを特徴とする請求項11に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より具体的には、現実の物体、例えば人体を表す3Dモデル化オブジェクを深度マップから再構築することに関する方法、システム、およびプログラムに関する。
【背景技術】
【0002】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。CADは、コンピュータ支援設計(Computer-Aided Design)の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。CAEは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。CAMは、コンピュータ支援製造(Computer-Aided Manufacturing)の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理(Product Lifecycle Management: PLM)システムに組み込むことができる。PLMとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するPLMソリューション(製品名CATIA、ENOVIA、DELMIA)は、製品エンジニアリング知識をオーガナイズするエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
【0003】
このフレームワークにおいて、コンピュータビジョンおよびコンピュータグラフィックスの分野では、より便利な技術が提供されている。実際、この分野には、3D再構築への応用例がある。3D再構築は、シリアスゲーム、ビデオゲーム、建築、考古学、リバースエンジニアリング、3Dアセットデータベース、あるいは仮想環境など、(例えば、テクスチャ化された)3Dモデルの作成を含む任意の分野で使用することができる。いくつかの学術界および産業界のプレイヤーたちが、例えばRGBおよび/または深度画像解析によるAcute3D、Autodesk、VisualSFM、あるいはRGB深度分析によるReconstructMe、MicrosoftのKinect(登録商標)用SDKなど、3D再構築のためのソフトウェア・ソリューションを提供している。
【0004】
RGB-深度(またはRGB-D)画像解析は、標準的なRGBデータに加えて深度データを提供する「エミッタ-レシーバ」センサを用いて3D再構築を行うアプローチである。深度データは、主に再構築処理で用いられるデータを構成してもよい。以下の論文がこのアプローチに関連する。「Yan Cui他:D Shape Scanning with a Time-of-Flight Camera,CVPR 2010」、「RS.Izadi他:inectFusion:Real-Time Dense Surface Mapping and Tracking,Symposium ISMAR 2011」、および「R.Newcombe他:Live Dense Reconstruction with a Single Moving Camera,IEEE ICCV2011」。深度マップ解析再構築法は、視差マップまたは近似された3D点群に基づく。視差マップは、ステレオビジョンまたは構造化光(例えば「Kinect」の装置など参照)または「Time of Flight」の3Dカメラを使用して取得される。
【0005】
RGB-D画像解析は、特に、人体など、現実の物体の3D再構築処理において使用され得る。このような処理の目的は、ユーザのRGB-D(すなわち、深度マップ画像を有するカラー画像)の取得から始めて、ユーザの身体の正確な3D形状および/または姿勢を予測することである。これは、仮想試着シミュレーション、拡張現実、モノのインターネットや、ビデオゲームなどにおいて多くの用途を持ち、ユーザの身体形状や姿勢が、例えば、単一のRGB-Dセンサを用いてキャプチャされる。
【0006】
3D人体再構築についての文献の大部分は、「最適化ベースの方法」と呼ぶことができる、方法の1つの分類にまとめることができる。これらの方法では、ユーザの視点を3Dパラメトリック身体モデルと比較するコスト関数に適用された最適化技法を用いて、3D人体パラメータ、姿勢および形状を推定する。
以下は、最適化ベースの方法の例を開示している論文の一覧である。
【先行技術文献】
【非特許文献】
【0007】
【文献】Balan,L.S. Detailed Human Shape and Pose from Images.CVPR,2007.
【文献】Balan,M.B. The Naked Truth:Estimating Body Shape Under Clothing.ECCV,2008.
【文献】A.Weiss,D.H. Home 3D body scans from noisy image and range data.ICCV,2011.
【文献】F.Perbet,S.J. Human Body Shape Estimation Using Multi-Resolution Manifold Forest.CVPR,2014.
【文献】M.Loper,M.B. OpenDR:An approximate Differentiable Renderer.ECCV,201.4
【文献】P.Guan,A.W. Estimating human shape and pose from a single image.ICCV,2009.
【文献】Y.Chen,Z.L. Tensor-based Human Body Modeling.CVPR,2013.
【0008】
これらの論文で述べられているように、最適化ベースの方法は、RGB-Dカメラを用いてユーザをキャプチャすることから始まる。これにより、RGB画像と深度マップ画像が得られる。この方法は、形状及び姿勢パラメータで制御されるパラメトリックモデルを用いて3Dの人体を表す。形状パラメータは、人間に固有の形状をキャプチャし、姿勢パラメータは身体の姿勢をキャプチャする。
【0009】
このパラメトリックモデルをユーザRGB-Dの取得で使用するとき、最適化ベースの方法では、2つの最適化ステップを用いてモデルパラメータを予測することがよくある。
【0010】
第1のステップは、パラメトリック身体モデルのシルエットと、観測したシルエット(ユーザの深度マップから抽出したもの)とのマッチングを行うことによって、身体パラメータ(形状および姿勢)を検索することからなる。
【0011】
2つのシルエットは、例えば以下のように定義される双方向コストを用いて比較する。
【数1】
ここでSはユーザのシルエットであり、Tはモデルのシルエットであり、また、
・インデックス(i,j)の画素がS内にある場合S
ij=1であり、その他の場合0。
・画素(i,j)がT内にない場合、C
ij(T)=画素(i,j)からS内の最も近い画素への距離であり、その他の場合0。
【0012】
第2のステップは、身体パラメータと観察した深度マップについて、両マップのコスト関数を最小化することによって両者のマッチングを行うことからなる。コスト関数は、以下に定義されるように、重なり合った2つの深度マップ間の距離として定義される。
【数2】
ここで、D
Sはユーザの深度マップであり、D
Tはモデルの深度マップであり、ρはGeman-McClure推定量であり、Nは重複する画素の数である。
【0013】
もう1つの最適化ベースの方法は、上述の「F.Perbet,S.J. Human Body Shape Estimation Using Multi-Resolution Manifold Forest.CVPR,2014」に提案されている。この方法は、形状パラメータのみを検索し、人体形状の多様体上のエネルギー関数を最適化する際の形状推定のタスクを定式化する。単一の人間の深度マップから始めて、類似度を用いて多様体上に初期解を見つける。そして、Iterative Closest Pointを用いて、解を精緻化する。
【発明の概要】
【発明が解決しようとする課題】
【0014】
最適化に基づく再構築方法を使用する3D人体再構築は、複数の欠点を有する。1つは収束速度が遅いことに関する。例えば、上述の「A.Weiss,D.H. Home 3D body scans from noisy image and range data.ICCV,2011」に記載のように、この方法は収束に45分以上かかることがある。これは、未知数が多く、目的関数が複雑である(ほとんどの場合区別できない)ことに起因する。また、使用される最適化目的関数が凸ではないので、最適化方法が極小値に拘束される可能性がある。極小値問題を回避する一般的な戦略は、最適化をそれぞれ異なる未知数を有する複数の最適化問題に分割することによって、姿勢パラメータと形状パラメータとの間で最適化を交互に行うことである。これは特に、上述の「Balan,M.B. The Naked Truth:Estimating Body Shape Under Clothing.ECCV,2008」で提案されている。これにより、未知数の多いベクトルの最適化が回避され、収束を助けるが、それでもなお時間がかかり収束は保証されない。
【0015】
このような文脈において、現実の物体を表す3Dモデル化オブジェクトを深度マップから再構築するための改善された解決策が依然として必要である。
【課題を解決するための手段】
【0016】
したがって、現実の物体のクラスについて、当該クラスのインスタンスを表す3Dモデル化オブジェクトを、当該インスタンスの深度マップから再構築するように構成された関数を学習するための、コンピュータによって実施される方法が提供される。本方法は、「学習方法」または「オフライン」モードまたは方法と呼ばれることがある。
【0017】
当該学習方法は、前記クラスのパラメトリックモデルを提供することを含む。当該学習方法はまた、データベースを作成することを含む。データベースの作成は、パラメトリックモデルのパラメータを変更して、それぞれが当該クラスの各インスタンスを表す3Dモデル化オブジェクトを生成することを含む。データベースの作成はまた、生成された各3Dモデル化オブジェクトについて、生成された3Dモデル化オブジェクトによって表される各インスタンスの、それぞれの状態の深度マップを合成することを含む。データベースの作成はまた、合成された各深度マップを、対応する3Dモデル化オブジェクトに関連付けることも含む。学習方法はまた、データベースを用いて関数を学習することを含む。
【0018】
一例において、学習方法は、以下のうちの1つまたは複数を含んでいてもよい。
・生成された各3Dモデル化オブジェクトの各深度マップを合成することは、仮想視点を提供することと、仮想視点から、生成された3Dモデル化オブジェクトまでの、正確な深度を表す理論深度マップを決定することとを含む。
・生成された各3Dモデル化オブジェクトの各深度マップを合成することは、さらに、理論深度マップの、少なくとも生成された3Dモデル化オブジェクトの輪郭に対応する位置に、摂動を加えることを含む。
・摂動を加えることは、深度マップにランダムなノイズを加えることを含む。
・ランダムなノイズはガウスノイズである。
・ランダムなノイズは、深度センサのノイズに対応する。
深度センサは、後述する再構築方法および/または後述するシステムに含まれる深度センサと同じ、または同じ種類である。
【0019】
現実の物体のクラスは人体のクラスであり、かつ/あるいは、学習方法によって学習された関数が出力され、例えば不揮発性メモリなどのメモリに記憶され、かつ/または、例えば後述のシステムなどの遠隔システムに送信され、例えば、学習方法は別の装置によって実行される。
【0020】
また、学習方法に従って学習可能な関数、すなわち、学習方法によって出力された関数に対応するデータ構造が提供される。一例では、関数は学習方法に従って効果的に学習される。この関数は、「再構築関数」と呼ばれることがある。
【0021】
さらに、現実の物体のクラスについて、当該クラスのインスタンスを表す3Dモデル化オブジェクトを、当該インスタンスの深度マップから再構築するための方法が提供される。このような方法は、「再構築方法」または「オンライン」モードまたは方法と呼ばれることがある。
【0022】
再構築方法は、再構築関数を提供することを含む。再構築方法はまた、深度マップを提供することを含む。再構築方法はまた、再構築関数を深度マップに適用することを含む。例において、深度マップは、深度センサによって取得されてもよい。
【0023】
再構築方法により得られる3Dモデル化オブジェクト、すなわち、再構築方法によって出力される3Dモデル化オブジェクトに対応するデータ構造がさらに提供される。3Dモデル化オブジェクトは、「再構築3Dモデル化オブジェクト」と呼ばれることがある。
【0024】
さらには、前記学習方法、および/または、前記再構築方法を実行するための命令を含むコンピュータプログラムが提供される。
【0025】
さらに、上述のデータ構造のいずれか1つまたは組み合わせ、すなわち、再構築3Dモデル化オブジェクト、再構築関数、および/またはコンピュータプログラムが記録されたコンピュータ読み取り可能な記憶媒体、すなわちメモリが提供される。
【0026】
さらに、コンピュータ読み取り可能な記憶媒体またはメモリに接続されたプロセッサを含むシステムが提供される。例において、前記システムはさらに、深度センサを含んでいてもよい。
【0027】
以下、非限定的な例として、本発明の実施の形態を添付の図面を参照しつつ説明する。
【図面の簡単な説明】
【0028】
【
図2】本再構築方法の一例のフローチャートを示す。
【
図4】本方法群の例および、それらのテストを示す。
【
図5】本方法群の例および、それらのテストを示す。
【
図6】本方法群の例および、それらのテストを示す。
【
図7】本方法群の例および、それらのテストを示す。
【
図8】本方法群の例および、それらのテストを示す。
【
図9】本方法群の例および、それらのテストを示す。
【
図10】本方法群の例および、それらのテストを示す。
【発明を実施するための形態】
【0029】
提供される方法、プログラム、媒体、およびシステムは、現実の物体のクラスのインスタンスを表す3Dモデル化オブジェクトの、当該現実の物体のインスタンスの深度マップからの再構築を、特にそのような文脈において機械学習のパラダイムを実装することによって改善し、その利点を享受する。
【0030】
再構築方法により、インスタンスを表す比較的単純なデータ構造、すなわちインスタンスの深度マップから、3Dモデル化オブジェクトを取得することが可能になる。例では、再構築方法は、インスタンスの単一の深度マップに基づいて実行されてもよい。深度マップは、深度センサを用いて深度測定値を取得することを含む処理、またはそのことからなる処理によって取得することができる。したがって、例えば、RGB-Dカメラのような深度センサを含む任意の装置またはシステムを用いて、単一の深度マップなど、インスタンスの深度マップを単純に取得することによって、再構築方法を非常に簡単に実行することができる。再構築方法は、次いで、再構築関数を深度マップに直接適用するにあたり、再構築関数を適用して、3Dモデル化オブジェクトを直接出力することを含んでいてもよい。演算の複雑性は、深度マップのサイズのみに依存する。したがって、再構築方法は比較的高速であり、リアルタイムで実行できる。これにより、多くの消費者向けアプリケーションの可能性を開く。
【0031】
また、例では、再構築方法は、任意の姿勢のインスタンスの深度マップに基づいて実行されてもよい。言い換えれば、インスタンスの3D再構築の前に深度データを取得するために、インスタンスは任意の姿勢をとることができる。よって3D再構築は、深度の取得時に自由な姿勢をとることを可能にする。姿勢の変動を考慮した再構築関数のおかげで、再構築方法では、深度データを取得する際に基準姿勢をとる必要がない。これにより、再構築方法を実行する際の柔軟性が向上する。
【0032】
これはすべて、再構築関数を取得する方法、言い換えれば、学習方法の特異性によるものである。特に、再構築関数は、機械学習が適切な結果をもたらすことができるように、適切に作成されたデータベース上で学習される(すなわち、機械学習によって得られる)。そのような学習に適した既存のデータベースは利用できない(例えば、インターネット上で利用可能な画像を簡単に検索し、学習データベースを形成するために適切に索引付けすることができるような、例えば、画像内の猫を認識する機能の機械学習の文脈とは異なる)。したがって、本学習方法は、クラスのパラメトリックモデルを利用して、そのようなアドホック学習データベースを作成/合成する。次いで、作成したデータベース上で、再構築関数(すなわち、学習方法)を得るための機械学習処理を、実行することができる。具体的には、データベースの作成により、それぞれが対応する3Dモデル化オブジェクトに関連付けられた深度マップが得られる。したがって、学習方法は、そのようなデータベース、およびその具体的な「3Dモデル化オブジェクト-深度マップ」のデータ関連付けに基づいて、深度マップから3Dモデル化オブジェクトを再構築する再構築関数を学習することができる。
【0033】
ここで、本方法およびシステムの一般的な例を、
図1~3を参照して説明する。
【0034】
【0035】
図1の方法により、少なくとも現実の物体のクラス(すなわち、少なくとも1つのクラス)について、深度マップから3Dモデル化オブジェクトを再構築するように構成された関数が得られる。このように、学習方法によって得られる再構築関数は、後に、そのようなクラスの現実の物体のそれぞれに再構築方法を適用できるようなものである。学習方法は、深度マップを引数として受け取る関数が、そうした引数をどのように処理するかを表すデータ構造を出力する。したがって、当該データ構造を用いてそのような処理を実行することができる。学習は、再構築関数がクラスのインスタンスを表す深度マップに任意の時点で適用されるとき、再構築によって、当該インスタンスを比較的正確に表す(すなわち、ジオメトリの観点で当該インスタンスの実際のモルフォロジーに比較的近い)3Dモデル化オブジェクトへと導く。関数はまた、クラスまたは抽象深度マップ(すなわち、現実の物体を表さない)のうち、現実の物体を表す深度マップに適用することができ、例えば、最も近い深度マップから抽象深度マップへの再構築に対応するクラスのインスタンスを表す3Dモデル化オブジェクトへと導く。あるいは、そのような場合にエラーまたはヌルを出力するように関数を制限することができる。しかしこれは単に実施上の事項であるため、以下ではこれ以上説明しない。
【0036】
図1の学習方法は、S10において、現実の物体のクラスのパラメトリックモデル(すなわち、少なくとも1つのパラメトリックモデル)を提供することを含む。このデータ構造は広く知られているものではあるが、ここで詳細に説明する。
【0037】
「現実の物体のクラス」という表現は、類似のモルフォロジーを有する現実の物体の集合、グループ、またはカテゴリを指す。「モルフォロジー」という用語は、その姿勢に関係なく、現実の物体の3D形状を指す。言い換えれば、現実の物体のモルフォロジーは、現実の物体がとることができるすべての姿勢についての、達成可能な3D形状の分布である。現実の物体の姿勢は、内部変形の自由度(もしあれば)に関して、現実の物体がどのように立っているかに対応する(姿勢は、現実の物体に内部変形の自由度が全くない場合には、現実の物体が示すことのできる一意な3D形状である)。言い換えれば、現実の物体の姿勢は、その内部変形の自由度の特定の構成に対応する。内部自由度は、現実の物体のブロック部材(すなわち、現実の物体のうち変形しない部分)間にある、現実の物体のうち変形可能な部分に対応することができる。変形可能な部分は、関節を形成することができる。関節は、2つのブロック部材間の回転を可能にし、ねじれ可能であり、かつ/あるいは、(例えばわずかに)伸縮可能である。
【0038】
クラスの要素を「インスタンス」と呼ぶ。したがって、インスタンスはそのクラスの現実の物体である。インスタンスは3D形状を有しており、形状は、もし姿勢があれば、それによって変わる。インスタンスは、インスタンスのそのような3D形状をモデル化する3Dモデル化オブジェクトによって表すことができる。特に、変更(S22)において、それぞれがクラスのインスタンスを表す3Dモデル化オブジェクトが生成される。3Dモデル化オブジェクトは、所与の姿勢のインスタンスを表すことができる。例えば、再構築方法によって出力された3Dモデル化オブジェクトは、深度マップによって表されるインスタンス姿勢をとるインスタンス(その深度マップが再構築のために提供される)を表すことができる。しかし、必ずしもそうである必要はなく、特に、本方法の用途を考慮し、変更(S22)と合成(S24)がどのように行われるかに依存する。これについては、後ほど、変更(S22)および合成(S24)について説明するときに、より詳細に説明する。
【0039】
現実の物体のクラスは、そのような3Dモデル化オブジェクト(それぞれ、それがモデル化した現実の物体の姿勢を表す)によってこのように表現される現実の物体の集合体である。そのような3Dモデル化オブジェクトは、それぞれ、同じパラメトリックモデルのパラメータ値に対応する。したがって、クラスは、このような代表的なパラメトリックモデルによって定義してもよい。パラメトリックモデルは、クラスのすべての現実の物体に共通であり、それによってクラスを表す。言い換えれば、現実の物体のクラスは、それぞれの3D形状が同じパラメトリックモデルを共有するという事実によって集めることができる現実の物体の集合体である。したがって、パラメトリックモデルを用いて、それぞれの姿勢をとるクラスのインスタンス、すなわち、出力された3D形状を有し、当該それぞれの姿勢をとる現実の物体を表す、(異なるパラメータ値に対応する)異なる3D形状を得ることができる。このようなパラメトリックモデルが、S10において、そうした目的のために提供される。なお、現実の物体のクラスは、異なるパラメトリックモデル、すなわち、異なるデータ構造および/または異なる数学的表現を有するモデルによって表すことができるが、その場合も同じモルフォロジーのクラスが得られ、したがって、その点で同等である。学習方法は、S10で、1つまたは複数のそのようなパラメトリックモデルを提供し、処理することができる。また、学習方法は、現実の物体の単一のクラスまたは現実の物体の複数のクラスに適用できる(クラスごとに、それぞれのパラメトリックモデルがS10で提供される)。以下の説明は、本方法によって企図される、単一のクラスの場合、およびS10で提供される単一のパラメトリックモデルに関する。複数の場合への適応は容易である。
【0040】
よってパラメトリックモデルは、入力パラメータに基づいて、3Dモデル化オブジェクトを導出することができるデータ構造(例えば、直接的に3Dモデル化オブジェクト)を出力する関数であってもよい。したがって、パラメトリックモデルのパラメータの値の集合は、3Dモデル化オブジェクトを表す(パラメータごとに1つの値)。パラメトリックモデルの画像(すなわち、その領域全体にわたってパラメトリックモデルを適用することによって出力された値の集合)は、各姿勢における現実の物体のクラスのインスタンスそれぞれの3D形状を表す。パラメータは、2つの異なるカテゴリに分けることができる:すなわち、形状パラメータと姿勢パラメータである。形状パラメータは、クラスにおける現実の物体の選択を制御し、姿勢パラメータは、選択された現実の物体の姿勢を制御する。パラメトリックモデルの複雑さ、および、特に、関与するパラメータの数は、クラス内の現実の物体のモルフォロジーの複雑さ、および、クラスおよび/または姿勢をモデル化する際の精緻さと合成要件の比(言い換えれば、クラスおよび/または姿勢をモデル化する際に求められる識別レベル)によって変わる。この数字は、一般に100未満、またはさらに75未満である可能性がある。例えば、後述する人体のクラスでは、S10で提供されるパラメトリックモデルは、インスタンス選択を表すのに、5個より多く、かつ/あるいは、15個未満(例えば、10個程度)のパラメータが関与してもよく、かつ/あるいは、選択されたインスタンスの姿勢を表すのに、20個または30個より多く、かつ/あるいは60個または45個未満のパラメータが関与してもよい。パラメトリックモデルは、パラメトリック領域上で連続的であってもよい。パラメータの各領域は、有界または非有界の実数の範囲である。各パラメータは、変形のタイプまたは同相性を、例えば連続的に、制御することができる。
【0041】
例えば、現実の物体のクラスのパラメトリックモデルは、それ自体既知である主成分分析(PCA)によって、それぞれの姿勢(例えば1000個より多い姿勢)をとるクラスのインスタンスの3D形状のサンプルから決定することができる。3D形状は任意の方法でモデル化することができ、例えばデータベースから検索されたり、手動で設計されたりする。そして、パラメトリックモデルは、クラスのインスタンスの任意の形状を、そのようなPCAによって出力され、パラメータ値によって重み付けされた、主成分の合計として記述する。学習方法は、パラメトリックモデルのそのような決定を行う先行ステップを含んでいてもよく、あるいは、パラメトリックモデルは予め決定され、S10において単純に取得され提供されてもよい。
【0042】
「パラメトリックモデル」の概念は、先行技術、そして特に、上述の先行技術の、最適化ベースの方法において、そのように知られている。実際、このような方法においては、最適化処理で、現実の物体のクラスのパラメトリックモデルの最適なパラメータを検索することが多い。S10で提供されるパラメトリックモデルは、そのような先行技術に開示された、そのようなパラメトリックモデルであってもよい。論文「A.Weiss,D.H. Home 3D body scans from noisy image and range data.ICCV,2011」は、特に、人体のクラスのパラメトリックモデルについて詳細に記述している。
【0043】
例では、パラメトリックモデルの出力は、頂点(3D点)の集合、および、メッシュの三角形を定義するこの点の集合上の、それらに対応する接続部として定義される、3D三角メッシュ構造であってもよい。この3Dメッシュは、基準メッシュの変形としてモデル化される。変形は、三角形の辺のレベルで行われる。これは以下のように定義される。
【数3】
ここで、e
k,jは、変形したメッシュのk番目の三角形のj番目の辺であり、これはサイズ(3×1)のベクトルである。
【数4】
は基準メッシュ中の対応するものである。サイズ(3×1)のx
k,jは、k番目のメッシュ三角形中のj番目の頂点である。 n
Tは、3D人体出力メッシュ中の三角形の数である。D
kは、サイズ(3×3)の変形行列である。
【0044】
例では、この行列は以下の要素に分解できる。
【0045】
1.サイズ(3×3)のグリッド変形姿勢行列Rp(k)。これは例えば、三角形kが属する剛体部分p(k)の回転である。この行列は、姿勢パラメータwの関数である。姿勢パラメータwは体の関節の局所回転である。
【0046】
2.サイズ(3×3)の非グリッド変形姿勢行列Qk。これは、例えば特に関節領域および筋肉領域の変形三角形に対して、補正変形行列として機能する。各Qk行列は、2つの最も近い三角形関節局所回転(6つのパラメータ)とQkの9つの行列値の間の線形回帰としてモデル化される。
【0047】
3.サイズ(3×3)の形状変形行列S
k。これは形状パラメータβの関数である。この行列は、個人間のモルフォロジーの変化をモデル化してもよく、身体の形状を、その姿勢とは独立して変形させる役割を果たす。すべてのメッシュ三角形に対して積み重ねられた行列S
kは、人体形状のデータベースに対する主成分分析としてモデル化される。
【数5】
ここで、Sはサイズ(9×n
T)の行列であり、S
0は平均身体形状であり、S
lはl番目の主成分である。
【0048】
Eはサイズ(nE×3)のエッジ行列(すべての三角形についての積み重ねられたek,j)、Xはサイズ(nv×3)の身体の頂点の行列である、身体モデルの出力であり、最後に、Mは、サイズ(nE×xnv)である。
【0049】
現実の物体のクラスは、3D再構築が有用であることが証明された任意のクラスであってもよい。この方法は、異なる姿勢をとることができる現実の物体、すなわち、少なくとも1つの内部自由度を有する現実の物体のクラスについて、特に有用である。実際、この方法によって可能になる自由形式の深度データ取得は、そのような場合に特に有用である。これは特に、現実の物体のクラスが人体のクラスである場合に当てはまる。さらに、深度データからの3D再構築に関する研究は、そのような現実の物体のクラスに主に焦点を当ててきたが、これは特に、例えば、仮想試着シミュレーション、拡張現実、モノのインターネットや、ビデオゲームなど、有望な用途があるからであり、これらにおいては、ユーザの身体形状や姿勢が、例えば、単一のRGB-Dセンサを用いてキャプチャされる。
【0050】
しかし、クラスは、動物、身体器官の部分、または植物/樹木、または(例えば機械)部品や部品の集合体、より一般的には任意の剛体の集合体(例えば移動機構)など、他のタイプの現実の物体の集合であってもよい。製品は、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および/または海洋石油/ガス生産、または交通を含む、限定されることのない様々な産業分野において用いてもよい。本方法は、地上車両の部品(例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラック、バス、電車を含む)、航空車両の部品(例えば、航空機体機器、航空宇宙機器、推進機器、防衛製品、航空路線機器、宇宙機器を含む)、海軍車両の部品(例えば、海軍用機器、商業用船舶、オフショア機器、ヨットおよび作業船、船舶用機器を含む)、一般的な機械部品(例えば、工業用製造機械、大型移動機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む)、電気機械部品または電子部品(例えば、家電、セキュリティおよび/または制御および/または計装製品、コンピューティングおよび通信機器、半導体、医療装置および設備を含む)、消費者製品(例えば、家具、家庭用および庭用製品、レジャー用品、ファッション用品、耐久消費財小売用品、織物類小売用品を含む)、包装(例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品包装を含む)などのように、任意の機械部品であり得る工業製品を意図したものであってもよい。
【0051】
ここで
図1の学習方法のその他のステップについて説明する。
【0052】
当該学習方法は、パラメトリックモデルに基づきデータベースを作成することを含む。データベースは、機械学習のために使用することができ、したがって、「学習データベース」と呼ぶことができる。このような学習データベースは、機械学習の分野でそれ自体知られているように、訓練データベース(S30で、再構築関数の候補を決定するため)、および、テストデータベース(S30で、再構築関数の候補がうまく機能するかどうかを評価するため)を含んでいてもよい。訓練データベースは、テストデータベースより多くのデータを含んでいてもよく、例えば、データの総数の60%を超える数(例えば、80%程度)のデータを含んでいてもよい。データの総数は、企図されている学習の品質と、企図されている現実の物体の特定のクラスに対する深度マップの識別能に依存する。この数は、1,000、10,000、50,000、さらには100,000より大きくてもよい(例えば、非常に高速な学習の場合は40,000程度、非常に正確な学習の場合は120,000程度)。
【0053】
データベースの作成には、パラメトリックモデルのパラメータを変更(S22)して、それぞれが当該クラスの各インスタンスを表す3Dモデル化オブジェクトを生成することを含む。言い換えれば、本方法は、S22において、パラメトリックモデルを使用することによって、すなわち特定のパラメータ値を有するパラメトリックモデルを評価した結果を決定することによって、クラスにおける(それぞれの姿勢をとる)インスタンスを表す3Dモデル化オブジェクトを決定する。従って、変更(S22)により、パラメトリックモデルのパラメトリック領域のサンプリングが達成される。パラメータ値は、S22において任意の方法で変化させることができる。S22で生成された3Dモデル化オブジェクトは、クラスにおける異なるインスタンスを表すことができる。クラスのインスタンスの少なくとも一部に関して、同じインスタンスが、S22で生成された、厳密に2つ以上の3Dモデル化オブジェクトによって表されてもよい(例えば、インスタンスの、異なる姿勢を表す)。あるいは、クラスの各インスタンスは、生成された最大1つの3Dモデル化オブジェクトによって表現されてもよい(したがって、最大で1つの姿勢がすべてのインスタンスに対して提供される)。生成された3Dモデル化オブジェクトは、(すべてのインスタンスについて)同じ姿勢、または異なる姿勢のインスタンスを表すことができる。例では、変更は、パラメトリック領域のサンプリングにおける規則性のレベル、および/または、ランダム性のレベルを含む。例では、サンプリングは、パラメータの最小値および最大値による制約を受ける各モデルパラメータに一様に適用してもよい。最小値/最大値も、妥当な身体形状を与えるものである。
【0054】
学習方法はまた、生成された各3Dモデル化オブジェクトについて、生成された3Dモデル化オブジェクトによって表される各インスタンスの深度マップをS24において合成することを含む。言い換えれば、本学習方法は、生成された3Dモデル化オブジェクトごとに、人工的に(例えば、自動的に)、3Dモデル化オブジェクトによって表されるインスタンスの深度を測定する場合に得られる深度マップを表す深度マップをS24で構築する。これは演算により、すなわち測定なしで行われる。これにより、対応する3Dモデル化オブジェクトにおける深度マップを変換し、それによって深度マップによって表されるクラスのインスタンスをモデル化することができる関数を事後学習することによって、再構築関数を構築することができる。
【0055】
そのため、本学習方法は、合成された各深度マップを、対応する3Dモデル化オブジェクトに関連付ける(S26)ことによって、データベースを作成する。
図1に示すように、S26で所与の深度マップに関連付けられた、対応する3Dモデル化オブジェクトは、S24で当該所与の深度マップが合成された、S22で生成された3Dモデル化オブジェクトであってもよい。これにより、インスタンスだけでなく、再構築方法の間に深度マップが測定される場合のインスタンスの姿勢も表す、3Dモデル化オブジェクトを再構築する再構築関数を学習することが可能になる。しかし必ずしもそうでなくてもよい。実際、例では、S26において、合成された深度マップは、必ずしも正しい姿勢をとらない、そのようなインスタンスを表す任意の3Dモデル化オブジェクトに関連付けられてもよい。これは、本方法の用途がインスタンスのみ(姿勢ではない)を再構築することか、あるいは姿勢も再構築することかによって変わる。どの場合も、機械学習の分野でそれ自体知られているように、S26で実行された関連付けは、S30で学習されるものを条件とするため、S26の実行の仕方は、正確に、再構築関数の目的によって変わる。
【0056】
データベースが作成されると、本学習方法は、S30において、データベースに基づいて再構築関数を学習する。学習(S30)は、機械学習の分野でそれ自体知られている任意の機械学習方式で、古典的なやり方で実行される。学習(S30)の実行の仕方は、学習する再構築関数について想定している構造に密接に関連する。例えば、再構築関数は回帰関数を含み、機械は回帰学習を学習する。特に、再構築関数は、ニューラルネットワークの適用を含んでもよい。ニューラルネットワークは、例えば、畳み込み層、および/または、最大プーリング層のような、線形演算を適用することによって点ごとの非線形性をもたらす層を(例えば、交互に)含む、(例えば、3つ以上の)処理層を実装することができる。ニューラルネットワークは、例えば、深層畳み込みニューラルネットワーク(CNN)であってもよい。再構築関数はまた、上記の処理(群)の前に初期(生)の深度マップの前処理を含んでもよい。前処理は、未処理の深度マップを充実させること、および/または、未処理の深度マップからインスタンスの別の表現を導出することを含むか、あるいはそうすることから構成されていてもよい。前処理は、例えば、初期の手作業による特徴抽出(例えば、算出した法線マップ、またはそれを算出することに基づく)のような、初期特徴抽出を含むか、あるいはそれから構成されていてもよい。あるいは、本方法は、初期の(未処理の)深度マップにおいて上記の処理(群)を直接実行してもよい(言い換えれば、本方法は、そのような任意の前処理から導出されてもよい)。しかしながら、線形および非線形回帰アルゴリズム(例えば、カーネルベースのもの)のように、作成されたデータベースからの他のタイプの機械学習を実施することもできる。
【0057】
ここで、生成された各3Dモデル化オブジェクトの深度マップの合成(S24)について、より詳細に説明する。
【0058】
合成(S24)は、再構築関数をどのように訓練したいかに応じて、任意の方法で実行することができる。
図1に示されたS24の効率的かつ単純な例は、仮想視点を提供すること(S242)と、仮想視点から、生成された3Dモデル化オブジェクトまでの、正確な深度を表す理論深度マップを決定すること(S244)とを含む。言い換えれば、S22で生成された各3Dモデル化オブジェクトに対して、正確な理論深度マップが、生成された3Dモデル化オブジェクトに関連付けられた基準フレーム内に提供される理論的視点に基づいて、例えば理論的視点からの透視投影の適用からなる単純なジオメトリ演算を用いて、算出される。視点は、S242の反復にわたって(すなわち、異なる3Dモデル化オブジェクトにわたって)異なる、生成された3Dモデル化オブジェクトに関連付けられた球面基準座標に対して、同一であるか、あるいは1つまたは複数の(例えば、すべての)球面座標を提供してもよい。極角および方位角は固定されてもよい(例えば、このような角度の変動が、パラメトリックモデルのパラメータによって直接与えられる)。半径は、例において、固定されていてもよいし、境界であってもよい(例えば、再構築方法で使用されるハードウェアが、インスタンスの位置決めのための測定スポットを1つしか提供しない場合)。
【0059】
図1の例の合成(S24)はまた、S44で得た理論深度マップに摂動を加えること(S246)を含む。摂動は、少なくとも、生成された3Dモデル化オブジェクトの輪郭に対応する理論マップの位置に加えられる。生成された3Dモデル化オブジェクトの輪郭は、深度の不連続性(例えば、インスタンスから背景へ、および/または、隆起部から後部への経路)に対応する。輪郭に対応する位置は、輪郭そのものを示すか、あるいは、所定の閾値(例えば数ピクセル)以下の幅を有する、輪郭を囲む細片を示してもよい。言い換えれば、理論マップ(すなわち、仮想視点からの透視投影によって得られる)は、S246で、少なくとも生成された3Dモデル化オブジェクトの輪郭において修正される。摂動は、輪郭の規則性を減少させるような、輪郭における深度データの任意のタイプの修正である。これにより、学習が大幅に改善され、より正確な再構築関数が実現される。
【0060】
実際、深度マップなどの2D画像からの機械学習は、通常、2D画像内の非常に際立った特徴に大きな重みを与えることにつながる。合成(S24)の理論演算は、特に、生成された3Dモデル化オブジェクトの輪郭を含む、そのような際立った特徴を示す理論深度マップをもたらす。理論深度マップが訓練のためにそのように使用されると、そのようなクリーンな輪郭を見つけることに深く依拠する再構築関数が得られることになる。しかし、現実の深度測定において、現実の物体の輪郭は決して完全に規則的ではない(規則性の欠如は通常、パラメトリックモデルでは捉えられない)だけでなく、さらに重要なことには、深度センサがノイズの多い計測値しか提供しないため、輪郭がそれほどクリーンではない。S246における摂動の追加は、望まれない規則性(すなわち、理論深度マップにおける輪郭の過度な「クリーンさ」)を壊す。そのような規則性は、実際には再構築関数を学習するときに訓練のレベルを下げ、その結果、再構築関数の有用性が低下することになる。
【0061】
加えること(S246)は、深度マップにランダムなノイズを加えることを含んでいてもよい。ランダムなノイズは、理論深度マップ全体に適用されるランダム変数であって、理論深度マップにおける生成された3Dモデル化オブジェクトの輪郭において特に顕著なものであってもよい。ランダムなノイズはガウスノイズであってもよい。
【0062】
例において、ランダムなノイズの追加は、数学的には以下に対応していてもよい:
【数6】
ここでI
ijは深度画像におけるi×j画素位置の深度値であり、
【数7】
は、i×j画素位置における正規化深度画像勾配値であり、
【数8】
は平均値が0で分散が1cm~5cmのガウス分布からサンプリングされた実数である。
【0063】
特に効率的な学習方法は、S246において、S244で出力された理論深度マップに深度センサのノイズに対応するランダムなノイズを加えることである。深度センサについては広く研究されており、それらが示すノイズの特性は、既知であるか、あるいは知ることができる。本学習方法は、特に、特定の深度センサを有するシステムの使用を意図した再構築方法に結合してもよい。そのような場合、そのような特定の深度センサと同タイプの深度センサのノイズ、さらには当該特定の深度センサの特定のノイズは、ランダムガウスノイズとしてモデル化され、学習中にS246で追加されてもよい。これにより、特に正確な再構築関数が得られる。
【0064】
図2は、オンライン(または「インライン」)再構築方法の一例を示す。このような方法は、再構築関数を(例えば所定のデータとして)用いて、クラスのインスタンスを表す3Dモデル化オブジェクトをインスタンスの深度マップから再構築するのに用いる。
【0065】
したがって、本再構築方法は、例えば
図1の方法によって得られた再構築関数を提供すること(S40)を含む。再構築関数はメモリに記憶され、いつでも利用可能であってもよい。
【0066】
再構築方法はまた、深度マップを提供すること(S50)を含む。S50で提供される深度マップは、代表的な3Dモデル化オブジェクトが再構築されるべきインスタンスを表す。深度マップは、例えば、所与の姿勢をとるインスタンスに対して深度センサが実行する測定によって取得される。取得は、深度画像を一度キャプチャすることからなってもよい。これにより、取得が高速かつ単純になる。インスタンスは取得中に自由な姿勢を取ってもよい。これにより、取得が柔軟になる。
【0067】
再構築方法は、次いで、再構築関数を深度マップに適用すること(S60)を含む。再構築関数の適用(S60)は高速であり、正確な結果につながる。言い換えれば、再構築で得られた3Dモデル化オブジェクトは、S50で深度マップが提供されるインスタンスの正確な表現である。これは特に、学習方法が深度センサの測定値におけるノイズを考慮した場合(先に説明したステップS246)に当てはまる。
【0068】
再構築関数は機械学習した関数であるため、その適用(S60)は最適化ベースの方法を実行するのに対し、比較的高速であり、極小値に落ち込むリスクがないため比較的堅牢である。再構築関数の適用は、実際、1秒より速いか、その程度であってもよい。CNN回帰学習方法の場合、再構築関数の適用(S60)は、特に、一連の畳み込み層、そしてドット積を含んでいるか、あるいはそれらから構成されていてもよい。例において、再構築関数の適用(S60)は、特に以下の一連のものを含んでいるか、あるいはそれらから構成されていてもよい。
【0069】
1.総複雑度が
【数9】
である、連続する畳み込み層。ここで、lは畳み込み層のインデックス、dはニューラルネットワークの深さ(畳み込み層の数)、n
lはl番目の層におけるフィルタ数、s
lはフィルタの空間サイズ、そして最後に、m
lは出力特徴マップの空間サイズである。
【0070】
2.最後の畳み込み層の出力と学習した完全に接続された層との間のドット積。最後の畳み込み層のサイズはW
d×W
d×n
dであり、
【数10】
である。ここでW
0は入力深度画像の幅であり、かつ高さである。
【0071】
CNNの、学習した完全に接続された層パラメータは、サイズがd
fcであり、この層は、求めているモデルパラメータを含むことになる。このドット積の複雑度は、
【数11】
である。
【0072】
全体として、このアプローチの複雑度は、
【数12】
である。
【0073】
一例として、以下のパラメータの場合を考えることができる。
【数13】
この例では、複雑度は8*10
6回程度の演算である。これに対して、既存の最適化に基づくアルゴリズムは、同じ例で、3*10
11回程度の演算を要することがある。
【0074】
再構築された3Dモデル化オブジェクトは、前述の用途でそのように使用することができる。あるいは、再構築された3Dモデル化オブジェクトは、最適化に基づくアルゴリズムにおいて初期化データとして使用されてもよい。再構築された3Dモデル化されたオブジェクトは出発点として好ましいため、最適化に基づくアルゴリズムがより速く収束する。また、最適化に基づくアルゴリズムは、姿勢最適化(すなわち、再構築された3Dモデル化オブジェクトの形状パラメータが固定される)に限定されてもよい。
【0075】
モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。使用するシステムの種類に応じて、異なる種類のデータによってモデル化オブジェクトが定義されてもよい。実際、システムは、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/またはPLMシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、以下に示すこのようなシステムの定義から明らかなように、システムは、CAD兼PLMシステムであってもよい。
【0076】
CADシステムは、少なくとも、CATIAのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。CADシステムは、例えば、辺や線を用い、また、場合により面や曲面を用いて、CADモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Bスプライン(NURBS)など、様々な様式で表現されてもよい。具体的には、CADファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は1つまたは複数のCADファイルに格納されていてもよい。CADシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり1メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
【0077】
CADの文脈において、モデル化オブジェクトは、典型的には、3Dモデル化オブジェクトであってもよい。「3Dモデル化オブジェクト」は、3D表現が可能なデータによってモデル化される任意のオブジェクトを意味する。3D表現は、その部品をすべての角度から見ることを可能にする。たとえば、3Dで表現された3Dモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、3Dモデル化されていない2Dアイコンについては除外される。3D表現の表示は、設計を容易にする(すなわち、設計者が作業を達成するスピードを統計的に速める)。
【0078】
本方法は、コンピュータによって実施される。すなわち、本方法のステップ(あるいは略全てのステップ)が少なくとも1つのコンピュータ、または類似の任意のシステムによって実行される。よって本方法のステップは、コンピュータにより、完全に自動的に、あるいは半自動的に実行される可能性がある。例えば、本方法の少なくともいくつかのステップは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例えば、このレベルは、ユーザが設定し、かつ/あるいは、予め定義されていてもよい。
【0079】
本方法のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法を実行することである。当該システムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェイス(GUI)を備えていてもよい。また、メモリはデータベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分(例えば、プログラム用に1つ、場合によりデータベース用に1つ)を含む。システムはさらに、プロセッサに接続され、3D再構築のためのインスタンスの深度マップを取得するよう構成された深度センサを備えていてもよい。システムはまた、取得中にインスタンスが姿勢をとるためのポージングスポットを備えていてもよい。
【0080】
図3は、深度センサに接続されたコンピュータシステムとしての本システムの例を示す。
【0081】
本例のシステムは、内部通信バス1000に接続された中央演算処理装置(CPU)1010、および同じくバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。システムは、さらに、バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたグラフィックス処理装置(GPU)1110を備える。ビデオRAM1100は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、EPROM、EEPROM及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMディスク1040を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。システムはまた、深度センサ1090を含んでいてもよい。
【0082】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
【0083】
3D再構築は、3D設計処理の一部であってもよい。「3Dモデル化オブジェクトの設計」とは、3Dモデル化オブジェクトを作り上げる工程の少なくとも一部である任意の行為あるいは一連の行為を指す。3D再構築は、仮想試着シミュレーション、拡張現実、モノのインターネット、およびビデオゲームの一部であってもよい。
【0084】
ここで、人体のクラスに適用され
図1~2の例と合致する方法の例について、
図4~10を参照して説明する。例ではRGB-Dカメラが記載されているが、深度センサを備えた任意のシステムを実装することができる(例えばRGBカメラなしの、例えば純粋な深度検知装置)。また、例にはメッシュの形を取る3Dモデル化オブジェクトが示されている。B-Repsのような、他のタイプの3Dモデル化オブジェクトが実装されてもよい(パラメトリックモデル上に提供される)。
【0085】
従来の最適化ベースの方法は、新しいユーザが提示されるたびに3D身体モデルパラメータを検索する。本例の方法のアイデアは、異なる方法で課題を表す。すなわち、本例の方法では、3D身体モデルパラメータを検索する代わりに、機械学習を利用して、任意のRGB-Dカメラ深度マップから、その3D身体モデルパラメータへの直接マッピング関数を学習する。これは、
図4に表すパイプラインに示されている。このようなマッピングは、既知の身体モデルパラメータを有するユーザ深度マップの大きなデータベースから学習される。本例の方法は、このアイデアを用いて、3D人体再構築の学習ベースの新たなカテゴリを定義する。最先端のアルゴリズムとは異なり、本例の方法は、より高速で、リアルタイム動作を達成し、これにより多くの消費者向けアプリケーションの可能性を開く。それらは、入力としてユーザの深度マップ画像のみを必要とし、ユーザが基準姿勢で立つ必要はない。本例の方法の詳細なパイプラインを
図5に示す。
【0086】
ここで、
図5に示すオフライン学習について説明する。
【0087】
<概略>
3Dモデルから抽出できる直接的な情報は、その深度マップである。再構築方法が求めるのはその逆であり、深度マップから、3D身体モデルメッシュ、またはより正確にその内部パラメータ(形状およびポーズ)を推測することが求められる。オフライン前処理は、合成的に生成されたデータベースからモデルパラメータへのマッピング関数を学習する。この方法は、ノイズの多いRGB-Dカメラ深度取得をエミュレートするために、ユーザの輪郭にランダムなノイズを合成的に追加する。深度画像データベースとその身体モデルパラメータが学習データを構成する。
【0088】
<合成データベース作成>
本例の方法では、人体の形状と姿勢の変化に対応するパラメトリック3D身体モデルを既に所有していると仮定している。このモデルは、姿勢および形状パラメータを、対応する3D身体モデルに変換する。深度マップデータベースを構築する際、本方法は、第1に、形状および姿勢パラメータ空間をランダムにサンプリングし、対応する3D身体モデルを生成してもよい。第2に、3D身体モデルは、共通の上方向のベクトル、同じ地平面に対して、および同じ縮尺で位置合わせされてもよい。最後に、仮想カメラを用いて3Dモデルごとに深度マップを抽出できる。
【0089】
<ノイズ追加>
本例の方法は、ノイズの多いセンサの深度マップをエミュレートするために、ランダムなノイズ(ガウス分布)をデータベースの深度マップ、特に身体モデルの輪郭に追加する。これにより、同じ深度マップ画像構造に対して確実に高品質の学習とテストが行える。
【0090】
<特徴マップ抽出>
特徴抽出の部分はオプションである。本方法は、生成されたノイズの多い深度マップを使用するか、あるいは深度マップから、法線マップや画像で表現された任意の種類の深度特徴など、より明確な特徴を抽出することができる。特徴抽出の役割は、次のステップにおいて学習アルゴリズムを助ける深度マップの、より明確な表現を推測することである。
【0091】
<回帰学習>
本方法は、モデルパラメータ(形状および姿勢)と結合された深度マップ画像特徴データベースから、特徴画像の空間からモデルパラメータへの回帰関数を学習する。深層畳み込みニューラルネットワーク(CNN)の特徴を利用してこの回帰を解くことができる。
【0092】
<深層畳み込みニューラルネットワーク(CNN)>
畳み込みニューラルネットワークは、畳み込みニューラルネットワークのアーキテクチャを表す
図6に示すように、層として構成された一連の単純な操作によって入力画像を変換する。各層は、点ごとの非線形性が後に続く線形演算を適用する。形式としては、ベクトルとして表される画像xに対するCNNの出力f(x)は、
【数14】
である。
【0093】
ここで、
【数15】
の項は、線形演算に対応する行列であり、関数
【数16】
は点ごとの非線形関数(シグモイド)であり、関数
【数17】
はダウンサンプリング演算(プーリング)を実行する。CNNの場合、行列
【数18】
は特定の構造を持ち、空間マップの畳み込みに対応する。
【0094】
<訓練>
深度マップの集合についてCNNを学習することによって、当該アイデアを検証するためのテストを行った。損失関数は、予測パラメータとグラウンドトゥルースなパラメータのユークリッド距離となるよう定義した。
【0095】
テストにおいて、論文「Krizhevsky,I. Sutskever,G.Hinton. ImageNet Classification with Deep Convolutional Neural Networks.NIPS,2012」に開示されている方式、すなわちAlexNetのアーキテクチャを、最後の二つの層に小さな変更を加えて用いて回帰CNNを訓練した。本例では、層N-1の出力数を身体パラメータの数に変更し、最終層(層N)を取り除き、回帰問題に適したユークリッド損失層で置き換えた。
【0096】
このテストでは、120K個を超えるインスタンスを有するデータベースを、学習用に80%、テスト用に20%に分割して使用した。このテストには、各反復で32個の深度画像のバッチベース学習を用いる確率的勾配降下法(Stochastic Gradient Descent、SGD)によってネットワークを訓練して、行列
【数19】
【数20】
および
【数21】
の最良のパラメータを見つけることが含まれている。
図7のプロットは、訓練損失およびテスト損失の経時変化を示す。
【0097】
ここで、
図5に示すオンラインフェーズ(特にオンラインテスト)について説明する。
【0098】
リアルタイムでRGB-Dを取得し、上記事前学習した回帰関数を用いると、人の3D身体モデルパラメータを直接的に推定することができる。
【0099】
図8のプロットは、(ランダムな身体モデルパラメータを使用して)ランダムに生成された合成深度マップから予測した3D身体モデルを示す。これは、予測された3D身体モデルとグラウンドトゥルースの3D身体モデルの各頂点間について算出した損失関数(ユークリッド距離)のヒートマップを示す。このプロットでは、テストのために、形状のみが予測され、姿勢はT基準姿勢に設定された。学習した回帰関数が、体の形状をよく予測していることが分かる:見つかった最大誤差は、頂点の非常に小さな集合で4.45mmであった。
【0100】
別のテストでは、姿勢パラメータを回帰学習関数に統合した。
図9-10のプロットは、予測した(黒色の)身体モデルとグラウンドトゥルースの(グレーの色調の)身体モデルの差異を示す。予測した人体が、グラウンドトゥルースのモデルに非常に近いことが分かる。
【0101】
これにより、姿勢最適化アルゴリズムを使用して、姿勢精緻化ステップに完璧な初期設定を与えることができる。