(57)【要約】【課題】従来よりもタッチ操作の検出精度を向上させた画像処理装置を提供する。【解決手段】画像処理装置１００は、ユーザがタッチ操作する操作面までの距離を表す距離画像を取得する距離画像取得部１０１と、距離画像取得部１０１で取得した距離画像を複数に分割した部分領域毎に、距離画像からタッチ操作を検出するための補正パラメータを生成する補正部１０７と、距離画像及び補正パラメータに基づいて、タッチ操作を検出する操作検出部１０３と、を備える。【選択図】図３
2018049498.tif 000002
【特許請求の範囲】
【請求項１】
ユーザがタッチ操作する操作面までの距離を表す距離画像を取得する距離画像取得手段と、
前記距離画像取得手段が取得する前記距離画像を複数に分割した部分領域毎に、前記距離画像から前記タッチ操作を検出するための補正パラメータを生成する補正手段と、
前記距離画像及び前記補正パラメータに基づいて、前記タッチ操作を検出する操作検出手段と、を備えることを特徴とする、
画像処理装置。
【請求項２】
前記部分領域毎に、距離の変動値を計測する距離変動計測手段をさらに備えており、
前記補正手段は、前記部分領域毎の前記変動値に基づいて、前記部分領域毎の前記補正パラメータを生成することを特徴とする、
請求項１記載の画像処理装置。
【請求項３】
複数の前記距離画像に基づいて距離の変動値が所定量以下の静止領域を検出する静止領域検出手段をさらに備えており、
前記距離変動計測手段は、前記静止領域に含まれる前記部分領域の前記変動値を計測することを特徴とする、
請求項２記載の画像処理装置。
【請求項４】
前記補正手段は、前記部分領域毎に、前記変動値に基づいて、タッチ操作を行う指示体が移動した移動領域を検出するための閾値である補正パラメータを生成することを特徴とする、
請求項２又は３記載の画像処理装置。
【請求項５】
前記補正手段は、前記部分領域毎に、前記変動値に基づいて、前記操作面へのタッチを判定するための操作面からの距離の閾値である補正パラメータを生成することを特徴とする、
請求項２〜４のいずれか１項記載の画像処理装置。
【請求項６】
前記補正手段は、前記部分領域毎に、前記変動値に基づいて、タッチ位置の補正値である補正パラメータを生成することを特徴とする、
請求項２〜５のいずれか１項記載の画像処理装置。
【請求項７】
前記補正手段は、前記距離画像の画素毎に、前記距離画像から前記タッチ操作を検出するための補正パラメータを生成することを特徴とする、
請求項１〜６のいずれか１項記載の画像処理装置。
【請求項８】
ユーザがタッチ操作する操作面までの距離を表す距離画像を検出する検出手段と、画像処理装置とを備えた画像処理システムにより実行される方法であって、
画像処理装置が、
前記検出手段が検出した前記距離画像を複数に分割した部分領域毎に、前記距離画像から前記タッチ操作を検出するための補正パラメータを生成して、前記距離画像及び前記補正パラメータに基づいて、前記タッチ操作を検出することを特徴とする、
操作検出方法。
【請求項９】
コンピュータを、
ユーザがタッチ操作する操作面までの距離を表す距離画像を取得する距離画像取得手段、
前記距離画像取得手段が取得する前記距離画像を複数に分割した部分領域毎に、前記距離画像から前記タッチ操作を検出するための補正パラメータを生成する補正手段、
前記距離画像及び前記補正パラメータに基づいて、前記タッチ操作を検出する操作検出手段、
として機能させるためのコンピュータプログラム。
【請求項１０】
請求項９記載のコンピュータプログラムを記憶するコンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザのジェスチャをユーザインタフェースに用いるための画像処理装置に関する。特に、ユーザが指や手、スタイラスペン等の指示体により所定の面上をタッチ操作することで入力を行うユーザインタフェースに関する。
【背景技術】
【０００２】
可視光カメラや赤外線カメラ、距離画像センサ等によりユーザの身体の一部領域（例えば手領域）を検出して、その動きや位置からユーザのジェスチャを認識し、認識したジェスチャを入力操作として認識する入力装置がある。例えば、テーブルのような操作台の表面に画像やＵＩ（User Interface）部品を投影しておき、ユーザが操作台上で投影された画像やＵＩ部品を操作するテーブルトップインタフェースにおいても、ユーザのジェスチャ認識が行われる。この場合、ユーザのジェスチャとして画像やＵＩ部品に対するタッチ操作が認識される。特許文献１は、２つのカメラにより撮像された撮像画像に含まれる手指の３次元座標位置を計測し、計測した手指の３次元座標位置に応じて、手指により操作される位置を示す選択位置確認画像を被操作対象物に表示するシステムを開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２０３１７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
操作台に表示された画像やＵＩ部品に対するタッチ操作では、タッチする指先の位置を正確に検出する必要がある。指先の位置は、カメラや距離画像センサで取得された撮像画像（以下、「距離画像」という。）に基づいて計測される。指先の位置は、カメラや距離画像センサから指先までの距離で表される。この距離の計測誤差は、指先の位置の検出に大きな影響を与える。ステレオカメラや距離画像センサを用いた距離計測方法では、同じ距離となる位置を測定する場合であっても、距離画像によって距離が変動することがある。この変動を吸収するために画像処理装置は、タッチ操作の検出のための移動領域検出やタッチ判定のための閾値を適切に設定する必要がある。タッチ操作の誤検出を削減するためには、距離の変動範囲内にない、余裕のある閾値を設定する必要がある。しかしながら、距離の変動は、指先等の指示体までの距離、カメラや距離画像センサの光軸からのズレ、外光の影響等により、画像中の位置により変動値が異なる。そのために、距離画像中で最も変動値の大きい位置に合わせて閾値を設置しなければならず、タッチ操作の検出精度が低下する。
【０００５】
本発明は、上記課題に鑑みてなされたものであり、従来よりもタッチ操作の検出精度を向上させた画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、ユーザがタッチ操作する操作面までの距離を表す距離画像を取得する距離画像取得手段と、前記距離画像取得手段が取得する前記距離画像を複数に分割した部分領域毎に、前記距離画像から前記タッチ操作を検出するための補正パラメータを生成する補正手段と、前記距離画像及び前記補正パラメータに基づいて、前記タッチ操作を検出する操作検出手段と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、距離画像の部分領域毎にタッチ操作の判定のための補正パラメータを適切に設定することで、タッチ操作の検出精度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】画像処理システムの構成図。
【図２】画像処理装置のハードウェア構成図。
【図３】画像処理装置の機能ブロック図。
【図４】操作を検出する処理を表すフローチャート。
【図５】（ａ）、（ｂ）は距離画像の説明図。
【図６】（ａ）〜（ｅ）は静止領域の説明図。
【図７】（ａ）、（ｂ）は静止領域の距離の変動値の説明図。
【図８】（ａ）〜（ｃ）は移動領域の説明図。
【図９】（ａ）〜（ｃ）は移動領域検出のための補正値の説明図。
【図１０】（ａ）〜（ｅ）は移動領域及び操作位置の高さの説明図。
【図１１】操作検出処理を表すフローチャート。
【図１２】タッチ位置の補正の説明図。
【図１３】（ａ）、（ｂ）は距離変動の算出方法の説明図。
【発明を実施するための形態】
【０００９】
以下、実施の形態を図面を参照しつつ詳細に説明する。
【００１０】
（構成）
図１は、本実施形態の画像処理装置を備える画像処理システムの構成図である。画像処理システムは、画像処理装置１００、画像やＵＩ部品が投影される操作面を有する操作台３０１、可視光カメラ２０５、距離画像センサ２０６、及びプロジェクタ２０７を備える。画像処理装置１００は、可視光カメラ２０５、距離画像センサ２０６、及びプロジェクタ２０７に接続され、各装置の制御装置として機能するパーソナルコンピュータ等の情報処理装置である。
【００１１】
可視光カメラ２０５は、操作台３０１の操作面の可視画像を撮影するように設けられる撮像装置である。可視光カメラ２０５は、操作台３０１の操作面上の物を撮影する。可視光カメラ２０５は、撮影することで取得した可視画像の画像データを画像処理装置１００へ送信する。
【００１２】
距離画像センサ２０６は、操作台３０１の操作面までの距離画像を検出するように設けられる。距離画像センサ２０６は検出した距離画像を表す距離画像データを画像処理装置１００へ送信する。距離画像は、操作面上を移動する物体の検出に用いられる画像であり、距離画像センサ２０６から操作面の全体を画角に含む各画素までの距離を表す。距離画像センサ２０６は、赤外光等の光を照射してその反射時間によって距離を測定するものや、パターン光を照射してその形状から距離を計測するもの、あるいはステレオカメラ等により実現される。また、距離画像センサ２０６は、可視光カメラ２０５と機能を兼ね備えていてもよい。なお、操作面上の物体の移動を検出可能な移動検出装置であれば、距離画像センサ２０６に代えてモーションセンサを用いることも可能である。距離画像は、距離画像センサ２０６からの距離、照射する赤外光の強度、光軸中心からの距離、照明条件等により、同一画素の距離を計測しても、連続して取得した距離画像の各フレームによって、各画素の距離が変動することがある。
【００１３】
プロジェクタ２０７は、画像処理装置１００の制御により、操作台３０１の操作面上に画像やＵＩ部品を投影する表示装置である。可視光カメラ２０５、距離画像センサ２０６、及びプロジェクタ２０７は、画像処理装置１００のユーザインタフェースとして用いることができる。例えばユーザが操作面に投影されたＵＩ部品をタッチ操作する場合、タッチする位置やジェスチャが、距離画像センサ２０６もしくは可視光カメラ２０５により撮像される画像に基づいて検出される。検出結果は画像処理装置１００へ送信される。画像処理装置１００は、距離画像センサ２０６もしくは可視光カメラ２０５の撮像結果に基づいて、ユーザのタッチ操作を判定して、タッチ操作に応じた処理を行うことができる。なお、操作面をディスプレイにより構成して、プロジェクタ２０７を用いずに操作面に画像を表示する構成であってもよい。本実施形態では、画像処理装置１００は、距離画像センサ２０６から取得する距離画像データに基づいて、ユーザのタッチ操作を判定する。
【００１４】
図２は、画像処理装置１００のハードウェア構成図である。画像処理装置１００は、ＣＰＵ（Central Processing Unit）２０１、ＲＯＭ（Read Only Memory）２０２、ＲＡＭ（Random Access Memory）２０３、及び記憶部２０４を備える。画像処理装置１００は、Ｉ／Ｏインタフェース２０８を介して可視光カメラ２０５、距離画像センサ２０６、及びプロジェクタ２０７に接続される。ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、記憶部２０４、及びＩ／Ｏインタフェース２０８は、バスを介して相互に通信可能に接続される。
【００１５】
ＣＰＵ２０１は、ＲＯＭ２０２或いは記憶部２０４からコンピュータプログラムを読み込み、ＲＡＭ２０３を作業領域に用いて実行することで画像処理システム全体の動作を制御する。ＣＰＵ２０１の制御により、可視光カメラ２０５は撮影を行い、距離画像センサ２０６は距離画像を取得し、プロジェクタ２０７は画像を表示する。記憶部２０４は、ハードディスク等の大容量記憶装置であり、コンピュータプログラムの他に、画像処理システムにより処理に用いる各種のデータを保存する。
【００１６】
図３は、画像処理装置１００の機能ブロック図である。画像処理装置１００の各機能は、ＣＰＵ２０１がコンピュータプログラムを実行することで実現される。画像処理装置１００は、距離画像取得部１０１、移動領域検出部１０２、操作検出部１０３、通知部１０４、静止領域検出部１０５、距離変動計測部１０６、及び補正部１０７として機能する。
【００１７】
距離画像取得部１０１は、距離画像センサ２０６から距離画像データを取得する。移動領域検出部１０２は、距離画像取得部１０１で取得した距離画像データによる距離画像に基づいて、操作面上のユーザの手指、スタイラスペン等の指示体が移動した移動領域を検出する。操作検出部１０３は、移動領域の位置、動作に基づいて、ユーザのタッチ操作等の操作を検出する。つまり、移動領域検出部１０２が指示体の動きを検出し、操作検出部１０３が検出された指示体の動きからユーザの操作を検出する。
【００１８】
通知部１０４は、操作検出部１０３が検出した操作を、操作に応じた処理を行う装置に通知する。例えば、通知部１０４は、ＵＩ部品の移動の操作であれば、当該装置に操作内容を通知する。当該装置は、通知に応じて当該ＵＩ部品に操作を反映させ、操作が反映されたＵＩ部品をプロジェクタ２０７により操作台３０１の操作面に表示させる。静止領域検出部１０５は、距離画像データによる距離画像に基づいて静止領域を検出する。静止領域は、距離の変動値が所定量以下の画素である。ユーザの手や指、スタイラスペン等の指示体は、移動するために距離が変動する。そのために距離画像中の指示体の動いた領域は静止領域にならない。距離変動計測部１０６は、複数の距離画像データによる複数の距離画像に基づいて、静止領域の距離の変動値を計測する。補正部１０７は、静止領域の距離変動の計測結果に基づいて、移動領域検出及び操作検出のためのパラメータの補正値を生成する。
【００１９】
（操作検出処理）
図４は、このような構成の画像処理システムによりユーザの操作を検出する処理を表すフローチャートである。ここでは、ユーザの指による操作面のタッチ操作を検出する処理について説明する。
【００２０】
画像処理装置１００は、距離画像取得部１０１により、距離画像センサ２０６から距離画像データを取得する（Ｓ４０１）。図５は、距離画像の説明図である。図５（ａ）は距離画像の例示図である。距離画像は、画像中の各画素の座標（ｘ，ｙ）に対する距離Ｄを含む。なお、操作面がＸＹ平面である。距離画像センサ２０６は、ＴＯＦ（Time-of-Flight）方式やパターン照射方式等によって各画素との距離を計測する。距離画像に基づいてユーザの指が検出される。検出方式は背景差分、パターンマッチング、統計モデル等の手法を用いることができる。ここで検出した指の座標とその距離値（ｘ，ｙ，Ｄ）を実世界座標系（Ｘ，Ｙ，Ｚ）に変換する。図５（ｂ）は実世界座標系の例示図である。距離画像系（ｘ，ｙ，Ｄ）と実世界座標系（Ｘ，Ｙ，Ｚ）との変換式は以下の式１で表される。
【００２１】
【数１】
2018049498.tif 000003
【００２２】
ｒ００〜ｒ２２、ｔ０〜ｔ２、ｆｘ、ｆｙ、ｃｘ、ｃｙは距離画像センサ２０６の設置時にキャリブレーションによって予め求めるパラメータである。各パラメータは、実世界座標(Ｘ，Ｙ、Ｚ)と画像座標（ｘ，ｙ）との対応関係が取れた既知の点がパラメータ数以上あれば、最小二乗法等で予め算出される。
【００２３】
画像処理装置１００は、静止領域検出部１０５により、所定枚数（時系列にＮフレーム（Ｎは２以上の整数））の距離画像を取得したかを判断する（Ｓ４０２）。静止領域検出部１０５は、Ｎフレーム分の距離画像データの取得を判断する。Ｎフレーム分の距離画像データを取得した場合（Ｓ４０２：Y）、静止領域検出部１０５は、取得した複数の距離画像データに基づいて静止領域を検出する（Ｓ４０３）。本実施形態のＳ４０３の処理で検出される静止領域は、最新のフレームにおいて、そのフレームで新たに判明した静止部分である。そのため前フレームで静止領域として検出された部分のうち、距離の変化が生じていない、あるいは距離の変化が小さい部分は、最新のフレームにおいては新たな静止領域として検出されない。図６は、静止領域の説明図である。
【００２４】
図６（ａ）は、距離画像中の操作台画像６０１を表す。操作台３０１には何も表示されておらず、ユーザの手も操作台３０１上にない。静止領域検出部１０５は、距離画像中の距離の値域を制限し、この値域内で、複数の距離画像における距離の変化が小さい領域を、静止領域として検出する。図６（ａ）では、現実の操作台３０１の高さが既知であり、操作台画像６０１の各画素までの距離が一定の範囲内に収まる。そのために静止領域検出部１０５は、操作台画像６０１の全面を静止領域として検出する。静止領域は太枠で囲われる領域である。
【００２５】
図６（ｂ）は、ＵＩ部品を操作可能とした操作可能領域を予め操作台３０１の一部の領域に限定している場合を表す。この場合、静止領域検出部１０５は、操作台画像６０１の一部の領域（太枠内）である操作可能領域の範囲内で静止領域を検出する。
【００２６】
図６（ｃ）は、静止領域検出部１０５が取得する複数フレーム（例えばＮフレーム）分の距離画像において、左下から右方向へ手が動いた場合の静止領域を太枠で表す。各フレームにおいて、静止領域検出部１０５は、直近で静止領域として検出されていた操作台画像６０１からの距離（高さ）の変化が大きい領域として手領域を検出する。各フレームから検出された手領域は、Ｎフレーム間で距離の変化が大きいため、静止領域ではない。また、手領域に含まれない他の部分については、前フレームで静止領域として検出された操作台部分からの距離（高さ）の変化が小さいので、新たな静止領域として検出されない。従って、図６（ｃ）の状態において、静止領域検出部１０５は静止領域を検出しない。
【００２７】
図６（ｄ）は、図６（ａ）のように操作台３０１の全体を予め静止領域として検出した後に、厚みのある本等の物体を操作台３０１上に載置した場合の静止領域を太線で表す。距離画像内の物体は物体画像６０２である。この場合、静止領域検出部１０５は、既に検出した操作台画像６０１から距離が変化した領域で、且つＮフレームの距離画像で距離の変化が小さい領域を静止領域として検出する。つまり静止領域検出部１０５は、物体画像６０２の領域を静止領域として検出する。
【００２８】
図６（ｅ）は、図６（ｄ）の状態で物体に操作のための手が重なった場合を表す。この場合、静止領域検出部１０５は、各フレームで図６（ｄ）から距離変化が大きい手領域を検出する。操作する手は動くので、手領域は、Ｎフレームの距離画像で距離の変化が大きいことから、静止領域として検出されない。さらに、物体画像６０２のうち手領域に含まれない他の部分は、図６（ｄ）から距離の変化が小さいために静止した状態ではあるが、このフレームでの新たな静止領域としては検出されない。
【００２９】
Ｓ４０３の処理において静止領域検出部１０５が新たな静止領域を検出した場合（Ｓ４０４：Y）、距離変動計測部１０６は、検出された静止領域の距離の変動値を計測する（Ｓ４０５）。変動値の計測は、静止領域内の画素毎或いは静止領域を分割した部分領域毎に行われる。本実施形態では、画素毎に行う場合について説明する。図７は、静止領域の距離の変動値の説明図である。
【００３０】
図７（ａ）は、距離画像中の距離の変動値を計測する３点（点Ａ、Ｂ、Ｃ）の位置を表す。操作台３０１の奥側から順に点Ａ、点Ｂ、点Ｃが設定される。各点Ａ、Ｂ、Ｃは、操作台３０１に静止している。図７（ｂ）は、複数の距離画像に基づいて取得した各点Ａ、Ｂ、Ｃの距離を表すグラフである。点Ａ、点Ｂ、点Ｃが静止しているために、本来、各点Ａ、Ｂ、Ｃの距離は、一定である。しかしながら図７（ｂ）に示すように、距離画像センサ２０６の計測誤差により、距離が複数フレーム間で変動する。また、距離画像センサ２０６から測定対象となる画素（点Ａ、Ｂ、Ｃ）までの距離、光軸中心からのズレ、距離画像センサ２０６の投影光強度、外光等により、画素毎に、距離の変動幅が異なる。距離の変動幅は、図７（ｂ）に示すように、距離画像センサ２０６から遠いほど大きくなる。距離変動計測部１０６は、複数の距離画像により計測した画素毎の距離に基づいて、画素毎に距離の標準偏差を算出する。距離変動計測部１０６は、算出した画素毎に距離の標準偏差を、画素毎の距離の変動値としてＲＡＭ２０３に保存する。
【００３１】
補正部１０７は、ＲＡＭ２０３に保存される画素毎の距離の変動値に基づいて、画素毎の補正パラメータを生成する（Ｓ４０６）。補正部１０７は、画素毎に移動領域検出のための補正値、タッチ判定のための補正値、及びタッチ位置の補正値を補正パラメータとして生成する。各補正値（補正パラメータ）の生成処理の詳細は後述する。
【００３２】
Ｎフレーム分の距離画像データを取得していない場合（Ｓ４０２：N）、新たな静止領域を検出していない場合（Ｓ４０４：N）、或いは各補正パラメータの生成後に移動領域検出部１０２は、距離画像から移動領域を検出する（Ｓ４１０）。図８は、移動領域の説明図である。本実施形態では、背景差分法により移動領域を検出する例を示すが、その他に、時系列の距離画像間の差異によるフレーム間差分法や、各画素の距離から変換した高さの絶対値により、移動領域を検出してもよい。図８（ａ）は、移動領域検出部１０２が取得する距離画像の例示図であり、操作台３０１及び操作するユーザの手が距離画像に含まれる。図８（ｂ）は、操作台３０１のみの距離画像の例示図であり、背景画像として用いられる。背景画像は、操作台３０１に何も無い状態で予め撮像された距離画像である。また、背景画像は、Ｓ４０３の処理で静止領域検出部１０５が逐次検出する静止領域から生成されてもよい。図８（ｃ）は、背景差分画像の例示図である。移動領域検出部１０２は、図８（ａ）の取得した距離画像と図８（ｂ）の背景画像とから背景差分画像を生成し、背景差分画像の各画素の距離（可視光カメラ２０５で撮像した画像を用いる場合には輝度値）が閾値以上となる領域を移動領域８０１として検出する。この閾値は、補正部１０７で生成された画素毎の移動領域検出のための補正値である。
【００３３】
移動領域が検出されると、操作検出部１０３は、ユーザによる操作台３０１へのタッチ操作等の操作を検出する（Ｓ４１１）。操作検出部１０３は、例えば図８（ｃ）の移動領域８０１中から指先等の操作位置を検出する。操作位置は、移動領域８０１の中で操作台３０１の外側から最も遠い点の検出や、輪郭形状のパターンマッチングで検出される。操作検出部１０３は、検出した操作位置の距離を距離画像から取得し、画像中の各画素の座標（ｘ，ｙ）及び距離Ｄから、上記の式１により実世界座標（Ｘ，Ｙ，Ｚ）を算出する。操作検出部１０３は、タッチしたかの判定を、算出した高さＺと操作台３０１の高さとの差が閾値以内であるかにより行う。この閾値は、補正部１０７で生成された画素毎のタッチ判定のための補正値である。
【００３４】
タッチ操作の判定後に、通知部１０４はタッチ操作に基づく制御内容を、操作に応じた処理を行う装置に通知する（Ｓ４１２）。画像処理装置１００は、処理を継続する場合にはＳ４０１の処理に戻って、Ｓ４０１以降の処理を繰り返し実行する（Ｓ４１３：Y）。処理を継続しない場合（Ｓ４１３：N）、画像処理装置１００は、処理を終了する。
【００３５】
補正パラメータの生成処理について説明する。上記の通り、補正部１０７は、ＲＡＭ２０３に保存される画素毎の距離の変動値に基づいて、移動領域検出のための補正値、タッチ判定のための補正値、及びタッチ位置の補正値を生成する。
【００３６】
補正部１０７は、移動領域検出のための補正値を生成する（Ｓ４０７）。図９は、移動領域検出のための補正値の説明図である。図９は、図７（ａ）の点Ａ、Ｂ、Ｃにおける距離の変動幅と、その際に設定すべき移動領域検出のための閾値（補正値）との関係を表す。図９（ａ）は、点Ａについての距離の変動幅と、閾値との関係を表す。図９（ｂ）は、点Ｂについての計離の変動幅と、閾値との関係を表す。図９（ｃ）は、点Ｃについての距離の変動幅と、閾値との関係を表す。各点Ａ、Ｂ、Ｃにおいて、距離の変動幅が異なる。各点Ａ、Ｂ、Ｃにおいて、距離の変動幅に含まれないように、移動領域検出のための閾値が設定される。つまり補正部１０７は、画素毎に閾値を設定する。例えば、補正部１０７は、距離の変動値として画素毎にＲＡＭ２０３に保存される標準偏差σにより、ａ＊σ＋ｂ（ａ、ｂは定数）の値を移動領域検出のための閾値（補正値）として設定する。このようにして設定される移動領域検出のための閾値（補正値）は、画素毎の距離の変動値の大きさに応じて、適切な値となる。
【００３７】
補正部１０７は、タッチ判定のための補正値及びタッチ位置の補正値を生成する（Ｓ４０８、Ｓ４０９）。図１０は、タッチ時の距離画像から検出される移動領域及び操作位置の高さの説明図である。
【００３８】
図１０（ａ）は、ユーザが、操作のための手を操作台３０１の操作面に接触させずに浮かせている場合の距離画像を表す。この場合、移動領域検出部１０２は、距離画像では操作台３０１までの距離と手までの距離とが明確に異なるために、手領域全体を移動領域として検出可能である。
【００３９】
図１０（ｂ）は、ユーザが、距離の変動値の小さい領域で操作台３０１にタッチした場合の距離画像を表す。この場合、操作台３０１までの距離と指先までの距離との差が小さくなり、Ｓ４０７の処理で設定される移動領域検出のための閾値よりも、閾値が小さくなる領域が生じる。この領域は、手領域として検出されない。そのために距離画像の手領域は指先が欠ける。タッチした手領域の欠けた指先が、タッチ操作位置１００１となる。タッチ操作位置１００１は、実際のタッチ位置よりも欠けた指先分だけ手領域側の位置になる。
【００４０】
図１０（ｃ）は、ユーザが、距離の変動値の大きい領域で操作台３０１にタッチした場合の距離画像を表す。この場合、Ｓ４０７の処理で設定される移動領域検出のための閾値が大きくなるために、指先の欠けが図１０（ｂ）の場合よりも大きくなり、タッチ操作位置１００２は、タッチ操作位置１００２よりも手領域側の位置になる。
【００４１】
図１０（ｄ）は、ユーザが、距離の変動値の小さい領域で操作台３０１にタッチした場合（図１０（ｂ）の場合）の、操作面と指先との関係を表す。図１０（ｅ）は、ユーザが、距離の変動値の大きい領域で操作台３０１にタッチした場合（図１０（ｃ）の場合）の、操作面と指先との関係を表す。ユーザは、距離の変動値の大きさにかかわらず、操作台３０１の操作面を同様にタッチする。しかし計測した距離の変動値によって、距離画像の手領域の指先の欠ける量が異なる。そのために、操作位置として検出される位置の高さが異なり、単一の高さでタッチ判定を行うと図１０（ｅ）に合わせなければタッチを検出できなくなる。その場合、図１０（ｄ）の位置では指先が多少浮いていてもタッチと判定されることが好ましい。
【００４２】
そのために補正部１０７は、Ｓ４０８の処理で、タッチ判定のための高さを補正するための補正値を生成する。補正部１０７は、画素毎にＲＡＭ２０３に保存される変動値（標準偏差σ）に基づいて、タッチ判定のための補正値を生成する。移動領域検出のための補正値と同様に、補正部１０７は、ｃ＊σ＋ｄ（ｃ、ｄは定数）の値をタッチ判定のための補正値として設定する。このようにして設定されるタッチ判定のための補正値は、画素毎の距離の変動値の大きさに応じて、適切な値に設定される。
【００４３】
補正部１０７は、Ｓ４０９の処理で、タッチ位置の補正値を生成する。図１０（ｂ）、図１０（ｃ）に示すように、距離の変動によって、距離画像の手領域の指先の欠ける量が異なる。そのために、補正部１０７は、指先等の操作位置の方向に対して距離変動に応じたタッチ位置の補正値を生成する。補正部１０７は、画素毎にＲＡＭ２０３に保存される変動値（標準偏差σ）に基づいて、タッチ位置の補正値を生成する。補正値は、標準偏差σに応じて大きくなるように、ｅ＊σ＋ｆ（ｅ、ｆは定数）等の式により算出される。
【００４４】
以上のように補正部１０７は、Ｓ４０６の処理により、画素毎に保存する標準偏差に基づいて、画素毎の移動領域検出のための補正値、タッチ判定のための補正値、及びタッチ位置の補正値を生成する。各補正値（補正パラメータ）は、静止領域内の各画素に対応して生成される。また、この段階では各画素に対して各補正値を生成するのみであり、各補正値は、Ｓ４１０、Ｓ４１１の処理で適用される。
【００４５】
Ｓ４１０の移動領域検出処理では、距離画像中の移動領域が、背景差分法等の手法により検出される。この際、移動領域検出部１０２は、各画素の差分値が閾値よりも大きいか否かに基づいて、移動領域を検出する。この閾値は、Ｓ４０７の処理で生成される補正値が設定されている画素については、該補正値が用いられ、補正値が設定されていない画素については予め設定されている初期閾値が用いられる。
【００４６】
Ｓ４１１の操作検出処理では、タッチ判定のための補正値及びタッチ位置の補正値に基づいて、タッチ操作が検出される。図１１は、ユーザの操作の検出処理（Ｓ４１１の処理）を表すフローチャートである。
【００４７】
操作検出部１０３は、移動領域の操作位置及び操作位置の方向を検出する（Ｓ１１０１）。操作検出部１０３は、図８（ｃ）で説明した移動領域８０１の先端等を操作位置として検出する。また、操作検出部１０３は、移動領域８０１から操作位置の周辺領域の重心に対する操作位置の方向を算出する等の方法で、操作位置の方向を検出する。
【００４８】
操作検出部１０３は、操作位置に対するタッチ判定を行う（Ｓ１１０２）。操作検出部１０３は、操作位置の高さＺが操作台３０１の高さに十分に近いか否かの閾値に応じて、タッチ判定を行う。この際、操作検出部１０３は、操作位置の判定のための閾値に、タッチ判定のための補正値が設定されている画素については該補正値を用い、補正値が設定されていない画素については予め設定されている初期閾値を用いる。
【００４９】
タッチ判定の結果、操作位置に対してタッチが行われていない場合（Ｓ１１０３：Y）、操作検出部１０３は、操作検出処理を終了する。操作位置に対してタッチが行われている場合（Ｓ１１０３：Y）、操作検出部１０３は、移動領域がタッチした位置を操作位置の方向とタッチ位置の補正値に基づいて補正して、操作検出処理を終了する（Ｓ１１０４）。操作検出部１０３は、Ｓ１１０１の処理で検出した操作位置の方向に対して、タッチ位置の補正値に基づいてタッチ位置を移動させる。図１２は、タッチ位置の補正の説明図である。図中、矢印の長さがタッチ位置の移動量に相当し、補正値に応じてこの長さが変化する。なお、タッチ位置の補正は距離画像の座標系で行ってもよく、図５（ｂ）の実世界座標系に基づいて行ってもよい。
【００５０】
以上のような本実施形態の画像処理システムは、複数の距離画像における同一点の距離の変動値を、距離画像の画素或いは距離画像を分割した部分領域毎に計測し、計測した距離の変動値に基づいてタッチ操作検出のための補正パラメータを生成する。生成される補正パラメータは、移動領域の検出のための補正値、タッチ判定のための補正値、タッチ位置の補正値等である。そのために、距離の変動値が距離画像内ので場所によって異なる場合であっても、各場所で適切な補正パラメータが設定され、適切に操作を検出することができる。よって本実施形態の画像処理システムは、従来よりもタッチ操作の検出精度が向上する。
【００５１】
画像処理装置１００は、予め手等の指示体がない状態で操作台３０１の操作面の全体、或いは距離画像全体の各画素における距離の変動値を距離変動計測部１０６で計測し、これに基づいて補正パラメータを生成するように構成されていてもよい。この場合、静止領域検出部１０５が静止領域を検出する必要がなくなる。
【００５２】
補正部１０７は、距離の変動値に基づいて移動領域検出の移動領域検出のための補正値、タッチ判定のための補正値、及びタッチ位置の補正値をすべて生成するが、これに限らず、これらの補正値の少なくとも一つを生成すればよい。画像処理装置１００は、距離の変動値に基づいて少なくとも一つの補正値が画素毎に生成されて操作の検出に用いられる構成であってもよい。
【００５３】
画像処理装置１００は、タッチ操作の検出処理を、画素毎の他に、距離画像を分割した部分領域毎に行ってもよい。部分領域は、例えば距離画像を一定の格子状に区切った領域や、画素間の距離と輝度差の結合によって形成されるスーパーピクセル等の領域である。また、画像処理装置１００は、画素毎に独立して距離の変動値を算出して補正パラメータを生成するが、隣接する画素間で距離の変動値もしくは補正パラメータを移動平均フィルタ等により平滑化することで生成してもよい。
【００５４】
上記では、画像処理装置１００が距離画像センサ２０６から取得する距離画像を用いてタッチ操作を検出する構成を説明した。これに限らず画像処理装置１００は、可視光カメラ２０５をステレオカメラにして取得するステレオ画像から距離画像を生成し、上記と同様の処理によりタッチ操作を検出してもよい。
【００５５】
距離画像センサ２０６は、操作台３０１の操作面に限らず、例えば壁を操作面として、垂直な壁に対する指示体の操作の検出に用いられてもよい。この場合、距離画像センサ２０６は、水平方向に向けられる。
【００５６】
画像処理装置１００は、距離の変動値を計測を、複数枚の距離画像に基づいて行う他に、以下のように行ってもよい。例えば、画像処理装置１００は、静止領域検出部１０５により、Ｍ枚の距離画像から予め静止領域を検出する。その後、画像処理装置１００は、距離変動計測部１０６により、静止領域内の各画素について移動領域が重ならない時系列の距離画像からＮサンプル（好ましくはＭ＜Ｎ）の距離を画素毎に計測して距離の変動値を算出する。図１３は、このような距離の変動値の算出方法の説明図である。
【００５７】
図１３（ａ）は、操作台３０１の操作面上で新たに検出された物体の静止領域１３０１を表す。静止領域１３０１を検出した画像処理装置１００は、その後のフレームにより、静止領域１３０１の各画素の時系列の距離画像からＮサンプルの距離を蓄積する。その間、例えば図１３（ｂ）のようなフレームの距離画像では、静止領域１３０１にかかる手が移動領域として検出される。手が移動領域として検出されるタイミングで、画像処理装置１００の距離変動計測部１０６は、移動領域内の画素の距離を取得せず、移動領域外の画素の距離を取得する。距離変動計測部１０６は、静止領域の全画素でＮ個の距離の値を蓄積した時点で、Ｓ４０５の処理により静止領域の各画素の距離の変動値を計測する。補正部１０７はこの変動値に基づいて、Ｓ４０６の処理により補正パラメータを生成する。
【００５８】
以上のような処理により、画像処理装置１００は、操作台３０１への物体の載置等により距離の変化した静止領域が新たに出現した場合に、距離の変動値を取得するのに十分な数の距離画像を取得する前に、一旦静止領域を確定させる。これにより画像処理装置１００は、操作検出を安定して行うことができる。
【００５９】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018049498.tif 000004
【図２】
2018049498.tif 000005
【図３】
2018049498.tif 000006
【図４】
2018049498.tif 000007
【図５】
2018049498.tif 000008
【図６】
2018049498.tif 000009
【図７】
2018049498.tif 000010
【図８】
2018049498.tif 000011
【図９】
2018049498.tif 000012
【図１０】
2018049498.tif 000013
【図１１】
2018049498.tif 000014
【図１２】
2018049498.tif 000015
【図１３】
2018049498.tif 000016