(57)【要約】  モバイルデバイスにおいて重力および/またはスケールを推定するためのシステム、装置、および方法が示される。画像を基にした姿勢と慣性を基にした姿勢との間の差分が、スケールおよび/または重力の推定値を更新するために用いられる。画像を基にした姿勢は、2つの姿勢から計算され、差分に先立って、スケールの推定値を用いてスケールされる。慣性を基にした姿勢は、重力の推定により調節される、加速度計測定値から計算される。
2016505809.tif 000002
【特許請求の範囲】
【請求項１】
モバイルデバイスにおいて推定するための方法であって、
第1の時間においてキャプチャされた第1の画像から、ターゲットと前記モバイルデバイスのカメラの第1の位置との間の第1の姿勢を判定するステップであって、前記第1の画像は前記ターゲットを含む、ステップと、
第2の時間においてキャプチャされた第2の画像から、前記ターゲットと前記カメラの第2の位置との間の第2の姿勢を判定するステップであって、前記第2の画像は前記ターゲットを含む、ステップと、
スケール係数の第1の推定を用いて、前記第1の姿勢と前記第2の姿勢との間の画像を基にした姿勢を計算するステップと、
前記モバイルデバイスの加速度計から、前記第1の時間から前記第2の時間までの測定値を受信するステップと、
前記加速度計からの測定値と重力ベクトルの第1の推定とに基づいて、慣性を基にした姿勢を生成するステップと、
前記画像を基にした姿勢と前記慣性を基にした姿勢との間の差分を計算するステップと、
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成するステップと
を有する方法。
【請求項２】
前記第1の時間において前記第1の位置から前記第1の画像をキャプチャし、前記第2の時間において前記第2の位置から前記第2の画像をキャプチャするステップをさらに有する、請求項1に記載の方法。
【請求項３】
前記ターゲットは平面ターゲットを含むと仮定するステップをさらに有する、請求項1に記載の方法。
【請求項４】
前記ターゲットは静止ターゲットを含むと仮定するステップをさらに有する、請求項1に記載の方法。
【請求項５】
前記重力ベクトルの第1の推定は、前記ターゲットに対して垂直である、請求項1に記載の方法。
【請求項６】
前記重力ベクトルの第1の推定は、ターゲット基準系(TRS)におけるZ軸に沿っている、請求項1に記載の方法。
【請求項７】
前記第1の姿勢および前記第2の姿勢は、カメラ基準系(CRS)にあり、前記測定値は、加速度計基準系(ARS)にある、請求項1に記載の方法。
【請求項８】
前記モバイルデバイスの回転を補償するために、前記加速度計からの測定値の各々について、前記重力ベクトルの第1の推定を、累積的なジャイロスコープ測定値によって調節するステップをさらに有する、請求項1に記載の方法。
【請求項９】
前記加速度計からの測定値の各々について、前記重力ベクトルの第1の推定を減算することによって、前記加速度計からの測定値を正規化するステップをさらに有する、請求項1に記載の方法。
【請求項１０】
前記慣性を基にした姿勢を生成するステップは、推測航法するステップを有する、請求項1に記載の方法。
【請求項１１】
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成するステップは、前記差分に基づいて、前記重力ベクトルの第2の推定を生成するステップを有する、請求項1に記載の方法。
【請求項１２】
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成するステップは、前記差分に基づいて、前記スケール係数の第2の推定を生成するステップを有する、請求項1に記載の方法。
【請求項１３】
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成するステップは、前記差分に基づいて、前記重力ベクトルの第2の推定および前記スケール係数の第2の推定の両方を生成するステップを有する、請求項1に記載の方法。
【請求項１４】
第3の時間においてキャプチャされた第3の画像から、前記ターゲットと前記カメラの第3の位置との間の第3の姿勢を判定するステップであって、前記第3の画像は前記ターゲットを含む、ステップと、
前記スケール係数の第2の推定に基づいて、前記第2の姿勢と前記第3の姿勢との間の次の画像を基にした姿勢を計算するステップと、
前記第2の時間から前記第3の時間までの、前記加速度計からの次の測定値を受信するステップと、
前記加速度計からの次の測定値と前記重力ベクトルの第2の推定とに基づいて、次の慣性を基にした姿勢を生成するステップと、
前記次の画像を基にした姿勢と前記次の慣性を基にした姿勢との間の次の差分を計算するステップと
をさらに有する、請求項13に記載の方法。
【請求項１５】
前記次の差分に基づいて、前記重力ベクトルの第3の推定、または、前記スケール係数の第3の推定のうちの少なくとも1つを生成するステップをさらに有する、請求項14に記載の方法。
【請求項１６】
前記スケール係数の推定値を、拡張現実(AR)アプリケーションに適用するステップをさらに有し、前記スケール係数の推定値は、前記スケール係数の第1の推定に基づく、請求項1に記載の方法。
【請求項１７】
前記重力ベクトルの推定値を拡張現実(AR)アプリケーションに適用するステップをさらに有し、前記重力ベクトルの推定値は、前記重力ベクトルの第1の推定に基づく、請求項1に記載の方法。
【請求項１８】
モバイルデバイスにおいて推定するためのモバイルデバイスであって、
カメラであって、
ターゲットを含む第1の画像を、第1の時間および前記カメラの第1の位置においてキャプチャし、
前記ターゲットを含む第2の画像を、第2の時間および前記カメラの第2の位置においてキャプチャする
ように構成されたカメラと、
前記第1の時間から前記第2の時間までの測定値を提供するように構成された加速度計と、
前記カメラおよび前記加速度計に結合され、
前記第1の画像から、前記モバイルデバイスのターゲットとの間の第1の姿勢を判定し、
前記第2の画像から、前記モバイルデバイスのターゲットとの間の第2の姿勢を判定し、
スケール係数の第1の推定を用いて、前記第1の姿勢と前記第2の姿勢との間の画像を基にした姿勢を計算し、
前記測定値と重力ベクトルの第1の推定とに基づいて、慣性を基にした姿勢を生成し、
前記画像を基にした姿勢と前記慣性を基にした姿勢との間の差分を計算し、
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成する
ように構成されたプロセッサと
を備えるモバイルデバイス。
【請求項１９】
前記ターゲットは平面ターゲットを含む、請求項18に記載のモバイルデバイス。
【請求項２０】
前記ターゲットは静止ターゲットを含む、請求項18に記載のモバイルデバイス。
【請求項２１】
前記重力ベクトルの第1の推定は、前記ターゲットに対して垂直である、請求項18に記載のモバイルデバイス。
【請求項２２】
前記重力ベクトルの第1の推定は、ターゲット基準系(TRS)におけるZ軸に沿っている、請求項18に記載のモバイルデバイス。
【請求項２３】
前記プロセッサはさらに、前記モバイルデバイスの回転を補償するために、前記測定値の各々について、前記重力ベクトルの第1の推定を、累積的なジャイロスコープ測定値によって調節するように構成された、請求項18に記載のモバイルデバイス。
【請求項２４】
前記プロセッサはさらに、前記測定値の各々について、前記重力ベクトルの第1の推定を減算することによって、前記測定値を正規化するように構成された、請求項18に記載のモバイルデバイス。
【請求項２５】
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成するように構成された前記プロセッサは、前記差分に基づいて、前記重力ベクトルの第2の推定および前記スケール係数の第2の推定の両方を生成するように構成されたプロセッサを備える、請求項18に記載のモバイルデバイス。
【請求項２６】
前記慣性を基にした姿勢を生成するように構成された前記プロセッサは、推測航法するように構成されたプロセッサを備える、請求項18に記載のモバイルデバイス。
【請求項２７】
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成するように構成された前記プロセッサは、前記差分に基づいて、前記重力ベクトルの第2の推定を生成するように構成されたプロセッサを備える、請求項18に記載のモバイルデバイス。
【請求項２８】
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成するように構成された前記プロセッサは、前記差分に基づいて、前記スケール係数の第2の推定を生成するように構成されたプロセッサを備える、請求項18に記載のモバイルデバイス。
【請求項２９】
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成するように構成された前記プロセッサは、前記差分に基づいて、前記重力ベクトルの第2の推定および前記スケール係数の第2の推定の両方を生成するように構成されたプロセッサを備える、請求項18に記載のモバイルデバイス。
【請求項３０】
前記プロセッサはさらに、
第3の時間においてキャプチャされた第3の画像から、前記ターゲットと前記カメラの第3の位置との間の第3の姿勢を判定するように構成され、前記第3の画像は前記ターゲットを含み、
前記プロセッサはさらに、
前記スケール係数の第2の推定に基づいて、前記第2の姿勢と前記第3の姿勢との間の次の画像を基にした姿勢を計算し、
前記第2の時間から前記第3の時間までの、前記加速度計からの次の測定値を受信し、
前記加速度計からの次の測定値と前記重力ベクトルの第2の推定とに基づいて、次の慣性を基にした姿勢を生成し、
前記次の画像を基にした姿勢と前記次の慣性を基にした姿勢との間の次の差分を計算するように構成された、請求項29に記載のモバイルデバイス。
【請求項３１】
前記プロセッサはさらに、前記次の差分に基づいて、前記重力ベクトルの第3の推定、または、前記スケール係数の第3の推定のうちの少なくとも1つを生成するように構成された、請求項30に記載のモバイルデバイス。
【請求項３２】
前記プロセッサはさらに、前記スケール係数の推定値を拡張現実(AR)アプリケーションに適用するように構成され、前記スケール係数の推定値は、前記スケール係数の第1の推定に基づく、請求項18に記載のモバイルデバイス。
【請求項３３】
前記プロセッサはさらに、前記重力ベクトルの推定値を拡張現実(AR)アプリケーションに適用するように構成され、前記重力ベクトルの推定値は、前記重力ベクトルの第1の推定に基づく、請求項18に記載のモバイルデバイス。
【請求項３４】
モバイルデバイスにおいて推定するためのモバイルデバイスであって、
第1の時間においてキャプチャされた第1の画像から、ターゲットと前記モバイルデバイスのカメラの第1の位置との間の第1の姿勢を判定する手段であって、前記第1の画像は前記ターゲットを含む、手段と、
第2の時間においてキャプチャされた第2の画像から、前記ターゲットと前記カメラの第2の位置との間の第2の姿勢を判定する手段であって、前記第2の画像は前記ターゲットを含む、手段と、
スケール係数の第1の推定を用いて、前記第1の姿勢と前記第2の姿勢との間の画像を基にした姿勢を計算する手段と、
前記モバイルデバイスの加速度計から、前記第1の時間から前記第2の時間までの測定値を受信する手段と、
前記加速度計からの測定値と重力ベクトルの第1の推定とに基づいて、慣性を基にした姿勢を生成する手段と、
前記画像を基にした姿勢と前記慣性を基にした姿勢との間の差分を計算する手段と、
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成する手段と
を備えるモバイルデバイス。
【請求項３５】
前記ターゲットは平面ターゲットを含む、請求項34に記載のモバイルデバイス。
【請求項３６】
前記重力ベクトルの第1の推定は、前記ターゲットに対して垂直である、請求項34に記載のモバイルデバイス。
【請求項３７】
前記モバイルデバイスの回転を補償するために、前記測定値の各々について、前記重力ベクトルの第1の推定を、累積的なジャイロスコープ測定値によって調節する手段をさらに備える、請求項34に記載のモバイルデバイス。
【請求項３８】
前記測定値の各々について、前記重力ベクトルの第1の推定を減算することによって、前記測定値を正規化する手段をさらに備える、請求項34に記載のモバイルデバイス。
【請求項３９】
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成する前記手段は、前記差分に基づいて、前記重力ベクトルの第2の推定および前記スケール係数の第2の推定の両方を生成する手段を備える、請求項34に記載のモバイルデバイス。
【請求項４０】
モバイルデバイスが前記モバイルデバイスにおいて推定するための、記憶されたプログラムコードを含む非一時的コンピュータ可読記憶媒体であって、前記プログラムコードは、
第1の時間においてキャプチャされた第1の画像から、ターゲットと前記モバイルデバイスのカメラの第1の位置との間の第1の姿勢を判定するステップであって、前記第1の画像は前記ターゲットを含む、ステップと、
第2の時間においてキャプチャされた第2の画像から、前記ターゲットと前記カメラの第2の位置との間の第2の姿勢を判定するステップであって、前記第2の画像は前記ターゲットを含む、ステップと、
スケール係数の第1の推定を用いて、前記第1の姿勢と前記第2の姿勢との間の画像を基にした姿勢を計算するステップと、
前記モバイルデバイスの加速度計から、前記第1の時間から前記第2の時間までの測定値を受信するステップと、
前記測定値と重力ベクトルの第1の推定とに基づいて、慣性を基にした姿勢を生成するステップと、
前記画像を基にした姿勢と前記慣性を基にした姿勢との間の差分を計算するステップと、
前記差分に基づいて、前記重力ベクトルの第2の推定、または、前記スケール係数の第2の推定のうちの少なくとも1つを生成するステップと
を実行するためのコードを備える、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、スケールおよび/または重力推定の分野におけるシステム、装置、および方法に関し、さらに詳しくは、以前の重力の推定値から生成される慣性を基にした姿勢(pose)を、以前のスケールの推定値から生成される画像を基にした姿勢と比較することによって、スケールおよび/または重力を推定することに関する。
【０００２】
関連出願の相互参照
本願は、ともに発明の名称を「Adaptive Scale and/or Gravity Estimation」とする2013年3月15日に出願された米国仮出願第61/801,741号、および2012年11月5日に出願された米国仮出願第61/722,601号に対する米国特許法第119条(e)の下の利益および優先権を主張し、発明の名称を「Adaptive Scale and/or Gravity Estimation」とする2013年8月29日に出願された米国特許出願第14/014,174号の利益および優先権を主張する。前述の米国出願は、その全体が参照により本明細書に組み込まれる。
【背景技術】
【０００３】
いくつかのシステムは、拡張現実(AR)アプリケーションのために、およびスケールの推定値を決定するために、画像に対してコンピュータビジョンアルゴリズムを使用する。物体がカメラからどれくらい遠く離れているのかを判定するために、スケールの推定値が、姿勢によって乗じられる。その他のシステムは、重力の推定値を決定することによって動きを(たとえば、推測航法によって)決定するために、慣性センサを使用する。加速度測定値は、線形加速度を決定するため重力の推定値によって調節される。カメラと慣性センサとの両方を備えたシステムのためスケールと重力との両方の判定を調節する手段が必要とされる。
【発明の概要】
【課題を解決するための手段】
【０００４】
開示されるものは、モバイルデバイスにおいて姿勢を推定するためのシステム、装置、および方法である。
【０００５】
いくつかの態様によれば、開示されるものは、モバイルデバイスにおいて推定するための方法であって、この方法は、第1の時間においてキャプチャされた第1の画像から、ターゲットとモバイルデバイスのカメラの第1の位置との間の第1の姿勢を判定するステップであって、第1の画像はターゲットを含む、ステップと、第2の時間においてキャプチャされた第2の画像から、ターゲットとカメラの第2の位置との間の第2の姿勢を判定するステップであって、第2の画像はターゲットを含む、ステップと、スケール係数の第1の推定を用いて、第1の姿勢と第2の姿勢との間の画像を基にした姿勢を計算するステップと、モバイルデバイスの加速度計から、第1の時間から第2の時間までの測定値を受信するステップと、加速度計からの測定値と重力ベクトルの第1の推定とに基づいて、慣性を基にした姿勢を生成するステップと、画像を基にした姿勢と慣性を基にした姿勢との間の差分を計算するステップと、この差分に基づいて、重力ベクトルの第2の推定、または、スケール係数の第2の推定のうちの少なくとも1つを生成するステップとを備える。
【０００６】
いくつかの態様によれば、開示されるものは、モバイルデバイスにおいて推定するためのモバイルデバイスであり、このモバイルデバイスは、ターゲットを含む第1の画像を、カメラの第1の位置および第1の時間においてキャプチャし、ターゲットを含む第2の画像を、カメラの第2の位置および第2の時間においてキャプチャするように構成されたカメラと、第1の時間から第2の時間までの測定値を提供するように構成された加速度計と、カメラおよび加速度計に結合され、第1の画像から、モバイルデバイスのターゲットとの間の第1の姿勢を判定し、第2の画像から、モバイルデバイスのターゲットとの間の第2の姿勢を判定し、スケール係数の第1の推定を用いて、第1の姿勢と第2の姿勢との間の画像を基にした姿勢を計算し、測定値と重力ベクトルの第1の推定とに基づいて、慣性を基にした姿勢を生成し、画像を基にした姿勢と慣性を基にした姿勢との間の差分を計算し、この差分に基づいて、重力ベクトルの第2の推定、または、スケール係数の第2の推定のうちの少なくとも1つを生成するように構成されたプロセッサと、を備える。
【０００７】
いくつかの態様によれば、開示されるものは、モバイルデバイスにおいて推定するためのモバイルデバイスであり、このモバイルデバイスは、第1の時間においてキャプチャされた第1の画像から、ターゲットとモバイルデバイスのカメラの第1の位置との間の第1の姿勢を判定する手段であって、第1の画像はターゲットを含む、手段と、第2の時間においてキャプチャされた第2の画像から、ターゲットとカメラの第2の位置との間の第2の姿勢を判定する手段であって、第2の画像はターゲットを含む、手段と、スケール係数の第1の推定を用いて、第1の姿勢と第2の姿勢との間の画像を基にした姿勢を計算する手段と、モバイルデバイスの加速度計から、第1の時間から第2の時間までの測定値を受信する手段と、加速度計からの測定値と重力ベクトルの第1の推定とに基づいて、慣性を基にした姿勢を生成する手段と、画像を基にした姿勢と慣性を基にした姿勢との間の差分を計算する手段と、この差分に基づいて、重力ベクトルの第2の推定、または、スケール係数の第2の推定のうちの少なくとも1つを生成する手段と、を備える。
【０００８】
いくつかの態様によれば、開示されるものは、モバイルデバイスがモバイルデバイスにおいて推定するために記憶されたプログラムコードを含む非一時的コンピュータ可読記憶媒体であって、非一時的コンピュータ可読記憶媒体は、第1の時間においてキャプチャされた第1の画像から、ターゲットとモバイルデバイスのカメラの第1の位置との間の第1の姿勢を判定するステップであって、第1の画像はターゲットを含む、ステップと、第2の時間においてキャプチャされた第2の画像から、ターゲットとカメラの第2の位置との間の第2の姿勢を判定するステップであって、第2の画像はターゲットを含む、ステップと、スケール係数の第1の推定を用いて、第1の姿勢と第2の姿勢との間の画像を基にした姿勢を計算するステップと、モバイルデバイスの加速度計から、第1の時間から第2の時間までの測定値を受信するステップと、測定値と重力ベクトルの第1の推定とに基づいて、慣性を基にした姿勢を生成するステップと、画像を基にした姿勢と慣性を基にした姿勢との間の差分を計算するステップと、この差分に基づいて、重力ベクトルの第2の推定、または、スケール係数の第2の推定のうちの少なくとも1つを生成するステップとを実行するためのプログラムコードを備える。
【０００９】
例示によって様々な態様が図示および記載された以下の詳細説明から、その他の態様も、当業者に容易に明らかになるであろうことを理解されたい。図面および詳細な説明は、本質的に例示的なものと見なされるべきであって、限定的なものと見なされるべきではない。
【００１０】
本発明の実施形態は、図面を参照して、例としてのみ記載される。
【図面の簡単な説明】
【００１１】
【図１】本発明のいくつかの実施形態による、例示的なデバイスの図である。
【図２】本発明のいくつかの実施形態による、図1に示されたデバイスの例示的なブロック図である。
【図３】本発明のいくつかの実施形態による、図1に示されたデバイスの例示的なブロック図である。
【図４】本発明のいくつかの実施形態による、姿勢、慣性ナビゲーションシステムの状態、スケール、および/または、重力を推定する方法の例を示す図である。
【図５】本発明のいくつかの実施形態による、静止平面ターゲットおよび垂直方向の重力ベクトルを示す図である。
【図６】本発明のいくつかの実施形態による、静止平面ターゲットおよび垂直方向の重力ベクトルを示す図である。
【図７】本発明のいくつかの実施形態による、静止平面ターゲットおよび垂直方向の重力ベクトルを示す図である。
【図８】本発明のいくつかの実施形態による、モバイルデバイスおよび静止平面ターゲットを示す図である。
【図９】様々な基準系を関連付けている図である。
【図１０】2つの姿勢測定を示す図である。
【図１１】スケーリングの曖昧さを示す図である。
【図１２】本発明のいくつかの実施形態による、慣性を基にした姿勢と画像を基にした姿勢との間の誤差を修正するためのモジュールを示す図である。
【図１３】本発明のいくつかの実施形態による、慣性を基にした姿勢と画像を基にした姿勢との間の誤差を修正するためのモジュールを示す図である。
【図１４】本発明のいくつかの実施形態による、重力ベクトルおよびスケールを改善するための方法を示す図である。
【発明を実施するための形態】
【００１２】
添付図面とともに以下に記載する詳細説明は、本開示の様々な態様の説明として意図されており、本開示が実施される態様のみを表すことは意図されていない。本開示で説明される各態様は、本開示の単なる例または説明として与えられ、他の態様よりも好適または有利であるとは、必ずしも解釈されるべきではない。詳細な説明は、本開示の完全な理解をもたらす目的で、具体的な詳細を含んでいる。しかしながら、本開示は、これら具体的な詳細なしで実施され得ることが当業者に明らかになるであろう。場合によっては、本開示の概念を曖昧にするのを回避するために、周知の構造およびデバイスがブロック図の形式で示されている。単に利便性および明確性のために、頭文字および他の記述的な用語が使用され得るが、本開示の範囲を限定することは意図されていない。
【００１３】
本明細書において使用されるように、モバイルデバイスはしばしば、セルラー電話、モバイル電話またはその他のワイヤレス通信デバイス、パーソナル通信システム(PCS)デバイス、パーソナルナビゲーションデバイス(PND)、パーソナル情報マネジャ(PIM)、携帯情報端末(PDA)、ラップトップ、あるいはワイヤレス通信信号および/またはナビゲーション信号を受信することが可能なその他の適切なモバイルデバイスのような、移動局(MS)またはユーザ機器(UE)と称される。「モバイルデバイス」という用語はまた、衛星信号受信、支援データ受信、および/または、位置関連処理が、デバイスまたはPNDで生じているか否かにかかわらず、短距離ワイヤレス、赤外線、有線接続、あるいは他の接続などによって、パーソナルナビゲーションデバイス(PND)と通信するデバイスを含むことが意図されている。さらに、「モバイルデバイス」は、ワイヤレス通信デバイス、コンピュータ、ラップトップ等を含むすべてのデバイスを含むことが意図されており、これらは、衛星信号受信、支援データ受信、および/または、位置決め関連処理が、デバイスにおいて、サーバにおいて、またはネットワークに関連付けられたその他のデバイスにおいて生じるか否かにかかわらず、たとえばインターネットや、WiFiや、その他のネットワークを介してサーバと通信することができる。上記の任意の動作可能な組合せも、「モバイルデバイス」と見なされる。
【００１４】
少なくともスケールおよび/または重力推定の実施形態が、本明細書に記載されている。いくつかの実施形態では、スケールおよび/または重力推定は、1つまたは複数の慣性センサからの入力および/または1つまたは複数の画像に基づく。いくつかの実施形態では、スケールおよび/または重力推定は、画像処理、コンピュータビジョン、物体および/または移動追跡、および/または拡張現実とともに使用され得る。1つまたは複数の実施形態は、拡張現実アプリケーション、デバイス、および/または環境に関して以下に記載されているが、実施形態は、記載されたこれらに限定されない。たとえば、本明細書における実施形態は、スケールおよび/または重力が、たとえば、1つまたは複数の慣性センサからの入力、および/または、1つまたは複数の画像に基づいて推定される、任意の状況または機能において使用され得る。
【００１５】
いくつかの実施形態では、本明細書に記載されるような機能が、実質的にリアルタイムで実行される。その他の実施形態では、画像および/またはセンサ測定値が、後の処理のために記憶されるか、または、処理が、記憶および/または受信された画像および/またはセンサ測定値に基づく。いくつかの実施形態では、本明細書に記載された機能のうちの1つまたはすべてが、スマートフォンまたはタブレットまたはその他のデバイスのようなモバイルデバイスにおいて実行され得る。いくつかの実施形態では、本明細書に記載された機能のうちの1つまたは複数は、モバイルデバイスから受信した情報に少なくとも部分的に基づいて、サーバまたはその他のコンピューティングデバイスにおいて実行され得る。いくつかの実施形態では、本明細書に記載された機能の1つまたは複数のパフォーマンスが、モバイルデバイスと、サーバ、または、モバイルデバイスと通信しているその他のコンピューティングデバイスとの間で分割され得る。
【００１６】
いくつかの実施形態は、たとえば、1つまたは複数の物体またはターゲットを識別するために、かつ/または、たとえば、画像またはその他の視覚入力をキャプチャするデバイスおよび/または要素の動きを追跡するために、画像またはその他の視覚入力を処理することを含み得る。いくつかの状況、および/または、アプリケーションでは、たとえば、ビジョン支援型慣性航法システム(INS)を用いた拡張現実(AR)アプリケーションが、ビジョンのみのアプローチに対して実質的に改善されたパフォーマンスを提供し得る。たとえば、ビジョン支援型INSを用いることは、既知のおよび/または固定されたターゲットを用いたアプリケーションにおいて有益であり得る。慣性センサは、いくつかの実施形態では、短期間において正確に追跡し得る。そして、たとえば、ゲームまたはARアプリケーションに典型的である迅速な電話動作を追跡するために使用され得る。さらに、慣性センサ入力および/または測定値をコンピュータビジョンと融合させることは、たとえば、慣性センサが長期間、単独で使用される場合に生じ得る移動における潜在的なドリフトを緩和し得る。ビジョン支援型慣性航法システムは、照明および/または機能が、カウント低下を示す場合でさえ、ロバストな追跡を提供し得る。
【００１７】
いくつかの実施形態では、INSは、たとえばジャイロスコープ情報のみを用いる姿勢のみのINSを備える。いくつかの実施形態では、INSは、たとえば加速度計測定値とジャイロスコープ測定値との両方を用いる6自由度(DOF)INSを備える。たとえば6 DOF INSにおいて、ジャイロスコープ情報に加えて、加速度計情報を用いる場合、固定されたターゲットフレームにおいて、たとえば重力ベクトルによって表されるような重力を知ることは有益であり得る。さらに、たとえば、ターゲットの特徴の位置が、ターゲットに正規化された単位からメートル法単位へのように、1つまたは複数の単位から、1つまたは複数のその他の単位へと変換され得るように、ターゲットのスケールを知ることは有益であり得る。既知のターゲットにおける特徴の位置が、様々なターゲットサイズをサポートするために、ターゲットサイズに正規化された単位で表現され得る。ターゲットサイズは、本明細書においてターゲットのスケールと称され、スケール係数によって定義される。いくつかの実施形態では、加速度計は、メートル法単位において特徴位置を提供するために、視覚モダリティ(たとえば、画像または視覚入力)を使用し得る。したがって、ターゲットサイズに正規化された単位からメートル法単位への特徴位置の変換は、少なくとも加速度計のこの用途のために有益であり得る。
【００１８】
いくつかの実施形態では、重力ベクトルおよび/またはターゲットのスケールは、スケール情報のユーザ入力から、および/または、(たとえば、重力ベクトルが知られるようになるために)ある既知の方位においてターゲットを見ることから、知られ得るか、または、判定され得る。ターゲットスケールおよび重力ベクトルが既知であれば、カメラ姿勢(または、視覚入力をキャプチャする別のセンサの姿勢)および/または慣性センサ較正を推定するために、拡張カルマンフィルタ(EKF)を基にしたビジョン支援型INSのようなフィルタを用いたビジョンを基にしたINSが使用され得る。いくつかの実施形態では、EKFを基にしたビジョン支援型INSは、線形誤差(単数または複数)までの慣性センサ較正およびカメラ姿勢の最適な推定を提供し得る。
【００１９】
いくつかの実施形態では、たとえば、重力ベクトルの形式での重力、および/または、ターゲットのスケールが、適応的に推定され得る。ボディまたはデバイス姿勢のみならず、変動するバイアスおよび/または重力のような姿勢を推定するために、たとえば、ビジョン測定値が、慣性測定値と融合されて使用され得る。いくつかの実施形態では、慣性センサ読取およびターゲットの特徴ポイントから姿勢を推定するために、フィルタが使用される。さらに、フィルタにおいて、重力およびターゲットスケールが推定され得る。いくつかのそのような実施形態は、ユーザからの入力なしで、かつ/または、既知のターゲット方位を必要とすることなく、そのような推定を実行し得る。さらに、そのような推定値は、いくつかの実施形態において、スクラッチから、かつ/または、既知のターゲットなく(たとえば、参照なし)決定され得る。いくつかの実施形態は、拡張現実アプリケーションとともに使用され得る。
【００２０】
図1は、拡張現実対応デバイスを示す。図1に示されるように、拡張現実対応デバイス(ARD)すなわちモバイルデバイス100は、ハウジング101、ディスプレイ102、1つまたは複数のスピーカ104、および/または、1つまたは複数のハードウェアまたはソフトウェアのボタン106を含み得る。いくつかの実施形態では、マイクロホンが、ボタン106のうちの1つの代わりに、または、ボタン106に加えて含まれ得る。タッチスクリーンディスプレイであり得るディスプレイ102は、カメラ105によってキャプチャされた画像、または、その他任意の所望されるユーザインターフェース情報を示し得る。もちろん、モバイルデバイス100は、示されていない追加の構成要素を含み得、1つまたは複数の構成要素が省略され得る。
【００２１】
モバイルデバイス100は、セルラーまたはその他のワイヤレス通信デバイス、パーソナル通信システム(PCS)デバイス、パーソナルナビゲーションデバイス(PND)、パーソナル情報マネジャ(PIM)、携帯情報端末(PDA)、ラップトップ、またはその他のモバイルプラットフォームのような任意のポータブル電子デバイスを備え得る。モバイルプラットフォームは、ワイヤレス通信信号、および/または、ナビゲーション位置決め信号のようなナビゲーション信号を受信することが可能であり得る。ARDという用語はまた、衛星信号受信、支援データ受信、および/または、位置関連処理が、デバイスまたはPNDで生じるか否かにかかわらず、たとえば短距離ワイヤレス、赤外線、有線接続、あるいは他の接続によって、パーソナルナビゲーションデバイス(PND)と通信するデバイスを含み得る。ARDはまた、追跡時に使用される画像をキャプチャすることが可能な、かつ/または、拡張現実機能を実行することが可能な、ワイヤレス通信デバイス、コンピュータ、ラップトップ、タブレットコンピュータ、スマートフォン、デジタルカメラ等を含む、すべての電子デバイスを含み得る。
【００２２】
図2は、モバイルデバイス100の要素の、例示的なブロック図である。モバイルデバイス100は、個別の写真またはビデオのフレームのいずれかであり得る、環境の画像をキャプチャするためのカメラ105を含み得るか、または、別の視覚センサを含み得る。モバイルデバイス100はさらに、モバイルデバイス100がその位置および/または方位または姿勢を決定し得るようにするデータを提供し得る慣性センサのようなセンサ116を含み得る。センサ116の例は、加速度計116-1、クオーツセンサ、ジャイロスコープ116-2、線形加速度計として使用される微小電気機械システム(MEMS)センサのみならず、磁力計も含み得る。たとえば、センサ116は、いくつかの実施形態において、ジャイロスコープ(たとえば、バイアスを最小化するように較正されたジャイロスコープ)および加速度計を備え得る。モバイルデバイス100はまた、画像を表示することが可能なディスプレイ102を含むユーザインターフェース110を含み得る。ユーザインターフェース110はまた、ユーザがモバイルデバイス100へ情報を入力し得るようにするキーバッド114またはその他の入力デバイスを含み得る。所望される場合、仮想的なキーパッドが、タッチセンサとともにディスプレイ102に組み込まれ得る。ユーザインターフェース110はまた、たとえばモバイルプラットフォームがセルラー電話であれば、マイクロホン116-3および1つまたは複数のスピーカ104を含み得る。
【００２３】
モバイルデバイス100のモバイルプラットフォームはさらに、制御ユニット120を含んでおり、制御ユニット120は、カメラ105およびセンサ116のみならず、ユーザインターフェース110に、その他任意の所望される機能とともに接続されており、これらと通信する。制御ユニット120は、1つまたは複数のプロセッサ122と、関連するメモリ/記憶装置124とによって提供され得る。制御ユニット120は、ソフトウェア126、ならびにハードウェア128、およびファームウェア130を含むことも可能である。制御ユニット120は、モバイルデバイス100の位置、および/または、モバイルデバイス100によってモニタされた1つまたは複数の物体の位置を追跡するように構成された追跡ユニット132を含む。制御ユニット120はさらに、モバイルデバイス100のディスプレイ102上に、拡張現実コンテンツを表すように構成された拡張現実ユニット134を含み得る。追跡ユニット132および拡張現実ユニット134は、明確化のために、プロセッサ122、メモリ124、ハードウェア128、および/または、ファームウェア130とは別に示されているが、これら構成要素のいずれかの中に結合され得るか、または、これらユニットのすべての中に実装され得る。いくつかの実施形態では、拡張現実ユニット134の一部は、たとえば分散方式で、プロセッサ122、メモリ124、ハードウェア128、および/または、ファームウェア130にまたがって実装される。いくつかの実施形態では、拡張現実ユニット134は、ソフトウェア126およびファームウェア130における命令に基づいて、プロセッサ122および/またはハードウェア128上に実装される。いくつかの実施形態では、追跡ユニットは、拡張現実ユニット134によって、かつ/または、プロセッサ122、メモリ124、ハードウェア128、および/または、ファームウェア130のうちの1つまたは複数によって実装される。もちろん、モバイルデバイス100は、示されていない追加の構成要素を含み得、1つまたは複数の構成要素が省略され得る。
【００２４】
いくつかの実施形態では、ターゲットスケール、ターゲットフレーム内の重力ベクトル、カメラ対慣性較正、ジャイロスコープバイアス、加速度計バイアス、およびカメラ姿勢がともに、コンピュータビジョン姿勢測定値で、未知のものとして観察可能である。たとえば、これら未知のものは、未知のもの(たとえば、一定のバイアス、一定のカメラ対慣性較正等)および/または動き(たとえば、非ゼロの並進(translation)加速度および/または回転速度等)におけるいくつかの制約の下で観察可能である。たとえば、カメラ105の姿勢、センサ116の加速度計のバイアス、センサ116のジャイロスコープ116-2のバイアス、および/または、カメラ対センサ較正の較正がともに、未知のものとして観察可能である。
【００２５】
以下の実施形態では、Xは、1つまたは複数のINS状態を示す。たとえば、Xは、カメラ姿勢、加速度計および/またはジャイロバイアス等を示し得る。さらに、Yは、以下に記載される実施形態における重力および/またはターゲットスケールパラメータを示す。さらに、Cは、以下の記載において、ビジョンモダリティによって計算されるカメラ105の姿勢を示す。
【００２６】
コンピュータビジョン姿勢(C)、INS状態(X)、および、スケールおよび重力(Y)からなる複合確率分布を最大化するためにベイズ原理が使用され得る。この関係は、以下の式1に示される。
【００２７】
[X*,Y*] = arg max p(X,Y,C)          (1)
【００２８】
本明細書で使用されるように、シンボルX*およびY*は、XおよびYの最大事後(MAP: Maximum-A-Posteriori)推定値を示す。しかしながら、当業者であれば、INS状態、重力、および/または、スケールのその他の推定値が、それの代わりに、または、それに加えて導出され得ることを認識するであろう。いくつかの実施形態では、arg maxは、所与の関数がその最大値を達成するための所与の引数のポイントのセットのような、最大の引数を表す。
【００２９】
MAP推定値は、適応型アプローチを用いて計算され得る。たとえば、MAP推定値は、フィルタを用いて計算され得る。フィルタ302の例が、図3に示されている。フィルタ302は、プロセッサ122または専用ハードウェアにおける機能またはモジュールであり得る。いくつかの実施形態では、フィルタ302のようなフィルタは、EKFを備える。フィルタは、追跡ユニット132、拡張現実ユニット134に、かつ/または、プロセッサ122、メモリ124、ハードウェア128、および/または、ファームウェア130のうちのいずれかに実装され得る。いくつかの実施形態では、フィルタは、前述した構成要素のうちのいずれかと分離して実装される。
【００３０】
いくつかの実施形態では、状態空間は、ジャイロスコープバイアス、傾き、加速度計バイアス、位置、速度、角速度、角加速度、並進加速度、並進加加速度(jerk)、重力、および/または、ターゲットスケールから成る。状態は、ジャイロスコープ116-2からのジャイロスコープ測定値、加速度計116-1からの加速度測定値、および/または、カメラ105からの姿勢測定値を用いて更新され得る。
【００３１】
いくつかの実施形態では、モバイルデバイス100のようなデバイスを保持しているユーザは、一般に、EKFが、重力および加速度計の曖昧さ解消を2〜3秒のような短時間内に達成できるようにするのに十分なだけ回転させる。さらに、比較的高い処理ノイズをターゲットスケールの状態に割り当てることは、収束を促進し得る。たとえば、1e-1である処理ノイズは、約3〜4秒内に収束するように示されている。それに従ってスケジューリングが決定され得る。たとえば、高い処理ノイズが、(高速な収束を可能にするために)最初の秒について設定され、その後、ターゲットのサイズが変化していないとの事実に対処するために低減され得る。このように、実施形態は、ユーザからの入力なしで実行され得る。さらに、以前の何の情報も知られておらず、改善された追跡の結果が得られ得る場合であっても、フィルタは、数秒内に「引き締まる」。
【００３２】
図4は、例示的な処理400を示す。402において、1つまたは複数の視覚測定値が、たとえばカメラ105を用いて取得される。404において、1つまたは複数の慣性センサ測定値が、たとえばセンサ116を用いて取得される。いくつかの実施形態では、測定値は、404において、ジャイロスコープおよび加速度計から取得される。
【００３３】
406では、402および404において取得された測定値に基づいて、たとえば、拡張現実ユニット134、プロセッサ122、メモリ124、ハードウェア128、および/または、ファームウェア130を用いて、姿勢、1つまたは複数のINS状態、スケール、および/または、重力が計算される。これらのパラメータのうちの1つまたは複数のMAP推定値が、406において、式1に従って計算され得る。
【００３４】
いくつかの実施形態では、406において実行される計算は、402および/または404からの測定値を、414において、たとえば、フィルタ302を用いてフィルタリングすることを含む。いくつかの実施形態では、406はさらに、センサ116のような慣性センサおよび/または拡張現実アプリケーションの状態、またはその他の状態を、416において更新することを含む。拡張現実ユニット134、追跡ユニット132、プロセッサ122、メモリ124、ハードウェア128、および/または、ファームウェア130は、416を実行するために使用され得る。
【００３５】
いくつかの実施形態では、処理400はさらに、ターゲットのような要素、または、モバイルデバイス100または処理400を実施したその他のデバイスのようなデバイスの動きを、406において適応的に計算されたパラメータのうちの1つまたは複数に基づいて追跡することを含む。たとえば、追跡ユニット132は、132を実行し得る。
【００３６】
前述された実施形態の利点は、視覚ターゲットに関する重力の高速かつ正確な推定のみならず、視覚ターゲットのスケールの高速かつ正確な推定を含み得る。スケールまたはスケール係数は、たとえば、実際のターゲットサイズと、データベースにおけるターゲットサイズとの間の比率を含み得る。したがって、加速度計は、いくつかの実施形態においては、線形誤差までは最適であり得る慣性センサ測定値と、コンピュータビジョンからの姿勢を融合するためにジャイロスコープに加えて使用され得る。さらに、スケール拡張は、絶対寸法内で決定され得る。したがって、拡張のサイズはターゲットサイズの関数ではないことがあり得る。さらに、拡張は、重力に関して方位付けられ得る(たとえば、ゲームでは、図が重力と揃っていることが期待され得る)。
【００３７】
いくつかの実施形態では、xおよびy(または任意の二次元)におけるスケールが推定され得る。たとえば、ターゲットはしばしば、正しくないアスペクト比(たとえば、「選択された紙サイズに対する適切な画像」)で印刷される。xおよびyにおけるターゲットスケールの推定が、この問題に対処し得る。さらに、コンピュータビジョン姿勢が、前述された実施形態に準じて、自然な機能追跡器から導出され得る。いくつかの実施形態では、PTAM姿勢測定値がEKFフレームワークへ入力され得、たとえば、改善された追跡ロバスト性に加えてスケールおよび重力を得るために、慣性測定値に加えてフィルタ302へ供給され得る。
【００３８】
いくつかの実施形態では、ターゲットが視野からなくなるように視覚センサが移動されると、重力ベクトルが方向を変えるようにターゲットの方位が変えられ、次いで、ターゲットが視野に入るように視覚センサが移動され、本明細書に記載された実施形態は、たとえば漸近時間において、パフォーマンスが変わることなく、または、パフォーマンスがほとんど変わることなく実行し得る。たとえば、これは、適応型重力推定を用いて達成され得る。
【００３９】
いくつかの実施形態では、ターゲットが視野からなくなるように視覚センサが移動されると、ターゲットは、異なるサイズの類似のターゲットと交換され、このターゲットが視野にあるように視覚センサが移動され、本明細書に記載された実施形態は、たとえば漸近時間において、パフォーマンスが変わることなく、または、パフォーマンスがわずかにしか変わらずに実行し得る。たとえば、これは、適応型スケール推定を用いて達成され得る。
【００４０】
図5〜図7は、本発明のいくつかの実施形態による、静止平面ターゲット500および垂直方向の重力ベクトルを示す。図5では、静止平面ターゲット500は、グローバル基準系(GRS 520)に関して示されている。X軸およびY軸は、経度と緯度によって表される平面を生成する。Z軸は、理論的な重力の方向[0, 0, 1]、または、世界のある部分の実際の重力を表し、たとえば、GRS 520においてサンディエゴの場合、[0, 0, 9.79]として表され得る。静止平面ターゲット500は、GRS 520に対して移動しておらず、X-Y平面と揃っていない。重力ベクトルのための第1の推測すなわち第1の推定G 510は、ターゲット基準系(TRS 530)に依存しない静止平面ターゲット500の面に垂直に設定され得る。第1の推定G 510は、受信され得るか、あらかじめ設定され得るか、各発生時に設定され得るか、以前に決定されているか、またはメモリに記憶され得る。そして、異なるARアプリケーションに共通または固有であり得る。図6では、重力ベクトルの推定であるG 510が、GRS 520に関して示されている。この例では、[x, y, z]GRSに関するGは、[0.1, 0.05, 0.9]GRSにほぼ等しい。図7では、静止平面ターゲット500が、GRS 520(点線)に関して、ターゲット基準系(TRS 530)(実軸)において示されている。静止平面ターゲット500は、TRS 530を定義する。静止平面ターゲット500の平面は、TRS 530のX-Y平面にある。G 510は、重力の初期推測または推定が[x, y, z]TRS=[0, 0, 1]TRSになるようにZ軸に沿って向けられている。
【００４１】
図8は、本発明のいくつかの実施形態による、モバイルデバイス100および静止平面ターゲット500を示す。モバイルデバイス100は、カメラ105および加速度計116-1を含む。カメラ105は、静止平面ターゲット500に向けられている。静止平面ターゲット500に関する測定は、TRS 530において始まり得る。画像のようなカメラ105からの測定は、カメラ基準系(CRS 540)で始まる。加速度計116-1からの測定は、加速度計基準系(ARS 550)で始まる。
【００４２】
図9は、様々な基準系を関連付けている。示されている3つの基準系は、(1)しばしばターゲット基準フレームと称されるターゲット基準系(TRS 530)、(2)しばしばカメラ基準フレームと称されるカメラ基準系(CRS 540)、および(3)しばしば加速度計基準フレームと称される加速度計基準系(ARS 550)である。TRS 530とCRS 540との間の変換を行うために、コンピュータビジョン(CV)アルゴリズムを用いて、画像から姿勢が決定される。姿勢は、並進ベクトルおよび回転行列を定義し得る。これらは各々、可変であり、カメラ105と、静止平面ターゲット500との間の適切な関係に依存する。CRS 540とARS 550との間の変換を行うために、一定の姿勢が使用され得る。この一定の姿勢は、一定の並進ベクトルと、一定の回転行列とによって定義され得る。一定の並進ベクトルは、変位スカラを備え、カメラ105と加速度計116-1との間に存在し得る。CRS 540とARS 550との間に回転が存在しないのであれば、回転行列のために単位行列が使用され得る。しかしながら、いくつかの実装形態では、カメラ105と加速度計とが、共通の回路基板の異なるパーツ上、または、個別であるが接続された回路基板上にはんだ付けされる。誤整列による構成要素のわずかなオフセットを説明するために、一定の回転行列は、単位行列とわずかに異なり得る。TRS 530とARS 550との間の変換を行うために、計算により、CRS 540における暫定値を見つけ得るか、または、最初の2つの並進ベクトルと最初の2つの行列とが結合され、可変の並進ベクトルおよび可変の回転行列が生成され得る。
【００４３】
図10〜図14の以下の記載は、加速度計116-1からの慣性を基にした姿勢860を、カメラ105からの第1の画像610と第2の画像710からの画像を基にした姿勢880と比較する。図10は、カメラ105が、第1の時間630における第1の位置620から、第2の時間730における第2の位置720へ移動したと仮定されることを示す。図10はまた、CVアルゴリズムが、第1の姿勢600および第2の姿勢700を生成し、これらが、画像を基にした姿勢880になることを示している。図11は、カメラ画像のために仮定されたスケール係数の変化を示す。図12および図13は、慣性を基にした姿勢860を決定するための、加速度計116-1およびジャイロスコープ116-2支援からの読取を示す。図13では、画像を基にした姿勢880と慣性を基にした姿勢860との比較の結果、角度誤差およびスカラ誤差を有する誤差ベクトルとなる。誤差ベクトルは、カルマンフィルタ文献においてイノベーションシーケンスまたはイノベーションベクトルとして知られている。図14は、モバイルデバイスにおける推定の方法を示す。
【００４４】
図10は、2つの姿勢測定を示す。この例では、第1の画像610が、(静止平面ターゲット500からの相対的な方位および距離にある)第1の位置620から、第1の時間630においてキャプチャされる。たとえば、CVアルゴリズムから、TRS 530とCRS 540との間の第1の姿勢600が計算され得る。第1の時間630から第2の時間730まで、カメラ105は、第1の位置620から第2の位置720へ移動される。図12および図13を参照して以下に説明されるように、この移動は、加速度計116-1からの加速度計測定値810と、ジャイロスコープ116-2からのジャイロスコープ測定値820とを用いて計算される回転行列および並進ベクトルまたは姿勢によって定義され得る。第2の位置720および第2の時間730において、カメラ105は、第2の画像710をキャプチャする。繰り返すが、たとえば、CVアルゴリズムから、第2の姿勢700は、カメラ105と静止平面ターゲット500との間で決定される。したがって、第1の姿勢600から第2の姿勢700への並進および回転は、CVまたは画像を基にした姿勢880および対応する回転行列を定義し得る。
【００４５】
図11は、スケーリングの曖昧さを示す。カメラ105は、単一の画像のみからでは、静止平面ターゲット500のスケールを決定することはできない。カメラ105の視点から、静止平面ターゲット500は、小さくてカメラ105に近い(たとえば、静止平面ターゲット500-1)、カメラ105からの平均サイズおよび距離の(たとえば、静止平面ターゲット500-2)、または大きくてカメラ105から遠い(たとえば、静止平面ターゲット500-3)ものであり得る。異なるサイズの静止平面ターゲット500を適応させるために、スケール係数が使用される。たとえば、静止平面ターゲット500-1は、0.5であるスケール係数によって表され、静止平面ターゲット500-2は、1.0であるスケール係数によって表され、静止平面ターゲット500-2は、2.0であるスケール係数によって表される。スケール係数は、距離を説明し、静止平面ターゲット500は、カメラ105から遠くにある。
【００４６】
図12および図13は、本発明のいくつかの実施形態による、慣性を基にした姿勢と画像を基にした姿勢との間の誤差を修正するためのモジュールを示す。最初に、慣性を基にした姿勢を決定するための処理が説明される。図12において、加速度計116-1からプロセッサによって加速度計測定値810が受信される。姿勢が決定され得る前に、減算器150によって、加速度計測定値810から、重力による加速度が取り除かれる。減算器150は、プロセッサ122における機能またはモジュールであり得る。重力による加速度を決定するために、各加速度計測定値810について、重力ベクトルの現在の推測または現在の推定832が、第1の時間と第2の時間との間で、補償器140によって補償される。補償器140は、プロセッサ122における機能またはモジュールであり得る。補償器140は、ジャイロスコープ測定値820を蓄積し、この結果を、重力ベクトルの現在の推定832に加える。重力ベクトルの第1の推定832が、静止平面ターゲット500に対して垂直なベクトルに設定され得る第1の時間において、重力ベクトルの現在の推定832が設定される。補償器140の動作の結果、特定のジャイロスコープ測定値820に関連付けられた、調節された推測または調節された推定840が得られる。減算器150が、加速度計測定値810から、重力ベクトルの、調節された推定840を減算した結果は、重力のない加速度ベクトル850であり得る。処理は、図13において継続する。
【００４７】
図13の比較では、誤差ベクトルが、慣性を基にした姿勢860と画像を基にした姿勢880との間のベクトルの差分から直接計算され得る。図13の要素の各々は、プロセッサ122内の機能またはモジュールであり得る。誤差ベクトルを最小化する、慣性を基にした姿勢860のための新たな値が解かれ得る。同様に、誤差ベクトルを最小化する、画像を基にした姿勢880のための新たなベクトルが解かれ得る。しかしながら、新たなスケール係数と新たな重力ベクトルとの両方を推定している場合、たとえば、(たとえば拡張カルマンフィルタ(EKF)アルゴリズムからの)対応するカルマンフィルタゲインによって指定されるように、中間的な結果を与える妥協点または平均が、これら2つの解から選択され得る。このように、誤差ベクトルは、より良好な重力の推定値を決定するために使用され得る。同様に、誤差ベクトルは、スケール係数515のより良好な推定値を決定するために使用され得る。
【００４８】
図13では、重力のない加速度ベクトル850が、アキュムレータ160によって蓄積される。アキュムレータ160は、たとえば推測航法による二重積分によって、加速度ベクトル850から並進を計算する。アキュムレータ160の結果は、慣性を基にした姿勢860である。コンパレータ170は、誤差ベクトルを決定し、誤差ベクトルを、重力ベクトルの次の推測または次の推定830へ変換する。遅延ユニット190は、重力ベクトルの次の推定830を受け取り、重力ベクトルの現在の推定832を生成する。現在の推定832は、第1の時間と第2の時間との間の期間Tの間、一定に保たれる。
【００４９】
図13ではまた、画像を基にした姿勢880が決定される。画像を基にした姿勢880は、慣性を基にした姿勢860と等価であるべきである。これら2つのベクトル(860,880)は、重力ベクトルの次の推定830と、スケール係数の次の推定890とを生成するために、コンパレータ170によって比較される。これらは、現在の値を保つために遅延ユニット190,194によってそれぞれ遅延される。
【００５０】
第1の姿勢600と第2の姿勢700とは、これら姿勢の間の並進ベクトルを計算するために生成器180によって使用される。これによって、スケールされていない画像を基にした姿勢870を生成する。スケールされていない画像を基にした姿勢870は、スケールされた画像を基にした姿勢880を生成するために、スケール係数の現在の推定892を乗じられる。コンパレータ170は、重力ベクトルの次の推定830と、スケール係数の次の推定890とを決定するために、画像を基にした姿勢880を、慣性を基にした姿勢860とともに受け取る。次の推定830は、誤差ベクトルを最小化する重力値であり得る。次の推定890は、誤差ベクトルを最小化するスケール係数であり得る。あるいは、次の推定830および次の推定890は、これらの2つの解の間の妥協点であり得る。
【００５１】
図14は、本発明のいくつかの実施形態による、重力ベクトルおよびスケールを改善するための方法1000を示す。いくつかの実施形態では、スケール係数が仮定され得、重力ベクトルの次の推定830が決定される。他の実施形態では、重力ベクトルが仮定され、スケール係数の次の推定890が決定される。さらに他の実施形態では、重力と推定890との両方のための推測または推定830、スケール係数は、以下の例に示されるように決定される。
【００５２】
1010において、モバイルデバイス100における(たとえば、図2のプロセッサ122のような)のプロセッサは、(G 510として前述もされたような)重力ベクトルの第1の推定832を設定する。たとえば、重力ベクトルの第1の推定832は、静止平面ターゲット500によって生成された平面に対して垂直であり得る。1015において、プロセッサは、スケール係数の第1の推定892を設定する。たとえば、スケール係数の第1の推定832は、1に設定され得る。プロセッサは、1010と1015との両方、または1010か1015かのいずれか一方を実行し得る。1010および/または1015において、重力ベクトルおよび/またはスケール係数の第1の推定を設定する代わりに、重力ベクトルの第1の推定値、および/または、スケールの第1の推定値が、たとえば、あらかじめ設定され得るか、以前に決定され得るか、以前にメモリ内に設定され得るか、様々なARアプリケーションについて異なっているか、必要とされるごとに設定され得る。
【００５３】
1020において、プロセッサは、カメラ105の第1の位置620と静止平面ターゲット500との間で、第1の時間630においてキャプチャされた第1の画像610から第1の姿勢600を決定する。第1の画像610は、静止平面ターゲット500の画像を含んでいる。
【００５４】
1030において、プロセッサは、カメラ105の第2の位置720と静止平面ターゲット500との間で、第2の時間730においてキャプチャされた第2の画像710から第2の姿勢700を決定する。第2の画像710も、静止平面ターゲット500の画像を含んでいる。
【００５５】
1040において、プロセッサは、第1の姿勢600と第2の姿勢700との間の画像を基にした姿勢880を計算する。
【００５６】
1050において、プロセッサは、第1の時間630から第2の時間730までの加速度計測定値810を受信する。
【００５７】
1060において、プロセッサは、加速度計測定値810の各々について、重力ベクトルの第1の推定832を加速度計測定値810から減算して加速度ベクトル850を生成する。
【００５８】
1070において、プロセッサは、加速度計測定値810の各々について、加速度ベクトル850から慣性を基にした姿勢860を生成する。
【００５９】
1080において、プロセッサは、画像を基にした姿勢880と慣性を基にした姿勢860との間の差分に基づいて、重力ベクトルの第2の推定830を生成する。1085において、プロセッサはまた、画像を基にした姿勢880と慣性を基にした姿勢860との間の差分に基づいて、スケール係数の第2の推定890を生成する。プロセッサは、1080と1085との両方、または1080か1085かのいずれか一方を実行し得る。
【００６０】
処理は、1030において、リファインされた値(重力についての第2の推定830と、スケール係数についての第2の推定890)、新たなジャイロスコープおよび加速度計測定値、および新たな画像を用いて繰り返す。要するに、いくつかの実施形態は、図14の要素を実行するために、図2のプロセッサ122および/または追跡ユニット132、および/または、図3のフィルタ302を用いる。いくつかの実施形態では、1010および/または1015は、コンパレータ170および/またはカメラ105および/またはセンサ116によって実行される。いくつかの実施形態では、1020および/または1030は、カメラ105によって実行される。いくつかの実施形態では、1040は生成器180によって実行される。いくつかの実施形態では、1050は、加速度計116-1から加速度測定値810を受信する減算器150によって実行される。いくつかの実施形態では、1060は、減算器150によって実行される。いくつかの実施形態では、1070は、アキュムレータ160によって実行される。いくつかの実施形態では、1080と1085は、コンパレータ170によって実行される。
【００６１】
本明細書に記載された方法論は、アプリケーションに依存する様々な手段によって実施され得る。たとえば、これらの方法論は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組合せで実施され得る。ハードウェア実装形態の場合、各処理ユニットは、本明細書に記載された機能を実行するように設計された、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、他の電子ユニット、あるいはそれらの組合せ内で実装されてもよい。
【００６２】
ファームウェアおよび/またはソフトウェア実装形態の場合、これらの方法論は、本明細書に記載された機能を実行するモジュール(たとえば、手順、機能等)で実施され得る。本明細書に記載されたこれらの方法論を実施する際に、命令を実体的に具体化する任意の機械可読媒体が使用され得る。たとえば、ソフトウェアコードはメモリに記憶され、プロセッサユニットにより実行され得る。メモリは、プロセッサユニット内に、または、プロセッサユニット外に実装され得る。本明細書で使用されるように、「メモリ」という用語は、長期、短期、揮発性、不揮発性、またはその他のうちのいずれかのタイプのメモリを指し、いかなる特定のタイプまたは数のメモリも、メモリが記憶される媒体のタイプにも限定されるべきではない。
【００６３】
ファームウェアおよび/またはソフトウェアで実装される場合、これら機能は、1つまたは複数の命令として、または、非一時的コンピュータ可読媒体におけるコードとして、記憶され得る。例は、データ構造で符号化された非一時的コンピュータ可読媒体と、コンピュータプログラムで符号化されたコンピュータ可読媒体とを含む。非一時的コンピュータ可読媒体は、物理的なコンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る利用可能な任意の媒体であり得る。例として、限定することなく、そのような非一時的コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、あるいは、所望のプログラムコードを命令またはデータ構造の形式で記憶するために使用され、しかも、コンピュータによってアクセスされ得るその他任意の媒体を備え、本明細書で使用されるようなディスク(diskおよびdisc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含む。ここで、diskは、通常、データを磁気的に再生する一方、discは、レーザを用いてデータを光学的に再生する。前述の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００６４】
コンピュータ可読媒体における記憶に加えて、命令および/またはデータは、通信装置に含まれる送信媒体における信号として提供され得る。たとえば、通信装置は、命令およびデータを示す信号を有するトランシーバを含み得る。これら命令およびデータは、1つまたは複数のプロセッサに、特許請求の範囲で概説される機能を実施させるように構成されている。すなわち、通信装置は、開示された機能を実行するための情報を示す信号を伴う送信媒体を含む。第1の時間において、通信装置に含まれる送信媒体は、開示された機能を実行するために、情報のうちの第1の部分を含み得る一方、第2の時間において、通信装置に含まれる送信媒体は、開示された機能を実行するために、情報のうちの第2の部分を含み得る。
【００６５】
開示された態様の前述の記載は、いかなる当業者であっても、本開示を製造または使用できるように提供される。これらの態様への様々な変形は、当業者に容易に明らかとなり、本明細書で定義された一般原理は、本開示の思想または範囲から逸脱することなく、他の態様に適用され得る。
【符号の説明】
【００６６】
100  モバイルデバイス
102  ディスプレイ
104  スピーカ
105  カメラ
110  ユーザインターフェース
114  キーパッド
116  センサ
116-1  加速度計
116-2  ジャイロスコープ
116-3  マイクロホン
120  制御ユニット
122  プロセッサ
124  メモリ
126  ソフトウェア
128  ハードウェア
130  ファームウェア
132  追跡ユニット
134  拡張現実ユニット
140  補償器
150  減算器
160  アキュムレータ
170  コンパレータ(たとえば、拡張カルマンフィルタ)
180  生成器
190  遅延T
192  乗算器
194  遅延T
302  フィルタ
500  静止平面ターゲット
520  グローバル基準系(GRS)
530  ターゲット基準系(TRS)
540  カメラ基準系(CRS)
550  加速度計基準系(ARS)
600  第1の姿勢
700  第2の姿勢
810  加速度計測定値
820  ジャイロスコープ測定値
830  重力ベクトルの次の推定
832  重力ベクトルの現在の推定
840  重力ベクトルの調節された推定
850  重力のない加速度ベクトル
860  慣性を基にした姿勢
870  画像を基にした姿勢(スケールされていない)
880  画像を基にした姿勢(スケールされた)
890  スケール係数の次の推定
892  スケール係数の現在の推定
【図１】
2016505809.tif 000003
【図２】
2016505809.tif 000004
【図３】
2016505809.tif 000005
【図４】
2016505809.tif 000006
【図５】
2016505809.tif 000007
【図６】
2016505809.tif 000008
【図７】
2016505809.tif 000009
【図８】
2016505809.tif 000010
【図９】
2016505809.tif 000011
【図１０】
2016505809.tif 000012
【図１１】
2016505809.tif 000013
【図１２】
2016505809.tif 000014
【図１３】
2016505809.tif 000015
【図１４】
2016505809.tif 000016
【国際調査報告】
2016505809.tif 000017
2016505809.tif 000018
2016505809.tif 000019