(57)【要約】【課題】  本発明は、ユーザによる情報処理装置の保持にかかる負担を軽減することを目的とする。【解決手段】  コンピュータが、撮像装置から取得した入力画像を記憶領域に格納するとともに、新たに取得した第一の入力画像から基準物が認識された場合に、該第一の入力画像に該基準物に応じた表示データを重畳して表示する第一のモードを実行し、前記撮像装置を有する情報処理装置に対する所定の動作が検出された場合に、該所定の動作を検出する前に前記第一のモードにおいて前記記憶領域に格納された第二の入力画像に対して前記表示データを重畳して表示する第二のモードに、前記第一のモードから切り替える処理を実行することを特徴とする表示制御方法。【選択図】  図１１
2015082314.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
撮像装置から取得した入力画像を記憶領域に格納するとともに、新たに取得した第一の入力画像から基準物が認識された場合に、該第一の入力画像に該基準物に応じた表示データを重畳して表示する第一のモードを実行し、
前記撮像装置を有する情報処理装置に対する所定の動作が検出された場合に、該所定の動作を検出する前に前記第一のモードにおいて前記記憶領域に格納された第二の入力画像に対して前記表示データを重畳して表示する第二のモードに、前記第一のモードから切り替える処理を実行することを特徴とする表示制御方法。
【請求項２】
前記第一のモードにおいて前記第一の入力画像に前記基準物が認識された後に、前記所定の動作が検出された場合に、前記第一のモードが、前記第二のモードへ切り替えられることを特徴とする請求項１記載の表示制御方法。
【請求項３】
前記所定の動作は、前記コンピュータに備えられる前記撮像装置が前記基準物を含む前記第一の入力画像を撮影したときの撮像方向を、該基準物を撮像不能な方向へ変化させるための動作であることを特徴とする請求項１または請求項２のいずれか一項に記載の表示制御方法。
【請求項４】
前記所定の動作は前記情報処理装置に対する回転動作であって、
前記コンピュータは、前記回転動作によって与えられる単位時間当たりの回転量が閾値を超えた場合に、前記所定の動作を検出することを特徴とする請求項３記載の表示制御方法。
【請求項５】
前記第一のモードは、前記第一の入力画像に、前記表示データを、第一の視点から投影した第一の合成画像を生成するモードであって、
前記第二のモードは、前記第二の入力画像に、前記表示データを、前記第一の視点とは異なる第二の視点から投影した第二の合成画像を生成するモードであることを特徴とする請求項１乃至請求項４のいずれか一項に記載の表示制御方法。
【請求項６】
前記第一の視点は、前記撮像装置の撮像方向と平行な方向から前記基準物を捕える視点であって、前記第二の視点は、前記撮像装置の撮像方向に垂直な方向から前記基準物を捕える視点であることを特徴とする請求項５記載の表示制御方法。
【請求項７】
前記表示データは、複数の画像データであって、
前記第二のモードは、前記第二の入力画像に前記複数の画像データが前記第二の視点で重畳表示された前記第二の合成画像を表示した後に、該複数の画像データのうち、該第二の合成画像においてユーザにより指定された画像データのみを前記第一の視点で表示する第三の合成画像を表示することを特徴とする請求項６記載の表示制御方法。
【請求項８】
前記第一のモードが前記第二のモードに切り替えられた場合は、前記表示データに関連する他の表示データをサーバ装置から取得することを特徴とする請求項１乃至請求項７のいずれか一項に記載の表示制御方法。
【請求項９】
前記第二のモードにおいて、前記合成画像内に表示された前記表示データに対する指定操作が検出された場合、前記他の表示データを該合成画像に、さらに表示することを特徴とする請求項８記載の表示制御方法。
【請求項１０】
コンピュータに、
撮像装置から取得した入力画像を記憶領域に格納するとともに、新たに取得した第一の入力画像から基準物が認識された場合に、該第一の入力画像に該基準物に応じた表示データを重畳して表示する第一のモードを実行し、
前記撮像装置を有する情報処理装置に対する所定の動作が検出された場合に、該所定の動作を検出する前に前記第一のモードにおいて前記記憶領域に格納された第二の入力画像に対して前記表示データを重畳して表示する第二のモードに、前記第一のモードから切り替える処理を実行させることを特徴とする表示制御プログラム。
【請求項１１】
撮像装置から取得した入力画像を記憶領域に格納するとともに、新たに取得した第一の入力画像から基準物が認識された場合に、該第一の入力画像に該基準物に応じた表示データを重畳して表示する第一のモードを実行し、前記撮像装置を有する情報処理装置に対する所定の動作が検出された場合に、該所定の動作を検出する前に前記第一のモードにおいて前記記憶領域に格納された第二の入力画像に対して前記表示データを重畳して表示する第二のモードに、前記第一のモードから切り替える制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、拡張現実技術における表示モードを制御する技術に関する。
【背景技術】
【０００２】
現実空間に対応する３次元の仮想空間上に配置された３次元物体のモデルデータを、カメラが撮像する撮像画像に重ねて表示することが行なわれる。この技術は、人間の知覚（視覚など）により収集される情報を拡張させるため、拡張現実（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ：ＡＲ）技術などと呼ばれる。そして、現実空間に対応する３次元の仮想空間上に配置された３次元物体のモデルデータはコンテンツとも呼ばれる。
【０００３】
よって、ＡＲ技術は、予め規定された配置情報に基づき、コンテンツの投影画像を生成するとともに、撮像画像に投影画像を重ねて表示することができる。なお、コンテンツの投影画像は、カメラの位置とコンテンツの配置位置との位置関係に基づいて生成される。
【０００４】
当該位置関係を判断するために、基準物が用いられる。例えば、基準物として、マーカーが用いられることが一般的である。つまり、カメラが撮像した撮像画像からマーカーが検出されると、マーカーとカメラとの位置関係が、カメラの撮像画像に写り込んだマーカーの像に基づいて判断される。そして、当該位置関係を反映して、マーカーに対応付けられたコンテンツの投影画像が生成されるとともに、該投影画像が撮像画像に重畳表示される（例えば、特許文献１や特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１０−５３１０８９号公報
【特許文献２】国際公開２００５−１１９５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
撮像画像にコンテンツの投影画像が重畳表示された合成画像が表示された状態で、ユーザが当該合成画像に対して選択操作等の操作を行うことがある。一例としては、合成画像を表示する表示装置がタッチパネル式ディスプレイである場合には、ユーザはタッチパネルで投影画像が表示した領域内の位置を指定する。例えば、指定された位置に存在するコンテンツが選択状態となり、当該コンテンツの投影画像が拡大表示されたり、当該コンテンツに対応する他のコンテンツがさらに表示される等の処理が実行される。
【０００７】
ここで、表示装置に表示された合成画像に対してユーザが操作を行う際に、ユーザは片手で情報処理装置を支えるとともに、他方の手で操作を行う。なお、情報処理装置は、表示装置およびカメラを備えるコンピュータであって、たとえば、カメラ付きタブレットＰＣなどである。
【０００８】
このように、ユーザは、情報処理装置の保持を片手で行わなければならないため、情報処理端末の保持が不安定になり、カメラがマーカーの一部または全部を捕えられなくなる場合がある。カメラが撮像した撮像画像にマーカーが撮像されなければ、情報処理装置は合成画像を表示することができない。よって、ユーザは、合成画像に対する選択操作等を確認できなくなってしまう。
【０００９】
したがって、ユーザは、マーカーを撮像可能なようにカメラの撮像範囲を考慮しながら一方の手で情報処理装置を保持するとともに、その状態を維持しながら他方の手で操作を実行しなければならなかった。つまり、操作時のユーザに対する負荷が大きかった。
【００１０】
また、ユーザが合成画像上に投影表示されたコンテンツを閲覧する間は、ユーザは、マーカーを撮像可能なようにカメラの撮像範囲を維持する必要があった。したがって、選択操作以外の場合でも、カメラを備える情報処理装置を、マーカーの認識状態を保つように保持することに対して、ユーザの負荷が高かった。
【００１１】
そこで、本発明は、ユーザによる情報処理装置の保持にかかる負担を軽減することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決する為に、ひとつの実施態様において、コンピュータが、撮像装置から取得した入力画像を記憶領域に格納するとともに、新たに取得した第一の入力画像から基準物が認識された場合に、該第一の入力画像に該基準物に応じた表示データを重畳して表示する第一のモードを実行し、前記撮像装置を有する情報処理装置に対する所定の動作が検出された場合に、該所定の動作を検出する前に前記第一のモードにおいて前記記憶領域に格納された第二の入力画像に対して前記表示データを重畳して表示する第二のモードに、前記第一のモードから切り替える処理を実行することを特徴とする。
【発明の効果】
【００１３】
本発明の一観点によれば、ユーザが合成画像に対する操作を行う際、合成画像の表示が継続されるように、情報処理装置（撮像装置）が基準物を撮像可能な姿勢を保持する必要がなくなる。
【図面の簡単な説明】
【００１４】
【図１】図１は、カメラ座標系とマーカー座標系との関係を示す。
【図２】図２は、カメラ座標系とマーカー座標系とにおけるコンテンツＥの例を示す。
【図３】図３は、マーカー座標系からカメラ座標系への変換行列Ｍと、変換行列Ｍ内の回転行列Ｒを示す。
【図４】図４は、回転行列Ｒ１、Ｒ２およびＲ３を示す。
【図５】図５は、合成画像の例である。
【図６】図６は、第一の実施例にかかるシステム構成図である。
【図７】図７は、第一の実施例にかかる情報処理装置の機能ブロック図である。
【図８】図８は、画像記憶部のデータ構成例を示す。
【図９】図９は、テンプレート記憶部のデータ構成例を示す。
【図１０】図１０は、コンテンツ記憶部のデータ構成例を示す。
【図１１】図１１は、第一の実施例にかかるモード制御処理フローを示す。
【図１２】図１２は、第一の実施例にかかる合成画像生成処理の処理フローチャートである。
【図１３】図１３Ａおよび図１３Ｂは、ユーザによる情報処理装置の保持姿勢と負荷の関係を説明するための図である。
【図１４】図１４は、付加コンテンツを説明するための図である。
【図１５】図１５は、第二の実施例にかかる情報処理装置の機能ブロック図である。
【図１６】図１６は、管理情報記憶部のデータ構成例を示す。
【図１７】図１７は、第二の実施例にかかるモード制御処理フローを示す。
【図１８】図１８は、第二の実施例にかかる合成画像生成処理の処理フローチャートである。
【図１９】図１９Ａおよび図１９Ｂは、第三の実施例を説明するための図である。
【図２０】図２０は、第三の実施例にかかる情報処理装置の機能ブロック図である。
【図２１】図２１は、第三の実施例にかかる合成画像生成処理の処理フローチャートである。
【図２２】図２２は、コンテンツ選択処理のフローチャートである。
【図２３】図２３は、仮想カメラの設定に応じた変換を行うための回転行列Ｒ４を示す。
【図２４】図２４は、各実施例の情報処理装置のハードウェア構成例である。
【図２５】図２５は、コンピュータで動作するプログラムの構成例を示す。
【図２６】図２６は、管理装置のハードウェア構成例である。
【発明を実施するための形態】
【００１５】
以下、図面に基づいて各実施例について説明する。なお、以下の各実施例は、処理の内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００１６】
まず、現実空間に対応する３次元の仮想空間上に配置されたコンテンツを、カメラが撮像する撮像画像（入力画像と言う）に、重ねて表示させるＡＲ技術について説明する。コンテンツは、仮想空間上に配置される３次元物体のモデルデータである。また、モデルデータは、オブジェクトと称される。
【００１７】
コンテンツを撮像画像に重畳表示するためには、オブジェクトに対して仮想空間上での配置位置や配置姿勢を設定することで、コンテンツを作成する作業が必要となる。なお、この作業のことを、一般的に、コンテンツのオーサリング作業と称することがある。
【００１８】
オブジェクトは、例えば、複数の点を含むモデルデータである。複数の点を直線や曲線で補間して得られる複数の面ごとに模様（テクスチャ）が設定され、複数の面が合成されることで３次元のモデルが形成される。
【００１９】
コンテンツの仮想空間上での配置は、オブジェクトを構成する各点の座標が現実空間内に存在する基準物を基準に定められる。現実空間においてコンテンツが存在するわけではなく、基準物を基準として仮想空間上に、コンテンツは仮想的に配置される。
【００２０】
コンテンツが仮想空間上に配置される一方で、カメラが撮像した撮像画像内に写り込んだ基準物の見え方（像）に基づいて、現実空間におけるカメラと基準物との位置関係が求められる。現実空間におけるカメラと基準物との位置関係と、仮想空間におけるコンテンツの配置位置（基準物とコンテンツの位置関係）により、仮想空間上でのカメラとコンテンツの位置関係が求められる。そして、仮想空間上でのカメラとコンテンツの位置関係に基づき、仮想空間に配置された仮想カメラがコンテンツを撮像した場合に得られる像が決定されるため、コンテンツを撮像画像に重畳表示することが可能となる。
【００２１】
ここで、仮想カメラは、あくまでも仮想空間に仮想的に配置されるカメラであるので、仮想的に仮想空間をどの位置（視線）からも撮像することが可能である。つまり、仮想カメラの位置は設定により変更することができ、合成画像におけるコンテンツの表示状態を制御することができる。
【００２２】
例えば、仮想カメラの位置を現実空間のカメラと同様に設定する場合は、現実空間に対応する仮想空間において、現実空間におけるカメラと同じ位置からコンテンツを撮像した場合の像が、合成画像に投影される。一方、仮想カメラの位置を実カメラとは独立に設定することで、現実空間におけるカメラとは異なる位置から、仮想空間を撮像した場合の像が、合成画像に投影される。詳細については、後述するが、仮想カメラの設定によっては、コンテンツが配置された仮想空間を俯瞰的に撮像したような合成画像が生成される。
【００２３】
コンテンツの像を生成するための演算について、図１、図２、図３、および図４に基づいてさらに説明する。図１は、カメラ座標系とマーカー座標系との関係を示す。図１に示されるマーカーＭは、基準物の一例である。図１に例示されるマーカーＭは、正方形形状をしており、予めサイズが定められている（例えば１辺の長さが５ｃｍなど）。なお、図１に示されるマーカーＭは正方形形状であるが、複数の視点のうち、いずれの視点から、撮像して得られる像に基づいても、カメラからの相対的な位置および向きが判別可能な形状の他の物体が、基準物に用いられてもよい。
【００２４】
カメラ座標系は、（Ｘｃ，Ｙｃ，Ｚｃ）の３次元で構成され、例えばカメラの焦点を原点（原点Ｏｃ）とする。例えば、カメラ座標系のＸｃ−Ｙｃ平面はカメラの撮像素子面と平行な面であり、Ｚｃ軸は撮像素子面に垂直な軸である。
【００２５】
なお、ここで原点として設定された位置が、仮想カメラの位置となる。つまり、俯瞰的に仮想空間をとらえるような仮想カメラを設定する場合には、カメラ座標系のＸｃ−Ｙｃ平面はカメラの撮像素子面と垂直な面として設定されるとともに、Ｚｃ軸は撮像素子面に平行な軸となる。なお、ＡＲ技術における仮想カメラの設定について、従来の手法が利用される。
【００２６】
マーカー座標系は、（Ｘｍ，Ｙｍ，Ｚｍ）の３次元で構成され、例えばマーカーＭの中心を原点（原点Ｏｍ）とする。例えば、マーカー座標系のＸｍ−Ｙｍ平面はマーカーＭと平行な面であり、Ｚｍ軸はマーカーＭの面と垂直である。原点Ｏｍは、カメラ座標系においては、座標Ｖ１ｃ（Ｘ１ｃ，Ｙ１ｃ，Ｚ１ｃ）で示される。
【００２７】
また、カメラ座標系（Ｘｃ，Ｙｃ，Ｚｃ）に対するマーカー座標系（Ｘｍ，Ｙｍ，Ｚｍ）の回転角は、回転座標Ｇ１ｃ（Ｐ１ｃ，Ｑ１ｃ，Ｒ１ｃ）で示される。Ｐ１ｃはＸｃ軸回りの回転角であり、Ｑ１ｃはＹｃ軸回りの回転角であり、Ｒ１ｃはＺｃ軸回りの回転角である。図１に例示されるマーカー座標系は、Ｙｍ軸回りにのみ回転しているため、Ｐ１ｃおよびＲ１ｃは０である。なお、各々の回転角は、既知の形状を有する基準物が、処理対象となる撮像画像において、どのような像として撮像されているかに基づき、算出される。
【００２８】
図２は、カメラ座標系とマーカー座標系とにおけるコンテンツＥの例を示す。図２に示すコンテンツＥは、吹き出し形状のオブジェクトであり、吹き出し内に「ヒビあり！」というテキストデータを含む。コンテンツＥの吹き出しの先の黒丸は、コンテンツＥの基準点を示す。基準点のマーカー座標系における座標は、Ｖ２ｍ（Ｘ２ｍ，Ｙ２ｍ，Ｚ２ｍ）とする。
【００２９】
さらにコンテンツＥの向きは回転座標Ｇ２ｍ（Ｐ２ｍ，Ｑ２ｍ，Ｒ２ｍ）で定められ、コンテンツＥのサイズは倍率Ｄ（Ｊｘ，Ｊｙ，Ｊｚ）で定められる。なお、コンテンツＥの回転座標Ｇ２ｍは、マーカー座標系に対してコンテンツがどの程度回転した状態で配置されるのかを示す。例えば、Ｇ２ｍが（０，０，０）である場合には、マーカーと平行にコンテンツがＡＲ表示されることとなる。
【００３０】
コンテンツＥを構成する各点の座標は、オブジェクトの雛型である定義データ（ＡＲテンプレート）に定義されている各点の座標が、基準点の座標Ｖ２ｍ、回転座標Ｇ２ｍおよび倍率Ｄに基づいて調整された座標である。なお、ＡＲテンプレートにおいては、基準点の座標を（０，０，０）として、各点の座標が定義される。
【００３１】
その後、当該ＡＲテンプレートを採用したコンテンツの基準点Ｖ２ｍが設定されると、ＡＲテンプレートを構成する各点の座標は、座標Ｖ２ｍに基づいて平行移動される。さらに、ＡＲテンプレートに含まれる各座標は、設定された回転座標Ｇ２ｍに基づいて回転され、倍率Ｄで拡縮される。つまり、図２のコンテンツＥは、ＡＲテンプレートに定義された各点が、基準点の座標Ｖ２ｍ、回転座標Ｇ２ｍおよび倍率Ｄに基づいて調整された点に基づいて構成された状態を示している。
【００３２】
マーカー座標系で座標が設定されたコンテンツＥの各点の座標が、カメラ座標系に変換され、さらにカメラ座標系の座標に基づいて画面内の位置が算出されることにより、コンテンツＥを重畳表示するための像が生成される。
【００３３】
コンテンツＥに含まれる各点のカメラ座標系における座標は、マーカー座標系における各点の座標を、マーカーの原点Ｏｍのカメラ座標系における座標Ｖ１ｃおよび、カメラ座標系に対するマーカー座標系の回転座標Ｇ１ｃに基づき、座標変換（モデル−ビュー変換）することで算出される。例えば、モデル−ビュー変換が、コンテンツＥの基準点Ｖ２ｍに対して行なわれることにより、マーカー座標系で規定された基準点が、カメラ座標系におけるどの点Ｖ２ｃ（Ｘ２ｃ，Ｙ２ｃ，Ｚ２ｃ）に対応するのかが求められる。
【００３４】
図３は、マーカー座標系からカメラ座標系への変換行列Ｍと、変換行列Ｍ内の回転行列Ｒを示す。変換行列Ｍは、４×４の行列である。変換行列Ｍと、マーカー座標系の座標Ｖｍに関する列ベクトル（Ｘｍ，Ｙｍ，Ｚｍ，１）との積により、カメラ座標系の対応する座標Ｖｃに関する列ベクトル（Ｘｃ，Ｙｃ，Ｚｃ，１）が得られる。
【００３５】
すなわち、列ベクトル（Ｘｍ，Ｙｍ，Ｚｍ，１）に座標変換（モデル−ビュー変換）対象のマーカー座標系の点座標を代入して、行列演算を行なうことにより、カメラ座標系の点座標を含む列ベクトル（Ｘｃ，Ｙｃ，Ｚｃ，１）が得られる。
【００３６】
変換行列Ｍの１〜３行目且つ１〜３列の部分行列（回転行列Ｒ）がマーカー座標系の座標に作用することにより、マーカー座標系の向きとカメラ座標系との向きを合わせるための回転操作が行なわれる。変換行列Ｍの１〜３行目且つ４列目の部分行列が作用することにより、マーカー座標系の向きとカメラ座標系との位置を合わせるための並進操作が行なわれる。
【００３７】
図４は、回転行列Ｒ１、Ｒ２およびＲ３を示す。なお、図３に示す回転行列Ｒは、回転行列Ｒ１、Ｒ２およびＲ３の積（Ｒ１・Ｒ２・Ｒ３）により算出される。また、回転行列Ｒ１は、Ｘｃ軸に対するＸｍ軸の回転を示す。回転行列Ｒ２は、Ｙｃ軸に対するＹｍ軸の回転を示す。回転行列Ｒ３は、Ｚｃ軸に対するＺｍ軸の回転を示す。
【００３８】
回転行列Ｒ１、Ｒ２およびＲ３は、撮像画像内の基準物の像に基づき、生成される。つまり、回転角Ｐ１ｃ、Ｑ１ｃ、Ｒ１ｃは、先に述べたとおり、既知の形状を有する基準物が、処理対象となる撮像画像において、どのような像として撮像されているかに基づき、算出される。算出された、回転角Ｐ１ｃ、Ｑ１ｃ、Ｒ１ｃに基づき、各回転行列Ｒ１、Ｒ２およびＲ３は生成される。モデル−ビュー変換により得られた座標（Ｘｃ，Ｙｃ，Ｚｃ）は、仮想空間に仮想カメラが存在するとした場合について、コンテンツＥの仮想カメラからの相対的な位置を示す。
【００３９】
ここで、仮想空間を俯瞰的に撮像する仮想カメラが設定された場合は、撮像画像内の基準物の像に基づき、回転角Ｐ１ｃ、Ｑ１ｃ、Ｒ１ｃが算出されたのちに、各回転角Ｐ１ｃの値に−９０（度）が加算される。そして、−９０が加算されたＰ１ｃの値を用いて、回転行列Ｒが生成される。よって、回転行列Ｒに基づき得られる座標（Ｘｃ，Ｙｃ，Ｚｃ）は、仮想カメラの設定が反映された座標値となる。ただし、図１の例では、カメラ座標の原点を、実空間のカメラの焦点とし、さらに、仮想カメラを当該実空間のカメラと同様の位置に設定しているため、回転行列Ｒに基づき得られる座標（Ｘｃ，Ｙｃ，Ｚｃ）は、実空間のカメラの焦点からの相対位置となる。
【００４０】
つぎに、コンテンツＥの各点のカメラ座標系の座標は、スクリーン座標系に変換される。スクリーン座標系は、（Ｘｓ，Ｙｓ）の２次元で構成される。また、スクリーン座標系（Ｘｓ，Ｙｓ）は、例えばカメラの撮像処理により得られる撮像画像の中心を原点（原点Ｏｓ）とする。この座標変換（透視変換）により得られる各点のスクリーン座標系の座標に基づいて、コンテンツＥを撮像画像に重畳表示する為の像が生成される。
【００４１】
カメラ座標系からスクリーン座標系への座標変換（透視変換）は、例えば、カメラの焦点距離ｆに基づいて行なわれる。カメラ座標系における座標（Ｘｃ，Ｙｃ，Ｚｃ）に対応するスクリーン座標系の座標のＸｓ座標は、以下の式１で求められる。また、カメラ座標系における座標（Ｘｃ，Ｙｃ，Ｚｃ）に対応するスクリーン座標系の座標のＹｓ座標は、以下の式２で求められる。
Ｘｓ＝ｆ・Ｘｃ／Ｚｃ    （式１）
Ｙｓ＝ｆ・Ｙｃ／Ｚｃ    （式２）
コンテンツＥを構成する各点の座標（カメラ座標系）が透視変換されて得られる座標（スクリーン座標系）に基づいて、コンテンツＥの像が生成される。コンテンツＥは、コンテンツＥを構成する複数の点を補間して得られる面にテクスチャをマッピングすることにより生成される。コンテンツＥの元になるＡＲテンプレートには、どの点を補間して面を形成するか、どの面にどのテクスチャをマッピングするかが定義される。
【００４２】
上述のモデル−ビュー変換および透視変換により、マーカー座標系の座標に対応する撮像画像上の座標が算出され、その座標を利用することで、カメラの視点に応じたコンテンツＥの像が生成される。なお、生成されるコンテンツＥの像は、コンテンツＥの投影画像と呼ばれる。コンテンツＥの投影画像が撮像画像に合成されることで、ユーザに提供される視覚的な情報が拡張される。
【００４３】
また、他の態様では、透過型ディスプレイにコンテンツＥの投影画像が表示される。この態様においても、ユーザがディスプレイを透過して得られる現実空間の像と、コンテンツの投影画像とが整合するので、ユーザに提供される視覚的な情報が拡張される。
【００４４】
図５は、合成画像の例である。合成画像１０は、パイプ１１およびマーカーＭが存在する現実空間を撮像した入力画像に対して、コンテンツＥの投影画像が重畳表示されている。コンテンツＥは、パイプＨ上のヒビを示して、「ヒビあり！」という情報を表示する。つまり、情報処理装置１のユーザは、マーカーＭを撮像することで、合成画像１１を介して、現実には存在しないコンテンツを閲覧することができ、ヒビの存在を容易に把握することができる。
【００４５】
以上、ＡＲコンテンツが投影表示された合成画像の生成について説明した。このように、情報処理装置は、従来、カメラから順次入力画像を取得するとともに、処理対象の入力画像から基準物（マーカー）を認識した場合に、入力画像上にコンテンツの投影画像が重畳表示された合成画像を生成していた。よって、ユーザは合成画像に対して何らかの操作を実行する際、合成画像の表示が継続されるように、情報処理装置におけるマーカー認識を継続可能なように、情報処理装置を保持することが強いられていた。
【００４６】
そこで、本発明にかかわる情報処理装置は、所定のタイミングで、第一のモードと第二のモードとを切り替える。なお、第一のモードは、撮像装置から順次取得した複数の画像を記憶領域に格納するとともに、新たに取得した第一の画像から基準物が認識された場合に、該第一の画像に、該基準物に応じた表示データを重畳して表示するモードである。一方、第二のモードは、自装置に対する特定の動作が検出された場合に、該特定の動作を検出する前に前記記憶部に格納された前記第二の画像を取得するとともに、該第二の画像に対して前記表示データを重畳して表示するモードである。つまり、特定の動作が検出された場合には、順次取得される画像ではなく、過去の特定の画像を処理対象にＡＲ表示が実行される。
【００４７】
［第一の実施例］
まず、第一の実施例に係る詳細な処理および情報処理装置等の構成について説明する。図６は、第一の実施例にかかるシステム構成図である。システムは、通信端末１−１および通信端末１−２、管理装置２を含む。なお、以下、通信端末１−１および通信端末１−２を総称して、情報処理装置１とする。
【００４８】
情報処理装置１は、例えば、カメラを有する、タブレットＰＣやスマートフォンなどのコンピュータである。たとえば、情報処理装置１は、点検作業を行う作業者により携帯される。情報処理装置１は、第一のモードと第二のモードを実行する。さらに、情報処理装置１は、ネットワークＮを介して、管理装置２と通信する。ネットワークＮは、例えば、インターネットである。
【００４９】
管理装置２は、例えば、サーバコンピュータであって、複数の情報処理装置１を管理する。管理装置２は、合成画像を生成するために必要な情報（コンテンツ情報、およびテンプレート情報）を記憶するとともに、必要に応じて、情報処理装置１に、これら情報を提供する。詳細については、後述する。
【００５０】
情報処理装置１は、入力画像から基準物を認識すると、合成画像を生成するために必要な情報に基づき、合成画像を生成するとともに、ディスプレイに表示する。さらに、基準物の認識した入力画像は、少なくとも一定時間、情報処理装置１のバッファ（後述の画像記憶部）に保持される。そして、特定の動作が検出された場合に、第一のモードから第二のモードへ切り替える。第二のモードにおいては、情報処理装置１は、順次取得される最新の画像ではなく、過去にバッファに記憶された画像を用いて合成画像を生成する。
【００５１】
本実施例においては、特定の動作は、情報処理装置１を保持するユーザが、情報処理装置１を傾ける動作等である。なお、特定の動作を、情報処理装置１で検知するための具体的手法については、後述する。
【００５２】
このように、たとえば、ユーザはカメラでマーカーを撮像することで、情報処理装置１は第一のモードにおいて合成画像を生成するとともに表示する。ユーザは、合成画像を長時間閲覧したい場合や、合成画像に対して操作を行いたい場合には、情報処理装置１を傾ける。情報処理装置１が傾けられた場合には、情報処理装置１は第一のモードから第二のモードへ切り替えを行うため、最新の画像から基準物が入力画像から認識されなくなったとしても、過去の画像に基づく合成画像を表示することができる。
【００５３】
次に、情報処理装置１の機能的構成について説明する。図７は、第一の実施例にかかる情報処理装置の機能ブロック図である。情報処理装置１は、制御部１００、通信部１０１、撮像部１０２、計測部１０３、表示部１０４、記憶部１０９を含む。
【００５４】
制御部１００は、情報処理装置１全体の各種処理を制御する。通信部１０１は、他のコンピュータと通信を行う。例えば、通信部１０１は、合成画像を生成する為に、コンテンツ情報およびテンプレート情報を、管理装置２から受信する。なお、コンテンツ情報およびテンプレート情報の詳細については、後述する。
【００５５】
撮像部１０２は、一定のフレーム間隔で画像を撮像するとともに、制御部１００へ入力画像として、撮像した画像を入力する。たとえば、撮像部１０２は、カメラである。
【００５６】
計測部１０３は、自装置に対して与えられた回転量にかかわる情報を計測する。たとえば、計測部１０３は、加速度センサやジャイロセンサである。そして、計測部１０３は、加速度や角速度を、回転量にかかわる情報として計測する。なお、計測値（加速度や角速度）は、検出部１０５へ出力される。
【００５７】
表示部１０４は、合成画像やその他の画像を表示する。表示部１０４は、例えば、タッチパネル式ディスプレイである。記憶部１０９は、各種処理に必要な情報を記憶する。なお、各種処理に必要な用法については、後述する。
【００５８】
まず、制御部１００について説明する。制御部１００は、さらに、検出部１０５、取得部１０６、認識部１０７、生成部１０８を有する。検出部１０５は、計測部１０３から出力された計測値に基づき、情報処理装置１に対する特定の動作を検出する。また、検出部１０５は、検出結果に基づき、情報処理装置１が実行するモードを制御する。
【００５９】
具体的には、検出部１０５は、計測値に基づき、所定時間（Ｔ秒）内の回転量を計算する。なお、ここでは、加速度や角速度から、所定時間内の回転量を求めるが、加速度や角速度を閾値と比較することとしてもよい。回転量が閾値Ｔｈ以上である場合、検出部１０５は、情報処理装置１に対する回転動作を検出する。なお、Ｔは、例えば１（秒）であって、Ｔｈは、例えば６０°である。
【００６０】
特定の動作を検出するまでは、検出部１０５は、第一のモードの実行を制御する。一方、特定の動作が検出された場合には、検出部１０５は、第二のモードの実行を制御する。第一のモードは、新たに撮像された画像を処理の対象として、合成画像を生成する処理である。なお、撮像部１０２が新たに撮像された画像とは、画像記憶部１１０（上記バッファ）が格納する画像のうち、最も直近で格納された画像である。
【００６１】
一方、第二のモードは、画像記憶部１１０が記憶する画像のうち、特定の動作が検出される前に撮像された画像を処理の対象として、合成画像を生成する処理である。例えば、所定時間（Ｔ秒）前に撮像された画像が処理対象とされる。なお、処理対象の画像は、Ｔ秒よりもさらに前の画像であってもよい。また、画像記憶部１１０が、直近Ｔ秒間の間に撮影された画像を保持する構成である場合には、第二のモードにおいて、画像記憶部１１０における最も古い画像が処理対象とされる。
【００６２】
ユーザは、まず、基準物を含む画像を撮像することで、合成画像を閲覧する。そして、ユーザが合成画像に対して選択操作等の操作を行いたいと考える場合、情報処理装置１を傾ける。例えばユーザは、情報処理装置１に対して１秒間に６０°以上の回転量を与える。したがって、特定の動作を検出した時点からＴ秒前に撮像された画像は、基準物を含む可能性が高い。言い換えると、特定の動作を検出した時点からＴ秒前に撮像された画像は、Ｔ秒前に実行されていた第一のモードにおいて、合成画像生成処理の処理対象となった画像である。
【００６３】
さらに、検出部１０５は、第二のモードを設定した場合には、画像記憶部１１０（上記バッファ）への画像データの書き込みを停止する。例えば、第一のモードが設定されている間は、制御部１００は、撮像部１０２から順次画像を取得するたびに、画像記憶部１１０へ画像データを保存する。ただし、一定の間隔で、保存する画像データを間引いてもよい。また、画像記憶部１１０が、所定枚数の画像を保持する構成である場合には、最も古い画像データが最も新しい画像データに更新される。
【００６４】
一方、検出部１０５が、第二のモードを設定した場合には、画像記憶部１１０への画像データの保存を停止する。これは、第二のモードにおいては、過去の画像を処理対象とするが、処理対象の画像を、画像記憶部１１０に保持しておくためである。なお、検出部１０５は、撮像部１０２による撮像自体を停止することとしてもよい。
【００６５】
つぎに、取得部１０６は、合成画像生成処理の処理対象となる画像を取得する。例えば、取得部１０６は、第一のモードが設定されている場合、画像記憶部１１０に記憶された画像のうち、最新の画像を取得する。一方、取得部１０６は、第二のモードが設定されている場合、画像記憶部１１０に記憶された画像のうち、最も古い画像を取得する。
【００６６】
次に、認識部１０７は、処理対象の画像から基準物を認識する。本実施例においては、認識部１０７は、マーカーを認識する。例えば、認識部１０７は、マーカーの形状を既定したテンプレートを用い、テンプレートマッチングを行うことでマーカーを認識する。マーカーの認識方法として、他の既知の物体認識方法が適用されてもよい。
【００６７】
さらに、認識部１０７は、基準物が画像に含まれることを認識すると、基準物を識別する識別情報を取得する。例えば、マーカーＩＤが取得される。なお、マーカーＩＤは、マーカーを識別する識別情報である。例えば、基準物がマーカーである場合には、二次元バーコードと同様に、白と黒の配置から、一意のマーカーＩＤが取得される。マーカーＩＤを取得する方法として、他の既知の取得方法が適用されてもよい。
【００６８】
また、認識部１０７は、基準物を認識した場合、画像における基準物の像に基づいて、基準物の位置座標および回転座標を算出する。なお、基準物の位置座標および回転座標は、カメラ座標系での値である。さらに、認識部１０７は、基準物の位置座標および回転座標に基づき、変換行列Ｍを生成する。
【００６９】
生成部１０８は、処理対象の画像を用いて、合成画像を生成する。なお、合成画像の生成において、認識部１０７が生成した変換行列Ｍ、テンプレート情報、およびコンテンツ情報が利用される。生成部１０８は、生成した合成画像を、表示部１０４を制御することで、表示する。
【００７０】
次に、記憶部１０９について説明する。記憶部１０９は、さらに、画像記憶部１１０、テンプレート記憶部１１１、コンテンツ記憶部１１２を有する。画像記憶部１１０は、少なくとも、第一のモードが設定されている間の直近Ｔ秒間に撮像された画像について、画像データを記憶する。
【００７１】
図８は、画像記憶部のデータ構成例を示す。なお、撮像部１０２のフレームレートが２０ｆｐｓであって、４フレームごとに画像記憶部１１０への画像データの格納が実行されることとする。また、検出部１０５は、１秒間（Ｔ秒間）の回転量に基づき、特定の動作を検出するものとする。
【００７２】
画像記憶部１１０は、最新の画像（Ｉｍａｇｅ１）、０．２秒前の画像（Ｉｍａｇｅ２）、０．４秒前の画像（Ｉｍａｇｅ３）、０．６秒前の画像（Ｉｍａｇｅ４）、０．８秒前の画像（Ｉｍａｇｅ５）、１．０秒前（Ｉｍａｇｅ６）の画像を記憶する。また、画像記憶部１１０は、１．２秒前の画像（Ｉｍａｇｅ７）を、予備の画像として保持してもよい。
【００７３】
図８のように、画像記憶部１１０は、予め決められた枚数分の画像を記憶する領域を有する。図８の例では、最新からＴ秒前の６枚分の画像データ、および、予備の画像データを合わせて、７枚分の画像データが、保持される。なお、画像記憶部１１０は、例えば、リングバッファにより構成される。撮像部１０２から、新たな画像が入力されると、４フレームごとに、最も古い画像のデータが、新しい画像のデータに書き換えられる。
【００７４】
第一のモードが実行されている間は、最新の画像（Ｉｍａｇｅ１）が書き換えられるとともに、書き換えられたＩｍａｇｅ１が処理の対象となる。一方、第二のモードにおいては、画像記憶部１１０への画像の書き込みが停止されるため、第二のモードに設定が変更された時点でＴ秒前に撮像されたＩｍａｇｅ６が書き換わることなく、第二のモードが設定されている間は、同一のＩｍａｇｅ６が処理対象とされる。
【００７５】
図９は、テンプレート記憶部のデータ構成例を示す。テンプレート記憶部１１１は、テンプレート情報を記憶する。なお、テンプレート情報は、オブジェクトとして適用される各テンプレートを定義するための情報を格納する。テンプレート情報は、テンプレートの識別情報（テンプレートＩＤ）、テンプレートを構成する各頂点の座標情報Ｔ２１、およびテンプレートを構成する各面の構成情報Ｔ２２（頂点順序およびテクスチャＩＤの指定）を含む。
【００７６】
頂点順序は、面を構成する頂点の順序を示す。テクスチャＩＤは、面にマッピングされるテクスチャの識別情報を示す。テンプレートの基準点は例えば０番目の頂点である。テンプレート情報テーブルに示される情報により、３次元モデルの形状および模様が定められる。
【００７７】
図１０は、コンテンツ記憶部のデータ構成例を示す。コンテンツ記憶部１１２は、コンテンツに関するコンテンツ情報を格納する。なお、コンテンツは、オブジェクトに対して配置情報等が設定された情報である。
【００７８】
コンテンツ情報は、コンテンツのコンテンツＩＤ、マーカー座標系における基準点の位置座標（Ｘｍ，Ｙｍ，Ｚｍ）、マーカー座標系における回転座標（Ｐｍ，Ｑｍ，Ｒｍ）、ＡＲテンプレートを基準とする倍率Ｄ（Ｊｘ，Ｊｙ，Ｊｚ）、ＡＲテンプレートのテンプレートＩＤ、マーカーＩＤおよび追加情報を含む。なお、位置座標および回転座標は、同じレコードに格納されたマーカーＩＤに示されるマーカーを基準とするマーカー座標系での座標である。また、追加情報は、コンテンツＥに追加される情報である。追加情報として、テキストや、Ｗｅｂページやファイルへのアクセス情報などが用いられる。
【００７９】
例えば、図１０に示されたコンテンツＩＤが「Ｃ１」のコンテンツは、ＡＲテンプレート「Ｔ１」に定義される各頂点座標が、Ｘｍ、Ｙｍ、Ｚｍ方向のそれぞれに拡縮され、回転座標（Ｐｍ１，Ｑｍ１，Ｒｍ１）で回転され、位置座標（Ｘｍ１、Ｙｍ１、Ｚｍ１）に応じて並進されて得られる各頂点により構成される。さらにコンテンツＥを構成する面に追加情報がマッピングされる。
【００８０】
例えば、図１０の例では、コンテンツＩＤ「Ｃ１」に対して、追加情報「いずれかの操作を行って、マニュアルを呼び出してください。上フリック：作業Ａマニュアル、下フリック：作業Ｂマニュアル」が対応付けられている。これは、ユーザに対する指示内容を示す。例えば、ユーザは、追加情報を含むコンテンツを閲覧することで、次の作業内容を把握することができる。
【００８１】
次に、本実施例に関する各種処理の流れについて説明する。図１１は、第一の実施例にかかるモード制御処理フローを示す。モード制御プログラムは、制御部１００により実行されるモード制御処理の手順が定義されたプログラムである。まず、制御部１００は、モード制御プログラムが起動されると、前処理を実施する。前処理においては、計測部１０３を起動させるとともに、モードを第一のモードに設定する。
【００８２】
そして、検出部１０５は、計測部１０３から計測値を取得する（Ｏｐ．１１）。検出部１０５は、計測値に基づき、Ｔ秒間の回転量を演算するとともに、回転量が閾値Ｔｈ以上であるかを判定する（Ｏｐ．１３）。回転量が閾値Ｔｈ以上である場合（Ｏｐ．１３Ｙｅｓ）、検出部１０５は、モードを、第一のモードから第二のモードへ変更する（ＯＰ．２１）。また、検出部１０５は、画像記憶部１１０への画像データの書き込みを停止する（Ｏｐ．２３）。
【００８３】
一方、回転量が閾値Ｔｈよりも小さい場合には（Ｏｐ．１３Ｎｏ）、検出部１０５は、現在設定されているモードが、第二のモードであるかを判定する（Ｏｐ．１５）。第二のモードが設定されていない場合は（Ｏｐ．１５Ｎｏ）、検出部１０５はそのまま処理を終了する。
【００８４】
一方、第二のモードが設定されている場合には（Ｏｐ．１５Ｙｅｓ）、検出部１０５は、第二のモードの解除が入力されたか否かを判定する（Ｏｐ．１７）。例えば、ユーザにより、第二のモードを解除する旨の入力がなされた場合や、Ｏｐ．１３と同様に、Ｔ秒間に閾値Ｔｈ以上の回転量を計測した場合には、第二のモードの解除が入力されたことが判定される。
【００８５】
第二のモードの解除が入力された場合には（Ｏｐ．１７Ｙｅｓ）、検出部１０５は、第二のモードを解除して、第一のモードを設定する（Ｏｐ．１９）。そして、検出部１０５は、画像記憶部１１０への画像の書き込みを再開する（Ｏｐ．２０）。一方、第二のモードの解除が入力されていない場合には（Ｏｐ．１７Ｎｏ）、検出部１０５は、そのまま処理を終了する。つまり、第二のモードが設定されたのちは、第二のモードが解除されるまで、第二のモードが継続される。
【００８６】
次に、モード制御処理と並行して行われる合成画像生成処理について、説明する。図１２は、第一の実施例にかかる合成画像生成処理の処理フローチャートである。まず、制御部１００は、合成画像生成プログラムが起動されると、前処理を行なう。前処理においては、テンプレート情報やコンテンツ情報が管理装置２から取得される。さらに、制御部１００は、前処理において、ＡＲ表示モードの起動指示を行なう。なお、本実施例においては、仮想カメラとして、現実空間に存在するカメラと同じ視線を有するカメラが設定される。
【００８７】
また、制御部１００は、前処理において、撮像部１０２に所定時間間隔での撮像を開始させる。なお、制御部１００は、撮像部１０２から取得した画像を、画像記憶部１１０へ格納する。ただし、制御部１００は、第二のモードの実行に伴い、画像の書き込みが停止されている場合には、画像記憶部１１０への画像の格納を行わない。
【００８８】
まず、取得部１０６は、現在設定されているモードが第一のモードであるのか判定する（Ｏｐ．３１）。そして、第一のモードが設定されている場合には（Ｏｐ．３１Ｙｅｓ）、取得部１０６は、画像記憶部１１０から、最新の画像を取得する（Ｏｐ．３３）。一方、第一のモードが設定されていない場合、すなわち、第二のモードが設定されている場合には（Ｏｐ．３１Ｎｏ）、取得部１０６は、画像記憶部１１０から、特定の動作が検知された時点からＴ秒前の画像を取得する（Ｏｐ．３５）。また、Ｏｐ．３３またはＯｐ．３５にて取得された画像が、以降の処理における処理対象の画像となる。
【００８９】
次に、認識部１０７は、処理対象の画像から、マーカーを認識可能か判定する（Ｏｐ．３７）。例えば、認識部１０７は、マーカーの形状を既定したテンプレートを用い、テンプレートマッチングを行うことでマーカーを認識する。
【００９０】
また、マーカーが認識された場合には、認識部１０７は、Ｏｐ．３７において、マーカーのマーカーＩＤの読みとりを行なう。マーカーＩＤの読みとりは、例えば、マーカーに該当する画像領域内の輝度の情報に基づいて行なわれる。例えば、マーカーが四角形状である場合、マーカーとして認識された四角形の画像領域を分割した各領域について、輝度が所定値以上の領域を「１」とし、輝度が所定値未満の領域を「０」として、各領域を所定の順序で、「１」または「０」のいずれであるかを判定し、判定して得られた情報の列をマーカーＩＤとする。
【００９１】
また、例えば、輝度が所定値以上の領域と所定値未満の領域の四角形枠内での配置をパターン化しておき、パターンに対応するマーカーＩＤを用いることとしてもよい。さらに、マーカーＩＤとして採用される数値範囲が予め定められており、読みとったマーカーＩＤがその数値範囲内でない場合には、マーカーＩＤが読みとれなかったと判定することとしてもよい。
【００９２】
認識部１０７がマーカーを認識しなかった場合（Ｏｐ．３７Ｎｏ）には、制御部１００は、合成画像生成処理の終了が指示されたかを判定する（Ｏｐ．４５）。なお、第二のモードが設定された状態で、認識部１０７がマーカーを認識しなかった場合（Ｏｐ．３７Ｎｏ）は、画像記憶部１１０に記憶された他の画像に対して、マーカーの認識可否を判定してもよい。例えば、取得部１０６は、特定の動作を検出した時点からＴ秒よりもさらに前の画像を、処理対象として取得してもよい。そして、認識部１０７は、当該処理対象の画像に対して、マーカーの認識処理を行ってもよい。
【００９３】
処理の終了が指示されていなければ（Ｏｐ．４５Ｎｏ）、制御部１００は、Ｏｐ．３１へ戻る。処理の終了が指示されている場合は（Ｏｐ．４５Ｙｅｓ）、一連の合成画像生成処理を終了する。
【００９４】
一方、認識部１０７が、マーカーを認識した場合には（Ｏｐ．３７Ｙｅｓ）、認識部１０７は、処理対象の画像におけるマーカーの像に基づき、マーカーの位置座標および回転座標を算出する（Ｏｐ．３９）。さらに、認識部１０７は、Ｏｐ．３９において、マーカーの位置座標および回転座標に基づき、変換行列Ｍを生成する。
【００９５】
次に、生成部１０８は、処理対象の画像、認識された基準物に対応するコンテンツ情報、テンプレート情報、変換行列Ｍを用いて、合成画像を生成する（Ｏｐ．４１）。そして、表示部１０４は、生成部１０８の制御の下、合成画像を表示する（Ｏｐ．４３）。そして、制御部１００は、Ｏｐ．４５を実行する。
【００９６】
第一のモードが設定されている間は、合成画像は、最新の画像に対して、コンテンツの投影画像が重畳表示された画像である。一方、第二のモードが設定されている間は、合成画像は、Ｔ秒前の画像に対して、コンテンツの投影画像が重畳表示された画像である。つまり、基準物を含む可能性が高いＴ秒前の画像に基づく合成画像が、表示部１０４に表示される。
【００９７】
以上のように、本実施例によれば、情報処理装置１は、ユーザが特定の動作を実行したことを検知した場合、ユーザが特定の動作を行う前の撮像画像に対してコンテンツの重畳表示を行う。よって、最新の画像に対するＡＲ表示（第一のモード）と、過去の画像に対するＡＲ表示（第二のモード）とが切り替えられるとともに、第二のモードが解除されない限り、過去の画像に対するＡＲ表示が継続される。よって、ユーザは、第二のモードの下、継続されているＡＲ表示に対して、種々の操作を行うことができる。
【００９８】
また、本実施例においては、ユーザが情報処理装置１を回転させる動作を契機に、第一のモードと第二のモードとが切り替えられる。情報処理装置１はディスプレイ（表示部１０４）の裏側にカメラが配置されていることが多い。よって、情報処理装置１を回転させる動作を契機にすることで、動作後、ユーザは、合成画像が表示されたディスプレイに対する操作を容易に実施することができる。
【００９９】
図１３Ａおよび図１３Ｂは、ユーザによる情報処理装置の保持姿勢と負荷の関係を説明するための図である。なお、図１３Ａおよび図１３Ｂは、壁にマーカーＭが添付されている状態を示す。そして、図１３Ａにおいて、ユーザは、情報処理装置１のディスプレイ裏面に配置されたカメラで、マーカーＭを撮像している。そして、マーカーＭに対応するコンテンツが重畳表示された合成画像が、情報処理装置１のディスプレイに表示される。なお、合成画像には、マーカーＭの像Ｍ’も含まれる。
【０１００】
次に、図１３Ｂは、ユーザが、情報処理装置１を、図１３Ａの状態から６０°以上、回転させた場合を示す。すると、情報処理装置１のカメラは、マーカーＭを撮像することはできなくなる。その一方、ユーザは、図１３Ｂにおける左手でより安定的に情報処理装置１を支えることができる。したがって、ユーザは、ディスプレイに対して、右手で操作を行うことが容易となる。従来は、図１３Ｂの状態であれば、合成画像の表示が行われなかったため、ユーザは図１３Ａの状態を意識的に継続せざるを得なかった。
【０１０１】
本実施例においては、ユーザは、情報処理装置１によりマーカーＭを撮像したのち、図１３Ｂのように情報処理装置１を回転させることをトリガーに、過去の画像に対するＡＲ表示に切り替えられる。つまり、ユーザが、図１３Ａのように、情報処理装置１を支持する負担が大きい状態から、図１３Ｂのように、負担が小さい状態へ変化させたとしても、情報処理装置１は、合成画像の表示を継続することができる。
【０１０２】
［第二の実施例］
第一の実施例においては、特定の動作が検出された場合に、第一のモードと第二のモードとが切り替える情報処理装置１について説明した。第二の実施例は、第二のモードに切り替えられたときに、コンテンツに関連する付加コンテンツを、管理装置からダウンロードする。なお、第二の実施例にかかる情報処理装置は、情報処理装置３と称する。
【０１０３】
図１４は、付加コンテンツを説明するための図である。合成画像２０は、マーカー２２およびバルブ２６を含む現実空間を撮像した画像に、コンテンツ２４が投影された画像である。コンテンツ２４は、「いずれかの操作を行って、マニュアルを呼び出してください。上フリック：作業Ａマニュアル、下フリック：作業Ｂマニュアル」というテキスト情報を含む。情報処理装置３は、ユーザによるフリック操作を検知することで、操作に応じて、各作業のマニュアルを、付加コンテンツとして新たに表示する。
【０１０４】
ここで、付加コンテンツのデータを取得するタイミングについて、説明する。なお、付加コンテンツは、管理装置２により管理される。また、付加コンテンツは、マニュアルや動画、音声等、データ量の大きなデータとなることも多い。よって、コンテンツ２４とともに一度に表示するのではなく、ユーザがフリック操作等を行うことで、付加コンテンツが表示される。つまり、コンテンツ２４と付加コンテンツとが段階的に表示される。
【０１０５】
例えば、テンプレート情報、コンテンツ情報と同様に、付加コンテンツのデータも、予め管理装置２から取得されることが考えられる。しかし、この場合、ユーザが呼び出す可能性が低い付加データも、予め管理装置２から取得することとなるため、特にデータ量が大きい付加データの場合には、ネットワークＮに対する通信負荷が高くなる。
【０１０６】
そこで、本実施例においては、情報処理装置３は、ユーザによる特定の動作を検出したタイミングで、付加コンテンツのデータを管理装置２から取得する。例えば、ユーザが、情報処理装置３を、一定時間内に閾値以上の回転量で回転させた場合に、情報処理装置３は、管理装置２に対して、付加コンテンツの送信を要求する。なお、第一の実施例同様、モードの切り替えも実行される。
【０１０７】
付加コンテンツは、コンテンツ（合成画像）に対するユーザの操作に応じて呼び出される。よって、ユーザが、第一のモードから第二のモードへ切り替えるために、特定の動作を行ったということは、その後、コンテンツに対する操作に応じて、付加コンテンツが呼び出される可能性が高いことが推測される。
【０１０８】
よって、情報処理装置３は、特定の動作を検出した場合であって、かつ、合成画像に含まれるコンテンツに対して付加コンテンツが存在する場合には、管理装置２から付加コンテンツを取得する。テンプレート情報やコンテンツ情報と同様に予め付加コンテンツを管理装置２から取得する場合と比較して、ネットワークＮの負荷が増大することを防ぐことができる。
【０１０９】
図１５は、第二の実施例にかかる情報処理装置の機能ブロック図である。情報処理装置３は、通信部１０１、撮像部１０２、計測部１０３、表示部１０４、制御部３００、記憶部３０４を含む。なお、第一の実施例にかかる情報処理装置１と同様の処理を行う処理部については、同一の符号を付し、説明を省略する。
【０１１０】
制御部３００は、検出部３０１、取得部１０６、認識部３０２、生成部３０３を含む。検出部３０１は、第一の実施例と同様に、特定の動作を検出するとともに、特定の動作が検出された場合に、第一の実施例と同様に、第一のモードから第二のモードへ切り替える。さらに、特定の動作が検出された場合であって、合成画像内のコンテンツに付加コンテンツが対応付けられている場合には、検出部３０１は、通信部１０１を制御して、付加コンテンツの要求を行う。なお、コンテンツと、付加コンテンツの対応関係は、管理情報によって定義される。
【０１１１】
認識部３０２は、第一の実施例と同様、処理対象の画像から基準物を認識する。ただし、第二のモードが設定されている場合であって、基準物を画像から認識した場合には、検出部３０１に認識した基準物の識別情報（マーカーＩＤ）を出力する。
【０１１２】
生成部３０３は、第一の実施例と同様、処理対象の画像に基づき、合成画像を生成する。さらに、合成画像表示後、ユーザによる操作に応じて、表示部１０４を制御して、付加コンテンツを表示する。例えば、図１４における合成画像２０が表示された後、ユーザにより下フリックが入力された場合には、生成部３０３は、表示部１０４を制御して、作業Ｂマニュアルを表示する。
【０１１３】
記憶部３０４は、画像記憶部１１０、テンプレート記憶部１１１、コンテンツ記憶部１１２、管理情報記憶部３０５を含む。管理情報記憶部３０５は、管理情報を記憶する。管理情報は、コンテンツに対応する付加コンテンツおよび付加コンテンツを呼び出すための操作を管理する情報である。
【０１１４】
管理情報記憶部３０５は、コンテンツＩＤ、操作種別、付加コンテンツＩＤ、アクセス先等の情報を対応付けて記憶する。
【０１１５】
図１６は、管理情報記憶部３０５のデータ構成例を示す。例えば、コンテンツＩＤ「Ｃ１」のコンテンツについては、上フリック操作が入力された場合に、付加コンテンツＩＤ「ＳＣ１」が表示されることが規定されている。さらに、付加コンテンツＩＤ「ＳＣ１」は、アクセス先「ＵＲＬ１」から取得されることが規定されている。なお、アクセス先は、管理装置２が付加コンテンツＩＤ「ＳＣ１」に対応するデータを格納する場所を示す情報である。
【０１１６】
例えば、検出部３０１は特定の動作を検出した場合、第二のモードに切り替えを行う。そして、第二のモードにおいては、取得部１０６は、特定の動作が検出された時点からＴ秒前の画像を画像記憶部１１０から取得する。そして、認識部３０２は、Ｔ秒前の画像からマーカーを認識すると、認識したマーカーのマーカーＩＤを、検出部３０１へ出力する。
【０１１７】
検出部３０１は、コンテンツ記憶部１１２から、マーカーＩＤに対応するコンテンツＩＤを取得するとともに、管理情報記憶部３０５を参照し、通信部１０１を制御して、コンテンツＩＤに対応するアクセス先へアクセスする。つまり、検出部３０１は、付加コンテンツの送信要求を、管理装置２に対して行う。このように、第二のモードにおいて認識された基準物について、付加コンテンツが設定されている場合には、第二のモードへの切り替えが行われた後に、付加コンテンツが管理装置２より取得される。
【０１１８】
次に、本実施例に関する各種処理の流れについて説明する。図１７は、第二の実施例にかかるモード制御処理フローを示す。モード制御プログラムは、制御部３００により実行されるモード制御処理の手順が定義されたプログラムである。なお、第一の実施例にかかるモード制御処理と同様の処理については、同一の符号を付すとともに、説明を簡略化する。
【０１１９】
まず、制御部３００は、モード制御プログラムが起動されると、第一の実施例と同様の前処理を実施する。そして、検出部３０１は、計測部１０３から計測値を取得する（Ｏｐ．１１）。検出部３０１は、計測値に基づき、回転量が閾値Ｔｈ以上であるかを判定する（Ｏｐ．１３）。回転量が閾値Ｔｈ以上である場合（Ｏｐ．１３Ｙｅｓ）、検出部３０１は、モードを、第一のモードから第二のモードへ変更する（ＯＰ．２１）。また、検出部３０１は、画像記憶部１１０への画像データの書き込みを停止する（Ｏｐ．２３）。
【０１２０】
さらに、検出部３０１は、認識部３０２から、マーカーＩＤを取得しているか判定する（Ｏｐ．５１）。マーカーＩＤを取得するまで待機する（Ｏｐ．５１Ｎｏ）。なお、後述の合成画像生成処理において、第二のモードが設定されている場合であって、かつ基準物が認識されなかった場合には、ユーザに対して、再度基準物を撮影するようにメッセージを出力してもよい。そして、認識部３０２は、第二のモードを解除する旨の命令を検出部３０１に出力する。この場合には、検出部３０１は、Ｏｐ．５１における待機状態を解除するとともに、第二のモードを解除する。
【０１２１】
マーカーＩＤを取得した場合は（Ｏｐ．５１Ｙｅｓ）、検出部３０１は、付加コンテンツがあるか判定する（Ｏｐ．５３）。つまり、検出部３０１は、マーカーＩＤをキーに、コンテンツ記憶部１１２を検索し、対応するコンテンツＩＤを取得する。さらに、検出部３０１は、コンテンツＩＤをキーに、管理情報記憶部３０５を検索し、対応する付加コンテンツのアクセス先を特定する。なお、ここで、対応するコンテンツＩＤやアクセス先が検索されなかった場合には、付加コンテンツがないことが判定される。
【０１２２】
付加コンテンツが存在する場合には（Ｏｐ．５３Ｙｅｓ）、検出部３０１は、通信部１０１を制御して、管理装置２から付加コンテンツを取得する（Ｏｐ．５５）。一方、付加コンテンツが存在しない場合には（Ｏｐ．５３Ｎｏ）、制御部３００は、一連の処理を終了する。
【０１２３】
なお、第一の実地例と同様、回転量が閾値Ｔｈよりも小さい場合には（Ｏｐ．１３Ｎｏ）、検出部３０１は、現在設定されているモードが、第二のモードであるかを判定する（Ｏｐ．１５）。第二のモードが設定されていない場合は（Ｏｐ．１５Ｎｏ）、検出部３０１はそのまま処理を終了する。
【０１２４】
一方、第二のモードが設定されている場合には（Ｏｐ．１５Ｙｅｓ）、検出部３０１は、第二のモードの解除が入力されたか否かを判定する（Ｏｐ．１７）。例えば、ユーザにより、第二のモードを解除する旨の入力がなされた場合、Ｔ秒間に閾値Ｔｈ以上の回転量を計測した場合、認識部３０２から第二のモードの解除命令が入力された場合には、第二のモードの解除が入力されたことが判定される。
【０１２５】
第二のモードの解除が入力された場合には（Ｏｐ．１７Ｙｅｓ）、検出部３０１は、第二のモードを解除して、第一のモードを設定する（Ｏｐ．１９）。そして、検出部３０１は、画像記憶部１１０への画像の書き込みを再開する（Ｏｐ．２０）。一方、第二のモードの解除が入力されていない場合には（Ｏｐ．１７Ｎｏ）、検出部３０１は、そのまま処理を終了する。
【０１２６】
次に、モード制御処理と並行して行われる第二の実施例にかかる合成画像生成処理について、説明する。図１８は、第二の実施例にかかる合成画像生成処理の処理フローチャートである。なお、第一の実施例にかかる合成画像生成処理と同様の処理については、同一の符号を付すとともに説明を簡略化する。
【０１２７】
まず、制御部３００は、合成画像生成プログラムが起動されると、第一の実施例と同様の前処理を行なう。ただし、前処理においては、テンプレート情報やコンテンツ情報、管理情報が管理装置２から取得されるが、付加コンテンツのデータは取得されない。
【０１２８】
取得部１０６は、現在設定されているモードが第一のモードであるのか判定する（Ｏｐ．３１）。そして、第一のモードが設定されている場合には（Ｏｐ．３１Ｙｅｓ）、取得部１０６は、画像記憶部１１０から、最新の画像を取得する（Ｏｐ．３３）。そして、認識部３０２は、最新の画像からマーカーが認識可能か判定する（Ｏｐ．６１）。マーカーが認識可能な場合には（Ｏｐ．６１Ｙｅｓ）、Ｏｐ．３９が実行される。
【０１２９】
第一のモードが設定されていない場合、すなわち、第二のモードが設定されている場合には（Ｏｐ．３１Ｎｏ）、取得部１０６は、画像記憶部１１０から、Ｔ秒前の画像を取得する（Ｏｐ．３５）。そして、認識部３０２は、Ｔ秒前の画像からマーカーを認識可能か判定する（Ｏｐ．６３）。マーカーを認識可能である場合には（Ｏｐ．６３Ｙｅｓ）、認識部３０２は、認識したマーカーのマーカーＩＤを検出部３０１へ出力する（Ｏｐ．６５）。そして、Ｏｐ．３９が実行される。なお、Ｏｐ．６５で出力されたマーカーＩＤは、図１７におけるＯｐ．５１にて検出部３０１により取得される。
【０１３０】
一方、マーカーを認識不能である場合には（Ｏｐ．６３Ｎｏ）、認識部３０２は、検出部３０１へ第二のモードの解除を命令する（Ｏｐ．６７）。認識部３０２は画像記憶部１１０に記憶された他の画像に対して、マーカーの認識可否を判定してもよい。また、制御部３００は、ユーザに対して、再度マーカーを撮像する旨のメッセージを、表示部１０４を介して出力してもよい。
【０１３１】
ここで、検出部３０１は解除命令を取得すると、Ｏｐ．５１においてマーカーＩＤの取得を待機する検出部３０１の待機状態を解除し、いったん、モード制御処理を終了する。そして、新たに、モード制御処理が開始されたのちに、検出部３０１は、図１７におけるＯｐ．１７にて肯定の判定を行い、Ｏｐ．１９において、第二のモードを解除する。
【０１３２】
次に、Ｏｐ．３９において、認識部３０２は、処理対象の画像におけるマーカーの像に基づき、マーカーの位置座標および回転座標を算出する（Ｏｐ．３９）。また、認識部３０２は、マーカーの位置座標および回転座標に基づき、変換行列Ｍを生成する。
【０１３３】
次に、生成部３０３は、認識された基準物に対応するコンテンツ情報、テンプレート情報、変換行列Ｍを用いて、合成画像を生成する（Ｏｐ．４１）。そして、表示部１０４は、生成部３０３の制御の下、合成画像を表示する（Ｏｐ．４３）。そして、制御部３００は、合成画像に対するユーザの操作が入力されたか否かを判定する（Ｏｐ．６９）。例えば、表示部１０４がタッチパネルである場合に、時系列で入力されたタッチ位置の変化に基づき、フリック操作およびフリック操作の方向が検出される。
【０１３４】
そして、ユーザの操作が入力された場合に（Ｏｐ．６９Ｙｅｓ）、表示部１０４は、生成部３０３の制御の下、付加コンテンツを表示する（Ｏｐ．７１）。なお、第一のモードから第二のモードに切り替えられたのちに、ユーザが操作を実行することが前提となるが、第一のモードにおいてユーザが操作を実行した場合には、Ｏｐ．７１の前に、付加コンテンツを管理装置２から取得してもよい。ただし、取得するまで、付加コンテンツの表示は待機される。
【０１３５】
Ｏｐ．６１にて否定の判定がなされた場合、Ｏｐ．６７が実行された後、Ｏｐ．６９にて否定の判定がなされた場合、さらにはＯｐ．７１が実行された後には、制御部３００は、処理の終了が指示されたかを判定する（Ｏｐ．４５）。処理の終了が指示されていなければ（Ｏｐ．４５Ｎｏ）、制御部３００は、Ｏｐ．３１へ戻る。処理の終了が指示されている場合は（Ｏｐ．４５Ｙｅｓ）、一連の合成画像生成処理を終了する。
【０１３６】
以上のように、情報処理装置３は、第二のモードへの切り替えのタイミングで、付加コンテンツの取得を行う。つまり、情報処理装置３はユーザが第二のモードへの切り替えを行ったということを、コンテンツに対する操作の入力の前段階であると推定する。つまり、コンテンツが付加コンテンツに対応付けられている場合には、その後のユーザの操作によって、情報処理装置３は付加コンテンツが呼び出される可能性が高いと推定する。よって、情報処理装置３は、ユーザによる合成画像に対する操作にかかわる負荷を軽減するとともに、操作に伴い呼び出される可能性が高い付加コンテンツのダウンロードタイミングを制御することができる。
【０１３７】
［第三の実施例］
第三の実施例は、第二のモードにおいて、過去の画像に対するＡＲ表示を行う点は、第一の実施例および第二の実施例と同様である。ただし、仮想カメラの設定を、第一のモードと第二のモードで切り替える。第三の実施例は、第二のモードにおいては、仮想カメラを俯瞰的な視点となるように設定する。つまり、合成画像におけるＡＲコンテンツの表示状態が、第一のモードにおける正対表示から、第二のモードにおける俯瞰表示に切り替えられる。なお、第三の実施例にかかる情報処理装置は、情報処理装置４と称する。
【０１３８】
具体的には、第三の実施例は、コンテンツが仮想的に配置された仮想空間を、上からとらえたようなコンテンツの投影画像を、処理対象の画像上に重畳することで、合成画像を生成する。ただし、合成画素の元となる現実空間の撮像画像は、現実空間に存在するカメラが撮像した画像であるため、コンテンツのみが俯瞰的な視点で投影されることとなる。
【０１３９】
図１９Ａおよび図１９Ｂは、第三の実施例を説明するための図である。図１９Ａは、第一のモードにおいて生成された合成画像３０を示す。また、図１９Ｂは、第二のモードにおいて生成された合成画像５０を示す。
【０１４０】
図１９Ａのように、合成画像３０が、マーカー３８に対応する複数のコンテンツ４０を含む場合がある。なお、コンテンツ４０は、コンテンツ４０−１、コンテンツ４０−２、コンテンツ４０−３、コンテンツ４０−４、コンテンツ４０−５、コンテンツ４０−６、コンテンツ４０−７の総称である。なお、合成画像３０は、パイプ３２と、計器３４、計器３６、マーカー３８を含む現実空間の撮像画像に対して、コンテンツ４０が重畳表示された画像である。
【０１４１】
合成画像３０においては、コンテンツ４０同士が重複して配置されてしまい、ユーザが、コンテンツのすべてを視認することができない場合がある。例えば、ユーザがコンテンツのいずれかを指定することで、指定されたコンテンツが拡大表示されたり、最前面に表示される機能を有する場合もあるが、ユーザが、合成画像上でいずれかのコンテンツを選択すること自体が困難な場合もある。
【０１４２】
そこで、本実施例においては、第二のモードにおいて生成される合成画像については、仮想カメラの位置を制御することで、図１９Ｂの合成画像５０を生成する。合成画像５０は、合成画像３０と同様に、パイプ３２、計器３４、計器３６、マーカー３８を含む撮像画像に基づき生成される。ただし、複数のコンテンツ５２は、上から撮像されたように、投影される。
【０１４３】
なお、コンテンツ５２は、コンテンツ５２−１、コンテンツ５２−２、コンテンツ５２−３、コンテンツ５２−４、コンテンツ５２−５、コンテンツ５２−６、コンテンツ５２−７の総称である。また、コンテンツ５２−１、コンテンツ５２−２、コンテンツ５２−３、コンテンツ５２−４、コンテンツ５２−５、コンテンツ５２−６、コンテンツ５２−７は、仮想空間において、コンテンツ４０−１、コンテンツ４０−２、コンテンツ４０−３、コンテンツ４０−４、コンテンツ４０−５、コンテンツ４０−６、コンテンツ４０−７と同一である。
【０１４４】
つまり、合成画像３０においては、複数のコンテンツ４０が重なった状態で表示されていたが、仮想カメラの視線を制御することで、合成画像５０においては、複数のコンテンツ５２の重なりを回避した状態で表示される。
【０１４５】
例えば、ユーザが、合成画像３０を閲覧して、コンテンツ４０の重なりにより、コンテンツ４０の選択操作が困難であると判断した場合に、ユーザは、情報処理装置４を回転させる。すると、第二のモードが設定されるため、他の視線からコンテンツを投影した合成画像５０が表示される。すると、ある視線では重なりがあったコンテンツ４０が、重なりが解除された状態で表示される。
【０１４６】
なお、後述するように、ユーザは、合成画像５０におけるいずれかのコンテンツ５２を選択することで、さらに、選択されたコンテンツ５０は、正対表示される。例えば、コンテンツ５２−１が選択された場合には、コンテンツ４０−１の状態の投影画像が表示される。よって、コンテンツ５２内にテキストが表示される場合等には、ユーザは、俯瞰表示されたコンテンツ５２を正対表示させることで、コンテンツ５２内に表示されたテキストを視認することができる。
【０１４７】
ここで、通常、オーサリング作業においては、コンテンツ同士が重ならないように、コンテンツの位置座標（三次元）が設定されることが好ましい。しかし、コンテンツ同士が重ならないように、コンテンツの位置座標（三次元）が設定されたとしても、実際にＡＲ表示が実行される際には、カメラの位置によっては、コンテンツ同士が重なった状態で表示されうる。
【０１４８】
しかし、オーサリング作業において、同一の位置座標を与えていない限り、ある一つの視線からの投影においては、コンテンツ同士が重なって表示されたとしても、他の視線からの投影においては、重なりが解除される。よって、第二のモードが設定されることで、コンテンツ同士の重なりが解除される可能性が高い。
【０１４９】
次に、第三の実施例にかかる情報処理装置４の機能的構成について、説明する。図２０は、第三の実施例にかかる情報処理装置の機能ブロック図である。なお、第一の実施例と同様の処理部については、同一の符号を付して、説明を省略する。
【０１５０】
情報処理装置４は、通信部１０１、撮像部１０２、計測部１０３、表示部１０４、制御部４００、記憶部１０９を含む。また、制御部４００は、検出部４０１、取得部１０６、認識部４０２、生成部１０８を含む。さらに、記憶部１０９は、画像記憶部１１０、テンプレート記憶部１１１、コンテンツ記憶部１１２を含む。なお、記憶部１０９は、第二の実施例にかかる記憶部３０４であってもよい。この場合は、制御部４００は、付加コンテンツの取得も行う。
【０１５１】
検出部４０１は、第一の実施例同様、特定の動作を検出するとともに、特定の動作を検出した場合には、第一のモードから、第二のモードへ切り替える。第一の実施例と同様に、第一のモードは、最新の画像を処理対象としてＡＲ表示を実行するモードであって、第二のモードは、特定の動作が検出された時点よりも過去の画像を処理対象としてＡＲ表示を実行するモードである。
【０１５２】
ただし、第三の実施例においては、各モードにおける仮想カメラの設定が異なる。第一のモードは、第一の実施例と同様に、仮想空間を現実空間のカメラと同様の位置から撮影する仮想カメラが設定される。一方、第二のモードにおいては、仮想カメラが仮想空間を俯瞰的に撮像する位置に設定される。なお、仮想カメラの設定は、検出部４０１により制御されるモードに応じて、制御部４００が行う。
【０１５３】
認識部４０２は、第一の実施例と同様に、処理対象の画像から基準物を認識する。また、認識部４０２は、変換行列Ｍを生成する過程で、仮想カメラの視線に基づき、回転行列を生成する。つまり、先に述べたとおり、例えば、第二のモードにおいては、処理対象の画像における基準物の像に基づき得られたＰ１ｃの値に、−９０（度）を加算することで、表示状態を切り替える。
【０１５４】
よって、認識部４０２は、検出部４０１により設定されたモードに応じて、仮想カメラの位置を設定する。そして、認識部４０２は、各モードにおける仮想カメラの位置に応じて、変換行列Ｍを生成する。なお、生成部１０８は、第一の実施例と同様に、変換行列Ｍに基づき、合成画像を生成するが、変換行列Ｍが各モードにおける仮想カメラに応じて生成されているため、先の実施例と同様の処理により、合成画像を生成することができる。
【０１５５】
第三の実施例にかかるモード制御処理について説明する。第三のモード制御処理は、図１１に示す第一のモード制御処理または、第二の実施例にかかるモード制御処理と同様である。ただし、いずれの処理においても、制御部４００における検出部４０１が各種処理を行う。
【０１５６】
次に、モード制御処理と並行して行われる合成画像生成処理について、説明する。図２１は、第三の実施例にかかる合成画像生成処理の処理フローチャートである。なお、第一の実施例と同様の処理については、同一の符号を付すとともに、説明を簡略化する。
【０１５７】
まず、制御部４００は、合成画像生成プログラムが起動されると、第一の実施例と同様に、前処理を行なう。そして、取得部１０６は、現在設定されているモードが第一のモードであるのか判定する（Ｏｐ．３１）。そして、第一のモードが設定されている場合には（Ｏｐ．３１Ｙｅｓ）、取得部１０６は、画像記憶部１１０から、最新の画像を取得する（Ｏｐ．３３）。
【０１５８】
一方、第一のモードが設定されていない場合、すなわち、第二のモードが設定されている場合には（Ｏｐ．３１Ｎｏ）、制御部４００は、仮想カメラの設定を変更する（Ｏｐ．８１）。通常、仮想カメラは、現実空間に存在するカメラと同様の視線を有する位置に設定されるが、第二のモードが設定されている場合には、仮想空間を俯瞰的に撮像する位置に設定される。そして、取得部１０６は、画像記憶部１１０から、Ｔ秒前の画像を取得する（Ｏｐ．３５）。
【０１５９】
次に、認識部４０２は、処理対象の画像から、マーカーを認識可能か判定する（Ｏｐ．３７）。認識部４０２がマーカーを認識しなかった場合（Ｏｐ．３７Ｎｏ）には、制御部４００は、処理の終了が指示されたかを判定する（Ｏｐ．４５）。処理の終了が指示されていなければ（Ｏｐ．４５Ｎｏ）、制御部４００は、Ｏｐ．３１へ戻る。処理の終了が指示されている場合は（Ｏｐ．４５Ｙｅｓ）、一連の合成画像生成処理を終了する。
【０１６０】
一方、認識部４０２が、マーカーを認識した場合には（Ｏｐ．３７Ｙｅｓ）、認識部４０２は、処理対象の画像における、マーカーの像に基づき、マーカーの位置座標および回転座標を算出する（Ｏｐ．８３）。そして、認識部１０７は、マーカーの位置座標および回転座標に基づき、変換行列Ｍを生成する。ここで、マーカーの位置座標および回転座標の算出が算出される際、仮想カメラの位置が反映される。例えば、Ｏｐ．８１において、仮想カメラの設定が変更されている場合には、算出された回転座標が、仮想カメラの設定に応じて変換される。
【０１６１】
次に、生成部１０８は、認識された基準物に対応するコンテンツ情報、テンプレート情報、変換行列Ｍを用いて、合成画像を生成する（Ｏｐ．４１）。そして、表示部１０４は、生成部１０８の制御の下、合成画像を表示する（Ｏｐ．４３）。そして、制御部４００は、コンテンツ選択処理を実行する（Ｏｐ．８５）。そして、制御部４００は、Ｏｐ．４５を実行する。
【０１６２】
ここで、コンテンツ選択処理について説明する。図２２は、コンテンツ選択処理のフローチャートである。表示部１０４が合成画像を表示したあと（Ｏｐ．４３）、制御部４００は、指定位置情報を取得したかを判定する（Ｏｐ．９１）。なお、指定位置情報は、ユーザによるディスプレイに対する押下が行われた場合に、表示部１０４が備えるタッチセンサから出力される情報であって、ディスプレイ上の指定位置にかかる情報である。例えば、指定位置情報は、スクリーン座標系の座標値（Ｘｓ，Ｙｓ）である。
【０１６３】
指定位置情報を取得していない場合には（Ｏｐ．９１Ｎｏ）、制御部４００は、コンテンツ選択処理を終了する。一方、指定位置情報を取得している場合には（Ｏｐ．９１Ｙｅｓ）、制御部４００は、コンテンツが選択されたか否かを判定する（Ｏｐ．９３）。具体的には、制御部４００は、Ｏｐ．９１にて取得した指定位置情報（Ｘｓ，Ｙｓ）が、いずれかのＡＲオブジェクトの投影画像の領域に含まれているか判定する。
【０１６４】
コンテンツが選択されていない場合（Ｏｐ．９３Ｎｏ）、制御部４００は、処理を終了する。一方、コンテンツが選択されている場合には（Ｏｐ．９３Ｙｅｓ）、選択されたコンテンツを特定するとともに、制御部４００は、現在設定されているモードが第一のモードであるか判定する（Ｏｐ．９５）。
【０１６５】
第一のモードが設定されている場合（Ｏｐ．９５Ｙｅｓ）、制御部４００は、表示部１０４を制御し、選択されたコンテンツを拡大表示する（Ｏｐ．９７）。なお、ここでは、拡大表示の代わりに、選択されたコンテンツが最前面に表示されることとしてもよい。そして、制御部４００は一連の処理を終了する。
【０１６６】
また、第一のモードが設定されていない場合（Ｏｐ．９５Ｎｏ）、制御部４００は、選択されたコンテンツを正対表示する（Ｏｐ．９９）。そして、制御部４００は一連の処理を終了する。
【０１６７】
以上のように、第三の実施例にかかる情報処理装置４は、コンテンツ同士が重なって表示されたことにより、ユーザによるコンテンツの選択操作が困難となる状況を回避する。さらに、ユーザが、いずれかのコンテンツを選択した場合に、第二のモードにおいて選択されたコンテンツが正対表示されるため、コンテンツ内にテキストが記述されている場合であっても、ユーザは、コンテンツの内容を閲覧することができる。
【０１６８】
［変型例１］
第一の実施例、第二の実施例、第三の実施例においては、特定の動作を、ユーザによる情報処理装置の回転動作とした。つまり、情報処理装置は、Ｔ秒内の回転量が閾値以上である場合に、特定の動作を検出した。変型例１は、特定の動作として、他の動作を採用する例である。
【０１６９】
例えば、特定の動作として、ユーザが、撮像部を物体で覆う動作が採用される。情報処理装置の筐体において、表示部（ディスプレイ）が設置された面と逆の面にカメラが設置されていることが多い。よって、ユーザが、カメラが備え付けられた面を下にして、情報処理装置が机やひざの上におく動作を行ったことを、検出部が検出する。
【０１７０】
具体的には、検出部は、入力画像の輝度ヒストグラムを生成する。そして、検出部は、所定の輝度値以下の画素数が、閾値以上であるかを判定する。検出部は、所定の輝度値以下の画素数が閾値以上である場合に、カメラの視界が物体で遮られる動作が行われたことを検出する。
【０１７１】
本変型例によれば、ユーザは、情報処理装置を、安定した物体の上においた状態で、合成画像に対する操作を行うことが可能である。なお、本変型例においては、入力画像の輝度ヒストグラムにおいて、所定の輝度値以下の画素数が、閾値よりも少なくなった場合に、検出部は、第二のモードを解除する判定を行う。
【０１７２】
以上のように、所定の動作は、基準物が認識された入力画像を撮像装置が撮影したときの撮像方向を、基準物を撮像不能な方向へ変化させる動作である。
【０１７３】
［変型例２］
第三の実施例において、仮想カメラの設定は、変換行列Ｍを生成する前段階で行われることを説明した。変型例２においては、情報処理装置は、変換行列Ｍの生成後に仮想カメラの設定による表示切替の制御を行う。
【０１７４】
コンテンツＥを構成する各点のマーカー座標系の座標（Ｘｍ，Ｙｍ，Ｚｍ）は、変換行列Ｍに基づくモデル−ビュー変換により、カメラ座標系の座標（Ｘｃ，Ｙｃ，Ｚｃ）に変換される。例えば、座標Ｖ２ｍはモデル−ビュー変換により座標Ｖ２ｃに変換される。そして、そのあと、第二のモードにおいては、さらに、図２３に示す回転行列Ｒ４により、表示状態の切り替えが行われる。
【０１７５】
図２３は、仮想カメラの設定に応じた変換を行うための回転行列Ｒ４を示す。まず、仮想カメラを現実空間のカメラと同様の位置に設定したとして、先に説明した変換行列Ｍによってモデル−ビュー変換を行う。なお、モデル−ビュー変換された、コンテンツのカメラ座標系における座標（Ｘｃ，Ｙｃ，Ｚｃ）を、（Ｘ２ｃ，Ｙ２ｃ，Ｚ２ｃ）とする。
【０１７６】
そして、情報処理装置のチルト角の回転量をθとすると、回転行列Ｒ４を利用して、（Ｘ２ｃ，Ｙ２ｃ，Ｚ２ｃ）を（Ｘ２ｃ’，Ｙ２ｃ’，Ｚ２ｃ’）に変換する。つまり、仮想カメラが、現実空間における情報処理装置のチルト角においてθ回転させた位置に設定される。なお、変換後の座標（Ｘ２ｃ’，Ｙ２ｃ’，Ｚ２ｃ’）が、式１および式２に基づき透視変換されることで、表示状態の切り替えが行われる。θは一定の値（例えば、９０°）である。または、θは、ジャイロセンサ等から取得された値であってもよい。
【０１７７】
［変型例３］
各実施例にかかる画像記憶部には、第一のモードにおいて、基準物が認識された画像のみが格納されるとしてもよい。よって、第二のモードは、画像記憶部から、基準物を含む画像が取得可能であって、必ず合成画像が生成される。
【０１７８】
具体的には、各実施例にかかる第一のモードにおいて、撮像部から制御部は入力画像を取得する。そして、認識部が入力画像から基準物を認識した場合、生成部が合成画像を生成するとともに、認識部は画像記憶部に画像を格納する。なお、画像記憶部は、最新の入力画像（基準物を含む）のみを保持してもよいし、所定フレーム分の入力画像を保持してもよい。
【０１７９】
そして、検出部の制御の下、第一のモードから第二のモードへ切り替わった場合に、取得部は、画像記憶部から画像を取得するが、取得される画像は、所定の動作を検出する前の画像であって、かつ基準物を含む画像である。先の実施例においては、画像記憶部から取得される画像は、基準物を含む可能性が高い画像であったが、変型例においては、画像記憶部から取得される画像は、基準物を確実に含む画像である。
【０１８０】
以上のように、変型例３は、モード切り替え前に撮像された、基準物を確実に含む画像に対して、ＡＲ表示を継続することができる。
【０１８１】
［ハードウェア構成例］
各実施例に示した装置のハードウェア構成について説明する。図２４は、各実施例の情報処理装置のハードウェア構成例である。情報処理装置１、情報処理装置３、情報処理装置４は、コンピュータ１０００によって、実現される。つまり、図７、図１５及び図２０に示す機能ブロックは、例えば、図２４に示すハードウェア構成により実現される。
【０１８２】
コンピュータ１０００は、例えば、プロセッサ１００１、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）１００２、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）１００３、ドライブ装置１００４、記憶媒体１００５、入力インターフェース（入力Ｉ／Ｆ）１００６、入力デバイス１００７、出力インターフェース（出力Ｉ／Ｆ）１００８、出力デバイス１００９、通信インターフェース（通信Ｉ／Ｆ）１０１０、カメラモジュール１０１１、加速度センサ１０１２、角速度センサ１０１３、表示インターフェース（表示Ｉ／Ｆ）１０１４、表示デバイス１０１５およびバス１０１６などを含む。それぞれのハードウェアはバス１０１６を介して接続されている。
【０１８３】
通信インターフェース１０１０はネットワークＮを介した通信の制御を行なう。通信インターフェース１０１０が制御する通信は、無線通信を利用して、無線基地局を介してネットワークＮにアクセスする態様でもよい。通信インターフェース１０１０の一例は、ネットワーク・インタフェース・カード（ＮＩＣ）である。入力インターフェース１００６は、入力デバイス１００７と接続されており、入力デバイス１００７から受信した入力信号をプロセッサ１００１に伝達する。出力インターフェース１００８は、出力デバイス１００９と接続されており、出力デバイス１００９に、プロセッサ１００１の指示に応じた出力を実行させる。入力インターフェース１００６および出力インターフェース１００８の一例は、Ｉ／Ｏコントローラである。
【０１８４】
入力デバイス１００７は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやコンピュータ１０００の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス１００９は、プロセッサ１００１の制御に応じて情報を出力する装置である。出力デバイス１００９は、例えば、スピーカーなどの音声出力装置などである。
【０１８５】
表示インターフェース１０１４は、表示デバイス１０１５と接続されている。表示インターフェース１０１４は、表示インターフェース１０１４に設けられた表示用バッファにプロセッサ１００１により書き込まれた画像情報を、表示デバイス１０１５に表示させる。表示インターフェース１０１４の一例は、グラフィックカードやグラフィックチップである。表示デバイス１０１５は、プロセッサ１００１の制御に応じて情報を出力する装置である。表示デバイス１０１５は、ディスプレイなどの画像出力装置や、透過型ディスプレイなどが用いられる。
【０１８６】
透過型ディスプレイが用いられる場合には、ＡＲコンテンツの投影画像は、撮像画像と合成されるのではなく、例えば透過型ディスプレイ内の適切な位置に表示されるように制御されてもよい。これにより、ユーザは、現実空間とＡＲコンテンツが整合した状態の視覚が得られる。また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス１００７及び表示デバイス１０１５として用いられる。また、入力デバイス１００７及び表示デバイス１０１５が、コンピュータ１０００内部に組み込まれる代わりに、例えば、入力デバイス１００７及び表示デバイス１０１５が、コンピュータ１０００に外部から接続されてもよい。
【０１８７】
ＲＡＭ１００２は読み書き可能なメモリ装置であって、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）などの半導体メモリ、またはＲＡＭ以外にもフラッシュメモリなどが用いられてもよい。ＲＯＭ１００３は、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）なども含む。
【０１８８】
ドライブ装置１００４は、記憶媒体１００５に記憶された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記憶媒体１００５は、ドライブ装置１００４によって書き込まれた情報を記憶する。記憶媒体１００５は、例えば、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ブルーレイディスクなどの種類の記憶媒体のうちの少なくとも１つである。また、例えば、コンピュータ１０００は、コンピュータ１０００内の記憶媒体１００５の種類に対応したドライブ装置１００４を含む。
【０１８９】
カメラモジュール１０１１は、撮像素子（イメージセンサ）を含み、撮像素子が光電変換して得られたデータを、カメラモジュール１０１１に含まれる入力画像用の画像バッファに書き込む。加速度センサ１０１２は、加速度センサ１０１２に対して作用する加速度を計測する。角速度センサ１０１３は、角速度センサ１０１３による動作の角速度を計測する。
【０１９０】
プロセッサ１００１は、ＲＯＭ１００３や記憶媒体１００５に記憶されたプログラムをＲＡＭ１００２に読み出し、読み出されたプログラムの手順に従って処理を行なう。例えば、各実施例における制御部の機能は、プロセッサ１００１が、モード制御プログラムや合成画像生成プログラムに基づいて、他のハードウェアの制御を行なうことにより実現される。
【０１９１】
通信部の機能は、プロセッサ１００１が、通信インターフェース１０１０を制御してデータ通信を実行させ、受信したデータを記憶媒体１００５に格納させることにより実現される。
【０１９２】
記憶部の機能は、ＲＯＭ１００３および記憶媒体１００５がプログラムファイルやデータファイルを記憶すること、また、ＲＡＭ１００２がプロセッサ１００１のワークエリアとして用いられることによって実現される。例えば、コンテンツ情報、テンプレート情報、管理情報などがＲＡＭ１００２に格納される。
【０１９３】
撮像部の機能は、カメラモジュール１０１１が入力画像用の画像バッファに画像データを書込み、入力画像用の画像バッファ内の画像データをプロセッサ１００１が読み出すことにより実現される。画像データは、モニタリングモードにおいては、例えば、入力画像用の画像バッファに書き込まれるとともに、表示デバイス１０１５の表示用バッファに並行して書き込まれる。
【０１９４】
また、表示部の機能は、プロセッサ１００１により生成された画像データが表示インターフェース１０１４に備えられた表示用バッファに書き込まれ、表示デバイス１０１５が表示用バッファ内の画像データの表示を行なうことにより実現される。
【０１９５】
次に、図２５は、コンピュータ１０００で動作するプログラムの構成例を示す。コンピュータ１０００において、ハードウェア群の制御を行なうＯＳ（オペレーティング・システム）３００２が動作する。ＯＳ３００２に従った手順でプロセッサ１００１が動作して、ＨＷ（ハードウェア）３００１の制御・管理が行なわれることで、ＡＰ（アプリケーションプログラム）３００４やＭＷ（ミドルウェア）３００３による処理がＨＷ３００１上で実行される。
【０１９６】
コンピュータ１０００において、ＯＳ３００２、ＭＷ３００３及びＡＰ３００４などのプログラムは、例えば、ＲＡＭ１００２に読み出されてプロセッサ１００１により実行される。また、各実施例に示したモード制御プログラムおよび合成画像生成プログラムは、例えば、ＭＷ３００３としてＡＰ３００４から呼び出されるプログラムである。
【０１９７】
なお、モード制御プログラムと合成画像生成プログラムは、ＡＲ制御プログラムに含まれるとしてもよい。例えば、ＡＲ制御プログラムは、ＡＰ３００４としてＡＲ機能を実現させるプログラムである。ＡＲ制御プログラムは、記憶媒体１００５に記憶される。記憶媒体１００５は、モード制御プログラム若しくは合成画像生成プログラム単体または、ＡＲ制御プログラムを記憶した状態で、コンピュータ１０００本体と切り離して流通され得る。
【０１９８】
次に、各実施例における管理装置２のハードウェア構成について説明する。図２６は、管理装置のハードウェア構成例である。管理装置２は、コンピュータ２０００によって、実現される。管理装置２は、例えば、図２６に示すハードウェア構成により実現される。コンピュータ２０００は、例えば、プロセッサ２００１、ＲＡＭ２００２、ＲＯＭ２００３、ドライブ装置２００４、記憶媒体２００５、入力インターフェース（入力Ｉ／Ｆ）２００６、入力デバイス２００７、出力インターフェース（出力Ｉ／Ｆ）２００８、出力デバイス２００９、通信インターフェース（通信Ｉ／Ｆ）２０１０、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）インターフェース（ＳＡＮ  Ｉ／Ｆ）２０１１及びバス２０１２などを含む。それぞれのハードウェアはバス２０１２を介して接続されている。
【０１９９】
例えば、プロセッサ２００１はプロセッサ１００１と同様なハードウェアである。ＲＡＭ２００２は、例えばＲＡＭ１００２と同様なハードウェアである。ＲＯＭ２００３は、例えばＲＯＭ１００３と同様なハードウェアである。ドライブ装置２００４は、例えばドライブ装置１００４と同様なハードウェアである。記憶媒体２００５は、例えば記憶媒体１００５と同様なハードウェアである。入力インターフェース（入力Ｉ／Ｆ）２００６は、例えば入力インターフェース１００６と同様なハードウェアである。入力デバイス２００７は、例えば入力デバイス１００７と同様なハードウェアである。
【０２００】
出力インターフェース（出力Ｉ／Ｆ）２００８は、例えば出力インターフェース１００８と同様なハードウェアである。出力デバイス２００９は、例えば出力デバイス１００９と同様なハードウェアである。通信インターフェース（通信Ｉ／Ｆ）２０１０は、例えば通信インターフェース１０１０と同様なハードウェアである。ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）インターフェース（ＳＡＮ  Ｉ／Ｆ）２０１１は、コンピュータ２０００をＳＡＮに接続するためのインターフェースであり、ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）を含む。
【０２０１】
プロセッサ２００１は、ＲＯＭ２００３や記憶媒体２００５に記憶されたプログラムをＲＡＭ２００２に読み出し、読み出されたプログラムの手順に従って処理を行なう。その際にＲＡＭ２００２はプロセッサ２００１のワークエリアとして用いられる。なお、プログラムは、管理装置２における各種処理に係るプログラムを含む。たとえば、当該プログラムは、コンピュータ１０００へ提供するテンプレート情報、コンテンツ情報、撮像条件情報を選択する処理等が、記述されたプログラムである。
【０２０２】
ＲＯＭ２００３および記憶媒体２００５が、プログラムファイルやデータファイルを記憶すること、もしくは、ＲＡＭ２００２がプロセッサ２００１のワークエリアとして用いられることによって、管理装置２は、各種情報を記憶する。また、プロセッサ２００１が、通信インターフェース２０１０を制御して通信処理を行なう。
【符号の説明】
【０２０３】
１、３、４      情報処理装置
１００、３００、４００    制御部
１０１    通信部
１０２    撮像部
１０３    計測部
１０４    表示部
１０５、３０１、４０１    検出部
１０６    取得部
１０７、３０２、４０２    認識部
１０８、３０３    生成部
１０９、３０４    記憶部
１１０    画像記憶部
１１１    テンプレート記憶部
１１２    コンテンツ記憶部
３０５    管理情報記憶部
【図１】
2015082314.tif 000003
【図２】
2015082314.tif 000004
【図３】
2015082314.tif 000005
【図４】
2015082314.tif 000006
【図５】
2015082314.tif 000007
【図６】
2015082314.tif 000008
【図７】
2015082314.tif 000009
【図８】
2015082314.tif 000010
【図９】
2015082314.tif 000011
【図１０】
2015082314.tif 000012
【図１１】
2015082314.tif 000013
【図１２】
2015082314.tif 000014
【図１３】
2015082314.tif 000015
【図１４】
2015082314.tif 000016
【図１５】
2015082314.tif 000017
【図１６】
2015082314.tif 000018
【図１７】
2015082314.tif 000019
【図１８】
2015082314.tif 000020
【図１９】
2015082314.tif 000021
【図２０】
2015082314.tif 000022
【図２１】
2015082314.tif 000023
【図２２】
2015082314.tif 000024
【図２３】
2015082314.tif 000025
【図２４】
2015082314.tif 000026
【図２５】
2015082314.tif 000027
【図２６】
2015082314.tif 000028