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