(57)【特許請求の範囲】
【請求項１】
所定の対象面を背景とする空間に向けた撮像部により撮像した画像を取得する画像取得手段と、
前記画像を構成する複数の領域に関して、基準となる位置から各領域の被撮像面までの距離に相当する情報を取得する距離取得手段と、
前記画像取得手段によって取得された１の画像のうち、物体の所定の部位が撮像された第１領域に関して前記距離取得手段によって取得される情報と、前記画像の一部であって前記第１領域の周囲に接する第２領域に関して前記距離取得手段によって取得される情報を使って、前記物体による前記対象面への入力を認識する認識手段と、
前記認識手段により、前記物体による前記対象面への入力が認識された場合、前記第１領域から特定される領域の重心の位置に基づき前記入力により指示されたとみなされる位置を決定する決定手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記認識手段は、前記第１領域に関して前記距離取得手段によって取得される情報と、前記第２領域に関して前記距離取得手段によって取得される情報を使って、前記物体の前記所定の部位と前記対象面の間の距離が所定の距離より小さいと判定される場合、前記物体による前記対象面への所定の入力状態を認識することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記所定の入力状態とは、前記物体が前記対象面にタッチしているとみなされる状態であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記画像おいて、前記物体の所定の部位の輪郭から所定距離にある画素の集合のうち前記第１領域を除く部分を、前記第２領域として設定する設定手段を更に備えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記画像に写る前記物体の所定の部位の輪郭の形状に基づいて、前記画像から前記第１領域を抽出する抽出手段と、
前記抽出手段に抽出された前記第１の領域の形状に基づいて、前記第２領域を設定する設定手段を更に備えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項６】
前記認識手段は、前記画像のうち前記第１領域に反映された距離に基づいて推定される基準となる位置から前記物体の所定の部位までの距離と、前記画像のうち前記第２領域に反映された距離に基づいて推定される前記基準から前記対象面のうち前記物体の所定の部位に遮蔽された部分までの距離との差分が、前記所定の距離より小さい場合、前記入力を認識することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記画像のうち前記物体の所定の部位が写る第１領域に反映された距離に基づいて、基準となる位置から前記物体の所定の部位までの距離に相当する情報を取得し、前記画像の一部であって前記第１領域の周辺に位置する第２領域に反映された距離に基づいて、前記基準となる位置から前記対象面までの距離に相当する情報を取得する距離取得手段を更に備え、
前記認識手段は、前記距離取得手段によって取得された情報から取得される前記基準となる位置から前記物体の所定の部位までの距離と前記基準となる位置から前記対象面までの距離の差分が、前記所定の距離より小さいことに基づいて、前記物体による前記対象面への入力を認識することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項８】
前記距離取得手段は、前記画像のうち前記第２領域に反映された距離に基づいて、前記基準となる位置から、前記対象面のうち前記物体の所定の部位に遮蔽された部分までの距離とみなされる距離を取得することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記第２領域を所定の条件に基づいて１つ以上の小領域に分割する分割手段を備え、
前記距離取得手段は、分割された前記小領域毎に、前記基準となる位置から前記小領域に写る前記対象面までの距離を取得し、
前記認識手段は、前記基準となる位置から前記物体の所定の部位までの距離と、前記小領域毎に取得された距離のうち少なくとも１つとの差分が、前記所定の距離より小さい場合、前記物体による前記対象面への入力を認識することを特徴とする請求項７又は８に記載の情報処理装置。
【請求項１０】
前記分割手段は、前記第２領域を距離の不連続性に基づいて１つ以上の小領域に分割することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記画像から、前記分割された前記小領域のうち、該小領域から取得される前記基準となる位置から前記小領域に写る前記対象面までの距離と、前記基準となる位置から前記物体の所定の部位までの距離との差分が前記所定の距離を下回る小領域について、前記第１領域との接点の集合を取得する接点取得手段と、
前記認識手段により前記入力が認識された場合に、前記第１領域から前記接点の集合を含む小領域を抽出し、抽出された領域の重心に基づいて前記所定の部位によって指示される位置を検出する位置検出手段を備えることを特徴とする、
請求項９又は１０に記載の情報処理装置。
【請求項１２】
前記画像取得手段が取得する画像から、少なくとも前記物体が写る領域を除いた領域に関して前記距離取得手段が取得する距離の情報を、背景の距離の情報として記憶する記憶手段と、前記画像取得手段が取得する画像に反映された距離に基づいて、前記基準となる位置から前記物体が写る領域を除いた領域に相当する被撮像面までの距離の変動の有無を検出する変動検出手段を更に備え、
前記認識手段は、前記変動検出手段によって変動が検出されない場合、前記画像のうち前記第１領域に反映された距離に基づいて推定される前記基準となる位置から前記物体の所定の部位までの距離と、前記記憶手段に記憶された前記背景の距離の情報によって示される前記第１領域に対応する距離に基づいて推定される前記基準から前記対象面のうち前記物体の所定の部位に遮蔽された部分までの距離との差分が、前記所定の距離より小さいことに基づいて、前記画像中で指示部位に遮蔽された面に指示部位が接触していることを認識することを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記認識手段は、前記物体のうち前記所定の部位と対象面の間の距離が所定の距離より小さいことを、前記物体による前記対象面へのタッチ入力として認識することを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記画像は、各画素に撮像された被撮像面までの距離に相当する情報を画素値として格納した距離画像であることを特徴とする請求項１乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
情報処理装置の制御方法であって、
画像取得手段により、所定の対象面を背景とする空間に向けた撮像部により撮像した画像を取得する取得する画像取得工程と、
距離取得手段により、前記画像を構成する複数の領域に関して、基準となる位置から各領域の被撮像面までの距離に相当する情報を取得する距離取得工程と、
認識手段により、前記画像取得工程において取得された１の画像のうち、物体の所定の部位が撮像された第１領域に関して前記距離取得工程で取得される情報と、前記画像の一部であって前記第１領域の周囲に接する第２領域に関して前記距離取得工程で取得される情報を使って、前記物体による前記対象面への入力を認識する認識工程と、
前記認識工程で前記物体による前記対象面への入力が認識された場合、決定手段により、前記第１領域から特定される領域の重心の位置に基づき前記入力により指示されたとみなされる位置を決定する決定工程とを有することを特徴とする情報処理装置の制御方法。
【請求項１６】
コンピュータに読み込ませ実行させることによって、前記コンピュータを、請求項１乃至１４のいずれか１項に記載の情報処理装置として動作させるプログラム。
【請求項１７】
請求項１６に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作者によるタッチ入力を検出する技術に関する。
【背景技術】
【０００２】
近年では、プロジェクションによってユーザインタフェース（以下、ＵＩ）を壁や机など任意の操作面に投影し、投影したＵＩに対してタッチが行われる場面がある。また、ＡＲ（Augmented Reality）やＭＲ（Mixed Reality）といった環境では、物理的に存在する物体に対するタッチに基づき、その物体に関連する情報をＨＭＤ（Head Mount Display）に表示する場面がある。
【０００３】
このような場面においては、ステレオカメラや赤外カメラ等、距離情報を得ることが可能な距離画像の撮像部を用い、対象面と所定の操作体の一部（例えば操作者の指先）との間の距離に基づいて、両者が接触しているか否かを判定することが多い。具体的には、対象面と、操作者の指先との間の距離に所定の閾値を設け、その閾値を超える程度両者が近づいた場合に、指先が対象面にタッチしたと判定する。以下、指先と対象面が非接触の状態から接触することをタッチ、接触状態から非接触になることをリリースと表記する。
【０００４】
距離画像に基づくタッチ検出においては、対象面が操作体に遮蔽され、距離画像の撮像部など距離情報を取得する手段の死角になり得るため、操作体に遮蔽された場合であっても撮像部から対象面までの距離を推定することが必要となる。
【０００５】
特許文献１は、対象面に所定の画像を投影し、それを撮像した画像を解析することにより撮像部から対象面までの距離を予め計測することとしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４８５８６３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
対象面を含む物体が動いた場合や、ＨＭＤに搭載された撮像部が動いた場合など、撮像部から対象面までの距離に変動が生じることがある。距離変動後の対象面と撮像部間の距離関係を再計測できればよいが、対象面が操作体に遮蔽された状態で距離変動が生じた場合、撮像部と遮蔽されている領域の間の距離を再計測することは困難である。特許文献１は、そのような場合に対する考慮はなされておらず、遮蔽された状態で変動した対象面に対するタッチ操作を検出することができない。
【０００８】
本発明は、操作体と対象面の間の距離が所定の距離より小さくなることを、操作体による対象面への入力として認識するシステムにおける入力の認識精度の向上を目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記の目的を達成するための一手段として、所定の対象面を背景とする空間に向けた撮像部により撮像した画像を取得する画像取得手段と、  前記画像を構成する複数の領域に関して、基準となる位置から各領域の被撮像面までの距離に相当する情報を取得する距離取得手段と、前記画像取得手段によって取得された１の画像のうち、物体の所定の部位が撮像された第１領域に関して前記距離取得手段によって取得される情報と、前記画像の一部であって前記第１領域の周囲に接する第２領域に関して前記距離取得手段によって取得される情報を使って、前記物体による前記対象面への入力を認識する認識手段と、前記認識手段により、前記物体による前記対象面への入力が認識された場合、前記第１領域から特定される領域の重心の位置に基づき前記入力により指示されたとみなされる位置を決定する決定手段とを備える。
【発明の効果】
【００１０】
本発明によれば、操作体と対象面の間の距離が所定の距離より小さくなることを、操作体による対象面への入力として認識するシステムにおける入力の認識精度の向上を向上することができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態の情報処理装置を利用するシステムの外観の一例を表す図
【図２】（ａ）第１実施形態の情報処理装置のハードウェア構成、（ｂ）第１実施形態の機能構成の一例を表すブロック図
【図３】第１実施形態における領域指定操作の認識処理の流れの一例を表すフローチャート
【図４】第１実施形態における領域指定操作の認識処理において取得される可視光画像の例を表す図
【図５】第１実施形態におけるタッチ認識処理の流れの一例を表すフローチャート
【図６】（ａ）第１実施形態における指先領域と内部が物体で占められる場合の窓領域の一例を表す図、（ｂ）第１実施形態における指先領域と内部が一様でない場合の窓領域の一例を表す図
【図７】第１実施形態における窓領域の分割の一例を表す図
【図８】（ａ）第１実施形態における指先領域の切出しと指先位置検出の一例を表す図、（ｂ）第１実施形態における接触判定された小領域が複数存在する場合の指先領域の切出しと指先位置検出の一例を表す図
【図９】第１実施形態における動いている物体に対してタッチ入力が行われる様子を撮像した可視光画像の一例を表す図
【図１０】変形例の機能構成の一例を表すブロック図
【図１１】変形例における領域指定操作の認識処理の流れの一例を表すフローチャート
【図１２】変形例における背景距離画像に基づくタッチ認識処理の流れの一例を表すフローチャート
【図１３】変形例における把持物体と非把持物体に対してタッチ入力が行われる様子を撮像した可視光画像の一例を表す図
【発明を実施するための形態】
【００１２】
以下、本発明に係る実施形態の情報処理を、図面を参照して詳細に説明する。なお、実施形態に記載する構成は例示であり、本発明の範囲をそれらの構成に限定する趣旨のものではない。
【００１３】
＜第１実施形態＞
一般的に「タッチ」とは、物体の表面やそこに投影されたアイテムの表示領域に指先を接触または近接させることにより当該物体およびアイテムに対するタッチ入力を開始する動作である。また、「リリース」とは、タッチ操作後の物体およびアイテムから接触または近接させた指先を離すことにより、当該物体およびアイテムに対するタッチ入力を終了する動作である。タッチを採用する多くの情報処理装置は、タッチからリリースに至る間の指先の位置、動き、速度等に基づいて「タップ」、「ムーブ」、「フリック」等の様々なタッチ操作を認識することができる。例えば、指先を対象面にタッチした後、対象面に沿った方向にはほぼ動かさずにすぐリリースするという一連の入力は、「タップ」と呼ばれ、タッチした物体を選択するための指示として認識されることが多い。また、指先を対象面にタッチした後、タッチ状態のまま指先を対象面に沿った方向に動かす入力は、「ムーブ」と呼ばれ、タッチした物体の移動や範囲指定、線を描画するための指示として認識されることが多い。ただし本実施形態では、「タッチ」と「リリース」のそれぞれを「タッチ操作」及び「リリース操作」という単独の操作の入力として認識し、認識する度に操作者に対してフィードバックを行う情報処理装置を例に説明していく。例えば、タッチ操作が認識されたことに応じて、対象面のタッチされた位置（以下、タッチ位置）にポインタを投影表示する。さらにリリース操作が認識された場合には、ポインタの投影表示を終了する。また、本実施形態では、タッチからリリースに至る間の接触状態に基づいて入力される操作全般を、タッチ入力と表記する。
【００１４】
スマートホンやタブレットＰＣなどの携帯型装置では、多くの場合、表示画面に設けたタッチセンサにより操作者の指先が表示画面に接触したことを直接検出し、タッチとリリースを認識することができる。これに対し、タッチセンサを設けない任意の物体上の面に対するタッチとリリースを検出する場合は、距離画像の撮像部等を用いて指先と対象面との間の距離を計測する。これは、撮像部内の素子の位置等を基準とし、基準から指先までの距離と基準から対象面までの距離を計測することに等しい。このようにタッチの対象面が任意の物体等の場合、対象面自体が変動し、基準から対象面までの距離が変化する可能性がある。また、撮像部が可動する場合には、撮像部が動くことで基準から対象面までの距離が変化する可能性がある。そのため、周期的に基準からタッチ対象面までの距離を計測することが望ましい。しかし、対象面が指先を含む手や腕に遮蔽され撮像部の死角になると、対象面までの距離を計測できない場合がある。しかしながら、遮蔽された状態で対象面または撮像部が動き、撮像部から対象面までの距離が変化したとしても、対象面のうち何らかの物体で遮蔽されている部分（以下、遮蔽領域）までの距離は再計測することが困難である。このとき、対象面の遮蔽領域に対する指先によるタッチ及び／又はリリースを精度良く検出することができない。また、このとき撮像部から対象面までの距離が予め計測された距離から変化していない可能性もあるが、その事実を確認できなければ、予め計測された距離を使った検出結果の信頼性が低下してしまう。
【００１５】
そこで本実施形態では、遮蔽された対象面に対する指先のタッチ及び／又はリリースを、指先に遮蔽された遮蔽領域周辺の対象面の距離と指先の距離との比較に基づき検出する。具体的には、画像中の指先周辺に窓領域を設け、窓内の各画素に対する撮像部からの距離に基づき、基準から遮蔽領域に含まれる対象面までの距離を推定し、同じ基準から指先までの距離と比較する。遮蔽領域の内部において対象面が平坦であれば、基準から遮蔽領域の周辺に位置する対象面までの距離が、基準から対象面のうち指先に遮蔽された部分までの距離に近いことが推定可能である。さらに本実施形態では、窓内の距離の値が空間的に不連続であれば、不連続面で窓を小領域に分割した上で、小領域毎に基準から対象面までの距離を決定し、それぞれ同じ基準から指先までの距離と比較する。また、指先との距離が近いと判定された小領域と指先との画像中の接点に基づいて、タッチ位置を決定する。遮蔽領域の内部において対象面が平坦でない場合であっても、このように小領域に分割して局所的に見ることで、基準から遮蔽領域の周辺に位置する対象面までの距離が、基準から対象面のうち指先に遮蔽された部分までの距離に近いという推定が成立する。
【００１６】
以下、第１実施形態として、テーブルトップインタフェースシステムの操作面に操作者が物体を載置し、物体の表面上の任意領域を操作者が片手の指１本によるタッチ入力によって指定し、その領域を撮影する場合を例に挙げて説明する。利用されるタッチ入力は、タッチ〜ムーブ〜リリースという一連の操作であるとする。ここで、操作体は操作者の手、操作体のタッチ位置を指示するに用いられる所定の部位（以下、指示部位）は手の端部に当たる指先部分である。タッチ入力の対象面はテーブルと物体の表面に相当する。なお、以下では、操作者が操作の入力に用いる操作体として操作者の手を例に挙げるが、スタイラスやロボットアームなどの物体が操作体として利用される場合にも適用可能である。
【００１７】
［システムの外観］
図１は、本実施形態に係る情報処理装置１００を設置したテーブルトップインタフェースシステムの外観の一例である。また、３次元空間内の位置情報を定義する座標軸も示す。操作面１０１は、テーブルトップインタフェースのテーブル部分であり、操作者は、操作面１０１をタッチすることでタッチ操作を入力することが可能である。本実施形態では、テーブルの上方に、操作面１０１を見下ろすようにして可視光カメラ１０２と距離画像センサ１０３が設置される。従って撮像される各々の画像では、奥行き方向が操作面１０１と交差する。すなわち、撮像される画像の奥行き方向が操作面１０１からの距離（高さ）に関連し、この情報がタッチ入力の検出に利用される。可視光カメラ１０２によって得られる可視光画像は、情報処理装置１００に入力画像として入力される。情報処理装置１００は、入力画像を解析し画像中の肌色領域を抽出することにより、操作面１０１上の空間に存在する操作者の手１０６を検出する。また本実施形態では、情報処理装置１００は、可視光カメラ１０２を制御して、操作面１０１に載置された物体１０７を撮影してその読み取り画像を得る書画カメラとして機能することができる。
【００１８】
本実施形態では、距離画像センサ１０３も、操作面１０１を見下ろすようにして設置される。距離画像とは、各画素の値に、基準となる位置（例えば、撮像に利用された撮像手段のレンズ中心など）からその画素に撮像された被撮像面までの、画像の奥行き方向に沿った距離に対応する情報が反映された画像である。本実施形態において、距離画像センサ１０３が撮像する距離画像の画素値には、距離画像センサ１０３を基準とし、操作面１０１あるいはその上方に存在する操作者の手１０６や物体１０７の表面までの距離が反映される。情報処理装置１００は、可視光画像および距離画像を解析することで操作者の手１０６の三次元位置を取得し、入力される操作を認識する。従って操作者は、操作面１０１上の空間の、可視光カメラ１０２と距離画像センサ１０３によって撮像可能な範囲内で手などの所定の物体を動かすことにより、空間ジェスチャ操作を入力することが可能である。本実施形態では、赤外光を利用するパターン照射方式、あるいは、ＴＯＦ（Time-of-Flight）方式のセンサを利用する。
【００１９】
図１に示されるシステムの場合は、可視光カメラ１０２及び距離画像センサ１０３は固定されている。一方で、物体１０７は操作面１０１上の任意の位置に載置され、取り除くことも動かすことも増減させることも可能である。また、物体自体の形状も任意である。そのため、物体の有無や形状によって対象面に凹凸が生じ、操作者が指先で指示する位置が移動することで当該位置における距離画像センサ１０３から対象面まえの距離が異なる場合がある。このように、図１に示されるシステムでは、可視光カメラ１０２及び距離画像センサ１０３から物体１０７表面までの距離が変動し得る。
【００２０】
プロジェクタ１０４は、操作面１０１や物体１０７の上面に画像の投影を行う。本システムでは、操作者は投影された画像に含まれるアイテム１０５に対して、タッチや空間ジェスチャによる操作を行う。また、プロジェクタ１０４は、タッチ操作に対する視覚的フィードバックとして、タッチ位置にポインタ等の画像を投影することが可能である。なお、上述したように、本実施形態では、手１０６の検出および操作の認識には、可視光カメラ１０２を使って取得した可視光画像を用いるため、肌色領域抽出を考慮した色調に投影映像を制限することが好ましい。ただし、可視光画像ではなく距離画像センサ１０３を使って取得した距離画像を用いることも可能であり、この場合プロジェクタ１０４の投影光の影響で操作者の手の色が変化しても影響を受けないという利点がある。また、プロジェクタ１０４の投影周期と可視光カメラ１０２の撮像周期とを同期して、操作者が視覚的に確認できないレベルで高速に投影と撮像を切り替えることで、投影光の影響を受けずに肌色領域抽出による手検出を行うことも可能である。また、本システムの表示装置としては、プロジェクタ１０４に替えて、操作面１０１を液晶ディスプレイとするなどとすることもできる。その場合、可視光画像からの肌色領域を検出するなどして画像から人の手を検出する方式を用いることで、投影光の影響を受けずに手の検出が可能である。
【００２１】
なお、操作面１０１を上方からみた画像が得られる構成であれば、必ずしも距離画像センサ１０３及び可視光カメラ１０２自体が上方に設置されている必要はない。例えば、対象面の情報に設置したミラーを撮像するように構成したとしても、操作面１０１を上方から見た画角の画像が得られる。プロジェクタ１０４も同様に、図１の例では、斜め上方から見下ろすように操作面１０１上への投影を行うが、異なる方向に向けて投影された投影光を、ミラーなどを利用して操作面１０１に反射させてもよい。また、本実施形態は、ホワイトボードや壁面など、水平ではない面を操作面１０１とするシステムにも適用可能である。
【００２２】
［装置の構成］
図２（ａ）は、本実施形態に係る情報処理装置１００を含むテーブルトップインタフェースのハードウェア構成図である。中央処理ユニット（ＣＰＵ）２００は、ＲＡＭ２０２をワークメモリとして、ＲＯＭ２０１や記憶装置２０３に格納されたＯＳやプログラムを実行して、各種処理の演算や論理判断などを行い、システムバス２０４に接続された各構成を制御する。ＣＰＵ２００が実行する処理には、後述するタッチ操作の認識処理が含まれる。記憶装置２０３は、ハードディスクドライブや各種インタフェースによって接続された外部記憶装置などであり、実施形態の操作認識処理にかかるプログラムや各種データを記憶する。可視光カメラ１０２は、ＣＰＵ２００の制御に従い、テーブルとテーブル上の操作者の手および物体を含む空間の可視光画像を撮像し、撮像した可視光画像をシステムバス２０４に出力する。また、距離画像センサ１０３は、ＣＰＵ２００の制御に従い、テーブルとテーブル上の操作者の手および物体を含む空間の距離画像を撮像し、撮影した距離画像をシステムバス２０４に出力する。本実施形態では、距離画像の取得方法として、環境光や操作面１０１の表示の影響が小さい赤外光を利用する方式を基に説明するが、用途に応じて視差方式などを利用することも可能である。プロジェクタ１０４は、ＣＰＵ２００の制御に従い、テーブルおよび物体表面に操作対象となる画像アイテムやタッチ操作に対するフィードバック画像を投影表示する。
【００２３】
なお図１の利用例では、可視光カメラ１０２、距離画像センサ１０３、プロジェクタ１０４はそれぞれ情報処理装置１００に入出力用のインタフェースを介して接続された外部装置であり、情報処理装置１００と協同して情報処理システムを構成する。ただし、これらのデバイスは、情報処理装置１００に一体化されていても構わない。
【００２４】
図２（ｂ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。各機能部は、ＣＰＵ２００が、ＲＯＭ２０１に格納されたプログラムをＲＡＭ２０２に展開し、後述する各フローチャートに従った処理を実行することで実現される。また例えば、ＣＰＵ２００を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００２５】
画像取得部２１０は、可視光カメラ１０２によって撮像された可視光画像を、入力画像として一定時間毎に取得し、ＲＡＭ２０２に随時保持する。取得される可視光画像は、リアルタイム映像のフレーム画像に相当する。なお画像取得部２１０が取得し、各機能部とやりとりする対象は、実際には画像データに対応する信号であるが、本明細書では単に「可視光画像を取得する」あるいは「入力画像を取得する」として説明する。
【００２６】
領域抽出部２１１は、画像取得部２１０によって取得された入力画像の各画素について、肌色抽出に従って閾値判定やノイズ低減処理を施し、入力画像中の手領域を抽出する。手領域とは、入力された可視光画像のうち、操作体として操作者が利用する手が映っている領域である。
【００２７】
指先検出部２１２は、領域抽出部２１１によって抽出された手領域の輪郭情報に基づき、指示部位として操作者の手領域中のうち、指先に相当する第１領域を検出する。ただし、第１領域の検出方法はこれに限らず、例えば可視光画像中への手領域の侵入位置からの距離が最長となる手領域中の画素の位置に基づいて簡易に求めるなどして、計算を簡略化することも可能である。
【００２８】
第２領域設定部２１３は、指先検出部２１２が検出した第１領域の周辺に位置する所定の大きさの領域を、第２領域をとして設定する。本実施形態では、指先として検出された部分の輪郭から一定距離以内の画素の内、手領域を除く領域を第２領域として設定する。ただし、第２領域の設定方法はこれに限らず第１領域周辺の矩形や円形の領域として計算を簡略化することも可能である。
【００２９】
距離取得部２１４は、距離画像センサ１０３によって撮像された距離画像を一定時間毎に取得し、ＲＡＭ２０２に随時保持する。ここでも、取得される距離画像は、リアルタイムに撮像されている映像のフレーム画像に相当する。距離取得部２１４はさらに、可視光カメラ１０２と距離画像センサ１０３のセンサパラメータおよび位置関係に基づく変換行列を用いて、距離画像の各画素に反映されている被撮像面までの距離を、可視光画像の各画素に関連付ける距離情報としてマッピングする。これにより本実施形態では、可視光画像の各画素にその画素における被撮像面までの距離が反映された状態を得る。距離取得部２１４は、可視光画像の一部である第１領域、第２領域について基準からそれぞれの撮像面までの距離を取得する場合、距離画像から得られる距離のうち可視光画像の各領域を構成する画素群にマッピングされた距離情報を使う。本実施形態では、可視光カメラ１０２及び距離画像センサ１０３は、いずれも操作面１０１を略垂直に見下ろす位置に設置されている。従って、距離画像の画素に反映された距離は実質的に、操作面１０１からの高さ方向に沿った距離である。
【００３０】
また、本実施形態では、可視光カメラ１０２及び距離画像センサ１０３は、いずれも操作面１０１の全体が画角に収まるように、かつ光軸が略一致するように近傍に設置されるとする。そのため、物体１０７上に操作者の手指が差しだされたことで死角となる部分は、可視光カメラ１０２と距離画像センサ１０３とで一致するとみなすことができる。従って、可視光画像において指先により遮蔽されて見えない部分は、距離画像においても同様に遮蔽されており、その距離値が得られていない。可視光画像の各画素に距離画像から得られた距離を変換しマッピングする処理において、手領域部分にマッピングされる値は、基準から手の表面までの距離を示す値であり、手の下に当たる操作面１０１までの距離との重複は発生しない。つまり、可視光画像のうち第１領域にマッピングされる距離は、距離画像の中で操作者の手が写る手領域の指先に相当する第１領域に反映された距離である。可視光画像のうち第２領域にマッピングされる距離は、距離画像の中で指先の周囲に位置する第２領域に反映された距離である。
【００３１】
なお、可視光カメラ１０２と距離画像センサ１０３がレンズ共有型の単一のセンサとして設けられていれば、こうしたマッピング処理を省略できる利点がある。
【００３２】
また、世界座標系と距離画像センサ１０３のセンサパラメータおよび位置関係に基づく変換行列を用いて、画像中の任意の画素を世界座標系にマッピングすることも可能である。例えば、少なくとも距離画像センサ１０３の光軸が操作面１０１に対してθの入射角となるように設置されていた場合、撮像される距離画像の画素値が表す距離は、操作面１０１からの高さ（垂直距離）に対して１／ｃｏｓθの大きさとなり、かい離が生じる。距離画像センサ１０３に撮像される距離画像の画素値は、画像の奥行き方向に沿った距離であるためである。直角に近いほど、距離画像中で指によって遮蔽されて距離計測が困難となった部分と、操作面１０１のうち実際に指の直下に相当する部分とのかい離は大きなものとなる。また、操作面１０１が距離画像センサ１０３に対して角度を持つことで、第２領域内にマッピングされた距離の大きさは幅を持つものとなり、第１領域から得られる距離との差が大きくなってしまう場合がある。このような環境では、距離画像から得られる３次元の位置情報を世界座標系に変換して扱うことで、指先と操作面１０１の間の距離（操作面１０１からの指の高さ）を対象にしたタッチ入力の認識が可能になる。これにより、操作者が視覚的に得る感覚に合った結果を得やすくなる場合がある。
【００３３】
分割部２１５は、第２領域設定部２１３が設定した第２領域を、所定の条件に基づいて１つ以上の小領域に分割する。本実施形態では、第２領域内における距離が不連続な部分を、距離取得部２１４で取得した距離に基づいて検出する。さらに、不連続部が検出された場合には、不連続部で第２領域を複数の小領域に分割する。これにより、後述する指先の接触認識において、第２領域内に物体の端部が含まれるなど対象面までの距離が一様でない場合であっても、それぞれの距離を成す領域に対して個別に認識することができる。
【００３４】
認識部２１６は、指先検出部２１２が検出した指先と分割部２１５が分割した指先周辺の小領域を用い、指先による対象面へのタッチ入力を認識する。本実施形態では、距離取得部２１４で取得した距離画像に基づき、基準から指先までの距離および各小領域に撮像された対象面までの距離を求め、小領域毎にそれらの距離の比較を行う。そして、一つ以上の小領域と指先の距離差が所定の距離より小さいと判定された場合に指先が接触していると認識する。つまり、タッチ入力が成されたと認識する。
【００３５】
接点取得部２１７は、可視光画像中の第１領域と、認識部２１６で指先との距離差が小さいと判定された小領域との接点（両領域の境界に相当する画素）の集合を取得する。位置決定部２１８は、第１領域と接点取得部２１７で取得された接点の集合に基づき、指先がタッチ入力により指示した位置とみなされるタッチ位置を決定する。タッチ位置は操作面１０１に定義された座標平面における座標値で表される。本実施形態では、第１領域から接点を含む外接の凸領域を切り出し、その重心を画像中のタッチ位置とする。さらに、画像中のタッチ位置を小領域または第１領域の距離とともに変換行列でマッピングすることにより、世界座標系におけるタッチ位置を算出する。この処理の詳細は後述する。
【００３６】
表示制御部２１９は、ＲＯＭ２０１や記憶装置２０３に記憶された情報を用いて、プロジェクタ１０４で操作面１０１および物体１０７に投影する画像を生成し、出力する。本実施形態では、タッチ操作が行われた場合にその位置にポインタを表示する。また、ムーブ操作の間はタッチ操作位置とムーブ操作位置を対角の頂点とする矩形を表示し、リリース操作で消去する。撮影制御部２２０は、前述のタッチ〜ムーブ〜リリース操作で指定された矩形領域を可視光カメラ１０２で撮影し、記憶装置２０３に画像ファイルとして保存する。
【００３７】
［領域指定操作の認識処理の説明］
図３のフローチャートに従って第１実施形態で実行される、タッチ入力の認識処理の流れを説明する。操作者がタッチ入力によって矩形領域を指定する操作を認識し、指定された領域内部を可視光カメラ１０３によって撮像した画像を得るというアプリケーションの動作を例に説明する。以下、図３のフローチャートで表される処理を領域指定操作の認識処理と呼ぶことがある。図３のフローチャートの処理は、情報処理装置の各機能部を構成するＣＰＵ２００がＲＯＭ２０１に記憶されたプログラムをＲＡＭ２０２に展開して実行することで実現される。本実施形態では、可視光カメラ１０２によって撮影された可視光画像が情報処理装置１００に入力されたことに応じて図３のフローチャートの処理が開始される。また本実施形態では、図３のフローチャートの処理が、可視光カメラ１０２から可視光画像が入力される毎に繰り返される。従って処理が繰り返される周期は、可視光カメラ１０２の撮像映像のフレームレートに一致する。
【００３８】
ステップＳ３００では、画像取得部２１０が、可視光カメラ１０２から、入力画像として、画像が投影されるテーブルと操作者の手を含む空間を撮像した可視光画像を取得する。また、距離取得部２１４が、距離画像センサ１０３からテーブルと操作者の手を含む空間を撮像した距離画像を取得し、可視光画像の各画素に距離をマッピングする。領域指定操作の認識処理において時系列に取得される一連の可視光画像を図４の画像４００ａ〜４００ｆに示す。まず、画像４００ａは、操作者が操作面１０１上に物体１０７を載置している動作中に撮像される可視光画像である。このとき、物体１０７のうち向かって右下側の一部は、操作者の手によって遮蔽されており、可視光カメラ１０２及び距離画像センサ１０３の位置からは見えていない。
【００３９】
ステップＳ３０１では、領域抽出部２１１が、可視光画像から操作者の手が映る部分である手領域を抽出する。画像４００ｂは、操作者が右手の人差指で物体へのタッチ操作を行う直前に撮像された可視光画像である。そして領域４０１は、画像４００ｂから抽出された手領域である。本実施形態においては、可視光画像の各画素を走査して、色情報に基づき肌色か否かを判定する。具体的には、各画素についてＲＧＢ色空間で得られた色情報をＨＳＶ色空間に変換し、色相、彩度、明度にそれぞれについて閾値判定処理を行う。さらに、肌色として判定された画素（領域）に膨張収縮処理を施し、色のばらつきに由来する微小なノイズを除去することで手領域を補正する。なお、手領域抽出の方法はこれに限らず、例えば距離画像中のエッジによって切り出された領域の形状を識別して手領域として抽出することも可能である。この場合は、可視光画像に投影映像が映り込むことによる肌色判定の精度低下を抑えることが可能となる。
【００４０】
ステップＳ３０２では、領域抽出部２１１が、手領域を抽出されたかを判定し、手領域を抽出していない場合（ステップＳ３０２でＮｏ）、該入力画像に対する処理を終了する。手領域を抽出した場合（ステップＳ３０２でＹｅｓ）、ステップＳ３０３に進む。ステップＳ３０３では、指先検出部２１２及び認識部２１６が、ステップＳ３０２で抽出された手領域から指先を検出してタッチ入力を認識し、そのタッチ位置を決定する。なお、この認識処理では、指先がテーブルまたは物体の表面に接触しているか否かを出力とし、接触している場合は、さらにタッチ位置として指先が接触している位置を出力する。タッチ入力の認識および位置検出の処理内容についての詳細な説明は後述する。ステップＳ３０４では、表示制御部２１９が、ステップＳ３０３でタッチ入力が認識されたか否かを判定する。タッチ入力が認識された場合（ステップＳ３０４でＹｅｓ）、ステップＳ３０５の始点記憶有無の判定に進む。タッチ入力が認識されなかった場合（ステップＳ３０４でＮｏ）、ステップＳ３１０の矩形記憶有無の判定に進む。
【００４１】
ステップＳ３０５では、表示制御部２１９が、ＲＡＭ２０２にタッチ入力の始点が記憶されているかを判定する。始点とは、操作者によるタッチ入力を開始したときのタッチ位置に相当する。始点が記憶されていない場合（ステップＳ３０５でＮｏ）、ステップＳ３０６に進み、表示制御部２１９が、ＲＡＭ２０２にステップＳ３０３で検出されたタッチ位置を始点として新たに記憶する。さらに、ステップＳ３０７に進み、表示制御部２１９が、プロジェクタ１０４を制御して、操作者が視認可能なポインタ画像を始点の位置に投影する。図４において、画像４００ｃにはタッチ入力の開始位置にポインタ画像４０２が表示されている様子が撮像されている。一方、始点が記憶されている場合（ステップＳ３０５でＹｅｓ）、ステップＳ３０８に進み、表示制御部２１９が、ＲＡＭ２０２に記憶された始点とステップＳ３０３で検出されたタッチ位置を対角の頂点とする矩形領域を、ＲＡＭ２０２に新たに記憶する。矩形領域は、操作者が指定中または指定した撮影対象領域に相当する。さらに、ステップＳ３０９に進み、表示制御部２１９が、プロジェクタ１０４を制御して、操作者が視認可能な矩形の枠の画像を矩形領域の位置に投影する。図４において画像４００ｄ、及び画像４００ｅは、矩形領域に枠を表す画像４０３が表示されている様子である。画像４００ｄが撮像された時点から画像４００ｅが撮像された時点にかけ、操作者の指先が移動している分、矩形領域の大きさが変化している。画像４００ｅでは、操作者の指が物体１０７端部をタッチしている。ここで、タッチされている部分は、物体１０７が操作面１０１に載置された後、常に操作者の手によって遮蔽された状態にあり、画像４００ａ〜４００ｄのいずれにも写っていない。つまり、指の下に存在するはずの対象面の距離情報は得られていないか、あるいは、物体１０７が載置されるより前の初期状態における当該位置の高さが初期情報として取得されているだけである。物体１０７の表面のうち遮蔽されている部分は、本システムの距離画像センサ１０３を使った距離計測が困難である。さらに、画像４００ｅが撮像されたとき、操作者の指がタッチしているのは物体１０７の端部であるので、画像４００ａ〜４００ｄで示された状況で指の下に存在した対象面とは異なる形状をしている。本実施形態では、後述するタッチ入力認識処理により、このようにタッチ対象面が指に遮蔽されている間に物体が載置されるなど、対象面に変動があった場合でも、タッチ入力の認識を可能とするものである。
【００４２】
ステップＳ３１０では、撮影制御部２２０が、ＲＡＭ２０２にタッチ入力で指定された矩形領域が記憶されているか否かを判定する。矩形領域が記憶されていない場合（ステップＳ３１０でＮｏ）、該入力画像に対する処理を終了する。矩形領域が記憶されている場合（ステップＳ３１０でＹｅｓ）、ステップＳ３１１に進み、撮影制御部２２０が、可視光カメラ１０２を制御して可視光画像を撮影し、矩形領域に相当する部分を画像ファイルとして記憶装置２０３に記憶する。さらに、ステップＳ３１２に進み、表示制御部２１９が、ＲＡＭ２０２に記憶された始点と矩形領域の情報を消去する。図４において画像４００ｆは、タッチ入力の終了後に撮影される可視光画像を表す。なお、ステップＳ３１１の撮影処理においては、タッチ入力の終了後、矩形領域内に操作者の手や指が留まる場合があり、タッチ入力終了後に撮影を行うと、手や指が映り込む可能性がある。そこで、タッチ入力終了後、撮影処理を開始するまで数秒待機する、あるいは手領域が矩形領域から出たことを検出してから撮影する等の制御を加えて、映り込みを防止することも可能である。
【００４３】
［タッチ入力認識処理の説明］
ここで、ステップＳ３０３のタッチ入力の認識処理について説明する。図５は第１実施形態のタッチ入力の認識処理を表すフローチャートである。図５のフローチャートの処理は、ステップＳ３０２において可視光画像から手領域が抽出されたことに応じて開始される。
【００４４】
まず、ステップＳ５００では、指先検出部２１２が、可視光画像中に抽出された手領域から、指先に相当する領域を検出する。本実施形態では、手領域の輪郭点を抽出し、各輪郭点について、隣接する輪郭点が成すベクトル間の角度を算出する。そして、ベクトル間角度が閾値よりも小さくなる輪郭点を指の先端位置の候補点として抽出し、さらに複数の先端位置の候補点が密集する部分を、指示部位として特定する。さらに、手領域のうち、指示部位の周辺の輪郭点で囲まれる領域を第１領域として検出し、その重心を指先位置として特定する。つまり、指先位置は手領域の輪郭上ではなく、指と物体が触れ合う指腹の付近に特定される。このように求められた指先位置は、指先と操作面１０１とがタッチした状態にあるとき、タッチ位置として特定される。なお、指示部位は、操作体が操作者の手であれば指先に相当するため以下では「指先」と称するが、操作体がスタイラスなどの器具であれば、その先端部に相当し、指と同様に扱うことが可能である。
【００４５】
ステップＳ５０１では、第２領域設定部２１３が、ステップＳ５００で検出された第１領域の周辺に第２領域を設定する。図６（ａ）及び（ｂ）に第１領域と第２領域の関係を表す。図１及び図４と同じ要素には同じ番号を付している。また、図面の上下方向は図４で示された各画像と一致するものとする。図６（ａ）は、手領域４０１のうち人差指の先端に相当する部分が、物体１０７の、向かって左上の角付近に存在する場合を表す。図４の画像４００ａあるいは画像４００ｂで撮像された環境に対応する。本実施形態では、第１領域６００の輪郭を構成する点群から所定の距離以内にある画素群の内、第１領域の底辺６０１よりも先端に近い側の画素を第２領域６０２として設定する。第２領域を第１領域の形状に合わせて設定することには、指先に遮蔽されている面と第２領域中の撮像面との距離の乖離を抑える効果がある。ただし、第２領域の設定方法はこれに限らず第１領域周辺の矩形や円形の領域として計算を簡略化することも可能である。図６（ａ）のように、第２領域６０２の内部が物体１０７で占められる場合には、第２領域内部にマッピングされている距離は一様になる。
【００４６】
一方、図６（ｂ）は、手領域４０１のうち人差指の先端に相当する部分が、物体１０７の、向かって右下の角に重なった場合を表し、図４の画像４００ｅに撮像された環境に対応する。このとき、操作者の指先は物体１０７を触れている。図６（ｂ）では、第２領域７０２の内部には、物体１０７と操作面１０１の境界が含まれるが、その境界の一部が操作者の指によって遮蔽されている。このような場合、物体１０７の高さによっては、第２領域内部には、マッピングされる距離が不連続な複数の面が生じる。後段の処理では、第２領域から求められる距離と指先の距離とを比較することにより、指先が対象面に接しているか否かを判定する。しかし、図６（ｂ）の状況のように、第２領域内の距離が一様でない場合には、第２領域と指先の距離比較に工夫が必要となる。
【００４７】
そこで、ステップＳ５０２では、分割部２１５が、第２領域の内部を、距離の不連続性に基づいて複数の小領域に分割する。本実施形態では、第２領域内の各画素（各座標）にマッピングされている距離値に対して、画素間の勾配を微分計算によって求め、勾配が局所的に大きくなる画素を不連続部として検出する。ここで図７に、第２領域の分割例を示す。図７下部は、図６（ｂ）の状況における第２領域を分割した例である。図７の上部には、比較のため図６（ｂ）と同じ状況を図示する。図７に示される分割例では、第２領域７００が、距離が不連続となる境界に基づいて小領域７０１〜７０４に分割される。本実施形態ではここで分割された各小領域と指先との間でそれぞれ距離比較を行うことにより、第２領域内に不連続面がある場合にも効果的にタッチ入力の有無を認識する。
【００４８】
ステップＳ５０３では、認識部２１６が、ＲＡＭ２０２に設ける接触フラグをＦＡＬＳＥに設定する。この接触フラグは、一つ以上の小領域と指先とが接触していると判定された場合にＴＲＵＥとなる。次に、以降のステップＳ５０４〜Ｓ５０７を各小領域について順に処理する。
【００４９】
ステップＳ５０４では、認識部２１６が、分割により生成された複数の小領域のうち未処理の１つを選択する。距離取得部２１４により、可視光画像にマッピングされた距離に基づいて、撮像部を基準とする指先までの距離、及び選択された小領域までの距離を取得する。本実施形態では、第１領域に含まれる画素にマッピングされた距離の平均値を、撮像部から指先までの距離として取得する。また、小領域に含まれる画素の距離の平均値を、撮像部から小領域までの距離（小領域内に写る面までの距離）として取得する。認識部２１６は、取得された距離を比較する。第１実施形態では、撮像部から小領域までの距離から、撮像部から指先までの距離を減算した値（差）を指先と小領域の間の距離とみなす。そして、認識部２１６は、この指先と小領域の間の距離が所定の閾値よりも小さい場合に、指先と該小領域とが接触していると判定する。なお、閾値は距離画像センサの測距精度や指の厚みを考慮して決定されることが望ましい。指先と該小領域とが接触していないと判定された場合（ステップＳ５０５でＮｏ）、該小領域に対する認識を終了し、ステップＳ５０８に進む。一方、指先と該小領域とが接触していると判定された場合（ステップＳ５０５でＹｅｓ）、ステップＳ５０６に進む。
【００５０】
ただし、撮像部から指先までの距離として、第１領域の重心に相当する画素の距離で代用して計算を簡略化することも可能である。また、撮像部から小領域までの距離として、小領域の重心に相当する画素の距離で代用することも可能である。また、接触の判定には、指先と小領域の間の距離に限らず、例えばその変化量や変化の方向を用いて判定精度を向上することも可能である。
【００５１】
ステップＳ５０６では、認識部２１６が、ＲＡＭ２０２に設けられた接触フラグをＴＲＵＥに変更する。さらに、ステップＳ５０７では、接点取得部２１７が、第１領域の輪郭点のうち、選択されている小領域と画像中で接する点の集合を取得し、ＲＡＭ２０２に記憶する。取得される輪郭点の集合は、手領域のうち指先部分と小領域の境界に相当する。また、ここで記憶された接点の集合は、後段のタッチ位置検出に用いられる。ステップＳ５０８では、認識部２１６が、分割後の全ての小領域に対して前記ステップＳ５０４からステップＳ５０７の処理が行われたか否かを判定する。全ての小領域に対する処理が行われていない場合（ステップＳ５０８でＮｏ）、ステップＳ５０４に戻り、未処理の小領域に対する処理を開始する。全ての小領域に対する処理が行われた場合（ステップＳ５０８でＹｅｓ）、ステップＳ５０９に進む。
【００５２】
ステップＳ５０９では、認識部２１６が、ＲＡＭ２０２に記憶された接触フラグの状態を確認する。接触フラグがＴＲＵＥとなるのは（ステップＳ５０９でＹｅｓ）、指先との距離が閾値より小さい小領域が１つ以上存在した場合である。この時、認識部２１６は指先が対象面に接触していると判定し、ステップＳ５１０以降のタッチ位置の検出処理に進む。例えば図７の例（図４の４００ｅに対応する）においては、小領域７０１から７０４の内、小領域７０２と第１領域６００との距離が閾値を下回り、接触フラグがＴＲＵＥになる。これにより、指先が対象面に接触していると判定される。一方、接触フラグがＦＡＬＳＥとなるのは（ステップＳ５０９でＮｏ）、指先との距離が閾値より小さい小領域が存在しなかった場合である。この時、認識部２１６は指先が対象面に接触していないと判定し、該入力画像に対する処理を終了する。
【００５３】
次に、タッチ位置の検出方法について述べる。図６（ａ）に示すように物体１０７の端部から遠い内側をタッチした場合、第１領域の重心をタッチ位置として検出すれば、指先の中でも物体と実際に接触している可能性が高い指の腹付近の位置を求めることができる。しかしながら、図６（ｂ）に示すように物体１０７の端部付近をタッチした場合、第１領域の重心は、物体１０７の端部より外側に求められてしまう場合がある。この場合、第１領域の重心を、指と物体１０７が接触する位置とみなしてしまうのは不自然である。さらには後段の処理において操作者の意図しない動作を実行してしまう原因になり得る。そこで、本実施形態では、単に第１領域の重心をタッチ位置とするのではなく、小領域と第１領域との接点集合に基づき、実際の接触位置により近い位置をタッチ位置として検出する。
【００５４】
まず、ステップＳ５１０では、位置決定部２１８が、ＲＡＭ２０２に記憶された接点の集合に基づき、第１領域のうち実際に対象面に接触していると推定される領域（以下、接触領域）を切り出す。図８（ａ）に接触領域の切出しと指先位置決定の結果の一例を示す。ステップＳ５０５で小領域７０２が第１領域６００と接触していると判定された場合、ＲＡＭ２０２には接点集合８００が記憶されている。そこで、本実施形態では、第１領域６００から、接点集合８００を含む領域を第１領域の底辺６０１に平行な切片と垂直な切片で切り出し、接触領域８０１して求める。さらに、ステップＳ５１１で、位置決定部２１８が、接触領域８０１の重心８０２を求め、タッチ位置として出力する。これにより、第１領域の重心をタッチ位置として検出する場合に比べ、実際に指と物体とが接触している位置により近い位置を求めることが可能となる。
【００５５】
なお、ステップＳ５１０の接触領域の切出し方法は、これに限るものではない。特に図８（ｂ）に示すように、接触判定された小領域が複数存在する場合（小領域８０３、８０４）、接点集合が分割されることがある（接点集合８０５、８０６）。このような場合、接点集合の端部同士を接続して囲まれる領域８０７を切り出し、領域８０７の重心をタッチ位置として検出することで、接触位置により近い位置を求めることが可能となる。
【００５６】
以上説明したように、本実施形態では、基準から指先までの距離と、基準から入力の対象となる対象面のうち指先周辺の領域（距離計測が可能な部分）までの距離との比較に基づき指先と対象面とのタッチ入力を認識する。これにより、撮像系又はタッチ入力の対象となる対象面が動き得る環境であって、指によって対象面の一部が遮蔽されていても、対象面に対する指先によるタッチ入力を認識可能である。さらに、タッチ入力が物体の端部に対して行われた場合であっても、タッチ入力とタッチ位置の検出を高精度に行うことが可能である。
【００５７】
なお、上述した利用例では、テーブル上に載置された物体の表面を対象面として、タッチ入力がされる場合を説明した。ただし、タッチ入力の対象面は、載置された物体に限定されない。ここで図９は、第１実施形態における動いている物体に対して、タッチ入力が行われる様子を撮像した可視光画像の一例を表す図である。例えば図９に示すように操作者の手９００で把持されて動いている物体９０２の表面を対象面として、操作者がもう一方の手９０１でタッチ操作する場合も本実施形態は適用可能である。また、例えば静止した手９０１に物体１０７を近付けた場合にタッチ入力を認識するような使い方にも本実施形態を適用可能でなる。なお、把持している手９００が撮像される場合には、抽出された手が操作中の手であるか否かを手領域の輪郭形状に基づく識別等で判別する処理を加えることで、タッチ入力の誤認識を抑制することができる。
【００５８】
また、上述した例では、テーブル上から操作面を俯瞰するように固定された撮像部から取得した可視光画像または距離画像に基づき、タッチ入力を認識する場合を説明した。ただし、撮像部の設置位置はこれらに限定されない。例えば、タッチ対象面との距離関係が操作者の顔の位置や向きに応じて頻繁に変動するＨＭＤ搭載の撮像部であっても、本実施形態を適用することで、タッチ入力の認識、及びタッチ操作の認識の精度を向上させることができる。
【００５９】
＜変形例＞
次に、第１実施形態の変形例として、予め計測したタッチ対象面の距離に基づくタッチ認識と、第１実施形態に記載したタッチ認識を併用する例を示す。上述した第１実施形態では、基準からタッチ入力の対象面までの距離が、指先に遮蔽されて計測できない部分で変動している可能性を考慮し、どのような場合でも、基準から対象面のうちその時点で距離計測可能な部分までの距離に基づきタッチ入力を認識した。それに対し、本変形例では、指先に遮蔽された対象面の距離が変動していないと推定される場合には、予め計測したタッチ対象面の指先で遮蔽された遮蔽領域までの距離に基づきタッチを認識する。また、指先に遮蔽された対象面の距離が変動していると推定される場合は、第１実施形態に記載した第２領域から求められる距離に基づきタッチを認識する。つまり、基準からタッチ入力の対象面までの距離が変動したと推定されるか否かを判定した結果に応じた異なる処理によってタッチ入力を認識する。すなわち、この判定処理は、予め計測された距離の情報が信用に足るかを判定することに相当する。
【００６０】
上記判定により、遮蔽された対象面の距離が変動していないと推定される場合には、予め計測した基準から遮蔽領域までの距離と、その時点での基準から指先までの距離とを利用してタッチ入力を認識する。予め計測した距離を用いる利点としては、例えば、指先で遮蔽される範囲よりも小さな突起物など、第２領域に表れない対象へのタッチ認識が可能になることが挙げられる。また、第２領域は画像全体に対して小さい領域であるために、距離画像の解像度の荒さや可視光画像に写る指の影などの影響を受けることがあるのに対し、遮蔽物がない時点の画像からはそれらの影響を受けずに距離を計測できるため安定した結果が得やすい。そして本変形例では、対象面の遮蔽された部分で距離が変動し、事前に計測した対象面の距離が使用できない場合であっても、第１実施形態で述べたように、指の周辺で計測可能な距離を使ってタッチ入力の認識を行う。これにより誤った認識を低減し、全体のタッチ認識機能の精度を向上できる。
【００６１】
以下、第１実施形態と同様に、テーブルトップインタフェースシステムの操作面に操作者が物体を載置し、物体の表面上の任意領域を操作者が片手の指１本によってタッチ〜ムーブ〜リリースで指定し、その領域を撮影する場合を例に挙げて説明する。ただし、変形例においても操作体は操作者の手や指に限られない。
【００６２】
［装置の構成］
変形例に係るインタフェースシステムの外観および装置の構成は、図１及び図２に示した第１実施形態のものに準じる。従って共通する各要素について、詳細な説明を省略する。
【００６３】
図１０は、変形例における情報処理装置１００の機能構成の一例を示すブロック図である。各機能部は、ＣＰＵ２００が、ＲＯＭ２０１に格納されたプログラムをＲＡＭ２０２に展開し、第１実施形態に準じた各フローチャートに従った処理を実行することで実現される。ただし、代替としてハードウェアを用いることも可能である。なお図２（ｂ）に示した第１実施形態と同等の機能を有する機能部には同じ番号を付して詳細な説明は省略している。ここでは第１実施形態と異なる点を説明する。
【００６４】
背景記憶部１０００は、画像取得部２１０によって取得された画像の内、領域抽出部２１１によって抽出された手領域を除く全ての画素について、各画素に相当する距離を背景距離画像としてＲＡＭ２０２に記憶する。その時点で既に記憶されている場合はその情報を更新する。
【００６５】
変動検出部１００１は、画像取得部２１０によって取得された画像の内、領域抽出部２１１によって抽出された手領域を除く所定の画素について、対象面の状態が変動したか否かを検出する。本実施形態では、該処理時に取得された画像と前回の処理時に取得された画像との差分（フレーム間差分）に基づき変動を検出する。
【００６６】
変形例の認識部２１６は、変動検出部１００１によって、変動が検出された場合に、指先検出部２１２が検出した指先と分割部２１５が分割した指先周辺の小領域との接触の有無を認識する。一方、変動検出部１００１によって、変動が検出されなかった場合は、指先検出部２１２が検出した指先と背景記憶部１０００が記憶した背景距離画像の指先に相当する領域との接触の有無を認識する。
【００６７】
［領域指定操作の認識処理の説明］
図１１のフローチャートに従って変形例のタッチ入力に基づく指定領域の撮影処理を説明する。図１１のフローチャートの処理は、情報処理装置の各機能部を構成するＣＰＵ２００がＲＯＭ２０１に記憶されたプログラムをＲＡＭ２０２に展開して実行することで実現される。本実施形態では、可視光カメラ１０２によって撮影された可視光画像が情報処理装置１００に入力されたことに応じて図１１のフローチャートの処理が開始される。また本実施形態では、図１１のフローチャートの処理が、可視光カメラ１０２から可視光画像が入力される毎に繰り返される。従って処理が繰り返される周期は、可視光カメラ１０２の撮像映像のフレームレートに一致する。なお図３に示した第１実施形態と同等の処理を行うステップには同じ番号を付して詳細な説明は省略している。ここでは第１実施形態と異なる点を説明する。
【００６８】
ステップＳ１１００では、背景記憶部１０００が、ステップＳ３０１で抽出された手領域を除く画素にマッピングされた距離を、背景距離画像の各画素における距離としてＲＡＭ２０２に記憶する。背景距離画像とは、画像を構成する各画素に、基準となる距離画像センサ１０３からその画素に対応するタッチ対象面上の点までの距離に相当する値が格納された画像形式の情報である。ステップＳ１１００では、すでに背景距離画像が記憶されている場合には、背景距離画像のうち、手領域を除く画素についてのみ距離を記憶又は更新し、手領域に相当する画素の距離は更新しない。つまり、背景距離画像は、ある時刻に距離画像センサ１０３によって撮像された１つの画像そのものではなく、距離画像センサ１０３によって撮像される距離画像と１対１で対応する同数の画素数を持ち、画素毎に適宜値が更新されていくデータである。本変形例では、繰り返し距離画像が撮像される度に、ステップＳ１１００で非手領域の部分の距離を背景距離画像に反映する。これにより、例えその後その部分が指等で遮蔽されたとしても、対象面と距離画像センサ１０３に変動が生じていない間であれば、指等の下に存在するタッチ対象面の距離情報を保持しておくことができる。
【００６９】
変形例では、ステップＳ３０２で手領域が抽出されたと判定した場合（ステップＳ３０２でＹｅｓ）、ステップＳ１１０１に進む。ステップＳ１１０１では、変動検出部１００１が、画像取得部２１０によって取得された画像の内、領域抽出部２１１によって抽出された手領域を除く領域について、対象面の状態が変動したか否かを検出する。本変形例では、ステップＳ３００で最後に取得された画像と、前回取得された画像との差分（フレーム間差分）に基づき変動を検出する。なお、距離画像間のフレーム間差分処理だけで判定結果を得てもよいし、距離画像と可視光画像の両方で判定を行い、いずれか片方あるいは両方の結果を判定結果として出力してもよい。変動が検出された場合（ステップＳ１１０２でＹｅｓ）、ステップＳ３０３に進む。ステップＳ３０３に進むのは、記憶された背景距離画像の手領域に遮蔽された領域の距離が変動している可能性が高いとみなされる場合である。ステップＳ３０３では、第１実施形態と同様、第２領域の検出に基づくタッチ入力の認識処理が実行される。一方、変動が検出されなかった場合（ステップＳ１１０２でＮｏ）、ステップＳ１１０３に進む。ステップＳ１１０３に進むのは、記憶された背景距離画像の手領域に遮蔽された領域の距離が変動していない可能性が高いとみなされる場合である。ステップＳ１１０３では、指先検出部２１２及び認識部２１６が、背景距離画像に基づくタッチ認識を処理する。以降の操作認識処理は、第１実施形態と同様である。なお、ステップＳ１１０２では、変動を検出する領域を、非手領域の中でも手領域から所定距離の領域に限定することにより、手領域に遮蔽された領域の変動有無の検出精度を高めることが可能である。
【００７０】
［タッチ入力認識の説明］
ここで、ステップＳ１１０３の背景距離画像に基づくタッチ入力の認識処理について説明する。図１２は変形例の背景距離画像に基づくタッチ入力の認識処理を表すフローチャートである。図１２のフローチャートの処理は、ステップＳ１１０２において画像中の変動が検出されたことに応じて開始される。
【００７１】
まず、ステップＳ１２００では、指先検出部２１２が、可視光画像中に抽出された手領域から、指先に相当する第１領域を検出する。本実施形態では、前述したステップＳ５００と同様の方法で指先を検出する。ステップＳ１２０１では、背景記憶部１０００が、ステップＳ１２００で検出された第１領域の位置（座標）を表す情報に基づいて、ＲＡＭ２０２に記憶された背景距離画像中から、第１領域に対応する部分領域を検出する。
【００７２】
ステップＳ１２０２では、認識部２１６が、ステップＳ１２００で検出した第１領域から求められる基準から指先までの距離と、ステップＳ１２０１で検出した背景距離画像中の部分領域から求められる基準から対象面までの距離の差を取得する。そして、その差分の大きさを所定の閾値と比較する。ステップＳ１２０１で検出した背景距離画像中の部分は、指先によって遮蔽されているタッチ対象面を表す。変形例では、第１領域に含まれる画素にマッピングされた距離の平均値を、基準から指先までの距離として取得する。また、背景距離画像中の第１領域に対応する部分を占める画素の距離の平均値を、基準から指先に遮蔽された対象面までの距離として取得する。そして、基準からタッチ対象面までの距離から、基準から指先までの距離を減算した値（差）を指先と対象面の間の距離とみなす。この差が所定の閾値よりも小さい場合に、指先が指先に遮蔽されているタッチ対象面に接触していると判定する。なお、閾値は距離画像センサの測距精度や指の厚みを考慮して決定されることが望ましい。
【００７３】
指先と指先相当領域との距離が閾値よりも大きく、接触していると判定されない場合（ステップＳ１２０３でＮｏ）、該入力画像に対するタッチ認識処理を終了する。一方、指先と指先相当領域との距離が閾値よりも小さく、接触していると判定される場合（ステップＳ１２０３でＹｅｓ）、ステップＳ１２０４に進み、位置決定部２１８が、指先相当領域の重心を求め、タッチ位置として出力する。
【００７４】
以上により、本変形例では、変動しないタッチ対象面に対するタッチ操作を高精度に認識できる上で、さらに遮蔽された状態で変動するタッチ対象面に対するタッチ操作も認識することができる。
【００７５】
なお、上述した変形例では、入力画像のフレーム間差分に基づきタッチ対象面の変動を検出し、変動の有無に基づいてタッチ入力の認識処理を切り替えた。ただし、これに代わり、物体が把持されているか否かの判定に基づき物体の静止及び／又は非静止を検出し、その検出結果を変動の有無とみなして認識処理の切り替え基準としてもよい。図１３は、把持された物体と非把持物体のそれぞれに対し、タッチ入力が行われる様子を撮像した可視光画像の一例を表す。図１３（ａ）では、物体１０７は操作者の手９００に把持されており、物体１０７上のタッチ対象面が変動する可能性が高い。そこで、把持されている物体に相当する領域１３００に手領域あるいは第１領域が重なっている場合には、ステップＳ１１０２の判定結果をＹｅｓとし、第２領域に基づいてタッチ入力を認識する。一方、図１３（ｂ）では、物体１０７が操作者の手９００を離れ載置されており、物体１０７上のタッチ対象面が変動する可能性が極めて低い。そこで、載置されている物体に相当する領域１３０１に手領域あるいは第１領域が重なっている場合には、ステップＳ１１０２の判定結果をＮｏとし、背景距離画像に基づいてタッチ入力を認識する。物体が把持されているか否かの判定は、過去に取得された所定数フレームの画像において、物体領域が手領域および画像の枠から離れ孤立したか否かを検出することにより求めることができる。これにより、手領域に遮蔽された領域の変動有無の検出精度を高めることが可能である。
【００７６】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７７】
２１０  画像取得部
２１１  領域抽出部
２１２  指先検出部
２１３  第２領域設定部
２１４  距離取得部
２１５  分割部
２１６  認識部
２１７  接点取得部
２１８  位置決定部
２１９  表示制御部
２２０  撮像制御部
【図１】
0006723814.tif 000002
【図２】
0006723814.tif 000003
【図３】
0006723814.tif 000004
【図４】
0006723814.tif 000005
【図５】
0006723814.tif 000006
【図６】
0006723814.tif 000007
【図７】
0006723814.tif 000008
【図８】
0006723814.tif 000009
【図９】
0006723814.tif 000010
【図１０】
0006723814.tif 000011
【図１１】
0006723814.tif 000012
【図１２】
0006723814.tif 000013
【図１３】
0006723814.tif 000014