(57)【特許請求の範囲】
【請求項１】
リアルタイムカメラの自己位置再推定の方法であって、
移動しているモバイルデプスカメラから奥行きマップフレームのシーケンスを受信するステップであって、それぞれの奥行きマップフレームが、それぞれが前記モバイルデプスカメラから前記モバイルデプスカメラによって捕捉されたシーン内の表面までの距離に関係している奥行き値を有する複数の画像要素を備えた、受信するステップと、
前記奥行きマップフレームを使用して、前記モバイルデプスカメラの位置および姿勢を追跡し、前記奥行きマップフレームを使用して、前記モバイルデプスカメラが移動している環境の３Ｄモデルを同時に形成するステップと、
前記モバイルデプスカメラの位置および姿勢の追跡における失敗を検出するステップと、
前記モバイルデプスカメラによって捕捉された現在の奥行きマップを使用して、前記モバイルデプスカメラの位置および姿勢を再演算することによって、前記モバイルデプスカメラの自己位置を再推定するステップとを含む方法。
【請求項２】
前記追跡における失敗を検出するステップが、前記モバイルデプスカメラの現在の追跡された位置内および以前に追跡された位置内の変化を閾値と比較するステップ、前記モバイルデプスカメラの位置および姿勢を追跡するために使用された反復プロセスの収束の失敗を検出するステップ、ならびに前記モバイルデプスカメラの現在の追跡された位置および姿勢を前記モバイルデプスカメラの動きのモデルを使用して予測された位置および姿勢と比較するステップのうちのいずれかを含む、請求項１に記載の方法。
【請求項３】
前記モバイルデプスカメラの自己位置を再推定するステップが、それぞれが関連するカメラの位置および姿勢を有する、前記モバイルデプスカメラによって以前に収集された奥行きマップフレームである複数のキーフレームから前記現在の奥行きマップに類似するキーフレームを見出すステップを含み、キーフレームを見出すステップが、現在のフレームと類似する垂直表面および水平表面の構成および位置を有するキーフレームを選択するための形状推定プロセスを使用するステップ、ならびに前記モバイルデプスカメラの最後に知られている位置に関係する順序で前記複数のキーフレームを検索するステップのうちのいずれかを含む、請求項１または２に記載の方法。
【請求項４】
前記モバイルデプスカメラの自己位置を再推定するステップが、前記モバイルデプスカメラの知られている以前の動きを前提として、予測される姿勢の分布である、前記モバイルデプスカメラの姿勢の追跡分布を演算するステップと、前記追跡分布から姿勢をサンプリングして、そのサンプリングされた姿勢を使用して、前記現在の奥行きマップおよび以前の奥行きマップを整列させるステップとを含む、請求項１に記載の方法。
【請求項５】
前記モバイルデプスカメラの自己位置を再推定するステップが、前記現在の奥行きマップからのパッチおよび前記環境の前記３Ｄモデルから取得された複数の以前の奥行きマップからのパッチにランダム決定フォレストを適用して、奥行きマップのテクスチャ特徴である構造的特徴要素のヒストグラムを取得するステップと、前記ヒストグラムの点で前記現在の奥行きマップに類似する以前の奥行きマップを選択するステップとを含む、請求項１に記載の方法。
【請求項６】
移動しているモバイルデプスカメラから奥行きマップフレームのシーケンスを受信するように構成された入力部であって、それぞれの奥行きマップフレームが、それぞれが前記モバイルデプスカメラから前記モバイルデプスカメラによって捕捉されたシーン内の表面までの距離に関係している奥行き値を有する複数の画像要素を備えた、入力部と、
前記奥行きマップフレームを使用して、前記モバイルデプスカメラの位置および姿勢を追跡するように構成されたフレーム整列エンジンと、
前記奥行きマップフレームを使用して、前記モバイルデプスカメラが移動している環境内の３Ｄモデルを形成するように構成された３Ｄモデル形成システムと、
前記モバイルデプスカメラの位置および姿勢の追跡における失敗を検出し、かつ、前記モバイルデプスカメラによって捕捉された現在の奥行きマップと、前記３Ｄモデルから取得された少なくとも１つの以前の奥行きマップとを使用して、前記モバイルデプスカメラの位置および姿勢を再演算することによって、前記モバイルデプスカメラの自己位置を再推定するように構成された自己位置再推定エンジンと
を備えるリアルタイムカメラの自己位置再推定システム。
【請求項７】
前記自己位置再推定エンジンが、前記現在の奥行きマップからのパッチおよび前記環境の前記３Ｄモデルから取得された複数の以前の奥行きマップからのパッチにランダム決定フォレストを適用して、奥行きマップのテクスチャ特徴である構造的特徴要素のヒストグラムを取得し、かつ、前記ヒストグラムの点で前記現在の奥行きマップに類似する以前の奥行きマップを選択するように構成される、請求項６に記載のシステム。
【請求項８】
前記自己位置再推定エンジンが、それぞれが関連するカメラの位置および姿勢を有する、前記モバイルデプスカメラによって以前に収集された奥行きマップフレームである複数のキーフレームから前記現在の奥行きマップに類似するキーフレームを見出すように構成される、請求項６に記載のシステム。
【請求項９】
前記自己位置再推定エンジンが、現在のフレームと類似する垂直表面および水平表面の構成および位置を有するキーフレームを選択するための形状推定プロセスを使用するステップ、ならびに前記モバイルデプスカメラの最後に知られている位置に関係する順序で前記複数のキーフレームを検索するステップのうちのいずれかによってキーフレームを見出すように構成される、請求項８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、奥行きマップを使用したモバイルカメラの自己位置推定に関する。
【背景技術】
【０００２】
[0001]モバイルカメラの自己位置推定は、その環境内を移動するカメラの位置および姿勢を見出すことを必要とし、ロボット、没入型ゲーム、拡張現実感、アーキテクチャ、立案、ロボット、エンジニアリングプロトタイピング（ｅｎｇｉｎｅｅｒｉｎｇ  ｐｒｏｔｏｔｙｐｉｎｇ）、車両ナビゲーション、医学用途、およびその他の問題領域など、多くの用途に有用である。既存の手法は、精度、頑強さ、および速度の点で限定されている。多くの用途にとって、例えば、ロボットがその環境内で成功裏に動き回ることができるように、正確なカメラの自己位置推定がリアルタイムで必要とされる。
【０００３】
[0002]モバイルカメラの自己位置推定のための多くの以前の手法は、デプスカメラ（ｄｅｐｔｈ  ｃａｍｅｒａ）ではなく、カラービデオカメラを使用した。通常、カラービデオカメラは、高い解像度と精度とを提示し、豊かなカラー情報はビデオ画像内で視覚的な特徴が検出されるのを可能にする。デプスカメラから利用可能な情報は、環境のタイプと、使用されるデプスカメラのタイプとに応じて、ノイズが多く、不正確な場合がある。デプスカメラは、本明細書で奥行きマップ（ｄｅｐｔｈ  ｍａｐ）と呼ばれる画像を捕捉し、この場合、それぞれの画素はデプスカメラからカメラの環境内のある点までの絶対距離または相対距離に関係する。利用可能な情報の差異により、カラー画像と比較して、奥行きマップ内の特徴を検出することがより困難な場合がある。
【０００４】
[0003]モバイルカメラの自己位置推定のためのいくつかの以前の手法は、モバイルカメラの環境のマップに対するそのモバイルカメラの位置および姿勢を追跡するのと同時に、そのモバイルカメラの環境のマップを作成することを必要とした。これは、同時位置決め地図作成（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）（ＳＬＡＭ）として知られている。
【０００５】
[0004]以下で説明される実施形態は、知られているモバイルカメラの自己位置推定システムの欠点のうちのいくつかまたはすべてを解決する実装形態に限定されない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
奥行きマップを使用したモバイルカメラの自己位置推定を提供する。
【課題を解決するための手段】
【０００７】
[0005]以下の説明は、読者に基本的な理解をもたらすために、本開示の簡素化された概要を提示する。この概要は、本開示の広範囲に及ぶ概要ではなく、また、この概要は、本発明の主な要素／重要な要素を識別せず、または本発明の範囲を描写しない。その唯一の目的は、後で提示されるより詳細な説明の前置きとして、本明細書で開示される概念の選定を簡素化された形で提示することである。
【０００８】
[0006]ロボット、没入型ゲーム、拡張現実感、およびその他の用途に関する、奥行きマップを使用したモバイルカメラの自己位置推定が説明される。ある実施形態では、感知された奥行きデータを使用してある環境の３Ｄモデルが形成されると同時に、モバイルデプスカメラは、その環境内で追跡される。ある実施形態では、カメラ追跡が失敗したとき、これが検出されて、カメラは、以前に収集されたキーフレームを使用することによって、またはその他の方法で、自己位置が再推定される。ある実施形態では、現在の奥行きマップの特徴を３Ｄモデルとリアルタイムで比較することによって、モバイルカメラがある位置に再度戻るループ閉鎖が検出される。実施形態では、その環境の３Ｄモデルの一貫性と精度とを改善するために、検出されたループ閉鎖が使用される。
【０００９】
[0007]付随する特徴の多くは、添付の図面と共に以下の詳細な説明を参照することによって、それらの特徴がより良好に理解されるにつれてより容易に理解されよう。
[0008]添付の図面に照らして以下の詳細な説明を読むことから、本説明をより良好に理解されよう。
【図面の簡単な説明】
【００１０】
【図１】リアルタイムカメラ追跡に関して使用されることが可能であり、またオプションで、部屋の高密度３Ｄモデルまたは高密度３Ｄマップを生成するためにも使用され得るモバイルデプスカメラを室内で構えている人物の概略図である。
【図２】モバイルデプスカメラを構えている人物によって探索される建物の床の平面図である。
【図３】リアルタイムカメラ追跡システムと、高密度３Ｄモデル形成システムと、ゲームシステムとに接続されたモバイルデプスカメラの概略図である。
【図４】リアルタイムトラッカーにおけるある方法の流れ図である。
【図５】自己位置再推定エンジンの概略図である。
【図６】キーフレームなしの自己位置再推定のある方法の流れ図である。
【図７】キーフレームを用いた自己位置再推定のある方法の流れ図である。
【図８】ループ閉鎖のある方法の流れ図である。
【図９】ある例示的なフレーム整列エンジン（ｆｒａｍｅ  ａｌｉｇｎｍｅｎｔ  ｅｎｇｉｎｅ）の概略図である。
【図１０】カメラ追跡に関するある反復プロセスの流れ図である。
【図１１】対応する点の対を演算するための、図５の反復プロセスの一部のさらなる詳細の流れ図である。
【図１２】高密度３Ｄモデルからの予測を使用して、対応する点の対を演算するためのあるプロセスの流れ図である。
【図１３】図１０の反復プロセスで使用するための点平面エラー基準（ｐｏｉｎｔ−ｔｏ−ｐｌａｎｅ  ｅｒｒｏｒ  ｍｅｔｒｉｃ）を演算および最小化するためのあるプロセスの流れ図である。
【図１４】カメラの自己位置推定システムの実施形態が実施され得る、ある例示的な演算ベースのデバイスを示す図である。
【発明を実施するための形態】
【００１１】
添付の図面内の類似の部分を示すために類似の参照番号が使用される。
[0009]添付の図面に関して下で提供される詳細な説明は、本例の説明として意図され、本例が構築または利用され得る形態だけを表すことが意図されない。本説明は、その例の機能とその例を構築し動作させるためのステップの順序とを説明する。しかし、異なる例によって、同じまたは均等の機能および順序が達成され得る。
【００１２】
[0010]本例は、本明細書で赤外線を放射および捕捉するモバイルデプスカメラから取得された奥行き画像を使用したリアルタイムカメラ追跡システムの形で実施されているとして説明および例示されるが、説明されるシステムは、限定ではなく、ある例として提供される。本例は、ステレオカメラから取得された奥行き情報を使用するシステム、ならびに他のタイプの電磁放射線を放射および捕捉することによって取得された奥行き情報を使用するシステムを含むが、これらに限定されない、様々な異なるタイプのリアルタイムカメラ追跡システム内の用途に適している点を当業者は理解されよう。
【００１３】
[0011]「画像要素」という用語は、本書で、画像の画素、画素のグループ、ボクセル、またはその他のより高いレベルの成分を指すために使用される。
[0012]「高密度３Ｄモデル」という用語は、本書で、オブジェクトおよび表面を含む三次元シーンの表現を示すために使用され、この場合、その表現はそのシーンの画像要素に関する詳細を含む。対照的に、低密度３Ｄモデルは、オブジェクトのフレームベースの表現を含むことが可能である。高密度３Ｄモデルは、ポリゴンメッシュ表現、または３Ｄモデルを記憶するために必要とされる冗長性とメモリとを削減する様式でのその他の表現などの低密度３Ｄモデルに変換されることが可能である。ある例示的な高密度３Ｄモデルは、その環境内の表面を説明するために、入射奥行きマップからのすべての点または多くの点が使用されるモデルであり得る。低密度モデルは、それらの点のサブセットを利用して、計算を加速し、メモリフットプリントを削減することになる。
【００１４】
[0013]図１は、この例では、猫１０８の画像を室内に投影しているプロジェクターをやはり組み込んだモバイルデプスカメラ１０２を室内で構えて立っている人物１００の概略図である。部屋は、椅子、扉、窓、植物、電灯、およびもう１人の人物１０４など、様々なオブジェクト１０６を含む。オブジェクト１０６の多くは静的であるが、人物１０４など、オブジェクトの一部は移動することが可能である。人物が部屋を移動するにつれて、モバイルデプスカメラは画像を捕捉し、これらの画像は、室内のカメラの位置および姿勢を監視するために、リアルタイムカメラ追跡システム１１２によって使用される。リアルタイムカメラ追跡システム１１２は、モバイルデプスカメラ１０２と一体であってよく、またはモバイルデプスカメラ１０２から直接的または間接的に通信を受信することが可能であることを条件に、別の位置にあってもよい。例えば、リアルタイムカメラ追跡システム１１２は、室内のパーソナルコンピュータ、専用コンピュータゲーム装置、またはその他のコンピューティングデバイスに提供され、モバイルデプスカメラ１０２と無線通信することが可能である。他の例では、リアルタイムカメラ追跡システム１１２は、建物内の他の場所にあってよく、または任意の適切なタイプの通信ネットワークを使用してモバイルデプスカメラ１０２と通信する別の遠隔位置にあってもよい。モバイルデプスカメラ１０２は、環境の高密度３Ｄモデル１１０（この場合、部屋の３Ｄモデル）または環境の別のタイプのマップとも通信する。例えば、モバイルデプスカメラ１０２によって捕捉された画像は、人物が部屋を動き回るにつれて、環境の高密度３Ｄモデルを形成および構築するために使用される。リアルタイムカメラ追跡システム１１２は、環境１１０の３Ｄモデルまたは３Ｄマップに対するカメラの位置を追跡することができる。リアルタイムカメラ追跡システム１１２および高密度３Ｄモデルまたは高密度３Ｄマップ１１０の出力は、ゲームシステムまたは他の用途によって使用されることが可能であるが、これは必須ではない。例えば、モバイルデプスカメラ１０２のプロジェクターは、リアルタイムカメラ追跡システム１１２および３Ｄモデル１１０の出力に応じて、画像を投影するように構成されることが可能である。
【００１５】
[0014]図２は、建物の床２００の平面図である。モバイルデプスカメラ２０４を構えている人物２０２は、点線の矢印２０８によって示されるように、床面を動き回る。その人物は廊下２０６に沿って歩き、部屋と家具２１０とを通り過ぎる。リアルタイムカメラ追跡システム１１２は、モバイルデプスカメラ２０４が動き、床面の３Ｄモデルまたは３Ｄマップが形成されるにつれて、モバイルデプスカメラ２０４の位置を追跡することができる。人物２０２がモバイルデプスカメラ２０４を持ち運ぶことは必須でない。他の例では、モバイルデプスカメラ２０４はロボットまたは車両の上に取り付けられる。これは図１の例にも適用される。
【００１６】
[0015]図３は、リアルタイムカメラトラッカー３１６、高密度モデル形成システム３２４、およびオプションで、ゲームシステム３３２と共に使用するためのモバイル環境センサー３００の概略図である。モバイル環境センサー３００は、シーンの奥行き画像のシーケンスを捕捉するように構成されたデプスカメラ３０２を備える。それぞれの奥行き画像または奥行きマップフレーム３１４は二次元画像を含み、その二次元画像内で、それぞれの画像要素は、カメラから、その画像要素を生じさせた、捕捉されたシーン内のオブジェクトまでの長さ、すなわち、距離など、奥行き値を含む。この奥行き値は、メートル、もしくはセンチメートルなど、指定された測定単位で提供された絶対値であってよく、または相対的な奥行き値であってもよい。それぞれの捕捉された奥行き画像内に、それぞれが奥行き値を有する、およそ３００，０００以上の画像要素が存在する可能性がある。フレームレートは、それらの奥行き画像が作業ロボット、コンピュータゲーム、またはその他の用途に関して使用されることを可能にするのに十分高い。例えば、毎秒少なくとも２０フレームである。
【００１７】
[0016]奥行き情報は、タイムオブフライト（ｔｉｍｅ  ｏｆ  ｆｌｉｇｈｔ）、立体照明、ステレオ画像を含むが、これらに限定されない任意の適切な技法を使用して取得され得る。いくつかの例では、デプスカメラは、奥行き情報をデプスカメラの見通し線に沿って伸びるＺ軸に対して直角なＺ個の層に組織化することが可能である。
【００１８】
[0017]モバイル環境センサー３００は、奥行き情報がデプスカメラ３０２によって確認され得るような方法でシーンを照明するように構成されたエミッター３０４を備えることも可能である。例えば、デプスカメラ３０２が赤外線（ＩＲ）タイムオブフライトカメラである場合、エミッター３０４はＩＲ線をシーン上に放射し、デプスカメラ３０２は、そのシーン内の１つまたは複数のオブジェクトの表面から後方散乱された光を検出するように構成される。いくつかの例では、出射光パルスと対応する入射光パルスとの間の時間がデプスカメラによって検出され、測定されて、環境センサー３００からそのシーン内のオブジェクト上の位置までの物理的距離を判断するために使用され得るように、パルス赤外線がエミッター３０４から放射される場合がある。加えて、いくつかの例では、位相偏移を判断するために、エミッター３０４からの出射光波の位相がデプスカメラ３０２における入射光波の位相と比較されることが可能である。位相偏移は、次いで、例えば、シャッター光パルス結像（ｓｈｕｔｔｅｒｅｄ  ｌｉｇｈｔ  ｐｕｌｓｅ  ｉｍａｇｉｎｇ）を含む様々な技法によって経時的に光の反射ビームの強度を解析することによって、モバイル環境センサー３００からオブジェクト上の位置までの物理的な距離を判断するために使用されることが可能である。
【００１９】
[0018]別の例では、モバイル環境センサー３００は、奥行き情報を捕捉するために立体照明を使用することができる。そのような技法では、エミッター３０４を使用して、パターン化された光（例えば、グリッドパターンまたはストライプパターンなど、知られているパターンとして表示された光）がシーン上に投影され得る。シーン内のオブジェクトの表面を照らすとすぐに、そのパターンは変形する。パターンのそのような変形がデプスカメラ３０２によって捕捉され、解析されて、デプスカメラ３０２からそのシーン内のオブジェクトまでの絶対距離または相対距離を判断することが可能である。
【００２０】
[0019]別の例では、デプスカメラ３０２は、視覚的なステレオデータが取得されて、分解されて、相対的な奥行き情報を生成するように、ステレオカメラの対を備える。この場合、シーンを照明するためにエミッター３０４が使用されてよく、またはエミッター３０４は省略されてもよい。
【００２１】
[0020]いくつかの例では、デプスカメラ３０２に加えて、モバイル環境センサー３００は、ＲＧＢカメラ３０６と呼ばれるカラービデオカメラを備える。ＲＧＢカメラ３０６は、可視光周波数でそのシーンの画像のシーケンスを捕捉するように構成される。
【００２２】
[0021]モバイル環境センサー３００は、慣性計測装置（ＩＭＵ）、加速度計、ジャイロスコープ、コンパス、またはその他の姿勢センサー３０８など、姿勢センサー３０８を備えることが可能である。しかし、姿勢センサーを使用することは必須ではない。モバイル環境センサー３００は、ＧＰＳなどの位置追跡デバイスを備えることが可能であるが、これは必須ではない。
【００２３】
[0022]モバイル環境センサーは、図１を参照して上で述べたようにプロジェクター３１２を備えることが可能であるが、これは必須ではない。
[0023]モバイル環境センサーは、下でより詳細に説明されるように、１つまたは複数のプロセッサー、メモリ、および通信基盤も備える。
【００２４】
[0024]モバイル環境センサーは、ユーザーによって携帯されるか、またはユーザーによって装着されるような形状およびサイズのハウジング内に提供され得る。他の例では、モバイル環境センサーは、車両、玩具、もしくはその他の可動装置の上に組み込むか、または取り付けられるようなサイズおよび形状である。
【００２５】
[0025]モバイル環境センサー３００は、リアルタイムトラッカー３１６に接続される。この接続は、物理的に配線された接続であってよく、または無線通信を使用することも可能である。いくつかの例では、モバイル環境センサー３００は、インターネットなど、１つまたは複数の通信ネットワークを介して、リアルタイムトラッカーと間接的に接続される。
【００２６】
[0026]リアルタイムトラッカー３１６は、グラフィックス処理装置（ＧＰＵ）、ベクターマシン、マルチコアプロセッサー、またはその他の並列コンピューティングデバイスなど、１つもしくは複数の並列演算装置を制御する汎用マイクロプロセッサーを使用して実施されるコンピュータである。リアルタイムトラッカー３１６は、フレーム整列エンジン３１８と、オプションで、ループ閉鎖エンジン３２０と自己位置再推定エンジン３２２とを備える。リアルタイムトラッカー３１６はデプスカメラ３０２からの奥行きマップフレーム３１４を利用し、オプションで、モバイル環境センサー３００からの入力、オプションのマップデータ３３４およびゲームシステム３３２からのオプションのデータも利用する。リアルタイムトラッカーは、デプスカメラ３０２の６自由度姿勢推定のリアルタイムシリーズ３２８を生み出すために、奥行きマップフレームを整列させるように動作する。リアルタイムトラッカーは、奥行きマップフレームの対同士の間の変換に関する（登録パラメータとも呼ばれる）変換パラメータを生み出すことも可能である。いくつかの例では、リアルタイムトラッカーは、デプスカメラからの奥行きマップフレーム３１４の対に関して動作する。その他の例では、リアルタイムトラッカー２１６は、単一の奥行きマップフレーム３１４を利用して、その単一の奥行きマップフレーム３１４を別の奥行きマップフレーム３１４とではなくシーンの高密度３Ｄモデル３２６と整列させる。
【００２７】
[0027]例えば、いくつかの実施形態では、リアルタイムトラッカー３１６は、出力を高密度３Ｄモデル形成システム３２４に提供し、高密度３Ｄモデル形成システム３２４は奥行きマップフレーム３１４と共にその情報を使用して、そのシーンまたはモバイル環境センサー３００が移動している環境の高密度３Ｄモデルを形成および記憶する。例えば、図１の場合、３Ｄモデルは、室内の表面およびオブジェトの３Ｄモデルであろう。図２の場合、３Ｄモデルは、建物の床面の３Ｄモデルであろう。高密度３Ｄモデル３２６は、ＧＰＵメモリ内に記憶されてよく、またはその他の方法で記憶されてもよい。
【００２８】
[0028]モバイル環境センサー３００は、ディスプレイ３３０に接続されたゲームシステム３３２と共に使用されることが可能である。例えば、ゲームは、ゴルフゲーム、ボクシングゲーム、自動車レーシングゲーム、またはその他のタイプのコンピュータゲームであってよい。ゲーム状態など、ゲームシステム３３２からのデータ、またはゲームに関するメタデータがリアルタイムトラッカー３１６に提供され得る。また、ゲームがどのように進行するかに影響を及ぼすために、リアルタイムトラッカーからの情報がゲームシステム３３２によって使用され得る。ゲームがどのように進行するかに影響を及ぼすために、３Ｄモデルからの情報もゲームシステム３３２によって使用され得る。
【００２９】
[0029]マップデータ３３４は、オプションで、リアルタイムトラッカー３１６にとって利用可能である。例えば、これは、アーキテクトの環境図面（例えば、建物の部屋または床面）、その環境内で知られているランドマークの位置、別のソースから利用可能なその環境のマップであってよい。
【００３０】
[0030]リアルタイムトラッカーのフレーム整列エンジン３１８は、奥行きマップフレームの対またはある奥行きマップフレームと高密度３Ｄモデルからの奥行きマップフレームの推定を整列させるように構成される。フレーム整列エンジン３１８は、フレーム整列エンジンがリアルタイムで動作するために、１つまたは複数のグラフィックス処理装置を使用して実施される反復プロセスを使用する。フレーム整列エンジンに関するさらなる詳細は図９を参照して下で提示される。
【００３１】
[0031]リアルタイムトラッカー３１６および／または高密度３Ｄモデル形成システム３２４によって実行される処理は、一例では、モバイル環境捕捉デバイス３００の位置から遠隔で実行されることが可能である。例えば、モバイル環境捕捉デバイス３００は、比較的低い処理能力を有し、通信ネットワークを介して奥行き画像をサーバに流すコンピューティングデバイスに接続されること（または、当該コンピューティングデバイスを備えること）が可能である。サーバは、比較的高い処理能力を有し、リアルタイムトラッカー３１６および／または高密度３Ｄモデル形成システム３２４の演算的に複雑なタスクを実行する。サーバは、フレームごとに高密度の再構成のレンダリングされた画像を戻して、双方向体験をユーザーに提供することが可能であり、（例えば、ゲームでの）後の局所使用のために、モデルの完了時に最終的な高密度３Ｄ再構成を戻すことも可能である。そのような構成は、ユーザーが高出力のローカルコンピューティングデバイスを所有する必要を回避する。
【００３２】
[0032]ループ閉鎖エンジンは、現在の奥行きフレーム内に描写されたシーンが、直前の奥行きフレームではない、以前の奥行きフレームのシーンと少なくとも部分的に重複するように、モバイル環境センサーがループ内でいつ移動したかを検出するように構成される。ループが閉鎖されるとき、モバイル環境センサーは、そのモバイル環境センサーが前にいたある場所に再度戻る。例えば、図２でユーザーが建物の床面全体を歩き回り、開始点に再度達したときに、これが発生する可能性がある。これは、ユーザーが室内である家具の後ろを歩き回り、元の開始位置、または、その元の開始位置近くに再度出てきたときに発生する可能性もある。したがって、ループのサイズは、モバイル環境センサーが存在する環境と用途領域とに応じて変化することになる。例えば、（図２にあるように）ある人物が建物の床面を歩き回っている場合、ループは数十メートルの長さであり得る。（図１にあるように）ある人物が単一の部屋のあちこちにカメラを移動させる場合、ループは、１０メートル未満の長さであり得る。玩具の自動車上のロボットが子どもの玩具のレーシングトラック上を走り回っている場合、ループは１メートル未満の長さであり得る。ループ閉鎖がいつ発生するかを検出することは３Ｄモデル内に蓄積されたエラーが識別されるのを可能にするため、それは有用である。例えば、モバイル環境センサーは、ループの開始点と終了点にいるとして識別された奥行き画像および／またはカラービデオ画像を捕捉した可能性があるが、それらの画像のそれぞれに関して計算されたカメラの位置および姿勢は一貫しない場合がある。これらのエラーが識別されると、これらのエラーは削減され、それにより、環境の３Ｄモデルまたは３Ｄマップの精度と一貫性とを改善することができる。また、カメラ追跡の総誤差または姿勢喪失が回復され得る。ループ閉鎖エラーは、自己位置推定されたエラーとグローバルエラーの両方を含むと考えることができる。（ドリフトとも呼ばれる）グローバルループ閉鎖エラーは、経時的なカメラの結合された６自由度姿勢推定内のエラーを含む。自己位置推定されたエラーは、個々のフレームからのカメラの６自由度姿勢推定または大きく重複するフレームのシーケンスにおいて発生する可能性がある。ループ閉鎖がリアルタイムでいつ発生するかを正確に検出することは簡単ではない。ループ閉鎖が検出されると、何らかのループ閉鎖エラーが識別および削減され、高品質の結果を達成しながらこれをリアルタイムで達成するのは困難である。加えて、グローバルループ閉鎖エラーは、ローカルループ閉鎖エラーとは異なる方法で相殺または処理されることが可能である。
【００３３】
[0033]自己位置再推定エンジン３２２は、リアルタイムトラッカーがモバイル環境センサー３００の現在の位置を失い、現在の位置を再推定するかまたは再度見出す状況に対処するように構成される。リアルタイムトラッカーは、多くの理由で、モバイル環境センサー３００の現在の位置を失う場合がある。例えば、迅速なカメラの動き、閉鎖、および動きのぶれ。奥行きマップがリアルタイム追跡に関して使用される場合、環境が密な詳細をほとんど有さず、主に平面状表面を含む場合に追跡失敗が発生する可能性もある。立体照明エミッターを使用するデプスカメラの場合、環境が、コンピュータスクリーンおよび不良な奥行き情報を生み出すその他の反射面など、非常に反射する表面を有する場合、追跡失敗が発生する可能性がある。追跡失敗が検出されない場合、誤った追跡情報が潜在的に使用されて、環境の３Ｄモデルまたは３Ｄマップを増分する可能性がある。これは３Ｄモデルまたはマップの汚染につながる場合がある。追跡失敗の迅速かつ正確な検出は、３Ｄモデルの汚染を防止するほかに、追跡回復プロセスをトリガする目的で使用され得るため、それは有益である。
【００３４】
[0034]図４は、図３のリアルタイムトラッカー３１６のあるプロセスの流れ図である。リアルタイムカメラ追跡は、下で図９から図１３を参照して説明されるように、フレーム整列エンジン３１８を使用して確立される４００。モバイル環境センサー３００が移動している環境の高密度３Ｄモデル３２６を精緻化するために、奥行きマップフレーム３１４とフレーム整列エンジンからの出力（登録パラメータならびにカメラの姿勢および位置）とが使用される４０２。追跡失敗が検出された場合４０４、モバイル環境センサー３００の自己位置再推定４０６が発生し、より多くの奥行きマップフレームが捕捉されるにつれて高密度３Ｄモデルを増分して、プロセスはステップ４０２に進む。このようにして、追跡失敗が検出されると、自己位置再推定が成功するまで、進行中のカメラ追跡および３Ｄモデルの進行中の精緻化が休止される。ループ閉鎖エラーが検出された場合４０８、そのエラーを考慮に入れるように高密度３Ｄモデル自体が修正される。ループ閉鎖エラーに対処した後で、高密度３Ｄモデルを増分して、プロセスはステップ４０２に進む。このようにして、追跡失敗が発生するとき環境の高密度３Ｄモデルは保存され、ループ閉鎖を検出した結果、その精度と一貫性とが改善される。
【００３５】
[0035]図５は、図３の自己位置再推定エンジン３２２のさらなる詳細を提示する概略図である。自己位置再推定エンジン３２２は、リアルタイムで動作する追跡失敗検出器５００を備える。追跡失敗検出器５００は、関係する用途領域に応じて事前構成された閾値５０２を含む。例えば、フレーム整列エンジンによって出力された登録パラメータが閾値量を超えて変化するとき、追跡失敗が発生する可能性がある。別の例では、フレーム整列エンジンによって出力されたＳＥ３行列が連続する出力間の閾値量を超えて変化するとき、追跡失敗が発生する可能性がある。モバイルデプスカメラの位置および姿勢を追跡するために使用された反復プロセスの収束において失敗が発生するとき、追跡失敗が検出される可能性がある。追跡失敗検出器５００は、１つもしくは複数の規則、基準、閾値、またはその他の条件として記憶されたモーションヒューリスティック（ｍｏｔｉｏｎ  ｈｅｕｒｉｓｔｉｃ）５０４を含むことが可能である。例えば、モーションヒューリスティックは、モバイル環境センサー３００がホワイトノイズ加速度で、一定速度で移動しているという規則であってよい。このモーションヒューリスティックと一致しないフレーム整列エンジンからのいずれの出力も追跡失敗をトリガする可能性がある。別の例では、モーションヒューリスティックは、モバイル環境センサー３００が、（モバイル環境センサーがユーザーによって装着される場合）平均的な人間の歩行速度に設定された最大線速度を用いて、かつ無作為に高回転速度を用いて、ランダムウォークで移動することであってよい。このモーションヒューリスティックと一致しないフレーム整列エンジンからのいずれの出力も追跡失敗をトリガする可能性がある。これらの追跡失敗検出方法のうちの１つまたは複数の任意の組合せが使用されてよい。ある例では、モーションヒューリスティックの違反による追跡失敗、回転閾値の違反による追跡失敗、および／または収束障害もしくはあまりにも多くの残余誤差を伴う収束により、モバイルデプスカメラの位置および姿勢を追跡するために使用される反復プロセスの失敗が発生したときの追跡失敗を検出するために、これらの３つの違反状況の組合せが使用される。
【００３６】
[0036]追跡失敗検出器５００は、フレーム整列エンジンが縮退を検出するとき５０６、追跡失敗を検出するように構成された構成要素を備えることが可能である。例えば、下で説明されるように、フレーム整列エンジンは、エラー基準の最適化を含む反復プロセスを使用することによって、奥行きマップの対同士の間に対応する点の対を見出す。そのエラー基準の最適化の間、最適化プロセスが何の解決策も提示できないとき、縮退が検出される可能性がある。例えば、この失敗は、環境内の反射面により奥行き値を有さない、奥行きマップ内の画素要素が原因である場合があり、球状表面または円柱状表面が存在する場合、環境が非常に平面であることが原因である場合があり、またはその他の理由による場合もある。
【００３７】
[0037]自己位置再推定エンジンは、キーフレームを使用することが可能であるか、またはキーフレームなしに動作することも可能な自己位置再推定プロセス５０８も含む。キーフレームは、リアルタイムトラッカーによって以前に収集されたか、または人工的に生成された奥行きマップフレームまたはカラービデオフレームである。追跡は現在のカメラビューに良好に整合するキーフレームを見出すことによって回復され、これは、そこから追跡を再開できる初期姿勢推定を提供する。場合によっては、キーフレームは、ＳＥ３行列内にマージされ（ｍａｒｇｉｎａｌｉｚｅｄ）、これはメモリ要件を削減する。必要な場合、キーフレーム点はレイキャスティングによって高密度３Ｄモデルから回復されることが可能である。
【００３８】
[0038]自己位置再推定プロセス５０８がキーフレームなしで動作するある例が、次に、図６を参照して提示される。例えば、モバイル環境センサーに関する動きモデルを使用して、カメラ姿勢の追跡分布が演算される６００。この動きモデルは、モバイル環境センサーが、その最後に知られている位置をおよそ中心として任意の姿勢に着実に拡大する範囲内にあることを予測することができる。追跡分布から無作為にまたは任意のその他の方法で例示的なカメラ姿勢が選択される６０２。次いで、フレーム整列エンジンがサンプリングされたカメラ姿勢と共に使用され６０４、現在の奥行きマップと以前の奥行きマップを整列させて、下でより詳細に説明されるように、登録パラメータを取得する。収束に達した場合６０６、すなわち、登録パラメータが最後に知られている位置と一致する場合、カメラは成功裏に自己位置推定されている６０８。そうでない場合、別のサンプルが取られ６０２、プロセスが繰り返す。
【００３９】
[0039]自己位置再推定プロセス５０８がキーフレームなしで動作する別の例が次に提示される。
[0040]現在の奥行きマップのパッチに対して、かつ環境の３Ｄモデルから取得された複数の以前の奥行きマップのパッチに対して、ランダム決定フォレスト（ｒａｎｄｏｍ  ｄｅｃｉｓｉｏｎ  ｆｏｒｅｓｔ）など、高速クラスタリングアルゴリズムが適用される。レイキャスティング技法を使用して、３Ｄモデルから奥行きマップをレンダリングすることによって、または任意のその他の方法で、以前の奥行きマップが環境の３Ｄモデルから取得され得る。ランダム決定フォレスト内のそれぞれの葉ノードは構造的特徴要素（ｔｅｘｔｏｎ）を表す。構造的特徴要素はカラー画像のテクスチャ特徴であるが、この例では、奥行きマップが使用され、したがって、構造的特徴要素は奥行きマップのテクスチャ特徴である。現在の奥行きマップの複数のパッチが無作為に、または任意のその他の方法で選択される。それぞれのパッチは、複数の隣接する画像要素である。パッチは複数の以前の奥行きマップのそれぞれからも選択される。それぞれのパッチは、そのパッチに関する構造的特徴要素を識別するために、ランダム決定フォレストの葉に処理される。次いで、画像内に見出されたすべての構造的特徴要素のヒストグラムが構築される。
【００４０】
[0041]自己位置再推定プロセスは、ランダム決定フォレスト分類器によって出力された構造的特徴要素のヒストグラムの点で現在の奥行きマップに類似する以前の奥行きマップを選ぶ。次いで、選択された奥行きマップに関連するカメラ姿勢が現在のカメラ姿勢として使用され、カメラが自己位置を再推定される。ランダム決定フォレストクラスタリングアルゴリズムは、オフラインで、またはリアルタイムトラッカーを使用する間にバックグラウンド処理を使用してトレーニングされる。
【００４１】
[0042]図７は、自己位置再推定に関するキーフレームを使用するある方法の流れ図である。リアルタイム追跡の間にキーフレームが収集され７０２、３Ｄモデルに関連して記憶される。例えば、キーフレームはモバイル環境センサー３００においてＲＧＢカメラ３０６によって捕捉されたカラービデオフレームである。別の例では、キーフレームは、デプスカメラ３０２によって捕捉された奥行きマップフレーム３１４である。それぞれのキーフレームは、リアルタイム追跡の間にフレーム整列エンジン３１８によって計算された、関連するカメラ姿勢を有する。それぞれのキーフレームは、カメラ姿勢にしたがって、３Ｄモデル３２６内の位置と関連付けられる。キーフレームは、例えば、キーフレームに関するカメラ姿勢によって指定された位置において３Ｄモデル内に基準を含めることによって、３Ｄモデルに関連して記憶される。いくつかの例では、３Ｄモデルは、ＧＰＵメモリのキューブ内に記憶され、キーフレームは、キーフレームに関するカメラ姿勢によって指定された位置にしたがって、メモリのこのキューブ内に残される。場合によっては、キーフレームはその関連するＳＥ３行列として記憶され、これはメモリ要件を削減する。キーフレーム奥行き点は、必要な場合、レイキャスティングによって高密度３Ｄモデルから回復され得る。
【００４２】
[0043]収集されるキーフレームの数は、利用可能なメモリおよび処理能力、ならびに用途領域に依存する。しかし、何万ものキーフレームが記憶されることが可能である。キーフレームとして維持するためのフレームの選択は、ランダム選択を使用して、ｎ個おきにフレームを選択することによって、以前に見られなかった視覚的特徴を含むフレームを選択することによって、これらの手法の組合せを使用して、または任意のその他の方法で達成される。ある例では、システムは、キーフレーム同士の間の最低数のフレームを待ち、移動および回転の点で既存のキーフレームのうちのいずれかから少なくとも指定された量だけ離れているフレームが、カメラ姿勢に対応する場合、その新しいキーフレームを記録する。
【００４３】
[0044]追跡失敗が検出されたとき７０２、自己位置再推定エンジンは、現在のカメラビュー（奥行きマップまたはＲＧＢ画像）に類似する、キーフレームのうちの１つを選択する７０４。キーフレームと現在のカメラビューとの間の類似性の測定は、任意の適切なタイプのものであってよい。例えば、縁、角、ブロブ（ｂｌｏｂｓ）、線などの特徴が比較され得る。キーフレームに適用されたオブジェクトセグメント化プロセスの結果と現在のカメラビューとを比較することなど、他の類似性測定が使用されてもよい。キーフレームが奥行きマップである場合、キーフレームに人体姿勢検出器が適用され、現在のビューと結果とが比較され得る。現在のフレームならびに以前のフレームに（機械学習分類器など）形状推定および／または意味的画像ラベル付けプロセスが適用され得る。次いで、現在のフレームと比較して類似の形状（垂直表面および水平表面の構成ならびに位置）および／または意味的ラベル付け（オブジェクトの構成）を有するフレームを選択することによって、自己位置の再推定をすることが可能である。
【００４４】
[0045]くまなく検索すべきキーフレームがあまりにも多く存在するため、キーフレームを選択することは、複雑かつ時間がかかるタスクである。いくつかの例では、最後の知られているカメラ位置周辺に位置するキーフレームの検索が行われ、次いで、良好な整合が見出されるまで、検索空間が徐々に拡大され得る。
【００４５】
[0046]キーフレームが選択されると、そこから追跡を再開することができる初期姿勢推定を提供するために、そのキーフレームが使用される７０６。
[0047]次に、図３のループ閉鎖エンジン３２０でのある方法が図８を参照して説明される。ループ閉鎖検出プロセス８０４は、環境の現在の奥行きマップ８００および３Ｄモデル８０２からの入力を利用する。場合によっては、ループ閉鎖検出プロセス８０４はＲＧＢカメラ３０６によって捕捉された現在のカラー画像からの入力を利用するが、これは必須ではない。ループ閉鎖検出プロセス８０４は、特徴整合プロセス８０６、語の袋（ｂａｇ  ｏｆ  ｗｏｒｄｓ）プロセス８０８、またはその他のループ閉鎖検出プロセスなど、任意の適切なループ閉鎖検出方法を使用する。上で述べたように、モバイル環境センサーがある位置に再度戻るとき、ループ閉鎖が発生する。語の袋プロセスは、２つの画像がいつ同じシーンを示すかを効率的に認識し、それによりループ閉鎖を検出することができる。語の袋プロセスは、特徴記述子（例えば、線、縁、角、ブロブ、ＳＩＦＴ特徴、ＳＵＲＦ特徴）の（動的またはオフライン）辞書を生成し、その辞書を使用して、画像内で見出された特徴にラベル付けする。次いで、これらの画像は非常に迅速に比較されて、これらの画像が多くの共通する特徴を有するかどうか、したがって、同じオブジェクトまたは位置のものであり得るかを確認することができる。特徴整合プロセスは、辞書を使用せずに、２つの画像内で同じである特徴を識別する任意のプロセスである。
【００４６】
[0048]ループ閉鎖が検出されると、任意のループ閉鎖エラーが見出されて、明らかにされることが可能である。例えば、ループ閉鎖は、３Ｄモデルのその部分と現在の奥行きマップとが同じカメラ位置を有することを識別する。しかし、追跡エラーにより、これは事実と異なる場合がある。加えて、ループ閉鎖エラーのタイプが識別され得る。例えば、ループ閉鎖が、カメラの結合された６自由度姿勢推定内のドリフトの結果であるなど、グローバルのループ閉鎖であるかどうかどうか、またはエラーが、個々のフレームもしくは大きく重複するフレームのシーケンスからの不良な６自由度姿勢推定の結果である、ローカルのエラーであるかどうか。ループ閉鎖エラーは、グローバルループ閉鎖エラーとローカルループ閉鎖エラーの組合せであってよい。ループ閉鎖手順８１２に従って、このエラーを削減し、３Ｄモデルの一貫性と精度とを改善する。エネルギー関数を最適化するなど、任意の適切なループ閉鎖手順が使用されてよい。
【００４７】
[0049]図９は、図３のフレーム整列エンジン３１８のより詳細な概略図である。フレーム整列エンジン９０８は、少なくとも１つのＣＰＵと１つまたは複数のＧＰＵとを有するコンピューティングデバイスにおいて実施されるコンピュータである。フレーム整列エンジン９０８は、オプションである平面抽出構成要素９１０と反復最近傍点プロセス（ｉｔｅｒａｔｉｖｅ  ｃｌｏｓｅｓｔ  ｐｏｉｎｔ  ｐｒｏｃｅｓｓ）９１２とを備える。反復最近傍点プロセスは、下でより詳細に説明されるように、投影データ関連付けと点平面エラー基準とを使用する。フレーム整列エンジンは、デプスカメラから現在の奥行きマップ９００を受信する。これは、移動先（ｄｅｓｔｉｎａｔｉｏｎ）奥行きマップとも呼ばれる。いくつかの例では、フレーム整列エンジンは、デプスカメラからの以前の奥行きマップフレームである移動元（ｓｏｕｒｃｅ）奥行きマップ９０２も受信する。他の例では、フレーム整列エンジンは、移動元奥行きマップの高密度表面モデル推定９０６を利用する。フレーム整列エンジンの出力は、現在のフレームと移動元フレームとを整列させるための変換の登録パラメータのセット（すなわち、フレーム推定）である。いくつかの例では、これらの登録パラメータは、実世界座標に相対的なデプスカメラ３０２の回転および移動を記述するＳＥ３行列の形で６自由度（６ＤＯＦ）姿勢推定として提供される。より形式的には、この変換行列は以下のように表現され得る：
【００４８】
【数１】
0005881743.tif 000002
【００４９】
[0050]式中、Ｔｋは奥行き画像フレームｋに関する変換行列であり、Ｒｋはフレームｋに関するカメラ回転であり、ｔｋはフレームｋにおけるカメラ移動であり、ユークリッド群
【００５０】
【数２】
0005881743.tif 000003
【００５１】
である。カメラ空間内の（すなわち、カメラの視点からの）座標は、この変換行列で乗算することによって、実世界座標にマッピングされることが可能である。しかし、登録パラメータは任意の適切な形態で提供され得る。これらの登録パラメータは、デプスカメラの６自由度姿勢推定のリアルタイムシリーズを生み出すために、リアルタイムトラッカー３１６によって使用される。
【００５２】
[0051]図１０は、フレーム整列エンジンにおけるある例示的な反復プロセスの流れ図である。登録パラメータの初期推定が形成される１０００。これらの登録パラメータは、現在のフレームと移動元フレームとを整列させるための変換の登録パラメータである。この初期推定は、任意の適切な方法で形成される。例えば、初期推定を形成するために、情報の以下のソースのうちの１つまたは複数が使用され得る。すなわち、ゲーム状態、ゲームメタデータ、マップデータ、ＲＧＢカメラ出力、姿勢センサー出力、ＧＰＳデータである。別の例では、カメラがそのカメラの以前のモーションパス（ｍｏｔｉｏｎ  ｐａｔｈ）に関する情報をどこで使用しているかを予測することによって、初期推定が形成される。例えば、カメラは、一定速度または一定の加速度を有すると仮定することができる。カメラが時間ｔにいることになる場所を推定し、それにより、登録パラメータの推定を取得するために、時間０から時間ｔ−１までのカメラのモーションパスが使用され得る。
【００５３】
[0052]初期推定を使用して、現在のフレームと移動元フレーム（奥行きマップまたは推定される奥行きマップ）との間の対応する点の対が演算される１００２。対応する点の対は、ある奥行きマップからの点およびもう１つの奥行きマップからの点であり、この場合、それらの点はシーン内の同じ実世界の点から発生したと推定される。「点」という用語は、ここで、画素、または近接する画素のグループもしくはパッチを指すために使用される。点の可能な組合せの数が膨大であるため、この対応問題は非常に困難である。カラー画像またはグレースケール画像を使用する以前の手法は、それぞれの画像内の線、縁、角などの形状を識別し、次いで、画像の対同士の間でそれらの形状を整合させることを試みることによって、この問題に対処した。対照的に、本明細書で説明される実施形態は、奥行きマップ内の形状を見出す必要なしに、対応する点を識別する。対応する点がどのように演算されるかに関するさらなる詳細が図１１を参照して下で提示される。演算された対応する点に適用されるエラー基準を最適化する、登録パラメータの更新された推定が計算される１００４。
【００５４】
[0053]収束に達しているかどうかを評価するための検査が行われる１００６。達している場合、更新された推定内には変化がわずかに存在するか、またはまったく存在せず、登録パラメータが出力される１００８。達していない場合、図１０に示される反復プロセスが繰り返す。
【００５５】
[0054]図１１を参照して、次に、対応する点の対がどのように計算されるかに関するさらなる詳細が提示される。いくつかの実施形態では、現在の奥行きマップおよび移動元奥行きマップのうちのいずれかまたは両方からのサンプル点が利用され１１００、それらのサンプル点はそこから対応する点の対を見出すための候補として使用される。サンプリングは、指定された割合の点を無作為に選択することによって達成され得る。別の実施形態では、サンプリングはそれらの点の表面法線を考慮に入れる形で達成される。例えば、（下でより詳細に説明されるように）それぞれの点に関して表面法線が計算され、異なる範囲の表面法線値に関する複数のビンを用いてヒストグラムが生み出される。ビンを通して均一のサンプリングが達成されるように、サンプリングが実行される。
【００５６】
[0055]サンプリングを使用することによって、演算コストが削減される利益が達成される。しかし、リスクは、サンプリングが使用されるとき、このプロセスの精度および頑強さが削減されることである。これは、サンプル点がそこからそれらのサンプルが取られた奥行きマップの良好な表示を提供しない可能性があるためである。例えば、これらのサンプルは、そのプロセスが、そのプロセスが解決策として識別するが、実際には、全世界的に最適な解決策ではなく局所的に最適な解決策であることを表す対応する点のセットを見出すのを可能にする場合がある。
【００５７】
[0056]とはいえ、何らかのサンプリングを使用することは必須ではない。このプロセスも実行可能であり、すべての利用可能な点が使用されるとき、良好な結果を提示する。この場合、本明細書で説明されるＧＰＵ実装形態は、このプロセスが、３００，０００以上もの数であり得る、それぞれの奥行きマップ内のすべての点に関してリアルタイムで動作することを可能にする。図１１を参照して下で説明される例では、サンプリングを使用するプロセスが説明される。しかし、図１１のプロセスは、サンプリングが実行されない場合にも適用可能である。
【００５８】
[0057]図１１に示されるように、サンプル点（または、サンプリングが行われない場合、それぞれの利用可能な点）の表面法線が演算される１１０２。例えば、これは、奥行きマップ内の４つの（以上の）最近傍の近接点を見出し、それら近隣と点自体とを組み込む表面パッチを演算することによって、所与の点に関して達成される。次いで、その点の位置においてその表面パッチに対する法線が計算される。
【００５９】
[0058]点の対応する対を見出すプロセス１１０４に従う。これは、次に、高密度３Ｄモデルを使用せずに移動元奥行きマップと現在の奥行きマップとが利用可能な事例で説明される。移動元奥行きマップからのそれぞれのサンプリングされた移動元点に関して、その移動元奥行きマップに関連するカメラ位置から、サンプリングされた移動元点を介して、移動先奥行きマップ内の移動先点上に光線が投影される１１０６。場合によっては、移動先点は、投影された光線に沿ってサンプリングされた移動元点の前方にある場合がある。この投影プロセスは、「投影データ関連付け」と呼ばれる場合がある。次いで、移動先点周囲の、移動先点を含む候補の対応する点に関して検索が行われる１１０８。例えば、この検索は、サンプリングされた移動元点の表面法線に適合する表面法線を有する点に関する。表面法線が互いの指定された範囲内にあり、移動先点の指定されたユークリッド距離内にある場合、表面法線は適合すると言える。例えば、この指定された範囲はユーザー構成可能である。
【００６０】
[0059]この検索の結果として、１つまたは複数の候補の対応する点が見出される。それらの候補の対応する点から、移動元点の対を形成するために、単一の点が選択される１１１０。この選択は、距離基準に基づいて行われる。例えば、移動元点と候補の対応する点のそれぞれとの間のユークリッド距離が計算される。次いで、最小のユークリッド距離を提示する対が選択される。次いで、サンプリングされた移動元点のそれぞれに関して、または、サンプリングが行われない場合、移動元奥行きマップの利用可能な点のそれぞれに関して、囲みのプロセス１１０４が繰り返される。
【００６１】
[0060]いくつかの実施形態では、対応する点の対のそれぞれに重みが割り当てられる１１１２。例えば、重みは、ＲＧＢカメラまたはその他のセンサーなど、他の移動元からの情報を使用して割り当てられることが可能である。ある例では、デプスカメラの測定特性に関する重みが演算され、対応する点の対のそれぞれと共に記憶される。これらの重みは、結果の品質を改善するために、エラー基準を適用するプロセスの間に使用され得る。
【００６２】
[0061]いくつかの実施形態では、奥行きマップ境界上または奥行きマップ境界近くの点を含む対は拒絶される１１１４。これは２つの奥行きマップ同士の間の重複が単に部分的であるエラーを回避するのに役立つ。対を拒絶するために他の基準が使用されてもよい。例えば、いくつかの実施形態では、図９の構成要素９１０を参照して上で説明されたような平面抽出が実行される。その場合、平面上にある対は拒絶され得る。
【００６３】
[0062]いくつかの実施形態では、デプスカメラによって捕捉されているシーンの高密度３Ｄモデルから移動元奥行きマップが推定または予測される。この場合、図１２の方法に従う。シーンの高密度３ＤモデルはＧＰＵメモリ内に記憶されたシーンの３Ｄ表面表現を含む。３Ｄモデルを記憶するその他の方法が使用されてよい。例えば、高密度３Ｄモデルは、スライスおよび行があるメモリブロックサイズで整列するように、オプションで、何らかのパディング（ｐａｄｄｉｎｇ）を用いて、スライス・行・列順序（ｓｌｉｃｅ−ｒｏｗ−ｃｏｌｕｍｎ  ｏｒｄｅｒ）で線形アレイとして記憶されることが可能である（この点に関するさらなる詳細は下で提示される）。八分木、粗・微表現、ポリゴンメッシュなどのメッシュベースの表現など、３Ｄモデルを記憶するその他の方法が使用されてよい。
【００６４】
[0063]次に、高密度３ＤモデルがＧＰＵ上に「スライス・行・列」順序で記憶される事例に関するさらなる詳細が提示される。この場合、モデルは、３Ｄ体積を表すために使用されるメモリの位置の線形アレイとして記憶され得る。これは、ＧＰＵメモリ上に記憶されたデータに対する高速な並列アクセスを提供する線形ピッチメモリ（ｌｉｎｅａｒ  ｐｉｔｃｈｅｄ  ｍｅｍｏｒｙ）を使用して、それぞれのボクセルをメモリアレイインデックス（ｍｅｍｏｒｙ  ａｒａｙ  ｉｎｄｅｘ）にマッピングすることによって達成される。
【００６５】
[0064]サンプルポイントに対して近接ポイントを評価することによって、上で述べたように、現在の奥行きマップのサンプル点の表面法線が演算される１２００。予測された移動元奥行きマップに関して、それぞれの予測されたサンプル点に関する高密度３Ｄモデルから表面法線予測と表面位置予測とが演算される１２０２。予測されたサンプル点は、現在の奥行きマップからのサンプル点と同じ画素位置にある、高密度３Ｄモデルからの点である。これは、高密度表面モデルの体積内に光線を投影することによって行われる。光線は、現在の奥行きマップ内のサンプル点に対応する、３Ｄモデルの面上の点を通して、現在の奥行きマップに関連して推定されたカメラ位置およびカメラ姿勢からその３Ｄモデル内に投影される。これは、３Ｄモデルが体積表現として記憶される状況に当てはまる。メッシュベースの表現を使用して３Ｄモデルが記憶される状況では、仮想奥行き画像表現を形成するために、この表現がまず投影される。次いで、光線はその仮想奥行き画像表現内に投影され得る。その光線に沿って進み、表面密度関数を評価して、第１の正から負へのゼロ交差を見出すことによって、その光線に沿って第１の可視表面が見出される。光線に沿った表面密度関数の交差点の推定から、関連する副画素世界点（ｓｕｂ  ｐｉｘｅｌ  ｗｏｒｌｄ  ｐｏｉｎｔ）が見出される。一例では、ゼロが生じる副画素世界点を見出すために、検出されたゼロ交差点の両側で３重線形サンプリングされた点（ｔｒｉｌｉｎｅａｒｌｙ  ｓａｍｐｌｅｄ  ｐｏｉｎｔｓ）を仮定すると、光線に沿った表面交差点は簡単な直線補間を使用して演算され得る。この副画素世界点は、予測される表面位置として利用される。この位置において予測される表面法線を見出すために、三線補間を使用して、表面密度関数勾配の有限差分が見出される。表面法線予測および表面位置予測を計算するプロセスは、それぞれの光線を並行して処理して、ＧＰＵで実施され得る。
【００６６】
[0065]（高密度３Ｄモデルから取得された）それぞれの予測されたサンプル点に関して、プロセス１２０４に従い、現在の奥行きマップ内の対応する点を識別する。これは図１１のプロセス１１０４に類似している。予測されたサンプル点は移動先奥行きマップ（現在の奥行きマップ）内の移動先点上に投影される１２０６。次いで、その移動先点と適合する表面法線を有する、移動先点周囲の候補の対応する点に関して検索１２０８が行われる。それらの候補の対応する点から、距離基準に従って点が選択される１１１０。例えば、それらの点が互いの指定されたユークリッド距離ｅ１内にあり、その対の表面法線同士の間のドット積が指定された閾値ｅ２より大きい場合、点の対は適合性がある。パラメータｅ１およびｅ２は、ユーザー構成可能であってよく、または製造段階で設定されてもよく、それによって、デバイスは特定の設定で使用するために経験的に較正される。
【００６７】
[0066]場合によっては、対応する点の対に重みが割り当てられる１２１２。いくつかの実施形態では、対が奥行きマップ境界上または奥行きマップ境界近くの少なくとも１つの点を含む場合、対は拒絶される１２１４。ある例では、デプスカメラの測定特性に関する重みが対応する点の対のそれぞれと共に記憶される。これらの重みは、結果の品質を改善するために、エラー基準を適用するプロセスの間に使用され得る。
【００６８】
[0067]例えば、図１１または図１２のプロセスを使用して、対応する点の対が識別されると、エラー基準が演算され、最小化されて、図１０の反復プロセスが繰り返す。
[0068]ある例では、対応する点の対に関して点平面エラー基準が演算され１３００、この基準が最適化されて、更新された登録パラメータを取得する。次に、このプロセスのある例が図１３を参照して説明される。このプロセスは、次に説明されるような、リアルタイム処理を取得するために、ＧＰＵなど、少なくとも１つの並列演算装置を使用して実施されるように設計される。
【００６９】
[0069]点平面エラー基準を演算することは、それぞれの移動元点から、移動先点を含み、かつ移動先点の近似表面法線と直角に方向付けられた平面までの平方距離の和を演算すること１３０２であると考えることができる。このプロセスは、この基準を最適化して、登録パラメータの更新されたセットを見出すことを求める。このタイプの最適化問題を解くことは簡単ではなく、通常、かなりの演算リソースを必要とし、したがって、リアルタイム用途に関してこのタイプのプロセスを実施することを困難にする。ＧＰＵなど、リアルタイム処理を可能にする並行処理装置を使用する、ある例示的な実装形態が次に説明される。
【００７０】
[0070]対応する点の対がスケーリングおよび移動されることが可能である１３０４。これは、最適化プロセスの安定性を改善することができるが、必須ではない。
[0071]対応する点のそれぞれの対に関して、数値的な最小二乗最適化を使用してエラー基準を最適化するために、複数の連立方程式を含む線形システムが並列演算装置上で形成される１３０６。それぞれの線形システムは、６×６行列の形であってよい。複数の行列は並行演算装置上で単一の６×６行列に削減され得る。フレームレートが高い（例えば、毎秒２０フレーム以上）ため、任意の２つの連続的なフレーム同士の間の角度に関して微小角近似（カメラ姿勢の変化）を行うことが可能である。すなわち、フレームレートはあまりにも高いため、カメラはフレーム間で少量だけ移動したことになる。この近似を行うことによって、システムのリアルタイム動作が円滑にされる。
【００７１】
[0072]単一の６×６行列はＣＰＵに渡され１３０８、解かれて、更新された登録パラメータを見出す。この解はスケーリングおよび移動されて１３１０、１３０４のスケーリングおよび移動ステップを反転させる。この解の安定性が検査され１３１２、更新された登録パラメータ１３１４がこのプロセスによって出力される。
【００７２】
[0073]ある例では、以下の点平面エラー基準が使用されるが、これは必須ではない。その他のエラー基準が使用されてもよい：
【００７３】
【数３】
0005881743.tif 000004
【００７４】
[0074]新しい変換Ｔｋを取得するために、このエラー基準が使用され得る。使用されるシンボルに関するさらなる詳細が次に提示される。デプスカメラＤｋの現在のフレームｋは、画像ドメインｕ∈Ｕ内の画像画素ｕ＝（ｘ，ｙ）で較正された奥行き測定値ｄ＝Ｄｋ（ｕ）を提供する。これらの測定値は、（同次座標を使用して）ｖｋ（ｕ）＝（ｘｄ，ｙｄ，ｄ，１）としてカメラの世界空間内に再投影されることが可能である。奥行きセンサーからのそれぞれのフレームは正規グリッド上の表面測定であるため、システムは、近接する再投影されたグリッド点同士の間の有限差分によって推定された、対応する法線ベクトルｎｋ（ｕ）を演算することも可能である。ＳＥ３変換行列は、時間ｋにおけるカメラ座標フレームを、
【００７５】
【数４】
0005881743.tif 000005
【００７６】
としてグローバルフレームｇにマッピングする。（法線ベクトルの同等マッピングは
【００７７】
【数５】
0005881743.tif 000006
【００７８】
である。）時間ｋにおけるグローバル座標系内の３Ｄモデルの推定はＭｋとして示され、これは、本明細書で説明される体積表現の形で記憶され得る。入射奥行きフレームＤｋは、以前のフレームのカメラ姿勢Ｔｋ−１内にレイキャスティングすることによって、完全な３Ｄ再構成モデルＭｋ−１の以前のフレームの推定に対して登録される。これは、予測される画像
【００７９】
【数６】
0005881743.tif 000007
【００８０】
または、同等に、グローバルモデル点
【００８１】
【数７】
0005881743.tif 000008
【００８２】
とモデル法線
【００８３】
【数８】
0005881743.tif 000009
【００８４】
のセットをもたらし、式中、ｉ∈Ｓは対応するインデックスセットである。点平面エラー基準に関する上記の方程式内のシンボルρｋは、時間ｔにおけるカメラとモデル点との間の保護データ関連付けマッピングを表す。
【００８５】
[0075]ある例では、フレーム整列エンジン９０８によって識別された、対応する点のそれぞれの対は、ＧＰＵなど、並列演算装置で並列に処理されることが可能である。したがって、対応する点のそれぞれの対に関して、点平面制約システム（ｐｏｉｎｔ−ｔｏ−ｐｌａｎｅ  ｃｏｎｓｔｒａｉｎｔ  ｓｙｓｔｅｍ）の演算式を提示する線形システムが演算される。微小角推定を行うことによって、変換Ｔは、３要素移動ベクトルｔと共に、歪対称行列
【００８６】
【数９】
0005881743.tif 000010
【００８７】
によって増分回転の３ベクトルを使用してパラメータ化されることが可能である。線形システムは、線形化されたエラー基準の一次導関数をゼロに設定することによって取得される。この点平面制約システムは、上で述べられた点平面エラー基準の最適化を表す。この演算は、並行演算装置において、対応する点のそれぞれの対に関して並行して発生する。このように、このエラー基準は識別された対応する点のそれぞれに並行して適用される。木縮約（ｔｒｅｅ  ｒｅｄｕｃｔｉｏｎ）プロセスまたはその他の適切な演算式評価方法を使用して、点のそれぞれの対に関する演算式が評価される。木縮約プロセスは、それによって、木のノードが算術演算を表し、木の葉ノードが値を表す木構図として演算式が表される評価戦略である。この表現は、評価の結果を木の分岐に沿って渡すことによって、木構造に従った順序で評価される。一緒に、並行プロセスからのエラー基準最適化プロセスの結果は単一の６×６行列が出力されるのを可能にする。
【００８８】
[0076]図１４は、任意の形態のコンピューティングデバイスおよび／または電子デバイスとして実施されることが可能であり、かつその中でリアルタイムカメラトラッカーの実施形態が実施され得るある例示的な演算ベースのデバイス１４０４の様々な構成要素を例示する。
【００８９】
[0077]演算ベースのデバイス１４０４は、ユーザー入力デバイス（例えば、捕捉デバイス１４０６、ゲームコントローラー１４０５、キーボード１４０７、マウス１４０９）など、１つまたは複数のデバイスから入力を受信および処理するように構成された１つまたは複数の入力インターフェイス１４０２を備える。このユーザー入力は、ソフトウェアアプリケーションまたはリアルタイムカメラ追跡を制御するために使用されることが可能である。例えば、捕捉デバイス１４０６は、シーンの奥行きマップを捕捉するように構成されたモバイルデプスカメラであってよい。演算ベースのデバイス１４０４は、その捕捉デバイス１４０６のリアルタイム追跡を提供するように構成されることが可能である。
【００９０】
[0078]演算ベースのデバイス１４０４は、コンピューティングデバイス１４０４とは分離されてよく、またはコンピューティングデバイス１４０４と統合されてもよいディスプレイデバイス１４０８にディスプレイ情報を出力するように構成された出力インターフェイス１４１０も備える。ディスプレイ情報は、グラフィカルユーザーインターフェイスを提供することができる。ある例では、ディスプレイデバイス１４０８は、それがタッチ感応ディスプレイデバイスである場合、ユーザー入力デバイスとして機能することも可能である。出力インターフェイス１４１０は、ディスプレイデバイス以外のデバイス、例えば、局所的に接続された印刷デバイスにデータを出力することもできる。
【００９１】
[0079]コンピュータ実行可能命令は、演算ベースのデバイス１４０４によってアクセス可能な任意のコンピュータ可読媒体を使用して提供されることが可能である。コンピュータ可読媒体は、例えば、メモリ１４１２などのコンピュータ記憶媒体と通信媒体とを含むことが可能である。メモリ１４１２などのコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールもしくはその他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性媒体および不揮発性媒体、取外し可能媒体および取外し不可能媒体を含む。コンピュータ記憶媒体は、コンピューティングデバイスによるアクセスのための情報を記憶するために使用されることが可能なＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくはその他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくはその他の磁気記憶装置、または任意のその他の非送信式媒体（ｎｏｎ−ｔｒａｎｓｍｉｓｓｉｏｎ  ｍｅｄｉｕｍ）を含むが、これらに限定されない。
【００９２】
[0080]対照的に、通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波、もしくはその他の移送媒体など、変調データ信号の形で実施することが可能である。本明細書で定義されるように、コンピュータ記憶媒体は通信媒体を含まない。コンピュータ記憶媒体（メモリ１４１２）は演算ベースのデバイス１４０４内に示されているが、記憶媒体は、分散されてよく、または遠隔に配置され、かつネットワークもしくは（例えば、通信インターフェイス１４１３を使用する）その他の通信リンクを経由してアクセスされてもよい点を理解されよう。
【００９３】
[0081]演算ベースのデバイス１４０４は、リアルタイムカメラ追跡を提供する目的でデバイスの動作を制御するためにコンピューティング実行可能命令を処理するためのマイクロプロセッサー、グラフィックス処理装置（ＧＰＵ）、コントローラー、または任意のその他の適切なタイプのプロセッサーであってよい、１つもしくは複数のプロセッサー１４００も備える。いくつかの例では、例えば、チップアーキテクチャ上のシステムが使用される場合、プロセッサー１４００は、リアルタイムカメラ追跡の方法の一部を（ソフトウェアまたはファームウェアではなく）ハードウェア内で実施する、１つまたは複数の（加速器とも呼ばれる）固定機能ブロックを含むことが可能である。
【００９４】
[0082]アプリケーションソフトウェア１４１６がデバイス上で実行されるのを可能にするために、オペレーティングシステム１４１４または任意のその他の適切なプラットフォームソフトウェアを備えたプラットフォームソフトウェアが演算ベースのデバイスに提供されることが可能である。コンピューティングデバイス１４０４上で実行され得る他のソフトウェアは、フレーム整列エンジン１４１８（例えば、図９から図１３、および上の説明を参照されたい）、ループ閉鎖エンジン１４２０、自己位置再推定エンジン１４２２を含む。データストア１４２４は、以前に受信された奥行きマップ、登録パラメータ、ユーザー構成可能パラメータ、その他のパラメータ、シーンの３Ｄモデル、ゲーム状態情報、ゲームメタデータ、マップデータ、およびその他のデータなど、データを記憶するために提供される。
【００９５】
[0083]「コンピュータ」という用語は、本明細書で、任意のデバイスが命令を実行することができるような処理機能を備えた任意のデバイスを指すために使用される。そのような処理機能は多くの異なるデバイス内に組み込まれ、したがって、「コンピュータ」という用語は、ＰＣ、サーバ、モバイル電話、携帯情報端末、および多くのその他のデバイスを含むことを当業者は理解されよう。
【００９６】
[0084]本明細書で説明された方法は、有形記憶媒体上で、機械可読形態で、例えば、プログラムがコンピュータ上で実行されるとき、本明細書で説明された方法のうちのいずれかのすべてのステップを実行するように適合されたコンピュータプログラムコード手段を備えたコンピュータプログラムの形でソフトウェアによって実行されることが可能であり、この場合、コンピュータプログラムは、コンピュータ可読媒体上で実行され得る。有形（すなわち、一時的でない）記憶媒体の例は、ディスク、サムドライブ、メモリなどを含むが、伝搬信号は含まない。ソフトウェアは、方法ステップが任意の適切な順序で、または同時に実行され得るように、並列プロセッサー上または直列プロセッサー上で実行するのに適している場合がある。
【００９７】
[0085]これは、ソフトウェアが有益、かつ別個で取引可能な商品になり得ることを確認する。ソフトウェアは、「ダム」ハードウェア、すなわち標準ハードウェア上で実行するか、またはそのハードウェアを制御して、所望される機能を実行するソフトウェアを包含することが意図される。ソフトウェアは、所望される機能を実行する目的で、シリコンチップを設計するため、またはユニバーサルプログラマブルチップを構成するために使用されるＨＤＬ（ハードウェア記述言語）ソフトウェアなど、ハードウェアの構成を「説明」または定義するソフトウェアを包含することも意図される。
【００９８】
[0086]プログラム命令を記憶するために利用される記憶デバイスはネットワークを通して分散され得ることを当業者は理解されよう。例えば、遠隔コンピュータは、ソフトウェアとして説明されたプロセスのある例を記憶することができる。ローカルコンピュータまたは端末コンピュータは、遠隔コンピュータにアクセスし、ソフトフェアの一部またはすべてをダウンロードして、プログラムを実行することができる。あるいは、ローカルコンピュータは、必要に応じて、ソフトウェアの一部をダウンロードすること、または一部のソフトウェア命令をローカル端末で実行して、一部のソフトウェア命令を遠隔コンピュータ（または、コンピュータネットワーク）で実行することが可能である。当業者に知られている従来技法を利用することによって、ソフトウェア命令のすべてまたは一部が、ＤＳＰ、プログラマブル論理アレイなど、専用回路によって、実行され得ることを当業者はやはり理解されよう。
【００９９】
[0087]当業者に明らかになるように、本明細書で提示された任意の範囲またはデバイスは、求められる効果を失わずに、拡張または変更されることが可能である。
[0088]本主題は構造的特徴および／または方法論的活動に特定の言語で記述されているが、添付の請求項で定義される主題は、上で説明された特定の機能または活動に限定されるとは限らない点を理解されたい。むしろ、上で説明された特定の特徴および活動は、請求項を実施する例示的な形態として開示される。
【０１００】
[0089]上で説明された利益および利点は、一実施形態に関係する場合があり、またはいくつかの実施形態に関係する場合もあることを理解されよう。これらの実施形態は、述べられた問題のうちのいくつかもしくはすべてを解決する実施形態または述べられた利益および利点のうちのいくつかもしくはすべてを有する実施形態に限定されない。「ある」項目の参照は、それらの項目のうちの１つまたは複数を指すことをさらに理解されよう。
【０１０１】
[0090]本明細書で説明された方法のステップは、任意の適切な順序で、または適切な場合、同時に実行されることが可能である。加えて、個々のブロックは、本明細書で説明された主題の趣旨および範囲から逸脱せずに、これらの方法のうちのいずれかから削除されることが可能である。上で説明された例のうちのいずれかの態様は、求められる効果を失わずに、さらなる例を形成するために、説明されたその他の例のうちのいくつかの態様と組み合わされることが可能である。
【０１０２】
[0091]「備える」という用語は、本明細書で、識別された方法ブロックまたは方法要素を含むことを意味するために使用されるが、そのようなブロックまたは要素は排他的なリストを含まず、方法または装置は追加のブロックもしくは要素を含むことが可能である。
【０１０３】
[0092]好ましい実施形態の上の説明は単なる例として提示され、様々な修正が当業者によって行われることが可能なことを理解されよう。上記の仕様、例、およびデータは、本発明の例示的な実施形態の構造および使用の完全な説明を提供する。本発明の様々な実施形態は上である程度の特殊性を用いて、または１つもしくは複数の個々の実施形態を参照して説明されているが、当業者は、本発明の趣旨または範囲から逸脱せずに、開示された実施形態に多数の変更を行うことが可能である。
【図１】
0005881743.tif 000011
【図２】
0005881743.tif 000012
【図３】
0005881743.tif 000013
【図４】
0005881743.tif 000014
【図５】
0005881743.tif 000015
【図６】
0005881743.tif 000016
【図７】
0005881743.tif 000017
【図８】
0005881743.tif 000018
【図９】
0005881743.tif 000019
【図１０】
0005881743.tif 000020
【図１１】
0005881743.tif 000021
【図１２】
0005881743.tif 000022
【図１３】
0005881743.tif 000023
【図１４】
0005881743.tif 000024