(57)【要約】  本明細書で説明されているいくつかの例は、三次元空間をモデリングすることに関する。少なくとも1つのキャプチャデバイスからのイメージデータは、三次元空間の三次元モデルを生成するために使用される。いくつかの例では、三次元モデルは、少なくとも1つのモデル特性に基づきアクティブ部分と非アクティブ部分とにセグメント分割される。これらの例は、アクティブ部分を使用して時間の経過とともに三次元モデルを更新するように構成される。位置合わせは、また、時間の経過とともに三次元モデルのアクティブ部分を三次元モデルの非アクティブ部分と整列させるために実行される。位置合わせは、三次元空間の領域の観測に続いて生成される三次元モデルのアクティブ部分を前記領域の少なくとも1つの前の観測に続いて生成されるモデルの非アクティブ部分と整列させる。
2018520425.tif 000002
【特許請求の範囲】
【請求項１】
三次元空間のモデルを生成するための装置であって、
キャプチャデバイスによって提供されるイメージデータを取得するように構成されたイメージ取得インターフェースであって、前記イメージデータは時間の経過とともに前記三次元空間と前記キャプチャデバイスとの間の相対的移動がある観測を表す、イメージ取得インターフェースと、
前記イメージ取得インターフェースによって取得されたイメージデータを処理し、前記三次元空間の三次元モデルを計算するように構成されたモデルエンジンとを備え、前記モデルエンジンは、
少なくとも1つのモデル特性に基づき前記三次元モデルを少なくともアクティブ部分と非アクティブ部分とにセグメント分割するように構成されたモデルセグメンターであって、
前記モデルエンジンは、前記三次元モデルのアクティブ部分を使用して時間の経過とともに前記モデルを更新するように構成された、モデルセグメンターと、
時間の経過とともに前記三次元モデルのアクティブ部分を前記三次元モデルの非アクティブ部分と整列させるように構成された位置合わせエンジンとを備える、装置。
【請求項２】
前記モデルエンジンは、前記三次元モデルを更新する際に使用するための前記三次元モデルのアクティブ部分からの投影に基づきアクティブモデルフレームを計算するように構成された、請求項1に記載の装置。
【請求項３】
前記アクティブモデルフレームを前記イメージデータから提供されたフレームと比較して、前記三次元モデルのアクティブ部分の前記イメージデータとの整列を決定するように構成されたフレーム-モデル間追跡構成要素を備える請求項2に記載の装置。
【請求項４】
前記フレーム-モデル間追跡構成要素は、現在時刻における前記提供されたフレームを前の時刻におけるアクティブモデルフレームと比較することによって前記キャプチャデバイスの姿勢を推定するように構成され、前記カメラデバイスの姿勢は前記三次元空間内の前記キャプチャデバイスの位置および向きを表す、請求項3に記載の装置。
【請求項５】
前記位置合わせエンジンは、
前記三次元モデルの非アクティブ部分からの投影に基づき非アクティブモデルフレームを計算し、
前記アクティブモデルフレームを前記非アクティブモデルフレームと整列させる変形を決定し、
前記変形を使用して前記三次元モデルを更新するように構成された、請求項2から4のいずれか一項に記載の装置。
【請求項６】
前記三次元モデルは、表面要素モデルを含み、
前記表面要素モデル内の各表面要素は、少なくとも、三次元における前記表面要素の位置を定義するデータと、三次元における前記表面要素に対する法線ベクトルを定義するデータとを含み、
各表面要素は、前記三次元空間内の二次元領域を表す、請求項1から5のいずれか一項に記載の装置。
【請求項７】
前記モデルエンジンは、時間の経過とともに前記三次元モデルの表現を記憶するように構成され、
前記位置合わせエンジンは、所与の時刻における前記三次元モデルの表現が前の時刻に対する三次元モデルの記憶されている表現と合致するかどうかを決定し、肯定的決定に応答して、前記所与の時刻における前記三次元モデルの表現を前記前の時刻に対する三次元モデルの記憶されている表現と整列させるように構成された、請求項1から6のいずれか一項に記載の装置。
【請求項８】
前記位置合わせエンジンは、変形グラフを使用して、前記三次元モデルのアクティブ部分を前記三次元モデルの非アクティブ部分と整列させるように構成され、前記変形グラフは前記三次元モデル内の位置に対する初期化時刻に基づき計算され、前記変形グラフは整列の間に所与の位置において前記三次元モデルを修正するために使用されるべきである三次元内の前記所与の位置に対する近傍の集合を指示する、請求項1から7のいずれか一項に記載の装置。
【請求項９】
前記少なくとも1つのモデル特性は、前記三次元モデルにおける所与の位置に対するモデル生成およびモデル更新の時刻の1つを含み、前記非アクティブ部分は、事前定義された量よりも多い量だけ現在の観測時刻と異なる過去の観測時刻を示す、請求項1から8のいずれか一項に記載の装置。
【請求項１０】
三次元空間のモデルを更新する方法であって、
前記三次元空間の三次元モデルを取得するステップと、
少なくとも1つのモデル特性に基づき前記三次元モデルを少なくともアクティブ部分と非アクティブ部分とにセグメント分割するステップと、
前記三次元空間に関するキャプチャデバイスの相対的動きの後の前記三次元空間の観測を表すイメージデータを取得するステップと、
前記三次元モデルの前記取得されたイメージデータおよびアクティブ部分に基づき前記三次元モデルを更新するステップと、
前記三次元モデルのアクティブ部分を前記三次元モデルの対応する非アクティブ部分と位置合わせするステップとを含み、
位置合わせする前記ステップは、前記三次元空間の領域の観測に続いて生成される前記三次元モデルのアクティブ部分を前記領域の少なくとも1つの前の観測に続いて生成されるモデルの非アクティブ部分と整列させる、方法。
【請求項１１】
前記三次元モデルを更新するステップは、
前記イメージデータの提供されるフレームに対するデータをモデルフレームに対する予測されたデータと比較することによって前記キャプチャデバイスの姿勢を推定するステップであって、前記モデルフレームは前記三次元空間の三次元モデルのアクティブ部分から導出される、ステップを含み、
前記三次元モデルのアクティブ部分を前記三次元モデルの非アクティブ部分と位置合わせするステップは、
前記キャプチャデバイスの姿勢を使用して前記アクティブ部分および前記非アクティブ部分に対する前記三次元モデルの予測されたレンダリングを決定するステップと、
前記予測されたレンダリングが整列されるように前記アクティブ部分を変換するステップとを含む、請求項10に記載の方法。
【請求項１２】
前記イメージデータは、少なくとも、複数のイメージ要素に対する前記キャプチャデバイスからの距離を指示する深度データを含み、
前記キャプチャデバイスの姿勢を推定するステップは、少なくとも前記イメージデータの提供されたフレームに対する深度データをモデルフレームに対する予測された深度データと比較するステップを含む、請求項11に記載の方法。
【請求項１３】
前記イメージデータは、少なくとも、複数のイメージ要素に対する色データを含み、
前記キャプチャデバイスの姿勢を推定するステップは、少なくとも前記イメージデータの提供されたフレームに対する色データをモデルフレームに対する予測された色データと比較するステップを含む、請求項11に記載の方法。
【請求項１４】
前記イメージデータは、少なくとも、複数のイメージ要素に対する深度データおよび色データを含み、前記深度データは前記キャプチャデバイスからの前記三次元空間内の物体の距離を指示し、
前記キャプチャデバイスの姿勢を推定するステップは、誤差関数を最小にするステップを含み、前記誤差関数は
前記イメージデータの提供されたフレームに対する深度データの、モデルに対する予測された深度データとの比較に基づく幾何学的誤差、および
前記イメージデータの提供されたフレームに対する色データの、モデルフレームに対する予測された色データとの比較に基づく測光誤差の関数である、請求項11に記載の方法。
【請求項１５】
前記三次元モデルのアクティブ部分を前記三次元モデルの非アクティブ部分と位置合わせするステップは、
所与のフレームに対する前記三次元モデルのアクティブ部分と前記所与のフレームに対する前記三次元モデルの非アクティブ部分との間の整列メトリックが、事前定義済み閾値よりも低い不整列を指示する場合に局所的ループ位置合わせを実行するステップを含む、請求項10から14のいずれか一項に記載の方法。
【請求項１６】
更新する前記ステップは、前記三次元モデルの表現を記憶するステップを含み、
前記方法は、
前記三次元モデルの現在の表現が前記三次元モデルの以前に記憶された表現と合致している場合に大域的ループ位置合わせを実行するステップを含む請求項10から15のいずれか一項に記載の方法。
【請求項１７】
前記三次元モデルの表現は、予測されたフレームのより低い分解能の表現を含み、前記予測されたフレームは前記三次元モデルのアクティブ部分からの投影に基づき決定される、請求項16に記載の方法。
【請求項１８】
前記三次元モデルは、表面要素モデルを含み、前記表面要素モデル内の各表面要素は、少なくとも、三次元における前記表面要素の位置を定義するデータと、三次元における前記表面要素に対する法線ベクトルを定義するデータとを含み、各表面要素は、前記三次元空間内の二次元領域を表す、請求項10から17のいずれか一項に記載の方法。
【請求項１９】
前記三次元モデルをセグメント分割するステップは、前記三次元モデルを、
前記三次元モデル内の所与の位置に対するモデル生成の時刻、
前記三次元モデル内の所与の位置に対するモデル更新の時刻、および
前記三次元モデル内の所与の位置と前記キャプチャデバイスとの間の決定された距離
のうちの1つまたは複数に基づきセグメント分割するステップを含む、請求項10から18のいずれか一項に記載の方法。
【請求項２０】
前記三次元モデルのアクティブ部分を前記三次元モデルの非アクティブ部分と位置合わせするステップは、
前記アクティブ部分および前記非アクティブ部分に対する予測されたフレームデータの間の幾何学的整列に基づき前記三次元モデルのアクティブ部分を非剛体的に変形するステップを含む、請求項10から19のいずれか一項に記載の方法。
【請求項２１】
ロボットデバイスであって、
深度データおよび色データのうちの1つまたは複数を含む複数のフレームを提供するように配置構成された少なくとも1つのキャプチャデバイスであって、前記深度データは複数のイメージ要素に対する前記キャプチャデバイスからの距離を指示する、キャプチャデバイスと、
前記イメージ取得インターフェースが前記少なくとも1つのキャプチャデバイスに通信可能に結合された、請求項1から9のいずれか一項に記載の装置と、
三次元空間に対して前記ロボットデバイスを移動するように配置構成された1つまたは複数の移動アクチュエータと、
前記1つまたは複数の移動アクチュエータを制御するように配置構成されたナビゲーションエンジンとを備え、
前記ナビゲーションエンジンは、前記モデルエンジンによって生成された三次元モデルにアクセスして前記三次元空間内で前記ロボットデバイスをナビゲートするように構成された、ロボットデバイス。
【請求項２２】
モバイルコンピューティングデバイスであって、
深度データおよび色データのうちの1つまたは複数を含む複数のフレームを記録するように配置構成された少なくとも1つのキャプチャデバイスであって、前記深度データは複数のイメージ要素に対する前記キャプチャデバイスからの距離を指示する、キャプチャデバイスと、
前記イメージ取得インターフェースが前記少なくとも1つのキャプチャデバイスに通信可能に結合された、請求項1から9のいずれか一項に記載の装置とを備えるモバイルコンピューティングデバイス。
【請求項２３】
プロセッサによって実行されたときに、コンピューティングデバイスに三次元空間のモデルを生成する方法を実行させるコンピュータ実行可能命令を含む非一時的コンピュータ読み取り可能な記憶媒体であって、前記方法は
複数のフレームを含むイメージデータを取得するステップであって、各フレームは深度データおよび色データを含み、前記深度データは前記イメージデータをキャプチャするために使用される撮像デバイスからの前記三次元空間内の物体の距離を指示する、ステップと、
前記イメージデータに基づき前記三次元空間のモデルを計算するステップであって、前記モデルは複数の要素を含み、各要素は三次元内の位置を有する、ステップとを含み、
計算する前記ステップは
各部分について少なくとも1つの観測特性に基づき前記モデルをアクティブ部分と非アクティブ部分とにセグメント分割するステップと、
前記イメージデータ内の所与のフレームについて、
前記所与のフレームに対する前記深度データおよび色データを前記モデルのアクティブ部分から導出されたモデルフレームに対する予測された深度および色データと比較することによって前記撮像デバイスの推定された姿勢を決定するステップと、
前記撮像デバイスの前記推定された姿勢を使用して前記モデルフレームに対する前記予測された深度および色データを更新するステップと、
前記モデルのアクティブ部分および非アクティブ部分のうちの少なくとも一方に関連付けられている要素を変換することによって前記モデルのアクティブ部分を前記モデルの非アクティブ部分と整列させるステップと、
前記所与のフレームに対する前記深度データと色データとを使用して前記モデルの整列されたアクティブ部分を更新するステップとを含む非一時的コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元空間をモデリングすることに関する。本発明は、キャプチャデバイスからのイメージデータを使用して三次元空間の三次元モデルを生成すること、または更新することに対する特定の、ただし、排他的ではない、関連性を有する。
【背景技術】
【０００２】
コンピュータビジョンおよびロボット工学の分野では、多くの場合に、三次元空間の表現を構築する必要がある。三次元空間の表現を構築することで、現実世界の環境を仮想またはデジタル世界にマッピングすることができ、これは、電子デバイスによって使用され、操作され得る。たとえば、移動可能なロボットデバイスは、その環境の位置特定およびマッピング、およびしたがってナビゲーションを、同時に行うことを可能にするために三次元空間の表現を必要とし得る。代替的に、三次元空間の表現は、その空間内の物体の三次元モデルを識別し、および/または抽出することを可能にし得る。これらは、現実世界の環境に対して測定を実行するために使用され、および/またはたとえば、付加製造システムを介して、三次元複製物を生産するために使用されるものとしてよい。同様に、三次元空間内の人体の各部の検出は、新規のマンマシンインタラクションを可能にし、それにより、現実世界の中のアクションを使用して物体の仮想表現を操作することを可能にし得る。
【０００３】
三次元空間の表現を構築するために利用可能な技術はいくつかある。たとえば、動きおよびマルチビューステレオからの構造は、これを行うために使用され得る2つの技術である。多くの技術が、たとえば、スケール不変特徴変換(SIFT)および/または高速化ロバスト特徴(SURF)アルゴリズムを使用して、コーナーおよび/またはエッジなどの特徴を三次元空間のイメージから抽出する。次いで、これらの抽出された特徴は、三次元表現を構築するためにイメージからイメージへと相関させられ得る。表現を生成するために数を減らした点または特徴を使用するいくつかの技術は、「疎」技術と称される。たとえば、これらの技術は、10から100個の特徴および/または点を使用して表現を生成し得る。これらは、数千もしくは数百万個の点で表現を生成する「密」技術とは対照的であり得る。「疎」技術は、それらがリアルタイムで、たとえば、毎秒30フレームかそれくらいのフレームレートで実装するのがより容易であるという利点を有し、限られた数の点または特徴を使用することで、三次元表現を構築するのに必要な処理の程度を制限する。比較すると、計算上の要件のせいで三次元空間のリアルタイムの「密」マッピングを実行するのがより困難である。たとえば、三次元空間の「密」マッピングをオフラインで実行することが好ましい場合が多く、たとえば、提供された30分相当のイメージデータから「密」表現を生成するのに10時間を要する場合がある。
【０００４】
移動キャプチャデバイスから三次元空間の表現を生成するときに、空間内のキャプチャデバイスの位置および向きを決定することおよび予測不可能な動き、たとえば、長い「途切れ途切れの」または「ループの多い」動きを取り扱うことに関する問題がある。たとえば、凸凹の地形またはハンドヘルドキャプチャデバイスは、結果として、キャプチャデバイスの位置および向きに頻繁な変化を引き起こすことがあり、自律ロボットデバイスが、三次元空間内のすでにキャプチャされている配置を再訪し得る。イメージデータのキャプチャは、また、リアルタイムで連続的であってよく、その結果大量のキャプチャされたデータが生じる。これらの要因はすべて、現実世界のシステムに対する問題となり、多くの技術が、限られたデータまたは厳密に定義されたキャプチャ軌跡での成功を示し得るが、自律ロボットデバイスまたはモバイルコンピューティングデバイスからリアルタイムで表現を構築することには苦労している。
【０００５】
2014年のInternational Journal of Robotics Researchにおいて発表されたT. Whelan、M. Kaess、H. Johannsson、M.F. Fallon、J.J. Leonard、およびJ.B. McDonaldによる「Real-time Large Scale Dense RGB-D SLAM with Volumetric Fusion」という論文において、ボクセルベースの空間領域が定義され、そこでは姿勢グラフおよびクラウドスライスがボルメトリックモデルを構築するために使用されている。SURFディスクリプタは、場所認識のためにバッグオブワーズベースのループ検出器と一緒に使用される。
【０００６】
同様に国際公開WO2014/202258では環境をマッピングするための方法が説明されており、そこでは、姿勢グラフが生成され、姿勢グラフのノードは各々、それぞれのクラウドスライスを含む。
【発明の概要】
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、三次元空間のモデルを生成するための装置が実現され、これはキャプチャデバイスによって提供されるイメージデータを取得するように構成されたイメージ取得インターフェースであって、前記イメージデータは時間の経過とともに三次元空間とキャプチャデバイスとの間の相対的移動がある観測を表す、イメージ取得インターフェースと、イメージ取得インターフェースによって取得されたイメージデータを処理し、三次元空間の三次元モデルを計算するように構成されたモデルエンジンとを備え、モデルエンジンは、少なくとも1つのモデル特性に基づき三次元モデルを少なくともアクティブ部分と非アクティブ部分とにセグメント分割するように構成されたモデルセグメンター(model segmenter)であって、モデルエンジンは時間の経過とともに三次元モデルのアクティブ部分を使用して前記モデルを更新するように構成された、モデルセグメンターと、時間の経過とともに三次元モデルのアクティブ部分を三次元モデルの非アクティブ部分と整列させるように構成された位置合わせエンジン(registration engine)とを備える。
【０００８】
モデルエンジンは、三次元モデルを更新する際に使用するための三次元モデルのアクティブ部分からの投影に基づきアクティブモデルフレームを計算するように構成され得る。たとえば、フレーム-モデル間追跡構成要素は、アクティブモデルフレームと前記イメージデータからの提供されたフレームとを比較して、三次元モデルのアクティブ部分とイメージデータとの整列を決定するように構成され得る。フレーム-モデル間追跡構成要素は、現在時刻における提供されるフレームと前の時刻におけるアクティブモデルフレームとを比較することによってキャプチャデバイスの姿勢を推定するようにさらに構成されてよく、カメラデバイスの姿勢は三次元空間内のキャプチャデバイスの位置および向きを表す。
【０００９】
いくつかの場合において、位置合わせエンジンは、三次元モデルの非アクティブ部分からの投影に基づき非アクティブモデルフレームを計算し、アクティブモデルフレームを非アクティブモデルフレームと整列させる変形を決定し、変形を使用して三次元モデルを更新するように構成される。
【００１０】
三次元モデルは、表面要素モデルを含み得る。この場合には、表面要素モデル内の各表面要素は、少なくとも三次元における表面要素の位置を定義するデータと、三次元における表面要素に対する法線ベクトルを定義するデータとを含むものとしてよく、各表面要素は、三次元空間内の二次元領域を表す。
【００１１】
モデルエンジンは、時間の経過による三次元モデルの表現を記憶するように構成され得る。この場合、位置合わせエンジンは、所与の時刻における三次元モデルの表現が前の時刻に対する三次元モデルの記憶されている表現と合致するかどうかを決定し、肯定的決定に応答して、所与の時刻における三次元モデルの表現を前の時刻に対する三次元モデルの記憶されている表現と整列させるように構成され得る。位置合わせエンジンは、変形グラフを使用して、三次元モデルのアクティブ部分を三次元モデルの非アクティブ部分と整列させるようにも構成されてよく、変形グラフは三次元モデル内の位置に対する初期化時刻に基づき計算され、変形グラフは整列の間に所与の位置において三次元モデルを修正するために使用されるべきである三次元の所与の位置に対する近傍の集合を指示する。
【００１２】
いくつかの場合において、少なくとも1つのモデル特性は、三次元モデルにおける所与の位置に対するモデル生成およびモデル更新の時刻の1つを含み、非アクティブ部分は、事前定義された量よりも多い量だけ現在の観測時刻と異なる過去の観測時刻を示す。
【００１３】
本発明の第2の態様によれば、三次元空間のモデルを更新する方法が提供され、この方法は三次元空間の三次元モデルを取得することと、少なくとも1つのモデル特性に基づき三次元モデルを少なくともアクティブ部分と非アクティブ部分とにセグメント分割するステップと、三次元空間に関するキャプチャデバイスの相対的動きの後の三次元空間の観測を表すイメージデータを取得するステップと、三次元モデルの取得されたイメージデータおよびアクティブ部分に基づき三次元モデルを更新するステップと、三次元モデルのアクティブ部分を三次元モデルの対応する非アクティブ部分と位置合わせするステップとを含み、位置合わせする前記ステップは、三次元空間の領域の観測に続いて生成される三次元モデルのアクティブ部分を前記領域の少なくとも1つの前の観測に続いて生成されるモデルの非アクティブ部分と整列させる。
【００１４】
ある場合には、三次元モデルを更新するステップは、前記イメージデータの提供されるフレームに対するデータをモデルフレームに対する予測されたデータと比較することによってキャプチャデバイスの姿勢を推定するステップであって、モデルフレームは三次元空間の三次元モデルのアクティブ部分から導出される、ステップを含む。この場合に、三次元モデルのアクティブ部分と三次元モデルの非アクティブ部分との位置合わせを行うステップは、キャプチャデバイスの姿勢を使用してアクティブ部分および非アクティブ部分に対する三次元モデルの予測されたレンダリングを決定するステップと、予測されたレンダリングが整列されるようにアクティブ部分を変換するステップとを含み得る。
【００１５】
いくつかの例では、イメージデータは、少なくとも、複数のイメージ要素に対するキャプチャデバイスからの距離を指示する深度データを含む。この場合には、キャプチャデバイスの姿勢を推定するステップは、少なくとも前記イメージデータの提供されたフレームに対する深度データをモデルフレームに対する予測された深度データと比較するステップを含む。この例または他の例では、イメージデータは、少なくとも、複数のイメージ要素に対する色データも含み得る。この場合には、キャプチャデバイスの姿勢を推定するステップは、少なくとも前記イメージデータの提供されたフレームに対する色データをモデルフレームに対する予測された色データと比較するステップを含む。いくつかの場合において、イメージデータは、少なくとも複数のイメージ要素に対する深度データと色データとを含む。キャプチャデバイスの姿勢を推定するステップは、誤差関数を最小にするステップをさらに含むものとしてよく、誤差関数は前記イメージデータの提供されたフレームに対する深度データの、モデルに対する予測された深度データとの比較に基づく幾何学的誤差、および前記イメージデータの提供されたフレームに対する色データの、モデルフレームに対する予測された色データとの比較に基づく測光誤差の関数である。
【００１６】
この方法では、三次元モデルのアクティブ部分を三次元モデルの非アクティブ部分と位置合わせするステップは、所与のフレームに対する三次元モデルのアクティブ部分と所与のフレームに対する三次元モデルの非アクティブ部分との間の整列メトリックが事前定義された閾値よりも低い不整列を指示する場合に局所的ループ位置合わせ(local loop registration)を実行するステップを含み得る。更新するプロセスは、また、三次元モデルの表現を記憶するステップと、三次元モデルの現在の表現が三次元モデルのすでに記憶されている表現と合致している場合に大域的ループ位置合わせ(global loop registration)を実行するステップとを含み得る。これらの場合において、三次元モデルの表現は、予測されたフレームのより低い分解能の表現を含むものとしてよく、予測されたフレームは三次元モデルのアクティブ部分からの投影に基づき決定される。位置合わせは、アクティブ部分および非アクティブ部分に対する予測されたフレームデータの間の幾何学的整列に基づき三次元モデルのアクティブ部分を非剛体的に変形するステップを含み得る。
【００１７】
上で説明されているように、三次元モデルは表面要素モデルを含むものとしてよく、三次元モデルをセグメント分割するステップは、三次元モデル内の所与の位置に対するモデル生成の時刻、三次元モデル内の所与の位置に対するモデル更新の時刻、および三次元モデル内の所与の位置とキャプチャデバイスとの間の決定された距離のうちの1つまたは複数に基づくものとしてよい。
【００１８】
本発明の第3の態様によれば、ロボットデバイスが実現され、これは、深度データおよび色データのうちの1つまたは複数を含む複数のフレームを提供するように配置構成された少なくとも1つのキャプチャデバイスであって、前記深度データは複数のイメージ要素に対するキャプチャデバイスからの距離を指示する、キャプチャデバイスと、イメージ取得インターフェースが少なくとも1つのキャプチャデバイスに通信可能に結合された、上に提示されている例のいずれかの装置と、三次元空間に対してロボットデバイスを移動するように配置構成された1つまたは複数の移動アクチュエータと、1つまたは複数の移動アクチュエータを制御するように配置構成されたナビゲーションエンジンとを備え、ナビゲーションエンジンは、モデルエンジンによって生成された三次元モデルにアクセスして三次元空間内でロボットデバイスをナビゲートするように構成されている。
【００１９】
本発明の第4の態様によれば、モバイルコンピューティングデバイスが実現され、これは、深度データおよび色データのうちの1つまたは複数を含む複数のフレームを記録するように配置構成された少なくとも1つのキャプチャデバイスであって、前記深度データは複数のイメージ要素に対するキャプチャデバイスからの距離を指示する、キャプチャデバイスと、イメージ取得インターフェースが少なくとも1つのキャプチャデバイスに通信可能に結合された、上に提示されている例のいずれかの装置とを備える。
【００２０】
本発明の第5の態様によれば、プロセッサによって実行されたときに、コンピューティングデバイスに三次元空間のモデルを生成する方法を実行させるコンピュータ実行可能命令を含む非一時的コンピュータ読み取り可能な記憶媒体が提供され、この方法は複数のフレームを含むイメージデータを取得するステップであって、各フレームは深度データおよび色データを含み、前記深度データはイメージデータをキャプチャするために使用される撮像デバイスからの三次元空間内の物体の距離を指示する、ステップと、イメージデータに基づき三次元空間のモデルを計算するステップであって、モデルは複数の要素を含み、各要素は三次元内の位置を有する、ステップとを含み、計算する前記ステップは各部分について少なくとも1つの観測特性に基づき三次元モデルをアクティブ部分と非アクティブ部分とにセグメント分割するステップと、イメージデータ内の所与のフレームについて、所与のフレームに対する深度データおよび色データをモデルのアクティブ部分から導出されたモデルフレームに対する予測された深度および色データと比較することによって撮像デバイスの推定された姿勢を決定するステップと、撮像デバイスの推定された姿勢を使用してモデルフレームに対する予測された深度および色データを更新するステップと、モデルのアクティブ部分および非アクティブ部分のうちの少なくとも一方に関連付けられている要素を変換することによってモデルのアクティブ部分をモデルの非アクティブ部分と整列させるステップと、所与のフレームに対する深度データと色データとを使用してモデルの整列されたアクティブ部分を更新するステップとを含む。非一時的コンピュータ読み取り可能な記憶媒体は、プロセッサによって実行されたときにコンピューティングデバイスに上で説明されている方法のうちのいずれかを実行させるコンピュータ実行可能命令を記憶している。
【００２１】
本発明のさらなる特徴および利点は、添付図面を参照してなされる、例のみを用いて与えられている、本発明の好ましい実施形態の次の説明から明白になるであろう。
【図面の簡単な説明】
【００２２】
【図１Ａ】三次元空間の第1の例を示す概略図である。
【図１Ｂ】三次元空間の第2の例を示す概略図である。
【図１Ｃ】例示的なキャプチャデバイスに対する利用可能な自由度を示す概略図である。
【図２Ａ】例示的なキャプチャデバイスを示す概略図である。
【図２Ｂ】例示的なキャプチャデバイスを示す概略図である。
【図２Ｃ】例示的なキャプチャデバイスを示す概略図である。
【図３】一例による三次元空間のモデルを生成するための装置の概略図である。
【図４】一例によるロボットデバイスの概略図である。
【図５】一例によるモデルエンジンの構成要素の概略図である。
【図６Ａ】三次元表面要素モデルに対する例示的なデータを示す概略図である。
【図６Ｂ】一例による表面要素の属性を示す概略図である。
【図７】記憶されている表現および変形グラフを使用する一例を示す概略図である。
【図８】一例による三次元空間のモデルを更新する方法を示すフロー図である。
【図９】一例によるキャプチャデバイスの姿勢を推定する方法を示すフロー図である。
【図１０】三次元空間のモデルを更新するためにキャプチャデバイスからのイメージデータを処理するための例示的なプロセスを示すフロー図である。
【図１１】一例による非一時的コンピュータ読み取り可能な媒体を示す概略図である。
【発明を実施するための形態】
【００２３】
本明細書で説明されているいくつかの例は、三次元空間の詳細な三次元モデルまたはマップをキャプチャされたイメージデータから生成することを可能にする。これらの例は、イメージデータが様々なキャプチャデバイス軌跡から結果として得られるときであってもそのような空間の正確なモデルを生成することを可能にするものである。たとえば、三次元空間の密な、一貫した、包括的モデルは、「ループの多い」および/または「途切れ途切れの」キャプチャデバイスの軌跡から、さらにはガイドされた安定した前方に面している軌跡から生成され得る。さらに、本明細書で説明されているいくつかの例は、リアルタイムで、またはリアルタイムに近いフレームレートでこれらの三次元モデルを構築することを可能にする特徴を備える。たとえば、いくつかの特徴は、フレーム毎に増分的な同時定位および密マッピングを可能にする。これは、本明細書に提示されている技術がハンドヘルドモバイルコンピューティングデバイスから自律的家庭向けおよび/または産業用ロボットに至るまで、様々な現実世界の電子デバイスにおいて使用されることを可能にする。また、生成された三次元モデルの正確さおよび安定性が増すことで、その内部表現の適用可能性に関してそのようなデバイスの信頼性が高まり得るのでロボットデバイスとその環境との間の改善されたインタラクションが可能になる。
【００２４】
本明細書で説明されているいくつかの例では、三次元モデルまたはマップ(または単に「モデル」)は、モデルの少なくとも1つの特性に基づき少なくともアクティブ部分と非アクティブ部分とにセグメント分割される。たとえば、そのようなモデルの位置要素は、モデル修正の時刻に基づきアクティブまたは非アクティブとして分類され、たとえば、モデルのより古い部分は、非アクティブと分類されてよく、かつ/または三次元空間内のキャプチャデバイスからの距離、たとえば、空間内のキャプチャデバイスまたは定義済み位置からの特定の距離にわたる位置要素は、非アクティブと分類され得る。これらの場合において、三次元モデルのアクティブ部分は、前記モデルを更新するために使用され、非アクティブ部分は、モデルを更新するためには使用されない。更新するこのステップは、イメージデータのフレームをモデルと融合させること、たとえば、モデル内の新規位置要素をイメージデータから決定するステップを含み得る。これは、空間のモデルの部分集合のみが空間の新規観測に続いてモデルを更新するためにどの時点においても使用され得るので、必要な計算量を低減するのに役立つ。モデルを更新することに加えて、アクティブ部分は、モデルに関してキャプチャデバイスの配置および向きの正確な現在の表現を決定することを求める追跡動作でも使用され得る。ここでもまた、空間のモデルの部分集合のみを使用するステップは、空間の完全モデルに基づき追跡することと比べて必要な計算量を低減することを可能にする。
【００２５】
本明細書で説明されているいくつかの例は、アクティブおよび非アクティブモデル部分の整列も行う。これは、キャプチャデバイスが三次元空間内の所与の配置を再訪するか、または再観測するときにいわゆる「ループ」閉鎖を可能にする。この整列は、キャプチャされたイメージデータが処理されるときにフレーム毎に頻繁に実行され得るが、モデルの正確さおよび安定性を維持することを助け、「ループの多い」および/または「途切れ途切れの」キャプチャデバイス軌跡を取り扱うことを可能にする。いくつかの場合において、この整列は、2つの態様、すなわち、アクティブおよび非アクティブモデルの各々から生成される予測されたフレームを整列させようとする「局所的ループ閉鎖」と、イメージデータの所与のフレームとイメージデータの以前に処理されたフレームの表現とを整列させることを試みる「大域的ループ閉鎖」とを組み込み得る。整列は、たとえば、空間変形を介して、三次元モデルを変形させることによって実行され得る。いくつかの場合において、この変形は非剛体的であってよく、変換グラフを使用して変換をモデルの位置要素に適用し得る。これは、たとえば、モデリングプロセスの構造体であり、モデリングされる三次元空間を反映しない不連続部を減らすことによって、三次元内のモデルの正確さおよび一貫性をさらに高め得る。特に、そのような変形グラフは、疎であってよく、および/または空間内に埋め込まれてよく、たとえば、モデルの位置要素と関連付けられ得る。これらの技術は、姿勢グラフを必要とするもの、たとえば、イメージデータの独立したキーフレームを剛体的に変形するために使用される、カメラデバイスの配置および向きの確率的表現と異なる。
【００２６】
図1A、図1B、および図1Cは、三次元空間の例、およびその空間に関連付けられているイメージデータのキャプチャを概略として示している。これらの例は、本明細書で説明されているいくつかの特徴をより適切に説明するために提示されており、限定とみなされるべきでなく、いくつかの特徴は説明を簡単にするために省かれ、簡略化されている。
【００２７】
図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は、下面とともに示されているが、これはすべての実装における場合である必要はない、たとえば、環境は空中であるか、または地球外空間であってもよい。
【００２８】
図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度の完全パノラマ)をキャプチャするように適合された光学系を備えるように配置構成され得る。
【００２９】
図1Cは、キャプチャデバイス120およびモバイルデバイス140に利用可能な自由度の例150を示している。キャプチャデバイス120の場合、デバイス160の方向は、レンズまたは他の撮像装置の軸と同一の直線上にあるものとしてよい。3本の軸のうちの1本の周りの回転の一例として、法線軸170が図に示されている。同様に、モバイルデバイス140の場合に、モバイルデバイス160の整列の方向が定義され得る。これは、モバイルデバイスの対向および/または進行方向を指示し得る。法線軸170も図示されている。単一の法線軸のみが、キャプチャデバイス120またはモバイルデバイス140に関して図示されているが、これらのデバイスは、以下で説明されているように150として概略が示されている軸の1つまたは複数の周りに回転し得る。
【００３０】
より一般的には、キャプチャデバイスの向きおよび配置は、6自由度に関して三次元内に定義され得る、すなわち、配置は、たとえば、[X,Y,Z]座標によって三次元の各々の中で定義されるものとしてよく、向きは、3本の軸、たとえば、[θx、θy、θz]の各々の周りの回転を表す角度ベクトルによって定義され得る。いくつかの実装において、キャプチャデバイスは、これらの6自由度の制限された集合を参照しつつ定義されてよく、たとえば、地上車上のキャプチャデバイスについて、z次元は一定であってよい。モバイルデバイス140の実装など、いくつかの実装において、別のデバイスに結合されているキャプチャデバイスの向きおよび配置は、その他のデバイスの向きおよび配置に関して定義されてよく、たとえば、モバイルデバイス140の向きおよび配置に関して定義されてよい。本明細書で説明されている例では、キャプチャデバイスの向きおよび配置は、キャプチャデバイスの姿勢として定義される。キャプチャデバイスの姿勢は、時間の経過とともに変化するものとしてよく、それによりキャプチャデバイスは時刻t+1では時刻tと異なる姿勢をとり得る。キャプチャデバイスを備えるハンドヘルドモバイルコンピューティングデバイスの場合には、姿勢は、ハンドヘルドデバイスが三次元空間110内でユーザによって移動されると変化し得る。
【００３１】
図2A、図2B、および図2Cは、異なるキャプチャデバイス構成の3つの網羅的でない例の概略を示している。図2Aの例200では、キャプチャデバイス210は、イメージデータ220を生成するように構成される。キャプチャデバイス210が、デジタルカメラである場合に、これは、直接実行されてよく、たとえば、イメージデータ220は、電荷結合素子または相補型金属酸化膜半導体(CMOS)センサーからの処理済みデータを含み得る。また、イメージデータ220を間接的に、たとえば、アナログ信号ソースを変換するなどの他のイメージソースを処理することを通じて生成することも可能である。
【００３２】
ある場合には、イメージデータ220は、時間の経過とともにキャプチャされたイメージデータを含む。この形式の一例230は、図2Bに示されている。この場合に、イメージデータ220は、複数のフレーム240を備える。各フレーム240は、図1における110などの、三次元空間のイメージがキャプチャされる期間における特定の時刻tに関係し得る(すなわち、Ft)。そのようなものとしてイメージデータ220は、ビデオデータと考えてよい。フレーム240は、一般的に、測定されたデータの二次元表現からなる。たとえば、フレーム240は、時刻tにおける記録されたピクセル値の二次元配列または行列を含み得る。図2Bの例では、イメージデータ内のすべてのフレーム240は、同じサイズであるが、これは必ずしもすべての例にあてはまる場合ではない。フレーム230内のピクセル値は、三次元空間の特定の部分の測定を表す。図2Bの例では、各フレーム240は、イメージデータの2つの異なる形態に対する値を含む。値の第1の集合は、深度データ250に関係する(たとえば、Dt)。深度データは、キャプチャデバイスからの距離の指示を含むものとしてよく、たとえば、各ピクセルまたはイメージ要素値は、キャプチャデバイス210からの三次元空間の一部の距離を表し得る。値の第2の集合は、測光データ260に関係する(たとえば、Ct)。これらの値は、所与の分解能の対する赤、緑、青ピクセル値を含み得る。他の例では、他の色空間が使用され、および/または測光データ260は単色またはグレースケールピクセル値を含み得る。ある場合には、イメージデータは、圧縮ビデオストリームまたはファイルを含み得る。この場合には、イメージデータのフレームは、ストリームまたはファイルから、たとえば、ビデオデコーダの出力として再構築され得る。イメージデータは、ビデオストリームまたはファイルの前処理に続いてメモリロケーションから取り出され得る。
【００３３】
図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上で実行され得る。本明細書で説明されていないさらなる構成も可能である。
【００３４】
図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に示されている形態になるように前処理され得る。
【００３５】
いくつかの場合において、キャプチャデバイスは、深度データを生成するために前処理を実行するように配置構成され得る。たとえば、ハードウェア感知デバイスが、相違データまたはデータを複数のステレオイメージの形態で生成するものとしてよく、ソフトウェアとハードウェアのうちの1つまたは複数がこのデータを処理して深度情報を計算するために使用される。同様に、深度データは、代替的に、深度情報を再構築するために使用され得る位相イメージを出力する伝搬時間カメラから生じ得る。そのようなものとして、イメージデータ220の一部を形成する深度データを生成するために任意の好適な技術が使用され得る。
【００３６】
図2A、図2B、および図2Cは、多数の例として提供されており、それからわかるように、以下で説明されている方法およびシステムで使用するためにイメージデータ220を生成するためにこれらの図に示されているのと異なる構成が使用され得る。イメージデータ220は、キャプチャデバイスで三次元空間のキャプチャされるかまたは記録されたビューを表す二次元形態で配置構成される測定された任意の感覚入力をさらに含み得る。たとえば、これは、他にもあるがとりわけ、深度データまたは測光データ、電磁波イメージング、超音波イメージング、およびレーダー出力のうちのただ1つを含み得る。これらの場合において、特定の形態のデータに関連付けられている撮像デバイス、たとえば、深度データのないRGBデバイスのみが必要な場合がある。上の例では、深度データDtは、深度値の二次元行列を含み得る。これは、グレースケールイメージとして表されてよく、たとえば、xR1×yR1の分解能を有するフレーム内の各[x,y]ピクセル値は、三次元空間内の表面のキャプチャデバイスからの距離を表す深度値dを含む。測光データCtは、カラーイメージを含んでいてもよく、xR2×yR2の分解能を有するフレーム内の各[x,y]ピクセル値は、RGBベクトル[R,G,B]を含む。一例として、データを両方の集合の分解能は、640×480ピクセルであるものとしてよい。いくつかの場合において、イメージデータ220は、複数のデータソース、たとえば、特定の三次元空間を観測している複数のカメラを組み合わせることによって生成され得る。いくつかの場合において、イメージデータ220は、ビデオデータである必要はない。これは、その代わりに、1つまたは複数のキャプチャデバイスを使用して時間の経過とともに異なる位置からキャプチャされた一連の静止イメージを含む。いくつかの場合において、深度データは、測光データから、たとえば、空間の周りにあるキャプチャデバイスの動きを表す測光データを処理することから生成されてよい。
【００３７】
図3は、三次元空間のモデルを生成するための装置310の例300を示している。たとえば、これは、図1Aおよび図1Bに示されている三次元空間110のモデルであってよい。装置310は、イメージデータ320を処理する。イメージデータ320は、たとえば、図2A、図2B、および図2Cに示されている構成のうちのどれかによって生成され得る。
【００３８】
図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のアクティブ部分を使用して、時間の経過とともに前記モデルを更新するようにさらに構成される、すなわち、非アクティブ部分は、モデルを更新するためには使用されない。
【００３９】
イメージ取得インターフェース330の構成は、実装に依存し得る。ある場合には、イメージ取得インターフェース330は、USBまたはネットワークインターフェースなどのハードウェアインターフェース、およびソフトウェアドライバを実装するコンピュータプログラムコードを備え得る。ある場合には、モデルエンジン340は、イメージ取得インターフェース330上で受信されるストリーミングデータで動作するように構成され得る。これは、装置310がライブイメージデータで動作するときの場合であってよい。ある場合には、イメージ取得インターフェース330は、キャプチャデバイスに通信可能に結合され、永続的および非永続的データストレージのうちの1つまたは複数にキャプチャデバイスから受信されたイメージデータ320を記憶するように配置構成されてよく、たとえば、データのフレームは、メモリにコピーされ、および/またはハードディスクドライブもしくはソリッドステートストレージに記憶されるものとしてよい。別の場合には、イメージデータ320は、所与のファイルフォーマットで、たとえば、データストレージデバイスにおいてアクセス可能な1つまたは複数のファイルで装置310に外部的に記憶され得る。この場合、イメージ取得インターフェース330は、ファイルシステムの一部を使用するか、または実装して、1つまたは複数のファイルから少なくともデータを読み取るものとしてよい。これは、装置310が以前に記録されているイメージデータで動作するときの場合であってよい。たとえば、イメージデータ320は、ハンドヘルドデバイスを使用してキャプチャされるような、ユーザが歩いて建物を通り抜けることの記録を含み得るか、または自律的な車両によって地理的空間の偵察の軌跡(scouting trajectory)を含み得る。さらなる構成が企図され、これらの例は限定とみなされるべきでない。
【００４０】
モデルエンジン340は、専用処理電子機器を備えるものとしてよく、および/または少なくとも1つのコンピューティングデバイスのプロセッサによって実行されるコンピュータプログラムコードを用いて実装され得る。以下の図4を参照しつつ説明されているような場合には、モデルエンジン340は、1つまたは複数の組込コンピューティングデバイスを備えてもよい。これは、コンピュータ読み取り可能な媒体上にロードされたコンピュータプログラムコードを実行するためにメモリに関連して動作する少なくとも1つのプロセッサを備え得る。この媒体は、消去可能プログラム可能リードオンリーメモリなどのソリッドステートストレージを含むものとしてよく、コンピュータプログラムコードは、ファームウェアを含み得る。他の場合には、モデルエンジン340は、適切に構成されたシステムオンチップ、特定用途向け集積回路、および/または1つもしくは複数の適切にプログラムされたフィールドプログラマブルゲートアレイを備え得る。ある場合には、モデルエンジン340は、モバイルコンピューティングデバイスおよび/またはデスクトップコンピューティングデバイス内のコンピュータプログラムコードおよび/または専用処理電子機器を用いて実装され得る。ある場合には、モデルエンジン340は、コンピュータプログラムコードを実行する1つまたは複数のグラフィカルプロセッシングユニットによって、前の場合とともに、またはその代わりに実装され得る。いくつかの場合において、モデルエンジン340は、たとえば、複数のプロセッサおよび/またはグラフィックス処理ユニットのコア上で並行して実行される1つまたは複数の機能を用いて実装され得る。
【００４１】
モデルエンジン340によって生成される三次元モデル350は、イメージデータに関連付けられている三次元空間内の位置もしくは配置を表す位置要素を有する任意のモデルもしくはマップを含み得る。いくつかの場合において、三次元モデル350は、三次元空間の「密」モデルである。この場合、モデルを形成する位置要素は多数あり、たとえば、数十万もしくは数百万個の要素がある。これは、数十個または数百個の定義済みモデル点しかない特徴ベースまたは「疎」モデルとは対照的であると言える。ある場合には、位置要素は、空間のボクセルモデルに基づくものとしてよく、空間を伴う表面は、三次元における特定の分解能のボクセル空間内のボクセル値に関して定義される。別の場合には、表面要素モデルが使用され得る。表面要素モデルは、図6Aおよび図6Bを参照してより詳しく定義される。表面要素モデルでは、特定の位置で向きが定められた多数の表面が位置要素として定義される。三次元モデル350の広がりは、イメージデータ320において表されるような三次元空間の観測された広がりに依存し得る。
【００４２】
ある場合には、三次元モデル350は、イメージデータ320内のピクセル値が処理され、三次元空間のモデリングに寄与するときに「密」であるとみなされ得る。たとえば、「密」表現では、イメージ内のすべてのピクセルは、可能な限り多くの情報を追跡およびマッピング推定手順に寄与し得る。これは、三次元モデル、すなわち、シーンのマップの結果として得られる表現を合成キャプチャデバイスまたはカメラに投影して戻し「密」イメージ、すなわち、キャプチャデバイスの分解能でのイメージを再構築することを可能にし、合成されたイメージ内のピクセルの大部分は、モデルとともに記憶されている情報に基づき合成されたデータを有する。対照的に、「疎」システム、たとえば、キーポイントまたは抽出された特徴を利用するものは、イメージデータ内のピクセル値の小さい部分集合のみを使用してモデルを生成する。「疎」の場合には、合成されたイメージは、モデル内に十分な情報がないので、キャプチャデバイス分解能で作成され得ない。この方式で、「密」システムは、高精度で、たとえば、実環境の所与の許容範囲内で、三次元空間内の1つまたは複数の表面を推定する働きをする。「密」システムは、量子化された連続系に類似するものとして考えてよいが、「疎」システムは離散点の小さい集合上で動作する。
【００４３】
いくつかの場合において、モデルエンジン340は、フレーム毎に動作するように構成される。一実装において、モデルエンジン340は、イメージデータの連続するフレームFtをメモリにロードするように配置構成され得る。これらのフレームは、装置310の内部のデータストレージに記憶されるか、またはイメージ取得インターフェース330によって外部データストレージから取得され得る。他の実装では、モデルエンジン340は、装置310の内部のメモリからイメージデータの1つまたは複数のフレームを取り出し得る。一実装では、内部メモリの一部は、特定の時刻tにおいてフレームデータを保持し、新規イメージデータ320がイメージ取得インターフェース330によってキャプチャデバイスから受信されるときに上書きされ得る。モデルエンジン340が、フレーム毎に動作するように構成されるときに、モデルエンジン340は、フレーム毎に三次元モデル350を更新するように構成され得る。これは、イメージデータ320の特定のフレームを三次元モデル350と「融合」させるステップ、すなわち、イメージデータ320のフレームを使用して三次元モデル350を修正し更新するステップを含み得る。これは、イメージデータ320のフレームから導出され得る新しい位置要素を含めるステップを含み得る。三次元モデル350がどのように生成されるかれ、または更新されるかを示すいくつかの特定の例が、以下でより詳しく説明される。本明細書で説明されているアプローチは、不完全であり、かつ/またはノイズの多いイメージデータのフレームに適用され得ることに留意されたい。
【００４４】
ある場合には、モデルエンジン340は、イメージデータ320および三次元モデル350を使用してキャプチャデバイスの姿勢を追跡するように構成される。これは、特定のキャプチャデバイスの実際の姿勢に必ずしも関係する必要はなく、いくつかの例では、これはイメージデータ320の特定のフレームに基づき推定される仮想キャプチャデバイスの姿勢であってよい。たとえば、イメージデータ320の各フレームは、特定の位置にあり、フレームがキャプチャされたときに特定の向きを有する特定のキャプチャデバイスを使用してキャプチャされると考えられ得る。2つまたはそれ以上のキャプチャデバイスが使用される場合、各キャプチャデバイスの姿勢は、各キャプチャデバイスからの対応するイメージデータを使用して追跡され得る。モデルエンジン340は、三次元モデル350に関してイメージデータ320の所与のフレームを追跡するように構成され得る。これは、三次元モデル350のどのような部分がイメージデータ320の所与のフレーム内で観測されているかを決定するステップを含み得る。これは、イメージデータ320のフレームと三次元モデル350とに基づき生成される姿勢推定を使用して達成され得る。いくつかの場合において、イメージデータ320に基づき姿勢推定を生成するよりはむしろ、またはそれに加えて、姿勢推定は、外部ソースからの測定データに基づき生成され得る。たとえば、制御可能な、かつ/または測定可能な自由度を持つメカニカルアームなどの、移動可能なキャプチャデバイスマウントからの電気機械的測定結果は、マウントに結合されているキャプチャデバイスに対する姿勢推定を決定するために処理され得る。
【００４５】
モデルセグメンター360は、モデルデータを修正することによって三次元モデル350をセグメント分割するように構成され得る。たとえば、ある場合には、三次元モデル350の所与の位置要素は、モデルのアクティブ部分または非アクティブ部分の一部を形成するかどうかを指示する変数を有し得る。別の場合には、モデルセグメンター360は、前記モデルに適用される機能として三次元モデル350をセグメント分割するように構成され得る。たとえば、三次元モデル350は、モデルセグメンター360に入力され、モデルセグメンター360は、三次元モデル350のアクティブ部分および非アクティブ部分のうちの1つまたは複数を出力するように構成され得る。いずれかのアプローチが使用され得る。
【００４６】
三次元モデル350をセグメント分割するためにモデルセグメンター360によって使用されるモデル特性は、三次元モデル350における確実性レベルを指示し得る。たとえば、モデルセグメンター360は、時刻および距離のうちの1つまたは複数に基づき三次元モデル350をセグメント分割し得る。第1の場合において、モデル特性は、三次元モデルにおける所与の位置に対するモデル生成の時刻およびモデル更新の時刻のうちの1つを含み得る。この場合には、非アクティブ部分は、事前定義された量よりも多い量だけ現在の観測時刻と異なる過去の観測時刻を指示し得る。たとえば、モデルセグメンター360は、三次元モデル350を構成する各位置要素に対する時間データを処理して三次元モデル350に対する位置要素の集合を、共通の要素を持たない2つの集合、アクティブ要素を表すΘと、非アクティブ要素を表すΨとに分割するように配置構成され得る。これを行うために、モデルセグメンター360は、セグメント分割の所与の時刻t(たとえば、イメージデータの特定の処理済みフレームFtに関係する)について、モデルPc(cは三次元空間内の座標である)における各位置要素について、t-tP<δtである場合に位置要素は集合Θ内にあり(すなわち、Pc∈Θ)、t-tP≧δtである場合に位置要素は集合Ψ内にあり(すなわち、Pc∈Ψ)、ただしδtは定義された期間である、ように各位置要素に対するタイムスタンプtP(たとえば、位置要素が最後に修正された時刻)を処理するものとしてよい。この形態のセグメント分割またはモデル要素分類では、期間δt内に見えていなかった位置要素を非アクティブとして徐々にラベル付けしてゆく。これは、時間窓の適用と考えてよい。上で説明されているように、モデルエンジン360は、イメージデータの新しいフレームを三次元モデル350のアクティブ部分に融合させるように構成されてよく、モデルの非アクティブ部分は、追跡および/またはデータ融合に使用されない。この場合、位置合わせエンジン370によるアクティブ部分および非アクティブ部分の整列の後に、整列されている非アクティブ部分は、これからアクティブ部分になるように修正され得る。たとえば、非アクティブ部分の整列時に、位置合わせエンジン370は、非アクティブ部分内の各位置要素に関連付けられている最後の修正時刻を
更新するものとしてよい。これは、この整列された非アクティブ部分がモデルセグメンター360による三次元モデル350の処理に続いてこれからアクティブになるという効果を有し得る。これは、連続的フレーム-モデル間追跡、さらにはモデル-モデル間追跡を可能にし、視点不変のループ閉鎖を許す。
【００４７】
ある場合には、モデルエンジン340は、モデルを更新する際に使用するための三次元モデル350のアクティブ部分からの投影に基づきアクティブモデルフレームを計算するように構成される。たとえば、そのような投影は、三次元モデル350のアクティブ部分の予測されたビューまたは観測を表す二次元視点または仮想フレームをもたらし得る。ある場合には、アクティブモデルフレームは、所与の時刻におけるキャプチャデバイスの姿勢推定に基づき生成され得る。たとえば、姿勢推定は、三次元モデル350のアクティブ部分からの幾何学的投影が計算されるように視点または仮想フレームの配置および向きを指示し得る。ある場合に、予測されたフレームは、イメージデータ320を構成する各データセットについて計算され得る。たとえば、図2Bおよび図2Cに示されているのと似たイメージデータを処理するときに、各アクティブモデルフレームは、深度データの予測されたフレーム
【００４８】
【数１】
2018520425.tif 000003
【００４９】
および測光データの予測されたフレーム
【００５０】
【数２】
2018520425.tif 000004
【００５１】
を含み得る。これらは、イメージデータ320からの記録されるか、またはキャプチャされたイメージフレームFtと同じ分解能のものであってよい。アクティブモデルフレームの使用は、以下の図5を参照しつつより詳しく説明される。
【００５２】
上で説明されているように、装置310は、時間の経過とともに、たとえば、記録されたイメージデータ320の複数のフレームが処理されるときに三次元モデル350を生成するように配置構成されてよい。ある場合には、イメージデータ320は、移動するキャプチャデバイスを使用して時間の経過とともに行われる三次元空間の観測を表し、そのようなものとして、イメージデータ320のフレームがモデルエンジン340によって処理されるとともに、三次元モデル350はサイズを増やし、たとえば、三次元空間の異なる部分を表すより多くの位置要素を組み込む。さらに、位置合わせエンジン370は、時間の経過とともにモデルのアクティブ部分および非アクティブ部分の整列を実行するように構成され、これは、三次元空間の一部分が再訪されるか、または再観測されると、すなわち、キャプチャデバイスの動きにおける「ループ」が閉じられると、行われるものとしてよい。このことは、三次元モデル350の正確さおよび一貫性もイメージデータ320のより多くのフレームが処理されるにつれ高まることを意味する。
【００５３】
装置310の出力は、観測される三次元空間の三次元モデル350を含むと考えられ得る。このモデル350は、少なくとも三次元に関して定義された位置要素を含み得る。各位置要素は、三次元空間内にソリッド面が存在することを示すデータにさらに関連付けられ得る。たとえば、ボクセルベースのモデルでは、表面は自由空間を表す変数に対するゼロ値または交差点として表されるものとしてよく、表面要素モデルでは、位置要素は、三次元空間内の表面について定義されてよく、そのような各位置要素はモデル内の特定の表面を指示し得る。いかなる場合も、観測される三次元空間の三次元モデル350は、様々な仕方で使用され得る。装置310が、ハンドヘルドモバイルコンピューティングデバイスの一部をなす場合、三次元モデル350は、デバイスが空間内を動き回るときにイメージデータのキャプチャに続く三次元空間のマッピングを含み得る。装置310が、静的に据え付けられているが、環境を観測するためにぐるっと回って撮影するように配置構成されている1つまたは複数のキャプチャデバイスに通信可能に結合されている場合、三次元モデル350は、空間内で、たとえば、図1の115などの、物体の存在を計測するために使用され得る。特定の一例において、三次元モデル350は、人間の配置、および/または人間の部分を決定するためにユーザインターフェースシステムによって使用されてよく、前記配置は、インターフェースに対するユーザ入力として使用されてよい。別の例では、三次元モデル350は、付加製造パイプラインへの入力として使用されてよく、モデル内の物体は、付加製造システムによって、たとえば、モデル内の位置要素の定義を使用して、生成され得る。ある場合には、三次元モデル350は、キャプチャデバイスから離れている配置からアクセスされるものとしてよく、モデルは、たとえば、リアルタイムまたはほぼリアルタイムでの、空間の観測を表す。
【００５４】
図4は、三次元空間をナビゲートするために前の例のモデル生成技術を使用するように配置構成されているロボットデバイス410の一例400を示す概略図である。ある場合には、ロボットデバイス410は、図1のモバイルデバイス140の一実装を含み得る。図4のロボットデバイス410は、キャプチャデバイス420と、モデル生成器430と、三次元モデル450を記憶するように構成されているデータストレージデバイス440と、ナビゲーションエンジン460と、1つまたは複数の移動アクチュエータ470とを備える。ロボットデバイス410の構成要素の間の通信結合は、図に示されており、以下で説明される。
【００５５】
例400では、キャプチャデバイス420は、ロボットデバイスが特定の環境をナビゲートするときにイメージデータをキャプチャするように配置構成される。ある場合には、キャプチャデバイス420は、深度データおよび色データのうちの1つまたは複数を含む複数のフレームを記録し、前記深度データは複数のイメージ要素に対するキャプチャデバイスからの距離を指示する、ように配置構成され得る。この場合の各フレームは、異なるキャプチャ時間に関連付けられ得る。ある場合には、キャプチャデバイス420は、2つまたはそれ以上の特定の知覚デバイス、たとえば、空間の領域をスキャンするように構成されている赤外線または超音波センサー、およびカメラなどの撮像デバイスを備え得る。図2A、図2B、および図2Cを参照しつつ説明されている構成のどれかが適用される。
【００５６】
図4のキャプチャデバイス420は、モデル生成器430に結合される。この場合には、モデル生成器430は、図3からの装置310の一実装を含むものとしてよく、イメージ取得インターフェース330は、キャプチャデバイス420に通信可能に結合され得る。モデル生成器430は、データストレージデバイス440に結合される。使用時に、モデル生成器430は、本明細書で説明されている技術のどれかを使用して三次元モデル450を生成するように構成される。データストレージデバイス440は、三次元モデル450を構成するデータを記憶するように配置構成されている揮発性および/または不揮発性ストレージを備え得る。
【００５７】
図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は、環境と相互に作用するためにさらなる知覚デバイス、真空システム、および/またはアクチュエータなどの付加的構成要素を備えることもできる。
【００５８】
別の例では、モバイルコンピューティングデバイスが、深度データおよび色データのうちの1つまたは複数を含む複数のフレームを記録し、前記深度データは複数のイメージ要素に対するキャプチャデバイスからの距離を指示する、ように配置構成されている少なくとも1つのキャプチャデバイス、および上で説明されているような装置310またはモデル生成器430を備えてよい。
【００５９】
図5は、モデルエンジンのいくつかの構成要素のより詳細な例500を示している。たとえば、これらの構成要素は、他にもあるがとりわけ、いくつかの実装において、図3のモデルエンジン340または図4のモデル生成器440の一部として使用され得る。図5の例500は、イメージデータのフレームの受信に続いて三次元モデルを更新するようにこれらの構成要素がどのように相互に作用し得るかを大まかにさらに示している。
【００６０】
図5は、フレーム-モデル間追跡構成要素515およびモデル融合構成要素525に通信可能に結合されているイメージ取得インターフェース505を示している。イメージ取得インターフェース505は、上で説明されているイメージ取得インターフェース330に似た仕方で機能し得る。本発明の例では、イメージ取得インターフェース505は、イメージデータのフレームIDtをフレーム-モデル間追跡構成要素515およびモデル融合構成要素525に供給するように構成される。このイメージデータは、深度データの時刻tにおける現在のフレーム
【００６１】
【数３】
2018520425.tif 000005
【００６２】
および測光データの時刻tにおける現在のフレーム
【００６３】
【数４】
2018520425.tif 000006
【００６４】
を含むものとしてよい。たとえば、単純な場合には、これらは、時刻tにおいてメモリ内に2つの二次元配列として、たとえば、640×480の深度値および640×480×3の色値として記憶されるデータを含み得る。このデータは、キャプチャされるか、またはすでに記録されているイメージデータを表す時間インデックスを付けたデータ構造体から取り出されるものとしてよく、および/またはライブビデオフィードの一部として供給されるものとしてよく、各場合において、データは少なくとも1つのキャプチャデバイスによって現在提供されているライブフレームに関係する。
【００６５】
フレーム-モデル間追跡構成要素515は、アクティブモデルフレーム生成器520に通信可能に結合される。アクティブモデルフレーム生成器520は、アクティブモデルフレームを計算するように構成される。次いで、フレーム-モデル間追跡構成要素515は、アクティブモデルフレーム生成器520から受信されたアクティブモデルフレームをイメージ取得インターフェース505から受信されたイメージデータのフレームと比較するように構成される。モデル融合構成要素525は、イメージ取得インターフェース505から受信されたイメージデータのフレームに基づき三次元モデル530を更新するように構成される。
【００６６】
図5は、モデルセグメンター535を示している。これは、図3を参照しつつ説明されているようなモデルセグメンター360の一実装を含み得る。モデルセグメンター535は、三次元モデル530を2つの部分または集合に分割するように配置構成され、第1の部分または集合は、「アクティブ」部分540と本明細書では称され、第2の部分または集合は、「非アクティブ」部分545と本明細書では称される。これは、時間窓を三次元モデル530に適用するステップを含み得る。図5からわかるように、アクティブ部分540は、アクティブモデルフレーム生成器520およびモデル融合構成要素525によって使用される。非アクティブ部分545は、アクティブモデルフレーム生成器520およびモデル融合構成要素525によって使用されない。
【００６７】
特に、アクティブモデルフレーム生成器520は、アクティブモデルフレームを生成するためにアクティブ部分540にアクセスするように配置構成される。これは、三次元モデルのアクティブ部分540からの投影に基づき実行され得る。図5では、時刻t-1に対するアクティブモデルフレーム生成器520によって生成されるアクティブモデルフレームAMFt-1は、フレーム-モデル間追跡構成要素515によって、時刻tに対するイメージデータのフレームIDtと一緒に受信され、時刻tにおいてイメージデータのフレームを生成するとみなされているキャプチャデバイスに対する姿勢推定Ptを生成するために使用される。前に説明されているように、これは、キャプチャデバイス、またはキャプチャデバイスが静的に据え付けられているデバイスの実際の配置および向きを表し得るか、またはみなされた仮想キャプチャデバイスを提示し得る。後者は、一連の静止画が受信され処理される場合であってよく、この場合、各イメージは、異なるカメラデバイスによってキャプチャされ得るが、イメージ集合は、単一の移動するキャプチャデバイスによってキャプチャされるとみなされ得る。姿勢推定は、図1Cに示されている6自由度に対する変数値を含み得る。アクティブモデルフレームAMFt-1は、深度データの、時刻t-1における予測されたフレーム
【００６８】
【数５】
2018520425.tif 000007
【００６９】
と測光データの、時刻t-1における予測されたフレーム
【００７０】
【数６】
2018520425.tif 000008
【００７１】
とを含み得る。
【００７２】
時刻tにおける姿勢推定Ptは、フレーム-モデル間追跡構成要素515からアクティブモデルフレーム生成器520に伝達される。アクティブモデルフレーム生成器520は、時刻tにおける姿勢推定Ptを使用して時刻tにおけるアクティブモデルフレームAMFtを決定するように構成される。これは、姿勢推定の変数値を使用して、三次元モデルのアクティブ部分340を含む位置要素を使用して投影形状を決定するステップを含み得る。
【００７３】
ある場合には、フレーム-モデル追跡構成要素515は、時刻t-1における深度データの予測されたフレーム
【００７４】
【数７】
2018520425.tif 000009
【００７５】
および時刻t-1における色データの予測されたフレーム
【００７６】
【数８】
2018520425.tif 000010
【００７７】
を時刻tにおけるイメージデータのフレーム
【００７８】
【数９】
2018520425.tif 000011
【００７９】
および
【００８０】
【数１０】
2018520425.tif 000012
【００８１】
と比較するように構成され得る。この比較は、フレームの各ペアについて(すなわち、深度データペアと色データペアについて)、各ペア内のフレーム間の誤差関数を最小にする動きパラメータを決定するステップを含み得る。次いで、追跡誤差が、深度データ誤差と測光データ誤差の総和として定義され得る。この総和は、加重和であってよい。ある場合には、測光データ誤差に重み係数を掛けて、たとえば、深度データ誤差に関してその寄与分を低減し得る。この係数は、ある場合には0.1であり得る。自由度に対する変数値の推定を得るために最小二乗関数が使用され得る。この推定は、時刻t-1における姿勢推定Pt-1を現在の姿勢推定Ptにマッピングする変換を決定するために使用され得る。この現在の姿勢推定は、イメージデータIDtをアクティブ部分540と整列させるために使用され得る。これは、イメージデータIDtをアクティブ部分540と融合させるためにモデル融合構成要素525によって使用され得る。
【００８２】
アクティブモデルフレーム生成器520だけでなく、図5の例500は、非アクティブモデルフレーム生成器550をさらに備える。非アクティブモデルフレーム生成器550は、アクティブモデルフレーム生成器520に類似しているが、三次元モデルの非アクティブ部分545から非アクティブモデルフレームIMFtを生成するように構成される。たとえば、非アクティブモデルフレームは、非アクティブ分545からの幾何学的投影に基づき非アクティブモデルフレーム生成器550によって計算され得る。ある場合には、アクティブモデルフレーム生成器520および非アクティブモデルフレーム生成器550は、それぞれアクティブモデルフレームおよび非アクティブモデルフレームを生成するために微分された入力としてモデルのアクティブ部分と非アクティブ部分とを受信するように構成されている共通フレーム生成器によって実装され得る。アクティブモデルフレームを参照しつつ説明されているように、各非アクティブモデルフレームは、深度データの予測されたフレーム
【００８３】
【数１１】
2018520425.tif 000013
【００８４】
および測光データの予測されたフレーム
【００８５】
【数１２】
2018520425.tif 000014
【００８６】
を含み得る。
【００８７】
図5において、位置合わせエンジン560は、アクティブモデルフレーム生成器520からアクティブモデルフレームAMFtを、非アクティブモデルフレーム生成器550から非アクティブモデルフレームIMFtを受信するように配置構成される。本発明の例では、位置合わせエンジン560は、これら2つのフレームを比較して、アクティブモデルフレームを非アクティブモデルフレームと整列させる変換を決定するように構成される。次いで、図5において矢印で示されているように、この変換は、モデルのアクティブ部分および非アクティブ部分を整列させるように三次元モデル530を更新するために使用され得る。この変換は、アクティブ部分および非アクティブ部分の両方に対して位置要素の非剛体的空間変形を適用するために使用され得る。ある場合には、変形は、変形グラフを使用して適用され得る。これは、図7を参照しつつより詳しく説明される。変形または整列では、現在の姿勢推定Ptを使用してよい。いくつかの場合において、アクティブモデルフレームおよび非アクティブモデルフレームの位置合わせでは、フレーム-モデル間構成要素515のと類似しているプロセスを使用し得る。たとえば、前の予測されたフレームを新しく受信されたイメージデータのフレームと整列させることを試みるよりはむしろ、位置合わせエンジン560はアクティブフレームおよび非アクティブフレームを整列させる変換Htを決定するように構成される。整列が実行される場合、位置合わせエンジン560は、すべての見える非アクティブ位置要素、たとえば、非アクティブモデルフレーム内で見えるものをアクティブになるように設定し得る。
【００８８】
位置合わせエンジン560によって実行される整列または変形は、「ループ」閉鎖を可能にする、すなわち、新しく受信されたイメージデータから生成されたモデルの位置要素を以前に受信されたイメージデータに基づき以前に生成され、および/または修正された三次元空間の同じ領域に対応する位置要素と整列させるものとしてよい。たとえば、位置合わせエンジン560がない場合、キャプチャデバイスが動きループを完了した、たとえば、戻って以前に観測された空間の領域を見るときに、モデルの以前の部分は、モデルのより新しい部分との整列から外れ得る。モデルにおけるこの不整列または「ドリフト」は、モデルの生成で推定を使用し、誤差関数を最小にすることを求める、たとえば、非決定論的に動作するときに生じ、それにより、モデルが生成されるときに姿勢推定およびモデルにおける小さな誤差が増加し得る。図5における位置合わせエンジン560は、たとえば、各フレームについて、現在の推定されたキャプチャデバイス(すなわち、アクティブモデル)フレーム内のモデルのアクティブ部分と同じフレーム内のモデルの非アクティブ部分との位置合わせを連続的に行うことを試みる。位置合わせが成功した場合、たとえば、要求されている変形の整列メトリックまたはレベルに基づき、キャプチャデバイスの動きループは閉じられており、より新しいアクティブ部分がより古い非アクティブ部分に対して整列されており、三次元モデル530全体が、この位置合わせを反映するように非剛体的に変形され得る。いくつかの場合において、位置合わせエンジン560は、位置合わせを実行するために使用されたモデルの非アクティブ部分、たとえば、非アクティブモデルフレームの生成において使用されたものを再度アクティブにするように構成される。これは、フレーム-モデル間追跡構成要素515による追跡およびモデル融合構成要素525によるモデル融合をモデルの位置合わせされた領域の間で行わせることができる。上で説明されているように、データの追跡および融合は、一番最近に観測された三次元モデル530の領域(すなわち、モデルのアクティブ部分540または領域)で実行されるが、一定期間内に観測されていないモデルのより古い部分は、モデルセグメンター535によって追跡またはデータ融合に使用されていないモデルの非アクティブ部分545または領域にセグメント分割され得る。
【００８９】
図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」にある。
【００９０】
図6Bは、表面要素または「サーフェル」620の概略表面を示している。サーフェル620は、三次元において表面sを含む。サーフェルは、三次元において位置pを有する。図6Aにおいて、この位置は、三次元座標、たとえば、x、y、およびz座標を定義するデータ「Position:px,py,pz;」を使用して定義される。他の例では、他の座標系が使用されてよい。図6Bでは、サーフェルは、三次元内で定義されている法線ベクトルも有する。図6Aにおいて、この位置は、三次元ベクトル、たとえば、データ「Normal:nx,ny,nz;」を使用して定義される。方向は、ベクトル定義内の符号付き値を使用して指示され得る。図6Aにおける例610は、また、表面要素を記述するために、いくつかの例において使用され得るさらなるデータを有する。本発明の場合では、サーフェルの表面は、三次元空間内の円または円盤である。そのようなものとして、図6Aおよび図6Bにおける表面は、半径rによって、データ「Radius:r;」として設定されるように定義される。各サーフェルの半径は、見える穴を最小にしながら、所与の点の周りの局所的表面領域を表すことを意図されている。他の例では、異なるデータは、たとえば、三次元内の表面の広がりを指示する異なる幾何学的定義および/または変数を使用して、表面を定義するために使用され得る。図6Aは、本発明の例において、サーフェル定義は、また、表面の色(「Colour:R,G,B;」--この場合、RGB色空間が使用されるが、任意の知られている色空間が可能である)、サーフェルに対する重み(「Weight:w;」--これは新しい測定とサーフェルとの融合を行うときに使用される実数であってよい)、サーフェルが最初に生成された時刻を示す初期化時刻(「Init_Time:t0;」)、およびサーフェルが最後に更新されるか、または修正されたときの時刻を示す最終更新時刻(「Last_Modified:t;」)を定義するデータも含む。このモデル表現内のサーフェルは、サーフェルが最後に更新されるか、または修正された(たとえば、データ融合のためにそれに関連付けられている生イメージデータ値を有した)ときから経過した時間がδtよりも大きいときに非アクティブとして宣言され得る。サーフェルの属性を定義するデータは、実装に応じて追加されるか、修正されるか、または省略され得ることは理解されるであろう。図6Aに示されているように、複数のサーフェルは、リスト内で定義され得る(たとえば、例の中の「{…}」の間で)。
【００９１】
図7は、いくつかの実装において使用され得る位置合わせエンジン710の追加の特徴の例700を示している。図7において、以前に説明された位置合わせエンジン370または560のうちのどれかと同じ機能性を有し得る、位置合わせエンジン710は、データストレージデバイス720に通信可能に結合される。データストレージデバイス720は、時間の経過とともに三次元モデルの表現730(「ε」)を記憶する。これらの表現730は、アクティブモデルフレームAMFtの表現を含むものとしてよいが、それはモデルエンジンによって生成されるからであり、たとえば、深度データ
【００９２】
【数１３】
2018520425.tif 000015
【００９３】
および測光データ
【００９４】
【数１４】
2018520425.tif 000016
【００９５】
の表現を含み得る。ある場合には、表現は、アクティブモデルフレームの圧縮および/またはダウンサンプリング表現であってよい。マッピングされた表面がないアクティブモデルフレーム内の予測されたビューの部分は、いくつかの場合に、イメージデータからの現在のフレームを使用し塗りつぶされるものとしてよい。いくつかの場合において、表現は、アクティブモデルフレームのファーン符号化(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が使用されてよい。
【００９６】
図7の例では、アクティブモデルフレームAMFtは、位置合わせエンジン710によって受信される。次いで、アクティブモデルフレームAMFtとデータストレージデバイス720内の表現730のうちの1つとの合致が試みられる。たとえば、新しい表現が、受信されたアクティブモデルフレームAMFtから生成され、データストレージデバイス720に記憶されている表現730と比較されるものとしてよく、たとえば、合致はファーン符号化表現を使用して実行され得る。合致は、比較関数の出力によって指示されてよく、たとえば、誤差または合致イメージングメトリックが、比較されたフレームまたは表現の間の類似度を指示し得る。たとえば、比較は、ファーン符号化同士の間で行われ得る。この場合、ファーン符号化は、2進コードを含むものとしてよく、2つのイメージが、2つの2進コードの間の「距離」を総和することによって比較され得る。最小距離は、「最良」の合致とみなされ、距離は、合致が「良い」かどうかを決定するために閾値と比較され得る。アクティブモデルフレームAMFtは、合致を実行するためにダウンサンプリングされてよく、たとえば、ファーン符号化が、ダウンサンプリングされたフレーム上で実行されてよい。この場合、合致している記憶されている表現εjを指示するために、最良の合致を指示するメトリック値(たとえば、差または誤差を指示するイメージングメトリックの最低値)が使用されてよい。記憶されている表現、さらには合致に使用されるデータを有すること(たとえば、ファーン符号化)は、モデルフレームの表現、たとえば、
【００９７】
【数１５】
2018520425.tif 000017
【００９８】
および
【００９９】
【数１６】
2018520425.tif 000018
【０１００】
も含み得る。ある場合には、最良の合致に対するイメージングメトリック値は、合致が有効であるかどうかを決定するために事前定義済み閾値とさらに比較され得る。たとえば、「最良」の合致であっても、実際の合致は低い場合があり、たとえば、高い合致誤差を有することがあり、そこで、閾値比較は、これらのあまりよくない合致の使用を回避する。ダウンサンプリングは、比較的「粗い」合致が見つかり、正しいかのように位置合わせエンジン710によって使用されてよく、次いで、その後のアクティブモデルフレームおよび非アクティブモデルフレームは、図5で実行されているような整列を可能にする十分な近さになり、たとえば、より正確な「局所的」ループ閉鎖が可能なように「大域的」ループ閉鎖に従って十分に整列する。
【０１０１】
ある場合には、合致が見つからない場合、たとえば、合致するイメージングメトリックが所与の誤差閾値よりも高い場合、アクティブモデルフレームAMFtおよび非アクティブモデルフレームの位置合わせが、たとえば、図5に示されているように実行される。その一方で、「最良」の合致が見つかった場合、たとえば、合致するイメージングメトリックもまた所与の誤差閾値よりも低い場合、合致する表現εjは、データストレージデバイス720から取り出され、位置合わせエンジン710によってアクセスされる。次いで、位置合わせエンジン710は、図5に関して説明されているのと似た整列オペレーションを指令するように構成されるが、しかしながら、本発明の場合には、整列は、アクティブモデルフレームAMFtと合致する表現εiとの間で実行される。たとえば、アクティブモデルフレームの構成要素、たとえば、
【０１０２】
【数１７】
2018520425.tif 000019
【０１０３】
および
【０１０４】
【数１８】
2018520425.tif 000020
【０１０５】
は、合致する表現εjの構成要素、たとえば、
【０１０６】
【数１９】
2018520425.tif 000021
【０１０７】
および
【０１０８】
【数２０】
2018520425.tif 000022
【０１０９】
と整列され得る。ある場合には、整列メトリックが評価され、閾値と比較されて、整列が実行されるべきかどうかを決定し、たとえば、整列を続けるには、事前定義された閾値と比較して不整列が低いレベルであることが必要である。整列が実行されるべきでない場合、位置合わせエンジン710は、図5を参照しつつ説明されているようにアクティブモデルフレームおよび非アクティブモデルフレームの整列を実行することを試み得る。整列が実行されるべきである場合、位置合わせエンジン710は、既存の三次元モデル750を変形するようモデルデフォーマー(model deformer)740に指令し、たとえば、アクティブモデルフレームの構成要素を合致する表現の構成要素と整列させる働きをする三次元内の変形を決定するように配置構成され得る。いくつかの場合において、「大域的ループ閉鎖」と考えられ得る、この整列の後に、三次元モデルのアクティブ部分および非アクティブ部分は、更新されない。これは、この整列によりアクティブ部分および非アクティブ部分が図5に示されている位置合わせが実行され得るように(たとえば、「局所的ループ閉鎖」が次のフレーム上で正常に実行され得るように)より大きく整列されるからであり得る。これらの部分を更新しないことでも、その後の位置合わせオペレーションにおいて、潜在的に不正確な整列が補正または復旧されることが可能である。この整列に続いて、現在の姿勢推定Ptも、変換を表現に関連付けられている姿勢推定に適用することによって(たとえば、
【０１１０】
【数２１】
2018520425.tif 000023
【０１１１】
の形態で)更新され得る(たとえば、
【０１１２】
【数２２】
2018520425.tif 000024
【０１１３】
)。
【０１１４】
本発明の例において、モデルデフォーマー740は、既存の三次元モデル750にアクセスし、変形グラフ760を使用してこのモデルを変形して整列された三次元モデル770を生成するように配置構成される。変形グラフ760は、既存の三次元モデル750の分散された位置要素に関連付けられているノードおよびエッジの集合を含む。ある場合には、各ノードは、タイムスタンプ、三次元における位置、変換定義、および近傍の集合を含み得る。各ノードの近傍は、方向付けられ得る、グラフのエッジを構成する。この方式で、変形グラフは、モデルの変形が実行されるときに互いに影響を及ぼす三次元モデルの部分を接続する。近傍の数は、制限されてよく、たとえば、一実装では、4つの近傍に制限され得る。変換定義は、たとえば、3×3行列(恒等行列に初期化される)および3×1ベクトル(ゼロに初期化される)によって、または双対四元数によって表されるような、アフィン変換の定義を含み得る。変形を実行するときに、各ノードの変換定義は、表面制約条件の集合に従って最適化され得る。変形が適用されるときに、三次元モデルの特定の位置要素に対するグラフ内の影響のあるノードの集合が識別される。これに基づき、三次元モデルの位置要素の位置は、変換された影響のあるノードの加重総和、たとえば、現在の位置要素からのそれらのノードの位置の距離に従って影響のあるノードの各々に適用される変換定義の加重総和に基づき変形され得る。図6Aおよび図6Bを参照しつつ説明されているように、表面要素モデルを使用したときに、表面要素の位置および法線は両方とも、この方式で変形されてよい。たとえば、変形グラフ内のノードは、それらの初期化時刻に基づき表面要素に関連付けられ得る。次いで、これらのノードのリストは、このタイムスタンプによってをソートされ得る。表面要素に対して変形が指令されたときに、ノードのこのリストに二分探索法が実行され、一時的に近くにあるノードの集合に値を入れるものとしてよい。この集合から、距離メトリックに基づき表面要素に対してk最近ノードの集合が決定される。次いで、これらのノードは、要素を変形するために使用される。このプロセスは速く、リアルタイムまたはほぼリアルタイムの実行を可能にするのを助ける。
【０１１５】
一例では、変形グラフは、フレーム毎に構築されてよい。ある特定の場合において、三次元モデルに対する新しい変形グラフは、イメージデータの各フレーム(すなわち、FtまたはIDt)について構築されてよい、これは、変形グラフ、たとえば、各グラフノードに対する近傍の集合の接続性を決定するステップを含む。ある場合には、変形グラフは、三次元モデルを使用して初期化される。たとえば、フレームに対するノード位置は、三次元モデル内の位置要素の位置(たとえば、サーフェルモデル内のp)から決定されてよく、ノードタイムスタンプは、位置要素タイムスタンプに設定され得る(たとえば、図6Aの「Init_Time」)。ある場合に、変形グラフに対するノードは、三次元モデル内の位置要素の、システマティックサンプリングなどのサンプリングに基づき生成され得る。このサンプリングは、母集団上に一様に分布するものとしてよく、これは変形グラフの空間的密度が三次元モデルのものを正確に反映することを引き起こす。サンプリングされたノードの集合は、ノードタイムスタンプに基づき順序付けられ得る。これに続き、変形グラフの接続性は、時刻情報を使用して決定され得る。ある場合に、たとえば、ノードタイムスタンプに基づき時間的な近傍であるノードの集合が選択され得る。たとえば、4つの近傍があり、所与のノードが考察されている場合に、前の2つのタイムスタンプ(時間順序付けされたリスト内の)を有するノードおよびその後の2つのタイムスタンプ(リスト内の)を有するノードは、所与のノードの近傍として選択され得る。これは、計算効率が良く、三次元モデルの時間的に無相関である領域が互いに影響を及ぼすのを防ぐ(たとえば、アクティブ領域が非アクティブ領域に影響を及ぼすのを防ぐ)という利点を有する。たとえば、共通の三次元空間の複数のパスに関連付けられている変形グラフは、空間的に考えられたときに複雑に入り組んでいることがあるが、しかしながら、グラフを順序付けし、時間的に考えることで、複数のパスを、共通の要素を持たないようにし、自由に整列させることができる。これは、たとえば、姿勢グラフを使用する場合に、姿勢時刻に基づきグラフ接続性を決定する比較方法とは対照的であり得る。
【０１１６】
次に、変形グラフ760を使用して既存の三次元モデル750を変形し、変形されたモデル770を生成するためにモデルデフォーマー740によって適用され得る例示的なプロセスについてより詳しく説明する。モデルデフォーマー740は、既存の三次元モデル750の所与の位置要素にアクセスすることから始まる(たとえば、図6Aを参照しつつ説明されているようなサーフェル定義または別のボクセルベースの定義)。第1のオペレーションとして、モデルデフォーマー740は、所与の位置要素に時間的に最も近い変形グラフ760のノードの配置を特定する。時刻分離は、変数として記憶される。次に、モデルデフォーマー740は、たとえば、事前定義済みの数の探索するノードに対して時刻分離から離れる、時間的に近くにあるノードの配置を特定する。次いで、これらの近くにあるノードは、所与の位置要素の位置を参照しつつユークリッド距離などの距離メトリックによってソートされ得る。次いで、たとえば、上で説明されている近傍限界を使用して、所与の数の「近傍」ノードが最近kノードとして選択され得る。次いで、これらの近傍の各々に対する重みの集合が、ノードと所与の位置要素との間の正規化された距離に基づき生成され得る。重みの総和も決定され得る。次いで、最後のオペレーションとして、近傍に対する変換定義が、各近傍に対する個別の計算された重みを介して加重され、重みの総和によって正規化されるものとして適用され得る。これは、所与の位置要素の位置および法線ベクトルを変形するために所与の位置要素を参照しつつ上で説明されているアフィン変換に対する変数を適用するステップを含み得る。図6Aの表面要素の場合において、所与の位置要素の他の態様は同じままである(たとえば、変形されたモデル770にコピーされてよい)。
【０１１７】
一例において、位置合わせエンジン370、510、または710を用いて実行される整列は、モデルデフォーマー740を使用して実行される。この例では、これは変形グラフ760のパラメータを最適化することによって達成される。最適化は、位置合わせエンジン370、510、または710の出力に基づき設定される表面対応関係の集合を与えられた場合に三次元モデル内の表面位置合わせを反映し得る。これらの表面対応関係は、第1の時刻での特定のソース位置が第2の時刻での特定のデスティネーション位置に到達するか、または一致するべきであることを指示し得る。各個別表面対応関係は、絶対(変形された位置を三次元空間内の絶対位置に関係付ける)または相対(変形された位置を異なる変形された位置に関係付ける)のいずれかとしてよい。アクティブフレームおよび非アクティブフレームを整列させるときに(たとえば、図3および図5を参照しつつ説明されているように)、ソース点は、アクティブモデルフレーム内の1つの点を表すものとしてよく、デスティネーション点は、モデルのアクティブ部分および非アクティブ部分を整列させる働きをする、非アクティブモデルフレーム内の1つの点を表し得る。たとえば、第1の時刻は、所与の非アクティブモデルフレームを生成するために使用される非アクティブモデル位置要素に対する初期化の時刻を含むものとしてよく、第2の時刻は、現在のフレーム時刻であってよく、ソース点は、現在の姿勢推定Ptに基づいて見たときに、アクティブモデルフレームを生成するために使用される(たとえば、
【０１１８】
【数２３】
2018520425.tif 000025
【０１１９】
を計算するために使用される)サンプリングされた位置要素であってよく、デスティネーション点は、現在の姿勢推定Ptに加えて三次元における定義済み変換Hに基づいて見たときに、アクティブモデルフレームを生成するために使用される(たとえば、
【０１２０】
【数２４】
2018520425.tif 000026
【０１２１】
を計算するために使用される)サンプリングされた位置要素であってよい。この場合に、デスティネーション点は、モデルのアクティブ部分を非アクティブ部分上にマッピングするために計算された定義済み変換(H)を適用しているときに、非アクティブモデルフレーム内の1つの点に相当し、たとえば、変換は図5の位置合わせエンジン560によって実行される整列の少なくとも一部である。これらの表面対応関係は、「局所的ループ閉鎖」を適用するために使用され得る。同様に、アクティブフレームを記憶されている表現と整列させるときに(たとえば、図7を参照しつつ説明されているように)、第1の時刻は、記憶されている表現に対する初期化の時刻を含むものとしてよく、第2の時刻は、現在のフレーム時刻であってよく、ソース点は、現在の姿勢推定Ptに基づいて見たときに、アクティブモデルフレームを生成するために使用される(たとえば、
【０１２２】
【数２５】
2018520425.tif 000027
【０１２３】
を計算するために使用される)サンプリングされた位置要素であってよく、デスティネーション点は、表現に対する姿勢推定に加えて三次元における定義済み変換Hに基づいて見たときに、アクティブモデルフレームを生成するために使用される(たとえば、
【０１２４】
【数２６】
2018520425.tif 000028
【０１２５】
を計算するために使用される)サンプリングされた位置要素であってよい。ここでもまた、定義済み変換がアクティブモデル部分に適用されるときに、デスティネーション点は、アクティブモデルおよび非アクティブモデルの整列を表す。これらの表面対応関係は、「大域的ループ閉鎖」を適用するために使用され得る。表面対応関係は、たとえば、使用されるフレームに対する、ピクセルのサンプリングされた集合について計算され得る。これらの場合に、整列または位置合わせは、表面対応関係の集合に対する三次元における定義済み変換を解決するステップを含み得る。
【０１２６】
上の例では、表面対応関係は、変形グラフのパラメータの最適化のために1つまたは複数のコスト関数において使用され得る。たとえば、1つのコスト関数は、変形されたソース点(たとえば、変形グラフを適用するとき)とデスティネーション点との間の距離誤差の総和に等しい誤差関数を含むものとしてよく、ソース点およびデスティネーション点は表面対応関係において使用される点である。本明細書で説明されているような三次元モデルの時間的パラメータ化は、三次元空間の同じ部分の複数のパスを非剛体的に変形して整列させ、モデリングを続けさせ、三次元モデルの再訪された領域内への新しいデータ融合を行わせることを可能にする。別のコスト関数は、三次元モデルの非アクティブ部分を適所に「ピン留め」する、すなわち、モデルのアクティブ部分を非アクティブ部分に変形するためにも使用され得る。このコスト関数は、変形されたソース点(たとえば、変形グラフを適用するとき)と変形されていないデスティネーション点との間の距離誤差の総和に等しい誤差関数を含むものとしてよく、デスティネーション点は表面対応関係において使用される点である。別のコスト関数も、三次元モデルの以前に位置合わせがなされた領域を適所に保持するために使用され得る、すなわち、マップの異なる領域を変形するときに、以前に位置合わせがなされた領域の相対位置は、同じままであるように制約される必要があるものとしてよい。このコスト関数は、変形されたソース点(たとえば、変形グラフを適用するとき)と変形されたデスティネーション点との間の距離誤差の総和に等しい誤差関数を含むものとしてよい。このコスト関数は、ループ閉鎖およびその関連付けられている変形が三次元モデルの以前に位置合わせがなされた領域を引き離すのを防ぐ。誤差関数は、変形グラフの定義済み変換における剛性を最大化し(たとえば、転置行列を掛けた変換と恒等行列との間の距離メトリックを最小化することによって)、滑らかな変形を確実にする(たとえば、近傍変換を組み込んだ距離メトリックに基づく)ように定義され得る。これらの説明されている誤差関数のうちの1つまたは複数は、変形グラフに対する変換定義を決定するように最小化され得る(たとえば、加重和内で)。たとえば、ガウス-ニュートン反復法を、疎コレスキー分解と一緒に使用することで、処理ユニット上で連立方程式を解くことができる。グラフィカルプロセッシングユニットは、実装において利用可能であれば、変形グラフを三次元モデルに適用するために使用され得る。これは、グラフィカルプロセッシングユニット上で並列実行されてよい。いくつかの場合において、コスト関数のうちの1つまたは複数は、整列が実行されるべきかどうかを決定するメトリックを生成するために使用され得る。たとえば、コスト関数のうちの1つまたは複数が事前定義された閾値よりも低い誤差値を出力する場合(たとえば、コスト関数が変形されたソース点とデスティネーション点とを比較するなど)、整列は受け入れられ、誤差値が事前定義された閾値よりも高い場合、整列は却下される(等しい場合が適宜割り当てられる)。
【０１２７】
上で説明されているいくつかの装置構成要素は、入ってくるイメージデータの測光および幾何学的フレーム-モデル間追跡および融合を使用して三次元空間の密マップまたはモデルを生成する。いくつかの構成要素は、モデル-モデル間追跡または「局所的ループ閉鎖」をさらに使用して、三次元モデルの一部分、たとえば、三次元空間の領域の繰り返されるパスまたはビューを表す部分を整列させる。整列は、非剛体的空間変形を使用して達成され得る。いくつかの構成要素は、また、「大域的ループ閉鎖」を解決するために予測された表面外観ベースの場所認識オペレーションを使用し得る。これらの構成要素では、大域的に一貫している密三次元モデルは、たとえば、サーフェルを使用して、姿勢グラフを使用せずに、たとえば、イメージデータのキーフレームに関するキャプチャデバイスの姿勢をモデリングするために使用される別個のグラフ構造を使用せずに、生成されるようにできる。したがって、これらの構成要素を組み込んでいる装置は、リアルタイムまたはほぼリアルタイムの密同時配置およびマッピングを実行することができ、オペレーションは2つの別個のオペレーションとして実行されるのではなく実際に同時である。
【０１２８】
図8は、三次元空間のモデルを更新する方法800を示す。この方法は、上で説明されているいくつかのオペレーションを適用し得る。ブロック810で、キャプチャデバイスによる三次元空間の観測結果を表すイメージデータが取得される。これは、他にもあるがとりわけ、ライブビデオストリーム、静止画の集合、および/またはビデオファイルからのイメージデータのフレームを受信するステップを含み得る。イメージデータは、深度データおよび測光データ、たとえば、色データのうちの1つまたは複数を含み得る。ブロック820で、三次元空間の三次元モデルは、取得されたイメージデータから計算される。三次元モデルがすでに、たとえば一部だけでも、存在している場合、これは、モデルを取得するステップと、データを更新するか、またはモデルに追加するステップを含み得る。三次元モデルが存在していない場合、これは、モデルを初期化するステップと、モデル表現をブートストラップするステップとを含み得る。いくつかの場合において、ブロック820は、上で説明されているようなデータ融合オペレーションを含み得る。ブロック830で、三次元モデルは、少なくとも1つのモデル特性に基づき少なくともアクティブ部分と非アクティブ部分とにセグメント分割されるか、または分類される。少なくとも1つのモデル特性は、初期化もしくはモデル更新の時刻および/または幾何学的尺度、たとえば、キャプチャデバイスとシーンとの間の距離、事前定義済み位置からの距離、および/または事前定義済みの向きからの回転の角度を含み得る。
【０１２９】
ブロック840で、アクティブモデル部分と非アクティブモデル部分との間の比較が行われる。イメージデータがキャプチャされるか、または受信されたイメージデータの第1の集合を表す場合、この段階で非アクティブ部分はないものとしてよく、整列は行われ得ず、方法はブロック810にループバックする。これがその場合であれば、ブロック810、820、および830が繰り返されるものとしてよい。
【０１３０】
方法が繰り返されるときに、ブロック820で、三次元モデルのアクティブ部分のみが、たとえば、ブロック830でのセグメント分割またはパーティション分割に続いて、イメージデータを使用してモデルを更新するために使用される。ブロック820は、モデルのアクティブ部分の予測されたフレームまたはビューを決定するステップと、これらを使用してフレームに対するキャプチャデバイスの姿勢を決定し、イメージデータの第2の集合をモデルと融合させるステップ(たとえば、モデルのアクティブ部分のみがデータ融合に続いて更新され得る)とを伴うものとしてよい。
【０１３１】
この方法が繰り返されると、キャプチャデバイスの動きに続いて三次元空間の観測を表すイメージデータがブロック810で取得され得る。たとえば、キャプチャデバイスは、運動中であり、三次元空間の複数のパスを記録するものとしてよく、各パスは、配置および/または向きの異なる集合から記録され得る。イメージデータが三次元空間の所与の領域の再訪または再観測を表す場合、ブロック840において、モデルの以前から存在している非アクティブ部分と対応するモデルのアクティブ部分があり得る。たとえば、これらは、三次元における共通位置に対する新規に作成されたモデル要素および以前に作成されたモデル要素であるものとしてよい。いくつかの場合において、ブロック840は、アクティブモデルおよび非アクティブモデルの両方に基づき生成される予測されたフレームまたはビューを比較するステップと、一方を他方にマッピングする変換(たとえば、H)を決定するステップとを伴い得る。ある場合に、上で説明されているような変形グラフからの1つまたは複数のコスト関数の結果は、ブロック840において対応関係があるかどうかを決定するためのメトリックとして使用され得る。たとえば、変換が決定されるが、誤差メトリックは、これがモデルの一貫性における誤差増大につながることを指示している場合、この方法は、ブロック810にループし得るが、しかしながら、誤差メトリックが事前定義済みの閾値より低い場合、方法はブロック850に進むものとしてよい。
【０１３２】
ブロック840におけるチェックが、アクティブ部分および非アクティブ部分が対応していること、たとえば、所与の誤差限界を超えることなく一方に基づくフレームは、他方に基づくフレームと整列され得ることを指示する場合、ブロック850で、更新された三次元モデルのアクティブ部分は、三次元モデルの対応する非アクティブ部分との位置合わせを行われる。これは、決定された変換を適用してアクティブ部分および非アクティブ部分を整列させるステップを含み得る。ある場合に、これは、変換を適用して、キャプチャデバイスの向きおよび配置の現在の推定を使用してアクティブ部分および非アクティブ部分の各々から生成されるような、たとえば、変形グラフに基づき最適化された変形オペレーションを使用して適用されるような、予測されたビューまたはフレームを整列させるステップを含み得る。こうして、ブロック850での位置合わせで、三次元空間の領域の観測に続いて生成される三次元モデルのアクティブ部分が前記領域の少なくとも1つの前の観測に続いて生成されるモデルの非アクティブ部分と整列させられる。ブロック850での位置合わせは、たとえば、誤差メトリックが事前定義済み閾値よりも低いことに基づき、位置合わせに関連付けられているコスト関数が整列が可能である場合にのみ実行され得る。
【０１３３】
図9は、キャプチャデバイスの姿勢を推定する方法900を示す。この方法は、図8のブロック810および820の一部として使用され得る。ブロック910で、イメージデータが取得される。このブロックは、ブロック810を実装するものとしてよい。この場合、イメージデータは、イメージデータのフレームを含み得る。ブロック920で、モデルフレームが決定される。この場合のモデルフレームは、三次元空間の三次元モデルのアクティブ部分から導出される。たとえば、これは、モデル空間内の定義済み平面上へのモデル内の点の投影または「スプラッター(splatter)」を示すデータを含み得る。ブロック930で、ブロック910において取得されたイメージデータを生成するために使用されるキャプチャデバイスの姿勢が推定される。これは、たとえば、ライブカメラおよび/またはメディアファイルからブロック910で受信されるような、前記イメージデータの提供されるフレームに対するデータをモデルフレームに対する予測されたデータと比較することによって実行される。たとえば、これは、図5のフレーム-モデル間追跡構成要素515を参照しつつ説明されているように実行され得る。ブロック930は、時刻t-1に対するモデルフレームからのデータを時刻tに対するイメージフレームデータと比較するステップを含み得る。アクティブモデル部分の点を投影するか、または「スプラッター」するために使用される定義済み平面は、たとえば、時刻t-1に対する、以前の姿勢推定を含み得る。
【０１３４】
図9の場合、キャプチャデバイスの推定される姿勢は、ブロック850における位置合わせオペレーションにおいて使用され得る。これは、キャプチャデバイスの姿勢を使用してアクティブ部分および非アクティブ部分に対する三次元モデルの予測されたレンダリングを決定するステップと、予測されたレンダリングが整列されるようにアクティブ部分を変換するステップとを含み得る
【０１３５】
ある場合に、イメージデータは、複数のイメージ要素に対するキャプチャデバイスからの距離を指示する少なくとも深度データを含み、キャプチャデバイスの姿勢を推定するステップは、前記イメージデータの提供されるフレームに対する少なくとも深度データをモデルフレームに対する予測された深度データと比較するステップを含む。それに加えて、または代替的に、イメージデータは、複数のイメージ要素に対する少なくとも色データを含むものとしてよく、キャプチャデバイスの姿勢を推定するステップは、前記イメージデータの提供されるフレームに対する少なくとも色データをモデルフレームに対する予測された色データと比較するステップを含み得る。ある場合に、キャプチャデバイスの姿勢を推定するステップは、誤差関数を最小化するステップを含む。この場合、誤差関数は、前記イメージデータの提供されたフレームに対する深度データとモデルに対する予測された深度データとの比較に基づく幾何学的誤差、および前記イメージデータの提供されたフレームに対する色データとモデルフレームに対する予測された色データとの比較に基づく測光誤差の関数であってよい。類似の誤差関数は、ブロック850でアクティブ部分および非アクティブ部分の位置合わせを行う変換を決定するときにも使用され得る。
【０１３６】
一例では、三次元モデルのアクティブ部分と三次元モデルの非アクティブ部分との位置合わせを行うステップは、所与のフレームに対する三次元モデルのアクティブ部分と所与のフレームに対する三次元モデルの非アクティブ部分との間の整列メトリックが事前定義された閾値よりも低い不整列を指示する場合に局所的ループ位置合わせを実行するステップを含む。たとえば、整列メトリックは、アクティブモデルフレームを非アクティブモデルフレームにマッピングするために使用される変換を含む表面対応関係を有する変形を適用した結果であるコスト関数であってよい。局所的ループ位置合わせは、変形グラフを使用してアクティブ部分および非アクティブ部分を変形させることによって変換を適用するステップを含み得る。
【０１３７】
一例において、ブロック820は、三次元モデルの表現を記憶するステップを含み得る。これは、ファーン符号化表現であってよい。この場合には、方法800は、三次元モデルの現在の表現が三次元モデルの以前に記憶された表現と合致している場合に大域的ループ位置合わせを実行するステップをさらに含み得る。大域的ループ位置合わせは、変形グラフを使用してアクティブ部分および非アクティブ部分を変形させるステップを含み得る。この場合において、三次元モデルの表現は、予測されたフレームのより低い分解能の表現を含むものとしてよく、予測されたフレームは三次元モデルのアクティブ部分からの投影に基づき決定される。変形が適用される場合に、これは、三次元モデルのアクティブ部分を非剛体的に変形するステップを含んでいてよく、これは、アクティブ部分および非アクティブ部分に対する予測されたフレームデータの間の幾何学的整列を条件として実行され得る。
【０１３８】
いくつかの実装において、三次元モデルは、たとえば、図6Aおよび図6Bを参照しつつ説明されているように、表面要素モデルを含み得る。ブロック830で三次元モデルをセグメント分割するステップは、三次元モデルにおける所与の位置に対するモデル生成の時刻、三次元モデルにおける所与の位置に対するモデル更新の時刻、および三次元モデルにおける所与の位置とキャプチャデバイスとの間の決定された距離のうちの1つまたは複数に基づき三次元モデルをセグメント分割するステップを含み得る。
【０１３９】
いくつかのテスト事例において、局所的ループ位置合わせが、大域的ループ位置合わせよりも頻繁に実行されることがわかっている(たとえば、10または20-1の比)。大域的ループ位置合わせは、いくつかの場合において実行され得ない(たとえば、必要でない場合があるか、または見つけられない場合がある)。局所的ループ位置合わせおよび大域的ループ位置合わせの適用は、処理されているイメージデータに依存し得る、たとえば。キャプチャデバイスを使用する観測の軌跡に依存し得る。いくつかのテスト事例において、フレームの数が103のオーダーであり、位置要素(たとえば、サーフェル)の数が106のオーダーであり、変形ノードの数および記憶されている表現の数は、102のオーダーであった。これらのテスト事例に対するフレーム処理は、現在三次元モデル内にある位置要素の数に応じて、20から40ミリ秒以内であった。これは、処理速度が30Hzまたはフレーム毎秒程度であった。これらのテスト事例において、テストプラットフォームは、32GBのメモリを搭載した3.4GHzのIntel(登録商標) Core i7-4930Kプロセッサおよび3GBのメモリを搭載したnVidia(登録商標) GeForce(登録商標) GTX 780 Tiグラフィカルプロセッシングユニットを利用した。
【０１４０】
図10は、三次元空間の三次元モデルを更新するための例示的なプロセス1000をより詳しく示している。このプロセス1000は、図5に示されている構成要素と対応しているように見えてよい。ブロック1005で、深度および色フレームは、キャプチャデバイスから受信される。ブロック1010で、三次元モデルのアクティブ部分に基づく予測されたフレームが生成される。これは、サーフェル定義を処理するステップと、たとえば、現在の時刻に関して、特定の時間窓内の最終更新タイムスタンプとともにサーフェルのみを使用するステップとを含み得る。これは、時刻t-1におけるキャプチャデバイスに対する姿勢推定を使用するステップをさらに含むものとしてよく、たとえば、「アクティブ」と分類される位置要素が平面上に投影され、時刻t-1にキャプチャデバイスによって見ることができる領域の配置および向きを指示する。ブロック1015で、フレーム-モデル間追跡が実行される。これは、ブロック1005および1010から受信されたデータを比較することによって現在時刻に対する姿勢推定を決定するステップを含み得る。ブロック1020で、現在の時刻に対する決定された姿勢推定は、予測された深度および色フレームを更新し、たとえば、「アクティブ」として分類される位置要素を平面上に投影し、現在の姿勢推定によって指示されているように時刻tでキャプチャデバイスによって見ることができる領域の配置および向きを指示するために使用され得る。
【０１４１】
1025で、更新された予測された深度および色フレームが記憶されている表現と合致するかどうかに関して決定が行われる。これは、図7を参照しつつ説明されている比較を含み得る。特定の記憶されている表現とも合致が見つかった場合、ブロック1030で、特定の記憶されている表現に対応する更新された予測された深度および色フレームおよびデータの位置合わせが可能であるかどうかについて決定が行われる。これは、図7のモデルデフォーマー740を参照しつつ説明されている変形を適用するステップを含み得る。更新された予測されたフレームのうちの1つまたは複数における点を記憶されている表現に制約する表面対応関係を与えられているとすると、1つまたは複数のコスト関数の出力が変形グラフを使用した変形が所与の閾値よりも高い誤差の結果であることを指示している場合、決定は否定的であるものとしてよく、そうでない場合には、決定は肯定的であるものとしてよい。ブロック1030における決定が否定的である、たとえば、記憶されている表現と更新された予測されたフレームとの間に可能な位置合わせがないとみなされる場合、方法は1035に進み、深度および色データの非アクティブモデルフレームが生成される。ブロック1030における決定が肯定的である、たとえば、記憶されている表現と更新された予測されたフレームとの間に可能な位置合わせがあるとみなされる場合、三次元モデルは、ブロック1040で変形される。これは、最適化された変形グラフを適用するステップを含むものとしてよく、最適化は、前述の表面対応関係によって制約され、最適化は、1つまたは複数の誤差関数を最小化し、変形グラフのノードによって適用されるべき変換定義を決定する。
【０１４２】
ブロック1035で、深度および色データの非アクティブモデルフレームが生成される。ブロック1045で、ブロック1020における更新された予測されたフレームとブロック1035で生成された非アクティブモデルフレームとの間で位置合わせが行われ得るかどうかについて決定が行われる。ブロック1045は、現在の姿勢推定に関連して2つの部分の各々から生成された予測されたビューを指示するデータに基づき非アクティブモデル部分を有するアクティブモデル部分の位置合わせが可能であるかどうかを効果的に決定する。ブロック1045における決定は、たとえば、幾何学的誤差および/または測光誤差を決定することによって、ブロック1015におけるフレーム-モデル間追跡の一部として適用される技術を使用して予測されたビューの2つの集合の比較に基づくものとしてよい。ある場合に、他にもメトリックはあるがとりわけ、幾何学的誤差および/または測光誤差を含む加重誤差関数の出力が使用され、ブロック1045で決定を行うものとしてよく、たとえば、誤差が所与の閾値未満である場合に位置合わせが可能であるとみなされる。誤差関数に対する共分散尺度の固有値も評価され、たとえば、閾値と比較され、決定を行い得る。ブロック1045は、たとえば、姿勢を推定する際に使用するための変換を決定するために同様の方式で、予測されたフレームを互いの上にマッピングする変換を決定するステップも含み得る。この変換は、ブロック1030で行われたのと同様の決定で使用され得る、すなわち、最適化を制約するために使用される表面対応関係の一部をなすものとしてよく、これは、モデルの位置合わせが可能であるかどうかを決定するために使用されるメトリックに寄与し得る。
【０１４３】
ブロック1045で決定が肯定的である場合、モデルのアクティブ部分および非アクティブ部分の変形は、ブロック1040で実行される。これは、ブロック1045の評価の一部として決定される変換を適用するステップを含み得る。ここでまた、ブロック1040は、変形パラメータの集合を、たとえば、最適化の結果として、決定するステップを含むものとしてよく、それらのパラメータは、変形グラフの一部をなすものとしてよい。ブロック1040は、グラフを使用してそれらのパラメータを適用し三次元モデルを構成する点を変形させるステップを含み得る。ブロック1040の出力は、すべての見える非アクティブ位置要素、たとえば、非アクティブモデルフレーム内で見えるものをアクティブになるように設定し得る。
【０１４４】
最後に、ブロック1050で、ブロック1005において受信された深度および色フレームがブロック1040の結果得られる変形されたモデルと融合される。ブロック1045における決定が否定的である場合、モデル変形は実行され得ず、イメージデータは変形されていないモデルと融合され得る。
【０１４５】
ブロック1050に続いて、イメージデータのその後のフレームについてこの方法が繰り返され、たとえば、ブロック1005に戻り、深度および色データの次のフレームが受信されるものとしてよい。次いで、ブロック1050で出力される融合されたモデルは、ブロック1010で改訂されたアクティブモデルの深度および色フレームを生成し、たとえば、次のフレームと突き合わせて追跡するために使用され得る。ブロック1010の繰り返しの後、ブロック1025の合致に後で使用するために表現が記憶され得る。
【０１４６】
上で説明されているいくつかの方法は、きつい局所的ループ閉鎖を達成するために三次元モデルのアクティブ領域をモデルの非アクティブ領域と強く整列させる。これは、表面要素モデルを使用するときの表面に関するものであってよい。モデルのアクティブ部分が非アクティブ部分から遠くまでドリフトしすぎて局所的整列が収束しない場合、外観ベースの大域的ループ閉鎖法が使用され、これにより、たとえば、モデルの表面に関して、きつい大域的ループ閉鎖およびモデル一貫性のためにモデルのアクティブ部分を下にある非アクティブ部分と再整列させる変形をブートストラップし得る。
【０１４７】
本明細書で説明されているいくつかのシステム構成要素および方法は、非一時的記憶媒体上に記憶可能であるコンピュータプログラムコードを用いて実装され得る。図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を計算させるステップをさらに含み、モデルは複数の要素を含み、各要素は三次元における位置を有する。
【０１４８】
ある場合に、命令1170は、定義1150内の表面要素が最後に更新された時刻などの、各部分に対する少なくとも1つの観測特性に基づきモデルをアクティブ部分と非アクティブ部分とにセグメント分割する少なくとも1つのサブ命令を含む。命令1170は、また、イメージデータ内の所与のフレームについて、所与のフレームに対する深度データおよび色データをモデルから導出されたモデルフレームに対する予測された深度および色データと比較することによって撮像デバイスの推定された姿勢を決定するサブ命令と、撮像デバイスの推定された姿勢を使用してモデルフレームに対する予測された深度および色データを更新するサブ命令と、モデルのアクティブ部分および非アクティブ部分のうちの少なくとも一方に関連付けられている要素を変換することによってモデルのアクティブ部分とモデルの非アクティブ部分とを整列させるサブ命令と、所与のフレームに対する深度データと色データとを使用してモデルの整列されたアクティブ部分を更新するサブ命令とを含む。
【０１４９】
本明細書で説明されているいくつかの例では、三次元空間の詳細三次元モデルを生成または更新する問題に対して、フレーム-モデル間追跡および非剛体的変形と組み合わせた時間窓データ融合を使用したアプローチをとる。多くの小さな局所的モデル-モデル間ループ閉鎖をより大規模な大域的ループ閉鎖と併せて組み込むことによって、モデルの確率分布のモードに近い状態を保つか、または姿勢グラフ最適化もしくは後処理ステップを使用することなくリアルタイムで大域的に一貫性のある再構築をマッピングし、生成することが可能である。たとえば、フレーム毎の、頻繁な非剛体的モデル変形の使用は、カメラの軌跡推定および表面再構築の品質の両方を改善する。このアプローチは、長さ方向に規模が大きい「廊下に似た」カメラの動きおよびよりループの多い包括的な部屋スキャン軌跡の両方においても有効である。
【０１５０】
上記の例は、例示的であると理解されるべきである。さらなる例も企図される。ある場合に、モデルエンジンは、本明細書で説明されている変形技術を適用し、および/またはモデルセグメンターおよび位置合わせエンジンのうちの1つまたは複数の特定の特徴なしで表面要素モデルを使用するように構成され得る。1つの例に関して説明されている特徴は、単独で、または説明されている他の特徴と組み合わせて使用されてよく、これらの例のうちの他のものの1つまたは複数の特徴と組み合わせて、またはこれらの例の他のものと組み合わせても使用され得ることは理解されるべきである。さらに、上で説明されていない等価形態および修正形態も、本発明の範囲から逸脱することなく採用されてよく、これは付属の請求項において定義される。
【符号の説明】
【０１５１】
100  第1の例
110  三次元空間
115  物理的物体
120  キャプチャデバイス
120-A  キャプチャデバイス
120-B  キャプチャデバイス
130  第2の例
140  モバイルデバイス
145  アクチュエータ
150  例
160  モバイルデバイス
170  法線軸
200  例
210  キャプチャデバイス
210-A  第1のキャプチャデバイス
210-B  第2のキャプチャデバイス
220  イメージデータ
220-A  イメージデータ
220-B  イメージデータ
230  例
240  フレーム
250  深度データ
260  測光データ
270  構成
280  深度データ
290  測光データ
300  例
310  装置
320  イメージデータ
330  イメージ取得インターフェース
340  モデルエンジン
350  三次元モデル
360  モデルセグメンター
370  位置合わせエンジン
400  例
410  ロボットデバイス
420  キャプチャデバイス
430  モデル生成器
440  データストレージデバイス
450  三次元モデル
460  ナビゲーションエンジン
470  移動アクチュエータ
500  例
505  イメージ取得インターフェース
515  フレーム-モデル間追跡構成要素
520  アクティブモデルフレーム生成器
525  モデル融合構成要素
530  三次元モデル
535  モデルセグメンター
540  「アクティブ」部分
545  「非アクティブ」部分
550  非アクティブモデルフレーム生成器
560  位置合わせエンジン
610  データ構造体
620  表面要素または「サーフェル」
700  例
710  位置合わせエンジン
720  データストレージデバイス
730  表現
740  モデルデフォーマー
750  三次元モデル
760  変形グラフ
770  三次元モデル
1000  プロセス
1100  例
1110  プロセッサ
1120  コンピュータ読み取り可能な記憶媒体
1130  コンピュータ読み取り可能な命令
1140  イメージデータ
1150  表面要素定義
1160  命令
1170  命令
【図１Ａ】
2018520425.tif 000029
【図１Ｂ】
2018520425.tif 000030
【図１Ｃ】
2018520425.tif 000031
【図２Ａ】
2018520425.tif 000032
【図２Ｂ】
2018520425.tif 000033
【図２Ｃ】
2018520425.tif 000034
【図３】
2018520425.tif 000035
【図４】
2018520425.tif 000036
【図５】
2018520425.tif 000037
【図６Ａ】
2018520425.tif 000038
【図６Ｂ】
2018520425.tif 000039
【図７】
2018520425.tif 000040
【図８】
2018520425.tif 000041
【図９】
2018520425.tif 000042
【図１０】
2018520425.tif 000043
【図１１】
2018520425.tif 000044
【国際調査報告】
2018520425.tif 000045
2018520425.tif 000046
2018520425.tif 000047