(57)【特許請求の範囲】
【請求項１】
撮像装置を用いて撮像された実空間を映す入力画像を取得する画像取得部と、
前記入力画像を表示装置の画面上に表示させ、前記画面上でユーザにより指定されるカメラ座標系での指定位置を検出するユーザインタフェース部と、
前記ユーザインタフェース部により検出される前記指定位置における座標を、前記カメラ座標系から拡張現実空間を表現する実空間モデルにおいて固定のグローバル座標系に変換することにより、仮想オブジェクトの前記実空間モデルに対応付けられた拡張現実空間内での３次元位置を決定する計算部と、
前記計算部により計算される前記仮想オブジェクトの前記グローバル座標系における前記３次元位置を前記仮想オブジェクトと関連付けて記憶媒体に記憶させるオーサリング部と、
を備える情報処理装置。
【請求項２】
前記ユーザインタフェース部は、前記入力画像に映る物体のいずれかの面を第１の面として前記ユーザに指定させ、
前記計算部により計算される前記３次元位置は、前記拡張現実空間内の前記第１の面を包含する平面上の、前記指定位置に対応する位置である、
請求項１に記載の情報処理装置。
【請求項３】
前記ユーザインタフェース部は、前記画面上で前記ユーザにベクトルをさらに指定させ、
前記計算部は、指定される前記ベクトルを用いて、前記仮想オブジェクトの前記拡張現実空間内での姿勢をさらに計算し、
前記オーサリング部は、前記計算部により計算される前記仮想オブジェクトの前記姿勢を前記記憶媒体にさらに記憶させる、
請求項２に記載の情報処理装置。
【請求項４】
前記計算部は、前記仮想オブジェクトが表示される際に前記仮想オブジェクトの少なくとも１つの面の法線が前記第１の面の法線と平行となるように、前記仮想オブジェクトの前記拡張現実空間内での姿勢を計算する、請求項３に記載の情報処理装置。
【請求項５】
前記ユーザインタフェース部は、前記仮想オブジェクトの前記少なくとも１つの面と前記第１の面を包含する前記平面との間の距離を前記ユーザにさらに指定させ、
前記計算部は、前記距離がゼロでない場合には、前記仮想オブジェクトの前記３次元位置を前記距離に応じてオフセットする、
請求項４に記載の情報処理装置。
【請求項６】
前記ユーザインタフェース部は、前記画面上で前記ユーザにより指定される２つの指定位置を検出し、
前記計算部は、前記２つの指定位置にそれぞれ対応する前記入力画像に映る物体の面が前記仮想オブジェクトの２つの面に接するように、前記仮想オブジェクトの前記拡張現実空間内での前記３次元位置及び姿勢を計算し、
前記オーサリング部は、前記計算部により計算される前記仮想オブジェクトの前記３次元位置及び前記姿勢を前記記憶媒体に記憶させる、
請求項２に記載の情報処理装置。
【請求項７】
前記ユーザインタフェース部は、前記仮想オブジェクトと関連付けられる前記実空間内の物体を前記ユーザに指定させ、
前記３次元位置は、前記ユーザにより指定される前記物体からの相対位置として記憶される、
請求項１に記載の情報処理装置。
【請求項８】
前記情報処理装置は、
前記実空間内の１つ以上の物体の各々の外観の特徴を表すモデルデータを取得するデータ取得部と、
前記モデルデータと前記入力画像とを照合することにより、前記入力画像に映る各物体の前記実空間内での位置及び姿勢を認識する認識部と、
をさらに備える、
請求項２に記載の情報処理装置。
【請求項９】
前記計算部は、前記第１の面の前記実空間内でのサイズに応じて、前記仮想オブジェクトが表示される際の前記仮想オブジェクトの前記拡張現実空間内でのサイズをさらに計算する、請求項２に記載の情報処理装置。
【請求項１０】
撮像装置を用いて撮像された実空間を映す入力画像を取得するステップと、
前記入力画像を表示装置の画面上に表示するステップと、
前記画面上でユーザにより指定されるカメラ座標系での指定位置を検出するステップと、
前記指定位置における座標を、前記カメラ座標系から拡張現実空間を表現する実空間モデルにおいて固定のグローバル座標系に変換することにより、仮想オブジェクトの前記実空間モデルに対応付けられた拡張現実空間内での３次元位置を決定するステップと、
計算された前記仮想オブジェクトの前記グローバル座標系における前記３次元位置を前記仮想オブジェクトと関連付けて記憶媒体に記憶させるステップと、
を含むオーサリング方法。
【請求項１１】
表示装置と接続される情報処理装置を制御するコンピュータを、
撮像装置を用いて撮像された実空間を映す入力画像を取得する画像取得部と、
前記入力画像を前記表示装置の画面上に表示させ、前記画面上でユーザにより指定されるカメラ座標系での指定位置を検出するユーザインタフェース部と、
前記ユーザインタフェース部により検出される前記指定位置における座標を、前記カメラ座標系から拡張現実空間を表現する実空間モデルにおいて固定のグローバル座標系に変換することにより、仮想オブジェクトの前記実空間モデルに対応付けられた拡張現実空間内での３次元位置を決定する計算部と、
前記計算部により計算される前記仮想オブジェクトの前記グローバル座標系における前記３次元位置を前記仮想オブジェクトと関連付けて記憶媒体に記憶させるオーサリング部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、オーサリング方法及びプログラムに関する。
【背景技術】
【０００２】
近年、実世界に付加的な情報を重畳してユーザに呈示する拡張現実（ＡＲ：Augmented  Reality）と呼ばれる技術が注目されている。ＡＲ技術においてユーザに呈示される情報は、アノテーションとも呼ばれ、テキスト、アイコン又はアニメーションなどの様々な形態の仮想的なオブジェクトを用いて可視化され得る。例えば、ＡＲ技術を広告のために利用する場合には、実世界の建物の壁面又は看板などに、広告用の仮想オブジェクト（例えば、キャッチコピーを付した製品の画像など）が重畳して表示され得る。また、ＡＲ技術を道案内のために利用する場合には、実世界で目印となる物体又は路上などに、案内用の仮想オブジェクト（例えば、矢印など）が重畳して表示され得る。
【０００３】
ＡＲコンテンツを作製する作業は、いわゆるオーサリングの一種である。ＡＲコンテンツをオーサリングする開発ユーザは、どの仮想オブジェクトを３次元空間のどこにどういった姿勢で配置するかを決定する。決定された仮想オブジェクトの配置は、実世界の特定の場所又は特定の物体と関連付けてデータとして記憶される。その結果、特定の場所又は特定の物体をエンドユーザが撮像装置で撮像するとそこに関連付けられた仮想オブジェクトが撮像画像に重畳されるという、ＡＲアプリケーションが実現される。
【０００４】
下記非特許文献１は、仮想オブジェクトを配置する前の段階で実空間をモデリングするための技術の一例を示している。下記非特許文献２は、仮想オブジェクトを撮像画像に重畳する際に必要とされる撮像装置の位置及び姿勢を算出することを目的とした、自然マーカを利用した技術の一例を示している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】A.  van  den  Hengel,  R.Hill,  B.Ward  and  A.Dick,  “In  Situ  Image-based  Modeling”（In  Proc.  8th  IEEE  International  Symposium  on  Mixed  and  Augmented  Reality，  2009）
【非特許文献２】W.Daniel,  G.Reitmayr,  A.Mulloni,  T.Drummond,  and  D.Schmalstieg,  “Pose  Tracking  from  Natural  Features  on  Mobile  Phones”（In  Proc.  7th  IEEE  International  Symposium  on  Mixed  and  Augmented  Reality，2008）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、これまでのオーサリングの作業では、ＡＲ空間に仮想オブジェクトを適切に配置するために、座標変換及びＣＡＤ（Computer  Aided  Design）などに関する専門知識が求められていた。即ち、ＡＲコンテンツをオーサリングすることができるのは、専門知識を有するエキスパートのみであった。このような状況では、多様なＡＲコンテンツを数多く市場に供給し、ＡＲ技術のメリットを広くエンドユーザに享受させることが難しい。
【０００７】
そこで、本発明は、専門知識を有しない一般のユーザでも容易にＡＲコンテンツをオーサリングすることを可能とする、情報処理装置、オーサリング方法及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【０００８】
本発明のある実施形態によれば、撮像装置を用いて撮像された実空間を映す入力画像を取得する画像取得部と、上記入力画像を表示装置の画面上に表示させ、上記画面上でユーザにより指定される指定位置を検出するユーザインタフェース部と、仮想オブジェクトの拡張現実空間内での３次元位置を、上記ユーザインタフェース部により検出される上記指定位置から計算する計算部と、上記計算部により計算される上記仮想オブジェクトの上記３次元位置を上記仮想オブジェクトと関連付けて記憶媒体に記憶させるオーサリング部と、を備える情報処理装置が提供される。
【０００９】
また、上記ユーザインタフェース部は、上記入力画像に映る物体のいずれかの面を第１の面として上記ユーザに指定させ、上記計算部により計算される上記３次元位置は、上記拡張現実空間内の上記第１の面を包含する平面上の、上記指定位置に対応する位置であってもよい。
【００１０】
また、上記ユーザインタフェース部は、上記画面上で上記ユーザにベクトルをさらに指定させ、上記計算部は、指定される上記ベクトルを用いて、上記仮想オブジェクトの上記拡張現実空間内での姿勢をさらに計算し、上記オーサリング部は、上記計算部により計算される上記仮想オブジェクトの上記姿勢を上記記憶媒体にさらに記憶させてもよい。
【００１１】
また、上記計算部は、上記仮想オブジェクトが表示される際に上記仮想オブジェクトの少なくとも１つの面の法線が上記第１の面の法線と平行となるように、上記仮想オブジェクトの上記拡張現実空間内での姿勢を計算してもよい。
【００１２】
また、上記ユーザインタフェース部は、上記仮想オブジェクトの上記少なくとも１つの面と上記第１の面を包含する上記平面との間の距離を上記ユーザにさらに指定させ、上記計算部は、上記距離がゼロでない場合には、上記仮想オブジェクトの上記３次元位置を上記距離に応じてオフセットしてもよい。
【００１３】
また、上記ユーザインタフェース部は、上記画面上で上記ユーザにより指定される２つの指定位置を検出し、上記計算部は、上記２つの指定位置にそれぞれ対応する上記入力画像に映る物体の面が上記仮想オブジェクトの２つの面に接するように、上記仮想オブジェクトの上記拡張現実空間内での上記３次元位置及び姿勢を計算し、上記オーサリング部は、上記計算部により計算される上記仮想オブジェクトの上記３次元位置及び上記姿勢を上記記憶媒体に記憶させてもよい。
【００１４】
また、上記ユーザインタフェース部は、上記仮想オブジェクトと関連付けられる上記実空間内の物体を上記ユーザに指定させ、上記３次元位置は、上記ユーザにより指定される上記物体からの相対位置として記憶されてもよい。
【００１５】
また、上記情報処理装置は、上記実空間内の１つ以上の物体の各々の外観の特徴を表すモデルデータを取得するデータ取得部と、上記モデルデータと上記入力画像とを照合することにより、上記入力画像に映る各物体の上記実空間内での位置及び姿勢を認識する認識部と、をさらに備えてもよい。
【００１６】
また、上記計算部は、上記第１の面の上記実空間内でのサイズに応じて、上記仮想オブジェクトが表示される際の上記仮想オブジェクトの上記拡張現実空間内でのサイズをさらに計算してもよい。
【００１７】
また、本発明の別の実施形態によれば、撮像装置を用いて撮像された実空間を映す入力画像を取得するステップと、上記入力画像を表示装置の画面上に表示するステップと、上記画面上でユーザにより指定される指定位置を検出するステップと、仮想オブジェクトの拡張現実空間内での３次元位置を、検出された上記指定位置から計算するステップと、計算された上記仮想オブジェクトの上記３次元位置を上記仮想オブジェクトと関連付けて記憶媒体に記憶させるステップと、を含むオーサリング方法が提供される。
【００１８】
また、本発明の別の実施形態によれば、表示装置と接続される情報処理装置を制御するコンピュータを、撮像装置を用いて撮像された実空間を映す入力画像を取得する画像取得部と、上記入力画像を上記表示装置の画面上に表示させ、上記画面上でユーザにより指定される指定位置を検出するユーザインタフェース部と、仮想オブジェクトの拡張現実空間内での３次元位置を、上記ユーザインタフェース部により検出される上記指定位置から計算する計算部と、上記計算部により計算される上記仮想オブジェクトの上記３次元位置を上記仮想オブジェクトと関連付けて記憶媒体に記憶させるオーサリング部と、として機能させるためのプログラムが提供される。
【発明の効果】
【００１９】
以上説明したように、本発明に係る情報処理装置、オーサリング方法及びプログラムによれば、専門知識を有しない一般のユーザでも容易にＡＲコンテンツをオーサリングすることが可能となる。
【図面の簡単な説明】
【００２０】
【図１】一実施形態に係る情報処理装置の概要を説明するための説明図である。
【図２】ＡＲコンテンツのオーサリングについて説明するための説明図である。
【図３】一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図４】実空間モデルの概要について説明するための説明図である。
【図５】実空間モデルのデータ例を示す説明図である。
【図６】物体モデルの概要について説明するための説明図である。
【図７】物体モデルのデータ例を示す説明図である。
【図８】仮想オブジェクトの第１の例を示す説明図である。
【図９】仮想オブジェクトの第２の例を示す説明図である。
【図１０】仮想オブジェクトの第３の例を示す説明図である。
【図１１】仮想オブジェクトの第４の例を示す説明図である。
【図１２】仮想オブジェクトデータのデータ例を示す説明図である。
【図１３】一実施形態に係る情報処理装置の機能構成の一例を示すブロック図である。
【図１４】一実施形態に係るオーサリング画面の一例を示す説明図である。
【図１５】コンタクト位置からのオフセットについて説明するための説明図である。
【図１６】一実施形態に係る位置・姿勢計算処理の流れの一例を示すフローチャートである。
【図１７】一実施形態に係るインスタンスデータのデータ例を示す説明図である。
【図１８】オーサリング作業の第１のシナリオについて説明するためのシーケンス図である。
【図１９】第１のシナリオにおいて表示される画像の一例を示す説明図である。
【図２０】オーサリング作業の第２のシナリオについて説明するためのシーケンス図である。
【図２１】第２のシナリオにおいて表示される画像の一例を示す説明図である。
【図２２】オーサリング作業の第３のシナリオについて説明するためのシーケンス図である。
【図２３】第３のシナリオにおいて表示される画像の一例を示す説明図である。
【図２４】オーサリング作業の第４のシナリオについて説明するためのシーケンス図である。
【図２５】第４のシナリオにおいて表示される画像の一例を示す説明図である。
【図２６】オーサリング作業の第５のシナリオについて説明するためのシーケンス図である。
【図２７】第５のシナリオにおいて表示される画像の一例を示す説明図である。
【図２８】仮想オブジェクトのサイズの変更について説明するための説明図である。
【発明を実施するための形態】
【００２１】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【００２２】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
１．一実施形態に係る情報処理装置の概要
２．ハードウェア構成例
３．データ構成例
３−１．モデルデータ
３−２．仮想オブジェクトデータ
４．機能構成例
４−１．画像取得部
４−２．データ取得部
４−３．画像認識部
４−４．ユーザインタフェース部
４−５．オーサリング部
４−６．計算部
５．インスタンスデータの生成
６．作業シナリオ
７．まとめ
【００２３】
＜１．一実施形態に係る情報処理装置の概要＞
まず、図１及び図２を参照しながら、本発明の一実施形態に係る情報処理装置の概要を説明する。図１を参照すると、一例としての情報処理装置１００が示されている。情報処理装置１００は、ＡＲコンテンツをオーサリングするユーザが使用する装置である。図１では、情報処理装置１００の一例として、ＰＣ（Personal  Computer）が示されている。しかしながら、情報処理装置１００は、スマートフォン、ＰＤＡ（Personal  Digital  Assistant）、ゲーム端末又はワークステーションなどの他の種類の装置であってもよい。
【００２４】
図１の例では、情報処理装置１００は、撮像装置１０２と接続されている。撮像装置１０２は、実空間１を撮像し、撮像画像を生成する。撮像装置１０２により生成される撮像画像は、後に説明する情報処理装置１００による処理のための入力画像となる。図１の下には、一例としての入力画像Ｉｍ００が示されている。入力画像は、オーサリングの際に情報処理装置１００へリアルタイムで入力されてもよい。その代わりに、情報処理装置１００によりアクセス可能な記憶媒体に撮像画像が一旦記憶され、記憶された撮像画像を入力画像として事後的にオーサリングが行われてもよい。また、撮像画像は、情報処理装置１００によりアクセス可能なネットワーク上のサーバから提供されてもよい。例えば、情報処理装置１００は、Google  Earth（登録商標）のような画像情報提供サービスから撮像画像を取得してもよい。
【００２５】
図２は、ＡＲコンテンツのオーサリングについて説明するための説明図である。図２の左には、図１に示した入力画像Ｉｍ００の一部を拡大した入力画像Ｉｍ０１が示されている。入力画像Ｉｍ０１には、実空間に存在する物体Ｂ１及びＢ２が映っている。物体Ｂ１は、建物である。物体Ｂ２は、建物Ｂ１の屋上に設置された看板である。実空間においては、看板Ｂ２の表面に何も書かれていない。
【００２６】
図２の下には、仮想オブジェクトＶ１が示されている。仮想オブジェクトＶ１は、ビデオカメラの新製品についての広告を表示するポスターを模したアノテーションである。情報処理装置１００には、このような１つ以上の仮想オブジェクトのデータが予め記憶されている。そして、ユーザは、ＡＲコンテンツのオーサリングの作業において、入力画像内の所望の位置に仮想オブジェクトを配置する。
【００２７】
図２の右には、仮想オブジェクトＶ１が配置された出力画像Ｉｍ０２が示されている。出力画像Ｉｍ０２において、仮想オブジェクトＶ１は、看板Ｂ２の表面に重畳されている。出力画像Ｉｍ０２は、情報処理装置１００の画面上で開発ユーザが確認することのできる画像である。また、出力画像Ｉｍ０２は、実空間１においてＡＲアプリケーションを利用するエンドユーザにも呈示され得る画像である。エンドユーザが端末の向きを変えても仮想オブジェクトＶ１が看板Ｂ２の表面に適切に重畳されるためには、仮想オブジェクトＶ１のＡＲ空間内での３次元位置（及び姿勢）が正確に定義されていることが求められる。
【００２８】
仮想オブジェクトのＡＲ空間内での配置を定義するために、これまでは、例えば仮想オブジェクトの３次元座標の算出及び３次元座標と２次元座標との間の座標変換などといった、高度な専門知識を要する作業が求められていた。そのため、ＡＲコンテンツをオーサリングすることのできるのは、専門知識を有するエキスパートのみであった。これに対し、本実施形態に係る情報処理装置１００は、次節より詳しく説明する仕組みにより、専門知識を有しない一般のユーザでも容易にＡＲコンテンツをオーサリングすることを可能とする。
【００２９】
＜２．ハードウェア構成例＞
図３は、本実施形態に係る情報処理装置１００のハードウェア構成の一例を示すブロック図である。図３を参照すると、情報処理装置１００は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１２、接続ポート１１４、バス１１６及び制御部１１８を備える。
【００３０】
（撮像部）
撮像部１０２は、図１に例示した撮像装置１０２に相当するカメラモジュールである。撮像部１０２は、ＣＣＤ（Charge  Coupled  Device）又はＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）などの撮像素子を用いて実空間１を撮像することにより、撮像画像を生成する。
【００３１】
（センサ部）
センサ部１０４は、情報処理装置１００の位置及び姿勢（撮像部１０２の位置及び姿勢）の認識を支援するセンサ群である。例えば、センサ部１０４は、ＧＰＳ（Global  Positioning  System）信号を受信して情報処理装置１００の緯度、経度及び高度を測定するＧＰＳセンサを含んでもよい。また、センサ部１０４は、無線アクセスポイントから受信される無線信号の強度に基づいて情報処理装置１００の位置を測定する測位センサを含んでもよい。また、センサ部１０４は、情報処理装置１００の傾き角を測定するジャイロセンサ、３軸加速度を測定する加速度センサ、又は方位を測定する地磁気センサを含んでもよい。なお、情報処理装置１００が画像認識に基づく位置推定機能及び姿勢推定機能を有する場合には、センサ部１０４は情報処理装置１００の構成から省略されてもよい。
【００３２】
（入力部）
入力部１０６は、ユーザが情報処理装置１００を操作し又は情報処理装置１００へ情報を入力するために使用される入力デバイスである。入力部１０６は、例えば、キーボード、キーパッド、マウス、ボタン、スイッチ又はタッチパネルなどを含み得る。入力部１０６は、入力画像に映るユーザのジェスチャを認識するジェスチャ認識モジュールを含んでもよい。また、入力部１０６は、ＨＭＤ（Head  Mounted  Display）を装着したユーザの視線方向をユーザ入力として検出する視線検出モジュールを含んでもよい。
【００３３】
（記憶部）
記憶部１０８は、半導体メモリ又はハードディスクなどの記憶媒体を用いて、情報処理装置１００による処理のためのプログラム及びデータを記憶する。例えば、記憶部１０８は、撮像部１０２から出力される画像データ及びセンサ部１０４から出力されるセンサデータを記憶する。また、記憶部１０８は、オーサリングのために使用されるモデルデータ及び仮想オブジェクトデータを記憶する。さらに記憶部１０８は、オーサリングの結果として生成されるインスタンスデータを記憶する。
【００３４】
（表示部）
表示部１１２は、ＬＣＤ（Liquid  Crystal  Display）、ＯＬＥＤ（Organic  light-Emitting  Diode）又はＣＲＴ（Cathode  Ray  Tube）などにより構成される表示モジュールである。表示部１１２の画面上には、情報処理装置１００により提供されるＡＲコンテンツのオーサリングのためのユーザインタフェースが表示される。表示部１１２は、情報処理装置１００の一部であってもよく、又は情報処理装置１００とは別体に構成されてもよい。また、表示部１１２は、ユーザにより装着されるＨＭＤであってもよい。
【００３５】
（接続ポート）
接続ポート１１４は、情報処理装置１００を周辺機器又はネットワークと接続するためのポートである。例えば、接続ポート１１４には、追加的な記憶媒体としてのリムーバブルメディアが接続されてもよい。また、接続ポート１１４には、有線又は無線通信インタフェースが接続されてもよい。それにより、例えば情報処理装置１００がネットワーク上のサーバから画像を取得することが可能となる。
【００３６】
（バス）
バス１１６は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１２、接続ポート１１４及び制御部１１８を相互に接続する。
【００３７】
（制御部）
制御部１１８は、ＣＰＵ（Central  Processing  Unit）又はＤＳＰ（Digital  Signal  Processor）などのプロセッサに相当する。制御部１１８は、記憶部１０８又は他の記憶媒体に記憶されるプログラムを実行することにより、後に説明する情報処理装置１００の様々な機能を動作させる。
【００３８】
＜３．データ構成例＞
次に、図４〜図１２を参照しながら、本実施形態において情報処理装置１００により使用されるモデルデータ及び仮想オブジェクトデータについて説明する。
【００３９】
［３−１．モデルデータ］
モデルデータは、実空間内の１つ以上の物体の各々の外観の特徴を表すデータである。モデルデータは、入力画像に映る物体を認識するために用いられる。また、入力画像に映る物体の位置及び姿勢、又は撮像装置（若しくは情報処理装置１００）の位置及び姿勢も、モデルデータを用いて認識され得る。モデルデータは、さらに２種類のデータに分けられる。第１の種類のモデルデータは、各物体の外観を表すデータに加えて各物体の位置を表す位置データを含む実空間モデルである。即ち、実空間モデルは、モデル化された実空間のマップに相当する。第２の種類のモデルデータは、位置と関連付けられない物体の外観の特徴を表す物体モデルである。情報処理装置１００は、実空間モデル及び物体モデルの少なくとも一方を使用する。
【００４０】
（１）実空間モデル
図４は、実空間モデルの概要について説明するための説明図である。図４を参照すると、実空間１内の５つの物体Ｂ１〜Ｂ５が示されている。物体Ｂ１、Ｂ３、Ｂ４及びＢ５は、実空間１内に存在する建物（のモデル）である。物体Ｂ２は、実空間１内に存在する看板（のモデル）である。各物体は、実空間１においてグローバル座標系Ｘ（ｘ、ｙ、ｚ）で表現され得る固有の位置にそれぞれ位置する。
【００４１】
各物体は、ポリゴン（多角形の面）の集合として表現される。例えば、物体Ｂ１は、面Ｆ１１、Ｆ１２及びＦ１３、並びに図示されていない他の面を有する。物体Ｂ２は、面Ｆ２１及び図示されていない他の面を有する。物体Ｂ３は、面Ｆ３１、Ｆ３２及びＦ３３、並びに図示されていない他の面を有する。これら面の頂点の座標は、各物体に設定されるローカル座標系Ｘ´で表現され得る。また、各面は、当該面が属する物体の外側を向いた法線を有する。例えば、法線ｎ１１は、面Ｆ１１の法線である。法線ｎ１２は、面Ｆ１２の法線である。
【００４２】
図５は、実空間モデルの具体的なデータ例を示す説明図である。図５を参照すると、一例としての実空間モデルＭＤ１が部分的に示されている。実空間モデルＭＤ１は、「物体ＩＤ」、「説明」、「位置」、「姿勢」、「面」、「法線」及び「頂点」という７つのデータ項目を有する。「物体ＩＤ」は、実空間モデルＭＤ１に含まれる各物体を一意に識別するための識別子である。「説明」は、当該物体に関する説明を示す文字列である。「位置」は、各物体のグローバル座標系での位置座標であり、典型的には、各物体のローカル座標系の原点の位置に相当する。「姿勢」は、各物体のローカル座標系のグローバル座標系を基準とした回転を表す回転行列又はクォータニオン（四元数）である。「面」は、各物体が有する面を一意に識別するための識別子である。各物体は、１つ以上の面を有する。「法線」は、各面の法線ベクトルである。「頂点」は、各面が有する頂点のローカル座標系での位置座標である。各面は、３つ以上の頂点を有する。
【００４３】
（２）物体モデル
図６は、物体モデルの概要について説明するための説明図である。図６を参照すると、実空間１内に存在し得る物体Ｂ８が示されている。例えば、物体Ｂ８は、自動車（のモデル）である。物体Ｂ８は、固有のローカル座標系を有し、物体Ｂ８の外観はそのローカル座標系を用いてポリゴンの集合として定義される。例えば、物体Ｂ８は、面Ｆ８１、Ｆ８２及びＦ８３、並びに図示されていない他の面を有する。これら面の頂点の座標は、ローカル座標系Ｘ´で表現される。また、各面は、当該面が属する物体の外側を向いた法線を有する。例えば、法線ｎ８１は、面Ｆ８１の法線である。法線ｎ８２は、面Ｆ８２の法線である。法線ｎ８３は、面Ｆ８３の法線である
【００４４】
物体モデルにより表される各物体は、実空間のグローバル座標系の特定の位置には関連付けられない。従って、物体モデルは、実空間内で移動し得る動的物体を定義するために適している。一方、実空間モデルは、実空間内で位置が固定された静的物体を定義するために適している。
【００４５】
図７は、物体モデルの具体的なデータ例を示す説明図である。図７の例では、物体Ｂ８及び物体Ｂ９についてのデータを含む物体モデルＭＤ２が部分的に示されている。物体モデルＭＤ２は、「物体ＩＤ」、「説明」、「面」、「法線」及び「頂点」という５つのデータ項目を有する。「物体ＩＤ」は、物体モデルＭＤ２に含まれる各物体を一意に識別するための識別子である。「説明」は、当該物体に関する説明を示す文字列である。「面」は、各物体が有する面を一意に識別するための識別子である。各物体は、１つ以上の面を有する。「法線」は、各面の法線ベクトルである。「頂点」は、各面が有する頂点のローカル座標系での位置座標である。各面は、３つ以上の頂点を有する。
【００４６】
これら実空間モデル及び物体モデルは、典型的には、予め作成され記憶部１０８又は他の記憶媒体に記憶される。その代わりに、実空間モデル及び物体モデルは、例えば上記非特許文献１に記載された手法に従って、情報処理装置１００において対話的に又は動的に作成されてもよい。また、実空間モデル及び物体モデルにおいて、後に説明する被コンタクト面として利用可能な面を識別するためのフラグが各面の属性として設定されてもよい。
【００４７】
［３−２．仮想オブジェクトデータ］
仮想オブジェクトデータは、仮想オブジェクトの形状の特徴及び当該仮想オブジェクトの構成要素の属性を表すデータである。図８〜図１１は、仮想オブジェクトの４つの例を示している。
【００４８】
図８には、第１の例としての仮想オブジェクトＶ１が示されている。仮想オブジェクトＶ１は、広告を表示するポスターを模したアノテーションである。仮想オブジェクトＶ１は、平面的なオブジェクトであり、テクスチャ画像を付された１つのポリゴンとして表現される。仮想オブジェクトＶ１は、面ＦＡを有する。面ＦＡの頂点の座標は、仮想オブジェクトＶ１に設定されるローカル座標系Ｘ´で表現され得る。法線ｎＡは、面ＦＡの法線である。
【００４９】
また、本実施形態において、仮想オブジェクトの少なくとも１つの面には、当該仮想オブジェクトの配置を計算する際の基準となる基準点及び基準線が設定される。図８の例では、仮想オブジェクトＶ１の面ＦＡに、基準点ＰＡ及び基準線ＬＡが設定されている。基準点は、例えば、当該基準点が属する面の重心又はいずれかの頂点であってもよい。その代わりに、基準点は、ユーザにより予め指定される任意の位置の点であってもよい。基準線は、典型的には、基準点を始点とする線分である。
【００５０】
図９には、第２の例としての仮想オブジェクトＶ２が示されている。仮想オブジェクトＶ２は、任意の画像を表示するためのフィールド（図中の点線枠）を有するコンテナに相当するオブジェクトである。例えば、当該フィールドに道案内のための画像が設定されると、仮想オブジェクトＶ２は道案内のためのアノテーションとなり得る。仮想オブジェクトＶ２もまた、平面的なオブジェクトであり、１つのポリゴンとして表現される。仮想オブジェクトＶ２は、面ＦＢを有する。面ＦＢの頂点の座標は、仮想オブジェクトＶ２に設定されるローカル座標系Ｘ´で表現され得る。法線ｎＢは、面ＦＢの法線である。図９の例では、仮想オブジェクトＶ２の面ＦＢには、基準点ＰＢ及び基準線ＬＢが設定されている。
【００５１】
図１０には、第３の例としての仮想オブジェクトＶ３が示されている。仮想オブジェクトＶ３は、立体的なオブジェクトであり、ポリゴンの集合として表現される。例えば、仮想オブジェクトＶ３は、面ＦＣ１及びＦＣ２並びに他の面を有する。各面の頂点の座標は、仮想オブジェクトＶ３に設定されるローカル座標系Ｘ´で表現され得る。法線ｎＣ１は、面ＦＣ１の法線である。法線ｎＣ２は、面ＦＣ２の法線である。立体的な仮想オブジェクトの少なくとも１つの面は、実空間内の物体とＡＲ空間内で接し又は相対するコンタクト面として定義される。例えば、ある仮想オブジェクトが立っている人物を模した立体的な仮想オブジェクトである場合には、当該仮想オブジェクトの靴底に相当する底面がコンタクト面として定義され得る。図１０の例では、仮想オブジェクトＶ３の網掛けされた２つの面がコンタクト面である。各コンタクト面には、基準点及び基準線がそれぞれ設定される。
【００５２】
図１１には、第４の例としての仮想オブジェクトＶ４が示されている。仮想オブジェクトＶ４は、略球体の形状をした立体的なオブジェクトである。仮想オブジェクトＶ４の略球体の形状もまた、近似的な多面体としてのポリゴンの集合で表現され得る。但し、このような仮想オブジェクトについては、オブジェクトの表面にコンタクト面を設定することが困難である。そこで、コンタクト面として利用される補助的な面ＦＤＺを仮想オブジェクトＶ４に追加する。法線ｎＤＺは、面ＦＤＺの法線である。面ＦＤＺは透過的な面であり、エンドユーザ向けには表示されない。コンタクト面ＦＤＺには、基準点及び基準線が設定される。
【００５３】
図１２は、仮想オブジェクトデータの具体的なデータ例を示す説明図である。図１２には、仮想オブジェクトＶ１、Ｖ２、Ｖ３及びＶ４についてのデータを含む仮想オブジェクトデータＶＤが部分的に示されている。仮想オブジェクトデータＶＤは、「ＩＤ」、「説明」、「種別」、「面」、「透過フラグ」、「コンタクトフラグ」、「基準点」「基準線」、「法線」及び「頂点」という１０個のデータ項目を有する。「ＩＤ」は、各仮想オブジェクトを一意に識別するための識別子である。「説明」は、当該仮想オブジェクトに関する説明を示す文字列である。「種別」は、当該仮想オブジェクトが平面的なオブジェクト及び立体的なオブジェクトのいずれであるのかを示すフラグである。「面」は、当該仮想オブジェクトが有する面を一意に識別するための識別子である。各仮想オブジェクトは、１つ以上の面を有する。「透過フラグ」は、各面が透過的な面か否かを示すフラグである。「コンタクトフラグ」は、各面がコンタクト面であるか否かを示すフラグである。平面的な仮想オブジェクトについては、「コンタクトフラグ」は省略され得る（１つの面がコンタクト面であるため）。「基準点」は、各コンタクト面に設定された基準点のローカル座標系での位置座標である。「基準線」は、各コンタクト面に設定された基準線を表すデータ（例えば、基準線に沿った単位ベクトル、又は基準点とは反対側の端点の位置座標など）である。「法線」は、各面の法線ベクトルである。「頂点」は、各面が有する頂点のローカル座標系での位置座標である。各面は、３つ以上の頂点を有する。
【００５４】
このような仮想オブジェクトデータは、予め作成され記憶部１０８又は他の記憶媒体に記憶され得る。
【００５５】
＜４．機能構成例＞
図１３は、図３に示した情報処理装置１００の制御部１１８により実現される機能の構成の一例を示すブロック図である。図１３を参照すると、制御部１１８は、画像取得部１２０、データ取得部１３０、画像認識部１４０、ユーザインタフェース部１５０、オーサリング部１６０及び計算部１７０を含む。
【００５６】
［４−１．画像取得部］
画像取得部１２０は、撮像部１０２（又は他の撮像装置）を用いて撮像された実空間を映す入力画像を取得する。入力画像は、仮想オブジェクトが配置される実空間内の場所又は物体が映された画像である。画像取得部１２０は、取得した入力画像を、画像認識部１４０及びユーザインタフェース部１５０へ出力する。
【００５７】
［４−２．データ取得部］
データ取得部１３０は、情報処理装置１００におけるオーサリングのために使用されるデータを取得する。データ取得部１３０により取得されるデータは、上述したモデルデータ（実空間モデル及び物体モデルの一方又は双方）並びに仮想オブジェクトデータを含む。データ取得部１３０は、モデルデータを画像認識部１４０へ出力する。また、データ取得部１３０は、仮想オブジェクトデータをオーサリング部１６０へ出力する。さらに、センサ部１０４により測定されたセンサデータもまた、データ取得部１３０により取得され得る。
【００５８】
［４−３．画像認識部］
画像認識部１４０は、データ取得部１３０から入力されるモデルデータを入力画像と照合することにより、入力画像に映る物体を認識する。より具体的には、例えば、画像認識部１４０は、ＦＡＳＴ特徴検出法（FAST  feature  detection）などの任意の公知の手法に従って、入力画像内の特徴点を抽出する。そして、画像認識部１４０は、抽出された特徴点をモデルデータに含まれる物体の頂点と照合する。その結果、画像認識部１４０は、入力画像にどの物体が映っているか、及び認識された各物体がどの位置にどのような姿勢で映っているかを認識する。認識された物体が実空間モデルに含まれる物体である場合には、当該物体の３次元位置及び姿勢は、実空間モデルにおいて示されている。認識された物体が物体モデルに含まれる物体である場合には、当該物体の３次元位置及び姿勢は、当該物体の頂点群の撮像面上での２次元位置をピンホールモデルに従って実空間内の３次元位置に変換することにより求められ得る（例えば、特開２００８−３０４２６８号公報参照）。
【００５９】
さらに、画像認識部１４０は、情報処理装置１００の位置及び姿勢を認識する。例えば、画像認識部１４０は、入力画像に映る物体が自然マーカを有している場合には、上記非特許文献２に記載された手法に従い、入力画像に映る当該自然マーカを用いて情報処理装置１００の位置及び姿勢を認識することができる。また、画像認識部１４０は、ＳＬＡＭ（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）参照）。
【００６０】
なお、情報処理装置１００の位置及び姿勢は、画像認識の代わりに、センサ部１０４から取得されるセンサデータ（例えば、ＧＰＳセンサからの位置データなど）を用いて認識されてもよい。また、画像認識の結果として認識される各物体の相対的な位置及び姿勢と、センサデータを用いて認識される情報処理装置１００の絶対的な位置及び姿勢とに基づいて、各物体の絶対的な位置及び姿勢が算出されてもよい。
【００６１】
［４−４．ユーザインタフェース部］
ユーザインタフェース部１５０は、後に説明するオーサリング部１６０による制御の下、オーサリングのためのユーザインタフェースをユーザに提供する。ユーザインタフェース部１５０により提供されるユーザインタフェースは、典型的には、入力部１０６及び表示部１１２を用いて実現されるＧＵＩ（Graphical  User  Interface）である。より具体的には、ユーザインタフェース部１５０は、画像取得部１２０から入力される入力画像を表示するオーサリング画面を、表示部１１２を用いて表示する。
【００６２】
図１４は、本実施形態において表示され得るオーサリング画面の一例を示す説明図である。図１４を参照すると、一例としてのオーサリング画面ＳＣ１が示されている。オーサリング画面ＳＣ１は、入力画像エリアＳＡ１、及び仮想オブジェクト一覧エリアＳＡ２を有する。入力画像エリアＳＡ１には、画像取得部１２０から入力される入力画像が表示される。仮想オブジェクト一覧エリアＳＡ２には、ＡＲ空間に配置される仮想オブジェクトの候補の一覧が表示される。ユーザは、例えば、仮想オブジェクト一覧エリアＳＡ２に表示された候補の中から、ＡＲ空間に配置したい仮想オブジェクトをカーソルＣＵＲを用いて選択する。そして、ユーザは、入力画像エリアＳＡ１上で、選択した仮想オブジェクトをＡＲ空間内に配置する。入力画像エリアＳＡ１上での操作に応じて、ユーザインタフェース部１５０は、仮想オブジェクトのＡＲ空間内での３次元位置及び姿勢を計算するためのいくつかのパラメータを検出する。このようなユーザインタフェースを介したオーサリング作業の典型的ないくつかのシナリオについて、後に具体的に説明する。
【００６３】
［４−５．オーサリング部］
オーサリング部１６０は、ユーザインタフェース部１５０により提供されるユーザインタフェースを介したＡＲコンテンツのオーサリングを制御する。オーサリング部１６０は、入力画像に映る物体の３次元位置及び姿勢、並びに情報処理装置１００の位置及び姿勢を画像認識部１４０から取得する。また、オーサリング部１６０は、図１２に例示した仮想オブジェクトデータをデータ取得部１３０から取得する。そして、オーサリング部１６０は、上述したオーサリング画面をユーザインタフェース部１５０に表示させる。その後、オーサリング部１６０は、オーサリング画面上で指定されるパラメータに基づいて、ＡＲ空間内での仮想オブジェクトの３次元位置及び姿勢を、計算部１７０に計算させる。そして、オーサリング部１６０は、計算された仮想オブジェクトの３次元位置及び姿勢を記憶部１０８又はその他の記憶媒体に記憶させる。
【００６４】
なお、仮想オブジェクトデータにより定義される各仮想オブジェクトは、ＡＲ空間内の複数の位置に配置され得る。本明細書では、これら実際に配置される個々の仮想オブジェクトを（仮想オブジェクトの）インスタンスという。即ち、２つの異なる場所に配置される仮想オブジェクトＶ１は、同じ仮想オブジェクトであって異なるインスタンスである。
【００６５】
［４−６．計算部］
計算部１７０は、オーサリング部１６０による制御の下、オーサリング画面上で指定されるパラメータを用いて、仮想オブジェクトのインスタンスの３次元位置及び姿勢を決定するための計算処理を行う。
【００６６】
（１）計算処理の原理
実空間のグローバル座標系Ｘ（ＡＲ空間の座標系でもある）と１つの仮想オブジェクトのローカル座標系Ｘ´との間の関係は、次の関係式（１）により表される。
【００６７】
【数１】
0005799521.tif 000002
【００６８】
ここで、Ｃ０は、ローカル座標系の原点のグローバル座標系での位置を表す位置座標である。Ｒ０は、ローカル座標系のグローバル座標系に対する姿勢変換を表す回転行列である。式（１）の通り、ローカル座標系の原点位置Ｃ０及び姿勢変換Ｒ０を得ることができれば、仮想オブジェクトデータに含まれる各頂点の座標（ローカル座標系）を関係式（１）に従って実空間内の座標位置（グローバル座標）に変換することができる。
【００６９】
本実施形態において、計算部１７０は、次のような原理で原点位置Ｃ０及び姿勢変換Ｒ０を計算する。
【００７０】
まず、前提として、仮想オブジェクトのインスタンスは、当該インスタンスのコンタクト面が入力画像に映る物体の被コンタクト面と同じ傾きを有する（即ち、互いの法線が平行となる）ように配置されるものとする。被コンタクト面は、ユーザ入力に応じて特定される。なお、以下の説明において、被コンタクト面を有する物体を被コンタクト物体という。
【００７１】
特定された被コンタクト面のグローバル座標系での法線ベクトルをｎ、仮想オブジェクトのインスタンスのコンタクト面のローカル座標系での法線ベクトルをｎ´とすると、式（２）が成立する。
【００７２】
【数２】
0005799521.tif 000003
【００７３】
また、インスタンスの基準線の方向を表すローカル座標系でのベクトルをａ´、インスタンスの基準線と同じ方向を向くグローバル座標系でのベクトル（以下、基準線配置ベクトルという）をａとすると、式（３）が成立する。
【００７４】
【数３】
0005799521.tif 000004
【００７５】
ベクトルａ´は、仮想オブジェクトデータ内で設定されている基準線のデータから得ることができる。基準線配置ベクトルａは、ユーザ入力に応じて特定され得る。なお、これら４つのベクトルｎ、ｎ´、ａ及びａ´はいずれも単位ベクトルであるものとする。さらに、４つのベクトルｎ、ｎ´、ａ及びａ´の間には、次の関係式（４）が成立する。
【００７６】
【数４】
0005799521.tif 000005
【００７７】
これら式（２）〜（４）を解くことにより、ローカル座標系の姿勢変換Ｒ０を得ることができる。なお、ローカル座標系の姿勢変換は、回転行列ではなくクォータニオンにより表現されてもよい。その場合にも、上述したベクトルｎ、ｎ´、ａ及びａ´が特定されれば、ローカル座標系の姿勢変換を表すクォータニオンを導くことができる。
【００７８】
さらに、インスタンスの基準点が配置されるグローバル座標系での３次元位置（以下、コンタクト位置という）をＹ、当該基準点のローカル座標系での３次元位置をＹ´とすると、式（５）が成立する。
【００７９】
【数５】
0005799521.tif 000006
【００８０】
インスタンスの基準点のローカル座標系での位置Ｙ´は、仮想オブジェクトデータ内で予め設定されている。よって、コンタクト位置Ｙが特定されれば、ローカル座標系の原点のグローバル座標系での位置Ｃ０を計算することができる。
【００８１】
このような計算処理の原理において、予め既知でない変数は、被コンタクト面のＩＤ、コンタクト位置Ｙ、及び基準線配置ベクトルａの３つである。
【００８２】
（２）被コンタクト面の特定
被コンタクト面のＩＤは、図１４に例示したオーサリング画面ＳＣ１の入力画像エリアＳＡ１に映る被コンタクト面をユーザが（クリック又はタップなどの操作により）指定することで特定される。なお、画像認識部１４０による画像認識の結果として、オーサリング部１６０は、入力画像内で他の面の背後に隠れた面の位置も知得している。そこで、オーサリング部１６０は、入力画像エリアＳＡ１において他の面の背後に位置する面を透過又は枠線の強調表示などの手法で表示させ、当該背後の面をユーザにより指定可能としてもよい。
【００８３】
（３）コンタクト位置の特定
コンタクト位置Ｙもまた、基準点を配置したい場所を入力画像エリアＳＡ１においてユーザが指定することで特定される。単一のユーザ入力で、被コンタクト面及びコンタクト位置が同時に指定されてもよい。
【００８４】
例えば、入力画像エリアＳＡ１において指定された位置を指定位置Ｕとする。指定位置Ｕは、撮像面上のカメラ座標系での２次元位置（ｕ、ｖ）により表される。すると、指定位置Ｕ（ｕ、ｖ）と当該指定位置Ｕに対応するコンタクト位置Ｙとの間に、ピンホールモデルに従った次の関係式が成立する。
【００８５】
【数６】
0005799521.tif 000007
【００８６】
式（６）において、ＸＣはカメラの３次元位置、ＲＣはカメラの姿勢に対応する回転行列、Ａはカメラ内部パラメータ、λは正規化のためのパラメータである。カメラ内部パラメータＡは、撮像部１０２の特性に応じて、次式のように与えられる。
【００８７】
【数７】
0005799521.tif 000008
【００８８】
ここで、ｆは焦点距離、θは画像軸の直交性（理想値は９０°）、ｋｕは撮像面の縦軸のスケール（グローバル座標系からカメラ座標系へのスケール変化率）、ｋｖは撮像面の横軸のスケール、（ｕｏ，ｖｏ）は撮像面の中心位置である。
【００８９】
関係式（６）において、指定位置Ｕ（ｕ、ｖ）が与えられれば、未知の変数はコンタクト位置Ｙのみとなる。従って、計算部１７０は、関係式（６）に基づく逆射影変換により、コンタクト位置Ｙを計算することができる（詳しくは、特開２００８−３０４２６８号公報参照）。
【００９０】
なお、コンタクト位置Ｙは、ユーザにより指定される代わりに、既定値として計算されてもよい。例えば、計算部１７０は、被コンタクト面の重心の３次元位置をコンタクト位置Ｙの既定値として自動的に計算し得る。
【００９１】
（４）基準線配置ベクトルの特定
基準線配置ベクトルａは、入力画像エリアＳＡ１において２点（ベクトルの始点及び終点）をユーザが指定することで特定される。単一のユーザ入力で、コンタクト位置Ｙ及び基準線配置ベクトルａの始点が同時に指定されてもよい。計算部１７０は、上述したコンタクト位置Ｙと同様の手法で、ユーザにより指定される２つの２次元位置から、基準線配置ベクトルａの始点及び終点のグローバル座標系での３次元位置をそれぞれ計算することができる。
【００９２】
なお、基準線配置ベクトルａもまた、ユーザにより指定される代わりに、既定値として計算されてもよい。例えば、計算部１７０は、被コンタクト面が長方形である場合には、被コンタクト面の長辺方向に沿った単位ベクトルを基準線配置ベクトルａの既定値として自動的に計算し得る。
【００９３】
また、計算部１７０は、予め設定される規則に従って、基準線配置ベクトルａの既定値を自動的に計算してもよい。例えば、基準線配置ベクトルａは、コンタクト位置を始点とし被コンタクト面に包含される単位ベクトルのうち、ＡＲ空間内で鉛直成分（例えば、グローバル座標系のＺ軸成分）が最大となるベクトルであってもよい。さらに仮想オブジェクトの基準線を予め表示上の上方向に設定しておけば、仮想オブジェクトの姿勢を自動的に適切な姿勢（上の部分が上に、下の部分が下になる姿勢）に決定することができる。
【００９４】
（５）追加的なパラメータの特定
本実施形態において、ＡＲ空間への仮想オブジェクトのより柔軟な配置を可能とするために、オーサリング部１６０は、以下に述べる追加的なパラメータをユーザにより指定可能とする。
【００９５】
追加的なパラメータの１つは、コンタクト位置からのオフセットである。オフセットの既定値はゼロであり、その場合、インスタンスの基準点のＡＲ空間内での位置がコンタクト位置に一致する（インスタンスのコンタクト面が被コンタクト物体の被コンタクト面に接する）。オフセットの値がＤ（Ｄ≠０）の場合、インスタンスの基準点の位置は、コンタクト位置から被コンタクト面の法線方向に距離Ｄだけオフセットされる（インスタンスのコンタクト面は、被コンタクト物体の被コンタクト面と平行となる）。
【００９６】
図１５は、コンタクト位置からのオフセットについて説明するための説明図である。図１５を参照すると、撮像面上のカメラ座標系での指定位置Ｕ０、ＡＲ空間内のグローバル座標系でのコンタクト位置Ｙ０、及びオフセットされた基準点の位置Ｐ０が示されている。コンタクト位置Ｙ０は、被コンタクト物体Ｂ２の被コンタクト面Ｆ２１上に存在する。指定位置Ｕ０は、オーサリング画面上でユーザにより指定される。コンタクト位置Ｙ０は、指定位置Ｕ０の２次元座標から上述したピンホールモデルに従って計算部１７０により計算され得る。さらに、ユーザによりオフセットＤ（Ｄ≠０）が指定されると、計算部１７０は、コンタクト位置Ｙ０から距離Ｄだけ離れた基準点の位置Ｐ０を計算する。コンタクト位置Ｙ０と基準点の位置Ｐ０とを結ぶ線分は、被コンタクト面Ｆ２１と垂直である。
【００９７】
追加的なパラメータの他の１つは、第２の被コンタクト面のＩＤである。第２の被コンタクト面のＩＤは、図１４に例示したオーサリング画面ＳＣ１の入力画像エリアＳＡ１に映る第２の被コンタクト面をユーザが指定することで特定される。第２の被コンタクト面の指定は、選択された仮想オブジェクトが２つ以上のコンタクト面を有する立体的なオブジェクトである場合に許容される。２つの被コンタクト面が指定されると、仮想オブジェクトのインスタンスは、インスタンスの２つの面がそれぞれ２つの被コンタクト面に接するように配置される。
【００９８】
さらに、選択された仮想オブジェクトが３つ以上のコンタクト面を有する場合には、第３の被コンタクト面がユーザにより指定可能であってもよい。３つの被コンタクト面が指定されると、仮想オブジェクトのインスタンスは、インスタンスの３つの面がそれぞれ３つの被コンタクト面に接するように配置される。
【００９９】
（５）計算処理の流れ
図１６は、本実施形態に係る計算部１７０による位置・姿勢計算処理の流れの一例を示すフローチャートである。
【０１００】
図１６を参照すると、まず、計算部１７０は、オーサリング画面上でユーザにより指定されたパラメータをオーサリング部１６０から取得する（ステップＳ１０２）。ここで取得されるパラメータは、典型的には、被コンタクト面、コンタクト位置及び基準線配置ベクトルの端点を指定する１つ以上の２次元の指定位置である。また、ユーザにより指定されたオフセットの値も取得されてよい。
【０１０１】
また、計算部１７０は、画像認識部１４０から画像認識の結果を取得する（ステップＳ１０４）。ここで取得される画像認識の結果には、例えば、入力画像に映る各物体の物体ＩＤ、各物体の実空間内での位置及び姿勢、並びに情報処理装置１００の位置及び姿勢が含まれる（ステップＳ１０４）。
【０１０２】
次に、計算部１７０は、オーサリング画面上でユーザにより選択された仮想オブジェクトの仮想オブジェクトデータを取得する（ステップＳ１０６）。
【０１０３】
次に、計算部１７０は、選択された仮想オブジェクトのインスタンスの配置の計算のために、未知であった変数の値を計算する（ステップＳ１０８）。未知の変数とは、上述した被コンタクト面のＩＤ、コンタクト位置Ｙ、及び基準線配置ベクトルａを含む。被コンタクト面のＩＤは、ステップＳ１０２において取得された指定位置に対応する物体のＩＤとして特定され得る。コンタクト位置Ｙは、被コンタクト面を包含する平面上の、指定位置に対応する３次元位置として計算され得る。基準線配置ベクトルａは、被コンタクト面を包含する平面上の、２つの指定位置にそれぞれ対応する２点の３次元位置から計算され得る。その代わりに、これら変数の値の一部は、既定値として自動的に計算されてもよい。
【０１０４】
次に、計算部１７０は、ステップＳ１０８において計算した基準線配置ベクトルａ及び既知の変数の値を用いて上述した式（２）〜（４）を解くことにより、インスタンスのＡＲ空間内での姿勢変換Ｒ０を計算する（ステップＳ１１０）。ここでの既知の変数とは、当該インスタンスの基準線の方向を表すローカル座標系でのベクトルａ´、被コンタクト面のグローバル座標系での法線ベクトルｎ及びコンタクト面のローカル座標系での法線ベクトルｎ´を含む。
【０１０５】
次に、計算部１７０は、ステップＳ１０８において計算したコンタクト位置Ｙ、ステップＳ１１０において計算した姿勢変換Ｒ０及び既知の変数の値を上述した式（５）に代入することにより、インスタンスのＡＲ空間内での３次元位置を計算する（ステップＳ１１２）。ここで計算される３次元位置は、インスタンスのローカル座標系の原点のグローバル座標系での位置Ｃ０である。既知の変数とは、仮想オブジェクトデータにより定義されている、インスタンスの基準点のローカル座標系での位置Ｙ´を含む。
【０１０６】
そして、ユーザによりオフセットが指定されていない場合（オフセットの値がゼロである場合）には、計算部１７０による計算処理は終了する（ステップＳ１１４）。一方、ゼロでないオフセットの値が指定されている場合には、計算部１７０は、インスタンスの３次元位置Ｃ０を、指定されたオフセットの値だけ被コンタクト面の法線方向にオフセットする（ステップＳ１１６）。
【０１０７】
なお、第２の被コンタクト面が指定される場合には、ステップＳ１１０以降の処理の代わりに、インスタンスの２つのコンタクト面がそれぞれ２つの被コンタクト面に接するように、インスタンスの姿勢が計算され得る。インスタンスの位置は、例えば、第１のコンタクト面上のコンタクト位置Ｙとインスタンスの基準点の位置とを結ぶ線分が第２のコンタクト面と垂直となるように計算され得る。また、第３の被コンタクト面がさらに指定される場合には、インスタンスの３次元位置は、指定された第３の被コンタクト面にインスタンスの第３のコンタクト面が接するように計算され得る。
【０１０８】
＜５．インスタンスデータの生成＞
オーサリング部１６０は、仮想オブジェクトのインスタンスのＡＲ空間内の３次元位置及び姿勢が計算されると、計算された３次元位置及び姿勢に従って、オーサリング画面に表示される入力画像に当該インスタンスを重畳する。インスタンスが重畳される画面上での位置は、上述したピンホールモデルの関係式（６）に基づく射影変換により、インスタンスの３次元位置及び姿勢から算出され得る。そして、画面を確認したユーザからデータの保存の指示が与えられると、オーサリング部１６０は、インスタンスの３次元位置及び姿勢を表すインスタンスデータを記憶媒体に記憶させる。
【０１０９】
図１７は、本実施形態に係るインスタンスデータのデータ例を示す説明図である。図１７には、４つのインスタンスＩＳ１１、ＩＳ１２、ＩＳ１３及びＩＳ２１についてのデータを含むインスタンスデータＩＳＤが示されている。インスタンスデータＩＳＤは、「インスタンスＩＤ」、「オブジェクトＩＤ」、「座標タイプ」、「関連物体」、「位置」及び「姿勢」という６つのデータ項目を有する。「インスタンスＩＤ」は、各インスタンスを一意に識別するための識別子である。「オブジェクトＩＤ」は、各インスタンスと関連付けられる仮想オブジェクトのＩＤであり、各インスタンスがどの仮想オブジェクトのインスタンスであるかを示す。図１７の例では、インスタンスＩＳ１１、ＩＳ１２及びＩＳ１３は、仮想オブジェクトＶ１のインスタンスである。インスタンスＩＳ２１は、仮想オブジェクトＶ２のインスタンスである。「座標タイプ」は、「グローバル」又は「ローカル」のいずれかの値を示す。「座標タイプ」が「グローバル」であるインスタンスの位置及び姿勢は、グローバル座標系での値として記憶される。一方、「座標タイプ」が「ローカル」であるインスタンスの位置及び姿勢は、当該インスタンスと関連付けられる物体のローカル座標系での値として記憶される。「関連物体」は、当該インスタンスの「座標タイプ」が「ローカル」である場合に当該インスタンスと関連付けられる物体の物体ＩＤである。関連物体のＩＤの代わりに、関連物体のグローバル座標系での３次元位置が使用されてもよい。「位置」は、各インスタンスの（グローバル座標系、又は関連物体のローカル座標系での）３次元位置である。「姿勢」は、各インスタンスのＡＲ空間内での姿勢を表す回転行列又はクォータニオンである。
【０１１０】
「座標タイプ」の値は、データの保存の指示の前に設定され得るモードに応じて決定される。ユーザは、インスタンスをＡＲ空間内に固定的に配置したい場合には、「グローバルモード」を設定し得る。この場合、「座標タイプ」は「グローバル」となり、インスタンスの３次元位置及び姿勢は、グローバル座標系での値として記憶される。「グローバルモード」でインスタンスデータが記憶されると、エンドユーザがＡＲコンテンツを利用する際、ユーザ端末は、入力画像からの物体認識を行うことなく、端末の位置及び姿勢に基づいてインスタンスの画面上での表示位置を決定することができる。
【０１１１】
一方、「ローカルモード」では、インスタンスデータの「座標タイプ」は「ローカル」となり、インスタンスの３次元位置及び姿勢の値が関連物体のローカル座標系での値に変換され、変換後の値が記憶される。「ローカルモード」においてインスタンスと関連付けられる物体とは、上述した被コンタクト物体であってよい。「ローカルモード」でインスタンスデータが記憶されると、エンドユーザがＡＲコンテンツを利用する際、ユーザ端末は、ＧＰＳ機能などの測位機能を有しなくても、入力画像からの物体認識に基づいてインスタンスの画面上での表示位置を決定することができる。この場合、インスタンスの表示は、測位機能の誤差の影響を受けず、より正確に画面上の関連物体に合わせられ得る。さらに、動的物体に追随してインスタンスが移動するようなＡＲコンテンツを製作することも可能である。
【０１１２】
＜６．作業シナリオ＞
次に、本実施形態において提供されるユーザインタフェースを用いたオーサリング作業の５つの例示的なシナリオを説明する。
【０１１３】
（１）第１のシナリオ
第１のシナリオでは、ユーザは、仮想オブジェクトを選択した後、当該仮想オブジェクトのインスタンスの基準点の位置に対応する指定位置のみをオーサリング画面上で指定する。
【０１１４】
図１８は、オーサリング作業の第１のシナリオについて説明するためのシーケンス図である。また、図１９は、第１のシナリオにおいてオーサリング画面上で表示される画像の一例を示す説明図である。
【０１１５】
図１８を参照すると、まず、情報処理装置１００のユーザインタフェース部１５０は、図１４に例示したようなオーサリング画面を表示部１１２を用いてユーザへ表示する（ステップＳ１２２）。
【０１１６】
次に、ユーザは、オーサリング画面の仮想オブジェクト一覧エリアにおいて、ＡＲ空間内に配置したい仮想オブジェクトを選択する（ステップＳ１２４）。なお、当該仮想オブジェクトが複数のコンタクト面を有する場合には、ユーザは、さらに複数のコンタクト面から１つのコンタクト面を選択し得る。図１９の例では、仮想オブジェクトＶ１が選択されている。
【０１１７】
次に、ユーザは、オーサリング画面の入力画像エリアにおいて、選択した仮想オブジェクトを配置したい位置をクリック又はタップなどの操作により指定する（ステップＳ１３４）。仮想オブジェクト一覧エリアからのドラッグアンドドロップによって、仮想オブジェクトの選択と指定位置の入力とが１ストロークの操作で行われてもよい。図１９の左には、ユーザにより指定された指定位置Ｐ１が示されている。
【０１１８】
次に、計算部１７０は、図１６を用いて説明した位置・姿勢計算処理を実行する（ステップＳ１５０）。位置・姿勢計算処理において、被コンタクト面のＩＤは、指定位置Ｐ１に対応する物体のＩＤとして特定され得る（図１９の例では面Ｆ２１）。コンタクト位置は、指定位置Ｐ１に対応する被コンタクト面Ｆ２１の上の３次元位置として特定される。基準線配置ベクトルは、既定値として自動的に特定され得る。
【０１１９】
そして、計算部１７０によりインスタンスの３次元位置及び姿勢が計算されると、ユーザインタフェース部１５０は、算出された当該３次元位置及び姿勢に応じて、オーサリング画面の入力画像エリアに仮想オブジェクトのインスタンスを重畳する（ステップＳ１５２）。図１９の右には、仮想オブジェクトＶ１のインスタンスが被コンタクト面Ｆ２１に重畳された様子が示されている。
【０１２０】
その後、オーサリング部１６０は、ユーザからデータの保存の指示を受け付けると（ステップＳ１５４）、図１７に例示したようなインスタンスデータを生成し、生成したインスタンスデータを記憶媒体に記憶させる（ステップＳ１５６）。ユーザは、データの保存を指示する前に、ステップＳ１２４又はステップＳ１３４に戻って仮想オブジェクトの選択又は指定位置の入力を再度行ってもよい。
【０１２１】
上述した第１のシナリオは、仮想オブジェクトの配置のためにユーザは画面上の１点のみを指定すればよいという、最も簡単なシナリオである。第１のシナリオでは、被コンタクト面及びコンタクト位置は同時に指定される。このようなシナリオは、ユーザにとって作業が極めて直感的かつ容易であるという点で有益である。
【０１２２】
（２）第２のシナリオ
第２のシナリオでは、ユーザは、被コンタクト面とコンタクト位置とを別々に指定する。また、生成されるインスタンスデータの「座標タイプ」は「ローカル」である。
【０１２３】
図２０は、オーサリング作業の第２のシナリオについて説明するためのシーケンス図である。また、図２１は、第２のシナリオにおいてオーサリング画面上で表示される画像の一例を示す説明図である。
【０１２４】
図２０を参照すると、まず、情報処理装置１００のユーザインタフェース部１５０は、図１４に例示したようなオーサリング画面を表示部１１２を用いてユーザへ表示する（ステップＳ１２２）。
【０１２５】
次に、ユーザは、オーサリング画面の仮想オブジェクト一覧エリアにおいて、ＡＲ空間内に配置したい仮想オブジェクトを選択する（ステップＳ１２４）。図２１の例では、仮想オブジェクトＶ１が選択されている。
【０１２６】
次に、ユーザは、オーサリング画面の入力画像エリアにおいて、被コンタクト面をクリック又はタップなどの操作により指定する（ステップＳ１３０）。仮想オブジェクト一覧エリアからのドラッグアンドドロップによって、仮想オブジェクトの選択と被コンタクト面の指定とが１ストロークの操作で行われてもよい。図２１の例では、ユーザにより指定された物体Ｂ８の面Ｆ８３が網掛けされている。
【０１２７】
次に、ユーザは、入力画像エリアにおいて、選択した仮想オブジェクトを配置したい位置をさらに指定する（ステップＳ１３４）。ここで指定される位置は、画面上で被コンタクト面の内側の位置であっても外側の位置であってもよい。図２１の左には、ユーザにより指定された、被コンタクト面Ｆ８３の外側の指定位置Ｐ２が示されている。
【０１２８】
次に、計算部１７０は、図１６を用いて説明した位置・姿勢計算処理を実行する（ステップＳ１５０）。位置・姿勢計算処理において、コンタクト位置は、ＡＲ空間内の被コンタクト面Ｆ８３を包含する平面上の指定位置Ｐ２に対応する３次元位置として特定される。基準線配置ベクトルは、既定値として自動的に特定され得る。
【０１２９】
そして、計算部１７０によりインスタンスの３次元位置及び姿勢が計算されると、ユーザインタフェース部１５０は、算出された当該３次元位置及び姿勢に応じて、オーサリング画面の入力画像エリアに仮想オブジェクトのインスタンスを重畳する（ステップＳ１５２）。図２１の右には、仮想オブジェクトＶ１のインスタンスが入力画像に重畳された様子が示されている。
【０１３０】
その後、オーサリング部１６０は、ユーザからデータの保存の指示を受け付けると（ステップＳ１５４）、図１７に例示したようなインスタンスデータを生成し、生成したインスタンスデータを記憶媒体に記憶させる（ステップＳ１５６）。本シナリオでは、仮想オブジェクトＶ１のインスタンスのインスタンスデータは、物体Ｂ８と関連付けられ、物体Ｂ８のローカル座標系での３次元位置及び姿勢を有する（例えば、図１７のインスタンスデータＩＳＤのインスタンスＩＤ＝“ＩＳ１３”の行を参照）。それにより、仮想オブジェクトＶ１のインスタンスの位置は、移動する物体Ｂ８に追随してＡＲ空間内で変化するようになる。
【０１３１】
上述した第２のシナリオでは、被コンタクト面及びコンタクト位置が、それぞれ別の操作ステップで指定される。それにより、被コンタクト面のポリゴンの外側の位置をコンタクト位置として指定することが可能となる。また、第２のシナリオでは、仮想オブジェクトのインスタンスの位置及び姿勢が関連物体のローカル座標系で表現されるため、移動する関連物体に追随してインスタンスの位置が変化するようなＡＲコンテンツを容易に作製することができる。
【０１３２】
（３）第３のシナリオ
第３のシナリオでは、ユーザは、被コンタクト面及びコンタクト位置を同時に指定し、さらに基準線配置ベクトルをオーサリング画面上で指定する。
【０１３３】
図２２は、オーサリング作業の第３のシナリオについて説明するためのシーケンス図である。また、図２３は、第３のシナリオにおいてオーサリング画面上で表示される画像の一例を示す説明図である。
【０１３４】
第３のシナリオのステップＳ１２２〜Ｓ１３４は、第１のシナリオと同様であってよい。図２３を参照すると、本シナリオでは、仮想オブジェクトＶ２がユーザにより選択されている。また、物体Ｂ１の面Ｆ１１上の指定位置Ｐ３がユーザにより指定されている。
【０１３５】
計算部１７０は、指定位置Ｐ３に対応する面Ｆ１１を被コンタクト面として特定する。また、計算部１７０は、被コンタクト面Ｆ１１を包含する平面上の指定位置Ｐ３に対応する３次元位置をコンタクト位置として特定する（ステップＳ１３６）。
【０１３６】
さらに、本シナリオにおいて、ユーザは、基準線の方向をドラッグ又はマルチタッチなどの操作により指定する（ステップＳ１３８）。図２３の例では、基準線の方向としてベクトルｖ１が指定されている。
【０１３７】
次に、計算部１７０は、図１６を用いて説明した位置・姿勢計算処理を実行する（ステップＳ１５０）。位置・姿勢計算処理において、基準線配置ベクトルは、ステップＳ１３８において指定されたベクトルｖ１に対応する、ＡＲ空間内の被コンタクト面を包含する平面上の単位ベクトルとして計算され得る。
【０１３８】
その後のステップＳ１５２〜Ｓ１５６もまた、第１のシナリオと同様であってよい。図２３の例では、被コンタクト面Ｆ１１上の指定位置Ｐ３に対応するコンタクト位置に基準点が一致するように、仮想オブジェクトＶ２のインスタンスが重畳されている。当該インスタンスの姿勢は、基準線がＡＲ空間内で基準線配置ベクトルに一致するよう回転されている。
【０１３９】
上述した第３のシナリオでは、ユーザは、基準線配置ベクトルを指定するための操作を行うことで、仮想オブジェクトの姿勢をも自由に変更することができる。基準線配置ベクトルを指定するための操作は、画面上でのドラッグ又はマルチタッチなどの簡易な操作で実現可能である。また、ドラッグの開始で被コンタクト面及びコンタクト位置が指定されるようにすれば、１ストロークのドラッグ操作により、被コンタクト面、コンタクト位置及び基準線配置ベクトルの全てを指定することも可能である。
【０１４０】
なお、本シナリオでは、一例として、任意の画像を表示するためのフィールドを有するコンテナに相当する仮想オブジェクトが使用されている。コンテナは、他のシナリオにおいても使用されてよい。このようなコンテナのインスタンスをＡＲ空間内に配置することで、ＡＲコンテンツをオーサリングした後でもコンテナに設定する画像を入れ替えるだけでＡＲコンテンツを容易に変更することが可能となる。
【０１４１】
（４）第４のシナリオ
第４のシナリオでは、ユーザは、第３のシナリオのように基準線配置ベクトルを指定した後、さらにオフセットをオーサリング画面上で指定する。
【０１４２】
図２４は、オーサリング作業の第４のシナリオについて説明するためのシーケンス図である。また、図２５は、第４のシナリオにおいてオーサリング画面上で表示される画像の一例を示す説明図である。
【０１４３】
第４のシナリオのステップＳ１２２〜Ｓ１３８は、第３のシナリオと同様であってよい。図２５を参照すると、本シナリオでは、仮想オブジェクトＶ２がユーザにより選択されている。また、物体Ｂ１の面Ｆ１１上の指定位置Ｐ３がユーザにより指定されている。さらに、基準線の方向を表すベクトルｖ１が指定されている。
【０１４４】
計算部１７０は、ベクトルｖ１の始点及び終点に対応するＡＲ空間内の被コンタクト面Ｆ１１上の２点から、基準線配置ベクトルを特定する（ステップＳ１４０）。
【０１４５】
さらに、本シナリオにおいて、ユーザは、インスタンスの基準点の位置のコンタクト位置からのオフセットを指定する（ステップＳ１４２）。オフセットの値は、例えば新たな点のクリック、又はオフセットに相当する距離のドラッグなどの操作により指定されてよい。図２５の例において、指定されたオフセットの値はＤ１である。
【０１４６】
次に、計算部１７０は、図１６を用いて説明した位置・姿勢計算処理を実行する（ステップＳ１５０）。位置・姿勢計算処理において、インスタンスの基準点は、コンタクト位置から被コンタクト面の法線方向にオフセットされる。
【０１４７】
その後のステップＳ１５２〜Ｓ１５６もまた、第３のシナリオと同様であってよい。図２５の例では、被コンタクト面Ｆ１１上の指定位置Ｐ３に対応するコンタクト位置から距離Ｄ１だけ、仮想オブジェクトＶ２のインスタンスの基準点がオフセットされている。
【０１４８】
上述した第４のシナリオでは、ユーザは、追加的にオフセットを指定することで、被コンタクト面を包含する平面から離れた位置にも仮想オブジェクトのインスタンスを容易に配置することができる。
【０１４９】
（５）第５のシナリオ
第５のシナリオでは、ユーザは、２つの被コンタクト面を指定する。
【０１５０】
図２６は、オーサリング作業の第５のシナリオについて説明するためのシーケンス図である。また、図２７は、第５のシナリオにおいてオーサリング画面上で表示される画像の一例を示す説明図である。
【０１５１】
図２６を参照すると、まず、情報処理装置１００のユーザインタフェース部１５０は、図１４に例示したようなオーサリング画面を表示部１１２を用いてユーザへ表示する（ステップＳ１２２）。
【０１５２】
次に、ユーザは、オーサリング画面の仮想オブジェクト一覧エリアにおいて、ＡＲ空間内に配置したい仮想オブジェクトを選択する（ステップＳ１２４）。図２７の例では、仮想オブジェクトＶ３が選択されている。本シナリオでは、ユーザは、さらに選択した仮想オブジェクトの２つのコンタクト面を選択する。
【０１５３】
次に、ユーザは、オーサリング画面の入力画像エリアにおいて、第１の被コンタクト面を指定する（ステップＳ１４４）。また、ユーザは、入力画像エリアにおいて、第２の被コンタクト面を指定する（ステップＳ１４６）。図２７の例では、指定位置Ｐ４が指定された結果、第１の被コンタクト面として物体Ｂ１の面Ｆ１３が指定されている。また、指定位置Ｐ５が指定された結果、第２の被コンタクト面として物体Ｂ２の面Ｆ２１が指定されている。
【０１５４】
次に、計算部１７０は、上述した位置・姿勢計算処理を実行する（ステップＳ１５０）。位置・姿勢計算処理において、仮想オブジェクトのインスタンスの３次元位置及び姿勢は、当該インスタンスの２つのコンタクト面がそれぞれ２つの被コンタクト面に接するように計算される。
【０１５５】
その後のステップＳ１５２〜Ｓ１５６は、他のシナリオと同様であってよい。図２７の例では、２つの被コンタクト面Ｆ１３及びＦ２１に仮想オブジェクトＶ３のインスタンスのコンタクト面が接するように、仮想オブジェクトＶ３の当該インスタンスが重畳されている。
【０１５６】
上述した第５のシナリオでは、ユーザは、入力画像内の２点を指定するという簡易な操作で、仮想オブジェクトをＡＲ空間内に配置することができる。これら操作もまた、クリック又はタップなどの簡易な操作により実現可能である。
【０１５７】
（６）変形例
なお、仮想オブジェクトのインスタンスのサイズもまた、上述したオーサリング画面上で変更可能であってよい。仮想オブジェクトのインスタンスのサイズは、例えば、オーサリング画面上でのユーザのドラッグなどの操作により変更され得る。その代わりに、例えば、計算部１７０は、被コンタクト面のサイズに合わせて、仮想オブジェクトのインスタンスのサイズを拡大又は縮小してもよい。図２８の例では、物体Ｂ２の被コンタクト面Ｆ２１のコンタクト位置Ｐ１に配置された仮想オブジェクトＶ１のインスタンスのサイズが、被コンタクト面Ｆ２１のサイズに合わせて自動的に拡大されている。オーサリング部１６０は、このように変更されるインスタンスのサイズの倍率（又はサイズそのもの）を、インスタンスデータに含めてもよい。
【０１５８】
＜７．まとめ＞
ここまで、図１〜図２８を用いて、本発明の一実施形態について詳細に説明した。本実施形態によれば、実空間を映す入力画像が表示されるオーサリング画面がユーザに提供される。そして、ユーザは、当該オーサリング画面上で、仮想オブジェクトを配置したい位置を指定する。情報処理装置１００は、仮想オブジェクトのＡＲ空間内での３次元位置をユーザに指定された上記指定位置から計算し、計算された３次元位置を上記仮想オブジェクトと関連付けて記憶媒体に記憶させる。従って、ユーザは、上記オーサリング画面に表示される入力画像を見ながら、簡易な操作で仮想オブジェクトをＡＲ空間内の所望の位置に配置することができる。それにより、専門知識を有しない一般のユーザでも容易にＡＲコンテンツをオーサリングすることが可能となる。また、ユーザ自身が複雑な座標変換などの計算を行わなくてよく、画面の表示を確認しながら仮想オブジェクトを配置できるため、仮想オブジェクトの配置のミスも防止される。
【０１５９】
また、本実施形態によれば、仮想オブジェクトは、入力画像に映る物体の面であってユーザにより指定される面を包含する平面上の、上記指定位置に対応する３次元位置に配置される。従って、ユーザは、仮想オブジェクトを配置したい物体の面と上記指定位置とを指定するのみで、仮想オブジェクトをＡＲ空間内に適切に配置することができる。また、物体の面の指定と上記指定位置の指定とを１つの操作に集約させて、ユーザによる作業をさらに容易化することもできる。
【０１６０】
また、本実施形態によれば、上記オーサリング画面上で仮想オブジェクトのＡＲ空間内での姿勢を決定するためのベクトルが指定されると、当該ベクトルを用いて、仮想オブジェクトのＡＲ空間内での姿勢がさらに計算される。ベクトルの指定は、画面上でのドラッグ又はマルチタッチなどの簡易な操作により行われ得る。従って、仮想オブジェクトのＡＲ空間内での３次元位置のみならず姿勢までも、専門知識を有しない一般のユーザが容易に編集することができる。
【０１６１】
また、本実施形態によれば、上記オーサリング画面上で指定されるオフセットの値に応じて、仮想オブジェクトのＡＲ空間内での３次元位置がオフセットされ得る。従って、ユーザは、指定した物体の被コンタクト面に制限されることなく、ＡＲ空間内の様々な位置に仮想オブジェクトを配置することができる。
【０１６２】
また、本実施形態によれば、仮想オブジェクトの３次元位置を、ＡＲ空間内の絶対的な位置として記憶することも、当該仮想オブジェクトと関連付けられる実空間内の物体からの相対的な位置として記憶することも可能である。仮想オブジェクトの３次元位置を実空間内の物体からの相対的な位置として記憶する場合には、例えば、動的物体に追随して仮想オブジェクトが移動するようなＡＲコンテンツを作製することも可能となる。
【０１６３】
また、本実施形態によれば、実空間内の１つ以上の物体の各々の外観の特徴を表すモデルデータと入力画像とを照合することにより、入力画像に映る各物体の実空間内での位置及び姿勢が認識される。従って、このような画像認識の結果を利用して、指定された面を包含する平面上の指定位置に対応する位置を計算することができる。
【０１６４】
なお、本明細書において説明した情報処理装置１００による一連の制御処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵ（Central  Processing  Unit）などのプロセッサにより実行される。
【０１６５】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１６６】
１        実空間
１００    情報処理装置
１０２    撮像装置（撮像部）
１１２    表示装置（表示部）
１２０    画像取得部
１３０    データ取得部
１４０    画像認識部
１５０    ユーザインタフェース部
１６０    オーサリング部
１７０    計算部
【図１】
0005799521.tif 000009
【図２】
0005799521.tif 000010
【図３】
0005799521.tif 000011
【図４】
0005799521.tif 000012
【図５】
0005799521.tif 000013
【図６】
0005799521.tif 000014
【図７】
0005799521.tif 000015
【図８】
0005799521.tif 000016
【図９】
0005799521.tif 000017
【図１０】
0005799521.tif 000018
【図１１】
0005799521.tif 000019
【図１２】
0005799521.tif 000020
【図１３】
0005799521.tif 000021
【図１４】
0005799521.tif 000022
【図１５】
0005799521.tif 000023
【図１６】
0005799521.tif 000024
【図１７】
0005799521.tif 000025
【図１８】
0005799521.tif 000026
【図１９】
0005799521.tif 000027
【図２０】
0005799521.tif 000028
【図２１】
0005799521.tif 000029
【図２２】
0005799521.tif 000030
【図２３】
0005799521.tif 000031
【図２４】
0005799521.tif 000032
【図２５】
0005799521.tif 000033
【図２６】
0005799521.tif 000034
【図２７】
0005799521.tif 000035
【図２８】
0005799521.tif 000036