(57)【特許請求の範囲】
【請求項１】
深度カメラを用いたリアルタイム３Ｄ再構成に関する装置であって、
ターゲットの深度カメラから受信された複数の深度測定を格納する深度測定データ構造と、
前記ターゲットの３次元表現を格納するモデルと、
前記深度カメラから受信した現在の深度画像を前記モデルへ登録する登録モジュールと、
前記登録に基づいて、前記深度測定データ構造を前記現在の深度画像で修正する蓄積モジュールと、
スペースカービングおよび前記修正された深度測定データ構造に基づいて、前記モデルを変形するモデル変形モジュールと
を備え、
前記修正された深度測定データ構造に基づいて、前記モデルを変形するために、
前記モデル変形モジュールは、
前記現在の深度画像を前記モデルと交差させることにより前記モデルをスペースカービングし、
前記修正された深度測定データ構造を用いて前記モデルを近似する表面を計算し、
前記近似が、前記表面を前記修正された深度測定データ構造に適合させるための有界の反復プロセスに基づく、装置。
【請求項２】
前記深度測定データ構造又は前記モデルの少なくとも１つは、ボクセルグリッドを含み、
前記ボクセルグリッドの複数のボクセルは、前記ターゲットを包含する空間内の複数の点に対応する
請求項１に記載の装置。
【請求項３】
前記モデルは、符号付距離場を含む
請求項２に記載の装置。
【請求項４】
前記現在の深度画像を前記モデルに登録するために、前記登録モジュールは、
前記モデルのボクセルを選択し、
前記選択されたボクセルに関する前記モデルの前記符号付距離場を周辺空間へ現在のボクセルに拡張し、
前記現在のボクセルに関する勾配を算出し、
前記勾配に従って前記現在のボクセルに対応する、前記モデルの境界上の対応点を算出し、
前記対応点を格納する
請求項３に記載の装置。
【請求項５】
前記登録モジュールは、前記ボクセルを反復して選択し、前記符号付距離場を拡張し、前記勾配を算出し、前記対応点を算出し、そして、前記モデルの複数のボクセルに関する前記対応点を格納する
請求項４に記載の装置。
【請求項６】
前記複数のボクセルは、前記モデルにおける前記ターゲットの前記境界近傍に存在し、
前記境界近傍のボクセルは、別のボクセルよりも前記境界より近いボクセルである
請求項５に記載の装置。
【請求項７】
前記登録モジュールは、
前記現在の深度画像から３次元点に、格納された複数の対応点の組み合わせを関連付け、前記格納された対応点は、前記格納された複数の対応点の組み合わせの中にあり、
格納された複数の対応点の前記組み合わせを用いて、第１の姿勢から前記深度カメラの剛体運動を判断し、
前記第１の姿勢からの前記剛体運動を用いて、前記深度カメラの第２の姿勢を判断し、前記第２の姿勢は、前記ターゲットに関連する前記深度カメラの姿勢に対応する
請求項４に記載の装置。
【請求項８】
前記登録に基づいて前記深度測定データ構造を前記現在の深度画像で修正し、前記蓄積モジュールは、
前記深度カメラの焦点から前記現在の深度画像の点に引かれた光線の角度に基づいて、前記点を重み付けし、前記焦点および前記角度は、前記現在の深度画像の前記登録から判断された前記深度カメラの姿勢に基づいて判断され、
前記重みを同じ点の前回の重みと組み合わせる
請求項１から７のいずれか一項に記載の装置。
【請求項９】
前記表面を計算することは、前記修正された深度測定データ構造の複数のボクセル上でレベル集合展開技術を用いる動的輪郭セグメント化の使用を含む
請求項８に記載の装置。
【請求項１０】
前記動的輪郭セグメント化が制限され、符号付距離場として前記モデルを保持する
請求項９に記載の装置。
【請求項１１】
前記有界の反復プロセスは、前記モデルにおける前記ターゲットの境界近傍の複数のボクセルに制限され、
前記境界近傍のボクセルは、別のボクセルよりも前記境界より近いボクセルである
請求項８に記載の装置。
【請求項１２】
深度カメラを用いたリアルタイム３Ｄ再構成のためのハードウェア実装方法であって、前記方法は、
深度測定データ構造のターゲットの深度カメラから受信した複数の深度測定を格納する段階と、
モデルの前記ターゲットの３次元表現を格納する段階と、
前記深度カメラから受信された現在の深度画像を前記モデルに登録する段階と、
前記登録に基づいて、前記深度測定データ構造を前記現在の深度画像で修正する段階と、
スペースカービングおよび前記修正された深度測定データ構造に基づいて、前記モデルを変形する段階と
を備え、
前記修正された深度測定データ構造に基づいて、前記モデルを変形する段階は、
前記現在の深度画像を前記モデルと交差させることにより前記モデルをスペースカービングする段階と、
前記修正された深度測定データ構造を用いて前記モデルを近似する表面を計算する段階であって、前記近似が、前記表面を前記修正された深度測定データ構造に適合させるための有界の反復プロセスに基づく、計算する段階と
を含む、方法。
【請求項１３】
前記深度測定データ構造又は前記モデルの少なくとも１つは、ボクセルグリッドを含み、
前記ボクセルグリッドの複数のボクセルは、前記ターゲットを包含する空間内の複数の点に対応する
請求項１２に記載の方法。
【請求項１４】
前記モデルが符号付距離場を含む
請求項１３に記載の方法。
【請求項１５】
前記現在の深度画像を前記モデルに登録する段階は、
前記モデルのボクセルを選択する段階と、
前記選択されたボクセルに関する前記モデルの前記符号付距離場を、周辺空間へ現在のボクセルに拡張する段階と、
前記現在のボクセルに関する勾配を算出する段階と、
前記勾配に従って前記現在のボクセルに対応する、前記モデルの境界上の対応点を算出する段階と、
前記対応点を格納する段階と
を備える請求項１４に記載の方法。
【請求項１６】
前記モデルの複数のボクセルに対して、請求項１５の複数の動作を反復して実行する段階を含む
請求項１５に記載の方法。
【請求項１７】
前記複数のボクセルが前記モデルにおける前記ターゲットの前記境界の近くであり、
前記境界に近いボクセルは、別のボクセルよりも前記境界より近いボクセルである
請求項１６に記載の方法。
【請求項１８】
前記現在の深度画像を前記モデルに登録する段階は、
前記現在の深度画像から３次元点に、格納された複数の対応点の組み合わせを関連付ける段階であって、前記格納された対応点は、前記格納された複数の対応点の組み合わせの中にある段階と、
格納された複数の対応点の前記組み合わせを用いて、第１の姿勢から前記深度カメラの剛体運動を判断する段階と
前記第１の姿勢からの前記剛体運動を用いて、前記ターゲットに関連する前記深度カメラの姿勢に対応する、前記深度カメラの第２の姿勢を判断する段階と
を備える請求項１５に記載の方法。
【請求項１９】
前記登録に基づいて、前記深度測定データ構造を前記現在の深度画像で修正することは、
前記深度カメラの焦点から前記現在の深度画像の点に引かれた光線の角度に基づいて、前記点を重み付けする段階であって、前記焦点および前記角度は、前記現在の深度画像の前記登録から判断された前記深度カメラの姿勢に基づいて判断される、重み付する段階と、
前記重みを同じ点の前回の重みと組み合わせる段階とを含む
請求項１２から１８のいずれか一項に記載の方法。
【請求項２０】
前記表面を計算する段階は、前記修正された深度測定データ構造の複数のボクセル上でレベル集合展開技術を用いる動的輪郭セグメント化を使用する段階を含む
請求項１２から１９のいずれか一項に記載の方法。
【請求項２１】
前記動的輪郭セグメント化が制限され、符号付距離場として前記モデルを保持する
請求項２０に記載の方法。
【請求項２２】
前記有界の反復プロセスは、前記モデルにおける前記ターゲットの境界近傍の複数のボクセルに制限され、
前記境界近傍のボクセルは、別のボクセルよりも前記境界より近いボクセルである
請求項１２から１９のいずれか一項に記載の方法。
【請求項２３】
機械により実行されると、請求項１２から２２のいずれかの方法を前記機械に実行させる命令を含む
プログラム。
【請求項２４】
請求項２３に記載のプログラムを格納する、コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で説明された複数の実施形態は、概して、複数のデジタル画像から３次元（３Ｄ）モデルを構成することに関し、より具体的には、深度カメラを用いたリアルタイム３Ｄ再構成に関する。
【背景技術】
【０００２】
画像データからのターゲット（例えば、関心のある被写体）の３Ｄモデリング（例えば、再構成）は、一般的なコンピュータビジョンの主題である。画像データからターゲットの３Ｄモデルを作成する場合、一般的な使用（ユーザ体験）は、ユーザにリアルタイムに被写体の３Ｄモデルおよび被写体に対する現在のカメラの姿勢を表示する一方で、手にカメラを保持し、ターゲットの周囲でカメラを移動させる。代替的に、カメラが静止されたままでよく、ターンテーブルが被写体を回転するために用いられてよい。いずれの状況においても、３Ｄモデルを作成するための情報を収集するために、ターゲットの異なる複数の面がカメラにさらされる。
【図面の簡単な説明】
【０００３】
必ずしも一定の尺度で描かれない図面において、同じ数字は、異なる図面における同様のコンポーネントを示してよい。異なる添え字を有する複数の同様な符号は、同様な複数の構成要素の異なる複数の事例を表してよい。例として、概して本明細書で説明される様々な実施形態を複数の図面が図示するが、それらには限定されない。
【０００４】
【図１】一実施形態に係る深度カメラを用いたリアルタイム３Ｄ再構成に関する装置を含むシステムの一例のブロック図である。
【０００５】
【図２】一実施形態に係る、モデルのボクセルグリッド、深度カメラおよびターゲットの一例を図示する。
【０００６】
【図３】一実施形態に係る、モデルのボクセルグリッド、複数の深度カメラおよびターゲットの一例を図示する。
【０００７】
【図４】一実施形態に係る、ボクセルグリッド上のモデルの符号付距離場の一例を図示する。
【０００８】
【図５】一実施形態に係る、ボクセルグリッド上の複数の勾配を有する拡張されたモデルの符号付距離場の一例を図示する。
【０００９】
【図６】一実施形態に係る、深度カメラを用いたリアルタイム３Ｄ再構成に関する方法の一例のフロー図を図示する。
【００１０】
【図７】一実施形態に係る、深度カメラを用いたリアルタイム３Ｄ再構成に関する方法の一例のフロー図を図示する。
【００１１】
【図８】機械の一例を示すブロック図である。当該機械で１又は複数の実施形態が実現され得る。
【発明を実施するための形態】
【００１２】
一例において、深度カメラからのターゲットの３Ｄモデリングは、「ボトムアップ」アプローチを用いてよい。ボトムアップアプローチにおいて、モデルを形成するために、複数の深度画像が撮られ、現在のデータに登録され、蓄積される。このアプローチの欠点は、関心のある被写体がカメラの視野のごく一部のみを占めてよい場合であっても、計算領域がカメラの視野の全てを含まなくてはならないことである。被写体を含ない空間の複数の領域を除外することにより、計算領域を徐々に減少させる見込みがある。より多くのカメラデータが撮られるにつれて、複数の計算領域を減らすことが、３Ｄ再構成のかなりの速度アップとなる。
【００１３】
別の欠点は、後処理をさらに有さない不完全な深度データに関するモデルにおいて、閉曲面を欠くことである。すなわち、ボトムアップアプローチが深度測定の終わりにモデルの要素を原則的に配置するので、複数の深度測定が欠けているところはどこでも、モデルのそのような要素が配置されない。これは、モデルの表面の複数の穴（例えば、欠けている複数の部分）を招き得るので、内部／外部の割り当てのない開放表面をもたらすことになる。例えば、その両極に窪みを有する球体の赤道周りを回転する深度カメラは、複数の窪みに関する複数の深度測定を得ることができないであろう。したがって、ボトムアップアプローチは、モデルに関するこれらの窪みに複数の要素を配置しない。表面が閉じられることを要求する様々な応用（例えば、３Ｄプリンティング）では、表面のそのような複数の穴が問題になり得る。
【００１４】
ターゲット被写体のボトムアップ３Ｄモデリングの短所に対処するために、トップダウン３Ｄモデリングアプローチが使用されてよい。トップダウンアプローチにおいて、ひとつずつ、モデルが集められるのではなく、むしろ初期化された形状から切り分けられる。例えば、各深度測定がターゲットを包含するのに十分な大きさの３Ｄ形状（例えば、木のブロック）に当てはめられるカッティングレーザとして考えられ得る。レーザに当てられる形状の複数の部分が除去される。モデルが固体塊として表されるので、常に、それが閉曲面を保持する。
【００１５】
本明細書で説明されるアプローチが蓄積された複数の深度測定およびカービングされたモデルに関する別個の複数のデータ構造を保持し、ボトムアップおよびトップダウン再構成の両方として考えられる。モデルが符号付距離場として保持されてよい。そのようなモデル表現が、貴重な計算の節約、例えば、深度画像登録を可能にする。さらに、符号付距離場としてのモデルのメンテナンスが、点がモデルの内部かモデルの外部か、又は、さらにモデルの境界（例えば、表面）にどれくらい近い点であるかどうかを判断する計算複雑度を減少させる。複数の深度測定が複数の符号付距離場の現在の重み付けされた平均として格納されるが、複数の符号付距離場が線形ベクトル空間を形成しないので（すなわち、複数の符号付距離場の複数の線形の組み合わせが必ずしも複数の符号付距離場ではなく）、蓄積された深度および複数のモデル表現が別個に保持される。
【００１６】
トップダウンアプローチが、前述の窪みのある球体の例を用いたボトムアップアプローチと対比され得る。ボトムアップアプローチは、窪んだ両極におけるモデル表面を未完了のまま残す一方で、トップダウンアプローチは、両極からモデル材料を除去するであろう。それにより、"埋める"効果を引き起こす。しかしながら、球体の表面が完成されるであろう。他の例の対比において、トップダウンアプローチでは、被写体を表現するために残すモデル「材料」がない（例えば、既に除去されていた）ので、ターゲット近傍の空の空間を通過する誤った被写体が無視されるであろう。対照的に、ボトムアップアプローチは、被写体の誤った性質を判断し、その深度データのモデルへの追加を避けるために、追加の処理が必要であろう。
【００１７】
図１は、一実施形態に係る深度カメラ１４５を用いたトップダウンリアルタイム３Ｄモデリングに関する装置１０５を含むシステム１００の一例のブロック図である。図示されるように、深度カメラ１４５は、複数の深度画像を撮るために、ターゲット１５０の周りを回転する。しかしながら、上述の通り、深度カメラ１４５が静止したままである一方で、ターゲット１５０がターンテーブル（又は同様のデバイス）上に配置され、回転されてよい。これらの複数の例において、深度カメラ１４５がターゲットの外部から複数の深度画像を撮る。一例において、深度カメラ１４５がターゲット内（例えば、空間、開空間、中空球の内部など）に配置されてよく、内部の複数の深度画像を収集するために移動されてよい。この例において、本明細書で原理が示され、さらに適用されるが、異なるモデル初期化形態が使用されてよい。例えば、大きな立方体が、空間全体を包含してよく、その中からモデルがカービングアウトされる。そのような複数の例において、モデル境界が位置する場所のように、本明細書で説明される様々な技術の方向性を提供するためにフラグが設定されてよい。
【００１８】
装置１０５は、（例えば、機械可読媒体に格納された）深度測定データ構造１１０、（例えば、機械可読媒体に格納された、ターゲット１５０の）モデル１１５、登録モジュール１２０、蓄積モジュール１２５、およびモデル変形モジュール１３０を含む、多数のコンポーネントを含んでよい。装置１０５は、フィルタモジュール１３５、初期化モジュール１５５、又はメッシュモジュール１４０の１又は複数を任意に含んでもよい。複数のモジュールの全ては、図８に関連して後述の通り、ハードウェアのかたちで実装される。
【００１９】
深度測定データ構造１１０は、ターゲット１５０の深度カメラ１４５から受信した複数の深度測定を格納するよう構成され（例えば、配置され）てよい。一例において、深度測定データ構造１１０は、ターゲット１５０を包含する空間内の複数の点に対応するボクセルグリッドである。一例において、深度測定データ構造ボクセルグリッドが、モデルのボクセルグリッドとして等価物（例えば、同一の属性を有する異なるグリッド）である。
【００２０】
モデル１１５は、ターゲット１５０の３次元表現を格納するように構成されてよい。一例において、モデル１１５は、ターゲット１５０を包含する空間内の複数の点に対応するボクセルグリッドである。
【００２１】
登録モジュール１２０は、深度カメラ１４５から受信されたモデル１１５に現在の深度画像を登録するように構成されてよい。画像が撮られたとき、登録がカメラの姿勢を判断することを大抵伴う。カメラの姿勢が被写体の正面を向いている間に撮られた第１の画像と、その姿勢が被写体の後方を向いた場合に撮られた第２の画像とを考えると、この動作の価値は明らかである。コストがかかる深度カメラ１４５の制御（例えば、登録データを提供するための複数のステッピングモータ又は他の複数のセンサ）を避けるために、ターゲット１５０に関連する深度カメラの姿勢を判断すべく、深度画像がモデル１１５と比較されてよい。
【００２２】
一例において、モデル１１５に深度画像を登録することは、モデル１１５においてボクセルを選択するように構成された登録モジュール１２０を含んでよい。モデル１１５の符号付距離場が現在のボクセルの周辺空間内に拡張されてよく、現在のボクセルに関する勾配が算出されてよい。図５は、複数の勾配の拡張および計算を図示する。登録モジュール１２０は、勾配に従って現在のボクセルに対応する、モデル１１５におけるターゲット１５０の境界上の対応点を算出するように構成されてもよい。すなわち、モデル１１５の拡張された点から表面の点に戻るように線を引くために、勾配が用いられてよい。次に、対応点が格納されてよい。一例において、登録モジュール１２０は、ボクセルを選択し、符号付距離場を拡張し、勾配を算出し、対応点を算出し、モデル１１５の複数のボクセルに関する対応点を格納することを反復するように構成されてよい。一例において、複数のボクセルは、モデル１１５におけるターゲット１５０の境界近傍に存在するように、選択されてよい。そのような選択は、計算される複数の対応点の数を減少させ、したがって、登録の計算効率を増加させる。しかしながら、例えば、Ｉｔｅｒａｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ（ＩＣＰ）アルゴリズムにおいて使用され得る減少された点の数は、登録の精度に影響を与え得る。したがって、一例において、表面近傍の複数のボクセルの選択は、ある深度画像から別への深度カメラの姿勢の変化が小さい場合の、複数の例に限定され得る。一例において、変化が３２ミリメートル又はそれより小さいものに限定される。
【００２３】
一例において、登録モジュール１２０は、現在の深度画像から３Ｄ点に、格納された複数の対応点の集合を関連付けるように構成されてよい。登録モジュール１２０は、第１の姿勢から深度カメラ１４５の剛体運動を判断するために格納された複数の対応点の集合を用いてよい。第１の姿勢からの剛体運動が深度カメラ１４５の第２の姿勢を判断するために用いられてよい。これは、例えば、ＩＣＰ技術を用いて実現されてよい。ＩＣＰが複数の対応点を判断するのに計算時間のほとんどを費やすので、拡張された符号付深度フィールドから計算された格納された複数の対応点の使用が限られたハードウェア又は限られた時間でＩＣＰが動作する能力を高める。
【００２４】
以下は、登録モジュール１２０の例示の動作の状況である。モデル初期化の後、第１の深度画像に基づいて、後の複数の画像が現在のモデル推定に登録されてよい。３Ｄ登録へのＩＣＰアプローチは、ソース上（例えば、現在の深度画像から）の対応する複数の最近傍点ｐｎおよびｐｎ'、およびターゲット（例えば、モデル１１５）表面を特定し、これらの間（すなわち、
0006257064.tif 000002
）剛体運動Ｍｋについて解く。Ｍｋをソースメッシュに適用した後、対応する複数の最近傍点が変化し得る。従って、剛体回転の再推定が実行され得る。ＩＣＰアルゴリズムが、収束するまで、剛体運動の推定と複数の点集合の変換とを交互に繰り返す。上述の通り、計算時間のほとんどが複数の最近傍点を計算するのに費やされる。複数の空間検索データ構造（例えば、ＫＤ木）が複数の点対応を見つけるために用いられ得るが、今日の処理ハードウェアに共通の並列性を利用すると同時に、代替的なアプローチが複数の点対応を判断するのにより高い効率性を提供し得る。
【００２５】
モデル１１５のレベル集合画像の各ボクセルについて、現在のモデルに関する符号付距離場が
φ（・）←Φ｛φ｝（・）
によって周辺空間に拡張されてよい。さらに、拡張された画像の各ボクセルに関し、モデルのレベル集合の勾配が算出されてよく、次に流線が現在のボクセル位置から、以下の固定点反復スキームを有するモデル１１５のターゲットの境界に戻って引かれてよい。
0006257064.tif 000003
これは点Ｘ＊に収束する。これに続いて、反復スキーム、モデル１１５のターゲット１５０の周りの空間の各ボクセルＸｉｎについて、モデル上の対応する最近傍点Ｘ＊が判断されている。これらの複数の対応点が独立に解決されてよい。したがって、Ｍ３個のボクセルとＰ個の処理ユニットを考慮する場合、複数の対応点の判断の計算複雑度はＯ（Ｍ３／Ｐ）である。しかしながら、上述の通り、剛体運動が小さい場合、次の複数の最近傍点の計算がモデル１１５のターゲット１５０の表面近傍であることに限定されてよい。この例において、計算複雑度がＯ（Ｍ２／Ｐ）にさらに減少される。
【００２６】
以下の疑似コードは、完全な３Ｄ登録パイプラインの一例を図示する。
0006257064.tif 000004
ＩＣＰのこの変形は、高速の複数の対応計算を可能にし、十分に並列化し、固定メモリフットプリントを有する。
【００２７】
蓄積モジュール１２５は、その登録に基づく現在の深度画像を有する深度測定データ構造１１０を修正するように構成されてよい。例えば、蓄積モジュール１２５は、現在の深度画像からの新たな深度データを有する深度測定データ構造１１０を更新する。一例において、深度測定データ構造１１０を修正するために、蓄積モジュール１２５は、深度カメラ１４５の焦点から点に引かれた光線の角度に基づいて、現在の深度画像の点に重み付けるように構成されてよい。深度カメラ１４５の姿勢に基づいて焦点および角度が判断されてよい。現在の深度画像の登録から姿勢が判断されてよい。一例において、角度が９０度に近づいた（例えば、光線が深度カメラの視野に直交する又は被写体のシルエット１４５に沿って点が位置する）とき、重み付けがより低くなってよい（例えば、より低い重みが割り当てられる）。
【００２８】
一例において、蓄積モジュール１２５は、同じ点に関して、前回の重みと、その重みを組み合わせてよい。一例において、組み合わせが点の複数の重みの平均であってよい。一例において、蓄積モジュール１２５は、複数の点の複数の重みを組み合わせてよい（例えば、各点に関して計算された複数の重みをそれぞれ組み合わせる）。一例において、蓄積モジュール１２５は、点に関する色情報を蓄積するように構成されてもよい。例えば、深度カメラ１４５は、深度画像を撮る一方、可視スペクトル光（例えば、赤−緑−青（ＲＧＢ））を撮ることが可能であってもよい。
【００２９】
以下は、蓄積モジュール１２５の例示の動作の状況である。モデルのレベル集合として同一のグリッド解像度でボクセルグリッド（例えば、深度測定データ構造１１０）に複数の深度測定が蓄積されてよい。現在の深度画像φＥ（Ｘ）の外枠が次式による複数の重みで算出されてよい。
0006257064.tif 000005
ここで、
0006257064.tif 000006
がＸにより深度カメラの焦点から引かれた光線の方向である。深度カメラ１４５およびφＥの間の点乗積で、複数の深度測定を重み付けすることによりカメラの視野に直交する深度マップの一部に、より高い信用が割り当てられてよい。閾値ｄＥがノイズの軽減に役立つ。すなわち、ｄＥは、±ｄＥ内に複数の深度画像のサポートを限定すべく動作する。したがって、ｄＥよりも近傍の任意の深度測定が同一表面のアートとして扱われ、合わせて平均されるであろう。しかしながら、ｄＥの選択はユーザ次第で、概して、ｄＥは、ノイズによる表面位置の変動が分かるのに十分大きいが、データの細部を撮るのに十分小さく選択されるべきである。
【００３０】
複数の深度測定φφＥは、次式によって深度バッファφＤ（例えば、深度測定データ構造１１０において）および複数の重みＷＤに蓄積されてよい。
0006257064.tif 000007
および
0006257064.tif 000008
ここで、φＤおよびＷＤは、どこでもゼロに初期化され、蓄積重みがＷｍａｘに限定される。
【００３１】
以下の疑似コードは、深度および色の両方に関する蓄積パイプラインの一例を図示する。
0006257064.tif 000009
【００３２】
この例において、深度画像と対応する色画像との間のマッピングが信頼できないかもしれない（例えば、ターゲットのシルエットの近傍）ので、別個の蓄積バッファが色データに関して使用される。説明されるように、信頼できない複数の色測定を除去するために色データが「浸食され」又は閾値付られる。深度データの蓄積および重み付けと同様に、色が蓄積され、重み付けされてよい。
【００３３】
モデル変形モジュール１３０は、スペースカービングおよび修正された深度測定データ構造１１０に基づいて、モデル１１５を変形するように構成されてよい。一例において、スペースカービングは、現在の深度画像をモデル１１５と交差させるように構成されるモデル変形モジュール１３０を備えてよい。そのようなスペースカービングは、初期化モジュール１５５について後述の通り実行されてよい。そのようなスペースカービングは、形状を大きく変化させるための効率のよいメカニズムであるが、ターゲットのシルエットに沿って鋭角の複数の切れ目を作成し得る。さらに、深度カメラ１４５の異なる複数の姿勢で以前の複数の深度画像が分からないので、現在の深度画像に対するバイアスを示してよい。
【００３４】
一例において、モデル変形モジュール１３０は、修正された深度測定データ構造１１０を用いて、モデル１１５を近似する表面を計算すべく構成されてよい。近似は、有界の反復プロセスに基づいてよく、修正された深度測定データ構造１１０に面を適合させる。表面を計算することにより、カーブアウトについて上記で特定された問題が軽減され得る。一例において、表面を計算するために、変形モジュール１３０は、動的輪郭セグメント化を用いるべく構成されてよい。動的輪郭セグメント化は、深度測定データ構造１１０の複数のボクセル上でレベル集合展開技術を用いてよい。一例において、符号付距離場としてモデル１１５を保持するために動的輪郭技術が制限されてよい。一例において、境界反復処理は、モデル１１５におけるターゲット１５０の境界近傍の複数のボクセルに制限されてよい。
【００３５】
一例において、レベル集合展開が以下の目的関数を最小化するように公式化されてよい。
0006257064.tif 000010
ここで、λが正則化重み、δ（Ｘ）がディラックデルタで緻密にサポートされた近似である。そして、
0006257064.tif 000011
は、ＷＤ（Ｘ）＞０の場合に１であり、それ以外の場合は０である。φが時間の関数として再び表されるとき、以下の偏微分方程式（ＰＤＥ）は、オイラーラグランジェ方程式を解くことにより導出される。
0006257064.tif 000012
このＰＤＥに対する一次解は、以下の反復技法を含む。
0006257064.tif 000013
0006257064.tif 000014
ここでも、φが常に符号付距離場となるように、反復技法が制限され得る。一例において、時間フレーム（例えば、Ｌ）ごとの複数の反復が、（例えば、モデルの変形のほとんどがスペースカービングによって処理されるので）１に制限されてよい。
【００３６】
以下の疑似コードは、変形パイプラインの一例を表す。
0006257064.tif 000015
【００３７】
フィルタモジュール１３５は、現在の深度画像の深度データにおける複数の穴を埋めること又は現在の深度画像におけるノイズを減少させることの少なくとも１つを現在の深度画像に処理するように構成されてよい。一例において、フィルタモジュールは、深度カメラ１４５と、登録モジュール１２０、蓄積モジュール１２５、モデル変形モジュール１３０又はメッシュモジュール１４０のいずれかもしくは全てとの間の深度画像パイプラインに配置される。
【００３８】
初期化モジュール１５５は、（例えば、フィルタモジュール１３５から受信される）第１の深度画像に基づいて初期化された形状からモデル１１５を変形するように構成されてよい。一例において、モデル１１５の初期化された形状がユーザ入力に基づいて生成されてよい。例えば、初期化モジュール１５５は、深度カメラ１４５を通じてターゲット１５０の視野を許可するユーザインターフェースを含んでよい。ユーザインターフェースは、視野中のターゲット１５０を包含するために、ディスプレイ上において、ユーザが境界形状を指定することが可能なように構成されてよい。この境界形状がモデル１１５の初期化された形状の基礎を形成してよい。一例において、深度モデルの初期化された形状が、（例えば、図２−５について以下に示されるような）立方体である。
【００３９】
以下は、初期化モジュール１５５の例示の動作の状況である。関心の領域が３Ｄ境界ボックス（例えば、立方体）として確立されてよい。等方性のボクセルグリッドが関心の領域上にオーバレイされ、マッピングされてよい。例えば、マッピング
0006257064.tif 000016
が適用されてよい。ここで、Ｂが境界ボックス（例えば、ミリメートル）で、Ｄが複数のボクセルユニットにおけるボクセルグリッドである。モデル１１５のレベル集合表現を保持することにより（例えば、モデルの符号付距離場を作成するために用いられる）、個別のボクセル値が距離および方向の両方を示すので、グリッド解像度より低いサブボクセル精度を可能にし、既定の測定は、モデル１１５におけるターゲット境界からである。
【００４０】
深度画像の取得が開始したとき、ターゲット１５０が３Ｄ境界ボックス（例えば、モデル１１５）内であるという仮定（例えば、チェックに対して処理がされない）がされる。ターゲット１５０の一部ではない複数のモデル１１５領域をカービングアウトするために第１の深度画像が用いられてよい。これは（例えば、図２で説明されるように）深度マップおよびターゲットのシルエットを逆投影することによって実現されてよい。したがって、
0006257064.tif 000017
のモデルの最初のレベル集合表現を仮定すれば、深度画像の外枠が次式で算出されてよい。
0006257064.tif 000018
ここで、ΔＸＺは、深度画像上の点と現在のボクセル位置ΔＸとの間の差分のｚ成分である。ΔＸは、次式で示される。
0006257064.tif 000019
特性関数
0006257064.tif 000020
が、深度データ又は境界ボックスの外部の複数の領域のない箇所で、φＥを無限に設定してよい。結果として生じる画像φＥ（例えば、図２又は３の影の領域）は、深度画像の外枠に対応するゼロＩＳＯレベルのレベル集合である。モデル１１５におけるターゲット１５０の境界（例えば、表面）が複数の点の集合
0006257064.tif 000021
であるので、これが表現されてもよい。この接合において、しかしながら、φＥが必ずしも符号付距離場である必要がない。従って、符号付距離場に作成するために、オペレータφ｛・｝（Ｘ）がφＥレベル集合に当てはめられてよい。一例において、符号付距離場への近似である。
【００４１】
外枠の符号付距離場は、次式によって、今、現在のモデル１１５と交差させられてよい。
0006257064.tif 000022
一例において、深度画像における複数の穴を軽減するために、外枠を現在のモデル１１５に統合する前に、それが多数のボクセル（例えば、τ＝２）で拡張されてよい。これは、次式で表される。
0006257064.tif 000023
この拡張がフィルタモジュール１３５により実行されてよい。一例において、図３で後述されるように、（例えば、複数のカメラからの）最初の複数の深度画像が取得され得る。上述の処理が複数の視野で繰り返される。
【００４２】
メッシュモジュール１４０は、モデル１１５を三角形メッシュに変換するように構成されてよい。複数の三角形メッシュが複数の３Ｄモデルを処理するために広く用いられる。一例において、マーチングキューブ技術が変換を実現するために用いられてよい。複数の例において、モデル１１５がレベル集合であり、生成されたメッシュが連続した（例えば、防水）面であろう。一例において、生成されたメッシュに平滑化技術が適用されてよい。例えば、スムージングされ得る複数のボクセル境界近傍に、複数のマーチングキューブ面が複数の細長い辺又は鋭角を含み得る。一例において、平滑化技術は、例えば、三角形の大きさおよび形状を一様化するための、均一な重みを有する陰関数表示のラプラシアン平滑化技術である。したがって、ベクトル（ｘｎ，ｙｎ，ｚｎ）を含むメッシュが、ベクトルＶｘ［ｘ１，...，ｘｎ］Ｔ，Ｖｙ［ｙ１，...，ｙｎ］ＴおよびＶｚ［ｚ１，...，ｚｎ］Ｔで表されてよい。このように表されたメッシュは、以下の反復技法：
0006257064.tif 000024
を用いてスムージングされてよい。ここで、Ｉは、Ｎ×Ｎの単位行列であり、αは正則化重みであり、Ｌがラプラシアンアンブレラ作用素である。
0006257064.tif 000025
ここで、Ｎ（ｉ）は、頂点ｉに隣接する複数の頂点の集合であり、
0006257064.tif 000026
は、隣接する頂点の数である。処理は、Ｖｘ成分およびＶｙ成分に関し別個独立に繰り返される。
【００４３】
上記の技術は、メッシュにおいて複数の三角形の大きさおよび形状を一様化するが、モデル１１５におけるターゲット１５０の境界からわずかに複数の頂点を移動させてよい。これを正確にするために、以下の反復技法によってモデル１１５の最も近い複数の対応点に置き換えることによって、複数のメッシュ頂点が蓄積された深度データφＤ上に投影されてよい。
0006257064.tif 000027
【００４４】
複数のメッシュ頂点において蓄積された色バッファφを線形的に補間することにより、モデル１１５に色が加えられてよい。一例において、空間の領域に関して色データが欠けている（例えば、重みゼロ）ところでは、領域は、ゼロのα値（例えば、不可視）が割り当てられ、又は、色空間の背景で満たされてもよい。
【００４５】
図２は、一実施形態に係る、モデルのボクセルグリッド２０５、深度カメラ１４５およびターゲット１５０の一例２００を図示する。ボクセル２１０は、３Ｄ空間に方向付けられた点である。しかしながら、明確性のために複数のボクセルが概して示されないが、むしろ境界ボックスがその中心のボクセル２１０を含む。ボクセルグリッド２０５が全ての３次元に広がるが、明確にするため、トップダウンカービングアプローチが２次元で示される。例えば、ボクセルグリッド２０５がターゲット１５０の周りの（例えば、カメラ１４５を通じて示される）実空間にマッピングされる。カッティングの前に、各四角形に暗く陰が付けられてよい（モデルへの包含を表す）。深度画像（例えば、第１の深度画像）が撮られた後、四角形がモデルから除去される（陰のないことによって示される）。一例において、モデルの境界が（光シェーディングによって示されて）確認されてもよく、そこでは例えば、他の複数の改良が実行されてよい。
【００４６】
図３は、一実施形態に係る、モデルのボクセルグリッド２０５、複数の深度カメラ（例えば、深度カメラ１４５および深度カメラ３０５）およびターゲット１５０の一例３００を図示する。図３は、第２のカメラ３０５を追加した図２と実質的に同一である。いくつかのカメラの同時使用は、よりすぐにスキャンを完了させることを可能にし得る。さらに、各々がモデルを作成した複数のボクセルを単純に修正しているので、スペースカービングアプローチは、（例えば、いくつかのビジュアルハル（ｖｉｓｕａｌ  ｈｕｌｌ）の再構成に用いられるような）複数のカメラデータを格納する必要がない。
【００４７】
図４は、一実施形態に係る、ボクセルグリッド２０５上のモデルの符号付距離場の一例４００を図示する。図４は、符号付距離場の視覚例を提供する。図示されるように、四角形のシェーディングが暗くなればなるほど、四角形のボクセルの値が大きくなる。白いシェーディングが負であり、モデルの外部の点を表す。白色の影の四角形の大きさ（図示されていない）は、モデルの境界からの点の距離を表している。最も明るい着色の影の四角形は、ゼロの値を表し、モデルの境界を示す。
【００４８】
符号付距離場の複数の点の値は、点がモデル内であるか否か（例えば、負の値）、モデルの境界上であるか否か（例えば、ゼロ値又は予め定義されたゼロからの範囲内）、又はモデルの外部（例えば、正の値）であるか否かの全てを示すので、それはこの情報を格納するための効率のよい方法である。さらに、値の大きさは、点がモデルの境界からどのくらい遠く離れているかを示す。これにより"近傍"点から境界への好都合な判断が可能になる。さらに、最も高い値（例えば、他の隣接する複数の点より大きい又は等しい隣接する点）のパスを"追う"ことによって複数の勾配が容易に判断されてよい。
【００４９】
図５は、一実施形態に係る、ボクセルグリッド２０５上の複数の勾配で拡張されたモデルの符号付距離場の一例５００を図示する。符号付距離場の拡張が複数の線の矢印でない端によって表され、勾配が矢印の方向における線の配向によって表される。上述の通り、符号付距離場がそのような判断に役立つ。さらに、深度フィールドの拡張および勾配は、図１に関して上述の効率のよいＩＣＰ実装において使用され得る境界点への点対応も図示する。
【００５０】
図６は、一実施形態に係る、深度カメラを用いたトップダウンリアルタイム３Ｄモデリングに関する方法６００の一例のフロー図を図示する。方法６００の動作は、上述のような機械ハードウェアを用いて全てが実行される。
【００５１】
動作６０５において、ターゲットの深度カメラから受信された複数の深度測定が深度測定データ構造に格納されてよい。一例において、深度測定データ構造がボクセルグリッドであってよく、グリッドの複数のボクセルは、ターゲットを包含する空間内の複数の点に対応する。
【００５２】
動作６１０では、ターゲットの３次元表現がモデルに格納されてよい。一例において、モデルがボクセルグリッドであってよく、グリッドの複数のボクセルは、ターゲットを包含する空間内の複数の点に対応する。一例において、モデルは符号付距離場を含む。従って、モデルの境界であるΩ集合を有する符号付距離場および境界内の複数の正の値によってモデルが表されてよい。 
【００５３】
動作６１５において、現在の深度画像がモデルに登録されてよく、そこで深度カメラから現在の深度画像が受信されている。一例において、現在の深度画像をモデルに登録することは、モデル内のボクセルを選択し、選択されたボクセルに関するモデルの符号付距離場を周辺空間内へ現在のボクセルに拡張し、現在のボクセルに関する勾配を算出し、勾配に従って現在のボクセルに対応する、モデルの境界上の対応点を算出し、対応点を格納する追加の複数の処理を含んでよい。一例において、これらの追加の複数の処理は、モデルにおける複数の（例えば、全ての）ボクセルのために実行されてよい。一例において、複数のボクセルは、モデルにおけるターゲットの境界近傍の複数のボクセルに限定され得る。予め定められた値より下の大きさ（例えば、その符号付距離場の表現の絶対値）を有するボクセルによって近傍であることが判断されてよい。一例において、近傍であることにより、境界に対して少なくとも他のボクセルと同じくらい近い複数のボクセルを含む。
【００５４】
一例において、現在の深度画像をモデルへ登録することは、格納された複数の対応点の集合を、現在の深度画像（例えば、格納された複数の対応点の集合における格納された複数の対応点）から３次元点に関連付けることを含んでよい。カメラの剛体運動は、格納された複数の対応点の集合を用いて第１の姿勢から判断されてよい。深度カメラの第２の姿勢は、剛体運動を用いて第１の姿勢から判断されてよい。この例において、第２の姿勢がターゲットに関連する深度カメラの姿勢に対応する。修正することが重みを同じ点についての前回の重みと組み合わることを含んでもよい。これは深度画像データを蓄積することとして知られ得る。一例において、受信された色データから（例えば、深度カメラ又は当該深度カメラの姿勢と同期された別のカメラから）、色データが（例えば、各点に関して）蓄積されてもよい。一例において、現在の深度画像における複数の（例えば、全ての）点に関して蓄積が実行される。
【００５５】
動作６２０において、登録に基づいて、深度測定データ構造が現在の深度画像で修正されてよい。一例において、修正することには、深度カメラの焦点から当該点に引かれた光線の角度に基づいて、現在の深度画像における点を重み付けることが含まれてよい。現在の深度画像の登録から判断された深度カメラの姿勢に基づいて、焦点および角度が判断されてよい。
【００５６】
動作６２５において、スペースカービングおよび修正された深度測定データ構造に基づいて、モデルが変形されてよい。スペースカービングは、登録時の現在の深度画像と、変形の前のモデルとで実行される。一例において、変形は、現在の深度画像がモデルと交差することによりモデルをスペースカービングすることを含んでよい。一例において、変形は、修正された深度測定データ構造を用いてモデルを近似する表面を計算することを含んでよい。近似は、表面を修正された深度測定データ構造に適合させるために有界の反復プロセスに基づいてよい。これは２Ｄデータの複数の点の集合に関数を適合させる最良の同種の３Ｄ技術である。一例において、表面を計算することは、動的輪郭セグメント化を用いることを含んでよい。動的輪郭セグメント化は、修正された深度測定データ構造において、複数のボクセルのレベル集合展開方法を用いてもよい。一例において、動的輪郭セグメント化は、符号付距離場としてモデルを保持するために制限されてよい。一例において、有界の反復プロセスは、モデルにおけるターゲットの境界近傍の複数の（例えば、深度測定データ構造又はモデルにおける）ボクセルに制限される。
【００５７】
動作６３０において、任意に、現在の深度画像がフィルタリングされてよい。フィルタリングは、複数の穴を埋めるために、深度画像を処理することを含んでよい。一例において、深度画像における複数のボクセルを広げる（例えば、拡張する）ことにより、複数の穴が埋められてよい。フィルタリングは、現在の深度画像を一様化することを含んでもよい。一例において、一様化は、深度画像から複数のノイズボクセルを判断し、取り除くことを含んでよい。一例において、深度カメラおよび任意の動作６０５−６２５との間（例えば、深度画像が使用される前）の深度画像パイプラインにおいてフィルタリングが行われてよい。
【００５８】
動作６３５において、任意で、フィルタリング（例えば、動作６３０）から受信した第１の深度画像に基づいて、初期化された形状からモデルが初期化されてもよい。一例において、モデルの初期化された形状がユーザ入力に基づいて生成されて、モデルの初期化された形状内にターゲットと置いてよい。例えば、ユーザインターフェースが存在してよく、ユーザがターゲットの画像の周りの３Ｄ形状を描画することを可能にする。一例において、（例えば、図２−５に示されるように）モデルの初期化された形状が立方体である。
【００５９】
判断６４０では、処理すべき複数の深度画像がさらにあるか否かについて判断できてよい。一例において、判断がユーザ入力に基づいてよい（例えば、ユーザインターフェースが"終了したスキャン"表示又はその類のものを受信する）。一例において、判断が時間、集められた複数の深度画像の数などのいずれか１又は複数に基づいてよい。
【００６０】
動作６４５において、（例えば、図示されるように）複数の深度画像の全てが取得された後又は深度画像処理の間のいずれかで、モデルが三角形メッシュに変換されてよい。一例において、メッシュの複数の三角形がスムージングされてよい。一例において、スムージングされた複数の三角形がモデルの立体表現に当てはめられてよい。
【００６１】
図７は、一実施形態に係る、深度カメラを用いたリアルタイム３Ｄ再構成に関する方法７００の一例のフロー図を図示する。上述されたような、ハードウェアで方法７００の動作が実行されてよい。３Ｄモデル再構成の一例が方法７００である。
【００６２】
動作７０５において、深度画像がフィルタリングされてよい。一例において、フィルタリングがノイズを減少させ得る。一例において、フィルタリングが複数の穴を埋めてよい。
【００６３】
動作７１０において、第１の深度画像に基づいて、形状（例えば、立方体）からターゲットのシルエットをカービングすることにより、最初のモデルが生成されてよい。
【００６４】
動作７０５のフィルタリングが実行されるとすぐに、複数の深度画像の集合で動作７１５−７２５が反復して実行される。
【００６５】
動作７１５において、現在の深度画像がモデルに登録される。
【００６６】
動作７２０において、現在の深度フレームが複数の蓄積バッファ（例えば、上述の深度測定データ構造）に加えられる。
【００６７】
動作７２５において、モデルが現在の深度画像（例えば、動作７１０と同様のカービングによって）および複数の蓄積バッファ（例えば、それらの最新の状態）と合致すべく変形される。
【００６８】
動作７３０において、それ以上の処理すべき複数の深度画像がない場合、三角形メッシュがモデルから生成されてよい。一例において、（例えば、三角形品質を改善するために）メッシュがスムージングされてよい。一例において、メッシュがターゲット（例えば、モデル）の立体表現上に投影されてよい。
【００６９】
上述の複数の反復動作が以下の疑似コードによって実行されてよい。
0006257064.tif 000028
【００７０】
図８は、本明細書中で説明されるいずれか１又は複数の技術（例えば方法論）を実現し得る機械８００の一例のブロック図を図示する。代替的な複数の例において、機械８００は、スタンドアロンデバイスとして動作してよい、または、他の複数の機械に接続（例えばネットワーク接続）されてよい。ネットワーク接続配置において、機械８００がサーバクライアントネットワーク環境のサーバマシン、クライアントマシン又は両方の容量で動作してよい。一例において、機械８００は、ピアツーピア（Ｐ２Ｐ）（または他の分散）ネットワーク環境におけるピア装置として機能してよい。機械８００は、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、携帯情報端末（ＰＤＡ）、携帯電話、ウェブアプライアンス、ネットワークルータ、スイッチまたはブリッジ、または機械によって行われるべき複数の動作を規定する複数の命令（シーケンシャルなまたは他の）を実行することが可能な任意の機械であってよい。さらに、単一の機械のみが図示されているが、"機械"という用語は、クラウドコンピューティング、サービスとしてのソフトウェア（ＳａａＳ）、他のコンピュータクラスタ構成のような、本明細書中にて説明される複数の方法論のいずれか１又は複数を実現するための複数の命令の組（または複数の組）を個別に実行する、または共同で実行する、複数の機械の任意の集合体を含むものと解釈されるべきでもある。
【００７１】
本明細書で説明されるような複数の例が、ロジック、又は多数のコンポーネント、複数のモジュール又はメカニズムを含んでよく、又はその上で動作してよい。複数のモジュールは、動作時に指定の動作を実行可能である有形な実体（例えば、ハードウェア）である。モジュールは、ハードウェアを含む。一例において、ハードウェアが特定の動作（例えば、ハードワイヤード）を実行するように具体的に構成されてよい。一例において、ハードウェアが、構成可能な複数の実行ユニット（例えば、複数のトランジスタ、複数の回路など）および複数の命令を含むコンピュータ可読媒体を含んでよい。複数の命令は、動作時、特定の動作を実行させるように複数の実行ユニットを構成する。設定は、複数の実行ユニット又はローディング機構の指示で生じてよい。従って、デバイスが動作している時、複数の実行ユニットがコンピュータ可読媒体に通信可能に結合される。この例において、複数の実行ユニットが２つ以上のモジュールの一部になってよい。例えば、動作中、複数の実行ユニットが一時の第１のモジュールを実装すべく複数の命令の第１の集合によって構成されてよく、第２のモジュールを実装すべく複数の命令の第２の集合によって再構成されてよい。
【００７２】
機械（例えば、コンピュータシステム）８００は、ハードウェアプロセッサ８０２（例えば中央処理装置（ＣＰＵ）、グラフィクス処理ユニット（ＧＰＵ）、ハードウェアプロセッサコア、又はそれらの任意の組み合わせ）、メインメモリ８０４、およびスタティックメモリ８０６を含み得、これらの一部又は全てがインターリンク８０８（例えば、バス）によって互いに通信してよい。機械８００は、ディスプレイユニット８１０、英数字の入力デバイス８１２（例えば、キーボード）、およびユーザインターフェース（ＵＩ）ナビゲーションデバイス８１４（例えば、マウス）をさらに含んでよい。一例において、ディスプレイユニット８１０、入力デバイス８１２、およびＵＩナビゲーションデバイス８１４は、タッチスクリーンディスプレイであってよい。機械８００は、ストレージデバイス（例えば、ドライブユニット）８１６、信号生成デバイス８１８（例えば、スピーカ）、ネットワークインターフェースデバイス８２０、および全地球測位システム（ＧＰＳ）センサ、コンパス、加速度計、または他のセンサのような１又は複数のセンサ８２１をさらに含んでよい。機械８００は、シリアル（例えば、ユニバーサルシリアルバス（ＵＳＢ）、並列、又は１又は複数の周辺装置（例えば、プリンタ、カードリーダなど）と通信し、又は制御するための他の有線又は無線（例えば、赤外線（ＩＲ）、近距離通信（ＮＦＣ）など）の接続のような出力コントローラ８２８を備えてよい。
【００７３】
ストレージデバイス８１６が機械可読媒体８２２を含んでよい。本明細書で説明された技術又は機能のいずれか１又は複数によって、実施され、又は利用されるデータ構造又は命令８２４（例えば、ソフトウェア）の１又は複数の集合が機械可読媒体８２２に格納される。機械８００によってそれらが実行されている間、メインメモリ８０４内、スタティックメモリ８０６内、又はハードウェアプロセッサ８０２内で、完全に又は少なくとも部分的に複数の命令８２４が存在してもよい。一例において、ハードウェアプロセッサ８０２、メインメモリ８０４、スタティックメモリ８０６、またはストレージデバイス８１６のうちの１又はそれらの任意の組み合わせは、機械可読媒体を構成し得る。
【００７４】
機械可読媒体８２２は単一の媒体として示されるが、「機械可読媒体」という用語は、１又は複数の命令８２４を格納するように構成された単一の媒体または複数の媒体（例えば、集中型または分散型データベース、および／または関連付けられた複数のキャッシュおよび複数のサーバ）を含み得る。
【００７５】
用語「機械可読媒体」は、機械８００による実行のための複数の命令を格納、符号化、または搬送することが可能であり、機械８００に本開示の複数の技術のうちのいずれか１又は複数を実現させ、またはそのような複数の命令によって用いられるまたはそれらに関連付けられる複数のデータ構造を格納、符号化、または搬送することができる任意の媒体を含んでよい。非限定的な機械可読媒体の複数の例は、複数のソリッドステートメモリ、および光および磁気媒体を含み得る。一例において、大容量機械可読媒体は静止質量を有する複数の粒子を伴う機械可読媒体を備える。結集した機械可読媒体の複数の具体的な例は、複数の半導体メモリデバイス（例えば、電気的プログラム可能読取専用メモリ（ＥＰＲＯＭ）、電気的消去可能読取専用メモリ（ＥＥＰＲＯＭ））およびフラッシュメモリデバイスを含む不揮発性メモリ、内蔵ハードディスクおよびリムーバブルディスクのような磁気ディスク、光磁気ディスク、および、ＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含んでよい。
【００７６】
複数の命令８２４は、多数の転送プロトコル（例えば、フレームリレー、インターネットプロトコル（ＩＰ）、送信制御プロトコル（ＴＣＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）等）のうちの任意の１つを利用するネットワークインターフェースデバイス８２０を介して、伝送媒体を用いて通信ネットワーク８２６を通じてさらに送信され又は受信されてよい。例示の複数の通信ネットワークは、特に、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、パケットデータネットワーク（例えば、インターネット）、モバイルテレホンネットワーク（例えば、セルラーネットワーク）、基本電話（ＰＯＴＳ）ネットワークおよび無線データネットワーク（例えば、Ｗｉ−Ｆｉ（登録商標）として知られる米国電気電子学会（ＩＥＥＥ）８０２．１１規格群、ＷｉＭａｘ（登録商標）として知られるＩＥＥＥ８０２．１６規格群、ＩＥＥＥ８０２．１５．４規格群、ピアツーピア（Ｐ２Ｐ）ネットワークを含んでよい。一例において、ネットワークインターフェースデバイス８２０は、１又は複数の物理ジャック（例えば、イーサネット（登録商標）、同軸又は複数の電話ジャック）又は複数の通信ネットワーク８２６に接続する１又は複数のアンテナを含んでよい。一例において、ネットワークインターフェースデバイス８２０は、単入力多出力（ＳＩＭＯ）、多入力多出力（ＭＩＭＯ）、または多入力単出力（ＭＩＳＯ）技術の少なくとも１つを用いて無線で通信するための複数のアンテナを含んでよい。用語「伝送媒体」は、装置８００による実行のために複数の命令を格納、符号化、又は搬送することが可能な任意の無形媒体を含むと解釈されるべきであり、そのようなソフトウェアの通信を促進するためのデジタル又はアナログの複数の通信信号又は他の無形媒体を含む。複数の追記および複数の例
【００７７】
例１は、（デバイス、装置、又は深度カメラによるリアルタイム３Ｄ再構成に関するデバイスのためのシステムなどの）主題を含み、ターゲットの深度カメラから受信された複数の深度測定を格納する深度測定データ構造と、ターゲットの３次元表現を格納するモデルと、深度カメラから受信した現在の深度画像をモデルへ登録する登録モジュールと、登録に基づいて深度測定データ構造を現在の深度画像で修正する蓄積モジュールと、スペースカービングおよび修正された深度測定データ構造に基づいて、モデルを変形するモデル変形モジュールとを備える。
【００７８】
例２において、例１の主題は、深度カメラと蓄積モジュールとの間の深度画像パイプラインのフィルタモジュールを任意に含んでよい。当該フィルタモジュールは、現在の深度画像の深度データにおける複数の穴を埋めること、又は現在の深度画像におけるノイズを減少させることの少なくとも１つで現在の深度画像を処理する。
【００７９】
例３において、例２の主題は、フィルタモジュールから受信した第１の深度画像に基づいて初期化された形状からモデルを変形するための初期化モジュールを任意に含んでよい。
【００８０】
例４において、例１−３のいずれかの主題は、モデルの初期化された形状がユーザ入力に基づいて生成され、ターゲットがモデルの初期化された形状内に存在していることを任意に含んでよい。
【００８１】
例５において、例１−４のいずれかの主題は、モデルの初期化された形状が立方体であることを任意に含んでよい。
【００８２】
例６において、例１−５のいずれかの主題は、深度測定データ構造又モデルの少なくとも１つは、ボクセルグリッドを含み、ボクセルグリッドの複数のボクセルは、ターゲットを包含する空間内の複数の点に対応することを任意に含んでよい。
【００８３】
例７において、例１−６のいずれかの主題は、モデルが符号付距離場を含むことを任意に含んでよい。
【００８４】
例８において、例１−７のいずれかの主題は、モデルに現在の深度画像を登録するために、登録モジュールは、モデルのボクセルを選択し、選択されたボクセルに関するモデルの符号付距離場を周辺空間へ現在のボクセルに拡張し、現在のボクセルに関する勾配を算出し、勾配に従って現在のボクセルに対応する、モデルの境界上の対応点を算出し、対応点を格納することを任意に含んでよい。
【００８５】
例９において、例１−８のいずれかの主題は、登録モジュールがボクセルを反復して選択し、符号付距離場を拡張し、勾配を算出し、対応点を算出し、そして、モデルの複数のボクセルに関する対応点を格納することを任意に含んでよい。
【００８６】
例１０において、例１−９のいずれかの主題は、複数のボクセルがモデルにおけるターゲットの境界の近くであり、境界に近いボクセルが別のボクセルよりも境界により近いボクセルである。
【００８７】
例１１において、例１−１０のいずれかの主題は、登録モジュールが、格納された複数の対応点の集合を、現在の深度画像からの３次元点に、格納された複数の対応点に関連付け、格納された対応点は、格納された複数の対応点の組み合わせの中にあり、第１の姿勢から深度カメラの剛体運動を判断するために格納された複数の対応点の集合を使用し、深度カメラの第２の姿勢を判断するために第１の姿勢からの剛体運動を使用し、第２の姿勢が、ターゲットに関連する深度カメラの姿勢に対応することを任意に含んでよい。
【００８８】
例１２において、例１−１１のいずれかの主題は、登録に基づいて現在の深度画像で深度測定データ構造を修正し、蓄積モジュールは、深度カメラの焦点から点に引かれた光線の角度に基づいて、現在の深度画像における点を重み付けし、焦点および角度は、現在の深度画像の登録から判断された深度カメラの姿勢に基づいて判断され、重みを同じ点の前回の重みと組み合わせることを任意に含んでよい。
【００８９】
例１３において、例１−１２のいずれかの主題は、蓄積モジュールが点に関する色情報を蓄積することを任意に含んでよい。
【００９０】
例１４において、例１−１３のいずれかの主題は、蓄積モジュールが点を重み付し、現在の深度画像における複数の点に関する重みを組み合わせることを任意に含んでよい。
【００９１】
例１５において、例１−１４のいずれかの主題は、修正された深度測定データ構造に基づいてモデルを変形するために、モデル変形モジュールは、現在の深度画像をモデルと交差させることによりモデルをスペースカービングし、修正された深度測定データ構造を用いてモデルを近似する表面を計算し、近似が、表面を修正された深度測定データ構造に適合させるための有界の反復プロセスに基づいてよい。
【００９２】
例１６において、例１−１５のいずれかの主題は、表面を計算することが、修正された深度測定データ構造における複数のボクセル上でレベル集合展開技術を用いる動的輪郭セグメント化の使用を含むことを任意に含んでよい。
【００９３】
例１７において、例１−１６のいずれかの主題は、符号付距離場としてモデルを保持するために、動的輪郭セグメント化が制限されることを任意に含んでよい。
【００９４】
例１８において、例１−１７のいずれかの主題は、有界の反復プロセスがモデルにおけるターゲットの境界近傍の複数のボクセルに制限され、境界近傍のボクセルが別のボクセルよりも境界により近いボクセルであることを任意に含んでよい。
【００９５】
例１９において、例１−１８のいずれかの主題は、モデルを三角形メッシュに変換するためのメッシュモジュールを任意に含んでよい。
【００９６】
例２０は、（方法、動作を実行するための手段、又は機械によって実行された場合に、機械が機械に動作を実行させる命令を含む機械可読媒体などの）深度カメラによるリアルタイム３Ｄ再構成に関する主題であり、深度測定データ構造におけるターゲットの深度カメラから受信した複数の深度測定を格納する段階と、モデルにおけるターゲットの３次元表現を格納する段階と、深度カメラから受信した現在の深度画像をモデルに登録する段階と、登録に基づいて深度測定データ構造を現在の深度画像で修正する段階と、スペースカービングおよび修正された深度測定データ構造に基づいてモデルを変形する段階とを備えてよく、又は任意で例１−１９のいずれかの主題と組み合わせてよい。
【００９７】
例２１において、例２０の主題は、深度カメラと、登録する段階、修正する段階又は変形する段階の少なくとも１つとの間の深度画像パイプラインにおいてフィルタリングする段階と、現在の深度画像の深度データにおける複数の穴を埋めるために、現在の深度画像を処理する段階又は現在の深度画像におけるノイズを低減する段階の少なくとも１つを現在の深度画像に行うことを任意に含んでよい。
【００９８】
例２２において、例２０−２１のいずれかの主題は、フィルタリングから受信した第１の深度画像に基づいて初期化された形状からモデルを初期化する段階を任意に含んでよい。
【００９９】
例２３において、例２０−２２のいずれかの主題は、モデルの初期化された形状がユーザ入力に基づいて生成され、ターゲットがモデルの初期化された形状内に存在していることを任意に含んでよい。
【０１００】
例２４において、例２０−２３のいずれかの主題は、モデルの初期化された形状が立方体であることを任意に含んでよい。
【０１０１】
例２５において、例２０−２４のいずれかの主題は、深度測定データ構造又モデルの少なくとも１つは、ボクセルグリッドを含み、ボクセルグリッドの複数のボクセルは、ターゲットを包含する空間内の複数の点に対応することを任意に含んでよい。
【０１０２】
例２６において、例２０−２５のいずれかの主題は、モデルが符号付距離場を含むことを任意に含んでよい。
【０１０３】
例２７において、例２０−２１のいずれかの主題は、現在の深度画像をモデルに登録する段階と、モデルにおけるボクセルを選択する段階と、選択されたボクセルに関するモデルの符号付距離場を周辺空間へ現在のボクセルに拡張する段階と、現在のボクセルに関する勾配を算出する段階と、勾配に従って現在のボクセルに対応する、モデルの境界上の対応点を算出する段階と、対応点を格納する段階とを任意に含んでよい。
【０１０４】
例２８において、例２０−２７のいずれかの主題は、モデルの複数のボクセルに対して例２７の動作を反復して実行することを任意に含んでよい。
【０１０５】
例２９において、例２０−２８のいずれかの主題は、複数のボクセルがモデルのターゲットの境界の近くであり、境界に近いボクセルが別のボクセルよりも境界により近いボクセルであることを任意に含んでよい。
【０１０６】
例３０において、例２０−２９のいずれかの主題は、現在の深度画像をモデルに登録する段階が、現在の深度画像から３次元点に、格納された複数の対応点の組み合わせを関連付ける段階であって、格納された対応点は、格納された複数の対応点の組み合わせの中にある段階と、格納された複数の対応点の組み合わせを用いて、第１の姿勢からカメラの剛体運動を判断する段階と、第１の姿勢からの剛体運動を用いて、ターゲットに関連する深度カメラの姿勢に対応する、深度カメラの第２の姿勢を判断する段階とを備えることを任意に含んでよい。
【０１０７】
例３１において、例２０−３０のいずれかの主題は、登録に基づいて深度測定データ構造を現在の深度画像で修正する段階が、深度カメラの焦点から点に引かれた光線の角度に基づいて、現在の深度画像の点を重み付けする段階であって、焦点および角度は、現在の深度画像の登録から判断された深度カメラの姿勢に基づいて判断される、重み付けする段階と、重みを同じ点の前回の重みと組み合わせる段階とを含むことを任意に含んでよい。
【０１０８】
例３２において、例２０−３１のいずれかの主題は、点に関する色情報を蓄積する段階を任意に含んでよい。
【０１０９】
例３３において、例２０−３２のいずれかの主題は、現在の深度画像における複数の点に関する例３１の動作を実行することを任意に含んでよい。
【０１１０】
例３４において、例２０−３３のいずれかの主題は、修正された深度測定データ構造に基づいて、モデルを変形する段階を任意に含んでよく、前記モデルを変形する段階は、現在の深度画像をモデルと交差させることによりモデルをスペースカービングする段階と、修正された深度測定データ構造を用いてモデルを近似する表面を計算する段階と、有界の反復プロセスに基づく近似が、表面を修正された深度測定データ構造に適合させることを含む。
【０１１１】
例３５において、例２０−３４のいずれかの主題は、表面を計算する段階が、修正された深度測定データ構造における複数のボクセル上でレベル集合展開技術を用いる動的輪郭セグメント化を使用する段階を含むことを任意に含んでよい。
【０１１２】
例３６において、例２０−３５のいずれかの主題は、符号付距離場としてモデルを保持するために、動的輪郭セグメント化が制限されることを任意に含んでよい。
【０１１３】
例３７において、例２０−３６のいずれかの主題は、有界の反復プロセスがモデルにおけるターゲットの境界近傍の複数のボクセルに制限され、境界近傍のボクセルが別のボクセルよりも境界により近いボクセルであることを任意に含んでよい。
【０１１４】
例３８において、例２０−３７のいずれかの主題は、モデルを三角形メッシュに変換する段階を任意に含んでよい。
【０１１５】
例３９は、例２０−３８のいずれかの技術を実現するための手段を含む。
【０１１６】
例４０は、機械により実行された場合、例２０−３８のいずれかの技術を機械に実行させる複数の命令を含む機械可読媒体を含む。
【０１１７】
例４１は、（システム又は深度カメラを用いたリアルタイム３Ｄ再構成に関する動作を実行するための手段）深度測定データ構造におけるターゲットの深度カメラから受信した複数の深度測定を格納する手段と、モデルにおけるターゲットの３次元表現を格納する手段と、深度カメラから受信した現在の深度画像をモデルに登録する手段と、登録に基づいて深度測定データ構造を現在の深度画像で修正する手段と、スペースカービングおよび修正された深度測定データ構造に基づいてモデルを変形する手段とを含んでよく、又は任意で例１−４０のいずれかの主題と組み合わせてよい。
【０１１８】
例４２において、例４１の主題は、深度カメラと登録、修正又は変形の少なくとも１つとの間の深度画像パイプラインにおいてフィルタリングする手段を任意に含んでよく、現在の深度画像は、現在の深度画像の深度データにおける複数の穴を埋めるために現在の深度画像を処理すること又は現在の深度画像のノイズを低減することの少なくとも１つをするためのものである。
【０１１９】
例４３において、例４１−４２のいずれかの主題は、フィルタモジュールから受信した第１の深度画像に基づいて初期化された形状からモデルを初期化する手段を任意に含んでよい。
【０１２０】
例４４において、例４１−４３のいずれかの主題は、モデルの初期化された形状がユーザ入力に基づいて生成され、ターゲットがモデルの初期化された形状内に存在していることを任意に含んでよい。
【０１２１】
例４５において、例４１−４４のいずれかの主題は、モデルの初期化された形状が立方体であることを任意に含んでよい。
【０１２２】
例４６において、例４１−４５のいずれかの主題は、深度測定データ構造又モデルの少なくとも１つは、ボクセルグリッドを含み、ボクセルグリッドの複数のボクセルは、ターゲットを包含する空間内の複数の点に対応することを任意に含んでよい。
【０１２３】
例４７において、例４１−４６のいずれかの主題は、モデルが符号付距離場を含むことを任意に含んでよい。
【０１２４】
例４８において、例４１−４７のいずれかの主題は、モデルに現在の深度画像を登録する手段が、モデルにおけるボクセルを選択する手段と、選択されたボクセルに関するモデルの符号付距離場を周辺空間へ現在のボクセルに拡張する手段と、現在のボクセルに関する勾配を算出する手段と、勾配に従って現在のボクセルに対応する、モデルの境界上の対応点を算出する手段と、対応点を格納する手段とを任意に含んでよい。
【０１２５】
例４９において、例４１−４８のいずれかの主題は、モデルの複数のボクセルに対して例４８の動作を反復して実行する手段を任意に含んでよい。
【０１２６】
例５０において、例４１−４９のいずれかの主題は、複数のボクセルがモデルにおけるターゲットの境界の近くであり、境界に近いボクセルが別のボクセルよりも境界により近いボクセルであることを任意に含んでよい。
【０１２７】
例５１において、例４１−５０のいずれかの主題は、現在の深度画像をモデルに登録する手段が、現在の深度画像から３次元点に、格納された複数の対応点の組み合わせを関連付け、格納された対応点は、格納された複数の対応点の組み合わせの中にある手段と、格納された複数の対応点の組み合わせを用いて、第１の姿勢からカメラの剛体運動を判断する手段と第１の姿勢からの剛体運動を用いて、ターゲットに関連する深度カメラの姿勢に対応する、深度カメラの第２の姿勢を判断する手段とを備えることを任意に含んでよい。
【０１２８】
例５２において、例４１−５１のいずれかの主題は、登録に基づいて深度測定データ構造を現在の深度画像で修正する手段が、深度カメラの焦点から点に引かれた光線の角度に基づいて、現在の深度画像における点を重み付けする手段と、焦点および角度は、現在の深度画像の登録から判断された深度カメラの姿勢に基づいて判断され、重みを同じ点の前回の重みと組み合わせる手段とを含むことを任意に含んでよい。
【０１２９】
例５３において、例４１−５２のいずれかの主題は、点に関する色情報を蓄積する手段を任意に含んでよい。
【０１３０】
例５４において、例４１−５３のいずれかの主題は、現在の深度画像における複数の点に関する例５３の動作を実行する手段を任意に含んでよい。
【０１３１】
例５５において、例４１−５４のいずれかの主題は、修正された深度測定データ構造に基づいて、モデルを変形する手段を任意に含んでよく、現在の深度画像をモデルと交差させることによりモデルをスペースカービングする手段と、修正された深度測定データ構造を用いてモデルを近似する表面を計算する手段と、有界の反復プロセスに基づく近似が、表面を修正された深度測定データ構造に適合させることをむ。
【０１３２】
例５６において、例４１−５５のいずれかの主題は、表面を計算する手段が、修正された深度測定データ構造の複数のボクセル上でレベル集合展開技術を用いる動的輪郭セグメント化を使用する手段を含むことを任意に含んでよい。
【０１３３】
例５７において、例４１−５６のいずれかの主題は、符号付距離場としてモデルを保持するために、動的輪郭セグメント化が制限されることを任意に含んでよい。
【０１３４】
例５８において、例４１−５７のいずれかの主題は、有界の反復プロセスがモデルのターゲットの境界近傍の複数のボクセルに制限され、境界近傍のボクセルが別のボクセルよりも境界により近いボクセルであることを任意に含んでよい。
【０１３５】
例５９において、例４１−５８のいずれかの主題は、モデルを三角形メッシュに変換するための手段を任意に含んでよい。
【０１３６】
上記の発明を実施するための形態は、発明を実施するための形態の一部を形成する添付の複数の図面への参照を含む。複数の図面は、実例として、実施されうる特定の複数の実施形態を示す。これらの実施形態は、「複数の例」としてここでも参照する。そのような複数の例は、示されるまたは説明されるものに加えて、複数のエレメントを含んでよい。しかしながら、本発明者は、開示され又は説明されたこれらの要素のみが複数の例で提供されることも想定する。さらに、本発明者らはまた、本明細書に示され又は記載された特定の例（又はそれらの１又は複数の態様）に関連するか、又は、他の複数の例（又はそれらの１又は複数の態様）に関連するかのいずれかで示された又は説明されたそれらの要素（又はそれらの１又は複数の態様）の任意の組み合わせ又は置換を使用した複数の例を意図する。
【０１３７】
この全文書中において参照される複数の出版物、特許、および特許文献は、参照によって個別に組み込まれているかのように、それらの全体が、参照により本明細書中に組み込まれる。この文書と、参照によってそのように組み込まれたそれら複数の文書との間に食い違った使用がある場合には、組み込まれた参照文献中の使用は、この文書における使用に対する補足的なものであり、矛盾した不一致に対しては、この文書における使用が優先されるべきである。
【０１３８】
本明細書において、用語「ある（ａ）」または「ある（ａｎ）」は、特許文献において共通なように、１または１より多いものを含むために用いられ、任意の他の例または「少なくとも１つ」または「１又は複数」の使用と無関係である。本明細書において、用語「または」は、非排他的、または「ＡまたはＢ」が「ＡがありＢがない」、「ＢがありＡがない」、および「ＡおよびＢ」を含むように言及するために用いられる。添付の複数の請求項において、用語「含む（ｉｎｃｌｕｄｉｎｇ  ）」および「において（ｉｎ  ｗｈｉｃｈ）」は、それぞれ用語「備える（ｃｏｍｐｒｉｓｉｎｇ  ）」および「ここで（ｗｈｅｒｅｉｎ）」の平易な言葉と同等のものとして用いられる。また、下記の複数の請求項において、用語「含む（ｉｎｃｌｕｄｉｎｇ  ）」および「備える（ｃｏｍｐｒｉｓｉｎｇ  ）」は制約がない、つまり、請求項において、請求項におけるそのような用語の後に列挙されたものに加えて複数のエレメントを含むシステム、デバイス、物品、または処理もが、その請求項の範囲に含まれるとみなされる。さらに、下記の特許請求の範囲において、用語「ｆｉｒｓｔ（第１の）」、「ｓｅｃｏｎｄ（第２の）」及び「ｔｈｉｒｄ（第３の）」などは、単に複数の標識として使用され、それらの対象物に数的な複数の要件を課すことが意図されていない。
【０１３９】
上記の説明は、例示的であり制限的でないことが意図される。例えば、上述の複数の例（又は、それらの１又は複数の態様）は、その他の複数の例との互いに組み合わせで使用されてよい。複数の他の実施形態は、例えば、上記の説明を検討する当業者によって用いられてよい。要約は、技術的開示の性質を読者にすぐに確認することを許可することができ、特許請求の範囲の範囲若しくは意味を解釈又は限定するために用いられないことが理解されることを与える。また、上記の発明を実施するための形態において、開示を簡素化すべく、様々な特徴が共にグループ化され得る。これは、請求されていない開示された特徴がいずれの請求項に必須であることを意味していると解釈されるべきではない。むしろ、発明の主題は、特定の開示された実施形態の複数の特徴の一部にあってよい。したがって、以下の特許請求の範囲は、本明細書の詳細な説明に組み込まれる。説明は、各請求項と共に、別個の実施形態として、独立したものと位置づけられる。複数の実施形態の範囲は、そうした特許請求項に対して与えられる等価物の全範囲と併せて、添付の特許請求項を参照して決定されるべきものである。
【図１】
0006257064.tif 000029
【図２】
0006257064.tif 000030
【図３】
0006257064.tif 000031
【図４】
0006257064.tif 000032
【図５】
0006257064.tif 000033
【図６】
0006257064.tif 000034
【図７】
0006257064.tif 000035
【図８】
0006257064.tif 000036