(57)【要約】      （修正有）【課題】仮想オブジェクトを閲覧可能なユーザを簡易かつ適切に選択できる情報処理装置及び拡張現実表示システム及び閲覧ユーザの登録方法及びプログラムを提供する。【解決手段】閲覧ユーザとして登録されたユーザの画像表示装置に仮想オブジェクトを表示する拡張現実表示システムの閲覧ユーザを登録する情報処理装置は、ユーザの位置を含むユーザ情報をユーザごとに登録したユーザ情報テーブルと、仮想オブジェクトの位置及び方向を含む仮想オブジェクト情報を仮想オブジェクトごとに登録した仮想オブジェクト情報テーブルとをそれぞれ格納する格納手段と、着目仮想オブジェクトの位置及び方向と前記ユーザの位置とに基づいて、表示される前記着目仮想オブジェクトの正面方向にある所定の閲覧範囲に含まれるユーザを、前記着目仮想オブジェクトの閲覧ユーザとして登録する登録手段と、を有する。【選択図】図１
2014235717.tif 000002
【特許請求の範囲】
【請求項１】
閲覧ユーザとして登録されたユーザの画像表示装置に仮想オブジェクトを表示する拡張現実表示システムにおいて前記閲覧ユーザを登録する情報処理装置であって、
ユーザの位置を含むユーザ情報をユーザごとに登録したユーザ情報テーブルと、仮想オブジェクトの位置及び方向を含む仮想オブジェクト情報を仮想オブジェクトごとに登録した仮想オブジェクト情報テーブルとをそれぞれ格納する格納手段と、
着目仮想オブジェクトの位置及び方向と前記ユーザの位置とに基づいて、表示される前記着目仮想オブジェクトの正面方向にある所定の閲覧範囲に含まれるユーザを、前記着目仮想オブジェクトの閲覧ユーザとして登録する登録手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記登録手段は、前記画像表示装置からの指示に応じて、前記閲覧ユーザの登録を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記登録手段は、前記着目仮想オブジェクトから所定距離以内であり、前記着目仮想オブジェクトの方向を中心として所定の角度に広がる扇形を前記閲覧範囲として前記閲覧ユーザを登録することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記登録手段は、前記着目仮想オブジェクトの正面方向にあり、前記着目仮想オブジェクトに面した矩形を前記閲覧範囲として前記閲覧ユーザを登録することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項５】
前記登録手段はさらに、閲覧範囲の面積と登録した閲覧ユーザの数とに基づいて算出したユーザの密度が所定の閾値以下となるよう前記閲覧範囲を拡張することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項６】
前記ユーザ情報にはユーザの向きが更に含まれており、
前記登録手段は、前記閲覧範囲に含まれたユーザのうち、さらに前記ユーザの向きが前記着目仮想オブジェクトの正面に向いているユーザを前記閲覧ユーザとして登録することを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記着目仮想オブジェクトとは別の第２の仮想オブジェクトの仮想オブジェクト情報が前記仮想オブジェクト情報テーブルに登録されている場合には、前記登録手段は、前記着目仮想オブジェクトと前記第２の仮想オブジェクトそれぞれの位置に基づいて、前記着目仮想オブジェクトと前記第２の仮想オブジェクトとの間に境界線を設定し、前記着目仮想オブジェクトの閲覧範囲と前記第２の仮想オブジェクトの閲覧範囲との重複部分に含まれたユーザであって、かつ、前記境界線の前記着目仮想オブジェクトの側にいるユーザと、前記着目仮想オブジェクトの閲覧範囲のみに含まれるユーザとを前記閲覧ユーザとして登録することを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記ユーザの位置は、当該ユーザの画像表示装置の位置であり、当該位置は、前記画像表示装置に備えられた撮像手段により、特定のマーカ画像を撮影して特定されることを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
画像表示装置と、
請求項１乃至９のいずれか一項に記載の情報処理装置と
を有することを特徴とする拡張現実表示システム。
【請求項１０】
前記画像表示装置は、ヘッドマウントディスプレイまたはヘッドアップディスプレイまたはタブレット端末のいずれかであることを特徴とする請求項９に記載の拡張現実表示システム。
【請求項１１】
請求項１乃至８のいずれか一項に記載の情報処理装置としてコンピュータを機能させるためのプログラム。
【請求項１２】
閲覧ユーザとして登録されたユーザの画像表示装置に仮想オブジェクトを表示する拡張現実表示システムにおいて、情報処理装置により前記閲覧ユーザを登録する閲覧ユーザの登録方法であって、
前記情報処理装置は、ユーザの位置を含むユーザ情報をユーザごとに登録したユーザ情報テーブルと、仮想オブジェクトの位置及び方向を含む仮想オブジェクト情報を仮想オブジェクトごとに登録した仮想オブジェクト情報テーブルとをそれぞれ格納する格納手段を有し、
前記登録方法は、着目仮想オブジェクトの位置及び方向と前記ユーザの位置とに基づいて、表示される前記着目仮想オブジェクトの正面方向にある所定の閲覧範囲に含まれるユーザを特定し、
特定したユーザを、前記着目仮想オブジェクトの閲覧ユーザとして登録することを特徴とする閲覧ユーザの登録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、拡張現実表示システムにおける情報処理装置及び拡張現実表示システム及び閲覧ユーザの登録方法及びプログラムに関する。
【背景技術】
【０００２】
一般的に、電子ファイルの閲覧共有システムでは、ネットワーク上のコンピュータに共有フォルダを作成し、共有フォルダの閲覧権限をユーザ毎に登録することで、ファイルの閲覧共有を可能にしている。また、同一ネットワークに接続される携帯端末を検索した後、リスト表示し、そのリストから選択した携帯端末にファイルを送信することで、ファイルの閲覧共有をするものがある（特許文献１）。
【０００３】
一方、近年、ＡＲ（Ａｕｇｕｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ：拡張現実）技術を用いたサービスが開発・提供されている。ＡＲは主にカメラ等で撮影された現実空間の画像に対して仮想オブジェクトを重畳表示するものである。ＡＲを提示するデバイスとしては、携帯端末や、ＨＭＤ（Ｈｅａｄ‐ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）、ＨＵＤ（Ｈｅａｄ−ｕｐ  Ｄｉｓｐｌａｙ）等が利用される。このようなＡＲを利用したサービスとして、カメラの撮像画像から特定のパターン（ＡＲマーカ）を認識し、パターンの形状から算出されるカメラの位置・方向にもとづいて仮想オブジェクトを撮像画像に重畳表示するものがある（特許文献２）。
【０００４】
また、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）などによるユーザの位置情報に基づいてユーザの周囲の環境情報をＡＲで表示するものがある。このようなサービスとして、ヘリコプタなどの飛行経路と機体の距離に応じた飛行経路マークをＨＵＤに重畳表示するものがある（特許文献３）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１１３７２０号公報
【特許文献２】特開２００８−２１７１１９号公報
【特許文献３】特開平１１−２６８６９６号公報
【特許文献４】特開２００５−３３３１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述のＡＲ表示技術によれば、オフィスなどの打ち合わせの場においても、ＡＲマーカにもとづいて仮想オブジェクトを重畳表示することができる。これにより、場にいる複数のユーザで、あたかも同一の資料を見ているかのように仮想オブジェクトを閲覧することが可能である。ただし、実際に仮想オブジェクトを複数ユーザで閲覧する際は、セキュリティ保護のため、仮想オブジェクトを閲覧可能なユーザを限定することが必要と考えられる。そこで、閲覧可能なユーザを限定するために、前述のファイルの閲覧共有の技術によって、同一ネットワークに接続されているユーザ名、もしくは、端末名をリスト表示して選択することで、ユーザを指定する方法が考えられる。
【０００７】
しかしながら、同一ネットワークのユーザ名や端末名をリスト表示後に選択するという方法では、ユーザがその場にいるか否かに関わらず、表示されたリストの中からユーザを選択することができてしまう。このため、リストの中からユーザを選択するためには、ユーザを選択する権限を持つユーザが、選択されるユーザの名前や端末名などを予め知っている必要があり、知らない場合にはユーザ名等の情報を例えばそのユーザから得なければならない。また、多くのユーザの中から適切なユーザを選択する動作が煩わしい。
【０００８】
このように従来の技術では、仮想オブジェクトを閲覧させるユーザを、閲覧環境に応じて適切に選択することは煩雑な操作と困難さとを伴うものであった。
【０００９】
本発明は上記問題点に鑑みてなされたものであり、仮想オブジェクトを閲覧可能なユーザを簡易かつ適切に選択できる情報処理装置及び拡張現実表示システム及び閲覧ユーザの登録方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明は以下の構成を備える。
【００１１】
閲覧ユーザとして登録されたユーザの画像表示装置に仮想オブジェクトを表示する拡張現実表示システムにおいて前記閲覧ユーザを登録する情報処理装置であって、
ユーザの位置を含むユーザ情報をユーザごとに登録したユーザ情報テーブルと、仮想オブジェクトの位置及び方向を含む仮想オブジェクト情報を仮想オブジェクトごとに登録した仮想オブジェクト情報テーブルとをそれぞれ格納する格納手段と、
着目仮想オブジェクトの位置及び方向と前記ユーザの位置とに基づいて、表示される前記着目仮想オブジェクトの正面方向にある所定の閲覧範囲に含まれるユーザを、前記着目仮想オブジェクトの閲覧ユーザとして登録する登録手段とを有する。
【発明の効果】
【００１２】
本発明によれば、仮想オブジェクトを閲覧するユーザを、その閲覧環境に応じて選択する。そのため、閲覧環境に即した適切なユーザを簡易に選択することができる。
【図面の簡単な説明】
【００１３】
【図１】画像表示装置と処理サーバーの機能構成を示すブロック図
【図２】画像表示装置のハードブロック図
【図３】処理サーバーのハードブロック図
【図４】本実施形態で用いる画像表示装置０１００（ＨＭＤ）の外観を示す図
【図５】処理サーバーがＨＤＤに保持するユーザ情報テーブルの例を示す図
【図６】処理サーバーがＨＤＤに保持する仮想オブジェクト情報テーブルの例を示す図
【図７】画像表示装置の全体フローチャート
【図８】画像表示装置と処理サーバーの位置・方向計測処理のフローチャート
【図９】画像表示装置と処理サーバーの仮想オブジェクト表示処理のフローチャート
【図１０】画像表示装置と処理サーバーの新規仮想オブジェクト登録処理のフローチャート
【図１１】画像表示装置と処理サーバーの仮想オブジェクト閲覧ユーザ登録処理のフローチャート
【図１２】ディスプレイに表示される画面イメージの一例を示す図
【図１３】ユーザと仮想オブジェクトの位置・方向を示す俯瞰図
【図１４】ディスプレイを通して見ている仮想オブジェクトを導出する方法の概念図
【図１５】ディスプレイ上の仮想オブジェクト表示位置の算出処理を示す図
【図１６】第２の実施形態における画像表示装置と処理サーバーの仮想オブジェクト閲覧ユーザ登録処理のフローチャート
【図１７】第２の実施形態におけるユーザと仮想オブジェクトの位置・方向を示す俯瞰図
【図１８】第三の実施形態における画像表示装置と処理サーバーの仮想オブジェクト閲覧ユーザ登録処理のフローチャート
【図１９】第三の実施形態におけるユーザと仮想オブジェクトの位置・方向を示す俯瞰図
【図２０】第四の実施形態における画像表示装置と処理サーバーの仮想オブジェクト閲覧ユーザ登録処理のフローチャート
【図２１】第四の実施形態におけるユーザと仮想オブジェクトの位置・方向を示す俯瞰図
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について図面を用いて説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１５】
＜第１の実施形態＞
以下、本発明の第１の実施形態について図面を用いて説明する。図２は、画像表示装置０１００のハードウェアブロック図である。画像表示装置０１００の一例としては、ユーザの頭部に装着するヘッドマウントディスプレイ（ＨＭＤ）が挙げられる。ユーザは、画像表示装置０１００（ＨＭＤ）をメガネのように装着することが可能であり、画像表示装置０１００（ＨＭＤ）の前面に取り付けられたカメラ０２０２により、ユーザの向いている方向を撮像することができる。また、画像表示装置０１００（ＨＭＤ）の前面に取り付けられたディスプレイ０２０８により、ユーザは、画像表示装置０１００（ＨＭＤ）を装着したまま撮像画像を見ることができる。尚、カメラ０２０２、ディスプレイ０２０８は、図１の撮像部０１０１、表示部０１０９にそれぞれ相当し、ハードウェアの詳細は図２でさらに詳しく述べる。また画像表示装置０１００（ＨＭＤ）の外観は図４で述べる。
【００１６】
＜拡張現実表示システムの構成＞
まず、本実施形態の画像表示装置０１００と処理サーバー０３００とで構成された拡張現実表示システムの構成及び処理概要について説明する。各部の詳細は後述する。画像表示装置０１００は、撮像部０１０１により撮像された現実空間の撮像画像から、所定のパターンであるＡＲマーカの画像を検出する。検出されたＡＲマーカ画像の歪みや傾きから、カメラ０２０２の位置・方向を算出する。尚、「位置・方向」とは「位置及び方向」の意味であるが、いずれか一方の情報のみを使用する場合には、算出されるのは使用する情報のみであってもよい。また本実施形態では、カメラはユーザが装着するＨＭＤに固定されたカメラであることを前提としているので、カメラ位置はユーザ位置と、カメラ方向はユーザ方向とみなすことができ、カメラ位置・方向のことをユーザ位置・方向と呼ぶこともある。ＡＲマーカのパターンは予め定められており、紙媒体などに印刷される。前述のカメラ位置・方向から仮想オブジェクトの相対的な位置・方向を算出することにより、仮想オブジェクトを現実画像に存在するかのように表示部０１０６に重畳表示することが可能となる。本実施形態では、２次元のドキュメント画像を仮想オブジェクトとして想定する。
【００１７】
処理サーバー０３００は、ユーザ位置と仮想オブジェクトの位置・方向に基づき、仮想オブジェクトを閲覧するユーザを登録する閲覧ユーザ登録処理を行う。すなわち、サーバ０３００は閲覧ユーザの登録処理装置として機能する情報処理装置である。閲覧ユーザ登録処理は、仮想オブジェクトから所定距離以内、かつ、仮想オブジェクトの正面方向にいるユーザを特定し、該当するユーザを当該仮想オブジェクトの閲覧ユーザとして登録するする処理である。
【００１８】
尚、仮想オブジェクトを表示するためのカメラ位置・方向計測方法として、撮像画像中の特徴点を用いた手法もあるが、ＡＲマーカ画像からも特徴点を抽出できるため、本提案ではＡＲマーカ画像を用いた技術として説明する。
【００１９】
図１を参照して画像表示装置０１００、及び、処理サーバー０３００の各機能の詳細を説明する。撮像部０１０１は、画像表示装置０１００を装着しているユーザの向いている方向の現実空間画像を撮像し、撮像画像はユーザ位置・方向計測部０１０２に所定の間隔で送出される。所定の間隔は、毎秒５フレームなどの任意の値を設定できる。
【００２０】
ユーザ位置・方向計測部０１０２は、撮像部０１０１により撮像された画像中のＡＲマーカ画像の歪みからユーザの装着する画像表示装置０１００（ＨＭＤ）のカメラ０２０２の位置・方向（以降、ユーザ位置・方向と呼ぶ）を算出する。ユーザ位置および方向はそれぞれ、空間のデカルト座標としての位置を表すＸ、Ｙ、Ｚ成分と、方位角および仰俯角を表す成分として計測される。尚、ＡＲマーカ画像からユーザ位置・方向を計測する方法は周知の技術（引用文献４等参照）であるため、これ以上の説明は割愛する。計測されたユーザ位置・方向は、ユーザ位置・方向登録部０１０３に送出する。
【００２１】
ユーザ位置・方向登録部０１０３は、後述するネットワーク９０００と接続される処理サーバー０３００にユーザ位置・方向情報を送出する。さらに、画像表示装置０１００を装着しているユーザに紐付いているユーザ情報テーブル０４０１上のユーザＩＤのユーザ位置・方向情報の登録リクエストを定期的に送出する。尚、撮像部０１０１、ユーザ位置・方向計測部０１０２、ユーザ位置・方向登録部０１０３の一連の処理は、リアルタイムに処理され、各ユーザのユーザ位置・方向情報は所定の間隔で常に更新登録されているものとする。所定の間隔は毎秒５回などユーザ位置・方向計測部０１０２の計測回数を超えない範囲で任意の値に設定できる。
【００２２】
ユーザ情報テーブル０４０１は、各ユーザが装着している画像表示装置０１００から定期的に送られてくる各ユーザのユーザ位置・方向情報を保持する。例えば、ユーザＩＤ：０１のユーザ位置・方向情報は、図５の０５０１の行のユーザ位置（Ｘ、Ｙ、Ｚ）とユーザ方向（方位角）で表される。図５の説明は後述するため、ここでの詳細な説明は割愛する。
【００２３】
データ制御部０１０４は、様々な情報を格納し、各部の動作を制御することができる。例えば、ユーザ位置・方向計測部０１０２によって計測されたユーザ位置・方向のデータを格納する。格納されたデータと、仮想オブジェクトファイル情報取得部０１１０および仮想オブジェクト情報取得部０１０８により取得されたデータとから、仮想オブジェクト画像生成部０１０５で生成する仮想オブジェクトを、データ制御部０１０４は制御する。データ制御部０１０４は、ユーザ操作部０１１１から入力されたユーザの操作に基づいた画像表示装置０１００の制御も行う。データ制御部０１０４は、例えば、ユーザにより閲覧ユーザ登録の操作があった場合は、閲覧ユーザ登録要求部０１０９に閲覧ユーザ登録要求の実行を指示し、新仮想オブジェクトの登録操作があった場合は、仮想オブジェクト情報登録部０１０７に新仮想オブジェクト登録の実行を指示する。
【００２４】
仮想オブジェクト情報テーブル０４０２は、仮想オブジェクトＩＤに関連付けて、当該仮想オブジェクトに係る各種情報、例えば仮想オブジェクトの位置・方向と、横幅と、仮想オブジェクトの表示ユーザのＩＤと、閲覧ユーザのＩＤと、仮想オブジェクトのファイル名とを保持する。例えば、仮想オブジェクトＩＤが"０００１"の仮想オブジェクトの位置・方向情報は、図６の行０６０１の位置の列の値（Ｘ、Ｙ、Ｚ）と方向の列の値（方位角、仰俯角）で表される。また、仮想オブジェクトＩＤが"０００１"の仮想オブジェクトを表示したユーザのＩＤは、図６の０６０１行の、表示ユーザＩＤ列で表され、ここでは"０１"となる。同様に、仮想オブジェクトＩＤが"０００１"の仮想オブジェクトを閲覧可能なユーザのＩＤは、図６の０６０１行の、閲覧ユーザＩＤ列で表され、ここでは"０２"、"０３"となる。図６の説明は後述するため、これ以上の説明は割愛する。なお或るユーザが或る仮想オブジェクトを閲覧可能であるとは、本実施形態及びそのほかの実施形態では、当該ユーザが当該仮想オブジェクトの閲覧ユーザとして登録されていることと同義である。
【００２５】
仮想オブジェクト情報取得部０１０８は、処理サーバー０３００上の仮想オブジェクト情報テーブル０４０２から、仮想オブジェクトＩＤと、仮想オブジェクトの位置・方向と、表示ユーザＩＤと、閲覧ユーザＩＤと、仮想オブジェクトファイル名とを取得する。仮想オブジェクトの方向は、仮想オブジェクトの正面、すなわちユーザに対して見せたい面の方向を示している。
【００２６】
仮想オブジェクトファイル情報保持部０４０８は、仮想オブジェクトの表示する元となるファイル情報を保持する。例えば、保持するファイル情報として、ｔｘｔ形式や、ｐｄｆ形式などがあるが、所謂ディスプレイで表示可能なものであれば、任意のファイル情報を保持できる。
【００２７】
仮想オブジェクトファイル情報取得部０１１０は、処理サーバー０３００上の仮想オブジェクトファイル情報保持部０４０８から、仮想オブジェクトを表示する元となるファイル情報をネットワーク９０００を介して取得する。
【００２８】
ユーザ操作部０１１１は、操作部０２０５へのユーザの操作による入力をデータ制御部０１０４に出力する。例えば、ユーザ操作は、図４で示される操作部０２０５などのボタンにより行われる。また、ユーザが選択できる操作としては、図１２の画像表示装置０１００に表示される、新規オブジェクト登録１２０３、閲覧ユーザ登録１２０４、その他１２０５、設定１２０６、終了１２０７などがある。図１２と、各操作の詳細については後述するため、ここでの説明は割愛する。
【００２９】
仮想オブジェクト情報登録部０１０７は、画像表示装置０１００を装着するユーザが新たに表示した仮想オブジェクトの"位置・方向"と、"横幅"と、"表示ユーザＩＤ"と、"仮想オブジェクトファイル名"とを、仮想オブジェクト情報テーブル０４０２に送出し、新たな仮想オブジェクトとして登録する。例えば、ユーザＩＤが"０１"のユーザが、新たな仮想オブジェクトとして"ＡＢＣ．ｐｄｆ"というファイルを表示するとする。この場合、表示ユーザＩＤとして"０１"、ユーザの前方から所定距離離れた位置、ユーザの向いている方向の１８０度回転した方向、仮想オブジェクトの横幅、仮想オブジェクトの元になっているファイル名"ＡＢＣ．ｐｄｆ"を仮想オブジェクト情報テーブル０４０２に登録する。
【００３０】
閲覧ユーザ登録要求部０１０９は、ユーザによる閲覧ユーザ登録指示に基づき、閲覧ユーザ登録要求を処理サーバー０３００上の閲覧ユーザ登録部０４０３に行う。閲覧ユーザ登録処理は、処理サーバー０３００上で実行され、閲覧ユーザ登録要求部０１０９は、閲覧ユーザ登録処理の開始を閲覧ユーザ登録部０４０３に要求するだけである。閲覧ユーザ登録処理は、該処理の開始時点のユーザ、及び、仮想オブジェクトの位置・方向に基づいて処理され、算出された閲覧ユーザのＩＤが仮想オブジェクト情報テーブル０４０２に全て登録された時点で処理を終了する。閲覧ユーザ登録の要求は、前の閲覧ユーザ登録処理が終了していれば、ユーザの操作によって何回でも行うことができる。
【００３１】
仮想オブジェクト画像生成部０１０５は、画像表示装置０１００を装着するユーザの位置・方向情報と、表示する仮想オブジェクトの位置・方向情報と、仮想オブジェクトのファイル情報の各情報とから、表示部０１０６に表示する仮想オブジェクトの表示画像を生成し、表示部０１０６に送出する。表示画像の生成については、後述の図１４、図１５で述べるため、ここでの詳細な説明は割愛する。
【００３２】
表示部０１０６は、仮想オブジェクト画像生成部０１０５によって生成された画像を、画像表示装置０１００のディスプレイ０２０８に重畳表示する。
【００３３】
閲覧ユーザ登録部０４０３は、様々な情報を格納し、閲覧ユーザ登録処理動作を制御することができる。例えば、閲覧ユーザ算出部０４０４に閲覧ユーザを算出するよう要求し、算出された閲覧ユーザのＩＤを格納し、格納された閲覧ユーザＩＤを仮想オブジェクト情報テーブルの閲覧ユーザＩＤへ登録する。
【００３４】
閲覧ユーザ決定部０４０４は、ユーザ情報テーブル０４０１のユーザ位置、及び、仮想オブジェクト情報テーブル０４０２の仮想オブジェクトの位置に基づき、仮想オブジェクトの位置から所定距離以内にいるユーザを特定する。さらに、該仮想オブジェクトの方向に基づき、特定されたユーザの内、仮想オブジェクトの正面方向から所定角度以内にいるユーザを特定する。特定されたユーザは、閲覧ユーザであるとして決定され、そのＩＤが閲覧ユーザ登録制御部０４０３に送出され、仮想オブジェクト情報テーブル０４０２に登録される。
【００３５】
ユーザ密集度算出部０４０５は、仮想オブジェクトから所定距離と所定角度の範囲以内にいるユーザの数から、仮想オブジェクトの閲覧ユーザに登録されるユーザの密集度あるいは密度を算出する。なおこの範囲を、閲覧ユーザの登録範囲または閲覧範囲と呼ぶことにする。例えば、閲覧ユーザの数が３［人］おり、ユーザ登録範囲が６［ｍ2］の場合、ユーザ密集度は２［人／ｍ2］  となる。ユーザ密集度の詳細については、図１１で述べる。
【００３６】
対面ユーザ決定部０４０６は、閲覧ユーザ登録する際に仮想オブジェクトのある方向を向いているユーザを特定する。対面ユーザ算出部０４０６により、仮想オブジェクトを見ていないユーザは閲覧ユーザに登録しないといった処理が可能になる。処理の詳細については、実施形態２で述べる。したがって本実施形態のシステムでは、対面ユーザ算出部０４０６はなくともよい。
【００３７】
仮想オブジェクト境界算出部０４０７は、他のユーザが表示している仮想オブジェクトの閲覧ユーザ登録範囲と、自分の仮想オブジェクトの閲覧ユーザ登録範囲が重なる場合に、それぞれの仮想オブジェクトの閲覧ユーザ登録範囲、すなわちそれぞれの仮想オブジェクトの境界を決定する。例えば、隣接する二つの仮想オブジェクトを結ぶ線の垂直２等分線などを仮想オブジェクト境界とする。これによって、別のユーザの表示する仮想オブジェクトを閲覧しているユーザが、誤って自分の表示する仮想オブジェクトの閲覧ユーザに登録されるといったことが無くなる。処理の詳細については、実施形態３で述べる。したがって本実施形態及び実施形態２のシステムでは、仮想オブジェクト境界算出部０４０７はなくともよい。
【００３８】
＜画像表示装置０１００のハードウェア構成＞
図２は、画像表示装置０１００のハードウェアブロック図である。図２において、画像表示装置０１００は、ＣＰＵ０２０１、カメラ０２０２、ネットワークインタフェース０２０３、フラッシュメモリ０２０４、操作部０２０５、メインメモリ０２０６、グラフィックコントローラ０２０７、ディスプレイ０２０８から構成される。各要素はシステムバス０２０９で接続される。
【００３９】
フラッシュメモリ０２０４にはブートローダプログラム及び表示装置制御プログラムが格納されている。フラッシュメモリ０２０４は、ＲＯＭまたは書き換え可能なＲＯＭで置き換えることができる。ブートローダプログラムに関しては、本発明との関わりは薄いため説明は割愛する。
【００４０】
メインメモリ０２０６はＲＡＭなどの揮発性メモリであり、高速アクセスが可能なため、フラッシュメモリ０２０４に記憶されている情報や一時的に使用する情報はここに格納される。仮想オブジェクト表示装置０１００の電源投入時には、ＣＰＵ０２０１がブートローダプログラムを読み出して実行し、フラッシュメモリ０２０４に格納されている表示装置制御プログラムを取り出し、メインメモリ０２０６に格納する。そして、ＣＰＵ０２０１がメインメモリ０２０６に格納されている表示装置制御プログラムを実行し、仮想オブジェクト表示装置０１００の備える各機能を実行する。
【００４１】
仮想オブジェクト表示装置０１００はユーザに情報を提示する際に、ディスプレイ０２０８に情報を表示する。ディスプレイ０２０８は、液晶ディスプレイや有機ＥＬディスプレイなどの表示部品から成り、前景からの光が透過可能なディスプレイである。したがって、ユーザはディスプレイ０２０８を透過する前景に、ディスプレイ０２０８に表示した画像を重畳して視認することができる。
【００４２】
グラフィックコントローラ０２０７はディスプレイ０２０８への表示を制御する。カメラ０２０２は、レンズやＣＣＤ、ＣＭＯＳと呼ばれる撮像素子などの周知の部品から成り、撮像画像をデジタル変換する。ネットワークインタフェース０２０３は、ネットワーク９０００に接続している機器間との情報の授受を行う。
【００４３】
操作部０２０５は、画像表示装置０１００を装着するユーザが該装置を操作するために使われる。操作部０２０５は、ボタンやタッチパネルなどの周知のＵＩ部品から成り、ユーザは操作部０２０５を使って、ディスプレイ０２０８に映し出される項目の選択、文字入力、決定などを行うことができる。ディスプレイ０２０８上の項目を選択する際は、進む、戻るなどの異なるボタンの操作によってユーザの意図する項目を選択できる。あるいは、ユーザの指し示す位置を表すカーソルを表示し操作することによって、ユーザの意図する項目を指し示して選択できるようにしてもよい。
【００４４】
＜処理サーバー３００のハードウェア構成＞
図３は、図１に示した処理サーバー３００のハードウェア構成を説明するブロック図である。図３において、処理サーバー０３００は、ＣＰＵ０３０１、ネットワークインタフェース０３０２、ＨＤＤ０３０３、操作部０３０４、メインメモリ０３０５、グラフィックコントローラ０３０６、ディスプレイ０３０７から構成される。各要素はシステムバス０３０８で接続される。
【００４５】
ネットワークインターフェース０３０２は、ネットワーク９０００を介して接続されている他の機器との情報の授受を行う。ＨＤＤ０３０３にはブートローダプログラム及び本実施形態を含む処理サーバー制御プログラムが格納されている。ブートローダプログラムに関しては、本発明の特徴との関わりは薄いため説明は割愛する。処理サーバー制御プログラムには、閲覧ユーザ等労苦処理のためのプログラムも含まれる。メインメモリ０３０５は揮発性メモリであり、高速アクセスが可能であるので、ＨＤＤ０３０３に記憶されている情報や一時的に使用する情報はここに格納される。
【００４６】
処理サーバー０３００の電源投入時には、ＣＰＵ０３０１がブートローダプログラムを読み出して実行し、ＨＤＤ０３０３に格納されている処理サーバー制御プログラムを取り出し、メインメモリ０３０５に格納する。  そして、ＣＰＵ０３０１がメインメモリ０３０５に格納されている処理サーバー制御プログラムを実行し、処理サーバーの備える各機能を実行する。処理サーバー０３００は、情報を表示するディスプレイ０３０７を備える。
【００４７】
グラフィックコントローラ０３０６は、ディスプレイ０３０７への表示を制御する。処理サーバー０３００は、ユーザに情報を提示する際にはディスプレイ０３０７に情報を表示し、ユーザは、操作部０３０４に対する操作で処理サーバー０３００への情報入力が可能である。操作部０３０４は、例えばキーボードやマウスといった周知の部品から成る。
【００４８】
昨今、サーバーは一般的な技術となっており、その詳細技術は本発明とは直接関係しないため、これ以上の説明は割愛する。
【００４９】
図１、図２で示される、処理サーバー０３００に通信で接続された画像表示装置０１００は、ユーザ情報テーブル０４０１により、その位置・方向が管理され、ユーザ位置・方向登録部０１０３により、随時あるいは定期的にユーザ情報テーブル０４０１の位置・方向情報が更新されている。
【００５０】
図１、図３で示される処理サーバー０３００は、ネットワーク９０００に接続され、画像表示装置０１００と双方向通信が可能である。さらに、処理サーバー０３００は、図５、図６に示すようなテーブルから成るデータベース、例えばリレーショナル・データベースを有し、画像表示装置０１００のリクエストに応じて、データベースを更新することができる。データベース管理システムは、リレーショナル・データベースに関わらず、他の仕組みによるものであってもよい。
【００５１】
＜画像表示装置０１００（ＨＭＤ）＞
図４は画像表示装置０１００（ＨＭＤ）の外観を示す図である。本実施形態で用いる画像表示装置０１００（ＨＭＤ）は市販されているものと同様のものであり、フレーム０４１０で頭部に装着するようになっている。また、片目若しくは両目に透過型のディスプレイ０２０８が取り付けられた構造になっており、ユーザはディスプレイに表示された人工像（表示画像）と、ディスプレイ０２０８を透過した実像（前景）を同時に見ることが出来る。
【００５２】
画像表示装置０１００（ＨＭＤ）にはカメラ０２０２が取り付けられており、ユーザの目とほぼ同じ視点でユーザが見ている光景を撮像することが可能である。また、画像表示装置０１００（ＨＭＤ）には複数のボタンを含む操作部０２０５が取り付けられており、複数のボタンの押下により、画像表示装置０１００（ＨＭＤ）のディスプレイ０２０８に表示される項目（アイコン）を選択決定することや、画像表示装置０１００（ＨＭＤ）の電源をＯＦＦすることができる。尚、ここでは操作部０２０５をボタンとしたが、操作部はタッチパネルなどでもよく、ボタンに限定するものではない。
【００５３】
＜ユーザ情報テーブル０４０１＞
図５は、本実施形態のユーザ情報テーブル０４０１の例を示す図である。ユーザ情報テーブル０４０１は、処理サーバー０３００上で管理され、画像表示装置０１００、及び、処理サーバー０３００自身が発行するリクエストに応じて、テーブルの内容を登録更新できる。
【００５４】
行０５０１〜０５１０の各行は、各ユーザのユーザＩＤに関連づけられた、ユーザ位置情報と、ユーザ方向情報と、ユーザネームとを表している。例えば、行０５０１のユーザＩＤは"０１"、ユーザネームは"Ｙｕｒｉ  Ｓａｉｔｏ"として表される。そしてユーザ位置はＸ成分が"７８００"ミリメートル、Ｙ成分が"７３００"ミリメートル、Ｚ成分が"１６７０"ミリメートルとして表される。ただし、ここでは単位をミリメートルとしているが、メートルや他の距離を表す単位系でも良い。またユーザ位置を示す座標系の座標軸はひとつの処理サーバー０３００で管理される画像表示装置間で共通であれば良く、例えば各画像表示装置のカメラで撮影する共通のＡＲマーカの位置及び方向に応じて決定される。
【００５５】
また、ユーザ方向は、方位角が"１７０"度として表される。ただし、ここではｄｅｇｒｅｅ単位を用いたが、角度を表す単位はｒａｄｉａｎ単位でも良い。方位角は、"０"度を北方向とするならば、東、南、西はそれぞれ"９０"度、"１８０"度、"２７０"度と表される。方位角は、任意の方位を０度にすることができ、全てのユーザの方向がその基準の方位から何度であるかが分かればよい。ユーザ方向についても、その位置を示す座標系の座標軸が決まっていることから、カメラ位置を通り前記特定の座標軸と平行な軸周りの角度を方位角とし、特定の座標軸に直交する平面を基準平面として上または下向きの角度を仰角と定める。仰角は、基準平面に直交する平面上の角度として示される。これは一例であるが、いずれにしても、方向の基準となる座標軸が決められ、各画像表示装置間でそれが共有されていればよい。方位角の基準平面はどのように定めてもよいが、東西南北の軸を含む概ね水平な平面とするのが便宜であるので、本実施形態ではそのように定める。
【００５６】
行０５０２〜０５１０の各行は、行０５０１と同様の性質のユーザ毎に異なる情報を表す。
【００５７】
＜仮想オブジェクト情報テーブル０４０２＞
図６は、本実施形態の仮想オブジェクト情報テーブル０４０２の例を示す図である。仮想オブジェクト情報テーブル０４０２は、処理サーバー０３００上で管理され、画像表示装置０１００、及び、処理サーバー０３００自身が発行するリクエストに応じて、テーブルの内容を更新できる。
【００５８】
行０６０１、０６０２の各行は、各仮想オブジェクトの仮想オブジェクトＩＤに関連付けられた、仮想オブジェクトの位置・方向情報と、横幅と、当該仮想オブジェクトを表示しているユーザのＩＤと、当該仮想オブジェクトを閲覧可能なユーザであることを示す閲覧ユーザＩＤと、仮想オブジェクトファイル名とを表している。
【００５９】
例えば、行０６０１の仮想オブジェクトＩＤは"０００１"であり、その位置は、Ｘ成分が"６５００"ミリメートル、Ｙ成分が"６０００"ミリメートル、Ｚ成分が"１０００"ミリメートルとして表される。ここでの単位はミリメートルであるが、メートルや他の距離を表す単位でも良い。方向は、方位角が"１８０"度、仰俯角が"０"度として表される。ただし、ここではｄｅｇｒｅｅ単位を用いたが、角度を表す単位はｒａｄｉａｎ単位でもよい。仰俯角は、"０"度が水平方向であり、"９０"度が天頂方向、"−９０"度が鉛直方向を表す。なお仮想オブジェクトの位置及び方向の座標系は、ユーザの位置及び方向の座標系と共通であるか、あるいは別々の場合であっても座標系を相互に変換する写像が知られているものである。
【００６０】
図６において、表示ユーザＩＤは図５のユーザＩＤと紐付けられている。例えば、０６０１行の仮想オブジェクトＩＤ"０００１"の仮想オブジェクトは、ユーザＩＤが"０１"のユーザが表示した仮想オブジェクトと分かり、該ユーザＩＤからユーザ位置・方向情報なども得ることができる。
【００６１】
仮想オブジェクトＩＤ"０００１"を持つ仮想オブジェクトの閲覧ユーザＩＤは"０２"、"０３"であり、これも図５のユーザＩＤと紐付けられている。例えば、０６０１行の仮想オブジェクトＩＤ"０００１"の仮想オブジェクトは、ユーザＩＤが"０２"、"０３"のユーザが仮想オブジェクトを閲覧可能であると分かり、該ユーザＩＤからユーザ位置・方向情報なども得ることができる。
【００６２】
仮想オブジェクトファイル名は、仮想オブジェクトの表示元のファイル名を表している。例えば、０６０１行から"ＡＢＣ．ｐｄｆ"という名前のファイルを仮想オブジェクトとして表示していることが分かる。
【００６３】
＜画像表示装置（ＨＭＤ）の全体処理フロー＞
図７は本実施形態の画像表示装置０１００（ＨＭＤ）の全体処理フローである。本フローチャートのＳ０７０１からＳ０７１３は、画像表示装置０１００のフラッシュメモリ０２０４に格納されたプログラムをＣＰＵ０２０１が実行することによって実現される。
【００６４】
Ｓ０７０１では、画像表示装置０１００の初期化処理を行う。初期化処理によって、画像表示装置０１００のブートプログラムが起動し、カメラ０２０２、ディスプレイ０２０８などの各部が使えるようになる。
【００６５】
Ｓ０７０２では、画像表示装置０１００のカメラ０２０２による撮像画像から、画像表示装置０１００を装着するユーザの位置・方向計測処理を行う。詳細は図８で述べるため、ここでの説明は割愛する。Ｓ０７０３では、画像表示装置０１００のディスプレイ０２０８に仮想オブジェクトを表示する処理を行う。詳細は図９で述べるため、ここでの説明は割愛する。
【００６６】
Ｓ０７０４では、画像表示装置０１００を装着しているユーザが、操作部０２０５に入力を行ったかどうかを判定する。例えば、画像表示装置０１００のボタンを押下した場合、入力があったと判定される。
【００６７】
Ｓ０７０５では、Ｓ０７０４の入力が、新規仮想オブジェクト登録指示であるかどうかを判定する。例えば、図１２で示されるアイコン１２０３を選択決定した場合、新規仮想オブジェクトの登録指示であると判定される。Ｓ０７０６では、Ｓ０７０５の指示を受け、新規仮想オブジェクトの登録処理を行う。詳細は図１０で述べるため、ここでの説明は割愛する。
【００６８】
Ｓ０７０７では、Ｓ０７０４の入力が、仮想オブジェクトの閲覧ユーザ登録指示であるかどうかを判定する。例えば、図１２で示されるアイコン１２０４を選択決定した場合、仮想オブジェクトの閲覧ユーザ登録指示であると判定される。Ｓ０７０８では、Ｓ０７０７の指示を受け、仮想オブジェクトの閲覧ユーザ登録処理を行う。詳細は図１１で述べるため、ここでの説明は割愛する。
【００６９】
Ｓ０７０９では、Ｓ０７０４の入力が、画像表示装置０１００の設定指示であるかどうかを判定する。例えば、図１２で示されるアイコン１２０６を選択決定した場合、画像表示装置０１００の設定指示であると判定される。設定指示には、仮想オブジェクト情報テーブル０４０２のパラメータ（位置、方向、横幅）変更処理などが含まれる。
Ｓ０７１０では、Ｓ０７０９の指示を受け、画像表示装置０１００の各種設定処理を行う。例えば、各種設定処理では、閲覧ユーザ登録処理時の、所定距離、所定角度などの値を、ユーザの設定する値に変更することができる。Ｓ０７１１では、Ｓ０７０４の入力が、画像表示装置０１００のその他指示であるかどうかを判定する。例えば、図１２で示されるアイコン１２０５を選択決定した場合、画像表示装置０１００のその他指示であると判定される。その他指示には、仮想オブジェクトの表示終了処理などが含まれる。仮想オブジェクト表示終了処理は、表示されている仮想オブジェクトの画像生成の終了と、仮想オブジェクト情報テーブル０４０２から該仮想オブジェクトを消去することで行われる。Ｓ０７１２では、前述の処理以外のその他処理を行う。その他の処理は、画像表示装置０１００（ＨＭＤ）で一般的に行われる処理を表す。例えば、動画を視聴することなどがその他の処理に含まれるが、処理の詳細は本発明とは直接関係しないため、これ以上の説明は割愛する。
【００７０】
Ｓ０７１３では、Ｓ０７０４の入力が、画像表示装置０１００の終了指示であるかどうかを判定する。例えば、図１２で示されるアイコン１２０７を選択決定した場合、画像表示装置０１００の終了指示であると判定される。終了指示であると判定された場合、画像表示装置０１００は、それまでの処理を全て終了し、そうでなければＳ０７０２へ戻る。
【００７１】
＜画像表示装置と処理サーバーとによる位置・方向計測処理フロー＞
図８は本実施形態の画像表示装置０１００（ＨＭＤ）と処理サーバー０３００とによる位置・方向計測処理フローである。本フローチャートのＳ０８０１からＳ０８０４は、画像表示装置０１００のフラッシュメモリ０２０４に格納されたプログラムをＣＰＵ０２０１が実行することによって実現される。また、本フローチャートのＳ０８０５は、処理サーバー０３００のＨＤＤ０３０３に格納されたプログラムをＣＰＵ０３０１が実行することによって実現される。
【００７２】
Ｓ０８０１では、カメラ０２０２で撮像した現実空間の画像を取得する。すなわち、その時点でカメラ０２０２により撮影した画像データを取得して特定の保存場所に保存する。Ｓ０８０２では、Ｓ０８０１で取得された画像から所定のパターンであるＡＲマーカ画像を検出する。ＡＲマーカ画像は、たとえば紙媒体などに印刷された所定のパターンであり、ＡＲマーカ画像の撮像画像から幾何学計算によってカメラ０２０２カメラ位置・方向を算出できるものであればその形状は問わない。
【００７３】
Ｓ０８０３では、Ｓ０８０２で検出されたＡＲマーカ画像を用いて、カメラ０２０２のカメラ位置・方向を算出する。カメラ位置・方向は、空間のデカルト座標としての位置を表すＸ、Ｙ、Ｚ成分と、方位角・仰俯角を表す成分として計測される。カメラ位置・方向の算出方法は図１で述べたため、ここでの説明は割愛する。
【００７４】
Ｓ０８０４では、Ｓ０８０３で算出されたカメラ位置・方向情報をＨＭＤ装着ユーザのユーザ位置・方向として、ユーザ情報テーブル０４０１に登録要求する。具体的には、算出されたカメラ位置（Ｘ、Ｙ、Ｚ）と、カメラの方向情報（方位角）とを、図５のユーザ情報テーブル０４０１の、当該ユーザの行のユーザ位置列、ユーザ方向列に登録するよう要求する。
【００７５】
一方処理サーバー０３００は、Ｓ０８０５では、画像表示装置０１００のカメラ位置・方向情報の登録要求を受け、ユーザ情報テーブル０４０１にカメラ位置・方向情報を、当該ユーザのユーザ位置・方向情報として登録する。
【００７６】
＜仮想オブジェクト表示処理フロー＞
図９は本実施形態の画像表示装置０１００（ＨＭＤ）と処理サーバー０３００の仮想オブジェクト表示処理フローである。本フローチャートのＳ０９０１からＳ０９０７は、画像表示装置０１００のフラッシュメモリ０２０４に格納されたプログラムをＣＰＵ０２０１が実行することによって実現される。また、本フローチャートのＳ０９０８、Ｓ０９０９は、処理サーバー０３００のＨＤＤ０３０３に格納されたプログラムをＣＰＵ０３０１が実行することによって実現される。尚、Ｓ０９０８、Ｓ０９０９の処理は処理サーバー０３００上で非同期に行われるものとする。
【００７７】
Ｓ０９０１では、処理サーバー０３００上の仮想オブジェクト情報テーブル０４０２の情報の取得要求を行う。具体的には、テーブル上の全ての仮想オブジェクトの位置、方向、横幅、表示ユーザＩＤ、閲覧ユーザＩＤ、仮想オブジェクトファイル名を取得するよう要求する。
【００７８】
Ｓ０９０２では、Ｓ９００１で取得された仮想オブジェクトの表示ユーザＩＤ、及び、閲覧ユーザＩＤに、画像表示装置０１００のユーザのＩＤが含まれるか否かを判定する。判定は、たとえばユーザ情報テーブル０４０１で、表示ユーザＩＤと閲覧ユーザＩＤとを検索し、いずれかがヒットすれば含まれていると判定する。含まれる場合は、当該ユーザが表示すべき仮想オブジェクトがあると判定され、Ｓ０９０３へ進む。そうでなければ仮想オブジェクト表示処理を終了する。尚、ここでは、仮想オブジェクトの表示ユーザＩＤ、及び、閲覧ユーザＩＤに当該ユーザのＩＤが含まれさえすれば、仮想オブジェクトと当該ユーザの距離に関わらず、当該ユーザの画像表示装置に全ての仮想オブジェクトを表示するとする。ただし、仮想オブジェクトと当該ユーザの距離を算出し、例えば５０ｍ以上などの一定距離以上遠くにある仮想オブジェクトは表示しないようにしてもよい。
【００７９】
Ｓ０９０３では、Ｓ０９０２で表示すべきと判定された仮想オブジェクトのファイル情報を既に取得しているか否かを判定する。例えば、図６の０６０１行の仮想オブジェクトの場合、仮想オブジェクトのファイル名である"ＡＢＣ．ｐｄｆ"と同じファイルが既に画像表示装置０１００に保持されているかどうかを判定する。ファイルを保持していれば、表示する仮想オブジェクトのファイル情報を取得しているとみなし、Ｓ０９０５へ進み、そうでなければＳ０９０４へ進む。Ｓ０９０４では、表示すべき仮想オブジェクトのファイル情報を保持していないため、処理サーバーに対してその取得要求を行う。例えば、仮想オブジェクトのファイル名が"ＡＢＣ．ｐｄｆ"の場合、"ＡＢＣ．ｐｄｆ"の本体ファイルデータの取得を要求する。
【００８０】
Ｓ０９０５では、仮想オブジェクトの表示位置を算出する。仮想オブジェクトの表示位置は、表示しているユーザと仮想オブジェクトの位置・方向に基いて算出する。表示位置の算出方法に関する詳細は、図１４、図１５で述べるため、ここでの説明は割愛する。
【００８１】
Ｓ０９０６では、Ｓ０９０５の表示位置に基づき、画像表示装置０１００のディスプレイ０２０８に表示する仮想オブジェクトの画像を生成する。仮想オブジェクトの画像は、表示ユーザと仮想オブジェクトの方向（方位角、仰俯角）に基づき、表示ユーザにとって仮想オブジェクトがある方向を向いているかのように生成される。例えば、表示ユーザが０度、仮想オブジェクトが１８０度の方位角を向いていた場合、仮想オブジェクトはユーザに対して正面方向を向いているように生成される。
【００８２】
Ｓ０９０７では、Ｓ０９０６の画像をディスプレイ０２０８に表示する。例えば、ドキュメント画像などがディスプレイ０２０８に表示される。これにより、ユーザは実際のドキュメントがそこにあるかのように見ることができる。
【００８３】
＜新規仮想オブジェクト登録処理＞
図１０は本実施形態の画像表示装置０１００（ＨＭＤ）と処理サーバー０３００による新規仮想オブジェクト登録処理フローである。本フローチャートのＳ１００１からＳ１００５は、画像表示装置０１００のフラッシュメモリ０２０４に格納されたプログラムをＣＰＵ０２０１が実行することによって実現される。また、本フローチャートのＳ１００６、Ｓ１００７は、処理サーバー０３００のＨＤＤ０３０３に格納されたプログラムをＣＰＵ０３０１が実行することによって実現される。尚、Ｓ１００６、Ｓ１００７の処理は処理サーバー０３００上で非同期に行われるものとする。
【００８４】
Ｓ１００１では、処理サーバー０３００に対して仮想オブジェクトのファイル情報のリスト取得要求を行う。具体的には、処理サーバー０３００上に保持される"ＡＢＣ．ｐｄｆ"、"ＤＥＦ．ｐｄｆ"などのファイル情報のファイル名をリストとして取得する。
【００８５】
Ｓ１００２では、Ｓ１００１で取得された、例えばファイル名を含むファイル情報のリストトを、画像表示装置０１００（ＨＭＤ）のディスプレイ０２０８に表示（不図示）する。例えば、ファイル情報リストは、ユーザが後で選択決定しやすいように、アルファベット順や、ファイル情報が格納されるフォルダ毎に表示される。また、表示しきれないファイル情報リストは、進むボタン・戻るボタンの押下などの操作によって全て表示可能であるとする。操作は、ディスプレイ０２０８に表示されるアイコンの選択などによってもよく、リストから任意のファイルを選択できればこれに限定しない。
【００８６】
Ｓ１００３では、画像表示装置０１００（ＨＭＤ）を装着するユーザによって、新規仮想オブジェクト登録キャンセルが選択されたか否かを判定する。新規仮想オブジェクト登録キャンセルは、ディスプレイ０２０８上に表示されるアイコン（不図示）のタップにより実行可能である。また、リストからファイルを選択するとき、ユーザはいつでも新規仮想オブジェクト登録キャンセルのアイコンをタップすることができ、新規仮想オブジェクト登録処理を終了することができる。
【００８７】
Ｓ１００４では、Ｓ１００２で表示されたファイル情報リストから、ある一つのファイルの登録が決定されたかどうかを判定する。登録するファイルの決定は、ディスプレイ０２０８上に表示されるアイコン（不図示）のタップにより実行可能である。また、リストからファイルを選択するとき、ファイルを選択し次第、ユーザはいつでもファイルの登録決定アイコンをタップすることができる。例えば、ファイルとして"ＤＦＧ．ｐｄｆ"などが選択され、そのとき登録決定のアイコンをタップすると、"ＤＦＧ．ｐｄｆ"というファイルが新規に登録される仮想オブジェクト（すなわち新規仮想オブジェクト）として決定されたとみなされる。
【００８８】
Ｓ１００５では、Ｓ１００４で登録決定されたファイルを新規仮想オブジェクトとして登録するよう処理サーバー０３００に要求する。具体的には、処理サーバー０３００上の仮想オブジェクト情報テーブル０４０２に対して、図６で示されるような仮想オブジェクト情報を新しく作成する。例えば、仮想オブジェクト情報テーブル０４０２に行０６０１のみがあるとき、ユーザ（ＩＤ：０８）が"ＤＦＧ．ｐｄｆ"というファイルを新規仮想オブジェクトとして登録することで、仮想オブジェクトとして図６の行０６０２が仮想オブジェクト情報テーブル０４０２に追加される。このとき、新たな仮想オブジェクトの仮想オブジェクトＩＤ、位置、方向、横幅、表示ユーザＩＤ、仮想オブジェクトファイル名が同時に登録される。したがって、これらの情報も処理サーバー０３００に送信される。この例では、仮想オブジェクトＩＤは、それまでの仮想オブジェクトＩＤと重ならない新たな値として"０００２"が登録される。仮想オブジェクトの表示位置としては、ユーザＩＤ：０８のユーザの正面近くに配置される位置が登録され、方向は該ユーザと向き合う位置が登録される。具体的には、ユーザＩＤ：０８のＸ、Ｙ座標と方位角が（１４３００、８１００）、４５度であった場合、仮想オブジェクトはユーザの前方に位置するＸ、Ｙ座標、方位角の（１５０００、７４００）、２２５度が登録される。仮想オブジェクトの横幅は、ファイルのサイズ属性によって決まる。具体的には、Ａ４のデータであれば、横幅は２１０ｍｍとなる。表示ユーザＩＤは、新規仮想オブジェクトを登録したユーザのＩＤとなる。閲覧ユーザＩＤは、新規仮想オブジェクトの登録時は空であり、閲覧ユーザの登録処理時に該当するユーザのＩＤが登録される。仮想オブジェクトファイル名は、登録した新規仮想オブジェクトのファイル名が入る。尚、仮想オブジェクトの位置、仰俯角は予めユーザが任意の値に設定することができる。仮想オブジェクトの位置は、例えば座標値で入力してもよいし、また例えば指定したユーザに対する方向および距離といった相対的な位置として入力してもよい。この場合座標値は、入力された距離と高さとから算出される。仮想オブジェクト情報テーブル０４０２の各種パラメータはＳ０７１０の設定操作によって後から変更することが可能である。
【００８９】
一方、処理サーバー０３００は、Ｓ１００６では、画像表示装置０１００（ＨＭＤ）からのファイル情報のリスト取得要求に応じて、処理サーバー０３００上の仮想オブジェクトファイル情報保持部０４０８の全てのファイル名をリストとして画像表示装置０１００（ＨＭＤ）へ送出する。
【００９０】
また処理サーバー０３００は、Ｓ１００７では、Ｓ１００５の新規仮想オブジェクト登録要求に従い、新規仮想オブジェクトを仮想オブジェクト情報テーブル０４０２に登録する。登録する内容詳細はＳ１００５で述べた通りである。
【００９１】
＜閲覧ユーザ登録処理＞
図１１は本実施形態の画像表示装置０１００（ＨＭＤ）と処理サーバー０３００による、仮想オブジェクトの閲覧ユーザの登録処理フローである。
本フローチャートのＳ１１０１は、画像表示装置０１００のフラッシュメモリ０２０４に格納されたプログラムをＣＰＵ０２０１が実行することによって実現される。また、本フローチャートのＳ１１０２〜Ｓ１１１３は、処理サーバー０３００のＨＤＤ０３０３に格納されたプログラムをＣＰＵ０３０１が実行することによって実現される。
【００９２】
画像表示装置０１００は、Ｓ１１０１では、画像表示装置０１００（ＨＭＤ）を装着するユーザによる閲覧ユーザ登録指示に従い、該ユーザが表示ユーザとなっている仮想オブジェクトの閲覧ユーザを登録するよう、処理サーバー０３００に要求する。ある仮想オブジェクトについて、その表示ユーザのみに閲覧ユーザの登録の権限を与え、他のユーザによる閲覧ユーザの登録指示は受け付けないよう構成してもよい。例えば、ユーザＩＤ：０１のユーザが閲覧ユーザ登録処理を行ったとする。図６の仮想オブジェクト情報テーブルから、ユーザＩＤ：０１のユーザは仮想オブジェクトＩＤ：０００１の仮想オブジェクトの表示ユーザであることが分かる。従って、処理サーバー０３００では、該仮想オブジェクト（仮想オブジェクトＩＤ：０００１）の閲覧ユーザ登録処理が行われる。ここでは、閲覧ユーザの登録処理対象となる仮想オブジェクトを、着目仮想オブジェクトと呼ぶことにする。
【００９３】
Ｓ１１０２では、Ｓ１１０１の閲覧ユーザ登録要求を受信し、要求元の画像表示装置０１００（ＨＭＤ）を装着するユーザが表示している着目仮想オブジェクトの閲覧ユーザ登録処理を開始する。以降では、図６の仮想オブジェクトＩＤ：０００１の閲覧ユーザを登録する例をあげる。ただし、図６の閲覧ユーザＩＤ［０２、０３］はこの時点では登録されていないものとする。
【００９４】
Ｓ１１０３では、仮想オブジェクト情報テーブル０４０２から、着目仮想オブジェクトの位置・方向情報を取得する。ここでは、仮想オブジェクトＩＤ：０００１のＸ、Ｙ座標（６５００、６０００）と方位角１８０度を取得する。
【００９５】
Ｓ１１０４では、ユーザ情報テーブル０４０１から、全てのユーザの位置情報を取得する。例えば、図５に示すユーザＩＤ：０３のユーザの場合、Ｘ、Ｙ座標（５１００、７７００）を取得する。図１３に図５、図６のユーザと仮想オブジェクトの配置イメージを記載したので、配置イメージを参照しながら説明を行う。図１３の見方は後述する。
【００９６】
Ｓ１１０５では、Ｓ１１０３、Ｓ１１０４で取得した情報から、仮想オブジェクトの所定距離以内にいるユーザを判定する。所定距離は、たとえば表示ユーザが入力することができる。具体的には、所定距離が５ｍの場合、仮想オブジェクトのＸ、Ｙ座標から５ｍ以内にいるユーザを決定する。例えば、図５に示されるユーザが場にいるとき、Ｘ、Ｙ座標が（６５００、６０００）の仮想オブジェクトの５ｍ以内にいるユーザは、３平方の定理からユーザＩＤが"０２"、"０３"のユーザであると判定される。ただし、ユーザＩＤが"０１"のユーザは、仮想オブジェクトの表示ユーザであるため閲覧ユーザから除外される。尚、図１３（ａ）では、破線１３０４の円弧部分が、所定距離５ｍの境界イメージである。
【００９７】
Ｓ１１０６では、Ｓ１１０５で着目仮想オブジェクトから所定距離内にあると判定された全てのユーザが既に着目仮想オブジェクトの閲覧ユーザとして登録されているかどうかを判定する。具体的には、仮想オブジェクト情報テーブル０４０２の着目仮想オブジェクトの閲覧ユーザＩＤとして、Ｓ１１０５で判定されたユーザＩＤが登録されているか否かによって判定する。登録されている場合は、新たな閲覧ユーザを登録することがないため、閲覧ユーザ登録処理を終了し、閲覧ユーザとして未登録のユーザがいる場合はＳ１１０７に進む。なおここで未登録と判定されたユーザを登録候補ユーザと呼ぶことにする。
【００９８】
Ｓ１１０７では、Ｓ１１０５で判定されたユーザの内の、閲覧ユーザとして未登録のユーザと、着目仮想オブジェクトの正面方向とのなす角度を算出する。具体的には、まず仮想オブジェクト情報テーブル０４０２に登録された着目仮想オブジェクトの位置、横幅、角度から仮想オブジェクトの両端点の位置を求める。次に、両端点の位置からユーザ情報テーブル０４０１に基づいた登録候補ユーザのユーザ位置までの２つのベクトルを求める。そして、各ベクトルと着目仮想オブジェクトの向いている方向のベクトルとのそれぞれの内積から、着目仮想オブジェクトの両端点から登録候補ユーザの位置までのそれぞれのべクトルと着目仮想オブジェクトの方向ベクトルとが成す角度を算出する。なおここで求めるベクトルは、ＸＹ平面内のベクトルであり、高さ（Ｚ）方向の成分は持たないものとする。例えば、ユーザＩＤ：０３のユーザと着目仮想オブジェクトのなす角度は、図１３の角度αとして算出される。角度αは、仮想オブジェクトの片方の端点からユーザを結ぶ線のベクトルと、仮想オブジェクトの方向ベクトルの内積から算出することができる。図１３（ａ）では、着目仮想オブジェクトの一方の端点（６０００、６０００）からユーザＩＤ：０３（５１００、７７００）を結ぶベクトルと、仮想オブジェクトの方向ベクトルとにより、角度αは約２９．９度と算出することができる。同様に、もう一方の端点からも角度を算出できる。なお仮想オブジェクトの端点のＸ、Ｙ座標は、仮想オブジェクトの中心位置から、当該仮想オブジェクトの方位角に直交する両方向に向けてそれぞれ横幅の２分の１の長さを伸ばした位置の座標とする。図１３（ａ）の例では、中心位置（６５００、６０００）と方位角（１８０度）と横幅（１０００）とにより、位置（６０００、６０００）、及び位置（７０００、６０００）と算出する。
【００９９】
Ｓ１１０８では、Ｓ１１０７で算出された２つの角度が、閲覧ユーザとして登録される所定角度以内であるかどうかを判定する。具体的には、Ｓ１１０７で算出された２つの角度の内、どちらか一方が所定角度以内であれば、所定角度以内であると判定される。例えば所定角度が４５度（図１３の角度φに相当）の場合、ユーザＩＤ：０３のユーザは、当該ユーザから着目仮想オブジェクトの近い方の端点に至る仮想線とのなす角度が約２９．９度（図１３のαに相当）なので、所定角度以内であると判定される。所定角度以内であると判定された場合は、Ｓ１１０９へ進み、そうでなければＳ１１１０へ進む。
【０１００】
Ｓ１１０９では、Ｓ１１０８で所定角度以内であると判定されたユーザを閲覧ユーザとして登録する。具体的には、Ｓ１１０８で条件に該当すると判定されたユーザＩＤを仮想オブジェクト情報テーブル０４０２の閲覧ユーザＩＤ列に追記することで登録を行う。例えば、ユーザＩＤ：０３のユーザが閲覧ユーザであると判定された場合、図６仮想オブジェクト情報テーブル０４０２の０６０１行の閲覧ユーザＩＤに"０３"を追記登録する。
【０１０１】
Ｓ１１１０では、閲覧ユーザに未登録の全ての登録候補ユーザに対してＳ１１０７〜Ｓ１１０８の判定処理が行われたかどうかを判定する。全てのユーザが判定された場合はＳ１１１１へ進み、そうでなければＳ１１０７へ戻り、次の登録候補ユーザの判定処理を行う。
【０１０２】
Ｓ１１１１では、着目仮想オブジェクトの閲覧ユーザの登録範囲と、登録されている閲覧ユーザの数とから、ユーザ密集度を算出する。閲覧ユーザの登録範囲は、仮想オブジェクトの両端点を結ぶ線分から正面側の所定距離以内の面を表す。ただし、仮想オブジェクトの端から所定角度を越える面は範囲外とする。例えば、後述する図１３（ａ）では、閲覧ユーザの登録範囲が、破線１３０４で囲まれる扇形の範囲として算出される。このとき、図１３（ａ）の仮想オブジェクト１３０１の閲覧ユーザ登録範囲の面積が２０ｍ2とすると、表示ユーザを除く閲覧ユーザは２人なので、ユーザ密集度は、２人／２０ｍ2＝０．１［人／ｍ2］となる。また、図１３（ｂ）の場合、表示ユーザを除く閲覧ユーザが４人となり、破線１３０４で囲まれる範囲のユーザ密集度は、４／２０＝０．２［人／ｍ2］となる。
【０１０３】
Ｓ１１１２では、Ｓ１１１１で算出されたユーザ密集度が予め定められた閾値以下であるかどうかを判定する。例えば、閾値は０．１５［人／ｍ2］などのように定められる。ユーザ密集度が閾値以下の場合は、閲覧ユーザ登録処理を終了し、そうでなければＳ１１１３へ進む。閾値は、ユーザ（例えば表示ユーザ）による設定によって任意の値に変えることができる。
【０１０４】
Ｓ１１１３では、Ｓ１１１１で算出されたユーザ密集度が、Ｓ１１１２で判定される閾値以下になるよう、閲覧ユーザの登録範囲を拡張する。具体的には、仮想オブジェクトからの所定距離と、所定角度の値を大きくすることで、閲覧ユーザの登録範囲を拡張する。例えば、閾値が０．１５［人／ｍ2］のとき、図１３（ｂ）の破線１３０４で囲まれる範囲はユーザ密集度が０．２［人／ｍ2］であるので、０．１５［人／ｍ2］になるよう閲覧ユーザの登録範囲を拡張する。このとき、図１３（ｂ）の一点鎖線１３０５で囲まれる範囲を新たな閲覧ユーザの登録範囲とすることで、ユーザ密集度が０．１５以下になる。これにより、場の人の密度に応じて自動で閲覧ユーザの登録範囲を変えることができるので、ユーザの設定によらず、広範囲のユーザを閲覧ユーザとして登録することができる。Ｓ１１１３における登録範囲の拡張は、例えばＳ１１０５で判定される着目仮想オブジェクトの端点からの距離を、所定長さ伸ばすことで行う。ただし、登録範囲の拡張によりユーザ密集度が必ず所定閾値以下となるとは限らないので、Ｓ１１１２では、密集度が閾値以下か、あるいは、Ｓ１１１３で拡張を行った回数が所定回数を超えたことを判定し、いずれか一方が満たされれば、図１１の処理を終了させるのか望ましい。また、図１１では、拡張した範囲に新たな登録候補ユーザが見つからなければＳ１１０６でＹＥＳとなり、ユーザ密集度を改めて判定することなく処理は終了することから、拡張した範囲に新たな登録候補ユーザが見つからない場合にはユーザ密集度が所定閾値以下となるように、現在の閲覧ユーザ数と登録範囲とに基づいて登録範囲を面積を決定し、その面積となるように例えば着目仮想オブジェクトの端点からの距離を延長することが望ましい。
【０１０５】
以上の手順により、着目仮想オブジェクトから所定の方向に広がる所定の範囲内にいるユーザを、ユーザが煩雑な操作を行うことなく、閲覧ユーザとして登録することができる。なお、Ｓ１１１１乃至Ｓ１１１３は、密集度が高ければ、現在の閲覧範囲外にさらに閲覧を希望するユーザがいることが予想されることから閲覧範囲を拡張すべく実行される。そのため、Ｓ１１１０〜Ｓ１１１３を省いても、閲覧ユーザの自動登録という機能を果たすことはできる。
【０１０６】
図１２は、図１３のユーザＩＤ：０１のユーザが画像表示装置０１００（ＨＭＤ）のディスプレイ０２０８を通して見ている視界イメージである。
【０１０７】
視界１２０１は、画像表示装置０１００（ＨＭＤ）のディスプレイ０２０８を透過して見えている前景と仮想オブジェクト画像が重畳表示された視界である。仮想オブジェクト１３０１は、ディスプレイ０２０８に重畳表示されている仮想オブジェクトの、２次元に投影されたイメージである。
【０１０８】
アイコン１２０２は、図７のＳ０７０５の新規仮想オブジェクトの登録指示時にユーザがタップする新規オブジェクト登録アイコンのイメージである。アイコン１２０３は、図７のＳ０７０７の閲覧ユーザの登録指示時にユーザがタップする閲覧ユーザ登録アイコンのイメージである。アイコン１２０４は、図７のＳ０７０９の設定指示時にユーザがタップする設定アイコンのイメージである。アイコン１２０５は、図７のＳ０７１１のその他指示時にユーザがタップするその他アイコンのイメージである。アイコン１２０６は、図７のＳ０７１３の終了指示時にユーザがタップする終了アイコンのイメージである。
図１３は、画像表示装置０１００の一実施形態として、ＨＭＤを装着したユーザの位置と仮想オブジェクトの位置・方向を示している場の俯瞰図である。図１３（ａ）、（ｂ）では、共に複数のユーザが場に存在し、仮想オブジェクト１３０１が表示されている。図１３（ａ）、（ｂ）の座標軸１３０２は、仮想オブジェクトの表示を行う空間を上方向から見た座標を示しており、Ｘ、Ｙ、Ｚが、図５のユーザ情報テーブル０４０１および図６の仮想オブジェクト情報テーブルの位置に、θが方位角に相当している。図１３は俯瞰図であるため、仰俯角は図示されていないが、実際には仰俯角も存在している。
【０１０９】
図１３（ａ）、（ｂ）の原点１３０３は、座標原点（０，０，０）を示しており、この原点からの相対的な位置を各ユーザと各仮想オブジェクトの位置、すなわち世界座標とする。なお座標原点１３０３と座標軸１３０２とで定義される座標系で表される空間を、拡張現実空間と呼ぶことにする。拡張現実空間は、仮想オブジェクトを配置するための仮想空間であるが、拡張現実空間内のユーザの位置は、現実のユーザの位置に対応している。
【０１１０】
図１３（ａ）の仮想空間内にいるユーザは、ユーザＩＤが"０１"、"０２"、"０３"、"０４"、"０５"（図１３（ｂ）は"０６"、"０７"まで含む）のユーザであるとし、図５のユーザ情報テーブル０４０１のユーザＩＤに対応している。また、図１３のユーザと仮想オブジェクトの位置・方向は、図５、図６のユーザ情報テーブル０４０１、及び仮想オブジェクト情報テーブル０４０２の値にそれぞれ対応している。
【０１１１】
仮想オブジェクト１３０１はユーザＩＤ：０１のユーザが表示させたものであり、矢印１３０８は、仮想オブジェクトの向いている方向を示している。また、図１３の破線１３０４、一点鎖線１３０５は、図７のＳ０７０１〜Ｓ０７０６を経て、Ｓ０７０８を実行しているときの閲覧ユーザの登録範囲を示す。仮想オブジェクト１３０１は図１２の仮想オブジェクト１２０２に示すような２次元の平面で表されるドキュメントを表示させているものとする。仮想オブジェクト１３０１の仮想オブジェクトＩＤは"０００１"であり、図６の仮想オブジェクト情報テーブル０４０２に対応している。
【０１１２】
図１４は図１３のユーザＩＤ：０１のユーザ（以後、観測者０７０２と呼ぶ）が、画像表示装置０１００の一実施形態であるＨＭＤに装着されているディスプレイ０２０８を介して見ている仮想オブジェクトの表示位置を導出する方法の概念図である。ここで、画像表示装置０１００の仮想オブジェクト情報取得部０１０８は、図９で説明したＳ０９０１の処理によって、全仮想オブジェクトの位置・方向情報を仮想オブジェクト情報テーブル０４０２からネットワーク９０００を介して取得する。
【０１１３】
これらの仮想オブジェクトの位置・方向情報から、仮想オブジェクト画像生成部０１０５は、図１４に示すような角度を算出する。図１４のマップは観測者０７０２と、仮想オブジェクトの位置関係を天頂方向から見た図である。すなわち、仮想オブジェクト画像生成部０１０５は、ユーザ情報テーブル０４０１に登録されたユーザ位置・方向情報と、仮想オブジェクト情報テーブル０５０１に登録された仮想オブジェクトの位置・方向情報とから、仮想空間における観測者０７０２の位置座標（Ｘｏ，Ｙｏ，Ｚｏ）と仮想オブジェクトの位置座標（Ｘｔ，Ｙｔ，Ｚｔ）を取得する。これらの位置座標は物理的な空間における位置に対応している。また、仮想オブジェクト表示画像生成部０１０５は、画像表示装置０１００（ＨＭＤ）の向き（以下ではＨＭＤの法線０７０１と表記する）θを観測者の位置・方向情報から取得する。なおここでの角度θはｒａｄｉａｎ単位とするが、ｄｅｇｒｅｅ単位と相互に変換可能である。
【０１１４】
次に、仮想オブジェクト表示画像生成部０１０５は、図１４に示される角度γを求める。角度γは、観測者０７０２の装着する画像表示装置０１００（ＨＭＤ）の方向を示す法線０７０１に対する仮想オブジェクトの中心部の位置する方向の角度となる。角度γは以下の式で求める。
γ＝ａｒｃｔａｎ（（Ｙｔ−Ｙｏ）／（Ｘｔ−Ｘｏ））−θ
そして、仮想オブジェクト表示画像生成部０１０５は、画像表示装置０１００（ＨＭＤ）のカメラのカバーする視野角εと角度γを比較することで、表示すべき被観測仮想オブジェクトであるかどうかを判定する。ここでいう被観測仮想オブジェクトとは、観測者の装着する画像表示装置０１００（ＨＭＤ）のディスプレイを通して見える仮想オブジェクトのことである。仮想オブジェクト表示画像生成部０１０５は、｜γ｜＜ε／２であれば表示すべき被観測仮想オブジェクトであると判定し、そうでない場合には被観測仮想オブジェクトではないと判定する。なお視野角εは、画像表示装置０１００に表示される範囲を、ユーザ視点を中心とした角度であらわしたもので、一般的には画像表示装置０１００の表示部（ディスプレイ）０１０６の広がり及び目と表示部０１０６との距離、あるいは、カメラ０２０２による撮影範囲によって制限される。本例では、説明の簡単化および現実空間と仮想空間との対応付けのために、表示部による仮想空間の表示範囲とカメラによる撮影範囲とは一致しているものとする。さらに視野角εは、処理サーバー０３００が予め与えられ保持しているものとする。
【０１１５】
図１５は図９のＳ０９０５でディスプレイ上の仮想オブジェクトの表示位置を算出する方法について説明する図である。図１５のようにＨＭＤの法線０７０１に基づいて図１４で算出した被観測仮想オブジェクトの位置する方向の角度γの傾き方向を示す線０８０２と、画像表示装置０１００（ＨＭＤ）のディスプレイとの交点が、仮想オブジェクト表示位置Ｐｄｉｓｐｌａｙとなる。この位置Ｐｄｉｓｐｌａｙは、観測者０７０２から見た被観測仮想オブジェクトが画像表示装置０１００（ＨＭＤ）のディスプレイを通して視認される位置である。
仮想オブジェクト表示画像生成部０１０５は、この仮想オブジェクト表示位置Ｐｄｉｓｐｌａｙを次の式に基づいて算出する。
Ｐdisplay＝Ｄ・ｔａｎγ
このＤは、観測者の目からディスプレイまでの距離であって、予め決まった値である。この位置Ｐdisplayに仮想オブジェクトの中心が来るように、仮想オブジェクトの他の部分の位置も上式の要領でディスプレイ上の位置に変換され、その位置に仮想オブジェクトがディスプレイに投影された二次元の仮想オブジェクトが表示される。
【０１１６】
以上説明した第１の実施形態では、画像表示装置０１００（ＨＭＤ）によって各ユーザの位置・方向を処理サーバー０３００に登録し、各ユーザと仮想オブジェクトの位置・方向に基づいて、処理サーバー０３００が閲覧ユーザを算出することで、閲覧ユーザ登録を行った。これにより、ユーザは仮想オブジェクトの閲覧ユーザを、各ユーザと仮想オブジェクトの位置・方向に応じて一括して登録することができるようになる。
【０１１７】
＜第２の実施形態＞
以下、本発明を実施するための第２の実施形態について説明する。第１の実施形態では、図１の閲覧ユーザ算出部０４０４、ユーザ密集度算出部０４０５により、ユーザと仮想オブジェクトの位置・方向、及び、ユーザの密集度を用いて、仮想オブジェクトの閲覧ユーザ登録を行う例について示した。具体的には、各ユーザの位置と、仮想オブジェクトの位置・方向から、閲覧ユーザ登録すべきユーザを算出することで、登録処理を行った。
第２の実施形態では、閲覧ユーザ算出部０４０４、ユーザ密集度算出部０４０５に加え、対面ユーザ算出部０４０６を用いることで、仮想オブジェクトを向いている方向のユーザを閲覧ユーザとして登録する例を示す。以降、第１の実施形態との差分を中心に説明する。
【０１１８】
＜仮想オブジェクトの閲覧ユーザの登録処理＞
図１６は、実施形態２における仮想オブジェクトの閲覧ユーザの登録処理のフローチャートである。Ｓ１６０１〜Ｓ１６０８、及び、Ｓ１６１２〜Ｓ１６１６は第１の実施形態の図１１のＳ１１０１〜Ｓ１１１３と同様である。またシステムの構成に関しても第１の実施形態と同様である。共通の部分についての説明は省略し、第１の実施形態と相違する部分について説明する。
【０１１９】
第１の実施形態との差分は、Ｓ１６０９、Ｓ１６１０でユーザが仮想オブジェクトに対する方向に対してどちらを向いているかを算出し、それによってＳ１６１１で閲覧ユーザに登録するかどうかを判定するところである。ユーザの向いている方向は、図８のＳ０８０３で算出され、ユーザ情報テーブル０４０１に保持されている。
【０１２０】
Ｓ１６０９では、ユーザ位置から仮想オブジェクトの両端までの２直線のなす角度は、ユーザ情報テーブル０４０１のユーザ位置と、仮想オブジェクト情報テーブル０４０２の位置、角度、横幅から算出される両端点の位置を用いることで算出される。具体的には、ユーザの位置から仮想オブジェクトの両端までの２つのベクトルを算出し、その内積を計算することにより角度を算出する。
【０１２１】
Ｓ１６１０では、Ｓ１６０９で算出された２つのベクトルと、ユーザが向いている方向との成す角度を算出する。具体的には、ユーザの向いている方向をベクトルとして求め、Ｓ１６０９で算出された２つのベクトルとの各内積を算出することにより、２つの角度を算出する。
【０１２２】
Ｓ１６１１では、Ｓ１６０５〜Ｓ１６０９において算出された、仮想オブジェクトから所定距離以内、かつ、所定角度以内のユーザが、該仮想オブジェクトの方向を向いているかどうかを判定する。具体的には、Ｓ１６１０で算出された２つの角度が、Ｓ１６０９で算出した角度より小さければ、ユーザが仮想オブジェクトの方向を向いていると判定する。
【０１２３】
図１７は、第２の実施形態におけるユーザと仮想オブジェクトの位置・方向を示す俯瞰図である。第１の実施形態の図１３との差分は、ユーザの向いている方向を示すベクトル１７０１と、ユーザから仮想オブジェクトの両端までの破線のベクトル１７０２、１７０３により、ユーザが仮想オブジェクトを見ているか否かを判定するところである。
【０１２４】
ユーザの向いている方向を示すベクトル１７０１は、図８のＳ０８０３から求めることができる。破線のベクトル１７０２、１７０３は、ユーザの位置と、仮想オブジェクトの端点までの位置から求めることができる。角度β１７０４は、破線のベクトル１７０２と１７０３からそのなす角として求めることができる。角度δ１１７０５、δ２１７０６は、ユーザの向いている方向のベクトル１７０１と、破線のベクトル１７０２、１７０３との各内積を計算することにより求めることができる。図１６のＳ１６１１において、角度δ１１７０５、δ２１７０６がそれぞれ角度β１７０３以下であれば、ユーザ（ＩＤ：０３）は仮想オブジェクト（ＩＤ：０００１）を向いていると判定される。
【０１２５】
第２の実施形態では、ユーザの向いている方向を用いて、仮想オブジェクトの方向を向いているユーザを閲覧ユーザとして登録する場合について述べた。これにより、仮想オブジェクトを実際に閲覧している人物に対して閲覧ユーザ登録が行えるので、閲覧していない人物を閲覧ユーザとして登録してしまうことが無くなる。
【０１２６】
＜第３の実施形態＞
以下、本発明を実施するための第３の実施形態について説明する。
【０１２７】
第１の実施形態では、図１の閲覧ユーザ算出部０４０４、ユーザ密集度算出部０４０５により、ユーザと仮想オブジェクトの位置・方向、及び、ユーザの密集度を用いて、仮想オブジェクトの閲覧ユーザ登録を行う例について示した。具体的には、各ユーザの位置と、仮想オブジェクトの位置・方向から、閲覧ユーザ登録すべきユーザを算出することで、登録処理を行った。
【０１２８】
また、第２の実施形態では、対面ユーザ算出部０４０６を用いることで、仮想オブジェクトを向いている方向のユーザを閲覧ユーザとして登録する例を示した。
【０１２９】
第３の実施形態では、仮想オブジェクト分断範囲算出部０４０７を用いることによる、複数の仮想オブジェクトがある場合の閲覧ユーザ登録処理の例を示す。
【０１３０】
以降、第１の実施形態との差分を中心に説明する。
【０１３１】
図１８は、実施形態３における仮想オブジェクト閲覧ユーザ登録処理のフローチャートである。Ｓ１８０１〜Ｓ１８０８、及び、Ｓ１８１１〜Ｓ１８１５は第１の実施形態の図１１のＳ１１０１〜Ｓ１１１３と同様である。またシステムの構成に関しても第１の実施形態と同様である。共通の部分についての説明は省略し、第１の実施形態と相違する部分について説明する。第１の実施形態との差分は、Ｓ１８０９で、着目仮想オブジェクトと、着目仮想オブジェクトとは別ユーザが表示する仮想オブジェクトとの分断線（あるいは境界線）を算出し、それによってＳ１８１０で閲覧ユーザに登録するかどうかを判定するところである。なお、仮想オブジェクトをその表示ユーザにより区別するのではなく、仮想オブジェクトごとに区別してもよい。その場合には表示ユーザが共通であっても、異なる仮想オブジェクトについては境界が算出される。ただし本例では、別ユーザの表示する仮想オブジェクトの閲覧範囲と着目仮想オブジェクトの閲覧範囲との境界線を決定する例を説明する。
【０１３２】
Ｓ１８０９では、別ユーザの仮想オブジェクトの位置と、着目仮想オブジェクトの位置から、それぞれの仮想オブジェクトの閲覧範囲の境界線を算出する。具体的には、まず、図６の仮想オブジェクト情報テーブル０４０２から別のユーザが表示する仮想オブジェクトの位置を取得する。例えば、着目仮想オブジェクトが図６の０６０１行の仮想オブジェクトである場合、０６０２行の仮想オブジェクトが別ユーザの表示する仮想オブジェクトとなる。次に、仮想オブジェクトの閲覧範囲の境界線となる、各仮想オブジェクトの位置座標を結ぶ直線の垂直二等分線を求める。例えば、図１９の線１９０２が各仮想オブジェクトの位置を結ぶ線であり、線１９０１が垂直二等分線となる。
【０１３３】
Ｓ１８１０では、Ｓ１８０５〜Ｓ１８０８で算出されたユーザと、Ｓ１８０９で算出された境界線から、該ユーザが境界線を超えていないかどうかを判定する。ここで、分断線を超えていると判定されるユーザは、他ユーザの仮想オブジェクトの閲覧ユーザの登録範囲に入っているユーザに限る。例えば、図１９において、仮想オブジェクト１３０１（ＩＤ：０００１）の閲覧ユーザ登録処理を行うとする。実施形態１では、一点鎖線１３０５で囲まれる範囲が、閲覧ユーザとして登録される範囲（閲覧範囲）となるが、ユーザ（ＩＤ：１０）は境界線１９０１（分断線）の外側（仮想オブジェクト１３０２側）にいるため閲覧ユーザ登録されない。また、ユーザ（ＩＤ：０７）は、境界線１９０１（分断線）の内側にいるため、閲覧ユーザとして登録される。逆に、仮想オブジェクト１３０２の閲覧ユーザ登録処理を行う場合、ユーザ（ＩＤ：０７）は線１９０１（分断線）の外側（仮想オブジェクト１３０１側）にいるため閲覧ユーザ登録されない。また、ユーザ（ＩＤ：０９）は、分断線を超えているが、仮想オブジェクト１３０１の閲覧ユーザ登録範囲に入っていないため、閲覧ユーザとして登録される。
【０１３４】
図１９は、第３の実施形態におけるユーザと仮想オブジェクトの位置・方向を示す俯瞰図である。
【０１３５】
第１の実施形態との差分は、別のユーザ（ＩＤ：０８）の表示する仮想オブジェクト１３０２（ＩＤ：０００２）と、破線１９０１、直線１９０２があることである。直線１９０２は、仮想オブジェクト１３０１と仮想オブジェクト１３０２の位置を結ぶことにより得られる。破線１９０１は、直線１９０２の垂直二等分線を計算することにより得られる。第２の実施形態では、仮想オブジェクト１３０１の閲覧ユーザ登録範囲にいるユーザ（ＩＤ：１０）は、破線１９０１で分けられる仮想オブジェクト１３０２側にいるため、仮想オブジェクト１３０１の閲覧ユーザとして登録されない。逆に、ユーザ（ＩＤ：０８）によって仮想オブジェクト１３０２の閲覧ユーザを登録する場合は、ユーザ（ＩＤ：１０）が閲覧ユーザとして登録される。
【０１３６】
以上のように、いずれか一つの仮想オブジェクトの閲覧範囲にのみ含まれるユーザは、当該仮想オブジェクトの閲覧ユーザとして登録される。また複数の仮想オブジェクトの閲覧範囲の重複部分については、上述した境界線で仮想オブジェクトごとの閲覧領域に区切る。
【０１３７】
第３の実施形態では、別のユーザが表示する仮想オブジェクトがある場合に、仮想オブジェクト間を分断する分断線（境界）を求めることにより閲覧登録範囲を分ける場合について述べた。これにより、各ユーザが表示する仮想オブジェクトの閲覧ユーザ登録範囲を分けることができ、別の仮想オブジェクトを閲覧しているユーザを誤って閲覧ユーザとして登録してしまう可能性が減る。
【０１３８】
＜第４の実施形態＞
以下、本発明を実施するための第４の実施形態について説明する。第１の実施形態では、図１の閲覧ユーザ算出部０４０４、ユーザ密集度算出部０４０５により、ユーザと仮想オブジェクトの位置・方向、及び、ユーザの密集度を用いて、仮想オブジェクトの閲覧ユーザ登録を行う例について示した。具体的には、各ユーザの位置と、仮想オブジェクトの位置・方向から、閲覧ユーザ登録すべきユーザを算出することで、登録処理を行った。また、第２の実施形態では、対面ユーザ算出部０４０６を用いることで、仮想オブジェクトを向いている方向のユーザを閲覧ユーザとして登録する例を示した。第３の実施形態では、仮想オブジェクト分断範囲算出部０４０７を用いることで、複数の仮想オブジェクトがある場合の閲覧ユーザ登録処理の例を示した。以上の第１、第２、第３の実施形態では、仮想オブジェクトから所定距離、かつ、所定角度以内のユーザを登録範囲としたため、いずれも閲覧ユーザ登録範囲が扇形になっていた。
【０１３９】
第４の実施形態では、閲覧ユーザ登録範囲が扇形ではなく、長方形になる場合について述べる。以降、第１の実施形態との差分を中心に説明する。
【０１４０】
図２０は、実施形態４における仮想オブジェクト閲覧ユーザ登録処理のフローチャートである。Ｓ２００１〜Ｓ２００４及びＳ２００９〜Ｓ２０１１は、第１の実施形態の図１１のＳ１１０１〜Ｓ１１０４及びＳ１１１１〜Ｓ１１１３とそれぞれ同様である。またシステムの構成に関しても第１の実施形態と同様である。共通の部分についての説明は省略し、第１の実施形態と相違する部分について説明する。
【０１４１】
第１の実施形態との差分は、Ｓ２００５で、仮想オブジェクトの閲覧ユーザの矩形の登録範囲を算出することで、範囲内にいるユーザに閲覧ユーザとして登録するかどうか判定するところである。
【０１４２】
Ｓ２００５では、仮想オブジェクトの位置情報から、仮想オブジェクトの閲覧ユーザの登録範囲を算出する。具体的には、まず、仮想オブジェクト情報テーブル０４０２の位置、方向、横幅情報から、仮想オブジェクトの両端点の位置を求める。次に、両端点を結ぶ線分の延長上にある、両端点から所定距離離れた外分点の位置を求める。次に、両端点を結ぶ線分と直交し、外分点を通る直線をそれぞれ求める。最後に、前記求めた直線上であり、外分点から所定距離離れ、仮想オブジェクトの向いている方向の平面上にある点を求める。以上により、仮想オブジェクトを長方形の一辺の中心においた、長方形の頂点が求まる。この長方形の頂点で囲まれる範囲を閲覧ユーザ登録範囲または単に登録範囲または閲覧範囲と呼ぶ。
【０１４３】
Ｓ２００６では、Ｓ２００５で求まった頂点の位置と、ユーザ情報テーブル０４０１のユーザ位置から、頂点で囲まれる長方形の閲覧ユーザの登録範囲にいるユーザを算出する。具体的には、まず、Ｘ、Ｙ座標の長方形の頂点から求められる長方形の辺を一部とする４つの直線の式と、その直線で２分される長方形を一部とする領域を定義する。ユーザの位置が、各４つの直線式の領域に全て含まれれば、ユーザは閲覧ユーザの登録範囲以内と分かる。
【０１４４】
Ｓ２００７は、Ｓ２００６で算出された全てのユーザが既に仮想オブジェクトの閲覧ユーザに登録されているかどうかを判定する。具体的には、仮想オブジェクト情報テーブル０４０２の閲覧ユーザＩＤに該ユーザＩＤが登録されているか否かによって判定する。登録されている場合は、新たな閲覧ユーザを登録することがないため、閲覧ユーザ登録処理を終了し、閲覧ユーザとして未登録のユーザがいる場合はＳ２００８に進む。
【０１４５】
Ｓ２００８では、Ｓ２００７で閲覧ユーザに未登録と判定されたユーザを閲覧ユーザとして登録する。具体的には、判定されたユーザＩＤを仮想オブジェクト情報テーブル０４０２の閲覧ユーザＩＤ列に追記することで登録を行う。例えば、ユーザＩＤ：０３のユーザが閲覧ユーザであると判定された場合、図６仮想オブジェクト情報テーブル０４０２の０６０１行の閲覧ユーザＩＤに"０３"を追記登録する。
図２１は、第４の実施形態におけるユーザと仮想オブジェクトの位置・方向を示す俯瞰図である。第１の実施形態との差分は、外分点２１０２，外分点２１０３、点２１０４、点２１０５を頂点とする長方形が閲覧ユーザ登録範囲になる点である。第４の実施形態では、閲覧ユーザ登録の範囲が長方形になる場合について述べた。これにより、場所に応じて閲覧ユーザ登録範囲を柔軟に設定することができる。尚、閲覧ユーザ登録範囲を、実施形態１、２、３の扇形にするか、実施形態４の長方形にするかは、Ｓ０７１０の設定処理によって手動で切り替えることができるように構成することもできる。
【０１４６】
第４の実施形態では、ユーザの方向は閲覧ユーザとして登録するための条件に含まれていないが、例えばＳ２００８に代えて図１６のＳ１６０９〜Ｓ１６１２を挿入すれば、仮想オブジェクトの方向を向いているユーザに限り閲覧ユーザとして登録することができる。
【０１４７】
また、他の仮想オブジェクトと同じ空間を共有している場合には、第３の実施形態と同じ要領で閲覧範囲の境界を定めることができる。
【０１４８】
第１、２、３、４の実施形態では、画像表示装置０１００としてＨＭＤを用いて仮想オブジェクトの閲覧ユーザを登録する場合について述べたが、ＨＭＤの代わりにタブレット端末やＨＵＤ（ヘッドアップディスプレイ）を用いても良い。また、（半）透過ディスプレイを通して見える前景と、ディスプレイに表示させた画像を重畳させるのではなく、ＨＭＤのカメラ映像に仮想オブジェクトを合成することにより重畳表示を実現させてもよい。この場合、ユーザはディスプレイに映る映像を実際の視界とするので、より違和感の無い拡張現実感を得ることができる。なお、ＨＵＤなどを用いて、表示画面を透過する現実の光景に重畳して仮想オブジェクトが表示する場合には、カメラは、表示画面を透過して見える光景を撮影できる方向に固定されている必要がある。なぜならこの機構では、カメラは、表示画面を通してユーザがどの方向を（すなわちどの光景を）見ているかを特定するための手段として機能するためである。一方、ＨＭＤやタブレットなどを用いて、カメラで撮影した画像と仮想オブジェクトとを合成して表示する場合には、ユーザが見るのはカメラで撮影された光景となるので、表示画面とカメラとの位置関係はかならずしも固定されていなくともよい。いずれの場合でも、カメラの位置および方向がユーザの位置及び方向とみなされる。
【０１４９】
また、各実施形態で述べた、ユーザ密集度算出部０４０５、対面ユーザ算出部０４０６、仮想オブジェクト分断範囲算出部０４０７は相互に組み合わせて閲覧ユーザを算出することができる。例えば、仮想オブジェクト分断範囲算出部０４０７によって分断された範囲のユーザに対して、対面ユーザ算出部０４０６により仮想オブジェクトと向かい合うユーザを算出してもよい。
【０１５０】
第１乃至第４の実施形態では、図１１、図１６、図１８に示した閲覧ユーザ登録処理を処理サーバー０３００によって行なっているが、画像表示装置０１００で行なっても良い。例えば、ユーザ情報テーブル０４０１と仮想オブジェクト情報テーブル０４０２の情報を、処理サーバー０３００から取得し、算出された閲覧ユーザを処理サーバー０３００に登録する。
【０１５１】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014235717.tif 000003
【図２】
2014235717.tif 000004
【図３】
2014235717.tif 000005
【図４】
2014235717.tif 000006
【図５】
2014235717.tif 000007
【図６】
2014235717.tif 000008
【図７】
2014235717.tif 000009
【図８】
2014235717.tif 000010
【図９】
2014235717.tif 000011
【図１０】
2014235717.tif 000012
【図１１】
2014235717.tif 000013
【図１２】
2014235717.tif 000014
【図１３】
2014235717.tif 000015
【図１４】
2014235717.tif 000016
【図１５】
2014235717.tif 000017
【図１６】
2014235717.tif 000018
【図１７】
2014235717.tif 000019
【図１８】
2014235717.tif 000020
【図１９】
2014235717.tif 000021
【図２０】
2014235717.tif 000022
【図２１】
2014235717.tif 000023