(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
本明細書で説明するいくつかの例により、3次元(3D)空間の意味論的にラベリングされた表現がビデオデータから生成されることが可能になる。説明する例では、3D表現は、面要素すなわち「サーフェル」表現であり、ここで、空間の幾何形状は、3D座標系内で定義される複数の面を使用してモデル化される。ビデオデータのフレームの空間要素に対するオブジェクトラベル確率値が、2次元画像分類器を使用して決定され得る(605)。空間要素に対応する面要素が、フレームについての推定される姿勢を使用する、面要素表現の投影に基づいて識別される(610)。面要素に対するオブジェクトラベル確率値は、次いで、対応する空間要素に対するオブジェクトラベル確率値に基づいて更新される(615)。このことは、ビデオデータの中に存在するオブジェクトの意味論的にラベリングされた3D面要素表現をもたらす。このデータにより、コンピュータビジョン用途および/またはロボティック用途が3D表現をよりよく利用することが可能になる。
前記畳み込みニューラルネットワークが、ビデオデータのフレームごとにピクセルマップのセットとして前記オブジェクトラベル確率値を出力するように構成され、前記セットの中の各ピクセルマップが、利用可能なオブジェクトラベルのセットの中の異なるオブジェクトラベルに対応する、請求項6に記載の方法。
前記2次元画像分類器が、前記畳み込みニューラルネットワークの出力部に通信可能に結合された逆畳み込みニューラルネットワークを備える、請求項6または7に記載の方法。
前記対応インターフェースが、前記面要素表現の空間変形に続いて更新済みの対応を提供するように構成され、前記空間変形が、前記ビデオデータ内でループ閉鎖を成立させ、
前記意味論的オーグメンタが、第1の面要素に対するオブジェクトラベル確率値を、以前に第2の面要素に対応していた空間要素に対するオブジェクトラベル確率値を使用して更新するために、前記更新済みの対応を使用する、
請求項15に記載の装置。
前記画像分類器インターフェースが、ビデオデータの所与のフレームに対するそれぞれの複数のオブジェクトラベルに対応する複数の画像マップを受信するように構成され、各画像マップが、関連するオブジェクトラベルに対する確率値を示すピクセル値を有する、請求項15または16に記載の装置。
前記正則化器が、前記面要素表現における面要素に対する前記オブジェクトラベル確率値に、条件付きランダムフィールドを適用するように構成される、請求項18に記載の装置。
前記正則化器が、面要素に割り当てられたオブジェクトラベル確率値を、面要素位置、面要素色、および面要素法線のうちの1つまたは複数に基づいて正則化するように構成される、請求項18または19に記載の装置。
前記意味論的オーグメンタが、前記面要素に割り当てられた前記オブジェクトラベル確率値に基づいて、1つまたは複数の面要素のセットを3次元オブジェクト定義と交換するように構成される、請求項15から20のいずれか一項に記載の装置。
前記面要素表現における各面要素が、少なくとも、3次元における前記面要素の位置を定義するデータ、および3次元における前記面要素にとっての法線ベクトルを定義するデータを備え、各面要素が、3次元空間の中で2次元エリアを表す、請求項15から21のいずれか一項に記載の装置。
前記位置合わせエンジンが、前記3次元面要素表現のアクティブ部分を前記3次元面要素表現の非アクティブ部分と整合させるために、変形グラフを使用するように構成され、前記変形グラフが、面要素のための初期化時間に基づいて算出され、前記変形グラフが、整合中に所与の面要素を修正するために使用されるべき、前記所与の面要素にとっての面要素ネイバーのセットを示す、請求項24または25に記載のビデオ処理システム。
前記ビデオ収集インターフェースから取得された前記ビデオデータのフレームに対するオブジェクトラベル確率分布を算出するための、前記画像分類器インターフェースに通信可能に結合された2次元画像分類器
を備える請求項23から26のいずれか一項に記載のビデオ処理システム。
前記畳み込みニューラルネットワークが、ビデオデータのフレームごとにピクセルマップのセットとして前記オブジェクトラベル確率値を出力するように構成される、請求項28に記載のビデオ処理システム。
前記2次元画像分類器が、前記畳み込みニューラルネットワークの出力部に通信可能に結合された逆畳み込みニューラルネットワークを備える、請求項28または29に記載のビデオ処理システム。
前記ナビゲーションエンジンが、前記3次元面要素表現における面要素に割り当てられた前記オブジェクトラベル確率値に基づいて、部屋にとっての入口点および出口点を識別するように構成される、請求項31に記載のロボティックデバイス。
深度データおよび色データのうちの1つまたは複数を備えるビデオデータのフレームを記録するように構成された少なくとも1つのキャプチャデバイスであって、前記深度データが、複数の画像要素にとっての前記キャプチャデバイスからの距離を示す、キャプチャデバイスと、
請求項15から22のいずれか一項に記載の装置、または請求項23から30のいずれか一項に記載のビデオ処理システムと
を備えるモバイルコンピューティングデバイス。
プロセッサによって実行されたとき、コンピューティングデバイスに、請求項1から14のいずれか一項に記載のビデオ処理方法を実行させるコンピュータ実行可能命令を備える、非一時的コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0037】
本明細書で説明するいくつかの例により、3D空間の意味論的にラベリングされた3D表現がビデオデータから生成されることが可能になる。このことは、シーンの中で見ることができる「オブジェクトを検出すること」と呼ばれ、「検出」とは、適用可能なクラスラベルのセットに対する確率を決定するプロセスを指すことがあり、「オブジェクト」とは、物質存在を伴う、たとえば、ロボットがそれと相互作用し得る、任意の視覚可能なモノまたはエンティティを指すことがある。「オブジェクト」および「クラス」という用語は、同義的に使用され、その両方は、実世界エンティティに対するラベルまたは識別子を指す。説明する例では、マップまたはモデルと呼ばれることもある3D表現は、面要素すなわち「サーフェル(surfel)」表現であり、ここで、空間の幾何形状は、3D座標系内で定義される複数の面またはエリアを使用してモデル化される。表現内の所与のサーフェルが、要素に関連するオブジェクトを識別する関連するラベルデータ(たとえば、文字列またはキー)を有し、すなわち、オブジェクトが検出されるという点で、3D表現は意味論的にラベリングされる。ここでのオブジェクトは広く考えられ、多くの中でも、壁、ドア、床、および人々、ならびに家庭、オフィス、および/または屋外スペースの中の家具、他のデバイス、および従来のオブジェクトなどの、エンティティを含む。このようにして、サーフェルは、その幾何特性または視覚特性(たとえば、色)を越えてサーフェルに意味を提供する、追加データを有する。このデータにより、コンピュータビジョン用途および/またはロボティック用途が3D表現をより良好に利用することが可能になる。たとえば、家庭用ロボットのためのマップが空間内のオブジェクトを識別するデータを備える場合、ロボットは、「ドア」を「壁」と区別することができる。したがって、幾何学的視点から類似である(たとえば、ドアおよび壁が両方とも垂直面である)マップ特徴は、区別されるとともに移動のために使用されてよく、たとえば、この情報は、次いで、空間に入りまたは空間から出るためにロボットによって使用され得る。ラベルは、確率的に割り当てられてよく、ナビゲーション中に判断がベイズ方式で更新されることを可能にする。
【0038】
本明細書で説明するいくつかの例は、特に15Hz以上のフレームレートでリアルタイムビデオフィードを処理することに適する。このことは、姿勢グラフの計算に依拠しない、空間の表現を使用することによって可能であり、フレームから表現への追跡および融合はフレームごとに行われ、表現はループ閉鎖イベントの検出に続いて空間変形される。いくつかの例では、表現は、アクティブ部分および非アクティブ部分に分割され、アクティブ部分だけが表現を更新するために使用され、非アクティブ部分は表現を更新するために使用されない。この更新は、ビデオデータのフレームを表現と融合させること、たとえば、新たなサーフェルを決定すること、既存のサーフェルを修正すること、または古いサーフェルを削除することを備えてよい。空間の新たな観測に続いて表現を更新すべきどの時点においても、空間の表現のサブセットしか使用されなくてよいので、このことは計算量的な要求を低減する助けとなる。表現を更新することに加えて、アクティブ部分はまた、表現に対するキャプチャデバイスのロケーションおよび向きの正確な現在の表現を決定するようにシークする、追跡動作において使用され得る。再び、空間の表現のサブセットしか使用しないことにより、空間の完全な表現に基づいて追跡することと比較して、計算量的な要求が低減されることが可能になる。
【0039】
本明細書で説明するいくつかの例は、たとえば、オブジェクトが2回以上通過され、かつ/または異なる角度から見られる場合、観測のループを備えるビデオデータにとっての検出確度を高める。例では、サーフェルに関連するクラスまたはオブジェクトラベル確率は、データの新たなフレームに基づいて絶えず更新されている。表現の既存の部分が再観測されるとき、ループ閉鎖イベントが検出され、サーフェルは、空間の一貫した大域マップを提供するように柔軟に変形されるが、割り当てられた確率は維持される。したがって、サーフェル表現での確率更新動作において、変形に続いて確率の新たなセットが使用され得る。テストでは、このことは検出確度における改善された性能をもたらしている。本質的に、「ループの多い」運動により、所与のオブジェクトの複数の別個の観測が可能になる。これらの別個の観測は各々、2Dオブジェクト分類のセットを提供する。変形プロセスは、次いで、別個のフレームからの2D分類確率がサーフェルの同じセットに一貫して適用されることを意味する。場合によっては、この変形は柔軟であってよく、サーフェルに変換を適用するために変形グラフを使用してよい。変形グラフは低密度であってよく、かつ/または空間の中に埋め込まれてよく、たとえば、サーフェルに関連付けられてよい。これらの技法は、姿勢グラフを必要とするもの、たとえば、画像データの独立したキーフレームを厳密に変換するために使用される、カメラデバイスのロケーションおよび向きの確率的表現とは異なる。実際、表現の異なる部分を整合させるとともに適切な場合に変形させることによって、姿勢グラフは必要とされず、たとえば、ドリフトおよび誤差が整合および変形によって補正され得るとき、どの時点においても、正しい姿勢を追跡する必要はさほどない。このことは、再び、リアルタイム動作を支援し、処理を簡略化する。
【0040】
図1Aおよび
図1Bは、3D空間およびその空間に関連するビデオデータのキャプチャの一例を概略的に示す。
図1Cは、次いで、空間を見ている時にビデオデータを生成するように構成されたキャプチャデバイスを示す。これらの例は、本明細書で説明するいくつかの特徴をよりよく説明するために提示され、限定的であると見なされるべきでなく、いくつかの特徴は、説明を簡単にするために省略または簡略化されている。
【0041】
図1Aは、3次元空間110の例100を示す。3次元空間110は、内部および/または外部の物理的空間、たとえば、部屋または地理的ロケーションの少なくとも一部分であってよい。3次元空間110は、この例100では、3次元空間内に位置するいくつかの物理的オブジェクト115を備える。これらのオブジェクト115は、特に、人々、電子デバイス、家具、動物、建物部分、および機器のうちの1つまたは複数を備えることがある。
図1Aにおける3D空間110は下面とともに示されるが、このことは、すべての実装形態において事実である必要はなく、たとえば、環境は空中または地球外空間内であってよい。
【0042】
例100はまた、3D空間110に関連するビデオデータをキャプチャするために使用され得る、様々な例示的なキャプチャデバイス120を示す。キャプチャデバイス120は、3D空間110を観測することに由来するデータをデジタル形式またはアナログ形式のいずれかで記録するように構成されている、カメラを備えてよい。場合によっては、キャプチャデバイス120は移動可能であり、たとえば、3D空間110の様々な観測部分に対応する異なるフレームをキャプチャするように構成されてよい。キャプチャデバイス120は、静止した取り付け台に関して移動可能であってよく、たとえば、3次元空間110に関してカメラの位置および/または向きを変更するためのアクチュエータを備えてよい。別の場合には、キャプチャデバイス120は、人間のユーザによって操作および移動されるハンドヘルドデバイスであってよい。
【0043】
図1Aにおいて、複数のキャプチャデバイス120はまた、3D空間110内で移動するように構成されるロボティックデバイス130に結合されるように示される。ロボティックデバイス130は、自律的な空中および/または地上のモバイルデバイスを備えてよい。本例100では、ロボティックデバイス130は、デバイスが3D空間110をナビゲートすることを可能にするアクチュエータ135を備える。これらのアクチュエータ135は本図では車輪を備え、他の場合には、軌道、穴を掘るメカニズム、ローターなどを備えることがある。1つまたは複数のキャプチャデバイス120-A、Bは、そのようなデバイス上に静止してまたは移動可能に取り付けられてよい。各キャプチャデバイス120-A、Bは、異なるタイプのビデオデータをキャプチャしてよく、かつ/またはステレオ画像ソースを備えてよい。ある場合には、キャプチャデバイス120-Aは、たとえば、赤外線、超音波、および/またはレーダー(光検出および測距- LIDAR技術を含む)などの遠隔感知技術を使用して、深度データをキャプチャしてよく、キャプチャデバイス120-Bは、光度データ、たとえば、カラー画像またはグレースケール画像をキャプチャする(またはその逆も同様)。ある場合には、キャプチャデバイス120-A、Bのうちの1つまたは複数が、ロボティックデバイス130とは独立に移動可能であってよい。ある場合には、キャプチャデバイス120-A、Bのうちの1つまたは複数が、たとえば、角度のついた円弧をなして回転し、かつ/または360度だけ回転する、回転メカニズム上に取り付けられてよく、かつ/あるいはシーンのパノラマ(たとえば、全360度までのパノラマ)をキャプチャするように、適応された光学系とともに構成されてよい。
【0044】
図1Bは、キャプチャデバイス120および/またはロボティックデバイス130にとって利用可能な自由度の例140を示す。120-Aなどのキャプチャデバイスの場合には、デバイスの方向150は、レンズまたは他のイメージング装置の軸と共線的であってよい。3つの軸のうちの1つを中心とする回転の一例として、図では上下軸155が示される。同様に、ロボティックデバイス130の場合には、モバイルデバイスの整合の方向145が定義されてよい。これはモバイルデバイスの対面、および/または進行方向を示し得る。上下軸155も示される。キャプチャデバイス120またはロボティックデバイス130に関して単一の上下軸だけが示されるが、これらのデバイスは、以下で説明するように、140として概略的に示す軸のうちのいずれか1つまたは複数の周囲で回転し得る。
【0045】
より一般的には、キャプチャデバイスの向きおよびロケーションは、6つの自由度に関して3次元で定義されてよく、ロケーションは、3つの次元の各々の中で、たとえば、[x,y,z]座標によって定義されてよく、向きは、3つの軸の各々を中心とした回転を表す角度ベクトル、たとえば、[θ
x,θ
y,θ
z]によって定義されてよい。いくつかの実装形態では、キャプチャデバイスは、これらの6つの自由度の制限されたセットを基準として定義されてよく、たとえば、地上車両におけるキャプチャデバイスにとってz次元は一定であってよい。ロボティックデバイス130の実装形態などのいくつかの実装形態では、別のデバイスに結合されたキャプチャデバイスの向きおよびロケーションは、そうした他のデバイスの向きおよびロケーションを基準として定義されてよく、たとえば、ロボティックデバイス130の向きおよびロケーションを基準として定義されてよい。本明細書で説明する例では、キャプチャデバイスの向きおよびロケーションは、キャプチャデバイスの姿勢として定義される。キャプチャデバイスが、時間t+1において時間tとは異なる姿勢を有し得るように、キャプチャデバイスの姿勢は経時的に変わることがある。キャプチャデバイスを備えるハンドヘルドのモバイルコンピューティングデバイスの場合には、ハンドヘルドデバイスが3D空間110内でユーザによって移動されるにつれて姿勢が変わることがある。
【0046】
図1Cは、キャプチャデバイス構成の一例を概略的に示す。
図1Cの例160では、キャプチャデバイス165は、ビデオデータ170を生成するように構成される。ビデオデータは、時間とともに変わる画像データを備える。キャプチャデバイス165がデジタルカメラである場合、このことは直接実行されてよく、たとえば、ビデオデータ170は、電荷結合デバイスまたは相補型金属酸化物半導体(CMOS)センサーからの処理済みデータを備えてよい。間接的に、たとえば、アナログ信号ソースを変換することなどの、他の画像ソースを処理することを通じて、ビデオデータ170を生成することも可能である。
【0047】
図1Cにおいて、画像データ170は、複数のフレーム175を備える。各フレーム175は、
図1における110などの3D空間の画像がキャプチャされる時間期間の中の特定の時間tに関係し得る(すなわち、F
t)。フレーム175は、概して、測定されたデータの2D表現からなる。たとえば、フレーム175は、時間tにおいて記録されたピクセル値の2Dアレイまたは行列を備え得る。
図1Cの例では、ビデオデータ内のすべてのフレーム175は同じサイズであるが、このことはすべての例において事実である必要はない。フレーム175内のピクセル値は、3D空間の特定の部分の測定値を表す。
図1Cの例では、各フレーム175は、2つの異なる形式の画像データに対する値を備える。値の第1のセットは、深度データ180(たとえば、D
t)に関係する。深度データは、キャプチャデバイスからの距離の表示を備えてよく、たとえば、各ピクセルまたは画像要素値は、キャプチャデバイス165からの、3D空間の一部分の距離を表し得る。値の第2のセットは、光度データ185(たとえば、色データC
t)に関係する。これらの値は、所与の解像度に対して赤色、緑色、青色のピクセル値を備えてよい。他の例では、他の色空間が使用されてよく、かつ/または光度データ185は、モノピクセル値またはグレースケールピクセル値を備えてよい。ある場合には、ビデオデータ170は、圧縮ビデオストリームまたはファイルを備えてよい。この場合、ビデオデータのフレームは、ストリームまたはファイルから、たとえば、ビデオデコーダの出力として再構築され得る。ビデオデータは、ビデオストリームまたはファイルの事前処理に続いて、メモリロケーションから取り出されてよい。
【0048】
図1Cのキャプチャデバイス165は、RGBデータ185と深度(「D」)データ180の両方をキャプチャするように構成される、いわゆるRGB-Dカメラを備えてよい。ある場合には、RGB-Dカメラは、ビデオデータを経時的にキャプチャするように構成される。どの時点においても、深度データ180およびRGBデータのうちの1つまたは複数が使用されてよい。場合によっては、RGB-Dデータは、4つ以上のチャネルを有する単一のフレームの中に組み合わせられてよい。深度データ180は、赤外線レーザープロジェクタが、3次元空間の観測される部分にわたって赤外光のパターンを投影し、そうしたパターンが、次いで、モノクロCMOSイメージセンサーによって撮像される構造化照明手法などの、当技術分野で知られている1つまたは複数の技法によって生成されてよい。これらのカメラの例は、米国内のワシントン州レドモンドのMicrosoft Corporationによって製造されるKinect(登録商標)カメラレンジ、台湾、台北のASUSTeK Computer Inc.によって製造されるXtion(登録商標)カメラレンジ、および米国内のカリフォルニア州クパチーノのApple Incの子会社、PrimeSenseによって製造されるCarmine(登録商標)カメラレンジを含む。いくつかの例では、RGB-Dカメラは、タブレット、ラップトップ、またはモバイル電話などのモバイルコンピューティングデバイスの中に組み込まれてよい。他の例では、RGB-Dカメラは、固定コンピューティングデバイス用の周辺装置として使用されてよく、または専用の処理能力を有するスタンドアロンデバイスに埋め込まれてよい。ある場合には、キャプチャデバイス165は、結合されたデータ記憶デバイスの中にビデオデータ170を記憶するように構成されてよい。別の場合には、キャプチャデバイス165は、たとえば、データのストリームとして、またはフレームごとに、結合されたコンピューティングデバイスへビデオデータ170を送信してよい。結合されたコンピューティングデバイスは、たとえば、ユニバーサルシリアルバス(USB)接続を介して直接結合されてよく、または間接的に結合されてよく、たとえば、ビデオデータ170は、1つまたは複数のコンピュータネットワークを介して送信されてよい。また別の場合には、キャプチャデバイス165は、ネットワーク接続ストレージデバイスに記憶するために、1つまたは複数のコンピュータネットワークを横断してビデオデータ170を送信するように構成されてよい。ビデオデータ170は、フレームごとにまたはバッチ単位で記憶および/または送信されてよく、たとえば、複数のフレームが一緒にバンドルされてよい。深度データ180は、光度データ185と同じ解像度またはフレームレートである必要はない。たとえば、深度データ180は、光度データ185よりも低い解像度で測定されてよい。後で説明する例では、それが使用される前に、ビデオデータ170に対して1つまたは複数の事前処理動作も実行されてよい。ある場合には、事前処理は、2つのフレームセットが共通のサイズおよび解像度を有するように適用されてよい。場合によっては、別個のキャプチャデバイスが、それぞれ、深度データおよび光度データを生成してよい。本明細書で説明しないさらなる構成も可能である。
【0049】
場合によっては、キャプチャデバイスは、深度データを生成するための事前処理を実行するように構成されてよい。たとえば、ハードウェア感知デバイスが、視差データ、すなわち複数のステレオ画像の形態のデータを生成してよく、ソフトウェアおよびハードウェアのうちの1つまたは複数が、このデータを処理して深度情報を算出するために使用される。同様に、深度データは、代替として、深度情報を再構築するために使用され得る位相画像を出力するタイムオブフライトカメラ(time of flight camera)から生じることがある。したがって、任意の好適な技法が、画像データ170の一部を形成する深度データを生成するために使用されてよい。
【0050】
図1Cは一例として提供され、諒解されるように、図において示すものとは異なる構成が、以下で説明する方法およびシステムにおける使用のためにビデオデータ170を生成するために使用されてよい。ビデオデータ170は、キャプチャデバイスを用いた3D空間のキャプチャまたは記録されたビューを表す2次元形式で構成される任意の測定された感覚入力をさらに備えてよい。たとえば、これは、特に、深度データまたは光度データ、電磁的イメージング、超音波イメージング、およびレーダー出力のうちのただ1つを備えてよい。これらの場合には、特定の形式のデータに関連するイメージングデバイス、たとえば、深度データを有しないRGBデバイスのみが必要とされてよい。上記の例では、深度データD
tのフレームは、深度値の2次元行列を備え得る。これは、グレースケール画像として表されてよく、たとえば、ここで、x
R1×y
R1という解像度を有するフレームの中の各[x,y]ピクセル値は、3次元空間における面のキャプチャデバイスからの距離を表す深度値dを備える。光度データC
tのフレームは、カラー画像を備えてよく、ここで、x
R2×y
R2という解像度を有するフレームの中の各[x,y]ピクセル値は、RGBベクトル[R,G,B]を備える。一例として、データの両方のセットの解像度が、640×480ピクセルであってよい。
【0051】
ビデオデータが3D空間または3Dシーンの観測を表すことを仮定すれば、
図2は、一例200によるこのビデオデータの中のオブジェクトを検出するための装置210を示す。装置210は、画像分類器インターフェース220および対応インターフェース230を備える。インターフェース220、230の両方は、意味論的オーグメンタ240に通信可能に結合されている。
【0052】
画像分類器インターフェース220は、ビデオデータの個々のフレームに対する2Dオブジェクトラベル確率分布250を受信するように構成される。たとえば、ビデオデータの所与のフレームに対して、画像分類器インターフェース220は、1つまたは複数の画像の対応するセットを受信するように構成されてよく、画像の中のピクセル値は、オブジェクトラベル確率値を表す。このコンテキストにおけるオブジェクトラベルまたはクラスラベルは、特定のエンティティを識別する所与のラベル、タグ、または文字列を備える。オブジェクトラベルまたはクラスラベルは、「椅子」または「床」などの人間が読むことのできる文字列、あるいは「椅子」または「床」を定義するデータ用のユニフォームリソース識別子(URI:uniform resource identifier)(たとえば、「12345」)などのデータ用の識別子を備え得る。4つのオブジェクトラベル「[「ドア」、「床」、「壁」、「家具」]」を有する簡単なシステムでは、4つの画像のセットが画像分類器インターフェース220によって受信され得、画像ごとのピクセル値は、それぞれのオブジェクトラベルに対する確率値を表し、たとえば、「床」に対する画像は、0〜1の範囲にマッピング可能なピクセル値を有してよく、各値は、ビデオデータの所与のフレームの中の対応するピクセルが部屋の床の観測である確率を示す。別の場合には、1つの画像が受信され得、各ピクセルは、複数の関連する確率値を有し(たとえば、関連するアレイを有し)、確率値のセット(たとえば、その長さのアレイ)は、利用可能なオブジェクトラベルのセットを表す。他の例では、画像分類器インターフェース220において受信されるデータは、ピクセル、たとえば、ピクセルのセットとは異なるビデオデータの所与のフレームのエリアに関連付けられてよく、または単純な場合には、利用可能なオブジェクトラベルごとの単一の確率値であってよい。
【0053】
対応インターフェース230は、ビデオデータの所与のフレームに対して、所与のフレーム内の空間要素と3D面要素(「サーフェル」)表現270における面要素との間の対応を示す、データ260を受信するように構成される。たとえば、ある場合には、データ260が画像を備えることがあり、画像の中のピクセルは、対応が存在する場合、サーフェル表現270における特定のサーフェルを示す。別の場合には、対応インターフェース230は、ビデオデータのフレームの所与の空間要素、たとえば、ピクセルまたはピクセルのセットの形式での空間要素に関連する、サーフェルを取得するための要求を送るように構成されてよい。この場合、データ260は、サーフェル表現270における特定のサーフェルへの識別子またはリンクを含む応答を備え得る。
図2において、所与のフレームに対する空間要素とサーフェルとの間の対応は、フレームについての推定されたカメラ姿勢を使用する、サーフェル表現の投影に基づいて決定される。場合によっては、たとえば、表現において、対応する空間が、サーフェルが存在しないブランクまたは空である場合、サーフェルは空間要素に関連付けられなくてよい。
【0054】
図2の意味論的オーグメンタ240は、ビデオデータの所与のフレームに対して、対応インターフェース230からのデータ260、および画像分類器インターフェースからのオブジェクトラベル確率分布250を使用して、3Dサーフェル表現における個々のサーフェルに割り当てられたオブジェクトラベル確率値280を更新するように構成される。詳細には、意味論的オーグメンタ240は、ビデオデータの所与のフレームに対して、対応インターフェース230によって受信されたデータ260を使用して、画像分類器インターフェース220によって受信された2次元オブジェクトラベル確率分布250を、対応するサーフェルに割り当てられたオブジェクトラベル確率値280に適用するように構成される。
【0055】
たとえば、一実装形態では、2Dオブジェクトラベル確率分布250および対応データ260は、同等のサイズの2Dアレイ(たとえば、X×Yピクセルの画像、ただし、X×Yは、ビデオグラフィックスアレイ(VGA)、スーパーVGA(SVGA)以上などの、一般の解像度であってよい)を備えてよい。アレイは、同じサイズとなるように構成されてよく、または適切にリサイズもしくはマッピングされてよい。この例に対して前者を想定すると、オブジェクトラベルごとに、オブジェクトラベル確率分布250内の対応する画像が最初に選択される。次いで、ピクセルごとに、対応するサーフェルがデータ260を使用して取り出される。たとえば、データ260の中のピクセル[128,56]は、特定の3D位置(たとえば、[34,135,99])における、または特定の識別子(たとえば、「SF1234」)を有するサーフェルを識別し得る。現在のオブジェクトラベルに対する既存の確率値が、次いで、識別されたサーフェルに対して取り出される。このことは、特定の識別子を有するサーフェル用のデータ定義を配置すること、およびデータ定義を更新することを備えてよい。既存の確率値は、次いで、所与のオブジェクトラベルに対応するオブジェクトラベル確率分布250の中で、画像の中のピクセル[128,56]における現在の確率値を使用して更新され得る。このことは、次いで、ピクセルごとに、かつオブジェクトラベル画像ごとに、繰り返される。
【0056】
いくつかの例では、対応インターフェース230は、サーフェル表現270の空間変形に続いて更新済みの対応を提供するように構成される。これは、変形グラフを使用する柔軟な空間変形であってよく、サーフェル表現におけるサーフェルは、前記グラフのノードを形成する。空間変形は、ビデオデータ内のループ閉鎖を成立させる。たとえば、このことは、キャプチャデバイスがシーンまたは空間の特定の一部を「再観測すること」、たとえば、サーフェル表現においてモデル化されるオブジェクトを、2回目にまたは異なる角度から見ることに関係し得る。本例では、意味論的オーグメンタ240は、更新済みの対応を使用して、以前に第2のサーフェルに対応していた空間要素に対するオブジェクトラベル確率値を使用して第1のサーフェルに対するオブジェクトラベル確率値を更新する。言い換えれば、ループ閉鎖イベントに続いて、空間変形がサーフェルの3D位置を修正し、そのことは、キャプチャデバイスの移動を伴わない後続のフレームのための更新動作において、対応データ260が異なり、したがって、移動がないことに起因してオブジェクトラベル確率分布250が同じままであるにもかかわらず、サーフェル確率値の異なるセットが更新されることを意味する。事実上、オブジェクトラベル確率値は、表現変形中にサーフェルに「追従」する。このことは、異なる時間においてまたは異なる角度で見られる、共通のオブジェクトに関連する予測が、正確にかつ一貫して組み合わせられることを意味する。このことはまた、オブジェクト検出確度を改善する。このことは、サーフェル表現または確率値の面倒な処理を伴わずに行われ、したがって、高速なリアルタイム動作を可能にする。
【0057】
図3Aは、上記で説明したようなサーフェル表現を提供するために使用され得るデータ構造310の概略表現を示す。データ構造310は、例のために示されるにすぎず、限定的として見られるべきでなく、データを記憶するための他の手法およびフォーマットが、実装形態に応じて使用されてよい。この場合、サーフェルモデルは、複数のサーフェル(surfel)(すなわち、面要素(SURFace ELement))用のデータ定義を備え、各サーフェルは、3D空間の中の2Dエリア(すなわち、面)を表す。場合によっては、サーフェル表現は、サーフェルデータ定義の無順序リストを備えてよい。この場合、各サーフェルは、少なくとも、3次元でのサーフェルの位置(すなわち、位置要素または位置成分)を定義するデータ、および3次元での面要素にとっての法線ベクトル(すなわち、要素に関連する面にとっての「対面」方向)を定義するデータを備える。このことは、
図3Bにおいて概略的に示される。「サーフェル」の1つの説明は、コンピュータグラフィックスおよびインタラクティブ技法に関する第27回年次会議の議事録ACM Press/Addison-Wesley Publishing Co.、2000年7月において公開されたような、Pfister、Hanspeterらによる論文「Surfels: Surface elements as rendering primitives」の中に見出され得る。
【0058】
図3Bは、面要素すなわち「サーフェル」320の概略表現を示す。サーフェル320は、3次元での面sを備える。サーフェルは、3次元での位置pを有する。
図3Aにおいて、この位置は、3次元座標、たとえば、x、y、およびz座標を定義するデータ「位置:p
x、p
y、p
z;」を使用して定義される。他の例では、他の座標系が使用されてよい。
図3Bにおいて、サーフェルはまた、3次元内に定義される法線ベクトルnを有する。
図3Aにおいて、この位置は、3次元のベクトル、たとえば、データ「法線:n
x、n
y、n
z;」を使用して定義される。方向は、ベクトル定義内で符号付き値を使用して示され得る。
【0059】
図3Aにおける例310はまた、各サーフェルに割り当てられるオブジェクトラベル確率値を示す。本例では、確率(「確率:{P
O1,P
O2,...,P
On}」、ただし、O
nは第nのオブジェクトに対するオブジェクトラベルを表す)は、サーフェル定義と一緒に記憶される。他の場合には、確率は、サーフェル識別子または外部キーを介してサーフェルに関連付けられる別個のルックアップテーブルまたはデータベースレコードの中に記憶されてよい。4つのオブジェクトラベル([「ドア」、「床」、「壁」、「家具」])を有する上記の単純な場合には、これらの確率値は、サーフェルが部屋の中の家具に関連しそうに思われることを示す[0.1,0.2,0.2,0.5]であってよい。
【0060】
図3Aにおける例310はまた、いくつかの例ではサーフェルを記述するために使用され得る、さらなるデータを有する。現在の場合には、サーフェルの面は、3D空間において円形または円盤状である。したがって、
図3Aおよび
図3Bにおける面は、データ「半径:r;」として提示されるように半径rによって定義される。各サーフェルの半径は、視覚可能な穴を最小化しながら所与の点の周囲の局所的な表面領域を表すことを意図する。他の例では、面を定義するために異なるデータが使用されてよく、たとえば、3次元内での面の広がりを示す異なる幾何学的定義および/または変数を使用してよい。
図3Aは、本例では、サーフェル定義が、面の色(「色:R、G、Β;」- この場合、RGB色空間が使用されるが、知られている任意の色空間が可能である)、サーフェルに対する重み(「重み:w;」- これは、新たな測定値をサーフェルと融合させる時に使用される実数値であってよい)、サーフェルが最初に生成された時間を示す初期化時間(「Init_Time:t0;」)、およびサーフェルが最後に更新または修正された時間を示す最終修正時間(「Last_Modified:t;」)を定義する、データも備えることを示す。サーフェルの属性を定義するデータが、実装形態に応じて追加、修正、または省略されてよいことを諒解されたい。
図3Aに示すように、複数のサーフェルは、リストの中で(たとえば、例では「{...}」の間で)定義され得る。
【0061】
図4は、
図2に示す装置210を使用し得るビデオ処理システムの一例を示す。
図4において、エンティティ410〜480は、
図2を参照しながら説明したエンティティ210〜280に相当する。
図4は、ビデオ収集インターフェース405をさらに示す。ビデオ収集インターフェース405は、ビデオデータのフレーム415をキャプチャデバイスから取得するように構成される。これは、
図1Cにおけるキャプチャデバイス165などのキャプチャデバイスによってアクティブに生成される、または以前に生成されている、ビデオデータであってよい。ビデオデータのフレーム415は、キャプチャデバイスと3D空間または3Dシーンとの間で経時的に行われている相対移動を特徴付ける。
【0062】
図4におけるビデオ収集インターフェース405は、画像分類器455ならびに同時位置決定およびマッピング(SLAM)システム465に通信可能に結合されている。画像分類器455とSLAMシステム465の両方は、ビデオデータのフレーム415を受信するように構成される。場合によっては、画像分類器455およびSLAMシステム465は、ビデオデータの同じフレームを受信することがある。他の場合には、画像分類器455は、SLAMシステム465によって受信されるビデオデータのフレームのサブセットを受信することがある。この場合、SLAMシステム465は、フレーム460と、融合されたサーフェル470の大域的に一貫したマップとの間の対応を提供する。意味論的オーグメンタ440は、画像分類器インターフェース420から受信された確率450を既存のサーフェル確率分布と融合させて、3D表現におけるサーフェル470ごとにオブジェクトまたはクラス確率480のセットを生成するという点で、
図2を参照しながら説明したように動作する。この場合、対応インターフェース430を介して受信された対応データ460に従って、適切なサーフェルが選択される。
【0063】
画像分類器455は、ビデオ収集インターフェース405から取得されたビデオデータのフレーム415に対するオブジェクトラベル確率分布450を算出するための、画像分類器インターフェース420に通信可能に結合された2次元画像分類器を備える。場合によっては、ビデオデータのフレーム415は、画像分類器455のネイティブな解像度に再スケーリングされてよい。たとえば、ビデオデータのフレーム415は、RGBピクセル値に対して双一次補間を使用して、224×224の解像度に再スケーリングされてよい。場合によっては、画像分類器455の出力も、対応データ460の解像度に適合するように再スケーリングされてよい。たとえば、画像分類器455の出力は、最近傍アップスケーリング方法を使用して、640×480の画像解像度に再スケーリングされてよい。
【0064】
画像分類器455は、様々な機械学習方法のうちの少なくとも1つを実施し得る。それは、特に、サポートベクトルマシン(SVM:support vector machine)、ベイジアンネットワーク、ランダム森、最近傍クラスタリング、および/またはニューラルネットワークを使用し得る。いくつかの例では、画像分類器455は、畳み込みニューラルネットワーク(CNN:convolutional neural network)を備えてよい。CNNは、複数の畳み込みレイヤ(たとえば、一例では16個)を有してよく、時々、非公式に「深層学習」手法と呼ばれる。ある場合には、CNNは、ビデオデータのフレームごとにピクセルマップ(たとえば、画像)のセットとしてオブジェクトラベル確率値を出力するように構成される。このことは、CNNの出力部に逆畳み込みニューラルネットワークを通信可能に結合することによって達成され得る。逆畳み込みレイヤを特徴付ける例示的なCNNのさらなる詳細は、H. Noh、S. Hong、B. Hanによる論文「Learning deconvolution network for semantic segmentation」(arXiv preprint arXiv:1505.04366-2015を参照)の中に見出され得る。画像分類器455は、好適なトレーニングに続いて高密度なピクセルごとの意味論的確率マップを出力するように、そのように構成されてよい。CNN画像分類器455に対する例示的な操作パラメータは、0.01という学習レート、0.9という運動量、および5×10
-4という重み減衰を備える。この場合、10,000回の反復の後、学習レートは1×10
-3まで低減されたが、トレーニングは20,000回の反復を行った。このテスト例では、元のCNN重みは、最初に一般の画像分類タスクに関連する画像のデータセット上で事前トレーニングされた。重みは、次いで、現在の3D意味論的ラベリングに関連するシーンセグメント化タスクのために微調整された。1つまたは複数のグラフィックス処理装置が、画像分類器455をトレーニングおよび/または実装するために使用され得る。
【0065】
ある場合には、画像分類器455は、ビデオデータのフレーム415を、
図1Cにおける光度データ185などの連続する光度(たとえば、RGB)画像の形式で受信する。いくつかの例では、画像分類器455は、光度データと同様に、またはその代わりに、深度データ、たとえば、
図1Cにおける180などの深度画像を受信するように適応される。したがって、画像分類器455は、RGB-Dデータの各々に対応する4つの入力チャネルを備えてよい。ある場合には、画像分類器455の深度チャネルは、3つの光度チャネルの平均強度を用いて初期化される。この場合、画像分類器455によって使用される重みを(たとえば、およそ32倍に)増大させることによって、0〜255値の色範囲が0〜8mの深度範囲に変換され得る。別の場合には、RGB-Dデータのうちのいずれか1つと同様に、またはその代わりに、画像分類器455は、入力データとしてサーフェル法線値を使用するように適応され得る。たとえば、入力画像は、キャプチャデバイスにとっての現在の推定される姿勢を使用する、2D画像平面上への3Dサーフェル表現の投影を備えてよく、画像の中の各ピクセル値は、投影されるサーフェルの法線値を備える。この場合、対応データ460は、法線データを含んでよく、画像分類器455のための入力として構成されてよい。
【0066】
画像分類器455は、ラベリングされた1つまたは複数のデータセット、すなわち、オブジェクトラベルが事前に割り当てられているビデオデータのフレームを使用して、トレーニングされてよい。たとえば、そのような1つのデータセットは、ECCV2012において公開された「Indoor Segmentation and Support Inference from RGBD Images」においてN. Silbermanらによって説明されるような、NYU深度データセットV2を備える。オブジェクトラベルまたはクラスラベルの個数は、適用例に依存し得る。1つのテストケースは13個のクラスラベルを特徴付けた。
【0067】
CNNが使用される場合には、ネットワークは、学習される画像フィルタまたはカーネルのレイヤを備えてよい。最下位レイヤにおいて、これらのフィルタは、単純な縁部およびブロブ検出器(たとえば、3×3行列)に相当し得、入力画像の小さいパッチとともに畳み込まれると、画像パッチが向きに関する「適合」縁部または色の適合ブロブを含む場合、大きいアクティブ化をもたらす。この場合、畳み込みとは、要素ごとの乗算および総和を指す。場合によっては、畳み込み演算は、相互相関計算を使用して近似され得る。畳み込みに続いて、非線形アクティブ化関数にアクティブ化が入力される。一例では、修正線形ユニット(Rectified Linear Unit)すなわちReLUが使用され得る(たとえば、出力=max(入力,0))。これに続いて、フィルタのさらなるレイヤが適用され、後続の各レイヤは、複雑な形状またはテクスチャを構築すべき縁部の組合せなどのもっと高いレベルの抽象性まで構築する。小さい近傍内の最大のアクティブ化だけが選択され次のレイヤに渡される場合、「マックスプーリング(max pooling)」と呼ばれるプロシージャも適用されてよい。このCNN処理の結果は、ダウンサンプリングされた画像である。プールされたアクティブ化のロケーションは、次いで、記憶され得る。さらなる畳み込み演算の後、「プールされない」アクティブ化が、元の記憶されたロケーションに設定され、かつ逆畳み込みフィルタが、アップスケーリングされたマルチチャネル特徴マップの中にアクティブ化を戻して「ペイント(painting)」して、類似のプロセスが「逆に」実行されてよい。最後に、元の画像におけるクラスごとピクセルごとのスコアのセットが、元の入力画像と同じスケールで計算される。このスコアは、ピクセルごとにクラスにわたってソフトマックス(softmax)関数を適用することによって、確率マップに変換される。この全体のニューラルネットワークは、すべてのピクセルにわたる正しいクラスの全部の負のログ確率を最小化するように、トレーニング画像の大きいセット上でエンドツーエンドでトレーニングされ得る。
【0068】
図4に戻ると、SLAMシステム465は、国際特許出願PCT/GB2016/051423に記載されているものなどのSLAMシステムを備えてよい。SLAMシステム465は、ビデオデータのフレーム415に基づいてサーフェル表現470を生成するように構成される。SLAMシステム465は、サーフェル表現470に空間変形を適用して、ビデオデータのフレーム415内で観測のループを閉鎖するように構成されてよい。この空間変形は、サーフェル表現における少なくとも1つのサーフェルに対して新たな3次元位置をもたらす。上記で説明したように、また以下でより詳細に説明するように、柔軟な空間変形が、変形グラフを使用して適用され得る。この場合、SLAMシステム465は、大域的に一貫したサーフェル表現を構築するための姿勢グラフを必要としない。生成されるサーフェル表現470が、典型的な対話式使用の間に頻繁に発生する小さいループ閉鎖および大きいループ閉鎖のうちの1つまたは複数の後、一貫したままとなるように自動的に変形されるので、このSLAMシステム465は、特に意味論的オーグメンタ440を伴う使用に適する。動作中に面表現が変形および補正されるので、個々のサーフェルは永続的に実世界エンティティに関連付けられたままとなり、このことにより、視点の広い変化にわたってフレームごとの意味論的予測の長期融合が可能になる。
【0069】
図5は、ビデオデータのフレームに適用され得る例示的なプロセスフローすなわちパイプライン500を示す。このプロセスフローは、意味論的にラベリングされた3D表現または観測される3D空間のマップを生成するために、SLAMシステム465などのSLAMシステムの構成要素が、210または410などのオブジェクトを検出するための装置と調和してどのように機能するのかを示す。
【0070】
図5の例では、到着フレームF
tごとに、カメラなどのキャプチャデバイスの姿勢が追跡される。このことは、反復的最密点(ICP:Iterative Closest Point)と光度(たとえば、RGB)整合との組合せを使用して実行され得る。この追跡は、フレームごとに新たな姿勢P
tを生み出してよく、姿勢は、「世界」フレームおよび「キャプチャデバイス」フレームを基準として定義される。新たなサーフェルが、次いで、姿勢を使用するサーフェル表現に追加され、既存のサーフェル情報は、サーフェル定義、たとえば、位置、法線、および色情報を改善するために、新たな根拠と組み合わせられる。ループ閉鎖イベントに対する追加のチェックが並行して実行され、ループ閉鎖検出時にサーフェル表現が最適化される。
【0071】
より詳細には、
図5において、SLAMシステムと意味論的オーグメンタの両方の構成要素が、ビデオ収集インターフェース505に通信可能に結合されている。これは、
図4からのビデオ収集インターフェース405を備えてよい。図において、ビデオ収集インターフェース505は、ビデオデータのフレームF
t(ただし、tは時間インデックスを備え得る)を供給する。
【0072】
図5に示すSLAMシステム構成要素は、フレームからモデルへの追跡構成要素515、アクティブフレーム生成器520、モデル融合構成要素525、モデルセグメンタ535、非アクティブフレーム生成器550、および位置合わせエンジン560を備える。これらの構成要素は、
図3Aおよび
図3Bに示すような形式であってよい3Dサーフェル表現530を生成するために、一緒に機能するように構成される。
図5はまた、画像分類器565、サーフェルからピクセルへのマッパ575、ベイズ更新エンジン585、および正則化器590を示す。この場合、ベイズ更新エンジン585は、オブジェクトを検出するための装置のコアを形成する。オブジェクトを検出するための装置は、たとえば、
図3Aに示すようにオブジェクトラベル確率をサーフェルに割り当てるために、サーフェル表現530を意味論的にラベリングするように構成される。本例では、これらはサーフェル表現530とともに記憶されるものと想定され、他の実装形態では、それらは別個のサーフェルリンク型(surfel-linked)データ記憶装置に記憶されてよい。
【0073】
フレームからモデルへの追跡構成要素515、モデル融合構成要素525、および画像分類器565は各々、ビデオ収集インターフェース505からビデオデータのフレームF
tを受信するように構成される。このデータは、キャプチャされるかまたは以前に記録されたビデオデータを表す時間インデックス付きデータ構造から取り出されてよく、かつ/あるいはライブビデオフィードの一部として供給されてよく、各場合において、データは、少なくとも1つのキャプチャデバイスによって現在提供されるフレームに関係する。上記で説明したように、一実装形態では、画像分類器565は、ビデオ収集インターフェース505から受信されるn個ごとのフレームのうちの1つ、すなわち、フレームからモデルへの追跡構成要素515およびモデル融合構成要素525によって受信されるフレームのサブセットを受信し得る。ある場合には、これは2
n個ごとのフレームの中の1つであってよい。
【0074】
ある場合には、国際特許出願PCT/GB2016/051423において記載されるように、セグメンタ535は、少なくとも1つの表現特性に基づいて、サーフェル表現530を少なくともアクティブ部分および非アクティブ部分にセグメント化するように構成される。少なくとも1つの表現特性は、所与のサーフェルにとっての作成時間、所与のサーフェルにとっての最終修正時間、およびサーフェルとキャプチャデバイスとの間の決定された距離のうちの、1つまたは複数を備えてよい。たとえば、サーフェルは、そのサーフェルが、最後に更新または修正されてからの(たとえば、データ融合にとってそれに関連する未加工画像データ値を有した)時間が、既定のδ
tよりも長いとき、非アクティブとして宣言されてよい。サーフェル表現530のアクティブ部分は、ビデオデータの新たなフレームが受信される時に表現を更新するために使用される。たとえば、
図5に示すように、フレームからモデルへの追跡構成要素515は、アクティブモデルフレーム生成器520に通信可能に結合されている。アクティブモデルフレーム生成器520は、サーフェル表現530のアクティブ部分540からアクティブモデルフレームを算出するように構成される。フレームからモデルへの追跡構成要素515は、次いで、アクティブモデルフレーム生成器520から受信されたアクティブモデルフレームを、ビデオ収集インターフェース505から受信された画像データのフレームと比較するように構成される。モデル融合構成要素525は、画像収集インターフェース505から受信された画像データのフレーム、およびアクティブモデルフレーム生成器520からのデータに基づいて、サーフェル表現530を更新するように構成される。非アクティブ部分545は、アクティブモデルフレーム生成器520およびモデル融合構成要素525によって使用されない。サーフェル表現530がサーフェルの無順序リストを備える場合には、部分540および545は、無順序リストのフィルタ処理されたバージョンを備えてよい。
【0075】
アクティブモデルフレーム生成器520は、サーフェル表現のアクティブ部分540からの投影に基づいて、アクティブモデルフレームを生成するように構成されてよい。
図5において、時間t-1に対してアクティブモデルフレーム生成器520によって生成されるアクティブモデルフレームAMF
t-1は、時間tに対するビデオデータのフレームF
tと一緒に、フレームからモデルへの追跡構成要素515によって受信され、時間tにおいてビデオデータのフレームを生成すべきと見なされるキャプチャデバイスに対する姿勢推定値P
tを生成するために使用される。前に説明したように、これは、キャプチャデバイスまたはキャプチャデバイスが静止して取り付けられているデバイスの、実際のロケーションおよび向きを表し得、あるいは考えられる仮想的キャプチャデバイスを提示し得る。姿勢推定値は、
図1Bに示す6つの自由度に対する変数値を備え得る。アクティブモデルフレームAMF
t-1は、深度データ
【0079】
の、時間t-1における予測フレームを備え得る。
【0080】
時間tにおける姿勢推定値P
tは、フレームからモデルへの追跡構成要素515からアクティブモデルフレーム生成器520に通信される。アクティブモデルフレーム生成器520は、時間tにおける姿勢推定値P
tを使用して、時間tにおけるアクティブモデルフレームAMF
tを決定するように構成される。このことは、姿勢推定値の変数値を使用して、アクティブサーフェル340を使用する投影幾何形状を決定することを備えてよい。
【0081】
ある場合には、フレームからモデルへの追跡構成要素515は、時間t-1における深度データおよび色データの予測フレームの各々
【0085】
を、時間tに対するビデオデータのフレーム
【0089】
と比較するように構成されてよい。この比較は、フレームのペアごとに(すなわち、深度データペアおよび色データペアに対して)、各ペアにおけるフレーム間での誤差関数を最小化する運動パラメータを決定することを備えてよい。追跡誤差が、次いで、深度データ誤差と光度データ誤差との総和として定義され得る。この総和は、重み付き総和であってよい。ある場合には、光度データ誤差は、たとえば、深度データ誤差に関してその寄与を低減するために、重み付け係数で乗算されてよい。この係数は、ある場合には0.1であってよい。自由度に対する変数値の推定値を生み出すために、最小2乗関数が使用されてよい。この推定値は、時間t-lにおける姿勢推定値P
t-1を現在の姿勢推定値P
tにマッピングする変換を決定するために使用されてよい。この現在の姿勢推定値は、ビデオデータF
tをアクティブ部分540と整合させるために使用されてよい。それは、ビデオデータのフレームF
tをアクティブ部分540と融合させるために、モデル融合構成要素525によって使用されてよい。
【0090】
アクティブモデルフレーム生成器520と同様に、
図5の例500は、非アクティブモデルフレーム生成器550をさらに備える。非アクティブモデルフレーム生成器550は、アクティブモデルフレーム生成器520と類似であるが、サーフェル表現530の非アクティブ部分545から非アクティブモデルフレームIMF
tを生成するように構成される。たとえば、非アクティブモデルフレームは、非アクティブ部分545からの幾何学的投影に基づいて、非アクティブモデルフレーム生成器550によって算出され得る。ある場合には、アクティブモデルフレーム生成器520および非アクティブモデルフレーム生成器550は、それぞれ、アクティブモデルフレームおよび非アクティブモデルフレームを生成するために、分化した入力としてモデルのアクティブ部分および非アクティブ部分を受信するように構成される、共通のフレーム生成器によって実装されてよい。アクティブモデルフレームを参照しながら説明したように、各非アクティブモデルフレームは、深度データの予測フレーム
【0095】
図5における位置合わせエンジン560は、3Dサーフェル表現のアクティブ部分540を3Dサーフェル表現の非アクティブ部分545と経時的に整合させるように構成される。
図5において、位置合わせエンジン560は、アクティブモデルフレーム生成器520からアクティブモデルフレームAMF
tを、また非アクティブモデルフレーム生成器550から非アクティブモデルフレームIMF
tを受信するように構成される。本例では、位置合わせエンジン560は、アクティブモデルフレームを非アクティブモデルフレームと整合させる変換を決定するために、これらの2つのフレームを比較するように構成される。
図5において矢印によって示されるように、この変換は、次いで、サーフェル表現530を更新してモデルのアクティブ部分および非アクティブ部分を整合の状態にするために使用されてよい。この変換は、アクティブ部分および非アクティブ部分の両方に対するサーフェルに柔軟な空間変形を適用するために使用されてよい。ある場合には、変形は、変形グラフを使用して適用されてよい。このことは、
図7を参照しながらより詳細に説明される。変形または整合は、現在の姿勢推定値P
tを利用し得る。場合によっては、アクティブモデルフレームと非アクティブモデルフレームとの位置合わせは、フレームからモデルへの構成要素515のものと類似のプロセスを使用してよい。たとえば、以前の予測フレームを新たに受信された画像データのフレームと整合させようと試みるのではなく、位置合わせエンジン560は、アクティブフレームと非アクティブフレームとを整合させる変換H
tを決定するように構成される。整合が実行される場合、位置合わせエンジン560は、すべての視覚可能な非アクティブサーフェル、たとえば、非アクティブモデルフレームの中の視覚可能なものを、アクティブとなるように設定し得る。
【0096】
構成要素515〜560の動作と並行して、画像分類器565は、ビデオデータのフレームF
tを受信し、オブジェクトラベル確率分布570のセットを算出するように構成される。この場合、上記で説明したように、オブジェクトラベル確率分布570は画像のセットとして提供され、各画像は異なるオブジェクトラベルに対応し、画像の中の空間要素値、この場合、ピクセル値は、ラベルを有するオブジェクトが空間要素の中で視覚可能である確率を表す。
図5において、オブジェクトラベル確率分布570のセットが、サーフェルからピクセルへのマッパ575によって受信される。この例では、サーフェルからピクセルへのマッパ575は、画像570の中の空間要素(たとえば、ピクセル)とサーフェル表現530におけるサーフェルとの間の対応を決定するように構成される。この対応は、サーフェル表現530とともに記憶され得るか、またはフレームからモデルへの追跡構成要素515によって供給され得る、追跡される姿勢P
tに基づく。追跡される姿勢P
tを使用して、サーフェル表現530の中の所与の3Dロケーションwx(s)における各サーフェルは、カメラ投影u(s,t)=π(
CWP
twx(s))を介してフレームF
tに関連するピクセル座標uに関連付けられてよく、ただし、
CWP
tは、3D表現の「世界」(「W」)に対するキャプチャデバイス(「C」)の姿勢であり、同次変換行列
【0098】
(ただし、
WCP
tは、キャプチャデバイスに対する「世界」の姿勢P
tである)を採用して、かつ同次3D座標を使用して、計算される。一実装形態では、この投影の結果は、対応の画像として提供されてよく、各ピクセル値は、サーフェル表現530からの、関連付けられ識別されたサーフェルを有する。サーフェルからピクセルへのマッパ575は、次いで、ピクセル対応に基づいて、データ570からの入力確率値をサーフェルとともにマッピングすることができ、たとえば、ビデオデータのフレームF
tからのピクセル[256,34]は、投影に基づいて、サーフェル「SF1234」に関連付けられていると決定され、したがって、画像分類器565からの、同じピクセルに関連付けられた確率値は、サーフェル「SF1234」に関連付けられる。単純な場合には、ピクセル対応は1対1であってよく、たとえば、ビデオデータのフレームF
t、確率値570を備える画像、およびサーフェル対応を示す画像はすべて、共通の解像度(たとえば、640×480)で提供される。他の場合には、画像は、知られているスケーリングを用いた異なる解像度を有してよく、したがって、ピクセル対応は、知られているスケーリングに基づいてマッピングされ得る。ある場合には、事前の根拠が利用可能でない場合、新たに生成されるサーフェルは、利用可能なオブジェクトラベルにわたる一様分布を用いて初期化される。
【0099】
図5において、オブジェクトラベル確率値580のセットは、ビデオデータのフレームの中の視覚可能と見なされるサーフェルに割り当てられていると、ベイズ更新エンジン585へ送られる。たとえば、サーフェルからピクセルへのマッパ575は、所与のサーフェル(たとえば、「SF1234」)および画像分類器565からの対応する確率値を識別する、サーフェル-確率ペアリングのセットを出力するように構成されてよい。ベイズ更新エンジン585は、データ580の中で識別されたサーフェルに対する既存のオブジェクトラベル確率値SP
t-1を取り出し、データ580の中の新たな確率値を使用してこれらの既存の値を更新するように構成される。たとえば、ベイズ更新エンジン585は、サーフェル表現530からの視覚可能なセットの中のすべてのサーフェルを、対応する確率分布を用いて再帰的なベイズ更新によって更新するように構成されてよい。ベイズ更新は、
【0101】
を備えてよく、ただし、L
sは、サーフェルsに対するオブジェクトラベルであり、l
iは、可能なオブジェクトラベルのセットの中の所与のオブジェクトラベルであり、O
u(s,t)は、画像分類器からの確率値であり、Fは、ビデオデータのフレームを識別し、Zは、適切な分布を生み出すための正規化定数である。この更新は、サーフェルごとにすべてのラベル確率に適用されてよい。
【0102】
単純な実装形態では、ベイズ更新エンジン585は、次のように構成されてよい。投影されたサーフェル識別子を表す画像の中のピクセルごとに、対応するサーフェルに対する確率の以前のセット(SP
t-1)が最初に取り出される。画像分類器565からの対応する予測570が、次いで、ロードされる。画像分類器565が、投影されたサーフェル画像とは異なるサイズを出力する場合、ピクセルロケーションは、高さおよび幅に関して、0と1との間の正規化された実数値に再マッピングされてよく、ここで、分類器出力サイズで乗算されたその値の下限が、確率の適切なセットを選択するために使用されてよい。クラス(たとえば、オブジェクト名)ごとに、そのクラスに対する記憶された確率が、そのクラスに対する新たな予測確率で乗算され、これらの乗算された値の、クラスのセット全体にわたる合計が累積される。すべてのクラスが更新された後、合計(すなわち、累積確率)が、各確率を(たとえば、合計で除算することによって)正規化するために使用されてよい。
【0103】
場合によっては、ベイズ更新エンジン585は、少なくとも1つのグラフィックス処理装置(GPU)を使用して実装されてよい。これらの場合には、処理は並列化されてよい。この場合、データ580の中の複数の対応するピクセルを有するサーフェルに対して、順序付け方式が適用されてよい。
【0104】
サーフェルからピクセルへのマッパ575によって算出されるサーフェル対応に起因して、ベイズ更新エンジン585によって適用される更新が可能である。このことにより、ビデオデータの複数のフレームからのオブジェクトラベル仮定がベイズ方式で組み合わせられることが可能になる。場合によっては、確率値の更新および/または画像分類器565の適用は、システムを適切に初期化するとともにサーフェル表現530内でサーフェルの適切なセットを生成するための時間を残すように、所定の個数のフレームにわたって遅延されてよい。ベイズ更新エンジン585の出力は、直近のフレームF
t(すなわち、最新の根拠)に続いて、利用可能なオブジェクトラベルのセットのうちの1つが所与のサーフェルに割り当てられるべき確率を表す、サーフェル確率値の更新済みのセットSP
tである。
【0105】
一実装形態では、更新済みのサーフェル確率値のセットSP
tは、サーフェル表現530を更新するために使用されてよい。いくつかの実装形態では、
図5において示すように、サーフェル表現530が更新される前に、正則化されたサーフェル確率値RSP
tのセットを生成するために、正則化器590が更新済みサーフェル確率値SP
tに適用されてよい。正則化は、場合によっては、意味論的情報をサーフェル表現内で空間的に伝搬させるために有用であり得る。しかしながら、それはすべての場合に必要であり得るとは限らない。正則化器590は、サーフェル位置、サーフェル色、およびサーフェル法線のうちの1つまたは複数に基づいて正則化を適用し得る。
【0106】
一実装形態では、正則化器590は、オブジェクトラベル確率値SP
tに条件付きランダムフィールド(CRF)を適用してよい。ある場合には、完全接続(fully-connected)CRFが、ガウシアンエッジポテンシャル(Gaussian edge potential)とともに適用されてよい。この場合、各サーフェルは、CRFグラフの中のノードとして扱われてよい。サーフェルごとに最終予測に到達するためにCRFを使用するのではなく、それは、ベイズ更新エンジン585からの予測を徐々に改善するために使用され得るにすぎない。
【0107】
図5に示す例示的なパイプライン500は、フレームごとにリアルタイムで(たとえば、640×480解像度のフレームに対して)動作するように構成される。したがって、(たとえば、すべてのフレームまたはn個ごとのフレームに対する)新たなビデオデータが受信されると、オブジェクトラベルおよびサーフェル表現は、大域的に一貫し意味論的にラベリングされた表現を提供するように更新される。SLAMシステム、サーフェルベース表現、および意味論的増強は、相乗的に機能し、確率分布がループ閉鎖中にサーフェル「とともに搬送される」ことを可能にし、同様に新たな深度読取値を融合して、サーフェルまたはその下位の確率分布を破壊することなく所与のサーフェルに対する深度情報および法線情報を更新する。ベイズ更新方式は、サーフェルごとにオブジェクトラベル確率分布の経過を追い、SLAMシステムによって提供される対応を使用して、画像分類器予測に基づいてそれらの確率を更新する。パイプラインは、リアルタイムフレームレートで動作するので、人間の適用例およびロボティック適用例の両方で対話式に使用され得る。その上、パイプラインは、特に不定シーン観測を処理することに適し、実際、テストでは、これらの形態の観測は、驚くほどオブジェクト検出確度を高めるように見られた。
【0108】
図6は、一例によるビデオデータの中のオブジェクトを検出するための方法600を示す。この方法600は、
図2、
図4、および
図5を参照しながら説明したような例200、400、および500を使用して実施され得る。
【0109】
ブロック605において、ビデオデータのフレームの空間要素に対するオブジェクトラベル確率値が、2次元画像分類器を使用して決定される。たとえば、2次元画像分類器は、ビデオデータのフレームを2D画像として受信するとともに2D画像の少なくとも1つのエリアに対する確率値を出力するように構成される、上記で説明したようなCNNであってよい。この場合、確率値は、複数の利用可能なオブジェクトラベルまたはクラスラベル、たとえば、単語を表す文字列ラベルおよび/またはオブジェクトデータ定義用の識別子に関係する。ある場合には、確率値は、入力2D画像のピクセルごとに出力されてよく、この出力は、1つまたは複数の画像として構造化されてよく、場合によっては、各画像が、特定のオブジェクトラベルに対する確率分布を備える。これらの出力画像は、「ピクセルマップ」と呼ばれることがある。2次元画像分類器が、CNNの出力部に通信可能に結合された逆畳み込みニューラルネットワークを備える場合、このことは事実であり得る。2次元画像分類器は、少なくともフレームに対する色データおよび深度データに基づいて、オブジェクトラベル確率値を算出するように構成されてよい。
【0110】
ブロック610において、空間要素に対応する、空間の3Dサーフェル表現またはモデルにおけるサーフェルが識別される。この場合、空間要素とサーフェルとの間の対応は、フレームについての推定される姿勢を使用するサーフェル表現の投影、たとえば、フレームについての現在の推定される姿勢の視点からの、2D平面上へのサーフェルモデルの投影に基づいて決定される。
図4および
図5を参照しながら説明したように、サーフェル表現は、フレームごとに、ビデオデータフレームについてキャプチャデバイスの姿勢を決定するために、3Dサーフェル表現を使用して生成されるレンダリングされたフレームを、ビデオデータのフレームからのビデオデータフレームと比較することと、姿勢、およびビデオデータフレームからの画像データを使用して3Dサーフェル表現を更新することとを含む、ビデオデータのフレームを処理することによって生成され得る。ある場合には、3次元面要素表現を生成するために使用されるビデオデータのフレームのサブセットが、2次元画像分類器に入力される。
【0111】
図6におけるブロック615において、3Dサーフェル表現におけるサーフェルに対するオブジェクトラベル確率値が、対応する空間要素に対するオブジェクトラベル確率値に基づいて更新される。このことは、ビデオデータの中に存在するオブジェクトの意味論的にラベリングされた3Dサーフェル表現をもたらす。たとえば、サーフェルごとにオブジェクトラベル確率値のセットの中の最大確率値を採ることによって、ビデオデータの中に存在するオブジェクトを表す推定値が(たとえば、最尤手法を使用して)生成され得る。
【0112】
(たとえば、ライブビデオフィードまたは録画のいずれかから)新たなビデオデータが受信されると、ブロック605、610、および615は反復的に、たとえば、フレームごとに繰り返される。したがって、オブジェクトラベル確率値は継続的に更新される。オブジェクトラベル確率分布は、そのように、初期化された一様な値を有して開始してよく、次いで、シーンのためのグラウンドトゥルースに収束してよい。その上、方法は、空間またはシーンの構成の変化、たとえば、オブジェクトがシーンに到着することもしくはシーンから離れること、またはシーンとの相互作用に適応することができる。
【0113】
図6に戻ると、ブロック605、610、および615の繰返しの間、すなわち、ビデオデータの処理の間、方法は、ループ閉鎖イベントを検出することをさらに備えてよい。新たに受信されたビデオデータから生成されるサーフェルが、以前に処理されたビデオデータに基づいて以前に生成および/または修正された3次元空間の同じ領域に対応するサーフェルと不整合されていると決定されるとき、ループ閉鎖イベントが発生する。たとえば、キャプチャデバイスが運動ループを完了すると、たとえば、以前に観測された空間の領域を見ることに戻ると、サーフェル表現の以前の部分は、サーフェル表現のもっと新しい部分との整合からはずれていることがある。表現の生成が、推定値を使用し誤差関数を最小化するようにシークするとき、たとえば、モデルが生成されるときに姿勢推定値および表現における小さい誤差が発生し得るような非決定論的に動作するとき、サーフェル表現におけるこの不整合または「ドリフト」が発生する。追加として、サーフェル表現は、姿勢グラフを必要とすることなく構築され、姿勢グラフは、通常、誤差を低減するように継続的に最適化される。ループ閉鎖イベントを検出し成立させるための例示的なパイプラインが、
図7を参照しながら後で説明される。ある場合には、たとえば、フレームごとに、現在の推定されるキャプチャデバイス(すなわち、アクティブモデル)フレーム内のサーフェル表現のアクティブ部分を、同じフレーム内のサーフェル表現の非アクティブ部分と位置合わせするために、継続的な試行が行われる。
【0114】
ループ閉鎖イベントが検出され、かつ整合が、たとえば、整合メトリック、または必要とされる変形のレベルに基づいて可能である場合、空間変形がサーフェル表現に適用されてよく、空間変形は、表現におけるサーフェルの3次元位置を修正する。場合によっては、この空間変形は、サーフェル表現のより新しいアクティブ部分を、より古い非アクティブ部分に整合させるように作用し、3Dサーフェル表現全体が、この位置合わせを反映すべき場所に柔軟に変形され得る。多くの小さい局所的なモデル間ループ閉鎖を、スケールがもっと大きい大域ループ閉鎖とともに組み込むことによって、サーフェル表現の確率分布のモードの近くにとどまること、および姿勢グラフ最適化または後処理ステップの使用を伴わずに、大域的に一貫した再構築をリアルタイムで生成することが可能である。たとえば、フレームごとの、頻発する柔軟なモデル変形の使用は、キャプチャデバイスの軌跡推定と面再構築品質の両方を改善する。この手法はまた、スケールが長い「廊下のような」カメラ運動と、よりループの多い広範囲にわたる部屋走査軌跡の両方において効果的である。
【0115】
サーフェルが変形されると、変形された新たなサーフェル表現が、ブロック605、610、および615の後続の繰返しにおいて使用される。このことは、すべての他のパラメータが一定に保たれる場合には、分類されるビデオフレームの空間要素とサーフェルとの間の対応を修正する効果がある。たとえば、キャプチャデバイスが、静止して保持され、姿勢が一定のままであるようなシーンのエリアを見る場合、ループ閉鎖イベントの前に、このビューを表すピクセルは、サーフェル表現におけるサーフェルの第1のセットに関連付けられるが、ループ閉鎖イベントの後では、同じピクセルが、サーフェルの第2の異なるセットに関連付けられる。各サーフェルが、オブジェクトラベル確率値の割り当てられたセットを有するので、このことは、それらのピクセルに対する画像分類器出力が、ループ閉鎖イベントに続いてオブジェクトラベル確率値の異なるセットを更新するために使用されることを意味する。ループ閉鎖イベントは、モデルサーフェルと実際の観測される空間の中の面との間に一貫した関係があるように、以前に一緒に離れてドリフトしたサーフェルを「スナップする(snap)」ように作用する。本方法では、ループ閉鎖イベントはまた、たとえば、「椅子」に関係するピクセル分類が、椅子の一部を形成する面を有するサーフェルを更新するために一貫して使用されるように、それらのサーフェルに対するオブジェクトラベル確率を一緒に「スナップする」ように作用する。このことは、正確な分類につながる。驚いたことに、オブジェクト分類の比較方法はループ閉鎖イベントの存在下で劣化するが(離れてドリフトした確率値の異なるセットを処理するために、リソース集約的な発見的方法が必要とされるので)、「不安定な」または「ループの多い」ビデオシーケンスが、サーフェルモデル内でその分類が一貫してマージされるオブジェクトの複数のビューを備えるので、本方法は、実際に確度を改善する。たとえば、ベッドまたはテーブルなどのオブジェクトの周囲を歩くことは、ビデオデータが複数の角度からのオブジェクトのビューを有する結果となる。コンピュータビジョンの非決定論的な性質に起因して、比較点群手法を用いると、このことは、関連するオブジェクトラベル確率値を有するいくつかの別個の3D点をもたらす。次いで、そのような点を、意味論的ラベリングを有する大域的に一貫したモデルに、どのように組み合わせるべきかという問題がある。本方法を用いると、変形、サーフェル、および反復的なフレームベースの更新は、限定された個数のサーフェルが、同じサーフェルに一貫して適用されている異なるビューからのオブジェクトおよび確率を表す結果となる。
【0116】
場合によっては、方法は、サーフェルに割り当てられたオブジェクトラベル確率値に基づいて、1つまたは複数のサーフェルのセットを3Dオブジェクト定義と交換するという、さらなるブロックを備えてよい。たとえば、互いの所定の距離内のサーフェルのセットが、70%を越える「テーブル」オブジェクトラベル確率を有する場合、これらのサーフェルは、テーブルの3D表現と交換されてよく、テーブルの寸法は、既定のオブジェクト形状をサーフェルの位置に合わせることによって設定される。
【0117】
場合によっては、方法は、ブロック615の後、面要素に対するオブジェクトラベル確率値を正則化することを備えてよい。このことは、上記で説明したようなCRFを適用すること、および/またはサーフェルに割り当てられたオブジェクトラベル確率値を、位置データ、色データ、および法線データのうちの1つまたは複数に基づいて正則化することを伴うことがある。
【0118】
ある場合には、画像分類器のための画像のトレーニングセットは、サーフェル表現、たとえば、以前にSLAMシステムによって生成されたサーフェル表現に、注釈を付けることによって生成され得る。この場合、既存の表現におけるサーフェルは、注釈付き表現を提供するために、オブジェクトラベルを用いて注釈が付けられてよい。次いで、表現を生成するために以前に使用されたビデオデータのフレームごとに、表現の投影が行われてよく、投影は、各ピクセルがオブジェクトラベルを有するように、注釈付きラベルを2D画像上に投影する。画像分類器が、次いで、2D画像を使用してトレーニングされ得る。
【0119】
例示的なループ閉鎖方法におけるさらなる詳細が、次に
図7を参照しながら説明される。
【0120】
図7は、
図5に示すものに加えて提供され得る構成要素の一例700を示す。
図7において、前に説明した位置合わせエンジン560と同じ機能性を有し得る位置合わせエンジン710が、データ記憶デバイス720に通信可能に結合されている。データ記憶デバイス720は、サーフェルモデル(たとえば、530)の符号化730(「ε」)を経時的に記憶する。これらの符号化730は、それらが生成される時のアクティブモデルフレームAMF
tの符号化を表してよく、たとえば、深度データ
【0124】
の、符号化を備えてよい。ある場合には、符号化は、アクティブモデルフレームの圧縮および/またはダウンサンプリングされたバージョンであってよい。マッピングされたいかなる面もない、アクティブモデルフレームの中の予測ビューの部分は、場合によっては、ビデオデータからの現在のフレームを使用して充填されてよい。場合によっては、符号化は、アクティブモデルフレームのファーン符号化(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が使用されてよい。
【0125】
図7の例では、アクティブモデルフレームAMF
tは、位置合わせエンジン710によって受信される。次いで、アクティブモデルフレームAMF
tをデータ記憶デバイス720の中の符号化730のうちの1つと照合するように、試行が行われる。たとえば、新たな符号化は、受信されたアクティブモデルフレームAMF
tから生成されてよく、データ記憶デバイス720に記憶された符号化730と比較されてよく、たとえば、ファーン符号化を使用して照合が実行され得る。適合は、比較関数の出力によって示されてよく、たとえば、誤差または適合イメージングメトリックが、比較されるフレームまたは符号化の間の類似度を示し得る。たとえば、比較は、ファーン符号化の間で行われてよい。この場合、ファーン符号化は、バイナリコードを備えてよく、2つの画像が、2つのバイナリコードの間の「距離」を加算することによって比較され得る。最短距離が、「最良の」適合であると見なされ、距離は、適合が「良好」であるかどうかを決定するためにしきい値と比較されてよい。アクティブモデルフレームAMF
tは、照合を実行するためにダウンサンプリングされてよく、たとえば、ファーン符号化は、ダウンサンプリングされたフレームに対して行われてよい。この場合、最良の適合を示すメトリック値(たとえば、差分または誤差を示すイメージングメトリックの最低値)は、適合する記憶された符号化ε
jを示すために使用され得る。同様に照合のために使用されるデータを有する記憶された符号化(たとえば、ファーン符号化)はまた、モデルフレームの符号化、たとえば、
【0129】
を備え得る。ある場合には、最良の適合に対するイメージングメトリック値は、適合が有効であるかどうかを決定するために、既定のしきい値とさらに比較されてよい。たとえば、「最良の」適合が、劣悪な実際の適合であり得ても、たとえば、大きい適合誤差を有することがあっても、しきい値比較は、これらの劣悪な適合の使用をそのように回避する。ダウンサンプリングは、比較的「粗い」適合が見つかりそれが正しいかのように位置合わせエンジン710によって使用されてよく、次いで、後続のアクティブモデルフレームおよび非アクティブモデルフレームは、
図5において実行されるような整合を可能にするのに十分近くなり、たとえば、より精密な「局所」ループ閉鎖が可能となるように、「大域」ループ閉鎖に続いて十分に整合される。
【0130】
ある場合には、適合が見つからない場合、たとえば、適合イメージングメトリックが所与の誤差しきい値を上回る場合、アクティブモデルフレームAMF
tと非アクティブモデルフレームとの位置合わせは、たとえば、
図5に示すように実行される。一方、「最良の」適合が見つかる場合、たとえば、適合イメージングメトリックも所与の誤差しきい値を下回る場合、適合符号化ε
jが、データ記憶デバイス720から取り出され、位置合わせエンジン710によってアクセスされる。位置合わせエンジン710は、次いで、
図5に関して説明したものと類似の整合動作を命令するように構成されるが、この場合、整合は、アクティブモデルフレームAMF
tと、適合符号化ε
iとの間で実行される。たとえば、アクティブモデルフレームの成分、たとえば、
【0134】
は、適合符号化ε
jの成分、たとえば、
【0138】
と整合され得る。ある場合には、整合メトリックは、整合が実行されるべきかどうかを決定するために、評価されるとともにしきい値と比較されてよく、たとえば、整合を継続するために、既定のしきい値と比較して低いレベルの不整合が必要とされる。整合が実行されるべきでない場合、位置合わせエンジン710は、
図5を参照しながら説明したようなアクティブモデルフレームと非アクティブモデルフレームとの整合を実行しようと試みてよい。整合が実行されるべきである場合、位置合わせエンジン710は、既存の3次元モデル750を変形させるように、たとえば、アクティブモデルフレームの成分を適合符号化の成分と整合させるように作用する、3次元における変形を決定するように、モデルデフォーマ740に命令するように構成されてよい。場合によっては、「大域ループ閉鎖」と見なされてよいこの整合に続いて、3Dサーフェルモデルのアクティブ部分および非アクティブ部分は更新されない。なぜなら、整合が、アクティブ部分および非アクティブ部分を、
図5に示す位置合わせが実行され得るような(たとえば、「局所ループ閉鎖」が次のフレームに対して首尾よく実行され得るような)もっと大きい整合の状態にするからであり得る。部分を更新しないことはまた、潜在的に不正確な整合が、後続の位置合わせ動作において補正または回復されることを可能にする。この整合に続いて、符号化に関連する姿勢推定値に変換を適用すること(たとえば、
【0142】
という形式で)現在の姿勢推定値P
tも更新され得る。
【0143】
本例では、モデルデフォーマ740は、整合された3Dサーフェルモデル770を生成するために、既存の3Dサーフェルモデル750にアクセスし、変形グラフ760を使用してこのモデルを変形させるように構成される。変形グラフ760は、モデル750の中で分散されたサーフェルに関連付けられているノードおよびエッジのセットを備える。ある場合には、各ノードは、タイムスタンプ、サーフェルに関連する3次元における位置、変換定義、およびネイバーのセットを備えてよい。各ノードのネイバー、すなわち、隣接するサーフェルは、導かれ得るグラフのエッジを構成する。このようにして、モデルの変形が実行されると、変形グラフは、互いに影響を及ぼす3Dサーフェルモデルの部分を接続する。ネイバーの個数は、たとえば、一実装形態では、4つのネイバーに限定されてよい。変換定義は、たとえば、(単位行列に初期化された)3×3行列および(0に初期化された)3×1ベクトルによって、または2つの四元数によって表されるような、アフィン変換の定義を備えてよい。変形を実行すると、各ノードの変換定義は、面制約のセットに従って最適化され得る。変形が適用されると、3Dサーフェルモデルの特定のサーフェル用のグラフの中の影響ノードのセットが識別される。これに基づいて、変換された影響ノードの重み付き和、たとえば、現在の位置要素からのそれらのノードの位置の距離に従って影響ノードの各々に適用される変換定義の重み付き和に基づいて、サーフェルの位置が変形され得る。サーフェルの位置と法線の両方が、このようにして変形され得る。たとえば、変形グラフの中のノードは、それらの初期化時間に基づいてサーフェルに関連付けられてよい。これらのノードのリストが、次いで、このタイムスタンプによってソートされ得る。サーフェルに対して変形が命令されると、ノードのこのリストを通じて二分探索が実行されて、時間的に近くのノード(ここで他のサーフェルに関連付けられているノード)のセットをポピュレート(populate)し得る。このセットから、距離メトリックに基づいて、サーフェルに対して最も近いk個のノードのセットが決定される。これらのノードは、次いで、サーフェルを変形させるために使用される。このプロセスは高速であり、リアルタイムまたはほぼリアルタイムの実行を可能にする助けとなる。
【0144】
一例では、変形グラフは、フレームごとに構築されてよい。1つの特定の場合には、3次元モデル用の新たな変形グラフが、画像データのフレーム(すなわち、F
t)ごとに構築されてよい。このことは、変形グラフの接続性、たとえば、グラフノードごとのネイバーのセットを決定することを備えてよい。ある場合には、変形グラフは、3Dサーフェルモデル750を使用して初期化される。変形グラフがサーフェル表現から構築され同じ表現を修正するために使用されるので、このことは「マップ内」または「モデル内」ループ閉鎖と呼ばれることがある。たとえば、フレームに対するノード位置は、サーフェルの位置(たとえば、
図3Bにおけるp)から決定されてよく、ノードタイムスタンプは、サーフェルタイムスタンプ(たとえば、
図3Aの「Init_Time」)に設定されてよい。ある場合には、変形グラフ用のノードが、サーフェルの、系統的サンプリングなどのサンプリングに基づいて生成され得る。このサンプリングは、集団にわたって一様に分散されてよく、変形グラフの空間的密度に3Dサーフェルモデルの空間的密度を反映させる。サンプリングされたノードのセットは、ノードタイムスタンプに基づいて順序付けされ得る。このことに続いて、変形グラフの接続性が、時間情報を使用して決定され得る。ある場合には、たとえば、ノードタイムスタンプに基づいて、時間に関してネイバーであるノードのセットが選択されてよい。たとえば、4つのネイバーがあり所与のノードが検討中である場合、(時間順序付きリストの中の)以前の2つのタイムスタンプを有するノード、および(リストの中の)後続の2つのタイムスタンプを有するノードが、所与のノードのネイバーとして選択されてよい。このことは、計算効率が良く、かつ3Dサーフェルモデルの時間的に無相関なエリアが互いに影響を及ぼすことを回避する(たとえば、アクティブエリアが非アクティブエリアに影響を及ぼすことを回避する)という利点を有する。たとえば、共通3次元空間の複数のパスに関連する変形グラフは複雑な場合があり、空間的に検討されるとそれ自体の中で絡み合うことがあるが、グラフを時間的に順序付けおよび検討することにより、複数のパスが解体されるとともに自由に整合されることが可能になる。このことは、たとえば、姿勢グラフを使用する場合、姿勢時間に基づいてグラフ接続性を決定する比較方法とは対照的であり得る。
【0145】
変形グラフ760を使用して既存の3次元のモデル750を変形させて、変形されたモデル770を生成するために、モデルデフォーマ740によって適用され得る例示的なプロセスが、より詳細に次に説明される。モデルデフォーマ740は、所与のサーフェル定義にアクセスすることによって開始する。最初の動作として、モデルデフォーマ740は、時間的に所与のサーフェルに最も近い、変形グラフ760のノード、たとえば、別のサーフェルを位置決定する。時間分離は、変数として記憶される。次に、モデルデフォーマ740は、たとえば、調査すべき既定の個数のノードに対して時間分離から離れて移動中の、時間的に近くのノードを位置決定する。これらの近くのノードは、次いで、所与のサーフェルの位置に関して、ユークリッド距離などの距離メトリックによってソートされてよい。たとえば、上記で説明したネイバー限定を使用する、所与の個数の「ネイバー」ノードが、次いで、最も近いk個のノードとして選択されてよい。これらのネイバーの各々に対する重みのセットが、次いで、ノードと所与のサーフェルとの間の正規化された距離に基づいて生成され得る。重みの総和も決定され得る。次いで、最後の動作として、ネイバーに対する変換定義が、ネイバーごとの個々の計算された重みを介して重み付けられるとともに重みの総和によって正規化されるように、適用されてよい。このことは、サーフェルの位置および法線ベクトルを変形させるために、所与のサーフェルに関して上記で説明したアフィン変換のための変数を適用することを備えてよい。所与のサーフェルの他の態様は同じままである(たとえば、変形されたモデル770に複写されてよい)。このことは、そのとき、面倒な処理を伴わずに、古いサーフェルから新たな変形されたサーフェルまでにわたって確率値が単に複写されることを可能にする。このことは、再び、リアルタイム実装形態を可能にする。
【0146】
一例では、位置合わせエンジン560または710を介して実行される整合は、モデルデフォーマ740を使用して実行される。この例では、このことは、変形グラフ760のパラメータを最適化することによって達成される。位置合わせエンジン560または710の出力に基づいて設定されている面対応のセットが与えられると、最適化はサーフェル表現における面位置合わせを反映し得る。これらの面対応は、第1の時間における特定のソース位置が、第2の時間における特定の宛先位置に到達すべきか、またはそれと一致すべきであることを示し得る。各個々の面対応は、絶対的(変形された位置を3次元空間の中の絶対位置に関連付ける)、または相対的(変形された位置を変形された異なる位置に関連付ける)のいずれかであってよい。アクティブフレームと非アクティブフレームとを整合させるとき(たとえば、
図5を参照しながら説明したように)、ソース点がアクティブモデルフレームの中の点を表してよく、宛先点が非アクティブモデルフレームの中の点を表してよく、そのことが、モデルのアクティブ部分と非アクティブ部分とを整合させるように作用する。たとえば、第1の時間が、所与の非アクティブモデルフレームを生成するために使用される非アクティブサーフェルのための初期化の時間を備えてよく、第2の時間が、現在のフレーム時間であってよく、ソース点は、現在の姿勢推定値P
tに基づいて見られるような、(たとえば、
【0148】
を算出するために使用される)アクティブモデルフレームを生成するために使用されるサンプリングされたサーフェルであってよく、宛先点は、現在の姿勢推定値P
tに3次元における定義済みの変換Hを加えたものに基づいて見られるような、(たとえば、
【0150】
を算出するために使用される)アクティブモデルフレームを生成するために使用されるサンプリングされたサーフェルであってよい。この場合、モデルのアクティブ部分を非アクティブ部分の上にマッピングするために計算された定義済みの変換(H)を適用しているので、宛先点は非アクティブモデルフレームの中の点と同等であり、たとえば、変換は、
図5における位置合わせエンジン560によって実行される整合の少なくとも一部である。これらの面対応は、「局所ループ閉鎖」を適用するために使用され得る。同様に、アクティブフレームを記憶された表現と整合させるとき(たとえば、
図7を参照しながら説明したように)、第1の時間が、記憶された表現のための初期化の時間を備えてよく、第2の時間が、現在のフレーム時間であってよく、ソース点は、現在の姿勢推定値P
tに基づいて見られるような、(たとえば、
【0152】
を算出するために使用される)アクティブモデルフレームを生成するために使用されるサンプリングされたサーフェルであってよく、宛先点は、符号化に対する姿勢推定値に3次元における定義済みの変換Hを加えたものに基づいて見られるような、(たとえば、
【0154】
を算出するために使用される)アクティブモデルフレームを生成するために使用されるサンプリングされたサーフェルであってよい。再び、定義済みの変換がアクティブモデル部分に適用されるので、宛先点は、アクティブモデルと非アクティブモデルとの整合を表す。これらの面対応は、「大域ループ閉鎖」を適用するために使用され得る。面対応は、ピクセルのサンプリングされたセットに対して、たとえば、使用されるフレームに対して計算され得る。これらの場合には、整合すなわち位置合わせは、3次元における定義済みの変換を面対応のセットに対して解決することを備えてよい。
【0155】
上記の例では、面対応は、変形グラフのパラメータの最適化のために、1つまたは複数のコスト関数において使用され得る。たとえば、1つのコスト関数は、変形されたソース点(たとえば、変形グラフを適用するとき)と宛先点との間の距離誤差の総和に等しい誤差関数を備えてよく、ソース点および宛先点は、面対応において使用されるものである。本明細書で説明するようなサーフェル表現の時間的なパラメータ化により、3次元空間の同じ部分の複数のパスが整合に柔軟に変形されることが可能になり、モデル化が継続すること、および3Dサーフェル表現の再考されるエリアへの新たなデータ融合を可能にする。サーフェル表現の非アクティブ部分を定位置に「ピンで留める(pin)」ために、すなわち、モデルのアクティブ部分を非アクティブ部分に変形させるために、別のコスト関数も使用されてよい。このコスト関数は、変形されたソース点(たとえば、変形グラフを適用するとき)と変形されない宛先点との間の距離誤差の総和に等しい誤差関数を備えてよく、宛先点は、面対応において使用されるものである。サーフェル表現の以前に位置合わせされたエリアを定位置に保つために、すなわち、マップの異なるエリアを変形させるとき、別のコスト関数も使用されてよく、以前に位置合わせされたエリアの相対位置は、同じままであるように制約される必要があり得る。このコスト関数は、変形されたソース点(たとえば、変形グラフを適用するとき)と変形された宛先点との間の距離誤差の総和に等しい誤差関数を備えてよい。このコスト関数は、ループ閉鎖およびそれらの関連する変形が、サーフェル表現の以前に位置合わせされたエリアを引き離すことを回避する。誤差関数はまた、(たとえば、その転置で乗算された変換と単位行列との間の距離メトリックを最小化することによって)変形グラフの定義済みの変換の厳密さを最大化するように、かつ(たとえば、ネイバー変換を組み込む距離メトリックに基づいて)円滑な変形を確実にするように、定義されてよい。説明したこれらの誤差関数のうちの1つまたは複数は、変形グラフのための変換定義を決定するように(たとえば、重み付き総和内で)最小化されてよい。たとえば、反復ガウス-ニュートン方法が、低密度コレスキー因数分解と一緒に、処理ユニットにおいて連立方程式を解くために使用されてよい。一実装形態で利用可能な場合、サーフェル表現に変形グラフを適用するためにグラフィカル処理ユニットが使用されてよい。このことは、グラフィカル処理ユニット上で並行して実行され得る。場合によっては、コスト関数のうちの1つまたは複数は、整合が実行されるべきかどうかを決定するためのメトリックを生成するために使用されてよい。たとえば、(たとえば、変形されたソース点と宛先点とを比較するコスト関数などの)コスト関数のうちの1つまたは複数が既定のしきい値を下回る誤差値を出力する場合、整合が受容され、誤差値が既定のしきい値を上回る場合、整合が拒絶される(同等の場合は適宜に割り当てられる)。
【0156】
上記で説明したように、予測される面の外観ベースの場所認識動作は、「大域ループ閉鎖」を解決するために使用されてよい。このことにより、姿勢グラフの使用を伴わずに、たとえば、画像データのキーフレームに関してキャプチャデバイスの姿勢をモデル化するために使用される別個のグラフ構造の使用を伴わずに、大域的に一貫した高密度なサーフェル表現またはモデルが生成されることが可能になる。これらの構成要素を組み込む装置は、動作が、2つの別個の動作として実行されるのではなく、実際に同時であって、リアルタイムまたはほぼリアルタイムの高密度な同時位置決定およびマッピングをそのように実行することができる。いくつかのテストケースでは、局所ループ位置合わせが大域ループ位置合わせよりも頻繁に(たとえば、10または20対1という比で)実行されることが見出される。場合によっては、大域ループ位置合わせが実行されないことがある(たとえば、必要とされないことがあるか、または適合が見つからないことがある)。局所ループ位置合わせおよび大域ループ位置合わせの適用は、処理中のビデオデータに依存することがあり、たとえば、キャプチャデバイスを使用する観測の軌跡に依存することがある。いくつかのテストケースでは、フレームの個数は10
3個程度であり、サーフェルの個数は10
6個程度であり、変形ノードの個数および記憶された表現の個数は10
2個程度であった。これらのテストケースに対するフレーム処理は、現在3次元モデルの中にある位置要素の個数に応じて20ミリ秒と40ミリ秒との間であった。これは、意味論的ラベリングを伴わないサーフェル表現の生成に対して、およそ30Hzまたはフレーム毎秒の処理速度であった。これらのテストケースでは、テストプラットフォームは、32GBのメモリを有する3.4GHzでのIntel(登録商標) Core i7-4930Κプロセッサ、および3GBのメモリを有するnVidia(登録商標) GeForce(登録商標) GTX780 Tiグラフィカル処理ユニットを利用した。
【0157】
図8は、
図6の方法600と並行して実行し得る、3Dサーフェル表現を更新する方法800を示す。ブロック805において、深度フレームおよびカラーフレームが、キャプチャデバイスから受信される。ブロック810において、3Dサーフェル表現のアクティブ部分に基づく予測フレームが生成される。このことは、サーフェル定義を処理することと、たとえば、現在時刻に関して、特定の時間ウィンドウ内で最後に修正されたタイムスタンプを有するサーフェルのみを使用することとを備えてよい。このことは、時間t-1におけるキャプチャデバイスに対する姿勢推定値を使用することをさらに備えてよく、たとえば、「アクティブ」として分類されるサーフェルが、時間t-1においてキャプチャデバイスによって見ることができるエリアのロケーションおよび向きを示す平面上に投影される。ブロック815において、フレームからモデルへの追跡が実行される。このことは、ブロック805および810から受信されたデータを比較することによって、現在時刻に対する姿勢推定値を決定することを備えてよい。ブロック820において、現在時刻に対して決定された姿勢推定値は、予測深度フレームおよび予測カラーフレームを更新するために、たとえば、現在の姿勢推定値によって示されるような、時間tにおいてキャプチャデバイスによって見ることができるエリアのロケーションおよび向きを示す2D平面上に、「アクティブ」として分類されるサーフェルを投影する(または、「飛び散らせる(splatter)」)ために、使用されてよい。
【0158】
825において、更新済みの予測深度フレームおよび予測カラーフレームが、任意の記憶された符号化と適合するかどうかについて、決定が行われる。このことは、
図7を参照しながら説明した比較を備えてよい。記憶された特定の表現との適合が見つかる場合、ブロック830において、更新済みの予測深度フレームおよび予測カラーフレームと、記憶された特定の符号化に対応するデータとの位置合わせが可能であるかどうかについて、決定が行われる。このことは、
図7におけるモデルデフォーマ740を参照しながら説明した変形を適用することを備えてよい。1つまたは複数のコスト関数の出力が、変形グラフを使用する変形が所与のしきい値を上回る誤差をもたらすことを示す場合、更新済みの予測フレームのうちの1つまたは複数の中の点を、記憶された符号化に制約する面対応が与えられると、決定は否定であってよく、そうでない場合、決定は肯定であってよい。ブロック830における決定が否定的である場合、たとえば、記憶された表現と更新済みの予測フレームとの間に可能な位置合わせがないと見なされる場合、方法はブロック835に移動し、深度データおよび色データの非アクティブモデルフレームが生成される。ブロック835における決定が肯定的である場合、たとえば、記憶された符号化と更新済みの予測フレームとの間に可能な位置合わせがあると見なされる場合、3Dサーフェル表現がブロック840において変形される。このことは、最適化された変形グラフを適用することを備えてよく、最適化は上述の面対応によって制約され、最適化は、変形グラフのノードによって適用されるべき変換定義を決定するために、1つまたは複数の誤差関数を最小化する。
【0159】
ブロック835において、深度データおよび色データの非アクティブモデルフレームが生成される。ブロック845において、ブロック820における更新済みの予測フレームが、ブロック835において生成された非アクティブモデルフレームと位置合わせされ得るかどうかについて、決定が行われる。ブロック845は、事実上、非アクティブモデル部分とのアクティブモデル部分の位置合わせが可能であるかどうかを、現在の姿勢推定値に関連する2つの部分の各々から生成される予測ビューを示すデータに基づいて決定する。ブロック845における決定は、たとえば、幾何誤差および/または光度誤差を決定することによって、ブロック815におけるフレームからモデルへの追跡の一部として適用される技法を使用する、予測ビューの2つのセットの比較に基づいてよい。ある場合には、ブロック845において決定を行うために、メトリックの中でも幾何誤差および/または光度誤差を備える重み付き誤差関数の出力が使用されてよく、たとえば、誤差が所与のしきい値を下回る場合、位置合わせは可能であると見なされる。誤差関数に対する共分散測定値の固有値も、決定を行うために評価されてよく、たとえば、しきい値と比較されてよい。ブロック845はまた、たとえば、姿勢を推定する際に使用するための変換を決定することと同様の方法で、予測フレームを互いの上にマッピングする変換を決定することを備えてよい。この変換は、ブロック830において行われるものと類似の決定において使用されてよく、すなわち、最適化を制約するために使用される面対応の一部を形成し得、アクティブ部分と非アクティブ部分との位置合わせが可能であるかどうかを決定するために使用されるメトリックに寄与し得る。
【0160】
ブロック845において肯定的な決定がなされる場合、サーフェル表現のアクティブ部分および非アクティブ部分の変形が、ブロック840において実行される。このことは、ブロック845の評価の一部として決定された変換を適用することを備えてよい。再び、ブロック840は、たとえば、最適化の結果として、変形パラメータのセットを決定することを備えてよく、パラメータは、変形グラフの一部を形成し得る。ブロック840は、サーフェルを変形させるためのグラフを使用してパラメータを適用することを備えてよい。ブロック840の出力は、すべての視覚可能な非アクティブサーフェル、たとえば、非アクティブモデルフレームの中で視覚可能なものを、アクティブに設定し得る。
【0161】
最後に、ブロック850において、ブロック805において受信された深度フレームおよびカラーフレームが、ブロック840に由来する任意の変形されたサーフェル表現と融合される。ブロック845における決定が否定的である場合、変形は実行されなくてよく、画像データは、変形されていない表現と融合されてよい。
【0162】
ブロック850に続いて、方法は、ビデオデータの後続のフレームに対して繰り返されてよく、たとえば、深度データおよび色データの次のフレームが受信されると、ブロック805に戻る。ブロック850において出力される融合されたサーフェル表現は、次いで、たとえば、次のフレームに対して追跡するために、ブロック810において、改訂されたアクティブモデル深度フレームおよびアクティブモデルカラーフレームを生成するために使用されてよい。ブロック810の繰返しの後、符号化は、ブロック825の照合において後で使用できるように記憶されてよい。
【0163】
上記で説明したいくつかの方法は、サーフェル表現のアクティブエリアを、表現の非アクティブエリアとの強い整合の状態にして、強固な局所ループ閉鎖を達成する。このことは、サーフェル表現の面に関するものであってよい。収束すべき局所的な整合に対して表現のアクティブ部分が非アクティブ部分からあまりに遠くへドリフトする場合、たとえば、モデル化された面に関して、強固な大域ループ閉鎖および表現一貫性を得るために表現のアクティブ部分を下位の非アクティブ部分と再整合させる変形をブートストラップするために、外観ベースの大域ループ閉鎖方法が使用されてよい。
【0164】
サーフェル表現がどのように更新され得るのかを実証する簡略化された実施例900が、次に
図9A〜
図9Cを参照しながら説明される。
【0165】
図9Aは、床915の上に配置された円筒形オブジェクト905を備えるシーン910の図を示す。図におけるシーン910は、「グラウンドトゥルース」、すなわち、シーンの実際の内容を表す。図に3Dサーフェル表現920も示される。実際には、3Dサーフェル表現920は、
図3Aおよび
図3Bを参照しながら説明したようなリストとして実装され得るが、説明を簡単にするために、3Dモデル空間内でのサーフェルの広がりが図に示される(図が2Dであるにもかかわらず、920が3Dモデルのビューであると想定する)。3Dサーフェル表現920において、4つのサーフェルS1〜S4がある。理解され得るように、これは説明を簡単にするために大幅に簡略化されており、典型的なサーフェル表現は、100万個程度のサーフェルを備えることがある。サーフェルS1は、近似的に垂直の床面に対応するように見られてよく、またサーフェルS2〜S4は、近似的に円筒形オブジェクトの異なる面をモデル化するので、サーフェル表現920は、SLAMシステムが所与の長さの時間にわたって動作していた後の(または、代替的に、既存の表現がロードされた後の)モデル状態を表す。サーフェルS1〜S4にとっての法線ベクトルも図に示される。
【0166】
図9Aは、2つの例示的なオブジェクトラベル確率分布902をさらに示す。単純な場合には、画像分類器によって割り当てられ得る2つのオブジェクトラベル、すなわち、「FLOOR」および「CYLINDER」があるものと想定される。オブジェクトラベル確率分布は、この場合、2つの画像930および940を備える。図からわかり得るように、各画像は、オブジェクトラベルを有するオブジェクトがピクセルの中に存在する確率を示す、ピクセル値を有する。たとえば、第1の画像930は、「CYLINDER」オブジェクトがそれらのピクセルの中に存在するように見えることを画像分類器が示すことを示す、ピクセル値(たとえば、値スケーリングに応じて、0.5と1との間、または128と255との間)を有するピクセル935のセットを有する。同様に、第2の画像940は、「FLOOR」オブジェクトがそれらのピクセルの中に存在するように見えることを画像分類器が示すことを示す、ピクセル値(たとえば、値スケーリングに応じて、0.5と1との間、または128と255との間)を有するピクセル945のセットを有する。図ではバイナリ画像として示すが、実際には、そのような画像は、通常、グレースケール画像として見ることができる。
【0167】
図9Aにおいて、フレームに対する例示的な対応データ904も示される。この場合、対応データ904はまた、画像930および940と同じ解像度である対応画像950の形式をなす。対応画像950は、現在のカメラ姿勢に基づいて、2D画像平面上への3Dサーフェルの投影を特徴付ける。
図9Aにおいて、カメラ姿勢は、ボックス910に示すようなシーンのビューに関係し、すなわち、円筒形オブジェクトが部屋の左上隅にある。対応画像950は、4つのサーフェルS1〜S4のうちの1つを識別する4つの値[1,2,3,4]のうちの1つを有するピクセルを備え、ピクセルp-S1の第1のセットは、サーフェルS1への対応を表す1という値を有し、ピクセルp-S2の第2のセットは、サーフェルS2への対応を表す2という値を有し、ピクセルp-S3の第3のセットは、サーフェルS3への対応を表す3という値を有し、ピクセルp-S4の第4のセットは、サーフェルS4への対応を表す4という値を有する。他の場合には、画像分類器データと同様の方法で、対応画像950は、4つのバイナリ画像を備えることができる。対応値は、各サーフェルに関連する確率値906を、画像930および940における確率値に基づいて更新するために使用される。
図9Aにおいて、サーフェルのセット用の4つのデータ定義d-S1〜d-S4が示され、サーフェルごとの各データ定義は、2つのクラスに対するオブジェクトラベル確率値を有する(「PF」はラベル「FLOOR」の確率を示し、「PC」はラベル「CYLINDER」の確率を示す)。PFおよびPCが一様分布を用いて初期化される場合(すなわち、値ごとに0.5)、更新動作は、所与のサーフェルに関連するピクセルに対するそのクラスに関連するすべての確率値で初期値を乗算することを備える。たとえば、サーフェル2に対する0.5というPC値は、画像930の中のエリアp-S2をカバーするピクセルに対するすべての確率値で乗算されてよい(正規化を加えて)。いくつかの並列化処理パイプラインでは、サーフェルが複数の対応するピクセルを有する場合、サーフェルに対する確率は、それらの対応するピクセルのサブセットを使用して更新されてよい。たとえば、もっと高速な動作を得るために、画像950における所与のサーフェル識別子の(たとえば、行優先順序での)最初の出現が、同じサーフェル識別子の他の出現に優先して、サーフェル確率を更新するために使用されてよい。確率更新はまた、サーフェル状態に適用される正規化プロセスを備えてよい。
図9Aは、1つの更新に続くサーフェル用のデータ定義を示す。
【0168】
図9Bは
図9Aと同じ要素を示すが、このとき、シーンは異なる角度から見られる(すなわち、異なるカメラ姿勢がある)。このことは、ビデオデータの第2の(すなわち、後続の)フレームに対する動作を反映し得る。ボックス910に示すように、円筒形オブジェクトは、ここでは
図9Aに関して後方から見られる。このことは、次いで、画像分類器からの異なるデータ902、および投影されたピクセルの異なるセットをもたらすが、サーフェル表現920は(3Dにおいて定義されるとき)同じままである。
図9Bにおいて、画像930および940に埋め込まれるようなオブジェクトラベル確率値が、サーフェルデータ定義における既存の確率を対応データ904に基づいて更新するために、再び使用される。
【0169】
図9Cは、
図9Bに示すビューの変化に続いて、
図9Aに示すものと類似のビューへの復帰を示す。例では、類似のビューへのこの復帰は、サーフェル表現920でわかるように、サーフェルS4を変形させるループ閉鎖イベントをトリガする。このことは、ビデオデータの第3の(すなわち、別の後続の)フレームに関係することがある。この場合、より正確なモデルが、円筒形オブジェクト905の面に関係するサーフェルS2〜S4を有するという事実にもかかわらず、偽のデータまたは最適化ドリフトが、当初、サーフェルS4がサーフェルS2およびS3からドリフトしたことを意味していることがある。
図9Cでわかるように、シーンが
図9Aと類似の角度から見られるとき、
図9Cにおける画像分類器からのデータ902は、
図9Aに示すものと類似である。しかしながら、サーフェルS4が変形されているので、
図9Cにおける対応データ904は、ここでは
図9Aにおいて提供されたものとは異なる。このことは、データ902からの類似の確率値が、ここでは異なるサーフェルデータ定義更新につながることを意味し、詳細には、投影されたピクセルp-S4が対応データ904の中で上にシフトされるので、サーフェルS4に対する確率値は、ここでは、ピクセル値935によってより大きく重み付けられるとともに、ピクセル値945によってさほど大きくなく重み付けられる。このことは、次いで、ピクセル945の中のより大きい確率値が更新の際に使用されるので、サーフェルS1に対するより正確な分類につながる(以前は、
図9Aでの950においてピクセルp-S4がp-S1を覆っていたので、これらの値のうちのいくつかがサーフェルS1ではなくS4に適用された)。そのことはまた、ここでは改訂されたp-S4とのこのエリアの重複に起因してピクセル値935によって影響を受けるので、サーフェルS4に対するより正確な分類につながる。
図9Cにおける更新済みデータ定義908に示すサーフェルオブジェクトラベル確率値は、ここでは
図9Aおよび
図9Bにおける以前の定義よりも正確である。更新済みデータ定義908の場合には、オブジェクトモデル交換に対するしきい値が70%以上に設定された場合、サーフェルS1は、「床」オブジェクトモデルによって交換されることになり、サーフェルS2、S3、およびS4は、(サーフェル寸法に基づいてス
ケーリングされるような)「円筒」オブジェクトによって交換されることになる。
【0170】
図10Aおよび
図10Bは、上記で説明した方法および装置からの例示的なテスト出力を示す。
図10Aは、SLAMシステムを(上記で言及したような)NYU深度データセットV2に適用することによって作成された、寝室のサーフェル表現1010を示す。
図10Bも、次いで、同じシーンの意味論的にラベリングされたサーフェル表現1020を示す。この場合、サーフェル用のオブジェクトラベルは、そのサーフェルに対する最大の確率値を有するオブジェクトラベルとして選択される。異なるラベルは異なる陰を有する。ラベル「窓」、「壁」、「家具」、「ベッド」、および「床」、ならびにそれらのそれぞれの陰が
図10Bに示される。表現1010および1020が入力ビデオデータに基づいて完全に自動的に生成されていること、- 項目の手作業のラベリングがないことに留意されたい。
【0171】
図10Bは、NYU深度データセットV2からの他のシーンを示す。各行は、異なるシーンに関係する。画像の第1の列1050は、ビデオデータの入力フレームを示す。第2の列1060は、「グラウンドトゥルース」、すなわち、クラスラベルの人間の注釈を示す。第3の列1070は、単一フレームの分類に続いて割り当てられたオブジェクトラベルを示す。第4の列1080は、本明細書で説明する方法および装置の実装形態を使用する例示的な出力を示す。エリア1075と1085とを比較することによってわかるように、本方法および本装置は、「グラウンドトゥルース」により近い、より一貫した正確な出力を提供する。
【0172】
図10Aおよび
図10Bは、SLAMシステムを使用してフレーム間のピクセルごとの対応を提供することにより、コヒーレントな3D意味論的マップへの、フレームごとの2Dセグメント化の融合が可能になることを実証する。その上、このコヒーレントな3D意味論的マップは、対話式の部屋走査に適したリアルタイムのループ閉鎖対応手法を用いて生成され、結果は、対応する2Dセグメント化確度の著しい改善を示す。このことは、次いで、少メモリかつ小電力のモバイルデバイス、たとえば、スマートフォンまたは家庭向けロボティックデバイスにおいて、リアルタイムの意味論的セグメント化のための機会を提供する。生成されたテストセットにおいて、説明する方法および装置を使用して確度をラベリングする際に、一般にさほど変化しない軌跡を特徴付けるNYU深度データセットV2よりも大きい改善が見られた。このことは、ビデオデータにおいて視点変動があるときの、本方法の確度利点を実証する。このことは、著しく長くかつより変化する軌跡が使用される分野における、自律的なエージェントにとって特に有利であり得る。本明細書で説明するいくつかの例は、リアルタイムの対話式使用、たとえば、完全なラベリングカバレージを取得するためにキャプチャデバイスをどのように移動させるべきかについて決定を行うために、またあいまいさを解決するために、ラベリング品質(すなわち、サーフェルに関連付けられたオブジェクトラベル確率)のリアルタイム測定を利用する人間またはロボットに適する。その上、オブジェクトラベルは、3D表現の確度を改善するために任意のSLAMシステムへフィードバックされてよい。たとえば、ループ閉鎖動作は、整合および/またはオブジェクトもしくはクラス固有の平滑化を行うために、オブジェクト対応を使用してよい。
【0173】
場合によっては、特定のオブジェクトとして識別されているサーフェルのグループを、データベースからの完全かつ幾何学的に正確なモデルと交換することは、いくつかの利点を有し得る。たとえば、オブジェクト交換は、マップ表現の精度を改善し得る(たとえば、デスクトップコンピュータキーボード上の正確なキーの表現を可能にし得る)。そのことはまた、意味論的に有意味な前のシーンを用いて、雑音が多い以前の深度推定値を正則化し得る(たとえば、表現において完全に平面状の壁または床を可能にし得る)。さらに、そのことはまた、ビデオデータの中でまだ観測されていないマップエリアを、何がそこにあり得るのかについての知覚可能な近似で充填し得る(たとえば、サーフェルが単純な円筒と交換される場合、マグの見られない「他の」側部が表され得る)。オブジェクト交換を伴うマップ表現はまた、何千個もの個々のサーフェルではなく、単一のオブジェクトインスタンスを記述するためにもっと少数のパラメータしか必要とされないので、記憶要件の低減という追加の利点を有し得る。
【0174】
図2、
図4、
図5、および
図7を参照しながら本明細書で説明したような機能構成要素の例は、専用の処理電子装置を備えてよく、かつ/または少なくとも1つのコンピューティングデバイスのプロセッサによって実行されるコンピュータプログラムコードによって実装されてよい。場合によっては、1つまたは複数の組込みコンピューティングデバイスが使用されてよい。これは、コンピュータ可読媒体上にロードされたコンピュータプログラムコードを実行するための、メモリに関連して動作する少なくとも1つのプロセッサを備えてよい。この媒体は、消去可能プログラマブル読取り専用メモリなどのソリッドステートストレージを備えてよく、コンピュータプログラムコードは、ファームウェアを備えてよい。他の場合には、構成要素は、好適に構成されたシステムオンチップ、特定用途向け集積回路、および/または1つもしくは複数の好適にプログラムされたフィールドプログラマブルゲートアレイを備えてよい。ある場合には、構成要素は、モバイルコンピューティングデバイスおよび/またはデスクトップコンピューティングデバイスの中で、コンピュータプログラムコードおよび/または専用の処理電子装置によって実装されてよい。ある場合には、構成要素は、以前の場合と同様に、またはその代わりに、コンピュータプログラムコードを実行する1つまたは複数のグラフィカル処理ユニットによって実装されてよい。場合によっては、構成要素は、たとえば、複数のプロセッサ、および/またはグラフィックス処理装置のコアにおいて、並行して実施される1つまたは複数の関数によって実装されてよい。
【0175】
本明細書で説明したいくつかの場合には、サーフェル表現(たとえば、270、570、530)は3D空間の「高密度」モデルである。この場合、モデルを形成する多数のサーフェル、たとえば、数十万個または数百万個の要素がある。このことは、数十個または数百個の定義済みのモデル点しかあり得ない、機能ベースまたは「低密度」のモデルと比較されてよい。同様に、ビデオデータのフレーム内のピクセル値が処理され3次元空間のモデル化およびラベリングに寄与するので、サーフェル表現は「高密度」と見なされてよい。たとえば、「高密度」表現において、フレームの中のすべてのピクセルが、可能な限りの情報を追跡プロシージャ、マッピングプロシージャ、およびラベリングプロシージャに与え得る。このことにより、「高密度」画像、すなわち、キャプチャデバイスの解像度における画像を再構築するために、サーフェル3Dモデルが合成キャプチャデバイスまたは合成カメラに戻して投影されることが可能になり、ここで、合成された画像の中の大多数のピクセルは、モデルとともに記憶された情報に基づいて合成されたデータを有する。対照的に、「低密度」システム、たとえば、キーポイントまたは抽出された特徴を利用するシステムは、モデルを生成するために画像データの中のピクセル値の小さいサブセットしか使用しない。「低密度」の場合には、モデル内に十分な情報がないので、合成された画像はキャプチャデバイス解像度で作成され得ない。このようにして、「高密度」システムは、3次元空間内の1つまたは複数の面を高い確度を伴って、たとえば、実環境の所与の許容差内で推定するように作用する。
【0176】
場合によっては、上記で説明した装置、システム、または方法は、自律的なロボティックデバイスとともに実装されてよい。この場合、意味論的にラベリングされた表現は、3次元空間をナビゲートするためにデバイスによって使用され得る。たとえば、ロボティックデバイスは、キャプチャデバイス、サーフェルモデル生成器、3Dサーフェルモデルを記憶するように構成されたデータ記憶デバイス、意味論的オーグメンタ、ナビゲーションエンジン、および1つまたは複数の移動アクチュエータを備えてよい。この場合、ロボティックデバイスは、ロボティックデバイスが特定の環境をナビゲートするときにビデオデータをキャプチャするように構成されてよい。このことが行われるとき、ロボティックデバイスは、本明細書で説明するような意味論的にラベリングされたサーフェルモデルを生成し、これをデータ記憶デバイスに記憶するように構成されてよい。ナビゲーションエンジンは、次いで、環境内でロボティックデバイスをナビゲートするためにサーフェルモデルにアクセスするように構成されてよい。ある場合には、ロボティックデバイスは、1つまたは複数の機能を実行するように構成されてよい。たとえば、ロボティックデバイスは、マッピング機能を実行すること、(たとえば、緊急時に)特定の人物および/またはオブジェクトを位置決定すること、オブジェクトを移送すること、掃除または保全を実行することなどを行うように構成されてよい。1つまたは複数の機能を実行するために、ロボティックデバイスは、環境と相互作用するためのさらなる知覚デバイス、真空システム、および/またはアクチュエータなどの、追加の構成要素を備えてよい。これらの機能は、次いで、オブジェクトラベルまたはオブジェクトラベル確率に基づいて適用されてよい。たとえば、家庭向けロボットは、「カーペットの床」ラベルを伴う空間の部分に機能の1つのセットを、また「リノリウムの床」ラベルを伴う空間の部分に機能の別のセットを適用するように構成されてよい。同様に、ナビゲーションエンジンは、「ドア」としてラベリングされた空間のエリアを、出口点および/または入口点として使用するように構成されてよい。一例では、家庭向けロボットは、部屋タイプまたはロケーションを予測するために、たとえば、上記の例において算出されるような、オブジェクト分類または確率を使用してよい。たとえば、ラベリングされたサーフェルのクラスタが、空間の中で「ソファ」および「コーヒーテーブル」が検出されることを示す場合、空間は、部屋タイプ「居間」の部屋として分類されてよい。同様に、サーフェルが「ベッド」の存在を示すラベルを有する場合、部屋は、「寝室」タイプであるものとして分類されてよく、または「オーブン」としてラベリングされたサーフェルにより、部屋が「台所」として分類されることが可能になり得る。部屋予測は、サーフェル確率および/または交換されたオブジェクト定義の関数であり得る。サーフェル確率を使用することにより、部屋予測が確率的関数であること、たとえば、検出されるオブジェクト確率に基づいて部屋クラスが対応する確率に割り当てられることが可能になる。
【0177】
上記の例は、例示的として理解されるべきである。さらなる例が想定される。いずれかの例に関して説明した任意の特徴は、単独で、または説明した他の特徴との組合せで使用されてよく、同様に任意の他の例の1つもしくは複数の特徴との組合せ、または任意の他の例の任意の組合せで使用されてよいことを理解されたい。さらに、上記で説明されない等価形態および変更形態も、本発明の範囲から逸脱することなく採用されてよく、それらは添付の特許請求の範囲において定義される。