(57)【特許請求の範囲】
【請求項１】
操作面を背景の一部とする空間内の三次元の位置情報が反映された入力画像を取得する画像取得手段と、
前記画像取得手段によって取得された入力画像と、前記空間のうち背景を示す情報とに基づいて、前記入力画像から前記背景の前景に存在する物体が写る領域を抽出する抽出手段と、
前記抽出手段によって抽出された領域のうち、前記入力画像における所定の閉領域を形成する境界線に接しない領域を、孤立領域として検出する検出手段と、
前記孤立領域内に反映された位置情報を前記操作面の三次元形状の一部として、前記背景を示す情報を更新する更新手段と、
前記空間内において、前記孤立領域に対応する部分では、前記更新された背景を示す情報に基づいて、前記操作面に対する所定の物体の近接状態を認識する認識手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記画像取得手段は、距離画像センサから前記空間内の被写体までの距離を示す画素値を有する距離画像を前記入力画像として取得することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記抽出手段は、前記画像取得手段が取得した入力画像に反映された距離情報から、前記背景を示す距離情報を差し引くことによって、前記背景の前景に存在する物体が写る領域を抽出することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記更新手段は、前記抽出手段によって抽出された領域のうち、前記孤立領域内に反映された距離情報を合成することで、前記背景を示す距離情報を更新することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記操作面は、テーブルトップインタフェースシステムにおけるテーブル面であって、前記更新手段は、前記孤立領域を、前記テーブル面に載置された立体物に対応する領域であるとみなし、前記テーブル面及び前記立体物とが前記操作面を成すように、前記操作面の高さを示す位置情報を更新することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記更新手段は、前記入力画像のうち、前記検出手段が検出した孤立領域内に反映された位置情報が、直前までの所定時間において、最後に検出されていた孤立領域内に反映された位置情報から変化した場合、前記背景を示す情報のうち、前記孤立領域に対応する部分を示す情報を初期状態に戻すことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記更新手段は、前記検出手段が検出した孤立領域内に反映された位置情報が、直前までの所定時間において、最後に検出されていた孤立領域内に反映された位置情報から変化し、かつ、前記検出手段が検出した孤立領域が、前記最後に検出されていた孤立領域と接している場合に、前記背景を示す情報のうち、前記孤立領域に対応する部分を示す情報を初期状態に戻すことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記画像取得手段によって取得された入力画像から、前記孤立領域内の一部について、三次元の位置情報が取得されなかった場合、前記孤立領域内から取得される三次元の位置情報による補間を行う補間手段を更に備えることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記抽出手段によって抽出された領域のうち、前記孤立領域ではない領域の形状に基づいて、前記所定の物体によって示される操作位置を特定する特定手段を更に備え、前記認識手段は、前記特定手段によって特定された前記操作位置の三次元の位置情報に基づいて、前記操作面に対する前記所定の物体の近接状態を認識することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記認識手段は、前記特定手段によって特定された前記操作位置の三次元の位置情報と、前記操作面の三次元形状とが、前記所定の指示物体が前記操作面に所定の距離より近いことを示す場合に、前記所定の物体による前記操作面への接触を検出することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
コンピュータに読み込ませ実行させることによって、前記コンピュータを、請求項１に記載された画像処理装置として機能させるためのプログラム。
【請求項１２】
請求項１１に記載されたプログラムが格納されたコンピュータが読み取り可能な記憶媒体。
【請求項１３】
画像取得手段により、操作面を背景の一部とする空間内の三次元の位置情報が反映された入力画像を取得する画像取得工程と、
抽出手段により、前記画像取得工程において取得された入力画像と、前記空間のうち背景を示す情報とに基づいて、前記入力画像から前記背景の前景に存在する物体が写る領域を抽出する抽出工程と、
前記抽出工程で抽出された領域のうち、前記入力画像における所定の閉領域を形成する境界線に接しない領域を、孤立領域として検出する検出工程と、
更新手段により、前記孤立領域内に反映された位置情報を前記操作面の三次元形状の一部として、前記背景を示す情報を更新する更新工程と、
認識手段により、前記空間内において、前記孤立領域に対応する部分では、前記更新された背景を示す情報に基づいて、前記操作面に対する所定の物体の近接状態を認識する認識工程とを有することを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像から抽出された移動領域に基づいてユーザ操作を検出する技術に関する。
【背景技術】
【０００２】
可視光カメラや赤外線カメラや距離画像センサによって得られた画像から、ユーザの手など特定の物体が写る領域を抽出し、その動きや位置に応じてジェスチャによるＵＩ（ユーザインターフェース）操作を認識する技術が広まりつつある。テーブル面に画像やＵＩを映し出し、接触することによってそれらを操作するテーブルトップインタフェースにも、タッチパネルによる接触検出に拠らず、物体の三次元位置の計測に基づいて操作を認識する技術が使用され始めている。
【０００３】
特許文献１は、カメラで撮像した映像のフレーム間差分に基づいてユーザの手を検出し、投影されたＵＩ部品に対するジェスチャ操作を認識するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２５７６８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
三次元位置の計測に基づいて物体がタッチ対象面に接触したことを検出するには、タッチ対象面と物体との間の距離を計測し、当該距離が予め設定された閾値よりも小さい場合を、タッチ対象面がタッチされているとみなすことが多い。
【０００６】
三次元計測によって操作を認識するシステムの利点の一つは、タッチ操作の対象として設定可能な面がタッチパネル上に限定されないことである。つまり、任意の壁面や、テーブル上に載置された立体物の表面に対する接触を検出し、操作として認識することができる。しかしながら、テーブル上で立体物が載置されたり移動されたりした場合、タッチ対象面の三次元形状が変形するため、三次元位置情報を更新する必要がある。変形を加える度に、システムに対して三次元位置情報の更新を明示的に指示することは、ユーザにとってわずらわしい作業となる。
【０００７】
本発明は、上記課題を考慮したものであり、操作対象面が変形可能なシステムにおいて、ユーザの作業に合わせて操作対象面の三次元位置情報を更新することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明に係る画像処理装置は、操作面を背景の一部とする空間内の三次元の位置情報が反映された入力画像を取得する画像取得手段と、前記画像取得手段によって取得された入力画像と、前記空間のうち背景を示す情報とに基づいて、前記入力画像から前記背景の前景に存在する物体が写る領域を抽出する抽出手段と、前記抽出手段によって抽出された領域のうち、前記入力画像における所定の閉領域を形成する境界線に接しない領域を、孤立領域として検出する検出手段と、前記孤立領域内に反映された位置情報を前記操作面の三次元形状の一部として、前記背景を示す情報を更新する更新手段と、前記空間内において、前記孤立領域に対応する部分では、前記更新された背景を示す情報に基づいて、前記操作面に対する所定の物体の近接状態を認識する認識手段とを備える。
【発明の効果】
【０００９】
本発明によれば、操作対象面が変形可能なシステムにおいて、ユーザの作業に合わせて操作対象面の三次元位置情報を更新することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施例に係る画像処理装置の機能構成及びハードウェア構成を表すブロック図。
【図２】第１の実施例に係る画像処理装置を設置したテーブルトップインタフェースの外観と定義される位置情報の一例を表す図。
【図３】操作面に載置された立体物とユーザの手の状況の一例を表す図。
【図４】第１の実施例に係る画像処理装置が実行する操作面の高さ情報を取得する処理の一例を表すフローチャート。
【図５】背景差分手法により移動領域が抽出される処理において扱われる画像の一例を表す図。
【図６】第１の実施例において孤立領域を検出する画像処理の具体例を表す図。
【図７】第１の実施例において立体物を操作面の一部として合成する画像処理の具体例を表す図である。
【図８】第１の実施例に係る画像処理装置が実行する孤立領域の変動を判定する処理の一例を表すフローチャート。
【図９】第１の実施例における、孤立領域が変動する場合に取得される距離画像の一例を表す図。
【図１０】第１の実施例における、載置された複数の立体物のうち一つが取り除かれる場合の画像処理の具体例を表す図。
【図１１】第１の実施例における、載置された立体物がゆっくりと動かされた場合の画像処理の具体例を表す図。
【図１２】第１の実施例における、既に載置された立体物の上にもう一つ立体物が重ねられる場合の画像処理の具体例を表す図である。
【図１３】第１の実施例における、重ねられた二つの立体物のうち、上の立体物が取り除かれる場合の画像処理の具体例を表す図。
【図１４】第１の実施例における、既に載置された立体物の領域が広がる場合の画像処理の具体例を表す図。
【図１５】第１の実施例における、既に載置された立体物の領域が狭まる場合の画像処理の具体例を表す図。
【図１６】変形例３における、立体物の一部の距離情報が検出されない場合の画像処理の具体例を表す図。
【図１７】第１の実施例に係る画像処理装置が実行する距離情報の補間処理の一例を表すフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明に係る実施例の情報処理を、図面を参照して詳細に説明する。なお、実施例に記載する構成は例示であり、本発明の範囲をそれら構成に限定する趣旨のものではない。
【００１２】
＜第１の実施例＞
図１（ａ）は、第１の実施例に係る画像処理装置の機能構成の一例を表す図である。
【００１３】
画像取得部１０１は、距離画像センサ１１６が撮像した距離画像を入力画像として取得する。移動領域抽出部１０２は、画像取得部１０１が取得した入力画像から、移動する物体が写る領域を移動領域として抽出する。なお、移動する物体には、少なくともユーザの手などジェスチャ操作の入力に用いられる物体が含まれることが想定されるが、ユーザが本や紙など物体を把持している場合には、それらを含む全体が写る範囲が移動領域として抽出される。
【００１４】
物体識別部１０３は、移動領域抽出部１０２によって抽出された移動領域が、所定の認識対象であるかを識別する。本実施例では、ジェスチャ操作に用いられるユーザの手を所定の認識対象として識別する。ただし本実施例は、ユーザの手に限らず、その他の身体の部位やスタイラス等が指示物体として用いられる場合にも適用可能である。操作位置特定部１０４は、指示物体によって示される操作位置を特定する。本実施例では、ユーザの指先位置を特定する。位置取得部１０５は、入力画像の各画素から得られる情報を三次元座標空間における位置情報に変換する。認識部１０６は、位置取得部１０５が取得した三次元位置に基づいて、指示物体を用いて入力されるユーザからの指示を認識する認識部である。本実施例の認識部１０６は、少なくとも、ユーザが手を使って行う操作面へのタッチ操作を検出し、タッチされた位置に表示されたオブジェクトに対応する指示を認識する。例えば、タッチされた位置に表示されたオブジェクトを選択状態としたり、オブジェクトに関連付けられたコマンドを実行させたりする指示である。さらに、認識部１０６には、ユーザの手の形状や動きに基づいて、タッチを伴わないジェスチャ操作を認識させることも可能である。
【００１５】
孤立領域検出部１０７は、移動領域抽出部１０２が抽出した移動領域のうち、孤立した領域を検出する。本実施例において、移動領域が孤立しているとは、入力画像において、当該移動領域が、操作面の輪郭に接していないことを意味する。ここで操作面とは、タッチ操作の対象となる面であって、例えば、テーブルトップインタフェースの場合はテーブル上面である。ただしテーブル上面よりも距離画像センサ１１６の画角が小さい場合は、画角内を操作面として扱う。以下では、操作面の直上に存在する空間を操作エリアという。本実施例では、ユーザは操作エリアの外から中に手を差しいれて操作を行うため、ユーザの手などの指示物体は、かならず操作面の輪郭を跨ぐように存在する。つまり、指示物体に対応する移動領域は、画像上では必ず操作面の輪郭に接する。一方、操作面の輪郭に接しない孤立した領域は、指示物体ではないとみなすことができる。
【００１６】
変動判定部１０８は、孤立領域検出部１０７によって検出された孤立領域が変動したか否かを判定する変動判定部である。更新部１０９は、孤立領域検出部１０７が検出した孤立領域内の三次元位置情報を用いて操作面の情報を更新する。本実施例では、孤立領域内の高さ情報を、操作面の高さを定義する情報に合成することで、例えば、初期状態の操作面に対して立体物が載置されるなどした場合に、立体物に対するタッチを検出することを可能とする。
【００１７】
これらの各機能部は、ＣＰＵ（中央処理装置）１１１が、ＲＯＭ１１２に格納されたプログラムをＲＡＭ１１３に展開し、後述する各フローチャートに従った処理を実行することで実現されている。各機能部を、上記ＣＰＵ１１１を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００１８】
図１（ｂ）は、本実施例に係る画像処理装置１００を含むテーブルトップインタフェースのハードウェア構成図である。ＣＰＵ１１１は、画像処理装置１００の制御プログラムを実行して各種処理のための演算や論理判断などを行い、システムバス１１８に接続された各構成要素を制御する。ＲＯＭ１１２は、プログラムメモリであって、後述する各種処理手順を含むＣＰＵ１１１による制御のためのプログラムを格納する。ＲＡＭ１１３は、ＣＰＵ１１１のワークエリア、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを提供するために用いられる。記憶装置１１４は本実施形態に係るデータやプログラムを記憶しておくためのハードディスクや接続された外部記憶装置などであり、画像処理装置１００が利用する各種データを格納する。
【００１９】
カメラ１１５は、可視光の画像を取得する可視光カメラである。距離画像センサ１１６は、画角に含む各画素までの距離情報を反映した距離画像を撮像する距離画像センサである。距離情報を得る方式は、赤外光等の光を投射してその反射時間によって測定するものや、パターン光を照射してその形状から距離を計測するもの、あるいはステレオカメラ等、どのようなものでも良い。本実施例では、環境光やテーブル面の表示の影響が小さい赤外パターン投影方式を用いる。また、距離画像センサ１１６が可視光カメラ１１５の機能を兼ねていても良い。表示装置１１７は、ＵＩや情報などの画像を表示するためのディスプレイ、プロジェクタ等のである。本実施形態では、液晶プロジェクタが表示装置１１７として用いられる。
【００２０】
なお本実施例では、カメラ１１５、距離画像センサ１１６、表示装置１１７はそれぞれ画像処理装置１００に入出力用のインタフェースを介して接続された外部装置であり、画像処理装置１００と協同して情報処理システムを構成する。ただし、これらのデバイスは、画像処理装置１００に一体化されていても構わない。
【００２１】
図２（ａ）は、第１の実施例に係る画像処理装置１００を設置したテーブルトップインタフェースシステムの外観と位置情報の定義の一例を表す図である。平板２０１はテーブルトップインタフェースのテーブル部分であり、ユーザは、平板２０１をタッチすることでタッチ操作が可能である。本実施例では、平板２０１の上面が、初期状態における操作面である。ただし本実施例に係るテーブルトップインタフェースシステムでは、平板２０１の上に立体物２０２を載置することにより、立体物２０２が操作面の一部に合成され、立体物２０２に対するタッチ操作を受け付けることが可能となる。距離画像センサ１１６は、平板２０１上の空間を撮像することで、センサから空間内の被写体表面までの距離が画素値に反映された距離画像を得て、画像処理装置１００に入力する。なお図２入力画像ａのシステムにおいて、ユーザの手を追跡し、ジェスチャ操作などを認識する場合には、可視光カメラ１１５で撮像した可視光画像から、手が写る肌色部分を検出するという手法も存在する。しかしながら本実施例では、液晶プロジェクタによる画像の投影を行う影響で、平板２０１上にあるユーザの手の色が、可視光撮像では変色し、肌色検出では正確に検出されない場合がある。そこで本実施例では、プロジェクタによる投影光の影響を受け難いように、赤外光の反射パターン（もしくは反射時間）によって距離情報を取得する距離画像センサ１１６によって得られる、センサから平板２０１までの距離に基づいて、ユーザの手を検出する。
【００２２】
表示装置１１７は液晶プロジェクタであって、平板２０１上に、タッチ操作の対象となるＵＩ部品など各種情報を含む表示画像を投影する。可視光カメラ１１５は、平板２０１を含む範囲を俯瞰した可視光画像を撮像する。画像処理装置１００は、カメラ１１５による撮像画像に含まれる所定の物体（紙媒体や本などのドキュメントや立体物）部分の画像を、読み取り画像として取得することで書画カメラとして機能することができる。本実施例では、ユーザは表示装置１１７によって操作面に投影された画像に対してタッチ、空間ジェスチャ等の操作を行う。ただし、表示装置１１７は、例えば、平板２０１はディスプレイとして表示出力することが可能な液晶ディスプレイ装置であってもかまわない。
【００２３】
本実施例では、操作面上の三次元空間に図２（ａ）に示すｘ、ｙ、ｚ軸を定義し、位置情報を扱う。ここでは一例として、点２０３を原点とし、テーブル上面に平行な二次元がｘ、ｙ平面、テーブル上面に直交し上方に伸びる方向をｚ軸の正方向としている。なお、本実施例では、ｚ軸方向は、世界座標系での高さ方向に相当するため、操作面の三次元位置（三次元形状）の情報のことを差して、高さに関する情報、高さ情報という場合もある。対応またユーザの手２０４は、ユーザがタッチ操作やジェスチャ操作を行うために用いる指示物体の一例である。
【００２４】
図２（ｂ）は、画像処理装置１００に入力される距離画像の一例であるとする。領域２０５は、ユーザの手２０４に対応する移動領域であり、侵入位置２０６は、移動領域２０５が、画像の四辺（画角の端部分）と交差する位置である。本実施例のシステムでは、ユーザの顔や動体が直接距離画像に写ることはないため、移動領域が画像の四辺と交差する位置を、侵入位置として検出し、ユーザが存在する位置に対応する情報とみなす。そして本実施例では、移動領域２０５のうち、侵入位置２０６から最も遠い点を、ユーザの指先に相当する操作位置２０７として特定する。ただし、操作位置２０７の特定方法は、これに限らず、例えば手の五指を検出して各指の先端のいずれかを操作位置としても良いし、あるいは手の平の重心を操作位置として求めることもできる。本実施例のシステムの場合、図２（ａ）に示す距離画像センサ１１６からユーザの指先までの距離Ｄが、図２（ｂ）の距離画像の、操作位置２０７に対応するピクセルの画素値に反映される。そこで本実施例では、距離画像中の操作位置（ｘ，ｙ）と距離Ｄを表す画素値から、三次元座標（Ｘ，Ｙ，Ｚ）へ変換する変換行列によって、三次元位置を取得する。この変換行列は距離画像センサ１１６が固定された時に予めキャリブレーションによって求めておく。画像処理装置１００は、このような変換により、ユーザの手２０４が写る手領域及び、指先に相当する操作位置２０７の三次元位置を取得し、指先が操作面に触れたか否か等、操作の検出を行う。
【００２５】
なお、本実施例では、表示装置１１７と平板２０１の位置関係は、テーブル３０１の中心と表示装置１１７によって投影される表示画面の中心が一致し、テーブル３０１上面の９割以上の範囲に対して画像投影が可能であるように固定されるとする。ただし、平板２０１への投影が可能であれば、表示装置１１７の筐体自体は、必ずしもテーブル３０１の上方に設置されていなくても構わない。同様に距離画像センサ１１６も、高さ方向（ｚ軸方向）の距離情報を取得することが可能であれば、筐体が設置される位置は、テーブル３０１の上方に限らない。
【００２６】
本実施例では、初期状態における操作面である平板２０１の上面に、物体を載置することにより、当該物体に対するタッチ操作を受け付けることが可能となる。この時、載置されたものが紙など厚みのない物体であれば、ユーザの指などが操作面に接触したか否かを判定する高さ閾値は、初期状態の操作面に対する接触を検出する場合と同一で構わない。しかし、立体物２０２のように厚みのある物体の場合は、操作面の定義（高さの定義）を更新する必要がある。
【００２７】
図３は、操作面に載置された立体物とユーザの手の状況の一例を表す図である。図３は、平板２０１の周囲のｚｘ平面に平行な断面図と、距離画像センサ１１６で立体物２０２が載置された平板２０１状態を撮像した距離画像（ｘｙ平面に相当する）とを、ｘ軸を揃えて上下に対応させている。本実施例では、平板２０１に立体物２０２が載置されたことによって、タッチ操作の対象となる操作面の三次元形状の定義（高さの定義）を更新する。本実施例では、ユーザの手３０１のうち指先の部分と、操作面との近接状態を距離基づいて検出し、所定の距離の閾値よりも近接している場合に、前記操作面がタッチ操作のために接触されたと認識する。具体的には、まず画像処理装置１００は、ユーザの手３０１のうち指先の位置を、操作位置３０２として検出する。そして、入力画像に基づいて得られる操作位置３０２の高さ（ｚ座標）が、初期状態の操作面に対する高さの閾値３０３よりも低ければ、ユーザの手３０１が平板２０１をタッチしたと認識する。ただし、立体物２０２が載置された場合、立体物２０２の部分では、操作面の高さが立体物２０２の高さの分高く変形するのに応じて、立体物の表面の高さに基づく高さ閾値３０４を設定し、立体物に対する接触を認識する。
【００２８】
図３の下図に示す距離画像は、色が濃い（点の密度が高い）ほど距離画像センサ１１６に近い、つまり高さが高い（ｚ座標が大きい）ことを表す。以下、図面において距離画像を示す場合は全て同様である。立体物２０２が載置された場合、平板２０１上では、立体物２０２が存在しない範囲３０５に対するタッチの検出は高さ閾値３０３、立体物２０２が存在する範囲３０６に対するタッチの検出は高さ閾値３０４による閾値処理によって検出される。なお、本実施例のように、操作面に載置された立体物を背景の一部とみなす処理は、立体物に対するタッチを認識しないシステムであっても、距離画像から、ユーザの手などの指示物体を、背景と区別して抽出する上で有効である。
【００２９】
図４は、本実施例に係る画像処理装置が実行する操作面の高さ情報を取得する処理の一例を表すフローチャートである。本実施例では、画像処理装置１００に対し、距離画像センサ１１６から、１フレーム分の距離画像の入力信号が通知されたことに応じて、ＣＰＵ１１１により図４のフローチャートの処理が開始される。本実施例の距離画像センサ１１６は、所定周期毎に距離画像の撮像を繰り返しており、図４のフローチャートは、１フレームに相当する距離画像が入力される毎に繰り返し実行されるとする。ただし、フレームレートはシステムの処理能力に合わせて適宜設定されればよい。
【００３０】
ステップＳ４０１では、画像取得部１０１が、距離画像センサ１１６が撮像した距離画像を、入力画像として取得する。ステップＳ４０２では、移動領域抽出部１０２が、入力画像に含まれる移動領域を抽出する。本実施例では移動領域を背景差分により検出する。
【００３１】
ここで、図５を参照して背景差分手法により移動領域が抽出される処理の概要を説明する。図５は、背景差分手法により、移動領域が抽出される処理に係る距離画像の一例を表し、（ａ）、（ｂ）のそれぞれで左の列が入力画像、中央が背景画像、右列が入力画像と背景画像の差分画像である。背景画像は、操作面を撮像した距離画像であって、操作面の高さ情報が反映されている。図５（ａ）は初期状態を表し、背景画像ａは平板２０１が撮像された距離画像に相当する。図５（ｂ）は、平板２０１に立体物２０２が載置された状態を表し、背景画像ｂは、初期状態の背景画像ａに対し、立体物２０２の高さが合成されている。なお初期状態の背景画像ａは、距離画像センサ１１６が固定された時点か、画像処理装置１００が起動された直後にキャリブレーションとして取得され、保持されているとする。
【００３２】
背景差分手法とは、入力画像から背景画像を差し引くことによって、背景よりも手前の前景部分に存在する物体が写る領域を抽出する方法である。図２のシステムの場合は、操作面よりも上の空間に存在する物体が写る領域が抽出対象となる。図５（ａ）の状態の場合、移動領域抽出部１０２は、入力画像ａと背景画像ａとの差分をとることにより、差分画像ａを取得する。差分画像ａでは、入力画像のうち、操作面上に存在するユーザの手が写る部分が抽出されている。静止した背景の情報を利用して、前景にある移動可能な物体の画像情報を抽出するので、差分画像に抽出される領域のことを「移動領域」という。移動領域として抽出される領域に写る物体が、実際に移動しているかどうかは問わない。本実施例では、立体物２０２が載置されると、後述の処理で背景画像が更新される。背景画像の更新後の図５（ｂ）の状態では、移動領域抽出部１０２は、入力画像ｂと背景画像ｂの差分をとることにより、差分画像ｂを取得することで、移動領域を抽出する。背景画像を更新することにより、立体物が背景に存在する場合にも、ユーザの手だけを移動領域として抽出することができる。ステップＳ４０２において、移動領域抽出部１０２は、抽出した移動領域を示す情報をＲＡＭ１１３に保持する。
【００３３】
次にステップＳ４０３で、移動領域抽出部１０２が、ＲＡＭ１１３に保持した情報を参照し、１以上の移動領域が抽出されたかを判定する。１以上の移動領域が抽出されたと判定される場合（ステップＳ４０３でＹｅｓ）、ステップＳ４０４に進む。１以上の移動領域が抽出されていないと判定される場合（ステップＳ４０３でＮｏ）、ステップＳ４０５に進む。
【００３４】
ステップＳ４０４では、孤立領域検出部１０７が、抽出された１以上の移動領域のそれぞれについて、操作エリア内で孤立しているか否かを判定することで、孤立領域を検出する。ここで、図６を参照して、孤立領域を検出する画像処理の具体例を説明する。図６（ａ）は、ユーザが手６０２で立体物６０３を持って操作エリアに挿入し平板６０１上に置く段階を表しており、左図がそのときの入力画像、右図が抽出される移動領域６０４の輪郭を現す図である。破線６０５は、操作面の輪郭に相当する孤立判定境界であり、本実施例では、操作面の縁と一致しているとするが、操作面を包含する大きさにするなど大小関係を持たせても良い。孤立判定境界として用いる境界線は、入力画像に写る所定の閉領域を形成するものでれあればよく、例えば、入力画像自体の四辺や、操作面の内側に定義された所定の境界線を、孤立領域か否かを判定する境界として用いても構わない。ただし、ユーザが平板６０１上に、操作する目的で一般的な立体物を置く場合に、立体物が接してしまわないように十分な大きさを設定する設定するとよい。
【００３５】
孤立領域検出部１０７は、孤立判定境界６０５に、各移動領域が接するか否かによって、検出された移動領域の中から、孤立領域を検出する。例えば、図６（ａ）の場合、移動領域６０４は、孤立判定境界６０５に接しているため、孤立領域として検出されない。一方、図６（ｂ）は、ユーザが立体物６０３を平板６０１上に置く動作を終え、立体物６０３から手６０２を離した段階を表しており、左図がそのときの入力画像、右図が抽出される移動領域６０４の輪郭を現す図である。図６（ｂ）の場合、移動領域６０６と移動領域６０７が抽出されるが、そのうち移動領域６０７は、孤立判定境界６０５に接しない。そのため、孤立領域検出部１０７は、移動領域６０７を、孤立領域として検出するし、その情報をＲＡＭ１１３に保持する。なお、ステップＳ４０２において複数の移動領域が抽出された場合、それぞれにＩＤ番号をインクリメントしながら処理を繰り返すことで、全ての移動領域について、孤立しているか否かを判定する。ただし図４では、繰り返し処理については省略し、１つの移動領域について行われる処理を説明する。
【００３６】
移動領域が孤立していると判定された場合（ステップＳ４０４でＹｅｓ）、処理はステップＳ４０５に進む。一方、移動領域が孤立していると判定された場合（ステップＳ４０４でＮｏ）、処理はステップＳ４０９に進む。
【００３７】
ステップＳ４０５では、孤立領域検出部１０７が、過去所定のＮフレーム分の入力画像において、連続して同一の孤立領域が検出されたかを判定する。つまりステップＳ４０５では、連続Ｎフレームに対応する所定の時間の間、同じ孤立領域が検出され続けたかを判定する。過去Ｎフレーム分の情報は、ＲＡＭ１１３に保持された情報を参照することで判定する。Ｎフレーム分の入力画像において、連続して同一の孤立領域が検出されたと判定される場合（ステップＳ４０５でＹｅｓ）、ステップＳ４０６に進む。Ｎフレーム連続して同一の孤立領域が検出されてはいないと判定される場合（ステップＳ４０５でＮｏ）、ステップＳ４１３に進む。
【００３８】
ステップＳ４０６では、孤立領域検出部１０７が、検出された孤立領域を、立体物として特定する。以下では、立体物として特定された孤立領域を、立体物領域という。ステップＳ４０５およぶＳ４０６の処理は、紙など厚みのない物体が操作エリア内で浮いた状態にあることで、一時的に高さを持つように検出された場合には、操作面の高さ情報を更新する処理を省略するための判定処理である。ステップＳ４０７では、位置取得部１０５が、立体物領域の各画素値から高さ方向に対応する位置情報を取得する。ステップＳ４０８では、更新部１０９が、立体物領域の高さ方向の位置情報に基づいて、立体物の三次元形状を、操作面の三次元形状の情報に合成する。すなわち、この後に実行される移動領域の検出処理で用いる背景画像を、合成した操作面の距離画像に置き換える。
【００３９】
ここで、図７は、立体物を操作面の一部として合成する画像処理の具体例を表す図です。図７を参照し、ステップＳ４０８で実行される合成処理の詳細を説明する。図７（ａ）は、図６（ｂ）と同じ状態での入力画像であり、図７（ｂ）は、図７（ａ）の入力画像から抽出された移動領域であり、領域６０７が孤立領域として検出される。本実施例では、位置取得部１０５が、領域６０７が所定時間の間検出され続けたことに応じて、立体物領域として特定されるので、領域６０７部分の三次元位置情報が取得される。図７（ｃ）は、この時取得される三次元位置情報（高さ方向の距離情報）を距離画像として表したものである。本実施例では、入力画像は距離画像センサ１１６で取得した距離画像であるため、図７（ｃ）は、入力画像である図７（ａ）の孤立領域部分の画素値と一致する。なお、本実施例において、孤立領域６０７部分の三次元位置情報は、ステップＳ４０５でＮフレーム連続検出をカウントした最後のフレームから取得するとする。ただし本実施例は、Ｎフレームのうち最後のフレームに限らず、例えばＮフレームの孤立領域の論理和から三次元位置情報を取得してもよい。図７（ｄ）は、認識部１０６が、予め保持する初期状態の操作面の三次元位置情報を表す画像（背景画像）であり、移動領域がない場合に得られる入力画像と一致する。図７（ｅ）は、ステップＳ４０８において、更新部１０９が図７（ｃ）、図７（ｄ）を合成した操作面の三次元位置情報である。図７（ｃ）の距離画像のうち孤立領域検出部１０７が検出した立体物の領域の高さ方向の位置情報で、図７（ｄ）の同一範囲の高さ情報が置き換えられている。ステップＳ４０８の処理の段階では、立体物は操作エリア内で孤立していることが保証されている。つまり、画像中において、立体物は手から離れていて、手によって隠されている可能性は考慮する必要がない。従ってステップＳ４０８では、手の干渉を受けずに操作面の三次元位置情報を更新できる。
【００４０】
一方、ステップＳ４０４において移動領域が孤立していない場合、ステップＳ４０９において、物体識別部１０３が、検出された移動領域が、所定の指示物体らしい形状であるかを判定する。操作物らしい形状か否かは、移動領域の大きさ、縦横比などの形状や、モデルマッチングなどによって判定する。所定の指示物体はユーザの手であるとする場合、人の手らしい形状は全て指示物体として検出されるように判定の条件を設けてもよいし、あるいは所定のポーズをとっている手だけが指示物体として検出されるように条件を設けることもできる。本実施例では、ユーザの手が、人差し指だけを伸ばした指さし姿勢である場合に、所定の指示物体らしいと判定されるように条件を用意する。物体識別部１０３が、移動領域は所定の指示物体らしい形状であると判定した場合（ステップＳ４０９でＹｅｓ）、ステップＳ４１０に進む。移動領域は所定の指示物体らしい形状ではないと判定した場合（ステップＳ４０９でＮｏ）、ステップＳ４１５に進む。
【００４１】
ステップＳ４１０では、操作位置特定部１０４が、指示物体の操作位置を検出する。本実施例では、図２で示したように、平板上に定義された座標軸に基づいて、ユーザの手の指先の位置を、ｘ、ｙ座標で示された位置情報として特定する。ステップＳ４１１では、位置取得部１０５が操作位置の、三次元位置を取得する。本実施例では、距離画像中の情報を、図２に示した座標の定義に沿って変換し、ユーザの指先位置の三次元座標（Ｘ，Ｙ，Ｚ）を取得する。ステップＳ４１２では、認識部１０６が、取得された三次元位置に基づいて、操作物の操作を検出する。その一例としては、図３で示すように、操作位置３０２の高さが、初期の操作面の高さの閾値３０３、あるいは立体物２０２に基づいて操作面を更新した閾値３０４の高さを下回るか否かに基づいて、操作面へのタッチを検出する。また、タッチしている間に操作位置を動かすことによるドラッグや二つの操作位置によるズーム、回転等を検出しても良い。ステップＳ４１３では、変動判定部１０８が、立体物領域が変動したかを判定する。立体物領域が変動するとは、検出済みの立体物に、取り除かれた、移動した、形状が変わったなどを含む変化があった場合に、立体物領域内での距離情報に変化が生じることである。
【００４２】
ここで、図８のフローチャートを参照して、ステップＳ４１３で実行される、立体物領域が変動したかを判定する処理の詳細を説明する。まずステップＳ８０１において、変動判定部１０８は、過去所定時間内に、入力画像から立体物を検出していたか否かを判定する。立体物を検出していたと判定される場合（ステップＳ８０１でＹｅｓ）、ステップＳ８０２に進む。立体物を検出していなかったと判定される場合（ステップＳ８０１でＮｏ）、変動が検出されることはないので、ステップＳ８０５に進み、立体物領域は変動していないと判定して、メインフローに戻る。
【００４３】
ステップＳ８０２では、変動判定部１０８が、立体物領域の一部の高さが変化したか否かを検出する。これは、立体物にｘｙ平面での移動が発生したか否かを判定するための処理である。具体的には、前のフレームの入力画像から抽出された立体物部分の高さ方向の位置情報と、最新のフレーム（現時刻）の入力画像から抽出された立体物部分の高さ方向の位置情報とを比較し、高さが変化した部分の割合を判定する。
【００４４】
図９は、ステップＳ８０２において検出される、立体物領域の変動の一例を表す図である。図９において、波線の領域９０１は、直前まで立体物が存在した領域であり、ここでは前フレームの入力画像から孤立領域検出部１０７が検出した孤立領域である。現在時刻までの間に、ユーザが立体物を動かしたことにより、最新のフレームにおいて、立体物領域は領域９０２に移動している。入力画像同士の比較によれば、領域９０１内の一部の高さが、立体物の高さから平板２０１の高さまで低くなったように検出される。変動判定部１０８は、前フレームで孤立領域検出部１０７が検出した立体物領域９０１のｘｙ平面での面積に対して、高さが低くなった、あるいは大きくなった部分（領域９０１から領域９０２との重複部分を除いた部分）の面積の割合を取得する。そして取得した割合が、所定の割合Ｐ％より大きいかを判定する。なお、検出済みの立体物領域の一部の高さが高くなった場合は、別の移動領域が重なった可能性があるので、単一の物体についての変動とは限らないが、本実施例では、単一の物体が移動した場合と同じ処理で検出する。立体物領域の一部の高さが変化したと判定される場合（ステップＳ８０２でＹｅｓ）、ステップＳ８０３に進む。一方、立体物領域の一部の高さが変化していないと判定される場合（ステップＳ８０２でＮｏ）、ステップＳ８０４に進む。
【００４５】
ステップＳ８０３では、変動判定部１０８が、最新フレームの入力画像から立体物領域の中に、前フレームまでに検出していたうち最後の立体物領域と少なくとも一部が接している孤立領域があるか否かを判定する。なおこの「接している場合」の意味には、包含関係にある場合を含む。最新フレームの立体物領域が、前フレームまでに検出していたうち最後の立体物領域と、少なくとも一部で接していると判定される場合（ステップＳ８０３でＹｅｓ）、ステップＳ８０４に進む。最新フレームの立体物領域が、前フレームまでに検出していたうち最後の立体物領域と接していないと判定される場合（ステップＳ８０３でＮｏ）、ステップＳ８０５に進み、立体物が変動していないと判定して、メインフローに戻る。
【００４６】
ステップＳ８０４では、変動判定部１０８が、立体物領域が変動したと判定する。ステップＳ８０３において、過去所定時間内に検出した立体物領域と最新の立体物領域が接しているか否かを判定するのは、同一の立体物が移動、もしくは変形した場合には、連続して検出される立体物同士は接触した状態で現れるからである。
【００４７】
ステップＳ４１３において、上述した判定基準により、立体物領域が変動したと判定した場合（ステップＳ４１３でＹｅｓ）、処理はステップＳ４１４に進む。ステップＳ４１４においては、更新部１０９が、立体物の部分の操作面の三次元位置（高さを定義する情報）を、初期状態にリセットしてステップＳ４１５に進む。図７の例では、ステップＳ４０８で更新した図７（ｅ）の操作面情報を、図７（ｄ）に戻す。一方、ステップＳ４１３で立体物領域が変動していないと判定した場合（ステップＳ４１３でＮｏ）、ステップＳ４１４を経由せず、ステップＳ４１５に進む。ステップＳ４１５では、画像処理装置１００の処理の終了が指示されたかを判定し、終了されていなければ、ステップＳ４０１に戻る。
【００４８】
なお、本実施例では、ステップＳ４１４において更新部１０９は、立体物領域のうち、少なくとも、立体物領域が変動した領域に対応する操作面の高さ情報を初期化する。ここで、図１０を参照して、ステップＳ４１３及びＳ４１４の処理を具体的に説明する。図１０は、載置された複数の立体物のうち一つが取り除かれる場合の画像処理の具体例を表す図である。図１０（ａ）は複数の立体物が置かれた場合に、更新部１０９がステップＳ４０８において更新した操作面を表す距離画像（背景画像）である。領域１００１、領域１００２は、孤立領域検出部１０７が入力画像から検出した二つの孤立領域に応じて合成された部分である。図１０（ｂ）は、ユーザが右側の立体物を動かした時の入力画像を表す図である。ここで変動判定部１０８は、波線１００３の孤立領域の高さが低くなったことから、ステップＳ８０２で、領域１００３部分の変動を検出する。図１０（ｃ）は、更新部１０９が孤立領域の変動に基づいて元に戻した操作面を表す距離画像である。更新部１０９は、変動を検出した孤立領域１００２に対応する操作面のみを元の三次元位置情報に戻し、孤立領域１００１に対応する操作面はそのまま維持する。
【００４９】
以上説明したように、本実施例では、操作エリアに立体物が差し入れられ、そのまま載置された場合、三次元位置の計測に基づいて、立体物の高さ情報を操作面の高さ情報に更新する。これにより、ユーザは立体物に対するタッチ操作を検出可能となる。
【００５０】
ただし上述した例は、ステップＳ４０５において、Ｎフレーム連続して孤立領域を検出した判定することで、高さをもつ立体物（高さ閾値の変更が必要な立体物）が載置されたと判断した。しかしながら入力画像を取得するフレームレートによっては、ステップＳ４０５を省略することもできる。あるいはステップＳ４０５で、Ｎフレームの間、孤立領域が移動していないかどうかを重心位置座標などに基づいて判定し、移動していない時のみ立体物を検出するようにしてもよい。また、本実施例では、ステップＳ４０８において一旦更新した操作面の情報に対して、ステップＳ４１３で立体物領域の変動があったと判定された場合は、少なくとも一部を初期化する処理を行った。しかしながら、ステップＳ４０６において、立体物領域が特定された時点で、当該立体物領域に変動があったかを判定し、その結果を反映した更新処理を行う順序に変形しても構わない。
【００５１】
次に、図１１〜図１５を参照し、ステップＳ８０３において、検出済みの立体物領域と接している立体物領域の検出に基づいて立体物が除去されたことを検知し、立体物領域部分の操作面情報を初期化することの効果を、より詳細に説明する。
【００５２】
図１１は、載置された立体物がゆっくりと動かされた場合の画像処理の具体例を表す図である。なお、図１１〜１５では、全て左の列が入力画像、中央が背景画像、右列が入力画像と背景画像の差分画像に対応する。
【００５３】
図１１では、（ａ）ユーザが立体物を操作エリアに差し入れて載置し、（ｂ）一旦手を離した段階、再び立体物に触れた段階、（ｃ）少し位置を動かした段階、（ｄ）再び手を離した段階という状態変化を説明する。図１１（ａ）では、入力画像ａと、初期状態の背景画像ａの背景差分に基づいて、ステップＳＳ４０６において、差分画像ａのうち、孤立判定境界に接しない孤立領域１１０１が立体物として特定される。これにより、ステップＳ４０８において、背景画像ａに孤立領域１１０１が合成され、操作面の高さ情報としての背景画像は、図１１（ｂ）の背景画像ｂに更新される。図１１（ｂ）では、入力画像ｂと、合成された背景画像ｂの背景差分に基づき、ステップＳＳ４０６において、差分画像ｂから孤立領域１１０２が検出される。また、領域１１０３は、前の段階（ａ）において、立体物があった領域１１０１内で、その高さが操作面まで下がった領域である。
【００５４】
ここで領域１１０３の大きさが閾値Ｐ％（領域１１０１に対する大きさの比率）を超える場合は、ステップＳ８０２において、孤立領域の高さの変化があったと判定される。ただし、立体物が、連続するフレーム間で、孤立領域の大きさの変化が閾値を超えない程度にゆっくりと動かされた場合は、高さの変化を検出できない場合がある。
【００５５】
そこで本実施例では、ステップＳ８０３において、孤立領域１１０２が前フレームで検出されていた孤立領域１１０１に接していることに基づいて、立体物が変動したと判定される。それに応じて更新部１０９が、ステップＳ４１４により、立体物があった部分の操作面を初期化する。次の段階で操作面の三次元位置情報として用いられるのは立体物部分が初期化された背景画像ｃとなる。図１１（ｃ）では、入力画像ｃと背景画像ｃの差分から、孤立領域が検出されないので、背景画像はそのまま維持される。つまり、背景画像ｄは背景画像ｃと同じものである。図１１（ｄ）の段階で、再びユーザが手を離したことにより、入力画像ｄと背景画像ｄの差分から、孤立領域１１０４が検出され、立体物として特定される。
【００５６】
以上のように、ステップＳ８０２の処理で、立体物領域内の高さの変化に基づいて、立体物にｘｙ平面内での移動があるか判定する際、所定の割合Ｐの値をどのように厳しくしても、その閾値を越えない速度での移動は検出できない。その結果、残像部分が立体物領域として検出されてしまう。そこで本実施例では、さらにステップＳ８０３において、前後のフレームから検出される立体物領域の位置に基づいて、該領域が残像であるかを判定し、残像部分では操作面を初期化する処理を行う。これにより、実際に存在する立体物を検出し、正確に操作面情報を定義できる。また、ステップＳ８０３だけで、同一の立体物の移動を判定しようとすると、立体物が小さい場合や素早く立体物を移動した場合に、前後のフレームの立体物が離れてしまい、誤検出の原因となる場合がある。このような課題を解決するため、本実施例では、ステップＳ８０２とステップＳ８０３の両方で立体物の移動を検出する。ただし、フレームレート等の条件によっては、いずれかを省略することもできる。
【００５７】
また、立体物領域の変動を判定する際にステップＳ８０３の処理を利用する事は、立体物が移動した場合だけでなく、その形状が変化した場合にも、操作面の情報を適切に更新するために有効である。
【００５８】
図１２は、既に載置された立体物の上にもう一つ立体物が重ねられる場合の画像処理の具体例を表す図である。図１２では、（ａ）ユーザが第１の立体物を操作エリアに差し入れて載置し手を離した段階、（ｂ）その上に第２の立体物をさらに載置した段階、（ｃ）再び手を離した段階、（ｄ）最終的に操作面情報が更新される段階という状態変化を説明する。
【００５９】
図１２（ａ）では、入力画像ａと、初期状態の背景画像ａの背景差分に基づいて、ステップＳＳ４０６において、差分画像ａのうち、孤立判定境界に接しない孤立領域１２０１が立体物として特定される。これにより、ステップＳ４０８において、背景画像ａに孤立領域１２０１が合成され、操作面の高さ情報としての背景画像は、図１２（ｂ）の背景画像ｂに更新される。図１２（ｂ）では、入力画像ｂと、合成された背景画像ｂの背景差分によって抽出される移動領域に、孤立領域は含まれない（ステップＳ４０４でＮｏ）。また、移動領域は指さし姿勢の手の形状でもないことから（ステップＳ４０９でＮｏ）、そのまま処理はステップＳ４０１に戻る。図１２（ｃ）では、入力画像ｃと、合成された背景画像ｃ（背景画像ｂと同一）の背景差分に基づいて、ステップＳ４０６において、差分画像ｃから孤立領域１２０２が立体物として特定される。このとき、過去所定時間（例えば３フレーム分の時間）内に、立体物領域として領域１２０１が検出されていた（ステップＳ８０１でＹｅｓ）。領域１２０１に、領域１２０２は包含されるので（ステップＳ８０３でＹｅｓ）、ステップＳ８０４で、立体物領域が変動したと判定される。従って、孤立領域が検出されている部分の操作面の情報は初期化され、次に背景差分をとるときの背景が、背景画像ｄに更新される。図１２（ｄ）では、入力画像ｄと背景画像ｄの背景差分に基づいて、差分画像ｄのように、第１の立体物と第２の立体物が一体として検出され、新たに立体物領域１２０３が検出され、背景画像が更新される。
【００６０】
さらに、図１３は、重ねられた二つの立体物のうち、上の立体物が取り除かれる場合の画像処理の具体例を表す図である。図１２（ｄ）の状態に後続して得られる状態変化を表しているとする。図１３では、（ａ）第１及び第２の立体物から手を離した段階、（ｂ）第２の立体物を取り除くために触れた段階、（ｃ）第２の立体物を持ちあげた段階、（ｄ）第２の立体物を第１の立体物から離した段階という状態変化を説明する。図１３（ａ）の背景画像ａは、図１２（ｄ）での処理によって更新された背景画像である。入力画像ａと背景画像ａの差分から、孤立領域は検出されない。図１３（ｂ）で、ユーザの手を立体物領域に重ねるが、背景画像ｂ（背景画像ａと同一）に立体物が含まれているため、入力画像ｂと背景画像ｂの差分から、孤立領域は検出されない。図１３（ｃ）の段階で、入力画像ｃのように、ユーザは第２の立体物の位置をずらす。従って、入力画像ｃと背景画像ｃ（背景画像ｂと同一）との背景差分では、手と第２の立体物一部が一体となった移動領域が検出される。このとき、領域１３０２は、最後に検出されていた立体物領域（図１２の領域１２０３に相当）のうち、高さが低くなった部分である。領域１２０３に対する領域１３０２の割合が、所定割合Ｐ％以上であって（ステップＳ８０２でＹｅｓ）、領域１２０３と領域１３０２は接する（ステップＳ８０３でＹｅｓ）ので、ステップＳ８０４で、立体物領域が変動したと判定される。従って背景画像は初期化され、図１２（ｄ）で背景差分では背景画像ｄが使用される。図１２（ｄ）では、入力画像ｄと背景画像ｄとの背景差分に基づいて、第１の立体物に対応する立体物領域１３０２が検出され、これにより背景画像が更新される。なお、ステップＳ８０２の処理を変形して、第２の立体物の変動部分の領域１３０１が、手を含む（孤立していない）移動領域と分かれた時点で孤立領域を検出してステップＳ８０３に移行し、直前の立体物領域１２０３と接するか否かで変動を判定してもよい。
【００６１】
以上のように、本実施例では、複数の立体物を重ねたり取り除いたりしてその操作面形状が変わる場合は、一旦操作面を初期化し、立体物領域が孤立した時点で操作面の高さを取得し直す。このように、入力画像のうち、立体物の残像である可能性が高い部分での背景を平板の高さまで下げておくことで、立体物が既に無い空間にユーザの手が挿入されることによって生じるタッチ操作の誤検出を低減することが可能となる。
【００６２】
次に、図１４は、既に載置された立体物の領域が広がる場合の画像処理の具体例を表す図である。図１４では、（ａ）ユーザが厚みのある本を操作エリアに差し入れて載置し手を離した段階、（ｂ）ユーザが本を開き始めた段階、（ｃ）本を開き、手を離した段階、（ｄ）最終的に操作面情報が更新される段階という状態変化を説明する。
【００６３】
図１４の入力画像ａは、立体物を置いた時の入力画像であり、背景画像ａはその時点で画像処理装置が保持する操作面画像である。図１４の差分画像ａは、入力画像ａから移動領域抽出部１０２による移動領域の検出画像である。この差分画像ａにおいて、孤立領域検出部１０７が、孤立判定境界に接しない孤立領域１４０１を立体物として検出する。図１４（ａ）では、入力画像ａと、初期状態の背景画像ａの背景差分に基づいて、差分画像ａのうち、孤立判定境界に接しない孤立領域１４０１が立体物として特定される。これにより、背景画像が、図１４（ｂ）の背景画像ｂに更新される。図１４（ｂ）では、入力画像ｂと、合成された背景画像ｂの背景差分によって抽出される移動領域に、孤立領域は含まれない。差分領域ｂでは、ユーザの手と本のうち開かれた部分が、一体として移動領域として検出される。図１４（ｃ）では、入力画像ｃと、背景画像ｃ（背景画像ｂと同一）の背景差分に基づいて、差分画像ｃから立体物領域１４０２が特定される。立体物領域１４０２は、直前まで検出されていた立体物領域１４０１と接することから（ステップＳ８０３ｄｅＹｅｓ）、立体物領域が変動したと判定される。これに伴い更新部１０９は操作面画像を図１４（ｄ）の背景画像ｄのように初期化する。図１４（ｄ）では、入力画像と背景画像ｄの背景差分に基づいて、差分画像ｄから、本全体に対応する立体物領域１４０３検出される。これにより本は閉じた状態から開いた状態に変わった状態で、新たに操作面の一部に合成され、背景画像が更新される。
【００６４】
また図１５は、既に載置された立体物の領域が狭まる場合の画像処理の具体例を表す図である。図１５では、（ａ）ユーザが開いた状態の本を操作エリアに載置した段階、（ｂ）ユーザが本のページをめくり閉じ始めた段階、（ｃ）本が閉じられている途中段階、（ｄ）本が閉じられ、手が離れた段階という状態変化を説明する。入力画像ａと背景画像ａの差分に基づいて、差分画像ａから、立体物領域１５０１が検出される。これにより、背景画像が図１５（ｂ）の背景画像ｂに更新され、ユーは本に対してタッチ操作などを行うことができるようになる。図１５（ｂ）では、入力画像ｂと背景画像ｂの差分に基づいて、差分画像ｂから、ページをめくるユーザの手と、めくられている本の一部が一体となった移動領域が抽出され、孤立領域は検出されない。図１５（ｃ）では、入力画像ｃと背景画像ｃ（背景画像ｂと同一）との背景差分に基づいて、差分画像ｃから移動領域が検出される。波線で囲われた領域１５０２は、直前まで検出されていた立体物領域１５０１のうち、高さが立体物の高さより低くなった領域である。領域１５０２の孤立領域１５０１に対する割合が所定Ｐ％に達し（ステップＳ８０２でＹｅｓ）、領域１５０２と孤立領域１５０１が接していることから（ステップＳ８０３でＹｅｓ）、ステップＳ８０４で、立体物領域は変動したと判定される。図１３の場合と同様に、割合の閾値Ｐ％の処理の代わりに、領域１５０２の部分が、移動領域と離れた時点で検出された孤立領域が、直前の立体物領域と接するかを判定する処理に置き換えてもよい。立体物領域の変動があったことから、立体物部分の操作面の三次元位置情報が初期化され、背景画像が図１５（ｄ）の背景画像ｄのように更新される。図１５（ｄ）では、入力画像ｄと背景画像ｄの背景差分に基づいて、差分画像ｄから立体物領域１５０３が検出され、背景画像が更新される。背景画像は操作面の高さ情報を示すため、更新の結果、画像処理装置１００では、本に対するタッチ操作を受け付け可能となる。
【００６５】
以上のように、本実施例では、背景差分手法によって抽出した移動領域のうち、操作エリアで孤立している領域を検出し、当該領域の三次元形状を操作面の三次元形状に合成する。これにより、予め用意された操作面だけでなく、ユーザが任意に操作エリアに挿入した立体物に対してのタッチ操作を認識することが可能となる。また、背景差分法を距離情報の次元で行うため、前景に存在する物体と、背景とがいずれも静止していたとしても、前景に存在する物体を移動領域として安定して抽出することができる。また、既に検出済みの立体物が移動したり形状が変化するなど変動した場合は、操作面のうち立体物が存在した部分の三次元位置情報を初期化し、変動が終了した段階で改めて背景を更新する。これにより、変動前の操作面の形状に影響されたタッチ操作の誤検出を低減し、最新の立体物形状に合わせたタッチ操作が検出可能となる。
【００６６】
第１の実施例では指示物体の一例として、予めユーザの手、及び指先が認識対象として登録されている場合を説明した。しかしながら、本実施例は、例えば差し棒やスタイラスペンのような操作器具を用いる場合にも適用可能である。その場合には、図４のフローチャートのステップＳ４０９で物体識別部１０３は、移動領域が、所定の細さ、あるいは所定の鋭角や形状を有する物体かどうかを判定し、ステップＳ４１０で操作位置特定部１０４は、操作器具の先端部分を操作位置として特定する。
【００６７】
また前述の通り、認識部１０６が検出する操作は操作面へのタッチに限らずどのような操作でも良い。ただし本発明は立体物に基づいて操作面の高さを更新するため、操作面からの高さによって変化する操作の認識時に、より高い効果を奏する。例えば操作面に対する高さに基づいて表示されたＵＩの大きさ、形状を変形させるような操作の認識時に、操作面に対する高さを取得する場合にも利用可能である。また、本実施例では、図２のようなテーブルトップインタフェースの例を挙げたため、操作面の三次元位置情報と、操作位値の三次元位置の関係は、操作面からの高さ閾値の判定として説明した。しかしながら本発明は、例えばホワイトボードや壁などを操作面とするシステムにも適用可能であり、ｚ軸が高さ方向ではなく、鉛直方向に対して角度を有していても構わない。なおここでｚ軸とは、距離画像センサ１１６から操作エリア内の各点への距離に支配的な方向の座標軸である。このような場合、変動判定部１０８はステップＳ８０２で孤立領域の変動を検出する時には、一部の領域の高さが低くなるのではなく距離画像センサから遠い（あるいは近い）方向へ変動する事を検出する事になる。
【００６８】
＜実施例２＞
実施例１では、画像処理装置１００は、距離画像センサ１１６が撮像した距離画像に基づいて、操作面の三次元形状を取得するものである。それに対して実施例２として、立体物の一部に、距離画像センサ１１６が距離情報を取得できない範囲が存在した場合でも、その領域に対する操作を実現可能とする場合を説明する。実施例２に係る情報処理システムの外観、ハードウェア構成および機能の構成は、実施例１において図１及び図２を参照して説明したもの同様であるため、同一符号を付して詳細な説明を省略する。
【００６９】
距離画像センサ１１６のセンサの固有の特性（赤外線、ステレオカメラ等）など、入力画像である距離画像には一部、位置情報が正確に取得できない領域が発生する事がある。ここで図１６は、立体物の一部の距離情報が検出されない場合の画像処理の具体例を表す図である。図１６（ａ）はこの場合の入力画像であって、領域１６０１は入力画像から検出される孤立領域、領域１６０２は初期状態での操作面である平板２０１の範囲である。また、領域１６０３は、移動領域に含まれるが、距離情報を距離画像センサ１１６から取得出来なかった領域である。この領域は距離情報がないため、更新部１０９が操作面をこの領域に更新してしまうと、その領域で操作ができなくなる。
【００７０】
図１７は、距離情報が欠落した領域１６０３の距離情報を補間する補間処理の一例を表すフローチャートである。実施例２では、ステップＳ４０２で移動領域抽出部１０２が、移動領域を検出したあとに、図１７のフローチャートの処理を開始する。まずステップＳ１７０１で、移動領域抽出部１０２が、検出した移動領域に対応する入力画像の画素を１つ選択する処理を行う。ステップＳ１７０２で、移動領域抽出部１０２が、走査している画素Ａ画素Ａが距離情報を持つかを判定する。距離情報があると判定された場合（ステップＳ１７０２でＮｏ）、ステップＳ１７０５に進む。距離情報がないと判定された場合（ステップＳ１７０２でＹｅｓ）、ステップＳ１７０３へ進む。ステップＳ１７０３では、移動領域抽出部１０２が、画素Ａと同一の移動領域の中で、距離情報を持ち最も近い画素Ｂを探索する。ステップＳ１７０４では、その画素Ｂの距離の値を画素Ａの距離の値にセットする。そしてステップＳ１７０５で移動領域中の全ての画素を走査したか否か確認し、未処理の画素があればＳ１７０１に戻りその画素を走査する。未処理の画素がなければ処理を終了し、メインフローのステップＳ４０４に進む。
【００７１】
以上のようにして補間処理を行った画像を図１６（ｂ）に示す。１６０４は距離情報のない領域１６０３の距離情報が保管された移動領域である。この移動領域１６０４に基づいて孤立領域検出部１０７が孤立領域を検出し、更新部１０９が操作面画像を合成する事で、立体物の中で距離情報が得られなかった領域についても操作する事が可能となる。
【００７２】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００７３】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施例の機能が実現されるだけではない。そのプログラムの指示に基づき、コンピュータ上で稼動しているＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
さらに、記憶媒体から読み出されたプログラムが、コンピュータに接続された機能拡張ユニットのメモリに書きこまれた後、その機能拡張ユニットのＣＰＵが実際の処理の一部または全部を行い、前述した実施形態の機能が実現される場合も含まれる。
【符号の説明】
【００７４】
１０１  画像取得部
１０２  移動領域抽出部
１０３  物体識別部
１０４  操作位置特定部
１０５  位置取得部
１０６  認識部
１０７  孤立領域検出部
１０８  変動判定部
１０９  更新部
【図１】
0006482196.tif 000002
【図２】
0006482196.tif 000003
【図３】
0006482196.tif 000004
【図４】
0006482196.tif 000005
【図５】
0006482196.tif 000006
【図６】
0006482196.tif 000007
【図７】
0006482196.tif 000008
【図８】
0006482196.tif 000009
【図９】
0006482196.tif 000010
【図１０】
0006482196.tif 000011
【図１１】
0006482196.tif 000012
【図１２】
0006482196.tif 000013
【図１３】
0006482196.tif 000014
【図１４】
0006482196.tif 000015
【図１５】
0006482196.tif 000016
【図１６】
0006482196.tif 000017
【図１７】
0006482196.tif 000018