(57)【特許請求の範囲】
【請求項１】
仮想オブジェクトの画像を表示するための表示システムであって、
カメラと、
ディスプレイと、
表示処理装置とを備え、
前記表示処理装置は、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを３次元で表示させるための画像情報と、撮影された空間に対して設定された３次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、
前記カメラによる撮影画像に対して前記３次元の座標系を設定し、前記仮想オブジェクトに対して規定された前記表示位置に前記仮想オブジェクトの画像を表示させるための表示画像を生成し、前記ディスプレイで表示させる処理を実行するための処理手段と、
ユーザによって指定された前記３次元の座標系における位置を検出するための検出手段とを含み、
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの１つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させる処理を実行する、表示システム。
【請求項２】
前記変化させる処理は、前記仮想対象外オブジェクトの画像を縮小する処理、前記仮想対象外オブジェクトの画像の形状を変化させる処理、前記仮想対象外オブジェクトの画像の色彩を変化させる処理、前記仮想対象外オブジェクトの画像の透明度を変化させる処理、および前記仮想対象外オブジェクトの画像の表示位置を変化させる処理のうちの少なくとも１つである、請求項１に記載の表示システム。
【請求項３】
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との間の距離が、予め規定されている第１の基準距離よりも小さい仮想オブジェクトを前記仮想対象オブジェクトと特定する、請求項１または２に記載の表示システム。
【請求項４】
前記処理手段は、前記仮想対象外オブジェクトの画像を、前記指定された位置と前記仮想対象オブジェクトとの間の距離に応じて縮小する、請求項３に記載の表示システム。
【請求項５】
前記処理手段は、前記ユーザによって指定される位置の変化量に基づいて前記指定される位置が向かう方向に表示位置が該当している仮想オブジェクトを前記仮想対象オブジェクトと特定する、請求項１または２に記載の表示システム。
【請求項６】
前記処理手段は、前記仮想対象外オブジェクトの表示位置を、前記指定された位置と前記仮想対象オブジェクトとの間の距離に応じて、前記仮想対象オブジェクトから遠くなる方向に変化させる、請求項５に記載の表示システム。
【請求項７】
前記処理手段は、前記カメラの位置と前記仮想オブジェクトとの位置関係に基づいて、前記仮想対象オブジェクトに重なって表示される前記仮想対象外オブジェクトの画像の変化を、重なって表示されない前記仮想対象外オブジェクトの画像の変化よりも大きく変化させる、請求項１〜６のいずれかに記載の表示システム。
【請求項８】
前記処理手段は、前記カメラの位置の変化が検出されると、前記変化前の前記カメラの位置に応じて前記仮想対象オブジェクトに重なって表示されると特定された前記仮想対象外オブジェクトの画像の変化を、前記カメラの位置の移動後も維持する、請求項７に記載の表示システム。
【請求項９】
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との間の距離が、前記第１の基準距離よりも大きい第２の基準距離よりも小さい仮想オブジェクトであって、前記仮想対象オブジェクトと特定された仮想オブジェクト以外の仮想オブジェクトを前記仮想対象外オブジェクトと特定する、請求項１〜８のいずれかに記載の表示システム。
【請求項１０】
前記ディスプレイは、表示面と逆側の面からの光を透過し、前記表示処理手段で生成された前記表示画像を、前記表示面に透過性を有して表示する、請求項１〜９のいずれかに記載の表示システム。
【請求項１１】
仮想オブジェクトの画像をディスプレイに表示させるための表示処理装置であって、
前記撮影画像の入力を受付けるための入力手段と、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを３次元で表示させるための画像情報と、撮影された空間に対して設定された３次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、
前記撮影画像に対して前記３次元の座標系を設定し、前記仮想オブジェクトに対して規定された前記表示位置に前記仮想オブジェクトの画像を表示させるための表示画像を生成し、前記ディスプレイで表示させる処理を実行するための処理手段と、
ユーザによって指定された前記３次元の座標系における位置を検出するための検出手段とを含み、
前記処理手段は、前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの１つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させる処理を実行する、表示処理装置。
【請求項１２】
表示処理装置において、仮想オブジェクトの画像をディスプレイに表示させる方法であって、
カメラから撮影画像の入力を受付けるステップと、
前記撮影画像に対して前記３次元の座標系を設定するステップと、
ユーザによって指定された前記３次元の座標系における位置を検出するステップと、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを３次元で表示させるための画像情報と、撮影された空間に対して設定された３次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、
前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの１つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させるステップとを備える、表示方法。
【請求項１３】
表示処理装置に、仮想オブジェクトの画像をディスプレイに表示させる処理を実行させるためのプログラムであって、
カメラから撮影画像の入力を受付けるステップと、
前記撮影画像に対して前記３次元の座標系を設定するステップと、
ユーザによって指定された前記３次元の座標系における位置を検出するステップと、
前記仮想オブジェクトに関する情報として、当該仮想オブジェクトを３次元で表示させるための画像情報と、撮影された空間に対して設定された３次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、
前記撮影画像における仮想オブジェクトについて規定された前記表示位置と前記指定された位置との関係に基づいて前記仮想オブジェクトのうちの１つの仮想オブジェクトを仮想対象オブジェクトと特定し、前記仮想オブジェクトのうちの前記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、前記仮想対象外オブジェクトの画像を変化させるステップとを前記表示処理装置に実行させる、表示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は表示システム、表示処理装置、表示方法、および表示プログラムに関し、特に、撮影画像に選択可能なオブジェクトを表示するための表示システム、表示処理装置、表示方法、および表示プログラムに関する。
【背景技術】
【０００２】
撮影画像に仮想世界を表わす画像情報を重ねて表示し、表示上、仮想現実を表示させる技術が提案されている。仮想現実の表示では、実世界を表わす撮影画像と仮想世界を表わす画像情報とがレイヤ構成になっており、実空間と仮想空間とが、実座標でリンクしている。
【０００３】
仮想現実を用いたシステムではこのような表示構成であることから、仮想空間上にあるオブジェクトの位置を特定する際に３次元空間の奥行き感が把握し難く、オブジェクトの位置が特定し難いという問題があった。
【０００４】
この問題に対して、ユーザの指示領域とオブジェクトとの距離に応じて、指示領域またはオブジェクトの少なくとも一方の色を変化させるようにしている例がある。具体例として、特開平５−３４２３２２号公報（以下、特許文献１）は、３次元空間で、指示領域座標とオブジェクトに関連付けられた座標との距離に基づいて、段階的にポインタまたはオブジェクトの色を変更する技術を開示している。
【０００５】
他の例として、特開２００２−１０９５６８号公報（以下、特許文献２）は、仮想空間上にオブジェクトが複数存在する場合に、目的とするオブジェクトを把握しやすくするため目印となるオブジェクト以外のオブジェクトを不可視にする技術を開示している。また、特開２００３−３３７９５９号公報（以下、特許文献３）は、オブジェクトの表示形態を、視点からオブジェクまでの距離に基づいて変化させる技術を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−３４２３２２号公報
【特許文献２】特開２００２−１０９５６８号公報
【特許文献３】特開２００３−３３７９５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、これら特許文献に開示されているような技術では、３次元空間の奥行き感が把握し難く、３次元表示を視認しながらの選択がし難いという問題があった。特に、
複数のオブジェクトが近接して多数存在している場合にはそれぞれの奥行き感が把握し難いと、その中から特定のオブジェクトを選択して指定することが難しいという問題があった。
【０００８】
本発明はこのような問題に鑑みてなされたものであって、撮影画像に仮想世界を表わす画像情報を重ね、実座標でリンクさせて表示した仮想現実において、ポイントしやすくオブジェクトを表示することができる表示システム、表示処理装置、表示方法、および表示プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のある局面に従うと、表示システムは仮想オブジェクトの画像を表示するための表示システムであって、カメラと、ディスプレイと、表示処理装置とを備える。表示処理装置は、仮想オブジェクトに関する情報として、当該仮想オブジェクトを３次元で表示させるための画像情報と、撮影された空間に対して設定された３次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、カメラによる撮影画像に対して３次元の座標系を設定し、仮想オブジェクトに対して規定された表示位置に仮想オブジェクトの画像を表示させるための表示画像を生成し、ディスプレイで表示させる処理を実行するための処理手段と、ユーザによって指定された３次元の座標系における位置を検出するための検出手段とを含む。処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの１つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させる処理を実行する。
【００１０】
好ましくは、上記変化させる処理は、仮想対象外オブジェクトの画像を縮小する処理、仮想対象外オブジェクトの画像の形状を変化させる処理、仮想対象外オブジェクトの画像の色彩を変化させる処理、仮想対象外オブジェクトの画像の透明度を変化させる処理、および仮想対象外オブジェクトの画像の表示位置を変化させる処理のうちの少なくとも１つである。
【００１１】
好ましくは、処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との間の距離が、予め規定されている第１の基準距離よりも小さい仮想オブジェクトを仮想対象オブジェクトと特定する。
【００１２】
より好ましくは、処理手段は、仮想対象外オブジェクトの画像を、指定された位置と仮想対象オブジェクトとの間の距離に応じて縮小する。
【００１３】
好ましくは、処理手段は、ユーザによって指定される位置の変化量に基づいて指定される位置が向かう方向に表示位置が該当している仮想オブジェクトを仮想対象オブジェクトと特定する。
【００１４】
より好ましくは、処理手段は、仮想対象外オブジェクトの表示位置を、指定された位置と仮想対象オブジェクトとの間の距離に応じて、仮想対象オブジェクトから遠くなる方向に変化させる。
【００１５】
好ましくは、処理手段は、カメラの位置と仮想オブジェクトとの位置関係に基づいて、仮想対象オブジェクトに重なって表示される仮想対象外オブジェクトの画像の変化を、重なって表示されない仮想対象外オブジェクトの画像の変化よりも大きく変化させる。
【００１６】
より好ましくは、処理手段は、カメラの位置の変化が検出されると、変化前のカメラの位置に応じて仮想対象オブジェクトに重なって表示されると特定された仮想対象外オブジェクトの画像の変化を、カメラの位置の移動後も維持する。
【００１７】
好ましくは、処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との間の距離が、第１の基準距離よりも大きい第２の基準距離よりも小さい仮想オブジェクトであって、仮想対象オブジェクトと特定された仮想オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトと特定する。
【００１８】
好ましくは、ディスプレイは、表示面と逆側の面からの光を透過し、表示処理手段で生成された表示画像を、表示面に透過性を有して表示する。
【００１９】
本発明の他の局面に従うと、表示処理装置は仮想オブジェクトの画像をディスプレイに表示させるための表示処理装置であって、撮影画像の入力を受付けるための入力手段と、仮想オブジェクトに関する情報として、当該仮想オブジェクトを３次元で表示させるための画像情報と、撮影された空間に対して設定された３次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するための取得手段と、撮影画像に対して３次元の座標系を設定し、仮想オブジェクトに対して規定された表示位置に仮想オブジェクトの画像を表示させるための表示画像を生成し、ディスプレイで表示させる処理を実行するための処理手段と、ユーザによって指定された３次元の座標系における位置を検出するための検出手段とを含む。処理手段は、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの１つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させる処理を実行する。
【００２０】
本発明のさらに他の局面に従うと、表示方法は仮想オブジェクトの画像をディスプレイに表示させる方法であって、カメラから撮影画像の入力を受付けるステップと、撮影画像に対して３次元の座標系を設定するステップと、ユーザによって指定された３次元の座標系における位置を検出するステップと、仮想オブジェクトに関する情報として、当該仮想オブジェクトを３次元で表示させるための画像情報と、撮影された空間に対して設定された３次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの１つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させるステップとを備える。
【００２１】
本発明のさらに他の局面に従うと、表示プログラムは表示処理装置に仮想オブジェクトの画像をディスプレイに表示させる処理を実行させるためのプログラムであって、カメラから撮影画像の入力を受付けるステップと、撮影画像に対して３次元の座標系を設定するステップと、ユーザによって指定された３次元の座標系における位置を検出するステップと、仮想オブジェクトに関する情報として、当該仮想オブジェクトを３次元で表示させるための画像情報と、撮影された空間に対して設定された３次元の座標系で表わされた当該仮想オブジェクトの表示位置と、当該仮想オブジェクトが選択されることによって実行される動作とを規定する情報を記憶装置から取得するステップと、撮影画像における仮想オブジェクトについて規定された表示位置と指定された位置との関係に基づいて仮想オブジェクトのうちの１つの仮想オブジェクトを仮想対象オブジェクトと特定し、仮想オブジェクトのうちの仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、仮想対象外オブジェクトの画像を変化させるステップとを表示処理装置に実行させる。
【発明の効果】
【００２２】
この発明によると、撮影画像に仮想世界を表わす画像情報を重ね、実座標でリンクさせて表示された仮想現実において、表示される選択肢としてのオブジェクトを、より直感的に、より簡易に選択することが可能となる。
【図面の簡単な説明】
【００２３】
【図１】本実施の形態にかかる表示システムの構成の具体例を示す図である。
【図２】本実施の形態にかかる表示システムの構成の他の具体例を示す図である。
【図３】表示システムに含まれるディスプレイの装置構成の具体例を示すブロック図である。
【図４】ポインティングデバイスである場合の、表示システムに含まれるポインタの装置構成の具体例を示すブロック図である。
【図５】本実施の形態にかかる表示システムの用いられ方の一例を説明する図である。
【図６】本実施の形態にかかる表示システムの用いられ方の一例を説明する図である。
【図７】表示システムに含まれる処理装置の機能構成の具体例を示すブロック図である。
【図８】基本の表示動作の具体例を示すフローチャートである。
【図９】マーカとして記憶されている画像の具体例を示す図である。
【図１０】撮影画像中のマーカの検出例と、その検出結果に基づく仮想オブジェクトの表示例とを示す図である。
【図１１】表示システムでの表示の一例を示す図である。
【図１２】記憶される仮想オブジェクトの座標値の具体例を示す図である。
【図１３】仮想オブジェクト−ポインタ間距離を計算する動作の具体例を示すフローチャートである。
【図１４】ポインタ位置と仮想オブジェクトの位置との間の距離を用いた表示処理の第１の例を説明する図である。
【図１５】第１の例にかかる表示処理のための動作の具体例を示すフローチャートである。
【図１６】表示処理の第１の例の、変形例を説明する図である。
【図１７】表示処理の第１の例の、変形例を説明する図である。
【図１８】表示処理の第１の例の、変形例を説明する図である。
【図１９】表示処理の第１の例の、変形例を説明する図である。
【図２０】ポインタ位置と仮想オブジェクトの位置との間の距離を用いた表示処理の第２の例を説明する図である。
【図２１】第２の例にかかる表示処理のための動作の具体例を示すフローチャートである。
【図２２】表示処理の第２の例の、変形例を説明する図である。
【図２３】表示処理の第２の例の、変形例を説明する図である。
【図２４】表示処理の第２の例の、変形例を説明する図である。
【発明を実施するための形態】
【００２４】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。
【００２５】
＜システム構成＞
図１は、本実施の形態にかかる表示システムの構成の具体例を示す図である。
【００２６】
図１を参照して、本実施の形態にかかる表示システムは、処理装置１００と、ポインタ２００と、カメラ３００と、ウェアラブルディスプレイであるディスプレイ４００と、サーバ５００と、オブジェクト設定機器としての携帯端末６００とを含む。
【００２７】
処理装置１００は、カメラ３００、ディスプレイ４００、およびサーバ５００とそれぞれ電気的に接続されている。この接続は、ＬＡＮ（Local Area Network）などの特定のネットワークを介した接続であってもよいし、インターネットなどの公衆回線を介した接続であってもよい。また、無線、有線のいずれであってもよい。
【００２８】
処理装置１００およびサーバ５００は、一般的なパーソナルコンピュータ（ＰＣ）などで構成されてもよい。
【００２９】
携帯端末６００は、携帯電話機や携帯型のＰＣなどで構成されてもよいし、通常の、一般的なＰＣで構成されてもよい。
【００３０】
カメラ３００は、処理装置１００と電気的に接続可能であって、撮影画像を処理装置１００に送信する機能を有するものであれば、どのようなものであってもよい。
【００３１】
ディスプレイ４００はカメラ３００と一体となったウェアラブルディスプレイである。ディスプレイ４００は透過性を有した表示部としてのディスプレイ４０１（図３参照）を備え、処理装置１００と電気的に接続されて、処理装置１００から送信された画像データを、表示部としてのディスプレイ４０１に対して透過性を有して表示する機能を有する。
【００３２】
ポインタ２００は所定の形状または模様を有する。該形状または模様は処理装置１００に予め登録されており、マーカとして用いられる。すなわち、処理装置１００は、カメラ３００によって撮影された画像中に存在するマーカとしてのポインタ２００の位置を画像処理によって特定する。なお、図１の例では、ポインタ２００はユーザの指先に装着される筒状のものであり、処理装置１００には予め該筒状の形状またはその表面に施された模様が記憶されているものとする。しかしながら、ポインタ２００はユーザの身体の一部に装着されるものには限定されず、たとえば、予め記憶された形状または模様を有した指示棒のようなものであってもよい。さらには、ポインタ２００が用いられず、直接ユーザの指先などの指示に用いる身体の一部の形状またはその表面に施された模様が予めマーカとして処理装置１００に記憶されており、カメラ３００によって撮影された画像中に存在する該マーカの位置が処理装置１００での画像処理によって特定されるものであってもよい。
【００３３】
なお、ポインタ２００の他の例として、処理装置１００と電気的に接続可能であり、位置センサ、加速度センサ、傾きセンサなどのセンサを搭載し、該ポインタ２００を用いて位置を指定するユーザ操作を受付けて位置などを検出し、処理装置１００に対して送信する機能を有するポインティングデバイスであってもよい。
【００３４】
さらにポインタ２００の他の例として、処理装置１００と電気的に接続可能であり、音声入力を受付けるマイクであってもよい。ユーザは、該マイクを用いて指定する位置をたとえば座標などで指示することができる。この場合、処理装置１００は音声解析機能を備え、マイクからの音声信号を解析して指定された位置を特定する。
【００３５】
処理装置１００は、カメラ３００から受信した画像を元に処理を行なう。そして、その処理結果をディスプレイ４００に表示させるための処理を行なう。
【００３６】
携帯端末６００は、少なくともユーザからの入力操作を受付けるための操作部とサーバ５００と通信するための通信部とを備える。操作部での操作によって後述する仮想オブジェクトに関する情報の入力を受付け、その情報をサーバ５００に対して送信する。サーバ５００は、入力された仮想オブジェクトの情報を記憶し、処理装置１００からの要求に応じてその情報を処理装置１００に提供する。
【００３７】
本実施の形態にかかる表示システムが図１に示される構成である場合、ユーザがウェアラブルディスプレイであるディスプレイ４００に透過性を有して表示される画像が投影された、ディスプレイ４００の表示部としてのディスプレイ４０１（図３参照）を透過して見える風景を見ながら、指先に装着したポインタ２００を使ってポイントする。
【００３８】
なお、図１に示された表示システムには、カメラ３００からディスプレイ４００で表示するため、およびポインタ２００の位置を特定するための撮影画像が処理装置１００に入力されるものとしている。しかしながら、ポインタ２００の位置を特定するための撮影画像を得るためのカメラがカメラ３００と別に備えられてもよい。
【００３９】
＜システム構成の他の例＞
なお、以降の説明において、本実施の形態にかかる表示システムは図１に示された構成であって、ユーザは、ウェアラブルディスプレイであるディスプレイ４００に透過性を有して表示された画像が投影された風景をディスプレイ４０１を介して見ながら、その風景に対して指先に装着したポインタ２００を使ってポイントするものとする。しかしながら、他の例として、ディスプレイ４００がウェアラブルディスプレイではなく、たとえば図２に示されるように、カメラ３００およびポインタ２００と電気的に接続されたＰＣで構成されるものであってもよい。カメラ３００とＰＣとの接続がインターネットを介したものである場合、カメラ３００として、たとえばＷＥＢカメラが挙げられる。ＰＣで構成されたディスプレイ４００には、カメラ３００からの撮影画像と処理装置１００からの画像とが合成されて表示される。この場合、ユーザはその表示を見ながら、指先に装着したポインタ２００を使ってポイントすることができる。
【００４０】
＜装置構成＞
処理装置１００、サーバ５００、および携帯端末６００は上述のように一般的なＰＣや携帯電話機などで構成されてもよいので、その装置構成は特定の構成に限定されない。すなわち、処理装置１００、サーバ５００、および携帯端末６００は、少なくとも、全体を制御するためのＣＰＵ（Central Processing Unit）、ＣＰＵで実行するプログラムや仮想現実を表示するために必要な画像情報などを記憶するためのＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などのメモリ、および他の装置と電気的に接続してデータのやり取りを行なうための通信インタフェース（Ｉ／Ｆ）を含む。また、携帯端末６００は、上述のように、ユーザからの操作入力を受付ける操作部をさらに含む。
【００４１】
カメラ３００は、カメラ部と、撮影画像やプログラムを記憶するためのメモリと、撮影画像を処理装置１００に送信する処理を実行するためのＣＰＵと、当該カメラ３００の位置を検知するためのセンサと、処理装置１００と電気的に接続して撮影画像を送信するための通信Ｉ／Ｆとを含む。
【００４２】
図３は、ディスプレイ４００の装置構成の具体例を示すブロック図である。図３を参照して、ディスプレイ４００は、表示部としての、透過性を有したディスプレイ４０１と、表示画像をディスプレイ４０１に表示する処理を実行するためのＣＰＵ４０２と、処理装置１００と電気的に接続して表示画像を受信するための通信Ｉ／Ｆ４０３とを含む。
【００４３】
ＣＰＵ４０２は通信Ｉ／Ｆ４０３によって受信されるネットワーク上のデータ（パケット）のうちの、処理装置１００から送信される表示用のデータを取得する。
【００４４】
図４は、ポインティングデバイスである場合の、ポインタ２００の装置構成の具体例を示すブロック図である。図４を参照して、ポインタ２００は、一例として、位置検出センサ２０１、加速度センサ２０２、方向性検知センサ（傾きセンサ）２０３などのセンサと、これらセンサで位置情報等を検出する処理を実行するためのＣＰＵ２０４と、処理装置１００と電気的に接続して検出結果を送信するための通信Ｉ／Ｆ２０５とを含む。さらに、図示しない、センサでの検出結果やプログラムを記憶するためのメモリが含まれていてもよい。
【００４５】
＜動作概要＞
本実施の形態にかかる表示システムは、コンピュータグラフィックスなどによって予め生成された仮想物体（仮想オブジェクト）を表わす画像を、現実世界を表わす撮影画像に対して携帯端末６００で設定された表示位置に応じて、ディスプレイ４００に透過性を有して表示する。これにより、ウェアラブルディスプレイであるディスプレイ４００を装着したユーザには、仮想オブジェクトがディスプレイ４００を介して視認できる現実世界に浮かんでいるように見える。このとき、実際に浮かんでいるように仮想オブジェクトをディスプレイ４００に表示させるため、携帯端末６００で仮想オブジェクトの表示位置に対して奥行きを設定し、設定された奥行きに応じて３次元で仮想オブジェクトを表示する。これにより、仮想オブジェクトは、ディスプレイ４００を介して視認できる実空間のある奥行きの位置に浮かんでいるように表示される。
【００４６】
「仮想オブジェクト」とは、現実世界を表わす撮影画像内のコンテンツに関連付けられた選択肢である３次元の画像を指す。仮想オブジェクトごとに、当該仮想オブジェクトを表示させるための画像情報と、撮影画像で表わされた撮影空間に対して設定された３次元の座標系における表示位置（以下、仮想オブジェクト座標とも称する）と、選択されることによって実行される動作とが規定されている。この仮想オブジェクトに関する情報は携帯端末６００によって設定され、サーバ５００に記憶されている。
【００４７】
処理装置１００は、カメラ３００から入力された撮影画像にその撮影空間に対して設定されている３次元座標系を設定した上で、同じ３次元座標系で表示位置、奥行きが設定されている仮想オブジェクトの表示位置を特定する。そして、その位置に表示させるように該仮想オブジェクトの画像を処理し、処理された表示画像をディスプレイ４００に対して送信する。
【００４８】
処理装置１００は、撮影画像に対して画像処理を実行することによってポインタ２００で指定された位置を特定し、その位置を、撮影空間に対して設定されている３次元座標系における位置に変換する。そして、指定された位置に応じた仮想オブジェクトに対して規定された動作を実行する。または、該動作を実行させるために図示しない必要な装置に対して制御信号を出力する。
【００４９】
この表示システムの用いられ方の一例として、図５に示されるような用いられ方が挙げられる。図５は、ウェアラブルディスプレイであるディスプレイ４００を介して視認される室内である実空間に、仮想現実である画像情報を投影するように当該画像情報をディスプレイ４００に透過性を有して表示させた、表示システムでの表示の一例を示している。図５において、３次元の球体が仮想オブジェクトを表わしている。
【００５０】
図５の表示は、ウェアラブルディスプレイであるディスプレイ４００を装着したユーザが机に向かっているユーザの右後ろに立って室内に向いたときに、ディスプレイ４００に透過性を有して表示された仮想オブジェクトが投影されて当該ユーザに視認される風景を表わした表示である。
【００５１】
図５の例において、仮想オブジェクトで表わされた選択肢は、実空間である室内のコンテンツとしてカレンダやユーザの左上の位置の実座標と関連付けられている。そのため、仮想オブジェクトは、予め規定された表示位置に基づいて、図５の例では、カレンダやユーザの左上の位置の近傍など、選択肢が関連付けられたコンテンツの近傍に３次元の仮想オブジェクトが表示されている。
【００５２】
その表示を視認しながらウェアラブルディスプレイを装着したユーザがポインタ２００を装着した指先等をディスプレイ４００に表示される仮想オブジェクトの位置にすると、該ユーザは、該仮想オブジェクトに対して規定された動作として、関連付けされているデータが表示され閲覧できたり、リモコンの様に対応した機器を操作できたりする。一例として、図５のカレンダの近傍に表示されている仮想オブジェクトにポインタ２００で触れると、予め登録されているユーザのスケジュール情報が表示される。また、他の例として、ユーザの左上の仮想オブジェクトに触れると、予めその位置と対応付けられている空気調和機に対して制御信号が出力され、空調温度が変更される。
【００５３】
この表示システムの用いられ方の他の例として、図６に示されるような用いられ方が挙げられる。図６は、ウェアラブルディスプレイであるディスプレイ４００を介して視認される工場内である実空間に、仮想現実である画像情報を投影するように当該画像情報をディスプレイ４００に透過性を有して表示させた、表示システムでの表示の一例を示している。図６においても、３次元の球体が仮想オブジェクトを表わしている。
【００５４】
図６の表示は、ウェアラブルディスプレイであるディスプレイ４００を装着したユーザが机に向かっている２人のユーザのさらに右側に立って室内から工場に向いたときに、ディスプレイ４００に透過性を有して表示された仮想オブジェクトが投影されて当該ユーザに視認される風景を表わした表示である。
【００５５】
図６の例において、仮想オブジェクトで表わされた選択肢は、実空間である工場内のコンテンツとしての機器などの実座標と関連付けられている。そのため、仮想オブジェクトは、予め規定された表示位置に基づいて、図６の例では、工場内の各機器の近傍など、選択肢が関連付けられたコンテンツの近傍に３次元の仮想オブジェクトが表示されている。
【００５６】
その表示を視認しながらウェアラブルディスプレイを装着したユーザがポインタ２００を装着した指先等をディスプレイ４００に表示される仮想オブジェクトの位置にすると、該仮想オブジェクトに対して規定された動作の一例として、関連付けされている工場内の各機器から発信されている情報（進捗管理、エラー情報、取扱方法）にアクセスできる。より好ましくは、表示システムにおいて、エラーの緊急度やアクセスできるデータの種類に応じて、予め設定された対応関係に基づいて仮想オブジェクトの色や形を変更させてもよい。これにより、エラーの緊急度やアクセスできるデータの種類などをユーザに分かりやすく報知することができる。
【００５７】
より好ましくは、仮想オブジェクトに関する情報はユーザごと、またはユーザの所属するグループ（部署等）に対応付けられてもよい。このようにすることで、予め当該表示システムにログインすることによって、ユーザまたはユーザの所属するグループに付与された権限により該ユーザまたはグループに応じた（操作可能または許可された）仮想オブジェクトが表示される。
【００５８】
図５や図６に表わされたように、表示システムでの表示では、２次元の表示装置であるディスプレイ４００に仮想オブジェクトが３次元表示されるものである。そのため、仮想オブジェクトの奥行き感が視認し難いと、ユーザがそのうちの所望する仮想オブジェクトを指定し難くなる。特に、ディスプレイ４００にて、異なる奥行きが設定された複数の仮想オブジェクトが近接して表示されると、それぞれの奥行き感が視認されないと、２次元平面の表示画面では仮想オブジェクトの表示が重なり、ユーザがそのうちの所望する仮想オブジェクトを指定し難くなる。
【００５９】
そこで、本実施の形態にかかる表示システムは、仮想オブジェクトに規定された表示位置（３次元座標）とポインタ２００で指定された位置（３次元座標）との間の距離に応じた表示処理を実行することで、このような場合であっても、ユーザが所望する仮想オブジェクトを指定しやすいように表示する。
【００６０】
具体的に、処理装置１００は、仮想オブジェクトの表示位置とポインタ２００での指定位置との間の関係に基づいて、ポインタ２００でのポインタ位置から所定の範囲内にある仮想オブジェクトは指定される可能性のある仮想オブジェクトと特定し、その範囲内にない仮想オブジェクトは指定される可能性の低い仮想オブジェクトと特定する。この、指定される可能性の低い仮想オブジェクトは、以降の説明において「仮想対象外オブジェクト」と称する。
【００６１】
処理装置１００は、仮想対象外オブジェクトの表示態様をそうでない仮想オブジェクトの表示態様と異ならせることで、ユーザに指定する可能性の高い仮想オブジェクトの指定をしやすく表示する。
【００６２】
＜機能構成＞
図７は、本実施の形態にかかる表示システムが上の動作概要で説明された動作を行なうための、処理装置１００の機能構成の具体例を示すブロック図である。図７は、主に、図示しないＣＰＵがメモリに記憶されるプログラムを読み出して実行することで、ＣＰＵが画像処理統括部として機能する場合の機能構成の具体例を示している。図７に示された機能は、主にＣＰＵ上に構成されるものである。しかしながら、その一部がハードウェア構成で実現されてもよい。
【００６３】
図７を参照して、画像処理統括部として機能する処理装置１００のＣＰＵは、カメラ３００からの撮影画像の入力を受付けるためのカメラ画像入力部１０１Ａと、ポインタ２００からの入力信号を受付けるためのポインタデータ入力部１０１Ｂと、サーバ５００から提供される仮想オブジェクト情報の入力を受付けるための仮想オブジェクト情報入力部１０１Ｃと、これら入力された情報に基づいてポインタ２００でのポイント位置および仮想オブジェクトの表示領域などの検出を行なうためのポインタオブジェクト抽出部１０２と、入力された撮影画像に対して画像認識処理を行なうことで、抽出されたポインタ２００でのポイント位置および仮想オブジェクトの表示領域などの撮影画像上の位置（座標）を特定するための画像認識処理部１０３と、ポインタ２００の形状を記憶しておくためのポインタ形状記憶部１０４と、必要に応じて記憶されているポインタ２００の形状を用いて撮影画像上にポインタ２００を表示させる表示データを生成するためのポインタ表示データ生成部１０５と、画像認識処理部１０３での処理結果に基づいて、ポインタ２００での表示位置（以下、ポインタ位置とも称する）と仮想オブジェクトの表示位置との距離を算出するための仮想オブジェクト−ポインタ間距離判定部１０６と、仮想対象外オブジェクトについて表示位置との距離を算出するための仮想対象外オブジェクト−ポインタ間距離判定部１０７と、仮想対象外オブジェクトについてオブジェクトごとに表示位置を記憶するための仮想対象外オブジェクト座標記憶部１０８と、後述する処理を行なって仮想対象外オブジェクトを表示させる表示データを生成するための仮想対象外オブジェクト表示データ生成部１０９と、表示させる仮想対象外オブジェクトの形状を記憶するための仮想対象外オブジェクト形状記憶部１１０と、生成された表示データをディスプレイ４００に透過性を有して表示させるための表示画像を生成するための表示処理部１１１とを含む。
【００６４】
さらに図７を参照して、ポインタオブジェクト抽出部１０２は、ポインタ抽出部１０２１と、仮想オブジェクト抽出部１０２２と仮想対象外オブジェクト抽出部１０２３とを含む。
【００６５】
ポインタ抽出部１０２１は、ポインタ２００で指示された位置を撮影画像から抽出するための機能である。具体的には、入力された撮影画像からポインタ形状記憶部１０４に記憶されているポインタ２００の形状を抽出する。
【００６６】
仮想オブジェクト抽出部１０２２および仮想対象外オブジェクト抽出部１０２３は、それぞれ、撮影画像において仮想オブジェクトおよび仮想対象外オブジェクトが表示される領域を抽出するための機能である。
【００６７】
具体的には、サーバ５００に予め仮想オブジェクトに規定されている情報として該仮想オブジェクトの３次元座標系での表示位置が記憶されており、仮想オブジェクト抽出部１０２２は、その情報に基づいて処理対象の仮想オブジェクトの表示位置を含む領域を表示領域として抽出する。また、仮想対象外オブジェクト座標記憶部１０８に予め仮想対象外オブジェクトに規定されている情報として該仮想対象外オブジェクトの３次元座標系での表示位置が記憶されており、仮想対象外オブジェクト抽出部１０２３は、記憶された情報に基づいて処理対象の仮想対象外オブジェクトの表示位置を含む領域を表示領域として抽出する。
【００６８】
さらに図７を参照して、画像認識処理部１０３は、ポインタ座標検出部１０３１と、仮想オブジェクト表示領域検出部１０３２と仮想対象外オブジェクト表示領域検出部１０３３とを含む。
【００６９】
ポインタ座標検出部１０３１は、ポインタオブジェクト抽出部１０２で抽出されたポインタ２００で指示された位置を撮影画像上で特定するための機能である。具体的には、ポインタオブジェクト抽出部１０２で抽出されたポインタ２００で指示された位置の、撮影画像上における位置や奥行きを特定する。そして、該撮影画像に設定された３次元座標系においてその３次元の位置を表わす座標（以下、ポインタ座標とも称する）に換算する。
【００７０】
ポインタ２００が上述のポインティングデバイスである場合には、処理装置１００は、この機能に替えてポインティングデバイスであるポインタ２００から検出結果の入力を受付けて、その検出結果に基づいて撮影画像上の位置を特定する機能を有する。
【００７１】
仮想オブジェクト表示領域検出部１０３２および仮想対象外オブジェクト表示領域検出部１０３３は、それぞれ、ポインタオブジェクト抽出部１０２で抽出された仮想オブジェクトの表示領域および仮想対象外オブジェクトの表示領域の、撮影画像に設定された３次元座標系における領域を表示領域として検出する。
【００７２】
また、仮想オブジェクト表示領域検出部１０３２および仮想対象外オブジェクト表示領域検出部１０３３は、後述する表示処理によって仮想オブジェクトまたは仮想対象外オブジェクトについて予め規定されている表示位置が変化した場合に、変化後の表示位置を特定する。
【００７３】
仮想オブジェクト−ポインタ間距離判定部１０６および仮想対象外オブジェクト−ポインタ間距離判定部１０７は、それぞれ、３次元座標系で表わされたポインタ座標および仮想オブジェクト座標とからその間の距離を求める。
【００７４】
さらに、仮想オブジェクト−ポインタ間距離判定部１０６は、予め基準距離を記憶しておき、算出された距離が該基準距離よりも大きい場合、すなわち、仮想オブジェクトの表示位置として規定された位置から所定範囲よりも遠い位置が指定された場合に、該仮想オブジェクトが指定される可能性の低い仮想オブジェクトである仮想対象外オブジェクトと判定し、その結果を仮想対象外オブジェクト表示データ生成部１０９に入力する。同様に、仮想対象外オブジェクト−ポインタ間距離判定部１０７も、算出された距離が上記基準距離よりも大きい場合、引き続き対象の仮想オブジェクトが指定される可能性の低い仮想対象外オブジェクトと判定し、その結果を仮想対象外オブジェクト表示データ生成部１０９に入力する。
【００７５】
仮想対象外オブジェクト表示データ生成部１０９はかかる判定結果に応じて当該仮想オブジェクトを対象外オブジェクトとして表示するための表示データを生成する。この処理については、以降の各実施の形態において具体的に説明する。
【００７６】
＜基本の表示動作フロー＞
本実施の形態にかかる表示システムにおいて、ユーザから見える現実世界を表わす撮影画像にコンピュータグラフィックス等によって描かれた仮想物体（仮想オブジェクト）を表わす画像情報を重畳して表示させる動作について説明する。ここでは、具体例として、拡張現実感の研究のためにワシントン大学ＨＩＴ研究室で開発されたソフトウェアライブラリとしてのプログラムを用いて実現される動作について説明する。用いられるプログラムはこのプログラムに限定されない。
【００７７】
図８は、基本の表示動作の具体例を示すフローチャートである。図８のフローチャートに示される動作は、処理装置１００の図示しないＣＰＵがメモリに記憶されている上述のようなプログラムを読み出して実行することによって実現される。
【００７８】
図８を参照して、まず、処理が開始するとステップＳ１０１で画像処理統括部として機能するＣＰＵは、初期化処理を実行する。ここでの初期化処理の一つとして、図示しないメモリに記憶されている撮影画像に対して設定した座標系を初期化する処理が含まれる。
【００７９】
ステップＳ１０３でＣＰＵは、カメラ３００からの撮影画像の入力を受付けて、撮影画像を取得する。ＣＰＵは、撮影画像（１フレーム）が入力されるごとに当該撮影画像に基づいて仮想オブジェクトの表示位置を特定してその表示位置に応じた処理を当該仮想オブジェクトの画像データに対して施し、ディスプレイ４００に表示画像を送信する動作を繰り返す。これにより、カメラ３００の移動に伴って連続的に入力される撮影画像に応じて、連続的に３次元の仮想オブジェクトが透過性を有してディスプレイ４００に表示されるようになる。
【００８０】
ステップＳ１０５でＣＰＵは、入力された撮影画像を図示しない描画用のメモリに描画し、ステップＳ１０７でそのメモリに展開された画像の中から座標系の基準となる位置を特定するコンテンツを表わす撮影画像に含まれる画像を、マーカとして検出する。ＣＰＵは、予め基準とする状態でのマーカとする画像、および、そのマーカと撮影空間に設定される３次元座標系における座標との関係を記憶している。
【００８１】
一例として、ＣＰＵはマーカの画像として図９の画像を記憶しているものとする。そして、一例として、撮影空間のこのマーカの画像に表わされた板状のコンテンツのある位置を、３次元座標系の原点とし、このコンテンツに対して３方向に、ｘ軸、ｙ軸、ｚ軸を設定する、との３次元座標系との対応関係を記憶しているものとする。
【００８２】
この場合、ステップＳ１０７でＣＰＵは、メモリに展開した撮影画像から図９の画像を検索する。そして、その画像またはその画像に近似した画像を検出すると、撮影画像内にマーカが存在すると認識し、ステップＳ１０９でＣＰＵは、その信頼度を比較する。ステップＳ１０９での処理の一例として、ＣＰＵは、予め記憶されているマーカの画像と検出された画像とを比較し、その相関度合いが基準として設定されているものを満たしているか否かで信頼度を比較する。
【００８３】
その後、ステップＳ１１１でＣＰＵは、撮影画像から検出されたマーカの画像の位置や、検出されたマーカの画像と記憶している画像との比較に基づいて、この撮影画像を撮影した時のカメラ３００の位置や方向を計算する。そして、ステップＳ１１３で、計算されたカメラ３００の位置や方向に基づいて、撮影画像に対して、予めマーカとした画像の位置を原点とし、マーカとした画像の傾きに応じてｘ軸、ｙ軸、ｚ軸を設定する。
【００８４】
さらに、記憶されている仮想オブジェクトの情報に基づいて、表示位置として３次元座標で記憶されているそれぞれの仮想オブジェクト座標を撮影画像に設定された３次元座標系において特定し、撮影画像の奥行きや傾きに応じて仮想対象外オブジェクトの画像を変換（変形）した上で、特定された位置に透過性を有して表示させる。これにより、仮想オブジェクトが、規定された表示位置に、その撮影位置、撮影方向に応じた形状で３次元に表示される。
【００８５】
たとえば、図９の画像がマーカの画像として記憶されているところ、撮影画像中に図１０（Ａ）の画像がマーカとして検出された場合、カメラ３００の撮影位置がマーカで表わされたコンテンツの正面よりも向かって右側上方、撮影方向が該コンテンツを見下ろす角度と、カメラ３００の位置や方向が計算される。ＣＰＵは、予め該マーカとの関係で規定されている３次元の座標系を撮影位置、撮影方向に基づいて撮影画像に対して設定する。
【００８６】
さらに、仮想オブジェクトに関する情報において、図９の画像に示されたマーカとするコンテンツのある原点を表示位置とする仮想オブジェクトがあり、その仮想オブジェクトの形状が立方体である場合、ＣＰＵは、その仮想オブジェクトの形状をカメラ３００から該コンテンツまでの距離や方向などに基づいて変形して、規定された表示位置に透過性を有して描画する。これにより、図１０（Ｂ）に示されるように、原点とするマーカの画像の近傍にマーカで表わされたコンテンツと同じ位置、方向から見たように変形された形状の３次元の仮想オブジェクトが、透過性を有して表示される。
【００８７】
ステップＳ１１５でＣＰＵは、以上の処理で得られた仮想オブジェクトの画像データを、ディスプレイ４００に表示のための制御信号と共に送信する。ディスプレイ４００では仮想オブジェクトの画像データを表示させる処理が実行される。これにより、図１０（Ｂ）に示されたように、ウェアラブルディスプレイであるディスプレイ４００を介して視認される実空間に仮想オブジェクトが浮かんだ状態で視認されることになる。
【００８８】
ＣＰＵは、表示の終了を要求する信号が入力されるまで、カメラ３００から撮影画像が入力されるたびに以上の処理を繰り返す。そして、表示の終了を要求する信号の入力を受付けると（ステップＳ１１７でＹＥＳ）、一連の動作を終了する。
【００８９】
＜仮想オブジェクト−ポインタ間距離の算出フロー＞
画像処理統括部として機能する処理装置１００のＣＰＵは、上述のように、仮想オブジェクトの表示された３次元座標系上の位置と、ディスプレイ４００の表示画面上でポインタ２００で指定された位置を該３次元座標系に換算した位置との間の距離に応じた表示処理を実行する。そこで、仮想オブジェクト−ポインタ間距離判定部１０６での距離の計算方法について説明する。この算出方法は、仮想対象外オブジェクト−ポインタ間距離判定部１０７での距離の計算方法とも同じである。
【００９０】
図１１は、表示システムでの表示の一例を示す図である。図１１は、ウェアラブルディスプレイであるディスプレイ４００を装着したユーザによって視認される風景を表わしたものであり、当該ディスプレイ４００に透過性を有して表示された画像が、当該ディスプレイ４００を介して見える景色に投影されたものである。以降の例において、表示の例は、同様に、ウェアラブルディスプレイであるディスプレイ４００を装着したユーザによって視認される風景を表わしたものを指す。
【００９１】
図１１を参照して、仮想オブジェクトＡと仮想オブジェクトＢとが実空間に投影されてるようにディスプレイ４００に表示されているものとする。この場合、サーバ５００は、それぞれの仮想オブジェクトの表示位置を示す３次元座標系の座標値を記憶している。一例として、図１２に示されるように、仮想オブジェクトごとに設定された表示位置を示す３次元座標値をテーブル形式で記憶している。
【００９２】
ＣＰＵは、さらに、撮影画像が入力されるたびにポインタ２００の撮影画像における位置を検出し、その位置を該撮影画像に設定された３次元座標系上での位置に換算して３次元座標系のポインタ座標を取得する。
【００９３】
図１３は、仮想オブジェクト−ポインタ間距離を計算する動作の具体例を示すフローチャートである。
【００９４】
図１３を参照して、画像処理統括部として機能する処理装置１００のＣＰＵは、ステップＳ２０１で記憶されている３次元座標系上でのポインタ座標の値と各仮想オブジェクトの座標値とを参照し、ステップＳ２０３で一例として、それぞれの座標値の差の二乗の和の平方根を算出してユークリッド距離を求めることで、ポインタ位置と各仮想オブジェクトの表示位置との間のそれぞれの、撮影画像に設定された３次元座標系における距離を計算する。
【００９５】
以下、計算されたポインタ位置と仮想オブジェクトの表示位置との関係に基づいた表示処理の例について説明する。
【００９６】
＜表示処理例１＞
図１４は、ポインタ位置と仮想オブジェクトの位置との関係に基づいた表示処理の第１の例を説明する図である。図１４を参照して、第１の例では、画像処理統括部として機能する処理装置１００のＣＰＵは、ポインタ位置から予め規定された第１の範囲内に仮想オブジェクト（以下、仮想対象オブジェクトとも称する）の表示位置が含まれる場合に、上記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、その仮想対象オブジェクトの表示位置とポインタ位置との間の距離に応じて、仮想対象外オブジェクトの選択可能な範囲を仮想対象オブジェクトの選択可能な範囲よりも遠くなるように、予め当該仮想対象外オブジェクトに対して設定されている画像情報を変換する。
【００９７】
ここで、仮想オブジェクトの画像情報は特定の点を中心とする球形であるものとし、その球が２次元のディスプレイ４００上で３次元表示された球形の範囲内が当該仮想オブジェクトの選択可能な範囲であると規定する。
【００９８】
仮想対象外オブジェクトの選択可能な範囲を仮想対象オブジェクトの選択可能な範囲よりも遠くするような変形として、具体的に、仮想対象外オブジェクトのサイズの縮小が該当する。すなわち、図１４（Ａ）に示されるように、指先に装着されたポインタ２００の位置と表示されている１つの仮想オブジェクトとの間の距離が所定の距離となった場合に、図１４（Ｂ）に示されるように、その仮想オブジェクトを仮想対象オブジェクトとし、それ以外の仮想オブジェクトを仮想対象外オブジェクトとして、該仮想対象外オブジェクトの表示される形状を小さくするように変形する。
【００９９】
この表示処理を行なうため、仮想オブジェクト−ポインタ間距離判定部１０６は上記第１の範囲を規定する基準距離を記憶しておく。そして、仮想オブジェクト−ポインタ間距離判定部１０６は上記基準距離と比較することで、仮想対象オブジェクトを特定する。
【０１００】
また、仮想対象外オブジェクト表示データ生成部１０９は、予め、ポインタ２００の位置と仮想対象オブジェクトとの間の距離Ｄの範囲ごとに、仮想対象外オブジェクトの変形の度合いを記憶しておく。一例として、ポインタ２００の位置と仮想対象オブジェクトとの間の距離Ｄが小さくなるほど仮想対象外オブジェクトの表示倍率が小さくなるような関係が記憶されている。そして、その対応関係に基づいて、仮想対象外オブジェクトに対して規定されている表示用のデータを更新することで、表示データを生成する。
【０１０１】
図１５は、第１の表示処理のための動作の具体例を示すフローチャートである。図１５を参照して、ステップＳ３０１で画像処理統括部として機能する処理装置１００のＣＰＵは、ポインタ位置と仮想オブジェクトの表示位置との間の距離Ｄを算出する。ステップＳ３０１の動作の詳細は図１３で説明されたものである。
【０１０２】
算出された距離Ｄが上記第１の範囲を規定する基準距離であるしきい値Ｄｔよりも小なる場合（ステップＳ３０３でＹＥＳ）、つまり、ポインタ位置から上記第１の範囲内に処理対象の仮想オブジェクトの表示位置がある場合、ステップＳ３０５でＣＰＵは、上記第１の範囲外の仮想オブジェクトを仮想対象外オブジェクトとして抽出し、ステップＳ３０７でＣＰＵは、ステップＳ３０１で算出された仮想対象オブジェクトとの距離Ｄに基づいて、ステップＳ３０５で抽出された仮想対象外オブジェクトについて上述の記憶している対応関係より表示倍率を決定して、縮小する。
【０１０３】
この画像を透過性を有してディスプレイ４００に表示し、ディスプレイ４００を介して視認される実空間に投影させることにより、図１４に示されたような表示が実現される。これにより、ポインタ位置から所定範囲内にある仮想オブジェクトが指定される可能性の高い仮想対象オブジェクトとされ、それ以外の仮想オブジェクトが仮想対象外オブジェクトとしてそのサイズが小さく表示される。そのため、ポインタ２００を装着したユーザは、複数の表示される仮想オブジェクトのポインタ２００からの距離を視覚的に把握しやすくなり、ポインタ２００に最も近い仮想オブジェクトが指定しやすくなる。
【０１０４】
＜変形例１＞
図１４の例では、仮想対象外オブジェクトの選択可能な範囲を仮想対象オブジェクトの選択可能な範囲よりも遠くするような変形として、仮想対象外オブジェクトの形状を予め規定された倍率で縮小するものとしているが、他の処理でもよい。他の例として、たとえば図１６に示されるように、仮想対象外オブジェクトの形状を縦長に伸びる形状に変形したり、伸張化したり、不規則な変化を起こしたりするようにしてもよい。
【０１０５】
または、他の例として、たとえば図１７に示されるように、仮想対象外オブジェクトを透明にしたり、色彩を変化させてもよい。さらに仮想外オブジェクトの他の変化としては、たとえば、有彩色から無彩色へ変化させたり、３次元表示から２次元表示に変化させたりすることが挙げられる。なお、この場合、仮想対象外オブジェクトの表示画像の透明の部分、無彩色となった部分については、選択不可能な範囲であるものとする。すなわち、当該部分をポインタ２００で指定されても、その仮想対象外オブジェクトが選択されたものとはしないように処理する。
【０１０６】
＜変形例２＞
以上の説明では、ポインタ位置から予め規定された範囲内に仮想オブジェクトの表示位置があれば、当該仮想オブジェクト以外の仮想オブジェクトの形状を小さくするものとしているが、好ましくは、ポインタ位置から予め規定された第１の範囲内に仮想オブジェクト（仮想対象オブジェクト）の表示位置があり、かつ、ポインタ位置から第１の範囲よりも広い第２の範囲内に複数の仮想オブジェクト（仮想対象外）の表示位置がある場合に、当該仮想対象外オブジェクトの形状を小さくするようにしてもよい。これは、以降の表示処理例でも同様である。
【０１０７】
このようにすることで、ポインタ位置から第２の範囲内に複数の仮想オブジェクトが表示され、ユーザが指定しようとする仮想オブジェクトが重なりあって指定し難い状態であっても、その範囲内のよりポインタ位置に近い仮想オブジェクト、すなわち、ユーザが指定する可能性の高い仮想オブジェクト以外の仮想オブジェクトが仮想対象外オブジェクトとして小さくなる（または変形する）ので、ポインタ２００を装着したユーザは仮想対象オブジェクトを指定しやすくなる。
【０１０８】
＜変形例３＞
上の例では、ポインタ位置から第１の範囲内にある仮想オブジェクトを仮想対象オブジェクトとし、それ以外の仮想オブジェクトをすべて仮想対象外オブジェクトとしてそのサイズを縮小するなどの変形を行なうものとしている。より好ましい他の例として、第１の範囲よりも広い第２の範囲に表示位置のある仮想オブジェクトのみを仮想対象外オブジェクトとして上記変形を行なうようにしてもよい。
【０１０９】
この場合、仮想対象外オブジェクト−ポインタ間距離判定部１０７は上記第２の範囲を規定する基準距離を記憶しておく。そして、仮想対象外オブジェクト−ポインタ間距離判定部１０７は、上記基準距離と比較することで、仮想対象外オブジェクトを特定する。上記ステップＳ３０５でＣＰＵは、上記第１の範囲外の仮想オブジェクトであって、上記第２の範囲を規定する基準距離である仮想オブジェクトを仮想対象外オブジェクトとして抽出する。
【０１１０】
このようにすることで、変形させる仮想オブジェクトの数を抑えることができ、ＣＰＵでの処理を容易にすることができる。
【０１１１】
＜変形例４＞
上の例では、ポインタ位置と仮想対象オブジェクトの表示位置との間の距離Ｄに応じた、仮想対象外オブジェクトを変形させる表示倍率が記憶されているものとしている。その他の変形の例であっても同様である。しかしながら、他の例として、変形対象の仮想対象外オブジェクトとポインタ位置との距離に応じた変形の割合が記憶されており、その割合に応じて仮想対象外オブジェクトを変形させてもよい。一例として、ポインタ位置と仮想対象外オブジェクトの表示位置との間の距離に応じて、その距離が長くなるほど縮小するような表示倍率が記憶されているとすると、ポインタ位置から遠くなる仮想対象外オブジェクトほどその形状が小さくなる。そのため、ポインタ２００を装着したユーザは仮想対象外オブジェクトそれぞれのポインタ２００からの距離をより視覚的に把握しやすくなる。
【０１１２】
＜変形例５＞
仮想対象外オブジェクトの変形の他の例として、さらに、カメラ３００での撮影具合に基づいて変形の度合いを異ならせる例が挙げられる。具体的に、ディスプレイ４００に透過性を有して表示することによって２次元のディスプレイ４００上で仮想対象オブジェクトに重なって透過される仮想対象外オブジェクトについて、そうでない仮想対象外オブジェクトよりも変形の度合いが大きくなるように仮想対象外オブジェクトを変形させることが挙げられる。
【０１１３】
図１８および図１９は、変形例５にかかる表示の具体例を示す図である。図１８に示される例は、仮想オブジェクトのうちの１つから所定範囲内にポインタ２００が位置する場合に（図１８（Ａ））、当該仮想オブジェクトが仮想対象オブジェクトとされ、それ以外の仮想オブジェクトが仮想対象外オブジェクトと特定された上で、さらに、仮想対象外オブジェクトのうち、仮想対象オブジェクトと２次元のディスプレイ４００上に重なって投影されるものが、そうでない仮想対象外オブジェクトよりもより小さくなるよう縮小される（図１８（Ｂ））。また、図１９に示される例は、仮想オブジェクトのうちの１つから所定範囲内にポインタ２００が位置する場合に（図１９（Ａ））、当該仮想オブジェクトが仮想対象オブジェクトとされ、それ以外の仮想オブジェクトが仮想対象外オブジェクトと特定された上で、さらに、仮想対象外オブジェクトのうち、仮想対象オブジェクトと２次元のディスプレイ４００上に重なって投影されるものが、そうでない仮想対象外オブジェクトよりもより透明度が高くなるように色彩が変更される（図１９（Ｂ））。
【０１１４】
この場合、上記ステップＳ３０５でＣＰＵは、仮想対象外オブジェクトのそれぞれについて、仮想対象オブジェクトに重なって投影されるか否かを判断する処理をさらに行なう。この処理として、たとえば、ＣＰＵはそれぞれの仮想オブジェクトの表示位置および形状の情報に基づいて、カメラ３００からの撮影方向を法線とする平面にそれぞれの仮想オブジェクトの画像を投影し、その平面上においてこれらが重なっているか否かを判断する。その判断としては、たとえば、上記平面に投影された仮想対象オブジェクトの半径と仮想対象外オブジェクトの半径との和と上記平面上でのこれらの中心間距離とを比較する。その結果、半径の和が中心間距離よりも大なる場合に、ＣＰＵはカメラ３００からの撮影画像に基づく位置に表示することで該仮想対象外オブジェクトが仮想対象オブジェクトに重なって投影されると判断し、そうでない場合に重なって投影されないと判断する。そして、変形対象の仮想対象外オブジェクトのうち、重なって投影されると判断されたものについては、その変形において、記憶されている変形の度合いを所定割合で増加させて適用する。
【０１１５】
なお、この場合、カメラ３００の位置が変化したことが検出された場合、所定の間、この変形の度合いが維持されるようにしてもよい。
【０１１６】
このような処理が行なわれることで、２次元のディスプレイ４００において仮想対象外オブジェクトが仮想対象オブジェクトと重なって表示される場合であっても、ポインタ２００を装着したユーザは仮想対象外オブジェクトのポインタ２００からの距離をより視覚的に把握しやすくなる。
【０１１７】
＜表示処理例２＞
図２０は、ポインタ位置と仮想オブジェクトの位置との関係に基づいた表示処理の第２の例を説明する図である。図２０を参照して、第２の例では、画像処理統括部として機能する処理装置１００のＣＰＵは、ポインタ位置が仮想オブジェクトの表示位置に近づいた場合に、その仮想オブジェクトを仮想対象オブジェクトとし、上記仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトとして、その仮想対象オブジェクトの表示位置とポインタ位置との間の距離に応じて、仮想対象外オブジェクトを仮想対象オブジェクトから遠ざかるように表示位置を移動させる。すなわち、図２０（Ａ）に示されるように、指先に装着されたポインタ２００が表示されている１つの仮想オブジェクトの表示位置に近づいていると検出された場合に、図２０（Ｂ）に示されるように、その仮想オブジェクトを仮想対象オブジェクトとし、仮想対象オブジェクトから所定範囲内にある仮想対象外オブジェクトの表示位置を仮想対象オブジェクトから離すように移動させる。
【０１１８】
この表示処理を行なうため、仮想オブジェクト−ポインタ間距離判定部１０６は算出された仮想オブジェクトとポインタ位置との間の距離を一時的に記憶するための図示しないメモリを含む。また、処理対象の仮想オブジェクトを判定するためのしきい値としての基準距離を記憶しておく。そして、仮想オブジェクト−ポインタ間距離判定部１０６は上記基準距離と比較することで、仮想対象オブジェクトを特定する。
【０１１９】
また、仮想対象外オブジェクト表示データ生成部１０９は、予め、ポインタ２００の位置と仮想対象オブジェクトとの間の距離Ｄの範囲ごとに、処理対象とする仮想対象外オブジェクトの移動距離を記憶しておく。一例として、ポインタ２００の位置と仮想対象オブジェクトとの間の距離Ｄが小さくなるほど仮想対象外オブジェクトの移動距離が大きくなるような関係が記憶されている。そして、その対応関係に基づいて、仮想対象外オブジェクトに対して規定されている表示位置を更新することで、表示データを生成する。
【０１２０】
図２１は、第２の表示処理のための動作の具体例を示すフローチャートである。図２１を参照して、ステップＳ４０１で画像処理統括部として機能する処理装置１００のＣＰＵは、ポインタ位置と仮想オブジェクトの表示位置との間の距離Ｄを算出する。ステップＳ４０１の動作の詳細は図１３で説明されたものである。
【０１２１】
また、ステップＳ４０３でＣＰＵは、ポインタ位置から所定範囲内に表示位置のある仮想オブジェクトを処理対象の仮想オブジェクトとして抽出する。そして、ステップＳ４０５でＣＰＵは、抽出した処理対象の仮想オブジェクトの中から、仮想対象オブジェクトを特定する。ステップＳ４０５での処理の一例として、ＣＰＵは、１つの仮想オブジェクトについて、直前の処理によって算出されたポインタ位置と仮想オブジェクトの表示位置との間の距離Ｄと上記ステップＳ４０１で算出された距離Ｄとを比較し、その差分がしきい値よりも大きく、かつ、ポインタ位置から当該仮想オブジェクトの表示位置へ向かう方向が上記直前の処理のときの方向と同じまたは略同じである場合に、当該仮想オブジェクトを仮想対象オブジェクトと特定する。すなわち、同じ仮想オブジェクトに向けて所定の速度でポインタ２００の位置が所定量以上に進んでいる場合に、当該仮想オブジェクトに向けてポインタ２００が移動していると判断し、その仮想オブジェクトを仮想対象オブジェクトとする。
【０１２２】
ＣＰＵは、ステップＳ４０３で抽出された処理対象とする仮想オブジェクトのうち、このような方法で特定された仮想対象オブジェクト以外の仮想オブジェクトを仮想対象外オブジェクトと特定し、ステップＳ４０７でこれら仮想対象外オブジェクトを仮想対象オブジェクトから離す処理を実行する。具体的には、上記ステップＳ４０１で算出されたポインタ位置と仮想対象オブジェクトの表示位置との距離Ｄに基づいて、処理対象とする仮想対象外オブジェクトについて上述の記憶している対応関係より移動距離を決定して、それぞれの仮想対象外オブジェクトに規定されている表示位置を該移動距離を考慮して更新する。
【０１２３】
なお、ここでの移動は、特定の方向、距離への移動に限定されない。たとえば図２０に表わされたように、上方に所定距離移動させるようにしてもよいし、図２２に示されているように、下方に所定距離移動させる（落とす）ようにしてもよい。また、他の例として、当該仮想対象外オブジェクトの中心と仮想対象オブジェクトの中心とを結ぶ直線の方向であって、仮想対象オブジェクトから遠い方向に所定距離移動させるようにしてもよい。
【０１２４】
この画像を透過性を有してディスプレイ４００に表示し、ディスプレイ４００を介して視認される実空間に投影させることにより、図２０や図２２に示されたような表示が実現される。これにより、ポインタ２００が向かっている仮想オブジェクトが指定される可能性の高い仮想対象オブジェクトとされ、その仮想対象オブジェクトから所定範囲内にある仮想対象外オブジェクトが仮想対象オブジェクトから離れて表示される。そのため、ポインタ２００を装着したユーザは、複数の表示される仮想オブジェクトのポインタ２００からの距離を視覚的に把握しやすくなり、ポインタ２００が向かう仮想オブジェクトが指定しやすくなる。
【０１２５】
＜変形例１＞
なお、第２の表示例においても、第１の表示例と同様に、上記変形例４、５と同様の変形例があってもよい。すなわち、上記変形例４のように、仮想対象外オブジェクトの表示位置とポインタ位置との間の距離に応じた距離で、当該仮想対象外オブジェクトを移動させるようにしてもよい。また、上記変形例５のように、２次元のディスプレイ４００上で仮想対象オブジェクトと重なって表示される仮想対象外オブジェクトについて、そうでない仮想対象外オブジェクトよりも移動量を大きくしてもよい。
【０１２６】
具体例として、図２３に示されるように、仮想対象外オブジェクトを仮想対象オブジェクトから離すように上方に所定距離移動させる際に、２次元のディスプレイ４００上で仮想オブジェクトに重なって投影される仮想対象外オブジェクト（図２３（Ａ）の例では手前から２番目、および４番目の仮想オブジェクト）については、重なっていない仮想対象外オブジェクト（図２３（Ａ）の例では一番手前、および一番奥の仮想オブジェクト）よりも移動量を大きく移動させてもよい。また、他の例として、図２４に示されるように、仮想対象外オブジェクトを仮想対象オブジェクトから離すように下方に所定距離移動させ、さらに、２次元のディスプレイ４００上で仮想オブジェクトに重なって投影される仮想対象外オブジェクト（図２４（Ａ）の例では手前から２番目、および４番目の仮想オブジェクト）については、重なっていない仮想対象外オブジェクト（図２４（Ａ）の例では一番手前、および一番奥の仮想オブジェクト）よりも透明度が高くなるように色彩を変化させてもよい。
【０１２７】
なお、この場合の、重なって投影されるか否かを判定する処理は、一例として、上述の処理と同様の処理を採用することができる。また、重なって投影されるか否かの判定は、第２の処理例に従って移動させた後の仮想対象外オブジェクトの表示位置に基づいて行なわれてもよい。
【０１２８】
このような処理が行なわれることにより、仮想対象オブジェクトから所定範囲内にある仮想対象外オブジェクトが仮想対象オブジェクトから離れて表示されると共に、２次元のディスプレイ４００において仮想対象外オブジェクトが仮想対象オブジェクトに重なって投影される場合であっても、ポインタ２００を装着したユーザは仮想対象外オブジェクトのポインタ２００からの距離をより視覚的に把握しやすくなる。そのため、ポインタ２００が向かう仮想オブジェクトがより指定しやすくなる。
【０１２９】
さらに、第１の表示例と第２の表示例とが組み合わされてもよい。
またさらに、上述の表示処理を、処理装置１００に実行させるためのプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１３０】
なお、本発明にかかるプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【０１３１】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【０１３２】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１３３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３４】
１００  処理装置、１０１Ａ  カメラ画像入力部、１０１Ｂ  ポインタデータ入力部、１０１Ｃ  仮想オブジェクト情報入力部、１０２  ポインタオブジェクト抽出部、１０３  画像認識処理部、１０４  ポインタ形状記憶部、１０５  ポインタ表示データ生成部、１０６  仮想オブジェクト−ポインタ間距離判定部、１０７  仮想対象外オブジェクト−ポインタ間距離判定部、１０８  仮想対象外オブジェクト座標記憶部、１０９  仮想対象外オブジェクト表示データ生成部、１１０  仮想対象外オブジェクト形状記憶部、１１１  表示処理部、２００  ポインタ、２０１  位置検出センサ、２０２  加速度センサ、２０３  方向性検知センサ、２０４  ＣＰＵ、２０５  通信Ｉ／Ｆ、３００  カメラ、４００，４０１  ディスプレイ、４０２  ＣＰＵ、４０３  通信Ｉ／Ｆ、５００  サーバ、６００  携帯端末、１０２１  ポインタ抽出部、１０２２  仮想オブジェクト抽出部、１０２３  仮想対象外オブジェクト抽出部、１０３１  ポインタ座標検出部、１０３２  仮想オブジェクト表示領域検出部、１０３３  仮想対象外オブジェクト表示領域検出部。
【図１】
0005565331.tif 000002
【図２】
0005565331.tif 000003
【図３】
0005565331.tif 000004
【図４】
0005565331.tif 000005
【図５】
0005565331.tif 000006
【図６】
0005565331.tif 000007
【図７】
0005565331.tif 000008
【図８】
0005565331.tif 000009
【図９】
0005565331.tif 000010
【図１０】
0005565331.tif 000011
【図１１】
0005565331.tif 000012
【図１２】
0005565331.tif 000013
【図１３】
0005565331.tif 000014
【図１４】
0005565331.tif 000015
【図１５】
0005565331.tif 000016
【図１６】
0005565331.tif 000017
【図１７】
0005565331.tif 000018
【図１８】
0005565331.tif 000019
【図１９】
0005565331.tif 000020
【図２０】
0005565331.tif 000021
【図２１】
0005565331.tif 000022
【図２２】
0005565331.tif 000023
【図２３】
0005565331.tif 000024
【図２４】
0005565331.tif 000025