(57)【要約】【課題】  操作オブジェクトの３次元座標位置をより正確に求めるための技術を提供すること。【解決手段】  撮像部が撮像した、該撮像部と操作オブジェクトとの間の距離情報を反映した撮像画像に基づいて、操作オブジェクトによる指示位置を特定する。撮像画像に基づいて、操作オブジェクトの方向を特定する。撮像画像のうち、指示位置に対応する部分の画像情報と、操作オブジェクトの方向と、に基づいて、操作オブジェクトと対象面との間の距離が所定値を下回ったことを判断する。【選択図】図１
2014186715.tif 000002
【特許請求の範囲】
【請求項１】
操作オブジェクトによる対象面へのタッチ操作を認識する情報処理装置であって、
撮像部が撮像した、該撮像部と前記操作オブジェクトとの間の距離情報を反映した撮像画像に基づいて、前記操作オブジェクトによる指示位置を特定する位置特定手段と、
前記撮像画像に基づいて、前記操作オブジェクトの方向を特定する方向特定手段と、
前記撮像画像のうち、前記指示位置に対応する部分の画像情報と、前記操作オブジェクトの方向と、に基づいて、前記操作オブジェクトと前記対象面との間の距離が所定値を下回ったことを判断する判断手段と
を備えることを特徴とする情報処理装置。
【請求項２】
更に、
前記判断手段が前記距離が所定値を下回ったと判断した場合に、前記操作オブジェクトによる操作を認識する認識手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記操作とは、前記操作オブジェクトによるタッチ操作であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記位置特定手段は、前記操作オブジェクトの先端部の位置を指示位置として特定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記位置特定手段と前記方向特定手段が処理の対象とする画像は、前記撮像画像から、背景差分法によって前記操作オブジェクトが写った領域が抽出された画像であることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記撮像部が撮像した撮像画像のうち、前記指示位置に対応する部分の画像情報は、該部分の輝度値の情報であることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記撮像画像は、前記操作オブジェクトで照射された光の反射光を撮像した画像であることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記撮像画像は、前記操作オブジェクトに照射された赤外光の反射光を撮像した画像であって、前記輝度値とは、赤外の輝度値であることを特徴とする請求項６に記載の情報処理装置。
【請求項９】
更に、
前記操作オブジェクトの方向に基づいて、前記指示位置に対応する部分の輝度値の情報を補正する補正手段と、
前記補正手段によって補正された輝度値から、前記撮像部と前記操作オブジェクトとの間の距離情報を取得する取得手段と
を備えることを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
更に、
事前のキャリブレーション作業から取得した輝度値の情報を保持する保持手段を備え、
前記補正手段は、前記保持手段が保持している情報を用いて前記補正を行うことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記指示位置に対応する部分の輝度値の情報は、指示位置の周辺部分での輝度値の分布を表す情報であることを特徴とする請求項６に記載の情報処理装置。
【請求項１２】
前記撮像画像は、２台以上の撮像部から得られた画像であることを特徴とする請求項１に記載の情報処理装置。
【請求項１３】
前記撮像画像は、可視光カメラによって撮像された画像であって、前記輝度値は画素値であることを特徴とする請求項６に記載の情報処理装置。
【請求項１４】
前記位置特定手段は、前記指示位置のｘｙ平面での座標を特定し、前記方向特定手段はｚ軸の方向の座標を決定することを特徴とする請求項１に記載の情報処理装置。
【請求項１５】
前記認識したタッチ操作の最中の情報を使って補正に使う情報を更新することを特徴とする請求項１０に記載の情報処理装置。
【請求項１６】
操作オブジェクトによる対象面へのタッチ操作を認識する情報処理装置であって、
撮像部が前記操作オブジェクトを撮像した撮像画像に基づいて、前記操作オブジェクトの先端部の位置を特定する位置特定手段と、
前記撮像画像に基づいて、前記操作オブジェクトの先端部の前記撮像部に対する向きを特定する方向特定手段と、
前記撮像画像のうち、前記先端部に対応する画像情報と、前記先端部の前記撮像部に対する向きとに基づいて、前記操作オブジェクトの先端部による前記対象面へのタッチを認識する認識手段と
を備えることを特徴とする情報処理装置。
【請求項１７】
操作オブジェクトによる対象面へのタッチ操作を認識する情報処理方法であって、
撮像部が撮像した、該撮像部と前記操作オブジェクトとの間の距離情報を反映した撮像画像に基づいて、前記操作オブジェクトによる指示位置を特定する位置特定工程と、
前記撮像画像に基づいて、前記操作オブジェクトの方向を特定する方向特定工程と、
前記撮像画像のうち、前記指示位置に対応する部分の画像情報と、前記操作オブジェクトの方向と、に基づいて、前記操作オブジェクトと前記対象面との間の距離が所定値を下回ったことを判断する判断工程と
を備えることを特徴とする情報処理方法。
【請求項１８】
操作オブジェクトによる対象面へのタッチ操作を認識する情報処理方法であって、
撮像部が前記操作オブジェクトを撮像した撮像画像に基づいて、前記操作オブジェクトの先端部の位置を特定する位置特定工程と、
前記撮像画像に基づいて、前記操作オブジェクトの先端部の前記撮像部に対する向きを特定する方向特定工程と、
前記撮像画像のうち、前記先端部に対応する画像情報と、前記先端部の前記撮像部に対する向きとに基づいて、前記操作オブジェクトの先端部による前記対象面へのタッチを認識する認識工程と
を備えることを特徴とする情報処理方法。
【請求項１９】
コンピュータを、請求項１乃至１６の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作オブジェクトの３次元座標位置を求めるための技術に関するものである。
【背景技術】
【０００２】
可視光カメラや赤外線カメラによってユーザの手領域を検出し、その動きや位置に応じて操作入力部品（ユーザインターフェース）を操作するジェスチャー認識技術による機器操作が広まりつつある。これらの装置では、カメラから入力される画像から手や指を検出し、その位置や動きによって操作のイベントを検出する。特許文献１では、一定あるいは時間的に変化するタイミングごとに発光し、その反射光の強さを物体の距離値に変換して、ジェスチャー入力やポインティング操作を実現している。また、特許文献２では、赤外カメラによって入力された入力画像から指先を検出し、指先の静止を検出して入力イベント情報を生成している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１７７４４９号公報
【特許文献２】特開平２０１１−２２９４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ユーザの手指によるタッチ操作やジェスチャー操作を認識するためには、指先の三次元座標を精度よく推定する事が望ましい。しかし画像中の位置や動きをとらえることはできても、カメラ一台で精度よく指先の三次元座標を求めることは難しい。特許文献２では、指先の三次元座標を取得せず、指先の静止を検知して操作を行っている。特許文献１では、光を当ててその反射光の強さを物体の距離値に変換している。しかしながら、物体の反射特性や表面の向きに起因する反射光の異なりは無視している。実際にはカメラや光源に対する手指の方向によって反射光の輝度は変わるため、精度よく距離を取得する事は難しい。そのため手指の方向によって精度よく操作のイベントを検出する事が難しくなる。
【０００５】
本発明はこのような問題に鑑みてなされたものであり、操作オブジェクトの３次元座標位置をより正確に求めるための技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の目的を達成するために、例えば、本発明の画像処理装置は、操作オブジェクトによる対象面へのタッチ操作を認識する情報処理装置であって、撮像部が撮像した、該撮像部と前記操作オブジェクトとの間の距離情報を反映した撮像画像に基づいて、前記操作オブジェクトによる指示位置を特定する位置特定手段と、前記撮像画像に基づいて、前記操作オブジェクトの方向を特定する方向特定手段と、前記撮像画像のうち、前記指示位置に対応する部分の画像情報と、前記操作オブジェクトの方向と、に基づいて、前記操作オブジェクトと前記対象面との間の距離が所定値を下回ったことを判断する判断手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明の構成によれば、操作オブジェクトの３次元座標位置をより正確に求めることができる。
【図面の簡単な説明】
【０００８】
【図１】画像処理装置の機能構成例を示すブロック図。
【図２】画像処理装置のハードウェア構成例を示すブロック図。
【図３】画像処理装置の代表的な設置例を示す図。
【図４】補正パラメータを求めて記憶装置２０４に登録する処理のフローチャート。
【図５】投影情報及び指の配置例を示す図。
【図６】ステップＳ４０６における処理を説明する模式図。
【図７】式（５）で示した二次曲線を示す図。
【図８】ジェスチャ操作を行う段階で画像処理装置が行う処理のフローチャート。
【図９】ワールド座標系の一例を示す図。
【図１０】ジェスチャ操作とイベントとの対応関係を示す図。
【図１１】ジェスチャ操作を行う段階で画像処理装置が行う処理のフローチャート。
【図１２】タップイベントについて説明する図。
【図１３】ドラッグ時に指先の角度が変化する様子を表す図。
【図１４】角度と輝度のプロット及び決定した補正パラメータの二次曲線を示す図。
【図１５】画像処理装置の代表的な設置例を示す図。
【図１６】複数のカメラにおける指先画像の異なりを表す図。
【図１７】補正パラメータを求めて記憶装置２０４に登録する処理のフローチャート。
【図１８】補正パラメータとして指先の輝度分布を補正する輝度分布を表す図。
【図１９】ステップＳ１７０６における処理の詳細を示すフローチャート。
【図２０】ジェスチャ操作を行う段階で画像処理装置が行う処理のフローチャート。
【図２１】ステップＳ２００６及びステップＳ２００７における処理を表す図。
【図２２】視差を計算する様子を表す図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１０】
［第１の実施形態］
先ず、本実施形態に係る画像処理装置（情報処理装置）の機能構成例について、図１のブロック図を用いて説明する。なお、本実施形態では、画像処理装置は図１に示した各部を有するものとして説明するが、いくつかの機能部を外部機器に搭載させるようにしても良い。
【００１１】
画像入力部１０１は、後述するカメラにより撮像された各フレームの画像（撮像画像）を順次取得し、該取得した撮像画像を後段の領域検出部１０２に対して送出する。
【００１２】
領域検出部１０２は、画像入力部１０１から受けた撮像画像から、操作オブジェクトが写っている領域を操作オブジェクト領域として検出する。操作オブジェクトは、例えばユーザの手であっても良いし、ユーザの手が把持しているペンやスタイラスなどの器具であっても良い。
【００１３】
位置検出部１０３は、領域検出部１０２が検出した操作オブジェクト領域から操作オブジェクトの先端部を検出し、その画像座標を検出する。操作オブジェクトの先端部とは、例えば操作オブジェクトがユーザの手である場合には、操作オブジェクトの先端部は指の先となる。また、操作オブジェクトがペンやスタイラスなどの棒状の器具である場合には、操作オブジェクトの先端部はこの器具においてユーザが把持していない他端となる。以下では説明上、操作オブジェクトが人の手であるものとして説明する。
【００１４】
角度測定部１０４は、領域検出部１０２が検出した操作オブジェクト領域から、撮像画像内における指の方向を示す値（厳密には後述するように内積値）を求める。輝度測定部１０５は、位置検出部１０３が検出した指の先端部の輝度値を撮像画像から取得する。
【００１５】
補正パラメータ決定部１０６は、角度測定部１０４が求めた方向と、輝度測定部１０５が取得した輝度値と、を用いて、撮像画像中の指の先端部における輝度値を、後述する所望の輝度値に補正するための補正パラメータを求める。
【００１６】
輝度補正部１０７は、補正パラメータ決定部１０６が求めた補正パラメータを用いて、撮像画像中における指の先端部における輝度値（輝度測定部１０５が取得した輝度値）を所望の輝度値に補正する。
【００１７】
三次元座標決定部１０８は、輝度補正部１０７による補正後の撮像画像を用いて、後述するカメラから指の先端部までの距離を求めることで、指の先端部の３次元座標値を決定する。イベント検出部１０９は、三次元座標決定部１０８が決定した３次元座標位置若しくは従前に求めた３次元座標位置に対する変化に対応するイベントを実行する。
【００１８】
次に、図１に示した機能構成を実現するハードウェア構成の一例について、図２のブロック図を用いて説明する。ＣＰＵ２０１はＲＯＭ２０２やＲＡＭ２０３に格納されているコンピュータプログラムやデータを用いて処理を実行することで、画像処理装置全体の動作制御を行うと共に、画像処理装置が行うものとして後述する各処理を実行する。
【００１９】
ＲＯＭ２０２には、画像処理装置の設定データやブートプログラムなどが格納されている。ＲＡＭ２０３は、ＲＯＭ２０２や記憶装置２０４からロードされたコンピュータプログラムやデータを一時的に記憶するためのエリアや、カメラ２０５から送出される各フレームの撮像画像を一時的に記憶するためのエリア、を有する。更に、ＲＡＭ２０３は、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ２０３は、様々なエリアを適宜提供することができる。
【００２０】
記憶装置２０４には、ＯＳ（オペレーティングシステム）や、画像処理装置が行うものとして後述する各処理をＣＰＵ２０１に実行させるためのコンピュータプログラムやデータが保存されている。また、記憶装置２０４には、以下の説明において既知の情報として取り扱うものについても保存されている。記憶装置２０４に保存されているコンピュータプログラムには、図１に示した各部の機能をＣＰＵ２０１に実行させるためのコンピュータプログラムが含まれている。
【００２１】
記憶装置２０４に保存されているコンピュータプログラムやデータは、ＣＰＵ２０１による制御に従って適宜ＲＡＭ２０３にロードされ、ＣＰＵ２０１による処理対象となる。
【００２２】
カメラ２０５は、ユーザが自身の手でもってジェスチャを行う空間である平板上を撮像するものであり、光源２０６は、このユーザの手に対して光を照射するためのものである。本実施形態では、光源２０６は赤外光を照射する赤外光光源とし、カメラ２０５は、赤外光の強さを検知する赤外線カメラであるとする。しかし、以下の説明が、光源２０６が赤外光光源、カメラ２０５が赤外線カメラ、であることに限ったものではないことは明らかである。
【００２３】
表示装置２０７は、後述する平板上にユーザインターフェースや画像、文字などの様々な情報を投影するための投影装置である。なお、平板そのものを表示装置２０７としても良い。
【００２４】
なお、本実施形態では、画像処理装置は図２に例示するハードウェア構成を有するものとして説明するが、同等の機能を実現できるのであれば、他の構成を採用しても良い。また、図２に示した全ての機能部が画像処理装置に含められていなくてもよく、例えば、カメラ２０５、光源２０６、表示装置２０７のそれぞれは画像処理装置に対する外部機器として画像処理装置に外部接続されるものであっても良い。
【００２５】
次に、本実施形態に係る画像処理装置の代表的な設置例を図３に示す。平板３０１の上方には、平板３０１に対して赤外光を照射する光源２０６と、光源２０６から照射した赤外光の反射光を撮像画像として取得するカメラ２０５と、平板３０１上に上記の様々な情報を投影する表示装置２０７と、が設けられている。
【００２６】
ユーザ３９０は自身の指でもって、平板３０１上に投影されているユーザインターフェースや画像、文字などに対してタッチやドラッグ、フリック等のジェスチャー操作を行う。この平板３０１上の様子はカメラ２０５により撮像画像として撮像される。この撮像画像は後述するように、指先の３次元座標位置を推定するために用いられる。なお、上記のように、図３に示した配置例はあくまでも一例であり、他の配置を採用しても構わない。
【００２７】
次に、平板３０１上における指の向きに応じて変わる、撮像画像中の指先における輝度値、を補正するための補正パラメータを求めて記憶装置２０４に登録（出力）する為に行う処理について、図４のフローチャートを用いて説明する。図４のフローチャートに示す処理は、使用環境が撮像画像における指先の輝度値に与える影響を補正するためのパラメータを、事前に、キャリブレーション作業から得る処理である。本実施形態では、平板３０１という２次元平面内におけるカメラ２０５の向きを方向ベクトルとする直線を基軸とし、この基軸に対する指の向きに応じて指先における反射輝度が異なることに着目した。そして、基軸に対して指がどのような向きであっても、撮像画像中における指先の輝度値が、指がカメラ２０５と相対する方向に向いているときの撮像画像中における指先の輝度値となるように、輝度値補正処理を行う。
【００２８】
なお、図４のフローチャートに従った処理をＣＰＵ２０１に実行させるためのコンピュータプログラムやデータは記憶装置２０４に保存されている。然るにＣＰＵ２０１はこのコンピュータプログラムやデータを記憶装置２０４からＲＡＭ２０３にロードし、このロードしたコンピュータプログラムやデータを用いて処理を実行する。これにより、画像処理装置は、図４のフローチャートに従った処理を実行することになる。
【００２９】
また、図４のフローチャートに従った処理は、図３に例示したように画像処理装置を構成したときに最初に一回だけ実行するようにしても良いし、任意のタイミングで行っても良い。また、図４のフローチャートに従った処理は、平板３０１上でジェスチャ操作を行うユーザごとに行っても良い。
【００３０】
ステップＳ４０１では、ＣＰＵ２０１は補正パラメータ決定部１０６として動作する。即ち、ＣＰＵ２０１は表示装置２０７を制御し、ユーザに、平板３０１上の規定の位置に規定の角度で指を配置させるための情報を、平板３０１上に投影させる。この投影した情報の一例を図５（ａ）に示す。
【００３１】
図５（ａ）では、平板３０１上には矢印形状を有する指示ポインタ５０１が投影されており、ここでは、ユーザに、自身の指を、矢印の向きで、矢印の先の位置に配置するように促している。５０２はユーザの腕である。
【００３２】
図４に戻って、次に、ステップＳ４０２では、ＣＰＵ２０１は画像入力部１０１として動作する。即ち、カメラ２０５から順次送出され、ＲＡＭ２０３若しくは記憶装置２０４に格納されたそれぞれのフレームの撮像画像のうち１つを選択する。もちろん、カメラ２０５に１枚の撮像画像を撮像させ、これを選択しても良い。ステップＳ４０３以降ではこの選択された撮像画像を用いる。
【００３３】
なお、ステップＳ４０２における処理は、ユーザが平板３０１上に指を配置する最中に行っても意味のないものである。そのため、例えばユーザが不図示の操作部を操作して、指の配置が完了したことを示す入力を行い、ＣＰＵ２０１がこれを検知した場合に、ステップＳ４０２以降の処理を開始するようにしても構わない。また、ユーザ入力を介さずに、例えばカメラ２０５により平板３０１上の動画像を撮影させ、ＣＰＵ２０１が手の領域を抽出し続け、その位置や形状の変化量が閾値以下となった場合に、ステップＳ４０２以降の処理を開始しても良い。
【００３４】
ステップＳ４０３では、ＣＰＵ２０１は、領域検出部１０２として動作する。即ち、ステップＳ４０２で選択した撮像画像からユーザの手の領域を検出する。撮像画像から手の領域を検出するための技術には様々なものがあり、本実施形態では如何なる技術を採用しても良い。例えば背景差分法によって背景（平板）の領域と手の領域を区別するようにしても構わないし、カメラ２０５がＲＧＢから構成されるカラー画像を撮像した場合、この撮像画像から肌色を示す画素値を有する画素群からなる領域を手の領域として検出しても構わない。その場合は、RGBの値を本実施形態で説明する「輝度値」として扱う。
【００３５】
ステップＳ４０４では、ＣＰＵ２０１は、位置検出部１０３として動作する。即ち、ステップＳ４０３で検出した手の領域から指先とおぼしき部分を特定し、ステップＳ４０２で選択した撮像画像中における該特定した部分の画像座標を特定する。この特定には様々な方法が適用可能であり、如何なる方法を採用しても構わない。
【００３６】
例えば、様々な手の形状ごとに、該形状を有する手の３次元形状モデルを予め記憶装置２０４内に登録しておく。そして、ステップＳ４０３で検出した手の領域にそれぞれの３次元形状モデルをフィットさせ、最もフィットした３次元形状モデルにおける指の先に対応する撮像画像上の位置を、撮像画像中における指先の位置とし、この位置における画像座標を取得する。
【００３７】
また、撮像画像の枠部から撮像画像内へと伸びている領域を検出し、この検出した領域内で、該枠部から最も遠い位置を指先の位置とし、この位置における画像座標を取得するようにしても構わない。
【００３８】
ステップＳ４０５では、ＣＰＵ２０１は、輝度測定部１０５として動作する。即ち、ステップＳ４０４で取得した画像座標で特定される撮像画像上の位置の周辺部分における輝度値の輝度分布を取得し、その分布から離れた輝度（特異点）を除いた残りの輝度値の平均値を、撮像画像内における指先の輝度値として取得する。
【００３９】
ステップＳ４０６では、ＣＰＵ２０１は、角度測定部１０４として動作する。先ず、撮像画像内における指の向きを求める。撮像画像内における指の向きを求める方法には様々な方法があるが、例えば、上記の３次元形状モデルを手の領域にフィットさせた場合におけるこの３次元形状モデルの撮像画像内における向きを、撮像画像内における指の向きとして特定する。
【００４０】
一方、カメラ２０５の位置及び姿勢は固定されており、且つカメラ２０５は平板３０１の上部から平板３０１全体を俯瞰している。ここで、カメラ２０５の三次元座標のうち高さを平板３０１と同じ位置にした点をカメラ位置とし、このカメラ２０５の位置と指先位置とを結ぶ線の方向をカメラ２０５の方向ベクトルとする。然るに、撮像画像内における指の向きを示すベクトル（単位ベクトル）と、撮像画像におけるカメラ２０５の方向ベクトル（単位ベクトル）と、の内積値を計算することで、それぞれのベクトルがなす角度θに関する値（ｃｏｓθ）を求める。
【００４１】
ステップＳ４０６における処理を、図６の模式図を用いて説明する。図６において６０１は撮像画像内における指先の位置、６０４は撮像画像内における指の向きを示すベクトル、６０３は撮像画像において指先位置からのカメラ２０５の方向ベクトル、である。６０５は、ベクトル６０３とベクトル６０４とがなす角度である。
【００４２】
ここで、内積値が１であれば、ベクトル６０３とベクトル６０４とがなす角度６０５が０度（指の向きと平板３０１内におけるカメラ２０５の向きとは一致している）であることを表している。また、内積値が０であれば、ベクトル６０３とベクトル６０４とがなす角度６０５が９０度（指の向きと平板３０１内におけるカメラ２０５の向きとは直交している）であることを表している。また、内積値が−１であれば、ベクトル６０３とベクトル６０４とがなす角度６０５が１８０度（指の向きと平板３０１内におけるカメラ２０５の向きとは相対している）であることを表している。
【００４３】
なお、平板３０１内におけるカメラ２０５の向きを方向ベクトルとする直線を基軸とし、この基軸に対する、撮像画像内の指の相対的な方向を示す角度を計算する方法は上記の内積値の計算による方法に限るものではなく、他の方法を採用しても構わない。
【００４４】
ステップＳ４０７では、ＣＰＵ２０１は、全ての規定の角度についてステップＳ４０１〜Ｓ４０６における処理を実行したか否かを判断する。例えば、図５（ｂ）に例示するように、４５度ごとに５方向についてステップＳ４０１〜Ｓ４０６における処理を実行したか否かを判断する。この判断の結果、全ての規定の角度についてステップＳ４０１〜Ｓ４０６における処理を実行した場合には、処理はステップＳ４０９に進む。一方、全ての規定の角度についてステップＳ４０１〜Ｓ４０６における処理を実行していない場合には、処理はステップＳ４０８に進む。
【００４５】
ステップＳ４０８では、ＣＰＵ２０１は補正パラメータ決定部１０６として動作する。即ち、次の規定角度（例えば前にステップＳ４０１で指定した角度に規定の増分を加えた角度）で指を配置させるための画面のデータを記憶装置２０４から読み出す。そして処理はステップＳ４０１に進み、ステップＳ４０１では、ＣＰＵ２０１は、表示装置２０７を制御し、ユーザに、ステップＳ４０８で読み出したデータが示す画面を、平板３０１上に投影させる。
【００４６】
ステップＳ４０９では、ＣＰＵ２０１は、補正パラメータ決定部１０６として動作する。即ち、上記各ステップにおける処理によって収集した輝度値及び内積値を用いて、補正パラメータを決定する。本実施形態ではそのための一手法として、内積値による輝度値の変動を最小二乗法により二次曲線で近似する。
【００４７】
指の向きＤｉ（ｉ＝０，１，２，…）に対して求めた内積値をＰｉ、向きＤｉに対して求めた撮像画像内における指先の輝度値をＩｉ、とすると、二次曲線の残差Ｒは以下の式（１）のように定義できる。
【００４８】
【数１】
2014186715.tif 000003
【００４９】
ここで、ａ、ｂ、ｃは係数である。この残差Ｒを最小にするａ、ｂ、ｃは、以下の式（２）〜（４）を解くことで得ることができる。
【００５０】
【数２】
2014186715.tif 000004
【００５１】
【数３】
2014186715.tif 000005
【００５２】
【数４】
2014186715.tif 000006
【００５３】
この求まったａ、ｂ、ｃを用いると、撮像画像内で内積値がＰとなる方向に向いている指の指先における輝度値Ｉは、以下の式（５）を計算することで一意に求めることができる。
【００５４】
【数５】
2014186715.tif 000007
【００５５】
この式（５）で示した二次曲線を図７に示す。ここで、指の向きと平板３０１内におけるカメラ２０５の向きとが相対している場合における、撮像画像内における指先の輝度値Ｉｓは、式（５）にＰ＝１を代入することで求められる。この輝度値Ｉｓを以下の式（６）に示す。
【００５６】
【数６】
2014186715.tif 000008
【００５７】
ここで、輝度値Ｉと輝度値Ｉｓとの差は、撮像画像中における指先の輝度値を、内積値が１となるように指を配置した場合における撮像画像中の指先の輝度値に補正するための情報となる。輝度値Ｉと輝度値Ｉｓとの差を以下の式（７）に示す。
【００５８】
【数７】
2014186715.tif 000009
【００５９】
この補正用の情報を規定するｂ、ｃを補正パラメータとして記憶装置２０４に保存する。なお、補正パラメータの保存先については記憶装置２０４に限るものではなく、例えば、この補正パラメータを必要とする他の装置であっても良い。
【００６０】
次に、上記登録後、ユーザが実際に平板３０１上でジェスチャ操作を行って操作入力を行う段階にて画像処理装置が行う処理について、図８のフローチャートを用いて説明する。
【００６１】
なお、図８のフローチャートに従った処理をＣＰＵ２０１に実行させるためのコンピュータプログラムやデータは記憶装置２０４に保存されている。然るにＣＰＵ２０１はこのコンピュータプログラムやデータを記憶装置２０４からＲＡＭ２０３にロードし、このロードしたコンピュータプログラムやデータを用いて処理を実行する。これにより、画像処理装置は、図８のフローチャートに従った処理を実行することになる。
【００６２】
また、ステップＳ８０１〜Ｓ８０５の各ステップにおける処理は、それぞれ、上記のステップＳ４０２〜Ｓ４０６と同じであるので、これらのステップに係る説明は省略する。
【００６３】
ステップＳ８０６では、ＣＰＵ２０１は輝度測定部１０５として動作する。即ち、ステップＳ８０５で撮像画像から得た内積値Ｐと、ステップＳ８０４で撮像画像から得た指先の輝度値Ｉと、を用いて以下の式（８）を計算することで、補正後の指先の輝度値Ｉｃを得ることができる。
【００６４】
【数８】
2014186715.tif 000010
【００６５】
次に、ステップＳ８０７では、ＣＰＵ２０１は、三次元座標決定部１０８として動作する。即ち、ステップＳ８０６で求めた補正後の輝度値Ｉｃと、撮像画像中における指先の画像座標と、を用いて、現実空間における指先の３次元座標位置を求める。
【００６６】
一般に、光の強さは光源からの距離に対して単調減少する。カメラ２０５及び光源２０６の位置姿勢は固定されているので、カメラ２０５から指先までの距離Ｄを下記の方程式で近似する。
【００６７】
【数９】
2014186715.tif 000011
【００６８】
ここで、ｅ、f、ｇは予めカメラ２０５からの距離が異なる３点以上の指先輝度データから最小二乗法により予め求めておく。上式を変換すると、補正後の輝度値Ｉｃが与えられたときの距離Ｄは、以下の式（１０）を計算することで求めることができる。
【００６９】
【数１０】
2014186715.tif 000012
【００７０】
この式（１０）を計算することで求めた距離Ｄと、撮像画像中における指先の画像座標（ｘ、ｙ）と、を用いて、ワールド座標系における指先の三次元座標（Ｘ、Ｙ、Ｚ）を射影変換によって求めることができる。ここで、ワールド座標系とは、現実空間中の１点を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系である。本実施形態で定義するワールド座標系の一例を図９に示す。本実施形態では、平板３０１上の一点を原点（０，０，０）とし、平板３０１上をＸ−Ｙ平面（ｘｙ平面）、平板３０１の高さ方向をＺ軸としてワールド座標系を定める。距離Ｄ及び画像座標（ｘ、ｙ）からワールド座標系における三次元座標へと変換する射影変換は、カメラ２０５の高さＺｃが指先の高さＺに比べて十分高いと仮定し、以下の式（１１）、（１２）を計算することでなされる。
【００７１】
【数１１】
2014186715.tif 000013
【００７２】
【数１２】
2014186715.tif 000014
【００７３】
ここで、ｒ１１〜ｒ３３、ｔ１〜ｔ３、ｆｘ、ｆｙ、ｃｘ、ｃｙ、Ｚｃはそれぞれ、カメラ２０５の設置時に確定するパラメータであり、図８のフローチャートに従った処理を開始する前に、予め記憶装置２０４に登録されている。
【００７４】
次に、ステップＳ８０８では、ＣＰＵ２０１はイベント検出部１０９として動作する。即ち、ステップＳ８０７で求めた３次元座標位置若しくは従前に求めた３次元座標位置からの変化に対応するイベントを検出し、これを実行する。ジェスチャ操作と、これに対応するイベントと、の対応関係を図１０に示す。「内容」として列挙されているもののうち、「ステップＳ８０７で求めた３次元座標位置若しくは従前に求めた３次元座標位置からの変化」に対応するものを検索し、これに対応するイベントを「ＵＩイベント」から特定する。そしてこの特定したイベントを実行する。これにより、表示装置２０７から平板３０１上に投影されたユーザインターフェース等の画像を操作することができる。
【００７５】
そしてステップＳ８０９では、ＣＰＵ２０１は、処理を終了するか否かを判断する。処理を終了する指示が不図示の操作部から入力されたことをＣＰＵ２０１が検知するなど、処理を終了する条件が満たされた場合には、本処理を終了する。一方、処理を終了する条件が満たされていない場合には、処理はステップＳ８０１に戻り、以降の処理を繰り返す。
【００７６】
このように、本実施形態に係る画像処理装置は、赤外光等の光源を操作エリアに照射し、指先の反射輝度をカメラで取得して指先の三次元座標を計算する際に、指先の角度によって変化する反射輝度を補正する。これによって指先の角度や姿勢によらず精度よく三次元座標を計算する事ができ、操作性が向上する。
【００７７】
なお、本実施形態で説明した装置の構成は上記の通り一例に過ぎず、特に以下に説明する基本構成の一例に過ぎない。基本構成では、操作オブジェクトによる対象面へのタッチ操作を認識する情報処理装置であって、撮像部が撮像した、該撮像部と操作オブジェクトとの間の距離情報を反映した撮像画像に基づいて、操作オブジェクトによる指示位置を特定する（位置特定）。また、撮像画像に基づいて、操作オブジェクトの方向を特定する（方向特定）。そして、撮像画像のうち、指示位置に対応する部分の画像情報と、操作オブジェクトの方向と、に基づいて、操作オブジェクトと対象面との間の距離が所定値を下回ったことを判断する。
【００７８】
［第２の実施形態］
第１の実施形態では、図４に示した補正パラメータを求める処理を、カメラ２０５及び光源２０６の確定時（装置作成時）、あるいは所定の場所への設置時、あるいはユーザごとに一度予め実施して補正パラメータを求めていた。これに対して本実施形態では、実際にユーザの操作時において平板３０１にタッチしていることを検知し、その角度及び輝度から補正パラメータを再計算する。本実施形態を含め、以下の各実施形態では主に、第１の実施形態との差分のみについて説明し、特に触れない限りは第１の実施形態と同様であるものとする。
【００７９】
本実施形態では、図８のフローチャートに従った処理の代わりに、図１１のフローチャートに従った処理を行う点が、第１の実施形態と異なる。また、図１１においてステップＳ１１０１〜Ｓ１１０８及びＳ１１１４はそれぞれ、図８のステップＳ８０１〜Ｓ８０９と同様であるので、これらのステップに係る説明は省略する。
【００８０】
ステップＳ１１０９では、ＣＰＵ２０１はイベント検出部１０９として動作する。即ちタップイベントを検出したか否かを判断し、検出した場合には処理はステップＳ１１１０に進み、検出していない場合には本処理を終了する。
【００８１】
ステップＳ１１１０では、ＣＰＵ２０１は、角度測定部１０４及び輝度測定部１０５として動作する。即ち、タップイベント発行時点の周辺の時間において、指の高さが極小となったときの内積値及び輝度値を取得する。ここでタップイベントについて、図１２を用いて説明する。図１２では平板３０１を側面から見た場合の、平板３０１とユーザの指とを示している。
【００８２】
画像処理装置の構成上、ユーザの指が実際に平板３０１に触れたか否かを厳密に判断することは困難である。そのため、タッチに係る各種イベントは、指先の三次元座標のＺ成分（高さＺ）が平板３０１に対して規定の高さ範囲Ｚｒ以内（範囲内）に入ったか否かを見て判定する。ここでタップイベントは、指先の位置が高さ範囲Ｚｒ以内に入り且つ所定時間内に範囲Ｚｒから出ることを判定してタップイベントを起こすので、指先の高さＺの精度が厳密でなくともタップイベントを検出可能である。このタップイベントを検出した直前に、指先の高さＺが極小となる点をタップポイントとし、その時点での高さを０として指先の輝度値及び内積値をそれぞれ取得する。
【００８３】
次に、ステップＳ１１１１ではＣＰＵ２０１は、取得した輝度値及び内積値のセットが規定数に達したか否かを判断する。この判断の結果、規定数に達していない場合には、処理はステップＳ１１１４に進む。一方、規定数に達した場合には、処理はステップＳ１１１２に進む。
【００８４】
ステップＳ１１１２では、ＣＰＵ２０１は、補正パラメータ決定部１０６として動作する。即ち、取得した上記の規定数のセットを用いて、上記ステップＳ４０９における処理と同様の処理を行うことで、補正パラメータを再計算する。
【００８５】
ステップＳ１１１３では、ＣＰＵ２０１は、イベント検出部１０９として動作する。即ち、タップ検出に用いる高さ範囲Ｚｒを変更する。補正パラメータ更新前は指先の角度に対する高さの精度が低いために、高さ範囲Ｚｒを大きめに設定してタップを検出しやすくし、補正パラメータ更新後は高さの精度が高まるために、範囲Ｚｒを小さめ（狭め）に設定して誤検出を減らす。これによってタップ検出の精度を高めることができる。
【００８６】
このように、本実施形態によれば、タップ検出を利用してユーザの操作中も平板３０１にタッチしている指先の角度と輝度を収集し、補正パラメータを再計算する事で、より精度を高めることができる。また、初期に設定しておく補正パラメータが許容範囲であれば、使用環境ごとやユーザごとの補正パラメータ決定処理をなくすことが可能である。
【００８７】
［第３の実施形態］
第２の実施形態では、操作中のタップイベントを用いて平板３０１にタッチしている指先の角度と輝度を収集して補正パラメータを再計算しているが、タップイベントに限るものではない。例えばドラッグ（図１０のＴＯＵＣＨ＿ＭＯＶＥイベント）や長押し（ＴＯＵＣＨ＿ＳＴＩＬＬイベント）等の平板３０１に安定してタッチしている操作イベントも検出する事ができる。そしてその点での指先の角度及び輝度を収集する事で、同様に補正パラメータや高さの範囲Ｒを更新する事が可能である。図１３にドラッグ時に指先の角度が変化する様子を表す。特にドラッグイベントでは、ドラッグ中に指先が移動するため、指先の角度が次々と変化する。従って、その各時点での角度と輝度を測定し、補正パラメータを更新する事で、より精度高く輝度の補正が可能となる。
【００８８】
［第４の実施形態］
第２の実施形態における説明「ステップＳ１１１１ではＣＰＵ２０１は、取得した輝度値及び内積値のセットが規定数に達したか否かを判断する。」に登場する「規定数」とは、最小二乗法で補正パラメータを求めるのに十分な予め定めた定数であるが、これに限るものではない。例えば、式（１）で計算する残差Ｒを角度の数で割った平均値Ｒ／Ｎを指標とし、これが閾値以下になった場合に十分な数を満たしたとして判定しても良い。
【００８９】
［第５の実施形態］
第２の実施形態では、ステップＳ１１１３で高さ範囲Ｚｒを変更するが、本実施形態では、この高さ範囲を、操作時の指先の角度に応じて異なる値に設定する。図１４に、補正パラメータ決定処理において取得した角度と輝度のプロット及び決定した補正パラメータの二次曲線を示す。
【００９０】
図１４（ａ）は、操作時の指先角度が補正パラメータ決定処理において取得した角度に近い範囲であれば、補正の精度が高いと想定して高さの範囲Ｚｒを小さく設定する。一方、操作時の指先角度が補正パラメータ決定処理において取得した角度から遠い場合には、補正の精度が低いと想定して高さの範囲Ｚｒを大きく設定する。これにより、操作時において指先の角度の補正の信頼性に応じてタップ検出の感度を調整し、より安定したタップ検出を実現できる。
【００９１】
また、図１４（ｂ）は、補正パラメータ決定処理によって取得した各角度と、最小二乗法により求めた二次曲線との誤差に応じて高さの範囲Ｚｒを変える。補正パラメータ決定処理によって取得したそれぞれの角度及び輝度のプロットと、決定した補正パラメータによる二次曲線との誤差を計算し、誤差の大きいプロットの角度とその近傍の角度に対しては、高さの範囲Ｚｒを大きく設定する。これにより、操作時において指先の角度の補正の信頼性に応じてタップ検出の感度を調整し、より安定したタップ検出を実現できる。
【００９２】
なお、図１４（ａ），（ｂ）ではプロットの角度から一定範囲に区切って高さの範囲Ｚｒを分けているが、これに限るものではない。例えば操作時の角度との差が最も小さいプロットの角度の差Ｐｄｉｆｆを求め、高さの範囲ＺｒをＰｄｉｆｆの関数として定義しても良い。
【００９３】
［第６の実施形態］
上記各実施形態では、輝度値から距離に変換する変換式として式（９）を用いていたが、変換式は式（９）に限るものではなく、他の式を用いても良い。あるいは画像中の座標に応じて式（９）に含まれる係数ｅ、ｆ、ｇを計算し直しても良い。その場合、全ての画像の座標に応じて予め距離の異なる指先輝度データを取得する事は困難であるため、数点の格子点で輝度を取得し、格子点の輝度から各座標の輝度を座標位置に応じて補間する事が好ましい。
【００９４】
［第７の実施形態］
上記各実施形態において、指の方向とは、平板３０１内におけるカメラ２０５の向きを方向ベクトルとする直線を基軸とし、この基軸に対する、撮像画像内の指の相対的な方向であった。しかし、基軸はカメラ２０５の向きを方向ベクトルとする直線に限るものではない。例えば、光源２０６による照射方向を方向ベクトルとする直線を基軸としても良い。また、平板３０１に対して指先を立てる方向を指の輝度変化から推定し、その方向を用いても良い。
【００９５】
［第８の実施形態］
上記の実施形態は、カメラ２０５による撮像画像中の指示具操作オブジェクトの先端部における反射輝度を補正し、補正した輝度値に基づいて距離を式（１０）により求める実施形態である。本実施形態では、カメラ２０５がステレオカメラである場合について説明する。先ず、本実施形態に係る画像処理装置の代表的な設置例を図１５に示す。図１５において、図３と同じ部分には同じ参照番号を付している。図３ではカメラ２０５は１台のカメラから成るものであったが、図１５では、カメラ２０５は、２台のカメラから成るものである（すなわちステレオカメラである）。
【００９６】
本実施形態でも、光源２０６は赤外光を照射する赤外光光源とするので、カメラ２０５は、赤外光の強さを検知する赤外線のマルチカメラである。しかし、以下の説明が、光源２０６が赤外光光源、カメラ２０５が赤外線カメラ、であることに限ったものではないことは明らかである。また、本実施形態では、カメラ２０５は、２台のカメラから成るステレオカメラであるものとして説明するが、カメラ２０５は、２台以上のカメラから成るステレオカメラであっても良い。また、本実施形態でも、可視光カメラで撮像した画像から肌色検出等を用いて人の手を検出する場合には、RGBの値を輝度値として扱う。
【００９７】
本実施形態の場合、カメラ２０５を構成するそれぞれのカメラにおいて、光源、指先、カメラ間の角度が異なるため、指先の見え方、輝度の分布にカメラ間で差が生じる。図１６にその様子を示す。図１６（ａ）は、カメラ２０５がカメラＡ及びカメラＢから成る場合に、カメラＡ、指先、光源がなす角度、カメラＢ、指先、光源がなす角度を表す図である。図１６（ｂ）は、図１６（ａ）のカメラＡから見える指先（上図）と、カメラＢから見える指先（下図）を示す図である。図１６（ａ）に示すように光源と指先とを結ぶ線分と、指先とカメラとを結ぶ線分と、がなす角度が、カメラＡとカメラＢとで異なる。このため、図１６（ｂ）に示すように、指先の輝度がカメラＡ、Ｂで異なってしまう。特にこの時、指の爪などに鏡面反射が発生する場所が、カメラＡ、Ｂで異なる場合が生じる。このように指先の見え方が変わってしまうと、それぞれのカメラによる撮像画像（ステレオ画像）間で後述するマッチングを行う際にマッチングに誤差が生じ、ステレオ画像間の視差に基づいて計算する指先の距離に誤差が生じてしまう。
【００９８】
そこで本実施形態では、それぞれのステレオ画像について、代表的な指先の角度ごとに輝度分布を測定することで、補正パラメータを取得する。そして認識時には、それぞれのステレオ画像について、指先の角度に対して決定した補正パラメータによって指先の輝度分布を補正し、補正した指先を用いてステレオ画像間のマッチングを行って視差を計算し、該視差に基づいて指先への距離を計算する。
【００９９】
次に、平板３０１上における指の向きに応じて変わる、撮像画像中の指先における輝度分布、を補正するための補正パラメータを求めて記憶装置２０４に登録（出力）する為に行う処理について、図１７のフローチャートを用いて説明する。図１７において、図４に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、これらの処理ステップに係る説明は省略する。また、ステップＳ１７０１〜Ｓ１７０４のそれぞれでは、上記のステップＳ４０２〜Ｓ４０４，Ｓ４０６の処理をそれぞれのステレオ画像について行う。なお、ステップＳ１７０４では、撮像画像内における指の向きを示すベクトル（単位ベクトル）と、撮像画像におけるカメラ２０５の方向ベクトル（単位ベクトル）と、の内積値ではなく、それぞれのベクトルがなす角度θを求める。
【０１００】
ステップＳ１７０５では、ＣＰＵ２０１は輝度測定部１０５として動作する。即ち、それぞれのステレオ画像から指先の輝度分布を取得する。輝度分布の一例を図１８（ａ）に示す。図１８（ａ）は、指先の輝度分布を示す図である。図５（ｂ）と同様に指先の方向を変えて取得した画像に対し、ステップＳ１７０４で取得した指先角度に基づいて一方向に指先の方向を正規化し、指先の所定領域（矩形等）を切り出して輝度分布とする。輝度分布は指先輝度をそのまま使っても良いし、あるいは平滑化フィルタを施してぼかした輝度を使って輝度分布としても良い。
【０１０１】
全ての必要な角度についてステップＳ４０１，Ｓ１７０１〜Ｓ１７０５，Ｓ４０８の処理を行うと、処理はステップＳ４０７を介してステップＳ１７０６に進む。ステップＳ１７０６では、ＣＰＵ２０１は、補正パラメータ決定部１０６として動作する。即ち、カメラごとに、上記各ステップにおける処理によって収集した輝度分布及び角度を用いて、補正パラメータを決定する。
【０１０２】
図１８（ｂ）は、本実施形態における補正パラメータである輝度分布を表す図である。１８０１は、ステップＳ１７０５において取得する、各角度における指先の輝度分布であり、輝度分布（画像）は前述の通り指先の方向を一方向正規化している。ステップＳ１７０６における処理の詳細について、図１９のフローチャートを用いて説明する。
【０１０３】
ステップＳ１９０１において、各角度における輝度分布１８０１の平均（平均画像）を計算する。１８０２は各角度における輝度分布１８０１の平均（平均輝度分布）である。平均輝度分布は角度によって変化する輝度成分（鏡面反射等）が緩和される。
【０１０４】
次に、ステップＳ１９０２において、平均輝度分布に対する各角度の輝度分布の差を補正パラメータとして求める。１８０３は、各角度における輝度分布１８０１と平均輝度分布１８０２の差分であり、これを補正パラメータとする。そして、このようにして求めた補正パラメータを、記憶装置２０４に保存する。なお、補正パラメータの保存先については記憶装置２０４に限るものではなく、例えば、この補正パラメータを必要とする他の装置であっても良い。
【０１０５】
以上、図１７〜図１９を用いて述べた補正パラメータ計算処理を、予め行っておく。次に、上記登録後、ユーザが実際に平板３０１上でジェスチャ操作を行って操作入力を行う段階にて画像処理装置が行う処理について、図２０のフローチャートを用いて説明する。ステップＳ２００１〜Ｓ２００４のそれぞれでは、上記のステップＳ８０１〜Ｓ８０３，Ｓ８０５の処理をそれぞれのステレオ画像について行う。なお、ステップＳ２００４では、撮像画像内における指の向きを示すベクトル（単位ベクトル）と、撮像画像におけるカメラ２０５の方向ベクトル（単位ベクトル）と、の内積値ではなく、それぞれのベクトルがなす角度θを求める。
【０１０６】
ステップＳ２００５では、図１７のステップＳ１７０５と同様に、それぞれのステレオ画像から、指先の輝度分布を取得する。
【０１０７】
ステップＳ２００６では、ＣＰＵ２０１は、補正パラメータ決定部１０６として動作する。即ち、ステップＳ２００４で求めた指先の角度に対する補正パラメータを決定する。図２１（ａ）に指先角度に合わせた補正パラメータ決定方法を示す。本画像処理装置が図１７の処理によって予め保持する補正パラメータの輝度分布は図１８（ｂ）に示す通り、幾つかの方向に指を置くことで決定する代表的な角度の輝度分布のみである。そこで、ステップＳ２００６では、任意の指先角度に合わせて補正パラメータの輝度分布を合成する。図１８（ｂ）示すような離散的なそれぞれの角度に対する輝度分布のうち、指先角度より大きく且つ指先角度に最も近い角度、指先角度より小さく且つ指先角度に最も近い角度、のそれぞれに対する補正パラメータの輝度分布を選択する。例えば、図２１に示す如く、指先角度を−３５°とすると、−３０°、−４５°のそれぞれに対する補正パラメータの輝度分布を選択する。そして、この選択した輝度分布に対し、指先角度との差に応じた重み付けを行ってから、これら輝度分布を合成する。図２１の場合、−３０°とは５°、−４５°とは１０°だけ指先角度との差があるため、−３０°と−４５°の輝度分布を１０：５＝２：１の重みで合成し、−３５°の補正パラメータの輝度分布を得る。このような処理を、それぞれのステレオ画像について行う。
【０１０８】
次にステップＳ２００７において、ＣＰＵ２０１は、輝度補正部１０７として機能する。即ち、決定した補正パラメータの輝度分布に基づき指先の輝度分布を補正する。図２１（ｂ）にその様子を示す。すなわち、ステップＳ２００５で取得した輝度分布からステップＳ２００６で求めた輝度分布を差し引いた差分画像を、補正後の指先輝度分布として生成する。補正後の指先輝度分布はカメラに対する角度によって変化する輝度成分（鏡面反射等）が緩和される。またこの時、ステップＳ２００５で取得した輝度分布（画像）は一方向に正規化されているので、補正した指先の輝度分布を元の指先の角度及び位置に戻す。このような処理を、それぞれのステレオ画像について行う。
【０１０９】
そしてステップＳ２００８において、ＣＰＵ２０１は、三次元座標決定部１０８として動作する。即ち、それぞれのステレオ画像において補正した指先の輝度分布を用いてステレオ画像間のマッチングを取って視差を計算し、該視差を用いて指先への距離を計測する。図２２は視差を計算する様子を表す図である。２２０１はカメラＡによるステレオ画像、カメラＢによるステレオ画像、のそれぞれで検出された指先領域であり、ステップＳ２００７において指先の輝度分布が補正され、角度によって変化する輝度成分（鏡面反射等）が緩和されている。ここでステレオ画像間の指先領域のマッチングを取り、視差を計算する。図２２において２２０２が視差になる。角度によって変化する輝度成分（鏡面反射等）が緩和されているので、高精度のマッチングが可能となる。視差が求まれば三角測量の原理により、指先までの距離は以下の式（１３）で計算できる。
【０１１０】
Ｚ（距離）＝ｆ（焦点距離）×Ｄ（ステレオ画像距離）／ｄ（視差）  （１３）
【０１１１】
このような計算により、第１の実施形態と同様にして、現実空間における指先の３次元座標位置を求めることができる。ステップＳ２００９、Ｓ２０１０はそれぞれ、上記のステップＳ８０８、Ｓ８０９と同様の処理ステップであるため、これらのステップに係る説明は省略する。
【０１１２】
以上のようにしてステレオカメラで異なる指先の角度に対し、それぞれの角度に応じた輝度分布を補正する事により、カメラ間の指先の見えや反射の異なりを緩和し、二画像間のマッチングによる距離計算の誤差を軽減する事ができる。
【０１１３】
なお本実施形態では、赤外光源及び赤外ステレオカメラを用い、指先の輝度分布の補正を行う例として説明したが、これに限るものではない。例えば、白色光源及びＲＧＢステレオカメラを用い、指先のＲＧＢの各輝度値の補正を行う例であっても良い。
【０１１４】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014186715.tif 000015
【図２】
2014186715.tif 000016
【図３】
2014186715.tif 000017
【図４】
2014186715.tif 000018
【図５】
2014186715.tif 000019
【図６】
2014186715.tif 000020
【図７】
2014186715.tif 000021
【図８】
2014186715.tif 000022
【図９】
2014186715.tif 000023
【図１０】
2014186715.tif 000024
【図１１】
2014186715.tif 000025
【図１２】
2014186715.tif 000026
【図１３】
2014186715.tif 000027
【図１４】
2014186715.tif 000028
【図１７】
2014186715.tif 000029
【図１９】
2014186715.tif 000030
【図２０】
2014186715.tif 000031
【図１５】
2014186715.tif 000032
【図１６】
2014186715.tif 000033
【図１８】
2014186715.tif 000034
【図２１】
2014186715.tif 000035
【図２２】
2014186715.tif 000036