【文献】
Maik Keller, et al.,Real-Time 3D Reconstruction in Dynamic Scenes Using Point-Based Fusion, [online],2013 International Conference on 3D Vision - 3DV 2013,米国,2013年 6月29日,URL,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6599048
【文献】
Andrew J Davison, et al.,Mobile Robot Localisation using Active Vision,ECCV1998,米国,2006年 5月26日,pp.809-825,URL,https://link.springer.com/content/pdf/10.1007/BFb0054781.pdf
【文献】
Peter Henry, et al. ,RGB-D mapping: Using Kinect-style depth cameras for dense 3D modeling of indoor environment,The International Journal of Robotics Research,2012年 2月10日,Vol.31, Issue 5, 2012,URL,https://doi.org/10.1177/0278364911434148
(58)【調査した分野】(Int.Cl.,DB名)
前記モデルエンジンは、前記三次元モデルを更新する際に使用するための前記三次元モデルのアクティブ部分からの投影に基づきアクティブモデルフレームを計算するように構成された、請求項1に記載の装置。
前記アクティブモデルフレームを前記イメージデータから提供されたフレームと比較して、前記三次元モデルのアクティブ部分の前記イメージデータとの整列を決定するように構成されたフレーム-モデル間追跡構成要素を備える請求項2に記載の装置。
前記フレーム-モデル間追跡構成要素は、現在時刻における前記提供されたフレームを前の時刻におけるアクティブモデルフレームと比較することによって前記キャプチャデバイスの姿勢を推定するように構成され、前記キャプチャデバイスの姿勢は前記三次元空間内の前記キャプチャデバイスの位置および向きを表す、請求項3に記載の装置。
前記位置合わせエンジンは、変形グラフを使用して、前記三次元モデルのアクティブ部分を前記三次元モデルの非アクティブ部分と整列させるように構成され、前記変形グラフは前記三次元モデル内の位置に対する初期化時刻に基づき計算され、前記変形グラフは整列の間に所与の位置において前記三次元モデルを修正するために使用されるべきである前記三次元モデル内の前記所与の位置に対する近傍の集合を指示する、請求項1から7のいずれか一項に記載の装置。
前記少なくとも1つのモデル特性は、前記三次元モデルにおける所与の位置に対するモデル生成およびモデル更新の時刻の1つを含み、前記非アクティブ部分は、事前定義された量よりも多い量だけ現在の観測時刻と異なる過去の観測時刻を示す、請求項1から8のいずれか一項に記載の装置。
前記イメージデータは、少なくとも、複数のイメージ要素に対する深度データおよび色データを含み、前記深度データは前記キャプチャデバイスからの前記三次元空間内の物体の距離を指示し、
前記キャプチャデバイスの姿勢を推定するステップは、誤差関数を最小にするステップを含み、前記誤差関数は
前記イメージデータの前記提供されたフレームに対する深度データの、前記モデルフレームに対する予測された深度データとの比較に基づく幾何学的誤差、および
前記イメージデータの前記提供されたフレームに対する色データの、前記モデルフレームに対する予測された色データとの比較に基づく測光誤差の関数である、請求項11に記載の方法。
前記三次元モデルの表現は、予測されたフレームのより低い分解能の表現を含み、前記予測されたフレームは前記三次元モデルのアクティブ部分からの投影に基づき決定される、請求項16に記載の方法。
前記三次元モデルは、表面要素モデルを含み、前記表面要素モデル内の各表面要素は、少なくとも、三次元における前記表面要素の位置を定義するデータと、三次元における前記表面要素に対する法線ベクトルを定義するデータとを含み、各表面要素は、前記三次元空間内の二次元領域を表す、請求項10から17のいずれか一項に記載の方法。
プロセッサによって実行されたときに、コンピューティングデバイスに三次元空間のモデルを生成する方法を実行させるコンピュータ実行可能命令を含む非一時的コンピュータ読み取り可能な記憶媒体であって、前記方法は
複数のフレームを含むイメージデータを取得するステップであって、各フレームは深度データおよび色データを含み、前記深度データは前記イメージデータをキャプチャするために使用される撮像デバイスからの前記三次元空間内の物体の距離を指示する、ステップと、
前記イメージデータに基づき前記三次元空間のモデルを計算するステップであって、前記モデルは複数の要素を含み、各要素は三次元内の位置を有する、ステップとを含み、
計算する前記ステップは
各部分について少なくとも1つの観測特性に基づき前記モデルをアクティブ部分と非アクティブ部分とにセグメント分割するステップと、
前記イメージデータ内の所与のフレームについて、
前記所与のフレームに対する前記深度データおよび色データを前記モデルのアクティブ部分から導出されたモデルフレームに対する予測された深度および色データと比較することによって前記撮像デバイスの推定された姿勢を決定するステップと、
前記撮像デバイスの前記推定された姿勢を使用して前記モデルフレームに対する前記予測された深度および色データを更新するステップと、
前記モデルのアクティブ部分および非アクティブ部分のうちの少なくとも一方に関連付けられている要素を変換することによって前記モデルのアクティブ部分を前記モデルの非アクティブ部分と整列させるステップと、
前記所与のフレームに対する前記深度データと色データとを使用して前記モデルの整列されたアクティブ部分を更新するステップとを含み、
前記モデルのアクティブ部分を前記モデルの非アクティブ部分と整列させる前記ステップは、
所与のフレームに対する三次元モデルのアクティブ部分と前記所与のフレームに対する前記三次元モデルの非アクティブ部分との間の整列メトリックが、事前定義済み閾値よりも低い不整列を指示すると決定したことに応答して、局所的ループ位置合わせを実行するステップを含む非一時的コンピュータ読み取り可能な記憶媒体。
【発明を実施するための形態】
【0023】
本明細書で説明されているいくつかの例は、三次元空間の詳細な三次元モデルまたはマップをキャプチャされたイメージデータから生成することを可能にする。これらの例は、イメージデータが様々なキャプチャデバイス軌跡から結果として得られるときであってもそのような空間の正確なモデルを生成することを可能にするものである。たとえば、三次元空間の密な、一貫した、包括的モデルは、「ループの多い」および/または「途切れ途切れの」キャプチャデバイスの軌跡から、さらにはガイドされた安定した前方に面している軌跡から生成され得る。さらに、本明細書で説明されているいくつかの例は、リアルタイムで、またはリアルタイムに近いフレームレートでこれらの三次元モデルを構築することを可能にする特徴を備える。たとえば、いくつかの特徴は、フレーム毎に増分的な同時定位および密マッピングを可能にする。これは、本明細書に提示されている技術がハンドヘルドモバイルコンピューティングデバイスから自律的家庭向けおよび/または産業用ロボットに至るまで、様々な現実世界の電子デバイスにおいて使用されることを可能にする。また、生成された三次元モデルの正確さおよび安定性が増すことで、その内部表現の適用可能性に関してそのようなデバイスの信頼性が高まり得るのでロボットデバイスとその環境との間の改善されたインタラクションが可能になる。
【0024】
本明細書で説明されているいくつかの例では、三次元モデルまたはマップ(または単に「モデル」)は、モデルの少なくとも1つの特性に基づき少なくともアクティブ部分と非アクティブ部分とにセグメント分割される。たとえば、そのようなモデルの位置要素は、モデル修正の時刻に基づきアクティブまたは非アクティブとして分類され、たとえば、モデルのより古い部分は、非アクティブと分類されてよく、かつ/または三次元空間内のキャプチャデバイスからの距離、たとえば、空間内のキャプチャデバイスまたは定義済み位置からの特定の距離にわたる位置要素は、非アクティブと分類され得る。これらの場合において、三次元モデルのアクティブ部分は、前記モデルを更新するために使用され、非アクティブ部分は、モデルを更新するためには使用されない。更新するこのステップは、イメージデータのフレームをモデルと融合させること、たとえば、モデル内の新規位置要素をイメージデータから決定するステップを含み得る。これは、空間のモデルの部分集合のみが空間の新規観測に続いてモデルを更新するためにどの時点においても使用され得るので、必要な計算量を低減するのに役立つ。モデルを更新することに加えて、アクティブ部分は、モデルに関してキャプチャデバイスの配置および向きの正確な現在の表現を決定することを求める追跡動作でも使用され得る。ここでもまた、空間のモデルの部分集合のみを使用するステップは、空間の完全モデルに基づき追跡することと比べて必要な計算量を低減することを可能にする。
【0025】
本明細書で説明されているいくつかの例は、アクティブおよび非アクティブモデル部分の整列も行う。これは、キャプチャデバイスが三次元空間内の所与の配置を再訪するか、または再観測するときにいわゆる「ループ」閉鎖を可能にする。この整列は、キャプチャされたイメージデータが処理されるときにフレーム毎に頻繁に実行され得るが、モデルの正確さおよび安定性を維持することを助け、「ループの多い」および/または「途切れ途切れの」キャプチャデバイス軌跡を取り扱うことを可能にする。いくつかの場合において、この整列は、2つの態様、すなわち、アクティブおよび非アクティブモデルの各々から生成される予測されたフレームを整列させようとする「局所的ループ閉鎖」と、イメージデータの所与のフレームとイメージデータの以前に処理されたフレームの表現とを整列させることを試みる「大域的ループ閉鎖」とを組み込み得る。整列は、たとえば、空間変形を介して、三次元モデルを変形させることによって実行され得る。いくつかの場合において、この変形は非剛体的であってよく、変換グラフを使用して変換をモデルの位置要素に適用し得る。これは、たとえば、モデリングプロセスの構造体であり、モデリングされる三次元空間を反映しない不連続部を減らすことによって、三次元内のモデルの正確さおよび一貫性をさらに高め得る。特に、そのような変形グラフは、疎であってよく、および/または空間内に埋め込まれてよく、たとえば、モデルの位置要素と関連付けられ得る。これらの技術は、姿勢グラフを必要とするもの、たとえば、イメージデータの独立したキーフレームを剛体的に変形するために使用される、カメラデバイスの配置および向きの確率的表現と異なる。
【0026】
図1A、
図1B、および
図1Cは、三次元空間の例、およびその空間に関連付けられているイメージデータのキャプチャを概略として示している。これらの例は、本明細書で説明されているいくつかの特徴をより適切に説明するために提示されており、限定とみなされるべきでなく、いくつかの特徴は説明を簡単にするために省かれ、簡略化されている。
【0027】
図1Aは、三次元空間110の第1の例100を示す。三次元空間110は、内部および/または外部物理的空間、たとえば、部屋もしくは地理的位置の少なくとも一部であってよい。この例100における三次元空間110は、三次元空間に対して配置されている多数の物理的物体115を含む。これらの物体115は、他にもあるがとりわけ、人々、電子デバイス、家具、動物、建物部分、および機器のうちの1つまたは複数を含み得る。第1の例100は、また、三次元空間110に関連付けられているイメージデータをキャプチャしているキャプチャデバイス120も示す。キャプチャデバイス120は、三次元空間110を観測した結果得られるデータを記録するように配置構成されている、デジタル形態またはアナログ形態のいずれかのカメラを含み得る。いくつかの場合において、キャプチャデバイス120は移動可能であり、たとえば、三次元空間110の異なる観測部分に対応する異なるシーンをキャプチャするように配置構成され得る。キャプチャデバイス120は、静的マウントに関して移動可能であってよい、たとえば、三次元空間110に関するカメラの位置および/または向きを変化させるためのアクチュエータを備え得る。別の場合には、キャプチャデバイス120は、人間のユーザによって操作され移動されるハンドヘルドデバイスであってよく、なおも別の場合では、キャプチャデバイス120は、三次元空間110内で移動するように配置構成されているロボットデバイスに結合されてよく、たとえば、自律的な空中および/または地上モバイルデバイスを含み得る。キャプチャデバイス120は、そのようなデバイス上に静的に、または移動可能に据え付けられ得る。
図1Aの三次元空間110は、下面とともに示されているが、これはすべての実装における場合である必要はない、たとえば、環境は空中であるか、または地球外空間であってもよい。
【0028】
図1Bは、三次元空間110の第2の例130を示す。第2の例130では、三次元空間110は、地球上のある場所を含んでいてよい、外部空間である。第2の例130では、外部空間は、多数の沿道物体115がある軌道または道路の一部を含む。第2の例130は、アクチュエータ145を使用して三次元空間110をナビゲートするように配置構成されているモバイルデバイス140を示している。本発明の例では、これらのアクチュエータはホイールを備え、他の場合には、軌道、穴掘り機構、ローターなどを備え得る。モバイルデバイス140は、2つのキャプチャデバイス120-Aおよび120-Bを備える。各キャプチャデバイス120-A、Bは、異なる種類のイメージデータをキャプチャし、および/またはステレオイメージソースを備え得る。ある場合には、キャプチャデバイス120-Aは、たとえば、赤外線、超音波、および/またはレーダー(光検出および測距--LIDAR技術を含む)などのリモートセンシング技術を使用して深度データをキャプチャし得るが、キャプチャデバイス120-Bは、測光データ、たとえば、カラーまたはグレースケールイメージをキャプチャする(またはその逆)。ある場合には、キャプチャデバイス120-A、Bのうちの1つまたは複数は、モバイルデバイス140から独立して移動可能であり得る。ある場合には、キャプチャデバイス120-A、Bのうちの1つまたは複数は、たとえば、ある角度の弧で回転し、および/または360度回転する回転機構上に据え付けられ、および/またはシーンのパノラマ(たとえば、最大360度の完全パノラマ)をキャプチャするように適合された光学系を備えるように配置構成され得る。
【0029】
図1Cは、キャプチャデバイス120およびモバイルデバイス140に利用可能な自由度の例150を示している。キャプチャデバイス120の場合、デバイス160の方向は、レンズまたは他の撮像装置の軸と同一の直線上にあるものとしてよい。3本の軸のうちの1本の周りの回転の一例として、法線軸170が図に示されている。同様に、モバイルデバイス140の場合に、モバイルデバイス160の整列の方向が定義され得る。これは、モバイルデバイスの対向および/または進行方向を指示し得る。法線軸170も図示されている。単一の法線軸のみが、キャプチャデバイス120またはモバイルデバイス140に関して図示されているが、これらのデバイスは、以下で説明されているように150として概略が示されている軸の1つまたは複数の周りに回転し得る。
【0030】
より一般的には、キャプチャデバイスの向きおよび配置は、6自由度に関して三次元内に定義され得る、すなわち、配置は、たとえば、[X,Y,Z]座標によって三次元の各々の中で定義されるものとしてよく、向きは、3本の軸、たとえば、[θx、θy、θz]の各々の周りの回転を表す角度ベクトルによって定義され得る。いくつかの実装において、キャプチャデバイスは、これらの6自由度の制限された集合を参照しつつ定義されてよく、たとえば、地上車上のキャプチャデバイスについて、z次元は一定であってよい。モバイルデバイス140の実装など、いくつかの実装において、別のデバイスに結合されているキャプチャデバイスの向きおよび配置は、その他のデバイスの向きおよび配置に関して定義されてよく、たとえば、モバイルデバイス140の向きおよび配置に関して定義されてよい。本明細書で説明されている例では、キャプチャデバイスの向きおよび配置は、キャプチャデバイスの姿勢として定義される。キャプチャデバイスの姿勢は、時間の経過とともに変化するものとしてよく、それによりキャプチャデバイスは時刻t+1では時刻tと異なる姿勢をとり得る。キャプチャデバイスを備えるハンドヘルドモバイルコンピューティングデバイスの場合には、姿勢は、ハンドヘルドデバイスが三次元空間110内でユーザによって移動されると変化し得る。
【0031】
図2A、
図2B、および
図2Cは、異なるキャプチャデバイス構成の3つの網羅的でない例の概略を示している。
図2Aの例200では、キャプチャデバイス210は、イメージデータ220を生成するように構成される。キャプチャデバイス210が、デジタルカメラである場合に、これは、直接実行されてよく、たとえば、イメージデータ220は、電荷結合素子または相補型金属酸化膜半導体(CMOS)センサーからの処理済みデータを含み得る。また、イメージデータ220を間接的に、たとえば、アナログ信号ソースを変換するなどの他のイメージソースを処理することを通じて生成することも可能である。
【0032】
ある場合には、イメージデータ220は、時間の経過とともにキャプチャされたイメージデータを含む。この形式の一例230は、
図2Bに示されている。この場合に、イメージデータ220は、複数のフレーム240を備える。各フレーム240は、
図1における110などの、三次元空間のイメージがキャプチャされる期間における特定の時刻tに関係し得る(すなわち、F
t)。そのようなものとしてイメージデータ220は、ビデオデータと考えてよい。フレーム240は、一般的に、測定されたデータの二次元表現からなる。たとえば、フレーム240は、時刻tにおける記録されたピクセル値の二次元配列または行列を含み得る。
図2Bの例では、イメージデータ内のすべてのフレーム240は、同じサイズであるが、これは必ずしもすべての例にあてはまる場合ではない。フレーム230内のピクセル値は、三次元空間の特定の部分の測定を表す。
図2Bの例では、各フレーム240は、イメージデータの2つの異なる形態に対する値を含む。値の第1の集合は、深度データ250に関係する(たとえば、D
t)。深度データは、キャプチャデバイスからの距離の指示を含むものとしてよく、たとえば、各ピクセルまたはイメージ要素値は、キャプチャデバイス210からの三次元空間の一部の距離を表し得る。値の第2の集合は、測光データ260に関係する(たとえば、C
t)。これらの値は、所与の分解能の対する赤、緑、青ピクセル値を含み得る。他の例では、他の色空間が使用され、および/または測光データ260は単色またはグレースケールピクセル値を含み得る。ある場合には、イメージデータは、圧縮ビデオストリームまたはファイルを含み得る。この場合には、イメージデータのフレームは、ストリームまたはファイルから、たとえば、ビデオデコーダの出力として再構築され得る。イメージデータは、ビデオストリームまたはファイルの前処理に続いてメモリロケーションから取り出され得る。
【0033】
図2Bのキャプチャデバイス210は、RGBデータ260および深度(「D」)データ250の両方をキャプチャするように配置構成されているいわゆるRGB-Dカメラを含むものとしてよい。ある場合には、RGB-Dカメラは、時間の経過とともにビデオデータをキャプチャするように配置構成される。深度データ250およびRGBデータのうちの1つまたは複数は、どの時点においても使用され得る。深度データ250は、赤外線レーザープロジェクタが三次元空間の観測されている部分上に赤外線のパターンを投影し、次いでこれはモノクロCMOSイメージセンサーによって撮像される構造化光アプローチなどの当技術分野で知られている1つまたは複数の技術によって生成され得る。これらのカメラの例は、米国ワシントン州レドモンド所在のMicrosoft Corporationによって製造されているKinect(登録商標)カメラファミリ、台湾台北市所在のASUSTeK Computer Inc.によって製造されているXtion(登録商標)カメラファミリ、米国カリフォルニア州クパチーノ所在のApple Inc.の子会社のPrimeSenseによって製造されているCarmine(登録商標)カメラファミリを含む。いくつかの例では、RGB-Dカメラは、タブレット、ラップトップ、または携帯電話などのモバイルコンピューティングデバイスに組み込まれ得る。他の例では、RGB-Dカメラは、静的コンピューティングデバイスの周辺機器として使用され得るか、または専用処理機能を備えるスタンドアロン型デバイス内に組み込まれ得る。ある場合には、キャプチャデバイス210は、結合されたデータストレージデバイス内にイメージデータ220を記憶するように配置構成され得る。他の場合には、キャプチャデバイス210は、結合されたコンピューティングデバイスにイメージデータ220を伝送するものとしてよい。結合されているコンピューティングデバイスは、たとえば、ユニバーサルシリアルバス(USB)接続を介して直接結合されるか、または間接的に結合されてよく、たとえば、イメージデータ220は、1つまたは複数のコンピュータネットワーク上で伝送されてよい。なおも別の場合には、キャプチャデバイス210は、ネットワークアタッチトストレージデバイスに記憶するために1つまたは複数のコンピュータネットワーク上でイメージデータ220を伝送するように構成されてよい。イメージデータ220は、フレーム毎に、またはバッチベースで記憶され、および/または伝送されてよく、たとえば、複数のフレームが束にされてよい。深度データ240は、測光データ250と同じ分解能またはフレームレートである必要はない。たとえば、深度データ250は、測光データ260よりも低い分解能で測定されてよい。1つまたは複数の前処理動作も、後で説明される例において使用される前にイメージデータ220上で実行され得る。本明細書で説明されていないさらなる構成も可能である。
【0034】
図2Cは、イメージデータ220を取得するための別の可能な構成270を示している。この例では、2つのキャプチャデバイスが使用される、すなわち、深度データ280のフレームを含むイメージデータ220-Aをキャプチャするように配置構成されている第1のキャプチャデバイス210-Aと、測光データ290のフレームを含むイメージデータ220-Bをキャプチャするように配置構成されている第2のキャプチャデバイス210-Bである。これらのデータチャネルは、任意のコンピューティングデバイス内で別々に処理されるか、または共通イメージ処理パイプラインにマージされ得る。たとえば、
図2Cの構成270は、2つのキャプチャデバイス120-Aおよび120-Bを有する
図1Bのモバイルデバイス140に適用され得る。ある場合には、第1のキャプチャデバイス210-Aは、三次元空間(における深度)を測定し、その測定を測定データのフレームに変換するように配置構成されている赤外線、超音波、および/またはレーダーデバイスであってよい。第2のキャプチャデバイス210-Bは、次いで、カラーイメージデータ290のフレームをキャプチャするように配置構成されているRGBカメラを備え得る。深度データ280および測光データ290のフレームサイズおよび/または分解能は、キャプチャのフレームレートの場合のように異なり得る。ある場合には、前処理ステップは、2つのフレーム集合が共通のサイズおよび分解能を有するように適用され得る。この場合には、
図2Cのデータは、
図2Bに示されている形態になるように前処理され得る。
【0035】
いくつかの場合において、キャプチャデバイスは、深度データを生成するために前処理を実行するように配置構成され得る。たとえば、ハードウェア感知デバイスが、相違データまたはデータを複数のステレオイメージの形態で生成するものとしてよく、ソフトウェアとハードウェアのうちの1つまたは複数がこのデータを処理して深度情報を計算するために使用される。同様に、深度データは、代替的に、深度情報を再構築するために使用され得る位相イメージを出力する伝搬時間カメラから生じ得る。そのようなものとして、イメージデータ220の一部を形成する深度データを生成するために任意の好適な技術が使用され得る。
【0036】
図2A、
図2B、および
図2Cは、多数の例として提供されており、それからわかるように、以下で説明されている方法およびシステムで使用するためにイメージデータ220を生成するためにこれらの図に示されているのと異なる構成が使用され得る。イメージデータ220は、キャプチャデバイスで三次元空間のキャプチャされるかまたは記録されたビューを表す二次元形態で配置構成される測定された任意の感覚入力をさらに含み得る。たとえば、これは、他にもあるがとりわけ、深度データまたは測光データ、電磁波イメージング、超音波イメージング、およびレーダー出力のうちのただ1つを含み得る。これらの場合において、特定の形態のデータに関連付けられている撮像デバイス、たとえば、深度データのないRGBデバイスのみが必要な場合がある。上の例では、深度データD
tは、深度値の二次元行列を含み得る。これは、グレースケールイメージとして表されてよく、たとえば、x
R1×y
R1の分解能を有するフレーム内の各[x,y]ピクセル値は、三次元空間内の表面のキャプチャデバイスからの距離を表す深度値dを含む。測光データC
tは、カラーイメージを含んでいてもよく、x
R2×y
R2の分解能を有するフレーム内の各[x,y]ピクセル値は、RGBベクトル[R,G,B]を含む。一例として、データを両方の集合の分解能は、640×480ピクセルであるものとしてよい。いくつかの場合において、イメージデータ220は、複数のデータソース、たとえば、特定の三次元空間を観測している複数のカメラを組み合わせることによって生成され得る。いくつかの場合において、イメージデータ220は、ビデオデータである必要はない。これは、その代わりに、1つまたは複数のキャプチャデバイスを使用して時間の経過とともに異なる位置からキャプチャされた一連の静止イメージを含む。いくつかの場合において、深度データは、測光データから、たとえば、空間の周りにあるキャプチャデバイスの動きを表す測光データを処理することから生成されてよい。
【0037】
図3は、三次元空間のモデルを生成するための装置310の例300を示している。たとえば、これは、
図1Aおよび
図1Bに示されている三次元空間110のモデルであってよい。装置310は、イメージデータ320を処理する。イメージデータ320は、たとえば、
図2A、
図2B、および
図2Cに示されている構成のうちのどれかによって生成され得る。
【0038】
図3において、装置は、イメージ取得インターフェース330およびモデルエンジン340を備える。イメージ取得インターフェース330は、イメージデータ320を取得するように構成される。これは、前の図のキャプチャデバイス120および210などの、キャプチャデバイスによって能動的に生成されるか、または以前に生成されているか、生成されたことがあるイメージデータであるものとしてよい。イメージデータ320は、時間の経過とともにキャプチャデバイスを使用して行われる三次元空間の観測に関連付けられる。たとえば、イメージデータ320は、所与の期間にわたるビデオデータを含むものとしてよく、所与の期間にわたって、1つまたは複数のキャプチャデバイスは三次元空間内を動き回る。モデルエンジン340は、イメージ取得インターフェース330によって取得されたイメージデータ320を処理し、三次元空間の三次元モデル350を計算するように構成される。この例では、次いで、モデルエンジン340は、少なくともモデルセグメンター360および位置合わせエンジン370を備える。モデルセグメンター360は、少なくとも1つのモデル特性に基づき三次元モデル350を少なくともアクティブ部分と非アクティブ部分とにセグメント分割するように構成される。位置合わせエンジン370は、時間の経過とともに三次元モデル350のアクティブ部分を三次元モデル350の非アクティブ部分と整列させるように構成される。モデルエンジン340は、三次元モデル350のアクティブ部分を使用して、時間の経過とともに前記モデルを更新するようにさらに構成される、すなわち、非アクティブ部分は、モデルを更新するためには使用されない。
【0039】
イメージ取得インターフェース330の構成は、実装に依存し得る。ある場合には、イメージ取得インターフェース330は、USBまたはネットワークインターフェースなどのハードウェアインターフェース、およびソフトウェアドライバを実装するコンピュータプログラムコードを備え得る。ある場合には、モデルエンジン340は、イメージ取得インターフェース330上で受信されるストリーミングデータで動作するように構成され得る。これは、装置310がライブイメージデータで動作するときの場合であってよい。ある場合には、イメージ取得インターフェース330は、キャプチャデバイスに通信可能に結合され、永続的および非永続的データストレージのうちの1つまたは複数にキャプチャデバイスから受信されたイメージデータ320を記憶するように配置構成されてよく、たとえば、データのフレームは、メモリにコピーされ、および/またはハードディスクドライブもしくはソリッドステートストレージに記憶されるものとしてよい。別の場合には、イメージデータ320は、所与のファイルフォーマットで、たとえば、データストレージデバイスにおいてアクセス可能な1つまたは複数のファイルで装置310に外部的に記憶され得る。この場合、イメージ取得インターフェース330は、ファイルシステムの一部を使用するか、または実装して、1つまたは複数のファイルから少なくともデータを読み取るものとしてよい。これは、装置310が以前に記録されているイメージデータで動作するときの場合であってよい。たとえば、イメージデータ320は、ハンドヘルドデバイスを使用してキャプチャされるような、ユーザが歩いて建物を通り抜けることの記録を含み得るか、または自律的な車両によって地理的空間の偵察の軌跡(scouting trajectory)を含み得る。さらなる構成が企図され、これらの例は限定とみなされるべきでない。
【0040】
モデルエンジン340は、専用処理電子機器を備えるものとしてよく、および/または少なくとも1つのコンピューティングデバイスのプロセッサによって実行されるコンピュータプログラムコードを用いて実装され得る。以下の
図4を参照しつつ説明されているような場合には、モデルエンジン340は、1つまたは複数の組込コンピューティングデバイスを備えてもよい。これは、コンピュータ読み取り可能な媒体上にロードされたコンピュータプログラムコードを実行するためにメモリに関連して動作する少なくとも1つのプロセッサを備え得る。この媒体は、消去可能プログラム可能リードオンリーメモリなどのソリッドステートストレージを含むものとしてよく、コンピュータプログラムコードは、ファームウェアを含み得る。他の場合には、モデルエンジン340は、適切に構成されたシステムオンチップ、特定用途向け集積回路、および/または1つもしくは複数の適切にプログラムされたフィールドプログラマブルゲートアレイを備え得る。ある場合には、モデルエンジン340は、モバイルコンピューティングデバイスおよび/またはデスクトップコンピューティングデバイス内のコンピュータプログラムコードおよび/または専用処理電子機器を用いて実装され得る。ある場合には、モデルエンジン340は、コンピュータプログラムコードを実行する1つまたは複数のグラフィカルプロセッシングユニットによって、前の場合とともに、またはその代わりに実装され得る。いくつかの場合において、モデルエンジン340は、たとえば、複数のプロセッサおよび/またはグラフィックス処理ユニットのコア上で並行して実行される1つまたは複数の機能を用いて実装され得る。
【0041】
モデルエンジン340によって生成される三次元モデル350は、イメージデータに関連付けられている三次元空間内の位置もしくは配置を表す位置要素を有する任意のモデルもしくはマップを含み得る。いくつかの場合において、三次元モデル350は、三次元空間の「密」モデルである。この場合、モデルを形成する位置要素は多数あり、たとえば、数十万もしくは数百万個の要素がある。これは、数十個または数百個の定義済みモデル点しかない特徴ベースまたは「疎」モデルとは対照的であると言える。ある場合には、位置要素は、空間のボクセルモデルに基づくものとしてよく、空間を伴う表面は、三次元における特定の分解能のボクセル空間内のボクセル値に関して定義される。別の場合には、表面要素モデルが使用され得る。表面要素モデルは、
図6Aおよび
図6Bを参照してより詳しく定義される。表面要素モデルでは、特定の位置で向きが定められた多数の表面が位置要素として定義される。三次元モデル350の広がりは、イメージデータ320において表されるような三次元空間の観測された広がりに依存し得る。
【0042】
ある場合には、三次元モデル350は、イメージデータ320内のピクセル値が処理され、三次元空間のモデリングに寄与するときに「密」であるとみなされ得る。たとえば、「密」表現では、イメージ内のすべてのピクセルは、可能な限り多くの情報を追跡およびマッピング推定手順に寄与し得る。これは、三次元モデル、すなわち、シーンのマップの結果として得られる表現を合成キャプチャデバイスまたはカメラに投影して戻し「密」イメージ、すなわち、キャプチャデバイスの分解能でのイメージを再構築することを可能にし、合成されたイメージ内のピクセルの大部分は、モデルとともに記憶されている情報に基づき合成されたデータを有する。対照的に、「疎」システム、たとえば、キーポイントまたは抽出された特徴を利用するものは、イメージデータ内のピクセル値の小さい部分集合のみを使用してモデルを生成する。「疎」の場合には、合成されたイメージは、モデル内に十分な情報がないので、キャプチャデバイス分解能で作成され得ない。この方式で、「密」システムは、高精度で、たとえば、実環境の所与の許容範囲内で、三次元空間内の1つまたは複数の表面を推定する働きをする。「密」システムは、量子化された連続系に類似するものとして考えてよいが、「疎」システムは離散点の小さい集合上で動作する。
【0043】
いくつかの場合において、モデルエンジン340は、フレーム毎に動作するように構成される。一実装において、モデルエンジン340は、イメージデータの連続するフレームF
tをメモリにロードするように配置構成され得る。これらのフレームは、装置310の内部のデータストレージに記憶されるか、またはイメージ取得インターフェース330によって外部データストレージから取得され得る。他の実装では、モデルエンジン340は、装置310の内部のメモリからイメージデータの1つまたは複数のフレームを取り出し得る。一実装では、内部メモリの一部は、特定の時刻tにおいてフレームデータを保持し、新規イメージデータ320がイメージ取得インターフェース330によってキャプチャデバイスから受信されるときに上書きされ得る。モデルエンジン340が、フレーム毎に動作するように構成されるときに、モデルエンジン340は、フレーム毎に三次元モデル350を更新するように構成され得る。これは、イメージデータ320の特定のフレームを三次元モデル350と「融合」させるステップ、すなわち、イメージデータ320のフレームを使用して三次元モデル350を修正し更新するステップを含み得る。これは、イメージデータ320のフレームから導出され得る新しい位置要素を含めるステップを含み得る。三次元モデル350がどのように生成されるかれ、または更新されるかを示すいくつかの特定の例が、以下でより詳しく説明される。本明細書で説明されているアプローチは、不完全であり、かつ/またはノイズの多いイメージデータのフレームに適用され得ることに留意されたい。
【0044】
ある場合には、モデルエンジン340は、イメージデータ320および三次元モデル350を使用してキャプチャデバイスの姿勢を追跡するように構成される。これは、特定のキャプチャデバイスの実際の姿勢に必ずしも関係する必要はなく、いくつかの例では、これはイメージデータ320の特定のフレームに基づき推定される仮想キャプチャデバイスの姿勢であってよい。たとえば、イメージデータ320の各フレームは、特定の位置にあり、フレームがキャプチャされたときに特定の向きを有する特定のキャプチャデバイスを使用してキャプチャされると考えられ得る。2つまたはそれ以上のキャプチャデバイスが使用される場合、各キャプチャデバイスの姿勢は、各キャプチャデバイスからの対応するイメージデータを使用して追跡され得る。モデルエンジン340は、三次元モデル350に関してイメージデータ320の所与のフレームを追跡するように構成され得る。これは、三次元モデル350のどのような部分がイメージデータ320の所与のフレーム内で観測されているかを決定するステップを含み得る。これは、イメージデータ320のフレームと三次元モデル350とに基づき生成される姿勢推定を使用して達成され得る。いくつかの場合において、イメージデータ320に基づき姿勢推定を生成するよりはむしろ、またはそれに加えて、姿勢推定は、外部ソースからの測定データに基づき生成され得る。たとえば、制御可能な、かつ/または測定可能な自由度を持つメカニカルアームなどの、移動可能なキャプチャデバイスマウントからの電気機械的測定結果は、マウントに結合されているキャプチャデバイスに対する姿勢推定を決定するために処理され得る。
【0045】
モデルセグメンター360は、モデルデータを修正することによって三次元モデル350をセグメント分割するように構成され得る。たとえば、ある場合には、三次元モデル350の所与の位置要素は、モデルのアクティブ部分または非アクティブ部分の一部を形成するかどうかを指示する変数を有し得る。別の場合には、モデルセグメンター360は、前記モデルに適用される機能として三次元モデル350をセグメント分割するように構成され得る。たとえば、三次元モデル350は、モデルセグメンター360に入力され、モデルセグメンター360は、三次元モデル350のアクティブ部分および非アクティブ部分のうちの1つまたは複数を出力するように構成され得る。いずれかのアプローチが使用され得る。
【0046】
三次元モデル350をセグメント分割するためにモデルセグメンター360によって使用されるモデル特性は、三次元モデル350における確実性レベルを指示し得る。たとえば、モデルセグメンター360は、時刻および距離のうちの1つまたは複数に基づき三次元モデル350をセグメント分割し得る。第1の場合において、モデル特性は、三次元モデルにおける所与の位置に対するモデル生成の時刻およびモデル更新の時刻のうちの1つを含み得る。この場合には、非アクティブ部分は、事前定義された量よりも多い量だけ現在の観測時刻と異なる過去の観測時刻を指示し得る。たとえば、モデルセグメンター360は、三次元モデル350を構成する各位置要素に対する時間データを処理して三次元モデル350に対する位置要素の集合を、共通の要素を持たない2つの集合、アクティブ要素を表すΘと、非アクティブ要素を表すΨとに分割するように配置構成され得る。これを行うために、モデルセグメンター360は、セグメント分割の所与の時刻t(たとえば、イメージデータの特定の処理済みフレームF
tに関係する)について、モデルP
c(cは三次元空間内の座標である)における各位置要素について、t-t
P<δ
tである場合に位置要素は集合Θ内にあり(すなわち、P
c∈Θ)、t-t
P≧δ
tである場合に位置要素は集合Ψ内にあり(すなわち、P
c∈Ψ)、ただしδ
tは定義された期間である、ように各位置要素に対するタイムスタンプt
P(たとえば、位置要素が最後に修正された時刻)を処理するものとしてよい。この形態のセグメント分割またはモデル要素分類では、期間δ
t内に見えていなかった位置要素を非アクティブとして徐々にラベル付けしてゆく。これは、時間窓の適用と考えてよい。上で説明されているように、モデルエンジン360は、イメージデータの新しいフレームを三次元モデル350のアクティブ部分に融合させるように構成されてよく、モデルの非アクティブ部分は、追跡および/またはデータ融合に使用されない。この場合、位置合わせエンジン370によるアクティブ部分および非アクティブ部分の整列の後に、整列されている非アクティブ部分は、これからアクティブ部分になるように修正され得る。たとえば、非アクティブ部分の整列時に、位置合わせエンジン370は、非アクティブ部分内の各位置要素に関連付けられている最後の修正時刻を
更新するものとしてよい。これは、この整列された非アクティブ部分がモデルセグメンター360による三次元モデル350の処理に続いてこれからアクティブになるという効果を有し得る。これは、連続的フレーム-モデル間追跡、さらにはモデル-モデル間追跡を可能にし、視点不変のループ閉鎖を許す。
【0047】
ある場合には、モデルエンジン340は、モデルを更新する際に使用するための三次元モデル350のアクティブ部分からの投影に基づきアクティブモデルフレームを計算するように構成される。たとえば、そのような投影は、三次元モデル350のアクティブ部分の予測されたビューまたは観測を表す二次元視点または仮想フレームをもたらし得る。ある場合には、アクティブモデルフレームは、所与の時刻におけるキャプチャデバイスの姿勢推定に基づき生成され得る。たとえば、姿勢推定は、三次元モデル350のアクティブ部分からの幾何学的投影が計算されるように視点または仮想フレームの配置および向きを指示し得る。ある場合に、予測されたフレームは、イメージデータ320を構成する各データセットについて計算され得る。たとえば、
図2Bおよび
図2Cに示されているのと似たイメージデータを処理するときに、各アクティブモデルフレームは、深度データの予測されたフレーム
【0049】
および測光データの予測されたフレーム
【0051】
を含み得る。これらは、イメージデータ320からの記録されるか、またはキャプチャされたイメージフレームF
tと同じ分解能のものであってよい。アクティブモデルフレームの使用は、以下の
図5を参照しつつより詳しく説明される。
【0052】
上で説明されているように、装置310は、時間の経過とともに、たとえば、記録されたイメージデータ320の複数のフレームが処理されるときに三次元モデル350を生成するように配置構成されてよい。ある場合には、イメージデータ320は、移動するキャプチャデバイスを使用して時間の経過とともに行われる三次元空間の観測を表し、そのようなものとして、イメージデータ320のフレームがモデルエンジン340によって処理されるとともに、三次元モデル350はサイズを増やし、たとえば、三次元空間の異なる部分を表すより多くの位置要素を組み込む。さらに、位置合わせエンジン370は、時間の経過とともにモデルのアクティブ部分および非アクティブ部分の整列を実行するように構成され、これは、三次元空間の一部分が再訪されるか、または再観測されると、すなわち、キャプチャデバイスの動きにおける「ループ」が閉じられると、行われるものとしてよい。このことは、三次元モデル350の正確さおよび一貫性もイメージデータ320のより多くのフレームが処理されるにつれ高まることを意味する。
【0053】
装置310の出力は、観測される三次元空間の三次元モデル350を含むと考えられ得る。このモデル350は、少なくとも三次元に関して定義された位置要素を含み得る。各位置要素は、三次元空間内にソリッド面が存在することを示すデータにさらに関連付けられ得る。たとえば、ボクセルベースのモデルでは、表面は自由空間を表す変数に対するゼロ値または交差点として表されるものとしてよく、表面要素モデルでは、位置要素は、三次元空間内の表面について定義されてよく、そのような各位置要素はモデル内の特定の表面を指示し得る。いかなる場合も、観測される三次元空間の三次元モデル350は、様々な仕方で使用され得る。装置310が、ハンドヘルドモバイルコンピューティングデバイスの一部をなす場合、三次元モデル350は、デバイスが空間内を動き回るときにイメージデータのキャプチャに続く三次元空間のマッピングを含み得る。装置310が、静的に据え付けられているが、環境を観測するためにぐるっと回って撮影するように配置構成されている1つまたは複数のキャプチャデバイスに通信可能に結合されている場合、三次元モデル350は、空間内で、たとえば、
図1の115などの、物体の存在を計測するために使用され得る。特定の一例において、三次元モデル350は、人間の配置、および/または人間の部分を決定するためにユーザインターフェースシステムによって使用されてよく、前記配置は、インターフェースに対するユーザ入力として使用されてよい。別の例では、三次元モデル350は、付加製造パイプラインへの入力として使用されてよく、モデル内の物体は、付加製造システムによって、たとえば、モデル内の位置要素の定義を使用して、生成され得る。ある場合には、三次元モデル350は、キャプチャデバイスから離れている配置からアクセスされるものとしてよく、モデルは、たとえば、リアルタイムまたはほぼリアルタイムでの、空間の観測を表す。
【0054】
図4は、三次元空間をナビゲートするために前の例のモデル生成技術を使用するように配置構成されているロボットデバイス410の一例400を示す概略図である。ある場合には、ロボットデバイス410は、
図1のモバイルデバイス140の一実装を含み得る。
図4のロボットデバイス410は、キャプチャデバイス420と、モデル生成器430と、三次元モデル450を記憶するように構成されているデータストレージデバイス440と、ナビゲーションエンジン460と、1つまたは複数の移動アクチュエータ470とを備える。ロボットデバイス410の構成要素の間の通信結合は、図に示されており、以下で説明される。
【0055】
例400では、キャプチャデバイス420は、ロボットデバイスが特定の環境をナビゲートするときにイメージデータをキャプチャするように配置構成される。ある場合には、キャプチャデバイス420は、深度データおよび色データのうちの1つまたは複数を含む複数のフレームを記録し、前記深度データは複数のイメージ要素に対するキャプチャデバイスからの距離を指示する、ように配置構成され得る。この場合の各フレームは、異なるキャプチャ時間に関連付けられ得る。ある場合には、キャプチャデバイス420は、2つまたはそれ以上の特定の知覚デバイス、たとえば、空間の領域をスキャンするように構成されている赤外線または超音波センサー、およびカメラなどの撮像デバイスを備え得る。
図2A、
図2B、および
図2Cを参照しつつ説明されている構成のどれかが適用される。
【0056】
図4のキャプチャデバイス420は、モデル生成器430に結合される。この場合には、モデル生成器430は、
図3からの装置310の一実装を含むものとしてよく、イメージ取得インターフェース330は、キャプチャデバイス420に通信可能に結合され得る。モデル生成器430は、データストレージデバイス440に結合される。使用時に、モデル生成器430は、本明細書で説明されている技術のどれかを使用して三次元モデル450を生成するように構成される。データストレージデバイス440は、三次元モデル450を構成するデータを記憶するように配置構成されている揮発性および/または不揮発性ストレージを備え得る。
【0057】
図4のナビゲーションエンジン460は、データストレージデバイス440に結合され、そこに記憶されている三次元モデル450にアクセスするように構成される。ナビゲーションエンジン460は、ロボットデバイス410を環境とともに移動するように1つまたは複数の移動アクチュエータ470を制御するように配置構成される。特に、ナビゲーションエンジン460は、たとえば上記のモデルエンジン340を参照しつつ説明されているように、モデル生成器430によって生成される三次元モデル450にアクセスして、環境内でロボットデバイス410をナビゲートするように構成され、たとえば、三次元モデル450は、環境を含む空間のモデルである。移動アクチュエータ470は、ホイール、ローラー、ローター、プロペラ、機械的手足などを含む、任意の移動機構を備えるものとしてよい。ロボットデバイス410は、地上、空中、および/または海洋デバイスであってよい。ある場合には、キャプチャデバイス420は、ロボットデバイス410上に静的に据え付けられてよく、そのようなものとして、キャプチャデバイス420の姿勢推定は、環境内のロボットデバイス410に対する姿勢推定に等しい。これは、モデル生成器430によって生成される姿勢推定が、環境内のロボットデバイス410の配置および向きを決定するためにナビゲーションエンジン460によって使用されることも可能にする。ある場合には、ロボットデバイス410は、1つまたは複数の機能を実行するように配置構成され得る。たとえば、ロボットデバイス410は、マッピング機能を実行する、特定の人および/または物体の配置を(たとえば、緊急時に)特定する、物体を運ぶ、クリーニングまたはメンテナンスを実行する、などを行うように配置構成され得る。1つまたは複数の機能実行するために、ロボットデバイス410は、環境と相互に作用するためにさらなる知覚デバイス、真空システム、および/またはアクチュエータなどの付加的構成要素を備えることもできる。
【0058】
別の例では、モバイルコンピューティングデバイスが、深度データおよび色データのうちの1つまたは複数を含む複数のフレームを記録し、前記深度データは複数のイメージ要素に対するキャプチャデバイスからの距離を指示する、ように配置構成されている少なくとも1つのキャプチャデバイス、および上で説明されているような装置310またはモデル生成器430を備えてよい。
【0059】
図5は、モデルエンジンのいくつかの構成要素のより詳細な例500を示している。たとえば、これらの構成要素は、他にもあるがとりわけ、いくつかの実装において、
図3のモデルエンジン340または
図4のモデル生成器440の一部として使用され得る。
図5の例500は、イメージデータのフレームの受信に続いて三次元モデルを更新するようにこれらの構成要素がどのように相互に作用し得るかを大まかにさらに示している。
【0060】
図5は、フレーム-モデル間追跡構成要素515およびモデル融合構成要素525に通信可能に結合されているイメージ取得インターフェース505を示している。イメージ取得インターフェース505は、上で説明されているイメージ取得インターフェース330に似た仕方で機能し得る。本発明の例では、イメージ取得インターフェース505は、イメージデータのフレームID
tをフレーム-モデル間追跡構成要素515およびモデル融合構成要素525に供給するように構成される。このイメージデータは、深度データの時刻tにおける現在のフレーム
【0062】
および測光データの時刻tにおける現在のフレーム
【0064】
を含むものとしてよい。たとえば、単純な場合には、これらは、時刻tにおいてメモリ内に2つの二次元配列として、たとえば、640×480の深度値および640×480×3の色値として記憶されるデータを含み得る。このデータは、キャプチャされるか、またはすでに記録されているイメージデータを表す時間インデックスを付けたデータ構造体から取り出されるものとしてよく、および/またはライブビデオフィードの一部として供給されるものとしてよく、各場合において、データは少なくとも1つのキャプチャデバイスによって現在提供されているライブフレームに関係する。
【0065】
フレーム-モデル間追跡構成要素515は、アクティブモデルフレーム生成器520に通信可能に結合される。アクティブモデルフレーム生成器520は、アクティブモデルフレームを計算するように構成される。次いで、フレーム-モデル間追跡構成要素515は、アクティブモデルフレーム生成器520から受信されたアクティブモデルフレームをイメージ取得インターフェース505から受信されたイメージデータのフレームと比較するように構成される。モデル融合構成要素525は、イメージ取得インターフェース505から受信されたイメージデータのフレームに基づき三次元モデル530を更新するように構成される。
【0066】
図5は、モデルセグメンター535を示している。これは、
図3を参照しつつ説明されているようなモデルセグメンター360の一実装を含み得る。モデルセグメンター535は、三次元モデル530を2つの部分または集合に分割するように配置構成され、第1の部分または集合は、「アクティブ」部分540と本明細書では称され、第2の部分または集合は、「非アクティブ」部分545と本明細書では称される。これは、時間窓を三次元モデル530に適用するステップを含み得る。
図5からわかるように、アクティブ部分540は、アクティブモデルフレーム生成器520およびモデル融合構成要素525によって使用される。非アクティブ部分545は、アクティブモデルフレーム生成器520およびモデル融合構成要素525によって使用されない。
【0067】
特に、アクティブモデルフレーム生成器520は、アクティブモデルフレームを生成するためにアクティブ部分540にアクセスするように配置構成される。これは、三次元モデルのアクティブ部分540からの投影に基づき実行され得る。
図5では、時刻t-1に対するアクティブモデルフレーム生成器520によって生成されるアクティブモデルフレームAMF
t-1は、フレーム-モデル間追跡構成要素515によって、時刻tに対するイメージデータのフレームID
tと一緒に受信され、時刻tにおいてイメージデータのフレームを生成するとみなされているキャプチャデバイスに対する姿勢推定P
tを生成するために使用される。前に説明されているように、これは、キャプチャデバイス、またはキャプチャデバイスが静的に据え付けられているデバイスの実際の配置および向きを表し得るか、またはみなされた仮想キャプチャデバイスを提示し得る。後者は、一連の静止画が受信され処理される場合であってよく、この場合、各イメージは、異なるカメラデバイスによってキャプチャされ得るが、イメージ集合は、単一の移動するキャプチャデバイスによってキャプチャされるとみなされ得る。姿勢推定は、
図1Cに示されている6自由度に対する変数値を含み得る。アクティブモデルフレームAMF
t-1は、深度データの、時刻t-1における予測されたフレーム
【0069】
と測光データの、時刻t-1における予測されたフレーム
【0072】
時刻tにおける姿勢推定P
tは、フレーム-モデル間追跡構成要素515からアクティブモデルフレーム生成器520に伝達される。アクティブモデルフレーム生成器520は、時刻tにおける姿勢推定P
tを使用して時刻tにおけるアクティブモデルフレームAMF
tを決定するように構成される。これは、姿勢推定の変数値を使用して、三次元モデルのアクティブ部分340を含む位置要素を使用して投影形状を決定するステップを含み得る。
【0073】
ある場合には、フレーム-モデル追跡構成要素515は、時刻t-1における深度データの予測されたフレーム
【0075】
および時刻t-1における色データの予測されたフレーム
【0077】
を時刻tにおけるイメージデータのフレーム
【0081】
と比較するように構成され得る。この比較は、フレームの各ペアについて(すなわち、深度データペアと色データペアについて)、各ペア内のフレーム間の誤差関数を最小にする動きパラメータを決定するステップを含み得る。次いで、追跡誤差が、深度データ誤差と測光データ誤差の総和として定義され得る。この総和は、加重和であってよい。ある場合には、測光データ誤差に重み係数を掛けて、たとえば、深度データ誤差に関してその寄与分を低減し得る。この係数は、ある場合には0.1であり得る。自由度に対する変数値の推定を得るために最小二乗関数が使用され得る。この推定は、時刻t-1における姿勢推定P
t-1を現在の姿勢推定P
tにマッピングする変換を決定するために使用され得る。この現在の姿勢推定は、イメージデータID
tをアクティブ部分540と整列させるために使用され得る。これは、イメージデータID
tをアクティブ部分540と融合させるためにモデル融合構成要素525によって使用され得る。
【0082】
アクティブモデルフレーム生成器520だけでなく、
図5の例500は、非アクティブモデルフレーム生成器550をさらに備える。非アクティブモデルフレーム生成器550は、アクティブモデルフレーム生成器520に類似しているが、三次元モデルの非アクティブ部分545から非アクティブモデルフレームIMF
tを生成するように構成される。たとえば、非アクティブモデルフレームは、非アクティブ分545からの幾何学的投影に基づき非アクティブモデルフレーム生成器550によって計算され得る。ある場合には、アクティブモデルフレーム生成器520および非アクティブモデルフレーム生成器550は、それぞれアクティブモデルフレームおよび非アクティブモデルフレームを生成するために微分された入力としてモデルのアクティブ部分と非アクティブ部分とを受信するように構成されている共通フレーム生成器によって実装され得る。アクティブモデルフレームを参照しつつ説明されているように、各非アクティブモデルフレームは、深度データの予測されたフレーム
【0084】
および測光データの予測されたフレーム
【0087】
図5において、位置合わせエンジン560は、アクティブモデルフレーム生成器520からアクティブモデルフレームAMF
tを、非アクティブモデルフレーム生成器550から非アクティブモデルフレームIMF
tを受信するように配置構成される。本発明の例では、位置合わせエンジン560は、これら2つのフレームを比較して、アクティブモデルフレームを非アクティブモデルフレームと整列させる変換を決定するように構成される。次いで、
図5において矢印で示されているように、この変換は、モデルのアクティブ部分および非アクティブ部分を整列させるように三次元モデル530を更新するために使用され得る。この変換は、アクティブ部分および非アクティブ部分の両方に対して位置要素の非剛体的空間変形を適用するために使用され得る。ある場合には、変形は、変形グラフを使用して適用され得る。これは、
図7を参照しつつより詳しく説明される。変形または整列では、現在の姿勢推定P
tを使用してよい。いくつかの場合において、アクティブモデルフレームおよび非アクティブモデルフレームの位置合わせでは、フレーム-モデル間構成要素515のと類似しているプロセスを使用し得る。たとえば、前の予測されたフレームを新しく受信されたイメージデータのフレームと整列させることを試みるよりはむしろ、位置合わせエンジン560はアクティブフレームおよび非アクティブフレームを整列させる変換H
tを決定するように構成される。整列が実行される場合、位置合わせエンジン560は、すべての見える非アクティブ位置要素、たとえば、非アクティブモデルフレーム内で見えるものをアクティブになるように設定し得る。
【0088】
位置合わせエンジン560によって実行される整列または変形は、「ループ」閉鎖を可能にする、すなわち、新しく受信されたイメージデータから生成されたモデルの位置要素を以前に受信されたイメージデータに基づき以前に生成され、および/または修正された三次元空間の同じ領域に対応する位置要素と整列させるものとしてよい。たとえば、位置合わせエンジン560がない場合、キャプチャデバイスが動きループを完了した、たとえば、戻って以前に観測された空間の領域を見るときに、モデルの以前の部分は、モデルのより新しい部分との整列から外れ得る。モデルにおけるこの不整列または「ドリフト」は、モデルの生成で推定を使用し、誤差関数を最小にすることを求める、たとえば、非決定論的に動作するときに生じ、それにより、モデルが生成されるときに姿勢推定およびモデルにおける小さな誤差が増加し得る。
図5における位置合わせエンジン560は、たとえば、各フレームについて、現在の推定されたキャプチャデバイス(すなわち、アクティブモデル)フレーム内のモデルのアクティブ部分と同じフレーム内のモデルの非アクティブ部分との位置合わせを連続的に行うことを試みる。位置合わせが成功した場合、たとえば、要求されている変形の整列メトリックまたはレベルに基づき、キャプチャデバイスの動きループは閉じられており、より新しいアクティブ部分がより古い非アクティブ部分に対して整列されており、三次元モデル530全体が、この位置合わせを反映するように非剛体的に変形され得る。いくつかの場合において、位置合わせエンジン560は、位置合わせを実行するために使用されたモデルの非アクティブ部分、たとえば、非アクティブモデルフレームの生成において使用されたものを再度アクティブにするように構成される。これは、フレーム-モデル間追跡構成要素515による追跡およびモデル融合構成要素525によるモデル融合をモデルの位置合わせされた領域の間で行わせることができる。上で説明されているように、データの追跡および融合は、一番最近に観測された三次元モデル530の領域(すなわち、モデルのアクティブ部分540または領域)で実行されるが、一定期間内に観測されていないモデルのより古い部分は、モデルセグメンター535によって追跡またはデータ融合に使用されていないモデルの非アクティブ部分545または領域にセグメント分割され得る。
【0089】
図6Aは、三次元モデルの位置要素を記憶するために使用され得るデータ構造体610の概略表現を示す。データ構造体610は、例としてのみ示されており、限定とみなされるべきでなく、データを記憶するために他のアプローチおよびフォーマットが、実装に応じて使用され得る。この例では、三次元モデルは、表面要素モデルを含む。表面要素モデルは、複数の表面要素または「サーフェル(surfels)」に対するデータ定義を含み、各表面要素は、三次元空間内の二次元領域(すなわち、表面)を表す。これは、
図6Aにおいて、表面要素のリストの定義、たとえば、{surfels: …}を有するデータオープンとして示されている。このリストは、順序なしリストであってよい。この場合には、表面要素モデル内の各表面要素は、少なくとも三次元における表面要素(すなわち、位置要素または構成要素)の位置を定義するデータと、三次元における表面要素に対する法線ベクトル(すなわち、要素に関連付けられている表面に対する「面する」方向)を定義するデータとを含む。これは、
図6Bに概略として示されている。「サーフェル」の記述の1つは、2000年7月にACM Press/Addison-Wesley Publishing Co.により、コンピュータグラフィックスおよびインタラクティブ技術に関する第27回年次大会の議事録で公開されているようなPfister、Hanspeterらによる論文「Surfels: Surface elements as rendering primitives」にある。
【0090】
図6Bは、表面要素または「サーフェル」620の概略表面を示している。サーフェル620は、三次元において表面sを含む。サーフェルは、三次元において位置pを有する。
図6Aにおいて、この位置は、三次元座標、たとえば、x、y、およびz座標を定義するデータ「Position:p
x,p
y,p
z;」を使用して定義される。他の例では、他の座標系が使用されてよい。
図6Bでは、サーフェルは、三次元内で定義されている法線ベクトルも有する。
図6Aにおいて、この位置は、三次元ベクトル、たとえば、データ「Normal:n
x,n
y,n
z;」を使用して定義される。方向は、ベクトル定義内の符号付き値を使用して指示され得る。
図6Aにおける例610は、また、表面要素を記述するために、いくつかの例において使用され得るさらなるデータを有する。本発明の場合では、サーフェルの表面は、三次元空間内の円または円盤である。そのようなものとして、
図6Aおよび
図6Bにおける表面は、半径rによって、データ「Radius:r;」として設定されるように定義される。各サーフェルの半径は、見える穴を最小にしながら、所与の点の周りの局所的表面領域を表すことを意図されている。他の例では、異なるデータは、たとえば、三次元内の表面の広がりを指示する異なる幾何学的定義および/または変数を使用して、表面を定義するために使用され得る。
図6Aは、本発明の例において、サーフェル定義は、また、表面の色(「Colour:R,G,B;」--この場合、RGB色空間が使用されるが、任意の知られている色空間が可能である)、サーフェルに対する重み(「Weight:w;」--これは新しい測定とサーフェルとの融合を行うときに使用される実数であってよい)、サーフェルが最初に生成された時刻を示す初期化時刻(「Init_Time:t0;」)、およびサーフェルが最後に更新されるか、または修正されたときの時刻を示す最終更新時刻(「Last_Modified:t;」)を定義するデータも含む。このモデル表現内のサーフェルは、サーフェルが最後に更新されるか、または修正された(たとえば、データ融合のためにそれに関連付けられている生イメージデータ値を有した)ときから経過した時間がδ
tよりも大きいときに非アクティブとして宣言され得る。サーフェルの属性を定義するデータは、実装に応じて追加されるか、修正されるか、または省略され得ることは理解されるであろう。
図6Aに示されているように、複数のサーフェルは、リスト内で定義され得る(たとえば、例の中の「{…}」の間で)。
【0091】
図7は、いくつかの実装において使用され得る位置合わせエンジン710の追加の特徴の例700を示している。
図7において、以前に説明された位置合わせエンジン370または560のうちのどれかと同じ機能性を有し得る、位置合わせエンジン710は、データストレージデバイス720に通信可能に結合される。データストレージデバイス720は、時間の経過とともに三次元モデルの表現730(「ε」)を記憶する。これらの表現730は、アクティブモデルフレームAMF
tの表現を含むものとしてよいが、それはモデルエンジンによって生成されるからであり、たとえば、深度データ
【0095】
の表現を含み得る。ある場合には、表現は、アクティブモデルフレームの圧縮および/またはダウンサンプリング表現であってよい。マッピングされた表面がないアクティブモデルフレーム内の予測されたビューの部分は、いくつかの場合に、イメージデータからの現在のフレームを使用し塗りつぶされるものとしてよい。いくつかの場合において、表現は、アクティブモデルフレームのファーン符号化(fern-encoding)を含み得る。ファーン符号化は、B. Glocker、J. Shotton、A. Criminisi、およびS. Izadiによる論文「Realtime RGB-D camera relocalization via randomized ferns for keyframe encoding」、TVCG、2014年9月、において説明されている。ファーンはRGB-Dイメージを固定されたピクセル配置の集合内のRGB-Dチャネルの各々でのバイナリテストの値から構成されるコード列として符号化する。本発明の例は、イメージデータとは反対に、予測されたビューが記憶されるという点でその論文とは異なる。各表現は、ファーン符号化列、深度データのダウンサンプリングされた予測されたフレーム、測光データのダウンサンプリングされた予測されたフレーム、現在の姿勢推定、および表現に対する初期化時刻のうちの1つまたは複数に関連付けられているデータを含み得る。ダウンサンプリングされたフレームサイズ、たとえば、80×60が使用されてよい。
【0096】
図7の例では、アクティブモデルフレームAMF
tは、位置合わせエンジン710によって受信される。次いで、アクティブモデルフレームAMF
tとデータストレージデバイス720内の表現730のうちの1つとの合致が試みられる。たとえば、新しい表現が、受信されたアクティブモデルフレームAMF
tから生成され、データストレージデバイス720に記憶されている表現730と比較されるものとしてよく、たとえば、合致はファーン符号化表現を使用して実行され得る。合致は、比較関数の出力によって指示されてよく、たとえば、誤差または合致イメージングメトリックが、比較されたフレームまたは表現の間の類似度を指示し得る。たとえば、比較は、ファーン符号化同士の間で行われ得る。この場合、ファーン符号化は、2進コードを含むものとしてよく、2つのイメージが、2つの2進コードの間の「距離」を総和することによって比較され得る。最小距離は、「最良」の合致とみなされ、距離は、合致が「良い」かどうかを決定するために閾値と比較され得る。アクティブモデルフレームAMF
tは、合致を実行するためにダウンサンプリングされてよく、たとえば、ファーン符号化が、ダウンサンプリングされたフレーム上で実行されてよい。この場合、合致している記憶されている表現ε
jを指示するために、最良の合致を指示するメトリック値(たとえば、差または誤差を指示するイメージングメトリックの最低値)が使用されてよい。記憶されている表現、さらには合致に使用されるデータを有すること(たとえば、ファーン符号化)は、モデルフレームの表現、たとえば、
【0100】
も含み得る。ある場合には、最良の合致に対するイメージングメトリック値は、合致が有効であるかどうかを決定するために事前定義済み閾値とさらに比較され得る。たとえば、「最良」の合致であっても、実際の合致は低い場合があり、たとえば、高い合致誤差を有することがあり、そこで、閾値比較は、これらのあまりよくない合致の使用を回避する。ダウンサンプリングは、比較的「粗い」合致が見つかり、正しいかのように位置合わせエンジン710によって使用されてよく、次いで、その後のアクティブモデルフレームおよび非アクティブモデルフレームは、
図5で実行されているような整列を可能にする十分な近さになり、たとえば、より正確な「局所的」ループ閉鎖が可能なように「大域的」ループ閉鎖に従って十分に整列する。
【0101】
ある場合には、合致が見つからない場合、たとえば、合致するイメージングメトリックが所与の誤差閾値よりも高い場合、アクティブモデルフレームAMF
tおよび非アクティブモデルフレームの位置合わせが、たとえば、
図5に示されているように実行される。その一方で、「最良」の合致が見つかった場合、たとえば、合致するイメージングメトリックもまた所与の誤差閾値よりも低い場合、合致する表現ε
jは、データストレージデバイス720から取り出され、位置合わせエンジン710によってアクセスされる。次いで、位置合わせエンジン710は、
図5に関して説明されているのと似た整列オペレーションを指令するように構成されるが、しかしながら、本発明の場合には、整列は、アクティブモデルフレームAMF
tと合致する表現ε
iとの間で実行される。たとえば、アクティブモデルフレームの構成要素、たとえば、
【0105】
は、合致する表現ε
jの構成要素、たとえば、
【0109】
と整列され得る。ある場合には、整列メトリックが評価され、閾値と比較されて、整列が実行されるべきかどうかを決定し、たとえば、整列を続けるには、事前定義された閾値と比較して不整列が低いレベルであることが必要である。整列が実行されるべきでない場合、位置合わせエンジン710は、
図5を参照しつつ説明されているようにアクティブモデルフレームおよび非アクティブモデルフレームの整列を実行することを試み得る。整列が実行されるべきである場合、位置合わせエンジン710は、既存の三次元モデル750を変形するようモデルデフォーマー(model deformer)740に指令し、たとえば、アクティブモデルフレームの構成要素を合致する表現の構成要素と整列させる働きをする三次元内の変形を決定するように配置構成され得る。いくつかの場合において、「大域的ループ閉鎖」と考えられ得る、この整列の後に、三次元モデルのアクティブ部分および非アクティブ部分は、更新されない。これは、この整列によりアクティブ部分および非アクティブ部分が
図5に示されている位置合わせが実行され得るように(たとえば、「局所的ループ閉鎖」が次のフレーム上で正常に実行され得るように)より大きく整列されるからであり得る。これらの部分を更新しないことでも、その後の位置合わせオペレーションにおいて、潜在的に不正確な整列が補正または復旧されることが可能である。この整列に続いて、現在の姿勢推定P
tも、変換を表現に関連付けられている姿勢推定に適用することによって(たとえば、
【0114】
本発明の例において、モデルデフォーマー740は、既存の三次元モデル750にアクセスし、変形グラフ760を使用してこのモデルを変形して整列された三次元モデル770を生成するように配置構成される。変形グラフ760は、既存の三次元モデル750の分散された位置要素に関連付けられているノードおよびエッジの集合を含む。ある場合には、各ノードは、タイムスタンプ、三次元における位置、変換定義、および近傍の集合を含み得る。各ノードの近傍は、方向付けられ得る、グラフのエッジを構成する。この方式で、変形グラフは、モデルの変形が実行されるときに互いに影響を及ぼす三次元モデルの部分を接続する。近傍の数は、制限されてよく、たとえば、一実装では、4つの近傍に制限され得る。変換定義は、たとえば、3×3行列(恒等行列に初期化される)および3×1ベクトル(ゼロに初期化される)によって、または双対四元数によって表されるような、アフィン変換の定義を含み得る。変形を実行するときに、各ノードの変換定義は、表面制約条件の集合に従って最適化され得る。変形が適用されるときに、三次元モデルの特定の位置要素に対するグラフ内の影響のあるノードの集合が識別される。これに基づき、三次元モデルの位置要素の位置は、変換された影響のあるノードの加重総和、たとえば、現在の位置要素からのそれらのノードの位置の距離に従って影響のあるノードの各々に適用される変換定義の加重総和に基づき変形され得る。
図6Aおよび
図6Bを参照しつつ説明されているように、表面要素モデルを使用したときに、表面要素の位置および法線は両方とも、この方式で変形されてよい。たとえば、変形グラフ内のノードは、それらの初期化時刻に基づき表面要素に関連付けられ得る。次いで、これらのノードのリストは、このタイムスタンプによってをソートされ得る。表面要素に対して変形が指令されたときに、ノードのこのリストに二分探索法が実行され、一時的に近くにあるノードの集合に値を入れるものとしてよい。この集合から、距離メトリックに基づき表面要素に対してk最近ノードの集合が決定される。次いで、これらのノードは、要素を変形するために使用される。このプロセスは速く、リアルタイムまたはほぼリアルタイムの実行を可能にするのを助ける。
【0115】
一例では、変形グラフは、フレーム毎に構築されてよい。ある特定の場合において、三次元モデルに対する新しい変形グラフは、イメージデータの各フレーム(すなわち、F
tまたはID
t)について構築されてよい、これは、変形グラフ、たとえば、各グラフノードに対する近傍の集合の接続性を決定するステップを含む。ある場合には、変形グラフは、三次元モデルを使用して初期化される。たとえば、フレームに対するノード位置は、三次元モデル内の位置要素の位置(たとえば、サーフェルモデル内のp)から決定されてよく、ノードタイムスタンプは、位置要素タイムスタンプに設定され得る(たとえば、
図6Aの「Init_Time」)。ある場合に、変形グラフに対するノードは、三次元モデル内の位置要素の、システマティックサンプリングなどのサンプリングに基づき生成され得る。このサンプリングは、母集団上に一様に分布するものとしてよく、これは変形グラフの空間的密度が三次元モデルのものを正確に反映することを引き起こす。サンプリングされたノードの集合は、ノードタイムスタンプに基づき順序付けられ得る。これに続き、変形グラフの接続性は、時刻情報を使用して決定され得る。ある場合に、たとえば、ノードタイムスタンプに基づき時間的な近傍であるノードの集合が選択され得る。たとえば、4つの近傍があり、所与のノードが考察されている場合に、前の2つのタイムスタンプ(時間順序付けされたリスト内の)を有するノードおよびその後の2つのタイムスタンプ(リスト内の)を有するノードは、所与のノードの近傍として選択され得る。これは、計算効率が良く、三次元モデルの時間的に無相関である領域が互いに影響を及ぼすのを防ぐ(たとえば、アクティブ領域が非アクティブ領域に影響を及ぼすのを防ぐ)という利点を有する。たとえば、共通の三次元空間の複数のパスに関連付けられている変形グラフは、空間的に考えられたときに複雑に入り組んでいることがあるが、しかしながら、グラフを順序付けし、時間的に考えることで、複数のパスを、共通の要素を持たないようにし、自由に整列させることができる。これは、たとえば、姿勢グラフを使用する場合に、姿勢時刻に基づきグラフ接続性を決定する比較方法とは対照的であり得る。
【0116】
次に、変形グラフ760を使用して既存の三次元モデル750を変形し、変形されたモデル770を生成するためにモデルデフォーマー740によって適用され得る例示的なプロセスについてより詳しく説明する。モデルデフォーマー740は、既存の三次元モデル750の所与の位置要素にアクセスすることから始まる(たとえば、
図6Aを参照しつつ説明されているようなサーフェル定義または別のボクセルベースの定義)。第1のオペレーションとして、モデルデフォーマー740は、所与の位置要素に時間的に最も近い変形グラフ760のノードの配置を特定する。時刻分離は、変数として記憶される。次に、モデルデフォーマー740は、たとえば、事前定義済みの数の探索するノードに対して時刻分離から離れる、時間的に近くにあるノードの配置を特定する。次いで、これらの近くにあるノードは、所与の位置要素の位置を参照しつつユークリッド距離などの距離メトリックによってソートされ得る。次いで、たとえば、上で説明されている近傍限界を使用して、所与の数の「近傍」ノードが最近kノードとして選択され得る。次いで、これらの近傍の各々に対する重みの集合が、ノードと所与の位置要素との間の正規化された距離に基づき生成され得る。重みの総和も決定され得る。次いで、最後のオペレーションとして、近傍に対する変換定義が、各近傍に対する個別の計算された重みを介して加重され、重みの総和によって正規化されるものとして適用され得る。これは、所与の位置要素の位置および法線ベクトルを変形するために所与の位置要素を参照しつつ上で説明されているアフィン変換に対する変数を適用するステップを含み得る。
図6Aの表面要素の場合において、所与の位置要素の他の態様は同じままである(たとえば、変形されたモデル770にコピーされてよい)。
【0117】
一例において、位置合わせエンジン370、510、または710を用いて実行される整列は、モデルデフォーマー740を使用して実行される。この例では、これは変形グラフ760のパラメータを最適化することによって達成される。最適化は、位置合わせエンジン370、510、または710の出力に基づき設定される表面対応関係の集合を与えられた場合に三次元モデル内の表面位置合わせを反映し得る。これらの表面対応関係は、第1の時刻での特定のソース位置が第2の時刻での特定のデスティネーション位置に到達するか、または一致するべきであることを指示し得る。各個別表面対応関係は、絶対(変形された位置を三次元空間内の絶対位置に関係付ける)または相対(変形された位置を異なる変形された位置に関係付ける)のいずれかとしてよい。アクティブフレームおよび非アクティブフレームを整列させるときに(たとえば、
図3および
図5を参照しつつ説明されているように)、ソース点は、アクティブモデルフレーム内の1つの点を表すものとしてよく、デスティネーション点は、モデルのアクティブ部分および非アクティブ部分を整列させる働きをする、非アクティブモデルフレーム内の1つの点を表し得る。たとえば、第1の時刻は、所与の非アクティブモデルフレームを生成するために使用される非アクティブモデル位置要素に対する初期化の時刻を含むものとしてよく、第2の時刻は、現在のフレーム時刻であってよく、ソース点は、現在の姿勢推定P
tに基づいて見たときに、アクティブモデルフレームを生成するために使用される(たとえば、
【0119】
を計算するために使用される)サンプリングされた位置要素であってよく、デスティネーション点は、現在の姿勢推定P
tに加えて三次元における定義済み変換Hに基づいて見たときに、アクティブモデルフレームを生成するために使用される(たとえば、
【0121】
を計算するために使用される)サンプリングされた位置要素であってよい。この場合に、デスティネーション点は、モデルのアクティブ部分を非アクティブ部分上にマッピングするために計算された定義済み変換(H)を適用しているときに、非アクティブモデルフレーム内の1つの点に相当し、たとえば、変換は
図5の位置合わせエンジン560によって実行される整列の少なくとも一部である。これらの表面対応関係は、「局所的ループ閉鎖」を適用するために使用され得る。同様に、アクティブフレームを記憶されている表現と整列させるときに(たとえば、
図7を参照しつつ説明されているように)、第1の時刻は、記憶されている表現に対する初期化の時刻を含むものとしてよく、第2の時刻は、現在のフレーム時刻であってよく、ソース点は、現在の姿勢推定P
tに基づいて見たときに、アクティブモデルフレームを生成するために使用される(たとえば、
【0123】
を計算するために使用される)サンプリングされた位置要素であってよく、デスティネーション点は、表現に対する姿勢推定に加えて三次元における定義済み変換Hに基づいて見たときに、アクティブモデルフレームを生成するために使用される(たとえば、
【0125】
を計算するために使用される)サンプリングされた位置要素であってよい。ここでもまた、定義済み変換がアクティブモデル部分に適用されるときに、デスティネーション点は、アクティブモデルおよび非アクティブモデルの整列を表す。これらの表面対応関係は、「大域的ループ閉鎖」を適用するために使用され得る。表面対応関係は、たとえば、使用されるフレームに対する、ピクセルのサンプリングされた集合について計算され得る。これらの場合に、整列または位置合わせは、表面対応関係の集合に対する三次元における定義済み変換を解決するステップを含み得る。
【0126】
上の例では、表面対応関係は、変形グラフのパラメータの最適化のために1つまたは複数のコスト関数において使用され得る。たとえば、1つのコスト関数は、変形されたソース点(たとえば、変形グラフを適用するとき)とデスティネーション点との間の距離誤差の総和に等しい誤差関数を含むものとしてよく、ソース点およびデスティネーション点は表面対応関係において使用される点である。本明細書で説明されているような三次元モデルの時間的パラメータ化は、三次元空間の同じ部分の複数のパスを非剛体的に変形して整列させ、モデリングを続けさせ、三次元モデルの再訪された領域内への新しいデータ融合を行わせることを可能にする。別のコスト関数は、三次元モデルの非アクティブ部分を適所に「ピン留め」する、すなわち、モデルのアクティブ部分を非アクティブ部分に変形するためにも使用され得る。このコスト関数は、変形されたソース点(たとえば、変形グラフを適用するとき)と変形されていないデスティネーション点との間の距離誤差の総和に等しい誤差関数を含むものとしてよく、デスティネーション点は表面対応関係において使用される点である。別のコスト関数も、三次元モデルの以前に位置合わせがなされた領域を適所に保持するために使用され得る、すなわち、マップの異なる領域を変形するときに、以前に位置合わせがなされた領域の相対位置は、同じままであるように制約される必要があるものとしてよい。このコスト関数は、変形されたソース点(たとえば、変形グラフを適用するとき)と変形されたデスティネーション点との間の距離誤差の総和に等しい誤差関数を含むものとしてよい。このコスト関数は、ループ閉鎖およびその関連付けられている変形が三次元モデルの以前に位置合わせがなされた領域を引き離すのを防ぐ。誤差関数は、変形グラフの定義済み変換における剛性を最大化し(たとえば、転置行列を掛けた変換と恒等行列との間の距離メトリックを最小化することによって)、滑らかな変形を確実にする(たとえば、近傍変換を組み込んだ距離メトリックに基づく)ように定義され得る。これらの説明されている誤差関数のうちの1つまたは複数は、変形グラフに対する変換定義を決定するように最小化され得る(たとえば、加重和内で)。たとえば、ガウス-ニュートン反復法を、疎コレスキー分解と一緒に使用することで、処理ユニット上で連立方程式を解くことができる。グラフィカルプロセッシングユニットは、実装において利用可能であれば、変形グラフを三次元モデルに適用するために使用され得る。これは、グラフィカルプロセッシングユニット上で並列実行されてよい。いくつかの場合において、コスト関数のうちの1つまたは複数は、整列が実行されるべきかどうかを決定するメトリックを生成するために使用され得る。たとえば、コスト関数のうちの1つまたは複数が事前定義された閾値よりも低い誤差値を出力する場合(たとえば、コスト関数が変形されたソース点とデスティネーション点とを比較するなど)、整列は受け入れられ、誤差値が事前定義された閾値よりも高い場合、整列は却下される(等しい場合が適宜割り当てられる)。
【0127】
上で説明されているいくつかの装置構成要素は、入ってくるイメージデータの測光および幾何学的フレーム-モデル間追跡および融合を使用して三次元空間の密マップまたはモデルを生成する。いくつかの構成要素は、モデル-モデル間追跡または「局所的ループ閉鎖」をさらに使用して、三次元モデルの一部分、たとえば、三次元空間の領域の繰り返されるパスまたはビューを表す部分を整列させる。整列は、非剛体的空間変形を使用して達成され得る。いくつかの構成要素は、また、「大域的ループ閉鎖」を解決するために予測された表面外観ベースの場所認識オペレーションを使用し得る。これらの構成要素では、大域的に一貫している密三次元モデルは、たとえば、サーフェルを使用して、姿勢グラフを使用せずに、たとえば、イメージデータのキーフレームに関するキャプチャデバイスの姿勢をモデリングするために使用される別個のグラフ構造を使用せずに、生成されるようにできる。したがって、これらの構成要素を組み込んでいる装置は、リアルタイムまたはほぼリアルタイムの密同時配置およびマッピングを実行することができ、オペレーションは2つの別個のオペレーションとして実行されるのではなく実際に同時である。
【0128】
図8は、三次元空間のモデルを更新する方法800を示す。この方法は、上で説明されているいくつかのオペレーションを適用し得る。ブロック810で、キャプチャデバイスによる三次元空間の観測結果を表すイメージデータが取得される。これは、他にもあるがとりわけ、ライブビデオストリーム、静止画の集合、および/またはビデオファイルからのイメージデータのフレームを受信するステップを含み得る。イメージデータは、深度データおよび測光データ、たとえば、色データのうちの1つまたは複数を含み得る。ブロック820で、三次元空間の三次元モデルは、取得されたイメージデータから計算される。三次元モデルがすでに、たとえば一部だけでも、存在している場合、これは、モデルを取得するステップと、データを更新するか、またはモデルに追加するステップを含み得る。三次元モデルが存在していない場合、これは、モデルを初期化するステップと、モデル表現をブートストラップするステップとを含み得る。いくつかの場合において、ブロック820は、上で説明されているようなデータ融合オペレーションを含み得る。ブロック830で、三次元モデルは、少なくとも1つのモデル特性に基づき少なくともアクティブ部分と非アクティブ部分とにセグメント分割されるか、または分類される。少なくとも1つのモデル特性は、初期化もしくはモデル更新の時刻および/または幾何学的尺度、たとえば、キャプチャデバイスとシーンとの間の距離、事前定義済み位置からの距離、および/または事前定義済みの向きからの回転の角度を含み得る。
【0129】
ブロック840で、アクティブモデル部分と非アクティブモデル部分との間の比較が行われる。イメージデータがキャプチャされるか、または受信されたイメージデータの第1の集合を表す場合、この段階で非アクティブ部分はないものとしてよく、整列は行われ得ず、方法はブロック810にループバックする。これがその場合であれば、ブロック810、820、および830が繰り返されるものとしてよい。
【0130】
方法が繰り返されるときに、ブロック820で、三次元モデルのアクティブ部分のみが、たとえば、ブロック830でのセグメント分割またはパーティション分割に続いて、イメージデータを使用してモデルを更新するために使用される。ブロック820は、モデルのアクティブ部分の予測されたフレームまたはビューを決定するステップと、これらを使用してフレームに対するキャプチャデバイスの姿勢を決定し、イメージデータの第2の集合をモデルと融合させるステップ(たとえば、モデルのアクティブ部分のみがデータ融合に続いて更新され得る)とを伴うものとしてよい。
【0131】
この方法が繰り返されると、キャプチャデバイスの動きに続いて三次元空間の観測を表すイメージデータがブロック810で取得され得る。たとえば、キャプチャデバイスは、運動中であり、三次元空間の複数のパスを記録するものとしてよく、各パスは、配置および/または向きの異なる集合から記録され得る。イメージデータが三次元空間の所与の領域の再訪または再観測を表す場合、ブロック840において、モデルの以前から存在している非アクティブ部分と対応するモデルのアクティブ部分があり得る。たとえば、これらは、三次元における共通位置に対する新規に作成されたモデル要素および以前に作成されたモデル要素であるものとしてよい。いくつかの場合において、ブロック840は、アクティブモデルおよび非アクティブモデルの両方に基づき生成される予測されたフレームまたはビューを比較するステップと、一方を他方にマッピングする変換(たとえば、H)を決定するステップとを伴い得る。ある場合に、上で説明されているような変形グラフからの1つまたは複数のコスト関数の結果は、ブロック840において対応関係があるかどうかを決定するためのメトリックとして使用され得る。たとえば、変換が決定されるが、誤差メトリックは、これがモデルの一貫性における誤差増大につながることを指示している場合、この方法は、ブロック810にループし得るが、しかしながら、誤差メトリックが事前定義済みの閾値より低い場合、方法はブロック850に進むものとしてよい。
【0132】
ブロック840におけるチェックが、アクティブ部分および非アクティブ部分が対応していること、たとえば、所与の誤差限界を超えることなく一方に基づくフレームは、他方に基づくフレームと整列され得ることを指示する場合、ブロック850で、更新された三次元モデルのアクティブ部分は、三次元モデルの対応する非アクティブ部分との位置合わせを行われる。これは、決定された変換を適用してアクティブ部分および非アクティブ部分を整列させるステップを含み得る。ある場合に、これは、変換を適用して、キャプチャデバイスの向きおよび配置の現在の推定を使用してアクティブ部分および非アクティブ部分の各々から生成されるような、たとえば、変形グラフに基づき最適化された変形オペレーションを使用して適用されるような、予測されたビューまたはフレームを整列させるステップを含み得る。こうして、ブロック850での位置合わせで、三次元空間の領域の観測に続いて生成される三次元モデルのアクティブ部分が前記領域の少なくとも1つの前の観測に続いて生成されるモデルの非アクティブ部分と整列させられる。ブロック850での位置合わせは、たとえば、誤差メトリックが事前定義済み閾値よりも低いことに基づき、位置合わせに関連付けられているコスト関数が整列が可能である場合にのみ実行され得る。
【0133】
図9は、キャプチャデバイスの姿勢を推定する方法900を示す。この方法は、
図8のブロック810および820の一部として使用され得る。ブロック910で、イメージデータが取得される。このブロックは、ブロック810を実装するものとしてよい。この場合、イメージデータは、イメージデータのフレームを含み得る。ブロック920で、モデルフレームが決定される。この場合のモデルフレームは、三次元空間の三次元モデルのアクティブ部分から導出される。たとえば、これは、モデル空間内の定義済み平面上へのモデル内の点の投影または「スプラッター(splatter)」を示すデータを含み得る。ブロック930で、ブロック910において取得されたイメージデータを生成するために使用されるキャプチャデバイスの姿勢が推定される。これは、たとえば、ライブカメラおよび/またはメディアファイルからブロック910で受信されるような、前記イメージデータの提供されるフレームに対するデータをモデルフレームに対する予測されたデータと比較することによって実行される。たとえば、これは、
図5のフレーム-モデル間追跡構成要素515を参照しつつ説明されているように実行され得る。ブロック930は、時刻t-1に対するモデルフレームからのデータを時刻tに対するイメージフレームデータと比較するステップを含み得る。アクティブモデル部分の点を投影するか、または「スプラッター」するために使用される定義済み平面は、たとえば、時刻t-1に対する、以前の姿勢推定を含み得る。
【0134】
図9の場合、キャプチャデバイスの推定される姿勢は、ブロック850における位置合わせオペレーションにおいて使用され得る。これは、キャプチャデバイスの姿勢を使用してアクティブ部分および非アクティブ部分に対する三次元モデルの予測されたレンダリングを決定するステップと、予測されたレンダリングが整列されるようにアクティブ部分を変換するステップとを含み得る
【0135】
ある場合に、イメージデータは、複数のイメージ要素に対するキャプチャデバイスからの距離を指示する少なくとも深度データを含み、キャプチャデバイスの姿勢を推定するステップは、前記イメージデータの提供されるフレームに対する少なくとも深度データをモデルフレームに対する予測された深度データと比較するステップを含む。それに加えて、または代替的に、イメージデータは、複数のイメージ要素に対する少なくとも色データを含むものとしてよく、キャプチャデバイスの姿勢を推定するステップは、前記イメージデータの提供されるフレームに対する少なくとも色データをモデルフレームに対する予測された色データと比較するステップを含み得る。ある場合に、キャプチャデバイスの姿勢を推定するステップは、誤差関数を最小化するステップを含む。この場合、誤差関数は、前記イメージデータの提供されたフレームに対する深度データとモデルに対する予測された深度データとの比較に基づく幾何学的誤差、および前記イメージデータの提供されたフレームに対する色データとモデルフレームに対する予測された色データとの比較に基づく測光誤差の関数であってよい。類似の誤差関数は、ブロック850でアクティブ部分および非アクティブ部分の位置合わせを行う変換を決定するときにも使用され得る。
【0136】
一例では、三次元モデルのアクティブ部分と三次元モデルの非アクティブ部分との位置合わせを行うステップは、所与のフレームに対する三次元モデルのアクティブ部分と所与のフレームに対する三次元モデルの非アクティブ部分との間の整列メトリックが事前定義された閾値よりも低い不整列を指示する場合に局所的ループ位置合わせを実行するステップを含む。たとえば、整列メトリックは、アクティブモデルフレームを非アクティブモデルフレームにマッピングするために使用される変換を含む表面対応関係を有する変形を適用した結果であるコスト関数であってよい。局所的ループ位置合わせは、変形グラフを使用してアクティブ部分および非アクティブ部分を変形させることによって変換を適用するステップを含み得る。
【0137】
一例において、ブロック820は、三次元モデルの表現を記憶するステップを含み得る。これは、ファーン符号化表現であってよい。この場合には、方法800は、三次元モデルの現在の表現が三次元モデルの以前に記憶された表現と合致している場合に大域的ループ位置合わせを実行するステップをさらに含み得る。大域的ループ位置合わせは、変形グラフを使用してアクティブ部分および非アクティブ部分を変形させるステップを含み得る。この場合において、三次元モデルの表現は、予測されたフレームのより低い分解能の表現を含むものとしてよく、予測されたフレームは三次元モデルのアクティブ部分からの投影に基づき決定される。変形が適用される場合に、これは、三次元モデルのアクティブ部分を非剛体的に変形するステップを含んでいてよく、これは、アクティブ部分および非アクティブ部分に対する予測されたフレームデータの間の幾何学的整列を条件として実行され得る。
【0138】
いくつかの実装において、三次元モデルは、たとえば、
図6Aおよび
図6Bを参照しつつ説明されているように、表面要素モデルを含み得る。ブロック830で三次元モデルをセグメント分割するステップは、三次元モデルにおける所与の位置に対するモデル生成の時刻、三次元モデルにおける所与の位置に対するモデル更新の時刻、および三次元モデルにおける所与の位置とキャプチャデバイスとの間の決定された距離のうちの1つまたは複数に基づき三次元モデルをセグメント分割するステップを含み得る。
【0139】
いくつかのテスト事例において、局所的ループ位置合わせが、大域的ループ位置合わせよりも頻繁に実行されることがわかっている(たとえば、10または20-1の比)。大域的ループ位置合わせは、いくつかの場合において実行され得ない(たとえば、必要でない場合があるか、または見つけられない場合がある)。局所的ループ位置合わせおよび大域的ループ位置合わせの適用は、処理されているイメージデータに依存し得る、たとえば。キャプチャデバイスを使用する観測の軌跡に依存し得る。いくつかのテスト事例において、フレームの数が10
3のオーダーであり、位置要素(たとえば、サーフェル)の数が10
6のオーダーであり、変形ノードの数および記憶されている表現の数は、10
2のオーダーであった。これらのテスト事例に対するフレーム処理は、現在三次元モデル内にある位置要素の数に応じて、20から40ミリ秒以内であった。これは、処理速度が30Hzまたはフレーム毎秒程度であった。これらのテスト事例において、テストプラットフォームは、32GBのメモリを搭載した3.4GHzのIntel(登録商標) Core i7-4930Kプロセッサおよび3GBのメモリを搭載したnVidia(登録商標) GeForce(登録商標) GTX 780 Tiグラフィカルプロセッシングユニットを利用した。
【0140】
図10は、三次元空間の三次元モデルを更新するための例示的なプロセス1000をより詳しく示している。このプロセス1000は、
図5に示されている構成要素と対応しているように見えてよい。ブロック1005で、深度および色フレームは、キャプチャデバイスから受信される。ブロック1010で、三次元モデルのアクティブ部分に基づく予測されたフレームが生成される。これは、サーフェル定義を処理するステップと、たとえば、現在の時刻に関して、特定の時間窓内の最終更新タイムスタンプとともにサーフェルのみを使用するステップとを含み得る。これは、時刻t-1におけるキャプチャデバイスに対する姿勢推定を使用するステップをさらに含むものとしてよく、たとえば、「アクティブ」と分類される位置要素が平面上に投影され、時刻t-1にキャプチャデバイスによって見ることができる領域の配置および向きを指示する。ブロック1015で、フレーム-モデル間追跡が実行される。これは、ブロック1005および1010から受信されたデータを比較することによって現在時刻に対する姿勢推定を決定するステップを含み得る。ブロック1020で、現在の時刻に対する決定された姿勢推定は、予測された深度および色フレームを更新し、たとえば、「アクティブ」として分類される位置要素を平面上に投影し、現在の姿勢推定によって指示されているように時刻tでキャプチャデバイスによって見ることができる領域の配置および向きを指示するために使用され得る。
【0141】
1025で、更新された予測された深度および色フレームが記憶されている表現と合致するかどうかに関して決定が行われる。これは、
図7を参照しつつ説明されている比較を含み得る。特定の記憶されている表現とも合致が見つかった場合、ブロック1030で、特定の記憶されている表現に対応する更新された予測された深度および色フレームおよびデータの位置合わせが可能であるかどうかについて決定が行われる。これは、
図7のモデルデフォーマー740を参照しつつ説明されている変形を適用するステップを含み得る。更新された予測されたフレームのうちの1つまたは複数における点を記憶されている表現に制約する表面対応関係を与えられているとすると、1つまたは複数のコスト関数の出力が変形グラフを使用した変形が所与の閾値よりも高い誤差の結果であることを指示している場合、決定は否定的であるものとしてよく、そうでない場合には、決定は肯定的であるものとしてよい。ブロック1030における決定が否定的である、たとえば、記憶されている表現と更新された予測されたフレームとの間に可能な位置合わせがないとみなされる場合、方法は1035に進み、深度および色データの非アクティブモデルフレームが生成される。ブロック1030における決定が肯定的である、たとえば、記憶されている表現と更新された予測されたフレームとの間に可能な位置合わせがあるとみなされる場合、三次元モデルは、ブロック1040で変形される。これは、最適化された変形グラフを適用するステップを含むものとしてよく、最適化は、前述の表面対応関係によって制約され、最適化は、1つまたは複数の誤差関数を最小化し、変形グラフのノードによって適用されるべき変換定義を決定する。
【0142】
ブロック1035で、深度および色データの非アクティブモデルフレームが生成される。ブロック1045で、ブロック1020における更新された予測されたフレームとブロック1035で生成された非アクティブモデルフレームとの間で位置合わせが行われ得るかどうかについて決定が行われる。ブロック1045は、現在の姿勢推定に関連して2つの部分の各々から生成された予測されたビューを指示するデータに基づき非アクティブモデル部分を有するアクティブモデル部分の位置合わせが可能であるかどうかを効果的に決定する。ブロック1045における決定は、たとえば、幾何学的誤差および/または測光誤差を決定することによって、ブロック1015におけるフレーム-モデル間追跡の一部として適用される技術を使用して予測されたビューの2つの集合の比較に基づくものとしてよい。ある場合に、他にもメトリックはあるがとりわけ、幾何学的誤差および/または測光誤差を含む加重誤差関数の出力が使用され、ブロック1045で決定を行うものとしてよく、たとえば、誤差が所与の閾値未満である場合に位置合わせが可能であるとみなされる。誤差関数に対する共分散尺度の固有値も評価され、たとえば、閾値と比較され、決定を行い得る。ブロック1045は、たとえば、姿勢を推定する際に使用するための変換を決定するために同様の方式で、予測されたフレームを互いの上にマッピングする変換を決定するステップも含み得る。この変換は、ブロック1030で行われたのと同様の決定で使用され得る、すなわち、最適化を制約するために使用される表面対応関係の一部をなすものとしてよく、これは、モデルの位置合わせが可能であるかどうかを決定するために使用されるメトリックに寄与し得る。
【0143】
ブロック1045で決定が肯定的である場合、モデルのアクティブ部分および非アクティブ部分の変形は、ブロック1040で実行される。これは、ブロック1045の評価の一部として決定される変換を適用するステップを含み得る。ここでまた、ブロック1040は、変形パラメータの集合を、たとえば、最適化の結果として、決定するステップを含むものとしてよく、それらのパラメータは、変形グラフの一部をなすものとしてよい。ブロック1040は、グラフを使用してそれらのパラメータを適用し三次元モデルを構成する点を変形させるステップを含み得る。ブロック1040の出力は、すべての見える非アクティブ位置要素、たとえば、非アクティブモデルフレーム内で見えるものをアクティブになるように設定し得る。
【0144】
最後に、ブロック1050で、ブロック1005において受信された深度および色フレームがブロック1040の結果得られる変形されたモデルと融合される。ブロック1045における決定が否定的である場合、モデル変形は実行され得ず、イメージデータは変形されていないモデルと融合され得る。
【0145】
ブロック1050に続いて、イメージデータのその後のフレームについてこの方法が繰り返され、たとえば、ブロック1005に戻り、深度および色データの次のフレームが受信されるものとしてよい。次いで、ブロック1050で出力される融合されたモデルは、ブロック1010で改訂されたアクティブモデルの深度および色フレームを生成し、たとえば、次のフレームと突き合わせて追跡するために使用され得る。ブロック1010の繰り返しの後、ブロック1025の合致に後で使用するために表現が記憶され得る。
【0146】
上で説明されているいくつかの方法は、きつい局所的ループ閉鎖を達成するために三次元モデルのアクティブ領域をモデルの非アクティブ領域と強く整列させる。これは、表面要素モデルを使用するときの表面に関するものであってよい。モデルのアクティブ部分が非アクティブ部分から遠くまでドリフトしすぎて局所的整列が収束しない場合、外観ベースの大域的ループ閉鎖法が使用され、これにより、たとえば、モデルの表面に関して、きつい大域的ループ閉鎖およびモデル一貫性のためにモデルのアクティブ部分を下にある非アクティブ部分と再整列させる変形をブートストラップし得る。
【0147】
本明細書で説明されているいくつかのシステム構成要素および方法は、非一時的記憶媒体上に記憶可能であるコンピュータプログラムコードを用いて実装され得る。
図11は、コンピュータ読み取り可能な記憶媒体1120からデータを取り出すように配置構成されている少なくとも1つのプロセッサ1110を備えるシステムの特定の例1100を示している。システムは、上で説明されているようなモバイルデバイスまたはロボットデバイスの一部を備え得る。コンピュータ読み取り可能な記憶媒体1120は、コンピュータ読み取り可能な命令1130の集合をそこに記憶して含む。本発明の例におけるコンピュータ読み取り可能な記憶媒体1120は、イメージデータ1140のフレームおよび表面要素定義1150を記憶するようにも構成される。後者の定義1150は、
図6Aに示されているような定義を含み得る。他の例では、構成要素1130、1140、および1150は、別個の媒体に記憶され得る。使用時に、少なくとも1つのプロセッサ1110は、処理のため命令1130をメモリにロードするように構成される。命令1130は、少なくとも1つのプロセッサ1110に一連のアクションを実行させるように配置構成される。これらのアクションは、プロセッサに、命令1160で、複数のフレームを含むイメージデータ1140を取得させるステップを含む。この例では、各フレームは、深度データおよび色データを含み、前記深度データはイメージデータをキャプチャするために使用される撮像デバイスからの三次元空間内の物体の距離を指示する。アクションは、プロセッサに、命令1170において、イメージデータに基づき三次元空間のモデルを表す表面要素定義1150を計算させるステップをさらに含み、モデルは複数の要素を含み、各要素は三次元における位置を有する。
【0148】
ある場合に、命令1170は、定義1150内の表面要素が最後に更新された時刻などの、各部分に対する少なくとも1つの観測特性に基づきモデルをアクティブ部分と非アクティブ部分とにセグメント分割する少なくとも1つのサブ命令を含む。命令1170は、また、イメージデータ内の所与のフレームについて、所与のフレームに対する深度データおよび色データをモデルから導出されたモデルフレームに対する予測された深度および色データと比較することによって撮像デバイスの推定された姿勢を決定するサブ命令と、撮像デバイスの推定された姿勢を使用してモデルフレームに対する予測された深度および色データを更新するサブ命令と、モデルのアクティブ部分および非アクティブ部分のうちの少なくとも一方に関連付けられている要素を変換することによってモデルのアクティブ部分とモデルの非アクティブ部分とを整列させるサブ命令と、所与のフレームに対する深度データと色データとを使用してモデルの整列されたアクティブ部分を更新するサブ命令とを含む。
【0149】
本明細書で説明されているいくつかの例では、三次元空間の詳細三次元モデルを生成または更新する問題に対して、フレーム-モデル間追跡および非剛体的変形と組み合わせた時間窓データ融合を使用したアプローチをとる。多くの小さな局所的モデル-モデル間ループ閉鎖をより大規模な大域的ループ閉鎖と併せて組み込むことによって、モデルの確率分布のモードに近い状態を保つか、または姿勢グラフ最適化もしくは後処理ステップを使用することなくリアルタイムで大域的に一貫性のある再構築をマッピングし、生成することが可能である。たとえば、フレーム毎の、頻繁な非剛体的モデル変形の使用は、カメラの軌跡推定および表面再構築の品質の両方を改善する。このアプローチは、長さ方向に規模が大きい「廊下に似た」カメラの動きおよびよりループの多い包括的な部屋スキャン軌跡の両方においても有効である。
【0150】
上記の例は、例示的であると理解されるべきである。さらなる例も企図される。ある場合に、モデルエンジンは、本明細書で説明されている変形技術を適用し、および/またはモデルセグメンターおよび位置合わせエンジンのうちの1つまたは複数の特定の特徴なしで表面要素モデルを使用するように構成され得る。1つの例に関して説明されている特徴は、単独で、または説明されている他の特徴と組み合わせて使用されてよく、これらの例のうちの他のものの1つまたは複数の特徴と組み合わせて、またはこれらの例の他のものと組み合わせても使用され得ることは理解されるべきである。さらに、上で説明されていない等価形態および修正形態も、本発明の範囲から逸脱することなく採用されてよく、これは付属の請求項において定義される。