(57)【特許請求の範囲】
【請求項１】
情報処理装置であって、
各画素に、所定の平板を背景の一部に含む空間における位置情報が反映されている入力画像を取得する画像取得手段と、
前記画像取得手段によって取得された入力画像のうち、前記空間の、背景に前記平板が存在する部分に対応する領域から、前記取得された入力画像に反映された位置情報と、前記平板に関する位置情報と、第１の基準と、に基づいて、前記平板よりも前景側に存在する物体に対応する物体領域を抽出し、
前記画像取得手段によって取得された入力画像のうち、前記空間の、背景に前記平板が存在しない部分に対応する領域から、前記取得された入力画像に反映された位置情報と、前記第１の基準とは異なる第２の基準とに基づいて、前記平板よりも前景側に存在する物体に対応する物体領域を抽出する抽出手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記第１の基準は、前記取得された入力画像に反映された位置情報と、前記平板に関する位置情報とから取得される前記平板からの距離に関する基準であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記抽出手段は、前記取得された入力画像のうち、前記背景に前記平板が存在する部分に対応する領域からは、前記取得された入力画像に反映されている位置情報から取得された前記平板からの距離が前記第１の基準となる距離よりも大きい部分を、前記物体領域として抽出することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第２の基準とは、前記入力画像に反映された位置情報のうち、前記平板と交わる方向の軸に沿った位置情報に関する基準であって、前記抽出手段は、前記取得された入力画像のうち、前記背景に前記平板が存在しない部分に対応する領域からは、前記平板と交わる方向の軸に沿った位置情報が、前記平板の表面よりも前記前景側の位置を示す部分を、前記物体領域として抽出することを特徴とする請求項１乃至３何れか１項に記載の情報処理装置。
【請求項５】
前記抽出手段によって抽出された前記物体領域を統合して得られる統合物体領域の全体の形状に基づいて、前記情報処理装置に対して入力される操作を認識する認識手段を更に備えることを特徴とする請求項１乃至４何れか１項に記載の情報処理装置。
【請求項６】
前記認識手段は、前記統合物体領域の形状に基づいて、前記物体が指差し姿勢をとったユーザの手であると判定した場合、前記入力画像から取得される、前記ユーザの手の指先の位置情報に基づいて、前記ユーザの手の指先によって前記平板が接触されたことを認識し、前記物体領域に写る物体が指差し姿勢をとったユーザの手ではないと判定した場合、前記物体によって前記平板が接触されたことの認識を行わないことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
情報処理装置の制御方法であって、
各画素に、所定の平板を背景の一部に含む空間における位置情報が反映されている入力画像を取得する画像取得工程と、
前記画像取得工程で取得された入力画像のうち、前記空間の、背景に前記平板が存在する部分に対応する領域から、前記取得された入力画像に反映された位置情報と、前記平板に関する位置情報と、第１の基準と、に基づいて、前記平板よりも前景側に存在する物体に対応する物体領域を抽出し、
前記画像取得工程で取得された入力画像のうち、前記空間の、背景に前記平板が存在しない部分に対応する領域から、前記取得された入力画像に反映された位置情報と、前記第１の基準とは異なる第２の基準とに基づいて、前記平板よりも前景側に存在する物体に対応する物体領域を抽出する抽出工程と、を備えることを特徴とする情報処理装置の制御方法。
【請求項８】
コンピュータを、
各画素に、所定の平板を背景の一部に含む空間における位置情報が反映されている入力画像を取得する画像取得手段と、
前記画像取得手段によって取得された入力画像のうち、前記空間の、背景に前記平板が存在する部分に対応する領域から、前記取得された入力画像に反映された位置情報と、前記平板に関する位置情報と、第１の基準と、に基づいて、前記平板よりも前景側に存在する物体に対応する物体領域を抽出し、
前記画像取得手段によって取得された入力画像のうち、前記空間の、背景に前記平板が存在しない部分に対応する領域から、前記取得された入力画像に反映された位置情報と、前記第１の基準とは異なる第２の基準とに基づいて、前記平板よりも前景側に存在する物体に対応する物体領域を抽出する抽出手段と、として機能させるためのプログラム。
【請求項９】
情報処理装置であって、
テーブルが存在する空間における、高さ方向に対応する距離情報が画素値に反映された距離画像を取得する取得手段と、
前記取得手段によって取得された距離画像のうち、背景に前記テーブルの上面が含まれる第１領域においては、前記テーブルの上面からの相対的な高さが第１の閾値よりも高いことが示される画素値を有する部分を、前記空間において、前記テーブルよりも上方に存在する物体に対応する物体領域として抽出し、前記取得手段によって取得された距離画像のうち、背景に前記テーブル面が含まれない第２領域においては、前記テーブルの上面の高さに基づいて設定される第２の閾値よりも高い高さを示す画素値を有する部分を、前記物体領域として抽出する抽出手段と、を備えることを特徴とする情報処理装置。
【請求項１０】
前記取得手段が予め取得した距離画像の画素値に基づいて取得される、前記テーブルの上面の高さに相当する値を、前記第２の閾値として決定する決定手段を更に備えることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記決定手段は、前記抽出手段によって前記第１領域から抽出された物体領域のうち、前記第１領域と前記第２領域との境界に含まれる部分からの距離に応じた値に、前記第２の閾値を補正することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記決定手段は、前記抽出手段によって前記第１領域から抽出された物体領域のうち、前記第１領域と前記第２領域との境界に含まれる部分の近傍に含まれる位置では、前記第２の閾値を、前記テーブルの上面の高さよりも低い高さに相当する値に補正し、前記第１領域と前記第２領域との境界に含まれる部分の近傍に含まれない位置では、前記第２の閾値を、前記テーブルの上面の高さよりも高い高さに相当する値に補正することを特徴とする請求項１０に記載の情報処理装置。
【請求項１３】
前記決定手段は、前記取得手段が予め取得した距離画像の画素値に基づいて取得される、前記テーブルの上面の高さに基づいて、前記第２の閾値の値の複数の候補を決定し、前記第１領域から抽出された物体領域の大きさに基づいて、前記複数の候補のうち、前記第２領域における物体領域の抽出に用いる値を決定することを特徴とする請求項１０に記載の情報処理装置。
【請求項１４】
前記第２の閾値の値を決定する第２決定手段を更に備え、前記第２決定手段は、前記抽出手段によって抽出された物体領域の一部から取得される高さ情報に基づいて、前記物体領域に写る物体が、前記テーブル面に接触したことが認識された時点で、前記第２の閾値の値を改めて決定することを特徴とする請求項９に記載の情報処理装置。
【請求項１５】
情報処理装置の制御方法であって、
テーブルが存在する空間における、高さ方向に対応する距離情報が画素値に反映された距離画像を取得する取得工程と、
前記取得工程で取得された距離画像のうち、背景に前記テーブルの上面が含まれる第１領域においては、前記テーブルの上面からの相対的な高さが第１の閾値よりも高いことが示される画素値を有する部分を、前記空間において、前記テーブルよりも上方に存在する物体に対応する物体領域として抽出し、前記取得工程で取得された距離画像のうち、背景に前記テーブル面が含まれない第２領域においては、前記テーブルの上面の高さに基づいて設定される第２の閾値よりも高い高さを示す画素値を有する部分を、前記物体領域として抽出する抽出工程と、を備えることを特徴とする情報処理装置の制御方法。
【請求項１６】
コンピュータを、
テーブルが存在する空間における、高さ方向に対応する距離情報が画素値に反映された距離画像を取得する取得手段と、
前記取得手段によって取得された距離画像のうち、背景に前記テーブルの上面が含まれる第１領域においては、前記テーブルの上面からの相対的な高さが第１の閾値よりも高いことが示される画素値を有する部分を、前記空間において、前記テーブルよりも上方に存在する物体に対応する物体領域として抽出し、前記取得手段によって取得された距離画像のうち、背景に前記テーブル面が含まれない第２領域においては、前記テーブルの上面の高さに基づいて設定される第２の閾値よりも高い高さを示す画素値を有する部分を、前記物体領域として抽出する抽出手段と、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、距離情報に基づいて背景に存在する物体とジェスチャ操作などに関わる移動物体とを識別する技術に関する。
【背景技術】
【０００２】
ジェスチャによる入力が可能なユーザインタフェース（ＵＩ）によって、ホワイトボードやテーブルなどの平板に表示されたり、載置されたりしたオブジェクトに対する操作を行うシステムが提案されている。このようなシステムでは、平板に平行な二次元のうち、システムがジェスチャやタッチなどによる操作を認識可能な範囲である操作領域と、平板自体との大きさや形状の差が小さいことが望まれる。言いかえれば、平板のほぼ全域を操作可能であることが期待される。
【０００３】
上述したようなシステムでは、所定の平板の、平面部分に正対する形で、その平板を画角に収めた画像を撮像し、撮像した画像から平板上で移動する物体を検出することで、当該物体による操作を認識する場合が多い。固定された平板が背景に存在する領域では、公知の背景差分法によって、平板上に存在する物体の写る領域を抽出することは容易である。しかしながら、背景に平板が存在しない領域（平板がテーブルであれば、テーブルの周囲）は、平板上と比較して、背景に存在する物体の位置や数が不安定である。平板上の物体検出と同じように背景差分法を用いることが適切であるとは限らない。
【０００４】
特許文献１は、画像から物体を検出する処理において、所定の要因に応じて、部分領域毎に異なる物体検出手法を使い分けることを開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−６４８９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
操作領域と所定の平板自体とに大きさや形状の差があるシステムでは、背景に平板が存在する領域（平板上）での物体検知と平板が存在しない領域での物体検知をいずれも行う必要がある。従来例では、１つの物体が、このような背景の条件の違いがある２つの領域に跨って存在する場合の物体検出について十分に考慮されていなかった。
【０００７】
本発明は、上記従来例に鑑みてなされたものであり、背景の条件の異なる複数の領域を含む空間上で、物体の認識を精度よく行うことを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明にかかる情報処理装置は、各画素に、所定の平板を背景の一部に含む空間における位置情報が反映された入力画像を取得する画像取得手段と、前記画像取得手段によって取得された入力画像のうち、前記空間の、背景に前記平板が存在する部分に対応する領域から、前記取得された入力画像に反映された位置情報と、前記平板に関する位置情報と、第１の基準と、に基づいて、前記平板よりも前景側に存在する物体に対応する物体領域を抽出し、前記画像取得手段によって取得された入力画像のうち、前記空間の、背景に前記平板が存在しない部分に対応する領域から、前記取得された入力画像に反映された位置情報と、前記第１の基準とは異なる第２の基準とに基づいて、前記平板よりも前景側に存在する物体に対応する物体領域を抽出する抽出手段を備える。
【発明の効果】
【０００９】
本発明によれば、背景の条件の異なる複数の領域を含む空間上で、物体の認識を精度よく行うことが可能となる。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置のハードウェア構成及び機能構成の一例を示すブロック図。
【図２】実施例１を適用するシステムの外観の一例を示す図。
【図３】実施例１のジェスチャ認識処理の一例を示すフローチャート。
【図４】従来技術によって、テーブル面より高い位置に存在する物体を検出する様子を示す概念図。
【図５】テーブルが存在する領域で物体領域を抽出する処理の一例を示すフローチャート。
【図６】テーブル面より高い位置に存在する物体を検出する様子を示す概念図。
【図７】テーブルが存在しない領域で物体領域を抽出する処理の一例を示すフローチャート。
【図８】テーブルが存在しない領域での処理に用いられる第２の高さ閾値を決定する処理の一例を示すフローチャート。
【図９】第２の高さ閾値補正処理に用いるパラメータの範囲を示す概念図。
【図１０】第２の高さ閾値を補正する処理の概念図。
【図１１】第２の高さ閾値を補正する処理の概念図。
【図１２】第２の高さ閾値を補正する処理の概念図。
【図１３】実施例２のジェスチャ認識処理の一例を示すフローチャート。
【図１４】第２の高さ閾値を決定する処理の一例を示すフローチャート。
【図１５】実施例２の第２の高さ閾値決定処理の一例を示すフローチャートを示す図。
【発明を実施するための形態】
【００１１】
以下、本発明に係る実施例の情報処理を、図面を参照して詳細に説明する。なお、実施例に記載する構成は例示であり、本発明の範囲をそれら構成に限定する趣旨のものではない。
【００１２】
＜実施例１＞
実施例１として、テーブル上に投影されたグラフィカルユーザインタフェース（ＧＵＩ）に対してユーザがジェスチャ操作を行う、テーブルトップインタフェース（ＩＦ）システムに本発明を適用した例を説明する。従って、以下の実施例では、ジェスチャが行われる空間の背景に含まれる所定の平板を「テーブル」と表現するが、テーブルを、直立したスクリーンやホワイトボード等に置き換えて本発明を適用することも可能である。また、ここではテーブルやスクリーンやホワイトボードなどを「平板」として表現しているが、平板の平面に凹凸が無いものに限られない。ここで言う平板は、その平面が安定して静止状態にあると推定される固定サイズの物体の呼称である。
【００１３】
また、ユーザがジェスチャを行うために用いる物体（以下、操作物体）の一例としては、ユーザの手を挙げるが、その他の部位（指や足など）、あるいは、ユーザが把持する物体（例えばスタイラス）なども操作物体として利用可能である。
【００１４】
［ハードウェアの構成］
図１（ａ）は、実施例１に係る情報処理装置１００のハードウェア構成の一例を示すブロック図である。
【００１５】
中央処理ユニット（ＣＰＵ）１０１は、ＲＡＭ１０３をワークメモリとして、ＲＯＭ１０２や記憶装置１０４に格納されたＯＳやプログラムを実行し、システムバス１０６に接続された各構成を制御して、各種処理の演算や論理判断などを行う。ＣＰＵ１０１が実行する処理には、後述するフローチャートに示すジェスチャ認識処理（ユーザが行うジェスチャをシステムが操作入力として認識する情報処理）が含まれる。ＯＳおよび各処理プログラム等は記憶装置１０４に記憶されていてもよく、その場合は電源投入時に必要な情報がＲＡＭ１０３に適宜読み込まれる。記憶装置１０４は、ハードディスクドライブやネットワークやＵＳＢなどの各種Ｉ／Ｆを介して接続される外部記憶装置などである。本実施例では、例えばテーブル上に投影されるデジタルデータや、キャリブレーションにより取得された座標変換パラメータ、予め撮像される背景画像が格納される。
【００１６】
距離画像センサ１０５は、ますＣＰＵ１０１の制御に従い、ＧＵＩが投影表示されるテーブルを背景の一部とし、さらにテーブルの周辺を含む空間（以下、テーブル周辺空間）を後述する方法で撮像して距離画像を取得する。そして、取得された距離画像を、システムバス１０６を介して情報処理装置１００に入力する。撮像して得られた距離画像の各画素には、センサから被写体までの距離が反映される。ただし、距離画像センサ１０５は、テーブル周辺空間に操作物体が存在した場合、撮像された距離画像では、背景の一部であるテーブルの前景（テーブルよりも手前）に、操作物体が写り込むように設置される。本実施例では、距離画像の取得方法として、環境光やテーブル面の表示の影響が小さい赤外パターン投影方式を基に説明するが、用途に応じて視差方式や赤外光反射時間方式などを利用することも可能である。表示装置１０７は、ＧＵＩや各種情報などの画像を表示するためのディスプレイ、プロジェクタ等である。本実施形態では、液晶プロジェクタが表示装置１０７として用いられる。
【００１７】
なお、本実施例において、距離画像センサ１０５、表示装置１０７はそれぞれ情報処理装置１００に入出力用のインタフェース１０８を介して接続された外部装置である。ただし、これらは情報処理装置１００に一体化されていても構わない。
【００１８】
［機能構成］
図１（ｂ）は、情報処理装置１００の機能構成の一例を示すブロック図である。各機能部は、ＣＰＵ１０１が、ＲＯＭ１０２に格納されたプログラムをＲＡＭ１０３に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、上記ＣＰＵ１０１を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００１９】
画像取得部２０１は、距離画像センサ１０５から入力される距離画像を、入力画像として取得する。入力画像は、距離画像センサ１０５が、テーブル周辺空間を撮像した画像であって、各画素値には、距離画像センサ１０５から被写体までの距離情報が反映されている。本実施例では、距離画像センサ１０５は、テーブルを背景の一部に含む空間を撮像するように設置され、距離画像の画素値に含まれる距離情報は、テーブルの上面に交わる方向の位置情報に対応する。
【００２０】
高さ取得部２０２は、入力画像の画素の位置とその画素値に基づいて、テーブル周辺空間での物体の三次元位置情報を取得する。本実施例の高さ取得部２０２が取得可能な三次元位置情報には、少なくとも、テーブル面とテーブルの情報（テーブル面の前景）に存在する物体の高さ情報が含まれる。
【００２１】
境界取得部２０３は、入力画像から取得される三次元位置情報に基づいて、テーブル周辺空間のうち背景にテーブル面が存在する領域と、背景にテーブル面が存在しない領域との境界の位置を取得する。なお以下では、背景にテーブル面が存在する領域（テーブル上の空間に相当する範囲）を第１領域、背景にテーブル面が存在しない領域（テーブル周囲の空間に相当する範囲）を第２領域という。
【００２２】
閾値決定部２０４は、第２領域において、入力画像から、テーブルよりも高い位置に存在する物体が写る領域を抽出するために用いられる高さの閾値を決定する。本実施例では、第２領域に対する抽出処理に用いられる第２の高さ閾値は、世界座標系における高さで示され、入力画像の画素値の大きさから変換される高さと比較処理される。また閾値決定部２０４は、第１領域から抽出された物体領域が、２つの領域の境界に接する場合、第２の高さ閾値に対して補正を加える。
【００２３】
抽出部２０５は、第１領域及び第２領域のそれぞれから、異なる高さの基準に従ってテーブルよりも高い位置に存在する物体が写る物体領域を抽出する。本実施例では、第１領域では、テーブル面からの相対的な高さを基準とし、第１の高さ閾値による閾値処理によって物体領域を抽出する。第２領域では、入力画像の画素値の大きさから変換される高さ（世界座標系における高さ）を基準とし、第２の高さ閾値による閾値処理によって物体領域を抽出する。
【００２４】
認識部２０６は、第１領域から抽出された物体領域と第２領域から抽出された物体領域とを結合した物体領域の全体が、ユーザの手などの所定の操作物体であるかを判定した上で、操作物体によって行われるジェスチャ操作を認識する。本実施例では、操作物体によるテーブル面への接触は、タッチセンサを用いず操作物体の三次元位置情報に基づいて認識するため、タッチ操作もジェスチャ操作の一種であるとして扱う。
【００２５】
表示制御部２０７は、表示装置１０７によってテーブル面に表示させる表示画像を生成し、インタフェース１０８を介して出力する。本実施例では特に、認識部２０６によって認識された操作に対する応答を示す表示画像を、記憶装置１０４等に記憶されたデータに基づいて生成し、出力することで、ユーザ対して操作に対するフィードバックを明示する。
【００２６】
［システムの外観］
図２は、本実施例に係る情報処理装置１００を適用可能なシステムの外観の一例を示す。テーブル３０１の上方には、表示装置１０７である液晶プロジェクタが備えられ、例えば、ＧＵＩ画面３０２がテーブル３０１上に投影される。ユーザは手３０３等の操作物体を用いて、ＧＵＩ画面３０２に含まれるＧＵＩ部品に接触するタッチ操作や、ジェスチャ操作を行う。図２のシステムにおいて、ジェスチャやタッチなどによる操作を認識可能な範囲である操作領域は、表示装置１０７による投影が可能なテーブル３０１上の範囲と一致するとする。表示装置１０７とテーブル３０１の位置関係はテーブル３０１の中心と表示装置１０７によって投影される表示画面の中心が一致し、テーブル３０１上面の９割以上の範囲に対して画像投影が可能であるように固定されている。なお、テーブル３０１上面への投影が可能であれば、表示装置１０７の筐体自体は、必ずしもテーブル３０１の上方に設置されていなくても構わない。
【００２７】
距離画像センサ１０５もまた上方に設置され、テーブル３０１を背景の一部とするテーブル周辺空間を撮像した距離画像を取得する。情報処理装置１００は、取得される距離画像から手３０３を検出し、テーブル３０１周辺空間で行われたユーザのジェスチャを認識する。本実施例では、図２に示すように、ｘ、ｙ、ｚの座標軸を定義する。図２では、テーブル上面に平行な二次元がｘ、ｙ平面となり、テーブル上面に直交し上方に伸びる方向がｚ軸の正方向となる。距離画像センサ１０５が撮像する距離画像の各画素には、センサから被写体までの距離に対応する画素値が記録される。本実施例では、図２に示したように、距離画像センサ１０５は、その画角にテーブル３０１を含むように固定されており、撮像される距離画像の被写体は、距離画像センサ１０５とテーブル３０１との間に存在する。従って、センサから被写体までの距離は、相対的に、テーブル３０１の表面から距離（高さ）を反映した情報であるとも解釈できる。ただし、図２では、距離画像センサ１０５はテーブル３０１に対して角度を持った上体で固定されているため、テーブル３０１面からの高さが一定な面上であっても、距離画像センサ１０５の撮像素子に対しては傾きを持つ。従って、本実施例では、距離画像センサ１０５が撮像した距離画像の各画素値が示す距離情報を、距離画像センサ１０５のレンズ特性およびテーブル３０１との相対位置関係に基づく座標変換を施すことで、ｘｙｚ空間の座標をマッピングする。このような変換により、テーブル３０１を背景の一部に含む空間内の各点について、ｘｙｚ座標を得ることができる。図２では、テーブル面からの高さ情報の基準となるｚ軸は、テーブル面に垂直であるとするが、テーブル面に交わる方向であれば、多少の傾きを有していてもかまわない。なお、距離画像センサ１０５もまた、ｚ軸方向の距離情報を取得することが可能であれば、筐体が設置される位置は、テーブル３０１の上方に限らない。本実施例では、テーブル面は地面と平行するように設置されるため、テーブル面に垂直な方向の位置情報（ｚ座標）を「高さ」とも表現するが、テーブルの向きによっては、必ずしも「高さ」が鉛直方向の位置を示すとは限らない。
【００２８】
本実施例では、予め距離画像センサ１０５とテーブル３０１の位置関係が設定された時点で、テーブルだけを撮像した距離画像を基本の背景画像として予め取得する。情報処理装置１００は、基本の背景画像として得られた距離画像の情報を、記憶装置１０４に保持する。なお、基本の背景画像としては、情報処理装置１００が起動される直後や、一定期間ごとなど、定期的に行われるとする。
【００２９】
また、本実施例では、テーブル３０１を、ＧＵＩ画面３０２を表示する機能を備えるディスプレイ一体型のテーブルとすることも可能である。この他、テーブル３０１上に載置された物体の可視光画像を撮像する可視光カメラなどを含むシステムを構成することもできる。
【００３０】
図２に示すように、本実施例では、ユーザはテーブル３０１の周辺空間の外から、空間内に含まれるテーブルの上に手３０３を差し出すようにして操作を行う。従って、ユーザが、ＧＵＩ画面のうちテーブルの縁に近い位置に表示されたＧＵＩオブジェクトをタッチする場合等に、手３０３の一部が、テーブル３０１の縁よりも外側に存在する可能性が高い。この際、距離画像センサ１０５から見れば、ユーザの手は、テーブルの縁を跨ぐように存在する。本実施例では、テーブル周辺空間のうち背景にテーブルが存在する領域と存在しない領域とで、異なる高さの基準を用いてテーブルより上方に存在する物体が写る領域を抽出する。そして抽出された領域を統合することで２つの領域の境界を跨ぐように存在する物体の全体像を検出する。
【００３１】
［ジェスチャ認識処理］
図３は、本実施例において情報処理装置１００が実行するジェスチャ認識処理の一例を示すフローチャートである。この処理は、情報処理装置の各機能部を構成するＣＰＵ１０１がＲＯＭ１０２に記録されたプログラムをＲＡＭ１０３に展開して実行することで実現される。本実施例では、ジェスチャ操作を認識するアプリケーション等が実行されたことに応じて、距離画像センサ１０５による距離画像の撮像が開始され、所定時間毎に情報処理装置１００に距離画像が入力される。撮像された距離画像が入力されたことに応じて図２のフローチャートの処理が開始される。
【００３２】
ステップＳ４０１では、閾値決定部２０４が、テーブルが存在しない領域（第２領域）での物体領域の検出処理（ステップＳ４０８）で用いる高さの閾値を決定する。ステップＳ４０１において第２領域での閾値を決定する処理の詳細を、図８（ａ）のフローチャートを用いて説明する。
【００３３】
ステップＳ９０１において、境界取得部２０３が、予め撮像された基本の背景画像の画素値情報を取得する。ステップＳ９０２では、境界取得部２０３によって、隣接する画素との画素値の差分が所定の値よりも大きい画素を検出する。画素値の差分が大きいことは、極端な高さの違いが生じていることを示すため、テーブルの縁部分に相当すると見なす。従って、隣接する画素との画素値の差分が、所定の値よりも大きい画素が連続する部分を、背景にテーブルが存在する領域と、テーブルが存在しない領域との境界として扱う。このとき境界として扱う画素は、テーブル上の範囲に含まれる方の画素（画素値が大きい方の画素）とする。ステップＳ９０３では、閾値決定部２０４が、領域の境界となる画素の画素値が変換された高さ情報に基づいて、平均高さを示す値を取得する。ステップＳ９０４において、閾値決定部２０４は、取得された平均の高さを、第２領域における高さの閾値とする。本実施例では、決定された閾値はＲＡＭ１０３に保持され、閾値処理を行う際に保持された値が参照される。
【００３４】
図２のフローチャートに戻り、ステップＳ４０２では、画像取得部２０１が、距離画像センサ１０５から入力された距離画像を、入力画像として取得する。
【００３５】
ステップＳ４０３では、抽出部２０５が、入力画像のうち、背景にテーブルが存在する領域（第１領域）において、テーブルよりも高い位置に存在する物体が写る領域を、物体領域として抽出する。物体が、テーブルよりも高い位置に存在するとは、該物体が、背景としてのテーブルの前景に存在することを意味する。本実施例では、背景にテーブルが存在する領域では、テーブルの表面からの相対的な高さ）を基準とする処理により、物体領域を検出する。具体的には、テーブルの表面からの相対的な高さが所定の閾値（第１の高さ閾値）よりも高い領域を、物体領域として抽出する。テーブルの高さと、物体の高さは同じシステムによって検出された情報であるため、その相対値を用いることにより、システムに生じる座標変換誤差やセンシング誤差の影響を抑えた検出が可能となる。ステップＳ４０３の処理の詳細は後述する。
【００３６】
ステップＳ４０４では、境界取得部２０３が、ステップＳ４０３において抽出された物体領域を含む、第１及び第２の２つの領域の境界の一部の座標を取得する。本実施例では、ユーザはテーブルの縁の外側から、テーブル上に手を差し込んで操作を行う。そのため、テーブル上に物体領域が検出された場合、テーブルの縁を跨ぐように物体が存在している可能性が高い。従って、第１領域から抽出された物体領域が、操作物体が映っている領域であれば、該物体領域には、ステップＳ９０２で検出した境界に属する部分が存在する。言い換えれば、ステップＳ９０２で検出した境界部分には、第１領域から抽出された物体領域の少なくとも一部が含まれる。一方、抽出された物体領域に、第１及び第２の２つの領域の境界に接する部分が存在しない場合、当該物体はユーザの手などの操作物体ではなく、テーブル上に何らかの物体が載置されたと推定される。この場合、抽出された物体領域を追跡してジェスチャ操作を認識する必要はないので、フローチャートの処理を終了する、あるいはステップＳ４０２に戻るなどの処理を行う。境界取得部２０３は、取得した境界の一部の情報をＲＡＭ１０３に保持する。なおステップＳ４０４では、ステップＳ４０３において抽出された第１領域内の物体領域のうちの第１及び第２の２つの領域の境界に属する部分を包含する所定のサイズの領域、あるいは所定の長さの直線（領域境界の接線）を取得してもよい。
【００３７】
ステップＳ４０５では、抽出部２０５が、入力画像のうち、テーブルが存在しない領域（第２領域）において、テーブルよりも高い位置に存在する物体が写る領域を、物体領域として抽出する。本実施例では、背景にテーブルが存在しない領域では、入力画像の画素値によって示される高さを基準とする処理により、物体領域を検出する。具体的には、ステップＳ４０１において決定された高さの閾値（第２の高さ閾値）による閾値処理に基づいて抽出を行う。ここで第２の高さ閾値は、テーブルが存在しない領域にも、テーブル上面が広がっていると仮定した場合の、仮想的なテーブル表面の高さに相当する。つまり、入力画像の画素値によって示される高さが、第２の高さ閾値に示される仮想的なテーブル面の高さよりも高い領域を、物体領域として抽出する。ただし、本実施例では、テーブルの縁の位置情報やテーブルの高さ情報には検出誤差があることを考慮し、第１及び第２の２つの領域の境界からのｘｙ平面上の距離に応じて、閾値を補正した上で、閾値処理を行う。ステップＳ４０５の処理の詳細は後述する。
【００３８】
次に、ステップＳ４０６では、認識部２０６が、ステップＳ４０３及びステップＳ４０５において抽出された物体領域を結合した物体領域の全体を対象として、該領域に写る物体は、ユーザの手であるか否かを判定する。なお、操作物体として用いられる物体がユーザの手ではなく、スタイラス等の所定の物体である場合は、結合された物体領域が当該操作物体であるかを判定する。本実施例では、結合された物体領域の形状（大きさ、円形度、縦横比、凹凸性）や色情報が、予め設定された条件を満たす場合に、当該領域がユーザの手であると判定する。条件とは例えば、物体領域の形状と予め用意された形状モデルとのマッチング結果の尤度高いことや、物体領域が所定のアスペクト比の矩形に収まることである。また、入力画像と同じ範囲を撮像した可視光画像をさらに用いて、物体領域の各画素のＲＧＢ値の平均が「人の肌の色」として設定された範囲に含まれることを判定してもよい。物体はユーザの手であると判定された場合（ステップＳ４０６でＹｅｓ）には、処理はステップＳ４０７に進む。物体はユーザの手ではないと判定された場合（ステップＳ４０６でＮｏ）には、処理はステップＳ４１０に進む。
【００３９】
ステップＳ４０７では、認識部２０６が、結合された物体領域の形状に基づいて、ユーザの手が指さし姿勢であるか否かを判定する。本実施例では、予め用意された指さし姿勢の手のモデルとのマッチングを行い、その尤度に基づいて判定を行う。ユーザの手が指さし姿勢であると判定された場合（ステップＳ４０７でＹｅｓ）には、処理はステップＳ４０８に進む。ユーザの手が指さし姿勢ではないと判定された場合（ステップＳ４０７でＮｏ）には、処理はステップＳ４０９に進む。
【００４０】
ステップＳ４０８では、認識部２０６が、指さし姿勢の手によるタッチ操作を認識する。具体的には、物体領域のうち指先に相当する位置の高さ情報を取得し、指先の高さとテーブルの高さの差に基づいて、テーブル上面が指先によってタッチされたか否かを判定する。タッチされた場合には、タッチされた位置に表示されたオブジェクトに対応する処理を実行する。例えば、タッチされた位置に表示されたオブジェクトを選択状態としたり、オブジェクトに関連付けられたコマンドを実行したりする。表示制御部２０７は、認識された操作に対する応答を示す表示画像を生成し、表示装置１０７に出力する。なお、一定の待機時間の間に、テーブル上面が指先によってタッチされることがなければ、タッチ操作の認識は中止して次のステップに進む。
【００４１】
ステップＳ４０９では、認識部２０６が、物体領域の位置情報をＲＡＭ１０３に保持し、所定時間の間の履歴に基づいて、ユーザの手によって行われるジェスチャ操作を認識する。本実施例では、少なくとも、ユーザの手が操作領域内で特定の方向に振られるジェスチャ操作（スワイプ操作）が認識可能であるとする。スワイプ操作を認識するため、ステップＳ４０９では、物体領域の重心の位置情報を特定する。そして、ＲＡＭ１０３などに情報を保持し、その時点までの重心の位置とその移動量を特徴量としたＨＭＭ（Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ）とのマッチングを行い、その尤度に基づいて認識を行う。表示制御部２０７は、認識されたスワイプ操作に対する応答を示す表示画像を生成し、表示装置１０７に出力する。
【００４２】
なお、本実施例のステップＳ４０６からステップＳ４０９のタッチやスワイプなどのジェスチャ認識は、このフローに沿うことに限るものではない。例えば、物体が手であるか否か（ステップＳ４０６）の判定結果や、手が指さし姿勢であるか否か（ステップＳ４０７）の判定結果によらず、タッチ操作の認識（ステップＳ４０８）やスワイプ操作の認識（ステップＳ４０９）を行っても構わない。また、さらに、手の高さや移動速度を示す情報等を用いて別のジェスチャ操作を認識することもできる。
【００４３】
ステップＳ４０９の処理が終了するか、ステップＳ４０６で、物体領域に写る物体がユーザの手でないと判定識別された場合、ステップＳ４１０において、ＣＰＵ１０１が、距離画像センサ１０５からの距離画像の入力が終了したか否かを判定する。画像入力が終了した場合はジェスチャ認識処理を終了し、画像入力が継続している場合は処理をステップＳ４０２に戻し、新たな入力画像に対するジェスチャ認識処理を行う。
【００４４】
［第１領域での物体領域の抽出処理］
次に、ステップＳ４０３において実行される、入力画像のうちテーブルが存在する領域である第１領域において、テーブルよりも高い位置に存在する物体が写る領域を、物体領域として抽出する処理の詳細を説明する。
【００４５】
ここで、図４を参照し、テーブルの縁を跨ぐように存在するユーザの手を検出する処理を、従来技術に沿って行った場合に生じる課題を説明する。図４（ａ）〜（ｃ）は、図２に示したシステムにおいて、テーブル３０１の周辺をｙｚ平面に平行な断面で見た図である。図４において、手５０１は、指さし姿勢（人差し指だけを伸ばした片手の状態）で、テーブル３０１を差し示すユーザの手である。
【００４６】
従来、ユーザの手がテーブルの縁を跨ぐように存在することを考慮しなければ、テーブルの縁より内側か外側かに関わらず、入力画像のうち、テーブル３０１の上面の高さよりも高い高さ情報が得られた部分を、手領域として検出することが考えられる。図４（ａ）は、理想的な状態を示す図である。高さ５０２は、距離画像センサ１０５によって計測されたテーブル面の高さであり、ユーザの手５０１の全体が、高さ５０２よりも上に存在するため、正確に手を検出することが可能となっている。しかしながら実際には、距離画像センサ１０５の性能による距離計測の誤差や、キャリブレーションで取得した座標変換パラメータの誤差に起因して、距離画像から得た情報を座標情報に変換した結果には誤差が生じる。そのため、テーブル面の高さを正確に検出し、テーブル面を境界とした上下を精度よく分離する処理は困難となる。例えば、図４（ｂ）は、検出されたテーブル面の高さが、真のテーブル高さよりも高い場合を示す。高さ５０４は、距離画像センサ１０５によって計測されたテーブル面の高さである。この場合、ユーザの手５０１の一部が、高さ５０４よりも低い位置にあると判定されるため、検出される物体領域に、欠損５０５が発生してしまう。また、図４（ｃ）は、検出されたテーブル面の高さが、真のテーブル高さよりも低い場合を示す。高さ５０６は、距離画像センサ１０５によって計測されたテーブル面の高さである。この場合、テーブル自体の一部５０７が、高さ５０７より高い位置にあることから物体領域として抽出されてしまい、真の物体領域との区別が困難になる。
【００４７】
そこで本実施例では、入力画像の各画素を、背景にテーブルが存在する第１領域とテーブルが存在しない第２領域に区別し、第１領域においては、テーブル表面の高さとの相対的な高さの閾値処理に基づいて、テーブル上の物体領域を検出する。距離計測や座標変換の誤差は、物体領域とテーブル面の両方に含まれるため、相対的な高さを取得することで、その誤差による影響は抑えられる。
【００４８】
図５のフローチャートを参照し、ステップＳ４０３において実行される具体的な処理の流れを説明する。まず、ステップＳ６０１では、高さ取得部２０２が、入力画像のうち、第１領域に含まれる注目画素を選択する。本実施例では、予め撮像された基本の背景画像によって、テーブルの縁の位置が得られるので、当該縁を境界とする範囲の内側を第１領域として、注目画素を選択する。なお本実施例では、１画素ずつ注目画素を選択するものとするが、複数画素からなるブロック毎に選択し、画素値の平均値を当該ブロックの高さ情報として以降の処理を行うこともできる。
【００４９】
ステップＳ６０２では、高さ取得部２０２が、注目画素に相当する位置（ｘｙ座標で示される位置）における、テーブル面の高さを取得する。本実施例では、基本の背景画像として予め撮像された距離画像の情報から、注目画素に相当する位置における、テーブル面の高さを示す情報を取得する。なお、基本の背景画像として予め撮像された距離画像を用いる以外の方法で、テーブルの高さを取得することもできる。例えば、前フレームの入力画像との差分に基づきテーブル内の動きの有無を判別し、動きが無い場合にはテーブル内に物体が存在しないとみなして現入力画像からテーブル高さを再取得しておくことも可能である。この方法であれば、最新のテーブルの状態が、基本の背景画像を撮像した時と異なる場合にも有効である。
【００５０】
次に、ステップＳ６０３では、高さ取得部２０２が、注目画素の画素値が示す高さの、テーブル面からの相対高さを取得する。本実施例では、注目画素の値と取得されたテーブル高さの値との減算により求められる。ステップＳ６０４では、抽出部２０５が、取得された相対高さが、第１の高さ閾値以上であるか否かを判定する。第１の高さ閾値は、テーブルとユーザの手を区別するための適切な距離を示す値として予め設定された閾値である。取得された相対高さが第１の高さ閾値以上であると判定された場合（ステップＳ６０４でＹｅｓ）、処理はステップＳ６０５に進む。取得された相対高さが第１の高さ閾値以上ではないと判定された場合（ステップＳ６０４でＮｏ）、処理はステップＳ６０６に進む。ステップＳ６０５では、注目画素を、物体領域の一部として特定する。ステップＳ６０６では、高さ取得部２０２が、第１領域内の全ての画素について処理が終了したかを判定する。第１領域内の全ての画素について処理が終了していると判定された場合（ステップ７０６でＹｅｓ）は、メインフローにリターンし、ステップＳ４０４以降の処理を実行する。第１領域内の全ての画素について処理が終了していないと判定された場合（ステップ７０６でＮｏ）、ステップＳ６０１に戻り、未処理の画素を注目画素として選択して処理を繰り返す。なお図５のフローチャートでは、予め区分されている第１領域の画素から注目画素を選択し、第１領域の全ての画素について処理を繰り返すとしたが、入力画像の全ての画素を走査し、第１領域に含まれる画素かを判定する処理を加えても同じである。
【００５１】
なお本実施例では、第１領域に対する抽出処理に用いられる第１の高さ閾値は、テーブル面からの相対的な高さと比較される高さの閾値であって、予め決定された値を参照するとする。ただし、第１の高さ閾値に対しても、閾値決定部２０４が入力画像に基づく補正処理を行い、環境に適用した閾値を導出するとしても良い。
【００５２】
［第２領域での物体領域の抽出処理］
次に、ステップＳ４０５において実行される、テーブルが存在しない領域である距離画像の第２領域において、テーブルよりも高い位置に存在する物体が写る領域を、物体領域として抽出する処理の詳細を説明する。
【００５３】
ここで、図６を参照し、テーブルの縁を跨ぐように存在するユーザの手を、テーブルが存在する領域とテーブルが存在しない領域の２つの領域に分けて検出する場合に生じ得る状況の例を説明する。図６（ａ）〜（ｃ）は、図２に示したシステムにおいて、テーブル３０１の周辺をｙｚ平面に平行な断面で見た図である。図４と同様、手５０１は、指さし姿勢（人差し指だけを伸ばした片手の状態）で、テーブル３０１を差し示すユーザの手である。
【００５４】
テーブル上の第１領域では、テーブル面との相対高さの閾値処理を用いることで、物体領域の検出におけるノイズや欠損を抑制できるのは上述した通りである。図６（ａ）は、第１領域と第２領域の境界が正確に検出されている状態を示す図である。境界７０１は、基本の背景画像に基づいてステップＳ９０２で検出されるテーブルの縁であり、第１領域と第２領域の境界線である。高さ７０２は、ステップＳ４０１において設定された、第２領域での高さの閾値（第２の高さ閾値）である。ただし、基本の背景画像に基づく第１領域と第２領域の境界の検出においても、誤差が発生する場合がある。例えば、センシングの誤差により、テーブルの縁より外であるとみなされる画素に相当する位置おいても、実際にはテーブルが存在する場合が生じることがある。図６（ｂ）は、テーブルの縁が実際よりもテーブルの内側であるように検出されている状況において、検出されたテーブル面の高さが、真のテーブル高さよりも低い場合を示す。この場合、第２領域に存在するテーブルの一部分が、高さ７０２よりも高い位置にあることから、物体領域として検出されてしまい、ノイズ８０１となる。ｙｚ平面では、ノイズ部分は、実際の手の直下に位置するため、物体領域として検出されるｙ座標は、図６（ａ）の理想的な場合と同じであるように見える。しかしながら、ノイズ８０１は、ｘ軸方向にテーブル３０１の幅と同じだけの広がりがあるため、ノイズ８０１を含む物体領域の形状は、ユーザの手であると認識されず、操作の認識精度が低下する原因となる。一方、図６（ｃ）は、テーブルの縁が実際よりもテーブルの内側であるように検出されている状況において、検出されたテーブル面の高さが、真のテーブル高さよりも高い場合を示す。この場合、手５０１のうち、高さ７０２よりも低い部分が、物体領域として検出されないので、欠損８０２が発生してしまう。欠損８０２の大きさや形状によっては、第１領域で検出された物体領域と、第２領域で検出された物体領域とが不連続となってしまい、手による操作の認識精度が低下する原因となり得る。
【００５５】
そこで、本実施例では、先に第１領域に対する処理で抽出された物体領域の、領域の境界部分での情報に基づいて、第２の高さ閾値の大きさを変更したり適用範囲を制限したりすることによって、物体領域のノイズや欠損の発生を抑える。
【００５６】
図７のフローチャートを参照して、ステップＳ４０５において実行される第２領域内の物体領域の検出処理の詳細な流れを説明する。
【００５７】
ステップＳ８０１では、高さ取得部２０２が、入力画像のうち、第２領域に含まれる注目画素を選択する。本実施例では、１画素ずつ注目画素を選択するものとするが、複数画素からなるブロック毎に選択し、画素値の平均値を当該ブロックの高さ情報として以降の処理を行うこともできる。ステップＳ８０２では、閾値決定部２０４が、注目画素に相当する位置（ｘｙ座標）と、ステップＳ４０４で検出された、第１領域で抽出された物体領域を含む、第１及び第２の２つの領域の境界の一部との距離を取得する。ここでは、ｙ座標について最短距離を算出するとする。
【００５８】
ステップＳ８０３では、閾値決定部２０４が、ステップＳ８０２で取得された距離に応じて、ステップＳ４０１で決定された第２領域での高さの閾値（第２の高さ閾値）を補正する。なおこの処理の目的は、第１領域と第２領域の境界が不連続となってしまうことを防ぎ、かつ、実際にはユーザの手が存在し得ない位置でテーブルが検出されノイズとなることを防ぐことである。そこでステップＳ８０２で取得された距離が小さい、つまり境界の近傍に当たる領域では、高さの閾値を低くして、領域が不連続となることを防ぐ。一方、ステップＳ８０２で取得された距離が大きい、つまりユーザの手から遠い範囲では、高さの閾値を高くすることで、テーブル自体がノイズとして物体領域に含まれてしまうことを防ぐ。ステップＳ８０３の処理の詳細は後述する。
【００５９】
ステップＳ８０４では、高さ取得部２０２が、注目画素の画素値が示す高さを取得する。ステップＳ８０５において、抽出部２０５が、取得された高さが、第２の高さ閾値以上であるか否かを判定する。第２の高さ閾値は、ステップＳ８０３で補正された値である。高さが第２の高さ閾値以上であると判定された場合（ステップＳ８０５でＹｅｓ）、処理はステップＳ８０６に進む。取得された高さが第２の高さ閾値以上ではないと判定された場合（ステップＳ８０５でＮｏ）、処理はステップＳ８０７に進む。ステップＳ８０６では、抽出部２０５が、注目画素を、物体領域の一部として特定する。ステップＳ８０７では、第２領域内の全ての画素について処理が終了したかを判定する。第２領域内の全ての画素について処理が終了していると判定された場合（ステップ１００７でＹｅｓ）は、メインフローにリターンし、ステップＳ４０４以降の処理を実行する。第１領域内の全ての画素について処理が終了していないと判定された場合（ステップ１００７でＮｏ）、ステップＳ８０１に戻り、未処理の画素を注目画素として選択して処理を繰り返す。なお図７のフローチャートでは、予め区分されている第２領域の画素から注目画素を選択し、第２領域の全ての画素について処理を繰り返すとしたが、入力画像の全ての画素を走査し、第２領域に含まれる画素かを判定する処理を加えても同じである。
【００６０】
本実施例では、地面に対して平行するように設置されたテーブルを背景とする空間での処理を上げているため、第２領域では、画素値に示される高さが第２の高さ閾値より高い画素を、物体領域として特定する。しかし、背景に含まれる平板が地面に平行ではない場合は、画素値に示される位置情報（平板に交わる方向の位置情報）が、平板の表面よりも前景側（距離画像センサ１０５に近い側）の位置を示す画素を、物体領域として特定することになる。
【００６１】
［第２の高さ閾値の補正処理］
次に、図８（ｂ）のフローチャート、及び図９〜１２の概念図を参照して、ステップＳ８０３で実行される第２の高さ閾値を補正する処理を説明する。
【００６２】
図８（ｂ）のフローチャートは、ステップＳ８０３で行われる処理の詳細を示す。ステップＳ１００１では、ＣＰＵ１０１が、ステップＳ８０２で取得された距離が、閾値Ｌより大きいか否かを判定する。距離がＬ未満である場合（ステップＳ１００１でＹｅｓ）、ステップＳ１００２において、第２の高さ閾値に距離に比例する値Ｈ＊（距離／Ｌ）を加える。一方、距離がＬ以上である場合（ステップＳ１００１でＮｏ）、ステップＳ１００３で、第２の高さ閾値に値Ｈを加える。この結果、２つの領域の境界の近傍での第２の高さ閾値は、近傍よりも遠い範囲での第２の高さ閾値よりも低くなる。ここで、図９によって、閾値Ｌと値Ｈについて説明する。閾値Ｌはテーブルを指先でタッチする際の手先から手首までの水平距離１１０１を超えないように設定され、値Ｈはタッチ時の手首の高さ１１０２を超えないように設定される。この制限を超えて閾値Ｌや値Ｈを設定すると、第２の高さ閾値がタッチ時の指や手首の高さを上回り、抽出領域の欠損が発生しやすくなるためである。本実施例では、上記制限に基づく一例として、閾値Ｌ＝８０ｍｍ、値Ｈ＝３０ｍｍと設定する。
【００６３】
次に、図１０〜図１２を参照して、第２閾値が補正される具体的な例を示す。図１０〜図１２は、図６（ｂ）及び（ｃ）と同様に、テーブルの縁が実際よりもテーブルの内側であるように検出されている状況を示す。各図の（ａ）は、ｙｚ平面での断面図である。各図の（ｂ）は、テーブル３０１をｚ軸に沿って上から見た画像であって、距離画像センサ１０５によって撮像され、情報処理装置１００に入力される入力画像に対応する。ただし、本実施例における実際の入力画像は、距離画像である。境界７０１の内部が第１領域、外部が第２領域であり、実際のテーブル３０１面よりも第１領域が小さいことが示されている。
【００６４】
本実施例は、図１０（ｂ）に示す画像１２０１に対応する距離画像が入力された場合、境界７０１の内側の第１領域においては、ユーザの指の一部が物体領域として抽出され、ステップＳ４０４においては、抽出された領域を含む境界７０１の一部が取得される。ここでは、接線１２０２が取得されたとする。図１１は、接線１２０２からの距離に応じて、境界の近傍の範囲１２０３の中では、第２の高さ閾値が低く補正されることを示している。ここで破線１２０４は、補正された第２閾値を示す。図１２（ｂ）では、画像１２０１のうち、境界７０１の外側の第２領域において、物体領域として抽出される部分を黒塗りで示している。境界付近では高さの閾値が低く補正されているため物体領域に欠損は発生せず、テーブルの一部が破線１２０４で示された閾値よりも低い位置にあったとしても、物体領域として検出されてしまう範囲は、第１領域で先に抽出された物体領域の極近傍に限定される。従って、結合された物体領域の形状が大きく変形されることはなく、ノイズの発生が抑制されている。
【００６５】
［実施例１の変形例］
ステップＳ８０３の高さ閾値の補正処理は、図６（ａ）に示されたような、第１領域と第２領域の境界が正確に取得されている状況では省略可能である。例えば、境界を示す位置情報をユーザが直接入力したり、可視光画像でのエッジ検出処理等に基づいてテーブルの縁部分がより正確に検出されたりしたことで、第２領域にテーブル面が含まれる可能性が低い場合もある。補正を省略できる場合、第１領域ではテーブル面からの相対高さを基準とし、第２領域ではテーブルの縁の検出に基づく基準高さを用いる手法を使い分けることで、テーブルの縁を跨いで存在するユーザの手を精度よく検出することが可能となる。
【００６６】
また、実施例１では、テーブルが存在する領域で抽出された物体領域を含む、テーブルの縁に当たる境界からの距離に応じて、基づいて第２の高さ閾値を補正した。しかし、ステップＳ４０４の処理を省き、ステップＳ８０２では、領域の境界線と注目画素との最短距離を取得してもよい。
【００６７】
また、実施例１の第２の高さ閾値の補正処理によって補正された高さの閾値は、第２の領域では、実際のテーブル面よりも高く設定されるため、テーブル面の高さより上にある物体でも検出され難くなってしまう場合がある。従って、第１及び第２の領域の境界を跨いでいない物体を検出する場合には、補正前の第２の高さ閾値を適用するように処理を区別してもよい。よって、テーブルよりも外に存在する物体を検出する必要がある場合は、本変形例を代用または併用することにより、抽出性能を高めることが可能である。
【００６８】
また、実施例１では、ステップＳ４０６において、抽出された物体領域の形状（大きさ、円形度、縦横比、凹凸性）や色情報に基づいて抽出領域がユーザの手であるか否かを識別することで、操作物体以外の物体により操作が誤認識される可能性を低減している。ただし、テーブル内への侵入量に基づいて物体を識別することも可能である。例えば、第１領域で抽出された物体領域の面積を侵入量、第１及び第２領域で抽出された物体領域の総面積を大きさとみなして、それぞれが適正な範囲か否かを閾値判定することにより、不自然な物体領域を除去することが可能である。
【００６９】
また、実施例１は、テーブルトップＩＦに限らず、所定の平板を背景の一部とする空間を撮像した距離画像から、背景である前記所定の平板の前景に存在する物体が写る領域を抽出するシステムに適用可能である。
【００７０】
＜実施例２＞
次に、実施例１に対し、第１領域と第２領域のそれぞれでの閾値処理の結果に生じる乖離を低減する構成を加えた実施例２を説明する。実施例２に係る情報処理システムの外観、ハードウェア構成は、実施例１において図１及び図２を参照して説明したもの同様であるため、同一符号を付して詳細な説明を省略する。ただし実施例２の、機能構成において、実施例２の閾値決定部２０４は、第２の高さ閾値の複数の候補値を用意し、第１領域での物体領域の抽出結果との乖離が少ない閾値を選択する。
【００７１】
図１３のフローチャートにより実施例２のジェスチャ認識処理を説明する。この処理は、情報処理装置の各機能部を構成するＣＰＵ１０１がＲＯＭ１０２に記録されたプログラムをＲＡＭ１０３に展開して実行することで実現される。また、この処理は、距離画像センサ１０５によって撮像された距離画像が、画像取得部２０１に入力されたことに応じて起動される。また図１５は、図１３のフローチャートの各ステップの処理が行われた段階で抽出される物体領域の変遷の一例を示す図である。なお、図１３において、図３のフローチャートと同じ番号を付したステップでは、図３と同じ処理を行うため詳細な説明を省略し、図３との相違点を説明する。
【００７２】
実施例２では、ステップＳ４０４において、第１領域内の物体領域が抽出されると、処理はステップＳ１３０１に進む。
【００７３】
ステップＳ１３０１では、閾値決定部２０４が、第２の高さ閾値が決定済みであるかを判定する。具体的には、既に決定した第２の高さ閾値の情報が、ＲＡＭ１０３に保持されているかに基づいて判定を行う。第２の高さ閾値が決定済みでない、つまり未決定であれば（ステップＳ１３０１でＮｏ）、ステップＳ１３０２で第２の高さ閾値を決定する。
【００７４】
ここで、ＣＰＵ１０１の機能部である閾値決定部２０４が実行する第２の高さ閾値決定処理（Ｓ１３０２）の流れを、図１４のフローチャート及び図１５により説明する。まず、ステップＳ１４０１において、閾値決定部２０４は、第２の高さ閾値のＮ個の候補値Ｔｎ（ｎ＝０，．．．，Ｎ−１）を決定する。候補値Ｔｎは、想定されるテーブル面の高さを基準とし、上下に幅を持たせて複数用意する。例えばステップＳ４０１と同様の処理により、基準となる高さを求め、その上下に所定の幅を持たせた高さを複数決定する。また例えば、距離画像センサ１０５とテーブル３０１の固定された位置関係に基づいて予め決定された候補値を、記憶装置１０４等から読み出すことによって決定してもよい。次に、各候補値Ｔｎについて、ステップＳ１４０２からＳ１４０４の処理を繰り返し行う。ステップＳ１４０２では、画像中のテーブル内の画素を走査し、高さがＴｎ以上である領域を抽出する。図１５に示す例では、領域１５０２が抽出される。ステップＳ１４０３では、ステップＳ４０４において抽出された第１領域内の物体領域との差分を取得する。本実施例では、ここでは、排他的論理和をとる。図１５の場合、第１領域内で抽出された物体領域１５０１と、ステップＳ１４０２で抽出された領域１５０２との差分１５０３が取得される。そしてステップＳ１４０４において、ＣＰＵ１０１は、その画素数を取得する。上記の処理を、各Ｔｎ（ｎ＝０，．．．，Ｎ−１）について行った後、ステップＳ１４０５において、閾値決定部２０４は、差分画素数が最小となるＴｎを第２の高さ閾値として決定し、その情報をＲＡＭ１０３に保持する。図１５では、ステップＳ１４０２からステップＳ１４０４の処理が繰り返される度に閾値の高さが低くなり、Ｔ２を用いた段階で取得された差分画素数が最小であったことが示されている。以上の第２の高さ閾値決定処理により、テーブル内外間の抽出基準の差が小さな閾値を得ることが可能となる。第２の高さ閾値が決定されたら、図１４のフローチャートにリターンし、ステップ４０６以降の処理が実行される。
【００７５】
実施例２では、ステップＳ４０８においてタッチ操作を認識する処理の後、ステップＳ１３０３に進み、閾値決定部２０４が、タッチ操作が行われたか否かを判定する。タッチ操作が行われた場合（ステップＳ１３０３でＹｅｓ）は、ステップＳ１３０４に進む。一方、ステップＳ４０８の処理の間に設けた一定の待機時間の間に、テーブル面がユーザの指先によってタッチされることがなければ、タッチ操作が行われなかったと判定し（ステップＳ１３０３でＮｏ）、ステップＳ４０９に進む。ステップＳ１３０４では、閾値決定部２０４が、第２の高さ閾値を再び決定する。ステップＳ１３０４の第２の高さ閾値決定処理は、ステップＳ１３０２と同様、図１４のフローチャートの従って実行される。ユーザがタッチ操作を行った時、ユーザの手はテーブル面に接触する高さに存在している。従って、タッチ操作が行われた時点で、テーブルの高さに対応する高さ閾値の決定処理を再度行うことで、より正確にテーブルと手を識別可能な高さ閾値を求めることが可能になる。ただし、タッチ操作が行われる度に閾値を再決定するのではなく、例えば、情報処理装置１００の起動後初回のタッチ操作があった時に閾値を再決定する等、処理の機会を限定してもよい。このように、処理の機会を限定することで、ＣＰＵ１０１の処理能力をタッチ操作への応答を優先して使うことができる。
【００７６】
また、実施例２もまた、テーブルトップＩＦに限らず、所定の平板を背景の一部とする空間を撮像した距離画像から、背景である前記所定の平板の前景に存在する物体が写る領域を抽出するシステムに適用可能である。
【００７７】
＜その他の実施例＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７８】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０５  距離画像センサ
１０７  表示装置
２０１  画像取得部
２０２  高さ取得部
２０３  境界取得部
２０４  閾値決定部
２０５  抽出部
２０６  認識部
２０７  表示制御部
【図１】
0006335695.tif 000002
【図２】
0006335695.tif 000003
【図３】
0006335695.tif 000004
【図４】
0006335695.tif 000005
【図５】
0006335695.tif 000006
【図６】
0006335695.tif 000007
【図７】
0006335695.tif 000008
【図８】
0006335695.tif 000009
【図９】
0006335695.tif 000010
【図１０】
0006335695.tif 000011
【図１１】
0006335695.tif 000012
【図１２】
0006335695.tif 000013
【図１３】
0006335695.tif 000014
【図１４】
0006335695.tif 000015
【図１５】
0006335695.tif 000016