(57)【要約】（例えば周囲の環境の中をナビゲートする）ビジュアル・オドメトリのための方法および装置が開示される。一実施形態では、周囲の環境の少なくとも一部を表すシーン・イメージのシーケンスが（例えばビデオ・カメラまたはステレオ・ヘッドから）受領される。シーン・イメージのシーケンスが（例えばビデオ処理技法に従って）処理され、周囲の環境に対するポーズの推定が導出される。この推定は、グローバル・ポジショニング・システム、あるいは慣性センサまたは機械センサなどの他のセンサからのデータでさらに補足することができる。
2008503757.tif 000002
【特許請求の範囲】
【請求項１】
周囲の環境の中をナビゲートする方法であって、
前記周囲の環境の少なくとも一部を表すシーン・イメージのシーケンスを受け取ること、および
前記シーン・イメージのシーケンスを処理して、前記周囲の環境に対するポーズの推定を導出すること
を含む方法。
【請求項２】
少なくとも１つのセンサから補足位置関連データを受け取ること、および
前記補足位置関連データで前記推定を補足すること
をさらに含む請求項１に記載の方法。
【請求項３】
前記処理することが、
前記シーン・イメージのシーケンスの第１フレーム内の複数のポイント・フィーチャの位置を突き止めること、
前記シーン・イメージのシーケンスの複数の後続のフレームにわたって前記複数のポイント・フィーチャを追跡し、第１の複数の関連ポイント・フィーチャ軌跡を生成すること、および
前記第１の複数のポイント・フィーチャ軌跡に従って前記ポーズを推定すること
を含む請求項１に記載の方法。
【請求項４】
前記位置を突き止めることが、
前記シーン・イメージのシーケンスの前記第１フレーム内の各ピクセルについてコーナ応答を計算すること、および
定義された半径以内の他のすべてのピクセルよりも前記コーナ応答が強い各ピクセルでポイント・フィーチャを宣言すること
を含む請求項３に記載の方法。
【請求項５】
前記追跡することが、
前記シーン・イメージのシーケンスの前記第１フレーム内の前記複数のポイント・フィーチャのそれぞれを、前記シーン・イメージのシーケンスの少なくとも１つの後続フレーム内の第２の複数のポイント・フィーチャと比較して、複数の潜在的合致を生成すること、および
相互の整合性に従って前記潜在的合致のうちの１つを選択すること
を含む請求項３に記載の方法。
【請求項６】
前記推定することが、
前記第１の複数のポイント・フィーチャ軌跡の指定されたサブセットに基づいて複数のフレーム間増分ポーズ推定を生成すること、および
前記ポーズを示す可能性が最も高いものとして前記複数のフレーム間増分ポーズ推定のうちの１つを選択すること
を含む請求項３に記載の方法。
【請求項７】
前記生成することが、
前記第１の複数のポイント・フィーチャ軌跡の２つの同時ステレオ・ビューを受け取ること、
前記２つの同時ステレオ・ビューに従って複数の３次元ポイントを三角形分割すること、
前記複数の３次元ポイントに関連する後続ポイント・フィーチャ軌跡データを受け取ること、および
前記複数の３次元ポイントおよび前記第１の複数のポイント・フィーチャ軌跡に従って、少なくとも１つの増分ポーズ推定を生成すること
を含む請求項６に記載の方法。
【請求項８】
第２の複数のポイント・フィーチャ軌跡を複数の３次元ポイントに増分式に三角形分割すること、
前記第２の複数のポイント・フィーチャ軌跡に関連する後続のポイント・フィーチャ軌跡データを受け取ること、および
前記複数の３次元ポイントおよび前記第２の複数のポイント・フィーチャ軌跡に従って、少なくとも１つの増分ポーズ推定を生成すること
をさらに含む請求項３に記載の方法。
【請求項９】
複数の命令が格納されたコンピュータ可読媒体であって、前記複数の命令が、プロセッサで実行されたときに、周囲の環境の中をナビゲートする方法の工程を前記プロセッサに実行させる命令を含み、前記方法が、
前記周囲の環境の少なくとも一部を表すシーン・イメージのシーケンスを受け取ること、および
前記シーン・イメージのシーケンスを処理して、前記周囲の環境に対するポーズの推定を導出すること
を含むコンピュータ可読媒体。
【請求項１０】
周囲の環境の中をナビゲートする装置であって、
前記周囲の環境の少なくとも一部を表すシーン・イメージのシーケンスを受け取る手段と、
前記シーン・イメージのシーケンスを処理して、前記周囲の環境に対するポーズの推定を導出する手段と
を備える装置。
【発明の詳細な説明】
【背景技術】
【０００１】
関連出願への相互参照
本願は、参照により本明細書にその全体が組み込まれる２００４年６月２２日出願の米国仮特許出願第６０／５８１８６７号の特典を主張するものである。
【０００２】
政府資金援助への参照
本発明は、ＤＡＲＰＡ（Ｄｅｆｅｎｓｅ  Ａｄｖａｎｃｅｄ  Ｒｅｓｅａｒｃｈ  Ｐｒｏｊｅｃｔｓ  Ａｇｅｎｃｙ）  によって与えられた交付番号ＭＤＡ９７２−０１−９−００１６の下で政府援助を伴ってなされたものである。政府は、本発明における一定の権利を有する。
【０００３】
様々な応用例におけるコンピュータ・ビジョン・システムの有用性が認められている。例えば、（例えば車両用およびロボット用の）自律ナビゲーション・システムは、周囲の環境内での障害物検出およびナビゲーションのためにそのようなシステムを大いに利用する。そのようなシステムは、人間のオペレータを危険にさらすことなく、難しい地帯または危険な地帯のナビゲーションおよび／または監視を可能にする。
【０００４】
しかし、自律的ナビゲーション用のほとんどの既存のシステムは、一般に環境特有のものであるという点で汎用性に欠けている。例えば、ＧＰＳベースのナビゲーション・システムは、屋外環境では良好に動作するが、屋内での動作が不十分である。ホイール・エンコーダからの情報を利用するナビゲーション・システムは、地上車両で実装したときは良好に動作するが、例えば航空機での使用には適していない。さらに、ビデオまたはイメージ・データを解析することによって動作するほとんどの既存のシステムは、過去の運動の知識を提供することができるが、現在の運動および／または位置の（例えばリアル・タイムの）知識を適時に提供することができない。
【特許文献１】米国仮特許出願第６０／５８１８６７号
【非特許文献１】Ｃ．ＨａｒｒｉｓおよびＭ．Ｓｔｅｐｈｅｎｓ、Ａ  Ｃｏｍｂｉｎｅｄ  Ｃｏｒｎｅｒ  ａｎｄ  Ｅｄｇｅ  Ｄｅｔｅｃｔｏｒ  （Ｐｒｏｃ．Ｆｏｕｒｔｈ  Ａｌｖｅｙ  Ｖｉｓｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ、ｐｐ．１４７−１５１、１９８８年）
【非特許文献２】Ｄ．Ｎｉｓｔｅｒ、Ｐｒｅｅｍｐｔｉｖｅ  ＲＡＮＳＡＣ  ｆｏｒ  Ｌｉｖｅ  Ｓｔｒｕｃｔｕｒｅ  ａｎｄ  Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ、ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ、ｐｐ．１９９−２０６、２００３年
【特許文献２】米国特許出願第１０／７９８７２６号
【非特許文献３】Ｒ．Ｈａｒａｌｉｃｋ、Ｃ．Ｌｅｅ、Ｋ．Ｏｔｔｅｎｂｅｒｇ、およびＭ．Ｎｏｌｌｅ、Ｒｅｖｉｅｗ  ａｎｄ  Ａｎａｌｙｓｉｓ  ｏｆ  Ｓｏｌｕｔｉｏｎｓ  ｏｆ  ｔｈｅ  Ｔｈｒｅｅ  Ｐｏｉｎｔ  Ｐｅｒｓｐｅｃｔｉｖｅ  Ｐｏｓｅ  Ｅｓｔｉｍａｔｉｏｎ  Ｐｒｏｂｌｅｍ、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ、１３（３）：３３１−３５６、１９９４年
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、環境に無関係であり、ほぼリアル・タイムで運動推定および／または位置推定を確実に提供することのできるビジュアル・オドメトリのための方法および装置が当技術分野で求められている。
【課題を解決するための手段】
【０００６】
（例えば周囲の環境の中をナビゲートする）ビジュアル・オドメトリのための方法および装置が開示される。一実施形態では、周囲の環境の少なくとも一部を表すシーン・イメージのシーケンスが（例えばビデオ・カメラまたはステレオ・ヘッドから）受領される。シーン・イメージのシーケンスが（例えばビデオ処理技法に従って）処理され、周囲の環境に対するポーズの推定が導出される。この推定は、グローバル・ポジショニング・システム、あるいは慣性センサまたは機械センサなどの他のセンサからのデータでさらに補足することができる。
【０００７】
上述の本発明の特徴を詳細に理解できるように、添付の図面にその一部が図示される実施形態を参照することにより、上記で簡潔に要約される本発明のより具体的な説明を得ることができる。しかし、添付の図面は本発明の典型的な実施形態を示すに過ぎず、したがって、本発明は同様に効果的な他の実施形態を認めることができるので、添付の図面を本発明の範囲の制限と見なすべきでないことに留意されたい。
【発明を実施するための最良の形態】
【０００８】
本発明は、（例えば、自律的車両またはロボットなどの移動物体の自律的ナビゲーション用の）ビジュアル・オドメトリのための方法および装置を開示する。従来の自律的ナビゲーション・システムとは異なり、一実施形態では、本発明は、主にビデオ・データを利用して物体の位置推定および運動推定を導出する。したがって、本発明による自律的ナビゲーションは実質上、環境に無関係である。自律的ナビゲーション・システムで通常使用されるような環境特有のセンサは主に、ビデオ・ベースの推定を補足するためのデータを得るための任意選択手段として働く。
【０００９】
図１は、本発明によるビジュアル・オドメトリのための方法１００の一実施形態を示す流れ図である。方法１００は、例えば、自律的（例えば無人の）車両またはロボットなどのナビゲーションを必要とする物体で実装することができる。方法１００はステップ１０２で初期化され、ステップ１０４に進み、ステップ１０４では、方法１００は、周囲の環境の少なくとも一部を表すシーン・イメージのシーケンスを受け取る。一実施形態では、ナビゲーションを必要とする物体に取り付けられた移動カメラまたはステレオ・ヘッドを介してこのシーン・イメージのシーケンスを受け取ることができる。
【００１０】
ステップ１０６では、方法１００は、シーン・イメージのシーケンスを処理し、それから位置推定を導出する。すなわち、方法１００は、受け取ったシーン・イメージのシーケンスから直接、ナビゲーションを必要とする物体の現在位置を推定する。一実施形態では、シーン・イメージのシーケンスが、ビデオ処理のための任意の適切な周知の方法に従って処理される。
【００１１】
位置推定をシーン・イメージのシーケンスから導出した後、任意選択で、方法１００はステップ１０８に進み、追加のデータで位置推定を補足する。したがって、この実施形態では、ステップ１０６で導出されたビデオ・ベースの位置推定を、その後で他のソースからデータを取り入れることによって改善される予備推定と見なすことができる。一実施形態では、この追加のデータは、ＧＰＳシステム、慣性センサ、および機械センサ（例えばホイール・エンコーダ）のうちの少なくとも１つなどの、少なくとも１つの追加のセンサで与えられるデータを含む。
【００１２】
（追加のデータを用いて、または追加のデータを用いずに）位置推定を導出した後、方法１００はステップ１１０で終了する。
それによって方法１００は、方法１００が機能する環境とは無関係な、迅速で正確な運動推定および位置推定を可能にする。方法１００は主に（ある場合には専ら）ビデオ・データを利用して運動推定および位置推定を導出するので、ほぼ任意の場所、すなわち屋外、屋内、地上、空中などで利用するように実装することができる。
【００１３】
図２は、本発明によるビデオ・データから運動推定および／または位置推定を導出する方法２００の一実施形態を示す流れ図である。上記で議論した方法１００のステップ１０６に従って方法２００を実装して、ナビゲーションを必要とする車両、ロボットなどの運動または位置のビデオ・ベースの推定を生成することができる。
【００１４】
方法２００はステップ２０２で初期化され、ステップ２０４に進み、ステップ２０４では、方法２００は、シーン・イメージのシーケンスの現フレーム内のポイント・フィーチャの位置を突き止める。一実施形態では、突き止めたポイント・フィーチャは、小さなイメージひずみから中程度のイメージひずみの下で比較的安定すると予想されるフィーチャである。例えば、一実施形態では、ポイント・フィーチャは、Ｃ．ＨａｒｒｉｓおよびＭ．Ｓｔｅｐｈｅｎｓ、Ａ  Ｃｏｍｂｉｎｅｄ  Ｃｏｒｎｅｒ  ａｎｄ  Ｅｄｇｅ  Ｄｅｔｅｃｔｏｒ  （Ｐｒｏｃ．Ｆｏｕｒｔｈ  Ａｌｖｅｙ  Ｖｉｓｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ、ｐｐ．１４７−１５１、１９８８年）に記載されているハリス・コーナである。ポイント・フィーチャは、確実に追跡することのできるフレームの任意の識別可能な要素でよい。一実施形態では、最大数百個のポイント・フィーチャの位置がステップ２０２で突き止められる。例えば、図８は、シーン・イメージのシーケンスから取られた例示的フレーム８００であり、その中で複数のポイント・フィーチャの位置が円で突き止められている。話を簡単にするために、これらの円で囲まれたポイント・フィーチャのうちの一部だけに８０２と符号を付ける。
【００１５】
ステップ２０６では、方法２００は、ステップ２０４で位置が突き止められたポイント・フィーチャを（例えば、フィーチャを、後続のフレーム内の対応するフィーチャと突き合わせることによって）複数の後続のフレームにわたって追跡する。一実施形態では、ポイント・フィーチャは、フィーチャが視野内にとどまる限り追跡される。一実施形態では、幾何学的制約なしに追跡が実施される。
【００１６】
ステップ２０８では、方法２００は、ステップ２０６で得られたフィーチャ追跡データに基づいて１組の軌跡を生成する。軌跡は、ナビゲーションを必要とする物体に対する、追跡したフィーチャの位置および／または向きの経時的な変化を表す。一実施形態では、突き合わせたフィーチャが基本的にフレーム間でリンクされる。再び図８を参照すると、図示されている複数の軌跡（その一部に８０４と符号を付けてある）は、関連するポイント・フィーチャの以前の相対運動を示す。
【００１７】
軌跡の組を確立した後、方法２００はステップ２１０に進み、ポイント・フィーチャ軌跡で伝えられた情報に基づいて、ナビゲーションを必要とする車両、ロボットなどについての複数の増分フレーム間ポーズ推定を生成する。一実施形態では、「ポーズ」が６つの自由度で推定され、３次元（例えばｘ、ｙ、ｚ座標）位置と角度方向として定義される。一実施形態では、幾何学的推定方法に従ってポーズ推定が生成される。ポーズ推定を生成する幾何学的推定方法は、シーン・イメージの元のシーケンスをキャプチャする手段に応じて変化する可能性がある（例えば、単眼ビデオ入力、ステレオ入力など）。
【００１８】
ステップ２１２では、方法２００は、ポーズ推定を評価し、最も可能性の高い推定を、現在のポーズを示すものとして選択する。一実施形態では、ポーズ推定の評価は、以下でより詳細に議論するように、周知のＲＡＮＳＡＣ（ｒａｎｄｏｍ  ｓａｍｐｌｅ  ｃｏｎｓｅｎｓｕｓ）技法（例えば、Ｄ．Ｎｉｓｔｅｒ、Ｐｒｅｅｍｐｔｉｖｅ  ＲＡＮＳＡＣ  ｆｏｒ  Ｌｉｖｅ  Ｓｔｒｕｃｔｕｒｅ  ａｎｄ  Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ、ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ、ｐｐ．１９９−２０６、２００３年で論じられている）に従って実施される。
方法２００はステップ２１４で終了する。
【００１９】
図３は、例えば方法２００のステップ２０４による、ポイント・フィーチャ検出のための方法３００の一実施形態を示す流れ図である。方法３００はステップ３０２で初期化され、ステップ３０４に進み、ステップ３０４では、方法３００は、解析中のシーン・イメージのシーケンスからイメージ・フレームを取り出す。一実施形態では、イメージ・フレームが、ピクセル当たり約８ビットで表される。
【００２０】
ステップ３０６では、方法３００は、フレームのコーナ応答の強度ｓを計算する。例えば、一実施形態では、ハリス・コーナ検出器は、イメージ勾配から計算される局所平均モーメント行列を計算する。次いで、モーメント行列の固有値が組み合わされ、コーナ応答または「強度」が計算される。その最大値がコーナ位置を示す。
【００２１】
（例えば汎用コンピュータを使用する）非常に効率的な計算のために設計された一実施形態では、ｓが以下のように計算される。コーナ応答の出力ラインごとに、現出力ラインの上または下のいくつかのラインに関して一時フィルタ出力が必要である。すべてのフィルタ出力が一度だけ計算され、最適なキャッシュ性能のためにラップアラウンド・バッファに格納される。ラップアラウンド・バッファは、ローリング・ウィンドウでの一時フィルタ出力を表す。ローリング・ウィンドウは、何らかのフィルタ出力の再計算を回避するために必要な最低限の数のラインを含む。
【００２２】
例えば、一実施形態では、イメージ・フレームの水平方向微分および垂直方向微分が、それぞれＩｘおよびＩｙと表される。一実施形態では、ＩｘおよびＩｙがタイプ［−１  ０  １］の水平フィルタおよび垂直フィルタによって計算され、入力を８ビットだけ下に、出力を１６ビットだけ下に保つために、乗算を実行する前に１ビットだけ下にシフトされる。
【００２３】
この場合、ラップアラウンド・バッファおよび得られるコーナ応答が、ラインごとに４つの「掃引」を使用して、ラインごとに更新される。第１掃引は、ＩｘＩｘ、ＩｘＩｙ、およびＩｙＩｙについてのラップアラウンド・バッファを更新する。一実施形態では、ＩｘＩｘ、ＩｘＩｙ、およびＩｙＩｙについてのラップアラウンド・バッファはライン５本分であり、典型的な掃引は、コーナ応答の現在の出力ラインより２つ先に位置する１つのラインを更新する。
【００２４】
第２掃引は、３２ビット・フィルタ出力の３つの単一ラインｇｘｘ、ｇｘｙ、およびｇｙｙを生成するために、２項フィルタ（例えば［１  ４  ６  ４  １］）でラップアラウンド・バッファ内のすべてのラインを垂直方向にコンボルブする。一実施形態では、このことは、コストのかかる乗算を回避するためにシフトおよび加算で実施される。
【００２５】
第３掃引は、第２掃引で使用されたのと同じ２項フィルタで水平方向にコンボルブし、３２ビット単一ラインＧｘｘ、Ｇｘｙ、Ｇｘｙを生成する。Ｇｘｘ、Ｇｘｙ、Ｇｘｙは、ｇｘｘ、ｇｘｙ、およびｇｙｙと同じ場所に格納されるが、２ピクセルだけシフトされる。
【００２６】
最後に、第４掃引は、コーナ応答の
行列式ｄ＝ＧｘｘＧｙｙ−ＧｘｙＧｘｙ  （式１）
トレースｔ＝Ｇｘｘ＋Ｇｙｙ  （式２）
および強度ｓ＝ｄ−ｋｔ２  （式３）
を浮動小数点で計算する（ただしｋ＝０．０６）。一実施形態では、第１掃引から第４掃引はすべて、１２８ピクセルのマルチメディア・エクステンション（ＭＭＸ）チャンクで実装され、ストールを回避し、両方のパイプラインを最適に用いるために、手動でインターリーブされる。
【００２７】
図３に戻ると、コーナ応答の強度を計算した後、方法３００はステップ３１０に進み、計算したコーナ応答強度に従って、イメージ・フレーム内のポイント・フィーチャを定義する。上述のように、単一のイメージ・フレーム内に数百ものポイント・フィーチャを定義することができる。一実施形態では、ポイント・フィーチャの定義は、非最大抑制技法（ｎｏｎ−ｍａｘｉｍｕｍ  ｓｕｐｐｒｅｓｓｉｏｎ  ｔｅｃｈｎｉｑｕｅ）に従って達成される。具体的には、コーナ応答が定義された半径（例えば５ピクセルごとの近傍）内で他のすべてのピクセルよりも強いと計算される各ピクセルで、ポイント・フィーチャが宣言される。
方法３００はステップ３１２で終了する。
【００２８】
図４は、例えばステップ２０６による、ポイント・フィーチャ整合のための方法４００の一実施形態を示す流れ図である。方法４００はステップ４０２で初期化され、ステップ４０４に進み、ステップ４０４では、方法４００は、第１フレーム内の所与のポイント・フィーチャを第２フレーム内の対応するポイント・フィーチャから固定の距離以内のあらゆるポイント・フィーチャと突き合わせることを試みる（例えば、互いの事前定義された不一致限界以内のすべてのポイント・フィーチャが突き合わされる）。一実施形態では、ポイント・フィーチャ合致に関する不一致限界は、所望の出力速度およびシーン・イメージの入力シーケンスの平滑度に応じて、イメージ・サイズの約３から３０パーセントである。
【００２９】
方法４００の次の段階は、フレーム間フィーチャ対応を確立する。このフレーム間フィーチャ対応は、オプティカル・フロー技法およびエリア相関技法を含む様々な周知の方法に従って確立することができる。ステップ４０６〜４０８は、（汎用コンピュータ上の）計算速度に関して最適化された、フレーム間フィーチャ対応を確立する１つの例示的プロセスを示す。
【００３０】
ステップ４０６では、方法４００は、正規化相関を使用して第１フレームと第２フレームの間の潜在的ポイント・フィーチャ合致を評価する。一実施形態では、正規化相関は、検出されたポイント・フィーチャ上に中心が置かれた１１ピクセル四方のウィンドウにわたって実施される。一実施形態では、速度に関してウィンドウ全体にわたって一様な重み付けが使用される。各ウィンドウがイメージ・フレームからコピーされ、ｎ＝１２１バイト・ベクトル（一実施形態では、便宜上１２８バイトに増加される）としてメモリ内に連続的にレイアウトされる。各ウィンドウについて、以下の値が事前計算される。
【００３１】
Ａ＝ΣＩ  （式４）
Ｂ＝ΣＩ２  （式５）
【数１】
2008503757.tif 000003
（式６）
次いで、各潜在的合致について、以下のスカラ積が２つのウィンドウ間で計算される。
Ｄ＝ΣＩ１Ｉ２  （式７）
次いで正規化相関は、
（ｎＤ−Ａ１Ａ２）Ｃ１Ｃ２  （式８）
【００３２】
各潜在的合致について正規化相関が計算された後、方法４００はステップ４０８に進み、相互の整合性に従ってどの合致を受け入れるかを決定する。この理論によれば、第１イメージ・フレーム内のあらゆるポイント・フィーチャは、（例えば最大不一致によって決定される）第２イメージ・フレームからのポイント・フィーチャとの間のいくつかの正規化相関に関係する。したがって、最高の正規化相関を生成する第２イメージ・フレームからのポイント・フィーチャが、第１フレーム内のポイント・フィーチャに対する好ましい合致として選択される。逆に、第２イメージ・フレーム内の各ポイント・フィーチャも、第１イメージ・フレームで好ましい合致を生成する。したがって、相互に好ましいマッチとして互いを指定するポイント・フィーチャの対が有効な合致として受け入れられる。上述のように、経時的なポイント・フィーチャの運動を示す軌跡を生成するために、この突合せ技法を複数のイメージ・フレームにわたって実施することができる。
方法４００はステップ４１０で終了する。
【００３３】
図５は、本発明によるフレーム間増分ポーズ推定を生成する方法５００の一実施形態を示す流れ図である。様々な周知のフレーム間ポーズ推定方法のいずれかを実装して推定を生成することができ、方法５００は使用することのできる例示的一方法に過ぎないことを当業者は理解されよう。方法５００は、カメラの運動に対応しない移動物体または他の潜在的イメージ源の対応を含む可能性のある環境でのリアル・タイム・フレーム間ポーズ推定に特に適している。
【００３４】
方法５００は、例えば上記で議論した方法２００のステップ２１０に従って実装することができる。具体的には、方法５００は、単眼ビデオ入力（例えば単一の移動ビデオ・カメラからのデータ）に基づいてフレーム間増分ポーズ推定を生成する際に有用である。
【００３５】
方法５００はステップ５０２で初期化され、ステップ５０４に進み、ステップ５０４では、方法５００は、（例えばナビゲーションを必要とする移動物体に取り付けられた単一のビデオ・カメラからフィードとして受領された）シーン・イメージのシーケンスの複数のフレームを通じて追跡されたポイント・フィーチャに関する複数のポイント・フィーチャ軌跡を受け取る。ステップ５０６では、方法５００は、受け取った軌跡データに基づいて、複数のフレームの中から識別されたポイント・フィーチャに対する、ナビゲーションを必要とする物体のポーズを推定する。
【００３６】
一実施形態では、ステップ５０６によるポーズ推定が、５点アルゴリズム（例えば、参照によりその全体が本明細書に組み込まれる２００４年３月１１日出願の米国特許出願第１０／７９８７２６号に記載されている）およびプリエンプティブＲＡＮＳＡＣと、その後に続く反復的改善とに従って実施される。したがって、方法５００は、与えられたポイント・フィーチャに基づいて、１組の可能なポーズ解または仮定を生成する。こうした仮定は、利用可能なポイント・フィーチャ軌跡のサブセットを選択することによって生成される。一実施形態では、このサブセットは、少なくとも５つの無作為に選択されたポイント・フィーチャを含む。次いで、こうした仮定のそれぞれが、利用可能なすべてのポイント・フィーチャ軌跡に対して評価され、どの仮定が最大フィーチャ軌跡数と整合するかが判定される。一実施形態では、この最高に整合する仮定が、正確である可能性が最も高いと理解される。
【００３７】
ステップ５０８では、方法５００は、ステップ５０６で決定した推定ポーズを使用して、観測したポイント・フィーチャ軌跡を複数の３次元（３Ｄ）ポイントに三角形分割する。一実施形態では、ポイント・フィーチャ軌跡に沿って最初および最後に観測したポイント・フィーチャを使用して三角形分割が実施される。別の実施形態では、方向誤差による最適三角形分割に従って三角形分割が実施される。一実施形態では、ステップ５０８が実行されるのが初めてではない場合、現在のポイント・フィーチャ軌跡結果と直前のポイント・フィーチャ軌跡結果との間の目盛係数が（例えばプリエンプティブＲＡＮＳＡＣ手続きに従って）推定される。次いで、現在のポイント・フィーチャ軌跡結果が前の結果に取って代わる。
【００３８】
ステップ５１０では、方法５００は、（例えば、ステップ５０４でポイント・フィーチャ軌跡を最初に受け取った時点に続いて）関連するポイント・フィーチャがいくつかの後続のフレームについて追跡されるとき、例えばビデオ入力のストリームの形の追加のポイント・フィーチャ軌跡データを受け取る。ステップ５１２では、方法５００は、追加のポイント・フィーチャ軌跡データに基づいて、（例えばステップ５０８で確立された）既知の３Ｄポイントに対する現在のポーズを計算する。一実施形態では、３点２次元−３次元アルゴリズムおよびプリエンプティブＲＡＮＳＡＣと、その後に続く反復的改善とに従ってポーズ推定が実施される。（例えば、Ｒ．Ｈａｒａｌｉｃｋ、Ｃ．Ｌｅｅ、Ｋ．Ｏｔｔｅｎｂｅｒｇ、およびＭ．Ｎｏｌｌｅ、Ｒｅｖｉｅｗ  ａｎｄ  Ａｎａｌｙｓｉｓ  ｏｆ  Ｓｏｌｕｔｉｏｎｓ  ｏｆ  ｔｈｅ  Ｔｈｒｅｅ  Ｐｏｉｎｔ  Ｐｅｒｓｐｅｃｔｉｖｅ  Ｐｏｓｅ  Ｅｓｔｉｍａｔｉｏｎ  Ｐｒｏｂｌｅｍ、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ、１３（３）：３３１−３５６、１９９４年や様々なテキストブックに記載の）１つの周知の３点アルゴリズムは、３つの３次元ワールド・ポイントに対する２次元イメージ・ポイントの対応を使用してカメラ・ポーズを推定する。
【００３９】
ステップ５１２での既知の３次元ポイントに対するポーズ推定に続いて、方法５００はステップ５１４に進み、新しいポイント・フィーチャ軌跡データに関して追加の３Ｄポイントを再三角形分割する。一実施形態では、再三角形分割は、（例えば、このとき新しいフィーチャ・ポイント軌跡データを含む）軌跡に沿って最初および最後に観測したフィーチャ・ポイントを使用して再三角形分割が実施される。次いで、方法５００はステップ５１６に進み、ステップ５１０から追跡を続行すべきかどうか（例えば追加のポイント・フィーチャ軌跡データを処理すべきかどうか）を判定する。一実施形態では、ステップ５１０からさらなる反復を続行するかどうかに関する判定は、計算コストおよび環境的複雑さの少なくとも一方など、いくつかの応用例特有の基準のうちの１つまたは複数に従って行うことができる。例えば、上記で議論した３点ポーズ推定技法は、関連する他の方法よりも一般に計算的に複雑ではなく、したがって５点推定の数に比べて、追加の３点推定を実施することは、一般に全計算負荷を低減する。しかし、３点ポーズ推定技法の精度は、特に複雑なシーン環境では誤差を受けやすい、三角形分割された３次元ポイントの精度に直接依存する。したがって、所与の応用例についてステップ５１０〜５１４の最適な反復回数を決定するのに、応用例ごとの方法に関してこれらの考慮すべき点の平衡を取ることが一般には望ましい。しかし、一実施形態では、ステップ５１０からの反復回数は３に事前設定される。
【００４０】
ステップ５１０から追跡を続行すべきであると方法５００がステップ５１６で判定した場合、方法５００はステップ５１０に戻り、上述と同様に進む。あるいは、ステップ５１０から追跡を続行すべきでないと方法５００がステップ５１６で判定した場合、方法５００はステップ５１８に進む。
【００４１】
ステップ５１８では、方法５００は、ステップ５０４から追跡を続行すべきかどうか（例えば、追加のフィーチャ軌跡データを処理すべきかどうか）を判定する。一実施形態では、処理はステップ５０４からいくつかの反復だけ続行する。反復回数は、運動速度やポーズおよび／または三角形分割誤差の確率などの応用例特有の基準に基づく。一実施形態では、ステップ５０４から実施される反復回数は３に事前設定される。ステップ５０４から追跡を続行すべきであると方法５００がステップ５１８で判定した場合、方法５００はステップ５０４に戻り、上述と同様に進む。あるいは、ステップ５０４から追跡を続行すべきでないと方法５００がステップ５１８で判定した場合、方法５００はステップ５２０に進む。
【００４２】
ステップ５２０では、方法５００は、入力データのストリームにファイアウォールを挿入し、それによって、将来の３Ｄポイントの三角形分割が、最新のファイアウォールに先行する観測を使用して実施されないことになる。したがって、三角形分割では、ファイアウォールの直後のシーン・イメージのシーケンスのフレームが第１フレームと見なされる。言い換えれば、先行する反復に対して使用される３次元ポイントが廃棄され、完全に新しい１組の３次元ポイントが推定される。これは、方法５００の実行全体を通して、（例えば３Ｄポイント位置決め、ポーズ推定などでの）誤差の伝播を低減する助けになる。次いで方法５００はステップ５０４に戻り、上述と同様に進む。
【００４３】
図６は、本発明によるフレーム間増分ポーズ推定を生成する方法６００の第２実施形態を示す流れ図である。方法５００と同様に、方法６００は、上記で議論した方法２００のステップ２１０に従って実装することができる。しかし、方法５００とは対照的に、方法６００は、ステレオ・ビデオ（例えば、較正された１対のビデオ・カメラからのデータ）に基づいてフレーム間増分ポーズ推定を生成する際に有用である。
【００４４】
方法６００はステップ６０２で初期化され、ステップ６０４に進み、ステップ６０４では、方法６００は、（例えば、移動車両またはロボットに取り付けられた２つの移動ビデオ・カメラからの個々のフィードで実施される）ポイント・フィーチャ軌跡を受け取る。ポイント・フィーチャ軌跡は、（例えば左のビデオ・カメラと右のビデオ・カメラから見た）同一のポイント・フィーチャ軌跡の異なるパースペクティブを提示する２つの異なるビューから受領される。方法６００はステップ６０６に進み、着信するイメージまたはシーン・イメージのシーケンスで提示される２つのビュー間でポイント・フィーチャを突き合わせる。
【００４５】
ステップ６０８では、方法６００は、ステレオ較正データの知識を使用して、ステップ６０６で確立された合致を３Ｄポイントに三角形分割する。次いで、ステップ６１０で追加のポイント・フィーチャ軌跡データを受け取る。
【００４６】
ステップ６１２では、方法６００は、受け取ったポイント・フィーチャ軌跡データに基づいて、シーン・イメージのシーケンスの複数のフレーム間の、（例えばステレオ・ヘッドが取り付けられた）ナビゲーションを必要とする物体の相対的ポーズを推定する。一実施形態では、ステップ６１２によるポーズ推定が、（例えば上記で議論したように、例えば左イメージからのフィーチャを用いる）３点アルゴリズムおよびプリエンプティブＲＡＮＳＡＣと、その後に続く左イメージと右イメージの両方におけるフィーチャに基づく反復的改善とに従って実施される。したがって、方法６００は、与えられたフィーチャ・ポイントに基づいて、１組の可能なポーズ解または仮定を生成する。こうした仮定は、利用可能なフィーチャ軌跡のサブセットを選択することによって生成される。一実施形態では、このサブセットは、少なくとも３つの無作為に選択されたフィーチャ軌跡を含む。次いで、こうした仮定のそれぞれが、利用可能なすべてのフィーチャ軌跡に対して評価され、（例えばすべてのフィーチャとの最大の整合性に基づいて）どの仮定が正確である可能性が最も高いかが判定される。
【００４７】
ステップ６１４では、方法６００は、ステップ６１０から追跡を続行すべきかどうか（例えば、追加のポイント・フィーチャ軌跡データを処理すべきかどうか）を判定する。上記で議論したように、この判定は応用例特有の基準に基づいて行うことができ、または固定の回数だけ反復を実施することができる。ステップ６１０から追跡を続行すべきであると方法６００がステップ６１４で判定した場合、方法６００はステップ６１０に戻り、上述と同様に進む。あるいは、ステップ６１０から追跡を続行すべきでないと方法６００がステップ６１４で判定した場合、方法６００はステップ６１６に進む。
【００４８】
ステップ６１６では、方法６００は、左イメージおよび右イメージでの観測に従って、すべての新しいポイント・フィーチャ合致を三角形分割する。次いで、方法６００はステップ６１８に進み、ステップ６１０から追跡を続行すべきかどうかを判定する。上記で議論したように、この判定は応用例特有の基準に基づいて行うことができ、または固定の回数だけ反復を実施することができる。ステップ６１０から追跡を続行すべきであると方法６００がステップ６１８で判定した場合、方法６００はステップ６１０に戻り、上述と同様に進む。あるいは、ステップ６１０から追跡を続行すべきでないと方法６００がステップ６１８で判定した場合、方法６００はステップ６２０に進む。
【００４９】
ステップ６２０では、方法６００は、すべての既存の３Ｄポイントを廃棄し、新しいポイント・フィーチャ軌跡データに基づいてすべての３Ｄポイントを再三角形分割し、したがって入力データのストリームにファイアウォールを挿入し、それによって、将来の３Ｄポイントの三角形分割が、最新のファイアウォールに先行する観測を使用して実施されないことになる。次いで、方法６００はステップ６１０に戻り、前述と同様に進む。
【００５０】
図７は、汎用コンピューティング装置７００を使用して実施されるビジュアル・オドメトリ方法の高レベル・ブロック図である。一実施形態では、汎用コンピューティング装置７００は、プロセッサ７０２、メモリ７０４、ビジュアル・オドメトリ・モジュール７０５、およびディスプレイ、キーボード、マウス、モデムなどの様々な入出力（Ｉ／Ｏ）装置７０６を備えることができる。一実施形態では、少なくとも１つのＩ／Ｏ装置は記憶装置（例えばディスク・ドライブ、光ディスク・ドライブ、フロッピィ・ディスク・ドライブ）である。通信チャネルを介してプロセッサに結合された物理的装置またはサブシステムとしてビジュアル・オドメトリ・モジュール７０５を実装できることを理解されたい。
【００５１】
あるいは、ビジュアル・オドメトリ・モジュール７０５は、１つまたは複数のソフトウェア・アプリケーション（さらには、ソフトウェアと、例えば特定用途向け集積回路（ＡＳＩＣ）を用いたハードウェアとの組合せ）で表すことができる。その場合ソフトウェアは、記憶媒体（例えばＩ／Ｏ装置７０６）からロードされ、汎用コンピューティング装置７００のメモリ７０４内でプロセッサ７０２によって操作される。したがって、一実施形態では、上記の図を参照しながら本明細書で説明した運動および位置を推定するビジュアル・オドメトリ・モジュール７０５を、コンピュータ可読媒体またはキャリア（例えばＲＡＭ、磁気または光ドライブまたはディスケットなど）上に格納することができる。
【００５２】
別の実施形態では、ビジュアル・オドメトリを従来のナビゲーション装置（ＧＰＳ、慣性測定ユニット、コンパスなど）と組み合わせる統合検出装置として本発明を実装することができる。そのような実施形態では、ビジュアル・オドメトリで生成された６自由度運動推定が、従来のセンサで生成された推定を補正するのに使用され、逆も同様である。したがって、この統合システムは、利用可能なすべてのセンサ入力を組み込む単一ナビゲーション解を生成することができる。このようなシステムの従来装置に勝る利点は、統合ナビゲーション・システムが、ビジュアル入力単独、またはより正確かつ安定した位置確認のために追加のセンサ入力で補足されたビジュアル入力を操作できることである。
【００５３】
したがって、本発明は、自律的ナビゲーションの分野での著しい進歩を表す。移動物体（例えば自律的車両またはロボット）が周囲環境の性質の如何に関わらず周囲の環境の中をナビゲートすることを可能にする方法および装置が提供される。ほぼどんな環境または条件でも得ることのできるビデオ・データを主に処理することにより、位置および運動を正確に推定することができる。次いで、任意選択で、自律的ナビゲーション・システムで通常使用されているような追加の環境特有のセンサからのデータを使用して、ビデオ・データから導出された推定を補足することができる。
【００５４】
上記は本発明の実施形態を対象とするものであるが、本発明の基本的範囲から逸脱することなく、本発明の別の実施形態を考案することができ、本発明の範囲は、添付の特許請求の範囲によって決定される。
【図面の簡単な説明】
【００５５】
【図１】本発明によるビジュアル・オドメトリのための方法の一実施形態を示す流れ図である。
【図２】本発明によるビデオ・データから運動推定および／または位置推定を導出する方法の一実施形態を示す流れ図である。
【図３】ポイント・フィーチャ検出のための方法の一実施形態を示す流れ図である。
【図４】ポイント・フィーチャ整合のための方法の一実施形態を示す流れ図である。
【図５】本発明によるフレーム間増分ポーズ推定を生成する方法の一実施形態を示す流れ図である。
【図６】本発明によるフレーム間増分ポーズ推定を生成する方法の第２実施形態を示す流れ図である。
【図７】汎用コンピューティング装置を使用して実施されるビジュアル・オドメトリ方法の高レベル・ブロック図である。
【図８】シーン・イメージのシーケンスから取られた例示的フレームであり、その中で複数のポイント・フィーチャの位置が円で突き止められている図である。
【図１】
2008503757.tif 000004
【図２】
2008503757.tif 000005
【図３】
2008503757.tif 000006
【図４】
2008503757.tif 000007
【図５】
2008503757.tif 000008
【図６】
2008503757.tif 000009
【図７】
2008503757.tif 000010
【図８】
2008503757.tif 000011
【国際調査報告】
2008503757.tif 000012