(57)【特許請求の範囲】
【請求項１】
モバイルデバイスのポーズを追跡するためのモバイルデバイスにおける方法であって、前記方法が、
画像キャプチャデバイスから複数の画像を受信するステップと、
前記複数の画像のうちの1つに少なくとも部分的に基づいてポーズを計算するステップと、
ポーズ追跡フィルタモジュールに前記ポーズを送信するステップと、
第1の測定値が第1のしきい値を超えることを決定するために前記第1の測定値を前記第1のしきい値と比較するステップと、
前記第1の測定値を比較することに少なくとも部分的に基づいて深度センサを有効にするステップと、
第1の深度マップを受信するステップと、
前記第1の深度マップに部分的に基づいて深度センサポーズを計算するステップと、
前記ポーズ追跡フィルタモジュールに深度センサポーズを提供するステップと
を含む方法。
【請求項２】
前記深度センサを無効にするステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記深度センサを無効にするステップが、
第2の測定値が前記第1のしきい値をもはや超えていないことを決定するために前記第2の測定値を前記第1のしきい値と比較するステップと、
前記第2の測定値を比較することに基づいて前記深度センサを無効にするステップと
を含む、請求項2に記載の方法。
【請求項４】
第2の深度マップをキャプチャするステップをさらに含み、
前記第1の深度マップに部分的に基づいて前記深度センサポーズを計算するステップが、前記第1の深度マップおよび前記第2の深度マップから前記深度センサポーズを計算するステップを含む、請求項1に記載の方法。
【請求項５】
前記第1の測定値が、慣性センサ測定値から得られた角速度のレートまたは角加速度のレートを含む、請求項1に記載の方法。
【請求項６】
前記第1の測定値が、慣性センサ測定値のノイズレベルを含む、請求項1に記載の方法。
【請求項７】
前記第1の測定値が、光レベルを含む、請求項1に記載の方法。
【請求項８】
前記第1の測定値が、不明瞭度の指示である、請求項1に記載の方法。
【請求項９】
前記第1の測定値が、画像のフレームレートである、請求項1に記載の方法。
【請求項１０】
前記ポーズ追跡フィルタモジュールが、拡張カルマンフィルタ(EKF)を備えるか、又は、
前記ポーズ追跡フィルタモジュールが、粒子フィルタを備える、請求項1に記載の方法。
【請求項１１】
前記ポーズ追跡フィルタモジュールからの推定されたポーズを計算するステップをさらに含む、請求項1に記載の方法。
【請求項１２】
モバイルデバイスのポーズを追跡するための前記モバイルデバイスであって、前記モバイルデバイスが、
画像キャプチャデバイスから複数の画像を受信するための手段と、
前記複数の画像のうちの1つに少なくとも部分的に基づいてポーズを計算するための手段と、
ポーズ追跡フィルタモジュールに前記ポーズを送信するための手段と、
第1の測定値が第1のしきい値を超えることを決定するために前記第1の測定値を前記第1のしきい値と比較するための手段と、
前記第1の測定値を比較することに少なくとも部分的に基づいて深度センサを有効にするための手段と、
第1の深度マップを受信するための手段と、
前記第1の深度マップに部分的に基づいて深度センサポーズを計算するための手段と、
前記ポーズ追跡フィルタモジュールに前記深度センサポーズを提供するための手段と
を備えるモバイルデバイス。
【請求項１３】
第2の測定値が前記第1のしきい値を超えることを決定するために前記第2の測定値を前記第1のしきい値と比較するための手段と、
前記第2の測定値を比較することに基づいて前記深度センサを無効にするための手段と
を備える前記深度センサを無効にするための手段をさらに備える、請求項12に記載のモバイルデバイス。
【請求項１４】
前記第1の測定値が、
慣性センサ測定値からの直線加速度のレート、
慣性センサ測定値からの角加速度のレート、
慣性センサ測定値のノイズレベル、
光レベル、
不明瞭度の指示、または、
画像のフレームレート
のうちの少なくとも1つを含む、請求項12に記載のモバイルデバイス。
【請求項１５】
モバイルデバイスのポーズを追跡するための前記モバイルデバイスのためのプログラムコードを記憶した非一時的コンピュータ可読記憶媒体であって、前記プログラムコードが、請求項1乃至11のいずれか1項に記載の方法を前記モバイルデバイスのプロセッサに実行させるためのコードを備える、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その両方がそれらの全体において参照により本明細書に組み込まれている、2013年11月25日に出願した、「Power efficient use of a depth sensor on a mobile device」と題する米国仮出願第61/908,443号の米国特許法第119(e)条の下での利益および優先権を主張するものである、2014年11月24日に出願した、「Power efficient use of a depth sensor on a mobile device」と題する、米国出願第14/552,183号の利益および優先権を主張するものであり、それらの両方は、それらの全体において参照により本明細書に組み込まれている。
【０００２】
本開示は、全体的には、モバイルデバイス上の深度センサの電力消費を最小化するためのシステム、装置、および方法に関し、より具体的には、画像がポーズ計算のためには不適切であることをセンサ測定値が示すときにのみ深度センサを有効にすることに関する。
【背景技術】
【０００３】
利用可能なセンサを使用したモバイルデバイスの動き推定および軌跡推定は、広範囲の重要なアプリケーションを有する。短い期間(たとえば、数ミリ秒)にわたる動き推定は、ぶれ除去および超解像において重要である。幅のある時間(たとえば数秒)にわたる軌跡推定は、拡張現実(AR)、短距離ナビゲーション、および位置推定において有用である。低光量状況は、動き推定と軌跡推定の両方に影響を与える。
【０００４】
慣性センサはカメラよりも高いレートで動きを測定するので、アプリケーションは、しばしば、これらの状況のために慣性センサを使用する。しかしながら、慣性センサは、固有のバイアスと、規則的なバイアス補正なしで「推測航法」を実行する際に課題を追加する他のエラー源とを有する。すなわち、慣性測定ユニット(IMU)のバイアス状態の更新は、連続的なポーズ推定を必要とする。モバイルデバイスは、慣性センサ測定値を使用して、6自由度(6DoF)ポーズ軌跡を計算することができる。6DoFポーズ計算は、上下(ヒーブ)、左右(スウェイ)、および前後(サージ)の並進運動、ならびに、前後チルト(ピッチ)、左右旋回(ヨー)、および横ピボット(ロール)の回転運動を考慮する。モバイルデバイスは、数100ミリ秒の間のこの運動を集積することができる。
【０００５】
一例では、モバイルデバイスがIMUに対するポーズ補正を含まず、したがって、バイアスされた慣性センサ測定値を提供すると仮定する。短期間および長期間にわたってそのような慣性センサ測定値を集積することは、結果に悪影響を与えるエラーをもたらす。たとえば、ビデオの毎秒10フレーム(fps)のフレームレートは、ビデオ内の各画像に対して100ミリ秒(ms)の露光時間をもたらす。さらに、モバイルデバイスの6DoFポーズは、慣性センサ測定値のみを使用し、IMUからの慣性センサ測定値を補正することなく計算されると仮定する。そのような計算は、ポーズエラーと、IMUに対する旧式のバイアス推定値との両方を生じさせることになる。
【０００６】
慣性センサのエラー状態が、カメラなどの非IMUデバイスからの測定値を用いて定期的に補正される場合、モバイルデバイスは、より優れた動き推定と軌跡推定の両方を行うことができる。さらに、慣性センサのエラー状態は、そのようなデバイスを用いて補正され得る。しかしながら、そのような非IMUデバイスは、連続的に利用することができない。たとえば、視覚-慣性追跡システムにおけるカメラの停止期間または長い画像露光の期間中、カメラは、十分な頻度でポーズ補正および慣性状態補正を提供することができない。別の非カメラデバイスは、ポーズ補正および慣性状態補正をより良好に維持するために、このギャップを埋めることができる。そのようなポーズ補正および慣性状態補正は、一般にポーズおよび慣性状態の推定を維持するために用いられる拡張カルマンフィルタ(EKF)などの再帰型フィルタの動作を向上させることもできる。
【０００７】
追跡アプリケーションを含むいくつかの視覚-慣性追跡システムは、慣性センサからの慣性センサ測定値とカメラからの画像の両方を使用する。しかしながら、頻繁でないカメラの更新は、間違いの多い慣性エラー状態をもたらす可能性がある。今度は、間違いの多い慣性エラー状態は、不正確な動き予測により、カメラ追跡の停止期間をもたらす可能性がある。これらの停止中に別のデバイスからの支援なしでは、慣性センサ測定値から集積された動きは、バイアスドリフトの影響を受けやすい可能性がある。さらに、全体としてのフィルタ状態は、それらの真の値から無制限な方法で逸脱する可能性がある。
【０００８】
たとえば、カメラのポーズが6フレームの間の慣性状態を更新するために利用できない場合、30fpsビデオストリームにおいて、非カメラデバイスからの状態の補正が生じない可能性がある200ミリ秒(ms)が経過する可能性がある。この200ミリ秒の期間中、EKFポーズ推定値および慣性状態推定値は、それらの真の値から離れてドリフトし、EKFの障害につながる可能性がある。そのような障害では、EKF慣性状態推定値に依存するユーザアプリケーションは、同様に失敗する可能性がある。
【０００９】
視覚-慣性追跡システムで一般的なこれらの欠点を緩和するために、実施形態は、画像ベースのポーズ測定値が100ミリ秒よりも長い間(たとえば、>150ミリ秒)利用できないカメラ停止期間中、EKFへのポーズ補正を提供する。非カメラデバイスからのそのようなポーズ推定値は、EKFに補正測定値を提供することによって、視覚-慣性追跡システムの堅牢性を大幅に向上させることができる。本明細書に記載の実施形態は、非カメラデバイスとして深度センサからの補正機構を提供する。
【発明の概要】
【課題を解決するための手段】
【００１０】
開示されるのは、動きおよび追跡アルゴリズムにおいて使用されるポーズ計算を維持するために他のモダリティが不適切であるとき、深度センサのみに電力を供給するためのシステム、装置、および方法である。
【００１１】
いくつかの態様によれば、開示されるのは、モバイルデバイスのポーズを追跡するためのモバイルデバイスにおける方法であって、方法は、画像キャプチャデバイスから複数の画像を受信するステップと、複数の画像のうちの1つに少なくとも部分的に基づいてポーズを計算するステップと、ポーズ追跡フィルタモジュールにポーズを送信するステップと、第1の測定値が第1のしきい値を超えることを決定するために第1の測定値を第1のしきい値と比較するステップと、第1の測定値を比較することに少なくとも部分的に基づいて深度センサを有効にするステップと、第1の深度マップを受信するステップと、第1の深度マップに部分的に基づいて深度センサポーズを計算するステップと、ポーズ追跡フィルタモジュールに深度センサポーズを提供するステップと、を含む。
【００１２】
いくつかの態様によれば、ポーズを追跡するためのモバイルデバイスであって、モバイルデバイスは、複数の画像をキャプチャするように構成された画像キャプチャデバイスと、画像キャプチャデバイスに結合され、複数の画像のうちの1つに少なくとも部分的に基づいてポーズを計算するように構成されたポーズモジュールと、第1の深度マップを送信するように構成された深度センサと、第1の測定値が第1のしきい値を超えることを決定するために第1の測定値を第1のしきい値と比較するように構成された比較器モジュールと、深度センサおよび比較器モジュールに結合され、第1の測定値を比較することに少なくとも部分的に基づいて深度センサを有効にするように構成された深度センサトリガモジュールと、深度センサに結合され、第1の深度マップに部分的に基づいて深度センサポーズを計算するように構成された深度センサポーズモジュールと、ポーズモジュールおよび深度センサポーズモジュールに結合され、ポーズおよび深度センサポーズを受信し、推定されたポーズを提供するように構成されたポーズ追跡フィルタモジュールと、を備える。
【００１３】
いくつかの態様によれば、開示されるのは、モバイルデバイスのポーズを追跡するためのモバイルデバイスであって、モバイルデバイスは、画像キャプチャデバイスから複数の画像を受信するための手段と、複数の画像のうちの1つに少なくとも部分的に基づいてポーズを計算するための手段と、ポーズ追跡フィルタモジュールにポーズを送信するための手段と、第1の測定値が第1のしきい値を超えることを決定するために第1の測定値を第1のしきい値と比較するための手段と、第1の測定値を比較することに少なくとも部分的に基づいて深度センサを有効にするための手段と、第1の深度マップを受信するための手段と、第1の深度マップに部分的に基づいて深度センサポーズを計算するための手段と、ポーズ追跡フィルタモジュールに深度センサポーズを提供するための手段と、を備える。
【００１４】
いくつかの態様によれば、開示されるのは、モバイルデバイスのポーズを追跡するためのモバイルデバイスのためのプログラムコードを備える、その上に記憶されたプログラムコードを含む非一時的コンピュータ可読記憶媒体であって、プログラムコードは、画像キャプチャデバイスから複数の画像を受信し、複数の画像のうちの1つに少なくとも部分的に基づいてポーズを計算し、ポーズ追跡フィルタモジュールにポーズを送信し、第1の測定値が第1のしきい値を超えることを決定するために第1の測定値を第1のしきい値と比較し、第1の測定値を比較することに少なくとも部分的に基づいて深度センサを有効にし、第1の深度マップを受信し、第1の深度マップに部分的に基づいて深度センサポーズを計算し、ポーズ追跡フィルタモジュールに深度センサポーズを提供するためのコードを備える。
【００１５】
他の態様は、例示として様々な態様が示され、記載されている以下の詳細な説明から、当業者には容易に明らかになることが理解される。図面および詳細な説明は、本質的に例示と見なされるべきであり、限定と見なされるべきではない。
【００１６】
本発明の実施形態は、図面を参照しながら、単なる例として説明される。
【図面の簡単な説明】
【００１７】
【図１】深度センサなしのモバイルデバイスにおける処理のブロック図である。
【図２】深度センサを有するモバイルデバイスにおける処理のブロック図である。
【図３Ａ】本発明のいくつかの実施形態による、深度センサの使用を最小化するためのモバイルデバイスの機能モジュールを示す図である。
【図３Ｂ】本発明のいくつかの実施形態による、深度センサの使用を最小化するためのモバイルデバイスの機能モジュールを示す図である。
【図４】本発明のいくつかの実施形態による、深度センサをトリガする理由を示す図である。
【図５】本発明のいくつかの実施形態によるモバイルデバイスを示す図である。
【図６】本発明のいくつかの実施形態による、他のセンサによって残されたギャップを埋めながら深度センサの使用を最小化するためのモバイルデバイスにおける方法を示す図である。
【図７】本発明のいくつかの実施形態による、他のセンサによって残されたギャップを埋めながら深度センサの使用を最小化するためのモバイルデバイスにおける方法を示す図である。
【図８】本発明のいくつかの実施形態による、他のセンサによって残されたギャップを埋めながら深度センサの使用を最小化するためのモバイルデバイスにおける方法を示す図である。
【図９】本発明のいくつかの実施形態による、推定されたポーズを使用する慣性センサの補正を示す図である。
【図１０】本発明のいくつかの実施形態によるタイムラインを示す図である。
【発明を実施するための形態】
【００１８】
添付図面に関連して以下に述べる詳細な説明は、本開示の様々な態様の説明として意図され、本開示が実施され得る唯一の態様を表すことは意図していない。本開示において説明される各態様は、単に本開示の例または例示として提供されており、必ずしも他の態様より好ましいまたは有利であると解釈されるべきではない。詳細な説明は、本開示を完全に理解してもらうために、具体的な細部を含む。しかしながら、これらの特定の細部を用いることなく本開示を実践できることは、当業者には明らかであろう。場合によっては、本開示の概念を曖昧にするのを避けるために、周知の構造およびデバイスがブロック図の形で示される。頭字語および他の説明的な用語は、単に便宜的に、そして明確にするために使用される場合があり、本開示の範囲を限定することは意図していない。
【００１９】
本明細書に記載の位置決定技術は、ワイヤレスワイドエリアネットワーク(WWAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイヤレスパーソナルエリアネットワーク(WPAN)、などの、様々なワイヤレス通信ネットワークに関連して実施され得る。「ネットワーク」および「システム」という用語は互換的に使用されることが多い。WWANは、符号分割多元接続(CDMA)ネットワーク、時分割多元接続(TDMA)ネットワーク、周波数分割多元接続(FDMA)ネットワーク、直交周波数分割多元接続(OFDMA)ネットワーク、シングルキャリア周波数分割多元接続(SC-FDMA)ネットワーク、Long Term Evolution(LTE)などであってよい。CDMAネットワークは、cdma2000、Wideband-CDMA(W-CDMA)などの1つまたは複数の無線アクセス技術(RAT)を実施してよい。cdma2000はIS-95標準、IS-2000標準、IS-856標準を含む。TDMAネットワークは、汎欧州デジタル移動電話方式(GSM(登録商標))、デジタルアドバンスド携帯電話システム(D-AMPS)、またはなにか他のRATを実施することができる。GSM(登録商標)とW-CDMAとは、「第3世代パートナーシッププロジェクト」(3GPP)と称されるコンソーシアムからの文書において説明されている。cdma2000は、「第3世代パートナーシッププロジェクト2」(3GPP2)と称されるコンソーシアムからの文書において説明されている。3GPP文書と3GPP2文書とは、一般的に利用可能である。WLANはIEEE802.11xネットワークであり得、WPANはブルートゥース(登録商標)ネットワーク、IEEE802.15x、または他の何らかのタイプのネットワークであり得る。また、これらの技法は、WWAN、WLAN、および/またはWPANの任意の組合せとともに、実装され得る。
【００２０】
本明細書で使用される場合、モバイルデバイスは、時には、セルラー電話、携帯電話、もしくは他のワイヤレス通信デバイス、パーソナル通信システム(PCS)デバイス、パーソナルナビゲーションデバイス(PND)、パーソナル情報マネージャ(PIM)、携帯情報端末(PDA)、ラップトップ、または、ワイヤレス通信および/もしくはナビゲーション信号を受信することができる他の適切なモバイルデバイスなどの、移動局(MS)またはユーザ機器(UE)と呼ばれる。「モバイルデバイス」という用語は、衛星信号受信、支援データ受信、および/または位置関連処理がそのデバイスにおいて行われるか、またはパーソナルナビゲーションデバイス(PND)において行われるかにかかわらず、短距離ワイヤレス、赤外線、有線接続、または他の接続などによって、PNDと通信するデバイスを含むことも意図している。さらに、「モバイルデバイス」は、衛星信号受信、支援データ受信、および/または、位置関連処理が、そのデバイスにおいて行われるか、サーバにおいて行われるか、またはネットワークに関連付けられる別のデバイスにおいて行われるかにかかわらず、たとえば、インターネット、WiFi、または他のネットワークを介してサーバと通信することができる、ワイヤレス通信デバイス、コンピュータ、ラップトップなどを含むすべてのデバイスを含むことも意図している。上記の任意の動作可能な組合せも、「モバイルデバイス」と見なされる。
【００２１】
カメラベースのポーズ推定は、ポーズを推定するために、画像シーケンスまたは複数の画像を使用する。ポーズは、絶対方位、または、カメラもしくは他の画像キャプチャデバイスに対する方位であり得る。ポーズは、2次元(2D)または3次元(3D)方位を示すことができる。いくつかの実施形態では、位置と方位の両方の組合せが物体のポーズと呼ばれる。他の実施形態では、方位のみが物体のポーズと呼ばれる。しばしば、未較正の2Dカメラが3Dポーズを計算するために使用され得る。未較正の2Dカメラは、世界座標系に対して較正されておらず、したがって、相対的なポーズを提供する。較正された2Dカメラは、絶対的なポーズを提供するために、世界座標系に対して較正されている。3Dオブジェクトの3D回転および並進は、3Dオブジェクトの3Dモデルが既知であり、2D画像内の対応する点が決定されていると仮定して、単一の2D画像から推定され得る。
【００２２】
ポーズ推定値は、高いレートにおいて必要とされることがあるが、実際には、(たとえば、低光量状況において)あまりにもゆっくりと生成される。画像シーケンスが遅すぎて到着したとき、実質的なギャップが画像間に生じる可能性がある。これらの状況では、単独のカメラベースのポーズ推定、または画像キャプチャデバイスに基づく他のポーズ推定は、これらのギャップの間に誤ったポーズ推定値を提供する可能性がある。
【００２３】
深度センサは、ポーズ推定値の代わりに、またはポーズ推定値を補足するために使用され得る。そうすることで、深度センサは、カメラ画像、または画像キャプチャデバイスからの画像が頻繁でなくなったときなどに、カメラベースの推定値の間の時間ギャップを減少させることができる。しかしながら、モバイルデバイス内の深度センサは、長時間の使用でバッテリをすぐに消耗させる可能性がある膨大な量の電力を消費する。深度センサの電力要件のため、方法、装置、およびシステムは、以下に説明するように、電力効率的な方法で深度センサを利用する。実施形態は、トリガイベント(たとえば、動きが速すぎるとき、画像内のノイズがしきい値を超えたとき、低光量状態に入ったとき、画像がぼけすぎなとき、ギャップが画像間に現れることが予想される直前、しきい値を超えるギャップが実際に現れたとき、など)中に深度測定のために深度センサに電力を供給することを提案する。
【００２４】
図1は、深度センサなしのモバイルデバイス100における処理のブロック図を示す。モバイルデバイス100は、画像センサ(たとえば、RGBセンサ、カメラ110、など)と、ポーズモジュール(たとえば、カメラベースポーズ決定モジュール120)と、フィルタ(たとえば、ポーズ追跡フィルタモジュール122、EKF、粒子フィルタ、アンセンテッドカルマンフィルタ、シグマポイントカルマンフィルタ、線形回帰カルマンフィルタ、差分商フィルタ、平方根フィルタ、など)とを含む。
【００２５】
カメラ110、または他の画像キャプチャデバイスは、カメラベースポーズ決定モジュール120にカメラ画像を提供する。カメラベースポーズ決定モジュール120は、モバイルデバイス100のカメラポーズを決定するためにカメラ画像を使用する。ポーズは、POS(正射影およびスケーリングからのポーズ(Pose from Orthography and Scaling))アルゴリズムから決定され得る。1つのそのような反復アルゴリズム、POSIT(反復を有するPOS)は、少数の反復内でポーズを決定することができる。
【００２６】
カメラベースポーズ決定モジュール120は、ポーズ追跡フィルタモジュール122にカメラポーズを供給する。ポーズ追跡フィルタモジュール122は、オブジェクトのカメラ画像に基づいてカメラのポーズを推定する。いくつかの実施形態では、ポーズは、IMUからの慣性センサ測定値なしで、カメラ110からの1つのみのまたは複数の画像を使用して推定される。他の実施形態では、ポーズは、IMUからの慣性センサ測定値と、カメラ110からの1つまたは複数の画像の両方の組合せを使用して推定される。ポーズ追跡フィルタモジュール122(1つの入力ポートを有する)は、単一のポーズ入力を受け入れる。ポーズは、次いで。EKFのためのポーズ補正および/またはプロセッサのための慣性状態補正および/またはIMUのためのバイアス補正を計算するために使用され得る。
【００２７】
残念ながら、低光量状況または無光状況などのいくつかの状況では、カメラ110は、カメラベースポーズ決定モジュール120に十分な速度でカメラ画像を提供することができない。他の状況では、カメラ110からの画像は、カメラベースポーズ決定モジュール120がカメラポーズを確実に計算するために十分に適切ではない(たとえば、ノイズが多すぎる、ぶれすぎる、暗すぎる)。したがって、ポーズ追跡フィルタモジュール122は、この期間中に十分な新鮮なカメラポーズを受信せず、新鮮でないカメラポーズ情報に依存する可能性がある。
【００２８】
図2は、深度センサ240を有するモバイルデバイス200における処理のブロック図を示す。深度センサ240は、カメラ210、または他の画像キャプチャデバイスを補足し、そのため、ポーズ追跡フィルタモジュール222は、(カメラ210の少なくとも1つの画像から決定される)カメラポーズおよび/または(深度センサから決定される)深度センサポーズを常に受信する。いくつかの場合には、カメラ210と深度センサ240の両方が電源投入される。
【００２９】
モバイルデバイス100とは異なり、モバイルデバイス200は、カメラ210と、カメラベースポーズ決定モジュール220と、ポーズ追跡フィルタモジュール222とを含む。カメラ210は、深度センサ240と、深度センサベースポーズ決定モジュール224も含む。上記で説明したように、カメラ210(カメラ110と同様)は、カメラベースポーズ決定モジュール220に1つまたは複数のカメラ画像を提供し、カメラベースポーズ決定モジュール220は、カメラポーズを決定する。
【００３０】
同様に、深度センサ240は、深度センサベースポーズ決定モジュール224に深度マップ(深度センサマップまたは深度センサ画像とも呼ばれる)を提供する。深度センサベースポーズ決定モジュール224は、1つまたは複数の深度マップから深度センサポーズを決定する。ポーズ追跡フィルタモジュール222(2つの入力ポートを有する)は、カメラポーズと深度センサポーズの両方を受信し、推定されたポーズを決定する。ポーズ追跡フィルタモジュール222は、磁力計またはコンパス、ステップセンサ、近接センサ、GNSSセンサ、などの他のセンサからの慣性センサ測定値を受信することもできる。
【００３１】
残念ながら、常に有効な深度センサ240を有するモバイルデバイス200は、過度のレベルの電力を消費し、これは、モバイルデバイス200におけるバッテリを早く消耗させる可能性がある。この過剰な電力消費に対する解決策は、実際に必要とされるときにのみ深度センサ240を自動的に有効にし、使用することである。
【００３２】
図3Aは、本発明のいくつかの実施形態による、深度センサ340の使用を最小化するためのモバイルデバイス300の機能モジュールを示す。モバイルデバイス300は、モバイルデバイス200において上記で説明したように、カメラ310と、カメラベースポーズ決定モジュール320と、ポーズ追跡フィルタモジュール322と、深度センサ340と、深度センサベースポーズ決定モジュール324とを含む。
【００３３】
モバイルデバイス300は、また、深度センサトリガモジュール328とポーズ切替えモジュール326とを含む。深度センサトリガモジュール328からの深度センサオン/オフ信号に基づいて、深度センサ340は、有効または無効のいずれかにされる。有効にされたとき、深度センサ340は、深度センサベースポーズ決定モジュール224に関して上記で説明したように、深度センサベースポーズ決定モジュール324に深度センサ画像を提供する。無効にされたとき、深度センサ340は、有効にされたときと比較して、まったくまたはほとんど電力を消費しない。
【００３４】
深度センサトリガモジュール328は、また、ポーズ切替えモジュール326にオプションのポーズ選択信号を送信する。ポーズ選択信号に基づいて、ポーズ切替えモジュール326は、選択されたポーズとしてカメラポーズまたは深度センサポーズのいずれかを選択する。選択されたポーズは、ポーズ追跡フィルタモジュール322に供給され、ポーズ追跡フィルタモジュール322は、現在および過去の選択されたポーズに基づいて、推定されたポーズを提供する。
【００３５】
いくつかの実施形態において、ポーズ切替えモジュール326は、カメラ画像が、ノイズが多すぎる、暗すぎる、明るすぎる、ぼけすぎる、または頻繁でなさすぎる(または、であると予想される)とき、深度センサポーズを選択する。いくつかの実施形態では、ポーズ切替えモジュール326は、利用可能なときに深度センサポーズを選択し、深度センサポーズが利用できないときにカメラポーズを選択する。これらの実施形態では、ポーズ選択信号は、オプションである。
【００３６】
ポーズ切替えモジュール326は、利用可能なときに深度センサポーズを選択し、深度センサポーズが利用できないときにカメラポーズを選択することができる。代替的には、単一の入力ポートを有するポーズ追跡フィルタモジュール322の代わりに、モバイルデバイス300は、図3Bに示すように2つの入力ポートを有するポーズ追跡フィルタモジュール322'を含むことができる。そのような実施形態では、モバイルデバイス300は、ポーズスイッチモジュール326、または深度センサトリガモジュール328からのポーズ選択信号をもはや使用しない。代わりに、EKFまたはポーズ追跡フィルタモジュール322'は、これら2つの入力ポート間の内部選択または重み付け選択を含むことができる。
【００３７】
図3Bにおいて、ポーズ追跡フィルタモジュール322'は、その入力ポートにおいてカメラポーズと深度センサポーズの両方を受信し、その出力ポートにおいて推定されたポーズを提供する。モバイルデバイス300は、カメラベースポーズ決定モジュール320に供給するカメラ310または同様の画像キャプチャデバイスを含む。カメラベースポーズ決定モジュール320は、上記で説明したようにカメラポーズを出力する。
【００３８】
モバイルデバイス300は、また、上記で説明したように、深度センサトリガモジュール328と、深度センサ340と、深度センサベースポーズ決定モジュール324とを含む。深度センサトリガモジュール328は、深度センサ340を有効および無効にする。深度センサトリガモジュール328によって有効にされたとき、深度センサ340は、電力を消費する。深度センサトリガモジュール328によって無効にされたとき、深度センサ340は、低電力〜無電力消費状態にある。深度センサ340は、深度センサベースポーズ決定モジュール324に供給する。深度センサベースポーズ決定モジュール324は、深度センサポーズを出力する。モバイルデバイス300は、ポーズ追跡フィルタモジュール322'も含み、ポーズ追跡フィルタモジュール322'は、入力ポートにおいて、利用可能なとき、カメラポーズと深度センサポーズの両方を受け入れ、推定されたポーズを出力する。
【００３９】
図4は、本発明のいくつかの実施形態による、深度センサ340をトリガする理由を示す。深度センサトリガモジュール428のいくつかの実施形態には、深度センサトリガモジュール328と同様に、深度センサ340を有効にまたは無効にするための単一の原因を受ける。他の実施形態は、深度センサ340を有効にまたは無効にするための2つ以上の原因を受ける深度センサトリガモジュール428を含む。深度センサトリガモジュール428は、単一のトリガまたはインジケータにおいて動作することができる。深度センサトリガモジュール428は、2つ以上のインジケータを有する1つまたは複数の論理ANDおよび/または論理ORゲートにおいて動作することができる。深度センサトリガモジュール428は、深度センサ340をオンにする特定の入力と、深度センサ340をオフにする他の入力とを必要とすることがある。
【００４０】
深度センサトリガモジュール428は、1つまたは複数の慣性センサ450、光センサ412、および/または(カメラ310と同様の、もしくは同様の画像キャプチャデバイスと同様の)カメラ410からの測定値に基づいて切り替えられ得る。たとえば、加速度または速度モジュール430は、慣性センサ測定値が、しきい値よりも上または下であり、モバイルデバイス300のこの動きを速すぎると見なす、慣性センサ450からの角速度もしくは角加速度のレート、または線速度もしくは線加速度のレートを表しているかどうかを決定する。そのような速い動きは、カメラ410からの画像における動きぼけまたは他の劣化につながることが予想され、ポーズ計算のための画像は、無視または補充され得る。たとえば、しきい値を超えて加速する、またはしきい値よりも高い速度におけるモバイルデバイス300は、カメラ410からの画像が、不明瞭すぎる、または他の方法で(たとえば、光レベルまたは動きぶれにより)不適切であることが予想される。
【００４１】
ノイズモジュール432は、慣性センサ450からの慣性センサ測定値がしきい値ノイズレベルよりも上であり、したがって、慣性センサ測定値のノイズが多すぎ、画像が不明瞭すぎることが予想されるかどうかを決定する。光モジュール434は、光センサ412からの光レベルがしきい値よりも上または下であり、したがって、カメラ410からの画像が、暗すぎるもしくは明るすぎる、および/または低頻度であることが予想されるかどうかを決定する。光レベルは、また、カメラ410からの、または、代替的には、周囲光のレベルを測定する別個のセンサからの(たとえば、照度計もしくは周囲光センサからの)画像から計算され得る。不明瞭度モジュール436は、カメラ410からの画像が不明瞭度しきい値よりも上であり、したがって、画像がポーズ計算において使用するには不明瞭すぎるかどうかを決定する。頻度モジュール438は、カメラ410からの画像がしきい値未満のフレームレートにおいて到着しており、したがって、画像のレートがポーズ計算において使用するには低すぎるかどうかを決定する。たとえば、到着フレームレートは、250ミリ秒ごとに1フレームであるが、しきい値は、150ミリ秒である。この例では、画像は、適切なポーズ推定を提供するには低頻度すぎる。
【００４２】
深度センサトリガモジュール428は、深度センサ340の有効化または無効化をトリガするために1つまたは複数のこれらのモジュール(すなわち、モジュール430〜438)からインジケータを受信する。1つよりも多くのモジュールが実装されている場合、深度センサトリガモジュール438は、ORゲートおよび/またはANDゲートのように作用することができ、モジュールの任意の1つまたは特定の組合せは、深度センサ340をトリガすることができる。1つのモジュールのみが実装されている場合、モジュールからのインジケータは、別個の深度センサトリガモジュール428を必要とせずに、深度センサ340をトリガするために直接使用され得る。モジュール(たとえば、モジュール430〜438のうちのいずれか)は、また、測定値がインジケータを有効にするために第1のしきい値よりも上(または下)でなければならないが、インジケータを無効にするために第2のしきい値よりも下(または上)でなければならないように、ヒステリシスを含むことができる。
【００４３】
図5は、本発明のいくつかの実施形態による、モバイルデバイス300と同様のモバイルデバイス500を示す。モバイルデバイス500は、オプションでバス505によって一緒に結合された、複数のバスによって一緒に結合された、および/または直接結合された、カメラ510と、光センサ512と、深度センサ540と、1つまたは複数の慣性センサ550と、1つまたは複数の他のセンサ560と、プロセッサ570と、メモリ580と、トランシーバ590とを含む。
【００４４】
カメラ410と同様のカメラ510、または他の画像キャプチャデバイスは、複数の画像をキャプチャし、プロセッサ570内のモジュールに画像を提供する。カメラ510または他の画像キャプチャデバイスは、画像、第1の画像および第2の画像、または複数の画像をキャプチャするための手段として機能する。光センサ412と同様の光センサ512は、モバイルデバイス500における周囲光レベルを測定する。光レベルは、カメラ510からの画像から、または光センサ512を用いて直接決定され得る。
【００４５】
深度センサ340と同様の深度センサ540は、IR(赤外線)プロジェクタ542とIRセンサ544とを含むことができる。深度センサ540は、単一の深度マップ、第1の深度マップおよび第2の深度マップ、または複数の深度マップをキャプチャするための手段として機能する。IRプロジェクタ542は、IR光を投影し、IRセンサ544は、投影されたIR光の反射を受ける。慣性センサ450と同様の1つまたは複数の慣性センサ550は、加速度計、ジャイロスコープ、などを含むことができる。1つまたは複数の他のセンサ560は、磁力計またはコンパス、ステップセンサ、近接センサ、GNSSセンサ、などを含むことができる。
以下に説明するように、プロセッサ570は、1つまたは複数の汎用プロセッサまたは専用プロセッサであり得る。プロセッサ570は、第1の測定値を第1のしきい値と比較するための手段、第1の比較を設定するための手段、第1の比較に基づいて深度センサ540を有効にするための手段、第1の深度マップおよび第2の深度マップから深度センサポーズを計算するための手段、ならびに/または、ポーズ追跡フィルタモジュール322'に深度センサポーズを供給するための手段として機能することができる。プロセッサ570は、複数の画像のうちの少なくとも1つに少なくとも部分的に基づいてポーズを計算するための手段、ポーズ追跡フィルタモジュールにポーズを送信するための手段、第1の測定値が第1のしきい値を超えることを決定するために第1の測定値を第1のしきい値と比較するための手段、第1の測定値を比較することに少なくとも部分的に基づいて深度センサを有効にするための手段、および/または、第1の深度マップを受信するための手段として機能することができる。プロセッサ570は、第2の測定値が第1のしきい値を超えることを決定するために第2の測定値を第1のしきい値と比較するための手段、第2の測定値を比較することに基づいて深度センサを無効にするための手段、および/または、ポーズ追跡フィルタモジュールから推定されたポーズを計算するための手段として機能することができる。
【００４６】
プロセッサ570は、メモリ580を含むことができ、および/または、メモリ580は、プロセッサ570から分離され得る。メモリ580は、モジュール430〜438のためのソフトウェアコードを含む。トランシーバ590は、プロセッサ570に(図示のように)直接または(たとえば、バス505を介して)間接的に結合される。トランシーバ590は、受信機と送信機とを含み、モバイルデバイス500が、それぞれ、セルラーチャネル、および/またはWiFiチャネル、および/またはBluetooth(登録商標)チャネルなどの、WWAN(ワイヤレスワイドエリアネットワーク)、および/またはWLAN(ワイヤレスローカルエリアネットワーク)、および/またはWPAN(ワイヤレスパーソナルエリアネットワーク)を介して通信することを可能にする。
【００４７】
図6〜図9は、本発明のいくつかの実施形態による、他のセンサによって残されたギャップを埋めながら深度センサ540の使用を最小化するためのモバイルデバイス500における方法600、700、および800を示す。
【００４８】
図6において、方法600は、カメラ510からの画像が不適切なときに深度センサ540を有効にするモバイルデバイス500における処理を示す。不適切な画像は、誤ったポーズ結果を提供する可能性がある。不適切な画像は、たとえば、移動もしくは加速が速すぎるモバイルデバイス500からの、または、ノイズが多すぎる慣性センサ測定値によるものである。不適切な画像は、暗すぎる、明るすぎる、または不明瞭すぎる可能性がある。不適切な画像は、到着が遅すぎる可能性がある。不適切な画像は、これらのインジケータに関する2つ以上の論理的組合せを含む可能性がある。
【００４９】
610において、モバイルデバイス500のカメラ510は、第1の画像をキャプチャする。代替的には、モバイルデバイス500内のプロセッサ570は、第1の画像の代わりに第1の深度マップを取得する。612において、カメラ510は、第2の画像をキャプチャする。代替的には、モバイルデバイス500内のプロセッサ570は、第2の画像の代わりに、第2の深度マップ、または物体のモデルを取得する。
【００５０】
620において、モバイルデバイス500内のプロセッサ570のカメラベースポーズ決定モジュール320は、第1の画像および第2の画像からカメラポーズを計算する。代替的には、プロセッサ570は、第1の画像または第1の深度マップと、第2の画像、第2の深度マップ、またはオブジェクトのモデルとの間の変化からポーズを計算することができる。代替的には、プロセッサ570は、第1の深度マップ画像および第2の画像からポーズを計算することができる。
【００５１】
630において、プロセッサ570は、ポーズ追跡フィルタモジュール322またはポーズ追跡フィルタモジュール322'にカメラポーズを供給する。インジケータのうちの1つ、すべて、または特定の組合せが、640において測定値または画像が十分であることを示す限り、処理は、610において繰り返される。1つの計算からの第2の画像は、次の計算の第1の画像になる。いくつかの実施形態は、排他的OR(XOR)動作を実装し、カメラポーズは、深度センサポーズがポーズ追跡フィルタモジュール322に供給されないとき、ポーズ追跡フィルタモジュール322に供給される。他の実施形態において、カメラポーズは、利用可能なとき、画像が不適切だと判断されても、利用可能である深度センサポーズに関係なく、ポーズ追跡フィルタモジュール322'に供給される。いくつかの実施形態では、妥当性のインジケータがポーズ追跡フィルタモジュール322'に供給される。
【００５２】
640において、プロセッサ570は、第1の比較をもたらすために第1の測定値を第1のしきい値と比較する。比較の動作は、第1の測定値が第1のしきい値よりも大きいかまたは小さいかを決定することであり得る。第1の測定値は、図4に関して説明したように、1つまたは複数の慣性センサ550、光センサ512、またはカメラ510から得られ、モジュール430〜438のいずれかに供給され得る。代替的には、プロセッサ570は、複数の比較または複数のインジケータをもたらすために、1つもしくは複数の慣性センサ測定値および/または1つもしくは複数の画像を複数のそれぞれのしきい値と比較する。深度センサトリガモジュール428は、深度センサオン/オフ信号をもたらすために、複数のインジケータを組み合わせる。深度センサオン/オフ信号は、深度センサ540を有効および無効にするために使用される。
【００５３】
642において、プロセッサ570は、第1の比較に基づいて深度センサ540を有効にする。代替的には、プロセッサ570は、深度センサオン/オフ信号に基づいて深度センサ540を有効にする。すなわち、深度センサ540は、画像が不適切である(または、不適切であると予想される)とき、有効にされ得、画像が再び適切になった(または、適切になったと予想される)とき、無効にされ得る。
【００５４】
650において、深度センサ540は、第1の深度マップをキャプチャする。652において、再び深度センサ540が必要な場合、深度センサ540は、第2の深度マップをキャプチャする。660において、プロセッサ570の深度センサベースポーズ決定モジュール324は、第1の深度マップもしくは第1の画像および第2の深度マップ、モデル、または第2の画像から、深度センサポーズを計算する。たとえば、深度センサベースポーズ決定モジュール324は、第1の深度マップおよび第2の深度マップから深度センサポーズを計算する。他の実施形態では、深度センサベースポーズ決定モジュール324は、ポーズを計算するために第2の深度マップを必要としない。これらの他の実施形態では、深度センサベースポーズ決定モジュール324は、深度センサポーズを計算するために、第1の深度マップを、シーンのマップ、または以前の動作で計算されたオブジェクトのモデルと比較する。このようにして、深度センサベースポーズ決定モジュール324は、シーンのマップまたはオブジェクトのモデルとともにちょうど深度マップからカメラポーズを計算することができる。
【００５５】
670において、プロセッサ570は、ポーズ追跡フィルタモジュール322またはポーズ追跡フィルタモジュール322'に深度センサポーズを供給する。1つの、1つよりも多くの、特定の組合せの、またはすべてのインジケータ(たとえば、動き、光、周波数、など)が、680によって慣性センサ測定値またはカメラ画像が不適切である(または、不適切であると予想される)ことを示す限り、処理は、650において継続する。1つの計算からの第2の深度マップは、次の計算の第1の深度マップになる。
【００５６】
680において、インジケータが、慣性センサ測定値またはカメラ510からの画像が不適切なままである(または、不適切なままであると予想される)ことを示すとき、処理は、650において繰り返される。他方において、インジケータが、測定値またはカメラ510からの画像が再び適切になった(適切になったと予想される)ことを示すとき、処理は、深度センサ540を無効にする。すなわち、680において、プロセッサ570は、慣性センサ測定値をしきい値および/または画像と比較する。1つまたは複数の比較結果は、深度センサ540を無効にするかどうかを決定する。再び、第2の測定値は、図4に関して説明したように、1つまたは複数の慣性センサ550、光センサ512、またはカメラ510から得られ、モジュール430〜438のうちのいずれかに供給され得る。682において、プロセッサ570は、1つまたは複数の比較結果に基づいて深度センサ540を無効にする。
【００５７】
図7において、モバイルデバイス500における方法700が示されている。710において、モバイルデバイス500のプロセッサ570は、カメラ510を用いて複数の画像をキャプチャし、複数の画像からカメラポーズを計算し、次いで、ポーズ追跡フィルタモジュール322にカメラポーズを供給する。
【００５８】
720において、プロセッサ570は、比較結果を形成するために、第1のセンサ測定値を第1のしきい値と比較する。第1のセンサ測定値が第1のしきい値を超える(第1のしきい値よりも高いまたは低い)場合、カメラ510からの画像は、不適切である可能性がある。いくつかの実施形態では、しきい値は、最小許容値である。いくつかの実施形態では、しきい値は、最大許容値である。代替的には、複数の比較が使用され得る。たとえば、プロセッサ570は、1つもしくは複数の慣性センサ測定値、および/または1つもしくは複数の他のセンサ測定値、および/または1つもしくは複数のカメラセンサ画像、などを、複数の対応するしきい値と比較する。各比較結果は、深度センサトリガモジュール428に供給され得る。図4に示すように、第1の比較結果と同様に、深度センサトリガモジュール428は、深度センサオン/オフ信号を生成することができる。
【００５９】
730において、プロセッサ570は、第1の比較結果または深度センサオン/オフ信号に基づいて、カメラ画像が不適切になったか、または不適切であると予想されるかどうかを決定する。画像が不適切ではない場合、処理は、ステップ710にループバックする。画像が不適切である場合、処理は、ステップ740に進む。
【００６０】
740において、プロセッサ570は、カメラ510からの顔像が不適切である、または不適切である可能性があることを示す比較結果または深度センサオン/オフ信号に少なくとも部分的に基づいて深度センサ540を有効にする。このようにして、プロセッサ570は、以下に説明するように、ステップ750〜770において説明するように、深度センサポーズを用いて誤ったカメラポーズを置換または補完することができる。
【００６１】
750において、深度センサ540は、深度マップをキャプチャする。760において、深度センサベースポーズ決定モジュール324は、深度マップから深度センサポーズを計算する。たとえば、深度センサベースポーズ決定モジュール324は、深度マップおよび第2の深度マップに基づいて深度センサポーズを計算する。代替的には、深度センサベースポーズ決定モジュール324は、深度マップおよび画像に基づいて深度センサポーズを計算することができる。代替的には、深度センサベースポーズ決定モジュール324は、深度マップおよび深度マップ内のオブジェクトのモデルに基づいて深度センサポーズを計算することができる。
【００６２】
770において、プロセッサ570は、ポーズ追跡フィルタモジュール322またはポーズ追跡フィルタモジュール322'に深度センサポーズを供給する。深度センサポーズは、カメラポーズを置換または補完することができる。
【００６３】
780において、プロセッサ570は、上記で説明したように、比較結果または深度センサオン/オフ信号に基づいて、カメラ画像が依然として不適切であるかどうかを決定する。画像が不適切なままである場合、処理は、ステップ750にループバックする。画像がもはや不適切ではない場合、処理は、ステップ790に進む。たとえば、慣性センサ測定値が、モバイルデバイス500が十分に遅く移動しているもしくは加速していることを示すとき、慣性センサ測定値が低いレベルのノイズを有するとき、光センサもしくは画像が、画像が暗すぎないもしくは明るすぎないことを示すとき、画像が不明瞭すぎないとき、および/または、画像が十分に頻繁であるとき、画像は、再び適切である(または、再び適切であると予想される)。これらのインジケータおよびしきい値は、図4に関して上記で論じたものと同じであってもよく、または、ヒステリシスが深度センサ540の有効化と無効化との間に形成されるように異なっていてもよい。790において、画像が再び適切になるか、タイムアウトが生じたとき、深度センサ540は、バッテリ電力を節約するために無効にされ得る。
【００６４】
図8において、モバイルデバイス500のポーズを追跡するためのモバイルデバイス500における方法800が示されている。810において、モバイルデバイス500は、画像キャプチャデバイスから複数の画像を受信する。画像キャプチャデバイスは、カメラ520を含むことができる。複数の画像は、第1の画像と第2の画像とを含むことができる。
【００６５】
820において、モバイルデバイス500は、複数の画像のうちの1つに少なくとも部分的に基づいてカメラポーズを計算する。ポーズは、1つの画像、2つの画像、またはいくつかの画像に基づいて決定され得る。830において、モバイルデバイス500は、ポーズ追跡フィルタモジュール322または322'にカメラポーズを送信する。
【００６６】
840において、モバイルデバイス500は、第1の測定値が第1のしきい値を超えていることを決定するために、第1の測定値を第1のしきい値と比較する。第1の測定値は、慣性センサ550、光センサ412、カメラ512、または他の画像キャプチャデバイス、などの形態であり得る。1つまたは複数の追加の測定値は、また、深度センサトリガ信号をもたらすために、それぞれのしきい値と比較され、組み合わされ得る。850において、モバイルデバイス500は、第1の測定値の比較に少なくとも部分的に基づいて、深度センサ540を有効にする。
【００６７】
860において、モバイルデバイス500は、第1の深度マップを受信する。870において、モバイルデバイス500は、第1の深度マップに部分的に基づいて深度センサポーズを計算する。深度センサポーズは、カメラポーズを補間または置換することができる。880において、モバイルデバイス500は、ポーズ追跡フィルタモジュール322または322'に深度センサポーズを提供する。
【００６８】
方法800は、さらに、第2の深度マップをキャプチャするステップを含むことができ、第1の深度マップに部分的に基づいて深度センサポーズを計算するステップは、第1の深度マップおよび第2の深度マップから深度センサポーズを計算するステップを含むことができる。
【００６９】
第1の測定値は、慣性センサ測定値から得られた角速度のレートまたは角加速度のレートを含むことができる。第1の測定値は、慣性センサ測定値のノイズレベル、光レベル、不明瞭度の指示、および/またはカメラ画像のフレームレートを含むことができる。ポーズ追跡フィルタモジュール322または322'は、拡張カルマンフィルタ(EKF)または粒子フィルタを備えることができる。
【００７０】
方法800は、さらに、ポーズ追跡フィルタモジュール322または322'から推定されたポーズを計算するステップを含むことができる。方法800は、さらに、深度センサ540を無効にするステップを含むことができる。深度センサ540を無効にするステップは、第2の測定値が第1のしきい値を超えることを決定するために、第2の測定値を第1のしきい値と比較するステップと、第2の測定値を比較することに基づいて深度センサ540を無効にするステップとを含むことができる。
【００７１】
図9は、本発明のいくつかの実施形態による、推定されたポーズを使用する慣性センサ450の補正を示す。上記で論じたポーズ追跡フィルタモジュール322は、カメラポーズまたは深度センサポーズのいずれかの選択された1つを受信する。カメラポーズは、たとえば、図3Aまたは図3Bのカメラベースポーズ計算モジュール320から受信され、ベースポーズ計算モジュール320は、カメラ310もしくは510または他の画像キャプチャデバイスから画像を受信する。深度センサポーズは、たとえば、図3Aまたは図3Bの深度センサベースポーズ計算モジュール324から受信され、深度センサベースポーズ計算モジュール324は、深度センサ340または540から深度センサマップを受信する。同様に、上記で論じたポーズ追跡フィルタモジュール322'は、カメラポーズと深度センサポーズとを受信する。カメラ510からの画像が不適切であるとき。
【００７２】
深度センサ540は、有効にされ、深度センサマップを提供し、深度センサマップは、今度は深度センサポーズを計算するために使用される。深度センサポーズは、不適切なカメラ画像を置換または補完するために使用され得る。カメラポーズおよび/または深度センサポーズは、推定されたポーズを形成するためにポーズ追跡フィルタモジュール322または322'によって使用される。推定されたポーズは、慣性ポーズを推定されたポーズと比較するためにバイアス決定モジュール910に供給される。慣性ポーズは、慣性センサ測定値から決定される。慣性ポーズと推定されたポーズとの間の差は、バイアス補正を計算するために使用され、バイアス補正は、慣性センサ450にフィードバックされる。バイアス補正は、固有の慣性センサバイアスを低減または排除し、したがって、慣性センサ測定値を改善するために慣性センサ450によって使用される。
【００７３】
図10は、本発明のいくつかの実施形態によるタイムラインを示す。カメラからの画像は、適切であることと不適切であることとの間で切り替わる可能性がある。画像は、ポーズ計算が不正確なポーズ計算をもたらす、またはもたらすことが予想される場合、不適切であり得、または不適切であると考えられ得る慣性センサ、光センサ、画像センサ、磁力計またはコンパス、ステップセンサ、近接センサ、GNSSセンサ、などからのセンサ測定値は、画像がポーズ計算のために不適切であることを決定するために使用され得る。
【００７４】
たとえば、慣性センサ、ステップセンサ、またはGNSSセンサは、モバイルデバイスが不明瞭でない画像を保証するにはあまりに速く移動していることを示す可能性がある。画像センサからの画像の分析は、画像が不鮮明すぎすることを示す可能性があり、したがって、不正確なポーズが予想される。画像センサからの画像または光センサからのセンサ測定値の分析は、画像がポーズ計算のための十分な細部を示すには明るすぎることを示す可能性がある。画像または光センサ測定値の分析は、画像が頻繁な十分な画像のためには暗すぎることを示す可能性がある
【００７５】
カメラが不正確なポーズ計算をもたらす可能性がある不適切なカメラ画像を生成する可能性がある時間の間、深度センサは、有効にされ、深度マップを生成することができる。深度センサからの深度マップは、単独で不正確なポーズ計算をもたらすことになるカメラ画像を補完または置換することができる。その後、深度センサは、カメラ画像が再び適切であるとき、無効にされ得、深度マップは、もはや生成されない。
【００７６】
本明細書に記載の方法は、用途に応じて様々な手段によって実装され得る。たとえば、これらの方法は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組合せにおいて実装され得る。ハードウェア実装の場合、プロセッサまたは他の処理ユニットは、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、本明細書に記載の機能を実行するように設計された他の電子ユニット、またはそれらの組合せ内に実装され得る。
【００７７】
ファームウェアおよび/またはソフトウェア実装の場合、方法は、本明細書に記載の機能を実行するモジュール(たとえば、手順、機能、など)を用いて実装され得る。命令を有形に具体化する任意の機械可読媒体は、本明細書に記載の方法を実装する際に使用され得る。たとえば、ソフトウェアコードは、メモリ内に記憶され得、プロセッサユニットによって実行され得る。メモリは、プロセッサユニット内、またはプロセッサユニットの外部に実装され得る。本明細書で使用される場合、「メモリ」という用語は、長期、短期、揮発性、不揮発性、または他のメモリを指し、任意の特定のメモリのタイプもしくはメモリの数、または、メモリが格納される媒体のタイプに限定されるべきではない。
【００７８】
ファームウェアおよび/またはソフトウェアにおいて実装される場合、機能は、コンピュータ可読媒体上に1つまたは複数の命令またはコードとして記憶され得る。例は、データ構造を用いて符号化されたコンピュータ可読媒体と、コンピュータプログラムを用いて符号化されたコンピュータ可読媒体とを含む。コンピュータ可読媒体は物理的コンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。例として、限定するものではないが、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、もしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形態において所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができ、ディスク(disk)およびディスク(disc)は、本明細書で使用される場合、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、Blu-ray(登録商標)ディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザを用いて光学的にデータを再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００７９】
コンピュータ可読媒体上の記憶に加えて、命令および/またはデータは、通信装置内に含まれる伝送媒体上の信号として提供され得る。たとえば、通信装置は、命令およびデータを示す信号を有するトランシーバを含むことができる。命令およびデータは、1つまたは複数のプロセッサに、特許請求の範囲に概説した機能を実施させるように構成される。すなわち、通信装置は、開示される機能を実行するための情報を示す信号を有する送信媒体を含む。最初は、通信装置に含まれる送信媒体は、開示された機能を実行するための情報の第1の部分を含むことができ、2度目は、通信装置に含まれる送信媒体は、開示された機能を実行するための情報の第2の部分を含むことができる。
【００８０】
開示された態様の前述の説明は、当業者が本開示を作製または使用することを可能にするために提供される。これらの態様への種々の変更は当業者には容易に明らかになり、本明細書において規定された一般原理は、本開示の趣旨または範囲から逸脱することなく他の態様に適用することができる。
【符号の説明】
【００８１】
100  モバイルデバイス
110  カメラ
120  カメラベースポーズ決定モジュール
122  ポーズ追跡フィルタモジュール
200  モバイルデバイス
210  カメラ
220  カメラベースポーズ決定モジュール
222  ポーズ追跡フィルタモジュール
224  深度センサポーズ決定モジュール
240  深度センサ
300  モバイルデバイス
310  カメラ
320  カメラベースポーズ決定モジュール
322  ポーズ追跡フィルタモジュール
322'  ポーズ追跡フィルタモジュール
324  深度センサベースポーズ決定モジュール
326  ポーズ切替えモジュール
328  深度センサトリガモジュール
340  深度センサ
410  カメラ
412  光センサ
428  深度センサトリガモジュール
430  加速度または速度モジュール
432  ノイズモジュール
434  光モジュール
436  不明瞭度モジュール
438  頻度モジュール
450  慣性センサ
500  モバイルデバイス
505  バス
510  カメラ
512  光センサ
540  深度センサ
542  IR(赤外線)プロジェクタ
544  IRセンサ
550  慣性センサ
560  他のセンサ
570  プロセッサ
580  メモリ
590  トランシーバ
910  バイアス決定モジュール
【図１】
0006490689.tif 000002
【図２】
0006490689.tif 000003
【図３Ａ】
0006490689.tif 000004
【図３Ｂ】
0006490689.tif 000005
【図４】
0006490689.tif 000006
【図５】
0006490689.tif 000007
【図６】
0006490689.tif 000008
【図７】
0006490689.tif 000009
【図８】
0006490689.tif 000010
【図９】
0006490689.tif 000011
【図１０】
0006490689.tif 000012