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