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