(57)【特許請求の範囲】
【請求項１】
モバイルデバイスにおける複数のセンサのうちの第１センサからイメージデータを受信する工程であって、前記イメージデータはターゲットオブジェクトを表すデータを含む工程と、
前記複数のセンサのうちの第２センサを用いて決定されるセンサデータを受信する工程と、
前記ターゲットオブジェクトに対してのオブジェクト識別情報を前記イメージデータに基づいて決定するオブジェクト識別情報決定工程と、
前記オブジェクト識別情報に基づいてオブジェクトデータを取り出す工程であって、前記オブジェクトデータは前記オブジェクト識別情報の３次元表現に関するデータを含む工程と、
前記イメージデータを出力する前記第１センサに対応する前記第２センサから出力される予測されるセンサ値を決定するように、前記オブジェクトデータを前記イメージデータにおいて前記ターゲットオブジェクトを表す前記データと比較する比較工程と、
受信した前記センサデータと前記予測されるセンサ値との間の差異に基づいてセンサキャリブレーション値を決定するキャリブレーション値決定工程と、
前記センサキャリブレーション値に基づいて前記第２センサを調整する工程と
を備える方法。
【請求項２】
前記イメージデータは複数の２次元イメージからなるシーケンスを含み、
前記シーケンスのうちの第１イメージと前記シーケンスのうちの第２イメージとの両方は、前記ターゲットオブジェクトを表すデータを含み、
前記第１イメージのイメージキャプチャ位置は、前記第２イメージのイメージキャプチャ位置とは異なり、
受信した前記センサデータは、前記第１イメージの前記イメージキャプチャ位置と前記第２イメージの前記イメージキャプチャ位置との間の移動に関するデータを含む、
請求項１に記載の方法。
【請求項３】
前記オブジェクトデータは前記オブジェクト識別情報に関連付けられている色データを含み、
前記センサキャリブレーション値は、前記オブジェクト識別情報に関連付けられている前記色データと、前記ターゲットオブジェクトを表す前記データの色データとの間の差異に基づく、
請求項１に記載の方法。
【請求項４】
前記モバイルデバイスのプロセッサは、前記オブジェクト識別情報決定工程と、前記比較工程と、前記キャリブレーション値決定工程とを実行する、
請求項１に記載の方法。
【請求項５】
前記オブジェクト識別情報決定工程は、
前記イメージデータの少なくとも一部をリモートサーバに通信する工程と、
前記オブジェクト識別情報を示すデータを前記リモートサーバから受信する工程と
を含む請求項１に記載の方法。
【請求項６】
前記オブジェクトデータは、第２モバイルデバイスからサーバに対して通信されるイメージデータに基づいて取り出される、
請求項１に記載の方法。
【請求項７】
第２ターゲットオブジェクトに対してのオブジェクト識別情報を前記イメージデータに基づいて決定する工程であって、前記イメージデータは前記第２ターゲットオブジェクトを表すデータを含む工程と、
前記オブジェクト識別情報に基づいて第２オブジェクトデータを取り出す工程と、
前記オブジェクトデータと、前記第２オブジェクトデータと、前記イメージデータとに基づいて、前記予測されるセンサ値を決定する工程と、
をさらに備え、
前記予測されるセンサ値は、
（ｉ）前記オブジェクトデータを前記イメージデータにおいて前記ターゲットオブジェクトを表すデータと比較する工程と、
（ｉｉ）前記第２オブジェクトデータを前記イメージデータにおいて前記第２ターゲットオブジェクトを表すデータと比較する工程との両方によって、決定される、
請求項１に記載の方法。
【請求項８】
イメージデータをキャプチャするように構成されている少なくとも１つのカメラと、
少なくとも１つのセンサと、
プロセッサと、を備え、前記プロセッサは、
前記少なくとも１つのカメラからイメージデータを受信する工程であって、前記イメージデータはターゲットオブジェクトを表すデータを含む工程と、
前記少なくとも１つのセンサを用いて決定されるセンサデータを受信する工程と、
前記ターゲットオブジェクトに対してのオブジェクト識別情報を前記イメージデータに基づいて決定するオブジェクト識別情報決定工程と、
前記オブジェクト識別情報に基づいてオブジェクトデータを取り出す工程であって、前記オブジェクトデータは前記オブジェクト識別情報の３次元表現に関するデータを含む工程と、
前記イメージデータを出力する前記第１センサに対応する前記第２センサから出力される予測されるセンサ値を決定するように、前記オブジェクトデータを前記イメージデータにおいて前記ターゲットオブジェクトを表す前記データと比較する比較工程と、
受信した前記センサデータと前記予測されるセンサ値との間の差異に基づいてセンサキャリブレーション値を決定するキャリブレーション値決定工程と、
前記センサキャリブレーション値に基づいて前記少なくとも１つのセンサを調整する工程とを行うように構成されている、
モバイルデバイス。
【請求項９】
前記イメージデータは複数の２次元イメージからなるシーケンスを含み、
前記シーケンスのうちの第１イメージと前記シーケンスのうちの第２イメージとの両方は、前記ターゲットオブジェクトを表すデータを含み、
前記第１イメージのイメージキャプチャ位置は、前記第２イメージのイメージキャプチャ位置とは異なり、
受信した前記センサデータは、前記第１イメージの前記イメージキャプチャ位置と前記第２イメージの前記イメージキャプチャ位置との間の移動に関するデータを含む、
請求項８に記載のモバイルデバイス。
【請求項１０】
前記オブジェクトデータは前記オブジェクト識別情報に関連付けられている色データを含み、
前記センサキャリブレーション値は、前記オブジェクト識別情報に関連付けられている前記色データと、前記ターゲットオブジェクトを表す前記データの色データとの間の差異に基づく、
請求項８に記載のモバイルデバイス。
【請求項１１】
前記オブジェクト識別情報決定工程は、
前記イメージデータの少なくとも一部をリモートサーバに通信する工程と、
オブジェクト識別情報を示すデータを前記リモートサーバから受信する工程とを前記プロセッサが行うようにさらに構成されていることを含む請求項８に記載のモバイルデバイス。
【請求項１２】
前記オブジェクトデータは、第２モバイルデバイスからサーバに対して通信されるイメージデータに基づいて取り出される、
請求項８に記載のモバイルデバイス。
【請求項１３】
第２ターゲットオブジェクトに対してのオブジェクト識別情報を前記イメージデータに基づいて決定する工程であって、前記イメージデータは前記第２ターゲットオブジェクトを表すデータを含む工程と、
前記オブジェクト識別情報に基づいて第２オブジェクトデータを取り出す工程と、
前記オブジェクトデータと、前記第２オブジェクトデータと、前記イメージデータとに基づいて、前記予測されるセンサ値を決定する工程とを前記プロセッサが行うようにさらに構成されていることをさらに含み、
前記予測されるセンサ値は、
（ｉ）前記オブジェクトデータを前記イメージデータにおいて前記ターゲットオブジェクトを表すデータと比較する工程と、
（ｉｉ）前記第２オブジェクトデータを前記イメージデータにおいて前記第２ターゲットオブジェクトを表すデータと比較する工程との両方によって、決定される、
請求項８に記載のモバイルデバイス。
【請求項１４】
命令が記憶されている非一時的なコンピュータ可読媒体であって、前記命令はシステムにおけるプロセッサによって実行されるときに前記システムに、
モバイルデバイスにおける複数のセンサのうちの第１センサからイメージデータを受信する工程であって、前記イメージデータはターゲットオブジェクトを表すデータを含む工程と、
前記複数のセンサのうちの第２センサを用いて決定されるセンサデータを受信する工程と、
前記ターゲットオブジェクトに対してのオブジェクト識別情報を前記イメージデータに基づいて決定するオブジェクト識別情報決定工程と、
前記オブジェクト識別情報に基づいてオブジェクトデータを取り出す工程であって、前記オブジェクトデータは前記オブジェクト識別情報の３次元表現に関するデータを含む工程と、
前記イメージデータを出力する前記第１センサに対応する前記第２センサから出力される予測されるセンサ値を決定するように、前記オブジェクトデータを前記イメージデータにおいて前記ターゲットオブジェクトを表す前記データと比較する比較工程と、
受信した前記センサデータと前記予測されるセンサ値との間の差異に基づいてセンサキャリブレーション値を決定するキャリブレーション値決定工程と、
前記センサキャリブレーション値に基づいて前記第２センサを調整する工程と
を含む動作を実行させる、非一時的なコンピュータ可読媒体。
【請求項１５】
前記イメージデータは複数の２次元イメージからなるシーケンスを含み、
前記シーケンスのうちの第１イメージと前記シーケンスのうちの第２イメージとの両方は、前記ターゲットオブジェクトを表すデータを含み、
前記第１イメージのイメージキャプチャ位置は、前記第２イメージのイメージキャプチャ位置とは異なり、
受信した前記センサデータは、前記第１イメージの前記イメージキャプチャ位置と前記第２イメージの前記イメージキャプチャ位置との間の移動に関するデータを含む、
請求項１４に記載の非一時的なコンピュータ可読媒体。
【請求項１６】
前記オブジェクトデータは前記オブジェクト識別情報に関連付けられている色データを含み、
前記センサキャリブレーション値は、前記オブジェクト識別情報に関連付けられている前記色データと、前記ターゲットオブジェクトを表す前記データの色データとの間の差異に基づく、
請求項１４に記載の非一時的なコンピュータ可読媒体。
【請求項１７】
前記モバイルデバイスのプロセッサは、前記オブジェクト識別情報決定工程と、前記比較工程と、前記キャリブレーション値決定工程とを実行する、
請求項１４に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記オブジェクト識別情報決定工程は、
前記イメージデータの少なくとも一部をリモートサーバに通信する工程と、
オブジェクト識別情報を示すデータを前記リモートサーバから受信する工程と
を含む請求項１４に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記オブジェクトデータは、第２モバイルデバイスからサーバに対して通信されるイメージデータに基づいて取り出される、
請求項１４に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
第２ターゲットオブジェクトに対してのオブジェクト識別情報を前記イメージデータに基づいて決定する工程であって、前記イメージデータは前記第２ターゲットオブジェクトを表すデータを含む工程と、
前記オブジェクト識別情報に基づいて第２オブジェクトデータを取り出す工程と、
前記オブジェクトデータと、前記第２オブジェクトデータと、前記イメージデータとに基づいて、前記予測されるセンサ値を決定する工程と、
をさらに備え、
前記予測されるセンサ値は、
（ｉ）前記オブジェクトデータを前記イメージデータにおいて前記ターゲットオブジェクトを表すデータと比較する工程と、
（ｉｉ）前記第２オブジェクトデータを前記イメージデータにおいて前記第２ターゲットオブジェクトを表すデータと比較する工程との両方によって、決定される、
請求項１４に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認識されたオブジェクトを用いてセンサのキャリブレーションを行うための方法およびシステムに関する。
【背景技術】
【０００２】
多数の最新モバイルデバイスは、高速データ通信を可能とするための高度なコンピューティングおよびコネクティビティ性能に加えて、様々なセンサを備える。たとえば、モバイルデバイス（スマートフォン、タブレット、ウェアラブルコンピューティングデバイスなど）の多くは、イメージングおよびポジショニングのためのセンサを搭載する。モバイルデバイスにおいて見られるいくつかのセンサには、たとえば、加速度計、ジャイロスコープ、磁力計、気圧計、グローバルポジショニングシステム（ＧＰＳ）受信機、マイクロフォン、カメラ、Ｗｉ−Ｆｉ（登録商標）センサ、ＢＬＵＥＴＯＯＴＨ（登録商標）センサ、温度センサおよび圧力センサが、他の種類のセンサに加えて含まれる。
【０００３】
幅広い種類の利用可能なセンサによって、モバイルデバイスは様々な機能を実行し、様々なユーザエクスペリエンスを提供することができる。一例として、モバイルデバイスは、ユーザが環境を通じてモバイルデバイスを移動させる際のモバイルデバイスの軌跡を決定するために、イメージングおよび／またはポジショニングデータを用い得る。他の例として、モバイルデバイスは、環境の２Ｄまたは３Ｄマップを生成するために、または環境の２Ｄまたは３Ｄマップ内でのモバイルデバイスの位置を決定するために、イメージングおよび／またはポジショニングデータを用い得る。さらなる例として、モバイルデバイスは、拡張現実アプリケーションを可能とするために、イメージングおよび／またはポジショニングデータを用い得る。他の例も存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
認識されたオブジェクトを用いてセンサのキャリブレーションを行うための方法およびシステムを提供する。
【課題を解決するための手段】
【０００５】
モバイルデバイスがセンサからのデータに依拠して特定の機能（たとえば、軌跡決定、走行距離計測、マップ生成）を実行する例においては、センサから受信したデータのキャリブレーションを行うことができると有利なことがある。たとえば、モバイルデバイスにおけるセンサは、デバイスが製造されるときの工場出荷時設定においてキャリブレーションが行われてもよい。本明細書において説明されるのは、工場出荷時設定以外を含む、センサのキャリブレーションを行うための方法およびシステムである。たとえば、モバイルデバイスのエンドユーザは光データをイメージまたはビデオデータとしてキャプチャしてもよく、モバイルデバイスの様々なセンサのキャリブレーションを行うために、この光データが用いられてもよい。
【０００６】
一例の態様においては、複数のセンサを有するモバイルデバイスによって行われる方法が提供される。前記方法は、モバイルデバイスにおける複数のセンサのうちの第１センサからイメージデータを受信する工程を備える。前記イメージデータはターゲットオブジェクトを表すデータを含んでもよい。前記方法はさらに、前記複数のセンサのうちの第２センサを用いて決定されるセンサデータを受信する工程を備える。前記方法はさらに、前記ターゲットオブジェクトに対してのオブジェクト識別情報を前記イメージデータに基づいて決定する工程を備える。前記方法はさらに、前記オブジェクト識別情報に基づいてオブジェクトデータを取り出す工程を備える。前記オブジェクトデータは前記オブジェクト識別情報の３次元表現に関するデータを含んでもよい。前記方法はさらに、前記イメージデータを出力する前記第１センサに対応する前記第２センサから出力される予測されるセンサ値を決定するように、前記オブジェクトデータを前記イメージデータにおいて前記ターゲットオブジェクトを表す前記データと比較する工程を備える。前記方法はさらに、受信した前記センサデータと前記予測されるセンサ値との間の差異に基づいてセンサキャリブレーション値を決定する工程を備える。前記方法はさらに、前記センサキャリブレーション値に基づいて前記第２センサを調整する工程を備える。
【０００７】
別例の態様においては、モバイルデバイスが提供される。前記モバイルデバイスは、イメージデータをキャプチャするように構成されている少なくとも１つのカメラと、少なくとも１つのセンサと、プロセッサと、を備える。前記プロセッサは、前記少なくとも１つのカメラからイメージデータを受信するように構成されている。前記イメージデータはターゲットオブジェクトを表すデータを含む。前記プロセッサはさらに、前記少なくとも１つのセンサを用いて決定されるセンサデータを受信するように構成されている。前記プロセッサはさらに、前記ターゲットオブジェクトに対してのオブジェクト識別情報を前記イメージデータに基づいて決定するように構成されている。前記プロセッサはさらに、前記オブジェクト情報が決定された後、前記オブジェクト識別情報に基づいてオブジェクトデータを取り出すように構成されている。前記オブジェクトデータは前記オブジェクト識別情報の３次元表現に関するデータを含む。前記プロセッサはさらに、前記イメージデータを出力する前記第１センサに対応する前記第２センサから出力される予測されるセンサ値を決定するように、前記オブジェクトデータを前記イメージデータにおいて前記ターゲットオブジェクトを表す前記データと比較するように構成されている。前記プロセッサはさらに、受信した前記センサデータと前記予測されるセンサ値との間の差異に基づいてセンサキャリブレーション値を決定するように構成されている。前記プロセッサはさらに、前記センサキャリブレーション値に基づいて前記少なくとも１つのセンサを調整するように構成されている。
【０００８】
さらなる別例の態様においては、１または複数のプロセッサによって実行されるときに前記１または複数のプロセッサに複数の機能を実行させる非一時的なコンピュータ可読媒体が提供される。前記複数の機能は、モバイルデバイスにおける複数のセンサのうちの第１センサからイメージデータを受信する工程を含む。前記イメージデータはターゲットオブジェクトを表すデータを含んでもよい。前記複数の機能はさらに、前記複数のセンサのうちの第２センサを用いて決定されるセンサデータを受信する工程を含む。前記複数の機能はさらに、前記ターゲットオブジェクトに対してのオブジェクト識別情報を前記イメージデータに基づいて決定する工程を含む。前記複数の機能はさらに、前記オブジェクト識別情報に基づいてオブジェクトデータを取り出す工程を含む。前記オブジェクトデータは前記オブジェクト識別情報の３次元表現に関するデータを含んでもよい。前記複数の機能はさらに、前記イメージデータを出力する前記第１センサに対応する前記第２センサから出力される予測されるセンサ値を決定するように、前記オブジェクトデータを前記イメージデータにおいて前記ターゲットオブジェクトを表す前記データと比較する工程を含む。前記複数の機能はさらに、受信した前記センサデータと前記予測されるセンサ値との間の差異に基づいてセンサキャリブレーション値を決定する工程を含む。前記複数の機能はさらに、前記センサキャリブレーション値に基づいて前記第２センサを調整する工程とを含む。
【０００９】
前述のサマリは例示にすぎず、いかなる方法においても限定することを意図していない。上記の態様、実施形態および特徴に加えて、図面と以下の詳細な説明との参照によって、さらなる態様、実施形態および特徴が明らかになる。
【図面の簡単な説明】
【００１０】
【図１】一例のコンピューティングデバイスを示す図。
【図２】別例のコンピューティングデバイスを示す図。
【図３Ａ】コンピューティングデバイスの一例を示す概略図。
【図３Ｂ】コンピューティングデバイスの一例を示す概略図。
【図４】椅子の画像データをキャプチャしているモバイルデバイスの一例を示す概略図。
【図５】椅子に対する３次元オブジェクトデータのレンダリングの一例を表す図。
【図６】デバイスセンサキャリブレーションのための方法の一例を示す図。
【図７Ａ】本明細書において説明される方法の一実施形態のためのフローダイアグラムを示す図。
【図７Ｂ】本明細書において説明される方法の一実施形態のためのフローダイアグラムを示す図。
【図８】コンピュータデバイス上でコンピュータプロセスを行うためのコンピュータプログラムを含むコンピュータプログラム製品の一例を示す部分概略図。
【発明を実施するための形態】
【００１１】
以下の詳細な説明において、本明細書の一部を構成する添付図面が参照される。図面において、別段の指示がない限り、類似の符号によって概して類似の構成要素が識別される。詳細な説明、図面および請求項に説明される例示的実施形態は、限定的であることを意図していない。本明細書に提示される主題の範囲から逸脱することなく、他の実施形態が用いられてもよいし、他の変更がなされてもよい。本発明の態様は、本明細書において概して説明され、図面に示されている通りに、その全てが本明細書において明確に意図されている幅広い種類の様々な構成において、配置、置換、結合、分離および設計されると容易に理解される。
【００１２】
複数の例において、モバイルデバイスはイメージをキャプチャし、それに応じて、キャプチャされたイメージに基づいてセンサキャリブレーションを決定し得る。たとえば、モバイルデバイスは少なくとも１つのイメージをキャプチャして、さらに、各イメージと共にセンサデータをキャプチャし得る。モバイルデバイスは、イメージから少なくとも１つのオブジェクトを認識し得る。いくつかの例では、モバイルでは、デバイスにローカルであるか、またはリモートの位置にあるデータベースに問い合わせを行い、オブジェクトに関する情報を取得し得る。オブジェクトに関する情報は、３次元オブジェクトデータを含み得る。その後、モバイルデバイスは、３次元オブジェクトデータおよびキャプチャされたイメージに基づいて、関連付けられているセンサ値を決定し得る。関連付けられているセンサ値は、キャプチャされたセンサデータと比較され、センサキャリブレーションを決定する。その後、決定されたセンサキャリブレーションは、関連付けられているセンサに適用され得る。
【００１３】
以下、本明細書において、比較のためのイメージおよびセンサ読取値に由来し得る情報の種類の様々な例が説明される。いくつかの例においては、コンピューティングデバイスは、計算に基づいて、モバイルデバイスの様々なセンサの内的および／または外的パラメータの精度を決定し得る。内的パラメータは、１つのセンサの出力からのデータを扱うパラメータであり得る。たとえば、ジャイロスコープ装置におけるバイアスは、内的パラメータであり得る。外的パラメータは、一組のセンサからのアンサンブル出力を記述するパラメータであり得る。たとえば、センサ対の相対位置および配向は、ある場面を移動する際にその複数の計測値がどのように同時に生じるのか記述するのに役立つ。
【００１４】
他の例において、他のモバイルデバイスに由来する情報は、キャリブレーションを補助するために用いられ得る。一例として、第１モバイルデバイスは、ピクチャを撮り得る。このピクチャは、サーバに対して通信され得る。第２モバイルデバイスがピクチャを撮るとき、サーバは、オブジェクトが第１デバイスからの第１ピクチャおよび第２デバイスからの第２ピクチャの中に存在していたと判定し得る。第２デバイスのセンサのためのキャリブレーションは、部分的には第１デバイスからのピクチャに関連付けられている情報に基づいて計算され得る。
【００１５】
さらなる例示的な方法および例示的なデバイス（たとえば、モバイル、または、そうでないもの）が、添付の図面を参照して本明細書において説明される。
図面を参照して、図１は例示的なコンピューティングデバイス１００を示す。いくつかの例においては、図１に示されるコンポーネントは、複数のコンピューティングデバイスを通じて分散され得る。しかしながら、例示のために、コンポーネントは例示的なコンピューティングデバイス１００の一部として示され、説明されている。コンピューティングデバイス１００は、モバイルデバイス（たとえば、モバイルフォン）、デスクトップコンピュータ、ラップトップコンピュータ、電子メール／メッセージングデバイス、タブレットコンピュータまたは本明細書において説明される機能を実行するように構成され得る類似のデバイスであり得る、または、含み得る。コンピューティングデバイス１００は概して、本明細書において説明される方法および機能に従ってデータを送信または受信するように構成されているコンピューティングデバイスまたは送信機のいずれかの種類であり得る。
【００１６】
コンピューティングデバイス１００は、インターフェース１０２、無線通信コンポーネント１０４、セルラー無線通信コンポーネント１０６、グローバルポジショニングシステム（ＧＰＳ）受信機１０８、１または複数のセンサ１１０、データストレージ１１２および１または複数のプロセッサ１１４を備え得る。図１に示される複数のコンポーネントは、通信リンク１１６によってリンクされてもよい。コンピューティングデバイス１００はさらに、コンピューティングデバイス１００内における、および、コンピューティングデバイス１００と他の図示しないコンピューティングデバイス（たとえば、サーバエンティティ）との間における通信を可能にするためのハードウェアを含み得る。ハードウェアは、送信機、受信機、アンテナなどを含み得る。
【００１７】
インターフェース１０２は、コンピューティングデバイス１００が他の図示しないコンピューティングデバイス（たとえば、サーバ）と通信することを可能にするように構成され得る。したがって、インターフェース１０２は、１または複数のコンピューティングデバイスからの入力データを受信し、さらに、１または複数のコンピューティングデバイスからの出力データを送信するように構成され得る。インターフェース１０２は、無線または有線通信プロトコルに従って機能するように構成され得る。いくつかの例において、インターフェース１０２は、複数のボタン、キーボード、タッチスクリーン、１または複数のスピーカ１１８、１または複数のマイクロフォン１２０および／または他の任意の入力受信のための要素を含み得る。さらにインターフェース１０２は、１または複数のディスプレイおよび／または他の任意の出力通信のための要素を含み得る。
【００１８】
無線通信コンポーネント１０４は、１または複数の通信規格に従ったコンピューティングデバイス１００のための無線データ通信を可能とするように構成されている通信インターフェースであり得る。たとえば、無線通信コンポーネント１０４は、１または複数のＩＥＥＥ８０２．１１規格に従った無線データ通信を可能とするように構成されているＷｉ−Ｆｉ（登録商標）通信コンポーネントを含み得る。別の例として、無線通信コンポーネント１０４は、１または複数のＢＬＵＥＴＯＯＴＨ（登録商標）通信規格に従った無線データ通信を可能とするように構成されているＢＬＵＥＴＯＯＴＨ（登録商標）通信コンポーネントを含み得る。他の例も可能である。
【００１９】
セルラー無線通信コンポーネント１０６は、ネットワークにモバイルコネクティビティを提供するためにセルラー無線基地局との無線通信（音声および／またはデータ）を可能とするように構成されている通信インターフェースであり得る。セルラー無線通信コンポーネント１０６は、たとえば、コンピューティングデバイス１００が位置するセルの基地局に接続されるように構成され得る。
【００２０】
ＧＰＳ受信機１０８は、ＧＰＳ衛星によって送信される信号を正確に計時することによりコンピューティングデバイス１００の位置を推定するように構成され得る。
１または複数のセンサ１１０は、１または複数のセンサを含み得るか、または、コンピューティングデバイス１００内に含まれる１または複数のセンサを表し得る。センサはたとえば、加速度計と、ジャイロスコープと、慣性計測装置（ＩＭＵ）と、歩数計と、光センサと、マイクロフォンと、１または複数のカメラと、赤外線フラッシュと、気圧計と、磁力計と、Ｗｉ−Ｆｉ（登録商標）と、近距離無線通信（ＮＦＣ）と、ＢＬＵＥＴＯＯＴＨ（登録商標）と、プロジェクタと、深度センサと、温度センサと、他の位置および／または状況察知センサとを含む。
【００２１】
データストレージ１１２は、１または複数のプロセッサ１１４によってアクセスおよび実行されるプログラムロジック１２２を記憶し得る。データストレージ１１２はさらに、１または複数のセンサ１１０によって収集されるデータ、または、無線通信コンポーネント１０４、セルラー無線通信コンポーネント１０６およびＧＰＳ受信機１０８のうちいずれかによって収集されるデータを記憶し得る。
【００２２】
１または複数のプロセッサ１１４は、１または複数のセンサ１１０に収集されるデータを受信して、該データに基づいて任意の数の機能を実行するように構成され得る。一例として、１または複数のプロセッサ１１４は、１または複数の位置決定コンポーネント（たとえば、無線通信コンポーネント１０４、セルラー無線通信コンポーネント１０６、またはＧＰＳ受信機１０８）を用いて、コンピューティングデバイス１００の１または複数の地理的位置推定値を決定するように構成され得る。１または複数のプロセッサ１１４は、コンピューティングデバイス１００の無線範囲内における１または複数の既知の無線アクセスポイントの存在または位置に基づいてコンピューティングデバイス１００の位置を決定するために、位置決定アルゴリズムを用い得る。一例において、１または複数の無線アクセスポイント（たとえば、ＭＡＣアドレス）の識別情報を決定し、該１または複数の無線アクセスポイントの各々より受信した信号の強度を計測し得る（たとえば、受信信号強度表示）。各固有無線アクセスポイントからの受信信号強度表示（ＲＳＳＩ）は、各無線アクセスポイントからの距離を決定するために用いられる。そして、その距離は、各固有無線アクセスポイントが位置する場所に関する情報を記憶するデータベースと比較され得る。各無線アクセスポイントからの距離と、各無線アクセスポイントの既知の位置とに基づいて、コンピューティングデバイス１００の位置推定値が決定され得る。
【００２３】
別の例においては、１または複数のプロセッサ１１４は、近傍のセルラー基地局に基づいてコンピューティングデバイス１００の位置を決定するために、位置決定アルゴリズムを用い得る。たとえば、セルラー無線通信コンポーネント１０６は、コンピューティングデバイス１００がセルラーネットワークからの信号を受信中のセル、または、最後に受信したセルを識別するように構成され得る。セルラー無線通信コンポーネント１０６はさらに、信号を提供する基地局に対するラウンドトリップタイム（ＲＴＴ）を計測し、位置推定値を決定するために、この情報を識別されたセルに組み合わせるように構成され得る。別の例においては、セルラー無線通信コンポーネント１０６は、コンピューティングデバイス１００の位置を推定するために、３以上の基地局からＯＴＯＤＡ（Ｏｂｓｅｒｖｅｄ Ｔｉｍｅ Ｄｉｆｆｅｒｅｎｃｅ ｏｆ Ａｒｒｉｖａｌ）を用いるように構成され得る。
【００２４】
いくつかの実施形態では、コンピューティングデバイス１００は、マルチレイヤードＬｉｎｕｘ（登録商標）プラットフォームとして構成され得る図示しないデバイスプラットフォームを含み得る。該デバイスプラットフォームは、様々なカーネル、ライブラリおよびランタイムエンティティだけでなく、様々なアプリケーションおよびアプリケーションフレームワークを含み得る。他の例においては、他のフォーマットまたはオペレーティングシステムはコンピューティングデバイス１００も作動させ得る。
【００２５】
通信リンク１１６は有線通信として図示されるが、無線通信が用いられてもよい。たとえば、通信リンク１１６は、他の可能性もあるが、短距離無線技術またはＩＥＥＥ８０２．１１（任意のＩＥＥＥ８０２．１１の改訂版を含む）に記載されたコミュニケーションプロトコルなどを用いた有線シリアルバス（たとえば、ユニバーサルシリアルバスまたはパラレルバス）または無線通信であってもよい。
【００２６】
コンピューティングデバイス１００は、より多数のコンポーネント、または、より少数のコンポーネントを備え得る。さらに、本明細書において説明される例示的な方法は、コンピューティングデバイス１００のコンポーネントによって個別に、または、コンピューティングデバイス１００の１または全てのコンポーネントによって共同で、実行されてもよい。
【００２７】
図２は、別の例示的なコンピューティングデバイス２００を示す。図２中のコンピューティングデバイス２００は、図１中に示されるコンピューティングデバイス１００の一部を表し得る。図２において、コンピューティングデバイス２００は、各々がコプロセッサ２３０に出力を行う複数のセンサ（たとえば、ジャイロスコープ２０４および加速度計２０６を含む慣性計測装置（ＩＭＵ）２０２、グローバルシャッタ（ＧＳ）カメラ２０８、ローリングシャッタ（ＲＳ）カメラ２１０、前向きカメラ２１２、赤外線（ＩＲ）フラッシュ２１４、気圧計２１６、磁力計２１８、ＧＰＳ受信機２２０、Ｗｉ−Ｆｉ（登録商標）／ＮＦＣ／ＢＬＵＥＴＯＯＴＨ（登録商標）センサ２２２、プロジェクタ２２４および温度センサ２２６）を備えるように示されている。さらに、コンピューティングデバイス２００は、コプロセッサ２３０から入力を受信し、コプロセッサ２３０に出力する深度プロセッサ２２８を備えるように示されている。コプロセッサ２３０は、アプリケーションプロセッサ２３２から入力を受信し、アプリケーションプロセッサ２３２に出力する。コンピューティングデバイス２００はさらに、アプリケーションプロセッサ２３２に直接的に出力する第２ＩＭＵ２３４を備え得る。
【００２８】
ＩＭＵ２０２は、ジャイロスコープ２０４および加速度計２０６の出力に基づいて、コンピューティングデバイス２００について速度、配向および重力を決定するように構成され得る。
【００２９】
ＧＳカメラ２０８は、コンピューティングデバイス２００の正面から離れて面するように、コンピューティングデバイス２００上に設置して後向きのカメラになるように構成され得る。ＧＳカメラ２０８は、カメラ２０８の全ピクセルの出力を同時に読み出せるように構成され得る。ＧＳカメラ２０８は、約１２０〜１７０度の視野（たとえば、広角ビューイング用フィッシュアイセンサ）を有するように構成され得る。
【００３０】
ＲＳカメラ２１０は、ピクセルディスプレイの上部からピクセルディスプレイの下部までのピクセルの出力を読み出すように構成され得る。一例として、ＲＳカメラ２１０は、赤／緑／青（ＲＧＢ）赤外線（ＩＲ）４メガピクセルイメージセンサであり得るが、他のセンサであってもよい。ＲＳカメラ２１０は、最小限の読み出し時間（たとえば約５．５秒）で作動するよう、露光を高速にしてもよい。ＲＳカメラ２１０は、ＧＳカメラ２０８のように後向きのカメラであり得る。
【００３１】
カメラ２１２は、コンピューティングデバイス２００における前向きカメラとして構成される補助カメラであってもよく、ＧＳカメラ２０８およびＲＳカメラ２１０とは反対向きの補助カメラであってもよい。カメラ２１２は広角カメラであってもよく、たとえば広角ビューイング用に、約１２０〜１７０度の視野を有してもよい。
【００３２】
ＩＲフラッシュ２１４は、コンピューティングデバイス２００のための光源を提供してもよく、たとえばＧＳカメラ２０８およびＲＳカメラ２１０に光を提供するためコンピューティングデバイス２００の後方に向けて光を出力してもよい。いくつかの例においては、ＩＲフラッシュ２１４は、低デューティサイクル（たとえば５ヘルツ）で、または、コプロセッサ２３０もしくはアプリケーションプロセッサ２３２によって指示されて非連続的に、フラッシュするように構成され得る。ＩＲフラッシュ２１４は、たとえばモバイルデバイスに用いられるように構成されるＬＥＤ光源を含み得る。
【００３３】
図３Ａおよび図３Ｂは、コンピューティングデバイス３００上のいくつかのセンサの構成を示すコンピューティングデバイス３００の概略図である。図３Ａおよび図３Ｂにおいて、コンピューティングデバイス３００はモバイルフォンとして示されている。コンピューティングデバイス３００は、図１中のコンピューティングデバイス１００または図２中のコンピューティングデバイス２００のいずれかに類似し得る。図３Ａは、前向きカメラ３０４およびＰ／Ｌセンサ開口部３０６（たとえば、近接または光センサ）と共に、ディスプレイ３０２が提供されるコンピューティングデバイス３００の前面を示す。前向きカメラ３０４は、図２において説明されたカメラ２１２であってもよい。
【００３４】
図３Ｂは、後方カメラ３１０および別の後方カメラ３１４が提供されるコンピューティングデバイス３００の背部３０８を示す。図２中のコンピューティングデバイス２００により説明すると、後方カメラ３１０はＲＳカメラ２１０であってもよく、ＧＳカメラ２０８であってもよい。コンピューティングデバイス３００の背部３０８はさらに、ＩＲフラッシュ３１４を含む。ＩＲフラッシュ３１４は、図２中のコンピューティングデバイス２００において説明されたＩＲフラッシュ２１４またはプロジェクタ２２４であり得る。一例においては、ＩＲフラッシュ２１４とプロジェクタ２２４とは一体であり得る。たとえば、単一のＩＲフラッシュは、ＩＲフラッシュ２１４およびプロジェクタ２２４の機能を実行するために用いられる。別の例においては、後方カメラ３１０の近傍にある、図示しない第２セカンドフラッシュ（たとえば、ＬＥＤフラッシュ）を含み得る。センサの構成および配置は、たとえば、コンピューティングデバイス３００の望ましい機能を提供するのに役立ち得るが、他の構成も可能である。
【００３５】
図２に戻って、気圧計２１６は圧力センサを含んでもよく、空気圧および高度変化を決定するように構成されてもよい。
磁力計２１８は、コンピューティングデバイス２００のロール、ヨーおよびピッチの計測値を提供するように構成されてもよく、たとえば内蔵コンパスとして作動するように構成されてもよい。いくつかの例においては、磁力計２１８は、ＩＭＵ２０２の図示しないコンポーネントであってもよい。
【００３６】
ＧＰＳ受信機２２０は、図１のコンピューティングデバイス１００において説明されたＧＰＳ受信機１０８と類似し得る。さらなる例においては、ＧＰＳ２２０はさらに、ＧＰＳ衛星または他のネットワークエンティティから受信したタイミング信号を出力し得る。そのようなタイミング信号は、同一の衛星タイミングスタンプを含む収集データについて、複数のデバイスを通じてセンサからその収集データを同期するために用いられ得る。
【００３７】
Ｗｉ−Ｆｉ（登録商標）／ＮＦＣ／ＢＬＵＥＴＯＯＴＨ（登録商標）センサ２２２は、別のデバイスと接触または近接することでその別のデバイスとの無線通信を確立させるため、図１のコンピューティングデバイス１００と共に説明されたようにＷｉ−Ｆｉ（登録商標）およびＢＬＵＥＴＯＯＴＨ（登録商標）に従って作動するか、またはＮＦＣ規格に従って作動するように構成されている無線通信コンポーネントを含み得る。
【００３８】
プロジェクタ２２４は、環境においてドットパターンを生成するためのパターンジェネレータを有するレーザを備える構造化光プロジェクタであってもよく、該光プロジェクタを含んでもよい。プロジェクタ２２４は、環境におけるオブジェクトの深度に関する情報（たとえば、オブジェクトの３次元（３Ｄ）特徴）を回復するためにＲＳカメラ２１０と連動して作動するように構成され得る。たとえば、ＲＳカメラ２１０は、ドットパターンの１または複数のイメージをキャプチャし、深度プロセッサ２２８にデータを提供するように構成されているＲＧＢ−ＩＲカメラであり得る。深度プロセッサ２２８はその後、投影されたドットパターンに基づいてオブジェクトまでの距離およびオブジェクトの形状を決定するように構成され得る。たとえば、深度プロセッサ２２８は、プロジェクタ２２４にドットパターンを生成させ、ＲＳカメラ２１０にドットパターンのイメージをキャプチャさせるように構成され得る。深度プロセッサはその後、ドットパターンのイメージを処理し、３Ｄデータの三角測量および抽出を行うための様々なアルゴリズムを用い、コプロセッサ２３０に深度イメージを出力し得る。
【００３９】
温度センサ２２６は、温度または温度勾配（たとえば、コンピューティングデバイス２００の周囲環境などの温度変化）を計測するように構成され得る。
コプロセッサ２３０は、コンピューティングデバイス２００上の全てのセンサを制御するように構成され得る。複数の例において、コプロセッサ２３０はカメラ２０８、２１０および２１２のいずれかの露光時間を制御し、プロジェクタ２２４のパルス同期、時間および強度を制御し、概してセンサのデータキャプチャまたは収集の時間を制御する。コプロセッサ２３０はさらに、いずれかのセンサからのデータを処理し、アプリケーションプロセッサ２３２のための適切なフォーマットにするように構成され得る。いくつかの例においては、コプロセッサ２３０は、同一のタイムスタンプまたはデータ収集時間（もしくは期間）に対応するいずれかのセンサからの全てのデータを、アプリケーションプロセッサ２３２に提供される単一のデータ構造に統合する。コプロセッサ２３０はさらに、下記の通り、他の機能を実行するように構成され得る。
【００４０】
アプリケーションプロセッサ２３２は、コンピューティングデバイス２００の他の機能を制御する（たとえば、コンピューティングデバイス２００上に記憶されたオペレーティングシステムまたは任意の数のソフトウェアアプリケーションに従ってコンピューティングデバイス２００が作動するように制御する）ように構成され得る。アプリケーションプロセッサ２３２は、センサに収集され、コプロセッサから受信したデータを用いて、任意の数の種類の機能を実行するように構成され得る。アプリケーションプロセッサ２３２はコプロセッサ２３０の出力を受信してもよく、いくつかの例においては、未処理データ出力をＧＳカメラ２０８およびＲＳカメラ２１０を含む他のセンサから受信してもよい。アプリケーションプロセッサ２３２はさらに、下記の通り、他の機能を実行するように構成され得る。
【００４１】
第２ＩＭＵ２３４は、アプリケーションプロセッサ２３２に直接的に収集データを出力し得る。該データは、アプリケーションプロセッサ２３２によって受信され、他のセンサにデータ収集を開始させるために用いられ得る。一例として、第２ＩＭＵ２３４の出力はコンピューティングデバイス２００の運動を示してもよく、コンピューティングデバイス２００が運動している際には、イメージデータ、ＧＰＳデータなどを収集するのが望ましい。したがって、アプリケーションプロセッサ２３２は、ＩＭＵ２３４の出力が運動を示す時間において、共通バスに対する通信シグナリングを通じて他のセンサにデータを収集させ得る。
【００４２】
図２に示されるコンピューティングデバイス２００は、各センサおよびプロセッサ間における複数の通信バスを含む。たとえば、コンピューティングデバイス２３０は、通信用マルチマスターシリアルシングルエンドバスを含む集積回路間（Ｉ２Ｃ）バスを介して、ＩＭＵ２０２、ＧＳカメラ２０８、およびＲＳカメラ２１２の各々と通信し得る。コプロセッサ２３０は、同一のＩ２Ｃバスまたは別個の通信バスを通じて、ＩＭＵ２０２、ＧＳカメラ２０８、およびＲＳカメラ２１２の各々によって収集、計測および検知された未加工データを受信し得る。コプロセッサ２３０は、全二重方式で作動し得る同期シリアルデータリンクを含むシリアルペリフェラルインターフェース（ＳＰＩ）バス、Ｉ２Ｃバス、および、カメラまたはピクセル情報と通信するように構成されているシリアルインターフェースを含むモバイルインダストリプロセッサインターフェース（ＭＩＰＩ）を含む複数の通信バスを通じて、アプリケーションプロセッサ２３２と通信し得る。様々なバスの使用は、たとえば各コミュニケーションバスによって提供されるデータ通信速度および帯域幅の必要に応じて決定され得る。
【００４３】
図４は、モバイルデバイス４０２が椅子４０４のイメージデータをキャプチャ中であるシナリオ４００の概略図である。本明細書中に提示される実施例において、モバイルデバイス４０２は、同一のオブジェクト（たとえば、図４の椅子４０４）を各々が含む１または複数のイメージを、キャプチャし得る。モバイルデバイス４０２は、モバイルデバイス４０２の表現４０２Ａ〜４０２Ｅによって示されるように、様々な角度から、および、様々な配向において、椅子のイメージデータをキャプチャし得る。イメージがキャプチャされる各位置において、モバイルデバイス４０２の各表現４０２Ａ〜４０２Ｅは、関連付けられているビュー４０６Ａ〜４０６Ｅを有し得る。各ビュー４０６Ａ〜４０６Ｅ内において、モバイルデバイスのカメラはターゲットオブジェクト４０４を視界に入れることができる。
【００４４】
さらに、モバイルデバイス４０２は、データをキャプチャするとき、関連付けられているセンサデータも記憶し得る。たとえば、モバイルデバイス４０２は、写真がキャプチャされる各表現４０２Ａ〜４０２Ｅの位置におけるセンサデータをキャプチャし得る。他の実施形態においては、モバイルデバイス４０２は、表現４０２Ａ〜４０２Ｅの位置に対応する各イメージがキャプチャされる際に、連続してセンサデータをキャプチャし得る。
【００４５】
図５は、椅子に対する３次元オブジェクトデータ５００のレンダリングを表す。３次元オブジェクトデータは、モバイルデバイス内に記憶され得る。モバイルデバイスは、モバイルデバイスによってキャプチャされるイメージを、３次元オブジェクトデータと比較し得る。たとえば、椅子が異なる角度から眺められる場合、椅子は異なって見える場合がある。したがって、３次元オブジェクトデータ５００は、椅子の多数の異なるビューによりレンダリングされた状態で示される。図５に示されるように、ビュー５０２Ａ〜５０２Ｄの各々は、椅子を異なった角度から示す。いくつかのさらなる例においては、椅子の３次元データ５００は、椅子の色情報も含み得る。
【００４６】
モバイルデバイスが椅子を含むイメージをキャプチャするとき、モバイルデバイスは椅子の３Ｄオブジェクトデータ５００を用いて、ピクチャのパラメータを決定し得る。たとえば、椅子のサイズおよび配向に基づいて、モバイルデバイスは、モバイルデバイスの椅子に対する位置に関するいくつかの位置情報を計算し得る。第２ピクチャがキャプチャされる場合、モバイルデバイスは第２ピクチャをキャプチャしたときのモバイルデバイスの位置に関するいくつかの位置情報を計算し得る。その２つのイメージに基づいて、モバイルデバイスは各ピクチャにおける椅子を分析することで、移動、配向または他のセンサパラメータを決定し得る。モバイルは、この決定された移動、配向または他のセンサパラメータを、キャプチャされたセンサデータと比較し得る。したがって、キャリブレーション値は、決定された移動、配向または他のセンサパラメータと、キャプチャされたセンサデータとに基づいて計算され得る。
【００４７】
図６は、デバイスセンサキャリブレーションのための例示的方法６００のブロック図である。図６に示される方法６００は、図１のコンピューティングデバイス１００または図２のコンピューティングデバイス２００によって、あるいは、より一般的には、任意のコンピューティングデバイスの１または複数のコンポーネントによって用いられる、または、実施され得る方法の一実施形態を提示している。方法６００は、１または複数のブロック６０２〜６１４によって示される１または複数の演算、機能または作用を含み得る。ブロックを逐次的に示しているが、これらのブロックは並列に実行されたり、本明細書に説明されているものとは異なる順番で実行されたりしてもよい。さらに、様々なブロックは、望ましい実施形態に基づいて、より少数のブロックに結合されてもよいし、さらなるブロックに分割されてもよいし、および／または除去されてもよい。
【００４８】
さらに、方法６００と、本明細書に説明される他のプロセスおよび方法とに関して、このブロック図は本実施形態の可能な一実施形態の機能および動作を示す。これに関して、各ブロックは、プロセスにおける特定の論理機能またはステップを実施するためのプロセッサまたはコンピューティングデバイスによって実行可能な１または複数の命令を含む、モジュール、セグメント、またはプログラムコードの一部を表し得る。プログラムコードは、任意の種類のコンピュータ可読媒体（たとえば、ディスクまたはハードドライブを含むストレージデバイス）に記憶され得る。コンピュータ可読媒体は、非一時的なコンピュータ可読媒体（たとえば、レジスタメモリ、プロセッサキャッシュおよびランダムアクセスメモリ（ＲＡＭ）のような、短期間にデータを記憶するコンピュータ可読媒体）であり得る。コンピュータ可読媒体はさらに、非一時的な媒体（たとえば、読み出し専用メモリ（ＲＯＭ）、光または磁気ディスク、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）のような、二次記憶装置または持続性長期記憶装置）であり得る。コンピュータ可読媒体はさらに、任意の他の揮発性または不揮発性ストレージシステムであり得る。コンピュータ可読媒体は、たとえば、コンピュータ可読記憶媒体（たとえば、有形の記憶媒体）であり得る。
【００４９】
さらに、方法６００と、本明細書に説明される他のプロセスおよび方法とに関して、図６中の各ブロックは、プロセス中の特定の論理機能を実行するために配線される回路を表し得る。
【００５０】
方法６００の機能は、完全にコンピューティングデバイスによって実行されてもよく、複数のコンピューティングデバイスおよび／またはサーバを通じて分散されてもよい。一例として、方法６００は、オペレーティングシステムに基づいて機能するように構成されているアプリケーションプロセッサと、デバイスの複数のセンサからデータを受信するように構成されているコプロセッサとを有するデバイスによって実行され得る。該複数のセンサは、図１、図２または図３Ａおよび図３Ｂのいずれかの中の任意の上記センサ（たとえば、ＩＭＵ、グローバルシャッタカメラ、ローリングシャッタカメラ、構造化光プロジェクタ、深度カメラ、赤外線フラッシュ、気圧計、磁力計、温度計）を含み得る。該複数のセンサが他の種類のセンサを含むことも想定される。方法６００はさらに、図４に関して説明されたものと類似するイメージキャプチャを行うことを有する。方法６００はさらに、図５に関して説明されたものと類似する３次元オブジェクトデータを包含し得る。
【００５１】
いくつかの実施形態において、方法６００の機能は、図２のアプリケーションプロセッサ２３２によって実行され得る。他の実施形態において、方法６００の機能は図２のコプロセッサ２３０によって実行され得る。さらに他の実施形態において、方法６００の機能は、モバイルデバイスからリモートに位置するコンピューティングデバイスによって実行され得る。いくつかの実施形態において、リモートコンピューティングデバイスはサーバにあり得る。
【００５２】
まずブロック６０２において、方法６００は、モバイルデバイスにおける複数のセンサのうちの第１センサからイメージデータを受信する工程を備える。いくつかの例において、イメージデータは、ターゲットオブジェクトを表し得る。たとえば、イメージデータは、モバイルデバイスのカメラまたは深度プロセッサを用いてキャプチャされた２次元または３次元のイメージデータであり得る。複数の例において、イメージデータはモバイルデバイスのカメラから受信されてもよく、モバイルデバイスのコプロセッサから受信されてもよい。さらに、イメージデータは、複数のキャプチャされたイメージおよび／またはキャプチャされたビデオを含み得る。
【００５３】
イメージデータは、モバイルデバイスの位置および／または配向が操作されるときにモバイルデバイスがキャプチャし得るターゲットオブジェクトを表すデータを含み得る。たとえば、イメージデータは、ユーザがモバイルデバイスを回転させるか、またはモバイルデバイスの位置を変化させる間にキャプチャされ得る。しかしながら、他の実施形態においては、一箇所にあるモバイルデバイスは、デバイスが移動させられることなく、イメージデータをキャプチャし得る。
【００５４】
一実施形態において、イメージデータは、複数のイメージ（たとえば、３、５、１０または別の任意の数の、順番にキャプチャされたイメージ）からなるシーケンスであり得る。別の実施形態において、イメージデータはビデオとしてキャプチャされ得る。
【００５５】
キャプチャされたイメージデータは、各イメージ（またはビデオ）におけるターゲットオブジェクトを表すデータを含み得る。いくつかの例において、イメージデータを構成する様々なイメージは、同一のターゲットオブジェクトを含み得る。たとえば、キャプチャされたイメージデータの様々なイメージは各々、１つの椅子を含み得る。この椅子は、様々な位置および角度からイメージ化され得る。したがって、この椅子は各イメージにおいて表され得るが、全く同じには現れない可能性がある（モバイルが様々な位置から、および、様々な配向を用いて、イメージをキャプチャするため）。別の実施形態においては、２以上のターゲットオブジェクトがイメージデータにおいてキャプチャされ得る。
【００５６】
ブロック６０４において、方法６００は、複数のセンサのうちの第２センサからセンサデータを受信する工程を備える。さらに、センサデータは、モバイルデバイスの上記の同じ運動と対応し得る。さらに、センサデータは、イメージデータの１または複数のイメージがキャプチャされたときにモバイルデバイスの第２センサを用いて決定され得る。複数の例において、センサデータは、コプロセッサから受信されてもよく、モバイルデバイスのセンサから受信されてもよい。
【００５７】
一例において、センサデータは、モバイルデバイスのジャイロスコープ、ＩＭＵ、磁力計または加速度計からの加速度計の読取値を含み得る。センサデータはさらに、ＧＰＳ、デッドレコニングまたは他の形式のローカリゼーションに基づく移動情報を含み得る。別の例において、センサデータは、モバイルデバイスの第２カメラを用いてキャプチャされたモバイルデバイスの運動を表すイメージを含み得る。さらに別の例において、センサデータは、モバイルデバイスの深度プロセッサを用いて決定される複数の深度イメージからなるシーケンスを含み得る。また別の例において、センサデータは、モバイルデバイスの光センサによって提供される環境光の計測値を含み得る。さらなる実施形態において、センサデータは、モバイルデバイスのカメラによって提供される色データを含み得る。たとえば、いくつかの実施形態において、第１センサおよび第２センサの両方がカメラユニットであり得る。さらなる実施形態では、カメラセンサは、第１センサおよび第２センサの両方として機能し得る。
【００５８】
センサデータは、イメージデータのイメージがキャプチャされるのと同時か、イメージがキャプチャされる前または後か、イメージキャプチャを行っている間に連続的に、あるいは異なるタイミングで、キャプチャされ得る。１つの特定の例において、第１イメージがキャプチャされるときにセンサデータがキャプチャされてもよく、第２イメージがキャプチャされるまでデータがセンサから連続的にキャプチャされてもよい。別の実施形態では、センサデータは、各イメージキャプチャと同時にキャプチャされ得る。
【００５９】
ブロック６０６において、方法６００は、イメージデータに基づいてターゲットオブジェクトに対するオブジェクト識別情報を決定する工程を備える。様々な実施形態において、ブロック６０６はローカルに実行されてもよく、リモートコンピューティングデバイスによって実行されてもよい。ブロック６０６がローカルに実行される実施形態においては、モバイルデバイスはオブジェクトデータベースを有し得る。モバイルは、ターゲットオブジェクトを表すデータをデータベースにおけるオブジェクトと比較して、オブジェクト識別情報を決定し得る。たとえば、イメージは、どのオブジェクトがイメージにおいて存在するか判定するために、分析され得る。オブジェクトが識別されると、ターゲットオブジェクトは様々な基準に基づいて識別され得る。いくつかの実施形態においては、ターゲットオブジェクトは、イメージ内のオブジェクトの配置によって識別される。他の実施形態においては、複数のオブジェクトが分析され、いずれの認識されるオブジェクトが識別されるターゲットオブジェクトであってもよい。
【００６０】
他の実施形態において、モバイルデバイスは、イメージデータの少なくとも一部をサーバに通信し得る。サーバは、イメージデータに基づいてターゲットオブジェクトを識別できる可能性がある。サーバはその後、それに応じてオブジェクト識別情報をモバイルデバイスに通信し得る。またさらなる実施形態においては、モバイルデバイス自体がターゲットオブジェクトを認識しようと試みてもよく、モバイルデバイスがターゲットオブジェクトを識別できない場合、識別を実行するため、モバイルデバイスがイメージデータの少なくとも一部をサーバに通信してもよい。
【００６１】
ブロック６０８において、方法６００は、オブジェクト識別情報に基づいてオブジェクトデータを取り出す工程を備える。オブジェクトデータは、オブジェクト識別情報の３次元表現に関するデータを含み得る。オブジェクトが識別されると、モバイルは識別されたオブジェクトに関するオブジェクトデータを取り出すことができる。様々な実施形態において、ブロック６０８の取出工程は、モバイルデバイスのメモリからローカルに取り出すことで、または、リモートコンピューティングデバイスに問い合わせを行うことで、実行され得る。いくつかの実施形態においては、まずモバイルデバイスはオブジェクトデータに対するローカルデバイスメモリを確認してもよく、ローカルメモリがオブジェクトデータを有しない場合、モバイルデバイスはそれに応じてリモートコンピューティングデバイスに問い合わせを行ってもよい。
【００６２】
オブジェクトデータは、図５に関して説明されたものと類似する、識別されるオブジェクトの３次元表現に関するデータを含み得る。たとえば、オブジェクトデータは、イメージデータの一部としてキャプチャされたオブジェクトの３Ｄモデルであり得る。さらに、オブジェクトデータは、識別されるオブジェクトに関する色情報を含み得る。オブジェクトデータは、様々な方法で取得され得る。たとえば、データベースは、オブジェクトに関しての詳細な計測値およびサイズデータを含み得る。オブジェクトが識別されるとき、データベースはオブジェクトデータを取り出すために問い合わせを行われ得る。
【００６３】
一例において、サーバはオブジェクトデータのライブラリを含み得る。サーバは、周期的にオブジェクトデータをモバイルデバイスに対して通信し得る。モバイルに対して通信されるオブジェクトデータは、モバイルデバイスによってイメージにおいてキャプチャされる可能性のあるオブジェクトに基づき得る。サーバは、イメージにおいてキャプチャされる可能性のあるオブジェクトを様々な方法で決定し得る。一例においては、一般的な日常的なオブジェクトに関するオブジェクトデータが、モバイルデバイスに対して通信され得る。別の例においては、モバイルデバイスの所有者が所有することが知られているオブジェクトに関するオブジェクトデータが、モバイルデバイスに対して通信され得る。また別の例においては、オブジェクトデータは、異なるモバイルデバイスによってキャプチャされたイメージに基づいて、モバイルデバイスに対して通信され得る。この例においては、異なるモバイルデバイスが、イメージをキャプチャまたはオブジェクトを識別してもよく、イメージまたはオブジェクト情報をサーバに通信してもよい。サーバは、他のモバイルデバイスが同一のオブジェクトに遭遇する可能性があると判定してもよく、オブジェクトデータをモバイルデバイスに対して通信してもよい。
【００６４】
ブロック６１０において、方法６００は、予測されるセンサ値をオブジェクトデータおよびイメージデータに基づいて決定する工程を備える。オブジェクトデータはオブジェクトの３次元表現を含むため、オブジェクトデータはキャリブレーションのための基準として機能する。たとえば、予測されるセンサ値は、オブジェクトデータをイメージデータにおいてターゲットオブジェクトを表すデータと比較することによって、決定され得る。予測される値を決定するために、イメージデータはオブジェクトデータと共に分析され、センサが正しく作動している場合に当該センサが出力すべきものを予測する。
【００６５】
一実施形態において、イメージデータの第１イメージにおけるターゲットオブジェクトのサイズ、形状および位置は、オブジェクトデータと比較され得る。この比較に基づいて、モバイルデバイスに関するターゲットオブジェクトの距離、角度、配向、色または他の特質が計算され得る。この比較は、イメージデータの第２イメージに基づいて繰り返され得る。したがって、基準として機能するオブジェクトデータに基づく二つの比較によって、第１イメージがキャプチャされた位置と第２イメージがキャプチャされた位置との間におけるモバイルデバイスの移動に対して、予測されるセンサ値が計算される。
【００６６】
さらに、いくつかの実施形態において、オブジェクトデータは色情報を含み得る。これらの実施形態において、色情報はキャリブレーション用の基準として機能することができる。さらに、光レベルセンサは、色情報の実施形態において第２センサとして機能し得る。したがって、これらの実施形態において、センサを調整することによって、モバイルデバイスのカメラの色出力を正しく調整できる。
【００６７】
ブロック６１２において、方法６００は、受信したセンサデータと予測されるセンサ値との間の差異に基づいてセンサキャリブレーション値を決定する工程を備える。センサキャリブレーション値は、モバイルデバイスあるいはリモートサーバのいずれか、またはモバイルデバイスおよびリモートサーバの両方によって計算され得る。
【００６８】
その後、予測されるセンサ値は計測されるセンサ値と比較され、センサキャリブレーション値のオフセットを決定することができる。このオフセットは、数学的に正しい値における複数の計測される値の間の差異を表し、キャリブレーション値であってもよい。たとえば、２つのキャプチャされたイメージの分析に基づいて、モバイルデバイスが２つのピクチャ間で右に約２０センチメートル（８インチ）移動したと判定される可能性がある。センサデータは、デバイスが約１５センチメートル（６インチ）のみ移動したことを示し得る。したがって、約５センチメートル（２インチ）の差異が、センサオフセットを計算するために用いられ得る。いくつかの実施形態において、センサオフセットを計算すると、センサデータにおける３３パーセント増加となり得る（２インチは、センサによって報告された６インチの３３パーセントであるため）。
【００６９】
他の実施形態においては、キャリブレーションは、モバイルデバイスのイメージング素子のために実行され得る。この実施形態においては、オブジェクトからの色情報が、ターゲットオブジェクトのためにキャプチャされた色と比較され得る。このキャリブレーションは、イメージデータにおける単一のキャプチャされたイメージのみを用いて実行され得る。しかしながら、いくつかの例においては、ターゲットオブジェクトは様々な照明条件においてキャプチャされ得る。キャリブレーションは、様々な照明条件において、様々なイメージを通じて実行され得る。たとえば、イメージは、白の特定の色調を有する椅子を含み得る。しかしながら、オブジェクトデータは、椅子が実際には白の異なる色調であることを示し得る。センサオフセットは、椅子の白色を正しくイメージングするために決定され得る。
【００７０】
また別の実施形態においては、第１モバイルデバイスがターゲットデバイスのイメージをキャプチャした場合、キャリブレーションは、第２モバイルデバイスによってキャプチャされた単一のイメージに基づいて実行され得る。第１モバイルデバイスはターゲットオブジェクトのイメージをキャプチャし、イメージをキャプチャするときに、関連付けられているセンサデータを記憶する。このイメージとセンサデータとは、サーバまたは他のモバイルデバイスのどちらかに対して通信され得る。さらに、第２モバイルデバイスは、ターゲットオブジェクトのイメージと、関連付けられているセンサデータとをキャプチャし得る。そして、この比較は、２つの異なるデバイスからキャプチャされたイメージと、２つの異なるデバイスからキャプチャされたセンサデータとの間で行われる。この比較は、２つのイメージの間の位置情報がセンサ情報に基づいて計算され得るので、第２デバイスのためのキャリブレーション値を計算するのに依然として用いられ得る。たとえば、キャリブレーションが行われた第１デバイスは、既知の位置から椅子のピクチャを撮り得る。第２デバイスはキャリブレーションが行われない可能性もあり、第２デバイスは同一の椅子のピクチャを撮り得る。２つのイメージの計算に基づいて、第２デバイスのセンサに関する移動、ＧＰＳ位置または他のパラメータが計算され得る。
【００７１】
さらなる例においては、イメージデータが複数の２次元イメージからなるシーケンスを含む例において、モバイルデバイスの運動の推定値はモバイルデバイスの回転運動の推定値を含み得る。そのようなモバイルデバイスの回転運動の推定値は、センサデータに基づく計算に由来し得る。モバイルの回転運動の推定値は、イメージにおけるターゲットオブジェクトを識別することと、複数のイメージからなるシーケンス中の各イメージ内におけるターゲットオブジェクトの位置の移動を追跡することとに基づく基準移動と比較され得る。たとえば、２つのキャプチャされたイメージの分析に基づいて、モバイルデバイスが２つのピクチャ間で９０度回転したと判定され得る。センサデータは、デバイスが８５度のみ移動したことを示し得る。したがって、５度の差異がセンサオフセットを計算するために用いられ得る。
【００７２】
別の例においては、モバイルデバイスの基準運動はモバイルデバイスの軌跡を含み得る。たとえば、モバイルデバイスが既知のターゲットオブジェクトの前面に移動される場合、モバイルデバイスの経時的軌跡は、既知のオブジェクトまたはターゲットの観察に基づいて決定され得る。軌跡は、既知のオブジェクトまたはターゲットの基準座標系におけるモバイルデバイスの位置および配向の経時的推定値のうちの１つまたは任意の組み合わせを含み得る。基準軌跡は、センサキャリブレーション値を決定するために、センサ値に基づいて決定された軌跡と比較され得る。軌跡は、デバイスの移動について説明されたのと類似したセンサオフセットを計算するために用いられ得る。
【００７３】
ブロック６１４において、方法６００は、センサキャリブレーション値に基づいて第２センサを調整する工程を備える。第２センサは、センサキャリブレーション値に基づいて調整され得る。センサまたはセンサオフセットの種類に応じて、調整は様々な方法で行われ得る。いくつかの実施形態においては、センサは固定されたオフセット調整を有し得る。他の実施形態においては、センサはセンサの値に基づいて調整を行うオフセットを有し得る。またさらなる実施形態においては、センサキャリブレーション値は、センサ値と期待値との間の数学的関係に基づいて決定され得る。いくつかの実施形態においては、センサキャリブレーション値を生成するために、ブロック６０２〜６１２は数回繰り返され得る。さらに、ブロック６０２〜６１２は、調整された第２センサ値がイメージの分析に基づいて計算されたものと類似するセンサ値を与えていることを確認するために、繰り返され得る。
【００７４】
図７Ａおよび図７Ｂを参照すると、本明細書において説明されている方法の互いに異なる実施形態に関してのフローダイアグラムが記載されている。図７Ａは、方法６００の一実施形態を実行している単一のモバイルデバイスに関するフローダイアグラムを記載している。図７Ｂは、方法６００の一実施形態を共に実行している２つのモバイルデバイスに関するフローダイアグラムを記載している。
【００７５】
図７Ａでは、一群のセンサ７０２がプロセッサ７０４に対して結合される。センサとプロセッサとの両方は、モバイルデバイスに位置し得る。サーバ７０６は、モバイルデバイスから離れて位置し得るが、モバイルデバイスと通信し得る。一群のセンサ７０２は、通信用データをプロセッサ７０４に対して生成し得る。プロセッサ７０４は、センサデータとイメージデータとの両方を一群のセンサ７０２から受信し得る。
【００７６】
一群のセンサ７０２からの受信データに基づいて、プロセッサはターゲットオブジェクトに対するオブジェクト識別情報を決定し得る。その時のターゲットオブジェクトに対するオブジェクト識別情報は、一群のセンサ７０２からのイメージデータに基づいて決定され得る。いくつかの図示しない実施形態においては、プロセッサ７０４はその時のターゲットオブジェクトに対するオブジェクト識別情報を決定できない可能性がある。この場合、オブジェクト識別情報を決定するために、センサ群からのイメージデータはサーバ７０６に通信され得る。
【００７７】
プロセッサ７０４によってオブジェクト識別情報が決定されると、プロセッサ７０４はオブジェクトデータに対する要求をサーバ７０６に対して通信することができる。プロセッサ７０４はそれに応じて、サーバ７０６からオブジェクトデータを受信し得る。サーバ７０６がオブジェクト識別情報を決定する実施形態においては、プロセッサはオブジェクトに対しての要求をサーバ７０６に通信しない可能性もあるが、プロセッサはサーバ７０６のオブジェクト識別情報の決定後にサーバ７０６からオブジェクトデータを受信し得る。
【００７８】
プロセッサ７０４がサーバ７０６からオブジェクトデータを受信することに応じて、プロセッサ７０４はセンサキャリブレーションを決定し得る。プロセッサ７０４は、ブロック６１０および６１２を含む上記の図６についての説明と類似する方法でセンサキャリブレーションを決定し得る。同様に、プロセッサ７０４は、上記の図６について説明されていたようなセンサキャリブレーションに基づいてセンサデータを調整し得る。
【００７９】
図７Ｂでは、デバイス１（７１０）は、サーバ７０６と通信を行う。サーバ７０６も、デバイス２（７２０）と通信を行う。図７Ｂに示される実施形態では、２つのデバイスが、第２デバイスがセンサキャリブレーションを実行することを補助するために用いられる。デバイス１（７１０）は、オフィス内などのエリアのイメージデータをキャプチャし得る。デバイス１（７１０）はそれに応じて、サーバ７０６に対してイメージデータを送信し得る。サーバ７０６がイメージデータをデバイス１（７１０）から受信すると、サーバ７０６はイメージにおけるターゲットオブジェクトを決定する。さらに、サーバ７０６は、決定されたオブジェクトに関してのオブジェクトデータをデバイス２（７２０）に対して送信する。したがって、デバイス２（７２０）は、どのオブジェクトがイメージにおいて存在するか判定する前に、オブジェクトデータのローカルコピーを記憶できる可能性がある。さらに、デバイス２（７２０）は、オブジェクトデータのローカルコピーを記憶後、いかなる外部のネットワーク接続も用いずに方法６００を実行できる可能性がある。
【００８０】
その後、デバイス２（７２０）は、デバイス２におけるプロセッサに対して結合されたセンサ群からイメージおよびセンサデータをキャプチャし得る。キャプチャされたイメージは、デバイス１（７１０）によってキャプチャされたものと同一のオフィスのイメージであり得る。センサとプロセッサとは、両方ともモバイルデバイスに位置し得る。センサ群からの受信データに基づいて、デバイス２（７２０）のプロセッサはターゲットオブジェクトに対するオブジェクト識別情報を決定し得る。その時のターゲットオブジェクトに対するオブジェクト識別情報は、センサ群からのイメージデータに基づいて決定され得る。
【００８１】
オブジェクト識別情報がプロセッサによって決定されると、プロセッサは、サーバ７０６からデバイス２（７２０）に対して提供されたオブジェクトデータを参照することができる。プロセッサがオブジェクトデータを参照することに応じて、プロセッサはセンサキャリブレーションを決定し得る。プロセッサは、ブロック６１０および６１２を含む上記の図６についての説明と類似する方法でセンサキャリブレーションを決定し得る。同様に、プロセッサは、上記の図６について説明されていたようなセンサキャリブレーションに基づいてセンサデータを調整し得る。
【００８２】
いくつかの実施形態においては、記載された方法は、機械可読フォーマットにおける非一時的なコンピュータ可読媒体、または他の非一時的な媒体もしくは製造物に符号化されたコンピュータプログラム命令として実施され得る。図８は、本明細書で提示された少なくともいくつかの実施形態に従って配置された、コンピューティングデバイス上のコンピュータプロセスを実行するためのコンピュータプログラムを含む例示的なコンピュータプログラム製品３００を示す部分概略図である。
【００８３】
一実施形態においては、例示的なコンピュータプログラム製品８００は、信号搬送媒体８０１を用いて提供される。信号搬送媒体８０１は、１または複数のプログラミング命令８０２を含み得る。１または複数のプログラミング命令８０２は、１または複数のプロセッサによって実行されるとき、図１〜図１２についての上記の機能、またはその機能の一部を提供し得る。いくつかの例において、信号ベアリング媒体８０１は、コンピュータ可読媒体８０３（たとえば、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、デジタルテープ、メモリ）を包含し得るが、これに限られない。いくつかの実施形態においては、信号ベアリング媒体８０１は、コンピュータ記録可能媒体８０４（たとえば、メモリ、ＣＤ  Ｒ／Ｗ、ＤＶＤ  Ｒ／Ｗ）を包含し得るが、これに限られない。いくつかの実施形態においては、信号ベアリング媒体８０１は、デジタルおよび／またはアナログ通信媒体（たとえば、光ファイバーケーブル、導波管、有線通信リンク、無線通信リンク）などの通信媒体８０６を包含し得るが、これに限られない。したがって、たとえば、信号ベアリング媒体８０１は、通信媒体８０６（たとえば、ＩＥＥＥ８０２．１１または他の送信プロトコルに準拠する無線通信媒体）の無線形式によって通信され得る。
【００８４】
１または複数の命令８０２は、たとえば、コンピュータ実行可能である、論理実装される、またはその両方である命令であり得る。いくつかの例においては、コンピューティングデバイス（たとえば、図１のコンピューティングデバイス１００）は、コンピュータ可読媒体８０３、コンピュータ記録可能媒体８０４および／または通信媒体８０６のうちの１または複数によってコンピューティングデバイス１００に通信されるプログラミング命令８０２に応じて様々な演算、機能および作用を提供するように構成され得る。
【００８５】
本明細書において説明された配置は、単なる例示の目的のためであると理解されるべきである。そのようなものとして、代わりに他の配置および他の要素（たとえば、機械、インターフェース、機能、順番、機能の分類）が用いられ、いくつかの要素は所望の結果に従ってまとめて省略されてもよいと当業者は理解する。さらに、説明されている多くの要素は、任意の適切な組み合わせと位置とにおいて、個別のもしくは分散型のコンポーネントとして実施され得る、または他のコンポーネントと併せて実施され得る機能エンティティである。
【００８６】
様々な態様および実施形態について本明細書に開示されているが、他の態様および実施形態も当業者には明らかである。本明細書に開示の様々な態様および実施形態は例示を目的とするものであり、限定することを意図するものではなく、真の範囲は、添付の特許請求の範囲において、係る特許請求の範囲によって権利が与えられる均等の完全な範囲とともに示されている。さらに、本明細書において用いられた用語は、特定の実施形態を説明することを目的とするものに過ぎず、限定することを意図するものでないことも理解される。
【図１】
0006383439.tif 000002
【図２】
0006383439.tif 000003
【図３Ａ】
0006383439.tif 000004
【図３Ｂ】
0006383439.tif 000005
【図４】
0006383439.tif 000006
【図５】
0006383439.tif 000007
【図６】
0006383439.tif 000008
【図７Ａ】
0006383439.tif 000009
【図７Ｂ】
0006383439.tif 000010
【図８】
0006383439.tif 000011