(57)【特許請求の範囲】
【請求項１】
投影部によって投影面に投影されるオブジェクトのうち、ユーザの操作によって特定されるオブジェクトに対応する処理を実行する情報処理装置であって、
前記投影部と前記投影面との間に存在する物体の位置を検出する第１の検出手段と、
前記投影部によって投影光が照射される方向を示す情報を取得する取得手段と、
前記第１の検出手段が検出した前記物体の位置と、前記取得手段が取得した方向の情報とに対応する、前記物体の影が生じる位置に基づいて、前記投影面でオブジェクトが投影される投影位置を決定する決定手段と、
前記投影部を制御して、前記決定された位置に前記オブジェクトを投影させる制御手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記決定手段は、前記投影面において、前記投影部によって投影面に投影されるオブジェクトのうち、複数のオブジェクトが、同時に前記物体の影に重畳しないよう、前記複数のオブジェクトのそれぞれの投影位置を決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の検出手段により検出された物体が前記投影光を遮断することによって生じた影を検出する第２の検出手段を更に有し、
前記取得手段は、前記第１の検出手段により検出された物体と、前記第２の検出手段により検出された影との位置関係に基づき、前記投影光が照射される方向を示す情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記制御手段は、前記物体の影が、前記投影部によって投影面に投影されているオブジェクトに重畳したことに応じて、前記決定手段によって決定された投影位置に前記オブジェクトを移動させるよう、前記投影部を制御することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項５】
前記決定手段は、前記投影部によって投影面に投影されているオブジェクトのうち、少なくとも１つのオブジェクトを特定するためのユーザの操作に応じて、新たにオブジェクトが投影される場合に、前記新たに投影されるオブジェクトの投影位置を、前記物体の影が重畳しない位置に決定し、前記制御手段は、前記投影部を制御して、前記決定された投影位置に前記新たに投影されるオブジェクトを投影させることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項６】
前記物体は、前記投影部によって投影面に投影されているオブジェクトのうち、少なくとも１つのオブジェクトを特定する操作を入力するために前記ユーザが用いる物体であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記物体は、前記ユーザの手であることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記ユーザの手が右手であるか左手であるかを示す情報して検出する第３の検出手段を更に備え、
前記決定手段は、前記第３の検出手段が検出した情報と、前記物体の影が生じる位置とに対応する、前記投影面上で前記オブジェクトを投影させる位置を決定することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
コンピュータに読み込み込ませ実行させることで、前記コンピュータを請求項１乃至８のいずれか１項に記載の情報処理装置として機能させることを特徴とするプログラム。
【請求項１０】
投影部によって投影面に投影されるオブジェクトのうち、ユーザの操作によって特定されるオブジェクトに対応する処理を実行する情報処理装置の制御方法であって、
検出手段により、前記投影部と前記投影面との間に存在する物体の位置を検出する工程と、
取得手段により、前記投影部によって投影光が照射される方向を示す情報を取得する工程と、
決定手段により、前記検出された物体の位置と、前記取得された方向の情報とに対応する、前記物体の影が生じる位置に基づいて、前記投影面でオブジェクトが投影される投影位置を決定する決定工程と、
制御手段により、前記投影部を制御して、前記決定された位置に前記オブジェクトを投影させる制御工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項１１】
請求項９に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【請求項１２】
投影部によって投影面に投影されるオブジェクトのうち、ユーザの操作によって特定されるオブジェクトに対応する処理を実行する情報処理装置であって、
前記投影面に投影されるオブジェクトの、前記投影部と前記投影面との間に存在する物体の影が生じる位置に対応する投影位置を決定する決定手段と、
前記投影部を制御して、前記決定された位置に前記オブジェクトを投影させる制御手段と、を備え、
前記制御手段は、前記物体の影が、前記投影部によって投影面に投影されているオブジェクトに重畳したことに応じて、前記決定手段によって決定された投影位置に前記オブジェクトを移動させるよう、前記投影部を制御し、
前記決定手段は、前記投影部によって投影面に投影されているオブジェクトのうち、少なくとも１つのオブジェクトを特定するためのユーザの操作に応じて、新たにオブジェクトが投影される場合に、前記新たに投影されるオブジェクトの投影位置を、前記物体の影が重畳しない位置に決定し、前記制御手段は、前記投影部を制御して、前記決定された投影位置に前記新たに投影されるオブジェクトを投影させることを特徴とすることを特徴とする情報処理装置。
【請求項１３】
投影部によって投影面に投影されるオブジェクトのうち、ユーザの操作によって特定されるオブジェクトに対応する処理を実行する情報処理装置の制御方法であって、
決定手段により、前記投影面に投影されるオブジェクトの、前記投影部と前記投影面との間に存在する物体の影が生じる位置に対応する投影位置を決定する投影位置を決定する決定工程と、
制御手段により、前記投影部を制御して、前記決定された位置に前記オブジェクトを投影させる制御工程と、を備え、
前記制御工程では、前記物体の影が、前記投影部によって投影面に投影されているオブジェクトに重畳したことに応じて、前記決定工程において決定された投影位置に前記オブジェクトを移動させるよう、前記投影部を制御し、
前記決定工程では、前記投影部によって投影面に投影されているオブジェクトのうち、少なくとも１つのオブジェクトを特定するためのユーザの操作に応じて、新たにオブジェクトが投影される場合に、前記新たに投影されるオブジェクトの投影位置を、前記物体の影が重畳しない位置に決定し、前記制御工程では、前記投影部を制御して、前記決定された投影位置に前記新たに投影されるオブジェクトを投影させることを特徴とすることを特徴とする情報処理装置の制御方法。
【請求項１４】
コンピュータに読み込み込ませ実行させることで、前記コンピュータを請求項１２に記載の情報処理装置として機能させることを特徴とするプログラム。
【請求項１５】
請求項１４に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、投影された操作メニューに対する操作性を向上する画像処理技術に関する。
【背景技術】
【０００２】
従来、プロジェクタなどの画像投影装置とカメラなどの撮像装置とを利用して、インタラクティブなユーザインタフェースを提供するシステムが提案されている。例えば、特許文献１の画像投影装置は、投影面に投影される投影画像のサイズと、投影面上で検出されたユーザの手の大きさとに基づき、ユーザが手で操作しやすい位置に、適正な大きさのユーザインタフェース画像を投影する。ユーザは、投影された画像が構成する操作メニューをタッチすることによって操作を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２９５０３１
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１のように、投影面に投影された操作メニューに対し、ユーザが手によって操作を行おうとすると、手の影が生じることによって操作メニューで視認性が損なわれる場合がある。特に、投影面をタッチすることで、操作メニューの特定の項目を指定する操作を行いたい場合には、投影面に近づく手の影が操作メニューの項目の識別性を低下させやすく、誤った操作の要因となることが問題である。
本発明は、上記の課題を解決するためのものであり、投影面に投影された複数のオブジェクトからタッチによって少なくとも１つのオブジェクトを特定する場合の操作性を向上させることを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を鑑みてなされたものであり、投影部によって投影面に投影されるオブジェクトのうち、ユーザの操作によって特定されるオブジェクトに対応する処理を実行する情報処理装置であって、前記投影部と前記投影面との間に存在する物体の位置を検出する第１の検出手段と、前記投影部によって投影光が照射される方向を示す情報を取得する取得手段と、前記第１の検出手段が検出した前記物体の位置と、前記取得手段が取得した方向の情報とに対応する、前記物体の影が生じる位置に基づいて、前記投影面でオブジェクトが投影される投影位置を決定する決定手段と、前記投影部を制御して、前記決定された位置に前記オブジェクトを投影させる制御手段と、を備えることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、投影面に投影される複数のオブジェクトを、投影光によって生じる物体の影に基づいた配置とすることで、タッチによって少なくとも１つのオブジェクトを特定する場合の操作性を向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置及び画像処理システムの外観図
【図２】情報処理装置のハード及び機能構成のブロック図
【図３】ＵＩを投影する処理を示すフローチャート
【図４】オブジェクトの投影位置を制御する処理を示すフローチャート
【図５】投影光が投影される方向とオブジェクトを投影するレイアウトの対応関係を示す図
【図６】投影されたＵＩに対するタッチ操作を示す概要図
【図７】投影されたＵＩに対するタッチ操作を示す概要図
【図８】ＵＩを投影する処理の一例を示すフローチャート
【図９】ＵＩを拡張して投影する処理の一例を示すフローチャート
【図１０】光源の位置とオブジェクトを投影するレイアウトの対応関係を示す図
【図１１】投影されたＵＩに対するタッチ操作の一例
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための形態について、図面を参照しながら説明する。
【０００９】
（第１の実施形態）
第１の実施形態では、ユーザがタッチすることで操作可能なユーザインタフェース（以下、ＵＩ）として、複数のメニューを表す複数のオブジェクトから構成される操作メニューを投影する。そして、ユーザが操作メニューをタッチするために、操作メニューを構成するオブジェクトを投影する投影光を手で遮断した場合には、決定された位置にオブジェクトを移動させる。また、ユーザによるオブジェクトへのタッチ操作に応じて、新たに拡張メニューを投影する。この際、投影光が照射される方向に基づいて、ユーザが、各オブジェクトが示す操作メニューの内容を、ユーザがタッチ操作に用いる物体の影に阻害さることなく識別しやすい位置を決定する。
【００１０】
図１は、本発明による情報処理装置及び画像処理システムの一例を示す外観図である。図１（ａ）の、情報処理装置１００は、プロジェクタ１０１及びカメラ１０２を内蔵している。この例では、一般的なテーブル１０４の机上を投影面とし、投影画像１０３を投影している。本実施形態においては、投影画像１０３内に含まれる各種オブジェクトを、ユーザがタッチしたことを検知する。距離センサ１０５は、例えば赤外線センサで、ユーザが操作のために使用する物体（以下、代表的な例としてユーザの手であるものとする。）と、投影面１０４との距離を検知し、投影画像１０３に対してタッチが行われたかを判定することができる。ただし、カメラ１０２が撮影した画像を解析することにより、ユーザの手と投影面１０４との距離を判定し、タッチを判定することもできる。その場合、距離センサ１０５の構成は省略可能である。一方、図１（ｂ）は、独立した情報処理装置１００、プロジェクタ１０１、カメラ１０２からなる情報処理システムである。距離センサ１０５は、ここではカメラ１０２と兼用であるとし、撮影した画像から投影画像１０３に対するタッチを検知するもとしているが、赤外線カメラなどの各種センサによって構成されてもよい。また、このようなテーブルトップ型の情報処理システムでは、テーブル１０４にタッチセンサを設けることによって、ユーザのタッチを検知することもできる。図１（ｂ）の例においても、テーブル１０４の机上を投影面として、投影画像１０３がプロジェクタ１０１によって投影されている。以下、本実施形態では図１（ａ）のように、プロジェクタ１０１とカメラ１０２が内蔵された情報処理装置１００を例に説明する。この際、ユーザは情報処理装置１００を机上の、左手側に設置し、右手側に向かって投影光を照射するものとする。本実施形態において、投影光とは、プロジェクタ１０１が、投影面１０４に対して投影画像１０３を投影するために照射する光であり、オブジェクトを投影する投影光とは、投影画像１０３のうち、ＵＩを構成するオブジェクトの部分を投影する光のことである。
【００１１】
図２（ａ）は、情報処理装置１００のハードウェア構成を示すブロック図である。同図において、ＣＰＵ２００は、システムバス２０５を介して接続する各デバイスを総括的に制御する。ＣＰＵ２００は、読み出し専用メモリ（ＲＯＭ）２０２もしくはハードディスク（ＨＤ）２０３に記憶された処理ステップやプログラムを読み出して実行する。ネットワークデバイス２０４は、本実施例では無線ＬＡＮデバイスで、一般的な無線ＬＡＮの規格により通信を行う。情報処理装置１００は、無線ＬＡＮを介して他の通信機器と画像データや情報データをやり取りすることができる。この際、ＣＰＵ２００がコントローラとして機能する。ランダムアクセスメモリ（ＲＡＭ）２０１は高速にアクセス可能なＣＰＵ２００の主メモリ、ワークエリア等の一時記憶領域として用いられる。プロジェクタ１０１は、デジタルに制御可能な一般的な投影液晶プロジェクタで、液晶表示素子、液晶制御回路、発光回路、表示メモリから構成され、ＣＰＵ２００からの指示に従い、画像や文字を投影面に投影させる。カメラ１０２は、ＣＣＤ等の撮像センサ、レンズ、撮影画像メモリから構成され、ＣＰＵ２００からの指示に従い、プロジェクタ１０１による投影画像１０３を含む投影面１０４上の映像を撮影し、撮影画像メモリに保持する。距離センサ１０５は、本実施例では赤外線センサであって、ユーザの手と投影面１０４との距離に基づいて、ユーザの投影面に対するタッチを検知する。なお、プロジェクタ１０１及びカメラ１０２は、情報処理装置１００にインタフェースを介して接続される外部装置であってもよい。
【００１２】
図２（ｂ）は、本実施形態による情報処理装置１００の機能構成を示すブロック図である。撮像部２１０は、カメラ１０２の機能部であり、投影面１０４上の投影画像１０３を含む領域の映像を撮像し、撮影画像メモリに保持する。取得部２１１は撮像部２１０の撮影画像メモリから、撮像された映像の各フレームを表す静止画像を取得し、ＲＡＭ２０１に保持する。検出部２１２は、ＲＡＭ２０１に保持された静止画像から、ユーザの手（あるいは、タッチ操作を行うために使用される物体）が写っている領域を検出する。この際、検出部２１２は、制御部２１７が投影部２１８に出力した投影画像１０３と、取得部２１１から取得した画像との差分を抽出する。抽出された差分に対し、予め保持部２１５に保持されているテンプレート画像とのマッチング処理を行うことによって、ユーザの手が投影部２１８と投影面１０４の間に存在することを検出する。また、検出部２１２は、検出した手の形状を認識して、指の先端の位置を検出し、その位置情報をＲＡＭ２０１に保持する。なお、本実施形態では、ユーザが手の指を使って投影面に対するタッチ操作を行うものとして説明するが、例えばタッチペンなど、手以外の物体によって操作が行われる場合にも、同様に物体とその先端の位置が検出される。その場合にも、検出部２１２は予め予め登録されたテンプレート画像とのマッチングから、ユーザが投影面をタッチするために用いる物体が投影部２１８と投影面１０４の間に存在することを検出するとともに、その先端の位置を検出する。検知部２１３は、検出部２１２が検出した手によって操作メニューの投影面への投影が遮断されたことを検知する。距離検知部２１４は、ユーザの手と投影面１０４との距離を検知し、所定の閾値よりも小さい場合に、投影面１０４がタッチされたと判定する。保持部２１５は、ＵＩを構成するオブジェクトの画像データ、オブジェクトを配置する際の位置関係を示す複数種類のレイアウトのデータ、ユーザの手を検出する際にマッチングに用いるテンプレートなど情報処理装置１００が処理する各種データを保持している。また、保持部２１５には、オブジェクトの画像データとオブジェクトが示す操作メニューの内容の対応関係を示す情報が保持されている。情報処理装置１００で実行される実行可能な操作メニューが、階層構造を有する場合には、下位の階層の操作メニューを、上位階層のメニューを示すオブジェクトに対して拡張メニューとして関連付け、その関連情報を保持する。決定部２１６は、ＵＩを構成する複数のオブジェクトを投影する位置を決定する。本実施形態では、決定部２１６は、オブジェクトを配置する基準位置及び保持部２１５に予め保持されているレイアウト情報に基づき、オブジェクトを配置する位置及びレイアウトを決定する。また、検知部２１３が、検出部２１２が検出した手によって操作メニューの投影面への投影が遮断されたことを検知した場合には、オブジェクトを投影する位置を移動させるための移動後のレイアウトと、レイアウトに従ってオブジェクトを投影させる位置を決定する。制御部２１７は、決定部２１６が決定したレイアウトに従い、オブジェクトを投影させるための投影画像を生成し、投影部２１８に出力する。投影部２１８は、プロジェクタ１０１の機能部であり、制御部２１７から取得した投影画像を投影するための投影光を照射する。
【００１３】
図３は、ＵＩを構成するオブジェクトを投影する処理の一例を示すフローチャートである。本実施形態による情報処理装置１００は、ユーザによってＵＩを投影させる指示がなされたことを認識すると、投影部２１８が投影している内容に対応するＵＩを加えた投影画像１０３を生成し、投影面１０４に投影させるものとする。
【００１４】
まず、ステップＳ３００において、認識部が、ＵＩを投影させる指示がなされたか否かを判定する。本実施形態においては、撮像部が撮影している映像の複数のフレームにおいて、検出部２１２が取得したユーザの手が写っている領域の変化を認識部が認識し、手の動きが所定の動作に対応しているかによって判定を行う。ここでは、ＵＩを投影させる指示として、手を所定時間よりも長い間、投影部２１８と投影面１０４の間にかざす動作を行うものとする。ユーザの手によって、ＵＩを投影させる指示がなされた場合には、ステップＳ３０１に進む。指示がなされていない場合には、指示があるまで待機する。
【００１５】
次に、ステップＳ３０１においては、制御部２１７が、指示に応じて投影するＵＩとして、現在投影部２１８によって投影されている内容に対応した操作メニューを特定し、特定された操作メニューを構成するためのオブジェクトを保持部２１５から取得する。例えば、投影部２１８によって保持部２１５に保持された動画が再生されている場合には、巻き戻し・早送り・一時停止などの操作メニューを投影するためのオブジェクトが取得される。また、情報処理装置１００のスタート画面を投影していれば、次に実行可能なメニューのリストを投影させるため、各メニューの項目を示すオブジェクトが取得される。本実施形態では、ユーザの指示に応じてリスト形式の操作メニューを投影させ、ユーザにリストの中から所望とするメニューをタッチ操作で特定させる例を説明する。
【００１６】
次に、ステップＳ３０２において、投影制御手段が、ステップＳ３０１で取得したオブジェクトを初期状態での投影位置に投影する。本実施形態において、初期状態での投影位置は、ユーザがＵＩを投影させる指示のために投影部２１８と投影面１０４の間にかざした手の、人差し指の先端位置を基準に決定部が決定するものとする。ステップＳ３０２で実行されるオブジェクト投影処理の詳細は後述する。
【００１７】
次に、ステップＳ３０３において、ユーザの手によって、オブジェクトの投影が遮断されたかを判定する。本実施形態では、検知部２１３が、ユーザの手によってオブジェクトの投影が遮断されたことを検知したか否かによって判定を行う。投影部２１８が照射する投影光が、検出部２１２が検出しているユーザの手によって遮断されると、投影面上にはユーザの手の影が生じる。オブジェクトを投影する部分の光が遮断されると、ユーザにとっては、自分の手の影が操作メニューに重なるように見えるため、操作メニューの視認性が低下してしまう。特に、リスト形式のメニューのうち、複数のメニューが手の影によって視認できなくなった場合、各メニューの識別性が低下してユーザがリストの中から所望とするメニューを特定しようとする場合に支障をきたす。検知部２１３が、ユーザの手によってオブジェクトの投影が遮断されたことを検知する方法は、情報処理装置１００の特性に合った方法を用いればよい。例えば、検出部２１２がユーザの手が写っている領域の色が変化したことを検知し、投影したオブジェクトの少なくとも一部がユーザの手の上に投影されたことによる変化であるかを判定する。この方法は、図１（ａ）の情報処理装置１００のように、プロジェクタ１０１とカメラ１０２が比較的近い位置に設置された小型の装置において、投影光の照射方向とカメラが撮影する方向が類似する場合に、検知し易い方法である。別の方法として、検出部２１２が、取得部２１１が取得した画像に基づいて、ユーザの手に対応する手の影が写った領域をさらに検出し、手の影が、オブジェクトが投影されるべき範囲内に存在することを検知してもよい。この方法は、図１（ｂ）のように、プロジェクタ１０１とカメラ１０２を離れた位置に設置し、異なる角度から投影面に向けることができる画像処理システムなどにおいて、手と手の影を区別して検出し易いために使用し易い方法となる。オブジェクトの投影が遮断されたと判定された場合には、ステップＳ３０４に進み、遮られていないと判定された場合には、ステップＳ３０３に戻って待機する。
【００１８】
ステップＳ３０４において、オブジェクトの投影位置を移動させる処理を行う。ここでは、手の影によって操作メニューの各アイコンに対する識別性が低下しないように各アイコンを投影する位置を移動させる。ステップＳ３０４において行われる処理の詳細は後述する。
【００１９】
ステップＳ３０５において、ユーザによって、投影されているオブジェクトがタッチされたかを判定する。ここでは、距離センサがユーザの指の先端と、投影面１０４との間の距離が所定の閾値未満になったことが検知された時に、検出部２１２によって検出されている指の先端の位置が、いずれかのオブジェクトを投影している範囲内であるかを判定する。本実施形態では、閾値を０とし、指が投影面に触れたときにタッチ操作がなされたと判定する。そしてその位置情報に基づき、タッチされたオブジェクトを特定する。このとき、制御部２１７は、タッチされたオブジェクトの色を変化させるなどして、タッチ操作が認識されたことがユーザにわかるように投影画像の表示を変更する。オブジェクトがタッチされたと判定された場合には、ステップＳ３０６に進む。オブジェクトがタッチされていないと判定された場合には、ステップＳ３０５に戻ってオブジェクトがタッチされるまで待機する。
【００２０】
ステップ３０６では、決定部２１６が、特定されたオブジェクトが示す操作メニューには、対応する拡張メニューがあるかを判定する。決定部２１６は、保持部２１５に保持された関連情報を参照して、特定されたオブジェクトが示す操作メニューに下位の階層の操作である拡張メニューが関連付けられているかを判定する。そして、拡張メニューがあると判定された場合には、ステップＳ３０７に進み、拡張メニューがないと判定された場合にはステップＳ３０９に進む。
【００２１】
ステップＳ３０７において、特定されたオブジェクトの拡張メニューを投影する。ここでは、投影面をタッチしている手の影によって拡張メニューを構成する各オブジェクトの識別性が低下しない位置に各アイコンを投影する。ステップＳ３０７において実行される処理の詳細は後述する。
【００２２】
次に、ステップＳ３０８では、投影されているオブジェクトの上で、投影面に対するユーザのタッチが解除されたかを判定する。ここでは、距離センサがユーザの指の先端と、投影面１０４との間の距離が所定の閾値よりも大きくなったことが検知された時に、検出部２１２によって検出されている指の先端の位置が、いずれかのオブジェクトを投影している範囲内であるかを判定する。本実施形態では、オブジェクトが投影されている範囲内において、ユーザの指が投影面から離れた場合に、その位置に投影されているオブジェクトが示す拡張メニューが特定されたと認識する。投影されているオブジェクトの上で、ユーザの指による投影面に対するタッチが解除されたと判定された場合には、ステップＳ３０９に進む。タッチが解除されていないと判定された場合には、ステップＳ３０８でタッチが解除されるまで待機する。
【００２３】
ステップＳ３０９では、ユーザの操作によって特定された情報処理装置１００への指示を実行する。すなわち、ステップＳ３０６において、ユーザがタッチしたことによって特定されたオブジェクト、あるいはステップＳ３０８において、ユーザがタッチを解除したことによって特定されたオブジェクトが示す操作メニューの処理を実行する。特定された処理を実行すると、本実施形態によるユーザインタフェースを投影する処理は終了する。
【００２４】
以上が、本実施形態によって、ＵＩを構成するオブジェクトを投影する処理である。
【００２５】
ここで、図４（ａ）は、ステップＳ３０２で実行されるオブジェクト投影処理を示すフローチャートである。
【００２６】
まず、ステップＳ４００において、検出部２１２が、投影面を撮影した画像からユーザの手を検出する。検出部２１２は、取得部２１１が取得したフレームを表す静止画像から、ステップＳ３００においてＵＩを投影させる指示をおこなったユーザの手を追跡し、撮影された映像の最新のフレームを表す静止画像におけるユーザの手を検出する。
【００２７】
ステップＳ４０１において、検出部２１２は。ユーザの指の先端の位置（以下、位置Ｒとする）を検出する。ここでは、保持部２１５に保持されたテンプレートとのマッチングを基に、ユーザの人差し指の先端を検出する。本実施形態では、投影画像１０３の右下の隅を原点とする座標平面を設定し、検出した人差し指の先端から投影面に鉛直に下ろした点の座標を、位置Ｒを示す情報としてＲＡＭ２０１に保持する。
【００２８】
ステップＳ４０２において、決定部２１６は、位置Ｒに基づいて、操作メニューを構成するオブジェクトを投影する位置を決定する。本実施形態では、ユーザのＵＩ投影指示に従って初期位置に操作メニューを投影させる際には、オブジェクトを縦に整列させる初期レイアウトに従ってオブジェクトを配置するものとする。図５（ａ）は、３つの項目による操作メニューを構成するオブジェクト５０１〜５０３を配置するための初期レイアウトの一例を示す。決定部２１６は、位置Ｒの座標情報と、保持部２１５から取得した初期レイアウトの情報を基に、各オブジェクトを配置する位置の座標情報を決定する。本実施形態では、位置Ｒの座標が縦に整列したオブジェクトの右下の端に一致するように、投影画像内でのオブジェクトの位置を決定する。
【００２９】
ステップＳ４０３において、制御部２１７が、決定された位置にオブジェクトを投影する。その際、制御部２１７は、決定部によって決定された位置に、オブジェクトを配置した投影画像を生成し、投影部２１８に出力する。
【００３０】
このように、ユーザの指の先端を検出した位置Ｒに基づいて、オブジェクトを投影する位置を決定することで、ユーザはＵＩを操作するために手を大きく動かす必要がない。さらに、ユーザがＵＩを投影させる位置を任意に調整できるという効果がある。従って、例えば、視聴している映像の内容を阻害しないように操作を行いたい場合や、複数人で投影画像を視聴している環境で、自分の近くにＵＩを投影させたい場合などに利便性を高める効果を有する。決定部によって初期位置が決定されると、その位置情報を制御部２１７が取得し、初期位置に配置されたオブジェクトを含む投影画像を生成し、投影部２１８に出力を指示する。投影部２１８は、制御部２１７からの指示を受け、投影画像を投影する投影光を照射する。
【００３１】
次に、図４（ｂ）は、ステップＳ３０４で実行されるオブジェクトを投影する位置を移動させる処理を示すフローチャートである。
【００３２】
ステップＳ４１０において、決定部２１６が、投影光が照射される方向の情報を取得する。本実施形態において、投影光は、投影部２１２を機能部とするプロジェクタ１０１の発光回路を光源として照射されている。また、投影光が照射される方向の情報とは、投影面に投影されているオブジェクトに対して、投影光がオブジェクトを囲む３６０度の全方向のうちどの方向から照射されているか、すなわち、光源が存在する方向を示す情報である。ここで、図５（ｂ）は、投影光が照射される方向を角度の情報として得る方法を表現した図である。まず、単位円５０４の中心が、投影されているオブジェクトの中心にあると仮定する。そして、投影光が照射される方向を差すベクトル５０５が、横軸５０６となす角度５０７をθとして、その角度の大きさを、投影光が照射されている方向の情報として特定する。本実施形態では、情報処理装置１００は、図１（ａ）のように、カメラ１０２とプロジェクタ１０１が一体となった装置である。また、本実施形態の情報処理装置１００では、１人のユーザが、ユーザ自身の左手側に情報処理装置１００を設置して、右手側に投影光を照射させて使用するものとしている。情報処理装置１００は、初期設定情報として、投影画像１０３に対するユーザが存在する方向を示す情報を保持しており、制御部２１７は、初期設定情報に従ってユーザの存在する方向に上下方向を合わせた投影画像１０３を生成し、投影部２１８に出力している。従って、決定部２１６は、保持部２１５に保持された情報処理装置１００の初期設定情報から、投影光が照射される方向は、投影されているオブジェクトの上下方向に対して左側であることを示す情報を取得することができる。この場合、角度５０７（θ）は、９０≦θ＜２７０であるとして情報が取得される。
【００３３】
次に、ステップＳ４１１では、決定部２１６が、ステップＳ４１０で取得した投影の方向に基づいて、移動後のオブジェクトのレイアウトを決定する。図５（ｃ）は、本実施形態の保持部２１５に保持されている、投影部２１８からの投影光が照射される方向（項目５０８）と、移動後のレイアウト（項目５０９）の対応関係の一例を示している。これらのレイアウトは、投影光が照射される方向を考慮し、複数のオブジェクトがユーザの手の影と同時に重なって、オブジェクトの識別性を低下させる状態が発生し難いように設定されたものである。本実施形態では、９０≦θ＜２７０であったので、複数のオブジェクトを右上から左下の方向に並べたレイアウトが、移動後のレイアウトとして決定される。これは、光源が左側に存在する場合には、ユーザの手の影は、手より右側に生じるため、メニューを左方向に広げることによって、ユーザからの視認性を低下させないようにしたものである。
【００３４】
次に、ステップＳ４１２では、決定部２１６が、決定されたレイアウトに従って移動される各オブジェクトの投影位置を決定する。本実施形態では、初期レイアウトで縦に整列していた複数のオブジェクトのうち、中心部にあるものほど移動する距離が少なくなるように移動後の投影位置を決定する。例えば、図５（ａ）のような３つの操作メニューの項目を表すオブジェクトを、真ん中のオブジェクトは移動させず、上下のオブジェクトの投影位置を左右に平行移動させるように投影位置の座標情報を決定する。
【００３５】
ステップＳ４１３では、各オブジェクトを決定された投影位置まで移動して投影する。このとき、制御部２１７は、本実施形態では、初期レイアウトによる投影位置から、移動後の投影位置までオブジェクトが移動する軌跡を、アニメーションを用いて表現する投影画像１０３を生成し、投影部２１８に出力する。アニメーションを用いて移動を表現することで、ユーザは、操作メニューが投影される位置が変わっても元の位置と移動後の位置を関連付けて把握することが容易になるため、移動後でも所望とするメニューを見つけやすい。
【００３６】
以上のように、本実施形態では、投影光が照射される方向を考慮し、ユーザが操作に用いる物体によって、複数のオブジェクトの投影が同時に遮断されない位置を、オブジェクトを投影する位置として決定する。従って、ユーザの手の影によって複数のオブジェクトの識別性が低下することを防ぐことができる。
【００３７】
ここで、投影光を照射する光源（投影部２１８）が存在する方向を取得するための異なる処理の一例を説明する。本実施形態では、図１（ａ）のように、カメラ１０２とプロジェクタ１０１が一体となった情報処理装置１００を用いるため、ステップＳ４１０では、初期設定情報を基に光源の存在する方向を取得した。一方、例えば図１（ｂ）のように、プロジェクタ１０１とカメラ１０２、情報処理装置１００を別々に設置可能な情報処理システムの場合には、投影面を撮影した画像を基に、投影光が照射される方向の情報を取得する。図４（ｃ）は、画像から光源の方向を取得する処理の一例を示すフローチャートである。ステップＳ４２０において、検出部２１２が、投影面を撮影した画像から、ユーザの手の影を検出する。この際、検出部２１２は、ステップＳ４００で検出し、追跡しているユーザの手の形状と、予め登録された影の色情報を基に、手の影が写っている領域を検出する。次に、検出部２１２は、ステップＳ４１２において、指の先端の影の位置（以下、位置Ｓとする）を特定する。位置Ｓは、位置Ｒに対応する影の位置である。検出部２１２は、投影画像１０３の右下を原点とした座標平面での位置Ｓの座標情報が取得する。次に、ステップＳ４２２において、位置Ｓから位置Ｒへのベクトル方向を取得する。ここで取得される方向は、図５（ｂ）の単位円におけるベクトル５０５が示す角度５０７の大きさの情報に相当する。次に、ステップＳ４２３において、取得されたベクトル方向を、投影光が照射される方向の情報として、保持する。以上が、画像から光源の方向を取得する処理の一例である。このように、手と手の影の位置関係に基づいて、光源の存在する方向を推定することで、プロジェクタ１０１の位置情報を情報処理装置１００が予め保持していない場合にも、手の影に影響されずにオブジェクトを投影させる位置を決定し易くなる。
【００３８】
図４（ｄ）は、ステップＳ３０７において実行される、タッチされたオブジェクトに対応した拡張メニューを投影する処理を示すフローチャートである。
【００３９】
ステップＳ４３０において、制御部２１７が、タッチされているオブジェクトに対応した拡張メニューを示すオブジェクトを取得する。
【００４０】
次に、ステップＳ４３１において、決定部２１６が、ステップＳ４１０で取得した光源の存在する方向の情報に基づいて、拡張メニューを投影するレイアウトを決定する。図５（ｃ）は、投影光が照射される方向（項目５０８）と、拡張メニューのレイアウト（項目５１０）の対応関係の一例を示している。図５（ｃ）において、拡張メニューのレイアウト（項目５１０）は、タッチされたオブジェクト（オブジェクト０）に対して、それぞれ拡張メニューを示す３つのオブジェクト（０−１、０−２、０−３）が投影される位置を表している。本実施形態では、９０≦θ＜２７０であったので、複数の拡張メニューを示すオブジェクトを右上から左下の方向に並べたレイアウトが、拡張メニューのレイアウトとして決定される。これは、光源が左側に存在する場合には、ユーザの手の影は、手より右側に生じるため、メニューを左方向に広げることによって、ユーザからの視認性を低下させないようにしたものである。
【００４１】
ステップ４３２において、決定されたレイアウトに従って、拡張メニューを投影する位置を決定する。このとき、決定部２１６は、ユーザによってタッチされているオブジェクトが投影される位置は動かないように、拡張メニューを示す複数のオブジェクトを配置する座標を決定する。
【００４２】
ステップＳ４３３において、決定された位置に拡張メニューが投影する。このとき、制御部２１７が、拡張メニューのオブジェクトが、タッチされているオブジェクトに重なっていた状態から、決定された位置まで移動するような軌跡を、アニメーションを用いて表現する投影画像１０３を生成し、投影部２１８に出力する。
【００４３】
以上が、ステップ３０７において実行される、拡張メニューを投影する処理である。このように、本実施形態では、ユーザがタッチしたオブジェクトに対応する操作メニューに、さらに下位階層の拡張メニューが存在する場合にも、投影光が照射される方向を考慮して拡張メニューの投影位置を決定する。これにより、ユーザの操作によって新たに投影されるオブジェクトについても、ユーザによる識別性を低下させないようにすることができる。
【００４４】
ここで、図６は、本実施形態によって投影されたＵＩに対するタッチ操作の一例を示す概要図である。この例において、オブジェクトを投影する投影光が照射する光源６０６は、ユーザの左側（９０≦θ＜２７０）の方向に存在するものとする。図６（ａ）は、ユーザが投影面上に差し出した手６０５とその先端に位置Ｒ６０４を、検出部２１２が検出し、初期レイアウトに従って３つのオブジェクト６０１〜６０３からなる操作メニューが投影された様子を示す。図６（ｂ）は、ユーザがタッチ操作を行うために手６０５を動かしたことによって、操作メニューを構成するオブジェクトの投影を遮断した状態を示す。ユーザの手の影６０７に、複数のオブジェクトの一部が重なってしまうため、ユーザにとっては各メニュー項目の識別性が低下した状態にある。本実施形態では、検知部２１３が、ユーザの手６０５に、オブジェクトの一部が投影されていることを検知することに応じて、オブジェクトの投影位置を移動させる処理が実行される。図６（ｃ）は、光源の存在する方向が、ユーザの左側であることに基づいて、オブジェクトが右上から左下の方向に並ぶように、オブジェクトの投影位置が移動された状態を示す。移動された投影位置では、ユーザの手の影、特にオブジェクトをタッチしようとする指の影が、同時に複数のオブジェクトに重なってオブジェクトの識別性を低下させることが少ないようにオブジェクトを配置している。次に、図６（ｄ）は、ユーザがメニュー２という項目を示すオブジェクト６０２をタッチした状態を示す。制御部２１７によって、タッチされたオブジェクトの色が変えられている。位置６０８は、ユーザがタッチしているオブジェクトの基準となる位置であり、次に拡張メニューを投影させる場合には、ユーザがタッチしているオブジェクトが投影される位置を変更させないため、位置６０８が基準となって投影位置が決定される。図６（ｅ）は、位置６０８を基準として、メニュー２に対応した拡張メニュー（サブメニュー１〜サブメニュー３）を示す３つのオブジェクト６０９〜６１１が投影された様子を示す。ここでも、光源６０６がユーザの左側に存在するため、オブジェクトが右上から左下の方向に並べられている。拡張メニューの投影位置では、ユーザの手の影、特にオブジェクトをタッチしようとする指の影が、同時に複数のオブジェクトに重なることが少ないようにオブジェクトを配置しているため、ユーザは各メニュー項目を容易に識別することができる。
【００４５】
図７は、本実施形態によって投影されたＵＩに対するタッチ操作の別な例を示す概要図である。この例において、オブジェクトを投影する投影光が照射する光源７０６は、ユーザの右側（０≦θ＜９０、２７０＜θ＜３６０）の方向に存在するものとする。図７（ａ）は、ユーザが投影面上に差し出した手７０５とその先端に位置Ｒ７０４を、検出部２１２が検出し、初期レイアウトに従って３つのオブジェクト７０１〜７０３からなる操作メニューが投影された様子を示す。図７（ｂ）は、ユーザがタッチ操作を行うために手７０５を動かしたことによって、操作メニューを構成するオブジェクトの投影を遮断した状態を示す。ユーザの手の影７０７に、複数のオブジェクトの一部が重なってしまうため、ユーザにとっては各メニュー項目の識別性が低下した状態にある。本実施形態では、検知部２１３が、ユーザの手７０５に、オブジェクトの一部が投影されていることを検知することに応じて、オブジェクトの投影位置を移動させる処理が実行される。図７（ｃ）は、光源の存在する方向が、ユーザの右側であることに基づいて、オブジェクトが左上から右下の方向に並ぶように、オブジェクトの投影位置が移動された状態を示す。移動された投影位置では、ユーザの手の影、特にオブジェクトをタッチしようとする指の影が、同時に複数のオブジェクトに重なることが少ないようにオブジェクトを配置しているため、ユーザは各メニュー項目を識別することができる。次に、図７（ｄ）は、ユーザがメニュー１という項目を示すオブジェクト７０１をタッチした状態を示す。制御部２１７によって、タッチされたオブジェクトの色が変えられている。位置７０８は、ユーザがタッチしているオブジェクトの基準となる位置であり、次に拡張メニューを投影させる場合には、ユーザがタッチしているオブジェクトが投影される位置を変更させないため、位置７０８が基準となって投影位置が決定される。図７（ｅ）は、位置７０８を基準として、メニュー１に対応した拡張メニュー（サブメニュー１〜サブメニュー３）を示す３つのオブジェクト７０９〜７１１が投影された様子を示す。ここでも、光源７０６がユーザの左側に存在するため、オブジェクトが左上から右下の方向に並べられている。拡張メニューの投影位置では、ユーザの手の影、特にオブジェクトをタッチしようとする指の影が、同時に複数のオブジェクトに重なることが少ないようにオブジェクトを配置しているため、ユーザは各メニュー項目を容易に識別することができる。
【００４６】
以上説明したように、本実施形態では、ユーザが、投影面をタッチするために用いる物体によって、オブジェクトの投影を遮断した場合にオブジェクトの投影位置を変更させる。その際、投影光を照射する光源の位置を考慮し、物体の影によって複数のオブジェクトの識別性が低下しない位置にオブジェクトの投影位置を変更させる。従って、ユーザが、投影された複数のオブジェクトから、タッチ操作によって少なくとも１つのオブジェクトを特定する操作を行う際の操作性を向上させることができる。
【００４７】
なお、本実施形態では、ステップＳ３０８において、オブジェクトが投影されている範囲内において、ユーザの指が投影面から離れた場合に、その位置に投影されているオブジェクトが示す拡張メニューが特定されたと認識した。このようにユーザがタッチを解除する位置に意味を持たせることで、ユーザが直感的に情報処理装置１００に対して複数の意思を伝えることができる。例えば、拡張メニューを示すオブジェクトではなく、ステップＳ３０５でタッチしたオブジェクトが投影されている位置でタッチを解除した場合には、オブジェクトの特定をキャンセルしたものとする。タッチされたオブジェクト上で、タッチが解除された場合、処理はステップＳ３０４に戻り、上位階層の操作メニューを投影するものを再度投影するものとする。また、タッチした指を投影面から離さずに移動させた後、いずれのオブジェクトも投影されていいない位置でタッチを解除した場合には、ＵＩを投影させる指示そのものをキャンセルしたものとして、処理を中断し、終了するようにすることができる。ただし、ユーザがオブジェクトを特定する際には、拡張メニューを示すオブジェクトであるか否かに関わらず、常にオブジェクトをタッチした後に指を離すタップ操作を用いるように設定することもできる。タップ操作によってオブジェクトを特定するようにすることで、ユーザは手を投影面から離すことができるので、投影画像１０３の内容の視認性を下げてしまう影響を最小限に抑えることができる。
【００４８】
（第２の実施形態）
上述した第１の実施形態では、ユーザが操作メニューをタッチするために、ＵＩを構成するオブジェクトを投影する投影光を、操作用の物体（例えば、ユーザの手）で遮断した場合に、それを検知してオブジェクトが投影される位置を変更した。この際、第１の実施例では、投影光が照射される方向に基づいて、ユーザが、各オブジェクトが示す操作メニューの内容を、物体の影に阻害さることなく識別しやすい位置にオブジェクトを配置していた。第２の実施形態では、ユーザが手によって投影されたオブジェクトをタッチする操作を行う場合に、更にユーザが手を出した方向、及び右手あるいは左手のいずれを用いているかに基づいて、オブジェクトを投影させる方向及びレイアウトを決定する例を示す。
【００４９】
第２の実施形態における、ハードウェアの構成図は実施形態１と同様、図２（ａ）に示される。また、本実施形態における機能の構成図も、第１の実施形態同様に図２（ｂ）で表される。ただし、第２の実施形態の検出部２１２は、投影面を撮影した画像からユーザの手及びその先端の位置Ｒを検出する際に、ユーザが手を出した方向、及び操作に用いられる手が右手か左手かを検出し、それらを示す情報をＲＡＭ２０１に保持して管理する。また、保持部２１５は、ユーザの手を検出する際にマッチングに使用されるテンプレートとして、右手を検出するためのテンプレートと左手を検出するためのテンプレートを区別して保持している。また、各オブジェクトに対応する拡張メニューを示すオブジェクトを配置するためのレイアウトも、右手用のものと左手用のものを保持する。
【００５０】
図８は、第２の実施形態によってＵＩを構成するオブジェクトを投影する処理の流れを示すフローチャートである。なお、以降において第１の実施形態のフローチャートに準じる処理ステップについては、同番号を付し、処理内容の詳細な説明を省略する。
【００５１】
第２の実施形態では、ステップＳ３０２において、投影するオブジェクトを取得すると、ステップＳ８００に進む。
【００５２】
ステップＳ８００においては、ユーザが手を出した方向に向けて、オブジェクトを投影する。ここで図９（ａ）は、本実施形態において実行されるオブジェクト投影処理の流れを示すフローチャートである。本実施形態では、ステップＳ４００において、投影面を撮影した画像からユーザの手を検出した後、ステップＳ９００において、検出部２１２が、検出された手は右手であるか左手であるかを特定する。検出部２１２は、マッチングされたテンプレートが、右手用のテンプレートか左手用のテンプレートであったかによって、操作に用いられている手が右手か左手かを特定する。ステップＳ９０１では、検出されたユーザの手とテンプレートのマッチングにより、ユーザの人差し指の先端の位置Ｒを特定するとともに、ユーザが手を差し出している方向を特定する。検出部２１２は、第１の実施形態と同様、位置Ｒの座標を取得するとともに、検出されたユーザの手について、指の先端が向く方向とは逆の、手首側の方向を、ユーザの手が差し出された方向として特定する。次に、ステップＳ９０２において、位置Ｒと手が出された方向に基づいて、オブジェクトの投影方向及び位置を決定する。本実施形態では、ユーザの手が差し出された方向に、ユーザが存在すると考え、オブジェクトを投影する際に、オブジェクトの下方向を、ユーザが存在する方向に合わせて投影する。従って、決定部２１６は、ステップＳ９０１で特定した方向に基づいて、オブジェクトの投影方向を決定するとともに、位置Ｒが初期レイアウトに従って配置される複数のオブジェクトの下端中央部に相当するように、オブジェクトを投影する位置を決定する。そして、ステップＳ９０３において、決定された方向及び位置に、オブジェクトを投影する。ここでは、制御部２１７が、決定された方向に及び位置にオブジェクトを配置した投影画像を生成し、投影部２１８に出力する。このようにオブジェクトの投影方向及び位置を決めることで、ユーザが任意の方向から投影面に対して操作を行う場合にも、オブジェクトに含まれる文字を読んだり、画像を正しい方向から見たりすることができる。なお、ここで投影されたオブジェクトの投影位置を移動させる場合、及びここで投影されたオブジェクトに対応する拡張メニューを投影する場合にも、ステップＳ９０２で決定された方向に向けてオブジェクトを投影する。
【００５３】
また、第２の実施形態では、ステップＳ３０４において、ユーザの手によってオブジェクトの投影が遮断されたと判定された場合には、ステップＳ８０１に進む。ここで図９（ｂ）は、本実施形態において実行されるオブジェクト投影位置移動処理の流れを示すフローチャートである。本実施形態では、ステップＳ４１１において、投影光が照射される方向に基づいて、移動後のレイアウトを決定した後は、ステップＳ９０４に進む。ステップＳ９０４では、ステップＳ９００において特定された、操作に用いられる手が右手か左手かに基づいて、決定されたレイアウトに従って移動されるオブジェクトの投影位置を決定する。本実施形態では、ユーザが右手で操作を行っている場合には、初期レイアウトに従って投影されている複数のオブジェクトを、左方向に動かすことによって、決定されたレイアウトに従った配置に移動させる。これは、ユーザが右手で操作を行う場合には、ユーザの手よりも右側に投影された内容はユーザにとって視認性が低下すると考えられる為、ユーザの手よりも左側にオブジェクトの投影するためである。例えば投影光が照射される方向を示す角度θが、９０≦θ＜２７０の範囲内であった場合、第１の実施形態と同様、図５（ｃ）の対応関係に基づいて、移動後のレイアウトは右上から左下の方向にオブジェクトを並べることになる。その際、第２の実施形態では、縦に整列した複数のオブジェクトのうち一番上のオブジェクトの位置を動かさず、その他のオブジェクトを左側に移動させるように移動後の投影位置の座標を決定する。そして、ステップＳ４１３において、各オブジェクトを決定された投影位置まで移動するように投影する。本実施形態においても、制御部２１７が、移動の軌跡をアニメーションで表現する投影画像を生成して、投影部２１８に出力することによって、ユーザは各オブジェクトがどのように移動したのかを容易に把握することができる。
【００５４】
さらに、第２の実施形態では、ステップＳ３０７において、ユーザがタッチしたオブジェクトに対応する拡張メニューがあった場合には、ステップＳ８０２に進む。ここで図９（ｃ）は、本実施形態において実行される拡張オブジェクト投影処理の流れを示すフローチャートである。本実施形態では、拡張メニュー用のオブジェクトを取得したら、ステップＳ９０５において、投影光が照射される方向と、操作に用いられる手が右手か左手かに基づいて、拡張メニューを投影するレイアウトを決定する。ここで、図１０は、第２の実施形態における、投影光が照射される方向と、操作される手が右手の場合と左手の場合に、それぞれ拡張メニューを投影するレイアウトの対応関係を示している。図１０においても、拡張メニューのレイアウトは、タッチされたオブジェクト（オブジェクト０）に対して、それぞれ拡張メニューを示す３つのオブジェクト（０−１、０−２、０−３）が投影される位置を表す。本実施形態においても、タッチされているオブジェクトの投影位置は動かさず、拡張メニューが投影される位置を決定する際の基準とする。そして、ユーザが右手で操作を行っている場合には、必ず手よりも左側に拡張メニューを投影させ、ユーザが左手で操作を行っている場合には、必ず手よりも右側に拡張メニューを投影させるように、レイアウトが設定されている。従って、ステップＳ４２２では、タッチされているオブジェクトの位置を基準に、決定されたレイアウトに従って拡張メニューを投影する位置を決定し、ステップＳ４２３において、決定された位置に拡張メニューを投影する。
【００５５】
図８のフローチャートにおけるその他の処理ステップは、第１の実施形態の図３のフローチャーと同様に実行される。
【００５６】
ここで、図１１（ａ）は、第１の実施形態における図６（ｅ）に対応するもので、第２の実施形態において光源６０６の位置がユーザの左側である例を示した図である。図１１（ａ）では、ユーザが左手６０５で操作を行っていた場合に、位置６０８を基準として、メニュー２に対応した拡張メニュー（サブメニュー１〜サブメニュー３）を示す３つのオブジェクト６０９〜６１１が投影された様子を示す。図６（ａ）では、位置６０８を基準に、右上から左下に向かう方向に並べられていたオブジェクトが、左手で操作するユーザにとって見えやすいように、操作に用いている左手よりも右側方向に投影されている。また、図１１（ｂ）は、第１の実施形態において光源７０６の位置がユーザの右側であるときの例を示した図７（ｅ）に対応する図である。この例では、ユーザが右手７０５で操作を行っているため、位置７０８を基準として右手７０５よりも左側に、メニュー２に対応した拡張メニューを示す３つのオブジェクト７０９〜７１１が投影されている。
【００５７】
以上説明したように、第２の実施形態では、ユーザが手を出した方向、及びユーザが操作に用いる手が右手であるか左手であるかに基づいて、オブジェクトを投影する方向及び位置を決定する。従って、ユーザが任意の位置から投影面に対してタッチ操作を行おうとする場合にも、ユーザが文字や画像を正しい方向から視認することができるため、複数のオブジェクトの中から少なくとも１つのオブジェクトを特定する操作を行う際の操作性を向上できる。また、例えば複数のユーザが異なる方向から投影面に対して操作を行おうとする場合にも、それぞれのユーザが手を出した方向に向けてオブジェクトを投影することによって、ユーザに適したユーザインタフェースを提供することができる。また、本実施形態では、ユーザの手がオブジェクトの投影を遮断した場合に、投影光が照射される方向と、ユーザが操作に用いる手が右手か左手かに基づいて、オブジェクトを投影する位置を移動させる。一般的に、右手で操作を行おうとする場合には、ユーザは右手の位置よりも左側から投影面を視認し、一方左手で操作を行おうとする場合には、ユーザは左手よりも右側から投影面を視認する場合が多い。従って、本実施形態のように、投影光が照射される方向と共にユーザが操作に用いる手が右手か左手かに基づいて、オブジェクトを投影する位置を決定することで、ユーザはより各オブジェクトを視認し易くなる。そして、ユーザが複数のオブジェクトのうち少なくとも１つのオブジェクトを特定する際の操作性が向上する。
【００５８】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0006000553.tif 000002
【図２】
0006000553.tif 000003
【図３】
0006000553.tif 000004
【図４】
0006000553.tif 000005
【図５】
0006000553.tif 000006
【図６】
0006000553.tif 000007
【図７】
0006000553.tif 000008
【図８】
0006000553.tif 000009
【図９】
0006000553.tif 000010
【図１０】
0006000553.tif 000011
【図１１】
0006000553.tif 000012