(57)【要約】【課題】精度よく操作位置を特定することを目的とする。【解決手段】操作面と操作体の距離画像に基づいて、操作体による操作面上の操作位置を特定する情報処理装置であって、操作体から距離画像を取得したセンサまでの距離を表すセンサ距離を特定する距離特定手段と、センサ距離に基づいて、距離画像における部分領域のサイズを決定するサイズ決定手段と、距離画像において、操作体を含み、サイズ決定手段により決定されたサイズの部分領域を特定する領域特定手段と、領域特定手段により特定された部分領域の画素値に基づいて、実空間における操作位置を特定する位置特定手段とを有する。【選択図】図２
2018063555.tif 000002
【特許請求の範囲】
【請求項１】
操作面と操作体の距離画像に基づいて、前記操作体による前記操作面上の操作位置を特定する情報処理装置であって、
前記操作体から前記距離画像を取得したセンサまでの距離を表すセンサ距離を特定する距離特定手段と、
前記センサ距離に基づいて、前記距離画像における部分領域のサイズを決定するサイズ決定手段と、
前記距離画像において、前記操作体を含み、前記サイズ決定手段により決定されたサイズの部分領域を特定する領域特定手段と、
前記領域特定手段により特定された前記部分領域の画素値に基づいて、実空間における前記操作位置を特定する位置特定手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記部分領域において、前記操作体の領域を特定する操作体特定手段をさらに有し、
前記位置特定手段は、前記操作体の領域の画素値に基づいて、前記操作位置を特定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記センサ距離に基づいて、前記操作面上への操作状態を判定するための判定条件を決定する条件決定手段と、
前記条件決定手段により決定された前記判定条件に基づいて、前記操作状態を判定する判定手段と
をさらに有することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記条件決定手段は、前記センサ距離が閾値未満の場合と、前記センサ距離が閾値以上の場合とにおいて異なる判定条件を決定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記条件決定手段は、前記センサ距離が閾値未満の場合には、１つの操作位置に基づいて、前記操作面上への操作の有無を判定する第１の条件を、前記判定条件として決定し、前記センサ距離が閾値以上の場合には、時系列に沿って得られた複数の操作位置に基づいて、前記操作状態を判定する第２の条件を、前記判定条件として決定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記第２の条件は、前記複数の操作位置それぞれと前記操作面の距離とに基づいて、前記操作状態を判定する条件であることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記第２の条件は、前記複数の操作位置の変位履歴に基づいて、前記操作状態を判定する条件であることを特徴とする請求項５に記載の情報処理装置。
【請求項８】
操作面と操作体の距離画像に基づいて、前記操作体による前記操作面上の操作位置を特定する情報処理装置が実行する情報処理方法であって、
前記操作体から前記距離画像を取得したセンサまでの距離を表すセンサ距離を特定する距離特定ステップと、
前記センサ距離に基づいて、前記距離画像における部分領域のサイズを決定するサイズ決定ステップと、
前記距離画像において、前記操作体を含み、前記サイズ決定ステップにおいて決定されたサイズの部分領域を特定する領域特定ステップと、
前記領域特定ステップにおいて特定された前記部分領域の画素値に基づいて、実空間における前記操作位置を特定する位置特定ステップと
を含むことを特徴とする情報処理方法。
【請求項９】
操作面と操作体の距離画像に基づいて、前記操作体による前記操作面上の操作位置を特定する情報処理装置におけるコンピュータを、
前記操作体から前記距離画像を取得したセンサまでの距離を表すセンサ距離を特定する距離特定手段と、
前記センサ距離に基づいて、前記距離画像における部分領域のサイズを決定するサイズ決定手段と、
前記距離画像において、前記操作体を含み、前記サイズ決定手段により決定されたサイズの部分領域を特定する領域特定手段と、
前記領域特定手段により特定された前記部分領域の画素値に基づいて、実空間における前記操作位置を特定する位置特定手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、各種カメラやセンサを使って検出した人の手の動きや位置に応じてＵＩ（ユーザインターフェース）を操作するジェスチャ認識技術による機器操作が広まりつつある。テーブル面に画像やＵＩを映し、その画像やＵＩを手やペン等で触れて操作するテーブルトップインタフェースにおいても、タッチパネルを用いずに、指先やペン先等、所定の操作体の端部がテーブルにタッチした状態を検出する方式が使用され始めている。
【０００３】
特許文献１には、距離センサ等で取得した距離画像において、指先位置を検出する技術が開示されている。特許文献１の技術においては、距離センサ等で取得した距離画像内で、距離値を用いた背景差分法によって背景でない領域（手やペン等の領域）を検出する。さらに、この検出された領域で、距離画像の枠部から距離画像の内側の方向へと伸びている領域を検出し、この検出した領域内で、該枠部から最も遠い位置を指先の位置とする。そして、距離画像で、この指先位置周辺の画素値を平均して、この平均値を指先位置の画素値（距離センサから指先までの距離）とする。上記のように指先位置周辺の画素で平均化処理を行う理由は、指先位置を距離センサ等で測定する時に、測定環境の様々な要因により距離測定ノイズが発生する場合があり、このノイズの影響を軽減するためである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１８６７１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記で記載した画素値の平均化処理を行う場合に、平均化処理の対象となる指先位置周辺の領域の大きさを適切に設定しないと、指先位置の距離値の精度が低くなる。例えば、ユーザが手を指先ポーズの形にして指先位置で操作を行っている場合に、指先位置周辺の領域が大き過ぎると、指先だけではなく手の甲や手首等の部分も平均化処理の対象となってしまい、本来の指先位置の距離値とはズレが生じてしまう。この指先位置の距離値を用いて、座標変換により指先位置の実空間における三次元座標を算出するので、距離にズレがある場合は、当然実空間における三次元座標にもズレが生じてしまう。逆に、指先位置周辺の領域が小さ過ぎると、距離測定ノイズの影響が大きくなるため、指先位置の距離精度が低下する。
【０００６】
本発明は、上記を鑑みてなされたものであり、精度よく操作位置を特定することを目的とする。
【課題を解決するための手段】
【０００７】
そこで、本発明は、操作面と操作体の距離画像に基づいて、前記操作体による前記操作面上の操作位置を特定する情報処理装置であって、前記操作体から前記距離画像を取得したセンサまでの距離を表すセンサ距離を特定する距離特定手段と、前記センサ距離に基づいて、前記距離画像における部分領域のサイズを決定するサイズ決定手段と、前記距離画像において、前記操作体を含み、前記サイズ決定手段により決定されたサイズの部分領域を特定する領域特定手段と、前記領域特定手段により特定された前記部分領域の画素値に基づいて、実空間における前記操作位置を特定する位置特定手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、精度よく操作位置を特定することができる。
【図面の簡単な説明】
【０００９】
【図１】テーブルトップインタフェースシステムを示す図である。
【図２】テーブルトップインタフェースシステムの構成を示す図である。
【図３】メイン処理を示すフローチャートである。
【図４】センサ距離特定処理を示すフローチャートである。
【図５】操作位置特定処理を示すフローチャートである。
【図６】第１の操作判定処理及び第２の操作判定処理の説明図である。
【図７】ユーザの手の状態に応じた情報処理装置の動作の説明図である。
【図８】関数の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面に基づいて説明する。
【００１１】
図１（ａ）は、テーブルトップインタフェースシステムの全体図である。テーブルトップインタフェースシステムは、操作面１０１に投影されたアイテムに対してユーザが行うタッチ操作を認識するシステムである。操作面１０１は、テーブルトップインタフェースのテーブル部分であり、ユーザは、操作面１０１をタッチすることでタッチ操作を入力することが可能である。ただし、操作面１０１にタッチセンサは搭載されておらず、情報処理装置１００は、距離画像センサ１０２により得られた距離画像に基づいてタッチ操作の有無を判定する。さらに、情報処理装置１００は、操作面１０１とユーザが操作する指やペンなどの操作体が実際に操作面１０１に接触したかではなく、接触したとみなせる程度に近接した場合に、タッチ入力中の状態（以下、タッチ状態）と判定する。なお、距離画像とは、各画素の値に、当該距離画像を撮像する撮像手段の基準位置（例えばレンズ中心など）から、当該画素に撮像された被写体表面までの距離に対応する情報が反映された画像である。
【００１２】
本実施形態では、操作面１０１の外周部の上方に、操作面を斜め上方から見下ろすようにして距離画像センサ１０２が設置される。本実施形態において、距離画像センサ１０２が撮像する距離画像の画素値には、距離画像センサ１０２から、操作面１０１あるいはその上方に存在する物体表面までの距離が反映される。撮像された距離画像は、情報処理装置１００に入力される。情報処理装置１００は、距離画像を解析することでユーザの手１０６や操作面１０１等の三次元位置を取得し、入力される操作を認識する。
【００１３】
従って、ユーザは、操作面上の空間（操作面１０１と距離画像センサ１０２の間の空間）のうち、距離画像センサ１０２によって撮像可能な範囲において、手などの所定の物体を動かすことにより空間ジェスチャ操作を入力することが可能である。また、情報処理装置１００は、手などの所定の物体と操作面１０１の近接状態に基づくタッチ操作による入力についても認識することができる。
【００１４】
本実施形態では、距離画像を取得するために、赤外光の反射時間（または反射パターン）によって距離情報を取得する方式の距離画像センサ１０２を利用することとする。ただし、他の例としては、例えばステレオカメラシステムや、赤外光発光素子と赤外受光素子を設置することで距離画像を得ることも可能である。また、操作面１０１を含む空間において、操作体の高さ方向を含む三次元の位置情報が得られる手段であれば、距離画像を撮像する形態に限らず、例えば静電センサや感圧センサや温度センサにより三次元の位置情報を得る方法でも、本実施形態を実施可能である。
【００１５】
また本実施形態においては、可視光カメラ１０３が斜め上方から操作面１０１を見下ろすようにして設置される。情報処理装置１００は、可視光カメラ１０３を制御して、操作面１０１に載置された物体を撮像して、その読み取り画像を得る書画カメラとして機能することができる。従って情報処理装置１００は、可視光カメラ１０３によって得られる可視光画像や、距離画像センサ１０２によって得られる距離画像に基づいて、操作面１０１上の空間に存在する物体を検出し、さらに識別する。検出される物体には、例えば、ユーザの手、紙媒体や本などのドキュメントやその他の立体物を含む。ただし、図１（ａ）に例示するシステムの場合は、距離画像センサ１０２と可視光カメラ１０３の画角には、テーブル周囲に存在するユーザの頭部は含まれない。そのため得られた距離画像では、画像端部がユーザの腕（肩から先の部分）の何処か一部と交差する。
【００１６】
プロジェクタ１０４は、操作面１０１の上面に画像の投影を行う。本システムでは、ユーザは投影された画像に含まれるアイテムに対して、タッチや空間ジェスチャによる操作を行う。上述したように、本実施形態では、情報処理装置１００は、手１０６の検出および操作の認識には、距離画像センサ１０２で取得した距離画像を用いる。距離画像を用いることで、プロジェクタ１０４の投影光の影響でユーザの手の色が変化しても影響を受けにくいという利点がある。本システムの表示装置は、プロジェクタ１０４に替えて、操作面１０１を液晶ディスプレイとするなどで構成することもできる。その場合、可視光画像からの肌色領域を検出するなどして画像から人の手を検出する方式を用いても、投影光の影響は受けずに手の検出が可能である。
【００１７】
なお、操作面１０１を上方から見た画像が得られる構成であれば、必ずしも距離画像センサ１０２及び可視光カメラ１０３自体が上方に設置されている必要はなく、例えばミラーを用いて反射光を撮像するように構成しても構わない。プロジェクタ１０４も同様に、図１（ａ）の例では、斜め上方から見下ろすように操作面１０１上への投影を行うが、異なる方向に向けて投影された投影光を、ミラーなどを利用して操作面１０１に反射させてもよい。操作面１０１が、壁面やホワイトボードのような鉛直方向に沿った面に設置される場合も同様である。
【００１８】
本実施形態では、操作面１０１上の三次元空間に、図１（ａ）に示すｘ、ｙ、ｚ軸を定義し、位置情報を扱う。図１（ａ）の例では、１０７を座標軸の原点とする。ここでは一例として、テーブルの上面に平行な二次元がｘｙ平面、テーブル上面に直交し上方に伸びる方向（法線方向）をｚ軸の正方向としている。本実施形態では、ｚ軸方向は、実空間における世界座標系での高さ方向に相当する。しかしながら本実施形態は、ホワイトボードや壁面など、水平ではない面を操作面１０１とするシステムや、操作面が凹凸を有する場合や、ＭＲを利用して生成された仮想面である場合にも適用可能である。
【００１９】
図１（ｂ）は、距離画像センサ１０２によって撮像された距離画像の一例を示す図である。距離画像１０８は、図１（ａ）に対応している。情報処理装置１００が利用する距離画像は、受光された反射光の位相遅れを計測することで、画素毎に反射するまでにかかった時間に対応する被写体表面までの距離を、画素値に反映させたものである。ただし、ここでは、画素値に反映された距離情報は省略し、被写体のエッジのみを明示する。
【００２０】
本実施形態では、距離画像センサ１０２は操作面１０１を斜め上方から見下ろすように距離画像を撮像するため、距離画像の画素値が表す距離情報は、距離画像センサ１０２から操作面１０１を見下ろす方向の奥行き方向の距離である。言い換えれば、距離画像の各画素値は、操作面１０１からの高さ方向の位置情報（ｚ座標）を得るための情報を含む。ただし、本実施形態では、距離画像センサ１０２は、ｚ軸に対して斜めに角度をもつように設置されている。従って、情報処理装置１００は、距離画像の画素値をそのままｚ座標として利用するのではなく、後述するようにセンサや設置環境に応じたパラメータを使った座標変換を施した上で利用する。
【００２１】
操作面１０１及び原点１０７は図１（ａ）に対応している。画像端１１１は、距離画像センサ１０２の画角に相当する。距離画像には、図１（ｂ）に示すようにｕ軸及びｖ軸による二次元座標系が設定される。なお図１（ｂ）の例では、距離画像の解像度は６４０［ｄｏｔ］×４８０［ｄｏｔ］とする。ユーザの手の先端部である操作位置１１０の距離画像内の位置座標が（ｕ，ｖ）であり、距離画像センサ１０２から操作位置までの距離に相当する画素値がｄであるとする。
【００２２】
情報処理装置１００は、このように距離画像内で定義される位置情報に対して、距離画像センサ１０２のレンズ特性および操作面１０１との相対位置関係等に基づく座標変換を施す。これにより、情報処理装置１００は、各画素の座標をテーブルに定義された実世界上の座標系にマッピングし、操作位置１１０について、実空間の三次元位置（ｘ，ｙ，ｚ）を取得することができる。なお、座標変換に利用する変換行列は、距離画像センサ１０２が設置された時等において、予め調整作業が行われ、情報処理装置１００に設定されているものとする。
【００２３】
１０９の斜線で示す領域は、距離画像１０８に写っているユーザの手１０６の像である（以下では単に手領域１０９という）。情報処理装置１００は、ｚ座標に閾値処理を施すことで、テーブル表面である操作面１０１より高い位置に存在する被写体が写る領域を、手領域として検出する。情報処理装置１００は、検出される手領域のそれぞれに対して１箇所の操作位置を検出する。操作位置とは、ユーザが手指を使って指し示していると推定される位置の座標である。情報処理装置１００においては、前提として、ユーザがタッチ操作のために点を指定する場合には、１本だけ指を伸ばした「指さしポーズ」を取ることが規定される。１本指を延ばすポーズが、多くの人にとっては１点を指し示すのに自然な体勢だからである。
【００２４】
従って、情報処理装置１００は、操作位置として、手領域１０９のうち端部だと推定される位置を特定する。指差しポーズであれば、端部が操作位置に相当する。情報処理装置１００は、具体的には、距離画像から、手領域１０９を検出し、手領域１０９のうち画像端１１１から最も遠い位置に存在する画素を示す座標を、操作位置にあたる１点とみなす。図１（ｂ）に示される手領域１０９の場合、画像端１１１から最も遠い点が操作位置１１０として特定される。なお、操作位置の特定方法はこれに限らず、例えば、手領域から手の五指を検出して、所定の指の端部を特定して操作位置としてもよい。
【００２５】
また情報処理装置１００は、フレームレートに従い繰り返し撮像される距離画像の各フレームで、手領域１０９が画像端１１１と交差する部分の中央を、手の侵入位置として特定する。図１（ｂ）に示す手領域１０９に対しては、侵入位置１１２が特定される。情報処理装置１００は、侵入位置１１２についても、距離画像内に定義された位置情報を変換することで、実空間内での三次元位置情報として取得する。情報処理装置１００は、距離画像から複数の手領域が検出された場合、そのそれぞれについて、操作位置及び侵入位置を特定する。そして、情報処理装置１００は、複数の手領域のそれぞれについてタッチ操作を認識する。
【００２６】
以下、本明細書ではユーザがタッチ操作の入力に用いる操作体及びその端部の一例として、ユーザの手１０６及びその指が利用されること想定する。ただし、本実施形態では操作体として、手指だけでなくスタイラスやロボットアームなどの器具を利用する場合にも適用可能である。なお操作体の端部とは、タッチ操作のために操作位置を指し示すのに用いられる部位を示すが、操作体の一部に属し、タッチ操作の入力が可能な部位であれば、突起形状の端部に限定せずともよい。
【００２７】
図２（ａ）は、情報処理装置１００を含むテーブルトップインタフェースのハードウェア構成図である。中央処理ユニット（ＣＰＵ）２００は、ＲＡＭ２０２をワークメモリとして、ＲＯＭ２０１や記憶装置２０３に格納されたＯＳやプログラムを実行して、各種処理の演算や論理判断などを行う。ＣＰＵ２００は、さらにシステムバス２０４に接続された各構成を制御する。記憶装置２０３は、ハードディスクドライブや各種インタフェースによって接続された外部記憶装置などであり、実施形態の操作認識処理にかかるプログラムや各種データを記憶する。なお、後述する情報処理装置１００の機能や処理は、ＣＰＵ２００がＲＯＭ２０１又は記憶装置２０３に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。
【００２８】
距離画像センサ１０２は、ＣＰＵ２００の制御に従い、アイテムが表示されるテーブルとアイテムを操作するユーザの手を含む、操作面１０１上の空間の距離画像を撮像し、撮影した距離画像をシステムバス２０４に出力する。本実施形態では、距離画像の取得方法として、環境光やテーブル面の表示の影響が小さい反射時間方式（Ｔｉｍｅ−ｏｆ−Ｆｌｉｇｈｔ方式）を用いる場合について説明するが、用途に応じて視差方式や赤外パターン方式などを利用することも可能である。プロジェクタ１０４は、ＣＰＵ２００の制御に従い、テーブルに操作対象となる画像アイテムを投影表示する。
【００２９】
なお上述したシステムでは、可視光カメラ１０３、距離画像センサ１０２、プロジェクタ１０４はそれぞれ情報処理装置１００に入出力用のインタフェースを介して接続された外部装置であり、情報処理装置１００と協同して情報処理システムを構成する。ただし、これらのデバイスは、情報処理装置１００に一体化されていても構わない。なお、距離画像センサ１０２は、静電センサや感圧センサや温度センサ等でもよく、操作位置の三次元の位置情報や操作位置の接触圧力や接触面積等の接触情報を取得する。
【００３０】
図２（ｂ）は、情報処理装置１００のソフトウェアの構成を示すブロック図の一例である。これらの各機能部は、ＣＰＵ２００が、ＲＯＭ２０１に格納されたプログラムをＲＡＭ２０２に展開し、後述する各フローチャートに従った処理を実行することで実現されている。そして、各処理の実行結果をＲＡＭ２０２に保持する。また例えば、ＣＰＵ２００を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００３１】
距離取得部２１０は、距離画像センサ１０２によって撮像された距離画像をフレームレートに従う一定時間毎に取得し、ＲＡＭ２０２に随時保持する。なお距離取得部２１０が取得し、各機能部とやりとりする対象は、実際には画像データに対応する信号であるが、本明細書では単に「距離画像を取得する」として説明する。
【００３２】
操作位置特定部２１１は、距離取得部２１０によって取得された距離画像の各画素について、距離情報に基づく閾値判定を施し、距離画像中の手領域（腕を含む）を検出する。手領域とは、入力された距離画像のうち、ユーザが操作体として利用する手が被写体として写っている画素群である。そして、操作位置特定部２１１は、検出した手領域にＩＤを付与し、ＲＡＭ２０２に保持する。操作位置特定部２１１は、異なる距離画像のフレームで検出された手領域が、同一の手領域とみなされた場合には、同じＩＤを付与する。同一の手領域とみなされる条件とは、時間的に近い距離画像のフレームで検出され、かつ手領域の侵入位置１１２の距離が近いことである。一方、同一の手領域とみなされない場合には、操作位置特定部２１１は、手領域が検出された順番に数字を付与する（ＩＤ＝１、２、・・・）。
【００３３】
さらに、操作位置特定部２１１は、検出された手領域の輪郭情報に基づき、手領域の端部に当たる１点を操作位置として特定する。具体的には、操作位置特定部２１１は、手領域の輪郭のうち、画像端１１１から最も遠くに存在する画素を示す座標を、操作位置として検出する。この際、操作位置特定部２１１は、手領域と画像端１１１が交差する部分の中心を手領域の侵入位置とし、この侵入位置から最も遠くに存在する画素を示す座標を、操作位置として検出する。そして、操作位置特定部２１１は、検出された操作位置の距離画像における位置情報を、世界座標のｘｙｚ座標に変換し、手領域と同じＩＤを付与して、ＲＡＭ２０２に保存する。
【００３４】
なお、操作位置特定部２１１は、静電センサや感圧センサ等により、操作面１０１に近接する指先位置の三次元の位置情報（座標値）や接触情報（接触圧力や接触面積等）を取得し、操作位置情報としてＲＡＭ２０２に保存してもよい。
【００３５】
第１の決定部２１２は、距離取得部２１０により取得された距離に基づいて、操作位置特定部２１１が操作位置を取得するために用いる距離画像における部分領域を決定する。詳細は図５を参照しつつ後述する。第２の決定部２１３は、距離取得部２１０により取得された距離画像に基づいて、判定部２１４が操作位置と操作面１０１のタッチ状態を判定する判定方法を決定する。詳細は図３を参照しつつ後述する。
【００３６】
判定部２１４は、操作位置の操作面１０１に対する近接の度合いに応じて、操作位置における操作状態を判定し、判定結果と操作位置とに基づいて、操作位置における操作を認識する。ここで、操作状態は、タッチ状態とリリース状態を含む。判定部２１４は、操作状態の判定結果をＲＡＭ２０２に保存する。判定部２１４は、例えば、操作位置と操作面１０１の間の距離（高さに相当するｚ座標）が所定の閾値より小さい場合は、タッチ状態と判定する。そして、判定部２１４は、タッチ状態で、操作位置により指示された操作面１０１上の位置を追跡することで、タッチ、リリース、ムーブ、フリック、ピンチ、ローテート等のタッチイベントを生成する。そして、判定部２１４は、生成したタッチイベントを表示制御部２１５に通知する。ただし、操作位置により指示された操作面１０１上の位置は、操作位置の操作面に平行な二次元の位置情報（ｘｙ座標）とする。
【００３７】
表示制御部２１５は、判定部２１４により通知されるユーザ操作に応じて実行される各処理の結果（タッチイベント等）を反映した描画データを生成し、プロジェクタ１０４に出力することで、操作面１０１に表示する内容を制御する。ユーザ操作とは、操作位置や操作位置の動き等によって定義され、情報処理装置１００に対して何らかの指示を入力することができるものである。
【００３８】
図３は、情報処理装置１００のメイン処理の流れを表すフローチャートである。情報処理装置１００は、電源がオンになると、メイン処理を開始する。Ｓ３０１において、表示制御部２１５は、記憶装置２０３から取得したデータに基づいてＵＩ部品を配置した画面を生成し、プロジェクタ１０４へ出力する。そして、プロジェクタ１０４が操作面１０１の上面に画面を投影する。次に、Ｓ３０２において、距離取得部２１０は、距離画像センサ１０２から距離画像を取得する。なお、距離画像センサ１０２は、情報処理装置１００の電源がＯＮになっている間、操作面１０１の上面の操作領域の距離画像を、所定の時間間隔で撮像する。
【００３９】
次に、Ｓ３０３において、操作位置特定部２１１は、ユーザの手領域（腕を含む）を検出する。操作位置特定部２１１は、手領域が検出された場合（Ｓ３０３、Ｙｅｓ）、処理をＳ３０４へ進める。操作位置特定部２１１は、手領域が検出されなかった場合（Ｓ３０３、Ｎｏ）、処理をＳ３０２へ進め、手領域が検出されるまでＳ３０２とＳ３０３の処理を繰り返す。Ｓ３０４において、操作位置特定部２１１は、Ｓ３０３で検出した手領域にＩＤを付与し、ＲＡＭ２０２に保存する。次に、Ｓ３０５において、操作位置特定部２１１は、Ｓ３０３で検出された手領域の、距離画像における操作位置（指先位置）を特定し、特定した操作位置に手領域と同じＩＤを付与して、ＲＡＭ２０２に保存する。
【００４０】
Ｓ３０６において、距離取得部２１０は、Ｓ３０５で取得された操作位置から距離画像センサ１０２までの距離を表す情報をセンサ距離として特定する。なお、センサ距離は、絶対値であるものとするが、他の例としては、所定の長さを基準とした相対値であってもよい。図４は、センサ距離特定処理（Ｓ３０６）における詳細な処理を示すフローチャートである。Ｓ４０１において、距離取得部２１０は、指先位置を中心とする、予め定められたサイズの矩形領域を距離画像に設定する。次に、Ｓ４０２において、距離取得部２１０は、Ｓ４０１において設定された矩形領域に含まれる手領域を特定する。次に、Ｓ４０３において、距離取得部２１０は、Ｓ４０２で特定された矩形領域内の手領域に含まれる複数の画素の画素値の平均値を算出する。そして、距離取得部２１０は、平均値を、距離画像センサと指先位置の間の距離として、ＲＡＭ２０２に保存する。以上で、センサ距離特定処理が終了する。
【００４１】
図３に戻り、Ｓ３０６の処理の後、Ｓ３０７において、操作位置特定部２１１は、Ｓ３０５で特定された操作位置の実世界座標における位置情報を特定する。図５は、操作位置特定処理（Ｓ３０７）における詳細な処理を示すフローチャートである。Ｓ５０１において、操作位置特定部２１１は、センサ距離に基づいて、正方形の部分領域のサイズを決定する。ここで、部分領域は、実空間における操作位置を特定する処理において用いられる領域である。Ｓ５０１の処理は、サイズ決定処理の一例である。なお、本実施形態においては、部分領域は、正方形であり、Ｓ５０１においては、部分領域の幅の長さをサイズとして決定することとする。なお、本実施形態においては、部分領域は正方形であるものとするが、操作位置の近傍の領域を定義できる形状であればよく、任意の形でよい。またＳ５０１においては、部分領域のサイズを決定可能な値を決定すればよい。
【００４２】
次に、Ｓ５０２において、操作位置特定部２１１は、距離画像において、指先位置を中心とした、Ｓ５０１で決定したサイズの部分領域を特定する。Ｓ５０２の処理は、部分領域を特定する領域特定処理の一例である。なお、部分領域は、指先位置を含み、Ｓ５０１で決定したサイズの領域であればよく、実施形態に限定されるものではない。次に、Ｓ５０３において、操作位置特定部２１１は、Ｓ５０２において特定された部分領域においてＳ３０３で検出された手領域を特定する。ここで、手領域は操作体の領域の一例であり、Ｓ５０３の処理は、操作体特定処理の一例である。
【００４３】
次に、Ｓ５０４において、操作位置特定部２１１は、Ｓ５０３において特定した手領域に含まれる複数の画素の画素値の平均値を算出し、平均値を距離画像の操作位置のｄの値とする。操作位置特定部２１１は、このｄ値と、Ｓ３０５において特定された操作位置（ｕ，ｖ）を用いて、距離画像において定義されるｕｖｄ座標における操作位置を、実空間において定義される座標系ｘｙｚ座標における操作位置に変換する。この座標変換は、距離画像センサ１０２のレンズ特性及び操作面１０１との相対位置関係等に基づいて行われる。なお、この座標変換に利用される変換行列は、距離画像センサ１０２が設置された時に、予め調整作業を行い取得し、情報処理装置１００に設定しておくものとする。そして、操作位置特定部２１１は、操作位置（ｘ，ｙ，ｚ）をＲＡＭ２０２に保存する。以上で、操作位置特定処理が終了する。
【００４４】
図３に戻り、Ｓ３０７の処理の後、Ｓ３０８において、判定部２１４は、Ｓ３０６において特定したセンサ距離と距離閾値とを比較する。判定部２１４は、センサ距離が距離閾値以上の場合には（Ｓ３０８、Ｙｅｓ）、操作判定処理として第１の操作判定処理を行うことを決定し、処理をＳ３１０へ進める。判定部２１４は、センサ距離が距離閾値未満の場合には（Ｓ３０８でＮｏ）、操作判定処理として第２の操作判定処理を行うことを決定し、処理をＳ３０９へ進める。
【００４５】
ここで、第１の操作判定処理及び第２の操作判定処理は、いずれも操作状態を判定する判定処理の一例である。但し、第１の操作判定処理と第２の操作判定処理においては、判定に用いる判定条件が異なる。第１の操作判定処理においては、第１の条件が用いられ、第２の操作判定処理においては、第２の条件が用いられる。第１の判定条件は、Ｓ３０７において特定された１つの操作位置に基づいて、操作状態を判定するための判定条件である。また、第２の判定条件は、Ｓ３０７において特定された操作位置と、この操作位置から時系列に沿って過去に遡って得られた複数の操作位置に基づいて、操作状態を判定するための判定条件である。ここで、Ｓ３０８の処理は、判定条件を決定する条件決定処理の一例である。
【００４６】
Ｓ３０９において、判定部２１４は、第１の操作判定処理を行うことにより操作状態を判定し、その判定結果をＲＡＭ２０２に保存し、その後処理をＳ３１１へ進める。また、Ｓ３１０においては、判定部２１４は、第２の操作判定処理を行うことにより操作状態を判定し、その結果をＲＡＭ２０２に保存し、その後処理をＳ３１１へ進める。
【００４７】
図６は、第１の操作判定処理（Ｓ３０９）及び第２の操作判定処理（Ｓ３１０）の説明図である。図６（ａ）〜（ｃ）は、いずれもＸＹ平面の一部である操作面１０１上の空間を、Ｚ軸に直行する方向から見た図である。白丸は、Ｓ３０７において特定された操作位置を示す。時系列に沿って得られた複数の操作位置の軌跡が、時間軸ｔに沿って示されている。
【００４８】
図６（ａ）は、第１の操作判定処理（Ｓ３０９）の説明図である。第１の操作判定処理に係る第１の条件は、以下の２つの条件を含む。
・操作位置の高さＺの値が、タッチ閾値以下となった場合に、タッチ状態と判定する。
・操作位置の高さＺの値が、リリース閾値以上となった場合に、リリース状態と判定する。
第１の操作判定処理において利用されるタッチ閾値とリリース閾値は、ＸＹ平面からの高さＺの値で、情報処理装置１００において予め設定されているものとする。また、図６（ａ）に示すように、本実施形態においては、第１の操作判定処理において利用されるリリース閾値は、タッチ閾値に比べて大きい値であるものとする。
【００４９】
なお、判定部２１４は、リリース状態からタッチ状態に移行した場合に、タッチイベントを発行してもよい。同様に、判定部２１４は、タッチ状態からリリース状態に移行した場合に、リリースイベントを発行してもよい。なお、タッチ閾値とリリース閾値は等しい値であってもよい。
【００５０】
図６（ｂ）は、第２の操作判定処理（Ｓ３１０）の説明図である。第２の操作判定処理に係る第２の条件について説明する。第２の条件は、以下の２つの条件を含む。
・操作位置の高さＺの値が、Ｎ回連続してタッチ閾値以下となった場合に、タッチ状態と判定する。
・操作位置の高さＺの値が、Ｍ回連続してリリース閾値以上となった場合に、リリース状態と判定する。
本実施形態においては、Ｎ及びＭはいずれも「３」とするが、いずれも任意の値であればよい。また、第２の操作判定処理において利用されるタッチ閾値とリリース閾値は、等しいＺ値であるものとするが、タッチ閾値とリリース閾値は異なるＺ値であってもよい。
【００５１】
このように、第２の条件は、時系列に沿って得られた複数の操作位置に対する複数回の閾値判定結果に基づいて操作状態を判定するものである。したがって、距離測定ノイズが発生し得る状況においても、操作状態の誤判定を低減することができる。
【００５２】
なお、判定部２１４は、リリース状態からタッチ状態に移行した場合に、タッチイベントを発行してもよい。同様に、判定部２１４は、タッチ状態からリリース状態に移行した時に、リリースイベントを発行してもよい。また、タッチイベントに付与するタッチ座標は、タッチ状態となった時の操作位置の座標とする。一方、リリースイベントに付与するリリース座標は、リリース状態となった時の操作位置から、（Ｍ−１）回前の操作位置の座標とする。このように、タッチ及びリリースそれぞれのイベントに付与するタッチ及びリリース座標を、各々の閾値を超えた操作位置の内で操作面に最も近い操作位置とする。これにより、操作面に対する操作におけるユーザの操作感に近い操作認識を行うことができ、操作感を向上できる。
【００５３】
図６（ｃ）は、第２の操作判定処理（Ｓ３１０）の他の例の説明図である。本例に係る第２の条件は、以下の２つの条件を含む。
・操作位置の高さＺの値がタッチ閾値以下となり、かつＮ回前までの操作位置のＺ値の変位が全てマイナスとなる場合に、タッチ状態と判定する。
・操作位置の高さＺの値がリリース閾値以上となり、かつＭ回前までの操作位置のＺ値の変位が全てプラスとなる場合に、リリース状態と判定する。
本例においては、Ｎ及びＭはいずれも「２」とするが、いずれも任意の値であればよい。
また、本例においては、タッチ閾値とリリース閾値は、異なるＺ値であるものとするが、タッチ閾値とリリース閾値は、等しいＺ値であってもよい。
【００５４】
このように、本例に係る第２の条件は、時系列に沿って得られた複数の操作位置における変位履歴に基づいて、操作状態を判定するものである。したがって、距離測定ノイズが発生し得る状況においても、操作状態の誤判定を低減することができる。
【００５５】
なお、本例においても、判定部２１４は、リリース状態からタッチ状態に移行した場合にタッチイベントを発行し、タッチ状態からリリース状態に移行した場合に、リリースイベントを発行してもよい。
【００５６】
図３に戻り、Ｓ３１１において、判定部２１４は、操作位置と判定結果とに基づいて、操作位置における操作を認識する。次に、Ｓ３１２において、表示制御部２１５は、Ｓ３１１において認識された操作に応じて、プロジェクタ１０４によって投影されている画面中のオブジェクト（画像、データ、ＵＩ等）の表示を更新する。次に、Ｓ３１３において、ＣＰＵ２００は、情報処理装置１００の電源がオフされたか否かを判定する。ＣＰＵ２００は、電源がオフされた場合には（Ｓ３１３、Ｙｅｓ）、処理を終了する。ＣＰＵ２００は、電源がオフされていない場合には（Ｓ３１３でＮｏ）、処理をＳ３０２へ進める。
【００５７】
次に、図７（ａ）、（ｂ）を参照して、ユーザの手の状態に応じた情報処理装置１００による動作を説明する。なお、特徴的な処理が行われるステップの番号を括弧書きで示す。図７（ａ）、（ｂ）は、２人のユーザが操作面１０１の上空に手を差し伸べてから、指先を操作面１０１に接触（もしくは近接）させてタッチ操作を入力する様子である。図７（ａ）、（ｂ）は、距離画像センサ１０２により撮像された距離画像である（Ｓ３０２）。そして、操作位置特定部２１１は、距離画像において２つの手領域（８０１、８０２）を検出し（Ｓ３０３）、手領域８０１にＩＤ＝１、手領域８０２にＩＤ＝２を付与する（Ｓ３０４）。そして、操作位置特定部２１１は、距離画像における各手領域の侵入位置と操作位置を特定する（Ｓ３０５）。手領域８０１に対しては、侵入位置８０３と操作位置８０４が特定される。一方、手領域８０２に対しては、侵入位置８０５と操作位置８０６が特定される。
【００５８】
そして、距離取得部２１０は、操作位置を中心として４０×４０［ｐｉｘｅｌ］の矩形領域を設定する（Ｓ４０１）。図７（ａ）においては、操作位置８０４を中心に矩形領域８０７が設定され、操作位置８０６を中心に矩形領域８０８が設定される。次に、距離取得部２１０は、設定された矩形領域内の手領域を特定する処理を、矩形領域８０７、８０８それぞれに対して行う（Ｓ４０２）。次に、距離取得部２１０は、各矩形領域８０７、８０８の手領域の画素値の平均値を算出する（Ｓ４０３）。矩形領域８０７における選択画像の平均値は８７．５で、矩形領域８０８における選択画像の平均値は６４１．３である。これらの値から、操作位置８０４におけるセンサ距離は８７．５［ｍｍ］で、操作位置８０６におけるセンサ距離は６４１．３［ｍｍ］となる。
【００５９】
次に、操作位置特定部２１１は、センサ距離に基づいて、部分領域のサイズを決定する（Ｓ５０１）。このとき、操作位置特定部２１１は、図８に示すような関数を利用する。図８に示すグラフは、横軸がセンサ距離、縦軸が領域の幅の長さである。操作位置特定部２１１は、図８に示す関数と、操作位置８０４におけるセンサ距離８７．５［ｍｍ］とに基づいて、部分領域の幅を２７［ｍｍ］に決定する。また、操作位置特定部２１１は、操作位置８０６におけるセンサ距離６４１．３［ｍｍ］に基づいて、部分領域の幅を８［ｍｍ］に決定する。
【００６０】
次に、操作位置特定部２１１は、距離画像において部分領域を設定する（Ｓ５０２）。図７（ｂ）に示すように、操作位置８０４を中心に２７×２７［ｐｉｘｅｌ］の大きさの部分領域８０９が設定され、操作位置８０６を中心に８×８［ｐｉｘｅｌ］の大きさの部分領域８１０が設定される。次に、操作位置特定部２１１は、部分領域内の手領域を特定する処理を、部分領域８０９、８１０のそれぞれに対して行う（Ｓ５０３）。
【００６１】
次に、操作位置特定部２１１は、各部分領域８０９、８１０の手領域の画素値の平均値を算出し、平均値を用いて実空間における三次元位置を特定する（Ｓ５０４）。例えば、部分領域８０９の平均値として８８が算出され、部分領域８１０の平均値として６４５が算出される。この場合、操作位置８０４におけるセンサ距離は８８［ｍｍ］で、操作位置８０６におけるセンサ距離は６４５［ｍｍ］となる。このように、距離画像内における操作位置を基準とし、センサ距離を特定するために参照する部分領域を適切に設定することで、センサ距離算出を高い精度で行うことができる。
【００６２】
そして、操作位置特定部２１１は、図８（ｂ）に示す矩形領域を用いて取得された距離と、Ｓ３０５で取得された操作位置の座標（ｕ，ｖ）を座標変換し、操作位置８０４及び操作位置８０６の実空間における三次元座標を特定する。
【００６３】
次に、判定部２１４は、操作位置の操作面１０１に対する操作状態の判定処理を行う（Ｓ３０８〜３１０）。Ｓ３０９における距離閾値は５００［ｍｍ］に設定されているとする。これに対し、操作位置８０４の距離は、８７．５[ｍｍ]であるため、距離閾値未満と判定され、第１の操作判定処理が施される。また、操作位置８０６の距離は、６４１．３［ｍｍ］であるため、距離閾値以上と判定され、第２の操作判定処理が施される。次に、判定部２１４は、操作位置と操作状態の判定結果とに基づいて、操作認識を行う（Ｓ３１１）。次に、表示制御部２１５は、Ｓ３１１における認識結果に基づいて、表示を更新する（Ｓ３１２）。
【００６４】
以上のように、本実施形態に係る情報処理装置１００は、センサ距離に基づいて、適切な部分領域のサイズを決定することにより、精度よくセンサ距離を特定することができる。これにより、精度よく操作位置を特定することができる。さらに、情報処理装置１００は、センサ距離に応じて、異なる判定条件を用いて操作状態を判定することにより、精度よく操作状態を判定することができる。
【００６５】
なお、情報処理装置１００は、センサ距離に応じて、異なる複数の判定条件に応じた処理を行えばよく、判定条件の数は２つに限定されるものではない。
【００６６】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００６７】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６８】
１００  情報処理装置
２１０  距離取得部
２１１  操作位置特定部
２１４  判定部
【図１】
2018063555.tif 000003
【図２】
2018063555.tif 000004
【図３】
2018063555.tif 000005
【図４】
2018063555.tif 000006
【図５】
2018063555.tif 000007
【図６】
2018063555.tif 000008
【図７】
2018063555.tif 000009
【図８】
2018063555.tif 000010