(57)【要約】      （修正有）【課題】エゴモーション概算システムおよび方法の提供。【解決手段】エゴモーション概算システムを利用してエゴモーションパラメータを決定するためのコンピュータ実施方法であって、第１の画像フレームおよび第２の画像フレームを取得することと、第１の画像フレームの第１の部分を選択して第１のサブ画像を取得し、かつ第２の画像フレームの第２の部分を選択して第２のサブ画像を取得することと、第１のサブ画像および第２のサブ画像に変換を実行して、それぞれ、第１の透視画像および第２の透視画像を取得することと、第２の透視画像を反復的に調整して複数の調整した透視画像を取得することと、第１の透視画像と複数の調整した透視画像との個々の差異それぞれに対応する複数の差分値を決定することと、複数の差分値のうちの１つに対応する、エゴモーションパラメータに関する並進ベクトルを決定することと、を含む、方法。【選択図】図１
2013065298.tif 000002
【特許請求の範囲】
【請求項１】
エゴモーション概算システムを利用してエゴモーションパラメータを決定するためのコンピュータ実施方法であって、
第１の画像フレームおよび第２の画像フレームを取得することと、
前記第１の画像フレームの第１の部分を選択して第１のサブ画像を取得し、かつ前記第２の画像フレームの第２の部分を選択して第２のサブ画像を取得することと、
前記第１のサブ画像および前記第２のサブ画像に変換を実行して、それぞれ、第１の透視画像および第２の透視画像を取得することと、
前記第２の透視画像を反復的に調整して複数の調整した透視画像を取得することと、
前記第１の透視画像と前記複数の調整した透視画像との個々の差異それぞれに対応する複数の差分値を決定することと、
前記複数の差分値のうちの１つに対応する、エゴモーションパラメータに関する並進ベクトルを決定することと、を含む、方法。
【請求項２】
前記並進ベクトルを利用して、前記エゴモーションパラメータに関する回転角を決定することをさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記第１の透視画像および前記複数の調整した透視画像は、それぞれ、対応する画素値をその各々が有する複数の画素を含み、
前記第１の透視画像および前記複数の調整した透視画像における対応する画素値間の絶対差を合計して、前記複数の差分値それぞれを決定することをさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項４】
前記並進ベクトルは水平成分および垂直成分を含み、
第１の反復を実行して第１の複数の差分値を取得し、かつ第２の反復を実行して第２の複数の差分値を取得することと、
前記第１の複数の差分値のうちの１つに対応する水平移動値を決定し、かつ前記第２の複数の差分値のうちの１つに対応する垂直移動値を決定することと、
前記並進ベクトルの前記水平成分として前記水平移動値を特定し、かつ前記並進ベクトルの前記垂直成分として前記垂直移動値を特定することと、をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項５】
前記第１の反復および前記第２の反復を同時に実行する、請求項４に記載のコンピュータ実施方法。
【請求項６】
前記第１の反復を、最大並進ベクトルの最大水平成分に基づく第１の間隔において実行し、
前記第２の反復を、最大並進ベクトルの最大垂直成分に基づく第２の間隔において実行する、請求項４に記載のコンピュータ実施方法。
【請求項７】
所定の最高速度、所定の画像フレームレート、および前記第１の画像フレームと前記第２の画像フレームとの間の時間間隔に基づいて、前記最大並進ベクトルの前記最大水平成分および前記最大垂直成分を決定することをさらに含む、請求項６に記載のコンピュータ実施方法。
【請求項８】
前記画像フレームレートおよび所定の画像フレーム間隔に基づいて、前記前記第１の画像フレームと前記第２の画像フレームとの間の前記時間間隔を決定することをさらに含む、請求項７に記載のコンピュータ実施方法。
【請求項９】
前記第２の画像フレームを、前記第１の画像フレーム後に取得する、請求項１に記載のコンピュータ実施方法。
【請求項１０】
前記並進ベクトルは、前記複数の差分値のうちの最小差分値に対応する、請求項１に記載のコンピュータ実施方法。
【請求項１１】
車両に備え付けられた画像キャプチャデバイスにより、前記第１の画像フレームおよび前記第２の画像フレームを取得し、
前記第１の画像フレームおよび前記第２の画像フレームが前記車両の移動経路を写す、請求項１に記載のコンピュータ実施方法。
【請求項１２】
第１の画像フレームおよび第２の画像フレームを受信する画像処理モジュールと、
前記第１の画像フレームの第１の部分を選択して第１のサブ画像を取得し、かつ前記第２の画像フレームの第２の部分を選択して第２のサブ画像を取得する画像分割モジュールと、
前記第１のサブ画像および前記第２のサブ画像に別個に変換を実行して、それぞれ、第１の透視画像および第２の透視画像を取得する画像変換モジュールと、
前記第２の透視画像を調整して調整した透視画像を取得する動き補正モジュールと、
前記第１の透視画像と前記調整した画像との差異に対応する差分値を決定する画像差モジュールと、
前記第１の透視画像と複数の調整した透視画像との個々の差異それぞれに対応する複数の差分値を反復的に取得し、かつ前記複数の差分値のうちの１つに対応する、エゴモーションパラメータに関する並進ベクトルを決定するエゴモーションパラメータ決定モジュールと、を備えている、エゴモーションパラメータを決定するためのシステム。
【請求項１３】
前記エゴモーションパラメータ決定モジュールは、前記並進ベクトルを利用して前記エゴモーションパラメータに関する回転角を決定する、請求項１２に記載のシステム。
【請求項１４】
前記第１の透視画像および前記複数の調整した透視画像は、それぞれ、対応する画素値をその各々が有する複数の画素を含み、
前記画像差モジュールは、前記第１の透視画像および前記調整した透視画像における対応する画素値間の絶対差を合計して、前記差分値を決定する、請求項１２に記載のシステム。
【請求項１５】
前記並進ベクトルは水平成分および垂直成分を含み、
前記エゴモーションパラメータ決定モジュールは、第１の反復を実行して第１の複数の差分値を取得し、かつ第２の反復を実行して第２の複数の差分値を取得し、
前記第１の複数の差分値のうちの１つに対応する水平移動値、および前記第２の複数の差分値のうちの１つに対応する垂直移動値を決定し、かつ
前記並進ベクトルの前記水平成分として前記水平移動値を特定し、かつ前記並進ベクトルの前記垂直成分として前記垂直移動値を特定する、請求項１２に記載のシステム。
【請求項１６】
前記第１の反復および前記第２の反復を同時に実行する、請求項１５に記載のシステム。
【請求項１７】
前記エゴモーションパラメータ決定モジュールは、最大並進ベクトルの最大水平成分に基づく第１の間隔において前記第１の反復を実行し、かつ
前記最大並進ベクトルの最大垂直成分に基づく第２の間隔において前記第２の反復を実行する、請求項１５に記載のシステム。
【請求項１８】
前記最大並進ベクトルの前記最大水平成分および前記最大垂直成分は、所定の最高速度、所定の画像フレームレート、および前記第１の画像フレームと前記第２の画像フレームとの間の時間間隔に基づいて決定される、請求項１７に記載のシステム。
【請求項１９】
前記前記第１の画像フレームと前記第２の画像フレームとの間の前記時間間隔は、前記画像フレームレートおよび所定の画像フレーム間隔に基づいて決定される、請求項１８に記載のシステム。
【請求項２０】
前記第２の画像フレームを、前記第１の画像フレーム後に取得する、請求項１２に記載のシステム。
【請求項２１】
前記並進ベクトルは、前記複数の差分値のうちの最小差分値に対応する、請求項１２に記載のシステム。
【請求項２２】
前記画像処理モジュールは、車両に備え付けられた画像キャプチャデバイスと通信し、かつ、
前記画像キャプチャデバイスから前記第１の画像フレームおよび前記第２の画像フレームを受信し、
前記第１の画像フレームおよび前記第２の画像フレームは前記車両の移動経路を写す、請求項１２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エゴモーションに関するものであり、より詳細には、カメラに関する運動パラメータの概算に関するものである。
【背景技術】
【０００２】
エゴモーションは、環境内におけるカメラの三次元移動を意味する。エゴモーション概算は、カメラに保存された一連の画像に基づいた、環境内におけるカメラ移動の概算を意味する。エゴモーション概算は、コンピュータビジョンの分野、特に、三次元シーンの理解および再構成において重要なタスクである。シーンの理解および再構成は、例えば、車両および自動誘導式ロボットなどの可動機械のコンピュータビジョンベース操作にとって重要である。
【０００３】
シーンを理解または再構成するために、コンピュータビジョン技術を利用してシーンの画像フレームを分割する。しかしながら、カメラ移動中の画像分割は困難な作業となり得る。画像分割技術はカメラ移動を考慮する必要がある。このため、予備ステップとしてエゴモーションを概算することにより達成され得る。
【０００４】
既知のエゴモーション概算の一アプローチでは、一連の画像フレームにおける特徴点を認識、追跡および結びつける。しかしながら、特徴追跡は、処理における計算コストが高くなり得る。
【０００５】
既知の別のエゴモーション概算アプローチでは、例えば、路面上の車線マーカまたは文字列などの、画像フレームにおける目印を利用する。しかしながら、実際には、路面上の目立つ目印を常に利用できる訳ではない。
【０００６】
エゴモーションを概算するためのさらなる技術では、立体視を利用する。この技術では、環境内における画像フレームを取得するために、少なくとも２つのカメラを用いる。この結果、立体視を利用するアプローチは、エゴモーション概算におけるハードウェア費用を増大させる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
エゴモーションを概算するための、正確、高速かつコンピュータ的に安価なアプローチに対する要求がある。
【課題を解決するための手段】
【０００８】
エゴモーション概算システムを利用してエゴモーションパラメータを決定するためのコンピュータ実施方法を開示する。第１および第２の画像フレームを取得する。第１の画像フレームの第１の部分、および第２の画像フレームの第２の部分を選択し、それぞれ、第１のサブ画像および第２のサブ画像を取得する。第１のサブ画像および第２のサブ画像各々に変換を実行して、それぞれ、第１の透視画像および第２の透視画像を取得する。第２の透視画像を反復的に調整して、複数の調整した透視画像を取得する。第１の透視画像と調整した透視画像との個々の差異それぞれに対応する複数の差分値を決定する。エゴモーションパラメータに関する並進ベクトルを決定する。並進ベクトルは、複数の差分値のうちの１つに対応する。
【０００９】
また、エゴモーションパラメータを決定するためのシステムも開示する。画像処理モジュールが、第１の画像フレームおよび第２の画像フレームを受信する。画像分割モジュールが、第１の画像フレームの一部および第２の画像フレームの一部を選択して、それぞれ、第１のサブ画像および第２のサブ画像を取得する。画像変換モジュールが、第１のサブ画像および第２のサブ画像に別個に変換を実行して、それぞれ、第１の透視画像および第２の透視画像を取得する。動き補正モジュールが、第２の透視画像を調整して調整した透視画像を取得する。画像差モジュールが、第１の透視画像と調整した透視画像との差異に対応する差分値を決定する。エゴモーションパラメータ決定モジュールが、第１の透視画像と複数の調整した透視画像との個々の差異それぞれに対応する複数の差分値を反復的に取得する。さらに、エゴモーションパラメータ決定モジュールが、エゴモーションパラメータに関する並進ベクトルを決定する。並進ベクトルは、複数の差分値のうちの１つに対応する。
【００１０】
例えば、本願発明は以下の項目を提供する。
（項目１）
エゴモーション概算システムを利用してエゴモーションパラメータを決定するためのコンピュータ実施方法であって、
第１の画像フレームおよび第２の画像フレームを取得することと、
上記第１の画像フレームの第１の部分を選択して第１のサブ画像を取得し、かつ上記第２の画像フレームの第２の部分を選択して第２のサブ画像を取得することと、
上記第１のサブ画像および上記第２のサブ画像に変換を実行して、それぞれ、第１の透視画像および第２の透視画像を取得することと、
上記第２の透視画像を反復的に調整して複数の調整した透視画像を取得することと、
上記第１の透視画像と上記複数の調整した透視画像との個々の差異それぞれに対応する複数の差分値を決定することと、
上記複数の差分値のうちの１つに対応する、エゴモーションパラメータに関する並進ベクトルを決定することと、を含む、方法。
（項目２）
上記並進ベクトルを利用して、上記エゴモーションパラメータに関する回転角を決定することをさらに含む、上記項目に記載のコンピュータ実施方法。
（項目３）
上記第１の透視画像および上記複数の調整した透視画像は、それぞれ、対応する画素値をその各々が有する複数の画素を含み、
上記第１の透視画像および上記複数の調整した透視画像における対応する画素値間の絶対差を合計して、上記複数の差分値それぞれを決定することをさらに含む、上記項目のいずれか一項に記載のコンピュータ実施方法。
（項目４）
上記並進ベクトルは水平成分および垂直成分を含み、
第１の反復を実行して第１の複数の差分値を取得し、かつ第２の反復を実行して第２の複数の差分値を取得することと、
上記第１の複数の差分値のうちの１つに対応する水平移動値を決定し、かつ上記第２の複数の差分値のうちの１つに対応する垂直移動値を決定することと、
上記並進ベクトルの上記水平成分として上記水平移動値を特定し、かつ上記並進ベクトルの上記垂直成分として上記垂直移動値を特定することと、をさらに含む、上記項目のいずれか一項に記載のコンピュータ実施方法。
（項目５）
上記第１の反復および上記第２の反復を同時に実行する、上記項目のいずれか一項に記載のコンピュータ実施方法。
（項目６）
上記第１の反復を、最大並進ベクトルの最大水平成分に基づく第１の間隔において実行し、
上記第２の反復を、最大並進ベクトルの最大垂直成分に基づく第２の間隔において実行する、上記項目のいずれか一項に記載のコンピュータ実施方法。
（項目７）
所定の最高速度、所定の画像フレームレート、および上記第１の画像フレームと上記第２の画像フレームとの間の時間間隔に基づいて、上記最大並進ベクトルの上記最大水平成分および上記最大垂直成分を決定することをさらに含む、上記項目のいずれか一項に記載のコンピュータ実施方法。
（項目８）
上記画像フレームレートおよび所定の画像フレーム間隔に基づいて、上記第１の画像フレームと上記第２の画像フレームとの間の上記時間間隔を決定することをさらに含む、上記項目のいずれか一項に記載のコンピュータ実施方法。
（項目９）
上記第２の画像フレームを、上記第１の画像フレーム後に取得する、上記項目のいずれか一項に記載のコンピュータ実施方法。
（項目１０）
上記並進ベクトルは、上記複数の差分値のうちの最小差分値に対応する、上記項目のいずれか一項に記載のコンピュータ実施方法。
（項目１１）
車両に備え付けられた画像キャプチャデバイスにより、上記第１の画像フレームおよび上記第２の画像フレームを取得し、
上記第１の画像フレームおよび上記第２の画像フレームが上記車両の移動経路を写す、上記項目のいずれか一項に記載のコンピュータ実施方法。
（項目１２）
第１の画像フレームおよび第２の画像フレームを受信する画像処理モジュールと、
上記第１の画像フレームの第１の部分を選択して第１のサブ画像を取得し、かつ上記第２の画像フレームの第２の部分を選択して第２のサブ画像を取得する画像分割モジュールと、
上記第１のサブ画像および上記第２のサブ画像に別個に変換を実行して、それぞれ、第１の透視画像および第２の透視画像を取得する画像変換モジュールと、
上記第２の透視画像を調整して調整した透視画像を取得する動き補正モジュールと、
上記第１の透視画像と上記調整した画像との差異に対応する差分値を決定する画像差モジュールと、
上記第１の透視画像と複数の調整した透視画像との個々の差異それぞれに対応する複数の差分値を反復的に取得し、かつ上記複数の差分値のうちの１つに対応する、エゴモーションパラメータに関する並進ベクトルを決定するエゴモーションパラメータ決定モジュールと、を備えている、エゴモーションパラメータを決定するためのシステム。
（項目１３）
上記エゴモーションパラメータ決定モジュールは、上記並進ベクトルを利用して上記エゴモーションパラメータに関する回転角を決定する、上記項目に記載のシステム。
（項目１４）
上記第１の透視画像および上記複数の調整した透視画像は、それぞれ、対応する画素値をその各々が有する複数の画素を含み、
上記画像差モジュールは、上記第１の透視画像および上記調整した透視画像における対応する画素値間の絶対差を合計して、上記差分値を決定する、上記項目のいずれか一項に記載のシステム。
（項目１５）
上記並進ベクトルは水平成分および垂直成分を含み、
上記エゴモーションパラメータ決定モジュールは、第１の反復を実行して第１の複数の差分値を取得し、かつ第２の反復を実行して第２の複数の差分値を取得し、
上記第１の複数の差分値のうちの１つに対応する水平移動値、および上記第２の複数の差分値のうちの１つに対応する垂直移動値を決定し、かつ
上記並進ベクトルの上記水平成分として上記水平移動値を特定し、かつ上記並進ベクトルの上記垂直成分として上記垂直移動値を特定する、上記項目のいずれか一項に記載のシステム。
（項目１６）
上記第１の反復および上記第２の反復を同時に実行する、上記項目のいずれか一項に記載のシステム。
（項目１７）
上記エゴモーションパラメータ決定モジュールは、最大並進ベクトルの最大水平成分に基づく第１の間隔において上記第１の反復を実行し、かつ
上記最大並進ベクトルの最大垂直成分に基づく第２の間隔において上記第２の反復を実行する、上記項目のいずれか一項に記載のシステム。
（項目１８）
上記最大並進ベクトルの上記最大水平成分および上記最大垂直成分は、所定の最高速度、所定の画像フレームレート、および上記第１の画像フレームと上記第２の画像フレームとの間の時間間隔に基づいて決定される、上記項目のいずれか一項に記載のシステム。
（項目１９）
上記第１の画像フレームと上記第２の画像フレームとの間の上記時間間隔は、上記画像フレームレートおよび所定の画像フレーム間隔に基づいて決定される、上記項目のいずれか一項に記載のシステム。
（項目２０）
上記第２の画像フレームを、上記第１の画像フレーム後に取得する、上記項目のいずれか一項に記載のシステム。
（項目２１）
上記並進ベクトルは、上記複数の差分値のうちの最小差分値に対応する、上記項目のいずれか一項に記載のシステム。
（項目２２）
上記画像処理モジュールは、車両に備え付けられた画像キャプチャデバイスと通信し、かつ、
上記画像キャプチャデバイスから上記第１の画像フレームおよび上記第２の画像フレームを受信し、
上記第１の画像フレームおよび上記第２の画像フレームは上記車両の移動経路を写す、上記項目のいずれか一項に記載のシステム。
【００１１】
（摘要）
エゴモーション概算システムを利用してエゴモーションパラメータを決定するためのコンピュータ実施方法を開示する。第１および第２の画像フレームを取得する。第１の画像フレームの第１の部分、および第２の画像フレームの第２の部分を選択し、それぞれ、第１のサブ画像および第２のサブ画像を取得する。第１のサブ画像および第２のサブ画像各々に変換を実行して、それぞれ、第１の透視画像および第２の透視画像を取得する。第２の透視画像を反復的に調整して、複数の調整した透視画像を取得する。第１の透視画像と調整した透視画像との個々の差異それぞれに対応する複数の差分値を決定する。エゴモーションパラメータに関する並進ベクトルを決定する。並進ベクトルは、複数の差分値のうちの１つに対応する。
【００１２】
本発明は、以下の図面を参照してより良く理解され得る。図面内の構成要素は必ずしも原寸大ではなく、むしろ、本発明の原理を示すために誇張される。図面における同等の参照番号は、異なる図面全体を通じて対応する部材を指す。
【図面の簡単な説明】
【００１３】
【図１】エゴモーション概算システムの実施例を示す図である。
【図２】画像フレーム対の一例を示す図である。
【図３】それぞれ、図２に示す例の画像フレーム対の透視画像を示す上面図である。
【図４】動き補正を実行していない、図３に示す透視画像の上面図に対応する差分画像を示すである。
【図５】動き補正を実行した、図３に示す透視画像の上面図に対応する差分画像を示すである。
【図６】エゴモーションパラメータを決定するための例示の方法ステップを示すフローチャートである。
【発明を実施するための形態】
【００１４】
記述するシステムおよび方法を用いて、カメラに関するエゴモーションパラメータを決定できる。このシステムおよび方法は、一例として、車両に取り付けられており、車両の移動経路を写した画像フレームを保存するカメラについて記述する。ただし、本願の教示が、比較的遅い速度（例えば、車両、移動ロボットなどの速度）で移動するあらゆるカメラ付き可動機械に適用できることが理解される。示す例では、この比較的遅い移動速度は、時速約１０〜２０キロメートル（ｋｍ／ｈ）、または時速約６．２〜１２．４マイル（ｍｐｈ）である。
【００１５】
エゴモーションパラメータは、カメラの移動距離および方向、すなわち、水平および垂直移動経路に沿った移動距離および方向を意味する。水平および垂直移動経路は、それぞれ、ｘ軸およびｙ軸に対応し得る。従って、この例では、エゴモーションパラメータは、水平成分ｔｘおよび垂直成分ｔｙを含む並進ベクトル（ｔｘ，ｔｙ）を含む。水平成分ｔｘおよび垂直成分ｔｙは、それぞれ、水平ｘ軸および垂直ｙ軸に沿った（画像画素内の）平行移動を定義する。エゴモーションパラメータは回転角θをさらに含み得る。エゴモーションパラメータの概算は、例えば、カメラ補助車両ナビゲーション（駐車、後退、障害物検知など）、自動誘導式ロボット操縦、姿勢評価、三次元シーン再構成などのコンピュータビジョンアプリケーションにおける予備ステップとして行われ得る。
【００１６】
一般に、また、以下により詳細に記載するように、エゴモーション概算システムは、カメラに保存された画像フレーム間の差異の比較を利用して動作する。カメラ付き車両において、例えば、エゴモーション概算システムは、車両経路を写した一連の画像フレームのうちの２つの画像フレーム間の差異を比較することにより、運動パラメータを決定する。エゴモーション概算システムは、この例では、比較的単純な算術演算、特に、加算および減算により画像を処理する。この演算により、例えば、図形処理ユニット（ＧＰＵ）およびフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの専用ハードウェアを用いた実施に適したシステムが有利にも形成される。このような専用ハードウェアを用いた実施では、運動パラメータを決定するための画像処理を、比較的高速で実行できる。
【００１７】
図１を参照し、エゴモーション概算システム１００の実施例を示す。例示のエゴモーション概算システム１００は、画像キャプチャデバイス１０２および出力デバイス１０４と通信する。画像キャプチャデバイス１０２は、画像フレームを、エゴモーションパラメータを決定するための処理を行うエゴモーション概算システム１００に送信できる。出力デバイス１０４は、例えば、エゴモーションパラメータをユーザに表示する表示デバイスでもよく、代替的に、一部のアプリケーションにおいてエゴモーションパラメータを利用する別のシステム（例えば、可動機械の制御操作のためにエゴモーションパラメータを用いる駆動制御システム）でもよい。
【００１８】
エゴモーション概算システム１００は、画像キャプチャデバイス１０２が保存した一対の画像フレームを処理して運動パラメータを決定できる。画像キャプチャデバイス１０２は、毎秒３０フレーム（ｆｐｓ）などの所定のフレームレートにおいて画像フレームを保存できる。３０ｆｐｓでは、連続する画像フレーム間の時間間隔は、２フレーム÷毎秒３０フレーム、すなわち、約０．０６秒（ｓ）である。この例では、エゴモーション概算システム１００は、比較的遅い速度（１０〜２０ｋｍ／ｈ）で移動する画像キャプチャデバイス１０２に関するエゴモーションパラメータを決定する。このため、エゴモーション概算システムは、可動機械の所定の最高速度を、例えば２０ｋｍ／ｈなどに仮定できる。エゴモーション概算システム１００は、仮定した最高速度、および画像フレーム間の時間に基づいて、連続する画像フレーム間を可動機械が移動可能な（画素単位の）最大距離を決定できる。
【００１９】
例えば、画像キャプチャデバイス１０２が、連続する画像フレーム間が約０．０６秒に相当する３０ｆｐｓで動作し、仮定される最高速度が２０ｋｍ／ｈである場合には、連続する画像フレーム間を可動機械が移動可能な最大距離は、（２０ｋｍ／ｈ÷３６００ｓ）×０．０６ｓ×１０００ｍ、すなわち、約０．３３３３メートル（ｍ）である。
【００２０】
一部の実施では、エゴモーション概算システム１００は、全ての画像フレームは処理せず、また、処理用に選択されるフレームは、所定の画像フレーム間隔に応じて決められ得る。例えば、画像フレーム間隔が１０に設定された場合には、エゴモーション概算システム１００は、第１の組として選択された画像フレーム［１，１０］、第２の組として選択された画像フレーム［１０，２０］などの処理用に、画像フレーム［１，１０，２０，３０〜］を選択できる。他の画像フレーム間隔を選択的に利用してもよい。
【００２１】
従って、エゴモーション概算システム１００は、連続する画像フレーム間のフレーム間隔および最大距離に基づいて、１つの選択された画像フレームとその次に選択された画像フレームとの間を画像キャプチャデバイス１０２が移動可能な最大距離を決定できる。前述の例、すなわち、仮定した最高速度２０ｋｍ／ｈ、さらには３０ｆｐｓにおいて保存された画像、および画像フレーム間隔を１０に設定した場合には、選択された画像フレーム間の最大距離は約１０×０．３３３３ｍ、すなわち約３．３３３ｍとなる。画像フレーム対間の最大距離は、それ故、最大水平成分Ｔｘおよび最大垂直成分Ｔｙを含む最大並進ベクトル（Ｔｘ，Ｔｙ）に相当し得る。最大水平成分Ｔｘおよび最大垂直成分Ｔｙは、それぞれ、選択された画像フレーム間を、水平軸および垂直軸に沿って可動機械が移動可能な（画素単位の）最大距離を表す。エゴモーション概算システム１００は、この例では、より詳細は下記するように、最大並進ベクトルを利用してエゴモーションパラメータを決定する。
【００２２】
図１に示すエゴモーション概算システム１００は、エゴモーションパラメータを決定するための以下に示す種々のモジュールを含む。例えば、画像キャプチャデバイスから受信した画像フレームを処理するための画像処理モジュール１０６、処理画像に基づいてエゴモーションパラメータを決定するためのエゴモーションパラメータ決定モジュール１０８、および画像フレームの処理およびエゴモーションパラメータの決定に関する命令を実行するための１つ以上の処理ユニット１１２を有する処理モジュール１１０を含む。図１に示すエゴモーション概算システム１００は、さらに、他の追加ハードウェア（不図示）、例えば、エゴモーションパラメータに関連する画像フレームおよびデータを記憶するためのメモリユニットなどを含んでもよい。
【００２３】
画像処理モジュール１０６は、画像キャプチャデバイスから受信した画像フレームを処理するための種々のモジュールを含む。この例では、画像処理モジュール１０６は、画像フレームを個々のサブ画像に分割するための画像分割モジュール１１４、サブ画像に射影変換を実行して、透視画像を取得するための画像変換モジュール１１６、画像キャプチャデバイスの移動を相殺するように、透視画像における幾何学的平行移動を実行する動き補正モジュール１１８、および透視画像間の差異を計算するための画像差モジュール１２０を含む。
【００２４】
画像処理モジュール１０６は一対の選択された画像フレームを処理する。エゴモーション概算システム１００は、画像フレームの解析に基づいてエゴモーションパラメータを決定できる。図２に、選択された画像フレーム対１２２の一例を示す。２つの選択された画像フレーム１２４および１２６は、画像キャプチャデバイス１０２が備え付けられた車両の移動経路を示す。画像キャプチャデバイス１０２は、車両移動中に、図２に示す例示の画像フレーム１２４および１２６を保存した。車両の移動中に画像フレーム１２４および１２６を保存したため、後に保存した画像フレーム１２６における被写体は、先に保存した画像フレーム１２４におけるそれらの位置からわずかに移動している。この例では、エゴモーション概算システム１００は、以下により詳細に記載するように、エゴモーションパラメータを決定する際に、画像フレーム間を移動した被写体を利用する。
【００２５】
図１に示す画像分割モジュール１１４は、画像フレームを分割（または、分離）する。画像分割モジュール１１４は、次に、各画像フレームの一部をサブ画像として選択する。例えば、画像分割モジュール１１４は、一例として図２に示すように、画像フレームを、上部サブ画像１２４ａおよび１２６ａと下部サブ画像１２４ｂおよび１２６ｂとに分離できる。この例では、最も多くの路面を有するサブ画像を重要なサブ画像として指定し、その後の画像処理を、重要なサブ画像に対して実行する。通常では、下部サブ画像がより多くの路面を含み、重要なサブ画像として指定される。図２に示すように、例示の画像フレーム１２４および１２６は、それぞれ、上部サブ画像１２４ａおよび１２６ａと下部サブ画像１２４ｂおよび１２６ｂとに分離され、各下部サブ画像がより多くの路面を含む。従って、この例では、下部サブ画像１２４ｂおよび１２６ｂを重要なサブ画像として選択し得る。
【００２６】
画像変換モジュール１１６は、重要なサブ画像各々に透視変換を実行する。透視変換により、重要なサブ画像１２４および１２６各々に関する透視画像の上面図が得られる。図３を参照し、図２に示す重要なサブ画像１２４ｂおよび１２６ｂそれぞれに対応する透視画像１２８および１３０の２つの上面図を示す。
【００２７】
ホモグラフィ理論に従えば、透視変換により、上面図における透視画像の被写体の全てではないが、一部は変形する。例えば、透視変換により、路面と同一平面上の被写体（例えば、車線マーカ、塗料片、文字列、影、照明など）は変形しない。図３に示す上面図における透視画像の路面と同一平面上の被写体には、影１３２および光線１３４が含まれる。対照的に、透視変換により、路面と同一平面上にない被写体、すなわち、路面と垂直にそこから立ち上がる被写体（例えば、柱、ポール、トラフィックコーン、木、人など）は変形し得る。図３に示す上面図における透視画像において同一平面上にない被写体には、路面の片側におけるトラフィックコーン１３６および低木１３８が含まれる。路面から立ち上がる被写体は、透視変換の結果として、例えば、引き延ばされ得る。さらに、カメラ運動に起因して、透視変換により、同一平面上にない被写体はさまざまな程度で変形し得る。エゴモーション概算システム１００は、さらに、以下により詳細に記載するように、エゴモーションパラメータを決定する際に、これらのホモグラフィック現象を利用する。
【００２８】
図１に示すエゴモーション概算システム１００は、上面図における透視画像間の差異を計算する画像差モジュール１２０をさらに含む。この例では、透視画像はラスター画像であり、それ故、各画素が対応する画素値を有する画素格子から成る。差分画像は、別の画像における対応する画素値から、１つの画像における光の三原色（ＲＧＢ）値などの画素値各々を個々に減じた結果生じた画像を意味する。差分画像の画素に関する値は、それ故、２つの画像の対応する画素間の差異でもよい。対応する画素の画素値が同じである場合には、結果生じる画素値間の差異はゼロであり、差分画像において黒色画素として示され得る。それ故、２つの画像が同一である場合には、２つの画像における個々の画素値が差分値ゼロという同一の結果をもたらすため、結果生じる差分画像は完全な黒色である。しかしながら、２つの画像がわずかに異なる場合には、２つの画像における対応する画素間の差異が非ゼロであるため、差分画像は非黒色画素をいくつか含み得る。対応する画素値間の差異に非ゼロの値がある場合には、差分画像は、非黒色画素としてアーチファクトを含み得る。
【００２９】
この例では、画像キャプチャデバイスが保存した選択された画像フレームは、画像キャプチャデバイスの運動に起因して互いにわずかに相違し得る。前述したように、その後の画像フレームにおける被写体のいくつかは位置を変える。この結果、選択された画像フレームにおける差分画像は、非黒色画素としてアーチファクトを含み得る。図４に、図３に示す上面図における透視画像１２８および１３０に関する差分画像１４０を示す。図４に示すように、差分画像１４０における路面１４２の大部分は黒色に見える。図３に示す画像フレーム１２８および１３０における他の被写体は、その後の画像フレームにおける被写体の位置ずれに起因して、図４に示す差分画像においてアーチファクト（例えば、灰色画素）となる。差分画像１４０は、この例では、同一平面上にある被写体およびない被写体の両方にアーチファクトを含む。これらの被写体は、路面におけるトラフィックコーン１４４、路面の片側における低木１４６、路面上の影１４８、および路面上の光線１５０を含む。
【００３０】
さらに、画像間の差異は、単一値Ｉｍｇｄｉｆｆとして数値化され得る。２つの画像間の差異は、画像における対応する画素のＲＧＢ値同士の絶対差の和として数値化され得る。２つの画像、画像Ａおよび画像Ｂにおける画素間の絶対差は、以下の式で計算され得る。
Ｐｘｄｉｆｆ＝｜ＲＡ−ＲＢ｜＋｜ＧＡ−ＧＢ｜＋｜ＢＡ−ＢＢ｜      （１）
ここで、ＲＡおよびＲＢは、それぞれ、画像Ａおよび画像Ｂにおける対応する画素の赤色要素であり、ＧＡおよびＧＢは、それぞれ、画像Ａおよび画像Ｂにおける対応する画素の緑色要素であり、ＢＡおよびＢＢは、それぞれ、画像Ａおよび画像Ｂにおける対応する画素の青色要素である。
【００３１】
各画素値Ｐｘｄｉｆｆ同士の絶対差を合計して、差分画像における差分値Ｉｍｇｄｉｆｆ全体を取得できる。従って、２つの画像、画像Ａおよび画像Ｂ間の差分画像における全体値は、以下の式で計算され得る。
Ｉｍｇｄｉｆｆ＝ΣＰｘｄｉｆｆ      （２）
エゴモーション概算システム１００は、この例では、画像フレームにおける被写体（および、それらの対応する画素）を位置合わせするために、画像フレーム間の画像キャプチャデバイスの移動を相殺することにより、上面図における透視画像間の差異量、それ故、Ｉｍｇｄｉｆｆ値を低減し得る。画像キャプチャデバイスの移動の相殺、および被写体の位置合わせにより、上面図における透視画像の差分画像のアーチファクト量、それ故、画像間の差異を数値化する差分値Ｉｍｇｄｉｆｆを減少できる。
【００３２】
エゴモーション概算システム１００は、この例では、動き補正モジュール１１８を含み、これは、画像キャプチャデバイスの移動を相殺し、上面図における透視画像の被写体を位置合わせするように上面図における透視画像を調整する。動き補正モジュール１１８は、この例では、画素並進ベクトル（ｐ，ｑ）を用いる。この例では、ｐは、水平方向（ｘ軸）における平行移動を定義する水平移動値であり、ｑは、垂直方向（ｙ軸）における平行移動を定義する垂直移動値である。動き補正モジュール１１８は、画素並進ベクトル（ｐ，ｑ）を用いて、上面図における透視画像の１つに含まれる画素を、水平方向にｐ画素、かつ垂直方向にｑ画素、平行移動できる。上面図における透視画像の１つに含まれる画素を平行移動することにより、上面図における透視画像の被写体のいくつかと、対応する上面図における透視画像の被写体、特に、路面と同一平面上の被写体とを位置合わせできる。画像キャプチャデバイスの運動の相殺、および上面図における透視画像の被写体のいくつかの位置合わせにより、位置合わせした被写体を、前述のように、差分画像において黒色に変化させることができる。これにより、対応するいくつかの画素間の差異はゼロとなり、アーチファクトの一部は生じない。
【００３３】
前述したように、上面図における透視画像の被写体のいくつか、特に、同一平面上にない路面から立ち上がる被写体は、透視変換の結果として被写体が受ける変形度の違いに起因して、正確に位置合わせされない場合がある。図５を参照し、動き補正を実行した、上面図における透視画像の差分画像１５２を示す。図５に示すように、トラフィックコーン１４４のアーチファクト、および低木１４６のアーチファクト（共に、同一平面上にない被写体）は、動き補正後でさえも差分画像内に依然として示される。しかしながら、路面と同一平面上の被写体は、路面の残りの部分と同様に黒色に変化し、動き補正を実行した差分画像には示されない。特に、動き補正を実行していない図４に示す差分画像１４０に見られる影１４８および光線１５０の大部分は、動き補正を実行した図５に示す差分画像１５２では黒色に変化する（および、路面１４２の黒色と混ざる）。それ故、動き補正を実行していない図４に示す差分画像１４０と、動き補正を実行した図５に示す差分画像１５２との比較により、動き補正が画像間の差異を最小化できることが示される。動き補正を実行した差分画像１５２は、動き補正を実行していない差分画像１４０よりもアーチファクトが少なく、この結果、その差分値Ｉｍｇｄｉｆｆ全体はより小さくなる。従って、動き補正モジュール１１８は、画像キャプチャデバイス１０２の運動を相殺することにより、差分値Ｉｍｇｄｉｆｆを最小化できる。
【００３４】
それ故、この結果、差分値Ｉｍｇｄｉｆｆ全体を最小化する、画素並進ベクトル値（ｐ，ｑ）のいくつかの組み合わせが存在する。換言すれば、一組の画像フレームそれぞれに対応する一組の上面図における透視画像において、差分画像におけるアーチファクトを最小化するいくつかの画素並進ベクトルが存在する。最小差分値Ｉｍｇｄｉｆｆに対応する画素並進ベクトル値（ｐ，ｑ）は、画像キャプチャデバイスにより、画像フレーム間を実際に移動した物理的距離に対応する画素並進ベクトル（ｔｘ，ｔｙ）として特定され得る。並進ベクトル（ｔｘ，ｔｙ）に対応する物理的距離は、カメラの固有パラメータ（例えば、焦点距離、画像センサ構成、および主点）を用いて決定できる。
【００３５】
それ故、差分値Ｉｍｇｄｉｆｆを最小化する画素並進ベクトル（ｐ，ｑ）個々の値を決定するために、エゴモーション概算システム１００は、ｐ値およびｑ値について、それぞれ、画像フレーム間を車両が移動可能な最大距離を表す最大画素移動ＴｘおよびＴｙまで考慮することができる。
【００３６】
実質的には、エゴモーション概算システム１００は、この例では、以下に示す強引なアプローチを用いて、並進ベクトル（ｔｘ，ｔｙ）値を特定する。このアプローチは、画像フレーム間を画像キャプチャデバイスが移動し得る距離を相殺するための、最大画素距離（Ｔｘ，Ｔｙ）まで増大するｐおよびｑの増分値を用いた、上面図における透視画像の１つに含まれる画素の反復的な平行移動、画素並進ベクトル（ｐ，ｑ）ごとのＩｍｇｄｉｆｆ値の決定、およびＩｍｇｄｉｆｆの最小値に対応する画素並進ベクトル（ｐ，ｑ）の決定を含む。Ｉｍｇｄｉｆｆの最小値に対応する画素並進ベクトル（ｐ，ｑ）は、画像フレーム間を画像キャプチャデバイスが実際に移動した物理的距離に対応する並進ベクトル（ｔｘ，ｔｙ）として特定され得る。この値を、カメラの固有パラメータと併せて用いて、画像キャプチャデバイスが実際に移動した物理的距離を計算できる。
【００３７】
図１に示すように、エゴモーション概算システム１００は、この例では、エゴモーションパラメータを決定するエゴモーションパラメータ決定モジュール１０８を含む。エゴモーションパラメータ決定モジュール１０８は、前述したような画素並進ベクトル値（ｐ，ｑ）を反復して用い、動き補正モジュール１１８および画像差モジュール１２０を利用して、上面図における透視画像における差分値Ｉｍｇｄｉｆｆを最小化する特別な画素並進ベクトルを特定できる。
【００３８】
一実施では、エゴモーションパラメータ決定モジュール１０８は、例えば、［−Ｔｘ，Ｔｘ］の間の各ｐ値と、［０，Ｔｙ］の間の各ｑ値とを対にすることができる。この例の実施は、以下のネストされたループにより特徴付けることができる。
ｆｏｒ（ｐ＝−Ｔｘ；ｐ≦Ｔｘ；ｐ＋＋）
ｆｏｒ（ｑ＝０；ｑ≦Ｔｙ；ｑ＋＋）
ａｒｇｍｉｎ  Ｉｍｇｄｉｆｆ
ただし、別の例の実施では、エゴモーションパラメータ決定モジュール１０８は、並列処理を用いることにより、画像差分値の最小値Ｉｍｇｄｉｆｆに対応する画素並進ベクトル値（ｐ，ｑ）を特定する効率および処理時間を改善できる。
【００３９】
この代替例の実施では、エゴモーションパラメータ決定モジュール１０８は、画素並進ベクトル値ｐおよびｑ各々を同時に、反復して用いることができる。各反復処理は、同時処理を実行するために、例えば、別個の処理ユニット１１２により実行され得る。
【００４０】
第１の反復では、エゴモーションパラメータ決定モジュール１０８は、ｑ値をゼロに設定し、［−Ｔｘ，Ｔｘ］の間のｐを反復的に増大することにより、画素並進ベクトル（ｐ，ｑ＝０）ごとのＩｍｇｄｉｆｆ値を決定する。Ｉｍｇｄｉｆｆの最小値に対応するｐ値は、運動パラメータの水平成分ｔｘに対応する値である。並列処理アプローチにおけるこの第１の反復は、この例では、以下のループにより特徴付けられ得る。
ｆｏｒ（ｐ＝−Ｔｘ，ｑ＝０；ｐ≦Ｔｘ；ｐ＋＋）
ａｒｇｍｉｎ  Ｉｍｇｄｉｆｆ
第２の反復では、エゴモーションパラメータ決定モジュール１０８は、ｐ値をゼロに設定し、［０，Ｔｙ］の間のｑを反復的に増大することにより、画素並進ベクトル（ｐ＝０，ｑ）ごとのＩｍｇｄｉｆｆ値を決定する。Ｉｍｇｄｉｆｆの最小値に対応するｑ値は、運動パラメータの垂直成分ｔｙに対応する値である。並列処理アプローチにおけるこの第２の反復は、この例では、以下のループにより特徴付けられ得る。
ｆｏｒ（ｐ＝０，ｑ＝０；ｑ≦Ｔｙ；ｑ＋＋）
ａｒｇｍｉｎ  Ｉｍｇｄｉｆｆ
これらの例に示すように、エゴモーションパラメータ決定モジュール１０８は、［−Ｔｘ，Ｔｘ］の間のｐ、および［０，Ｔｙ］の間のｑを反復して用いる。これは、画像フレーム（図２に示す１２４および１２６）の基準フレーム、および画像キャプチャデバイス１０２の可能な移動距離に応じて用いられる。前述したように、画像キャプチャデバイス１０２は、可動機械に備え付けられ、可動機械の移動経路を写した画像を保存できる。画像フレームに対してｘｙ軸を設定すると、可動機械が左右に移動することにより、その動きに応じて、画像フレームが水平軸に沿い左右に移動することが理解される。換言すれば、水平軸に沿う移動方向は２つある。それ故、移動する最大距離を考慮すると、可動機械は左（−Ｔｘ）または右（Ｔｘ）に極限まで移動できる。従って、エゴモーションパラメータ決定モジュール１０８は、この例では、水平方向の左右両方、すなわち、［−Ｔｘ，Ｔｘ］の間において、差分値Ｉｍｇｄｉｆｆを最小化する画素並進ベクトル（ｐ，ｑ）を検索する。対照的に、可動機械が経路に沿って移動する場合には、前方または後方いずれかの、１つの移動方向のみを移動する。従って、エゴモーションパラメータ決定モジュール１０８は、垂直方向に沿う一方向、すなわち、［０，Ｔｙ］の間において、差分値Ｉｍｇｄｉｆｆを最小化する画素並進ベクトル（ｐ，ｑ）のみを検索する。
【００４１】
各反復は、図１に示す個々の処理ユニットにおいて同時に処理され得る。さらに、前述の方程式（１）および（２）に示すように、画像差モジュール１２０およびエゴモーションパラメータ決定モジュール１０８は、この例では、加算および減算操作を利用して、差分値Ｉｍｇｄｉｆｆを算出する。この結果、Ｉｍｇｄｉｆｆ値の算出は、比較的高速の加算および減算操作用に設計された、例えば、ＧＰＵおよびＦＰＧＡなどの専用ハードウェアを用いて実行され得る。
【００４２】
エゴモーションパラメータ決定モジュール１０８は、エゴモーションパラメータに関する並進ベクトル（ｔｘ，ｔｙ）を取得した後に、さらに、画像キャプチャデバイス１０２の移動により生じた回転角θを決定できる。この例では、エゴモーションパラメータ決定システムは、逆正接三角関数を用いた以下の式により回転角θを決定できる。
【００４３】
θ−ｔａn−１（ｔｙ／ｔｘ）      （３）
このような方法で、エゴモーション概算システム１００は、並進ベクトル（ｔｘ，ｔｙ）および回転角θを含む、画像キャプチャデバイス１０２の移動を表現するエゴモーションパラメータを生成できる。運動パラメータは、その後、例えば、カメラ補助車両ナビゲーション（例えば、駐車、後退、障害物検知）、自動誘導式ロボット操縦、姿勢評価、および三次元シーン再構成などの種々の用途に用いられ得る。
【００４４】
図６を参照し、エゴモーションパラメータを決定するための例示の方法ステップのフローチャート１５４を示す。最初に、画像キャプチャデバイスは一対の画像フレームを保存する（ステップ１５６）。前述のように、画像フレーム間隔（例えば、１０の画像フレーム間隔）に応じて、処理用に選択される画像フレームを決定し得る。画像フレームレート（例えば、３０ｆｐｓ）、および画像フレーム間隔（例えば、１０）に基づいて、選択された画像フレーム間の時間間隔を決定する（ステップ１５８）。例えば、３０ｆｐｓ（連続する画像フレーム間が０．０６秒）およびフレーム間隔が１０である場合には、選択された画像フレーム間の時間間隔は、約０．６秒（０．０６秒×１０＝０．６秒）となる。選択された画像フレーム間の時間間隔、および仮定した最高速度（例えば、２０ｋｍ／ｈ）に基づいて、選択された画像フレーム間を画像キャプチャデバイスが移動可能な最大距離を決定する（ステップ１６０）。例えば、仮定した最高速度が２０ｋｍ／ｈ、および選択された画像フレーム間の時間間隔が０．６秒である場合には、最大距離は約３．３３３メートル（０．６秒×２０ｋｍ／ｈ＝３．３３３メートル）となる。最大並進ベクトル（Ｔｘ，Ｔｙ）の水平および垂直成分は、最大距離に対応する値に設定できる。
【００４５】
次に、選択された画像フレームを、別個の上部サブ画像および下部サブ画像に分割する（ステップ１６２）。次に、各画像フレームのうちの個々の重要なサブ画像を特定する（ステップ１６４）。前述のように、重要なサブ画像は、最も多くの路面を含むサブ画像であり、通常では、画像フレームの下部サブ画像である。重要なサブ画像をさらに処理して運動パラメータを決定する。
【００４６】
各サブ画像に透視変換を実行して、個々の上面図における透視画像を取得する（ステップ１６６）。透視画像の上面図を取得すると、反復検索を実行して、上面図における透視画像の１つに含まれる画素を平行移動させるために用い得る画素並進ベクトル（ｐ，ｑ）のｐ値およびｑ値を決定し、上面図における透視画像間の差分値を最小化する。
【００４７】
前述のように、ネストされた反復を利用することにより、［−Ｔｘ，Ｔｘ］の間の各ｐ値を、［０，Ｔｙ］の間の各ｑ値と対にできる。さらに、比較的消費時間が短く、または計算コストが高くなり得る代替的アプローチを選択的に利用してもよい。図６に示す例示のステップは、各反復処理を同時に行うことにより、効率を改善し、画像差分値の最小値を得る画素並進ベクトル値（ｐ，ｑ）の決定に必要な時間を短縮する代替的アプローチである。図３において、ｐの値を決定するステップ１６８〜１８０と、ｑの値を決定するステップ１８４〜１９６とは、（例えば、別々の処理ユニットで）並列処理される。
【００４８】
同時に処理され得る第１の反復（ステップ１６８〜１８０）は、ｐ＝−Ｔｘおよびｑ＝０と設定することにより開始される（ステップ１６８）。次に、上面図における透視画像の１つに含まれる画素を、画素並進ベクトル（ｐ，ｑ）を利用して平行移動させる（ステップ１７０）。前述したように、上面図における透視画像の１つに含まれる画素を平行移動して、上面図における透視画像の被写体のいくつかを位置合わせし得る。ただし、ｐ値およびｑ値に基づいて、被写体のいくつかを概算で位置合わせしてもよい。この結果として生じる差分画像は、多少のアーチファクトを含み得、被写体の位置合わせの程度に応じて、画像差分値はより大きく、または小さくなる。この例示の並列処理アプローチでは、画像差分値の最小値を得るｐ値は、運動パラメータの並進ベクトル（ｔｘ，ｔｙ）のうちの正確な水平成分ｔｘに対応する値である。
【００４９】
画素並進ベクトル（ｐ，ｑ）を用いて、上面図における透視画像の１つを平行移動した後に、前述の方程式（１）および方程式（２）に従い、上面図における透視画像の差分値を決定する（ステップ１７２）。最新の画素並進ベクトル（ｐ，ｑ）の差分値が画像差分値の最小値である場合には（ステップ１７４）、ｔｘをｐ値に設定する（ステップ１７６）。画像差分値が最小値ではない場合には、反復は次のｐ値に進む。前述したように、第１の反復は、この例では、［−Ｔｘ，Ｔｘ］の間のｐ値を考慮する。ここで、Ｔｘは、選択された画像フレーム間を画像キャプチャデバイスが移動可能な画素単位の最大距離である。それ故、ｐ値がＴｘ値以下であるか否かを決定する（ステップ１７８）。ｐ値がＴｘ値未満である場合には、ｐ値を増大し（ステップ１８０）、ステップ１７０〜１７８を繰り返して、増大したｐ値により、より小さい画像差分値が得られるか否かを決定できる。ｐ値がＴｘ値以上である場合には、反復中に設定したｔｘ値を、運動パラメータに用いる並進ベクトル（ｔｘ，ｔｙ）の水平成分として設定できる（ステップ１８２）。
【００５０】
同時に処理され得る第２の反復（ステップ１８４〜１９６）は、ｐ＝０およびｑ＝Ｔｙと設定することにより開始される（ステップ１８４）。次に、上面図における透視画像の１つに含まれる画素を、画素並進ベクトル（ｐ，ｑ）を利用して平行移動させる（ステップ１８６）。この例示の並列処理アプローチでは、画像差分値の最小値を得るｑ値は、運動パラメータの並進ベクトル（ｔｘ，ｔｙ）のうちの正確な垂直成分ｔｙに対応する値である。
【００５１】
画素並進ベクトル（ｐ，ｑ）を用いて、上面図における透視画像の１つを平行移動した後に、前述の方程式（１）および方程式（２）に従い、上面図における透視画像の差分値を決定する（ステップ１８８）。最新の画素並進ベクトル（ｐ，ｑ）の差分値が画像差分値の最小値である場合には（ステップ１９０）、ｔｙをｑ値に設定する（ステップ１９２）。画像差分値が最小値ではない場合には、反復は次のｑ値に進む。前述したように、第１の反復は、この例では、［０，Ｔｙ］の間のｑ値を考慮する。ここで、Ｔｙは、選択された画像フレーム間を画像キャプチャデバイスが移動可能な画素単位の最大距離である。それ故、ｑ値がＴｙ値以下であるか否かを決定する（ステップ１９４）。ｑ値がＴｙ値未満である場合には、ｑ値を増大し（ステップ１９６）、ステップ１８６〜１９４を繰り返して、増大したｑ値により、より小さい画像差分値が得られるか否かを決定できる。ｑ値がＴｙ値以上である場合には、反復中に設定したｔｙ値を、運動パラメータに用いる並進ベクトル（ｔｘ，ｔｙ）の垂直成分として設定できる（ステップ１８２）。
【００５２】
運動パラメータに関する並進ベクトル（ｔｘ，ｔｙ）を決定すると、前述の方程式（３）に従い、逆正接三角関数および並進ベクトル（ｔｘ，ｔｙ）値を用いて、運動パラメータに用いる回転角θを決定する（ステップ２００）。並進ベクトル（ｔｘ，ｔｙ）および回転角θは、共に、画像キャプチャデバイスにおける運動パラメータから成る。運動パラメータを、次に、例えば、表示のため、または、いくつかの外部システムによって用いるため、出力デバイスに送信する（ステップ２０２）。さらに、さらなる使用のために運動パラメータをメモリユニットに記憶してもよい。
【００５３】
一対の選択された画像フレーム（例えば、画像フレーム１０および画像フレーム２０）に基づく運動パラメータを決定した（ステップ２００）後に、ステップ１５６〜２００を繰り返して、新規の一対の選択された画像フレーム（例えば、画像フレーム２０および画像フレーム３０）に基づく新規の運動パラメータを決定できる。このような方法で、画像キャプチャデバイスが移動経路に沿い移動している間、運動パラメータを継続的に決定できる。
【００５４】
図１および図６に関連して記述した処理、サブ処理、および処理ステップの１つ以上が、１つ以上の電子またはデジタル制御デバイスにおいてハードウェア、ソフトウェア、またはそれらの組み合わせにより実行され得ることが理解および認識される。ソフトウェアは、例えば、図１に概略を示した機能システム、デバイス、コンポーネント、モジュール、またはサブモジュールの１つ以上などの、適切な電子処理コンポーネントまたはシステム内のソフトウェアメモリ（不図示）内に存在し得る。ソフトウェアメモリは、論理機能（すなわち、デジタル回路またはソースコードなどのデジタル形式、またはアナログ電気、音声、またはビデオ信号などのアナログソースなどのアナログ形式において実施され得る「論理」）を実施するための実行可能命令の順序付きリストを含み得る。命令は、例えば、１つ以上のマイクロプロセッサ、汎用プロセッサ、プロセッサの組み合わせ、デジタルシグナルプロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または特定用途向け集積回路（ＡＳＩＣ）を含む処理モジュール内で実行され得る。さらに、アーキテクチャまたは機能の物理的な配置により限定されない物理的（ハードウェアおよび／またはソフトウェア）実装を有する機能の論理区分を概略図で示す。本願に記述する例示のシステムは、種々の組み合わせにおいて実施され得、単一ハードウェア／ソフトウェアユニット、または個々のハードウェア／ソフトウェアユニット内のハードウェア／ソフトウェアコンポーネントとして動作する。
【００５５】
実行可能命令は、その内部に記憶された命令を有するコンピュータプログラム製品として実装され得、電子システム（例えば、図１に示すエゴモーション概算システム１００）の処理モジュールにより実行される際に、電子システムに命令を実行させる。コンピュータプログラム製品は、電子コンピュータベースのシステム、プロセッサ含有システム、または命令実行システム、装置、もしくはデバイスからの命令を選択的にフェッチして命令を実行できる他のシステムなどの、命令実行システム、装置、またはデバイスと共に、またはそれに関連して用いられる任意の非一時的コンピュータ可読ストレージ媒体内で選択的に具現化され得る。この文書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム、装置、またはデバイスと共に、またはそれに関連して用いられるプログラムを記憶できる任意の非一時的な手段である。非一時的コンピュータ可読ストレージ媒体は、選択的に、例えば、電子、磁気、光学、電磁、赤外線、もしくは半導体システム、装置、またはデバイスでもよい。非一時的コンピュータ可読媒体のさらなる具体例の非限定的なリストには、１つ以上の電線を有する電気的接続（電子）、ポータブルコンピュータディスケット（磁気）、ランダムアクセスメモリ（電子）、読み出し専用メモリ（電子）、例えば、フラッシュメモリなどの消去可能プログラマブル読み出し専用メモリ（電子）、例えば、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどのコンパクトディスクメモリ（光学）、およびデジタル多用途ディスクメモリ、すなわち、ＤＶＤ（光学）が含まれる。非一時的コンピュータ可読ストレージ媒体が、例えば、紙または他の媒体の光学式走査、次に、コンパイル、解釈、または必要に応じた適切な方法による他の処理、そして次に、コンピュータメモリまたは機械メモリに記憶することにより、プログラムを電子的に保存し得るような、プログラムをプリント可能な紙または別の適した媒体でさえもよいことに留意されたい。
【００５６】
さらに、本文書に用いる用語「通信」が、いくつかの種類の信号経路を通じて伝送される信号によって２以上のシステム、デバイス、コンポーネント、モジュール、またはサブモジュールが互いに通信可能であることを意味することが理解される。信号は、第１のシステム、デバイス、コンポーネント、モジュール、またはサブモジュールから、第１および第２のシステム、デバイス、コンポーネント、モジュール、またはサブモジュール間の信号経路を通じて、第２のシステム、デバイス、コンポーネント、モジュール、またはサブモジュールに情報、電力、またはエネルギーを通信可能な通信、電力、データ、またはエネルギー信号でもよい。信号経路は、物理、電気、磁気、電磁、電気化学、光学、有線または無線接続を含み得る。信号経路はさらに、第１および第２のシステム、デバイス、コンポーネント、モジュール、またはサブモジュール間の付加システム、デバイス、コンポーネント、モジュール、またはサブモジュールを含み得る。
【００５７】
前述の実施の説明は、例証および説明目的のために提示されたものである。これは包括的ではなく、請求項に記載されている発明を、開示する正確な形態に限定しない。前述の説明を考慮して変更および変形が可能であり、また、本発明の実践によりそれを得ることができる。請求項およびそれらの均等物が、本発明の範囲を定義する。
【図１】
2013065298.tif 000003
【図６】
2013065298.tif 000004
【図２】
2013065298.tif 000005
【図３】
2013065298.tif 000006
【図４】
2013065298.tif 000007
【図５】
2013065298.tif 000008