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