(57)【要約】【課題】ディスプレイの面積を仮想的に拡大させ、作業効率を向上させることのできる投影システムを提供する。【解決手段】投影システム１は、ヘッドマウンテンディスプレイ（ＨＭＤ）である投影装置３００と、ディスプレイ５００と、ＨＭＤ３００に接続されたカメラ４００と、ＨＭＤ３００での投影とディスプレイ５００での表示とを制御するための制御装置であるＣＰ１００，２００とを備える。制御装置であるＣＰ１００，２００は、画面データを生成してＨＭＤ３００に対して送信する処理と、カメラ４００での撮影画像からディスプレイ５００を検出し、その位置に応じてディスプレイ５００の周囲にＨＭＤ３００からの投影位置の候補を特定して、それぞれの優先順位を設定し、その優先順位に応じて投影位置を決定してＨＭＤ３００に画面を投影させる処理とを実行する。【選択図】図１
2012233963.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイから規定される位置に画面を投影するための投影システムであって、
投影装置と、
前記ディスプレイと、
前記投影装置から所定位置に設置され、前記投影装置に接続されたカメラと、
前記投影装置に接続されたセンサと、
前記投影装置での投影と前記ディスプレイでの表示とを制御するための制御装置とを備え、
前記制御装置は、
前記投影装置の投影する画面データを生成して前記投影装置に対して送信する処理と、
前記カメラでの撮影画像から前記ディスプレイを検出し、その位置に応じて前記ディスプレイの周囲に前記投影装置からの投影位置の候補を特定する処理と、
前記投影位置の候補に対して前記センサでの検出結果を用いて優先順位を設定する処理と、
前記優先順位に応じて前記投影位置の候補の中から前記投影装置からの投影位置を決定し、前記投影装置に前記投影位置に前記画面データに基づく画面を投影させる処理とを実行する、投影システム。
【請求項２】
前記制御装置は、前記撮影画像における前記ディスプレイの位置の偏りに応じて、前記ディスプレイの周囲に前記投影装置からの投影位置の候補を特定する、請求項１に記載の投影システム。
【請求項３】
前記センサはユーザの視線を検出するためのセンサであって、
前記制御装置は、前記撮影画像における前記ユーザの視線の位置に応じて前記投影位置の候補に対して前記優先順位を設定する、請求項１または２に記載の投影システム。
【請求項４】
前記制御装置に対して情報を入力するための入力装置をさらに備え、
前記制御装置は前記カメラを前記センサとして用い、前記入力装置からの入力を受け付けている場合に、前記撮影画像から検出された前記入力装置の位置に応じて前記投影位置の候補に対して前記優先順位を設定する、請求項１または２に記載の投影システム。
【請求項５】
前記制御装置は前記カメラを前記センサとして用い、前記撮影画像から検出された前記ディスプレイとは異なるディスプレイの位置に応じて前記投影位置の候補に対して前記優先順位を設定する、請求項１または２に記載の投影システム。
【請求項６】
前記制御装置は前記カメラを前記センサとして用い、前記撮影画像から検出された人の顔の画像の位置に応じて前記投影位置の候補に対して前記優先順位を設定する、請求項１または２に記載の投影システム。
【請求項７】
前記制御装置は前記カメラを前記センサとして用い、前記撮影画像から検出された文字の位置に応じて前記投影位置の候補に対して前記優先順位を設定する、請求項１または２に記載の投影システム。
【請求項８】
前記制御装置は前記カメラを前記センサとして用い、前記撮影画像から検出された前記ディスプレイ周囲の画像のコントラスト比を算出し、前記コントラスト比がしきい値以上である領域を含む前記投影位置の候補ほど低い優先順位を設定する、請求項１または２に記載の投影システム。
【請求項９】
前記投影装置はユーザの頭部に装着可能であり、
前記センサは加速度センサであって、
前記制御装置は、前記加速度センサからのセンサ信号に基づき、前記投影装置から前記投影位置の候補へ向かう方向の水平方向からの傾きが小さくなる前記投影位置の候補ほど高い優先順位を設定する、請求項１または２に記載の投影システム。
【請求項１０】
前記センサは前記ディスプレイ周囲のオブジェクトまでの距離を検出するためのセンサであって、
前記制御装置は、前記投影位置の候補のうち、前記投影装置からの距離がしきい値より小さいオブジェクトを含む投影位置の候補ほど低い優先順位を設定する、請求項１または２に記載の投影システム。
【請求項１１】
所定位置に画面を投影するための投影装置であって、
当該投影装置から所定位置に設置されたカメラから撮影画像の入力を受け付けるための第１の入力手段と、
当該投影装置に接続されたセンサから検出結果の入力を受け付けるための第２の入力手段と、
画面データに基づく画面を所定位置に投影させるための制御手段とを備え、
前記制御手段は、
前記撮影画像からディスプレイを検出し、その位置に応じて前記ディスプレイの周囲に投影位置の候補を特定する処理と、
前記投影位置の候補に対して前記センサでの検出結果を用いて優先順位を設定する処理と、
前記優先順位に応じて前記投影位置の候補の中から投影位置を決定し、前記投影位置に前記画面データに基づく画面を投影させる処理とを実行する、投影装置。
【請求項１２】
ディスプレイから規定される位置に投影装置によって画面を投影させるための投影方法であって、
前記投影装置の投影する画面データを生成するステップと、
前記投影装置から所定位置に設置され、前記投影装置に接続されたカメラから、撮影画像の入力を受け付けるステップと、
前記撮影画像から前記ディスプレイを検出し、その位置に応じて前記ディスプレイの周囲に前記投影装置からの投影位置の候補を特定するステップと、
前記投影位置の候補に対して前記投影装置に接続されたセンサでの検出結果を用いて優先順位を設定するステップと、
前記優先順位に応じて前記投影位置の候補の中から前記投影装置からの投影位置を決定し、前記投影装置に前記投影位置に前記画面データに基づく画面を投影させるステップとを備える、投影方法。
【請求項１３】
ディスプレイから規定される位置に投影装置によって画面を投影させる制御をコンピュータに実行させるためのプログラムあって、
前記投影装置の投影する画面データを生成するステップと、
前記投影装置から所定位置に設置され、前記投影装置に接続されたカメラから、撮影画像の入力を受け付けるステップと、
前記撮影画像から前記ディスプレイを検出し、その位置に応じて前記ディスプレイの周囲に前記投影装置からの投影位置の候補を特定するステップと、
前記投影位置の候補に対して前記投影装置に接続されたセンサでの検出結果を用いて優先順位を設定するステップと、
前記優先順位に応じて前記投影位置の候補の中から前記投影装置からの投影位置を決定し、前記投影装置に前記投影位置に前記画面データに基づく画面を投影させるステップとを前記コンピュータに実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は投影システム、投影装置、投影方法、および制御プログラムに関し、特に、目標位置に画像を投影する投影システム、投影装置、投影方法、および制御プログラムに関する。
【背景技術】
【０００２】
昨今のオフィス環境などにおいては、机上にディスプレイを設置し、当該ディスプレイに画像を表示して作業を行なうことが多くなされている。この場合、ディスプレイの面積が広いほど表示面積が増加するために作業効率が向上する。
【０００３】
しかしながら、オフィス環境などのおいては各自の作業スペースに制限があるため、ディスプレイの面積にも制限が生じる。
【０００４】
また一方で、必ずしもディスプレイ全面を用いて作業するとは限られないため、ディスプレイの面積を増加させても作業効率には直接的に結びつかない場合もある。
【０００５】
このような問題に対して、下記の特許文献１、２は画像を投影する技術や、その投影方法などを開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２７８２３４号公報
【特許文献２】特開２０１０−１５１９９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、これらの技術を用いても、作業対象であるディスプレイを必要な時に面積を拡大して用いることは実現できず、ディスプレイを用いた作業の効率の向上に寄与するものではない。
【０００８】
本発明はこのような問題に鑑みてなされたものであって、ディスプレイの面積を仮想的に拡大させ、作業効率を向上させることのできる投影システム、投影装置、投影方法、および制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のある局面に従うと、投影システムはディスプレイから規定される位置に画面を投影するための投影システムであって、投影装置と、ディスプレイと、投影装置から所定位置に設置され、投影装置に接続されたカメラと、投影装置に接続されたセンサと、投影装置での投影とディスプレイでの表示とを制御するための制御装置とを備える。制御装置は、投影装置の投影する画面データを生成して投影装置に対して送信する処理と、カメラでの撮影画像からディスプレイを検出し、その位置に応じてディスプレイの周囲に投影装置からの投影位置の候補を特定する処理と、投影位置の候補に対してセンサでの検出結果を用いて優先順位を設定する処理と、優先順位に応じて投影位置の候補の中から投影装置からの投影位置を決定し、投影装置に投影位置に画面データに基づく画面を投影させる処理とを実行する。
【００１０】
好ましくは、制御装置は、撮影画像におけるディスプレイの位置の偏りに応じて、ディスプレイの周囲に投影装置からの投影位置の候補を特定する。
【００１１】
好ましくは、センサはユーザの視線を検出するためのセンサであって、制御装置は、撮影画像におけるユーザの視線の位置に応じて投影位置の候補に対して優先順位を設定する。
【００１２】
好ましくは、投影システムは制御装置に対して情報を入力するための入力装置をさらに備え、制御装置はカメラをセンサとして用い、入力装置からの入力を受け付けている場合に、撮影画像から検出された入力装置の位置に応じて投影位置の候補に対して優先順位を設定する。
【００１３】
好ましくは、制御装置はカメラを上記センサとして用い、撮影画像から検出されたディスプレイとは異なるディスプレイの位置に応じて投影位置の候補に対して優先順位を設定する。
【００１４】
好ましくは、制御装置はカメラを上記センサとして用い、撮影画像から検出された人の顔の画像の位置に応じて投影位置の候補に対して優先順位を設定する。
【００１５】
好ましくは、制御装置はカメラを上記センサとして用い、撮影画像から検出された文字の位置に応じて投影位置の候補に対して優先順位を設定する。
【００１６】
好ましくは、制御装置はカメラを上記センサとして用い、撮影画像から検出されたディスプレイ周囲の画像のコントラスト比を算出し、コントラスト比がしきい値以上である領域を含む投影位置の候補ほど低い優先順位を設定する。
【００１７】
好ましくは、投影装置はユーザの頭部に装着可能であり、センサは加速度センサであって、制御装置は、加速度センサからのセンサ信号に基づき、投影装置から投影位置の候補へ向かう方向の水平方向からの傾きが小さくなる投影位置の候補ほど高い優先順位を設定する。
【００１８】
好ましくは、センサはディスプレイ周囲のオブジェクトまでの距離を検出するためのセンサであって、制御装置は、投影位置の候補のうち、投影装置からの距離がしきい値より小さいオブジェクトを含む投影位置の候補ほど低い優先順位を設定する。
【００１９】
本発明の他の局面に従うと、投影装置は所定位置に画面を投影するための投影装置であって、当該投影装置から所定位置に設置されたカメラから撮影画像の入力を受け付けるための第１の入力手段と、当該投影装置に接続されたセンサから検出結果の入力を受け付けるための第２の入力手段と、画面データに基づく画面を所定位置に投影させるための制御手段とを備える。制御手段は、撮影画像からディスプレイを検出し、その位置に応じてディスプレイの周囲に投影位置の候補を特定する処理と、投影位置の候補に対してセンサでの検出結果を用いて優先順位を設定する処理と、優先順位に応じて投影位置の候補の中から投影位置を決定し、投影位置に画面データに基づく画面を投影させる処理とを実行する。
【００２０】
本発明のさらに他の局面に従うと、投影方法はディスプレイから規定される位置に投影装置によって画面を投影させるための投影方法であって、投影装置の投影する画面データを生成するステップと、投影装置から所定位置に設置され、投影装置に接続されたカメラから、撮影画像の入力を受け付けるステップと、撮影画像からディスプレイを検出し、その位置に応じてディスプレイの周囲に投影装置からの投影位置の候補を特定するステップと、投影位置の候補に対して投影装置に接続されたセンサでの検出結果を用いて優先順位を設定するステップと、優先順位に応じて投影位置の候補の中から投影装置からの投影位置を決定し、投影装置に投影位置に画面データに基づく画面を投影させるステップとを備える。
【００２１】
本発明のさらに他の局面に従うと、制御プログラムはディスプレイから規定される位置に投影装置によって画面を投影させる制御をコンピュータに実行させるためのプログラムあって、投影装置の投影する画面データを生成するステップと、投影装置から所定位置に設置され、投影装置に接続されたカメラから、撮影画像の入力を受け付けるステップと、撮影画像からディスプレイを検出し、その位置に応じてディスプレイの周囲に投影装置からの投影位置の候補を特定するステップと、投影位置の候補に対して投影装置に接続されたセンサでの検出結果を用いて優先順位を設定するステップと、優先順位に応じて投影位置の候補の中から投影装置からの投影位置を決定し、投影装置に投影位置に画面データに基づく画面を投影させるステップとをコンピュータに実行させる。
【発明の効果】
【００２２】
この発明によると、ディスプレイの面積を適切な位置に仮想的に拡大させ、作業効率を向上させることができる。
【図面の簡単な説明】
【００２３】
【図１】本実施の形態にかかる投影システムの構成の具体例を示す図である。
【図２】投影システムの構成の他の具体例を示す図である。
【図３】投影システムの構成の他の具体例を示す図である。
【図４】投影システムに含まれる第１のＰＣの装置構成の具体例を示すブロック図である。
【図５】投影システムに含まれる第２のＰＣの装置構成の具体例を示すブロック図である。
【図６】投影システムに含まれるＨＭＤの装置を構成の具体例を示すブロック図である。
【図７】投影システムに含まれるカメラの装置構成の具体例を示すブロック図である。
【図８】投影システムでの動作の概要を説明するための図である。
【図９】第１のＰＣの機能構成の具体例を示すブロック図である。
【図１０】第２のＰＣの機能構成の具体例を示すブロック図である。
【図１１】第１のＰＣでの投影動作の流れの具体例を示すフローチャートである。
【図１２】カメラ画像からマーカ画像を検出して、その位置に基づいて画面を投影させる動作の具体的な流れを表わすフローチャートである。
【図１３】マーカ画像の具体例を示す図である。
【図１４】マーカ画像の検出例とそれに基づく画像の投影の具体例とを表わす図である。
【図１５】第１の実施例での、第１カメラ画像の具体例を示す図である。
【図１６】ＨＭＤでの画面の表示候補位置を表わす図である。
【図１７】第１の実施例での、第１カメラ画像の他の具体例を示す図である。
【図１８】表示候補位置の順位を特定する動作および表示位置を決定する動作の具体的な流れを表わしたフローチャートである。
【図１９】第１カメラ画像において検出されたユーザの視認量を表わした図である。
【図２０】第１の実施例での、決定されたＨＭＤでの画面の表示位置を表わした図である。
【図２１】第３の実施例での、第１カメラ画像の具体例を示す図である。
【図２２】第３の実施例での、決定されたＨＭＤでの画面の表示位置を表わした図である。
【図２３】第４の実施例での、第１カメラ画像の具体例を示す図である。
【図２４】第４の実施例での、決定されたＨＭＤでの画面の表示位置を表わした図である。
【図２５】第６の実施例での、第１カメラ画像の具体例を示す図である。
【図２６】第６の実施例での、決定されたＨＭＤでの画面の表示位置を表わした図である。
【図２７】第７の実施例での、第１カメラ画像と、ＨＭＤを装着したユーザの頭部の傾きとディスプレイにおける表示画面との間の関係との第１の具体例を示す図である。
【図２８】第７の実施例での、第１カメラ画像と、ＨＭＤを装着したユーザの頭部の傾きとディスプレイにおける表示画面との間の関係との第２の具体例を示す図である。
【図２９】第７の実施例での、第１カメラ画像と、ＨＭＤを装着したユーザの頭部の傾きとディスプレイにおける表示画面との間の関係との第３の具体例を示す図である。
【図３０】第８の実施例での、第１カメラ画像の具体例を示す図である。
【図３１】第８の実施例での、決定されたＨＭＤでの画面の表示位置を表わした図である。
【発明を実施するための形態】
【００２４】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。
【００２５】
＜システム構成＞
図１は、本実施の形態にかかる投影システム１の構成の具体例を示す図である。
【００２６】
図１を参照して、本実施の形態にかかる投影システム１は、ディスプレイ５００と、投影装置としてのヘッドマウンテンディスプレイ（以下、ＨＭＤ）３００と、ディスプレイ５００の表示およびＨＭＤ３００における画像の投影を制御するための制御装置としてのパーソナルコンピュータ（以下、ＰＣ）２００と、ＨＭＤ３００における画像の投影を制御するための制御装置としてのＰＣ１００とを含む。
【００２７】
ＰＣ１００はＨＭＤ３００に接続されて、ＨＭＤ３００に対して画像データと共に制御信号を送信して、ＨＭＤ３００での画像の投影を制御する。
【００２８】
ＨＭＤ３００には、センサとしてのカメラ４００が接続されており、カメラ４００からの撮影画像がＰＣ１００に入力される。ＰＣ１００は当該撮影画像を用いて、ＨＭＤ３００での画像の投影の制御を実行する。
【００２９】
ＰＣ２００はディスプレイ５００に接続されて、画像データのうちのディスプレイ５００に表示させるデータから表示データを生成し、制御信号と共にディスプレイ５００に送信することで、ディスプレイ５００での画面表示を実行させる。
【００３０】
また、ＰＣ２００はＰＣ１００に接続されて、上記画像データのうちのＨＭＤ３００で投影させるデータを制御信号と共にＰＣ１００に送信することで、ＨＭＤ３００での画像の投影を実行させる。ＰＣ１００は当該制御信号に従って、当該画像データからＨＭＤ３００で投影させるための投影データを生成し、投影させるための処理を実行する。
【００３１】
ＰＣ１００とＨＭＤ３００およびカメラ４００との間の通信、ＰＣ２００とディスプレイ５００との間の通信、およびＰＣ１００とＰＣ２００との間の通信は図１に示されるように専用回線などを介した有線の通信であってもよいし、無線ＬＡＮや赤外線通信などの無線通信であってもよい。
【００３２】
なお、図１に表わされた投影システム１の形態は一例であって、この形態に限定されるものではない。たとえば、図２、図３に他の構成の投影システム１Ａ，１Ｂの具体例を示す。
【００３３】
すなわち、図２に示されるように、上記ＰＣ１００とＰＣ２００とが一台のＰＣ２００Ａで構成されてもよい。または、図３に示されるように、上記ＰＣ１００とＰＣ２００とが一台のＰＣ２００Ｂで構成され、さらに、当該ＰＣ２００Ｂとディスプレイ５００およびＨＭＤ３００との間の通信がインターネットを介した通信であってもよい。すなわち、ＰＣ２００Ｂは後述する処理を実行して必要な情報をディスプレイ５００およびＨＭＤ３００に対してインターネットを介して送信する。このような形態は、クラウドとも称される。
【００３４】
＜装置構成＞
図４は、ＰＣ１００の装置構成の具体例を示すブロック図である。図４に示されたＰＣ１００の装置構成は、一般的なパーソナルコンピュータの装置構成である。すなわち、図４を参照して、ＰＣ１００は、装置全体を制御するためのＣＰＵ１０と、ＣＰＵ１０で実行されるプログラムなどを記憶するためのメモリ１１と、ＨＭＤ３００やＰＣ２００などの他の装置と通信するための通信インタフェース（Ｉ／Ｆ）１２とを含む。
【００３５】
図５は、ＰＣ２００の装置構成の具体例を示すブロック図である。図５に示されたＰＣ２００の装置構成もまた、一般的なパーソナルコンピュータの装置構成であり、図４に示された構成と概ね同じ構成である。すなわち、図５を参照して、ＰＣ２００もまた、装置全体を制御するためのＣＰＵ２０と、ＣＰＵ２０で実行されるプログラムなどを記憶するためのメモリ２１と、ＰＣ１００やディスプレイ５００などの他の装置と通信するための通信Ｉ／Ｆ２２とを含む。ＰＣ２００は、さらに、マウスやキーボードなどの入力装置２３を備える。
【００３６】
図６は、ＨＭＤ３００の装置を構成の具体例を示すブロック図である。図６を参照して、ＨＭＤ３００は、装置全体を制御するためのＣＰＵ３０と、ＣＰＵ３０で実行されるプログラムなどを記憶するためのメモリ３１と、ＰＣ１００やカメラ４００などの他の装置と通信するための通信Ｉ／Ｆ３２と、図示しないディスプレイを含んで、画像データに基づく画面を当該ディスプレイに投影するための投影部３３を含む。
【００３７】
本実施の形態において、投影部３３は透過性を有するディスプレイを含み、当該ディスプレイに対して画像を投影する。投影部３３に含まれるディスプレイは図示しない装着部によって、投影方向と視線方向と略一致させるようにユーザの頭部等に装着可能である。
【００３８】
そのため、ＨＭＤ３００を装着したユーザは、当該ディスプレイを介して背景を視認しつつ当該背景に重ねて投影された画面を視認することができる。
【００３９】
図７は、カメラ４００の装置構成の具体例を示すブロック図である。図７を参照して、カメラ４００は、装置全体を制御するためのＣＰＵ４０と、ＣＰＵ４０で実行されるプログラムなどを記憶するためのメモリ４１と、ＨＭＤ３００などの他の装置と通信するための通信Ｉ／Ｆ４２と、第１撮影部４３および第２撮影部４４とを含む。
【００４０】
第１撮影部４３は、その撮影方向をＨＭＤ３００の投影部３３での投影方向に略一致させた位置に設置される。そのため、第１撮影部４３は、ＨＭＤ３００の図示しないディスプレイを介してユーザが視認することのできる、当該ＨＭＤ３００によって画面が投影された先の背景を撮影することになる。以降の説明において、第１撮影部４３が撮影することによって得られた画像を第１カメラ画像とも称する。
【００４１】
第２撮影部４４は、その撮影方向をＨＭＤ３００の投影部３３での投影方向と反対向きとさせた位置に設置される。そのため、第２撮影部４４は、ＨＭＤ３００を装着したユーザの目の付近を撮影することになる。以降の説明において、第２撮影部４４が撮影することによって得られた画像を第２カメラ画像とも称する。
【００４２】
＜動作概要＞
図８は、投影システム１での動作の概要を説明するための図である。
【００４３】
図８を参照して、投影システム１では、ディスプレイ５００に表示画面５０１が表示されると共に、ディスプレイ５００の周囲の予め設定された位置にＨＭＤ３００から画面が投影されることで、画面６０１，６０２が表示される。
【００４４】
これにより、ＨＭＤ３００を装着したユーザは、ディスプレイ５００の面積分の表示画面５０１に加えて、当該ディスプレイ５００から所定位置に拡張された表示画面６０１，６０２も視認することができる。
【００４５】
＜機能構成＞
図９は、上記動作を行なうためのＰＣ１００の機能構成の具体例を示すブロック図である。図９に示される各機能は、ＰＣ１００のＣＰＵ１０がメモリ１１に記憶されるプログラムを読み込んで実行することで、主にＣＰＵ１０上に形成されるものであるが、少なくとも一部が電気回路等のハードウェア構成によって実現されてもよい。
【００４６】
図９を参照して、ＣＰＵ１０は、通信Ｉ／Ｆ１２を介してデータを受信するためのデータ受信部１０１と、受信したデータを解析するためのデータ解析部１０２と、データ管理を行なうためのＰＣ・ＨＭＤ用データマネージメント部１０３と、カメラ４００の第１撮影部４３を制御するためのカメラ管理部（Ｏｕｔｓｉｄｅ）１０５と、第１カメラ画像からディスプレイ５００を検出するためのモニタ検出部１０４と、カメラ４００の第２撮影部４４を制御するためのカメラ管理部（Ｉｎｓｉｄｅ）１０７と、第２カメラ画像から視線を検出するための視線検出部１０６と、ＨＭＤ３００での投影を制御するためのディスプレイ管理部１０８と、その他処理を行なうためのその他処理部１０９と、送信用のデータを特定のデータ形式に整形するためのデータ作成部１１０と、通信Ｉ／Ｆ１２を介してデータを送信するためのデータ送信部１１１とを含む。
【００４７】
データ受信部１０１は、上述の通信によって送信されるデータのうち、必要なデータ（パケット）を受信する。データ解析部１０２は受信されたデータの中から必要なデータを抽出し、当該ＰＣ１００での処理に必要なデータであるか否かを解析する。そして、必要なデータである場合、解析結果に従って当該データがＰＣ・ＨＭＤ用データマネージメント部１０３またはその他処理部１０９に渡される。すなわち、データ受信部１０１がＰＣ２００からＨＭＤ３００で投影される画面データを受信すると、データ解析部１０２での解析結果に従って当該データがＰＣ・ＨＭＤ用データマネージメント部１０３に渡される。
【００４８】
モニタ検出部１０４は予めディスプレイ５００の形状としてたとえば矩形形状を記憶している。そして、カメラ管理部１０５から第１カメラ画像を受け取り、当該画像と記憶しているディスプレイ５００の形状とをマッチングすることで、第１カメラ画像の中からディスプレイ５００を検出する。また、第１カメラ画像中のディスプレイ５００の形状の変化から、カメラ４００からディスプレイ５００までの距離および傾き具合を検出する。そして、モニタ検出部１０４は、これらの検出結果をＰＣ・ＨＭＤ用データマネージメント部１０３に渡す。
【００４９】
視線検出部１０６は、カメラ管理部１０７から第２カメラ画像を受け取り、その中からＨＭＤ３００を装着しているユーザの目を検出して、その視線方向を検出する。そして、その検出結果をＰＣ・ＨＭＤ用データマネージメント部１０３に渡す。
【００５０】
ＰＣ・ＨＭＤ用データマネージメント部１０３は、モニタ検出部１０４からの検出結果に基づいて表示位置を決定する。また、このときに、視線検出部１０６での検出結果を用いて表示位置を決定してもよい。
【００５１】
この決定方法については、以降に具体例を挙げて説明する。そして、ＰＣ・ＨＭＤ用データマネージメント部１０３は、画面データをディスプレイ管理部１０８に渡して、ＨＭＤ３００での画面を当該位置に表示させるように画面の投影を実行させる。
【００５２】
図１０は、上記動作を行なうためのＰＣ２００の機能構成の具体例を示すブロック図である。図１０に示される各機能は、ＰＣ２００のＣＰＵ２０がメモリ２１に記憶されるプログラムを読み込んで実行することで、主にＣＰＵ２０上に形成されるものであるが、少なくとも一部が電気回路等のハードウェア構成によって実現されてもよい。ＰＣ２００は図１０の各機能を備えて、サーバとして機能する。
【００５３】
図１０を参照して、ＣＰＵ２０は、通信Ｉ／Ｆ２２を介してデータを受信するためのデータ受信部２０１と、受信したデータを解析するためのデータ解析部２０２と、ＰＣ１００から送信されるデータを管理するための入力データ管理部２０３と、ディスプレイ５００での表示を管理するためのモニタ管理部２０４と、ＨＭＤ３００で投影させる画面データを管理するためのＶＡＤ描画管理部２０５と、ユーザ管理などのその他のＰＣに関する管理を行なうためのその他管理部２０７と、ディスプレイ５００に関する情報などの各種データを保持するためのデータ保持部２０６と、送信用のデータを特定のデータ形式に整形するためのデータ作成部２０８と、通信Ｉ／Ｆ２２を介してデータを送信するためのデータ送信部２０９とを含む。
【００５４】
データ受信部２０１は、上述の通信によって送信されるデータのうち、必要なデータ（パケット）を受信する。データ解析部２０２は受信されたデータの中から必要なデータを抽出し、当該ＰＣ２００での処理に必要なデータであるか否かを解析する。そして、必要なデータである場合、解析結果に従って当該データが入力データ管理部２０３、モニタ管理部２０４、ＶＡＤ描画管理部２０５、またはその他管理部２０７に渡される。
【００５５】
モニタ管理部２０４およびＶＡＤ描画管理部２０５は、それぞれ、ディスプレイ５００に表示させる画面の画面データおよびＨＭＤ３００で投影させる画面データを生成する。そして、モニタ管理部２０４は当該画面データをディスプレイ５００に送信し、当該画面データに基づく画面をディスプレイ５００に表示させるための制御を実行する。また、ＶＡＤ描画管理部２０５は、当該画面データをＰＣ１００に対して送信する。
【００５６】
ＨＭＤ３００で投影させる画面データの一例として、入力装置２３からの操作信号に従う画像データから生成されたディスプレイ５００に表示させる画面データに対応した画面データが挙げられる。このような画面データをＨＭＤ３００に投影させることで、ディスプレイ５００の表示画面５０１がマークの表示位置の方向に拡張されて、画像データがより広い範囲で表示されることになる。もちろん、ＨＭＤ３００で投影させる画面データはこの例に限定されず、以降の具体例に示されるような、他の画面データであってもよい。
【００５７】
さらに、入力データ管理部２０３がカメラ４００からマークまでの距離および傾き具合の検出結果をＰＣ１００から取得し、ＶＡＤ描画管理部２０５において、これら検出結果に基づいて生成した画面データを補正するようにしてもよい。このような補正を行なうことで、ＨＭＤ３００を装着したユーザがディスプレイ５００を視認する角度、距離に応じて、ディスプレイ５００での表示画面５０１と同じような見え方となるようにＨＭＤ３００から画面が投影されることになり、視認性が高まる。
【００５８】
＜動作フロー＞
図１１は、ＰＣ１００での、第１カメラ画像に基づいた投影動作の流れの具体例を示すフローチャートである。図１１のフローチャートに示される動作は、ＰＣ１００のＣＰＵ１０がメモリ１１に記憶されるプログラムを読み出して図９の各機能を発揮させることで実現される。
【００５９】
図１１を参照して、ＣＰＵ１０は、第１カメラ画像が入力されると（ステップＳ１０１でＹＥＳ）、ステップＳ１０３で当該画像を解析し、予め記憶しているディスプレイ５００の形状とマッチングすることで当該画像中のディスプレイ５００をマーカ画像として検出する。
【００６０】
第１カメラ画像からディスプレイ５００が検出されると（ステップＳ１０５でＹＥＳ）、ステップＳ１０７でＣＰＵ１０は、予め記憶されているディスプレイ５００との位置関係に対して規定されているＨＭＤ３００での画面を表示する位置の候補を特定し、さらにその順位を特定する。ここでの順位の特定方法については、後に具体例を挙げて説明する。
【００６１】
そして、ステップＳ１０９で当該優先順位に応じてＨＭＤ３００での画面を表示する位置を決定し、ステップＳ１１１で画面データと共に制御信号をＨＭＤ３００に対して出力する。ここでは、一例として、表示する画面の数に応じて優先順位の高い順から表示位置として決定してもよいし、予め表示箇所が規定されている場合には、優先順位の高い順から当該表示箇所の数までを、表示位置として決定してもよい。ＨＭＤ３００ではこの制御信号に従って投影動作が実行されることで、決定された位置にＨＭＤ３００での画面が表示されることになる。
【００６２】
なお、上記ステップＳ１０３〜Ｓ１０５、およびステップＳ１１１の動作での、第１カメラ画像からマーカ画像を検出して、その位置に基づいて画面を投影させる動作の具体例について、図１２のフローチャートを用いてさらに詳細に説明する。ここでは、具体例として、拡張現実感の研究のためにワシントン大学ＨＩＴ研究室で開発されたソフトウェアライブラリとしてのプログラムを用いて実現される動作について説明する。用いられるプログラムはこのプログラムに限定されない。
【００６３】
図１２を参照して、まず、処理が開始するとステップＳ１１でＣＰＵ１０は初期化処理を実行する。ここでの初期化処理の一つとして、メモリ１１の所定領域に記憶されている撮影画像に対して設定した座標系を初期化する処理が含まれる。
【００６４】
ステップＳ１２でＣＰＵ１０は、カメラ４００からの第１カメラ画像の入力を受け付けて、撮影画像を取得する。ＣＰＵ１０は、撮影画像（１フレーム）が入力されるごとに、ステップＳ１３でＣＰＵ１０は、入力された第１カメラ画像をメモリ１１の描画用の領域に描画する。そして、ステップＳ１４でＣＰＵ１０は、そのメモリ１１に展開された画像の中から座標系の基準となる位置を特定するディスプレイ５００の画像をマーカとして検出する。ＣＰＵ１０は、予めマーカとするディスプレイ５００の画像、および、そのマーカと撮影空間に設定される３次元座標系における座標との関係を記憶している。
【００６５】
説明のため、ＣＰＵ１０はマーカの画像として図１３の画像を記憶しているものとする。そして、一例として、撮影空間のこのマーカの画像に表わされた板状のコンテンツのある位置を、３次元座標系の原点とし、このコンテンツに対して３方向に、ｘ軸、ｙ軸、ｚ軸を設定する、との３次元座標系との対応関係を記憶しているものとする。
【００６６】
この場合、ステップＳ１４でＣＰＵ１０は、メモリ１１に展開した第１カメラ画像から図１３の画像を検索する。そして、その画像またはその画像に近似した画像を検出すると、撮影画像内にマーカが存在すると認識し、ステップＳ１９でＣＰＵ１０は、その信頼度を比較する。ステップＳ１５での処理の一例として、ＣＰＵ１０は、予め記憶されているマーカの画像と検出された画像とを比較し、その相関度合いが基準として設定されているものを満たしているか否かで信頼度を比較する。
【００６７】
その後、ステップＳ１６でＣＰＵ１０は、第１カメラ画像から検出されたマーカの画像の位置や、検出されたマーカの画像と記憶している画像との比較に基づいて、この撮影画像を撮影した時のカメラ４００の位置や方向を計算する。そして、ステップＳ１７で、計算されたカメラ４００の位置や方向に基づいて、撮影画像に対して、予めマーカとした画像の位置を原点とし、マーカとした画像の傾きに応じてｘ軸、ｙ軸、ｚ軸を設定する。
【００６８】
さらに、ＰＣ１００から得られた画面データの表示位置の候補として、３次元座標で記憶されている座標を第１カメラ画像に設定された３次元座標系において特定する。
【００６９】
たとえば、図１３の画像がマーカの画像として記憶されているところ、撮影画像中に図１４（Ａ）の画像がマーカとして検出された場合、カメラ４００の撮影位置がマーカで表わされたコンテンツの正面よりも向かって右側上方、撮影方向が該コンテンツを見下ろす角度と、カメラ４００の位置や方向が計算される。ＣＰＵ１０は、予め該マーカとの関係で規定されている３次元の座標系をその撮影位置、撮影方向に基づいて第１カメラ画像に対して設定する。
【００７０】
さらに、図１３の画像に示されたマーカとするコンテンツのある原点を表示位置とする、立方体を表わす表示データがある場合、ＣＰＵ１０は、その形状をカメラ４００から該コンテンツまでの距離や方向などに基づいて変形して、規定された表示位置に投影させる。これにより、図１４（Ｂ）に示されるように、原点とするマーカの画像の近傍にマーカで表わされたコンテンツと同じ位置、方向から見たように変形された形状で立方体が投影される。
【００７１】
ステップＳ１８でＣＰＵ１０は、ＰＣ２００から送信された画面データを、以上の処理で得られた位置に画面データに基づく画面を投影させるための制御信号と共にＨＭＤ３００に送信する。
【００７２】
ＣＰＵ１０は、表示の終了を要求する信号が入力されるまで、第１カメラ画像が入力されるたびに以上の処理を繰り返す。そして、表示の終了を要求する信号の入力を受け付けると（ステップＳ１９でＹＥＳ）、一連の動作を終了する。
【００７３】
以降、具体的な実施例を挙げて、上記ステップＳ１０７でのＨＭＤ３００での画面を表示する位置の候補およびその順位を特定する動作について説明する。
【００７４】
＜実施例１＞
第１の実施例でＰＣ１００は、ディスプレイ５００の位置およびその周辺のオブジェクトを検出し、その検出結果に基づいてＨＭＤ３００での画面の表示位置の候補を特定した上でその順位を決定する。
【００７５】
図１５は、第１の実施例での、第１カメラ画像の具体例を示す図である。このような撮影画像の入力を受け付けると、ＰＣ１００は当該撮影画像とディスプレイ５００の画像とをマッチングすることでディスプレイ５００を特定する。そして、ディスプレイ５００に表示されている表示画面５０１の周囲に、ＨＭＤ３００での画面の表示候補位置を特定する。
【００７６】
図１６は、予めディスプレイ５００との位置関係によって規定されているＨＭＤ３００での画面の表示候補位置を表わす図である。図１６において、表示位置ＶＡＤ−Ａ、ＶＡＤ−Ｂ、ＶＡＤ−Ｃ、およびＶＡＤ−Ｄは、それぞれ、ディスプレイ５００に表示されている表示画面５０１の右隣、下隣、左隣、および上隣に規定されるＨＭＤ３００での画面の表示候補位置を表わしている。なお、以降の説明でも表示位置ＶＡＤ−Ａ、ＶＡＤ−Ｂ、ＶＡＤ−Ｃ、およびＶＡＤ−Ｄの表示画面５０１に対する位置関係は同様のものとする。
【００７７】
ＰＣ１００は、上記ステップＳ１０７で、図１６に示された規定に基づいて、ＨＭＤ３００での画面の表示候補位置を、第１カメラ画像におけるディスプレイ５００の位置に応じて特定する。たとえば図１７に示されたように、第１カメラ画像においてディスプレイ５００が中央より右に偏った位置にあり、その表示画面５０１の右側に所定面積が存在しない場合には、ＰＣ１００は第１段階において、表示位置ＶＡＤ−Ａは表示候補位置と特定せず、表示画面５０１の下隣、左隣、および上隣に該当する表示位置ＶＡＤ−Ｂ、ＶＡＤ−Ｃ、およびＶＡＤ−Ｄを表示候補位置と特定する。
【００７８】
このようにして表示候補位置が特定された後、ＰＣ１００は、予め規定された順に応じてそれぞれの表示候補位置に対して順位を付与してもよい。すなわち、一例として、表示画面５０１の左隣、右隣、上隣および、下隣の順に順位が規定されている場合であって、表示位置ＶＡＤ−Ａ、ＶＡＤ−Ｂ、ＶＡＤ−Ｃ、およびＶＡＤ−Ｄが特定された場合には、ＰＣ１００はこの規定に従って、表示位置ＶＡＤ−Ｃ、ＶＡＤ−Ａ、ＶＡＤ−Ｂ、およびＶＡＤ−Ｄの順に順位を付与する。さらに、この順は、ユーザからの所定の操作によって登録、更新可能であってよい。
【００７９】
さらに、ＰＣ１００は、ＨＭＤ３００を装着したユーザの視線を利用して順位を特定してもよい。
【００８０】
図１８は、上記ステップＳ１０７での表示候補位置の順位を特定する動作および表示位置を決定する動作の具体的な流れを表わしたフローチャートである。
【００８１】
図１８を参照して、ＰＣ１００のＣＰＵ１０はカメラ４００からＨＭＤ３００を装着したユーザを撮影した第２カメラ画像の入力を受け付ける（ステップＳ２０１）。そして、ＣＰＵ１０は第２カメラ画像を解析してユーザの目の画像を検出し（ステップＳ２０３）、さらにその視線方向を特定する（ステップＳ２０５）。ここでの視線の特定方法は特定の方法には限定されず、様々な方法を採用することができる。一例として特開２００１−６１７８５号公報において開示されている方法を採用してもよい。
【００８２】
ステップＳ２０７でＣＰＵ１０は、特定された視線方向と第１カメラ画像とを比較することで第１カメラ画像における当該ユーザの視線の向かう位置を特定する。
【００８３】
ＣＰＵ１０は、この処理を所定期間行なうことで、ステップＳ２０９で、上記動作によって特定された表示候補位置のそれぞれで表わされる表示領域へ視線が向けられた時間を特定する。この時間のことを、説明上、「視認量」と称する。そして、ステップＳ２１１で、それぞれの領域の視認量に応じて、特定された表示候補のそれぞれに対する順位を特定する。
【００８４】
ステップＳ２１３でＣＰＵ１０は、特定された順位に従って、表示位置を決定する。すなわち、予め表示する画面の数を記憶しておき、特定された順位の高い表示候補位置から順に、表示する画面の数までの表示候補位置を表示位置として決定する。
【００８５】
ここで、図１９に示されたように、表示画面５０１の下側に置かれたキーボードをユーザが視認することによって表示画面５０１の下隣の領域の視認量と、表示画面５０１の左側に置かれた本をユーザが視認することによって表示画面５０１の左隣の領域の視認量とが、予め規定されたしきい値よりも大きく検出されたとする。この場合、ＰＣ１００は、これら領域に特定された表示位置ＶＡＤ−ＢおよびＶＡＤ−Ｃの順位が他の表示位置の順位より低く設定する。
【００８６】
表示する画面の数が２画面と規定されている場合、図２０に示されるように、上記ステップＳ２１３では、順位の低い表示位置ＶＡＤ−ＢおよびＶＡＤ−Ｃは表示位置とは決定されず、これよりも順位の高い２つの表示位置ＶＡＤ−ＡおよびＶＡＤ−Ｄが表示位置として決定されることになる。
【００８７】
これにより、ディスプレイ５００の表示画面５０１の周囲であって、ユーザが何か視認する対象に対して視線を向けている方向にはＨＭＤ３００からの画面が表示されず、その他の方向にＨＭＤ３００からの画面が表示されることになる。そのため、たとえば本を視認しながらや、キーボードを操作しながら表示画面を確認する、といったユーザの操作を妨げることなく表示画面５０１を仮想的に拡張することが可能となる。
【００８８】
なお、上の順位の決定方法は一例であって、他の考え方に基づくものであってもよい。すなわち、視認量がしきい値よりも大きい表示候補位置の順位ほど高く特定するようにしてもよい。この場合、たとえばユーザが本を視認しながらや、キーボードを操作しながら表示画面を確認する場合に、視線を他の位置に変えることなくその操作をしながらＨＭＤ３００からの画面を視認することが可能となり、ユーザによっては操作性が高まる場合もある。
【００８９】
＜実施例２＞
第２の実施例でＰＣ１００は、上述のユーザの視線の替りに、図示しないキーボードからの入力を利用して表示候補位置の順位を特定してもよい。
【００９０】
すなわち、ディスプレイ５００の下側に図示しないキーボードが設置されており、ＰＣ１００が当該キーボードからの入力を所定期間受け付けている場合には、ユーザがキーボード操作を行なっているものとして、表示画面５０１の周囲に表示候補位置として特定された表示位置ＶＡＤ−Ａ、ＶＡＤ−Ｂ、ＶＡＤ−Ｃ、およびＶＡＤ−Ｄのうち、表示画面５０１の下隣の表示位置ＶＡＤ−Ｂを他の表示位置ＶＡＤ−Ａ、ＶＡＤ−Ｃ、およびＶＡＤ−Ｄよりも順位を低く特定する。
【００９１】
これにより、ディスプレイ５００の表示画面５０１の周囲であって、ユーザが図示しないキーボードの操作を行なっている場合には当該キーボードの方向にはＨＭＤ３００からの画面が表示されず、その他の方向にＨＭＤ３００からの画面が表示されることになる。そのため、ユーザの操作を妨げることなく表示画面５０１を仮想的に拡張することが可能となる。
【００９２】
なお、上の順位の決定方法は一例であって、他の考え方に基づくものであってもよい。すなわち、キーボードの入力を受け付けている場合には、当該キーボードの位置している表示候補位置の順位を高く特定するようにしてもよい。この場合、ユーザは視線をキーボードから他の位置に変えることなく入力操作をしながらＨＭＤ３００からの画面を視認することが可能となり、ユーザによっては操作性が高まる場合もある。
【００９３】
＜実施例３＞
第３の実施例でＰＣ１００は、上述のように表示画面５０１の周囲に表示候補位置を特定した後、第１カメラ画像にディスプレイ５００以外に含まれるディスプレイの位置に応じて順位を特定して表示位置を決定する。
【００９４】
図２１は、第３の実施例での、第１カメラ画像の具体例を示す図である。ＰＣ１００は、たとえば矩形形状をディスプレイ形状として記憶しており、第１カメラ画像から複数の矩形形状が検出されると、より中央に近い位置にある矩形形状の画像をディスプレイ５００と特定し、その他の矩形形状の画像をディスプレイ５００以外のディスプレイと特定する。
【００９５】
他の方法として、各矩形形状の画像を比較することで、最も正面から見た形状となっている矩形形状や、最も大きな矩形形状の画像をディスプレイ５００と特定し、その他の矩形形状の画像をディスプレイ５００以外のディスプレイと特定するようにしてもよい。
【００９６】
このようにディスプレイ５００以外のディスプレイが第１カメラ画像から検出された場合、ＰＣ１００では、表示画面５０１の周囲に表示候補位置として特定された表示位置のうち、ディスプレイ５００以外のディスプレイの属している表示候補位置の順位を他の表示候補位置の順位よりも低く特定する。より好ましくは、ディスプレイ５００以外のディスプレイがより多くの面積属している領域に対応した表示候補位置ほど順位を低く特定する。
【００９７】
第１カメラ画像が図２１のものである場合、表示画面５０１の周囲に表示候補位置として特定された表示位置ＶＡＤ−Ａ、ＶＡＤ−Ｂ、ＶＡＤ−Ｃ、およびＶＡＤ−Ｄのうち、表示位置ＶＡＤ−ＢおよびＶＡＤ−Ｃはディスプレイ５００以外のディスプレイが属しているため、他の表示候補位置である表示位置ＶＡＤ−ＡおよびＶＡＤ−Ｄよりも順位を低く特定する。そして、表示するＨＭＤ３００からの画面の数が２画面と規定されている場合、図２２に示されるように、上記ステップＳ２１３では、順位の低い表示位置ＶＡＤ−ＢおよびＶＡＤ−Ｃは表示位置とは決定されず、これよりも順位の高い２つの表示位置ＶＡＤ−ＡおよびＶＡＤ−Ｄが表示位置として決定されることになる。
【００９８】
これにより、ディスプレイ５００の表示画面５０１の周囲であって、他のディスプレイが存在している方向にはＨＭＤ３００からの画面が表示されず、その他の、ディスプレイのない方向にＨＭＤ３００からの画面が表示されることになる。そのため、ディスプレイ５００の他のディスプレイの表示画面にＨＭＤ３００からの画面が重複して双方の画面が視認し難くなることでユーザの操作性を妨げることなく、表示画面５０１を仮想的に拡張することが可能となる。
【００９９】
なお、上の順位の決定方法は一例であって、他の考え方に基づくものであってもよい。すなわち、ディスプレイ５００の他のディスプレイが属する表示候補位置の順位ほど高く特定するようにしてもよい。この場合、たとえばユーザがディスプレイ５００の他のディスプレイに表示される画面を確認しながらディスプレイ５００の表示画面を確認する場合に、視線を上記他のディスプレイから他の位置に変えることなくその画面を視認しながらＨＭＤ３００からの画面も視認することが可能となり、ユーザによっては操作性が高まる場合もある。
【０１００】
＜実施例４＞
第４の実施例でＰＣ１００は、上述のように表示画面５０１の周囲に表示候補位置を特定した後、第１カメラ画像に含まれる人の顔の画像の位置に応じて順位を特定して表示位置を決定する。
【０１０１】
図２３は、第４の実施例での、第１カメラ画像の具体例を示す図である。ＰＣ１００は、一例として、円形あるいは楕円形を人の顔のテンプレートとして記憶しており、当該テンプレートを用いて第１カメラ画像をマッチングする、などの処理によって第１カメラ画像から人の顔の画像を検出することができる。もちろん、他の方法で人の顔の画像を検出するようにしてもよい。
【０１０２】
このように人の顔の画像が第１カメラ画像から検出された場合、ＰＣ１００では、表示画面５０１の周囲に表示候補位置として特定された表示位置のうち、人の顔の画像が属している表示候補位置の順位を他の表示候補位置の順位よりも低く特定する。より好ましくは、人の顔の画像がより多くの面積属している領域に対応した表示候補位置ほど順位を低く特定する。
【０１０３】
第１カメラ画像が図２３のものである場合、表示画面５０１の周囲に表示候補位置として特定された表示位置ＶＡＤ−Ａ、ＶＡＤ−Ｃ、およびＶＡＤ−Ｄのうち、表示位置ＶＡＤ−Ｄは人の顔の画像が属しているため、他の表示候補位置である表示位置ＶＡＤ−ＡおよびＶＡＤ−Ｃよりも順位を低く特定する。そして、表示するＨＭＤ３００からの画面の数が２画面と規定されている場合、図２４に示されるように、上記ステップＳ２１３では、順位の低い表示位置ＶＡＤ−Ｄは表示位置とは決定されず、これよりも順位の高い２つの表示位置ＶＡＤ−ＡおよびＶＡＤ−Ｃが表示位置として決定されることになる。
【０１０４】
これにより、ディスプレイ５００の表示画面５０１の周囲であって、人の顔のある方向にはＨＭＤ３００からの画面が表示されず、その他の方向にＨＭＤ３００からの画面が表示されることになる。そのため、たとえばユーザが、ディスプレイ５００越しに他の人と向き合ってディスプレイ５００の表示画面を視認しているという使い方において、ＨＭＤ３００からの画面が当該他の人の顔に重複してその画面を視認する際に当該他の人の顔を注目することになる、という事態を避けつつ、表示画面５０１を仮想的に拡張することが可能となる。
【０１０５】
なお、上の順位の決定方法は一例であって、他の考え方に基づくものであってもよい。すなわち、人の顔の画像が属する表示候補位置の順位ほど高く特定するようにしてもよい。この場合、たとえばユーザはディスプレイ５００越しの当該他の人の顔から視線をはずすことなくＨＭＤ３００からの画面も視認することが可能となり、ユーザによっては操作性が高まる場合もある。
【０１０６】
＜実施例５＞
第５の実施例ではＰＣ１００は、上述の人の顔の替りに、第１カメラ画像中のディスプレイ５００周囲の画像から文字を検出し、その検出結果を用いて表示候補位置の順位を特定してもよい。
【０１０７】
すなわち、ディスプレイ５００周囲の画像から文字が検出されると、表示画面５０１の周囲に表示候補位置として特定された表示位置ＶＡＤ−Ａ、ＶＡＤ−Ｂ、ＶＡＤ−Ｃ、およびＶＡＤ−Ｄのうち、検出された文字の属する表示候補位置の順位を他の表示候補位置の順位よりも低く特定する。
【０１０８】
これは、たとえば書籍などをディスプレイ５００近傍に置いて、当該書籍を参照しながらディスプレイ５００を用いた操作を行なっている場合が想定される。
【０１０９】
たとえばこのような場合に上のように順位が特定されることにより、ディスプレイ５００の表示画面５０１の周囲であって、文字が検出された方向にはＨＭＤ３００からの画面が表示されず、その他の方向にＨＭＤ３００からの画面が表示されることになる。そのため、ユーザの操作を妨げることなく表示画面５０１を仮想的に拡張することが可能となる。
【０１１０】
なお、上の順位の決定方法は一例であって、他の考え方に基づくものであってもよい。すなわち、ディスプレイ５００周囲の画像から文字が検出された場合には、当該文字の属する表示候補位置の順位を高く特定するようにしてもよい。この場合、ユーザは視線を当該文字の印字されている書籍等から他の位置に変えることなくＨＭＤ３００からの画面を視認することが可能となり、ユーザによっては操作性が高まる場合もある。
【０１１１】
＜実施例６＞
第６の実施例でＰＣ１００は、上述のように表示画面５０１の周囲に表示候補位置を特定した後、第１カメラ画像中のディスプレイ５００周囲の画像のコントラスト比を利用して順位を特定し、表示位置を決定する。
【０１１２】
図２５は、第６の実施例での、第１カメラ画像の具体例を示す図である。このような撮影画像の入力を受け付けると、ＰＣ１００は上述と同様にしてディスプレイ５００を特定し、その周囲に表示位置ＶＡＤ−Ａ、ＶＡＤ−Ｂ、ＶＡＤ−Ｃ、およびＶＡＤ−Ｄを特定する。
【０１１３】
さらに、第６の実施例でＰＣ１００は、ディスプレイ５００周囲の表示候補位置ごとに、当該領域の画像のコントラスト比を算出する。そして、コントラスト比が予め設定されたしきい値よりも高い領域の属する表示候補位置の順位を他の表示候補位置の順位よりも低く特定する。
【０１１４】
たとえばディスプレイ５００の周囲に書籍などを置いて当該書籍を参照しながらディスプレイ５００を用いた操作を行なっている場合など、当該書籍の置かれている位置の属する表示候補位置の画像のコントラスト比が何も置かれていない位置の属する表示候補位置の画像のコントラスト比よりも高くなる。すなわち、このように順位が特定されることにより、図２６に示すように、ディスプレイ５００の周囲の何も置かれていないエリアや背景が白いエリアや置かれているものが少ないエリアなどにはＨＭＤ３００からの画面が表示され、その他のエリアにはＨＭＤ３００からの画面が表示されないことになる。そのため、ＨＭＤ３００からの画面の視認性を高めることができる。
【０１１５】
＜実施例７＞
第７の実施例においては、ＨＭＤ３００にセンサの他の例としての、カメラ４００に加えて加速度センサが備えられ、当該加速度センサからのセンサ信号がＰＣ１００に入力される。ＰＣ１００は上述のように表示画面５０１の周囲に表示候補位置を特定した後、ＨＭＤ３００に備えられた加速度センサからのセンサ信号に基づいて当該ＨＭＤ３００を装着したユーザの頭部の傾きを算出し、それに応じて順位を特定して表示位置を決定する。
【０１１６】
図２７は、第７の実施例での、第１カメラ画像と、ＨＭＤ３００を装着したユーザの頭部の傾きと表示画面５０１との間の関係との第１の具体例を示す図である。
【０１１７】
ＰＣ１００は、図２７（Ｂ）に表わされた撮影画像の入力を受け付けると、上述と同様にしてディスプレイ５００を特定し、その周囲に表示位置ＶＡＤ−Ａ、ＶＡＤ−ＢおよびＶＡＤ−Ｄを特定する。
【０１１８】
その後、ＰＣ１００はＨＭＤ３００に備えられた加速度センサからのセンサ信号に基づいて当該ＨＭＤ３００を装着したユーザの頭部の傾きを算出する。図２７（Ａ）の例の場合、ユーザの頭部の傾きが概ね垂直方向と算出される。
【０１１９】
ＰＣ１００は、ＨＭＤ３００を装着したユーザが頭部を概ね垂直方向にした状態で正面から視認可能な位置にＨＭＤ３００での画面を表示させるよう、表示候補位置の順位を設定する。
【０１２０】
すなわち、図２７の例の場合、ＰＣ１００は、当該ユーザが頭部を表示画面５０１に対して略平行にして表示画面５０１を視認しているものとして、表示画面５０１と角度の異なる表示位置ＶＡＤ−ＢおよびＶＡＤ−Ｄの順位を表示位置ＶＡＤ−Ａの順位よりも低く特定する。
【０１２１】
また、他の例として図２８（Ｂ）に表わされた撮影画像の入力を受け付けると、ＰＣ１００は上述と同様にしてディスプレイ５００を特定し、その周囲に表示位置ＶＡＤ−Ａ、ＶＡＤ−ＣおよびＶＡＤ−Ｄを特定する。
【０１２２】
その後、ＰＣ１００はＨＭＤ３００に備えられた加速度センサからのセンサ信号に基づいて当該ＨＭＤ３００を装着したユーザの頭部の傾きを算出する。図２８（Ａ）の例の場合、ユーザの頭部の傾きが垂直方向よりも下向きと算出される。
【０１２３】
この場合、ＰＣ１００は、当該ユーザが頭部を表示画面５０１に対して略平行にして表示画面５０１を視認しているものとして、頭部を概ね垂直方向にした状態で正面から視認可能な位置を表示画面５０１の上方と判断する。そして、この場合、ＰＣ１００は、表示画面５０１の上方にある表示位置ＶＡＤ−Ｄの順位を表示位置ＶＡＤ−ＡおよびＶＡＤ−Ｃの順位よりも高く特定する。
【０１２４】
また、他の例として図２９（Ｂ）に表わされた撮影画像の入力を受け付けると、ＰＣ１００は上述と同様にしてディスプレイ５００を特定し、その周囲に表示位置ＶＡＤ−Ａ、ＶＡＤ−ＢおよびＶＡＤ−Ｃを特定する。
【０１２５】
その後、ＰＣ１００はＨＭＤ３００に備えられた加速度センサからのセンサ信号に基づいて当該ＨＭＤ３００を装着したユーザの頭部の傾きを算出する。図２９（Ａ）の例の場合、ユーザの頭部の傾きが垂直方向よりも上向きと算出される。
【０１２６】
この場合、ＰＣ１００は、当該ユーザが頭部を表示画面５０１に対して略平行にして表示画面５０１を視認しているものとして、頭部を概ね垂直方向にした状態で正面から視認可能な位置を表示画面５０１の下方と判断する。そして、この場合、ＰＣ１００は、表示画面５０１の下方にある表示位置ＶＡＤ−Ｂの順位を表示位置ＶＡＤ−ＡおよびＶＡＤ−Ｃの順位よりも高く特定する。
【０１２７】
このように順位が特定されることにより、ＨＭＤ３００を装着したユーザが頭部を概ね垂直方向にした状態でＨＭＤ３００による画面を正面から視認可能な位置にＨＭＤ３００からの画面が表示されることになる。そのため、ＨＭＤ３００を装着したユーザはより自然な姿勢でＨＭＤ３００からの画面を視認することが可能となり、作業性を向上させることができる。
【０１２８】
なお、上の説明ではＨＭＤ３００に加速度センサが備えられ、その検出結果に基づいてＰＣ１００がＨＭＤ３００を装着したユーザの頭部の傾きを算出するものとしている。しかしながら、必ずしも加速度センサは必須ではなく、その他の方法でＰＣ１００がＨＭＤ３００を装着したユーザの頭部の傾きを算出してもよい。他の例としては、上述のように第１カメラ画像から予め記憶しているマーカ画像を検出し、その基本形状からの変化量に基づいてＨＭＤ３００を装着したユーザの頭部の傾きを算出する方法が挙げられる。
【０１２９】
＜実施例８＞
なお、以上の例では、ＨＭＤ３００に設置されたカメラ４００からの一つの撮影画像である第１カメラ画像を解析することで表示候補位置を設定し、さらに、それらの順位を決定して、より順位の高い表示候補位置を実際の表示位置と決定するとしている。
【０１３０】
さらに他の例として、第８の実施例において、ＨＭＤ３００にセンサとしてステレオカメラであるカメラ４００が備えられた場合を説明する。この場合、ＰＣ１００はステレオカメラであるカメラ４００からの第１カメラ画像として２つの画像を取得し、これらを解析することで、ＨＭＤ３００からディスプレイ５００までの距離および傾きを算出する。
【０１３１】
さらに、ＰＣ１００は、上述のようにディスプレイ５００の周囲に表示候補位置を設定した上で、検出されたディスプレイ５００の周囲にオブジェクトを検出し、ＨＭＤ３００からオブジェクトまでの距離を算出する。
【０１３２】
ここでの距離の算出方法は特定の方法に限定されるものではない。一例としてＰＣ１００は、たとえば国際公開ＷＯ０１／０３９５１３号パンフレットや特開平５−５０３９０号公報、特開平１１−６６３１９号公報、などに開示されている、ステレオカメラのカメラ間の視差情報を用いた三角測量の原理を利用して算出することができる。
【０１３３】
図３０は、第８の実施例での、第１カメラ画像の具体例を示す図である。このような撮影画像の入力を受け付けると、ＰＣ１００は上述と同様にしてディスプレイ５００を特定し、その周囲に表示位置ＶＡＤ−Ａ、ＶＡＤ−Ｂ、およびＶＡＤ−Ｃを特定する。
【０１３４】
さらに、ＰＣ１００はディスプレイ５００の周囲のオブジェクトとして、ディスプレイ５００の上辺、開いている書籍、積まれている書籍群、およびキーボードを検出する。そして、ＰＣ１００は、それぞれのオブジェクトまでのＨＭＤ３００からの距離Ｄ１，Ｄ２，Ｄ３，Ｄ４を上記方法などを利用して算出する。
【０１３５】
ここで、図３０の例においては、ディスプレイ５００の上辺までの距離Ｄ１が３４６３ｍｍ、開いている書籍までの距離Ｄ２が３２８１ｍｍ、積まれている書籍群までの距離Ｄ３が６０４５ｍｍ、およびキーボードまでの距離Ｄ４が２８５０ｍｍと算出されたものとする。この場合、ＰＣ１００は、ＨＭＤ３００からの距離が予め規定されたしきい値以上であるオブジェクトの属する表示候補位置の順位をそうでない表示候補位置の順位より高く設定する。たとえば、上記しきい値として４０００ｍｍが設定されているとすると、この例の場合、積まれている書籍群までの距離Ｄ３が上記しきい値よりも大きく、他のオブジェクトまでの距離は上記しきい値よりも小さい。そのため、ＰＣ１００はしきい値よりも大きいオブジェクトの属する表示位置ＶＡＤ−Ａの順位を、他の表示位置ＶＡＤ−ＢおよびＶＡＤ−Ｃの順位よりも高く特定する。これにより、図３１に示されるように、順位の高い表示位置ＶＡＤ−Ａが表示位置として決定されることになる。
【０１３６】
このように順位が特定されることにより、ディスプレイ５００の周囲の空間的にスペースの空いている位置にＨＭＤ３００からの画面が表示されることになる。そのため、ＨＭＤ３００からの画面が背後のオブジェクトと重なって視認し難くなることを抑え、ＨＭＤ３００からの画面の視認性を高めることができる。
【０１３７】
他の例として、ＰＣ１００はステレオカメラからの画像を用いてディスプレイ５００周辺の平面性を算出し、検出された平面部分の属する表示候補位置の順位を他の表示候補位置の順位よりも高く特定するようにしてもよい。
【０１３８】
なお、上の説明ではＨＭＤ３００にセンサとしてステレオカメラが設けられ、ＰＣ１００が当該ステレオカメラでの撮影画像を用いてオブジェクトまでの距離を算出するものとしているが、必ずしもステレオカメラは必須ではなく、その他の方法でＰＣ１００がオブジェクトまでの距離を算出してもよい。他の例としては、ＨＭＤ３００にセンサとして赤外線センサなどの距離を測定するためのセンサが設けられ、当該センサでの検出結果に基づいてＰＣ１００がオブジェクトまでの距離を算出する方法が挙げられる。
【０１３９】
＜他の例＞
なお、以上の例では、第１の実施例〜第８の実施例がそれぞれ説明されているが、説明された動作が組み合わされてもよい。
【０１４０】
さらに、上述のＰＣ１００での動作を実行させるためのプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１４１】
なお、本発明にかかるプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【０１４２】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【０１４３】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１４４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４５】
１，１Ａ，１Ｂ  投影システム、１１  メモリ、１２，２２，３２，４２  通信Ｉ／Ｆ、２３  入力装置、３３  投影部、４３  第１撮影部、４４  第２撮影部、１０１，２０１  データ受信部、１０２，２０２  データ解析部、１０３  ＰＣ・ＨＭＤ用データマネージメント部、１０４  モニタ検出部、１０５，１０７  カメラ管理部、１０６  視線検出部、１０８  ディスプレイ管理部、１０９  その他処理部、１１０，２０８  データ作成部、１１１，２０９  データ送信部、２０３  入力データ管理部、２０４  モニタ管理部、２０５  ＶＡＤ描画管理部、２０６  データ保持部、２０７  その他管理部、４００  カメラ、５００  ディスプレイ、５０１，６０１，６０２  表示画面。
【図１】
2012233963.tif 000003
【図２】
2012233963.tif 000004
【図３】
2012233963.tif 000005
【図４】
2012233963.tif 000006
【図５】
2012233963.tif 000007
【図６】
2012233963.tif 000008
【図７】
2012233963.tif 000009
【図８】
2012233963.tif 000010
【図９】
2012233963.tif 000011
【図１０】
2012233963.tif 000012
【図１１】
2012233963.tif 000013
【図１２】
2012233963.tif 000014
【図１３】
2012233963.tif 000015
【図１４】
2012233963.tif 000016
【図１５】
2012233963.tif 000017
【図１６】
2012233963.tif 000018
【図１７】
2012233963.tif 000019
【図１８】
2012233963.tif 000020
【図１９】
2012233963.tif 000021
【図２０】
2012233963.tif 000022
【図２１】
2012233963.tif 000023
【図２２】
2012233963.tif 000024
【図２３】
2012233963.tif 000025
【図２４】
2012233963.tif 000026
【図２５】
2012233963.tif 000027
【図２６】
2012233963.tif 000028
【図２７】
2012233963.tif 000029
【図２８】
2012233963.tif 000030
【図２９】
2012233963.tif 000031
【図３０】
2012233963.tif 000032
【図３１】
2012233963.tif 000033