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