"移動体に搭載されて所定の領域を撮像する撮像手段と、前記撮像手段が第1の位置及び第1の姿勢にあるときに撮像された第1の画像から、複数の特徴点を抽出する特徴点抽出手段と、前記特徴点抽出手段によって前記第1の画像から抽出された前記特徴点の各々に対応する点を、前記撮像手段が前記第1の位置及び第1の姿勢とは異なる第2の位置及び第2の姿勢にあるときに撮像された第2の画像から検索し、特徴点の移動状態を表すオプティカルフローを算出するオプティカルフロー算出手段と、前記特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択する特徴点選択ステップと、選択されたn個の特徴点に基づいて基礎行列を算出する基礎行列算出ステップと、算出された基礎行列に基づいて、前記特徴点抽出手段によって抽出された全ての特徴点についてのエピポーラ誤差を算出する誤差算出ステップと、を所定回数Nだけ繰り返し、斯くして得られたN個の基礎行列のうち最も小さいエピポーラ誤差を示す基礎行列を最適基礎行列として選択する基礎行列算出手段と、前記基礎行列算出手段によって算出された前記最適基礎行列から、オプティカルフローによって得られる、特徴点に対応する点、及び前記撮像手段の内部パラメータに基づいて、前記撮像手段の運動量を算出することにより、前記移動体の運動量を算出する運動量算出手段と、前記運動量算出手段によって算出された前記撮像手段の運動量に基づいて、個々の特徴点の三次元座標を算出する三次元座標算出手段と、を備える運動量推定装置において、前記特徴点選択ステップにおいて、前記特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択した後に、選択されたn個の特徴点を、オプティカルフローの向きに基づいて予め定められたn個のグループに分けるグループ分けステップと、前記n個のグループのうち、当該グループに属する特徴点が2個以上存在するグループについては、当該グループに属する2個以上の特徴点のうち1個のみを残して、その他の特徴点を削除する特徴点収束ステップと、前記n個のグループのうち、当該グループに属する特徴点が存在しないグループについては、当該グループの数と同じ数の特徴点を改めて選択する特徴点再選択ステップと、を、前記n個のグループの全てに特徴点が1個ずつ属する状態になるまで繰り返す、運動量推定方法。請求項1に記載の運動量推定方法であって、前記所定数nが8である、運動量推定方法。移動体に搭載されて所定の領域を撮像する撮像手段と、前記撮像手段が第1の位置及び第1の姿勢にあるときに撮像された第1の画像から、複数の特徴点を抽出する特徴点抽出手段と、前記特徴点抽出手段によって前記第1の画像から抽出された前記特徴点の各々に対応する点を、前記撮像手段が前記第1の位置及び第1の姿勢とは異なる第2の位置及び第2の姿勢にあるときに撮像された第2の画像から検索し、特徴点の移動状態を表すオプティカルフローを算出するオプティカルフロー算出手段と、前記特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択する特徴点選択ステップと、選択されたn個の特徴点に基づいて基礎行列を算出する基礎行列算出ステップと、算出された基礎行列に基づいて、前記特徴点抽出手段によって抽出された全ての特徴点についてのエピポーラ誤差を算出する誤差算出ステップと、を所定回数Nだけ繰り返し、斯くして得られたN個の基礎行列のうち最も小さいエピポーラ誤差を示す基礎行列を最適基礎行列として選択する基礎行列算出手段と、前記基礎行列算出手段によって算出された前記最適基礎行列から、オプティカルフローによって得られる、特徴点に対応する点、及び前記撮像手段の内部パラメータに基づいて、前記撮像手段の運動量を算出することにより、前記移動体の運動量を算出する運動量算出手段と、前記運動量算出手段によって算出された前記撮像手段の運動量に基づいて、個々の特徴点の三次元座標を算出する三次元座標算出手段と、を備える運動量推定装置において、前記特徴点選択ステップにおいて、前記特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択した後に、選択されたn個の特徴点を、オプティカルフローの向きに基づいて予め定められたn個のグループに分けるグループ分けステップと、前記n個のグループのうち、当該グループに属する特徴点が2個以上存在するグループについては、当該グループに属する2個以上の特徴点のうち1個のみを残して、その他の特徴点を削除する特徴点収束ステップと、前記n個のグループのうち、当該グループに属する特徴点が存在しないグループについては、当該グループの数と同じ数の特徴点を改めて選択する特徴点再選択ステップと、を、前記n個のグループの全てに特徴点が1個ずつ属する状態になるまで繰り返す、運動量推定装置。請求項3に記載の運動量推定装置であって、前記所定数nが8である、運動量推定装置。前述のように、当該技術分野においては、演算負荷を軽減しつつ単眼カメラ画像によるステレオ視に基づく運動量推定を高精度に実現することができる技術に対する継続的な要求が存在する。本発明は、かかる要求に応えるために為されたものである。より具体的には、本発明の1つの目的は、単眼ステレオ視に基づく運動量推定を実施するに当たり、演算負荷を軽減しつつ、運動量及び三次元座標を高精度に算出する方法を提供することである。本発明の上記1つの目的は、移動体に搭載されて所定の領域を撮像する撮像手段と、前記撮像手段が第1の位置及び第1の姿勢にあるときに撮像された第1の画像から、複数の特徴点を抽出する特徴点抽出手段と、前記特徴点抽出手段によって前記第1の画像から抽出された前記特徴点の各々に対応する点を、前記撮像手段が前記第1の位置及び第1の姿勢とは異なる第2の位置及び第2の姿勢にあるときに撮像された第2の画像から検索し、特徴点の移動状態を表すオプティカルフローを算出するオプティカルフロー算出手段と、前記特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択する特徴点選択ステップと、選択されたn個の特徴点に基づいて基礎行列を算出する基礎行列算出ステップと、算出された基礎行列に基づいて、前記特徴点抽出手段によって抽出された全ての特徴点についてのエピポーラ誤差を算出する誤差算出ステップと、を所定回数Nだけ繰り返し、斯くして得られたN個の基礎行列のうち最も小さいエピポーラ誤差を示す基礎行列を最適基礎行列として選択する基礎行列算出手段と、前記基礎行列算出手段によって算出された前記最適基礎行列から、オプティカルフローによって得られる、特徴点に対応する点、及び前記撮像手段の内部パラメータに基づいて、前記撮像手段の運動量を算出することにより、前記移動体の運動量を算出する運動量算出手段と、前記運動量算出手段によって算出された前記撮像手段の運動量に基づいて、個々の特徴点の三次元座標を算出する三次元座標算出手段と、を備える運動量推定装置において、前記特徴点選択ステップにおいて、前記特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択した後に、選択されたn個の特徴点を、オプティカルフローの向きに基づいて予め定められたn個のグループに分けるグループ分けステップと、前記n個のグループのうち、当該グループに属する特徴点が2個以上存在するグループについては、当該グループに属する2個以上の特徴点のうち1個のみを残して、その他の特徴点を削除する特徴点収束ステップと、前記n個のグループのうち、当該グループに属する特徴点が存在しないグループについては、当該グループの数と同じ数の特徴点を改めて選択する特徴点再選択ステップと、を、前記n個のグループの全てに特徴点が1個ずつ属する状態になるまで繰り返す、運動量推定方法によって達成される。上記のように、本発明に係る運動量推定方法においては、単眼カメラによって撮像された画像を用いるステレオ視に基づく運動量推定を行うに当たり、異なる向きを有するオプティカルフローを形成する特徴点を効率的にサンプリングして基礎行列の算出に用いるので、演算負荷を軽減しつつ、カメラの運動量及び特徴点の三次元座標を高精度に算出することができる。前述のように、本発明は、単眼ステレオ視に基づく運動量推定を実施するに当たり、演算負荷を軽減しつつ、運動量及び三次元座標を高精度に算出する方法を提供することを1つの目的とする。本発明者は、上記目的を達成すべく鋭意研究の結果、単眼カメラによって撮像された画像を用いるステレオ視に基づく運動量推定を行うに当たり、従来技術のように個々の基礎行列の算出に用いるオプティカルフローを形成する特徴点対応点をランダム且つ無条件に選択するのではなく、個々のオプティカルフローの向きを考慮して、異なる向きを有するオプティカルフローを形成する特徴点を効率的にサンプリングして基礎行列の算出に用いることにより、演算負荷を軽減しつつ、カメラの運動量及び特徴点の三次元座標を高精度に算出することができることを見出し、本発明を想到するに至ったものである。即ち、本発明の第1の実施態様は、移動体に搭載されて所定の領域を撮像する撮像手段と、前記撮像手段が第1の位置及び第1の姿勢にあるときに撮像された第1の画像から、複数の特徴点を抽出する特徴点抽出手段と、前記特徴点抽出手段によって前記第1の画像から抽出された前記特徴点の各々に対応する点を、前記撮像手段が前記第1の位置及び第1の姿勢とは異なる第2の位置及び第2の姿勢にあるときに撮像された第2の画像から検索し、特徴点の移動状態を表すオプティカルフローを算出するオプティカルフロー算出手段と、前記特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択する特徴点選択ステップと、選択されたn個の特徴点に基づいて基礎行列を算出する基礎行列算出ステップと、算出された基礎行列に基づいて、前記特徴点抽出手段によって抽出された全ての特徴点についてのエピポーラ誤差を算出する誤差算出ステップと、を所定回数Nだけ繰り返し、斯くして得られたN個の基礎行列のうち最も小さいエピポーラ誤差を示す基礎行列を最適基礎行列として選択する基礎行列算出手段と、前記基礎行列算出手段によって算出された前記最適基礎行列から、オプティカルフローによって得られる、特徴点に対応する点、及び前記撮像手段の内部パラメータに基づいて、前記撮像手段の運動量を算出することにより、前記移動体の運動量を算出する運動量算出手段と、前記運動量算出手段によって算出された前記撮像手段の運動量に基づいて、個々の特徴点の三次元座標を算出する三次元座標算出手段と、を備える運動量推定装置において、前記特徴点選択ステップにおいて、前記特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択した後に、選択されたn個の特徴点を、オプティカルフローの向きに基づいて予め定められたn個のグループに分けるグループ分けステップと、前記n個のグループのうち、当該グループに属する特徴点が2個以上存在するグループについては、当該グループに属する2個以上の特徴点のうち1個のみを残して、その他の特徴点を削除する特徴点収束ステップと、前記n個のグループのうち、当該グループに属する特徴点が存在しないグループについては、当該グループの数と同じ数の特徴点を改めて選択する特徴点再選択ステップと、を、前記n個のグループの全てに特徴点が1個ずつ属する状態になるまで繰り返す、運動量推定方法である。上記撮像手段は、例えば、CCDChargeCoupledDeviceカメラ等の撮像装置であり、車両等の移動体に搭載されて、例えば移動体の前方等の所定の領域を撮像する。撮像された画像は、例えば、A/Dアナログ/デジタル変換された画像信号として、画像メモリ等のデータ記憶手段に格納することができる。上記特徴点抽出手段は、撮像手段が第1の位置及び第1の姿勢にあるときに撮像された第1の画像から、複数の特徴点を抽出する。当業者に周知であるように、特徴点とは、画像における境界の形状を定義するために必要となる点であり、例えば、コーナーやエッジに該当する。かかる特徴点の抽出には、当該技術分野において広く知られている種々の方法を用いることができる。具体的には、特徴点の抽出には、例えば、ハリスHarrisオペレータやSUSANオペレータを使用することができる。上記オプティカルフロー算出手段は、特徴点抽出手段によって第1の画像から抽出された特徴点の各々に対応する点を、撮像手段が第1の位置及び第1の姿勢とは異なる第2の位置及び第2の姿勢にあるときに撮像された第2の画像から検索し、特徴点の移動状態を表すオプティカルフローを算出する。当業者に周知であるように、オプティカルフローとは、第1の画像と第2の画像との間で特徴点が移動した軌跡である。換言すれば、オプティカルフローとは、時系列的な画像の組を利用して、画像の速度場を求め、当該速度場をベクトル集合で表現したものである。かかるオプティカルフローの算出には、当該技術分野において広く知られている種々の方法を用いることができる。一般的に、オプティカルフローの算出方法は、勾配法とブロックマッチング法とに大別することができる。勾配法においてはオプティカルフロー拘束方程式と呼ばれる輝度の時間/空間的微分輝度勾配の拘束方程式を用いて、これに制約条件を付加することによってオプティカルフローを求める。代表的な勾配法としては、例えば、Lucas-Kanade法やKLTKanade-Lucas-Tomasiトラッカー等を挙げることができる。一方、ブロックマッチング法においては、一方の画像における特定のブロックをテンプレートとし、他方の画像において、対応する箇所を検索することによってオプティカルフローを求める。上記基礎行列算出手段は、特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択する特徴点選択ステップと、選択されたn個の特徴点に基づいて基礎行列を算出する基礎行列算出ステップと、算出された基礎行列に基づいて、特徴点抽出手段によって抽出された全ての特徴点についてのエピポーラ誤差を算出する誤差算出ステップと、を所定回数Nだけ繰り返し、斯くして得られたN個の基礎行列のうち最も小さいエピポーラ誤差を示す基礎行列を最適基礎行列として選択する。上記基礎行列算出手段は、特徴点選択ステップにおいて、特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択する。本実施態様に係る運動量推定方法は、上記特徴点選択ステップに特徴を有するものであるが、詳細については後述する。上記特徴点選択ステップにおいて選択される特徴点の数である所定数nは、例えば、後述する基礎行列の算出に用いるアルゴリズム等に応じて、任意の自然数に設定することができる。所定数nを大きくするほど、個々の基礎行列の算出精度は高まるものの、基礎行列の算出に必要とされる演算負荷も高まる。逆に、所定数nを小さくするほど、個々の基礎行列の算出に必要とされる演算負荷は低くなるものの、基礎行列の算出精度も低くなる。次に、上記基礎行列算出手段は、基礎行列算出ステップにおいて、選択されたn個の特徴点に基づいて基礎行列を算出する。当業者に周知であるように、基礎行列とは、エピポーラ幾何学に基づいてステレオ視における画像間での点対応を数学的に記述する基礎行列である。換言すれば、基礎行列とは、画像間のエピポーラ拘束を表す行列である。かかる基礎行列の算出には、当該技術分野において広く知られている種々の方法を用いることができる。具体的には、基礎行列の算出には、例えば、公知のハートレーHartleyの8点アルゴリズムや、7点アルゴリズム、5点アルゴリズム等を使用することができる。次に、上記基礎行列算出手段は、誤差算出ステップにおいて、算出された基礎行列に基づいて、前記特徴点抽出手段によって抽出された全ての特徴点についてのエピポーラ誤差を算出する。当業者に周知であるように、エピポーラ誤差とは、算出された基礎行列に基づくエピポーラ線と特徴点との間の距離である。上記基礎行列算出手段は、上述の特徴点選択ステップ、基礎行列算出ステップ、及び誤差算出ステップを所定回数Nだけ繰り返し、斯くして得られたN個の基礎行列のうち最も小さいエピポーラ誤差を示す基礎行列を最適基礎行列として選択する。これにより、例えば、オプティカルフロー算出手段が、特徴点抽出手段によって第1の画像から抽出された特徴点の各々に対応する点対応点を、撮像手段が第1の位置及び第1の姿勢とは異なる第2の位置及び第2の姿勢にあるときに撮像された第2の画像から検索する際に、誤った点を検出した場合等、一部の対応点に大きい誤差が存在する場合に、かかる外れ値アウトライアの影響を排除し、基礎行列の算出精度を向上させることができる。即ち、基礎行列算出手段による最適な基礎行列の算出においては、エピポーラ誤差を評価量とするRANSACRANdamSAmpleConsensusと称されるロバストな手法を用いて、基礎行列の算出精度を向上させることができる。尚、上述の特徴点選択ステップ、基礎行列算出ステップ、及び誤差算出ステップを繰り返し実行する回数である所定回数Nは、例えば、MultipleViewGeometryinComputerVision,SecondEdition,2003,RichardHartleyAndrewZisserman,CambridgeUniversityPress非特許文献1に記載されている統計学的な手法等に応じて、任意の自然数に設定することができる。所定回数Nを大きくするほど、最終的に選択される最適な基礎行列の算出精度は高まるものの、最適な基礎行列の算出に必要とされる演算負荷も高まる。逆に、所定回数Nを小さくするほど、最適な基礎行列の算出に必要とされる演算負荷は低くなるものの、最適な基礎行列の算出精度も低くなる。上記運動量算出手段は、基礎行列算出手段によって算出された最適基礎行列から、オプティカルフローによって得られる、特徴点に対応する点、及び撮像手段の内部パラメータに基づいて、撮像手段の運動量を算出することにより、移動体の運動量を算出する。当業者に周知であるように、撮像手段の内部パラメータとは、例えば、撮像手段が備えるレンズの焦点距離、画角、光軸点等を指す。上記三次元座標算出手段は、運動量算出手段によって算出された前記撮像手段の運動量に基づいて、個々の特徴点の三次元座標を算出する。尚、本実施態様に係る運動量推定方法を使用する運動量推定装置が備える特徴点抽出手段、オプティカルフロー算出手段、基礎行列算出手段、運動量算出手段、及び三次元座標算出手段は、必ずしもそれぞれが個別の構成要素として構成されている必要は無い。例えば、これらの各種手段は、運動量推定装置が搭載された車両等の移動体が備える電子制御装置ECU:ElectricControlUnitにおいて実現される機能として実装されていてもよい。また、これらの各種手段は、運動量推定装置専用のECUにおいて実装されていてもよく、あるいは運動量推定装置が搭載された車両等の移動体が備える他の目的のためのECUにおいて実装されていてもよい。更に、これらの各種手段は、単一のECUにおいて実装されていてもよく、あるいは複数のECUにおいて分散的に実装されていてもよい。また、上記ECUの構成としては、例えば、上記各種手段によって行われる各種処理に相当する演算処理等を実行するための中央処理装置CPU:ContralProcessingUnit例えば、マイクロコンピュータ等、例えば、上記演算処理等をCPUに実行させるためのプログラムや上記撮像手段からの画像信号等を格納するためのデータ記憶装置例えば、RAMRandomAccessMemory、ROMReadOnlyMemory、HDDHardDiskDrive等、例えば、上記撮像手段からの画像信号等を受け取ったり、上記演算処理の結果を他の機器例えば、表示装置等に送出したりするためのデータ入出力ポート等を含む構成を挙げることができる。但し、本実施態様に係る運動量推定方法を使用する運動量推定装置が備える各種手段を実現する構成は上記説明によって限定されるものではなく、各々の手段の機能を実現することができる限り、如何なる構成であってもよい。前述のように、本実施態様に係る運動量推定方法は、撮像手段と、特徴点抽出手段と、オプティカルフロー算出手段と、基礎行列算出手段と、運動量算出手段と、三次元座標算出手段と、を備える運動量推定装置において、ステレオ視に基づく運動量推定を行うに当たり、従来技術のように個々の基礎行列の算出に用いるオプティカルフローを形成する特徴点対応点をランダム且つ無条件に選択するのではなく、個々のオプティカルフローの向きを考慮して、異なる向きを有するオプティカルフローを形成する特徴点を効率的にサンプリングして基礎行列の算出に用いることにより、演算負荷を軽減しつつ、カメラの運動量及び特徴点の三次元座標を高精度に算出する。具体的には、本実施態様に係る運動量推定方法によれば、特徴点選択ステップにおいて、特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択した後に、選択されたn個の特徴点を、オプティカルフローの向きに基づいて予め定められたn個のグループに分けるグループ分けステップと、前記n個のグループのうち、当該グループに属する特徴点が2個以上存在するグループについては、当該グループに属する2個以上の特徴点のうち1個のみを残して、その他の特徴点を削除する特徴点収束ステップと、前記n個のグループのうち、当該グループに属する特徴点が存在しないグループについては、当該グループの数と同じ数の特徴点を改めて選択する特徴点再選択ステップと、が、n個のグループの全てに特徴点が1個ずつ属する状態になるまで繰り返される。上記グループ分けステップにおいては、選択されたn個の特徴点が、オプティカルフローの向きに基づいて予め定められたn個のグループに振り分けられる。オプティカルフローの向きに基づいて予め定められたn個のグループとは、例えば、個々の特徴点によって形成されるオプティカルフローの向きの角度の範囲に応じて分けられたn個即ち、選択された特徴点の数と同じ数のグループであってもよい。より具体的には、オプティカルフローの向きに基づいて予め定められたn個のグループは、例えば、撮像手段によって撮像された画像における水平方向をX軸方向、鉛直方向をY軸方向とするX-Y座標平面におけるX軸上での正の向きの角度が0°ゼロ度であり、且つ反時計回り方向を角度が増大する方向であると定義した場合、360°をn個の角度領域に分け、個々のオプティカルフローの向きの角度以降、単にθと表記する場合があるが何れの角度領域に該当するかに応じて、特徴点をグループ分けすることができる。この場合、n個の角度領域は均等に分けられたものであってもよく、不均等に分けられたものであってもよい。また、個々の特徴点によって形成されるオプティカルフローの向きの角度θは、個々の特徴点の第1の画像における座標と第2の画像における座標とから幾何学的に算出することができる。上記特徴点収束ステップにおいては、上記グループ分けステップにおいてn個の特徴点がn個のグループに振り分けられた結果、n個のグループのうち、当該グループに属する特徴点が2個以上存在するグループが存在する場合は、当該グループに属する2個以上の特徴点のうち1個のみを残して、その他の特徴点を削除することにより、当該グループに属する特徴点を1個に収束させる。この際、特徴点が2個以上属するグループにおいて残される1個の特徴点以降、代表特徴点と称する場合があるは、例えば、ランダム且つ無条件に選択することができる。あるいは、2個以上の特徴点が振り分けられたグループに属する個々の特徴点によって形成されるオプティカルフローの向きの角度と当該グループに隣り合う2つのグループの代表特徴点によって形成されるオプティカルフローの向きの角度との差角度差をそれぞれ算出し、当該グループに隣り合う2つのグループの一方のグループの代表特徴点との角度差d1と他方のグループの代表特徴点との角度差d2とがより均等なd1とd2との差がより小さい特徴点を、当該グループの代表特徴点として選択することができる。尚、上記説明における隣り合うグループとは、それぞれのグループを定義付けるオプティカルフローの向きの角度領域が隣り合うグループを指す。例えば、360°を均等に45°ずつの角度領域に分け、個々の角度領域に対応する8個のグループとして、0~45°の角度領域に対応するグループ1、45~90°の角度領域に対応するグループ2、...、315~360°の角度領域に対応するグループ8を設定する場合、グループ2に隣り合う2つのグループは、グループ1及びグループ3である。上記特徴点再選択ステップにおいては、上記グループ分けステップにおいてn個の特徴点がn個のグループに振り分けられた結果、n個のグループのうち、当該グループに属する特徴点が存在しないグループについては、当該グループの数と同じ数の特徴点を改めて選択する。上記特徴点収束ステップの結果、当該グループに属する特徴点が存在する全てのグループには特徴点が1個ずつ存在するので、特徴点再選択ステップにおいて当該グループに属する特徴点が存在しないグループの数と同じ数の特徴点が補充されることにより、特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点が改めて選択された状態となる。前述のように、本実施態様に係る運動量推定方法によれば、特徴点選択ステップにおいて、上記グループ分けステップ、特徴点収束ステップ、及び特徴点再選択ステップが、n個のグループの全てに特徴点が1個ずつ属する状態になるまで繰り返される。これにより、種々の異なる向きを有するオプティカルフローを形成する特徴点を効率的にサンプリングして基礎行列の算出に用いることができる。その結果、個々の基礎行列の算出精度が高まり、移動体の運動量及び特徴点の三次元座標の算出精度も高まる。また、本実施態様に係る運動量推定方法によれば、基礎行列の算出に用いる特徴点を選択サンプリングする際に、個々のオプティカルフローの向きを考慮して、種々の異なる向きを有するオプティカルフローを形成する特徴点を積極的且つ効率的にサンプリングすることができる。これにより、例えば、特定の角度領域に該当する向きを有するオプティカルフローを形成する特徴点ばかりを偏ってサンプリングした等の理由により大きい誤差を示す基礎行列を算出する可能性を低減することができる。その結果、最適な基礎行列を算出するために必要とされる演算負荷を軽減することができる。即ち、本実施態様に係る運動量推定方法によれば、単眼ステレオ視に基づく運動量推定を実施するに当たり、演算負荷を軽減しつつ、運動量及び三次元座標を高精度に算出する方法を提供するという、本発明の1つの目的を達成することができる。ところで、前述のように、上記基礎行列算出手段は、特徴点選択ステップにおいて、特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択する。この所定数nは、例えば、基礎行列の算出に用いるアルゴリズム等に応じて、任意の自然数に設定することができる。一方、基礎行列の算出には、例えば、公知のハートレーの8点アルゴリズムや、7点アルゴリズム、5点アルゴリズム等、当該技術分野において広く知られている種々の方法を用いることができる。上記のように、基礎行列の算出には種々のアルゴリズムを用いることができる。例えば、前述のハートレーの8点アルゴリズムのように、基礎行列の算出において8個の特徴点を使用するアルゴリズムを用いる場合は、上記所定数nは8となる。かかる実施態様もまた、本発明の1つの実施態様として、本発明の範囲に含まれる。従って、本発明の第2の実施態様は、本発明の前記第1の実施態様に係る運動量推定方法であって、前記所定数nが8である、運動量推定方法である。上記のように、本実施態様に係る運動量推定方法においては、前記所定数nが8である。即ち、本実施態様に係る運動量推定方法によれば、前述の特徴点選択ステップにおいて、特徴点抽出手段によって抽出された複数の特徴点から8個の特徴点が選択される。その後、グループ分けステップにおいて、選択された8個の特徴点は、オプティカルフローの向きに基づいて予め定められた8個のグループに分けられ、特徴点収束ステップにおいて、8個のグループのうち、当該グループに属する特徴点が2個以上存在するグループについては、当該グループに属する2個以上の特徴点のうち1個のみを残して、その他の特徴点が削除され、特徴点再選択ステップにおいて、8個のグループのうち、当該グループに属する特徴点が存在しないグループについては、当該グループの数と同じ数の特徴点が改めて選択される。これらのステップが繰り返し実行され、やがて8個のグループの全てに特徴点が1個ずつ属する状態となる。上記のようにして8個の特徴点が選択サンプリングされると、前述の基礎行列算出ステップにおいて、選択された8個の特徴点に基づいて基礎行列が算出される。この際、基礎行列の算出には、例えば、前述のハートレーの8点アルゴリズムのように、8個の特徴点を基礎行列の算出に用いるアルゴリズムが用いられる。ところで、本発明は、前述のように、これまで説明してきた各種実施態様及びそれらの変形例を含む種々の運動量推定方法を使用する運動量推定装置にも関する。そこで、かかる運動量推定装置としての本発明の実施態様について以下に述べるが、運動量推定方法としての本発明の前述の実施態様について説明と重複するので、運動量推定装置としての本発明の実施態様についての詳細な説明は割愛する。即ち、本発明の第3の実施態様は、移動体に搭載されて所定の領域を撮像する撮像手段と、前記撮像手段が第1の位置及び第1の姿勢にあるときに撮像された第1の画像から、複数の特徴点を抽出する特徴点抽出手段と、前記特徴点抽出手段によって前記第1の画像から抽出された前記特徴点の各々に対応する点を、前記撮像手段が前記第1の位置及び第1の姿勢とは異なる第2の位置及び第2の姿勢にあるときに撮像された第2の画像から検索し、特徴点の移動状態を表すオプティカルフローを算出するオプティカルフロー算出手段と、前記特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択する特徴点選択ステップと、選択されたn個の特徴点に基づいて基礎行列を算出する基礎行列算出ステップと、算出された基礎行列に基づいて、前記特徴点抽出手段によって抽出された全ての特徴点についてのエピポーラ誤差を算出する誤差算出ステップと、を所定回数Nだけ繰り返し、斯くして得られたN個の基礎行列のうち最も小さいエピポーラ誤差を示す基礎行列を最適基礎行列として選択する基礎行列算出手段と、前記基礎行列算出手段によって算出された前記最適基礎行列から、オプティカルフローによって得られる、特徴点に対応する点、及び前記撮像手段の内部パラメータに基づいて、前記撮像手段の運動量を算出することにより、前記移動体の運動量を算出する運動量算出手段と、前記運動量算出手段によって算出された前記撮像手段の運動量に基づいて、個々の特徴点の三次元座標を算出する三次元座標算出手段と、を備える運動量推定装置において、前記特徴点選択ステップにおいて、前記特徴点抽出手段によって抽出された複数の特徴点から所定数nの特徴点を選択した後に、選択されたn個の特徴点を、オプティカルフローの向きに基づいて予め定められたn個のグループに分けるグループ分けステップと、前記n個のグループのうち、当該グループに属する特徴点が2個以上存在するグループについては、当該グループに属する2個以上の特徴点のうち1個のみを残して、その他の特徴点を削除する特徴点収束ステップと、前記n個のグループのうち、当該グループに属する特徴点が存在しないグループについては、当該グループの数と同じ数の特徴点を改めて選択する特徴点再選択ステップと、を、前記n個のグループの全てに特徴点が1個ずつ属する状態になるまで繰り返す、運動量推定装置である。また、本発明の第4の実施態様は、本発明の前記第3の実施態様に係る運動量推定装置であって、前記所定数nが8である、運動量推定装置である。本発明の幾つかの実施態様に係る運動量推定方法の構成等につき、添付図面等を参照しつつ以下に説明する。但し、以下に述べる説明はあくまでも例示を目的とするものであり、本発明の範囲が以下の説明に限定されるものと解釈されるべきではない。1.運動量推定方法において実行される種々の処理の流れ概要図1は、前述のように、本発明の1つの実施態様に係る運動量推定方法において実行される種々の処理の流れの概要を表すフローチャートである。図1に示すように、本実施例に係る運動量推定方法は、車両等の移動体に搭載された撮像手段例えば、カメラ等によって所定の領域を撮像し、撮像された画像を取り込む画像取込ステップS100と、前記撮像手段が第1の位置及び第1の姿勢にあるときに撮像された第1の画像から、複数の特徴点を抽出する特徴点抽出ステップS200と、前記特徴点抽出ステップS200において前記第1の画像から抽出された前記特徴点の各々に対応する点を、前記撮像手段が前記第1の位置及び第1の姿勢とは異なる第2の位置及び第2の姿勢にあるときに撮像された第2の画像から検索し、特徴点の移動状態を表すオプティカルフローを算出するオプティカルフロー算出ステップS300と、前記特徴点抽出ステップS200において抽出された複数の特徴点から所定数nの特徴点を選択し、選択されたn個の特徴点に基づいて基礎行列を算出する基礎行列算出ステップS400と、前記基礎行列算出ステップS400において算出された基礎行列から、オプティカルフローによって得られる対応点特徴点に対応する点及び撮像手段の内部パラメータに基づいて、前記撮像手段の運動量を算出することにより、移動体の運動量を算出する運動量算出ステップS500と、前記運動量算出ステップS500において算出された撮像手段の運動量に基づいて、個々の特徴点の三次元座標を算出する三次元座標算出ステップS600と、を含む。上記画像取込ステップS100においては、前述のように、例えば、CCDChargeCoupledDeviceカメラ等の撮像手段を車両等の移動体に搭載して、例えば移動体の前方等の所定の領域の複数の画像を撮像する。撮像された画像は、例えば、A/Dアナログ/デジタル変換された画像信号として、画像メモリ等のデータ記憶手段に格納することができる。尚、上記撮像手段は、例えば、時々刻々と変化する移動体周辺の状況を撮影する。従って、上記撮像手段は、例えば、所定のフレームレート単位時間当たりに撮影する枚数で画像を撮像するタイプのもの例えば、動画撮像手段等であってもよい。上記特徴点抽出ステップS200においては、上記画像取込ステップS100において取り込まれた画像のうち、第1の位置及び第1の姿勢にあるときに撮像された第1の画像から、例えばコーナーやエッジ等の複数の特徴点を抽出する。前述のように、特徴点の抽出には、例えば、ハリスHarrisオペレータやSUSANオペレータを使用することができる。上記オプティカルフロー算出ステップS300においては、上記特徴点抽出ステップS200において抽出された特徴点の移動状態を表すオプティカルフローを、上記画像取込ステップS100において取り込まれた画像のうち、第2の位置及び第2の姿勢にあるときに撮像された第2の画像を用いて算出する。前述のように、オプティカルフローの算出には、例えばLucas-Kanade法等の勾配法やブロックマッチング法を使用することができる。上記基礎行列算出ステップS400においては、上記特徴点抽出ステップS200において抽出された複数の特徴点から所定数nの特徴点を選択し、選択されたn個の特徴点に基づいて基礎行列を算出する。本実施例に係る運動量推定方法は、上記特徴点の選択手法に特徴を有するものであるが、詳細については後述する。また、前述のように、基礎行列の算出には、例えば、公知のハートレーの8点アルゴリズムや、7点アルゴリズム、5点アルゴリズム等を使用することができる。更に、前述のように、本実施例に係る運動量推定方法においては、基礎行列の算出精度を向上させることを目的として、例えばエピポーラ誤差を評価量とするRANSAC手法を用いて、基礎行列の算出における外れ値アウトライアの影響を低減して、基礎行列の算出精度を向上させることができる。本実施例に係る運動量推定方法における基礎行列の算出精度の向上についても、後に詳述する。上記運動量算出ステップS500においては、上記基礎行列算出ステップS400において算出された基礎行列から、オプティカルフローによって得られる対応点特徴点に対応する点及び撮像手段の内部パラメータ例えば、撮像手段が備えるレンズの焦点距離、画角、光軸点等に基づいて、撮像手段の運動量を算出する。前述のように、撮像手段は移動体に搭載されているので、撮像手段の運動量を算出することにより、移動体の運動量を算出することができる。上記三次元座標算出ステップS600においては、上記運動量算出ステップS500において算出された撮像手段の運動量に基づいて、個々の特徴点の三次元座標を算出する。このようにして、本実施例に係る運動量推定方法によれば、車両等の移動体に搭載された撮像手段例えば、単眼カメラ等によって移動体の周辺の画像を撮像することにより、移動体の周辺の環境を三次元的に認識することができる。本実施例に係る運動量推定方法においては、上述のように、RANSAC手法を用いて基礎行列の算出精度を向上させたり、基礎行列の算出に用いる特徴点のサンプリング手法に工夫を凝らして基礎行列の算出に必要とされる演算負荷を軽減したりしている。そこで、本実施例に係る運動量推定方法における、これらの特徴につき、以下に説明する。2.エピポーラ誤差を評価量とするRANSAC手法による基礎行列の算出精度の向上図2は、前述のように、図1に示すフローチャートに含まれる基礎行列算出ステップS400において実行される種々の処理の流れを表すフローチャートである。図2に示すように、本実施例に係る運動量推定方法の基礎行列算出ステップS400においては、前述の特徴点選択ステップS410、基礎行列算出ステップS420、及び誤差算出ステップS430が所定回数Nだけ繰り返され、その後、最適基礎行列選択ステップS440において、斯くして得られたN個の基礎行列のうち最も小さいエピポーラ誤差を示す基礎行列が最適基礎行列として選択される。上記により、例えば、前述のオプティカルフロー算出ステップS300において、特徴点抽出手段によって第1の画像から抽出された特徴点の各々に対応する点対応点を、撮像手段が第1の位置及び第1の姿勢とは異なる第2の位置及び第2の姿勢にあるときに撮像された第2の画像から検索する際に、誤った点を検出した場合等、一部の対応点に大きい誤差が存在する場合に、かかる外れ値アウトライアの影響を排除し、基礎行列の算出精度を向上させることができる。即ち、基礎行列算出ステップS400において実行される特徴点選択ステップS410、基礎行列算出ステップS420、及び誤差算出ステップS430、及び最適基礎行列選択ステップS440による一連の処理の流れは、エピポーラ誤差を評価量とするRANSAC手法に該当し、最適な基礎行列の算出精度を向上させることができる。次に、本実施例に係る運動量推定方法において基礎行列の算出に用いる特徴点のサンプリング手法に工夫を凝らして基礎行列の算出に必要とされる演算負荷を軽減している一連の処理の流れにつき、以下に説明する。3.エピポーラ誤差を評価量とするRANSAC手法による基礎行列の算出精度の向上図3は、前述のように、図2に示すフローチャートに含まれる特徴点選択ステップS410において実行される種々の処理の流れを表すフローチャートである。図3に示すように、本実施例に係る運動量推定方法の基礎行列算出ステップS400に含まれる特徴点選択ステップS410においては、ステップS411において、前述の特徴点抽出ステップS200において抽出された複数の特徴点から、所定数nの特徴点が選択される。所定数nは、前述のように、例えば、基礎行列の算出に用いるアルゴリズム等に応じて、任意の自然数に設定することができる。本実施例においては、所定数nが8であるものとして説明する。次に、グループ分けステップS412において、選択された8個n個の特徴点が、オプティカルフローの向きに基づいて予め定められた8個n個のグループに分けられる。ここで、オプティカルフローの向きに基づいて予め定められた8個n個のグループとは、前述のように、個々の特徴点によって形成されるオプティカルフローの向きの角度の範囲に応じて分けられたn個本実施例においては8個のグループである。本実施例においては、これら8個のグループは、撮像手段によって撮像された画像における水平方向をX軸方向、鉛直方向をY軸方向とするX-Y座標平面におけるX軸上での正の向きの角度が0°ゼロ度であり、且つ反時計回り方向を角度が増大する方向であると定義した場合、360°を8個の角度領域に分けることによって設定した。即ち、本実施例においては、360°を均等に45°ずつの角度領域に分け、個々の角度領域に対応する8個のグループを設定した。結果として、本実施例においては、グループ1の角度領域は0~45°、グループ2の角度領域は45~90°、...、グループ8の角度領域は315~360°となるように8個のグループを分けた。但し、本実施例においては8個のグループを均等な角度領域を有するように分けたが、前述のように、個々のグループを不均等に分けてもよい。また、個々の特徴点によって形成されるオプティカルフローの向きの角度θは、前述のように、個々の特徴点の第1の画像における座標と第2の画像における座標とから、幾何学的に算出することができる。より詳しくは、撮像手段が第1の位置及び第1の姿勢にあるときに撮像された第1の画像における特徴点p1の座標をu1,v1とし、撮像手段が第1の位置及び第1の姿勢とは異なる第2の位置及び第2の姿勢にあるときに撮像された第2の画像における前記特徴点p1に対応する点p2の座標をu2,v2とする。この場合、特徴点p1によって形成されるオプティカルフローの向きの角度θは、例えば、以下の式によって算出することができる。当該グループ分けステップS412においては、上記のようにして算出されたオプティカルフローの向きの角度θに基づいて、ステップS411において選択された8個の特徴点の各々が、上述の8個のグループ1乃至8に分類される。その結果、8個の特徴点が8個のグループの各々に1個ずつ配分される可能性もあるが、8個のグループの中の何れかに複数即ち、2個以上の特徴点が配分され、結果として特徴点が1個も配分されない空のグループが生ずる可能性もある。しかしながら、本発明は、前述のように、個々の基礎行列の算出に用いるオプティカルフローを形成する特徴点対応点を選択する際に、従来技術のように個々の基礎行列の算出に用いるオプティカルフローを形成する特徴点をランダム且つ無条件に選択するのではなく、個々のオプティカルフローの向きを考慮して、異なる向きを有するオプティカルフローを形成する特徴点を効率的にサンプリングして基礎行列の算出に用いることにより、演算負荷を軽減しつつ、カメラの運動量及び特徴点の三次元座標を高精度に算出しようとするものである。従って、本実施例に係る運動量推定方法においては、8個のグループの中に、複数の特徴点が属するグループが存在するか否かを確認するステップS413。複数の特徴点が属するグループが存在する場合ステップS413:Yes、特徴点収束ステップS415において、かかるグループに属する複数の特徴点のうち1個だけを残し、その他の特徴点を削除する。この際、特徴点が2個以上属するグループにおいて残される1個の特徴点代表特徴点は、前述のように、例えば、ランダム且つ無条件に選択したり、あるいは、当該グループに隣り合う2つのグループの代表特徴点との角度差がより均等な特徴点を選択したりすることによって決定することができる。一方、本実施例に係る運動量推定方法においては、特徴点が1個も属していない空のグループが存在するか否かについても確認するステップS414。特徴点が1個も属していない空のグループが存在する場合ステップS415:Yes、特徴点再選択ステップS416において、空のグループの数と同じ数の特徴点が改めて選択される。これにより、8個の特徴点が改めて選択された状態となるので、グループ分けステップS412に戻り、上述の各ステップが繰り返される。一方、特徴点が1個も属していない空のグループが存在しない場合ステップS415:Noは、8個のグループの全てに特徴点が1個ずつ属する状態になっていることを意味する。従って、本実施例に係る運動量推定方法においては、次の基礎行列算出ステップS420に処理が移る。上述のように、本実施例に係る運動量推定方法によれば、特徴点選択ステップS410において、上記グループ分けステップS412、特徴点収束ステップS415、及び特徴点再選択ステップS416が、8個のグループの全てに特徴点が1個ずつ属する状態になるまで繰り返される。これにより、種々の異なる向きを有するオプティカルフローを形成する特徴点を効率的にサンプリングして基礎行列の算出に用いることができる。その結果、本実施例に係る運動量推定方法によれば、個々の基礎行列の算出精度が高まり、移動体の運動量及び特徴点の三次元座標の算出精度も高まる。以上、本発明を説明することを目的として、特定の構成を有する幾つかの実施態様について説明してきたが、本発明の範囲は、これらの例示的な実施態様に限定されるものではなく、特許請求の範囲及び明細書に記載された事項の範囲内で、適宜修正を加えることができることは言うまでも無い。"