(57)【特許請求の範囲】
【請求項１】
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する第１の環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、
前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて生成した、前記第１の基準物及び前記第２の基準物間の相対位置情報を、前記第１の環境情報に追加した第２の環境情報とし、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物が検出不能となった場合に、前記第１の基準物に対応する前記第２の環境情報を用いて、前記第２の基準物の位置情報を生成する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項２】
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する第１の環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、
前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて生成した、前記第１の基準物及び前記第２の基準物間の相対位置情報を、前記第１の環境情報に追加した第２の環境情報とし、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物の一方が検出不能となった場合に、検出可能な一方の基準物に対する前記第２の環境情報を用いて、前記検出不能となった基準物の位置情報を生成する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項３】
前記第２の環境情報を用いて、前記取得画像の特徴点情報と前記第１の環境情報に含まれる特徴点情報とを比較を行い、特徴点情報の一致率が閾値以上である場合に、前記相対位置情報に基づく前記基準物の位置情報を生成することを特徴とする請求項１又は２に記載の情報処理方法。
【請求項４】
前記検出不能となった基準物に対応付けられたコンテンツを画面に表示することを特徴とする請求項１乃至３の何れか１項に記載の情報処理方法。
【請求項５】
前記取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記第１の基準物及び前記第２の基準物のそれぞれに対して、前記第１の基準物及び前記第２の基準物が設置されている環境に関する環境情報が生成されて設定されている場合に、前記第１の基準物及び前記第２の基準物間の相対位置情報を前記第１の環境情報に追加する、処理を前記コンピュータが実行する請求項１乃至４の何れか一項に記載の情報処理方法。
【請求項６】
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する第１の環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、
前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて生成した、前記第１の基準物及び前記第２の基準物間の相対位置情報を、前記第１の環境情報に追加した第２の環境情報とし、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物が検出不能となった場合に、前記第１の基準物に対応する前記第２の環境情報を用いて、前記第２の基準物の位置情報を生成する、
処理をコンピュータに実行させる情報処理プログラム。
【請求項７】
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する第１の環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、
前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて生成した、前記第１の基準物及び前記第２の基準物間の相対位置情報を、前記第１の環境情報に追加した第２の環境情報とし、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物の一方が検出不能となった場合に、検出可能な一方の基準物に対する前記第２の環境情報を用いて、前記検出不能となった基準物の位置情報を生成する、
処理をコンピュータに実行させる情報処理プログラム。
【請求項８】
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する第１の環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて生成した、前記第１の基準物及び前記第２の基準物間の相対位置情報を、前記第１の環境情報に追加した第２の環境情報とする環境情報生成部と、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物が検出不能となった場合に、前記第１の基準物に対応する前記第２の環境情報を用いて、前記第２の基準物の位置情報を生成する認識部とを有することを特徴とする情報処理装置。
【請求項９】
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する第１の環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて生成した、前記第１の基準物及び前記第２の基準物間の相対位置情報を、前記第１の環境情報に追加した第２の環境情報とする環境情報生成部と、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物の一方が検出不能となった場合に、検出可能な一方の基準物に対する前記第２の環境情報を用いて、前記検出不能となった基準物の位置情報を生成する認識部とを有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、情報処理プログラム、及び情報処理装置に関する。
【背景技術】
【０００２】
カメラ等の撮像部により撮像された画像の一部に画像等のコンテンツを重畳して表示させる拡張現実（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ：ＡＲ）技術が知られている。ＡＲ技術では、撮像画像から認識されたＡＲマーカ（基準物）に対する位置情報や識別情報（マーカＩＤ）に基づき、拡張空間に重畳して表示される画像データ（以下、必要に応じて「ＡＲコンテンツ」という）等を配置する。
【０００３】
例えば、従来のＡＲ表示では、テンプレートマッチング等により撮影画像にＡＲマーカ形状が写っているかを認識し、認識したＡＲマーカからマーカＩＤを読み取る。次に、マーカ領域の大きさや形状（歪み）から、マーカとカメラとの位置関係を推定し、推定した位置関係を用いて、ＡＲコンテンツの配置（位置、向き等）を決定し、決定した配置でＡＲコンテンツを画像に重畳表示している。
【０００４】
また、ＡＲ技術において、任意の場所にＡＲコンテンツを関連付ける際に、ＡＲマーカに基づいて、そのＡＲマーカの位置から相対的な位置にコンテンツを表示する技術が知られている。また、認識中の識別子が特定の理由（例えば、識別子の認識を妨げる物体が識別子の前に出現したり、識別子がカメラ外にフレームアウトする等）により、ＡＲマーカの認識が行えなくなる場合がある。このような場合に、そのＡＲマーカの位置情報、形状情報等を追尾し、ＡＲコンテンツの表示等の処理を継続される技術として、オブジェクトトラッキング技術が知られている。オブジェクトトラッキングとは、例えばＡＲマーカの認識後に、そのＡＲマーカを認識していなくても画像上の環境に対する特徴点情報（以下、「環境マップ」という）等に基づいて位置情報のトレースを可能とする技術である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１７４２４３号公報
【特許文献２】特開２０１１−１４１８２８号公報
【特許文献３】特開２０１１−９５７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、例えばオブジェクトトラッキング技術をＡＲ技術に適用する場合、複数のＡＲマーカに対して、オブジェクトトラッキングを実現するための環境マップ（環境情報）を設定しておく必要がある。そのため、ＡＲマーカの数が増えるとオブジェクトトラッキング時の処理負荷が高くなる。
【０００７】
一つの側面では、本発明は、処理負荷を軽減することを目的とする。
【課題を解決するための手段】
【０００８】
一つの態様では、情報処理方法は、取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する第１の環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて生成した、前記第１の基準物及び前記第２の基準物間の相対位置情報を、前記第１の環境情報に追加した第２の環境情報とし、前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物が検出不能となった場合に、前記第１の基準物に対応する前記第２の環境情報を用いて、前記第２の基準物の位置情報を生成する、処理をコンピュータが実行する。
【発明の効果】
【０００９】
一つの側面として、処理負荷を軽減することができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理システムの概略構成の一例を示す図である。
【図２】端末装置の機能構成の一例を示す図である。
【図３】端末装置のハードウェア構成の一例を示す図である。
【図４】オーサリング時における情報処理の一例を示すフローチャートである。
【図５】環境マップ生成処理の一例を示すフローチャートである。
【図６】運用時における情報処理の一例を示すフローチャートである。
【図７】環境マップの一例を示す図である。
【図８】２つのマーカの環境マップを対応付けた例を示す図（その１）である。
【図９】２つのマーカの環境マップを対応付けた例を示す図（その１）である。
【図１０】オブジェクトトラッキングの利用シーンの一例を示す図である。
【図１１】複数マーカ認識における動作例を説明するための図である。
【図１２】本実施形態によるオブジェクトトラッキング処理の一例を示す図である。
【図１３】本実施形態におけるＡＲコンテンツの表示例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて実施形態を説明する。
【００１２】
＜情報処理システムの概略構成例＞
図１は、情報処理システムの概略構成の一例を示す図である。図１に示す情報処理システム１０は、サーバ１１と、情報処理装置の一例としての１又は複数の端末装置１２−１〜１２−ｎ（以下、必要に応じて「端末装置１２」と総称する）とを有する。サーバ１１及び端末装置１２は、例えば通信ネットワーク１３によりデータの送受信が可能な状態で接続されている。
【００１３】
サーバ１１は、基準物の一例としてのＡＲマーカ、及びＡＲマーカに対応付けて登録された各ＡＲコンテンツ（ＡＲオブジェクト）が管理されている。ここで、ＡＲマーカとは、例えばＡＲコンテンツ等の各種コンテンツ情報の内容や表示する位置等を指定するための標識となるもの（識別子）である。ＡＲマーカは、例えば二次元コード等のように、所定の領域内に所定の模様や文字パターン等が形成された画像等であるが、これに限定されるものではない。
【００１４】
また、基準物の一例としては、ＡＲマーカに限定されるものではなく、例えば壁掛け時計や絵画、壁紙、置物等の実物体（いわゆる自然マーカ）であってもよい。この場合、基準物の認識（検出）は、例えば実物体の形状や色、模様等に対応する特徴情報と、予め設定された基準物毎の特徴情報とを比較して、実物体を特定することで、その実物体に対応する識別情報（ＩＤ）を上述したマーカＩＤとして用いることができる。
【００１５】
ＡＲコンテンツとは、例えば現実空間に対応する三次元の仮想空間上に配置された物体のモデルデータ等であり、例えば端末装置１２で撮影された画像に重畳して表示される重畳用データ（オブジェクト情報）である。
【００１６】
また、ＡＲコンテンツは、例えば撮影画像中に含まれるＡＲマーカの大きさや形状（歪み）等から推定されるＡＲマーカとカメラ等の撮像部との位置関係を用いて、ＡＲマーカを基準とした相対座標（マーカ座標系）で設定された位置に表示される。また、ＡＲコンテンツは、上述した位置関係を用いて、ＡＲマーカの撮影方向に対応する向きで表示される。位置関係とは、ＡＲマーカと撮影位置との距離及び撮影方向のうち少なくとも１つを含むが、これに限定されるものでない。マーカ座標系は、例えば三次元空間座標系（Ｘ，Ｙ，Ｚ）であるが、これに限定されるものはなく、二次元平面座標系（Ｘ，Ｙ）でもよい。
【００１７】
本実施形態のＡＲコンテンツは、マーカＩＤ等に対応付けられており、例えばテキスト、アイコン、アニメーション、マーク、模様、画像、映像等の様々な形態が含まれる。また、ＡＲコンテンツは、表示出力されるものに限定されず、例えば音声等の情報であってもよい。
【００１８】
サーバ１１は、例えば端末装置１２におけるＡＲコンテンツの設定処理（オーサリング処理）により、端末装置１２から得られるＡＲマーカに関する情報（例えば、マーカＩＤ、ＡＲマーカの位置情報等）と、ＡＲマーカの位置を基準とする相対位置に設定されたＡＲコンテンツとを登録する。また、サーバ１１は、端末装置１２におけるオーサリング処理により、端末装置１２からマーカＩＤに対応する１又は複数のＡＲコンテンツの設定情報を取得した場合に、そのＡＲコンテンツ情報（例えば、ＡＲコンテンツＩＤ、座標値、回転角度、拡縮率、ＡＲコンテンツ格納先情報（テクスチャパス）等）を登録して管理する。
【００１９】
また、サーバ１１は、端末装置１２から、ＡＲコンテンツの取得要求等を受信した場合には、端末装置１２から送信されたマーカＩＤに対応させて、予め登録されたＡＲコンテンツに関する情報を抽出し、抽出した情報を端末装置１２に送信する。
【００２０】
サーバ１１は、例えばＰｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ（ＰＣ）等でもよいが、これに限定されるものではなく、例えば一以上の処理装置を有するクラウドコンピューティングにより構成されるクラウドサーバ等であってもよい。
【００２１】
端末装置１２は、カメラ等の撮像部等により、実空間上にあるＡＲマーカを撮影する。また、端末装置１２は、カメラ等により撮影された画像又は通信ネットワーク１３等を介して外部装置から得られる画像（以下、必要に応じて「取得画像」という）に含まれるＡＲマーカから、対応する情報を認識する。また、端末装置１２は、認識したＡＲマーカに対してＡＲオブジェクトの登録を行う。この登録情報は、サーバ１１に送信され、サーバ１１内で管理されてもよく、端末装置１２内部で管理されていてもよい。
【００２２】
また、端末装置１２は、撮影等により取得した画像にＡＲマーカが含まれている場合に、そのＡＲマーカを認識し、認識した結果として得られたマーカＩＤに対応付けられているＡＲコンテンツ（オブジェクト）を取得し、取得したＡＲコンテンツを、画像データに対してＡＲマーカの表示位置（座標）を基準にした相対的な座標位置に重畳表示する。
【００２３】
なお、端末装置１２は、認識中（検出中）のＡＲマーカ（基準物）が特定の理由（例えば、ＡＲマーカの認識を妨げる物体がＡＲマーカの前に出現したり、ＡＲマーカがカメラの画角外にフレームアウトする等）により、ＡＲマーカの認識が行えなくなる場合がある。このような場合に、端末装置１２は、そのＡＲマーカの位置情報、形状情報等を追尾し、コンテンツの表示等の処理を継続されるオブジェクトトラッキングによるＡＲコンテンツ表示を行う。
【００２４】
このとき、端末装置１２は、複数のＡＲマーカ認識時に、オブジェクトトラッキングによる処理負荷が高くなるため、ＡＲマーカ毎に環境マップ（基準物が設置されている環境に関する情報（環境情報））を設定する場合に、同時認識するＡＲマーカが増える毎に処理速度が低下する。また、負荷低減のために、オブジェクトトラッキング対象とする環境マップを減らした場合、ロストした（認識不能（検出不能）になった）ＡＲマーカのトラッキングが不可能なケースがある。
【００２５】
そこで、端末装置１２は、ＡＲマーカを複数認識しているタイミングで、そのＡＲマーカに対して環境マップが設定されているか否かの判定を行い、環境マップが両方に設定されている場合、環境マップの中心点（元々認識していたＡＲマーカの中心座標）から、他のＡＲマーカの相対位置及び相対形状を取得し、各々の環境マップにその情報を追加する。
【００２６】
また、端末装置１２は、ＡＲマーカの全てをロストした場合には、所定の条件（例えば、マーカＩＤ順等）で優先度が付けられた環境マップを１つ使用し、ロストしたＡＲマーカ位置やＡＲマーカ情報を推測する。また、端末装置１２は、例えば、何れかのＡＲマーカをロストした場合、認識中の他のＡＲマーカの相対位置や相対形状に基づいて、相対位置や相対情報を推測する。
【００２７】
上述した手法を用いることで、背景画像の特徴点を使用せずにＡＲマーカ（オブジェクト）をトラッキングすることができるため、処理の高速化が可能となる。なお、環境マップは、ＸＭＬファイル形式でもよく、バイナリ形式でもよいが、これらに限定されるものではない。
【００２８】
端末装置１２は、例えばタブレット端末やスマートフォン、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ（ＰＤＡ）、ノート型ＰＣ等であるが、これに限定されるものではなく、例えばゲーム機器、携帯電話等の通信端末であってもよい。
【００２９】
通信ネットワーク１３は、例えばインターネットやＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）等であるが、これに限定されるものではない。また、通信ネットワーク１３は、有線でも無線でもよく、これらの組み合わせでもよい。
【００３０】
図１に示す情報処理システム１０において、サーバ１１と端末装置１２とは１対ｎの構成となっているが、これに限定されるものではなく、例えば複数のサーバを有していてもよい。
【００３１】
＜端末装置１２の機能構成の一例＞
次に、上述した端末装置１２の機能構成例について、図を用いて説明する。図２は、端末装置の機能構成の一例を示す図である。端末装置１２は、通信部２１と、撮像部２２と、記憶部２３と、表示部２４と、操作部２５と、判定部２６と、認識部２７と、コンテンツ生成部２８と、環境マップ生成部（環境情報生成部）２９と、画面生成部３０と、制御部３１とを有する。
【００３２】
通信部２１は、通信ネットワーク１３を介してサーバ１１や他の装置等との間でデータの送受信を行う。通信部２１は、例えば撮像部２２等を用いて撮影された画像に含まれるＡＲマーカから、認識部２７によるマーカ認識により認識されたマーカＩＤをサーバ１１に送信する。通信部２１は、送信したマーカＩＤに対応するＡＲコンテンツ情報等を受信する。
【００３３】
また、通信部２１は、例えばオーサリング処理において、取得画像に含まれるＡＲマーカに対応付けて取得画像の所定の位置に重畳表示するＡＲコンテンツ情報をサーバ１１等に送信してもよい。取得画像は、撮像部２２により撮影された画像でもよく、通信ネットワーク１３を介して外部から取得した画像でもよい。
【００３４】
撮像部２２は、静止画又は予め設定されたフレーム間隔で画像（動画像）を撮影する。撮像部２２は、撮像した画像を制御部３１へ出力したり、記憶部２３に記憶させる。撮像部２２は、例えばデジタルカメラ等であるが、これに限定されるものではない。
【００３５】
記憶部２３は、本実施形態における情報処理（例えば、表示制御処理等）に必要な各種情報を記憶する。例えば、記憶部２３は、制御部３１による制御に基づき、各種情報を記憶する。記憶部２３は、例えばＡＲコンテンツ生成時の設定情報やＡＲコンテンツ情報、環境マップ等を記憶する。また、記憶部２３は、ＡＲマーカ管理情報（現在認識しているマーカーのＩＤや位置等）の情報を一時的に記憶してもよい。
【００３６】
記憶部２３に記憶される情報は、これに限定されるものではない。なお、これらの情報は、端末装置１２が設定した情報だけでなく、サーバ１１から取得した情報も含まれる。例えば、設定時の情報等は、サーバ１１へ送信した後に削除されてもよい。
【００３７】
表示部２４は、取得画像（例えば、撮像部２２により撮影された画像や通信ネットワーク１３を介して外部より取得した画像）等を表示する。表示部２４は、表示される取得画像にＡＲマーカが含まれている場合、そのＡＲマーカに対応するＡＲコンテンツ（重畳用の画像データ等）を所定の位置に重畳して表示する。また、表示部２４は、画面生成部３０により生成された重畳画像や、本実施形態における処理の開始や終了等をユーザが選択するためのボタン、その他各種の指示入力ボタン等を表示する。表示部２４は、ディスプレイやモニタ等であるが、これに限定されるものではない。
【００３８】
操作部２５は、ユーザ等からの操作内容を入力する。例えば、表示部２４がタッチパネル等である場合、操作部２５は、タッチパネル上のタッチ位置座標を取得する。また、操作部２５は、タッチパネルによるマルチタッチインターフェースにより、シングルタップやダブルタップ、ロングタップ、スワイプ、フリック、ピンチイン、ピンチアウトといったユーザ操作を入力する。端末装置１２がキーボードや操作ボタン等を有する場合には、操作部２５は、ユーザが選択したキーボードや操作ボタンに対応する情報を入力する。
【００３９】
判定部２６は、取得画像にＡＲマーカが含まれるか否かを判定する。例えば、判定部２６は、撮像部２２により得られる撮影画像に対して画像認識を行い、予め設定された複数のＡＲマーカ画像とのマッチングを行って画像中におけるＡＲマーカの有無を判定する。
【００４０】
また、判定部２６は、ＡＲマーカ認識からオブジェクトトラッキング処理への切り替えの判定や、ユーザ入力に対するアプリケーションの起動や終了等を判定する。また、判定部２６は、認識部２７により認識したＡＲマーカの領域の大きさや形状から画像の撮影位置を推測し、推測した画像撮影位置とＡＲマーカの位置関係を示す情報を生成してもよい。位置関係を示す情報とは、例えばＡＲマーカと撮影位置との距離及び方向のうち少なくとも１つであるが、これに限定されるものではない。判定部２６における判定は、定期的、又は端末装置１２の撮影位置が所定の距離以上移動した場合等の所定のタイミングで行う。
【００４１】
認識部２７は、判定部２６からの判定結果により、取得画像中に１又は複数のＡＲマーカが存在すると判定された場合、各ＡＲマーカに対応する識別情報（マーカＩＤ）を取得する。また、認識部２７は、取得画像から認識（検出）していたＡＲマーカが遮蔽物等の影響で認識不能（検出不能）となった場合（ロストした場合）に、環境マップを用いたオブジェクトトラッキング処理により認識不能となったＡＲマーカの位置情報を取得する。
【００４２】
例えば、認識部２７は、環境マップ生成部２９により取得画像に含まれる２つのＡＲマーカ（第１のＡＲマーカ、第２のＡＲマーカ）の環境マップを生成し、その後の取得画像において、第１及び第２のＡＲマーカの両方が認識不能となった場合に、第１のＡＲマーカに対する環境情報と環境マップから得られる相対位置情報とを用いて、第２のＡＲマーカの位置情報を生成する。
【００４３】
また、認識部２７は、例えば第１及び第２のＡＲマーカの一方が認識不能となった場合に、認識可能（検出可能）な一方の基準物に対する環境情報と環境マップから得られる相対位置情報とを用いて、認識不能となった基準物の位置情報を生成する。
【００４４】
また、認識部２７は、ＡＲマーカが認識不能となった場合に、現在の取得画像より所定フレーム前まで認識済み（検出済み）であったか否かを判断し、認識済みであった場合に、そのＡＲマーカの位置情報を取得する処理を行ってもよい。また、認識部２７は、オブジェクトトラッキング処理における特徴点の抽出、特徴点のマッチング処理等を行う。また、認識部２７は、オブジェクトトラッキング処理により得られる位置情報に基づいて、認識不能となったＡＲマーカに対応するマーカＩＤを取得する。
【００４５】
なお、上述したＡＲマーカの判定や認識では、ＡＲマーカに限定されるものではなく、例えば取得画像に含まれる実物体（例えば、壁掛け時計や配管、絵画等）を基準物としてもよい。この場合、認識部２７は、取得画像から実物体の特徴情報を抽出し、抽出した特徴情報と、予め登録された特徴情報とを比較し、同一又は類似度が所定値以上の特徴情報から物体を特定し、その物体に対応する識別情報を取得する。特徴情報とは、物体のエッジ情報や輝度情報等の特徴量に基づいて取得することができ、お互いの特徴情報がどの程度一致しているかに応じて物体を特定することができるが、これに限定されるものではない。
【００４６】
なお、上述した判定部２６や認識部２７では、例えば予めＡＲマーカ又は物体の形状を規定したテンプレートを記憶部２３に記憶しておき、そのテンプレートとマッチングを行うことでＡＲマーカ又は物体を判定し、認識処理を行ってもよい。
【００４７】
コンテンツ生成部２８は、表示部２４に表示される取得画像に対してマーカＩＤに対応するＡＲコンテンツ情報を抽出する。また、コンテンツ生成部２８は、抽出したコンテンツ情報を用いて、ＡＲマーカと取得画像を撮影したカメラ（例えば、撮像部２２等）との位置関係から、画像に重畳するＡＲコンテンツの配置（位置、向き、大きさ等）を決定する。
【００４８】
また、コンテンツ生成部２８は、例えばオーサリング処理等において、ＡＲコンテンツの位置情報、及びＡＲコンテンツを形成する表示データと、マーカＩＤとを対応付けてＡＲコンテンツ情報を生成する。例えば、コンテンツ生成部２８は、ユーザが画面上で指定した点を、ＡＲマーカの位置を基準とした座標系（マーカ座標系）に変換することで、その変換後の座標値をＡＲマーカに基づく相対位置情報とすることができるが、これに限定されるものではない。コンテンツ生成部２８は、生成したコンテンツ情報をマーカＩＤと対応付けて記憶部２３に記憶してもよく、サーバ１１に登録要求を行ってもよい。
【００４９】
更に、コンテンツ生成部２８は、ＡＲコンテンツの位置情報及びＡＲコンテンツを形成する表示データと、ＡＲマーカの識別情報とを対応付けて、ＡＲコンテンツ情報を生成する。例えば、コンテンツ生成部は、ユーザが画面上で指定した点を、マーカ座標系に変換し、変換後の座標値を位置情報とする。
【００５０】
環境マップ生成部２９は、判定部２６による判定結果により、取得画像に１又は複数の複数のＡＲマーカが存在すると判定された場合に、認識部２７により認識された各ＡＲマーカに環境マップ（環境情報）を生成する。また、環境マップ生成部２９は、所定時間間隔で、環境マップを更新してもよい。また、環境マップ生成部２９は、管理者等によるオーサリング処理のときに行ってもよく、オーサリング処理後の作業員等による運用時の撮影中に行ってもよい。
【００５１】
例えば、環境マップ生成部２９は、取得画像において第１のＡＲマーカの画像及び第２のＡＲマーカの画像を検出した場合、取得画像に基づき、第１のＡＲマーカ及び第２のＡＲマーカが設置されている環境に関する環境マップを、第１のＡＲマーカ及び第２のＡＲマーカのそれぞれについて生成する。また、環境マップ生成部２９は、例えば取得画像における第１のＡＲマーカ及び第２のＡＲマーカの位置情報に基づいて、第１のＡＲマーカ及び第２のＡＲマーカ間の相対位置情報を生成し、環境マップに保存する。なお、取得画像に３つ以上のＡＲマーカの画像を検出した場合には、環境マップ生成部２９は、各マーカ間における相対位置情報を生成する。
【００５２】
画面生成部３０は、コンテンツ生成部２８により生成されたＡＲコンテンツを画像中の決定された位置に配置して重畳画像を生成する。画面生成部３０は、重畳画像以外にも、例えば重畳前の撮影画像や設定画面等の様々な画像を表示するための画面を生成する。また、画面生成部３０は、オーサリング処理において、ＡＲマーカに対応付けるＡＲコンテンツを選択するためのテンプレート情報を表示する画面を生成してもよく、文字情報を入力するための入力画面や編集画面を生成してもよい。
【００５３】
制御部３１は、端末装置１２が有する各構成における処理全体を制御する。制御部３１は、撮像部２２による画像撮影、表示部２４による各種情報の画面表示、操作部２５による各種入力情報の受け付け等の処理を行う。また、制御部３１は、判定部２６によるＡＲマーカの有無の判定、認識部２７によるＡＲマーカ認識、コンテンツ生成部２８によるコンテンツの生成等の処理を行う。
【００５４】
また、制御部３１は、環境マップ生成部２９による環境マップの生成、画面生成部３０による重畳画像の生成等の処理を行う。制御部３１における制御内容は、これに限定されるものではなく、例えばエラー処理等を行ってもよい。また、制御部３１は、本実施形態における情報処理を実行するアプリケーションの起動や終了、エラー処理等を制御する。
【００５５】
＜端末装置１２のハードウェア構成例＞
次に、端末装置１２のハードウェア構成例について図を用いて説明する。図３は、端末装置のハードウェア構成の一例を示す図である。図３の例において、端末装置１２は、マイクロフォン（以下、「マイク」という）４１と、スピーカ４２と、カメラ４３と、表示部４４と、操作部４５と、センサ部４６と、電力部４７と、無線部４８と、近距離通信部４９と、補助記憶装置５０と、主記憶装置５１と、ＣＰＵ５２と、ドライブ装置５３とを有し、これらはシステムバスＢで相互に接続されている。
【００５６】
マイク４１は、ユーザが発した音声や、その他の音を入力する。スピーカ４２は、通話相手先の音声を出力したり、着信音等の音を出力する。マイク４１及びスピーカ４２は、例えば、通話機能等により通話相手と会話するとき等に用いることができるが、これに限定されるものではなく、音声による情報の入出力に用いることができる。
【００５７】
カメラ４３は、例えば予め設定された画角内の実空間の画像（動画像、静止画像）を撮影する。カメラ４３は、例えば上述した撮像部２２の一例である。
【００５８】
表示部４４は、ユーザに対してＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）や各種アプリケーションで設定された画面（例えば、実空間にＡＲオブジェクトが重畳された画像等）を表示する。また、表示部４４は、タッチパネルディスプレイ等でもよく、その場合には表示部４４は、入出力部としての機能を有する。
【００５９】
表示部４４は、例えばＬｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ（ＬＣＤ）や有機Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ（ＥＬ）等のディスプレイである。表示部４４は、例えば上述した表示部２４の一例である。
【００６０】
操作部４５は、表示部４４の画面に表示された操作ボタンや端末装置１２の外部に設けられた操作ボタン等である。操作ボタンは、例えば電源ボタンや音量調整ボタンでもよく、所定の順番で配列された文字入力用の操作キー等でもよい。操作部４５は、例えば上述した操作部２５の一例である。
【００６１】
センサ部４６は、端末装置１２のある時点又は継続的な動作を検出する。例えば、センサ部４６は、端末装置１２の傾き角度、加速度、方向、位置等を検出するが、これに限定されるものではない。なお、センサ部４６としては、例えば傾きセンサや加速度センサ、ジャイロセンサ、Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ（ＧＰＳ、全地球測位網）等であるが、これに限定されるものではない。
【００６２】
電力部４７は、端末装置１２の各構成に対して電力を供給する。電力部４７は、例えばバッテリ等の内部電源であるが、これに限定されるものではない。電力部４７は、電力量を常時又は所定の時間間隔で検出し、電力量の残量等を監視することもできる。
【００６３】
無線部４８は、例えばアンテナ等を用いて基地局からの無線信号（通信データ）を受信したり、アンテナを介して無線信号を基地局に送信する通信データの送受信部である。
【００６４】
近距離通信部４９は、例えば赤外線通信やＷｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の通信手法を用いて、他の端末装置１２等のコンピュータと近距離通信を行うことができる。上述した無線部４８及び近距離通信部４９は、他のコンピュータとのデータの送受信を可能とする通信インタフェースである。
【００６５】
補助記憶装置５０は、例えばＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）やＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）等のストレージ手段である。補助記憶装置５０は、ＣＰＵ５２からの制御信号に基づき、本実施形態における実行プログラム（情報処理プログラム）や、コンピュータに設けられた制御プログラム等を記憶し、必要に応じて入出力を行う。補助記憶装置５０は、ＣＰＵ５２からの制御信号等に基づいて、記憶された各情報から必要な情報を読み出したり、書き込むことができる。
【００６６】
主記憶装置５１は、ＣＰＵ５２からの指示により補助記憶装置５０から読み出された実行プログラム等を格納したり、プログラム実行中に得られる各種情報等を記憶する。主記憶装置５１は、例えばＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）やＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）等である。
【００６７】
ＣＰＵ５２は、ＯＳ等の制御プログラム、及び主記憶装置５１に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御することで、出力制御における各処理を実現する。
【００６８】
具体的には、ＣＰＵ５２は、例えば操作部４５等から得られるプログラムの実行指示等に基づき、補助記憶装置５０にインストールされたプログラムを実行させることにより、主記憶装置５１上でプログラムに対応する処理を行う。例えば、ＣＰＵ５２は、情報処理プログラムを実行させることで、上述した撮像部２２による実空間の撮像、表示部２４による各種情報の画面表示、操作部２５による各種入力情報の受け付け等の処理を行う。また、ＣＰＵ５２は、情報処理プログラムを実行させることで、判定部２６によるＡＲマーカの有無の判定、認識部２７によるＡＲマーカ認識、コンテンツ生成部２８によるコンテンツの生成等の処理を行う。また、ＣＰＵ５２は、情報処理プログラムを実行させることで、環境マップ生成部２９による環境マップの生成、画面生成部３０による重畳画像の生成等の処理を行う。ＣＰＵ５２における処理内容は、上述した内容に限定されるものではない。ＣＰＵ５２により実行された内容は必要に応じて補助記憶装置５０等に記憶される。
【００６９】
ドライブ装置５３は、例えば記録媒体５４等を着脱自在にセットすることができ、セットした記録媒体５４に記録された各種情報を読み込んだり、所定の情報を記録媒体５４に書き込むことができる。ドライブ装置５３は、例えば媒体装填スロット等であるが、これに限定されるものではない。
【００７０】
記録媒体５４は、上述したように実行プログラム等を格納するコンピュータで読み取り可能な記録媒体である。記録媒体５４は、例えばフラッシュメモリ等の半導体メモリであってもよい。また、記録媒体５４は、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）メモリ等の可搬型記録媒体であってもよいが、これに限定されるものではない。
【００７１】
本実施形態では、上述したコンピュータ本体のハードウェア構成に実行プログラム（例えば、情報処理プログラム等）をインストールすることで、ハードウェア資源とソフトウェアとが協働して本実施形態における情報処理（表示制御処理等）を実現することができる。また、上述した表示処理に対応する情報処理プログラムは、例えば装置上で常駐している状態であってもよく、起動指示により起動させてもよい。
【００７２】
次に、情報処理（表示制御処理）の一例について説明する。なお、本実施形態では、オーサリング時（設定時）の処理と、運用時の処理に大別して説明する。
【００７３】
＜情報処理（表示制御処理）の一例：オーサング処理＞
次に、本実施形態における情報処理（オーサング処理）の一例についてフローチャートを用いて説明する。図４は、オーサリング時における情報処理の一例を示すフローチャートである。図４の例において、端末装置１２は、オーサリングプログラム等の対応するアプリケーションを起動し（Ｓ０１）、例えば撮像部２２等による撮影により実空間における画像（動画像でも静止画像でもよい）を取得する（Ｓ０２）。なお、Ｓ０２の処理で取得される画像は、端末装置１２以外の装置から撮影された画像であってもよい。
【００７４】
次に、判定部２６は、取得画像中のＡＲマーカの有無を判定し、ＡＲマーカを認識（検出）したか否かを判断する（Ｓ０３）。ＡＲマーカを認識した場合（Ｓ０３において、ＹＥＳ）、そのＡＲマーカの識別情報（マーカ）を認識し、ＡＲマーカに既に対応付けられたＡＲコンテンツがある場合には、そのＡＲコンテンツを取得して画面に表示する（Ｓ０４）。次に、コンテンツ生成部２８は、ＡＲコンテンツの追加、変更等の編集を開始するか否かを判断し（Ｓ０５）、ユーザ指示等により開始する場合（Ｓ０５において、ＹＥＳ）、編集を実施する（Ｓ０６）。
【００７５】
次に、各ＡＲマーカに対する環境マップ（環境情報）の生成を開始するか否かを判断し（Ｓ０７）、環境マップの生成を開始する場合（Ｓ０７において、ＹＥＳ）、環境マップ生成部２９は、環境マップ生成処理を実行する（Ｓ０８）。Ｓ０７の処理では、例えば取得画像中に複数のＡＲマーカが認識できている場合には、環境マップの生成を開始すると判断することができるが、判断基準はこれに限定されるものではない。
【００７６】
Ｓ０７において、環境マップを生成しない場合（Ｓ０７において、ＮＯ）、又はＳ０８の処理後、編集を終了するか否かを判断し（Ｓ０９）、編集を終了しない場合（Ｓ０９において、ＮＯ）、Ｓ０６の処理に戻る。また、編集を終了する場合（Ｓ０９において、ＹＥＳ）、Ｓ０３の処理においてＡＲマーカを認識していない場合（Ｓ０３において、ＮＯ）、又はＳ０５の処理において編集を開始しない場合（Ｓ０５において、ＮＯ）、アプリケーションを終了するか否かを判断する（Ｓ１０）。
【００７７】
端末装置１２は、アプリケーションを終了しない場合（Ｓ１０において、ＮＯ）、Ｓ０３の処理に戻る。また、アプリケーションを終了する場合（Ｓ１０において、ＹＥＳ）、ＡＲオーサリング処理のアプリケーションを終了して（Ｓ１１）、処理を終了する。
【００７８】
＜Ｓ０８；環境マップ生成処理の一例＞
次に、上述したＳ０８における環境マップ生成処理の一例について、フローチャートを用いて説明する。図５は、環境マップ生成処理の一例を示すフローチャートである。図５の例において、環境マップ生成部２９は、認識部２７がＡＲマーカを認識したか否かを判断し（Ｓ２１）、ＡＲマーカを認識した場合（Ｓ２１において、ＹＥＳ）、第１視点の画像を取得する（Ｓ２２）。次に、環境マップ生成部２９は、第１視点と異なる視点の第２視点の画像を取得する（Ｓ２３）。Ｓ２２の処理において２視点の画像を取得する場合には、三角測量が可能な視点位置を取得する必要がある。また、Ｓ２３の処理において、この２視点の画像の特徴点を対応付けることでオブジェクトトラッキング処理におけるロストしたＡＲマーカの座標値が取得可能となる。
【００７９】
次に、環境マップ生成部２９は、２視点の画像の特徴点の対応付けを行い（Ｓ２４）、特徴点の対応付けが成功したか否かを判断する（Ｓ２５）。対応付けが成功した場合（Ｓ２５において、ＹＥＳ）、環境マップ生成部２９は、２視点の画像から、特徴点の座標を取得する（Ｓ２６）。次に、環境マップ生成部２９は、特徴点の座標を環境マップに保存する（Ｓ２７）。
【００８０】
また、Ｓ２１の処理においてＡＲマーカを認識していない場合（Ｓ２１において、ＮＯ）、Ｓ２５の処理において特徴点の対応付けが成功していない場合（Ｓ２５において、ＮＯ）、又はＳ２７の処理後、環境マップ生成部２９は、環境マップ生成を終了するか否かを判断し（Ｓ２８）、終了しない場合（Ｓ２８において、ＮＯ）、Ｓ２１の処理に戻る。また、環境マップ生成を終了する場合（Ｓ２８において、ＹＥＳ）、環境マップ生成処理を終了する。
【００８１】
＜情報処理（表示制御処理）の一例：運用処理＞
次に、本実施形態における運用時の情報処理（表示制御処理）の一例についてフローチャートを用いて説明する。図６は、運用時における情報処理の一例を示すフローチャートである。図６の例において、端末装置１２は、運用プログラム等の対応するアプリケーションを起動し（Ｓ３１）、例えば撮像部２２等による撮影により実空間における画像（動画像でも静止画像でもよい）を取得する（Ｓ３２）。なお、Ｓ３２の処理で取得される画像は、端末装置１２以外の装置から撮影された画像であってもよい。
【００８２】
次に、判定部２６は、取得した画像中からＡＲマーカの有無を判定し、その判定結果からＡＲマーカを認識したか否かを判断する（Ｓ３３）。なお、Ｓ３３の処理では、説明の便宜上、例えば取得画像から２つのＡＲマーカを認識したか否かを判断しているが、これに限定されるものではなく、複数（３以上も含む）のＡＲマーカを認識したか否かを判断してもよい。
【００８３】
ＡＲマーカを認識した場合（Ｓ３３において、ＹＥＳ）、認識部２７は、マーカＩＤに対応付けられた情報を取得し（Ｓ３４）、その情報の中に環境マップの設定があるか否かを判断する（Ｓ３５）。なお、Ｓ３４の処理において、取得する情報としては、例えばマーカＩＤに対応するＡＲコンテンツ情報や環境マップ等であるが、これに限定されるものではない。
【００８４】
Ｓ３５の処理において、環境マップの設定がある場合（Ｓ３５において、ＹＥＳ）、環境マップ生成部２９は、更新処理として、自マーカ（第１のＡＲマーカ）と他マーカ（第２のＡＲマーカ）との相対位置を取得して保存する（Ｓ３６）。ここで、相対位置とは、例えば上述した相対距離ベクトル及び相対回転角度等であるが、これに限定されるものではなく、例えば相対形状等でもよい。
【００８５】
次に、画面生成部３０は、Ｓ３４の処理で得られたＡＲコンテンツ情報からマーカＩＤに対応するＡＲコンテンツをマーカＩＤに対する相対的な位置等に表示する（Ｓ３７）。
【００８６】
また、Ｓ３３の処理において、ＡＲマーカが認識できなかった場合（Ｓ３３において、ＮＯ）、現在の取得画像より所定フレーム（Ｎフレーム）前までにマーカ認識済み（マーカ検出済み）であったか否かを判断する（Ｓ３８）。マーカ認識済みであったか否かとは、例えば現在の対象フレームからＮフレーム前までの間に（過去に）、認識できたＡＲマーカが存在したか否かに対応する。
【００８７】
マーカ認識済みである場合（Ｓ３８において、ＹＥＳ）、認識部２７は、そのＡＲマーカに環境マップがあるか否かを判断する（Ｓ３９）。環境マップがある場合（Ｓ３９において、ＹＥＳ）、認識部２７は、その環境マップと現在の取得画像との特徴点のマッチング（比較）を行う（Ｓ４０）。
【００８８】
次に、認識部２７は、Ｓ４０のマッチング処理によるマッチ率（一致度）が予め設定された閾値以上か否かを判断し（Ｓ４１）、閾値以上である場合（Ｓ４１において、ＹＥＳ）、コンテンツ生成部２８は、環境マップが設定されたマーカＩＤに対応するＡＲコンテンツを生成し、表示部２４に表示させる（Ｓ４２）。
【００８９】
次に、端末装置１２は、環境マップでトラッキングできたＡＲマーカに他のＡＲマーカの相対位置の設定があるか否かを判断する（Ｓ４３）。設定がある場合（Ｓ４３において、ＹＥＳ）、他のＡＲマーカのＡＲコンテンツを表示する（Ｓ４４）。上述したＳ３８〜Ｓ４４の処理は、本実施形態におけるオブジェクトトラッキング処理の一例である。
【００９０】
Ｓ３７の処理後、又はＳ４４の処理後、アプリケーションを終了するか否かを判断する（Ｓ４５）。なお、Ｓ４５の処理は、上述したＳ３８の処理においてＮフレーム前までにＡＲマーカ認識済みでない場合（Ｓ３８において、ＮＯ）、Ｓ３９の処理において環境マップがない場合（Ｓ３９において、ＮＯ）、Ｓ４１の処理においてマッチ率が閾値以上でない場合（Ｓ４１において、ＮＯ）、又はＳ４３の処理において相対位置の設定があった場合（Ｓ４３において、ＮＯ）にも、次に実行される。
【００９１】
Ｓ４５の処理において、終了しない場合（Ｓ４５において、ＮＯ）、Ｓ３３の処理に戻る。また、Ｓ４５の処理において、アプリケーションを終了する場合、運用プログラム等の対応するアプリケーションを終了する（Ｓ４６）。
【００９２】
＜環境マップの一例＞
図７は、環境マップの一例を示す図である。なお、以下の説明では、環境マップをＸＭＬ形式で示しているが、これに限定されるものではない。また、説明の便宜上、左側には行番号を付している。
【００９３】
図７（Ａ）は、ＡＲマーカ間の相対情報がない場合の環境マップの一例を示しており、取得画像から１つのＡＲマーカ（マーカＩＤ「１」）が認識されている例を示している。図７（Ａ）において、（０１）行目は、環境マップキーを示している。（０２）行目は、環境マップを関連付けるマーカ情報キーを示している。（０３）行目は、ＡＲマーカＩＤを示している。（０４）〜（０８）行目は、ＡＲマーカの中心座標（例えば、三次元座標）を示している。
【００９４】
（１０）〜（２２）行目は、環境マップの特徴点情報を示している。特徴点情報は、ＡＲマーカを基準とした背景画像に含まれるエッジ情報や輝度差情報から得られる特徴点の情報であり、１又は複数存在する。（１１）〜（１５）行目には、特徴点１の特徴点情報（例えば、三次元座標）が示されている。このような特徴点情報が、複数（Ｎ）個、環境マップに保存される。
【００９５】
また、図７（Ｂ）は、ＡＲマーカ間の相対情報がある場合の環境マップの一例を示しており、取得画像から複数のＡＲマーカを認識している状態での環境マップを示している。図７（Ｂ）では、第１のＡＲマーカ（マーカＩＤ「１」）と、第２のＡＲマーカ（マーカＩＤ「２」）が認識されている例を示している。
【００９６】
図７（Ｂ）において、（１３）〜（１７）行目には、基本となる第１のＡＲマーカの中心座標から第２のＡＲマーカまでの相対距離ベクトルを示し、（１８）〜（２２）行目には、基本となる第１のＡＲマーカに対する第２のＡＲマーカの相対回転角度が保存されている。なお、保存する相対情報については、これに限定されるものではない。
【００９７】
上述した図５の環境マップ生成処理により、取得画像から認識される各ＡＲマーカに対して図７（Ａ）、（Ｂ）に示すような環境マップを生成する。また、環境マップは、所定時間間隔毎、又は撮影場所を所定距離以上移動する毎に更新されるため、例えば図７（Ａ）に示す環境マップが、取得画像から判定されるＡＲマーカの数等に応じて図７（Ｂ）に示す環境マップに更新される。
【００９８】
図８、図９は、２つのマーカの環境マップを対応付けた例を示す図（その１、その２）である。図８では、更新前の状態において、取得画像に含まれるＡＲマーカが１つ（マーカＩＤ「１」）であるため、マーカＩＤ「１」に対する特徴点情報からなる環境マップが生成されている。また、図８では、更新後の状態において、取得画像に含まれるＡＲマーカが２つ（マーカＩＤ「１」、「２」）であるため、マーカＩＤ「１」をベースとしてマーカＩＤ「２」を対応付けた場合の環境マップを生成する。この場合、図８の更新後の（０５）〜（１９）行目に示すように、マーカＩＤ「１」からマーカＩＤ「２」への相対距離ベクトル及び相対回転角度が保存される。
【００９９】
また、図９では、更新前の状態において、取得画像に含まれるＡＲマーカが１つ（マーカＩＤ「２」）であるため、マーカＩＤ「２」に対する特徴点情報からなる環境マップが生成されている。また、図９では、更新後の状態において、取得画像に含まれるＡＲマーカが２つ（マーカＩＤ「１」、「２」）であるため、マーカＩＤ「２」をベースとしてマーカＩＤ「１」を対応付けた場合の環境マップを生成する。この場合、図９の更新後の（０５）〜（１９）行目に示すように、マーカＩＤ「２」からマーカＩＤ「１」への相対距離ベクトル及び相対回転角度が保存される。
【０１００】
また、本実施形態において、環境マップ生成部２９は、上述した環境マップの更新タイミングに対応させて、新規に特徴点情報を付加してもよい。例えば、図８の更新後の（２２）〜（２６）行目、又は図９の更新後の（２２）〜（２６）行目には、更新時の取得画像から得られた新たな特徴点情報（例えば、三次元座標）等が保存される。また、環境マップ生成部２９は、追加だけでなく、現在の取得画像から取得することができない特徴点情報等を更新のタイミングで削除してもよい。
【０１０１】
また、本実施形態では、例えば画面上に存在する３以上の各ＡＲマーカ同士をそれぞれ対応付けて環境マップとして保存してもよい。上述した環境マップは、記憶部２３に記憶してもよく、通信ネットワーク１３を介してサーバ１１等に記憶させてもよい。
【０１０２】
＜オブジェクトトラッキングの利用シーン例＞
次に、オブジェクトトラッキングの利用シーン例について、図を用いて説明する。図１０は、オブジェクトトラッキングの利用シーンの一例を示す図である。図１０の例では、工場や施設等の実空間上に存在する物体６０−１，６０−２のうち、物体６０−２に基準物の一例であるＡＲマーカ６１が設置されている。物体の例としては、例えば配管やバルブ、操作パネル、椅子、机、建物、車両、機械等であるが、これらに限定されるものではなく、実空間上に存在するあらゆる物体でもよい。また、物体そのものを基準物としてよい。
【０１０３】
管理者等のユーザ６２は、端末装置１２を所持し、端末装置１２から撮影して表示部２４の画面６３に表示された取得画像に対して、ＡＲマーカ６１が認識できた場合に、その認識したＡＲマーカに対応付けられたＡＲコンテンツを表示する。
【０１０４】
このとき、例えば図１０の画面６３−１に示すように、ＡＲマーカ６１を一度認識できた状態で、そのＡＲマーカが画面外に外れた場合や、図１０の画面６３−２に示すように、ＡＲマーカ６１を認識中に、画面内にＡＲマーカ６１を遮る遮蔽物（例えば、人物の手や移動物体等）６４が出現した場合や照明の明暗の状態の変化があった場合には、ＡＲマーカが認識できなくなり、対応するＡＲコンテンツを表示することができない。そこで、上述したように、マーカ認識が途切れた場合において、本実施形態におけるオブジェクトトラッキングを実施することで、ＡＲコンテンツの利用を継続させることが可能となる。
【０１０５】
＜複数マーカ認識における動作＞
次に、複数マーカ認識における動作例について、図を用いて説明する。図１１は、複数マーカ認識における動作例を説明するための図である。図１１の例では、物体６０−２に２つのＡＲマーカ６１−１，６１−２が設置されている。また、図１１の例では、ＡＲマーカ６１−１にマーカＩＤ「１」を設定し、ＡＲマーカ６１−２にＩＤ「２」を設定している。
【０１０６】
例えば、オーサリング時の場合には、図１１に示すように単一マーカに対して環境マップを生成する。また、運用時においても単一マーカに対して環境マップが更新される。図１１の各画面６３に示されている「×」印が画像から得られる特徴点情報である。特徴点情報は、実際には画面６３に表示されていないが、例えば画面生成部３０が特徴点情報を表示する処理を行ってもよい。特徴点情報は、例えばＡＲマーカの背景画像から得られるエッジ情報や輝度差情報等に基づいて生成されるが、特徴点の数や位置については、図１１の例に限定されるものではない。また、特徴点情報は、例えば三次元座標等で示すことができるが、これに限定されるものではない。
【０１０７】
ここで、ユーザ６２の使用する位置によっては、１画像から複数のＡＲマーカが認識される場合がある。この場合、従来では認識した複数のＡＲマーカのそれぞれに対する特徴点を生成して保存することになる。したがって、ＡＲマーカをロストした場合のオブジェクトトラッキング処理において、処理する特徴点の数が多くなるため、処理負荷が高くなりＡＲコンテンツの表示速度低下等の問題が生じる。
【０１０８】
そこで、上述した本実施形態による環境マップの設定により、上記問題を解決する。本実施形態では、複数のＡＲマーカが画像中に含まれる場合に、各ＡＲマーカに、そのＡＲマーカが設置されている環境に関する環境マップを生成する。また、お互いのＡＲマーカ間における相対位置情報も環境マップに保存する。これにより、その後のＡＲマーカの認識処理において、一方又は両方をロストした場合であっても環境マップを用いて容易にＡＲマーカの位置を生成することができ、対応するＡＲコンテンツを表示することができる。
【０１０９】
図１２は、本実施形態によるオブジェクトトラッキング処理の一例を示す図である。なお、図１２の例では、環境マップの生成からオブジェクトトラッキング処理を行うまでの一連の流れを示している。
【０１１０】
本実施形態では、まず環境マップの設定有無の判定を行う。例えば、図１２（Ａ）に示すように、認識中のＡＲマーカ６１−１，６１−２に環境マップが設定されており、かつその環境マップの設定が認識中のマーカ同士で独立（それぞれのマーカＩＤに設定されていること）しているかを判定する。
【０１１１】
次に、図１２（Ｂ）に示すように、相対位置情報を環境マップに追加する。例えば、それぞれのＡＲマーカ６１−１，６１−２からの相対位置情報（例えば、相対距離ベクトル等）を、それぞれのマーカＩＤの環境マップに追加又は内部的に保持する。なお、相対位置情報は、相対距離ベクトルに限定されるものではなく、例えば相対回転角度や相対形状情報（例えば、マーカＩＤ「１」をベースとした場合に、マーカＩＤ「２」のマーカ位置がどの座標でどの程度の大きさと傾きか等を示す情報）でもよい。
【０１１２】
なお、相対位置情報や相対形状情報等は、必ずしも上述した手法に限定されるものではなく、例えば既存のマーカ認識エンジンから所定のタイミングで取得できるＡＲマーカの中心座標情報等に基づいて、それぞれの相対的な位置関係等を補足できるようにしてもよい。
【０１１３】
ここで、例えば図１２（Ｃ）に示すように、認識中のＡＲマーカ全てが遮蔽物６４や照明等の影響により認識不能になった場合（ロストした場合）、任意の環境マップを１つ使用し、ロストしたＡＲマーカの中心座標や相対形状等を取得する。なお、使用する環境マップは、例えばマーカＩＤ順等のように、予め設定された条件に基づいて使用されるが、使用条件については、マーカＩＤ順に限定されるものではなく、予めＩＤ毎に優先度が設定されている場合には、優先度順に使用される。
【０１１４】
また、図１２（Ｄ）に示すように、認識中のＡＲマーカの片方のみをロストした場合には、認識中のＡＲマーカ（認識可能なＡＲマーカ）に関する環境マップをベースに、図１２（Ｂ）において生成した相対位置情報等に基づいて、ロストしたＡＲマーカの中心座標や相対形状等を取得する。これにより、本実施形態では、ＡＲマーカをロストした場合に、最低１つのＡＲマーカを認識できれば、そのＡＲマーカに対応付けられた環境マップを用いて相対的に取得することができる。
【０１１５】
＜ＡＲコンテンツの表示例＞
図１３は、本実施形態におけるＡＲコンテンツの表示例を示す図である。図１３（Ａ）は、ＡＲマーカ認識時のＡＲコンテンツの表示例を示し、図１３（Ｂ）は、オブジェクトトラッキング実施時におけるＡＲコンテンツ表示例を示している。
【０１１６】
例えば、図１３（Ａ）に示すように、マーカ認識時には、ＡＲマーカ６１−１，６１−２のうち、ＡＲマーカ６１−１に対応付けられてＡＲコンテンツ７０−１，７０−２が画像データとして、撮影画像に対して重畳表示されている。これらのＡＲコンテンツ７０−１，７０−２は、それぞれ物体６０に対する注意事項やメッセージ、操作手順等のテキスト情報であるが、これに限定されるものではなく、例えば動画や音声等でもよい。
【０１１７】
ここで、図１３（Ｂ）に示すように遮蔽物６４によりＡＲマーカ６１−１をロストした場合（認識不能になった場合）、ＡＲマーカ６１−２に対応する環境マップを用いて、ＡＲマーカ６１−１の相対位置を取得し、取得した位置に対応させてＡＲコンテンツ７０−１，７０−２を継続して表示させることができる。また、ＡＲマーカ６１−１，６１−２の両方がロストした場合でも、一方の環境マップを用いて各ＡＲマーカ６１−１，６１−２の位置を取得することができる。
【０１１８】
なお、上述の処理は、例えば現在の取得画像より所定フレーム（Ｎフレーム）前までにマーカ認識済みであったか否かを判断し、所定フレーム前までマーカ認識済みであった場合に行ってもよい。これにより、ＡＲマーカ６１が遮蔽物６４等により遮蔽されてから所定時間（所定フレーム数）の間だけ、ＡＲコンテンツ７０を表示させることができる。
【０１１９】
上述したように、本実施形態によれば、処理負荷を軽減することができる。例えば、本実施形態では、基準物（ＡＲマーカだけでなく実物体等も含む）毎に、基準物が設置されている環境に関する環境情報をそれぞれについて生成する。また、本実施形態では、第１の取得画像において第１の基準物及び第２の基準物が認識された場合、第１の取得画像における第１及び第２の基準物の位置情報に基づき、第１及び第２の基準物間の相対位置情報を生成し、環境情報に保存する。また、本実施形態では、第２の取得画像において第１及び第２の基準物の両方が認識不能（ロスト）となった場合、第１の基準物の環境情報と相対位置情報を用いて、第２の基準物の位置情報を生成する。
【０１２０】
また、本実施形態では、第２の取得画像において複数の基準物のうちの第２の基準物が認識不能（ロスト）となった場合、第１の基準物の位置と相対位置情報を用いて、第２の基準物の位置情報を生成する。
【０１２１】
なお、上述した相対位置情報等のリアルタイム算出の処理負荷は、従来のオブジェクトトラッキングやマーカ認識の処理負荷よりも遥かに小さい。したがって、複数のＡＲマーカや物体に対して、オブジェクトトラッキング処理等を適用する際の処理負荷を軽減することができる。
【０１２２】
以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、上述した実施例の一部又は全部を組み合わせることも可能である。
【０１２３】
なお、以上の実施例に関し、更に以下の付記を開示する。
（付記１）
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、
前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて、前記第１の基準物及び前記第２の基準物間の相対位置情報を生成し、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物が検出不能となった場合に、前記第１の基準物に対応する前記環境情報と前記相対位置情報とを用いて、前記第２の基準物の位置情報を生成する、
処理をコンピュータが実行することを特徴とする情報処理方法。
（付記２）
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、
前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて、前記第１の基準物及び前記第２の基準物間の相対位置情報を生成し、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物の一方が検出不能となった場合に、検出可能な一方の基準物に対する前記環境情報と前記相対位置情報とを用いて、前記検出不能となった基準物の位置情報を生成する、
処理をコンピュータが実行することを特徴とする情報処理方法。
（付記３）
前記環境情報と前記相対位置情報とを用いて、前記取得画像の特徴点情報と前記環境情報に含まれる特徴点情報とを比較を行い、特徴点情報の一致率が閾値以上である場合に、前記相対位置情報に基づく前記基準物の位置情報を生成することを特徴とする付記１又は２に記載の情報処理方法。
（付記４）
前記検出不能となった基準物に対応付けられたコンテンツを画面に表示することを特徴とする付記１乃至３の何れか１項に記載の情報処理方法。
（付記５）
前記基準物が検出不能となった場合に、現在の取得画像より所定フレーム前まで検出済みであったか否かを判断し、
検出済みであった場合に前記相対位置情報に基づく前記基準物の位置情報を生成することを特徴とする付記１乃至４の何れか１項に記載の情報処理方法。
（付記６）
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、
前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて、前記第１の基準物及び前記第２の基準物間の相対位置情報を生成し、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物が検出不能となった場合に、前記第１の基準物に対応する前記環境情報と前記相対位置情報とを用いて、前記第２の基準物の位置情報を生成する、
処理をコンピュータに実行させる情報処理プログラム。
（付記７）
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、
前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて、前記第１の基準物及び前記第２の基準物間の相対位置情報を生成し、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物の一方が検出不能となった場合に、検出可能な一方の基準物に対する前記環境情報と前記相対位置情報とを用いて、前記検出不能となった基準物の位置情報を生成する、
処理をコンピュータに実行させる情報処理プログラム。
（付記８）
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて、前記第１の基準物及び前記第２の基準物間の相対位置情報を生成する環境情報生成部と、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物が検出不能となった場合に、前記第１の基準物に対応する前記環境情報と前記相対位置情報とを用いて、前記第２の基準物の位置情報を生成する認識部とを有することを特徴とする情報処理装置。
（付記９）
取得画像において第１の基準物の画像及び第２の基準物の画像を検出した場合、前記取得画像に基づき、前記第１の基準物及び前記第２の基準物が設置されている環境に関する環境情報を、前記第１の基準物及び前記第２の基準物のそれぞれについて生成し、前記取得画像における前記第１の基準物及び前記第２の基準物の位置情報に基づいて、前記第１の基準物及び前記第２の基準物間の相対位置情報を生成する環境情報生成部と、
前記相対位置情報を生成した後の取得画像において、前記第１の基準物及び前記第２の基準物の一方が検出不能となった場合に、検出可能な一方の基準物に対する前記環境情報と前記相対位置情報とを用いて、前記検出不能となった基準物の位置情報を生成する認識部とを有することを特徴とする情報処理装置。
【符号の説明】
【０１２４】
１０  情報処理システム
１１  サーバ
１２  端末装置（情報処理装置）
１３  通信ネットワーク
２１  通信部
２２  撮像部
２３  記憶部
２４  表示部
２５  操作部
２６  判定部
２７  認識部
２８  コンテンツ生成部
２９  環境マップ生成部
３０  画面生成部
３１  制御部
４１  マイク
４２  スピーカ
４３  カメラ
４４  表示部
４５  操作部
４６  センサ部
４７  電力部
４８  無線部
４９  近距離通信部
５０  補助記憶装置
５１  主記憶装置
５２  ＣＰＵ
５３  ドライブ装置
５４  記録媒体
６０  物体
６１  ＡＲマーカ
６２  ユーザ
６３  画面
６４  遮蔽物
７０  ＡＲコンテンツ
【図１】
0006543924.tif 000002
【図２】
0006543924.tif 000003
【図３】
0006543924.tif 000004
【図４】
0006543924.tif 000005
【図５】
0006543924.tif 000006
【図６】
0006543924.tif 000007
【図７】
0006543924.tif 000008
【図８】
0006543924.tif 000009
【図９】
0006543924.tif 000010
【図１０】
0006543924.tif 000011
【図１１】
0006543924.tif 000012
【図１２】
0006543924.tif 000013
【図１３】
0006543924.tif 000014