(57)【特許請求の範囲】
【請求項１】
第１座標系が定義された空間を撮像した画像を取得する画像取得手段と、
前記第１座標系における位置情報を、前記画像取得手段によって取得される画像内に定義された第２座標系における位置情報に変換する変換手段と、
前記第１座標系における位置情報を用いて表された、前記空間に含まれる所定の操作面の少なくとも一部に設定される操作領域の情報を取得する操作領域取得手段と、
前記変換手段が前記操作領域取得手段によって取得された情報を変換した結果として得られる前記第２座標系における位置情報を使って、前記画像取得手段によって取得された画像内で前記操作領域の境界の周囲の画素群に含まれる各画素を探索し、
前記各画素に前記操作面が被写体として撮像されているかに基づいて、前記第２座標系において前記操作領域を表す位置情報を決定する操作領域決定手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
更に、前記操作領域取得手段によって取得された情報を前記変換手段が変換した結果として得られる前記第２座標系における位置情報と、前記画像取得手段によって取得された画像のうち、前記操作領域決定手段によって前記操作領域として決定された領域を表す前記第２座標系における位置情報との差に基づいて、前記変換手段による変換の結果に補正を加える補正手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記操作領域決定手段は、前記画素群のうち、前記操作面が被写体として撮像されていると判定されない画素を、前記操作領域から除外することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記操作領域決定手段は、前記画素群のうち、前記操作面が被写体として撮像されていると判定された画素は、前記操作領域に含まれると決定することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記変換手段は、更に、前記第２座標系における位置情報を、前記第１座標系における位置情報に変換することが可能であって、
前記操作領域決定手段は、前記画素群に含まれる各画素の前記第２座標系における位置情報を、前記変換手段が前記第１座標系における位置情報に変換した結果に基づいて、前記各画素に前記操作面が被写体として撮像されているかを判定することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記操作領域決定手段は、前記画素群に含まれる各画素の、前記第２座標系における位置情報を、前記変換手段が変換した結果として得られる前記第１座標系における位置情報のうち、前記操作面に交差する方向の座標軸に沿った座標値に基づいて、前記画素群に含まれる各画素に前記操作面が被写体として撮像されているかをと判定することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記操作領域決定手段は、前記画素群に含まれる各画素に対応する前記第１座標系における位置情報のうち、前記操作面に交差する方向に沿った座標値と、前記操作面の高さを示す座標値との差が基準より小さい場合に、前記画素群に含まれる各画素に前記操作面が被写体として撮像されていると判定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
更に、前記画像取得手段によって取得された画像のうち、前記操作領域決定手段によって決定された操作領域内から検出される操作体の動きに基づいて、前記情報処理装置に入力される操作を検出する操作検出手段を備えることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記操作検出手段は、前記補正手段によって補正された前記第２座標系における前記操作体の位置に基づいて、前記操作を検出することを特徴とする請求項２に従属する場合の請求項８に記載の情報処理装置。
【請求項１０】
前記画像取得手段によって取得される画像から、前記操作体が被写体として写る移動領域を検出する移動領域検出手段を更に備え、
前記移動領域検出手段は、
前記画像取得手段によって取得される画像のうち、前記操作領域決定手段によって決定された操作領域に相当する部分において、前記空間を前記操作体が挿入されていない状態で撮像された画像と前記空間に操作体が挿入された状態で撮像された画像との差分に基づいて、前記移動領域を検出するものであって、
前記操作検出手段は、前記移動領域検出手段によって検出される移動領域に基づいて特定される操作位置の位置情報に基づいて、前記操作体による前記操作面へのタッチ操作を検出することを特徴とする請求項８または９に記載の情報処理装置。
【請求項１１】
前記画像取得手段は、テーブルトップインタフェースシステムを構成するテーブル面である前記操作面を、上方から見下ろす位置に設置された距離画像センサによって撮像された距離画像を取得する手段であることを特徴とする請求項１０に記載された情報処理装置。
【請求項１２】
前記移動領域検出手段は、
前記画像取得手段によって取得される距離画像のうち、前記操作領域決定手段によって決定された操作領域に相当しない部分では、前記距離画像の画素から得られる三次元位置情報に基づいて、前記操作面より上方に存在する被写体が写るとみなされる領域を、前記移動領域として検出するものであることを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
情報処理装置の制御方法であって、
画像取得手段により、第１座標系が定義された空間を撮像した画像を取得する画像取得工程と、
変換手段により、前記第１座標系における位置情報を、前記画像取得工程において取得される画像内に定義された第２座標系における位置情報に変換する変換工程と、
操作領域取得手段により、前記第１座標系における位置情報を用いて表された、前記空間に含まれる所定の操作面の少なくとも一部に設定される操作領域の情報を取得する操作領域取得工程と、
操作領域決定手段により、前記操作領域取得工程において取得された情報を、前記変換工程で変換した結果として得られる前記第２座標系における位置情報を使って、前記画像取得工程において取得された画像のうち、前記操作領域の境界の周囲の画素群に含まれる各画素を探索する工程と、
さらに前記操作領域決定手段により、探索された前記各画素に、前記操作面が被写体として撮像されているかに基づいて、前記第２座標系において前記操作領域を表す位置情報を決定する操作領域決定工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項１４】
コンピュータに読み込ませ実行させることによって、前記コンピュータを、
第１座標系が定義された空間を撮像した画像を取得する画像取得手段と、
前記第１座標系における位置情報を、前記画像取得手段によって取得される画像内に定義された第２座標系における位置情報に変換する変換手段と、
前記第１座標系における位置情報を用いて表された、前記空間に含まれる所定の操作面の少なくとも一部に設定される操作領域の情報を取得する操作領域取得手段と、
前記変換手段が前記操作領域取得手段によって取得された情報を変換した結果として得られる前記第２座標系における位置情報を使って、前記画像取得手段によって取得された画像内で前記操作領域の境界の周囲の画素群に含まれる各画素を探索し、
前記各画素に前記操作面が被写体として撮像されているかに基づいて、前記第２座標系において前記操作領域を表す位置情報を決定する操作領域決定手段と、
を備える情報処理装置として機能させるプログラム。
【請求項１５】
請求項１４に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像された画像に基づいて操作者の操作を認識する技術に関する。
【背景技術】
【０００２】
可視光カメラや赤外線カメラ、又は距離画像センサ等によって得られた画像から、ユーザの手など所定の物体が写る領域を抽出し、その動きや位置に応じて空間ジェスチャによるＵＩ（ユーザインターフェース）操作を認識する技術が広まりつつある。特に、テーブルのような操作面に画像やＵＩを投影し、その画像やＵＩを触れて操作するテーブルトップインタフェースにも、タッチパネルではなく画像に基づくジェスチャ認識技術が使用され始めている。
【０００３】
特許文献１では、手が存在する空間を撮像した映像から所定の時間間隔毎で取得した２フレーム分の画像間の差分に基づいて検出した手の形状をトラッキングして、ジェスチャ操作を認識することが開示されている。このようなジェスチャ認識技術には、実空間の三次元位置座標と、空間を撮像した画像内の位置情報との対応関係を定義するキャリブレーションが重要となる。
【０００４】
特許文献２では、実空間に定義した世界座標と、カメラが撮影した画像内に定義される画像座標との対応関係に基づいて、カメラの最適なパラメータを定める場合に、対応関係の誤りを検出してユーザに提示することが開示される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２５７６８６号公報
【特許文献２】特開２００６−６７２７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
現実的には、ハードウェアの設置環境などによって、実空間での三次元位置を示す座標（世界座標）と撮像画像内に定義される座標との間の座標変換には変換誤差が生じる。撮像部の撮像範囲よりもテーブル等の操作面が小さい場合など、操作面の境界部分が画像の中に写り込む場合、座標の変換誤差によって操作面の境界にずれが生じ得る。その結果、境界付近での操作体の検出が安定的に行えなかったり、操作体による操作面のタッチを誤検出したりする可能性があった。
【０００７】
本発明は、上記課題を考慮したものであり、背景の条件の異なる複数の領域を含む空間内の物体を、撮像画像を用いての認識する処理の精度を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達するために、本発明の情報処理装置は、第１座標系が定義された空間を撮像した画像を取得する画像取得手段と、前記第１座標系における位置情報を、前記画像取得手段によって取得される画像内に定義された第２座標系における位置情報に変換する変換手段と、前記第１座標系における位置情報を用いて表された、前記空間に含まれる所定の操作面の少なくとも一部に設定される操作領域の情報を取得する操作領域取得手段と、前記変換手段が前記操作領域取得手段によって取得された情報を変換した結果として得られる前記第２座標系における位置情報を使って、前記画像取得手段によって取得された画像内で前記操作領域の境界の周囲の画素群に含まれる各画素を探索し、前記各画素に前記操作面が被写体として撮像されているかに基づいて、前記第２座標系において前記操作領域を表す位置情報を決定する操作領域決定手段と、
を備える。
【発明の効果】
【０００９】
本発明によれば、背景の条件の異なる複数の領域を含む空間内の物体を、撮像画像を用いて認識する処理の精度が向上する。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置１００を利用するシステムの一例を表す図。
【図２】情報処理装置のハードウェア構成、及び機能構成の一例を表すブロック図。
【図３】操作領域決定処理の流れの一例を表すフローチャート。
【図４】情報処理装置１００が取得する操作領域データの一例を表す図。
【図５】操作面と操作領域が一致する場合の補正処理の様子を表す図。
【図６】操作面の一部の距離値が検出されない場合の補正処理の様子を表す図。
【図７】操作面と操作領域が一致しない場合の補正処理の様子を表す図。
【図８】操作検出処理の流れの一例を表すフローチャート。
【図９】補正後に検出される移動領域の一例を表す図。
【図１０】操作面の高さが位置により異なる場合に取得される操作領域データの一例を表す図。
【発明を実施するための形態】
【００１１】
＜第１の実施形態＞
まず、第１の実施形態として、テーブルトップインタフェースシステムのテーブル面に投影されたアイテムに対し操作者が行うタッチ操作を認識する処理の例を説明する。
【００１２】
図１（ａ）は、本実施形態に係る情報処理装置１００を設置したテーブルトップインタフェースシステムの外観の一例である。操作面１０１は、テーブルトップインタフェースのテーブル部分であり、操作者は、操作面１０１をタッチすることでタッチ操作を入力することが可能である。本実施形態では、操作面１０１の上方に、操作面を見下ろすようにして距離画像センサ１０２が設置される。距離画像とは、各画素の値に、当該距離画像を撮像する撮像手段の基準位置（例えばレンズ中心など）から、当該画素に撮像された被写体表面までの距離Ｄに対応する情報が反映された画像である。各画素値の大きさが、撮像手段から見た深さに相当することから、距離画像センサを深度センサ（デプスセンサ）と呼ぶこともある。本実施形態において、距離画像センサ１０２が撮像する距離画像の画素値には、距離画像センサ１０２から、操作面１０１あるいはその上方に存在する物体表面までの距離Ｄの大きさが反映される。撮像された距離画像は、情報処理装置１００に入力画像として入力される。情報処理装置１００は、入力画像を解析することで操作者の手１０５の三次元位置を取得し、入力される操作を認識する。従って操作者は、操作空間（操作面１０１とその周囲を含み、距離画像センサ１０２に撮像可能な空間）のうち、距離画像センサ１０２によって撮像可能な範囲において、手などの所定の物体を動かすことにより空間ジェスチャ操作を入力することが可能である。本実施形態では、赤外光の反射パターン（または反射時間）によって距離情報を取得する方式(Time-of-Flight方式)のセンサを利用する。ただし、例えばステレオカメラシステムや赤外光発光素子と赤外カメラを設置することで入力画像を得ることも可能である。
【００１３】
また本実施形態では、可視光カメラ１０３が上方から操作面１０１を見下ろすようにして設置される。情報処理装置１００は、可視光カメラ１０３を制御して、操作面１０１に載置された物体を撮像してその読み取り画像を得る書画カメラとして機能することができる。情報処理装置１００は、可視光カメラ１０３によって得られる可視光画像や、距離画像センサ１０２によって得られる距離画像に基づいて、操作空間に存在する物体を検出し、さらに識別する。物体には、例えば、操作者の手、紙媒体や本などのドキュメントやその他の立体物を含む。ただし、図１（ａ）に例示するシステムの場合は、距離画像センサ１０２と可視光カメラ１０３の画角には、テーブル周囲に存在する操作者の頭部は含まれない。そのため、人が手を操作空間に挿入している状態において撮像された入力画像では、画像端部がユーザの腕（肩から先の部分）の何処か一部と交差する。
【００１４】
プロジェクタ１０４は、操作面１０１の上面に画像の投影を行う。上述したように、本実施形態では、手１０５の検出および操作の認識には、距離画像センサ１０２で取得した距離画像を用いる。距離画像を用いることで、プロジェクタ１０４の投影光の影響で操作者の手の色が変化しても影響を受けにくいという利点がある。本システムの表示装置は、プロジェクタ１０４に替えて、操作面１０１を液晶ディスプレイとするなどで構成することもできる。その場合、可視光画像からの肌色領域を検出するなどして画像から人の手を検出する方式を用いても、投影光の影響は受けずに手の検出が可能である。可視光画像から移動領域を検出する場合、可視光カメラ１０３を入力画像の取得手段として兼用してもよい。
【００１５】
なお、操作面１０１を上方から見た画像が得られる構成であれば、必ずしも距離画像センサ１０２及び可視光カメラ１０３自体が上方に設置されている必要はない。例えばミラーを用いて反射光を撮像するように構成しても構わない。同様にプロジェクタ１０４も、図１（ａ）の例では、斜め上方から見下ろすように操作面１０１上への投影を行う。しかしながら、図示されたものとは異なる方向に向けて投影された投影光を、ミラーなどを利用して操作面１０１に導いてもよい。本実施形態を、操作面１０１が鉛直方向に沿って設置されたシステムで利用される距離画像センサやプロジェクタに適用する場合でも、同様にミラーを含む光学系を利用可能である。
【００１６】
本実施形態では、操作空間（操作面１０１上の三次元空間）に図１に示すＸ、Ｙ、Ｚ軸を定義し、位置情報を扱う。図１（ａ）の例では、点１０６を座標軸の原点とする。ここでは一例として、テーブルの上面に平行な二次元がＸＹ平面、テーブル上面に直交し上方に伸びる方向をＺ軸の正方向としている。本実施形態では、Ｚ軸方向は、世界座標系での高さ方向に相当する。しかしながら本実施形態は、ホワイトボードや壁面など、水平ではない面を操作面１０１とするシステムにも適用可能である。その場合、Ｚ軸方向の値は必ずしも高さを表すものではないが、少なくとも操作面と交差する方向の座標軸に相当する。
【００１７】
図１（ｂ）は、距離画像センサ１０２によって撮像される距離画像と、画像内に定義される座標系を表す図である。画像１０８は、距離画像センサ１０２によって撮像される距離画像の内容の一例を表す。斜線で示す領域１０９は、距離画像１０８に写っている操作者の手１０５の像が撮像された領域である。以下では単に手領域１０９という。点１１０は、手領域１０９から指先位置として検出された画素であり、操作者が手指を使って指し示していると推定される位置の座標である。
【００１８】
本システムは、上方から照射された赤外光が被写体表面によって反射された反射光を撮像し、撮像された反射光の強度が、距離画像センサ１０２の光源から被写体表面までの距離Ｄの大きさを表すとみなす。そして距離画像の各画素には、距離画像センサ１０２から被写体までの距離に対応する値が、画素値ｄとして保持される。画素値ｄは、図１（ａ）に示した距離Ｄの大きさが反映されている。従って、本来は画素値ｄが大きい（反射光が強く、明るい）画素ほど距離画像センサ１０２に近い位置に、画素値ｄが小さい（反射光が弱く、暗い）画素ほど距離画像センサ１０２から遠い位置に、被写体が存在すること示す。ただし、図１（ｂ）では簡略化し、被写体のエッジのみを明示する。本実施形態で取得される距離画像には、図１（ｂ）に示すｘ軸及びｙ軸と、画素値ｄによって定義される座標系が定義される。例えば、指先位置１１０の入力画像内の位置座標が（x，y，ｄ）で表される。一例として、入力画像の解像度は６４０［ｄｏｔ］×４５０［ｄｏｔ］とする。
【００１９】
本実施形態では、図１（ａ）で示す操作空間内での座標（Ｘ，Ｙ，Ｚ）を、図１（ｂ）で示す入力画像内の画像内座標（ｘ，ｙ）に座標変換するため、入力画像中の被写体の位置を、実空間における位置情報と同等の情報として扱うことができる。ここで画像１０８のうち、台形領域１１１は、図１（ａ）の操作面１０１の表面が撮像された領域である。操作面１０１の全面を操作領域とするか、あるいは操作面１０１の一部を操作領域とするかは、システムで実行されるアプリケーションや操作面１０１の形状によって予め決定される。操作領域とは、操作面１０１上で、タッチ操作やジェスチャ操作を認識可能とする領域である。さらに本実施形態では、プロジェクタ１０４によって画像を投影することが可能な操作面１０１上の範囲が、操作領域に一致するとする。ただし、操作面１０１の全面が操作領域とされた場合であっても、操作領域のエッジを情報処理装置１００が自動で検出することによって操作領域の境界位置を取得することは困難である場合が多い。距離画像センサ１０２の位置や角度の微妙なずれ等の原因により、検出結果に誤差が発生するためである。従って、本実施形態の情報処理装置１００は、ユーザによる入力により、操作空間に定義された三次元位置情報を示す座標（Ｘ，Ｙ，Ｚ）を利用して定義された操作領域の境界情報を取得する。
【００２０】
本実施形態では、操作領域の境界を表す情報を、予め定められたパラメータを使うことで、操作空間内に定義された三次元位置情報から、操作空間を撮像した画像内の画素の位置を表す位置情報に変換した後、変換誤差を特定する。具体的には、変換結果として得られた画像内の画素の位置を表す位置情報によって、操作領域の境界付近であると示される画素を、実際に撮像された画像内から特定し、その画素に、実際に操作面１０１が撮像されているかを判定する。このような判定を、境界を囲む画素群の全体に対して行い、実際に操作面１０１が撮像されていると判定された画素を、操作領域の内部に属する画素であるとみなす。その結果として、操作面１０１が写っていると判定された画素群に相当する部分を、操作領域内と定義しなおす。さらに、定義情報の変換結果として得ていた操作領域の境界情報と、実際に撮像した画像から検出した操作面の境界情報との誤差（ずれの方向および量）を用いて、その後の変換処理について補正を加える。
【００２１】
図２（ａ）は、本実施形態に係る情報処理装置１００を含むテーブルトップインタフェースのハードウェア構成図である。中央処理ユニット（ＣＰＵ）２００は、ＲＡＭ２０２をワークメモリとして、ＲＯＭ２０１や記憶装置２０３に格納されたＯＳやプログラムを実行して、各種処理の演算や論理判断などを行い、システムバス２０４に接続された各構成を制御する。記憶装置２０３は、ハードディスクドライブや各種インタフェースによって接続された外部記憶装置などであり、実施形態の操作認識処理にかかるプログラムや各種データを記憶する。距離画像センサ１０２は、ＣＰＵ２００の制御に従い、操作面１０１上の空間の距離画像を撮像し、撮影した距離画像をシステムバス２０４に出力する。本実施形態では、距離画像の取得方法として、環境光やテーブル面の表示の影響が小さい赤外パターン投影方式を基に説明するが、用途に応じて視差方式や赤外光の反射時間を利用する方式などを利用することも可能である。プロジェクタ１０４は、ＣＰＵ２００の制御に従い、テーブルに操作対象となる画像アイテムを投影表示する。
【００２２】
なお上述したシステムでは、可視光カメラ１０３、距離画像センサ１０２、プロジェクタ１０４はそれぞれ情報処理装置１００に入出力用のインタフェースを介して接続された外部装置であり、情報処理装置１００と協働して情報処理システムを構成する。ただし、これらのデバイスは、情報処理装置１００に一体化されていても構わない。
【００２３】
図２（ｂ）は、情報処理装置１００のソフトウェアの構成を示すブロック図の一例である。これらの各機能部は、ＣＰＵ２００が、ＲＯＭ２０１に格納されたプログラムをＲＡＭ２０２に展開し、後述する各フローチャートに従った処理を実行することで実現されている。そして、各処理の実行結果をＲＡＭ２０２に保持する。また例えば、ＣＰＵ２００を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００２４】
画像取得部２１０は、距離画像センサ１０２によって撮像された距離画像を、入力画像として一定時間毎に取得し、ＲＡＭ２０２に随時保持する。なお画像取得部２１０が取得し、各機能部とやりとりする対象は、実際には画像データに対応する信号であるが、本明細書では単に「距離画像を取得する」あるいは「入力画像を取得する」として説明する。
【００２５】
移動領域検出部２１１は、距離画像取得部２１０によって取得された入力画像の各画素について、閾値判定やノイズ低減処理を施し、距離画像から１以上移動領域を抽出する。本実施形態の場合は距離画像の画素値によって、背景である操作面１０１よりも高い位置に存在することが示される被写体が写る領域で、かつ、画像端に接している領域を手領域として抽出する。ただし、このような背景差分法に限らず、フレーム間差分等の方法でも、移動領域を検出することもできる。また、可視光カメラ１０３を入力画像の取得手段として兼用し、可視光画像から肌色領域を探索することで移動領域を検出することも可能である。操作検出部２１２は、周期的に取得される入力画像から、移動領域検出部２１１によって検出される移動領域の位置、形状の変化に基づいて、情報処理装置１００に入力される操作を認識する。
【００２６】
操作領域取得部２１３は、操作空間に定義された三次元座標系を利用して定義された操作領域の情報を取得する。本実施形態では、システムの設置時のユーザ入力によって操作領域の情報が取得されるとする。ただし、操作領域の情報は、外部装置や記憶装置に記憶された履歴情報や外部入力によって、操作領域の境界情報を取得しても構わない。座標変換部２１４は、操作空間の三次元座標系における座標と、入力画像内に定義される画像座標系での座標情報に変換する。また逆に、入力画像内に定義される画像座標系での座標情報を、操作空間の三次元座標系における座標に変換するという相互の変換が可能である。本実施形態の座標変換部２１４は、操作領域取得部２１３によって取得された操作領域を表す座標情報を、入力画像内の位置を表す座標情報に変換することで、画像内での操作領域の位置情報を得る。また、画像取得部２１０によって取得された入力画像の内容から検出される位置情報を、操作空間に定義される三次元座標に変換することで、操作物体の位置などの位置情報を得ることができる。例えば、入力画像から検出されるユーザの指先位置の位置情報を、操作空間内の三次元位置情報に変換した結果を取得する。また、移動領域が含まれない入力画像から得られる位置情報を変換することで、操作面１０１の境界情報の実測値を得る。この変換についての詳細は後述する。
【００２７】
操作領域決定部２１５は、画像取得部２１０によって取得された入力画像中での操作領域の境界周辺に操作面１０１が被写体として写っているかを判定する。その際、入力画像中での操作領域の境界周辺を探索するために、操作領域取得部２１３が取得した操作領域の情報を、座標変換部２１４が変換した結果として得られた画像座標系での操作領域の情報を用いる。操作領域決定部２１５は、まず変換部２１４による変換結果から入力画像中で操作領域の周囲にあたる画素群を特定する。そして、当該画素群の各画素の、画像中に定義された座標系での位置情報を変換部２１４により変換した結果から、操作空間に定義された座標系での高さ情報（Ｚ座標）と、操作面１０１の高さを表すＺ座標の差分が小さいかを判定する。操作面１０１の高さとの差が基準値（例えば所定の閾値）より小さいＺ座標が得られる画素には、操作面１０１が被写体として写っていると判定されることになる。操作領域決定部２１５は、入力画像中の、操作面１０１が写っていると判定された画素は操作領域の内部であって、操作面１０１が写っていると判定されない画素は操作領域の外部であるとして、操作領域の境界を定義する情報を決定する。決定した操作領域の情報は、ＲＡＭ２０２に保持され、操作領域内での操作体による操作を認識する処理で参照される。
【００２８】
補正部２１６は、操作領域決定部２１５による、画素毎の判定の結果に基づいて、変換部２１４の変換処理に生じている誤差を補正する。補正部２１６は、操作領域決定部２１５によって操作面１０１が被写体として写っていると判定された画素と、操作面１０１が被写体として写っていると判定されない画素との境界を、操作領域の境界として決定する。ユーザ入力によって入力された位置情報の変換結果との差分が、変換誤差として特定される。例えば、誤差によって座標のずれが生じている方向やその量を特定する。本実施形態では、補正部２１６は、操作検出部２１２による操作の認識の根拠となる位置情報に、誤差に基づく補正を加える。なお、本実施形態では、座標変換部２１４の変換結果として得られる操作領域の位置情報をシフトさせることで補正を加えるが、変換部２１４に対して、パラメータを調整させることによって補正を行うとしてもよい。
【００２９】
出力制御部２１７は、ＲＯＭ２０１や記憶装置２０３に記憶された情報を用いて、本実施形態の表示部であるプロジェクタ１０４によってテーブル１０１上に投影させる画像を生成し、出力する。例えば、マルチタッチ操作の認識結果に基づいて、表示中の画像の少なくとも一部に対して、拡大／縮小、回転などの変形を施し、表示部に出力させる。また例えば、操作領域決定部２１５によって決定された操作領域に合わせて、プロジェクタ１０４による投影が行われる範囲を変更してもよい。出力された画像は、プロジェクタ１０４によって、操作面であるテーブル１０１上に投影される。
【００３０】
図３のフローチャートは、本実施形態で実行される、操作領域決定処理の流れを表す。図３のフローチャートの処理は、情報処理装置１００の設置時に、キャリブレーションの一部として実行される。また、情報処理装置１００の起動時に、操作を検出する処理の前段階として、図３のフローチャートの処理が実行されてもよい。
【００３１】
まずステップＳ３０１において、操作領域取得部２１３が、実空間に定義された座標系での操作領域の情報を取得する。操作領域の情報は、操作領域の境界を定義する位置情報を含む。ここで、図４を参照して、操作領域取得部２１３が取得する操作領域データのフォーマットの一例を説明する。図４（ａ）は操作領域データである。図４（ｂ）は、図４（ａ）の操作領域データの意味を、操作空間を上方向から見下ろした状態に相当するＸＹ平面に表したものである。図４（ａ）において、４０１は、操作領域の大きさ(size_X,size_Y)である。この場合size_X及びsize_Yの値はそれぞれ操作領域の縦横の幅に相当する。４０２は、操作領域の基準点（図４（ｂ）では操作領域の左上の点）の、原点１０６からのＸＹＺ軸に沿ったシフト量(shift_X,shift_Y,shift_Z)である。特に、shift_Zは操作面の三次元位置座標の原点１０６からの相対的高さを表す。図３（ａ）の例は、操作面の高さは原点の高さと一致している。４０３は、操作領域の大きさ(size_X,size_Y)内の操作領域の形状を表している。操作領域の形状４０３は、(size_X,size_Y)の行列で表現しており、値０は、その点が操作領域外に相当することを、値１はその点が操作領域内に含まれることを表す。
【００３２】
図３のフローチャートの説明に戻る。ステップＳ３０２では座標変換部２１４が、ステップＳ３０１で取得された、三次元位置座標系で表された操作領域の情報を、距離画像センサ１０２が撮像する入力画像内の座標系（以下、単に画像座標系という）に変換する。三次元位置座標系と画像座標系の変換式は式（１）で表される。
【００３３】
【数１】
0006555958.tif 000002
【００３４】
ここで、ｄは入力画像の各画素であって、距離Ｄに対応する値である。ｒ００〜ｒ２２、ｔ０〜ｔ２、ｆｘ、ｆｙ、ｃｘ、ｃｙはセンサ設置時にキャリブレーションによって予め求めるパラメータである。キャリブレーションで求めるパラメータは、操作空間に定義された三次元位置情報を表す座標（Ｘ，Ｙ、Ｚ）と、画像座標系の座標（ｘ，ｙ）の対応関係が取れた既知の点がパラメータ数以上あれば、最小二乗法などで値を予め計算しておくことができる。座標変換部２１４は、これらのパラメータを用いて、式（１）により三次元位置座標系で入力された操作領域の各点を距離画像センサの画像座標系に変換する。
【００３５】
図４（ｃ）に、座標変換前後の操作領域を示す。４０４は、操作領域データで定義される三次元位置座標系の操作領域である。４０５は、座標変換部２１４によって、式（１）を利用して変換された、画像座標系の操作領域である。領域２０５は、全体の四角が距離画像で映される範囲であって、このうち白色の領域が距離画像のなかで設定される操作領域となる。
【００３６】
ステップＳ３０３では、画像取得部２１０が、入力画像となる距離画像を取得する。入力画像は、距離画像センサ１０２が、操作面１０１のうち少なくとも操作領域として定義された領域を含むような操作空間を撮影した画像である。次に、ステップＳ３０４において、操作領域決定部２１５が、画像取得部２１０によって取得した入力画像内で、ステップＳ３０２で座標変換部２１４によって画像座標系での位置情報に変換された操作領域４０５の境界の画素を探索する。ここで探索とは、操作領域４０５の境界周辺とみなされる領域内の画素を１つずつ処理対象として選択し、（ｘ，ｙ，ｄ）の値を取得することをいう。
【００３７】
ステップＳ３０５では、操作領域決定部２１５によって、処理対象として選択中の画素に、操作面１０１が被写体として写っているとみなされるかが判定される。本実施形態では、操作領域決定部２１５は、まず、座標変換部２１４から、処理対象としている画素の画像座標系での位置情報を、操作空間の三次元座標系での位置情報に変換する処理を実行する。そして、操作空間での三次元位置情報に変換できないか、あるいは、変換結果が定義としてステップＳ３０１で得た情報と異なるかを判定する。この判定が、画素値から変換された高さが、高さｓｈｉｆｔ＿Ｚとの差が小さい値であるかを判定することに相当する。なお、三次元位置情報に変換できない場合には、距離画像に立体物が撮像されている場合に、そのエッジ付近で距離情報がうまく取得されない場合がある。なお、Ｚ軸が高さに相当しない場合でも、操作面に交差する座標軸での座標値に基づいて、同様の判定を行えばよい。ステップＳ３０５においてＮｏであれば、ステップＳ３０６へ進み、操作領域決定部２１５が、処理対象として選択中の画素は操作領域外である、すなわち操作領域には含まれないと決定する。ステップＳ３０５においてＹｅｓであればステップＳ３０７へ進み、操作領域決定部２１５が、処理対象として選択中の画素は操作領域内であると決定する。すなわち、その画素は操作領域に含まれていると決定する。そしてステップＳ３０８では、操作領域決定部２１５が、操作領域の境界周辺とみなされる領域内の全画素を探索したか否かを判定する。全画素の探索が終了するまでステップＳ３０４からステップＳ３０８の処理が繰り返される。ステップＳ３０８でＹｅｓと判定される場合、ステップＳ３０９に進む。
【００３８】
ステップＳ３０９では、操作領域決定部２１５が、入力画像に定義された画像座標系において、画像中の操作領域の境界を決定する。すなわち、ステップＳ３０７で操作領域内と決定した画素と、ステップＳ３０６で操作領域外と決定した画素との境界を、操作領域の境界として決定し、その情報を保持する。このとき、そしてステップＳ３０２で変換された情報との差分が、変換誤差として保持される。ステップＳ３１０では、移動領域検出部２１１が、入力画像のうち操作領域内と決定した領域内の部分を、移動領域を検出するための背景画像として取得する。背景画像は、操作空間に操作体が含まれない状態で距離画像センサ１０２によって撮像された画像から抽出される。以上が、本実施形態における操作領域決定処理である。
【００３９】
ここで、図５を用いてステップＳ３０４〜ステップＳ３０９の処理が実行される前後における、画像座標系での操作領域の違いを説明する。図５は、操作面１０１と操作領域が一致する場合の具体例を表す。図５（ａ）は、ステップＳ３０３において画像取得部２１０が取得する入力画像である。また、図５（ａ）には座標変換部２１４が座標変換した後の、画像座標系の操作領域４０５が示されている。ここで、５０１は距離画像中に実際に操作面１０１、すなわち操作領域が存在する領域である。座標（ｘ，ｙ）と画素値ｄから、操作空間の三次元座標系における高さＺを計算すると、shift_Z（シフト量４０２に記載された、操作領域の定義に相当する情報）との差が小さい値になる。一方、５０２は操作面１０１が存在しない領域であり、高さＺはshift_Zとの差が小さい値とならない。操作領域決定部２１５はステップＳ３０４において境界周辺の領域を探索する。
【００４０】
図５（ｂ）は境界周辺とみなされる領域を説明する図である。５０３で示される、破線に挟まれた範囲内が、入力画像のうち境界周辺とみなされる領域である。入力画像のうち境界周辺とみなされる領域は、操作領域４０５の内側および外側の両方を含む。操作領域決定部２１５は、境界周辺とみなされる領域５０３内の全画素について、ステップＳ３０５で三次元位置を取得し、高さＺが取得できるか、あるいは、高さＺがshift_Zとの差が小さい値となるか否かを計算する。その結果、高さがshift_Zから大きく異なる場合にはステップＳ３０６で操作領域外として決定する。shift_Zとの差が小さい場合はステップＳ３０７において操作領域内として設定する。図５（ｃ）は、変換誤差を考慮して決定した後の操作領域の様子を示す。５０４は決定された操作領域であり、操作面がある領域と距離画像中で一致する操作領域を取得できる。
【００４１】
図６は、操作領域を決定する別の例であって、入力画像中に距離画像が取得されていない画素部分が存在する場合を示す。図６（ａ）は、画像座標系の操作領域が示された入力画像である。ここで、６０１は、入力画像において距離情報が取得されなかった領域である。距離画像センサ１０２の特性により、特に立体物の境界周辺で６０１のように距離情報を取得出来ない領域が現れることがある。本実施形態では、ステップＳ３０５において距離情報を取得出来ないと判定された場合、その画素は、操作領域外として決定される。これは、本領域ではステップＳ３１０において背景となる距離情報を取得出来ない場合、後段で実行される操作の認識処理において誤りを発生させる原因となるため、そのような誤認識を低減する目的である。図６（ｂ）で示す６０３が、決定された操作領域である。距離情報を取得出来ない領域が、操作領域から除外されている。
【００４２】
図７は、操作領域が、操作面１０１の一部である場合の例である。アプリケーションによっては、このように、操作領域として操作面１０１の全域を必要としなかったり、あるいは距離画像センサ１０２の画角よりも操作面１０１が大きかったりする場合は、このような状況が発生する。図７の例であっても、ステップＳ３０１において、ユーザ入力によって操作領域データを取得する。なお、距離画像センサ１０２の画角の全体が操作面１０１に包含されているのであれば、入力画像に、操作面１０１が存在しない部分が写り込むことは無い。しかしながら、ステップＳ３０１の処理において、操作領域と操作面１０１の包含関係は不問である。従って、そのような場合でも、図５や図６の例と同様、ステップＳ３０１で取得した定義データに沿って処理が行われる。
【００４３】
図７（ａ）において、画像座標系で設定された操作領域４０５が距離画像中に示されている。図７（ｂ）において、操作領域４０５の境界周辺とみなされる領域を７０１で示す。図７の例では、境界周辺とみなされる領域を、境界の外側に広げて設定してしまうと、操作面１０１のうち、想定していた操作領域以外の画素も、ステップＳ３０５の判定対象となり、操作領域内であるという判定結果が得られてしまう。従って、図７のような場合、境界周辺とみなされる領域は、操作領域の境界の内側にのみ設定する。操作領域が操作面１０１の一部のみであるか否かは、ステップＳ３０１において取得された操作領域の形状データ４０３において、画像内に操作領域の境界が存在するにも関わらず、入力画像の距離値にエッジが現れないことなどから検出可能である。この結果、操作領域の境界が設定されるのは、操作面１０１の外にも関わらず操作領域内と定義されてしまっている部分を、正しく操作領域外であると決定しなおす場合のみとなる。図７（ｃ）において、７０２は、操作領域決定部２１５が境界周辺とみなされる領域７０１を探索して、決定した操作領域である。
【００４４】
以上説明したように本実施形態では、ユーザ入力によりキャリブレーションの一部として取得した「操作領域」の位置情報の変換結果に、実際に撮像された入力画像の画像情報中での「操作面」の写り方を使った修正を加えることで「操作領域」を決定する。ここで、操作面とはテーブルやホワイトボード、壁などの物理的な面であり、操作領域は操作面の表面の少なくとも一部であるという包含関係がある。操作面は物理面であるため、撮像画像の画素の情報を解析すればその存在の有無を判定することが可能であるので、操作面が存在する場所としない場所の境界が画像から検出できる。一方で、操作領域は操作面上で任意に設定可能であるので、撮像画像の画素だけでは、その境界を判断することは難しい。図１（ａ）に示したシステムにおいて、誤動作の原因の１つとなるのは、操作面１０１であるテーブルよりも外側が誤って操作領域であると設定されてしまうことである。そのような誤りがあった場合、例えば、ユーザがテーブルの縁に手を近づけただけで、手が操作領域をタッチしたと誤認識され、意図しない動作が行われてしまうことになる。従って、本実施形態では、このような問題を解決するため、画像情報から、確実に操作面１０１が存在しないと判断できる位置は、操作領域として設定される画素群から除外する。従って、変換誤差を考慮した修正が行われる前に取得した情報が示した操作領域と、変換誤差分を修正する処理後の操作領域が必ずしも同じ大きさであるとは限らない。
【００４５】
また、テーブルや壁のような所定の操作面を背景とする空間を撮像した画像に基づいて人の手指やスタイラスなどの操作体を検出する場合に安定した検出結果を得るためには、背景は静的で既知であることが望ましい。図１（ａ）に示したシステムの場合、撮像画像を使った操作体の検出では、背景に操作面１０１が存在する部分では、背景からの差分をとることで安定的な検出が行い易い。一方で、実際には操作面１０１が存在しない部分で、変換誤差が含まれる背景情報と、入力画像との差分を取ってしまうと、操作体の検出結果の精度が低下する恐れがある。従って、上述した本実施形態によって、実際に撮像された画像で操作面１０１が写っている画素と写っていない画素の境界を特定し、背景の条件が異なる領域毎に、移動領域の検出方法を切り替えることで、操作体の検出精度を向上させることができる。以下では、上述した前処理として操作領域決定処理が行われた後、このような切り替えを行った上で検出した移動領域に基づいて操作を認識する流れを説明する。
【００４６】
図８は、前処理として操作領域決定処理が行われた後、後段の処理として、操作を検出する操作検出処理の流れを表す。本実施形態では、距離画像センサ１０２から入力画像が所定の周期毎に入力される度に、図８（ａ）のフローチャートが繰り返される。所定の周期は、例えば３０フレーム／１秒、１５フレーム／１秒である。まずステップＳ８０１において、画像取得部２１０が、距離画像センサ１０２が撮像した距離画像を、入力画像として取得する。次にステップＳ８０２において、移動領域検出部２１１が、移動領域を検出する。ユーザの操作する手やペンなどの操作体が距離画像センサ１０２の画角に入ると、その操作体が写った部分が移動領域として検出される。
【００４７】
ここで、図８（ｂ）は、ステップＳ８０２において移動領域検出部２１１が実行する、本実施形態の移動領域検出の処理の流れを表すフローチャートである。また、図９は、検出される移動領域と操作体である手の状態の関係を表す図である。ステップＳ８１１において、移動領域検出部２１１は、入力画像の画素を一つ順番にする。そしてステップＳ８１２において、その画素がステップＳ３０９で決定した操作領域内かを判定する。その画素がステップＳ３０９で決定した操作領域内の場合（ステップＳ８１２でＹｅｓ）は、ステップＳ８１３において、入力画像と背景画像を使った背景差分によりその画素が移動領域か否かを判定する。対象画素がステップＳ３０９で決定した操作領域内ではない場合（ステップＳ８１２でＮｏ）は、ステップＳ８１４に進む。ステップＳ８１４において移動領域検出部２１１は、操作空間に定義された三次元位置座標の絶対値を用いて移動領域を検出する。すなわち、入力画像の画素値を、操作空間に定義された三次元位置座標に変換して、操作面があるべき高さＺよりも大きいＺ座標が得られた画素を、移動領域とする。ステップＳ８１５において、本処理を入力画像の全ての画素で実行したかを判定し、Ｙｅｓと判定されるまで処理を繰り返す。
【００４８】
図９（ａ）は、操作空間にユーザの手が挿入された状態で取得される入力画像の一例である。図９（ｂ）は、移動領域検出部２１１が、ステップＳ３１０において取得した背景画像である。ただし、背景画像として利用されるのは、操作空間に操作体が存在しない状態で撮像された画像の中で、操作領域決定部２１５によって決定された境界情報で定義される操作領域の内部のみである。それ以外の部分では、背景に操作面１０１が存在しないため、距離情報の誤差の増加や、操作体以外の物体（ユーザの手以外の部位や他の人間等が）が写り込むことに起因するノイズを含む。従って、操作領域外と決定されている領域については背景画像を生成しない。この部分は図９（ｂ）では黒色の塗りつぶしで示される。
【００４９】
移動領域検出部２１１は、図９（ａ）のうち操作領域内とされる部分では、ステップＳ８１３において図９（ｂ）の背景画像との差分により、移動領域を検出する。一方、操作領域外とされる部分では、ステップＳ８１４において、各画素の画素値ｄを使って変換される、高さＺの値に基づいて移動領域を検出する。具体的には、距離画像中の（ｘ，ｙ）および画素値ｄから、前述の式（１）に基づいて高さＺを得る。この高さがshift_Z（操作面の高さ）＋α（距離誤差に基づく固定値）よりも高い場合に、移動領域として検出する。このように、本実施形態では、操作領域外でも移動領域を検出する事が可能である。ただし、静的な背景との背景差分が利用できる部分に比較すると、移動領域の輪郭があいまいになる場合がある。しかしながら、本実施形態によって背景に操作面１０１が存在する領域の境界を再定義しない場合、実際には操作面１０１が存在しない（背景が安定しない）領域でも、背景差分で移動領域が検出される。そのため、移動領域の輪郭の検出誤差や操作の認識誤差がより発生し易い。従って、上記のように、背景の操作面１０１の有無に応じて、移動領域の検出方法を分ける本発明は、安定的に移動領域を検出可能とするために重要である。なお、操作領域外で検出された移動領域は、各種補正やスムージング処理を施した上で、操作領域内で検出された移動領域との統合を行っても構わない。図９（ｃ）に、検出した移動領域を統合した結果を示す。９０１は、背景差分で検出した移動領域、９０２は三次元位置に基づいて検出した移動領域である。
【００５０】
図８（ａ）のフローチャートの説明に戻る。ステップＳ８０２において移動領域検出部２１１が移動領域を検出したら、ステップＳ８０３において、操作検出部２１２が、操作領域内で入力される操作を検出する。より具体的には、検出されている移動領域を追跡し、予め定義されたコマンドに対応する動きがなされた場合に、操作として検出する。情報処理装置１００に入力可能な操作としては、操作面に対するタッチ操作や、空中で手を動かすジェスチャ操作などがある。予め定義されたコマンドに対応する動きとは、操作体の先端が操作面１０１にタッチして離れる“タップ操作”の動きなどである。なお操作体の先端の位置は、移動領域のうち、入力画像の画像端から最も遠い画素の位置としたり、移動領域の形状が手とみなされる場合はその形状から検出された指先位置として特定することができる。タップの他にも、指先などの操作体の先端の、操作空間の三次元位置座標系での位置やその軌跡が、コマンドして定義されたものに沿うか否かによって、操作の有無が検出される。例えば、タップ操作は、指先の高さＺが操作面の高さshift_Zに十分近づいて、離れた時に検出される。ここで、タップした位置は、仮に、指先の三次元位置座標（Ｘ，Ｙ，Ｚ）が特定される。なお、タップを含むタッチ操作は、図４（ｂ）に示した三次元位置座標系での操作領域の内側に、タッチ位置（Ｘ，Ｙ）が含まれる場合にのみ、操作入力として認識されるとすれば、さらに誤認識を押さえることができる。
【００５１】
次に、ステップＳ８０４において、補正部２１６が、ステップＳ８０３で検出された操作に関する操作位置の座標を補正する。ここで、図３のフローチャートで説明した処理の中で、座標変換部２１４が式（１）を使って行う座標変換処理には、誤差があることが既に判明している。従って、ステップＳ３０９で特定されている誤差に応じて、移動領域の位置情報も補正される必要がある。従って本実施形態では、操作位置（例えばタップ操作で指定された位置）を認識し、応答する前の、ステップＳ８０４の段階で、入力画像から検出されている移動領域の、操作空間内での三次元位置に、誤差を考慮した補正を行う。例えば、画像座標系で設定された操作領域４０５と、補正された操作領域５０４との補正前後の操作領域の重心位置のｘ，ｙ移動量を誤差として保持しておき、Ｘ座標とＹ座標を誤差の分シフトさせた値を補正後の操作位置の座標とする。補正部２１６は、誤差を考慮して補正された操作位置（例えばタップされた位置）を、出力制御部２１７など、操作に対する応答を出力する機能部に通知する。
【００５２】
なお、操作位置の補正方法は、上述した順序に沿ったものでなくてもよい。例えば、ステップＳ８０３の前に、補正を行っても良い。また、補正方法も上記に限らず、例えば、補正前後の操作領域のｘ，ｙ方向の長さの変動を（Ｘ，Ｙ）に乗じて補正しても良い。あるいは単に操作位置の（Ｘ、Ｙ）が図４（ｂ）で設定された三次元位置座標系での操作領域の外になる場合のみ、最も近い操作領域内の（Ｘ、Ｙ）に補正しても構わない。また、補正された距離画像中の操作領域５０４を用いれば、（Ｘ、Ｙ）だけでなく高さＺも補正可能である。例えば、操作領域５０４における距離画像の各画素の高さＺの平均を計算し、その値と予め設定されていた操作面高さshift_Zとの差をＺに加えることで、高さ方向も補正する事が好ましい。
【００５３】
ステップＳ８０４の後、ステップＳ８０５において、出力制御部２１７が、操作検出部２１２が検出した操作および補正部２１６が補正した操作位置によって入力された操作に対を出力する。本実施形態では、プロジェクタ１０４に投影させる出力画像を更新する。またこの際、決定された操作領域に合わせてプロジェクタ１０４に投影させる出力画像の投影領域を移動させる。ステップＳ８０１からステップＳ８０５までの処理が、情報処理装置１００が終了するまで繰り返す。例えば、終了指示が入力された場合や、所定時間以上の間、移動領域が検出されない場合に、情報処理装置１００は終了する。
【００５４】
以上のように、本実施形態によれば、操作空間内に任意の操作領域が規定される場合に、操作空間を撮像した画像内の座標と実空間での三次元位置座標との変換において生じる誤差を、操作領域の境界付近で実測される情報に基づいて補正する。これによって、撮像画像から操作体が写る移動領域に係る位置を検出する際に生じる誤差を補正し、操作の誤認識を低減することができる。
【００５５】
＜変形例＞
第１の実施形態で例示した操作面１０１は、一定の高さの平面であった。ここで変形例１として、表面が曲面であったり、高さの異なる複数の平面で構成される操作面を有するシステムへの適用を可能とする例を説明する。図１０は、操作面の高さが位置により異なる場合にステップＳ３０１で取得される、操作領域データの一例を表す図である。操作領域の大きさ４０１、シフト量４０２は第１の実施形態の図４で示したものと同じである。一方、操作領域の形状、高さを表す情報である１００１は、第１の実施形態と異なり、単に操作領域か否かを表す０、１のフラグではない。このように、形状データに０、１以外の数値が含まれる場合、それらは、高さ方向のシフト量shift_Zからの高さの差分を表す値である。一方、数値ではなく同図で“ｎ”で記されているフラグ場合、その位置が操作領域外であることを表す。図１０（ｂ）は、入力の距離画像に図１０（ａ）の操作領域データを座標変換して重ねた図。１００２が操作領域データに基づき画像座標系で設定される。
【００５６】
第１の実施形態では、ステップＳ３０５において操作領域決定部２１５は、境界周辺の各画素が高さshift_Zになるか否かに基づいて操作領域内として決定するか、操作領域外として決定するかを決定した。しかし上記実施形態では、参照すべき高さが（Ｘ，Ｙ）座標の位置によって異なる。参照する高さの決定方法として、上記実施形態では、当該画素に対応する操作領域の形状・高さデータ１００１を参照し、shift_Zに加算した値を得る。例えば、図１０（ｂ）の右側の境界付近の高さは（shift_Z＋５＝５）、左側の境界付近の高さは（shift_Z＋１０＝１０）となる。この高さに基づき、当該画素が操作領域内か操作領域外かを判定する。本変形例によれば、操作面が曲面や複数の平面で構成され、位置によって高さが異なる場合でも、操作面上に任意の操作領域が規定される場合であっても、実空間の三次元画像と操作面を撮像した画像内との間の座標変換の誤差を補正できる。
【００５７】
また、第１の実施形態では、操作領域決定部２１５がステップＳ３０５において、三次元位置が異なる事の判断基準として、図４（ａ）もしくは図１０（ａ）の操作領域データに基づき注目画素で検出される高さが入力されたものと異なることを判定した。しかしステップＳ３０５の処理には、入力画像の画素情報を、操作空間の三次元位置座標に変換した値が利用されていれば、判断基準は異なるものであってもよい。例えば、注目画素近傍の高さＺを探索し、近傍の高さが不連続となる画素を、操作領域の実際の境界位置として決定しても良い。
【００５８】
また、第１の実施形態では画像座標系における、境界位置の周辺とみなされる領域のみを、ステップＳ３０５の処理の対象とした。しかしながら、操作領域の全画素に対して処理を行ったとしても、同じ結果を得ることができる。いずれを処理対象とするかは、システムのリソースやアプリケーションの目的に応じて選択されればよい。
【００５９】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６０】
２１０  画像取得部
２１１  移動領域検出部
２１２  操作検出部
２１３  操作領域取得部
２１４  座標変換部
２１５  操作領域決定部
２１６  補正部
２１７  出力制御部
【図１】
0006555958.tif 000003
【図２】
0006555958.tif 000004
【図３】
0006555958.tif 000005
【図４】
0006555958.tif 000006
【図５】
0006555958.tif 000007
【図６】
0006555958.tif 000008
【図７】
0006555958.tif 000009
【図８】
0006555958.tif 000010
【図９】
0006555958.tif 000011
【図１０】
0006555958.tif 000012