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