(57)【特許請求の範囲】
【請求項１】
所定の操作面を含む空間内に存在する操作体に関する三次元の位置情報を取得する操作体取得手段と、
前記空間を撮像した二次元画像を取得する画像取得手段と、
前記操作体取得手段によって取得された前記三次元の位置情報に基づいて、前記操作体の端部に相当する第１の点を検出する第１検出手段と、
前記第１の点と、前記二次元画像に撮像された前記操作体の形状に基づいて、前記操作体の前記端部に相当する第２の点を検出する第２検出手段と、
前記第１検出手段が検出した前記第１の点の位置を示す三次元位置情報に基づいて、
前記第１の点の位置が前記所定の操作面に所定の距離より近接しているとみなされる場合、前記第１検出手段が検出した前記第１の点の前記操作面に平行な二次元の位置情報と、前記第２検出手段が検出した前記第２の点の前記操作面に平行な二次元の位置情報のいずれを、前記操作体によって指示される前記操作面上の位置として認識するかを判定する処理を実行し、
前記第１の点の位置が前記所定の操作面に対して所定の距離より近接しているとみなされない場合、前記第１の点の位置情報に基づいて前記操作体によって指示される位置を認識する認識手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
さらに、前記二次元画像において、前記第１検出手段によって検出された前記第１の点の位置を含む注目領域を設定する設定手段と、
前記第２検出手段は、前記二次元画像のうち前記設定手段によって前記注目領域に撮像された前記操作体の形状に基づいて、前記操作体の前記端部に相当する第２の点を検出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記操作体取得手段は、各画素値に奥行き方向の距離が反映された距離画像から、前記操作体が被写体として写る領域を構成する画素群を取得する手段であって、前記距離は、前記空間に含まれる操作面に対する近接の程度に対応する距離であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記認識手段は、前記操作体の端部が前記操作面に所定の距離より近接している状態を、前記操作体の端部が前記操作面にタッチしている状態として認識することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記認識手段は、前記操作体の前記端部が前記操作面にタッチしている状態でいる間の位置に基づいて、前記情報処理装置に対して入力されるタッチ操作を認識することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記操作体とは、前記情報処理装置に操作を入力するユーザの腕であって、前記端部に対応する第１の点とは、前記ユーザの腕のうち指先に相当する点である
ことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記認識手段は、前記第１検出手段が検出した前記第１の点の三次元の位置情報と、前記第２検出手段が検出した前記第２の点の三次元の位置情報とのいずれかを、前記所定の操作体の端部に相当する操作位置の三次元の位置情報として認識する
ことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記認識手段は、前記距離画像から前記操作体取得手段によって取得される前記操作体が被写体として写る領域のうち、前記二次元画像に設定される前記第１の点の位置を含む注目領域に相当する部分の輪郭形状と、前記二次元画像のうち前記注目領域に撮像された前記操作体の輪郭形状との差異が所定の基準より大きい場合、前記第１の点の前記操作面に平行な二次元の位置情報、前記操作体によって指示される前記操作面上の位置として認識し、差異が所定の基準より小さい場合、前記第１の点の前記操作面に平行な二次元の位置情報と、前記第２の点の前記操作面に平行な二次元の位置情報とのいずれかを、前記操作体によって指示される前記操作面上の位置として認識するかを判定する処理を実行する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項９】
前記二次元画像は、赤外光を撮像した画像であって、
前記認識手段は、前記二次元画像のうち前記第１の点の位置を含む注目領域の内部でエッジを検出することによって、前記操作体の輪郭の形状を取得することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
操作体取得手段により、所定の操作面を含む空間内に存在する操作体に関する三次元の位置情報を取得する操作体取得工程と、
画像取得手段により、前記空間を撮像した二次元画像を取得する画像取得工程と、
第１検出手段により、前記操作体取得工程で取得された前記三次元の位置情報に基づいて、前記操作体の端部に相当する第１の点を検出する第１検出工程と、
第２検出手段により、前記第１の点と、前記二次元画像に撮像された前記操作体の形状に基づいて、前記操作体の前記端部に相当する第２の点を検出する第２検出工程と、
前記第１検出手段が検出した前記第１の点の位置を示す三次元位置情報に基づいて、
前記第１の点の位置が前記所定の操作面に所定の距離より近接しているとみなされる場合、認識手段により、前記第１検出工程で検出された前記第１の点の前記操作面に平行な二次元の位置情報と、前記第２検出工程で検出された前記第２の点の前記操作面に平行な二次元の位置情報のいずれを、前記操作体によって指示される前記操作面上の位置として認識するかを判定する処理を実行し、
前記第１の点の位置が前記所定の操作面に対して所定の距離より近接しているとみなされない場合、前記認識手段により、前記第１の点の位置情報に基づいて前記操作体によって指示される位置を認識する認識工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータを、
所定の操作面を含む空間内に存在する操作体に関する三次元の位置情報を取得する操作体取得手段と、
前記空間を撮像した二次元画像を取得する画像取得手段と、
前記操作体取得手段によって取得された前記三次元の位置情報に基づいて、前記操作体の端部に相当する第１の点を検出する第１検出手段と、
前記第１の点と、前記二次元画像に撮像された前記操作体の形状に基づいて、前記操作体の前記端部に相当する第２の点を検出する第２検出手段と、
前記第１検出手段が検出した前記第１の点の位置を示す三次元位置情報に基づいて、
前記第１の点の位置が前記所定の操作面に所定の距離より近接しているとみなされる場合、前記第１検出手段が検出した前記第１の点の前記操作面に平行な二次元の位置情報と、前記第２検出手段が検出した前記第２の点の前記操作面に平行な二次元の位置情報のいずれを、前記操作体によって指示される前記操作面上の位置として認識するかを判定する処理を実行し、
前記第１の点の位置が前記所定の操作面に対して所定の距離より近接しているとみなされない場合、前記第１の点の位置情報に基づいて前記操作体によって指示される位置を認識する認識手段と、
を備えることを特徴とする情報処理装置として機能させるプログラム。
【請求項１２】
請求項１１に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認識対象とタッチ対象面の近接状態に基づいてタッチ操作を認識する技術に関する。
【背景技術】
【０００２】
各種カメラやセンサを使って検出した人の手の動きや位置に応じてＵＩ（ユーザインターフェース）を操作するジェスチャ認識技術による機器操作が広まりつつある。テーブル面に画像やＵＩを映し、その画像やＵＩを手やペン等で触れて操作するテーブルトップインタフェースにおいても、タッチパネルを用いずに、指先やペン先等、所定の操作体の端部がテーブルにタッチした状態を検出する方式が使用され始めている。
【０００３】
特許文献１では、カメラにより取得する二次元データから、肌色成分を有する画素群を手が被写体として写る手領域として抽出する処理において、抽出に失敗した場合には三次元スキャナにより取得する三次元画像データを用いて手の形状を検出して補完する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２４１８３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のように、三次元画像データを、被写体の三次元位置情報を得るために利用する場合は、画像データの各画素値が奥行き方向の位置情報に対応するものとして座標への変換を行う。奥行き方向にある程度の幅を持つ被写体や、重なりのある複数の被写体を認識する場合は、奥行き方向の座標値に閾値を設けるなどして、データ画像から手前側の被写体が写る領域の輪郭を抽出することができる。ただし、奥行き方向の分解能が低い場合や、環境等の要因で画素情報から位置情報への変換に誤差が生じる場合、また、上記被写体の輪郭を正確に得ることは難しい。三次元画像データを使って、指先やペン先等、操作体の端部がテーブル面にタッチした状態とみなせるかを、テーブル面への近接の程度を検出する場合、操作体の輪郭が実際と異なると誤認識の原因になり易い。例えば、タッチ操作によって指定される位置が、実際の指先位置とずれてしまう。
【０００６】
本発明は、上記を鑑みてなされたものであり、所定の操作体に関して得られた三次元の位置情報から、操作位置として認識される端部の位置情報を得る処理の精度を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
以上の課題を解決するために、本発明の情報処理装置は、所定の操作面を含む空間内に存在する操作体に関する三次元の位置情報を取得する操作体取得手段と、前記空間を撮像した二次元画像を取得する画像取得手段と、前記操作体取得手段によって取得された前記三次元の位置情報に基づいて、前記操作体の端部に相当する第１の点を検出する第１検出手段と、前記第１の点と、前記二次元画像に撮像された前記操作体の形状に基づいて、前記操作体の前記端部に相当する第２の点を検出する第２検出手段と、前記第１検出手段が検出した前記第１の点の位置を示す三次元位置情報に基づいて、前記第１の点の位置が前記所定の操作面に所定の距離より近接しているとみなされる場合、前記第１検出手段が検出した前記第１の点の前記操作面に平行な二次元の位置情報と、前記第２検出手段が検出した前記第２の点の前記操作面に平行な二次元の位置情報のいずれを、前記操作体によって指示される前記操作面上の位置として認識するかを判定する処理を実行し、前記第１の点の位置が前記所定の操作面に対して所定の距離より近接しているとみなされない場合、前記第１の点の位置情報に基づいて前記操作体によって指示される位置を認識する認識手段と、を備える。
【発明の効果】
【０００８】
本発明によれば、所定の操作体に関して得られた三次元の位置情報から、操作位置として認識される端部の位置情報を得る処理の精度が向上する。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置１００を利用するテーブルトップインタフェースシステムの一例を表す図
【図２】情報処理装置１００のハードウェア構成、及び機能構成の一例を表す図
【図３】第１の実施形態での情報処理装置１００が実行するメイン処理の流れの一例を示すフローチャート
【図４】第１の実施形態での操作位置の決定処理の流れの一例を示すフローチャート
【図５】ユーザの手の状態の具体例とそれに対応して距離画像から検出される手領域の例を表す図
【図６】ユーザの手の状態の具体例とそれに対応して距離画像から検出される手領域の例を表す図
【図７】操作位置の決定処理の一例を示す図
【図８】操作位置の決定処理の一例を示す図
【図９】操作位置の決定処理の一例を示す図
【図１０】操作位置の決定処理の一例を示す図
【図１１】変形例２での操作位置の決定処理の流れの一例を示すフローチャート
【図１２】操作位置の決定処理の一例を示す図
【図１３】第２の実施形態での情報処理装置のメイン処理の流れの一例を示すフローチャート
【図１４】手領域の決定処理の流れの一例を示すフローチャート
【図１５】手領域の決定処理の一例を示す図
【発明を実施するための形態】
【００１０】
以下、本発明に係る実施例の情報処理を、図面を参照して詳細に説明する。なお、実施例に記載する構成は例示であり、本発明の範囲をそれらの構成に限定する趣旨のものではない。
【００１１】
＜第１の実施形態＞
まず、第１の実施形態として、テーブルトップインタフェースシステムのテーブル面に投影されたアイテムに対し操作者が行うタッチ操作を認識する処理の例を説明する。
【００１２】
図１（ａ）は、本実施形態に係る情報処理装置１００を設置したテーブルトップインタフェースシステムの外観の一例である。操作面１０１は、テーブルトップインタフェースのテーブル部分であり、操作者は、操作面１０１をタッチすることでタッチ操作を入力することが可能である。ただし、本実施形態では、操作面１０１にタッチセンサは搭載されない。そのため、情報処理装置１００は、操作面１０１とユーザが操作する指やペンなどの操作体が実際に接触したかではなく、接触したとみなせる程度に近接した状態をタッチ入力中の状態（以下、タッチ状態）検出することで、タッチ操作の認識を可能とする。
【００１３】
本実施形態では、操作面１０１の上方に、操作面を見下ろすようにして距離画像センサ１０２が設置される。距離画像とは、各画素の値に、当該距離画像を撮像する撮像手段の基準位置（例えばレンズ中心など）から、当該画素に撮像された被写体表面までの距離に対応する情報が反映された画像である。本実施形態において、距離画像センサ１０２が撮像する距離画像の画素値には、距離画像センサ１０２から、操作面１０１あるいはその上方に存在する物体表面までの距離が反映される。撮像された距離画像は、情報処理装置１００に距離画像として入力される。情報処理装置１００は、距離画像を解析することで操作者の手１０６の三次元位置を取得し、入力される操作を認識する。従って操作者は、操作面上の空間（操作面１０１と距離画像センサ１０２の間の空間）のうち、距離画像センサ１０２によって撮像可能な範囲において、手などの所定の物体を動かすことにより空間ジェスチャ操作を入力することが可能である。本実施形態では、赤外光の反射パターン（または反射時間）によって距離情報を取得する方式のセンサを利用する。ただし、例えばステレオカメラシステムや、赤外光発光素子と赤外受光素子を設置することで距離画像を得ることも可能である。また、操作面１０１を含む空間において、操作体の高さ方向を含む三次元の位置情報が得られる手段であれば、距離画像を撮像する形態に限らず、例えば静電センサや温度センサにより三次元の位置情報を得る方法でも、本実施形態を実施可能である。
【００１４】
また本実施形態では、可視光カメラ１０３が上方から操作面１０１を見下ろすようにして設置される。情報処理装置１００は、可視光カメラ１０３を制御して、操作面１０１に載置された物体を撮像してその読み取り画像を得る書画カメラとして機能することができる。情報処理装置１００は、可視光カメラ１０３によって得られる可視光画像や、距離画像センサ１０２によって得られる距離画像に基づいて、操作面１０１上の空間に存在する物体を検出し、さらに識別する。物体には、例えば、操作者の手、紙媒体や本などのドキュメントやその他の立体物を含む。ただし、図１（ａ）に例示するシステムの場合は、距離画像センサ１０２と可視光カメラ１０３の画角には、テーブル周囲に存在する操作者の頭部は含まれない。そのため得られた距離画像では、画像端部がユーザの腕（肩から先の部分）の何処か一部と交差する。
【００１５】
プロジェクタ１０４は、操作面１０１の上面に画像の投影を行う。本システムでは、操作者は投影された画像に含まれるアイテム１０５に対して、タッチや空間ジェスチャによる操作を行う。上述したように、本実施形態では、手１０６の検出および操作の認識には、距離画像センサ１０２で取得した距離画像を用いる。距離画像を用いることで、プロジェクタ１０４の投影光の影響で操作者の手の色が変化しても影響を受けにくいという利点がある。本システムの表示装置は、プロジェクタ１０４に替えて、操作面１０１を液晶ディスプレイとするなどで構成することもできる。その場合、可視光画像からの肌色領域を検出するなどして画像から人の手を検出する方式を用いても、投影光の影響は受けずに手の検出が可能である。
【００１６】
なお、操作面１０１を上方から見た画像が得られる構成であれば、必ずしも距離画像センサ１０２及び可視光カメラ１０３自体が上方に設置されている必要はなく、例えばミラーを用いて反射光を撮像するように構成しても構わない。プロジェクタ１０４も同様に、図１（ａ）の例では、斜め上方から見下ろすように操作面１０１上への投影を行うが、異なる方向に向けて投影された投影光を、ミラーなどを利用して操作面１０１に反射させてもよい。操作面１０１が鉛直方向に沿って設置されたような場合も同様である。
【００１７】
本実施形態では、操作面１０１上の三次元空間に図１に示すｘ、ｙ、ｚ軸を定義し、位置情報を扱う。図１（ａ）の例では、点１０７を座標軸の原点とする。ここでは一例として、テーブルの上面に平行な二次元がｘｙ平面、テーブル上面に直交し上方に伸びる方向をｚ軸の正方向としている。本実施形態では、ｚ軸方向は、世界座標系での高さ方向に相当する。しかしながら本実施形態は、ホワイトボードや壁面など、水平ではない面を操作面１０１とするシステムや、操作面が凹凸を有する場合や、ＭＲを利用して生成された仮想面である場合にも適用可能である。
【００１８】
図１（ｂ）は、距離画像センサ１０２によって撮像される距離画像とシステムの関係を表す図である。本実施形態において、距離画像センサ１０２は、画角に含む所定の空間の三次元の位置情報が反映された距離画像と、距離画像とは異なる二次元赤外画像とをそれぞれ取得する機能を持つ。本実施形態では、距離画像センサ１０２は、距離画像センサ１０２から操作面１０１方向に赤外光を照射し、被写体の表面で反射された反射光を、センサの受光素子で受光する。
【００１９】
本実施形態で利用する距離画像は、受光された反射光の位相遅れを計測することで、画素毎に反射するまでにかかった時間に対応する被写体表面までの距離を、画素値に反映させたものである。本実施形態では、距離画像センサ１０２は操作面１０１を見下ろすように距離画像を撮像するため、距離画像の画素値が表す距離情報は、距離画像センサ１０２から操作面１０１を見下ろす方向の奥行き方向の距離である。言い換えれば、距離画像の各画素値は、操作面１０１からの高さ方向の位置情報（ｚ座標）を得るための情報を含む。ただし、本実施形態では、距離画像センサ１０２は、ｚ軸に対して斜めに角度をもつように設置されている。従って、本実施形態では距離画像の画素値をそのままｚ座標として利用するのではなく、後述するようにセンサや設置環境に応じたパラメータを使った座標変換を施すことで、画像内に定義された位置情報を世界座標のｘｙｚ座標に変換して利用する。なお、距離画像センサ１０２が用いる距離の算出方法は、赤外パターン投影方式や視差方式でもよい。
【００２０】
また、本実施形態で利用する二次元赤外画像は、センサの受光素子で受光された反射光の強度を、画素値として有するものである。なお、赤外光を距離画像センサ１０２から照射せずに、環境光に含まれる赤外光が、被写体表面で反射された反射光を受光することでも、同様の赤外画像は得られる。また二次元赤外画像は赤外画像以外でもよく、可視光カメラ１０３で撮像するカラー画像やグレースケール画像等を取得してもよい。
【００２１】
本実施形態では、距離画像センサ１０２から得られる二次元赤外画像と距離画像は、サイズが一致（例えば、６４０［ｄｏｔ］×４８０［ｄｏｔ］）一致しており、全ての画素が互いに対応する。平面上の座標が一致する画素には、同一被写体の同一の位置から反射された赤外光の反射時間（距離情報）あるいは強度が反映されている。なお、上記のような関係にある距離画像と二次元赤外画像が得られれば、両者の撮像手段は本実施形態の距離画像センサ１０２のように一体となったものである必要はない。すなわち、距離を含む三次元位置情報を得るセンサと、二次元の画像を撮像する画像センサを別に設置してもよい。
【００２２】
図１（ｂ）において、画像１０８は、距離画像センサ１０２によって撮像される距離画像の内容の一例を表す。ただし、ここでは、画素値に反映された距離情報は省略し、被写体のエッジのみを明示する。操作面１０１及び原点１０７は図１（ａ）に対応している。範囲１１１は、距離画像センサ１０２の画角に相当する。以下では、画像端１１１と称する。
【００２３】
距離画像には、図１（ｂ）に示すようにｕ軸及びｖ軸による二次元座標系が設定される。なお図１（ｂ）の例では、距離画像の解像度は６４０［ｄｏｔ］×４８０［ｄｏｔ］とする。操作位置１１０の距離画像内の位置座標が（ｕ，ｖ）であり、距離画像センサ１０２から操作位置までの距離に相当する画素値がｄであるとする。本実施形態では、このように距離画像内で定義される位置情報に対して、距離画像センサ１０２のレンズ特性および操作面１０１との相対位置関係等に基づく座標変換を施す。これにより、各画素の座標をテーブルに定義された実世界上の座標系にマッピングし、操作位置１１０について、実空間の三次元位置（ｘ，ｙ，ｚ）を取得することができる。座標変換に利用する変換行列は、距離画像センサ１０２が設置された時に、予め調整作業を行い取得する。なお、三次元座標の算出に用いる距離ｄは、単一の画素値だけでなく、手領域内で操作位置１１０の近傍の数ピクセル分の画素を対象に、ノイズ除去処理や平均化処理を実施した上で特定してもよい。
【００２４】
斜線で示す領域１０９は、距離画像１０８に写っている操作者の手１０６の像である（以下では単に手領域１０９という）。本実施形態では、ｚ座標に閾値処理を行うことで、テーブル表面である操作面１０１より高い位置に存在する被写体が写る領域を、手領域として抽出する。本実施形態では、検出される手のそれぞれに対して１箇所の操作位置を検出する。操作位置とは、操作者が手指を使って指し示していると推定される位置の座標である。本実施形態では、前提として、操作者がタッチ操作のために点を指定する場合には、１本だけ指を伸ばした「指さしポーズ」を取ることが規定される。１本指を延ばすポーズが、多くの人にとっては１点を指し示すのに自然な体勢だからである。従って、操作位置としては、手領域１０９のうち端部だと推定される位置を特定する。指差しポーズであれば、端部は指先に当たる。具体的には、距離画像から、手領域１０９を抽出し、手領域１０９のうち画像端１１１から最も遠い位置に存在する画素を示す座標を、指先にあたる１点とみなす。図１（ｂ）に示される手領域１０９の場合、画像端１１１から最も遠い点が操作位置１１０として特定される。なお、操作位置の特定方法はこれに限らず、例えば、手領域から手の五指を検出して、所定の指の端部を特定してもよい。
【００２５】
また本実施形態では、フレームレートに従い繰り返し撮像される距離画像の各フレームで、手領域１０９が画像端１１１と交差する部分の中央を、手の侵入位置として定義する。図１（ｂ）の手領域１０９の場合、侵入位置１１２が特定される。侵入位置１１２もまた、距離画像内に定義された位置情報を変換することで、実空間内での三次元位置情報として取得される。本実施形態では、距離画像から複数の手領域が検出された場合、そのそれぞれについて、操作位置及び侵入位置が特定される。そして、複数の手領域のそれぞれについてタッチ操作を認識する。ただし、指先が操作面１０１に近い高さに存在する場合、テーブルと指先の画素値の違いは極小さい。従って、分解能の大きさや検出誤差によっては、上記の閾値処理によって正確に指とテーブルを区別することは難しくなる。例えば、閾値が実際のテーブル面よりも高く設定され、指の先端部分が閾値を下回る部分であるとみなされると、特定される指先の位置は、実際には指の先ではなく、中間部あるいは根元となってしまうことが有り得る。この検出結果をそのまま、操作位置として利用した場合、ユーザが意図して指示している操作位置と、検出される操作位置がずれることになる。従って、ユーザが選びたいアイテムとは異なるアイテムが選択状態になってしまうなど、操作性を低下させる原因になり得る。
【００２６】
そこで本実施形態では、距離画像から得る三次元の位置情報だけでなく、別に取得する二次元の画像を利用して、操作位置の操作面方向の位置情報を検出する。より具体的には、操作位置の三次元の位置情報のうち、操作面に平行な方向の位置情報を特定するために、距離画像と二次元の赤外画像の両方から、操作体の端部とみなされる点とその位置情報を検出する。そして、いずれの位置を操作で指示された位置と認識するかを、状況に応じて選択する。
【００２７】
以下、本明細書では操作者がタッチ操作の入力に用いる操作体及びその端部の一例として、操作者の手１０６及びその指が利用されること想定する。ただし、本実施形態では操作体として、手指だけでなくスタイラスやロボットアームなどの器具を利用する場合にも適用可能である。なお操作体の端部とは、タッチ操作のために操作位置を指し示すのに用いられる部位を示すが、操作体の一部に属し、タッチ操作の入力が可能な部位であれば、突起形状の端部に限定せずともよい。
【００２８】
図２（ａ）は、本実施形態に係る情報処理装置１００を含むテーブルトップインタフェースのハードウェア構成図である。中央処理ユニット（ＣＰＵ）２００は、ＲＡＭ２０２をワークメモリとして、ＲＯＭ２０１や記憶装置２０３に格納されたＯＳやプログラムを実行して、各種処理の演算や論理判断などを行い、システムバス２０４に接続された各構成を制御する。記憶装置２０３は、ハードディスクドライブや各種インタフェースによって接続された外部記憶装置などであり、実施形態の操作認識処理にかかるプログラムや各種データを記憶する。距離画像センサ１０２は、ＣＰＵ２００の制御に従い、アイテムが表示されるテーブルとアイテムを操作する操作者の手を含む、操作面１０１上の空間の距離画像を撮像し、撮影した距離画像をシステムバス２０４に出力する。本実施形態では、距離画像の取得方法として、環境光やテーブル面の表示の影響が小さい反射時間方式（Time-of-Flight方式）を基に説明するが、用途に応じて視差方式や赤外パターン方式などを利用することも可能である。プロジェクタ１０４は、ＣＰＵ２００の制御に従い、テーブルに操作対象となる画像アイテムを投影表示する。
【００２９】
なお上述したシステムでは、可視光カメラ１０３、距離画像センサ１０２、プロジェクタ１０４はそれぞれ情報処理装置１００に入出力用のインタフェースを介して接続された外部装置であり、情報処理装置１００と協同して情報処理システムを構成する。ただし、これらのデバイスは、情報処理装置１００に一体化されていても構わない
図２（ｂ）は、情報処理装置１００のソフトウェアの構成を示すブロック図の一例である。これらの各機能部は、ＣＰＵ２００が、ＲＯＭ２０１に格納されたプログラムをＲＡＭ２０２に展開し、後述する各フローチャートに従った処理を実行することで実現されている。そして、各処理の実行結果をＲＡＭ２０２に保持する。また例えば、ＣＰＵ２００を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００３０】
三次元情報取得部２１０は、距離画像センサ１０２によって撮像された距離画像をフレームレートに従う一定時間毎に取得し、ＲＡＭ２０２に随時保持する。なお三次元情報取得部２１０が取得し、各機能部とやりとりする対象は、実際には画像データに対応する信号であるが、本明細書では単に「距離画像を取得する」として説明する。
【００３１】
操作体取得部２１１は、三次元情報取得部２１０によって取得された距離画像の各画素について、閾値判定やノイズ低減処理を施し、距離画像中の手領域を抽出する。手領域とは、入力された距離画像のうち、操作者が操作体として利用する手が被写体として写っている画素群である。第１検出部２１２は、操作体取得部２１１によって抽出された手領域の輪郭情報に基づき、操作体の端部に当たる１点を、第１の点として特定し、座標値を取得してＲＡＭ２０２に保持する。第１の点については、距離画像に基づいて三次元の座標情報が得られる。本実施形態では手領域の輪郭のうち画像端１１１から最も遠くに存在する画素点を示す座標を、第１の点として検出する。この際、本実施形態の第１検出部２１２は、手領域と画像端１１１が交差する部分の中心が、手領域の侵入位置として利用される。
【００３２】
二次元画像取得部２１３は、距離画像センサによって撮像された二次元赤外画像をフレームレートに従う一定時間毎に取得し、入力画像としてＲＡＭ２０２に随時保持する。なお実際には画像データに対応する信号に対する処理を行われるが、本明細書では単に「二次元赤外画像を取得する」として説明する。本実施形態では、入力画像として利用される二次元赤外画像は、距離画像と同一の撮像手段によって撮像されるが、両者は異なる画像である。領域設定部２１４は、入力画像の中に、第１検出部２１２によって検出された第１の点に相当する画素を含む注目領域を設定する。本実施形態では、指先の方向に対応するベクトルを生成し、ベクトルの伸びる先を含むような注目領域を設定する。第２検出部２１５は、入力画像のうち、領域設定部２１４によって設定された注目領域に含まれる領域に写る被写体の形状に基づいて、操作体の端部に当たる１点を、第２の点として特定し、座標値を取得してＲＡＭ２０２に保持する。ただし、二次元赤外画像から得られる座標は、二次元である。本実施形態では、第１の点の高さ（ｚ座標）によってタッチ操作の入力中の状態を検出したときに、第２の点の二次元座標（ｘ、ｙ座標）を使って指示されている位置情報を認識するといった処理を行う。従って、第２の点について高さ情報は必ずしも必要ない。ただし、三次元方向の位置情報を利用する必要がある場合は、図１（ｂ）で説明したように距離画像のうち第２の点の相当する画素の画素値を補正するなどして、高さ方向の座標（ｚ座標）を算出するなどしてもよい。
【００３３】
認識部２１６は、操作体の端部によって入力される操作を認識する。本実施形態では、操作体の端部の位置を操作位置と言う。操作位置は、第１の点あるいは第２の点の位置情報に基づいて決定される。本実施形態では、第１の点を優先的に操作位置として決定する。そして、距離画像から検出された操作位置の、操作面１０１に対する近接の度合いに応じて、情報処理装置１００が操作体によるタッチ入力中の状態かを判定する。例えば、第１の点と操作面１０１の間の距離（高さに相当するｚ座標）が所定の閾値より小さい場合は、タッチ入力中と判定する。そしてタッチ入力中の状態で、操作体によって指示された操作面１０１上の位置を追跡することで、タッチ、リリース、ムーブ、フリック、ピンチ、ローテート等のタッチイベントを生成し、表示制御部２１７に通知する。ただし、操作体によって指示された操作面１０１上の位置としては、第１の点あるいは第２の点の、操作面に平行な二次元の位置情報（ｘｙ座標）のいずれかを選択して利用する。またさらに、認識部２１６は、操作体領域の形状を判定する。例えば、指の数や指の方向や手の方向等を判定する。表示制御部２１７は、認識部２１６により通知されるユーザ操作に応じて実行される各処理の結果を反映した描画データを生成し、プロジェクタ１０４に出力することで、操作面に表示する内容を制御する。ユーザ操作とは、操作位置や操作位置の動きや操作体領域の形状（ポーズ）等によって定義され、情報処理装置１００に対して何らかの指示を入力することができるものである。
【００３４】
図３は、本実施形態における情報処理装置のメイン処理の流れを表すフローチャートである。本実施形態では、情報処理装置１００の電源がＯＮになると、まず、図３のステップＳ３０１において、表示制御部２１７が、記憶装置２０３から取得したデータに基づいてＵＩ部品を配置した画面を生成し、プロジェクタ１０４へ出力する。そして、プロジェクタ１０４が操作面１０１の上面に画面を投影する。
【００３５】
次に、ステップＳ３０２において、三次元情報取得部２１０が、距離画像センサ１０２から距離画像を取得する。また、二次元赤外画像取得部２１３により取得された二次元赤外画像と距離画像を取得する。ちなみに、距離画像センサ１０２は、情報処理装置の電源がＯＮになっている間、操作面１０１の上面の操作領域の二次元赤外画像と距離画像を、所定の時間間隔で撮像する。
【００３６】
ステップＳ３０３において、操作体取得部２１１が所定の操作体（ユーザの手や腕）を検出する。操作体が検出された場合（Ｓ３０３、ＹＥＳ）は、ステップＳ３０４に進む。一方、操作体が検出されなかった場合（Ｓ３０３、ＮＯ）は、ステップＳ３０２に処理が戻り、操作体が検出されるまでステップＳ３０２とＳ３０３の処理を繰り返す。
【００３７】
ステップＳ３０４において、操作位置の決定処理が実行される。ステップＳ３０４の内容は、図４のフローチャートを参照して後述する。
【００３８】
ステップＳ３０５において、認識部２１６が、ステップＳ３０４で決定された操作位置に基づいて、情報処理装置１００に入力された操作を認識する。例えば、操作位置の操作面に対する近接の程度を表す高さ（ｚ座標）が、所定の閾値を下回る場合には、タッチ操作を認識する。そして、認識結果を表す情報を表示制御部２１７に通知する。このとき、操作体がタッチによって指示する操作面上の位置（ｘｙ座標）は、ステップＳ３０４によって決定された操作位置のｘｙ座標である。そしてステップＳ３０６において、表示制御部２１７が、認識された操作に応じて、プロジェクタ１０４によって投影されている画面中のオブジェクト（画像、データ、ＵＩ等）の表示を更新する。ステップＳ３０７において、情報処理装置の電源がＯＦＦにされたか否かを判定する。電源がＯＦＦされた場合（Ｓ３０６、ＹＥＳ）は、情報処理装置１００は全ての処理を終了する。一方、電源がＯＦＦにされていない場合（Ｓ３０６、ＮＯ）は、ステップＳ３０２の処理へ戻る。
【００３９】
図４は、本実施形態における操作位置の決定処理（Ｓ３０４）を表すフローチャートである。まず、ステップＳ４０１において、第１検出部２１２が、操作体取得部２１１が取得した手領域に基づいて、第１の点を、操作位置として検出する。本実施形態では、手領域と画像端１１１の交差部分の中心を侵入位置とし、手領域に含まれる画素のうちもっとも侵入位置から遠い画素を、距離画像における指先位置とみなす第１の点として検出する。ここで、検出される第１の点の位置情報は距離画像に基づいて得られる三次元の位置情報（ｘ，ｙ，ｚ座標）である。従って、ステップＳ４０１において、操作位置の位置情報として三次元の位置情報（ｘ，ｙ，ｚ座標）が得られる。
【００４０】
ステップＳ４０２では、認識部２１６が、ステップＳ４０１で取得された操作位置の高さ（ｚ座標）と、所定の高さを表す閾値Ｔ１を比較し、閾値Ｔ１以下かを判定する。ここで、閾値Ｔ１は、第１の点が、指先の位置を正確に検出したものである妥当性を判断するための閾値である。上述した通り、指先が操作面１０１に近づいている、すなわち指先の操作面１０１からの高さが低い場合、センサの分解能の大きさや検出誤差によって、手領域の輪郭が正確ではない可能性が比較的高まる。従って、ステップＳ４０２では、距離画像とは異なる手段を使って指先の位置の精度を向上させる処理を行う必要の有無を判定している。本実施形態では、操作位置の高さが閾値Ｔ１以下である場合を、距離画像とは異なる手段を使って指先の位置の精度を向上させる処理を行う必要がある場合とみなす。操作位置の高さが閾値Ｔ１以下である場合（Ｓ４０２、ＹＥＳ）は、ステップＳ４０３以降の処理で、二次元赤外画像を使ってさらに操作位置の位置情報を精度よく決定する。操作位置の高さが閾値Ｔ１より大きい場合（Ｓ４０２、ＮＯ）は、図４の処理を終了し、Ｓ３０５へ進む。
【００４１】
次に、ステップＳ４０３において、第２検出部２１５が、距離画像に基づいて指先の方向を表す情報を取得する。指先方向とは、手の中心位置を始点とし、操作位置を終点とする方向とする。なお、手の中心位置とは、手領域の最も広い場所の中心点とする。本実施形態は、指先方向をベクトルとして求める。ステップＳ４０４において、領域設定部２１４が、二次元赤外画像内で操作位置を始点とし、指先方向ベクトルを含む領域を、注目領域として決定する。ステップＳ４０５において第２検出部２１５が、二次元赤外画像の注目領域内で、第２の点を検出する。具体的には、注目領域内でエッジ抽出を行い、エッジと注目領域の境界により囲まれた領域で、かつ操作位置を含む領域を、指先領域として検出する。検出された指先領域の端部を、指先に相当するとみなすことができる第２の点とする。ここで検出される位置情報は、操作面１０１に平行な二次元の位置情報（ｘｙ座標）である。なお、エッジが途切れる場合があるので、途切れたエッジ間をつなぐ補完処理を行うことが好ましい。ただし、指先領域を検出する方法は、色情報を用いた背景差分や移動領域検出でもよい。
【００４２】
ステップＳ４０６において、認識部２１６が、第２の点が所定の条件を満たすかを判定する。ここで所定の条件とは、ステップＳ４０１で第１の点に基づいて定義された操作位置の三次元位置情報のうち、操作面１０１に平行な二次元の座標情報が、妥当であるか、あるいは、第２の点の位置情報で補正すべきかを判定するための条件である。例えば、距離画像から第１の点を検出するときに、手領域の操作面１０１に近い部分の輪郭形状が正確に得られていなかった場合、第１の点のｘｙ座標として得られた値は、実際の指先とはずれている可能性がある。一方で、第２の点のｘｙ座標は、距離画像とは別の二次元赤外画像から得られた値であり、上記のような問題が発生している可能性は低い。ステップＳ４０６では、操作面によって操作面上で指示された位置として、第１の点と第２の点のいずれの位置を採用すべきかを判定している。本実施形態では、所定の条件として、第２の点の指先方向ベクトルからの距離が、基準値より小さい場合は、所定の条件を満たすとする。この判定結果は、第２の点が指先の位置方法で補正するのが妥当であることを意味する。一方、所定の条件を満たさない場合は、第２の点と第１の点のかい離が大きいため、第２の点の方が妥当であるとは言い切れない場合を意味する。第２の点の指先方向ベクトルからの距離が近く、所定の条件が満たされる場合は（Ｓ４０６、ＹＥＳ）は、Ｓ４０７へ進む。一方、第２の点の指先方向ベクトルからの距離が遠く、所定の条件が満たされない場合は（Ｓ４０６、ＮＯ）は、図４のフローチャートの処理を終了する。
【００４３】
ステップＳ４０７において、第１検出部２１２が、Ｓ４０４で検出した第２の点の位置で、操作位置の三次元位置情報のうちｘｙ座標を、第２の点のｘｙ座標で補正する。そして、図４のフローチャートの処理を終了する。このように、本実施形態では、ステップＳ４０７の処理が実行された場合、ステップＳ３０５の操作認識処理が実行される際には、第２の点のｘｙ座標が、指先によって指示される操作面１０１上の位置として認識される。一方で、ステップＳ４０７の処理が実行されなかった場合、ステップＳ３０５の操作認識処理が実行される際には、第１の点のｘｙ座標が、指先によって指示される操作面１０１上の位置として認識される。
【００４４】
ここで、上述した閾値Ｔ１が、指先が操作面１０１にタッチしているとみなされるかを判定するための閾値Ｔ２より小さい値として設定されている場合、操作位置のｚ座標は、ステップＳ４０７の処理後も第１の点に関して検出されたｚ座標が維持して構わない。なぜなら、ステップＳ４０７は、第１の点のｚ座標が、閾値Ｔ１以下である場合にのみ実行されているため、ｚ座標が閾値Ｔ２を下回ることは自明であるからである。しかしながら、タッチ閾値Ｔ２と比較する目的に限らず、第２の点についてもｚ座標を得る必要がある場合は、距離画像において第２の点のｘｙ座標に対応する画素を参照し画素値を使ってｚ座標を算出すればよい。この場合、第１の点の三次元位置情報か、第２の点の三次元位置情報のいずれかが選択的に、操作位置として認識されることになる。
【００４５】
次に、図５から図８を参照して、ユーザの手の状態の具体例に対応付けて、本実施形態の情報処理装置１００による動作を説明する。図５〜図８は、ユーザが操作面１０１の上空に手を差し伸べてから、指先を操作面１０１に接触させてタッチ操作を入力する様子を段階的に説明する。各段階において特徴的な処理が行われるステップの番号を括弧書きで示す。
【００４６】
まず、ユーザの指が操作面１０１から離れた位置にある状態を、図５（ａ）（ｂ）を用いて説明する。図５（ａ）は時刻ｔ１の距離画像の一部を示し、図５（ｂ）は時刻ｔ１の操作面１０１上の空間を側面（ｙ方向）から見た図である。まず、距離画像センサ１０２から、時刻ｔ１の距離画像と二次元赤外画像が取得される（Ｓ３０２）。取得した距離画像から検出された手領域は、図５（ａ）にグレーの領域として示される。ここで時刻ｔ１における操作体を、操作体Ａとする。操作体Ａは、ユーザの手と腕である。なお手とは、腕のうち手首より先（指側）の全ての部分であり、５指、掌、甲といった部位が含まれる部位である。
【００４７】
まず、本実施形態では、距離画像から検出された手領域から、第１の点が操作位置として検出される（Ｓ４０１）。図５（ａ）に示すように、まず侵入位置ｐ１を検出し、手領域の中で侵入位置ｐ１から最も遠い画素が、第１の点ｐ２として検出される。さらに、距離画像内の位置情報と画素値に基づいて、第１の点ｐ２の実空間における三次元位置（ｘ２，ｙ２，ｚ２）が取得される。そして、第１の点ｐ２の操作面からの高さ（ｚ２）が閾値Ｔ１以下かを判定（Ｓ４０２）され、図５（ａ）の場合は閾値Ｔ１以下でないため、引き続き第１の点から得られた三次元位置（ｘ２，ｙ２，ｚ２）を操作位置として、操作の認識が行われる。本実施形態では、タッチ操作を認識するため、指先と操作面１０１との近接の程度を表す、操作位置の高さ（ｚ座標）を、閾値Ｔ２と比較する。ｚ座標が閾値Ｔ２を下回る場合を、指先と操作面１０１との近接の程度が、タッチ状態であるとみなせる程度に近いと判定する。図５（ａ）の状態では、操作体Ａは操作面１０１よりも十分高い位置で維持されており、操作体の高さｚ２は、閾値Ｔ２より大きいため、タッチ状態とはみなされない。
【００４８】
次に、図６（ａ）（ｂ）を参照して、ユーザの指先が、操作面１０１に接触した状態での情報処理装置１００の動作例を説明する。ただし、ここでは、指先が操作面１０１と極近いことによって、距離画像から得られた手領域の輪郭のうち、指先の周辺の精度が低くなってしまう場合を特に説明する。図６（ａ）は時刻ｔ２において取得される距離画像の一部を示す。図６（ｂ）は、時刻ｔ２において操作面１０１上の空間をｙ方向から見た図である。時刻ｔ２は時刻ｔ１より後の時刻である。
【００４９】
距離画像センサ１０２から、時刻ｔ２の距離画像と二次元赤外画像が取得される（Ｓ３０２）。取得した距離画像から取得された手領域を、図６（ａ）にグレーの領域として示す。時刻ｔ２での操作体を操作体Ｂとする。このときの手領域では、操作体Ｂのうち、指先の一部に相当する部分が欠けている。これは、距離画像センサ１０２の分解能あるいは検出精度が十分でないため、重なった状態の操作面１０１とユーザの指の境界を、距離情報によって抽出することが困難となったためである。この場合も、本実施形態では、手領域に基づいて侵入位置ｐ３を検出し、手領域に含まれるうち侵入位置ｐ３から最も遠い画素を、第１の点ｐ４として検出する（Ｓ３０４）。さらに、検出された第１の点ｐ４の実空間における三次元位置（ｘ４，ｙ４，ｚ４）を、操作位置の三次元位置情報として取得する。
【００５０】
ここで、検出された第１の点ｐ４の座標（ｘ４，ｙ４，ｚ４）のうち、操作面１０１からの高さに相当するｚ座標が、閾値Ｔ１よりも小さいとする。このとき本実施形態では、操作位置の操作面からの高さが閾値Ｔ１以下と判定されることで（Ｓ４０２でＹＥＳ）、操作位置の操作面に平行な二次元での位置情報を、二次元赤外画像からも検出することになる。具体的にはまず、距離画像において、操作体Ｂの指先方向ベクトルＡを作成する（Ｓ４０３）。図７（ａ）は、距離画像における指先方向の決定方法、図７（ｂ）は二次元赤外画像における注目領域の決定方法の概要を表す図である。図７（ａ）で示すように、本実施形態では、操作体Ｂの最も幅が広い場所の中心位置を、手の中心位置ｐ５として取得する。そして、取得した手の中心位置ｐ５を始点とし、第１の点ｐ４を終点とする指先方向ベクトルＡを作成する。次に、図７（ｂ）で示すように、二次元赤外画像の一部に注目領域として設定する（Ｓ４０４）。本実施形態では、距離画像で算出された指先方向ベクトルＡの始点を、距離画像で検出された第１の点ｐ４に変更し、指先方向ベクトルＢを作成する。単に指先方向ベクトルＡを延長するのではなく、始点を移動させることで、現実的な指の長さの範囲を考慮して、指先の探索範囲を絞り込むことができる。ただし、指の曲がり具合などによって、第１の点と手の中心位置との距離は変わるため、場合によっては始点の移動はせず所定の長さに指先方向ベクトルＡを延長させることで、指先方向ベクトルＢを設定してもよい。
【００５１】
そして本実施形態では、二次元赤外画像上で、指先方向ベクトルＢを包含する部分領域を、注目領域として決定される。本実施形態の場合、距離画像と二次元赤外画像は、画素が１対１で対応するので、距離画像内で定義した指先方向ベクトルＢをそのまま二次元赤外画像に複写して考えることができる。図８（ａ）は、二次元赤外画像において決定された注目領域を拡大したものである。本実施形態では、注目領域内に写る被写体の輪郭の形状に基づいて、第２の点を検出する（Ｓ４０５）。具体的には、注目領域内でエッジ抽出を行い、エッジと注目領域の境界線で囲まれた領域であり、かつ距離画像で検出された第１の点ｐ４を含む領域を指先領域とする。検出された指先領域の端部となる画素を特定し、第２の点ｐ６とする。そしてｐ６の、操作面１０１に平行な二次元での位置情報（ｘ６，ｙ６）を取得する。また必要な場合は、距離画像内でのｐ６を参照し、ｚ座標を含むｐ６の三次元位置情報（ｘ６，ｙ６，ｚ６）を取得する。
【００５２】
検出された第２の点ｐ６の座標によって、この時点では第１の点の座標情報によって定義されている操作位置の座標情報を補正すべきかを判定する（Ｓ４０６）。本実施形態では、ｘｙ平面における、第２の点ｐ６と指先方向ベクトルＢの距離ｄ１が閾値Ｔ３以下であることを所定の条件として判定を行い、この条件が満たされる場合は補正を実行する。図８（ａ）の場合は、距離ｄ１が閾値Ｔ３以下であるため、第２の点ｐ６の（ｘ６，ｙ６）が、操作位置のｘｙ座標として妥当であるとみなされる（ステップＳ４０６でＹＥＳ）。そして、第１の点ｐ４を第２の点ｐ６で操作位置の補正が実行される（ステップＳ４０７）。なお必要に応じて、距離画像から第２の点のｚ座標ｚ６を求めてもよい。
【００５３】
図８（ｂ）に、補正された操作位置とその三次元座標を示す。ただし、図８（ｂ）では、第２の点のｘｙ座標で示される距離画像の画素値を使って、補正された操作位置のｚ座標ｚ６を求めた場合を示す。このように、第１の点ｐ４の高さｚ４が閾値Ｔ１を下回る場合には、ｚ４の第２の点の高さｚ６のいずれもタッチ閾値Ｔ２を下回る。従って、ｚ６を求めたか否かに寄らず、ステップＳ３０５では、第２の点のｘｙ座標が、ユーザの指先によって指示された操作面１０１上の位置として認識される。例えば、操作面１０１に投影されたＵＩボタンのうち、指示された位置（ｘ６、ｙ６）を包含するボタンが選択状態になり、それに応じて投影内容が更新される（ステップＳ３０６）。
【００５４】
以上のように、本実施形態では、三次元位置情報に基づいて検出した操作体の端部の位置情報を、状況に応じて二次元画像から検出した操作体の端部の位置情報で補う。このとき、二次元画像のうち、操作体の端部の位置を探索する範囲を、三次元位置情報に基づいて検出した操作体の端部の位置情報によって定まる注目領域の内部に限定する。これにより、全体の計算量を削減し、かつ第１の点検出精度も向上することができる。
【００５５】
＜変形例１＞
ここで第１の実施形態の変形例１として、別の方法で注目領域を設定する例を、図９及び図１０を参照して説明する。なお、図９、図１０では、図７〜図８と重複する要素には同じ番号を付与している。
【００５６】
まず、図９（ａ）で示すように、距離画像から検出した第１の点ｐ４を中心とする所定の大きさの領域を、注目領域として設定する。ここで注目領域とは、検出された第１の点が、実際には指の端部から根元に至るまでのどこであっても、指先が包含される程度の大きさの領域が設定される。注目領域の大きさは、第１の点ｐ４の高さ（ｚ４）に応じて所定の値が選ばれるとする。例えば、注目領域の大きさには、距離画像センサ１０２と手（第１の点または手の中心位置）の距離や、手領域の大きさを考慮してもよい。ただし、腕はフレームによって写り込みの度合いの変動が大きい。従って、手領域の大きさを考慮する場合は、腕のうちフレーム間で大きさの違いが生じにくい手（手首から先）の部分の大きさを表す領域を定義して、その大きさを扱う。例えば、手の中心位置付近での手領域の幅を手領域の大きさとする。その上で、手領域がある程度大きい場合（センサと手が近い場合に相当）は、注目領域を大きく設定し、手領域が小さい場合（センサと手が遠い場合に相当）は、注目領域を小さく設定するなど、注目領域の大きさを選択する。
【００５７】
次に、図９（ｂ）は注目領域を拡大したものである。注目領域内の操作体Ｂの重心位置ｐ７（ｘ７，ｙ７，ｚ７）を算出する。算出された重心位置ｐ７を始点とし、第１の点ｐ４を終点とする指先方向ベクトルＣを作成する。次に、図１０（ａ）で示すように、作成された指先方向ベクトルＣの始点を第１の点ｐ４に変更し、指先方向ベクトルＤを作成する。そして、二次元赤外画像の中で、指先方向ベクトルＤを包含する部分領域を、注目領域として設定する。
【００５８】
図１０（ｂ）は、変形例１によって設定した、二次元赤外画像内の注目領域を拡大したものである。第１の実施形態と変形例では、第２の点が実際の指先位置を正確に抽出できていたとしても、指先方向ベクトルからの距離が離れている場合は、第２の点が操作位置としては利用されない。従って、指先方向ベクトルはより正確に指の方向を表していることが望ましい。しかしながら、指先方向ベクトルＢは手の中心位置を基点としているため、操作している指や操作時の手の形状等の条件により、実際との指の方向との差分が大きい場合があった。例えば、図８（ａ）と図１０（ｂ）を比較すると、第１の実施形態の指先方向ベクトルＢよりも、変形例１の指先方向ベクトルＤの方が、より実際の指先の方向に近いことがわかる。一方、ベクトルを生成する処理に必要な計算量は、指先方向ベクトルＤより指先方向ベクトルＢの方法の方が少ない。注目領域の設定方法は、情報処理装置１００あるいはアプリケーションが、処理スピードを優先すべきものかなどに応じて、選択的に用いられても良い。
【００５９】
＜変形例２＞
さらに変形例２として、指先方向ベクトルを使わずに、注目領域を決定する方法を記載する。図１１は、変形例２における、操作位置の決定処理（Ｓ３０４）を表すフローチャートである。図４のフローチャートと共通する処理ステップは、同じ番号を付与し、詳細な説明は省略する。
【００６０】
変形例２では、ステップＳ４０１で距離画像から検出された第１の点が検出され、その高さが閾値Ｔ１より大きい場合はステップＳ１１００に進む。ステップＳ１１００では、領域設定部２１４が、二次元赤外画像において、第１の点のｘｙ座標から特定される、この時点での操作位置を基準して、所定の大きさの注目領域を決定する。図１２（ａ）は、距離画像で検出された第１の点ｐ４の位置を中心として、二次元赤外画像内に、所定の大きさの注目領域Ｃが決定された様子を表す。ここで、注目領域の大きさは、変形例１で注目領域を設定した考え方と同様、手領域がある程度大きい場合（センサと手が近い場合に相当）は、注目領域を大きく設定し、手領域が小さい場合（センサと手が遠い場合に相当）は、注目領域を小さく設定する。
【００６１】
ステップＳ１１０１において、第２検出部２１５が、二次元赤外画像の、注目領域Ｃ内の部分から、操作体が被写体として写る画素群である手領域Ｂを検出する。具体的には、注目領域Ｃ内でエッジ検出を行い、検出されたエッジと注目領域Ｃの境界線により囲まれ、かつ第１の点ｐ４を含む領域を手領域Ｂとして取得する。
【００６２】
ステップＳ１１０２において、第２検出部２１５が、距離画像でも同様に、第１の点を中心とした所定の大きさの注目領域Ｃを設定し、距離画像から検出されている手領域と、注目領域Ｃに含まれる領域を手領域Ａ（図１２（ａ））とする。手領域Ａと、ステップＳ１１０１で取得された手領域Ｂの形状の差異の大きさが、小さいとみなせる程度かを判定する。具体的には、手領域Ａと手領域Ｂの、重複しない部分の面積を面積Ｄとして算出し、面積Ｄと所定の閾値Ｄ１の大きさを比較することで判定を行う。例えば、面積Ｄが閾値Ｄ１以下の場合は、手領域Ａと手領域Ｂの形状の差異の大きさが小さいとみなし（Ｓ１１０２、ＹＥＳ）はステップＳ１１０３へ進む。面積Ｄが閾値Ｄ１より大きい場合は、手領域Ａと手領域Ｂの形状の差異の大きさが大きいとみなし（Ｓ１１０２、ＮＯ）、操作位置の補正を行わずに図３のフローチャートに戻る。
【００６３】
ステップＳ１１０３において、第２検出部２１５が、二次元赤外画像の、注目領域Ｃ内の手領域Ｂの輪郭の形状に基づいて、操作体の端部とみなされる位置を第２の点ｐ６として検出する。ステップＳ１１０４において、認識部２１６が、操作位置のｘｙ座標を、第２の点ｐ６のｘｙ座標で補正する。そして、図３のフローチャートに戻る。変形例２によれば、指先方向ベクトルを検出しなくても、手領域の形状により第１の点を補正することができる。
【００６４】
＜第２の実施形態＞
第１の実施形態の情報処理装置は、操作位置を特定し、操作面上で指定された位置に基づく操作を認識した。第２の実施形態では操作体（手領域）の形状に基づいて、操作体であるユーザの手の姿勢に対応する操作を認識する。例えば、上述した指差しポーズ、その他にも片手の指を３本伸ばして２本を曲げた姿勢、全ての指を伸ばした姿勢、などを識別することで、予めそれぞれの姿勢に対応付けられた指示として認識する。また例えば、それぞれの姿勢が維持された状態での、操作体の移動軌跡の形状に基づいて、各種指示を認識する。
【００６５】
第２の実施形態は、第２の実施形態と同じ構成の情報処理装置１００によって実行可能である。ただし、メイン処理は、図３のフローチャートに代わって図１３のフローチャートに従って行われる。ここでは図３との差異のみ説明する。
【００６６】
図１３のフローチャートでは、ステップＳ１３０１において、ステップＳ３０３で検出された手領域を補正する処理を行う。図１４は、第２の実施形態における手領域の決定処理（Ｓ１３０１）を表すフローチャートである。まず、ステップＳ１４０１において、第２の距離取得部２０６が、手領域Ｃの最低点ｐ８（第１の点）の高さｚ８を取得し、高さｚ８が閾値Ｔ１以下と判定された場合（Ｓ１４０１、ＹＥＳ）は、Ｓ１４０２に進む。
【００６７】
ステップＳ１４０２において、領域設定部２１４が、手領域Ｃの最低点ｐ８を基準して注目領域Ｄを決定する。図１５（ａ）に示すように、距離画像で検出された最低点ｐ８を中心として、任意の大きさの注目領域Ｄを決定する。なお、注目領域の大きさは、距離画像センサとの距離を考慮し、距離が近い程大きく、距離が遠い程小さいことが好ましい。
【００６８】
ステップＳ１４０３において、第２の操作体検出部３１０が、決定された注目領域Ｄ内の二次元赤外画像で、手領域Ｄを検出する。具体的には、注目領域Ｄ内でエッジ検出を行い、検出されたエッジと注目領域Ｄの境界線により囲まれ、かつ最低点ｐ８を含む領域を手領域Ｄとして検出する。ステップＳ１４０４において、第２の操作体検出部３１０が、二次元赤外画像の注目領域Ｄ内の手領域Ｄを手領域とする。
【００６９】
図１３のフローチャートに戻り、ステップＳ１３０２において、認識部２１６が手領域Ｄの形状から、操作体の姿勢が、辞書に登録されたいずれの姿勢であるかを判定する。そして、判定された姿勢に対応づけられた指示が認識される。例えば、図１５（ｂ）のように、手領域Ｄの形状が３本指を伸ばした姿勢であると判定された場合には、操作メニューの一覧を表示させる指示として認識する。その場合、ステップＳ３０６では、表示制御部２１７により、操作メニューを操作面１０１に投影させる表示更新が実行される。本実施形態によれば、操作位置として点の座標を指示する操作だけでなく、操作体の姿勢によって入力される操作も精度よく認識することができる。
【００７０】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７１】
２１０  三次元情報取得部
２１１  操作体取得部
２１２  第１検出部
２１３  二次元画像取得部
２１４  領域設定部
２１５  第２検出部
２１６  認識部
２１７  表示制御部
【図１】
0006618301.tif 000002
【図２】
0006618301.tif 000003
【図３】
0006618301.tif 000004
【図４】
0006618301.tif 000005
【図５】
0006618301.tif 000006
【図６】
0006618301.tif 000007
【図７】
0006618301.tif 000008
【図８】
0006618301.tif 000009
【図９】
0006618301.tif 000010
【図１０】
0006618301.tif 000011
【図１１】
0006618301.tif 000012
【図１２】
0006618301.tif 000013
【図１３】
0006618301.tif 000014
【図１４】
0006618301.tif 000015
【図１５】
0006618301.tif 000016