(57)【特許請求の範囲】
【請求項１】
人が手を挿入して操作を行う空間を周期的に撮像した複数の画像を取得する画像取得手段と、
前記複数の画像のそれぞれから抽出される前記手が写る領域の形状に基づいて、前記手のうち指先に相当する指先位置を特定する指先特定手段と、
前記指先特定手段によって特定された１以上の指先位置それぞれの、前記手が写る領域内の基準位置に対する相対的な位置情報を用いて、前記画像取得手段によって取得される前記複数の画像に渡って前記手のうち同一の指に対応する指先位置を識別する識別手段と、
前記識別手段によって識別された１以上の指先位置と、当該指先位置の前記基準位置に対する相対的な位置情報とを関連付けて保持し、さらに、前記指先特定手段によって特定された指先位置の数が減少した場合、前記減少の前に識別した１以上の指先位置のうち、消失した指先位置として特定される指先位置には消失中の指であることを示す情報を関連付けて保持する保持手段と、
前記保持手段に保持されている前記消失中の指であることを示す情報を関連付けられた指先位置の前記基準位置に対する相対的な位置情報と、前記指先特定手段によって特定された指先位置の数が減少した画像から抽出された前記手が写る領域内の基準位置とを使って、消失した指に対応する仮想的な指先位置を決定する仮想指先決定手段と、
前記識別手段によって前記複数の画像に渡って前記手のうち同一の指に対応する指先位置と識別された位置、および、前記仮想指先決定手段によって仮想的な指先位置として決定された位置の軌跡に基づいて、自装置に対する入力を認識する認識手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記識別手段は、前記画像取得手段によって取得される前記複数の画像のそれぞれにおいて特定される１以上の指先位置のうち、連続して取得される画像における前記手が写る領域内の基準位置に対する相対的な位置情報の変化が、所定の範囲に収まる指先位置を、前記同一の指に対応する指先位置であると識別することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記識別手段は、前記画像取得手段によって取得される前記複数の画像において、前記指先特定手段によって特定された指先位置の数が減少した場合、前記減少の前に識別した１以上の指先位置のうち、消失した指先位置を特定し、
更に前記画像取得手段によって取得される複数の画像において、前記指先特定手段によって特定された指先位置の数が増加した場合、前記消失した指先位置として特定した指先位置が再び検出されたかを判定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記識別手段は、前記画像取得手段によって取得される前記複数の画像において、前記指先特定手段によって特定された指先位置の数が増加した場合で、かつ、前記消失した指先位置として特定した指先位置が再び検出されたと判定されない場合は、増加した前記指先位置を新たな指先位置として識別することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記識別手段は、前記画像取得手段によって取得される前記複数の画像において、前記指先特定手段によって特定された指先位置の数が増加した場合で、かつ、前記消失した指先位置として特定した指先位置が再び検出されたと判定された場合は、増加した前記指先位置を、前記消失したのと同一の指に対応する指先位置として識別することを特徴とする請求項３又は４のいずれか１項に記載の情報処理装置。
【請求項６】
前記識別手段は、前記複数の画像において前記指先特定手段によって特定された指先位置の数が減少した場合、前記保持手段に保持されている各指先位置の前記基準位置に対する相対的な位置情報と、前記指先特定手段によって特定された指先位置の数が減少した画像から抽出された前記手が写る領域内の基準位置とを使って、前記減少の前に識別した１以上の指先位置のうち、消失した指先位置を特定し、
前記仮想指先決定手段は、特定された前記消失した指先位置に対応する前記仮想的な指先位置を決定するものであって、
前記識別手段は、前記複数の画像において前記指先特定手段によって特定された指先位置の数が増加した場合、前記保持手段に保持されている１以上の指先位置のうち、前記消失した指先位置として特定した指先位置に関連付けられている、前記基準位置に対する相対的な位置情報と、前記指先特定手段によって特定された指先位置の数が増加した画像から抽出された前記手が写る領域内の基準位置とを使って、前記消失した指先位置として特定した指先位置が再び検出されたかを判定することを特徴とする請求項３乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記識別手段は、前記画像取得手段によって取得される前記複数の画像において、前記指先特定手段によって特定された指先位置の数が同数で維持される場合、前記保持手段に保持されている各指先位置の前記基準位置に対する相対的な位置情報と、前記画像取得手段によって取得された最新の画像から抽出された前記手が写る領域内の基準位置とを使って、前記指先特定手段によって特定された指先位置が、異なる指に対応する指先位置に変化したかを判定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記指先位置それぞれの、前記手が写る領域内の基準位置に対する相対的な位置情報は、前記手が写る領域に関連して設定された基準軸と、前記手が写る領域内の基準位置とに基づいて定義されることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記基準軸として、前記画像取得手段によって取得される画像の端部と、該画像から抽出された前記手が写る領域の交差部分に決定される前記手の侵入位置と、前記手が写る領域内の基準位置を結ぶ線分が決定されることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
更に、予め辞書として保持された手の形状モデルの特徴量と、前記画像取得手段によって取得される画像から抽出された前記手が写る領域の特徴量との比較に基づいて、前記基準軸を決定する基準軸決定手段とを備えることを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
前記識別手段による、前記画像取得手段によって取得される前記複数の画像に渡った前記同一の指に対応する指先位置の識別とは、前記同一の指に対応する指先位置を前記画像取得手段によって取得される前記複数の画像のそれぞれにおいて一意に区別し続けることであることを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記識別手段は、前記指先特定手段によって特定された１以上の指先位置のそれぞれに対して、該指先位置を一意に区別するための識別子を付与するものであって、
前記画像取得手段によって取得される前記複数の画像に渡って前記同一の指に対応する指先位置と識別される指先位置には、前記複数の画像のそれぞれにおいて同一の識別子が付与されることを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記識別手段は、更に、前記指先特定手段によって特定された１以上の指先位置のそれぞれの、前記手が写る領域内の基準位置に対する相対的な位置情報に基づいて特定される指の種類を、前記識別子に反映することを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
情報処理装置の制御方法であって、
画像取得手段によって、人が手を挿入して操作を行う空間を周期的に撮像した複数の画像を取得する画像取得工程と、
指先特定手段によって、前記複数の画像のそれぞれから抽出される前記手が写る領域の形状に基づいて、前記手のうち指先に相当する指先位置を特定する指先特定工程と、
識別手段によって、前記指先特定工程で特定された１以上の指先位置それぞれの、前記手が写る領域内の基準位置に対する相対的な位置情報を用いて、前記画像取得手段によって取得される前記複数の画像に渡って前記手のうち同一の指に対応する指先位置を識別する識別工程と、
保持手段によって、前記識別工程で識別された１以上の指先位置と、当該指先位置の前記基準位置に対する相対的な位置情報とを関連付けて保持し、さらに、前記指先特定工程で特定された指先位置の数が減少した場合、前記減少の前に識別した１以上の指先位置のうち、消失した指先位置として特定される指先位置には消失中の指であることを示す情報を関連付けて保持する保持工程と、
仮想指先決定手段によって、前記画像取得工程で取得される前記複数の画像において、前記指先特定工程で特定される指先位置の数が減少した場合、前記保持されている各指先位置の前記基準位置に対する相対的な位置情報と、前記指先特定工程で特定された指先位置の数が減少した画像から抽出された前記手が写る領域内の基準位置とを使って、消失した指に対応する仮想的な指先位置を決定する仮想指先決定工程と、
認識手段によって、前記識別工程で前記複数の画像に渡って前記手のうち同一の指に対応する指先位置と識別された位置、および、前記仮想指先決定工程で仮想的な指先位置として決定された位置の軌跡に基づいて、前記情報処理装置に対する入力を認識する認識工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項１５】
コンピュータに読み込ませ実行させることによって、前記コンピュータを、
人が手を挿入して操作を行う空間を周期的に撮像した複数の画像を取得する画像取得手段と、
前記複数の画像のそれぞれから抽出される前記手が写る領域の形状に基づいて、前記手のうち指先に相当する指先位置を特定する指先特定手段と、
前記指先特定手段によって特定された１以上の指先位置それぞれの、前記手が写る領域内の基準位置に対する相対的な位置情報を用いて、前記画像取得手段によって取得される前記複数の画像に渡って前記手のうち同一の指に対応する指先位置を識別する識別手段と、
前記識別手段によって識別された１以上の指先位置と、当該指先位置の前記基準位置に対する相対的な位置情報とを関連付けて保持し、さらに、前記指先特定手段によって特定された指先位置の数が減少した場合、前記減少の前に識別した１以上の指先位置のうち、消失した指先位置として特定される指先位置には消失中の指であることを示す情報を関連付けて保持する保持手段と、
前記画像取得手段によって取得される前記複数の画像において、前記指先特定手段によって特定された指先位置の数が減少した場合、前記保持手段に保持されている各指先位置の前記基準位置に対する相対的な位置情報と、前記指先特定手段によって特定された指先位置の数が減少した画像から抽出された前記手が写る領域内の基準位置とを使って、消失した指に対応する仮想的な指先位置を決定する仮想指先決定手段と、
前記識別手段によって前記複数の画像に渡って前記手のうち同一の指に対応する指先位置と識別された位置、および、前記仮想指先決定手段によって仮想的な指先位置として決定された位置の軌跡に基づいて、自装置に対する入力を認識する認識手段と、
を備える情報処理装置として機能させるプログラム。
【請求項１６】
請求項１５に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの手指の検出に基づいて操作を認識する技術に関する。
【背景技術】
【０００２】
近年では、可視光カメラや赤外線カメラ、又は距離画像センサ等によって得られた画像から、ユーザの手など所定の物体が写る領域を抽出し、その動きや位置に応じて空間ジェスチャによるＵＩ（ユーザインターフェース）操作を認識する技術が広まりつつある。同様のシステムでは、手や指等の三次元位置を計測及び追跡することにより、任意の壁やテーブル面に対する近接距離を取得し、その大きさに基づいて接触の有無を検出した上で、タッチ操作を認識することも行われている。手を使った空間ジェスチャ操作やタッチ操作では、手首から先の部分の状態（ポーズ）や、複数の指のそれぞれの軌跡を区別してそれぞれをコマンドに対応付けておくことで、多様な指示の入力が可能となる。そのためには、手の検出において各指を識別しそれぞれを追跡することが必要とされる。
【０００３】
特許文献１では、手のシルエット画像から、指の領域および掌の領域を抽出し、指の数、手首の方向、指領域の大きさ及び位置、掌の位置、指領域同士がなす角度を用いて各指領域がいずれの指であるかの識別が行われる。また特許文献２では、手領域の形状（シルエットの形状）から、拳（掌）部分と、拳から突出する指が検出され、２次元平面内での拳の重心と指先との位置関係の変化に応じて、該２次元平面に直交する方向に沿った指先の動きが推定可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−１０２０４６号公報
【特許文献２】特開２０１３−６９２７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
カメラやセンサの設置状況や、ユーザの手の動かし方によっては、画像にノイズやかすれが発生したり、指先あるいは指全体が物理的に死角に入ったりすることで、手領域のシルエットに指の形状が特徴として現れない場合がある。特に、ユーザの動きを周期的に撮像した複数フレームの画像を使って、手指の形状や位置を追跡する場合、全てのフレームで手のシルエットが明瞭に抽出可能であるとは限らない。途中のフレームで一部の指が検出できないと、その指やあるいは周囲の指の識別に誤りが生じ得る。その結果として、ユーザは継続して操作を入力しているつもりであっても、操作の認識が中断したり、誤認識されたりする場合がある。特許文献１及び特許文献２では、連続的に取得した複数フレームの画像のうち途中のフレームで生じる指先の検出漏れに対処し、複数のフレームに渡って一貫した指の識別を継続することは考慮されていなかった。
【０００６】
本発明は、上記課題を考慮したものであり、周期的に撮像された複数の画像に渡って、ユーザの指を継続して識別する処理の誤りを低減すること、特に、指先の検出漏れが発生したことにより指によって入力される操作の認識が中断されてしまうことを低減することを目的とする。
【課題を解決するための手段】
【０００７】
情報処理装置であって、人が手を挿入して操作を行う空間を周期的に撮像した複数の画像を取得する画像取得手段と、前記複数の画像のそれぞれから抽出される前記手が写る領域の形状に基づいて、前記手のうち指先に相当する指先位置を特定する指先特定手段と、前記指先特定手段によって特定された１以上の指先位置それぞれの、前記手が写る領域内の基準位置に対する相対的な位置情報を用いて、前記画像取得手段によって取得される前記複数の画像に渡って前記手のうち同一の指に対応する指先位置を識別する識別手段と、
前記識別手段によって識別された１以上の指先位置と、当該指先位置の前記基準位置に対する相対的な位置情報とを関連付けて保持する保持手段と、前記画像取得手段によって取得される前記複数の画像において、前記指先特定手段によって特定された指先位置の数が減少した場合、前記保持手段に保持されている各指先位置の前記基準位置に対する相対的な位置情報と、前記指先特定手段によって特定された指先位置の数が減少した画像から抽出された前記手が写る領域内の基準位置とを使って、消失した指に対応する仮想的な指先位置を決定する仮想指先決定手段と、前記識別手段によって前記複数の画像に渡って前記手のうち同一の指に対応する指先位置と識別された位置、および、前記仮想指先決定手段によって仮想的な指先位置として決定された位置の軌跡に基づいて、前記自装置に対する入力を認識する認識手段と、を備える。
【発明の効果】
【０００８】
本発明によれば、周期的に撮像された複数の画像に渡って、ユーザの指を継続して識別する処理の誤りを低減することができる。特に、指先の検出漏れが発生したとしても、操作の認識が中断されてしまうことを低減することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置１００を利用するシステムの一例を表す図。
【図２】情報処理装置のハードウェア構成、及び機能構成の一例を表すブロック図。
【図３】手領域内に定義される基準位置と基準軸と識別された指先の関係を説明する図。
【図４】人の手による操作を認識する処理の一例を表すフローチャート。
【図５】手領域と識別される指先位置の状態遷移の一例を表す図。
【図６】手領域と識別される指先位置の状態遷移の一例を表す図。
【図７】人の手による操作を認識する処理の一例を表すフローチャート。
【図８】手領域と識別される指先位置の状態遷移の一例を表す図。
【図９】情報処理装置の機能構成の一例を表すブロック図。
【図１０】人の手による操作を認識する処理の一例を表すフローチャート。
【図１１】仮想的な指先位置を作成する処理の一例を表すフローチャート。
【図１２】手領域と識別される指先位置の状態遷移の一例を表す図。
【図１３】手の輪郭形状モデルを利用して基準軸を設定する処理の一例を表すフローチャート。
【図１４】手の輪郭形状モデルの例を表す図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本発明の好適な実施形態について説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定するものではない。
【００１１】
＜第１の実施形態＞
第１の実施形態では、ユーザがテーブル上に差し伸べた手を使って空間ジェスチャ操作やテーブル面に対するタッチ操作を行うテーブルトップインタフェースシステムの例を説明する。当該システムでは、距離画像センサを使って検出したユーザの手の５指をそれぞれ識別し、それらの曲げ方や指先の軌跡に応じた多種の指示コマンドを受け付ける。そのためにシステムは、距離画像中から手が写る領域を抽出し、抽出された領域内に基準位置を定める。そして抽出された輪郭の形状に基づいて指先と推定される１以上の位置を特定し、それらと基準位置との相対的な位置によって各指を識別する。
【００１２】
［システムの外観］
図１（ａ）は、本実施形態に係る情報処理装置１００を設置したテーブルトップインタフェースシステムの外観の一例である。操作面１０１は、テーブルトップインタフェースのテーブル部分である。ユーザは、操作面１０１をタッチすることでタッチ操作を入力することができる。本実施形態では、操作面１０１の上方に、操作面を見下ろすようにして距離画像センサ１０２が設置される。距離画像とは、各画素の値に、当該距離画像を撮像する撮像手段の基準位置（例えば、赤外光の光源、レンズ中心など）から被写体表面までの距離に対応する情報が反映された画像である。各画素値の大きさが、撮像手段から見た深さに相当することから、距離画像センサをデプスセンサと呼ぶこともある。図１（ａ）に例示するシステムで撮影される距離画像の画素値には、距離画像センサ１０２から、操作面１０１あるいはその上方に存在する物体の表面までの距離の大きさが反映される。本実施形態では、赤外光の反射パターンまたは反射時間によって距離情報を取得する方式（Ｔｉｍｅ−ｏｆ−Ｆｌｉｇｈｔ方式）のセンサを利用する。ただし、例えばステレオカメラシステムや赤外光発光素子と赤外カメラを設置することで入力画像を得ることも可能である。
【００１３】
撮像された距離画像は、情報処理装置１００に入力画像として入力される。情報処理装置１００は、入力画像を解析することでユーザの手１０６の三次元位置を取得し、入力される操作を認識する。従ってユーザは、操作面上の空間に手などの所定の物体を挿入して動かすことにより空間ジェスチャ操作を入力する。情報処置装置１００は前記空間を距離画像センサ１０２によって撮像し、空間内で動かされる物体の状態や位置や軌跡と予め用意された辞書情報を比較することで、入力された操作を認識する。
【００１４】
また本実施形態では、可視光カメラ１０３が、上方から操作面１０１を見下ろすようにして設置される。情報処理装置１００は、可視光カメラ１０３によって得られる可視光画像や、距離画像センサ１０２によって得られる距離画像に基づいて、操作面１０１上の空間に存在する物体を検出し、さらにその形状や種類を識別することができる。識別される物体には、例えば、ユーザの手、紙媒体や本などのドキュメントやその他の立体物を含む。ただし、図１（ａ）に例示するシステムの場合は、距離画像センサ１０２と可視光カメラ１０３の画角には、テーブル周囲に存在するユーザの頭部は含まれない。そのためユーザの手が操作面１０１上に挿入された状態で得られた入力画像では、画像の端部がユーザの腕（肩から先の部分）の何処か一部と交差する。情報処理装置１００は、可視光カメラ１０３を制御して、操作面１０１に載置された物体を撮像し、読み取り画像を得る書画カメラとして機能する場合もある。
【００１５】
プロジェクタ１０４は、操作面１０１の上面に画像の投影を行う。ユーザは投影された画像に含まれるアイテム１０５に対して、タッチや空間ジェスチャによる操作を行う。上述したように、本実施形態では、手１０６の検出および操作の認識には、距離画像センサ１０２で取得した距離画像が用いられる。距離画像を用いる方式には、プロジェクタ１０４の投影光が当たることでユーザの手の見た目の色が変化したとしても、その影響が手の検出に影響しにくいという利点がある。ただし、本システムの表示装置として、プロジェクタ１０４に替えて、操作面１０１の上面に液晶ディスプレイを設置してもよい。その場合には、可視光画像から肌色領域を検出することで撮像画像から人の手を抽出する方式を用いても、投影光から受ける影響は無視することができる。
【００１６】
なお、操作面１０１を上方から見た画像が得られる構成であれば、必ずしも距離画像センサ１０２及び可視光カメラ１０３自体が上方に設置されている必要はない。例えばミラーを用いて反射光を撮像するように構成しても構わない。同様にプロジェクタ１０４も、図１（ａ）の例では、斜め上方から見下ろすように操作面１０１上への投影を行う。しかしながら、図示されたものとは異なる方向に向けて投影された投影光を、ミラーなどを利用して操作面１０１に導いてもよい。本実施形態を、操作面１０１が鉛直方向に沿って設置されたシステムで利用される距離画像センサやプロジェクタに適用する場合でも、同様にミラーを含む光学系を利用可能である。
【００１７】
本実施形態では、操作面１０１上の三次元空間に図１に示すｘ、ｙ、ｚ軸を定義することで、空間内の位置情報を扱う。図１（ａ）の例では、点１０７を座標軸の原点とする。ここでは一例として、テーブルの上面に平行な二次元がｘｙ平面、テーブル上面に直交し、かつ、上方に伸びる方向をｚ軸の正方向としている。本実施形態では、ｚ軸方向は、世界座標系での高さ方向に相当する。しかしながら、本実施形態は、ホワイトボードや壁面など、水平ではない面を操作面１０１とするシステムや、操作面が凹凸を有する場合や、ＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ技術）を利用して生成された仮想面である場合にも適用可能である。そのような場合には、ｚ方向は必ずしも高さ方向には対応しない。
【００１８】
本実施形態では、入力された距離画像の各画素値に対して、距離画像センサ１０２のレンズ特性および操作面１０１との相対位置関係に基づく座標変換を施す。本実施形態において取得される距離画像の各画素には、距離画像センサ１０２から被写体表面までの距離の大きさに対応する値が、画素値として保持されている。従って、座標変換により、距離画像内での各画素の座標がテーブルに定義された実世界上の座標系にマッピングされ、ｘ、ｙ、ｚ座標の値を得ることができる。
【００１９】
図１（ｂ）は、操作面１０１を上方から見た状態を示す図である（表示アイテム１０５は省略）。図１（ｂ）で示す範囲１０８が、距離画像センサ１０２及び可視光カメラ１０３の画角の境界に相当する。以下では、この境界線を画像端と称す。本実施形態の情報処理装置１００は、検出される１以上の手１０６について、手が写る領域（以下では単に手領域という）の輪郭形状を取得する。そして、取得された輪郭の形状に基づいて、１箇所以上の指先位置が特定される。また、情報処理装置１００は、手領域が画像端１０８と交差する部分の中央を、手の侵入位置と定義する。手１０６の場合では、侵入位置は点１０９である。本実施形態では、距離画像から複数の手領域が検出された場合、そのそれぞれについて、１以上の指先位置及び１つの侵入位置が特定される。そして、複数の手領域のそれぞれが空間ジェスチャ操作やタッチ操作の認識対象となる。
【００２０】
以下、本実施形態は、ユーザが操作の入力に用いる操作体及びその先端の一例として、ユーザの手１０６及びその指を挙げて説明していく。ただし、本実施形態では操作体として、生身の手指に限らず、義手やロボットアームなどを利用し、指に相当する部位を識別する必要がある場合にも適用可能である。
【００２１】
［装置の構成］
図２（ａ）は、本実施形態に係る情報処理装置１００を含むテーブルトップインタフェースのハードウェア構成図である。中央処理ユニット（ＣＰＵ）２００は、ＲＡＭ２０２をワークメモリとして、ＲＯＭ２０１や記憶装置２０３に格納されたＯＳやプログラムを実行して、各種処理の演算や論理判断などを行い、システムバス２０４に接続された各構成を制御する。ＣＰＵ２００が実行する処理には、後述する人の手に寄る操作の認識処理、及び５指の識別処理が含まれる。記憶装置２０３は、ハードディスクドライブや各種インタフェースによって接続された外部記憶装置などであって、本実施形態で実行される各種処理に係るプログラムや各種データを記憶する。距離画像センサ１０２は、ＣＰＵ２００の制御に従い、操作面１０１と、操作面１０１に表示されたアイテムを対象に操作を行うユーザの手を含む空間の距離画像を撮像し、撮影した距離画像をシステムバス２０４に入力する。本実施形態では、距離画像の取得方法として、環境光や投影光から受ける影響が小さい赤外パターン投影方式を基に説明するが、用途に応じて視差方式や赤外光の反射時間を利用する方式などを利用することも可能である。プロジェクタ１０４は、ＣＰＵ２００の制御に従い、テーブルに操作対象となる表示アイテムを投影する。
【００２２】
なお図１の例では、可視光カメラ１０３、距離画像センサ１０２、プロジェクタ１０４はそれぞれ情報処理装置１００に入出力用のインタフェースを介して接続された外部装置であり、情報処理装置１００と協働して情報処理システムを構成する。ただし、これらのデバイスは、情報処理装置１００に一体化されていても構わない。
【００２３】
図２（ｂ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。各機能部は、ＣＰＵ２００が、ＲＯＭ２０１に格納されたプログラムをＲＡＭ２０２に展開し、後述する各フローチャートに従った処理を実行することで実現される。また例えば、ＣＰＵ２００を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００２４】
画像取得部２１０は、距離画像センサ１０２によって撮像された距離画像を、入力画像として一定時間毎に取得し、ＲＡＭ２０２に随時保持する。なお画像取得部２１０が取得し、各機能部とやりとりする対象は、実際には画像データに対応する信号であるが、本明細書では単に「距離画像を取得する」あるいは「入力画像を取得する」として説明する。
【００２５】
手領域抽出部２１１は、距離画像取得部２１０によって取得された入力画像の各画素について、閾値判定やノイズ低減処理を施し、距離画像から１以上の手領域を抽出する。手領域とは、入力された距離画像のうち、操作体としてユーザが利用する手が写っている領域である。本実施形態の場合は距離画像の画素値によって、操作面１０１よりも高い位置に存在することが示される被写体が写る領域で、かつ、画像端に接している領域を手領域として抽出する。指先特定部２１２は、手領域抽出部２１１によって抽出された手領域の輪郭情報に基づき、ユーザの手の１以上の指先を検出し、先端とみなした１点の座標値を指先位置の情報として取得する。
【００２６】
基準決定部２１３は、手領域抽出部２１１によって抽出された各手領域について、領域内の基準位置と基準軸とを決定する。本実施形態ではまず、各手領域の侵入位置と基準位置を特定し、その座標値を取得する。侵入位置は各手領域と、画像端とが交差する部分の中心である。基準位置は、手領域のうち「手」の部分の重心である。本実施形態では「手」は、腕のうち手首から先に相当する部分を指す。手領域から、手首から先に相当する「手」を特定する方法は、例えば、手領域の幅が最も細くなる部分を手首として特定し、手首に対して侵入位置とは逆側を「手」とし、侵入位置と同じ側を残る「腕」の部分とする方法がある。また例えば、手領域の輪郭線を構成する点の中で最も画像端から遠い点を中心とする所定サイズの半径の円を設定し、手領域と当該円の重複部分を手の部分とする方法がある。このとき円の半径は、一般的な人の手の中指の先から手首までの大きさに基づいて設定される。さらに本実施形態の基準決定部２１３は、侵入位置と基準位置を結ぶ線分を、基準軸として決定する。なお、基準位置及び基準軸は上述した方法で求められたものに限られない。例えば基準位置は、手領域の内部で、輪郭からの距離と侵入位置からの距離が予め定めた条件を満たす点の座標を算出することで求めることもできる。
【００２７】
識別部２１４は、基準決定部２１３が決定した基準位置に対する、指先特定部２１２が特定した１以上の指先位置のそれぞれの相対的な位置情報を特定し、その位置情報を用いて１以上の指先を識別する。本実施形態では、基準位置と基準軸のｘｙ平面内での位置情報に基づいて、基準位置に対する指先位置の相対位置が定義される。
【００２８】
第１の実施形態において、識別部２１４による「識別」とは、指先位置を一意に区別することをいう。識別部２１４は、まず、手領域が最初に検出されたフレームの入力画像に関して指先特定部２１２によって特定された指先位置に、識別子（ＩＤ）を付与する。そして、それ以降のフレームの入力画像では、フレーム毎に特定される指先位置が、既にＩＤが付与された指先位置と同一の指の指先であるかを判定する。この判定に、各フレームで特定される指先位置の、基準位置に対する相対的な位置情報が用いられる。判定の結果、後のフレームの入力画像で特定された指先位置が、既にＩＤが付与された指先位置と同一の指先でなければ、その指先位置には新しくＩＤを付与する。一方、後のフレームの入力画像で特定された指先位置が、既にＩＤが付与された指先位置と同一の指先であれば、そのＩＤの指先位置の位置情報を更新する。これをフレーム毎に繰り返すことで、情報処理装置１００は、周期的に撮像された複数の画像に渡って、ユーザの指を一意に区別し続けることができる。第１の実施形態では、指先位置を一意に区別するために各指に付与されるＩＤは、付与された順序を表す番号を表す数字を含み、この数字によって他の指の区別された唯一の識別子となる。
【００２９】
ただし、ＩＤの付与基準はこれに限らない。例えば、さらに各指先位置の基準位置に対する相対的な位置情報を解析して、各指の種類（親指、人差指、中指、薬指、小指）が何であるかを特定し、その結果がＩＤに反映されてもよい。一例として、設計段階、あるいは装置を設置した後で行われるキャリブレーションの段階で、小指に対応する識別子としてＩＤ１、薬指に対応する識別子としてＩＤ２…というように、ＩＤに指の種類を対応付けて登録する。こうすることで、識別部２１４が、各指先位置の基準位置に対する相対的な位置情報に基づいて、指先位置にＩＤ１〜５のいずれかを付与する処理が、実質的にはその指が何指かを識別することに相当する。この場合、ＩＤは、後続するフレームの入力画像で、情報処理装置１００が同一の指を追跡し続けるための指標であるのに加えて、その指先位置が“何指”であるかを特定するための指標となる。
【００３０】
ここで図３を参照して、手領域内に定義される基準位置と基準軸、及び本実施形態によって識別される指先の関係を説明する。図３で例示されているのはユーザの右手の手領域である。画像取得部２１０に取得された画像から、手領域抽出部２１１により、手領域３００が抽出されたとする。基準決定部２１３は、手領域３００と画像端との交差部分に侵入位置３０２、手首より先の部分の重心に基準位置３０１、侵入位置３０２から基準位置３０１までの線分を基準軸３０３として決定する。さらに、指先特定部２１２が、手領域３００の輪郭形状上で、指先とみなされる位置を５点検出する。そして識別部２１４が、基準位置３０１に対する相対的な位置に基づいて各指先位置を識別する。手領域３００では５点の指先位置が検出されているので、各指に基準位置３０１に対する相対的な位置に基づいてＩＤ〜ＩＤ５の識別子が割り当てられることが、識別に当たる。
【００３１】
本実施形態では、基準位置３０１に対する各指先位置の相対位置は、各指先位置のｘｙ座標を、基準位置３０１を原点とし、基準軸に平行な座標軸を持つ２次元平面での座標に変換することで得られる。例えば、図３で示すｕ軸は、基準軸３０３に沿う向きに設定された座標軸である。指先の相対位置は、基準位置３０１を原点とするｕｖ座標で得られる。ＩＤの割り当ては、基準軸３０３に沿って基準位置３０１を見た場合（基準軸３０３の矢印に沿う方向に向かって人が立つ場合）に、最も右に存在する指先から順次若い番号のＩＤを割り当てるとする。つまり、基準位置３０１を原点としたとき、ｖ座標が小さいものから順次若い番号のＩＤを割り当てるとする。従って、右手の５指の全てが検出されていた場合は、図３に示されるように小指がＩＤ１、親指がＩＤ５となる。ただし、ＩＤの割り当て方法はこれに限定されない。例えば、手領域が右手のものが左手のものかを判別した上で、左右で座標の定義を逆転させてもよい。例えば、右手であれば、上述した通りｖ座標が小さい順に若い番号のＩＤを割り当て、左手であれば、ｖ座標が大きい順に若い番号のＩＤを割り当てる。このようにすれば、左右いずれの手でも５指が全て検出されている場合は小指がＩＤ１となる。
【００３２】
ただし、本実施形態では、基準位置３０１に対する各指先位置の相対位置の定義方法は、これに限らない。例えば、基準位置を中心とする基準軸からの回転角度と、基準位置からの距離とで定義することもできる。基準位置を中心とする基準軸からの回転角度とは、基準位置と指先位置を結ぶ直線と基準軸とが成す角度であって、基準軸と一致する場合を０度として、反時計回りに増加すると定義される。その結果、本実施形態では、基準位置を中心とする基準軸からの回転角度が小さい指先位置ほど、若い番号のついたＩＤが割り当てられる。その結果、図３のように、右手の５指の全てが検出されていた場合は、図３に示されるように小指がＩＤ１、親指がＩＤ５となる。この場合にも、左右の手を判別した上で、左右で角度の定義を逆転させてもよい。
【００３３】
本実施形態では、周期的に操作面１０１上を撮像した距離画像を取得する。あるタイミングで撮像された距離画像から、手領域が抽出され、図３のように指先が識別された場合、識別部２１４は、識別された指先位置のＩＤ、基準位置に対する相対的な位置情報、及びｘｙｚ座標で表される位置情報を関連付けてＲＡＭ２０２に保持する。ＲＡＭ２０２は、識別された指先位置の情報を保持する保持部として機能する。そして、それ以降に撮像された距離画像から同じ手に相当する手領域が抽出され、その輪郭から指先位置が検出された場合、ＲＡＭ２０２に保持されている情報に基づいて、検出された指先が既に識別済みの指先と同じ指のものであるかを判定する。同じ指の指先位置には、保持されているのと同じＩＤを割り当てることで、相対位置情報及びｘｙｚ座標の変化が検出可能となる。
【００３４】
新たに検出された指先が既に識別済みの指先と同じ指のものであるかの判定は、基準位置に対する相対位置の変化量が、予め定められた許容範囲に収まるか否かによって行われる。許容範囲は例えば、指先位置を中心とする所定サイズの円で規定される。図３において、指先範囲３０４は、ＩＤ５が割り当てられた指先位置を中心とする所定の半径（例えば１ｃｍ）の円である。
【００３５】
本実施形態では、新たに取得された距離画像内で決定された基準位置と、ＲＡＭ２０２に保持されている既に識別済みの指先の相対位置情報に基づき、該新たに取得された距離画像内に、指先範囲３０４を配置する。そして、同画像で検出された指先位置が、指先範囲３０４内に含まれる場合に、その指先は既に識別されている指と同じ指であると判定され、同じＩＤが付与される。ただし、指先範囲３０４は、必ずしも円の形状で設定されなくてもよい。例えば指先位置の基準位置に対する相対位置は、基準位置を中心とする基準軸からの回転角度と、基準位置からの距離で定義される場合、２つのパラメータにそれぞれ許容誤差を設けた場合、その範囲のｘｙ平面内での形状はアーチ型となる。このように異なる形状の指先範囲を用いても同様に指の識別が可能である。
【００３６】
図２（ｂ）のブロック図に戻り、認識部２１５は、ＲＡＭ２０２に保持されている情報に基づいて、ユーザの手や指によって入力される操作を認識する。本実施形態では、予め各種タッチ操作が認識されるための指の位置や動きの条件が辞書として記憶装置２０３に記憶されており、認識部２１５は、辞書に含まれる条件が満たされた場合に、当該操作が入力されたと認識する。表示制御部２１６は、ＲＯＭ２０１や記憶装置２０３に記憶された情報を用いて、本実施形態の表示部であるプロジェクタ１０４によって、テーブル１０１上に投影させる画像を生成する。例えば、マルチタッチ操作の認識結果に基づいて、表示中の画像の少なくとも一部に対して、拡大／縮小、回転などの変形を施し、表示部に出力させる。出力された画像は、プロジェクタ１０４によって、操作面であるテーブル１０１上に投影される。投影される画像は、複数の表示アイテムを含み、アイテム毎に移動や拡大／縮小、回転が可能であってもよく、画像全体が移動や拡大／縮小、回転の対象であってもよい。なお、上述した通り各機能部は、ＲＡＭ２０２を、本実施形態に係る処理で利用される情報を一時的に保持する保持部として利用する。ただし、保持部はＲＯＭ２０１、記憶装置２０３等の一部であっても構わない。
【００３７】
［操作認識処理］
次に、図４のフローチャートに沿って、本実施形態に係る情報処理装置１００が実行する操作認識処理の詳細を説明する。本実施形態では、距離画像センサ１０２から入力画像が所定の周期毎に入力される度に、図４のフローチャートが繰り返される。所定の周期は、例えば３０フレーム／１秒、１５フレーム／１秒である。初回は、ＲＡＭ２０２のワーク領域が初期化され、ステップＳ４００のステップの処理が開始される。
【００３８】
ステップＳ４００において、画像取得部２１０は、ＲＡＭ２０２のワーク領域を初期化し、距離画像センサ１０２によって撮像された距離画像を、入力画像として取得し、ＲＡＭ２０２に保持する。
【００３９】
ステップＳ４０１において、手領域３００抽出部２１１は、入力画像から、１以上の手領域３００を抽出し、その情報をＲＡＭ２０２に保持する。本実施形態では、手領域３００抽出部２１１は、入力画像の各画素が示すｚ方向の座標値に対して閾値処理を行うことで、操作面１０１よりも高さが高い座標値を持つ領域を抽出する。抽出される領域が、手領域３００とみなされる。ただし、抽出方法はこれに限られず、例えば別途撮像された可視光画像のＲＧＢ値を解析し、肌色領域に対応する部分を抽出する等してもよい。
【００４０】
なお、ステップＳ４０１において複数の手領域３００が抽出された場合、手領域３００抽出部２１１は各手領域３００に識別子を付けてＲＡＭ２０２にその情報を保持する。そして、以降のステップＳ４０２からステップＳ４１４の処理は、抽出された手領域３００の全てについて個別に実行される。全ての手領域３００に対する処理が並行して実行されるか、順次処理対象となる手領域３００を変えながら一連の処理が繰り返されるかは問わない。いずれの場合でも、各処理ステップで得られる情報は、ＲＡＭ２０２で手領域３００毎に対応付けて管理される。
【００４１】
ステップＳ４０２において、手領域３００抽出部２１１は、抽出された手領域３００の輪郭を表す情報を取得する。本実施形態では、輪郭に相当する画素群としてｘｙ座標で表す位置情報群が取得され、各手領域３００と対応付けてＲＡＭ２０２に保持される。
【００４２】
ステップＳ４０３において、基準決定部２１３は、抽出された手領域３００が画像端と交差する部分を検出し、それに基づいて侵入位置３０２を示すｘｙ座標を取得する。本実施形態では、手領域３００に含まれる画素群のうち、画像端に接する部分の中心を侵入位置３０２として決定する。取得された侵入位置３０２を表す情報は、各手領域３００と対応付けてＲＡＭ２０２に保持される。
【００４３】
ステップＳ４０４において、基準決定部２１３は、抽出された手領域３００のうち、「手」の部分の基準位置３０１と、基準軸３０３とを決定する。そして、決定された基準位置３０１と基準軸３０３を表す情報を、各手領域３００と対応付けてＲＡＭ２０２に保持する。
【００４４】
ステップＳ４０５において、指先位置特定部２１２は、抽出されている手領域３００のそれぞれの輪郭から、１つ以上の指先位置を特定する。例えば、指が周りの指からある程度離れ、伸ばされている状態であれば、指は、手領域３００の輪郭に細い突起（凸部）のような形で現れる。指先位置特定部２１２では、その突起部分の先端を指先の位置として検出する。指が周りの指と接していたり、曲がっていたりする場合、手領域３００の輪郭からその指の指先は検出されない。なお、手領域３００のシルエットに基づいて指先を検出する技術は公知のものを利用可能であるため、詳細な内容の説明は省略する。特定された指先位置の位置情報（ｘｙｚ座標）は、各手領域３００と対応付けてＲＡＭ２０２に保持される。
【００４５】
ステップＳ４０６において、識別部２１４は、手領域３００毎に、特定された１以上の指先位置のそれぞれについて、基準位置３０１にする相対的な位置情報を取得する。本実施形態では、図３で示した通り、基準位置３０１にする相対的な位置情報は、基準軸３０３に基づいて、ｘｙ座標とｕｖ座標に変換する形式で定義される。識別部２１４は、ステップＳ４０５で検出された指先位置の位置情報（ｘｙｚ座標）と対応付けて、各指先位置の基準位置３０１にする相対的な位置情報（ｕｖ座標）をＲＡＭ２０２に保持する。
【００４６】
ステップＳ４０７において、識別部２１４は、前フレームの入力画像（前回ステップＳ４０７の処理対象となった入力画像）よりも、検出されている指先位置の数が増加したかを判定する。識別部２１４は、ＲＡＭ２０２に蓄積されているＩＤの数を使って、前フレームまでの画像で検出された指先位置の数を取得することができる。そして、現フレームの入力画像（直近のステップＳ４００で新たに取得された距離画像）から検出した指先位置の数と比較することで、ステップＳ４０７の判定を行う。前フレームの入力画像よりも、検出されている指先位置の数が増加したと判定された場合（ステップＳ４０７でＹＥＳ）、ステップＳ４０８に進む。前フレームの入力画像よりも、検出されている指先位置の数が増加したと判定されない場合（ステップＳ４０７でＮＯ）、ステップＳ４１１に進む。なお、手領域が検出された最初のフレームを処理している場合は、ＲＡＭ２０２に保持されているＩＤの数は０のため、ステップＳ４０７の判定結果はＹＥＳとなる。検出されている指先位置の数が増えないとはつまり、数が減少したか、同数である場合が含まれる。
【００４７】
ステップＳ４０８において、識別部２１４は、消失中の指が再検出されたのかを判定する。具体的には、現フレームの入力画像で決定した基準位置３０１と、ＲＡＭ２０２に保持されている１以上の指先位置の相対的な位置情報を使って、現フレームの入力画像に１以上の指先範囲３０４を配置する。指先範囲３０４は、連続するフレーム間での基準位置３０１に対する指先位置の相対的な位置の変化が、同一の指であるとみなされる程度の小さいものであるかを判定する為に使用される許容範囲を表すものである。現フレームで検出した指先位置のうち、配置された指先範囲３０４のいずれかに含まれ、かつ、指先範囲３０４と１対１で対応する指先位置は、前フレームまでに検出されていた指先と同じ指の指先であるとみなされる。指先位置が指先範囲３０４と１対１で対応するとは、その指先範囲３０４に含まれる指先位置が他には存在しないということである。いずれの指先範囲３０４にも含まれなかった指先位置は、ＩＤが未付与の指先位置として特定される。
【００４８】
ＲＡＭ２０２に保持されている既に識別済みの１以上の指先位置の相対的な位置情報には、後述するステップＳ４１４の処理によって、消失中の指であることを示す情報が関連付けられている場合がある。消失中の指であることを示す情報が付与されている場合、そのＩＤの指先は、前フレーム（直前のフレーム）の画像では検出されなかったが、その手領域が操作面１０１に出現してから現フレームまでの間に一度は検出されたことがあることを意味する。識別部２１４は、消失中の指であることを示す情報が付与されているＩＤの相対位置情報に基づいて設定される指先範囲３０４に、現フレームで検出した指先位置が含まれ、その範囲と１対１で対応する場合、消失中の指が再検出されたと判定する。消失中の指が再検出されたと判定された場合（ステップＳ４０８でＹＥＳ）、ステップＳ４０９に進む。消失中の指が再検出されたと判定されない場合（ステップＳ４０８でＮＯ）、ステップＳ４１０に進む。
【００４９】
ステップＳ４０９では、識別部２１４が、ＲＡＭ２０２において、再検出された指先位置のＩＤの付与されている、消失中の指であることを示す情報を削除する。ステップＳ４１０において、識別部２１４は、ステップＳ４０８で特定されたＩＤが未付与の指先位置に、新たにＩＤを付与し、ＲＡＭ２０２に保持させる。ステップＳ４１１において、識別部２１４は、現フレームの入力画像で検出されている全ての指の各ＩＤに、現フレームの入力画像で決定された最新の基準位置に対する相対的な位置情報に対応づけて、ＲＡＭ２０２に保持する。ここで保持された情報は、次のフレームの画像に対して図４のフローチャートの処理が実行される際には「前フレームの情報」として、参照される。
【００５０】
ステップＳ４１２では、認識部２１５が、ＲＡＭ２０２に保持されている指先位置の情報と、ＲＯＭ２０１に読み出されている辞書情報を参照して、ユーザによって入力された操作を認識し、結果を表示制御部２１６に出力する。例えば、いずれかの指先の高さ（ｚ座標）が、所定の高さの閾値よりも小さい場合は、タッチ入力中であると認識する。このとき更に、５指の配置を解析することで、親指、人差指など指の種類を特定してもよい。なお、ＲＡＭ２０２に保持されている指先のＩＤの中に、消失中の指であることを示す情報が付与されたものがある場合、当該ＩＤに関連付けられた指先の位置情報は、前フレーム以前の情報である。従って、本実施形態の認識部２１５は、ステップＳ４１２において、現フレームの入力画像から得られる最新の入力位置に着目した操作の認識を行う場合には、消失中の指であることを示す情報が付与されたＩＤの指先位置は用いない。
【００５１】
ただし、現フレームの入力画像から特定の指の指先が検出されないことは、センサの設置状況などによる検出漏れである可能性もある一方で、ユーザが意図的に指を曲げたり手を傾けたりした結果が検出されている場合もある。従って、認識部２１５は、ＲＡＭ２０２に蓄積されている、所定数あるいは所定期間分の連続フレームから得られた情報から、手のポーズの変化、あるいは指先位置の軌跡を取得する場合には、消失中の指も含めて全ての指に関する情報を参照する。このように本実施形態によれば、消失した指も識別し続けることができるため、例えば、特定の指を曲げたり伸ばしたりする動作なども、操作の一種として認識することができる。また認識部２１５は、ＲＡＭ２０２に蓄積された情報が、辞書に定義された操作に沿っていない場合は、結果の出力を保留として、ステップＳ４１５に進む。
【００５２】
ステップＳ４０７で、前フレームの画像よりも指先位置の数が増えていなかった場合、ステップＳ４１３において、識別部２１４が、前フレームの入力画像よりも、検出されている指先位置の数が減少したかを判定する。前フレームの入力画像よりも検出されている指先位置の数が減少したと判定された場合（ステップＳ４１３でＹＥＳ）、ステップＳ４１２に進む。前フレームの入力画像よりも、検出されている指先位置の数が減少したと判定されない場合（ステップＳ４１３でＮＯ）、ステップＳ４１１に進む。ここで検出されている指先位置の数が減っていない場合とは、前フレームと指先位置が同数である場合である。
【００５３】
ステップＳ４１４では、識別部２１４が、検出されなくなった指先のＩＤと、当該ＩＤの指先が減少前に検出されたときの相対位置情報を特定し、消失中の指であることを示す情報を関連付けて保持する。識別部２１４は、ステップＳ４０８と同様に、現フレームの入力画像で決定した基準位置３０１と、ＲＡＭ２０２に保持されている１以上の指先位置の相対的な位置情報を使って、現フレームの入力画像に１以上の指先範囲３０４を配置する。いずれの指先位置も含まれない指先範囲３０４を特定して、当該指先範囲３０４を配置する根拠となった前フレームの指先位置のＩＤに対して、消失中の指であることを示す情報を関連付けて保持する。そして、検出されなくなった指先が複数存在する場合は、その全てについて消失中の指であることを示す情報を関連付ける。
【００５４】
ステップＳ４１５では、認識部２１５が、処理を終了するかを判定する。例えば、ステップＳ４１０で認識された操作が操作認識の終了を指示するものであった場合、図４のフローチャートの処理は終了する。あるいは、所定時間（または所定数のフレームの取得）を待機しても、意味をもつ操作が認識されない場合も、終了する（ステップＳ４１５でＹＥＳ）。終了しない場合（ステップＳ４１５でＮＯ）は、ステップＳ４００で次のフレームの入力画像を取得し、図４のフローチャートの処理が繰り返される。
【００５５】
［識別処理の具体例］
次に、図５及び図６を参照して、複数フレームに渡って取得される入力画像から検出される手領域と識別される指先位置の状態遷移を説明する。図５は、特に、途中のフレームで一時的に一部の指が検出されなくなった場合を表している。
図５は、ユーザの右手が、５指が広げられた状態で動かされている操作空間を撮像した３枚の距離画像から抽出された手領域の状態遷移を表す。状態５００ａ、状態５００ｂ、状態５００ｃの順に時系列に沿っているとする。各状態において、手領域と手領域の交差部分に侵入位置（５０１ａ，５０１ｂ，５０１ｃ）と、「手」の部分の基準位置（５０２ａ，５０２ｂ，５０２ｃ）が示されている。また、侵入位置から基準位置に向かう破線の矢印が、基準軸に相当する。
【００５６】
状態５００ａは、手領域が最初に検出されたフレームの入力画像から得られた手領域であるとする。状態５００ａでは、手領域の輪郭形状に基づいて５箇所で指先位置が検出される（ステップＳ４０５）。最初のフレームでは、前フレームより指先位置は増加したと判定されるため（ステップＳ４０７でＹＥＳ）、ＩＤ未付与の状態である全ての指先に対して、図３で説明した基準に従いＩＤ１〜５が付与される（ステップＳ４１０）。ＲＡＭ２０２には、全ての指先位置、及び基準位置に対する相対的な位置情報が、ＩＤに関連付けて保持される（ステップＳ４１１）。
【００５７】
その後、状態５００ｂの手領域が取得された時点では、ユーザが少し手を移動させている。また状態５００ｂでは、薬指に相当するＩＤ２の指先が、中指に接してしまい、手領域の輪郭に現れていない。従って、手領域の輪郭形状に基づいて４箇所で指先位置が検出される（ステップＳ４０５）。前フレームより指先が減っているため（ステップＳ４０７でＮＯ、ステップＳ４１１でＹＥＳ）、検出されなくなった指先のＩＤと相対位置情報が特定される。ここで指先範囲５０３ｂは、状態５００ａでのＩＤ２の指先位置の基準位置５０２ａに対する相対位置が、状態５００ｂでの基準位置５０２ｂに対する相対位置として引き継がれた場合の仮想的な指先位置を中心とする円である。指先範囲５０３ｂ内に指先位置が検出されている場合、ＩＤ２の指先であると識別されるが、状態５００ｂでは、ＩＤ２の指先位置は検出されていない。従って、消失した指先はＩＤ２であると特定される（ステップＳ４１２）。ＩＤ１とＩＤ３〜５の指については、それぞれの指先範囲に１つずつ含まれるため、状態５００ａでの識別結果が維持される。そして、ＲＡＭ２０２に保持されている指先位置、及び基準位置に対する相対的な位置情報が、最新の入力画像から検出された情報に更新される（ステップＳ４１１）。
【００５８】
さらに手が動かされた後に相当する状態５００ｃでは、再び薬指が輪郭の特徴に現れている。従って、手領域の輪郭形状に基づいて５箇所で指先位置が検出され（ステップＳ４０５）、前フレームよりも増えている（ステップＳ４０７でＹＥＳ）。指先範囲５０３ｃは、状態５００ａでのＩＤ２の指先位置の基準位置５０２ａに対する相対位置が、状態５００ｃでの基準位置５０２ｃに対する相対位置として引き継がれた場合の仮想的な指先位置を中心とする円である。指先範囲５０３ｃ内に指先位置が検出されているので、消失していたＩＤ２の指先が再検出されたと判定される（ステップＳ４０８でＹＥＳ）。従って、ＩＤ１〜５の全ての指が、ＲＡＭ２０２に保持されている指先位置、及び基準位置に対する相対的な位置情報が、最新の入力画像から検出された情報に更新される（ステップＳ４１１）。このように指先を識別した結果に基づいて、認識部２１５が操作を認識する（ステップＳ４１２）。
【００５９】
このように本実施形態によれば、途中のフレームで一時的に一部の指が検出されなくなった場合に、一時的に消失した指は前後のフレームでは同一の指として識別される。そして、その他の検出され続けている指は一貫して同一の指として識別される。従って、消失した指と、検出されている指を混同することなく、操作の認識を継続することができる。例えば、親指と人差し指がマルチタッチ操作を入力中に、図５のように薬指が一時的に消失したような場合、従来は、指が減少した段階で親指と人差し指に新たなＩＤが振り直されてしまい、結果的にマルチタッチ操作の誤認識が生じることがあった。それに対し本実施形態では、薬指が一時的に消失したことが特定され、その他の指の識別結果は維持されるので、操作の誤認識を低減することができる。
【００６０】
図６は、特に、途中で検出される指が増える場合を表す。具体的には、ユーザの右手が人差指だけを伸ばした状態から指を開いていくところを撮像した３枚の距離画像から抽出された手領域の状態遷移が表されている。状態６００ａ、状態６００ｂ、状態６００ｃの順に時系列に沿っているとする。各状態において、手領域と手領域の交差部分に侵入位置（６０１ａ，６０１ｂ，６０１ｃ）と、「手」の部分の基準位置（６０２ａ，６０２ｂ，６０２ｃ）が示されている。また、侵入位置から基準位置に向かう破線の矢印が、基準軸に相当する。
【００６１】
状態６００ａでは、手領域の輪郭形状に基づいて１箇所で指先位置が検出される（ステップＳ４０５）。このとき、ユーザは最初のフレームから継続して１本の指だけを伸ばした指差しポーズで操作をしていたとする。従って、前フレームに比べて指先位置は増えても減ってもいないとする（ステップＳ４０７でＮＯ、ステップＳ４１１でＮＯ）。ＩＤ１の指先について、前フレームの情報に基づいて配置された指先範囲６０３ａの中で指先位置が検出されているため、人差指の指先は引き続きＩＤ１と識別される。そして、ＲＡＭ２０２に保持されている指先位置、及び基準位置に対する相対的な位置情報が、最新の入力画像から検出された情報に更新される（ステップＳ４１１）。
【００６２】
その後、状態６００ｂの手領域が取得された時点では、ユーザが指差しポーズをやめて、手を自然な形に開きつつある。従って、手領域の輪郭には５指全ての特徴が表れている。従って、手領域の輪郭形状に基づいて５箇所で指先位置が検出される（ステップＳ４０５）。前フレームより指先が増えており（ステップＳ４０７でＹＥＳ）、消失中の指はない（ステップＳ４０８でＮＯ）ため、新たに検出された指先は全てＩＤ未付与の状態である。従って、ＩＤ未付与の状態である全ての指先に対して、図３で説明した基準に従い基準軸から反時計回りにＩＤ２〜５が付与される（ステップＳ４１０）。前フレームで検出されていた人差指のＩＤは、ＩＤ１のままとなる。ＲＡＭ２０２には、各指先位置、及び基準位置に対する相対的な位置情報がＩＤに関連付けて保持される（ステップＳ４１１）。またこのとき、ＲＡＭ２０２には、図３で説明した基準に従って、ＩＤがＩＤ２、ＩＤ３、ＩＤ４、ＩＤ１、ＩＤ５の順となったことが保持される。
【００６３】
ユーザがさらに指を広げた状態６００ｃでは、手領域の輪郭形状に基づいて再び５箇所で指先位置が検出される（ステップＳ４０５）。この場合、前フレームと指先の数の変化はない（ステップＳ４０７でＮＯ、ステップＳ４１１でＮＯ）。従ってＩＤ１〜５の全ての指について、ＲＡＭ２０２に保持されている指先位置、及び基準位置に対する相対的な位置情報が、最新の入力画像から検出された情報に更新される（ステップＳ４１１）。なお、指先の数が変化しない場合は、ＲＡＭ２０２から５つのＩＤの順序を読み出し、引き続きそれらが維持されているものとしてＩＤを割り当てる。例えば、本実施形態では図３を参照して示した通り、基準軸に沿って基準位置（５０２ｂ，５０２ｃ）を見た場合に、最も右に存在する指先から順次若い番号が付与されている。ため、この基準に従って状態６００ｃでもＩＤ２、ＩＤ３、ＩＤ４、ＩＤ１、ＩＤ５の順のＩＤが割り当てられる。ただし、フレーム間で基準位置に対する相対位置が近い点同士を同一の指先とみなして位置情報を更新することもできる。また、指先の数が変化しない場合でも、前フレームまでに検出された情報に基づいて各ＩＤに対応する指先範囲を使って、新たに検出された指先位置と既に保持されているＩＤとの関連付けを行っても構わない。
【００６４】
このように指先を識別した結果に基づいて、認識部２１５が操作を認識する（ステップＳ４１２）。このように、本実施形態では、途中で検出される指が増加した場合でも、元から継続して検出されている指には継続して同じＩＤが付与される。そのため、操作中に手のポーズが変更されたとしても、継続して操作の認識が可能となる。例えば、人差し指でシングルタッチ操作を入力中に、図６のように他の指が検出され始めたような場合、従来は、指が増加した段階で人差し指を含めたすべての指に新たなＩＤが振り直されてしまい、結果的にタッチ操作の誤認識が生じることがあった。それに対し本実施形態では、元から検出されていた指の識別結果は維持されるので、操作の誤認識を低減することができる。
【００６５】
以上説明した通り、第１の実施形態によれば、連続する複数フレームの途中で指先の検出漏れが発生したり、手のポーズが変更に伴って輪郭形状が変わったことで検出される指先の数が増減したりした場合でも、同一の指を一貫して識別することができる。ユーザには手の無理な姿勢を強いることなく、自由度の高い入力を受け付けることができる。例えば、２本以上の指の軌跡を組み合わせることで多様な入力を実現するマルチタッチジェスチャの認識が容易となる。
【００６６】
上述した第１の実施形態では、複数の画像に渡って指先位置を識別することで、時系列に同一の指を追跡した結果を操作の認識に利用する。この際、識別処理に各指の種類の特定が含まれることは必須ではない。ただし、指の種類の特定まで含めて指を識別することによれば、さらに、入力画像から検出されない指の種類、あるいは検出される指の種類に応じて異なる処理を行う工夫ができる。例えば、上述した拡大／縮小、回転などのマルチタッチ操作には、親指と人差し指、あるいは人差指と中指の組み合わせが利用される頻度が高い。従って、入力画像から検出されなくなった指が、薬指や小指である場合、操作の誤認識の原因となる可能性は比較的低いとみなすことができる。これを利用して、認識部２１５に対して、検出されなくなった指がどの指か（どのＩＤか）によって、そのフレームで検出されている指の位置情報を操作の認識に利用するか、あるいは利用せずに次のフレームを待つかを切り替える処理を行わせることもできる。このようなフレーム毎の判断を加える変形によれば、操作に寄与する指が消失している場合には、誤った認識結果を出力してしまうことが避けられる。一方で、操作に寄与しない指の消失時は、影響を受けることなく、円滑に処理を進めることができる。
【００６７】
＜変形例＞
上述した第１の実施形態では、指先の数が変わらない場合に、指が変更されている可能性を考慮していなかった。しかしながら、入力画像を取得する周期や、ユーザの動きによっては、前フレームと現フレームから検出される指先の数が変化しなくても、検出されている指が変わることもある。ここで変形例として、そのような場合でも識別の誤りが低減される識別処理を説明する。
【００６８】
変形例に係る情報処理装置１００のハードウェア及び機能構成は第１の実施形態に準じるため、説明を省略する。ただし変形例に係る情報処理装置１００は、図７のフローチャートに従って、人の手による操作を認識する。なお図７のフローチャートにおいて、図４のフローチャートで説明したのと同じ内容の処理ステップには同じ番号を付し、詳細な説明は省略する。図４のフローチャートとの差異は、ステップＳ７００及びステップＳ７０１が追加されていることである。
【００６９】
変形例では、ステップＳ４１３において、前フレームの入力画像よりも、検出されている指先位置の数が減少したと判定されない場合（ステップＳ４１３でＮＯ）、ステップＳ７００に進む。ステップＳ７００では、識別部２１４が、検出されている指の相対位置が変化したかを判定する。相対位置が変化した場合は、検出されている指先位置が異なる指の指先に変化したとみなされる。識別部２１４はまず、現フレームの入力画像で決定した基準位置３０１と、ＲＡＭ２０２に保持されている１以上の指先位置の相対的な位置情報を使って、現フレームの入力画像に１以上の指先範囲３０４を配置する。そして、検出されている指先位置が、前のフレームで検出されていたＩＤの指先位置の指先範囲に含まれない場合、検出されている指の相対位置が変化したと判定する。検出されている指の相対位置が変化したと判定される場合（ステップＳ７００でＹＥＳ）、ステップＳ７０１に進む。ステップＳ７０１では、現フレームで検出されている指のＩＤを特定するとともに、変化前の指先には消失中の指であることを示す情報を関連付ける。ステップＳ７００の処理に置いて、複数の指先範囲を設定していて、かつ、そのいずれかに指先位置が含まれた場合は、当該指先範囲のＩＤを特定する。ステップＳ７００の処理に置いて、１つしか指先範囲が設定されていない場合、あるいは、どの指先範囲にも現フレームの指先位置が含まれない場合は、図３を参照して説明した基準に則って新たなＩＤが付与される。そして、ステップＳ４１１に進む。以降の処理は第１の実施形態と同じであるため、説明を省略する。
【００７０】
［識別処理の具体例］
次に、図８を参照して、複数フレームに渡って取得される入力画像から検出される手領域と識別される指先位置の状態遷移を説明する。図８は、人差指だけを伸ばした状態であったユーザの右手が、途中から中指だけを伸ばした状態に変化する場合でも、指が識別されることを表している。状態８００ａ、状態８００ｂの順に時系列に沿っているとする。各状態において、手領域と手領域の交差部分に侵入位置（８０１ａ，８０１ｂ）と、「手」の部分の基準位置（８０２ａ，８０２ｂ）が示されている。また、侵入位置から基準位置に向かう破線の矢印が、基準軸に相当する。状態８００ａでは状態６００ａと同様に、人差指の指先位置が検出されＩＤ１が付与される。
【００７１】
状態８００ｂでは、ユーザが伸ばす指を中指に変更しており、中指の指先位置の１箇所が検出される（ステップＳ４０５）。検出される指先位置の数は変化していない（ステップＳ４０７でＮＯ、ステップＳ４１１でＮＯ）。ここで指先範囲８０３ｂは、状態８００ａで検出されていたＩＤ１の指の基準位置８０２ａに対する相対位置を、状態８００ｂの基準位置８０２ｂの周りにそのまま適応した場合の指先位置の周囲に設定された円である。指先範囲８０３ｂは、状態８００ａから状態８００ｂに遷移する間での、ＩＤ１の指先の位置の変化の許容範囲を表す。状態８００ｂにおいて、指先範囲８０３ｂ内で指先位置は含まれない（ステップＳ７００でＹＥＳ）。さらに、ＲＡＭ２０２に他にＩＤは保持されていないため、状態８００ｂで新たに検出された指先位置は、新たにＩＤ２が付与される。以降、ＩＤ１の指先は、消失した指として扱われる。
【００７２】
このように指先を識別した結果に基づいて、認識部２１５が操作を認識する（ステップＳ４１２）。以上のように変形例によれば、ユーザが手の状態を変更したにも関わらず、検出される指の数が変わらなかったとしても、指の識別に生じる誤りを低減することが可能となる。
【００７３】
＜第２の実施形態＞
次に第２の実施形態として、連続してフレーム画像を取得する中で、指先位置の数が減少した場合は、検出漏れである可能性があることを鑑み、前フレームまでに検出されている情報を利用して仮想的な指先位置を決定する例を説明する。これにより、指先の検出漏れが発生したとしても、操作の認識が中断されてしまうという情報処理装置１００の誤動作を低減することが可能となる。
【００７４】
［装置の構成］
第２の実施形態に係る情報処理装置１００のハードウェア構成は第１の実施形態に準じるため、説明を省略する。また、機能構成は、図９（ａ）に示される。ただし、図２（ｂ）でと同じ番号を付した機能部の主な動作は、第１の実施形態と同様のため説明は省略し、差異を説明する。第２の実施形態の情報処理装置１００の機能構成では、仮想指先決定部９００が加わっている。仮想指先決定部９００は、ＲＡＭ２０２から、消失中の指を表す情報が付与されたＩＤの、基準位置に対する相対位置情報を使って、仮想的な指先位置を決定する。
【００７５】
［操作認識処理］
次に、図１０のフローチャートに沿って、本実施形態に係る情報処理装置１００が実行する操作認識処理の詳細を説明する。第２の実施形態でもまた、距離画像センサ１０２から入力画像が所定の周期毎に入力される度に、図１０のフローチャートが繰り返される。所定の周期は、例えば３０フレーム／１秒、１５フレーム／１秒である。初回は、ＲＡＭ２０２のワーク領域が初期化され、ステップＳ４００のステップの処理が開始される。以下、図４のフローチャートで説明したのと同じ内容の処理ステップには同じ番号を付し、詳細な説明は省略する。図４のフローチャートとの差異は、ステップＳ１０００が追加されていることである。
【００７６】
第２の実施形態では、ステップＳ４１４において、識別部２１４が検出されなくなった指先のＩＤと前フレームでの相対位置情報を特定し、消失中の指であることを示す情報を関連付けて保持したら、ステップＳ１０００に進む。ステップＳ１０００では、仮想指先決定部９００が、消失中の指を表す情報が付与されたＩＤに関連付けられた相対位置情報に基づいて、仮想指先位置を作成する。
【００７７】
ここで、図１１のフローチャートを参照して、ステップＳ１０００で実行される処理の流れを説明する。ステップＳ１１００では、仮想指先決定部９００が、ＲＡＭ２０２から、消失中の指を表す情報が付与されたＩＤの指先の、前フレームでの相対位置情報を取得する。ステップＳ１１０１では、仮想指先決定部９００が、ＲＡＭ２０２に保持されている、現フレームでの基準位置の位置情報と、消失中の指先に関連付けられた相対位置情報から仮想指先位置の座標を決定する。具体的には、消失中の指について関連付けられている基準位置に対する相対位置が、現フレームの入力画像について決定された基準位置に対してそのまま維持されていた場合に指先が存在すべき位置の座標を算出する。
【００７８】
ステップＳ１１０２では、仮想指先決定部９００が、ステップＳ１１０１で決定された仮想指先位置が、手領域の内側に含まれるかを判定する。ここで、手領域の内部には手領域の輪郭を構成する画素群も含まれる。仮想指先位置が手領域の内側に含まれると判定されない場合（ステップＳ１１０２でＮＯ）、ステップＳ１１０３に進む。仮想指先位置が手領域の内側に含まれると判定された場合（ステップＳ１１０２でＹＥＳ）、ステップＳ１１０５に進む。ステップ１１０３では、仮想指先決定部９００が、手領域の輪郭上で、ステップＳ１１０１で決定された仮想指先位置に最も近い点を特定する。ステップＳ１１０４では、仮想指先決定部９００が、仮想指先位置を、ステップＳ１１０３で特定された点に変更する。ステップＳ１１０５では、仮想指先決定部９００が、消失中の指を表す情報が付与されたＩＤに、決定された仮想指先位置の、現フレームの入力画像で検出された基準位置に対する相対的な位置情報を関連付けて保持する。以降の処理は第１の実施形態と同じであるため、説明を省略する。
【００７９】
［識別処理の具体例］
次に、図１２を参照して、２フレームに渡って取得される入力画像から検出される手領域と識別される指先位置の状態遷移を説明する。図１２は、途中から一部の指が検出されなくなった場合に、仮想的な指先位置が決定されることを表している。手領域の変化は、図５の状態５００ａから状態５００ｂへの遷移と同じである。状態１２００ａ、と状態１２００ｂは時系列に沿って取得された異なるフレーム画像から抽出された手領域に対応する。状態１２００ｂ、状態１２００ｃ、状態１２００ｄ、状態１２００ｅの各状態は、同じ入力画像から抽出された手領域について、仮想指先位置を決定する処理が段階的に行われることが表される。各状態について、手領域と手領域の交差部分に侵入位置（１２０１ａ，１２０１ｂ，１２０１ｃ，１２０１ｄ，１２０１ｅ）と、「手」の部分の基準位置（１２０２ａ，１２０２ｂ，１２０２ｃ，１２０２ｄ，１２０２ｅ）が示されている。また、侵入位置から基準位置に向かう破線の矢印が、基準軸に相当する。また、侵入位置から基準位置に向かう破線の矢印が、基準軸に相当する。
【００８０】
状態１２００ａでは状態５００ａと同様に、５指の指先にそれぞれＩＤ１〜５が付与される。状態１２００ｂでは、状態５００ｂと同様に、ＩＤ２の薬指を除く４箇所で指先位置が検出され（ステップＳ４０５）、ＩＤ２には、消失中の指であることを表す情報が付与される（ステップＳ４１４）。
【００８１】
ここで、状態１２００ｃは、ステップＳ１１０１の処理により、仮想指先位置が決定された状態を表す。消失中の指であるＩＤ２の指先について関連付けられている相対位置は、状態１２００ａにおけるＩＤ２の指先の、基準位置１２０２ａに対する相対的な位置情報である。ステップＳ１１０１では、この相対位置情報を、状態１２００ｂの基準位置１２０２ｂに適用することで、仮想指先位置１２０３を決定する。しかしながら、仮想指先位置１２０３は、手領域内に含まれない（ステップＳ１１０２でＮＯ）。さらに、状態１２００ｄでは、仮想指先位置１２０３から最も近い手領域の輪郭上の点１２０４が特定され（ステップ１１０３）、最終的な仮想指先位置１２０４として決定される（ステップＳ１１０４）。そして、仮想指先位置１２０４の位置情報と、基準位置１２０２ｂに対する相対位置情報とが、ＩＤ２に関連付けて保持される（ステップＳ１１０５）。
【００８２】
このように指先を識別した結果に基づいて、認識部２１５が操作を認識する（ステップＳ４１２）。このように、本実施形態では、途中で検出される指が減少した場合、前フレームまでで取得されていた基準位置に対する相対位置の情報を使って、仮想的な指先位置を決定し、操作の認識に利用する。多くの場合、途中のフレームで一部の指先が一時的に検出されなかった場合に、ユーザはそれを自覚できず、操作の認識が中断されてしまうことがストレスになり易い。第２の実施形態によれば、一時的な検出漏れが発生した場合に、操作の認識を継続できるので、ユーザの煩わしさを軽減することができる。なお、第２の実施形態にも第１の実施形態と同様に、指先位置の数が変化しない場合に指が変わったことを判定する変形例を適用することが可能である。
【００８３】
＜第３の実施形態＞
上述した第１及び第２の実施形態では、手領域のうち「手」の部分の基準位置に対する指先位置の相対的な位置を定義する為の基準軸として、入力画像から抽出した手領域と入力画像の画像端との交差部分に定めた侵入位置と、基準軸とを結ぶ直線を採用した。これは図１で例示したように、ユーザと距離画像センサ１０２の位置関係が固定されている場合には、このような基準軸の定め方が効果的に利用できる。しかしながら、各ハードウェアの配置が異なる場合や、複数の画像取得手段が用いられる場合や、空間がより大きい場合には、上記のような侵入位置を使って基準軸を設定することが難しい場合がある。第３の実施形態では、第１及び第２実施形態で説明した手による操作の認識処理を、さらに多様なシステムへの適用を実現可能とするため、手領域の形状から基準軸を決定する例を説明する。
【００８４】
［装置の構成］
第３の実施形態に係る情報処理装置１００のハードウェア構成は第１の実施形態に準じるため、説明を省略する。また、機能構成は、図９（ｂ）に示される。ただし、図２（ｂ）でと同じ番号を付した機能部の主な動作は、第１の実施形態と同様のため説明は省略し、差異を説明する。第２の実施形態の情報処理装置１００の機能構成と第１の実施形態の図２（ｂ）との差異は、基準決定部２１３に代わって、基準位置決定部９０１と基準軸決定部９０２が追加されたことである。基準位置決定部９０１は、基準決定部２１３と同様、手領域のうち「手」の部分の重心を求め、基準位置として決定する。基準軸決定部９０２は、予めＲＯＭ２０１や記憶装置２０３に記憶されている手の形状モデルと、入力画像から抽出された手領域の輪郭の形状とを比較することで、基準軸を決定する。
【００８５】
［基準軸決定処理］
第３の実施形態において、情報処理装置１００によって実行される人の手による操作認識処理は、ステップＳ４０４の基準位置と基準軸の設定処理を除いては、図４のフローチャートに従う。第３の実施形態のステップＳ４０４で実行される処理を、図１３のフローチャートを参照して説明する。
【００８６】
ステップＳ４０４の処理が開始されると、ステップＳ１３００において、基準位置決定部９０１が、基準位置を決定する。基準位置の決定方法は、第１の実施形態と同じでよい。次にステップＳ１３０１では、基準軸決定部９０２が、ステップＳ４０２で取得された手領域の輪郭から複数の特徴点を抽出し、各特徴点について基準位置に対する相対位置情報を取得する。次に、ステップＳ１３０２では、基準軸決定部９０２が、ＲＯＭ２０１や記憶装置２０３、あるいはＲＡＭ２０２などの記憶部から読み出された辞書から、１以上の手の形状モデルの情報を取得する。手の形状モデルとは、距離画像センサ１０２が撮像し得る手領域の形状を、特徴量の分布で表したデータである。
【００８７】
図１４は、取得される手の形状モデルの一例を表す図である。例えば、モデル１４００ａ、１４００ｂ、１４００ｃは、伸ばした指の数が異なる場合の手が、手領域として抽出された場合の輪郭の形状を表すモデルの一例である。また、モデル１４００ｄ、１４００ｅは、所定のマルチタッチ操作中の手の状態が手領域として抽出された場合の輪郭の形状を表すモデルの一例である。また、モデル１４００ｆ、１４００ｇ、１４００ｈは、手の自然な動きの中で検出され易い手の状態が手領域として抽出された場合の輪郭の形状を表すモデルの一例である。このように、本実施形態の辞書には、操作が行われる環境において手領域として検出され得る複数パターンのモデルが予め登録されている。複数パターンの中には、同じ状態（ポーズ）の手について、撮像系との位置関係が異なることによって輪郭から得られる特徴量のパターンが異なるというパターンも含む。それぞれの形状モデルのデータには、少なくとも輪郭の特徴量と、基準位置１４０１および基準軸１４０２の輪郭を表す位置情報とが定義されている。ステップＳ１３０３において基準軸決定部９０２は、辞書に登録されている複数の手の形状モデルのうち、少なくとも１つ以上の形状モデルを取得する。取得されるモデルは、例えば、現フレームでの手領域の侵入位置の場所や、特徴量に応じて絞り込まれてもよい。
【００８８】
ステップＳ１３０３において、基準軸決定部９０２は、取得された手の形状モデルのうちの１つを選択する。そしてステップＳ１３０４において、入力画像から抽出された手領域の基準位置に、選択した手の形状モデルの基準位置を一致させて、形状モデルを所定角度ずつ回転させた複数の状態のそれぞれで、手領域の特徴量と手の形状モデルの特徴量の類似度を特定する。そして、類似度が最も大きくなる回転角度を特定する。ステップＳ１３０５において、基準軸決定部９０２は、最も大きい類似度が、保持されている類似度よりも大きいかを判定する。ここで保持されている類似度とは、他の手の形状モデルに対して同じ処理をした中で得られた最も大きい類似度である。最も大きい類似度の情報が保持されていない場合、ステップＳ１３０５の判定はＹＥＳとなる。最も大きい類似度が、保持されている類似度よりも大きいと判定された場合（ステップＳ１３０５でＹＥＳ）、ステップＳ１３０６に進む。最も大きい類似度が、保持されている類似度よりも大きいと判定されない場合（ステップＳ１３０５でＮＯ）、ステップＳ１３０７に進む。
【００８９】
ステップＳ１３０６において、基準軸決定部９０２は、ステップＳ１３０４で特定した回転角度と、そのときの最も大きい類似度の情報を、現フレームでの手領域の状態を表す情報としてＲＡＭ２０２に保持する。ステップＳ１３０７では、ステップＳ１３０２で取得された全ての手の形状モデルを処理済みかが判定される。全ての手の形状モデルが処理済みと判定された場合（ステップＳ１３０７でＹＥＳ）、ステップＳ１３０８に進む。全ての手の形状モデルが処理済みと判定されない場合（ステップＳ１３０７でＮＯ）、ステップＳ１３０３に戻って処理が繰り返される。
【００９０】
ステップＳ１３０８において、基準軸決定部９０２は、ＲＡＭ２０２に保持されている現フレームでの手領域の状態を表す情報に基づいて、基準軸を決定する。具体的には、手の形状モデルに定義された基準軸が、現フレームでの手領域の基準軸を中心に、特定された回転角度の分回転した状態を、現フレームの手領域の基準軸として決定する。
【００９１】
以上のように、第３の実施形態によれば、入力画像から抽出された手領域の形状に基づいて、フレーム毎に基準軸を決定することができる。これにより、第１及び第２実施形態で説明した手による操作の認識処理を、さらに多様なシステムへの適用可能となる。例えば、バーチャルリアリティ用のヘッドマウントディスプレイにカメラを付けて、ユーザの手を撮影して、実際の物へのタッチを認識する場合等にも利用できる。
【００９２】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９３】
２１０  画像取得部
２１１  手領域抽出部
２１２  指先特定部
２１３  基準決定部
２１４  識別部
２１５  保持部
２１６  認識部
２１７  表示制御部
【図１】
0006562752.tif 000002
【図２】
0006562752.tif 000003
【図３】
0006562752.tif 000004
【図４】
0006562752.tif 000005
【図５】
0006562752.tif 000006
【図６】
0006562752.tif 000007
【図７】
0006562752.tif 000008
【図８】
0006562752.tif 000009
【図９】
0006562752.tif 000010
【図１０】
0006562752.tif 000011
【図１１】
0006562752.tif 000012
【図１２】
0006562752.tif 000013
【図１３】
0006562752.tif 000014
【図１４】
0006562752.tif 000015