(57)【要約】【課題】仮想オブジェクトの共有状態を表示する情報処理装置において、場にいる共有ユーザの近くに仮想オブジェクトを共有していることを表す識別マークを表示することで、仮想オブジェクトの共有ユーザを一見して把握することを可能にする。【解決手段】表示位置算出部１１２は、仮想オブジェクトにアクセス可能に設定された共有ユーザの位置姿勢、及び、仮想オブジェクトの表示位置姿勢に基づき、識別マークを共有ユーザ、及び、仮想オブジェクトの近くに重畳表示するための表示位置を算出し、表示部１１３に送出する。ディスプレイである表示部１１３は、該表示位置にしたがった画面上の位置に識別マークを表示する。【選択図】図１
2015072607.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段が撮像した現実空間の撮像画像を表示画面に表示し、及び、仮想オブジェクトを該撮像画像内の所定位置に表示し、前記表示画面において拡張現実空間を実現する情報処理装置において、
前記ユーザの前記現実空間における第１の位置の情報を取得する手段と、
前記取得された情報に基づいて前記第１の位置に対応して決定される第２の位置であって、前記ユーザの画像を含む前記撮像画像内の第２の位置に、該ユーザが前記仮想オブジェクトへのアクセスを許可されるように設定された共有ユーザであるかどうかを識別するための識別情報を表示するように、前記表示画面における表示を制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
所定パターンの画像が配置された前記現実空間を撮像する他の撮像手段と、
前記撮像手段が撮像した前記撮像画像における前記画像の歪を計算することによって、前記撮像手段の前記現実空間における位置および姿勢を算出する手段と、
該他の撮像手段が撮像した撮像画像における前記画像の歪を計算することによって、前記他の撮像手段の前記現実空間における位置および姿勢を算出する手段と、
をさらに有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、
複数の前記仮想オブジェクトを個々に識別するための仮想オブジェクト識別色を前記仮想オブジェクトごとに決定する手段と、
該決定した前記仮想オブジェクト識別色に対応した色の、前記仮想オブジェクトの前記共有ユーザを示す識別マークを、該共有ユーザの近くの前記第２の位置に前記識別情報として表示する手段と、
該決定した前記仮想オブジェクト識別色に対応した色の他の識別マークを、該共有ユーザがアクセスを許可された前記各仮想オブジェクトの近くに表示する手段と、
を含むことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記識別情報を表示する前記仮想オブジェクトを指定する仮想オブジェクト指定手段をさらに備えることを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記仮想オブジェクト指定手段は、前記仮想オブジェクトを特定するファイル名を指定することで、前記識別情報を表示する前記仮想オブジェクトを指定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記撮像手段が撮像した前記撮像画像から該撮像手段の前記現実空間における位置を算出する手段と、
前記仮想オブジェクトの位置を取得する手段と
をさらに備え、
前記仮想オブジェクト指定手段は、
前記撮像画像における、前記表示装置を装着したユーザの腕の方向を認識する手段を含み、該認識した方向と前記撮像手段の前記算出した位置と前記仮想オブジェクトの前記取得した位置に基づいて、前記仮想オブジェクトを前記識別情報を表示するために指定することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記制御手段は、
複数の前記共有ユーザを個々に識別するためのユーザ識別色を前記共有ユーザごとに決定する手段と、
該決定した前記ユーザ識別色に対応した色の、前記仮想オブジェクトの前記共有ユーザを示す識別マークを、該共有ユーザの近くの前記第２の位置に前記識別情報として表示する手段と、
該決定した前記ユーザ識別色に対応した色の他の識別マークを、該共有ユーザがアクセスを許可された前記仮想オブジェクトの近くに表示する手段と、
を含むことを特徴とする請求項１または２に記載の情報処理装置。
【請求項８】
前記制御手段は、
前記仮想オブジェクトと前記共有ユーザの間の距離を判定する手段と、
該距離が所定の距離を超えていると判定された前記共有ユーザについては、前記識別情報を表示しない手段と、
を含むことを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記制御手段は、
前記仮想オブジェクトと前記共有ユーザの間の距離を判定する手段と、
該距離に応じて、前記仮想オブジェクトにより近い前記共有ユーザについては前記識別情報をより大きく表示し、前記仮想オブジェクトに対しより遠くの前記共有ユーザについては前記識別情報をより小さく表示する手段と、
を含むことを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項１０】
前記制御手段は、
前記表示される前記識別情報が前記第２の位置において重なる重なり数を算出する手段と、
該算出した重なり数が所定のしきい値を超えている場合は、前記共有ユーザの数を表す数値を、前記仮想オブジェクトの近くに表示する手段と、
を含むことを特徴とする請求項１乃至８のいずれか一項に記載の情報処理装置。
【請求項１１】
前記制御手段は、前記識別情報が、前記ユーザが前記共有ユーザであることを示すように前記表示画面における前記表示を制御する表示モード、および、前記識別情報が、前記ユーザが前記仮想オブジェクトへのアクセスを許可されるように設定されていない非共有ユーザであることを示すように前記表示画面における前記表示を制御する反転表示モードを有することを特徴とする請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１２】
前記アクセスは、前記仮想オブジェクトを前記ユーザのための表示装置の前記表示画面内の前記拡張現実空間において閲覧すること、前記仮想オブジェクトを前記拡張現実空間において表示する位置を変更すること、前記仮想オブジェクトを前記拡張現実空間において表示する向きを変更すること、および、前記仮想オブジェクトの内容を編集することの少なくとも一つを含むことを特徴とする請求項に記載の情報処理装置。
【請求項１３】
撮像された現実空間の撮像画像を表示画面に表示し、及び、仮想オブジェクトを該撮像画像内の所定位置に表示する情報処理方法において、
前記ユーザの前記現実空間における第１の位置の情報を取得するステップと、
前記取得された情報に基づいて前記第１の位置に対応して決定される第２の位置であって、前記ユーザの画像を含む前記撮像画像内の第２の位置に、該ユーザが前記仮想オブジェクトへのアクセスを許可されるように設定された共有ユーザであるかどうかを識別するための識別情報を表示するように、前記表示画面における表示を制御するステップと、
を含むことを特徴とする情報処理方法。
【請求項１４】
コンピュータを請求項１から１２のいずれか一項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関し、詳細には、拡張現実表示技術による仮想オブジェクトの共有状態を表示する情報処理装置、情報処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
近年、ＡＲ（Ａｕｇｕｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ：拡張現実）表示技術を用いたサービスが開発され、提供されている。ＡＲは、主にカメラ等で撮影された現実空間の画像に対して、仮想オブジェクトを表示デバイスにより重畳表示するものである。ＡＲを提示する表示デバイスとしては、携帯端末や、ＨＭＤ（Ｈｅａｄ‐ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）等が利用される。ＡＲを利用したサービスとして、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）によるユーザの位置情報に基づいてユーザの周囲の環境情報をＡＲで表示するものなどがある。これらのサービスでは、ＧＰＳシステムに代表されるＧＮＳＳ（Ｇｌｏｂａｌ  Ｎａｖｉｇａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ  Ｓｙｓｔｅｍ）で得られる位置情報を利用し、カメラで撮影している撮像画像に、施設に関する情報を重畳して表示する。また、特定のパターン（ＡＲマーカ）を認識し、認識したＡＲマーカを仮想オブジェクトを表示するために利用する技術がある。ＡＲマーカ認識技術は、ＧＮＳＳの位置情報に比べ精度よく位置を特定することができるため、仮想オブジェクトの表示の位置ずれを軽減することができる。これにより、複数ユーザがあたかも同じ物体を見ているかのように、仮想オブジェクトを共有することができる（特許文献１）。
【０００３】
また、ネットワーク・システムにおいて、特定のユーザ間でフォルダを共有することで複数ユーザでファイル共有を実現することが可能となっており、共有フォルダに対して設定された共有ユーザがそれぞれ持つアバター画像を表示するものがある（特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２１７１１９号公報
【特許文献２】特開２０１２−７９０４６号公報
【特許文献３】特開２００５−３３３１９号公報
【特許文献４】特表２００８−５０８５９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述のＡＲ表示技術によれば、複数ユーザによる打ち合わせまたはプレゼンテーションなどの場において、ＡＲマーカに基づいて仮想オブジェクトを表示することができる。これにより、複数ユーザが同じ物を見ているかのように仮想オブジェクトを閲覧することが可能である（以下、ユーザが仮想オブジェクトを共有している状態とは、ユーザが仮想オブジェクトを閲覧可能な状態と同じであるとする）。ただし、仮想オブジェクトを複数ユーザで共有する際は、セキュリティやユーザのプライバシー保護のため、仮想オブジェクトを共有するユーザを限定することが想定される。このとき、仮想オブジェクトを共有しているユーザを確認するために、前述の共有フォルダの技術を用いて、仮想オブジェクトを共有しているユーザ（以下、共有ユーザと呼ぶ）のアバター画像などをディスプレイに表示することが考えられる。
【０００６】
しかし、共有ユーザのアバター画像を表示する方法を実施した場合は、ユーザとアバター画像を比較して、実際のユーザを判定する必要がある。特に、その場にいるユーザの中で共有ユーザとそうでないユーザを確認したい場合、アバター画像との比較作業が煩わしく、共有ユーザを一見して把握することが難しい。
【０００７】
そこで、本発明は上記問題点に鑑みてなされたものであり、その目的は、仮想オブジェクトを表示している場において共有ユーザがどのように設定されているかを容易に把握可能にする情報処理装置、情報処理方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明は、撮像手段が撮像した現実空間の撮像画像を表示画面に表示し、及び、仮想オブジェクトを該撮像画像内の所定位置に表示し、前記表示画面において拡張現実空間を実現する情報処理装置において、前記ユーザの前記現実空間における第１の位置の情報を取得する手段と、前記取得された情報に基づいて前記第１の位置に対応して決定される第２の位置であって、前記ユーザの画像を含む前記撮像画像内の第２の位置に、該ユーザが前記仮想オブジェクトへのアクセスを許可されるように設定された共有ユーザであるかどうかを識別するための識別情報を表示するように、前記表示画面における表示を制御する制御手段とを有する情報処理装置を提供する。
【発明の効果】
【０００９】
本発明では、仮想オブジェクトにアクセス可能、例えば閲覧または編集可能に設定された共有ユーザを識別する識別情報を、場にいる共有ユーザに対応した位置に表示するように、情報処理装置の表示画面における表示を制御する。したがって、本発明によれば仮想オブジェクトを共有していてアクセスが可能なユーザを一見して把握することができ、使い勝手を向上できる。
【図面の簡単な説明】
【００１０】
【図１】本発明に係る情報処理装置としての画像表示装置の機能構成を示すブロック図である。
【図２】本発明に係る情報処理装置としての画像表示装置のハードウエアブロック図である。
【図３】本発明の実施形態におけるデータベース・サーバ内のカメラ位置姿勢テーブルの例を示す図である。
【図４】本発明の実施形態におけるデータベース・サーバ内の仮想オブジェクト情報テーブルの例を示す図である。
【図５】本発明の実施形態のシステム全体のフローチャートである。
【図６】第１実施形態における共有状態表示処理のフローチャートである。
【図７】本発明に係る情報処理装置としての画像表示装置を装着したユーザの位置姿勢と仮想オブジェクトの位置姿勢を示す場の俯瞰図である。
【図８】第１実施形態における仮想オブジェクト共有状態表示の例を示す図である。
【図９】画像表示装置を通して観測ユーザが見ている被観測ユーザの識別マーク表示位置を導出する方法についての概念図である。
【図１０】画像表示装置上の識別マーク表示位置を算出する方法についての概念図である。
【図１１】第２実施形態における共有状態表示処理のフローチャートである。
【図１２】第２実施形態における仮想オブジェクト共有状態表示の例を示す図である。
【図１３】第３実施形態における共有状態表示処理のフローチャートである。
【図１４】第３実施形態における仮想オブジェクト指定処理のフローチャートである。
【図１５】第３実施形態における腕の方向によって仮想オブジェクトを指定する方法を説明する図である。
【図１６】第３実施形態における仮想オブジェクト共有状態表示の例を示す図である。
【図１７】第４実施形態における共有状態表示処理のフローチャートである。
【図１８】第５実施形態における共有状態表示処理のフローチャートである。
【図１９】第５実施形態における仮想オブジェクト共有状態表示の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を参照して説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１２】
＜第１実施形態＞
以下、本発明の第１実施形態について図面を参照して説明する。
【００１３】
図１は、本発明に係る情報処理装置としての画像表示装置の機能構成を示すブロック図である。図１に示された構成は、図２に示されるハードウエアを備える装置において、ＣＰＵが各種記憶媒体に格納された画像処理ソフトウェア（コンピュータプログラム）を実行することで実現される。画像表示装置１００の一例として、ユーザの頭部にメガネをかけるように装着することが可能なＨＭＤ（Ｈｅａｄ‐ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）を用いることができる。ユーザは、ＨＭＤの前面に取り付けられた撮像部１０１、すなわちカメラ０２０２により、ユーザの視線方向の現実空間の画像を撮像することができる。また、ＨＭＤの前面に取り付けられた表示部１１３、すなわちディスプレイ０２０８により、ユーザはＨＭＤを装着したまま、撮像部１０１がキャプチャした撮像画像を見ることができる。
【００１４】
本実施形態の画像表示装置１００について、その処理の概略を説明する。画像表示装置１００は、撮像部１０１により取得された現実空間の撮像画像から所定のパターンであるＡＲマーカ画像を検出する。検出したＡＲマーカ画像の歪みや傾きから、撮像部１０１すなわちカメラ２０２の位置と向きであるカメラ位置姿勢を算出する。ＡＲマーカのパターンは予め定められており、紙媒体などに印刷したＡＲマーカを撮像することにより、撮像画像内のＡＲマーカ画像として検出可能である。前述のカメラ位置姿勢から仮想オブジェクトの相対的な位置姿勢を算出することにより、仮想オブジェクトをカメラ２０２の撮像画像に合成して、表示部１１３すなわちディスプレイ２０８に表示することが可能となる。尚、仮想オブジェクトは、２次元のドキュメント画像または３次元的に描画される、コンピュータにより合成された仮想物体として、実際にカメラで撮像した現実空間の撮像画像とディスプレイ上で重畳表示されてディスプレイ上に拡張現実空間を実現する。
【００１５】
本発明は、画像表示装置１００を装着しているユーザに対して、仮想オブジェクトの共有状態を示す識別マークを仮想オブジェクトと共に撮像画像に重畳表示することによって、仮想オブジェクトの共有状態を示すことを可能とする。したがってこの識別マークは、仮想オブジェクトを閲覧可能に設定されたユーザをと閲覧可能に設定されていないユーザを識別するために用いることのできる識別情報である、と云える。仮想オブジェクトを表示するためのカメラ位置姿勢算出方法として、撮像画像中の特徴点を用いた手法があるが、ＡＲマーカ画像からも特徴点を抽出できるため、本明細書ではＡＲマーカ画像を用いてカメラ位置姿勢を算出するものとして説明する。図１の画像表示装置１００、及び、データベース・サーバ１５０の各機能の詳細を説明する。
【００１６】
画像表示装置１００は、図１では１つのみ示したが、現実空間である場にいる全てのユーザが装着するためのものである。データベース・サーバ１５０は一台でよく、一般的な構成を備えたコンピュータを用いることができる。データベース・サーバ１５０は、ネットワーク（不図示）を介して複数の画像表示装置１００と双方向通信が可能であり、画像表示装置１００からのリクエストに応じて、後述のテーブルから成るリレーショナル・データベースを更新することができる。データベース・サーバ１５０はまた、表示のために格納している複数の仮想オブシェクトのファイルから、画像表示装置１００からのリクエストに応じて、幾つかのファイルを提供することができる。
【００１７】
撮像部１０１は、画像表示装置１００を装着しているユーザの視線方向の現実空間画像を撮影し、撮像画像をカメラ位置姿勢算出部１０２に所定の間隔で送出する。所定の間隔は、毎秒５フレームにするなど、任意の値に設定できる。
【００１８】
カメラ位置姿勢算出部１０２は、撮像部１０１により撮像された画像中のＡＲマーカ画像の歪みからカメラ位置姿勢を算出する。撮像部１０１のカメラ位置姿勢は、空間のデカルト座標としての位置を表すＸ、Ｙ、Ｚ成分と、方位角と仰俯角を表す成分として算出される。尚、ＡＲマーカ画像からカメラ位置姿勢を算出する方法は周知の技術であるため（例えば特許文献３）、本明細書において詳細な説明は省略する。算出されたカメラ位置姿勢情報は、カメラ位置姿勢更新部１０３に送出される。
【００１９】
カメラ位置姿勢更新部１０３は、ネットワーク（不図示）に接続されるデータベース・サーバ１５０へカメラ位置姿勢情報を送出する。さらに、画像表示装置１００を装着しているユーザに紐付けられた、すなわち関連付けられた、カメラ位置姿勢テーブル１５１上のユーザＩＤのカメラ位置姿勢情報の更新リクエストを定期的に送出する。尚、撮像部１０１、カメラ位置姿勢算出部１０２、カメラ位置姿勢更新部１０３の一連の処理はリアルタイムで行われ、各ユーザのカメラ位置姿勢情報は所定の間隔で常に更新されるものとする。所定の間隔は、毎秒５回など、カメラ位置姿勢算出部１０２の算出頻度を超えない範囲で任意の値に設定できる。
【００２０】
カメラ位置姿勢テーブル１５１は、各ユーザが装着している画像表示装置１００から定期的に送られてくる、各ユーザのカメラ位置姿勢情報を受け取って保持する。例えば、ユーザＩＤ：０００１のカメラ位置姿勢情報は、図３に示されるテーブル１５１の行３０１におけるカメラ位置（Ｘ、Ｙ、Ｚ）とカメラ姿勢（方位角、仰俯角）で表される。図３については後でより詳細に説明する。
【００２１】
カメラ位置姿勢取得部１０４は、データベース・サーバ１５０上のカメラ位置姿勢テーブル１５１から、場にいる全てのユーザの、更新された最新のカメラ位置姿勢情報を所定の間隔で取得する。所定の間隔は、毎秒３回など、任意の値に設定できる。
【００２２】
仮想オブジェクト情報テーブル１５２は、仮想オブジェクトの位置姿勢と、仮想オブジェクトを閲覧可能な、すなわち該仮想オブジェクトを共有しているユーザのＩＤを保持する。例えば、仮想オブジェクトＩＤが“０００１”の仮想オブジェクトの位置姿勢情報は、図４に示される仮想オブジェクト情報テーブル１５２の行４０１における位置列の（Ｘ、Ｙ、Ｚ）と姿勢列の（方位角、仰俯角）で表される。また、仮想オブジェクトＩＤが“０００１”の仮想オブジェクトを共有しているユーザのＩＤは、仮想オブジェクト情報テーブル１５２の行４０１における共有ユーザＩＤ列で表され、ここでは“０００１”、“０００２”、“０００３”となる。
【００２３】
共有ユーザ取得部１０５は、データベース・サーバ１５０上の仮想オブジェクト情報テーブル１５２から仮想オブジェクトの共有ユーザＩＤを取得する。例えば、仮想オブジェクトＩＤが“０００１”の仮想オブジェクトの共有ユーザＩＤを取得する場合は、仮想オブジェクト情報テーブル１５２の行４０１における共有ユーザＩＤ列の３つのユーザＩＤ“０００１”、“０００２”、“０００３”を取得する。図４については後でより詳細に説明する。
【００２４】
仮想オブジェクト位置取得部１０６は、データベース・サーバ１５０上の仮想オブジェクト情報テーブル１５２から、仮想オブジェクトの位置姿勢情報を取得する。この情報は、観測ユーザなどが後述の通り、予め決定する。
【００２５】
仮想オブジェクト識別色決定部１０７は、共有状態を表示したい仮想オブジェクトを一意に特定する識別マークの色を決定する。識別マークの色により、共有ユーザと仮想オブジェクトを紐付けるすなわち関連付けることが可能となる。詳細については後述する。
【００２６】
仮想オブジェクト取得部１１４は、データベース・サーバ１５０上の仮想オブジェクト格納部１５３にアクセスし、格納されている複数の仮想オブシェクトのファイルから、ユーザの指定に応じたファイルを取得する。仮想オブシェクトのファイルとしては、例えば２次元平面で表される各種のドキュメントファイルを使用することができるが、３次元的に描画される仮想物体のＣＧファイルなどを使用してもよい。
【００２７】
ユーザ識別色決定部１０８は、共有状態を表示したいユーザを一意に特定する識別マークの色を決定する。識別マークの色により、共有ユーザと仮想オブジェクトを紐付けることが可能となる。その詳細は第２実施形態に関連して説明し、ここでの詳細な説明は省略する。
【００２８】
仮想オブジェクト指定部１０９は、共有状態を表示したい仮想オブジェクトを指定する。これにより、複数ある仮想オブジェクトの中の指定した仮想オブジェクトの共有状態のみ表示することが可能となる。詳細は第３実施形態に関連して説明する。
【００２９】
距離判定部１１０は、表示している仮想オブジェクトの位置とユーザの位置が所定距離以内であるかどうかを判定する。これにより、仮想オブジェクトから所定距離以上離れているユーザの共有状態は表示させないことが可能となる。詳細は第４実施形態に関連して説明する。
【００３０】
重なり数算出部１１１は、ユーザの近くに表示される共有状態を表す識別マークの重なり数を算出する。これにより、識別マークが多数重なっていると判定される場合は、仮想オブジェクトの近くに共有状態を表す識別マークではなく、共有している人数を表す識別マークを表示することが可能となる。詳細は第５実施形態に関連して説明する。
【００３１】
表示位置算出部１１２は、種々情報から表示部１１３に表示する識別マークの表示位置を算出し、表示部１１３に送出する。種々情報は、自分を含めるユーザ毎のカメラ位置姿勢情報、共有ユーザＩＤ、仮想オブジェクトの位置情報、仮想オブジェクト識別色、ユーザ識別色、仮想オブジェクト指定情報、ユーザ・仮想オブジェクト間距離判定情報、識別マーク重なり数を含むことができる。表示部１１３は、識別マーク表示位置に基づき、共有状態を表す識別マークを重畳表示する。
【００３２】
図２は、本発明に係る情報処理装置としての画像表示装置１００のハードウエアブロック図である。
【００３３】
画像表示装置１００は、ＣＰＵ２０１、カメラ２０２、ネットワークインタフェース２０３、フラッシュメモリ２０４、操作部２０５、メインメモリ２０６、グラフィックコントローラ２０７、ディスプレイ２０８を含んで構成される。本実施形態及び以下の実施形態において、断りのない限りディスプレイ２０８は非透過型である。カメラ２０２は撮像部１０１に相当し、ディスプレイ２０８は表示部１１３に相当する。各要素はシステムバス２０９で接続される。
【００３４】
フラッシュメモリ２０４にはブートローダプログラム及び本発明に係る表示装置制御プログラムが格納されている。
【００３５】
メインメモリ２０６は揮発性メモリであり、高速アクセスが可能なため、フラッシュメモリ２０４に記憶されている情報や一時的に使用する情報を格納する。画像表示装置１００の電源投入時には、ＣＰＵ２０１がブートローダプログラムを読み出して実行し、フラッシュメモリ２０４に格納されている表示装置制御プログラムを取り出し、メインメモリ２０６にロードする。フラッシュメモリ２０４はまた、仮想オブシェクトの各種ドキュメントファイルを処理するアプリケーションプログラムを格納している。そして、ＣＰＵ２０１がメインメモリ２０６にロードされた表示装置制御プログラムを実行し、画像表示装置１００が備える、図１に示した各機能を実行する。観測ユーザの画像表示装置１００において仮想オブジェクト取得部１１４がデータベース・サーバ１５０上の仮想オブジェクト格納部１５３にアクセスして仮想オブジェクトを選択し取得すると、該仮想オブジェクトを表示に使用することができる。
【００３６】
画像表示装置１００は、ユーザに情報を提示する際にはディスプレイ２０８に情報を表示する。
【００３７】
ディスプレイ２０８は、液晶ディスプレイや有機ＥＬディスプレイなどの周知の表示装置であってよい。
【００３８】
グラフィックコントローラ２０７は、ディスプレイ２０８の表示を制御する。
【００３９】
カメラ２０２は、レンズや、ＣＣＤまたはＣＭＯＳと呼ばれる固体撮像素子などの周知の要素から成り、撮像画像をデジタルデータとして出力する。
【００４０】
ネットワークインタフェース２０３は、ネットワーク９００に接続している機器との間で情報の授受を行う。
【００４１】
操作部２０５は、画像表示装置１００を装着するユーザが該装置を操作するために使われる。操作部２０５は、ボタンやタッチパネル、またはソフトキーボードなどの周知のユーザインタフェースを備える。ユーザは操作部２０５を使って、ディスプレイ２０８に映し出される項目の選択、文字入力、決定の各操作などを行うことができる。ディスプレイ２０８上の項目を選択する際は、ユーザの指し示す位置を表すカーソルを表示し操作することによって、ユーザの意図する項目を指し示す、または選択することができる。
【００４２】
図３は、本実施形態におけるカメラ位置姿勢テーブル１５１の例を示す図である。
【００４３】
カメラ位置姿勢テーブル１５１は、データベース・サーバ１５０上で管理され、画像表示装置１００のカメラ位置姿勢更新部１０３からのリクエストに応じて、テーブルの内容を随時更新できる。カメラ位置姿勢テーブル１５１により、全てのユーザのカメラ位置姿勢を管理できる。
【００４４】
各行３０１〜３０４は、各ユーザのユーザＩＤ、カメラ位置情報、カメラ姿勢情報、ユーザネーム、所属グループを表している。例えば、行３０１のユーザＩＤは“０００１”、ユーザネームは“田中俊哉”、所属グループは“アルファ”として表される。
【００４５】
カメラ位置は、Ｘ成分が“３５００”ミリメートル、Ｙ成分が“１９００”ミリメートル、Ｚ成分が“１６６５”ミリメートルとして表される。ただし、ここでは単位をミリメートルとしたが、メートルや距離を表す他の単位でも良い。
【００４６】
カメラ姿勢は、方位角が“２００”度（ｄｅｇｒｅｅ）、仰俯角が“２”度として表される。ただし、ここでは角度を表す単位としてｄｅｇｒｅｅを用いたが、ｒａｄｉａｎでも良い。尚、方位角は、“０”度を北方向とするならば、東、南、西はそれぞれ“９０”度、“１８０”度、“２７０”度と表される。方位角は、基準になる任意の方位を０度に設定することができ、全てのユーザの方向が、その基準の方位から何度であるかを表せればよい。また、仰俯角は“０”度が水平方向を、“９０”度が天頂方向を、“−９０”度が鉛直方向を表す。他の行３０２〜３０４行も、行３０１と同様の情報を表す。
【００４７】
図４は、本実施形態における仮想オブジェクト情報テーブル１５２の例を示す図である。
【００４８】
仮想オブジェクト情報テーブル１５２は、データベース・サーバ１５０上で管理され、画像表示装置１００からのリクエストに応じて、テーブルの内容を更新できる。
【００４９】
各行４０１，４０２は、仮想オブジェクト格納部１５３が格納している各仮想オブジェクトの仮想オブジェクトＩＤ、位置、姿勢、仮想オブジェクトを共有しているユーザのＩＤである共有ユーザＩＤ、仮想オブジェクト名を表している。
【００５０】
例えば、行４０１の仮想オブジェクトの仮想オブジェクトＩＤは“０００１”である。位置は、Ｘ成分が“１０００”ミリメートル、Ｙ成分が“１５００”ミリメートル、Ｚ成分が“１５００”ミリメートルとして表される。ここでの単位はミリメートルであるが、メートルや距離を表す他の単位でも良い。姿勢は、方位角が“１３５”度、仰俯角が“０”度として表される。ただし、ここでは角度を表す単位としてｄｅｇｒｅｅを用いたが、ｒａｄｉａｎでもよい。
【００５１】
また、共有ユーザＩＤは“０００１”、“０００２”、“０００３”であり、これは、図３のユーザＩＤと紐付けられ、すなわち関連付けられている。例えば、行４０１の仮想オブジェクトＩＤ“０００１”をもつ仮想オブジェクトは、ユーザＩＤが“０００１”、“０００２”、“０００３”のユーザにより共有されていることが表されている。該ユーザＩＤから、カメラ位置姿勢情報なども得ることができる。
【００５２】
仮想オブジェクト名は、仮想オブジェクト格納部１５３に格納されている仮想オブジェクトの元々のファイル名を表している。例えば、行４０１からは、“ＡＢＣ．ｐｄｆ”という名前のファイルを仮想オブジェクトとして表示していることが分かる。ファイル形式はｐｄｆファイルに限らないし、３次元グラフィックファイルであってもよい。
【００５３】
図５は本実施形態のシステム全体のフローチャートである。
【００５４】
本フローチャートに示される処理は画像表示装置１００による全体処理であり、画像表示装置１００のフラッシュメモリ２０４に格納されたプログラムをＣＰＵ２０１が実行することによって、本フローチャートにおける各ステップが実施される。
【００５５】
Ｓ５０１〜Ｓ５０５及びＳ５１２〜Ｓ５１５は原則的に観測ユーザの画像表示装置１００が処理主体となることができ、Ｓ５０６〜Ｓ５１１は原則的に場に居る全てのユーザ（観測ユーザ及び非観測ユーザ）の画像表示装置１００が処理主体となることができる。但し、Ｓ５０１〜Ｓ５０５の処理については、観測ユーザ及び非観測ユーザでもない、表示の際に場にはいない仮想オブシェクトの管理者が例えばパーソナルコンピュータ上でアプリケーションを使用して、表示に先立って処理主体となることもできる。さらに、Ｓ５１１については、場にいる非観測ユーザのうち、Ｓ５０５において共有ユーザに設定されていない非観測ユーザの画像表示装置１００は処理主体となることができない。
【００５６】
Ｓ５０１では、拡張現実空間に表示する仮想オブジェクトを観測ユーザが決定する。表示に用いる仮想オブジェクトは、複数ユーザで共有されやすいように、前述した通りデータベース・サーバ１５０の仮想オブジェクト格納部１５３に格納されている中から選択できる。これに限定することなく、仮想オブジェクトは、フラッシュメモリ２０４に格納されているファイル等を選択し、選択したファイル等をデータベース・サーバ１５０に送出し、そのファイル等に基づいてもよい。決定操作は、操作部２０５を使って行うことができ、リスト表示されたファイル名から観測ユーザが任意に選択して決定することができる。決定したファイル名を、ネットワーク９００を介してデータベース・サーバ１５０上の仮想オブジェクト情報テーブル１５２に登録するようリクエストすると、データベース・サーバ１５０が仮想オブジェクト情報テーブル１５２の仮想オブジェクト名列に登録する。
【００５７】
Ｓ５０２では、表示する仮想オブジェクトの位置姿勢を観測ユーザが決定する。仮想オブジェクトの位置姿勢は、図４に示した仮想オブジェクト情報テーブル１５２のように、Ｘ、Ｙ、Ｚ、方位角、仰俯角として表される。ここで、原点はオフィスの隅の任意の既知の位置とすることができるが、地球上の所定の緯度及び経度に対応した、世界座標上で一意に決定される位置であればよい。仮想オブジェクトの位置姿勢は、観測ユーザが操作部２０５を用いて数値で入力することによって決定することができる。あるいは、観測ユーザから所定の距離に配置された仮想オブジェクトを見ながら、観測ユーザが十字ボタンなどで位置を調整することによって位置姿勢を決定してもよい。
【００５８】
Ｓ５０３では、Ｓ５０２で決定された当該仮想オブジェクトの表示位置姿勢情報を、データベース・サーバ１５０に登録する。具体的には、決定された表示位置姿勢情報を図４に示した仮想オブジェクト情報テーブル１５２の当該仮想オブジェクトに相当する行の位置列、姿勢列に登録する。
【００５９】
Ｓ５０４では、当該仮想オブジェクトの共有ユーザを初期設定する。共有ユーザの設定は、ディスプレイ０２０８にポップアップにより表示されるポップアップ設定画面（不図示）において操作部２０５を使って行うことができる。設定画面においては、まず、共有ユーザをユーザネームで指定するか、ユーザＩＤで指定するか、ユーザの属するグループ名でまとめて指定するかのいずれかを選択する画面が表示される。観測ユーザは、操作部２０５によって、設定画面上に表示されているカーソルを操作することで、いずれの方法で指定するか選択する。指定法を選択すると、共有設定したいユーザのユーザネーム（またはユーザＩＤまたはグループ名）の候補が設定画面に表示され、ユーザは候補の中から選択して共有ユーザを指定することができる。候補としては、例えば、観測ユーザが所属するグループの他のユーザ、システムが近くにいると判定する人物（例えば５ｍ以内など）、または過去に選択したユーザなどを表示することができる。該当する候補が存在しない場合は、ソフトキーボードによって直接手入力で指定できるようにしてもよい。ここで、入力したユーザがいない場合は、「該当ユーザはいません」と表示して観測ユーザに通知し、一方、手入力に関連する複数の候補がある場合は、所属グループ名と一緒に候補のユーザ名を表示し、その候補から観測ユーザに指定させる。また、表示した候補からの選択指定も手入力による指定もなかった場合は、観測ユーザのみ（つまり仮想オブドェクトを表示する当人だけ）が共有ユーザに指定される。このようにして設定が終了するとポップアップ設定画面は閉じる。共有ユーザの設定は、仮想オブジェクトが表示されている間はいつでも行うことができる。
【００６０】
図５のフローに戻って、Ｓ５０５では、Ｓ５０４で設定された当該仮想オブジェクトの共有ユーザＩＤを、ネットワーク９００を介してデータベース・サーバ１５０上の仮想オブジェクト情報テーブル１５２に登録するようリクエストする。具体的には、リクエストによって、設定された共有ユーザＩＤが、仮想オブジェクト情報テーブル１５２における該仮想オブジェクトの共有ユーザＩＤ列に登録される。共有ユーザは、仮想オブジェクト情報テーブル１５２の共有ユーザＩＤとして一元管理される。
【００６１】
Ｓ５０６では、カメラ２０２で撮像した現実空間の画像を取得する。
【００６２】
Ｓ５０７では、Ｓ５０６で取得された画像から、現実空間における所定位置に配置された所定のパターンであるＡＲマーカ画像を検出する。ＡＲマーカ画像は、紙媒体などに印刷された所定パターンであり、現実空間に配置されたＡＲマーカ画像の撮像画像から幾何学計算によってカメラ２０２のカメラ位置姿勢を算出できるものであればその形状は問わない。
【００６３】
Ｓ５０８では、Ｓ５０７で検出されたＡＲマーカ画像を用いて、カメラ２０２のカメラ位置姿勢を算出する。カメラ位置姿勢の算出は、カメラ位置姿勢算出部１０２に関連して前述した方法で行う。
【００６４】
Ｓ５０９では、Ｓ５０８で算出されたカメラ位置姿勢情報をデータベース・サーバ１５０に登録する。具体的には、算出されたカメラ位置姿勢情報を図３に示したカメラ位置姿勢テーブルにおける当該ユーザの行のカメラ位置列、カメラ姿勢列に登録する。
【００６５】
Ｓ５１０では、Ｓ５０９で算出されたカメラ位置姿勢情報に基づき、仮想オブジェクトのディスプレイ２０８における表示位置を算出する。表示位置の算出方法については、図９、１０を参照して後述する。
【００６６】
Ｓ５１１では、Ｓ５１０で算出された仮想オブジェクトの表示位置に基づいて、仮想オブジェクトをディスプレイ２０８に表示する。
【００６７】
Ｓ５１２では、画像表示装置１００が共有状態表示モードであるか否かを判定する。共有状態表示モードのオン／オフ設定は、仮想オブジェクトの表示時にユーザが設定することができる。設定操作は、操作部２０５への入力によって行なえ、ディスプレイ２０８に表示された共有状態表示モードアイコンの選択操作によって、モードのオン／オフを切り替えることができる。共有状態表示モードと判定した場合はＳ５１３へ進み、そうでなければＳ５１４へ進む。
【００６８】
Ｓ５１３では共有状態表示処理を行ない、次いでＳ５１４へ進む。共有状態表示処理については図６を参照して後でより詳細に説明する。
【００６９】
Ｓ５１４では、仮想オブジェクトの共有ユーザ設定アイコンが選択されたか否かを判定する。共有ユーザ設定アイコン（不図示）は、Ｓ３０５の設定処理を再び行うか否かを観測ユーザに選択させるため、Ｓ５０６〜Ｓ５１３の処理中、常にディスプレイ２０８上に表示される。共有ユーザ設定アイコンの選択は、観測ユーザによる操作部２０５の操作により行われる。選択されたと判定された場合はＳ５０４へ戻り、そうでなければＳ５１５へ進む。Ｓ３０５では、操作部２０５を使用して共有ユーザの再設定を行うことができ、共有ユーザを追加及び／または削除することができる。
【００７０】
Ｓ５１５では、本処理が終了されたかどうかを判定する。終了されたと判定された場合は本処理を終了し、そうでなければＳ５０６へ戻る。
【００７１】
図６は第１実施形態による共有状態表示処理のフローチャートである。
【００７２】
Ｓ６０１乃至Ｓ６１１は、図５におけるＳ５１３の共有状態表示処理を詳細に示すフローチャートである。この共有状態表示処理は、共有状態表示モードに設定された仮想オブジェクトごとに行われる。
【００７３】
本フローチャートのＳ６０１乃至Ｓ６０８の処理は、画像表示装置１００のフラッシュメモリ２０４に格納されたプログラムをＣＰＵ２０１がメインメモリ２０６にロードして実行することによって実施される。
【００７４】
また、本フローチャートのＳ６０９乃至Ｓ６１１の処理は、データベース・サーバ１５０の外部記憶装置（不図示）に格納されたプログラムをデータベース・サーバ１５０のＣＰＵ（不図示）が実行することによって実現される。
【００７５】
Ｓ６０１では、仮想オブジェクトの共有ユーザＩＤをデータベース・サーバ１５０にリクエストし、仮想オブジェクト情報テーブル１５２から取得する。
【００７６】
Ｓ６０２では、ユーザのカメラ位置姿勢情報をデータベース・サーバ１５０にリクエストし、カメラ位置姿勢テーブル１５１から取得する。
【００７７】
Ｓ６０３では、仮想オブジェクトの位置姿勢情報をデータベース・サーバ１５０にリクエストし、仮想オブジェクト情報テーブル１５２から取得する。
【００７８】
Ｓ６０４では、当該仮想オブジェクトの識別色を決定する。識別色は、仮想オブジェクト情報テーブルの各仮想オブジェクトＩＤの一つ一つに割り当てられる。識別色は、仮想オブジェクトＩＤについて昇順に、赤、青、緑、黄、白、黒、ピンクの７色が割り当てられる。例えば、２つの仮想オブジェクトに識別色を割り当てる場合は、赤と青が割り当てられる。ただし、識別色の上記順番は例示であって、上記順番に限定されない。また、仮想オブジェクトの数が７を超える場合は、色相環をその数で等分して等分数の色を生成し、そのうちの任意の色を割り当ててもよい。Ｓ６０４の処理により、共有状態を表示したい仮想オブジェクトを一意に特定する識別マークの色を決定し、決定した識別マークの色により、共有ユーザと仮想オブジェクトを紐付けることが可能となる。例えば、図８のユーザＢとユーザＣが仮想オブジェクト７０１を共有しているとする。このとき、図８の識別マーク８０８の色が仮想オブジェクトを特定する色を示しており、ユーザＢとユーザＣの近くにある、この色と同じ色の識別マーク８０５、８０７により、ユーザＢとユーザＣが仮想オブジェクト７０１の共有ユーザであることが分かる。図８については後でより詳細に説明する。
【００７９】
Ｓ６０５では、共有状態表示処理の識別マーク表示において、識別マークを表示させる対象が識別マークを共有している共有ユーザであるか識別マークを共有していない非共有ユーザであるか、すなわち反転表示モードがオフかオンかを判定する。反転表示モードのオン／オフ設定は、共有状態の表示時にユーザが行なうことができる。設定操作は、操作部２０５への入力によって行なえ、ディスプレイ２０８に表示された反転表示モードアイコンの選択操作によって、モードのオン／オフを切り替えることができる。反転表示モードがオンと判定した場合はＳ６０７へ進み、反転表示モードがオフと判定した場合はＳ６０６へ進む。反転表示モードの具体例については図８を参照して後でより詳細に説明する。
【００８０】
Ｓ６０６では、仮想オブジェクトを共有しているユーザの位置姿勢、仮想オブジェクトの位置姿勢から、仮想オブジェクトの共有状態を表す識別マークの、ディスプレイ２０８の表示画面内の表示位置を算出する。
【００８１】
Ｓ６０７では、仮想オブジェクトを共有していないユーザの位置姿勢、仮想オブジェクトの位置姿勢から、仮想オブジェクトの非共有状態を表す識別マークの、ディスプレイ２０８の表示画面における表示位置を算出する。Ｓ６０６及びＳ６０７における表示位置の算出処理の詳細については、図９、１０を参照して後述する。
【００８２】
表示位置を算出すると、次いでＳ６０８では、算出された表示位置に基づき、ディスプレイ２０８の表示画面に識別マークを表示する。この表示位置の詳細については後述する。
【００８３】
図７は、画像表示装置１００の一実施形態であるＨＭＤを装着したユーザの位置姿勢と仮想オブジェクトの位置姿勢を示す場の俯瞰図である。図７（ａ）は、ユーザＡがユーザＢ、Ｃ、Ｄを画像表示装置１００（ＨＭＤ）を通して見ている様子を、図７（ｂ）は、ユーザＡが仮想オブジェクト７０１、７０２を画像表示装置１００（ＨＭＤ）を通して見ている様子を表す。
【００８４】
図７（ａ）、（ｂ）では、ユーザＡ、Ｂ、Ｃ、Ｄが共に場に存在し、場において仮想オブジェクト７０１、７０２が表示されている。場における位置は座標軸７０３で表すことができる。図３、４における位置は座標（Ｘ、Ｙ、Ｚ）で表され、ＸＹ平面が水平面に相当し、方位角θはＹ軸を基準に表される。図７は俯瞰図であるため、仰俯角は図示されていないが、実際には存在する。
【００８５】
図７（ａ）、（ｂ）における位置７０４は、場の原点（０，０，０）を示す。この原点に対する相対的な位置を各ユーザと各仮想オブジェクトの位置とする。
【００８６】
ユーザＡ、Ｂ、Ｃ、Ｄは、それぞれユーザＩＤが“０００１”、“０００２”、“０００３”、“０００４”であるとし、図３のカメラ位置姿勢テーブル１５１のユーザＩＤに対応している。また、図７（ａ）における画像表示装置１００（ＨＭＤ）のカメラ位置姿勢は、図３のカメラ位置姿勢テーブル１５１におけるカメラ位置及びカメラ姿勢の値に対応しているものとする。
【００８７】
仮想オブジェクト７０１、７０２はユーザＡが表示させたものであり、図５のＳ５０１〜Ｓ５１２を経て、Ｓ５１３を実行している状態であるとする。また、仮想オブジェクト７０１、７０２は、図８に表される表示イメージ８０２のように、２次元平面で表されるドキュメントを表示させているものとする。仮想オブジェクト７０１、７０２はそれぞれ仮想オブジェクトＩＤが“０００１”、“０００２”であり、図４の仮想オブジェクト情報テーブル１５２の行４０１，４０２に対応している。
【００８８】
図８は、第１実施形態における仮想オブジェクト共有状態表示の一例を示す図である。
【００８９】
図８は、図７（ａ）のようにユーザＡが画像表示装置１００（ＨＭＤ）を通してユーザＢ、Ｃ、Ｄを見ているときの、種々モードにおけるディスプレイ２０８の表示イメージ８０１、８０３、８１５を示す。図８はさらに、図７（ｂ）のようにユーザＡが画像表示装置（ＨＭＤ）１００を通して仮想オブジェクト７０１、７０２を見ているときの、上記種々モードにおけるディスプレイ２０８の表示イメージ８０２、８０４、８１６を示す。
【００９０】
表示イメージ８０１、８０２は、共有状態表示に設定される前の通常モードにおける見え方を表している。両イメージは仮想オブジェクト７０１、７０２を表示しているが、共有状態を表す識別マークは表示していない。
【００９１】
表示イメージ８０３、８０４は、反転表示を行わない共有状態表示モードにおける見え方を表している。表示イメージ８０３は、仮想オブジェクトの共有状態を表す識別マーク識別マーク８０５、８０６をユーザＢの近傍に、識別マーク８０７をユーザＣの近傍に表示している。表示イメージ８０４は、各仮想オブジェクト自体を表す識別マーク８０８、８０９を表示している。仮想オブジェクト７０１は識別マーク８０８に、仮想オブジェクト７０２は識別マーク８０９にそれぞれ対応しており、各識別マークの色によって仮想オブジェクトを識別可能である。表示イメージ８０３と表示イメージ８０４における各識別マークの色を参照することで、識別マーク８０５、８０７は識別マーク８０８に、識別マーク８０６は識別マーク８０９に対応していることが分かる。従って、例示の表示イメージ８０３、８０４から、ユーザＢは仮想オブジェクト７０１、７０２を共有していること、ユーザＣは仮想オブジェクト７０１を共有していること、ユーザＤはいずれの仮想オブジェクトも共有していないことが分かる。従って、ユーザＡは共有状態表示モードにおいてユーザと仮想オブジェクトの近くに表示される識別マークを見ることで、ユーザ毎の仮想オブジェクトの共有状態を知ることができる。
【００９２】
一方、表示イメージ８１５、８１６は、反転表示を行う共有状態反転表示モードにおける見え方を表している。表示イメージ８１５は、仮想オブジェクトの非共有状態を表す識別マーク８１０をユーザＣの近傍に、識別マーク８１１、８１２をユーザＤの近傍に表示している。表示イメージ８１６は、仮想オブジェクト自体を表す識別マーク８０８、８０９を、表示イメージ８０４と同様に表示している。表示イメージ８１５と表示イメージ８１６における各識別マークの色を参照することで、識別マーク８１０、８１２は識別マーク８０９に、識別マーク８１１は識別マーク８０８に対応していることが分かる。従って、例示の表示イメージ８１５、８１６から、ユーザＤは仮想オブジェクト７０１、７０２を共有していないこと、ユーザＣは仮想オブジェクト７０２を共有してないこと、ユーザＢは両仮想オブジェクトを共有していることを、ユーザＡは知ることができる。
【００９３】
図９は図７における観測者であるユーザＡが、画像表示装置１００の一実施形態であるＨＭＤに装着されているカメラ２０２の撮像画像を介して、ユーザＡが見ている被観測者である他のユーザＢ，Ｃ，またはＤの識別マーク表示位置を導出する方法の概念図である。尚、仮想オブジェクトの識別マーク表示位置を導出する場合も、同様の方法によって実現可能である。
【００９４】
ここで、画像表示装置１００のカメラ位置姿勢取得部１０４は、図６を参照して説明したＳ６０2の処理によって、全ユーザのカメラ位置姿勢情報をカメラ位置姿勢テーブル１５１からネットワークを介して取得する。
【００９５】
これらのカメラ位置姿勢情報から、表示位置算出部１１２は、図９に示すようなマップを内部生成する。図９に示したマップは観測者９０２と被観測者９０３との位置関係を天頂方向から示している。表示位置算出部１１２は、観測者９０２及び被観測者９０３のが装着するＨＭＤの位置姿勢情報から、建物内の空間（物理空間）における観測者９０２の位置座標（Ｘｏ，Ｙｏ，Ｚｏ）と被観測者９０３の位置座標（Ｘｔ，Ｙｔ，Ｚｔ）を取得する。また、表示位置算出部１１２は、観測者９０２が装着する画像表示装置（ＨＭＤ）１００の、Ｘ軸を基準とする向き（以下ではＨＭＤの法線９０１と表記する）θを観測者９０２の位置姿勢情報から取得する。ここで、θの単位はｒａｄｉａｎとするが、ｄｅｇｒｅｅ単位と相互に変換可能である。
【００９６】
次に、表示位置算出部１１２は、図９に示される角度γを求める。角度γは、法線９０１に対する被観測者９０３（他のユーザ）の位置する方向の角度である。γは次式から求められる。
【００９７】
【数１】
2015072607.tif 000003
【００９８】
表示位置算出部１１２は、画像表示装置（ＨＭＤ）１００のカメラがカバーする視野角αと角度γを比較することで、他のユーザが被観測ユーザであるかどうかを判定する。ここでいう被観測ユーザとは、観測者であるユーザＡが装着する画像表示装置（ＨＭＤ）１００の視野角αにいて、カメラ映像を介して観測ユーザＡが見ることのできるユーザのことである。表示位置算出部１１２は、｜γ｜＜α／２であれば他のユーザが視野角αにいるユーザであって識別マークを表示すべき被観測ユーザであると判定し、そうでない場合に他のユーザは被観測ユーザではないと判定する。
【００９９】
図１０は、図６のＳ６０６、Ｓ６０７においてディスプレイ上の識別マーク表示位置を算出する方法について説明する図である。
【０１００】
図１０のように画像表示装置（ＨＭＤ）１００の法線９０１を基準とする、被観測者９０３（被観測ユーザ）の位置する方向の角度γの傾きを示す線１００２と、画像表示装置（ＨＭＤ）１００の表示面との交点が、識別マーク表示位置Ｐｄｉｓｐｌａｙである。表示面に表示されたカメラ映像における識別マーク表示位置Ｐｄｉｓｐｌａｙにおいて、観測者９０２から見た被観測ユーザが視認され、共有状態を示す識別マークが表示される。
【０１０１】
表示位置算出部１１２は、この表示位置Ｐｄｉｓｐｌａｙを次式に基づいて算出する。
【０１０２】
【数２】
2015072607.tif 000004
【０１０３】
ここで、Ｄは、観測者９０２の目から画像表示装置（ＨＭＤ）１００までの距離であって、予め決まった値である。
【０１０４】
上では水平方向の表示位置の算出の仕方について説明した。この水平方向の表示位置の算出についての考えを適用すれば、垂直方向の表示位置についても同様に算出することができる。具体的には、垂直方向の画像表示装置（ＨＭＤ）１００の向きとして仰俯角を観測者９０２の位置姿勢情報から取得して考慮することで、観測者９０２に対して被観測者９０３の位置する垂直方向の位置を算出することができる。
【０１０５】
このようにして算出した表示位置は画像表示装置（ＨＭＤ）１００が備えるカメラ０２０２の位置である。そこで、識別マークを被観測者の近くに表示するために、識別マークが一つの場合は、水平方向においては算出した表示位置、垂直方向においては顔の大きさくらい（例えば２ｃｍ）算出した表示位置から上に変位した位置を実際の表示位置とする。また、識別マークを複数表示する場合は、例えば２つの場合なら、垂直方向においては同様に変位した位置、水平方向においては算出した表示位置から例えば顔幅の半分くらい左右に変位した位置を実際の表示位置とする。表示する識別マークの数に応じて、水平方向の変位量は適宜、設定することができる。第１実施形態では、観測者９０２すなわち観測ユーザＡが画像表示装置１００の一実施形態であるＨＭＤのカメラ２０２の映像を通して被観測ユーザＢ、Ｃ、Ｄと仮想オブジェクトを観測したときに、共有状態を表す識別マークの有無及び色を視認できる。この結果、観測ユーザＡは、仮想オブジェクトが共有されているかどうか、及び、仮想オブジェクトがどのユーザによって共有されているかを容易に視認することができる。すなわち、観測ユーザＡは、共有表示している仮想オブジェクトの共有ユーザを共有状態表示モードにおいて一見して把握でき、あるいは、共有表示している仮想オブジェクトの共有でないユーザを共有状態反転表示モードにおいて一見して把握できる。
【０１０６】
なお、図８は被観測ユーザの近くに識別マークを表示する態様として、カメラ位置を算出し、これを基準に被観測ユーザの頭上に表示する例を示したが、これは単なる例示にすぎない。被観測ユーザの例えば肩付近や体の近く、または足元に識別マークを表示するように変形することも、被観測ユーザの画像と部分的に重なる位置に識別マークを表示するように変形することも可能である。このような表示位置の変形例は、人を検出し、人画像の輪郭を抽出する従来の技術を用いることで実現することができる。また、仮想オブジェクトの近くに識別マークを表示する例についても、同様に仮想オブジェクトの上側に識別マークを表示する例を示したが、これに限定することなく、仮想オブジェクトの横または下側に表示してもよい。
【０１０７】
表示位置については上記の変形が可能であるが、簡潔な説明のために、以下では特に断らない限り、識別マークをユーザの近くに表示するとは、ユーザの頭上に表示すること、または仮想オブジェクトの上側に表示することを言う。
【０１０８】
＜第２実施形態＞
以下、本発明の第２実施形態について説明する。
【０１０９】
第１実施形態では、図１の仮想オブジェクト識別色決定部１０７を用いて、仮想オブジェクトに固有の色の識別マークを、各仮想オブジェクトの近くと各ユーザの近くに表示する例について示した。これに対して第２実施形態では、ユーザ識別色決定部１０８を用いて、被観測ユーザに固有の色の識別マークを、被観測ユーザの近くと仮想オブジェクトの近くに表示する例を示す。
【０１１０】
以降、第１実施形態と本実施形態の相違点を中心に説明する。
【０１１１】
図１１は、第２実施形態における共有状態表示処理のフローチャートである。
【０１１２】
第１実施形態との相違点は、ユーザに固有に割り当てたユーザ識別色の識別マークを各ユーザの近くに表示し、各ユーザ識別色の識別マークを、そのユーザ識別色を割り当てられたユーザが共有している仮想オブジェクトの近くに表示する点である。
【０１１３】
このために図１１のＳ１１０４では、ユーザ識別色を決定する。色の決定方法は、図６のＳ６０４における方法と同様であり、色を割り当てる対象を、仮想オブジェクトからユーザに置き換えるだけでよい。この処理により、共有状態を表示したいユーザを一意に特定する識別マークの色、すなわちユーザ識別色を決定する。識別マークのユーザ識別色により、共有ユーザと仮想オブジェクトを紐付けることが可能となる。図１２の表示イメージ１２０１中の識別マーク１２０５がユーザＢのユーザ識別色で、表示イメージ１２０２中で仮想オブジェクト７０１、７０２の近くに同色の識別マーク１２０７、１２０９を表示し、両オブジェクトがユーザＢにより共有されていることを示す。
【０１１４】
図１２は、第２実施形態における仮想オブジェクト共有状態表示の例を示す図である。
【０１１５】
第１実施形態において説明した図８との相違点は、仮想オブジェクトを表す色の識別マークではなくユーザを特定するユーザ識別色の識別マークを、そのユーザの近くと、そのユーザが共有する仮想オブジェクトの近くに表示する点である。
【０１１６】
表示イメージ１２０１、１２０２は、反転表示を行わない共有状態表示モードにおける見え方を表している。表示イメージ１２０１は、ユーザＢに固有に割り当てられた色の識別マーク１２０５をユーザＢの近くに、ユーザＣに固有に割り当てられた色の識別マーク１２０６をユーザＣの近くに表示している。識別マーク１２０５、１２０６は、ユーザＢ、Ｃにそれぞれ対応するユーザ識別色をしており、各識別マークの色によってユーザを識別可能である。ただし、ユーザＤは仮想オブジェクトを共有していないため、ユーザＤに対応する識別マークは表示されない。
【０１１７】
表示イメージ１２０２は、共有ユーザを表す識別マーク１２０７、１２０８、１２０９を表示している。各識別マークのユーザ識別色から、識別マーク１２０７、１２０９は識別マーク１２０５に対応していること、及び、識別マーク１２０８は識別マーク１２０６に対応していることが分かる。従って、表示イメージ１２０１、１２０２を参照すると、ユーザＢは仮想オブジェクト７０１、７０２を共有していること、ユーザＣは仮想オブジェクト７０１のみを共有していること、及び、ユーザＤはいずれの仮想オブジェクトも共有していないことが分かる。これにより、ユーザＡは、ユーザの近くと仮想オブジェクトの近くに表示される識別マークから、ユーザ毎の仮想オブジェクトの共有状態を知ることができる。
【０１１８】
一方、表示イメージ１２０３、１２０４は、反転表示を行う共有状態反転表示モードにおける見え方を表している。表示イメージ１２０３は、ユーザＣに固有に割り当てられた色の識別マーク１２１０をユーザＣの近くに、ユーザＤに固有に割り当てられた色の識別マーク１２１１をユーザＤの近くに表示している。ただし、ユーザＢは仮想オブジェクトを共有しているため、ユーザＢに対応する識別マークは表示されない。
【０１１９】
表示イメージ１２０４は、仮想オブジェクトを共有していないユーザを表す識別マーク１２１２、１２１３、１２１４を表示している。各識別マークのユーザ識別色から、識別マーク１２１２、１２１４は識別マーク１２１１に対応していること、及び、識別マーク１２１３は識別マーク１２１０に対応していることが分かる。観測ユーザは表示イメージ１２０３、１２０４から、ユーザＢは両仮想オブジェクト７０１、７０２を共有していること、ユーザＣは仮想オブジェクト７０２を共有していないこと、ユーザＤは両仮想オブジェクト７０１、７０２を共有していないことが分かる。
【０１２０】
第２実施形態では、ユーザを特定するユーザ識別色の識別マークを各ユーザの近くに表示し、各ユーザ識別色の識別マークを、そのユーザ識別色を割り当てられたユーザが共有している仮想オブジェクトの近くに表示する例を説明した。共有表示している仮想オブジェクトの近くに表示された識別マークを見ることで、観測ユーザは、共有表示している仮想オブジェクトがどのユーザにより共有されているかを、ユーザの名前が分らなくとも共有状態表示モードにおいて容易に把握することができる。あるいは、観測ユーザは、共有表示している仮想オブジェクトを共有していないユーザがどのユーザであるかを、ユーザの名前が分らなくとも共有状態反転表示モードにおいて容易に把握することができる。
【０１２１】
＜第３実施形態＞
第１実施形態では、共有表示している全ての仮想オブジェクトに対して、各仮想オブジェクトの識別マークを、各仮想オブジェクトの近くと各ユーザの近くに表示する例について示した。第３実施形態は、仮想オブジェクト指定部１０９を用いて、観測ユーザが指定した仮想オブジェクトに対してのみ、該仮想オブジェクトの共有または非共有を示す識別マークを該仮想オブジェクトを共有するユーザまたは共有しないユーザの近くに表示する例である。
【０１２２】
以降、第１実施形態と本実施形態の相違点を中心に説明する。本実施形態においては、観測ユーザが装着する画像表示装置１００が備えるカメラ２０２として、腕方向指定のために２台必要である。
【０１２３】
図１３は、第３実施形態における共有状態表示処理のフローチャートである。
【０１２４】
第１実施形態との相違点は、仮想オブジェクト指定モードに設定されている場合には全ての仮想オブジェクトの共有状態を表示することなく、観測ユーザが指定した仮想オブジェクトについてのみ共有状態を表示する点である。このための処理として、図１３におけるＳ１３０５，Ｓ１３０６，Ｓ１３０８，Ｓ１３０９について、以下で説明する。
【０１２５】
Ｓ１３０５では、共有状態表示処理が仮想オブジェクト指定モードに設定されているか否かを判定する。このモードは、観測ユーザが自由に設定することができ、また、設定を変更することができる。仮想オブジェクト指定モードに設定されていなければＳ１３０７へ進んで、以下、第１実施形態と同様に、全ての仮想オブジェクトの共有状態を表示する。一方、仮想オブジェクト指定モードに設定されていればＳ１３０６の仮想オブジェクト指定処理を行った後、指定された仮想オブジェクトに対して、反転表示モード（Ｓ１３０９）または非反転表示モード（Ｓ１３０８）で共有状態を表示する。
【０１２６】
Ｓ１３０６の仮想オブジェクト指定処理は場にいる観測ユーザが装着する画像表示装置１００が処理主体であり、その詳細については、図１４を参照して後でより詳細に説明する。
【０１２７】
図１４は、第３実施形態における仮想オブジェクト指定処理（Ｓ１３０６）の詳細なフローチャートである。
【０１２８】
Ｓ１４０１では、仮想オブジェクト指定方法が、仮想オブジェクト名を指定する仮想オブジェクト名指定モードまたは観測ユーザの腕の方向により仮想オブジェクト指定する腕方向指定モードのどちらであるかを判定する。仮想オブジェクト名指定モードであればＳ１４０２へ進み、腕方向指定モードであればＳ１４０３へ進む。
【０１２９】
仮想オブジェクト名指定モードである場合にＳ１４０２では、仮想オブジェクト名を指定する。具体的には、仮想オブジェクトのファイル名を、観測ユーザが画像表示装置１００を操作することで指定する。例えば、“ｘｘｘ．ｔｘｔ”などのファイル名を指定することができる。尚、仮想オブジェクト名の指定は、仮想オブジェクトを一意に指定できる方法であれば、仮想オブジェクトに固有に割り当てられるＩＤなどを指定して行ってもよい。
【０１３０】
腕方向指定モードである場合にＳ１４０３では、観測ユーザの腕の方向と仮想オブジェクトの位置から、観測ユーザが指定した仮想オブジェクトを決定する。腕の方向は、カメラ２０２の撮像画像から、周知の技術を用いて算出し認識することが可能である。例えば、赤外線カメラにより得た現実世界の奥行き情報から、現実世界をコンピュータ・グラフィックス上で再構成することにより、人体の骨格情報を抽出することができる。画像表示装置１００を装着する観測ユーザの前方に映る該ユーザの前腕（肘から手まで）の、コンピュータ・グラフィックス上で得た骨格情報は、ベクトル情報に置き換えることができる。次いで、カメラの位置姿勢情報を、このベクトル情報と組み合わせることにより、腕の指し示す方向を空間上のベクトル情報として表すことができる。尚、奥行き情報は観測ユーザの前方を撮像する、所定の間隔で並行配置された２台のカメラを用いることによっても測定できる。２台のカメラによる奥行き映像の取得に関しても周知の技術であるため、ここでの説明は省略する。腕方向指定の具体的なイメージについては、次に図１５を参照して説明する。
【０１３１】
図１５は、第３実施形態において腕の方向によって仮想オブジェクトを指定する方法を説明する図である。
【０１３２】
図１５は、仮想オブジェクト７０１，７０２のうちから、観測ユーザの腕１５０３の方向によって、仮想オブジェクト７０２を指定する例を示している。腕１５０３の骨格情報１５０２は、画像表示装置１００の２台のカメラによる撮像画像から周知の技術を用いて求めることができる（例えば特許文献４）。次いで、腕１５０３の骨格情報１５０２とカメラ位置姿勢情報から、腕１５０３の指し示す方向を空間上のベクトルとして表すことができる。例えば、腕１５０３の指し示す方向は、画像表示装置１００（ＨＭＤ）のディスプレイに表示される表示イメージ１５０１におけるΦとして求められる。したがって、腕１５０３の方向Φ、観測ユーザの位置姿勢、仮想オブジェクト７０２の位置姿勢から、観測ユーザが望む仮想オブジェクトを指定することができる。
【０１３３】
具体的には、図９に示した、観測者９０２と被観測者９０３の各位置姿勢情報から三角関数によって識別マークの表示位置を導出する方法に準じた方法で指定することができる。ここでは、観測ユーザＡを観測者９０２に、仮想オブジェクト７０２を被観測者９０３に、腕の方向Φを観測者９０２の姿勢（図９中のθに相当）に置き換えて考える。まず、三角関数によって、仮想オブジェクト７０２（被観測者９０３に相当）の位置から腕の方向Φから伸びる直線（ＨＭＤの法線９０１に相当）に対して垂直な線分の長さを算出する。この線分の長さが所定の長さより小さいと判定されたとき、観測ユーザＡが仮想オブジェクト７０２を指定していると判定することができる。所定の長さは、例えば５０ｃｍなどの任意の長さに設定できる。
【０１３４】
図１６は、第３実施形態における仮想オブジェクト共有状態表示の例を示す図である。
【０１３５】
第１実施形態において説明した図８との相違点は、観測ユーザが仮想オブジェクトを指定することで、指定された仮想オブジェクト７０２についてのみ共有状態を表示する点である。
【０１３６】
表示イメージ１６０１、１６０２は、反転表示を行わない共有状態表示モードにおける、指定した仮想オブジェクトの共有状態表示の見え方を表している。表示イメージ１６０２は、仮想オブジェクト７０２を表す識別マーク８０９を表示している。表示イメージ１６０１における識別マーク８０６は、ユーザＢに対応している。ユーザＣ、Ｄは、仮想オブジェクト７０２を共有していないため、対応する識別マークは表示されない。識別マーク８０６は識別マーク８０９に対応していることから、ユーザＢが仮想オブジェクト７０２を共有していることが分る。
【０１３７】
表示イメージ１６０３、１６０４は、反転表示を行なう共有状態反転表示モードにおける、指定した仮想オブジェクトの共有状態表示の見え方を表している。表示イメージ１６０３は、仮想オブジェクトの非共有状態を表す識別マーク８１０、８１２をユーザＣ、Ｄ各々の近くに表示している。表示イメージ１６０４は、仮想オブジェクト自体を表す識別マーク８０９を、表示イメージ１６０２と同様に表示している。識別マーク８１０、８１２は識別マーク８０９に対応していることから、ユーザＣ、Ｄは仮想オブジェクト７０２を共有していないことが分る。
【０１３８】
第３実施形態では、観測ユーザが指定した仮想オブジェクトに対してのみ、該仮想オブジェクトの共有または非共有を示す識別マークを、該仮想オブジェクトを共有するユーザまたは共有しないユーザの近くに表示する例を示した。これにより、観測ユーザは、共有状態を確実に確認したい仮想オブジェクトがある場合に、その仮想オブジェクトを指定して共有ユーザまたは非共有ユーザを把握することができる。
【０１３９】
＜第４実施形態＞
第１実施形態では、仮想オブジェクトとユーザの距離に関係なく、仮想オブジェクトを共有しているユーザの近くに識別マークを表示する例について示した。これに対して第４実施形態では、図１の距離判定部１１０を用いて、仮想オブジェクトから一定距離内にいると判定される共有ユーザに対して、仮想オブジェクトの識別マークを該共有ユーザの近くに表示する例を示す。
【０１４０】
以降、第１実施形態と本実施形態の相違点を中心に説明する。
【０１４１】
図１７は、第４実施形態における共有状態表示処理のフローチャートである。
【０１４２】
第１実施形態との相違点は、仮想オブジェクトとユーザの距離を判定し、仮想オブジェクトから一定距離内にいると判定される共有ユーザに対して、仮想オブジェクトの識別マークを該共有ユーザの近くに表示する点である。仮想オブジェクトから一定距離以上離れていると判定される共有ユーザについては、該仮想オブジェクトがよく見えていないと判断して、該仮想オブジェクトの識別マークを表示しない。このための処理として、図１７におけるＳ１７０５，Ｓ１７０７，Ｓ１７０８について、以下で説明する。
【０１４３】
Ｓ１７０５では、Ｓ１７０２で取得されたユーザのカメラ位置姿勢情報とＳ１７０３で取得された仮想オブジェクトの位置情報から、仮想オブジェクトから一定距離内にいるユーザを導出する。具体的には、図３に示したユーザ毎の水平面のカメラ位置（Ｘ、Ｙ）と図４に示した仮想オブジェクトの水平面の位置（Ｘ、Ｙ）から、三平方の定理によってユーザと仮想オブジェクトの距離を算出することができる。例えば、ユーザＩＤ０００２をもつユーザ（カメラ位置：（３０００、４０００））と仮想オブジェクトＩＤ０００１をもつ仮想オブジェクト（位置：（１０００、１５００））の距離は、三平方の定理によれば約３２００ｍｍである。予め定めた一定距離が５０００ｍｍであれば、このユーザは、仮想オブジェクトから一定距離内にいるユーザとして導出される。
【０１４４】
Ｓ１７０７では、Ｓ１７０５で導出されたユーザに対して、仮想オブジェクトを共有している該ユーザの位置姿勢及び該仮想オブジェクトの位置姿勢から、識別マークの表示位置を算出する。
【０１４５】
Ｓ１７０８では、Ｓ１７０５で算出されたユーザに対して、仮想オブジェクトを共有していない該ユーザの位置姿勢及び該仮想オブジェクトの位置姿勢から、識別マークの表示位置を算出する。
【０１４６】
第４実施形態によれば、Ｓ１７０７における処理及びＳ１７０９における処理に従い、仮想オブジェクトから一定距離内にいる共有ユーザに対して識別マークを表示し、一定距離以上離れている共有ユーザに対しては識別マークを表示しないことができる。あるいは、Ｓ１７０８における処理及びＳ１７０９における処理に従い、仮想オブジェクトから一定距離内にいると判定された非共有ユーザに対して識別マークを表示し、一定距離以上離れている非共有ユーザに対しては識別マークを表示しないことができる。
【０１４７】
なお、Ｓ１７０５における仮想オブジェクトとユーザ間距離の導出方法を利用して、観測ユーザから他のユーザまでの距離に応じて、識別マークの大きさを異ならせるように変形して識別マークと他のユーザとの対応をより分かりやすく変形することができる。変形したこの表示態様は、次の第５実施形態について示した図１９に示される。
【０１４８】
＜第５実施形態＞
第１実施形態では、表示される識別マークの重なりに関係なく、仮想オブジェクトを共有しているユーザの近くに識別マークを表示する例について示した。第５実施形態は、ユーザの数が多く、表示される識別マークが重なる場合にも適応するものである。すなわち、図１の重なり数算出部１１１を用い、識別マークの重なり数に応じ、共有ユーザの識別マークを該共有ユーザの近くに表示するか、識別マークを重ならない位置に表示するか、識別マークを表示せずに共有しているユーザ数を表示するかのいずれかを行う。
【０１４９】
以降、第１実施形態と本実施形態の相違点を中心に説明する。
【０１５０】
図１８は、第５実施形態における共有状態表示処理のフローチャートである。
【０１５１】
第１実施形態との相違点は、識別マークの重なり数に応じた処理を行うことである。すわち、識別マークが重ならない場合は共有ユーザの識別マークを該共有ユーザの近くに表示し、重なり数がしきい値以下の場合は重ならないような表示位置を再算出してその位置に表示し、しきい値を超える場合は共有しているユーザ数を数値で表示する。このための処理として、図１８におけるＳ１８０８乃至Ｓ１８１２について、以下で説明する。
【０１５２】
Ｓ１８０８では、Ｓ１８０６またはＳ１８０７で算出された識別マークの表示位置から、識別マークの重なり数を算出する。識別マークの大きさは観測ユーザから他のユーザまでの距離に応じて異ならせることができ、より近くのユーザに対応する識別マークはより大きく、より遠くのユーザに対応する識別マークはより小さく表示する。ディスプレイ上の表示位置と識別マークの大きさから、表示される識別マークが重なるかどうかを判定できる。
【０１５３】
例えば、ディスプレイの大きさが「１２８０ｘ８００」（単位はピクセル）で、識別マークの大きさが「４００ｘ２００」、識別マークの表示位置が（６００ピクセル、４００ピクセル）であるとする。ただし、（ｘピクセル、ｙピクセル）はディスプレイの左上を原点として、右にｘピクセル分シフトし、下にｙピクセル分シフトした位置の座標を表す。この場合、ディスプレイにおける識別マークの表示範囲は、（６００ピクセル、４００ピクセル）を中心とした「４００ｘ２００」の長方形となる。すなわち、左上（４０１ピクセル、３０１ピクセル）、右上（８００ピクセル、３０１ピクセル）、左下（４０１ピクセル、５００ピクセル）、右下（８００ピクセル、５００ピクセル）の４点を結んだ長方形として、識別マークの大きさである表示範囲を算出できる。
【０１５４】
次いで、算出された識別マークの表示範囲から、各識別マークの重なり数を算出できる。例えば２つの識別マークの表示範囲が、上の例で挙げた長方形と、左上（６０１ピクセル、３０１ピクセル）、右上（１０００ピクセル、３０１ピクセル）、左下（６０１ピクセル、５００ピクセル）、右下（１０００ピクセル、５００ピクセル）を結ぶ長方形とする。この場合、識別マークの重なり範囲は、左上（６０１ピクセル、３０１ピクセル）、右上（８００ピクセル、３０１ピクセル）、左下（６０１ピクセル、５００ピクセル）、右下（８００ピクセル、５００ピクセル）を結ぶ長方形である。したがって、４０，０００ピクセル（２００ｘ２００）が重なっていると算出でき、重なり数は１となる。
【０１５５】
Ｓ１８０９では、Ｓ１８０８で算出された識別マークの重なり数が０であるか否かを判定する。識別マークの重なり数が０であればＳ１８１３へ進んでＳ１８０６またはＳ１８０７で算出された位置に識別マークを表示し、そうでなければＳ１８１０へ進む。
【０１５６】
Ｓ１８１０では、Ｓ１８０８で算出された識別マークの重なり数が所定のしきい値以下であるか否かを判定する。重なり数がしきい値以下であるとは、識別マークの重なり数が例えば３個以内である場合を表す。重なり数のしきい値は、ユーザが任意に設定できる。重なり数がしきい値以下であればＳ１８１１へ進み、そうでなければＳ１８１２へ進む。
【０１５７】
重なり数がしきい値以下の場合にＳ１８１１では、重なると判定された識別マークが重なって表示されることのない、Ｓ１８０６またはＳ１８０７で算出された表示位置と異なる表示位置を再算出する。具体的には、図１９に例示する表示イメージ１９０３は識別マークが重ならないように表示しており、重なりを考慮しない表示イメージ１９０２と比べ、より見やすく表示していることが分かる。
【０１５８】
一方、識別マークの重なり数がしきい値を超えている場合にＳ１８１２では、ユーザ毎に識別マークの表示位置を算出するのではなく、各仮想オブジェクトを共有しているユーザの人数を、該仮想オブジェクトの近くに数値により表示する。具体的には、図１９における表示イメージ１９０５のように、ユーザ数を表示する。
【０１５９】
図１９は、第５実施形態における仮想オブジェクト共有状態表示の例を示す図である。
【０１６０】
各表示イメージ１９０１〜１９０５は、図８のようにユーザが３人ではなく、９人いる例を表す。
【０１６１】
表示イメージ１９０２は、第５実施形態の手法を使わず、識別マークの重なりを考慮しない第１実施形態の手法によって、共有識別マークを表示している。
【０１６２】
表示イメージ１９０３は、図１８におけるＳ１８１１によって再算出された表示位置を用いて、Ｓ１８０６またはＳ１８０７で算出された位置からずらした位置に識別マークを表示した例である。表示イメージ１９０２では識別マークが重なるため共有状態が見難くいが、表示イメージ１９０３では重なりがなく、より見やすく識別マークが表示されていることが分かる。
【０１６３】
表示イメージ１９０５は、図１８のＳ１８１２によって共有ユーザの人数を表示させた例であり、仮想オブジェクト７０１の近くに人数表示１９０６が「９」と、仮想オブジェクト７０２の近くに人数表示１９０７が「８」と表示される。共有人数が多人数である場合は、Ｓ１８１０において重なり数がしきい値を超えると判定され、Ｓ１８１２により、表示イメージ１９０５のように共有人数が仮想オブジェクトの近くに表示される。例えば、参加者の多い会議などでは、ユーザ個々の識別マークを確認するよりも、大まかな人数を確認した方が有効である。
【０１６４】
第５実施形態によれば、参加者の多い会議などで本発明を用いた場合でも、識別マークの表示が氾濫することがない共有表示を提供できる。
【０１６５】
上記各実施形態では、ＨＭＤを用いて仮想オブジェクトの共有状態を表示する場合について述べたが、ＨＭＤの代わりにタブレット端末やＨＵＰ（ヘッドアップディスプレイ）を用いても良い。また、（半）透過ディスプレイを備えたＨＭＤ及びＨＵＤを用いた場合、観測ユーザはカメラ映像を通すことなく、観測ユーザの目で直接被観測ユーザを見ながら共有状態を視認することができる。そのため観測ユーザは、カメラ映像を通してではなく、ディスプレイを透過して実際に見える被観測ユーザに重ねて共有状態を視認することが可能となる。
【０１６６】
上記各実施形態は、拡張現実空間における仮想オブジェクトの共有／非共有の態様を、仮想オブジェクトをユーザごとに閲覧できること／閲覧できないこととして本発明を実施したものである。本発明の共有／非共有の概念をさらに拡張した実施形態も可能である。例えば、仮想オブジェクトの内容の編集を共有ユーザのうちの特定のユーザに許可すること／しないことを、本発明の共有／非共有の概念に含めることができる。さらに、仮想オブジェクトの表示に関して表示位置の変更（移動・回転など）操作を共有ユーザのうちの特定のユーザに許可すること／しないことなどを、本発明の共有／非共有の概念に含めることができる。
【０１６７】
仮想オブジェクトの表示に関して表示位置の変更操作を特定のユーザに許可する形態は、観測ユーザ主体で実行されたＳ５０２で決定された仮想オブジェクト情報テーブル１５２上位置姿勢情報を、指定した特定のユーザが更新できるように構成して実現できる。仮想オブジェクトの編集を許可する形態は、データベース・サーバ１５０上の仮想オブジェクト格納部１５３に、指定した特定のユーザがアクセスして、フラッシュメモリ２０４に格納したアプリケーションプログラムにより編集できるように構成して実現できる。
【０１６８】
＜他の実施形態＞
本発明は、複数の機器（例えばコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用することも、１つの機器からなる装置（複合機、プリンタ、ファクシミリ装置など）に適用することも可能である。
【０１６９】
前述した実施形態の機能を実現するように前述した実施形態の構成を動作させるプログラムを記憶媒体に記憶させ、該記憶媒体に記憶されたプログラムをコード として読み出し、コンピュータにおいて実行する処理方法も上述の実施形態の範疇に含まれる。即ちコンピュータ読み取り可能な記憶媒体も実施例の範囲に含まれる。また、前述のコンピュータプログラムが記憶された記憶媒体はもちろんそのコンピュータプログラム自体も上述の実施形態に含まれる。
【０１７０】
かかる記憶媒体としてはたとえばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ―ＲＯＭ、磁気テープ、不揮発性メモリカード、ＲＯＭを用いることができる。
【０１７１】
また前述の記憶媒体に記憶されたプログラム単体で処理を実行しているものに限らず、他のソフトウエア、拡張ボードの機能と共同して、ＯＳ上で動作し前述の実施形態の動作を実行するものも前述した実施形態の範疇に含まれる。
【図１】
2015072607.tif 000005
【図２】
2015072607.tif 000006
【図３】
2015072607.tif 000007
【図４】
2015072607.tif 000008
【図５】
2015072607.tif 000009
【図６】
2015072607.tif 000010
【図７】
2015072607.tif 000011
【図８】
2015072607.tif 000012
【図９】
2015072607.tif 000013
【図１０】
2015072607.tif 000014
【図１１】
2015072607.tif 000015
【図１２】
2015072607.tif 000016
【図１３】
2015072607.tif 000017
【図１４】
2015072607.tif 000018
【図１５】
2015072607.tif 000019
【図１６】
2015072607.tif 000020
【図１７】
2015072607.tif 000021
【図１８】
2015072607.tif 000022
【図１９】
2015072607.tif 000023