(57)【特許請求の範囲】
【請求項１】
実空間を映す画像を撮像する撮像装置に加わる重力の方向を示すセンサデータを取得するデータ取得部と、
前記センサデータに基づいて、前記画像に対する前記実空間の平面の相対的な姿勢を決定する決定部と、
前記平面上の所与の点の３次元位置と対応する前記画像内の２次元位置との間の変換を、前記決定部により決定される前記姿勢を用いて行う変換部と、
を備え、
前記平面上の前記所与の点は、拡張現実のためのアノテーションを構成する点であり、
前記決定部は、表示される前記アノテーションについての表示サイズを用いて、前記アノテーションが配置される前記平面の位置を決定する、
情報処理装置。
【請求項２】
前記決定部は、前記センサデータに基づいて決定される前記姿勢と仮の位置とを有する仮想的な平面を決定し、
前記情報処理装置は、前記アノテーションを前記画像に重畳する表示制御部、をさらに備え、
前記アノテーションは、前記仮想的な平面上の３次元位置から前記変換部により変換される前記画像内の２次元位置に重畳される、
請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、前記表示サイズをユーザに指定させるユーザインタフェース部、をさらに備える、請求項１に記載の情報処理装置。
【請求項４】
前記平面は、水平面であり、
前記決定部は、前記撮像装置が上方及び下方のいずれを向いているかを前記センサデータに基づいて判定し、当該判定の結果に応じて前記水平面の前記姿勢を決定する、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記平面は、鉛直面であり、
前記決定部は、重力の方向を示す前記センサデータと予め定義される方向の制約とに基づいて、前記鉛直面の姿勢を決定する、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項６】
前記情報処理装置は、
前記センサデータに基づいて決定される水平面又は鉛直面の姿勢を基準として、前記平面の姿勢をユーザに指定させるためのユーザインタフェースを拡張現実空間内に配置するユーザインタフェース部、
をさらに備える、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項７】
前記ユーザインタフェースの配置は、複数のフレームにわたって前記拡張現実空間内で維持される、請求項６に記載の情報処理装置。
【請求項８】
前記ユーザインタフェースは、３次元的に回転操作可能な操作面を有し、
前記決定部は、前記平面と平行となるようにユーザにより操作された前記操作面の姿勢を用いて、前記平面の姿勢を決定する、
請求項７に記載の情報処理装置。
【請求項９】
実空間を映す画像を撮像する撮像装置に加わる重力の方向を示すセンサデータを取得するデータ取得部と、
前記センサデータに基づいて、前記画像に対する前記実空間の平面の相対的な姿勢を決定する決定部と、
前記平面上の所与の点の３次元位置と対応する前記画像内の２次元位置との間の変換を、前記決定部により決定される前記姿勢を用いて行う変換部と、
を備え、
前記平面は、鉛直面であり、
前記決定部は、重力の方向を示す前記センサデータと前記撮像装置及び前記鉛直面の位置関係を示すマップデータとに基づいて、前記鉛直面の姿勢を決定する、
情報処理装置。
【請求項１０】
前記決定部は、前記マップデータに含まれる１つ以上の鉛直面の候補から、地磁気の方向を示す前記センサデータを用いて前記画像に映る鉛直面を推定し、推定した前記鉛直面の姿勢を、前記マップデータと重力の方向とに基づいて決定する、請求項９に記載の情報処理装置。
【請求項１１】
前記決定部は、前記マップデータに含まれる１つ以上の鉛直面の候補からユーザにより指定される鉛直面の姿勢を、前記マップデータと重力の方向とに基づいて決定する、請求項９に記載の情報処理装置。
【請求項１２】
前記情報処理装置は、前記撮像装置と前記センサデータを出力するセンサとをさらに備える端末装置である、請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１３】
前記データ取得部、前記決定部及び前記変換部のうち少なくとも１つが前記情報処理装置の代わりにクラウドコンピューティング環境内に存在する装置上に実装される、請求項１〜１２のいずれか１項に記載の情報処理装置。
【請求項１４】
情報処理装置を制御するコンピュータにおいて、
実空間を映す画像を撮像する撮像装置に加わる重力の方向を示すセンサデータを取得することと、
前記センサデータに基づいて、前記画像に対する前記実空間の平面の相対的な姿勢を決定することと、
前記平面上の所与の点の３次元位置と対応する前記画像内の２次元位置との間の変換を、決定された前記姿勢を用いて行うことと、
を含み、
前記平面上の前記所与の点は、拡張現実のためのアノテーションを構成する点であり、
前記画像に対する前記実空間の平面の相対的な姿勢の決定は、表示される前記アノテーションについての表示サイズを用いて、前記アノテーションが配置される前記平面の位置を決定することにより行われる、
情報処理方法。
【請求項１５】
情報処理装置を制御するコンピュータを、
実空間を映す画像を撮像する撮像装置に加わる重力の方向を示すセンサデータを取得するデータ取得部と、
前記センサデータに基づいて、前記画像に対する前記実空間の平面の相対的な姿勢を決定する決定部と、
前記平面上の所与の点の３次元位置と対応する前記画像内の２次元位置との間の変換を、前記決定部により決定される前記姿勢を用いて行う変換部と、
として機能させ、
前記平面上の前記所与の点は、拡張現実のためのアノテーションを構成する点であり、
前記決定部は、表示される前記アノテーションについての表示サイズを用いて、前記アノテーションが配置される前記平面の位置を決定する、
ためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、実空間に付加的な情報を重畳してユーザに呈示する拡張現実（ＡＲ：Augmented  Reality）と呼ばれる技術が注目されている。ＡＲ技術においてユーザに呈示される情報は、アノテーションとも呼ばれ、テキスト、アイコン又はアニメーションなどの様々な形態の仮想的なオブジェクトを用いて可視化され得る。ＡＲ空間へのアノテーションの配置は、通常、画像に映る実空間の３次元構造の認識に基づいて行われる。実空間の３次元構造を認識するための手法としては、例えば、ＳｆＭ（Structure  from  Motion）法及びＳＬＡＭ（Simultaneous  Localization  And  Mapping）法が知られている。ＳｆＭ法では、視点を変えながら撮像される複数の画像から、それら画像に映る実空間の３次元構造が視差を利用して認識される。ＳＬＡＭ法についての説明は、下記非特許文献１においてなされている。下記特許文献１は、ＳＬＡＭ法において初期化の際に選択される特徴点の３次元位置をＳｆＭ法を用いて認識する手法を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２３７８４５号公報
【非特許文献】
【０００４】
【非特許文献１】Andrew  J.Davison，“Real-Time  Simultaneous  Localization  and  Mapping  with  a  Single  Camera”，Proceedings  of  the  9th  IEEE  International  Conference  on  Computer  Vision  Volume  2,  2003,  pp.1403-1410
【発明の概要】
【発明が解決しようとする課題】
【０００５】
実空間の３次元構造の認識においては、一般的に、画像の撮像面に対する実空間内に存在する物体（又は実空間そのもの）の位置及び姿勢が認識され得る。しかし、ＳｆＭ法のような画像認識に基づく手法では、十分な認識精度を達成できない場合がある。特に、視差に起因する画像の変化が現れにくい２次元的な平面（例えば、地面、床面若しくは天井などの水平面、又は建物の壁面などの鉛直面）については、ＳｆＭ法の認識精度は悪化し易い。しかしながら、ＡＲアプリケーションの多くでアノテーションは平面に合わせて配置されるため、とりわけ平面の姿勢の認識の精度の向上がＡＲ技術において強く求められている。【０００６】
そこで、本開示において、少なくとも実空間の平面の姿勢をより正確に認識して、認識した姿勢をＡＲ技術のために利用することを可能とする技術を提案する。
【課題を解決するための手段】
【０００７】
本開示によれば、実空間を映す画像を撮像する撮像装置に加わる重力の方向を示すセンサデータを取得するデータ取得部と、前記センサデータに基づいて、前記画像に対する前記実空間の平面の相対的な姿勢を決定する決定部と、前記平面上の所与の点の３次元位置と対応する前記画像内の２次元位置との間の変換を、前記決定部により決定される前記姿勢を用いて行う変換部と、を備える情報処理装置が提供される。【０００８】
また、本開示によれば、情報処理装置を制御するコンピュータにおいて、実空間を映す画像を撮像する撮像装置に加わる重力の方向を示すセンサデータを取得することと、前記センサデータに基づいて、前記画像に対する前記実空間の平面の相対的な姿勢を決定することと、前記平面上の所与の点の３次元位置と対応する前記画像内の２次元位置との間の変換を、決定された前記姿勢を用いて行うことと、を含む情報処理方法が提供される。【０００９】
また、本開示によれば、情報処理装置を制御するコンピュータを、実空間を映す画像を撮像する撮像装置に加わる重力の方向を示すセンサデータを取得するデータ取得部と、前記センサデータに基づいて、前記画像に対する前記実空間の平面の相対的な姿勢を決定する決定部と、前記平面上の所与の点の３次元位置と対応する前記画像内の２次元位置との間の変換を、前記決定部により決定される前記姿勢を用いて行う変換部と、として機能させるためのプログラムが提供される。
【発明の効果】
【００１０】
本開示によれば、実空間の平面の姿勢をより正確に認識して、認識した姿勢をＡＲ技術のために利用することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係る情報処理装置の概要について説明するための第１の説明図である。
【図２】一実施形態に係る情報処理装置の概要について説明するための第２の説明図である。
【図３】第１の実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図４】第１の実施形態に係る情報処理装置の論理的機能の構成の一例を示すブロック図である。
【図５】撮像面、水平面及び重力方向の間の関係について説明するための説明図である。
【図６】水平面の３Ｄ構造に関連するパラメータについて説明するための説明図である。
【図７】図４に例示した決定部による平面決定処理の流れの第１の例を示すフローチャートである。
【図８】仰俯角及び方位角について説明するための説明図である。
【図９】鉛直面の姿勢を決定するための手法の一例について説明するための説明図である。
【図１０】鉛直面をマップ上でユーザに指定させるためのユーザインタフェースの一例について説明するための説明図である。
【図１１】図４に例示した決定部による平面決定処理の流れの第２の例を示すフローチャートである。
【図１２Ａ】任意平面の姿勢をユーザに指定させるためのユーザインタフェースの一例を示す説明図である。
【図１２Ｂ】任意平面の姿勢をユーザに指定させるためのユーザインタフェースの他の例を示す説明図である。
【図１３】図４に例示した決定部による平面決定処理の流れの第３の例を示すフローチャートである。
【図１４】図４に例示したＳＬＡＭ演算部によるＳＬＡＭ演算処理の流れの一例を示すフローチャートである。
【図１５】図１４に例示したＳＬＡＭ演算処理に含まれる初期化処理の流れの一例を示すフローチャートである。
【図１６】実物体上に設定される特徴点について説明するための説明図である。
【図１７】特徴点の追加について説明するための説明図である。
【図１８】予測モデルの一例について説明するための説明図である。
【図１９】特徴データの構成の一例について説明するための説明図である。
【図２０】第１の実施形態に係る情報処理装置による全体的な処理の流れの一例を示すフローチャートである。
【図２１】第２の実施形態に係る情報処理装置の論理的機能の構成の一例を示すブロック図である。
【図２２】第２の実施形態に係る情報処理装置による全体的な処理の流れの一例を示すフローチャートである。
【図２３】平面のスケールを調整するための第１の手法について説明するための説明図である。
【図２４】平面のスケールを調整するための第２の手法について説明するための説明図である。
【図２５】平面のスケールを調整するための第３の手法について説明するための第１の説明図である。
【図２６】平面のスケールを調整するための第３の手法について説明するための第２の説明図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１３】
また、以下の順序で説明を行う。
１．装置の概要
２．第１の実施形態の詳細
２−１．ハードウェア構成
２−２．機能構成
２−３．処理の流れ
２−４．第１の実施形態のまとめ
３．第２の実施形態の詳細
３−１．機能構成
３−２．処理の流れ
３−３．第２の実施形態のまとめ
４．スケールの調整
４−１．第１の手法
４−２．第２の手法
４−３．第３の手法
５．総括
【００１４】
＜１．装置の概要＞
まず、図１及び図２を用いて、本開示に係る情報処理装置の概要を説明する。
【００１５】
図１は、一実施形態に係る情報処理装置１００の概要について説明するための第１の説明図である。図１を参照すると、ユーザＵａが有する情報処理装置１００が示されている。情報処理装置１００は、実空間１０に向けられた撮像部１０２と表示部１１０とを備える。図１の例において、実空間１０には、道路１２、建物の壁面１３ａ及び建物の壁面１３ｂが存在している。一例として、情報処理装置１００は、ナビゲーション用のＡＲアプリケーションを有し、撮像部１０２により撮像される画像Ｉｍ０１にナビゲーションのためのアノテーションＡ１１及びＡ１２を重畳する。アノテーションＡ１は、ユーザＵａに道順を案内する矢印の形状をしたアノテーションであり、画像Ｉｍ０１に映る道路１２に沿った水平面上に配置される。アノテーションＡ１２は、ユーザＵａに何らかの案内メッセージを伝えるアノテーションであり、画像Ｉｍ０１に映る壁面１３ａに沿った鉛直面上に配置される。
【００１６】
図１では、情報処理装置１００の一例として携帯端末を示している。しかしながら、情報処理装置１００は、かかる例に限定されない。情報処理装置１００は、例えば、ＰＣ（Personal  Computer）、ＰＤＡ（Personal  Digital  Assistant）、スマートフォン、ゲーム端末、ＰＮＤ（Portable  Navigation  Device）、コンテンツプレーヤ又はデジタル家電機器などであってもよい。
【００１７】
図２は、情報処理装置１００の概要について説明するための第２の説明図である。図２を参照すると、情報処理装置１００は、ユーザＵａが有する端末装置２０と接続されるサーバ装置である。端末装置２０は、実空間１０に向けられた撮像部２２と表示部２４とを備える。図２の例において、実空間１０にはテーブル１４が存在している。情報処理装置１００は、端末装置２０により撮像される画像Ｉｍ０２にアノテーションＡ２を重畳する。アノテーションＡ２は、テーブル１４の上を走る仮想的な自動車の形状をしたアノテーションであり、画像Ｉｍ０２に映るテーブル１４の表面に沿った水平面上に配置される。
【００１８】
図１及び図２に例示したＡＲアプリケーションにおいてアノテーションを適切に配置するには、入力画像に対する実空間の平面の相対的な姿勢を可能な限り正確に決定することが重要である。しかし、ＳｆＭ法などの既存の画像認識に基づく手法では、２次元的な平面について必ずしも十分な認識精度を達成できない。ＳＬＡＭ法においては、初期化の際の状態変数の選択がその後の実空間の３次元構造の認識を左右するが、初期化のために既存の画像認識に基づく手法が採用される場合には、やはり２次元的な平面についての同様の認識精度の問題が生じる。そこで、本開示では、次節より２つの実施形態を通じて詳細に説明するように、実空間の２次元的な平面の姿勢をより正確に認識して当該認識した平面の姿勢をＡＲ技術のために利用することを可能とする。
【００１９】
＜２．第１の実施形態の詳細＞
［２−１．ハードウェア構成］
図３は、第１の実施形態に係る情報処理装置１００のハードウェア構成の一例を示すブロック図である。図３を参照すると、情報処理装置１００は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１０、通信部１１２、バス１１６及び制御部１１８を備える。
【００２０】
（１）撮像部
撮像部１０２は、画像を撮像するカメラモジュールである。撮像部１０２は、ＣＣＤ（Charge  Coupled  Device）又はＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）などの撮像素子を用いて実空間を撮像し、撮像画像を生成する。撮像部１０２により生成される撮像画像は、制御部１１８による画像処理の入力画像となる。なお、撮像部１０２は、必ずしも情報処理装置１００の一部でなくてもよい。例えば、情報処理装置１００と有線又は無線で接続される撮像装置が撮像部１０２として扱われてもよい。
【００２１】
（２）センサ部
センサ部１０４は、情報処理装置１００による平面の姿勢の決定を支援するために利用される様々なセンサを含み得る。例えば、センサ部１０４は、撮像部１０２に加わる重力加速度を測定する３軸加速度センサを含む。３軸加速度センサは、撮像部１０２に加わる重力加速度を測定し、重力加速度の大きさ及び方向を３次元的に表すセンサデータ（加速度データ）を生成する。追加的に、センサ部１０４は、地磁気の方向を測定する地磁気センサを含んでもよい。地磁気センサは、撮像部１０２の座標系における地磁気の方向を表すセンサデータ（地磁気データ）を生成する。さらに、センサ部１０４は、情報処理装置１００の位置を測定する測位センサ（例えば、ＧＰＳ（Global  Positioning  System）センサ）を含んでもよい。測位センサは、実空間における情報処理装置１００の緯度及び経度を表すセンサデータ（測位データ）を生成する。なお、センサ部１０４もまた、必ずしも情報処理装置１００の一部でなくてもよい。
【００２２】
（３）入力部
入力部１０６は、ユーザが情報処理装置１００を操作し又は情報処理装置１００へ情報を入力するために使用される入力デバイスである。入力部１０６は、例えば、表示部１１０の画面上へのユーザによるタッチを検出するタッチセンサを含んでもよい。その代わりに（又はそれに加えて）、入力部１０６は、マウス若しくはタッチパッドなどのポインティングデバイスを含んでもよい。さらに、入力部１０６は、キーボード、キーパッド、ボタン又はスイッチなどのその他の種類の入力デバイスを含んでもよい。
【００２３】
（４）記憶部
記憶部１０８は、半導体メモリ又はハードディスクなどの記憶媒体により構成され、情報処理装置１００による処理のためのプログラム及びデータを記憶する。記憶部１０８により記憶されるデータは、例えば、撮像画像データ、センサデータ及び後に説明する様々なデータベース（ＤＢ）内のデータを含み得る。なお、本明細書で説明するプログラム及びデータの一部は、記憶部１０８により記憶されることなく、外部のデータソース（例えば、データサーバ、ネットワークストレージ又は外付けメモリなど）から取得されてもよい。
【００２４】
（５）表示部
表示部１１０は、ＬＣＤ（Liquid  Crystal  Display）、ＯＬＥＤ（Organic  light-Emitting  Diode）又はＣＲＴ（Cathode  Ray  Tube）などのディスプレイを含む表示モジュールである。表示部１１０は、例えば、情報処理装置１００により生成されるＡＲアプリケーションの画像を表示するために使用される。なお、表示部１１０もまた、必ずしも情報処理装置１００の一部でなくてもよい。例えば、情報処理装置１００と有線又は無線で接続される表示装置が表示部１１０として扱われてもよい。
【００２５】
（６）通信部
通信部１１２は、情報処理装置１００による他の装置との間の通信を仲介する通信インタフェースである。通信部１１２は、任意の無線通信プロトコル又は有線通信プロトコルをサポートし、他の装置との間の通信接続を確立する。
【００２６】
（７）バス
バス１１６は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１０、通信部１１２及び制御部１１８を相互に接続する。
【００２７】
（８）制御部
制御部１１８は、ＣＰＵ（Central  Processing  Unit）又はＤＳＰ（Digital  Signal  Processor）などのプロセッサに相当する。制御部１１８は、記憶部１０８又は他の記憶媒体に記憶されるプログラムを実行することにより、後に説明する情報処理装置１００の様々な機能を動作させる。
【００２８】
［２−２．機能構成］
図４は、図３に示した情報処理装置１００の記憶部１０８及び制御部１１８により実現される論理的機能の構成の一例を示すブロック図である。図４を参照すると、情報処理装置１００は、画像取得部１２０、データ取得部１２５、決定部１３０、３次元（３Ｄ）構造ＤＢ１３５、変換部１４０、ＳＬＡＭ演算部１４５、物体ＤＢ１５０、画像認識部１５６、アノテーションＤＢ１６０、表示制御部１６５及びユーザインタフェース部１７０を含む。
【００２９】
（１）画像取得部
画像取得部１２０は、撮像部１０２により生成される撮像画像を入力画像として取得する。画像取得部１２０により取得される入力画像は、実空間を映した画像である。当該入力画像は、静止画であってもよく、動画を構成する各フレームであってもよい。画像取得部１２０は、取得した入力画像を、ＳＬＡＭ演算部１４５、画像認識部１５６及び表示制御部１６５へ出力する。
【００３０】
（２）データ取得部
データ取得部１２５は、決定部１３０による平面決定処理のために使用されるデータを取得する。例えば、データ取得部１２５は、センサ部１０４により生成される、加速度データ、地磁気データ及び測位データの少なくとも１つを含み得るセンサデータを取得する。また、データ取得部１２５は、測位データにより示される位置の周辺地域についてのマップデータを、情報処理装置１００により予め記憶されるデータベース又は外部のデータサーバから取得してもよい。そして、データ取得部１２５は、取得したデータを決定部１３０へ出力する。
【００３１】
（３）決定部
決定部１３０は、データ取得部１２５により取得されるセンサデータに基づいて、入力画像の撮像面に対する実空間の平面の相対的な姿勢を決定する。ここでは、まず水平面の姿勢を決定するための手法について詳細に説明し、次に鉛直面及びその他の平面の姿勢の決定について説明する。
【００３２】
（３−１）水平面の姿勢の決定
図５は、撮像面、水平面及び重力方向の間の関係について説明するための説明図である。図５を参照すると、入力画像の撮像面ＩＰ及び実空間の水平面ＨＰが示されている。水平面ＨＰは、実在する地面、床面又は天井などの平面であってもよく、又は架空の平面であってもよい。水平面ＨＰは、重力方向と直交する。撮像面ＩＰに対する水平面ＨＰの姿勢（あるいは水平面ＨＰに対する撮像面ＩＰの姿勢）は、撮像部１０２の姿勢に依存して変化し得る。そこで、決定部１３０は、上述したセンサデータにより示される重力方向ベクトルＶＧから、撮像面ＩＰに対する水平面ＨＰの相対的な姿勢を決定する。なお、決定部１３０は、センサデータの（３軸加速度センサの）３次元座標系と撮像面（及びその奥行き）の３次元座標系とが一致しない場合には、重力方向ベクトルＶＧについて、座標系の差が吸収されるように回転変換及びスケール変換を行ってよい。
【００３３】
図６は、水平面の３Ｄ構造に関連するパラメータについて説明するための説明図である。図６を参照すると、撮像部１０２の座標系において水平面の姿勢を表す法線ベクトルＶＮが示されている。法線ベクトルＶＮは、図５に示した重力方向ベクトルＶＧから決定される。座標系の変換が行われない場合には、ＶＮ＝−ＶＧ又はＶＮ＝ＶＧであってよい。なお、重力方向ベクトルＶＧの大きさは正規化されているものとする。例えば、撮像部１０２の光軸が下方を向いている場合には、ＶＮ＝−ＶＧが選択され得る。この場合の水平面ＨＰは、撮像部１０２の焦点よりも下方にある地面又は床面などに相当し得る。一方、撮像部１０２の光軸が上方を向いている場合には、ＶＮ＝ＶＧが選択され得る。この場合の水平面ＨＰは、撮像部１０２の焦点よりも上方にある天井面などに相当し得る。
【００３４】
撮像部１０２の座標系（ｘ，ｙ，ｚ）において、法線ベクトルＶＮ＝（ｎｘ，ｎｙ，ｎｚ）ｔであるとすると、原点から水平面ＨＰまでの距離Ｄを用いて、水平面ＨＰの平面方程式は、ｎｘｘ＋ｎｙｙ＋ｎｚｚ＝Ｄと表される。距離Ｄは、実空間内の水平面の位置に依存して変化する。また、距離Ｄが変化すると、入力画像内の水平面のスケールが変化する。本実施形態において、決定部１３０は、例えば距離ＤをＤ＝１と仮定し、センサデータに基づいて決定される姿勢ＶＮと仮の位置とを有する仮想的な水平面を決定する。そして、決定部１３０は、水平面ＨＰの３Ｄ構造として、上述したように決定した平面方程式ｎｘｘ＋ｎｙｙ＋ｎｚｚ＝Ｄを３Ｄ構造ＤＢ１３５に記憶させる。
【００３５】
図７は、決定部１３０により実行される平面決定処理の流れの第１の例を示すフローチャートである。第１の例では、水平面の姿勢が決定される。図７を参照すると、まず、データ取得部１２５は、撮像部１０２に加わる重力の方向を示すセンサデータを取得する（ステップＳ１）。次に、決定部１３０は、データ取得部１２５により取得されたセンサデータに基づいて、水平面の姿勢（上述した法線ベクトルＶＮ）を決定する（ステップＳ２）。このとき、撮像部１０２が上方及び下方のいずれを向いているかに応じて水平面の向きが決定されてよい。次に、決定部１３０は、平面方程式の定数項として予め定義される仮の値（例えばＤ＝１）を用いて、水平面の平面方程式ｎｘｘ＋ｎｙｙ＋ｎｚｚ＝Ｄを決定する（ステップＳ３）。
【００３６】
（３−２）鉛直面の姿勢の決定
上述したように、水平面の姿勢は、重力の方向を示す加速度データのみを用いて決定され得る。これに対し、何らかの制約、追加的なセンサデータ又はユーザ入力を用いることで、鉛直面の姿勢を決定することもできる。一般的に、実空間の平面の姿勢は、仰俯角成分及び方位角成分からなる。仰俯角（Elevation）は、水平面を基準とした上下方向の角度であり、通常−９０°〜９０°の範囲内の値をとる（図８のベクトルＶ０の角度θ）。方位角（Azimuth）は、何らかの鉛直面を基準とした東西南北方向の角度であり、通常０°〜３６０°の範囲内の値をとる（図８のベクトルＶ０の角度φ）。このうち、仰俯角成分は、水平面の姿勢の決定と同様の手法で決定され得る。残りの方位角成分を決定するために、いくつかの手法が存在し得る。
【００３７】
第１の手法において、決定部１３０は、加速度データ及び予め定義される方向の制約に基づいて、鉛直面の姿勢を決定する。予め定義される方向の制約とは、例えば、対象の鉛直面に撮像面が正対している（それらが正対するようにカメラが構えられている）、という制約であってよい。この場合、決定部１３０は、重力の方向に基づいて決定される水平面の法線ベクトルと直交する単位ベクトルのうち、カメラの光軸に最も近いベクトル（例えば、光軸の反対方向を向くベクトルとの内積が最も大きいベクトル）を、対象の鉛直面の法線ベクトルとして決定し得る。
【００３８】
第２の手法において、決定部１３０は、加速度データと測位データとに基づいて、鉛直面の姿勢を決定する。より具体的には、決定部１３０は、測位データにより示される情報処理装置１００の位置の周辺地域についてのマップデータを、データ取得部１２５を介して取得する（図９左上）。ここで取得されるマップデータは、撮像部１０２と、情報処理装置１００の周辺に位置する１つ以上の鉛直面との間の位置関係を示す。また、決定部１３０は、地磁気データに基づいて、撮像部１０２の光軸の方位を計算する（図９右上）。次に、決定部１３０は、撮像部１０２の画角に入る鉛直面（即ち、入力画像に映る鉛直面）を、マップデータ内の１つ以上の鉛直面の中から特定する。ここで特定される鉛直面は、測位データにより示される位置を起点として撮像部１０２の光軸方向に延びる線分がマップ上で初めて衝突する平面（建物の壁面など）であってよい（図９下）。決定部１３０は、実空間の座標系における特定した鉛直面の方位をマップデータから取得し、地磁気データにより示される地磁気の方向を用いて、特定した鉛直面の方位を撮像部１０２の座標系における方位に変換する。そして、決定部１３０は、水平面の法線ベクトルと直交する単位ベクトルのうち、変換後の鉛直面の方位に最も近いベクトルを、（撮像部１０２の座標系における）鉛直面の３次元的な法線ベクトルとして決定し得る。
【００３９】
第２の手法の変形例として、決定部１３０は、地磁気データに基づいて計算される光軸の方位を用いて、入力画像に映る鉛直面をマップ上で特定する代わりに、入力画像に映る鉛直面をユーザに指定させてもよい。図１０を参照すると、表示部１１０の画面上で、画像Ｉｍ０３にマップＭＰが重畳されている。マップＭＰは、測位データにより示される位置の周辺地域に存在する建物の壁面などの位置を示す。ユーザは、入力画像に映る鉛直面を、例えばマップＭＰ上のタッチなどの操作により指定する。それにより、決定部１３０は、マップ上のいずれの鉛直面が入力画像に映っているかを認識することができる。また別の変形例として、決定部１３０は、既知の建物の画像と入力画像とをマッチングすることにより、マップ上のいずれの鉛直面が入力画像に映っているかを認識してもよい。
【００４０】
図１１は、決定部１３０により実行される平面決定処理の流れの第２の例を示すフローチャートである。第２の例では、鉛直面の姿勢が、上述した第２の手法に従って決定される。図１１を参照すると、まず、データ取得部１２５は、加速度データ、測位データ及び地磁気データを含み得るセンサデータを取得する（ステップＳ１）。次に、決定部１３０は、重力の方向を示す加速度データに基づいて、水平面の法線ベクトルを決定する（ステップＳ２）。また、決定部１３０は、測位データにより示される位置の周辺地域のマップデータを取得する（ステップＳ４）。次に、決定部１３０は、例えば地磁気データを用いて、入力画像に映る鉛直面をマップ上で特定する（ステップＳ５）。ここで、地磁気データの代わりに、ユーザ入力又は画像マッチングが利用されてもよい。次に、決定部１３０は、ステップＳ２において決定した水平面の法線ベクトルに直交する、特定した鉛直面の法線ベクトルを決定する（ステップＳ６）。次に、決定部１３０は、平面方程式の定数項として予め定義される仮の値を用いて、特定した鉛直面の平面方程式を決定する（ステップＳ７）。
【００４１】
（３−３）その他の平面の姿勢の決定
水平面でも鉛直面でもない平面（以下、任意平面という）の姿勢は、重力の方向及びその他のセンサデータから直接的には決定されない。但し、上述した手法に従って決定される水平面又は鉛直面の姿勢を基準として、任意平面の姿勢をユーザに指定させるためのユーザインタフェースをＡＲ空間内に配置することが可能である。
【００４２】
図１２Ａは、任意平面の姿勢をユーザに指定させるためのユーザインタフェースの一例を示す説明図である。図１２Ａを参照すると、画像Ｉｍ０４に球状の外観を有するユーザインタフェースＵＩ１が重畳されている。なお、図面の明瞭さのために図示していないものの、入力画像に映る任意平面もまた画像Ｉｍ０４に表示されているものとする。基準面ＲＰは、ユーザインタフェースＵＩ１の球の中心を通る水平な平面である。決定部１３０は、水平面の姿勢を決定するための上述した手法に従って、基準面ＲＰの姿勢を決定する。そして、基準面ＲＰの姿勢を基準として、後述するユーザインタフェース部１７０により、ＡＲ空間内にユーザインタフェースＵＩ１が配置される。重力の方向が追跡されることにより、ユーザインタフェースＵＩ１の配置は、複数のフレームにわたってＡＲ空間内で維持される。結果的に、ユーザインタフェースＵＩ１は、画角が変化したとしてもあたかも実空間内で固定されているかのように表示される。
【００４３】
ユーザインタフェースＵＩ１は、球の中心を通る円盤状の操作面ＯＤ１を有する。初期状態において、操作面ＯＤ１は、基準面ＲＰと同様に水平に配置されてよい。操作面ＯＤ１と関連付けられる２つの軸ＡＸ１及びＡＸ２は、互いに直角をなし、操作面ＯＤ１と平行な軸である。軸ＡＸ３は、軸ＡＸ１及びＡＸ２と垂直な軸である。操作面ＯＤ１は、ユーザにより３次元的に回転操作可能である。例えば、ユーザが画面上で指を横方向にスライド（ドラッグ）させると、軸ＡＸ３の周りに操作面ＯＤ１が回転する。ユーザが画面上で指を縦方向にスライドさせると、軸ＡＸ２の周りに操作面ＯＤ１が回転する。このような操作を通じて、ユーザは、入力画像に映る任意平面と操作面ＯＤ１とが平行となるように、操作面ＯＤ１を３次元的に回転させる。そして、決定部１３０は、操作された操作面ＯＤ１の姿勢を用いて、任意平面の姿勢を決定する。任意平面の法線ベクトルは、操作後の軸ＡＸ３と同じ向きを有する。
【００４４】
なお、任意平面の姿勢を決定するためのユーザインタフェースは、図１２Ａの例に限定されない。例えば、当該ユーザインタフェースは球状以外の形状を有してもよく、操作面は円盤以外の形状を有してもよい。また、指をスライドさせる操作とは異なる種類の操作（例えば、所定のボタンのタップ、十字キーの押下など）に従って、操作面ＯＤ１が回転可能であってもよい。また、水平面の代わりに鉛直面が、ユーザインタフェースを配置するための基準面として利用されてもよい。
【００４５】
図１２Ｂは、任意平面の姿勢をユーザに指定させるためのユーザインタフェースの他の例を示す説明図である。図１２Ｂを参照すると、画像Ｉｍ０５に動物のキャラクターの外観を有するユーザインタフェースＵＩ２が重畳されている。ユーザインタフェースＵＩ２は、平面の姿勢を決定するための専用のユーザインタフェースではなく、ＡＲアプリケーションのためのアノテーションの１つであってもよい。なお、図面の明瞭さのために図示していないものの、入力画像に映る任意平面もまた画像Ｉｍ０５に表示されているものとする。決定部１３０は、水平面の姿勢を決定するための上述した手法に従って、基準面ＲＰの姿勢を決定する。そして、基準面ＲＰの姿勢を基準として、ＡＲ空間内にユーザインタフェースＵＩ２が配置される。ユーザインタフェースＵＩ２は、初期状態において基準面ＲＰと平行に配置される操作面ＯＤ２を有する。操作面ＯＤ２は、キャラクターの影のような外観を有する。ユーザインタフェースＵＩ２（キャラクター及びその影）は、ユーザにより３次元的に回転操作可能である。操作を通じて、ユーザは、入力画像に映る任意平面と操作面ＯＤ２とが平行となるように、ユーザインタフェースＵＩ２を３次元的に回転させる。そして、決定部１３０は、操作された操作面ＯＤ２の姿勢を用いて、任意平面の姿勢を決定する。
【００４６】
図１３は、決定部１３０により実行される平面決定処理の流れの第３の例を示すフローチャートである。第３の例では、任意平面の姿勢が、上述したユーザインタフェースを用いて決定される。図１３を参照すると、まず、データ取得部１２５は、重力の方向を示すセンサデータを取得する（ステップＳ１）。次に、決定部１３０は、センサデータに基づいて、水平面に相当する基準面の姿勢を決定する（ステップＳ２）。次に、図１２Ａに例示したユーザインタフェースＵＩ１（又は図１２Ｂに例示したユーザインタフェースＵＩ２）が、基準面の姿勢を基準としてＡＲ空間内に配置され、画面上に表示される（ステップＳ８）。ユーザインタフェースの表示は、例えば操作終了を意味するユーザ入力が検出されるまで継続され得る。次に、決定部１３０は、操作されたユーザインタフェースの操作面の姿勢から、任意平面の法線ベクトルを決定し、さらに任意平面の平面方程式を決定する（ステップＳ９）。
【００４７】
（４）３Ｄ構造ＤＢ
３Ｄ構造ＤＢ１３５は、撮像部１０２により撮像される実空間の３Ｄ構造を記憶するデータベースである。３Ｄ構造ＤＢ１３５は、例えば、決定部１３０により決定される平面の平面方程式を構成する定数項及び係数、即ち位置及び姿勢を記憶する。また、３Ｄ構造ＤＢ１３５は、ＳＬＡＭ演算部１４５により追加的に認識される、時間を追って変化し得る撮像部１０２の位置及び姿勢を記憶してもよい。さらに、３Ｄ構造ＤＢ１３５は、画像認識部１５６により認識され得る実物体の位置及び姿勢を記憶してもよい。後述する表示制御部１６５は、３Ｄ構造ＤＢ１３５により記憶される平面の位置及び姿勢、又は実物体の位置及び姿勢に応じて、ＡＲ空間内のアノテーションの配置を決定する。
【００４８】
（５）変換部
変換部１４０は、平面上の所与の点の３次元位置と当該３次元位置に対応する画像内の（即ち、撮像面上の）２次元位置との間の変換を、決定部１３０により決定される平面の姿勢を用いて行う。変換部１４０による３次元位置と２次元位置との間の変換のための計算処理は、公知のピンホールカメラモデルに従って行われてよい。ピンホールカメラモデルに従って行われる変換部１４０による計算処理について、再び図６を参照しながら、水平面を例にとって説明する。
【００４９】
撮像面上の任意の点Ｕｉの座標は、次のように表現され得る：
【００５０】
【数１】
0005920352.tif 000002
【００５１】
点Ｕｉは、カメラ内部パラメータ行列Ａの逆行列Ａ−１を用いて、次のように３次元空間内の点Ｑｉに投影される：
【００５２】
【数２】
0005920352.tif 000003
【００５３】
ここで、（ｆｘ，ｆｙ）は撮像面と実空間との間のスケール変化率を表す。（Ｃｘ，Ｃｙ）は撮像面の中心位置である。水平面ＨＰ上の所与の点の３次元位置をＴｉ（ｔｘ，ｔｙ，ｔｚ）とすると、ＴｉとＱｉとの間に次式が成り立つ。
【００５４】
【数３】
0005920352.tif 000004
【００５５】
ここで、式（４）のスケールｒｉは、次式により導かれる。なお、上述したように、Ｄは予め定義される仮の値であってよい。
【００５６】
【数４】
0005920352.tif 000005
【００５７】
従って、水平面ＨＰ上の所与の点を撮像面上に投影した２次元位置Ｕｉが与えられた場合、当該点の３次元位置Ｔｉは、水平面ＨＰの姿勢ＶＮ及び位置Ｄを用いて、次の式（６）によって計算され得る。また、水平面ＨＰ上の所与の点の３次元位置Ｔｉが与えられた場合の当該点に対応する撮像面上の２次元位置Ｕｉの求め方も、同様のピンホールカメラモデルに従って導かれ得る。
【００５８】
【数５】
0005920352.tif 000006
【００５９】
本実施形態において、変換部１４０による計算処理の対象となる所与の点は、少なくとも次に説明するＳＬＡＭ法の初期化の際に選択される特徴点を含む。ＡＲアプリケーションのためのアノテーションを構成する点もまた、変換部１４０による計算処理の対象となり得る。なお、水平面の代わりに鉛直面又は任意平面が用いられる場合にも、座標変換は、ここで説明した考え方と同様に行われ得る。
【００６０】
（６）ＳＬＡＭ演算部
ＳＬＡＭ演算部１４５は、ＳＬＡＭ法に従った演算を行うことにより、単眼カメラからの入力画像に映る実空間の３Ｄ構造と撮像部１０２の位置及び姿勢とを動的に認識する。
【００６１】
まず、図１４を用いて、ＳＬＡＭ演算部１４５によるＳＬＡＭ演算処理の全体的な流れについて説明する。次に、図１５〜図１８を用いて、ＳＬＡＭ演算処理の詳細を説明する。
【００６２】
図１４は、ＳＬＡＭ演算部１４５によるＳＬＡＭ演算処理の流れの一例を示すフローチャートである。図１４において、ＳＬＡＭ演算処理が開始すると、ＳＬＡＭ演算部１４５は、まず、初期化処理を実行して状態変数を初期化する（ステップＳ１０）。本実施形態において、状態変数とは、カメラの位置及び姿勢（回転角）、当該カメラの移動速度及び角速度、並びに１つ以上の特徴点の位置を要素として含むベクトルである。また、ＳＬＡＭ演算部１４５には、画像取得部１２０により取得される入力画像が順次入力される（ステップＳ２０）。ステップＳ３０からステップＳ５０までの処理は、各入力画像について（即ち毎フレーム）繰り返され得る。
【００６３】
ステップＳ３０では、ＳＬＡＭ演算部１４５は、入力画像に映る特徴点を追跡する。例えば、ＳＬＡＭ演算部１４５は、予め取得される特徴点ごとのパッチ（Patch）（例えば特徴点を中心とする３×３＝９画素の小画像）を新たな入力画像と照合する。そして、ＳＬＡＭ演算部１４５は、入力画像内のパッチの位置、即ち特徴点の位置を検出する。ここで検出される特徴点の位置は、後の状態変数の更新の際に用いられる。
【００６４】
ステップＳ４０では、ＳＬＡＭ演算部１４５は、所定の予測モデルに基づいて、例えば１フレーム後の状態変数の予測値を生成する。また、ステップＳ５０では、ＳＬＡＭ演算部１４５は、ステップＳ４０において生成した状態変数の予測値と、ステップＳ３０において検出した特徴点の位置に応じた観測値とを用いて、状態変数を更新する。ＳＬＡＭ演算部１４５は、ステップＳ４０及びＳ５０における処理を、拡張カルマンフィルタの原理に基づいて実行する。
【００６５】
このような処理の結果として、毎フレーム更新される状態変数の値が出力される。以下、状態変数の初期化（ステップＳ１０）、特徴点の追跡（ステップＳ３０）、状態変数の予測（ステップＳ４０）、状態変数の更新（ステップＳ５０）の各処理の内容について、より具体的に説明する。
【００６６】
（６−１）状態変数の初期化
ＳＬＡＭ演算部１４５により使用される状態変数は、図１５に例示する初期化処理を通じて初期化される。図１５を参照すると、まず、決定部１３０により平面決定処理が行われる（ステップＳ１１）。その結果、撮像面に対する実空間の平面の相対的な位置及び姿勢が決定される。次に、ＳＬＡＭ演算部１４５は、入力画像から複数の特徴点を選択する（ステップＳ１２）。ここで選択される特徴点は、例えば、テクスチャのエッジ又はコーナーなどに該当する特徴的な画素位置の点であってよい。次に、変換部１４０は、上述した式（６）に従って、ＳＬＡＭ演算部１４５により選択された各特徴点に対応する平面上の３次元位置を計算する（ステップＳ１３）。次に、ＳＬＡＭ演算部１４５は、選択された各特徴点のパッチデータを入力画像から抽出する（ステップＳ１４）。ここで抽出されたパッチデータを用いて、図１４のステップＳ３０における特徴点の追跡が行われ得る。
【００６７】
（６−２）特徴点の追跡
特徴点の追跡は、実空間内に存在し得る物体（実物体）の外観に現れる１つ以上の特徴点についてのパッチデータを用いて行われる。図１６には、実物体の２つの例として、タンス（図中左）及びカレンダー（図中右）が示されている。各実物体上には、１つ以上の特徴点（ＦＰ：Feature  Point）が設定されている。例えば、特徴点ＦＰ１はタンスに設定された特徴点であり、特徴点ＦＰ１と関連付けてパッチＰｔｈ１が定義されている。また、特徴点ＦＰ２はカレンダーに設定された特徴点であり、特徴点ＦＰ２と関連付けてパッチＰｔｈ２が定義されている。
【００６８】
ＳＬＡＭ演算部１４５は、図１５に例示した初期化処理において抽出された特徴点のパッチデータ、又はその後新たに設定される特徴点のパッチデータを、入力画像に含まれる部分画像と照合する。そして、ＳＬＡＭ演算部１４５は、照合の結果として、入力画像に含まれる特徴点の位置（例えば検出されたパッチの中心画素の位置）を特定する。
【００６９】
ＳＬＡＭ法の特色の１つは、追跡される特徴点が時間を追って動的に変化し得る点である。例えば、図１７の例では、時刻Ｔ＝ｔ−１において、６つの特徴点が入力画像内で検出されている。次に、時刻Ｔ＝ｔにおいてカメラの位置又は姿勢が変化すると、時刻Ｔ＝ｔ−１において入力画像に映っていた６つの特徴点のうち２つのみが入力画像内に映っている。この場合に、ＳＬＡＭ演算部１４５は、入力画像内で特徴的な画素のパターンを有する位置に新たに特徴点を設定し、その新たな特徴点を後のフレームにおけるＳＬＡＭ演算処理に用いてよい。例えば、図１７の例では、時刻Ｔ＝ｔにおいて、４つの新たな特徴点が実物体上に設定されている。かかる特色におり、ＳＬＡＭ法では、特徴点の事前設定に要するコストを削減できると共に、追加される多数の特徴点を用いて認識の精度が高められる。
【００７０】
（６−３）状態変数の予測
本実施形態において、ＳＬＡＭ演算部１４５は、拡張カルマンフィルタを適用すべき状態変数として、次式に示す状態変数Ｘを用いる。
【００７１】
【数６】
0005920352.tif 000007
【００７２】
式（７）における状態変数Ｘの第１の要素は、次式の通り、実空間内のカメラの３次元位置を表す。
【００７３】
【数７】
0005920352.tif 000008
【００７４】
また、状態変数の第２の要素は、カメラの姿勢を表す回転行列に対応する四元数（クォータニオン）を要素として有する４次元ベクトルωである。なお、四元数の変わりにオイラー角を用いてカメラの姿勢が表されてもよい。また、状態変数の第３及び第４の要素は、カメラの移動速度及び角速度をそれぞれ表す。
【００７５】
さらに、状態変数の第５及びそれ以降の要素は、特徴点ＦＰｉ（ｉ＝１…Ｎ）の３次元位置ｐｉをそれぞれ表す。なお、上述したように、特徴点の数Ｎは、処理の間変化し得る。
【００７６】
【数８】
0005920352.tif 000009
【００７７】
ＳＬＡＭ演算部１４５は、ステップＳ１０において初期化された状態変数Ｘの値、又は前フレームにおいて更新された状態変数Ｘの値に基づいて、最新のフレームについての状態変数の予測値を生成する。状態変数の予測値は、次式に示す多次元正規分布に従った拡張カルマンフィルタの状態方程式に従って生成される。
【００７８】
【数９】
0005920352.tif 000010
【００７９】
ここで、Ｆはシステムの状態遷移に関する予測モデル、ａは予測条件である。また、ｗはガウシアンノイズであり、例えばモデル近似誤差や観測誤差等を含み得る。一般的に、ガウシアンノイズｗの平均はゼロとなる。
【００８０】
図１８は、本実施形態に係る予測モデルの一例について説明するための説明図である。図１８を参照すると、本実施形態に係る予測モデルにおける２つの予測条件が示されている。まず、第１の条件として、特徴点の３次元位置は変化しないものとする。即ち、時刻Ｔにおける特徴点ＦＰ１の３次元位置をｐＴとすると、次式の関係が成立する。
【００８１】
【数１０】
0005920352.tif 000011
【００８２】
次に、第２の条件として、カメラの運動は等速運動であるものとする。即ち、時刻Ｔ＝ｔ−１から時刻Ｔ＝ｔにかけてのカメラの速度及び角速度について、次式の関係が成立する。
【００８３】
【数１１】
0005920352.tif 000012
【００８４】
このような予測モデル及び式（１０）に示した状態方程式に基づいて、ＳＬＡＭ演算部１４５は、最新のフレームについての状態変数の予測値を生成する。
【００８５】
（６−４）状態変数の更新
そして、ＳＬＡＭ演算部１４５は、観測方程式を用いて、例えば状態変数の予測値から予測される観測情報と、特徴点の追跡結果として得られる実際の観測情報との誤差を評価する。なお、式（１４）におけるνがその誤差である。
【００８６】
【数１２】
0005920352.tif 000013
【００８７】
ここで、Ｈは観測モデルを表す。例えば、特徴点ＦＰｉの撮像面（ｕ−ｖ平面）上の位置を、次式のように定義する。
【００８８】
【数１３】
0005920352.tif 000014
【００８９】
ここで、カメラの位置ｘ、カメラの姿勢ω、及び特徴点ＦＰｉの３次元位置ｐｉは、いずれも状態変数Ｘの要素として与えられる。そうすると、ピンホールカメラモデルに従い、特徴点ＦＰｉの撮像面上の位置は次式を用いて導かれる。なお、λは正規化のためのパラメータ、Ａはカメラ内部パラメータ行列、Ｒωは状態変数Ｘに含まれるカメラの姿勢を表す四元数ωに対応する回転行列である。
【００９０】
【数１４】
0005920352.tif 000015
【００９１】
従って、式（１７）を用いて導かれる予測される観測情報、即ち各特徴点の撮像面上の位置と、図１４のステップＳ３０における特徴点の追跡結果との間の誤差を最小にする状態変数Ｘを探索することにより、尤もらしい最新の状態変数Ｘを得ることができる。
【００９２】
【数１５】
0005920352.tif 000016
【００９３】
ＳＬＡＭ演算部１４５は、このようにＳＬＡＭ法に従って動的に更新される状態変数Ｘに含まれる各パラメータの値を、３Ｄ構造ＤＢ１３５に記憶させる。
【００９４】
（７）物体ＤＢ
物体ＤＢ１５０は、実物体の特徴を表す特徴データを予め記憶しているデータベースである。物体ＤＢ１５０により記憶される特徴データは、後述する画像認識部１５６による画像認識処理において使用される。図１９は、特徴データの構成の一例について説明するための説明図である。
【００９５】
図１９を参照すると、実物体Ｏｂｊ１についての一例としての特徴データ１５１が示されている。特徴データ１５１は、物体ＩＤ１５２、６方向から撮像した画像データ１５３、パッチデータ１５４及び３次元形状データ１５５を含む。
【００９６】
物体ＩＤ１５２は、実物体Ｏｂｊ１を一意に識別するための識別子である。画像データ１５３は、実物体Ｏｂｊ１を前・後・左・右・上・下の６方向からそれぞれ撮像した６つの画像データを含む。パッチデータ１５４は、実物体に設定される特徴点ごとの、各特徴点を中心とする小画像の集合である。３次元形状データ１５５は、実物体Ｏｂｊ１のローカル座標系における各特徴点の３次元位置（即ち、実物体Ｏｂｊ１内にローカルに定義される原点からの相対的な各特徴点の位置）を表す位置情報を含む。
【００９７】
（８）画像認識部
画像認識部１５６は、物体ＤＢ１５０により記憶されている上述した特徴データを用いて、入力画像にどの実物体が映っているかを認識する。より具体的には、例えば、画像認識部１５６は、画像取得部１２０により取得される入力画像に含まれる部分画像と、特徴データに含まれる各特徴点のパッチとを照合し、入力画像に含まれる特徴点を検出する。画像認識部１５６は、ＳＬＡＭ演算部１４５による特徴点の追跡結果を再利用してもよい。次に、画像認識部１５６は、画像内のある領域に１つの実物体に属する特徴点が高い密度で検出された場合には、当該領域にその実物体が映っていると認識し得る。画像認識部１５６は、検出された特徴点の間の位置関係と図１９に例示した３次元形状データとに基づいて、認識された実物体の位置及び姿勢をさらに認識し得る。画像認識部１５６により認識される実物体の位置及び姿勢と、ＳＬＡＭ演算部１４５により認識される撮像部１０２の位置及び姿勢とに基づいて、ＳＬＡＭ法の初期化後の実物体の位置及び姿勢の追跡が実現される。追跡される実物体の位置及び姿勢は、３Ｄ構造ＤＢ１３５により記憶される。
【００９８】
（９）アノテーションＤＢ
アノテーションＤＢ１６０は、ＡＲアプリケーションにおいて入力画像に重畳されるアノテーションに関するアノテーションデータを予め記憶しているデータベースである。アノテーションデータとは、例えば、図１及び図２に例示したアノテーションＡ１１、Ａ１２及びＡ２を含む様々なアノテーションについての識別子、形状データ、動きデータ並びに関連する実物体の物体ＩＤなどを含んでよい。
【００９９】
（１０）表示制御部
表示制御部１６５は、表示部１１０を用いたＡＲアプリケーションの表示を制御する。例えば、表示制御部１６５は、ＡＲアプリケーションの目的に応じてアノテーションＤＢ１６０から選択されるアノテーションを、入力画像に映る実空間に対応するＡＲ空間内に配置する。アノテーションの配置は、例えば、決定部１３０により決定された平面の位置及び姿勢に応じて決定されてよい。変換部１４０は、ＡＲ空間内に配置されたアノテーションを構成する特徴点（又はポリゴンの頂点など）に対応する撮像面上の２次元位置を、アノテーションを配置すべき平面の位置及び姿勢を用いて計算する。表示制御部１６５は、このような変換部１４０による計算結果に応じて、選択されたアノテーションを入力画像に重畳する。アノテーションが重畳された画像は、表示部１１０のディスプレイを用いて表示される。
【０１００】
（１１）ユーザインタフェース部
ユーザインタフェース部１７０は、図３に示した入力部１０６及び表示部１１０を用いて、情報処理装置１００のユーザにユーザインタフェースを提供する。例えば、ユーザインタフェース部１７０は、ＡＲアプリケーションをユーザに操作させるための操作画面を表示部１１０に表示させ、当該操作画面を通じてユーザ入力を検出する。例えば、アノテーションの選択、変更又は移動などがユーザインタフェース部１７０を介して行われてもよい。また、ユーザインタフェース部１７０は、図１０を用いて説明したような、入力画像に映る鉛直面をマップ上でユーザに指定させるためのユーザインタフェースを入力画像に重畳してもよい。また、ユーザインタフェース部１７０は、図１２Ａを用いて説明したような、任意平面の姿勢をユーザに指定させるためのユーザインタフェースを、当該任意平面が映る入力画像に重畳してもよい。
【０１０１】
［２−３．処理の流れ］
図２０は、本実施形態に係る情報処理装置１００による全体的な処理の流れの一例を示すフローチャートである。図２０を参照すると、まず、表示制御部１６５により（又はユーザインタフェース部１７０を介してユーザにより）表示すべきアノテーションが選択される（ステップＳ１１０）。次に、表示制御部１６５は、ＳＬＡＭ演算に基づいて認識される実空間の３Ｄ構造（例えば、選択されたアノテーションと関連付けられている実物体又は平面の位置及び姿勢）を、３Ｄ構造ＤＢ１３５から取得する（ステップＳ１２０）。次に、表示制御部１６５は、選択されたアノテーションを実空間の３Ｄ構造に応じてＡＲ空間内に配置する（ステップＳ１３０）。次に、変換部１４０は、ＡＲ空間内に配置されたアノテーションの表示位置を、上述したピンホールカメラモデルに従って計算する（ステップＳ１４０）。そして、表示制御部１６５は、変換部１４０による計算結果に応じて、選択されたアノテーションを入力画像に重畳する（ステップＳ１５０）。このような表示制御処理の結果、図１及び図２に例示したようなＡＲアプリケーションの表示が実現され得る。
【０１０２】
［２−４．第１の実施形態のまとめ］
本実施形態によれば、撮像装置に加わる重力の方向を示すセンサデータに基づいて実空間の水平面の法線ベクトルが認識され、認識された法線ベクトルを用いて、水平面又は鉛直面などの平面の撮像面に対する相対的な姿勢が決定される。そして、決定された平面の姿勢を用いた座標変換により、ＳＬＡＭ法の状態変数が初期化される。一般的に、画像認識に基づく水平面の認識よりも、３軸加速度センサによる鉛直方向の認識の方が高い認識精度が得られる。従って、画像認識に基づく手法を用いて状態変数が初期化される場合と比較して、より高い精度で状態変数を初期化することができる。特に、ＳＬＡＭ法の初期化の際の認識精度は、その後の実空間の３Ｄ構造の追跡の精度を左右する。そのため、状態変数をより高い精度で初期化することで、その後の実空間の３Ｄ構造の追跡をも正確に行うことが可能となる。
【０１０３】
また、本実施形態によれば、平面の相対的な位置は、仮の位置として簡易に決定される。そのため、アノテーションは、実空間の地面又は床面などに完全に一致するようには配置されない。しかし、本実施形態では、姿勢の精度が少なくとも高い精度で確保されるため、平面に沿って配置され又は平面上で移動するようなアノテーションを自然な形で画像に重畳することができる。特に、アノテーションのスケールが重視されないアプリケーションにおいては、平面の相対的な位置を正確に決定しなくても、当該平面の姿勢を正確に決定できれば、アプリケーションの目的は十分に達成され得る。
【０１０４】
また、本実施形態によれば、平面の姿勢を決定するにあたり、ＳｆＭ法のように視差が用いられることがない。そのため、撮像装置を移動させることなく又は撮像装置が固定されている状況においても、平面の姿勢を決定することができる。
【０１０５】
また、本実施形態によれば、３軸加速度センサからのセンサデータのみを用いて、水平面の姿勢を簡易且つ正確に決定することができる。さらに、予め定義される方向の制約、追加的なセンサデータ又はユーザ入力を利用することにより、鉛直面の姿勢をも正確に決定することができる。ユーザインタフェースを介して任意平面の姿勢を決定することもできる。従って、ＡＲアプリケーションが利用される多くの場面において、入力画像に映る様々な平面を用いて、高い精度でＳＬＡＭ法を初期化することが可能となる。
【０１０６】
＜３．第２の実施形態の詳細＞
本開示に係る技術の採用は、ＳＬＡＭ法を利用しないＡＲアプリケーションにとっても有益である。そこで、第２の実施形態として、ＳＬＡＭ法を利用しないＡＲアプリケーションを実装する情報処理装置２００について説明する。なお、本実施形態に係る情報処理装置２００は、第１の実施形態に係る情報処理装置１００と同様、図１に例示したような端末装置であってもよく、図２に例示したようなサーバ装置であってもよい。情報処理装置２００が端末装置である場合には、情報処理装置２００は、図３に例示したようなハードウェア構成を有し得る。
【０１０７】
［３−１．機能構成］
図２１は、第２の実施形態に係る情報処理装置２００の論理的機能の構成の一例を示すブロック図である。図２１を参照すると、情報処理装置２００は、画像取得部１２０、データ取得部１２５、決定部１３０、３Ｄ構造ＤＢ１３５、変換部１４０、物体ＤＢ１５０、画像認識部１５６、アノテーションＤＢ１６０、ユーザインタフェース部１７０及び表示制御部２６５を含む。
【０１０８】
本実施形態においても、決定部１３０は、データ取得部１２５により取得されるセンサデータに基づいて、撮像面に対する実空間の平面（水平面、鉛直面又は任意平面）の相対的な姿勢を決定する。そして、決定部１３０は、決定した姿勢を有する平面の３Ｄ構造を３Ｄ構造ＤＢ１３５に記憶させる。変換部１４０は、平面上の所与の点の３次元位置に対応する画像内の（即ち、撮像面上の）２次元位置を、決定部１３０により決定された平面の姿勢を用いて計算する。本実施形態において、変換部１４０による計算処理の対象となる所与の点は、ＡＲアプリケーションのためのアノテーションを構成する点である。画像認識部１５６は、物体ＤＢ１５０により記憶されている特徴データを用いて、入力画像内のどこにどの実物体が映っているかを認識する。画像認識部１５６による認識の結果は、表示制御部２６５によるアノテーションの選択及び配置の際に利用されてよい。
【０１０９】
表示制御部２６５は、ディスプレイを用いたＡＲアプリケーションの表示を制御する。例えば、表示制御部２６５は、ＡＲアプリケーションの目的に応じてアノテーションＤＢ１６０から選択されるアノテーションを、入力画像に映る実空間に対応するＡＲ空間内に配置する。アノテーションの配置は、画像認識部１５６による実物体の認識結果に応じて決定されてもよい。その代わりに、アノテーションは、決定部１３０により決定された平面に載置され又は貼付され若しく掲示されるように配置されてもよい。変換部１４０は、ＡＲ空間内に配置されたアノテーションを構成する特徴点（又はポリゴンの頂点など）に対応する撮像面上の２次元位置を、実物体又は平面の位置及び姿勢を用いて計算する。表示制御部２６５は、このような変換部１４０による計算結果に応じて、選択されたアノテーションを入力画像に重畳する。
【０１１０】
［３−２．処理の流れ］
図２２は、本実施形態に係る情報処理装置１００による全体的な処理の流れの一例を示すフローチャートである。図２２を参照すると、まず、決定部１３０により平面決定処理が行われる（ステップＳ２００）。次に、表示制御部２６５により表示すべきアノテーションが選択される（ステップＳ２１０）。次に、表示制御部２６５は、選択されたアノテーションをＡＲ空間内に配置する（ステップＳ２３０）。一例として、アノテーションは、平面上に載置されるように配置され得る。次に、変換部１４０は、ＡＲ空間内に配置されたアノテーションの表示位置を、上述したピンホールカメラモデルに従って計算する（ステップＳ２４０）。そして、表示制御部２６５は、変換部１４０による計算結果に応じて、選択されたアノテーションを入力画像に重畳する（ステップＳ２５０）。このような表示制御処理の結果、図１及び図２に例示したようなＡＲアプリケーションの表示が実現され得る。
【０１１１】
［３−３．第２の実施形態のまとめ］
本実施形態によれば、撮像装置に加わる重力の方向を示すセンサデータに基づいて、実空間の水平面の法線ベクトルが認識され、認識された法線ベクトルを用いて、水平面又は鉛直面などの平面の撮像面に対する相対的な姿勢が決定される。そして、決定された平面と関連付けて配置されるアノテーションの表示位置が、当該平面の姿勢を用いて簡易に計算される。上述したように、一般的に、画像認識に基づく水平面の認識よりも、３軸加速度センサによる鉛直方向の認識の方が高い認識精度が得られる。従って、画像認識に基づく手法を用いて認識される平面と関連付けてアノテーションが配置される場合と比較して、ＡＲアプリケーションにおいてより自然なアノテーションの表示を実現することができる。
【０１１２】
また、本実施形態によれば、３軸加速度センサからのセンサデータのみを用いて、水平面の姿勢を簡易且つ正確に決定することができる。さらに、予め定義される方向の制約、追加的なセンサデータ又はユーザ入力を利用することにより、鉛直面の姿勢をも正確に決定することができる。ユーザインタフェースを介して任意平面の姿勢を決定することもできる。従って、ＡＲアプリケーションが利用される多くの場面において、入力画像に映る様々な平面と関連付けて、アノテーションを自然に表示することが可能となる。
【０１１３】
＜４．スケールの調整＞
第１及び第２の実施形態では、決定部１３０により決定される平面は、仮想的なスケールを有する。即ち、当該平面の平面方程式の定数項Ｄの値は、仮の値である。決定部１３０は、かかる定数項Ｄの値を調整し、平面の位置を地面、床面、天井面又は実物体の表面（例えば、建物の壁面）などに一致させてもよい。また、決定部１３０は、ＡＲアプリケーションの要件に応じて定数項Ｄの値を調整してもよい。本節では、水平面を例にとって、平面のスケールを調整するための３つの手法を説明する。
【０１１４】
［４−１．第１の手法］
第１の手法では、入力画像に映る実物体の既知のサイズが利用される。例えば、物体ＤＢ１５０により記憶される特徴データに含まれる３次元形状データ（図１９参照）における１つの実物体に属する２つの特徴点の位置の差を、実物体の既知のサイズとして扱うことができる。
【０１１５】
図２３は、平面のスケールを決定するための第１の手法について説明するための説明図である。図２３には、水平面ＨＰ上の２つの特徴点Ｔ１及びＴ２が示されている。特徴点Ｔ１は撮像面ＩＰ上の位置Ｕ１に対応し、特徴点Ｔ２は撮像面ＩＰ上の位置Ｕ２に対応する。これら特徴点Ｔ１及びＴ２は、１つの実物体に属するものとする。画像認識部１５６は、入力画像からこれら特徴点Ｔ１及びＴ２を含む実物体を認識する。決定部１３０は、認識された実物体についての特徴データに含まれる３次元形状データから、特徴点Ｔ１及びＴ２の間の距離ｄＨＰを計算する。そして、決定部１３０は、平面方程式の定数項Ｄを未知の変数とし、特徴点Ｔ１及びＴ２の間の距離がｄＨＰとなるＤの値を導出する。
【０１１６】
［４−２．第２の手法］
第２の手法では、入力画像に映る平面と撮像装置との間の距離に関連するデータが利用される。例えば、入力画像に映る平面が地面又は床面などの水平面である場合には、撮像装置のこれら水平面からの高さに関連するデータが利用され得る。また、例えば、入力画像に映る平面が建物の壁面などの鉛直面である場合には、マップデータから計算される当該壁面と撮像装置との間の距離が利用され得る。
【０１１７】
図２４は、平面のスケールを決定するための第２の手法について説明するための説明図である。図２４には、水平面ＨＰ上に立っているユーザＵａ及びユーザＵａが携帯している情報処理装置１００が示されている。ここで、例えばユーザＵａの身長が、既知のデータとして予め記憶されており、又はユーザＵａにより情報処理装置１００へ入力されるものとする。決定部１３０は、ユーザＵａの身長に一定の割合を乗じることにより、情報処理装置１００の撮像部１０２の高さＨａを推定する。決定部１３０は、このように推定した高さＨａを、平面方程式の定数項Ｄとして用いることができる。
【０１１８】
［４−３．第３の手法］
第３の手法では、入力画像に重畳して表示されるアノテーションについての表示サイズが利用される。例えば、アノテーションＤＢ１６０において、３次元のＡＲ空間内でのアノテーションのサイズが定義されているものとする。この場合、平面上に配置されるアノテーションの撮像面上でのサイズ、即ち表示サイズがさらに特定されれば、これら２つのサイズから平面のスケールを決定することができる。
【０１１９】
図２５は、平面のスケールを決定するための第３の手法について説明するための第１の説明図である。図２５には、実空間内に存在するテーブル１４を映した画像Ｉｍ１１が示されている。アノテーションＡ２は、テーブル１４の表面に載置されているかのように画像Ｉｍ１１に重畳されている。ここで、ＡＲアプリケーションは、固定的に定義される表示サイズｄｄｉｓｐでアノテーションＡ２を表示するものとする。この場合、決定部１３０は、ＡＲ空間内に配置されるアノテーションＡ２が撮像面上で表示サイズｄｄｉｓｐを有するように、平面の平面方程式の定数項Ｄを決定する。その結果、当該平面上に配置されるアノテーションＡ２の表示サイズが所定の表示サイズｄｄｉｓｐとなる。
【０１２０】
図２６は、平面のスケールを決定するための第３の手法について説明するための第２の説明図である。図２６には、テーブルの表面に載置されているかのようにアノテーションＡ２が重畳された画像Ｉｍ１２が示されている。アノテーションＡ２の表示サイズｄｄｉｓｐは、ユーザインタフェース部１７０を介してユーザにより指定される。この場合にも、決定部１３０は、ＡＲ空間内に配置されるアノテーションＡ２が撮像面上で表示サイズｄｄｉｓｐを有するように、平面の平面方程式の定数項Ｄを決定する。その結果、当該平面上に配置されるアノテーションＡ２の表示サイズが指定された表示サイズｄｄｉｓｐとなる。
【０１２１】
上述した第１の手法又は第２の手法によれば、入力画像に映る実在する地面、床面、天井面又は実物体の表面などに、平面の位置を一致させることができる。それにより、これら実在する平面と関連付けられるアノテーションの表示はより自然になる。上述した第３の手法によれば、平面のスケールが調整されることにより、所望の表示サイズでアノテーションを表示することが可能となる。
【０１２２】
＜５．総括＞
ここまで、図１〜図２６を用いて、本開示に係る技術の２つの実施形態について詳細に説明した。これら実施形態によれば、画像認識に基づく手法が利用される場合と比較して、実空間の平面の姿勢をより正確に認識して当該平面の姿勢をＡＲ技術のために利用することができる。
【０１２３】
なお、本開示に係る技術は、ＡＲアプリケーションに関連する用途以外にも、例えば撮像装置の位置決めの際の水平面及び鉛直面の表示、又は記録される画像への水平面又は鉛直面を表す標識の付加など、様々な用途に応用されてよい。
【０１２４】
また、上述した情報処理装置１００又は２００の論理的機能の一部は、これら装置上に実装される代わりに、クラウドコンピューティング環境内に存在する装置上に実装されてもよい。その場合には、論理的機能の間でやり取りされる情報が、図３に例示した通信部１１２を介して装置間で送信され又は受信され得る。
【０１２５】
本明細書において説明した各装置による一連の処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵなどのプロセッサにより実行される。
【０１２６】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１２７】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
実空間を映す画像を撮像する撮像装置に加わる重力の方向を示すセンサデータを取得するデータ取得部と、
前記センサデータに基づいて、前記画像に対する前記実空間の平面の相対的な姿勢を決定する決定部と、
前記平面上の所与の点の３次元位置と対応する前記画像内の２次元位置との間の変換を、前記決定部により決定される前記姿勢を用いて行う変換部と、
を備える情報処理装置。
（２）
前記平面上の前記所与の点は、ＳＬＡＭ（Simultaneous  Localization  And  Mapping）法の初期化の際に選択される特徴点である、前記（１）に記載の情報処理装置。
（３）
前記平面上の前記所与の点は、拡張現実のためのアノテーションを構成する点である、前記（１）に記載の情報処理装置。
（４）
前記決定部は、前記センサデータに基づいて決定される前記姿勢と仮の位置とを有する仮想的な平面を決定し、
前記情報処理装置は、前記アノテーションを前記画像に重畳する表示制御部、をさらに備え、
前記アノテーションは、前記仮想的な平面上の３次元位置から前記変換部により変換される前記画像内の２次元位置に重畳される、
前記（３）に記載の情報処理装置。
（５）
前記情報処理装置は、前記画像に映る物体を認識する認識部、をさらに備え、
前記決定部は、前記認識部により認識される物体の実サイズについての既知のデータを用いて、前記画像に映る前記平面の位置をさらに決定する、
前記（２）又は前記（３）に記載の情報処理装置。
（６）
前記決定部は、前記画像に映る前記平面と前記撮像装置との間の距離に関連するデータを用いて、前記平面の位置をさらに決定する、前記（１）〜（３）のいずれか１項に記載の情報処理装置。
（７）
前記決定部は、表示される前記アノテーションについての表示サイズを用いて、前記アノテーションが配置される前記平面の位置をさらに決定する、前記（３）に記載の情報処理装置。
（８）
前記情報処理装置は、前記表示サイズをユーザに指定させるユーザインタフェース部、をさらに備える、前記（７）に記載の情報処理装置。
（９）
前記平面は、水平面であり、
前記決定部は、前記撮像装置が上方及び下方のいずれを向いているかを前記センサデータに基づいて判定し、当該判定の結果に応じて前記水平面の前記姿勢を決定する、
前記（１）〜（８）のいずれか１項に記載の情報処理装置。
（１０）
前記平面は、鉛直面であり、
前記決定部は、重力の方向を示す前記センサデータと予め定義される方向の制約とに基づいて、前記鉛直面の姿勢を決定する、
前記（１）〜（８）のいずれか１項に記載の情報処理装置。
（１１）
前記平面は、鉛直面であり、
前記決定部は、重力の方向を示す前記センサデータと前記撮像装置及び前記鉛直面の位置関係を示すマップデータとに基づいて、前記鉛直面の姿勢を決定する、
前記（１）〜（８）のいずれか１項に記載の情報処理装置。
（１２）
前記決定部は、前記マップデータに含まれる１つ以上の鉛直面の候補から、地磁気の方向を示すセンサデータを用いて前記画像に映る鉛直面を推定し、推定した前記鉛直面の姿勢を、前記マップデータと重力の方向とに基づいて決定する、前記（１１）に記載の情報処理装置。
（１３）
前記決定部は、前記マップデータに含まれる１つ以上の鉛直面の候補からユーザにより指定される鉛直面の姿勢を、前記マップデータと重力の方向とに基づいて決定する、前記（１１）に記載の情報処理装置。
（１４）
前記情報処理装置は、
前記センサデータに基づいて決定される水平面又は鉛直面の姿勢を基準として、前記平面の姿勢をユーザに指定させるためのユーザインタフェースを拡張現実空間内に配置するユーザインタフェース部、
をさらに備える、前記（１）〜（８）のいずれか１項に記載の情報処理装置。
（１５）
前記ユーザインタフェースの配置は、複数のフレームにわたって前記拡張現実空間内で維持される、前記（１４）に記載の情報処理装置。
（１６）
前記ユーザインタフェースは、３次元的に回転操作可能な操作面を有し、
前記決定部は、前記平面と平行となるようにユーザにより操作された前記操作面の姿勢を用いて、前記平面の姿勢を決定する、
前記（１５）に記載の情報処理装置。
（１７）
前記情報処理装置は、前記撮像装置と前記センサデータを出力するセンサとをさらに備える端末装置である、前記（１）〜（１６）のいずれか１項に記載の情報処理装置。
（１８）
前記データ取得部、前記決定部及び前記変換部のうち少なくとも１つが前記情報処理装置の代わりにクラウドコンピューティング環境内に存在する装置上に実装される、前記（１）〜（１７）のいずれか１項に記載の情報処理装置。
（１９）
情報処理装置を制御するコンピュータにおいて、
実空間を映す画像を撮像する撮像装置に加わる重力の方向を示すセンサデータを取得することと、
前記センサデータに基づいて、前記画像に対する前記実空間の平面の相対的な姿勢を決定することと、
前記平面上の所与の点の３次元位置と対応する前記画像内の２次元位置との間の変換を、決定された前記姿勢を用いて行うことと、
を含む情報処理方法。
（２０）
情報処理装置を制御するコンピュータを、
実空間を映す画像を撮像する撮像装置に加わる重力の方向を示すセンサデータを取得するデータ取得部と、
前記センサデータに基づいて、前記画像に対する前記実空間の平面の相対的な姿勢を決定する決定部と、
前記平面上の所与の点の３次元位置と対応する前記画像内の２次元位置との間の変換を、前記決定部により決定される前記姿勢を用いて行う変換部と、
として機能させるためのプログラム。
【符号の説明】
【０１２８】
１００，２００    情報処理装置
１０２            撮像部
１０４            センサ部
１２５            データ取得部
１３０            決定部
１４０            変換部
１５６            認識部
１６５，２６５    表示制御部
１７０            ユーザインタフェース部
ＨＰ              水平面
ＩＰ              撮像面
【図１】
0005920352.tif 000017
【図２】
0005920352.tif 000018
【図３】
0005920352.tif 000019
【図４】
0005920352.tif 000020
【図５】
0005920352.tif 000021
【図６】
0005920352.tif 000022
【図７】
0005920352.tif 000023
【図８】
0005920352.tif 000024
【図９】
0005920352.tif 000025
【図１０】
0005920352.tif 000026
【図１１】
0005920352.tif 000027
【図１２Ａ】
0005920352.tif 000028
【図１２Ｂ】
0005920352.tif 000029
【図１３】
0005920352.tif 000030
【図１４】
0005920352.tif 000031
【図１５】
0005920352.tif 000032
【図１６】
0005920352.tif 000033
【図１７】
0005920352.tif 000034
【図１８】
0005920352.tif 000035
【図１９】
0005920352.tif 000036
【図２０】
0005920352.tif 000037
【図２１】
0005920352.tif 000038
【図２２】
0005920352.tif 000039
【図２３】
0005920352.tif 000040
【図２４】
0005920352.tif 000041
【図２５】
0005920352.tif 000042
【図２６】
0005920352.tif 000043