(57)【要約】【課題】可視光カメラや赤外線カメラ、３次元距離センサなどを用いてユーザの手指の３次元座標を検出する場合、その３次元位置の精度には限界がある。【解決手段】操作面上を撮影して第１の画像データを取得し、その第１の画像データに基づいて、前記操作面上のユーザによるジェスチャーを認識する。操作面上でユーザの操作によりタッチされた位置の座標を取得するタッチパネルセンサがあるかどうかを判定し、操作面上にタッチパネルセンサがあると判定すると、認識したユーザのジェスチャーではなく、タッチパネルセンサが検出した位置の座標に基づいて、ユーザの操作によりタッチされた操作面上の位置の座標を特定する。【選択図】  図１１
2017117373.tif 000002
【特許請求の範囲】
【請求項１】
操作面上を撮影して第１の画像データを取得する画像取得手段と、
前記第１の画像データに基づいて、前記操作面上のユーザによるジェスチャーを認識する認識手段と、
前記操作面上でユーザの操作によりタッチされた位置の座標を取得するタッチパネルセンサがあるかどうかを判定する判定手段と、
前記判定手段が、前記操作面上に前記タッチパネルセンサがあると判定すると、前記認識手段が認識したユーザのジェスチャーではなく、前記タッチパネルセンサが検出した位置の座標に基づいて、前記ユーザの操作によりタッチされた前記操作面上の位置の座標を特定する制御手段と、
を有することを特徴とする操作装置。
【請求項２】
前記画像取得手段は、可視光カメラ、赤外線カメラ、及び３次元距離センサを含むことを特徴とする請求項１に記載の操作装置。
【請求項３】
前記第１の画像データは、各画素のＲ、Ｇ、Ｂの値と、各画素の前記赤外線カメラからの距離とを含むことを特徴とする請求項２に記載の操作装置。
【請求項４】
前記認識手段は、前記第１の画像データから前記ユーザの手の形状を検出し、当該手の形状から当該ユーザの指の個数と当該指が指示する座標、及び当該指によるジェスチャーを認識することを特徴とする請求項１乃至３のいずれか１項に記載の操作装置。
【請求項５】
前記認識手段は、前記指と前記操作面との距離が所定値以下の場合に、前記ユーザの指によるジェスチャーは、当該指によるタッチ操作であると認識することを特徴とする請求項４に記載の操作装置。
【請求項６】
前記第１の画像データに基づいて、前記操作面上に物体が載置されているか否かを検知する物体検知手段を、更に有することを特徴とする請求項１乃至５のいずれか１項に記載の操作装置。
【請求項７】
前記物体検知手段は、前記操作面の初期画像と、前記第１画像データの差分値が所定値以上の状態が複数フレーム連続したときに前記操作面上に物体が載置されていると検知することを特徴とする請求項６に記載の操作装置。
【請求項８】
前記制御手段は更に、前記判定手段が、前記操作面上に前記タッチパネルセンサがあると判定した場合であっても、前記物体検知手段が前記操作面上に物体が載置されていると検知した領域に対しては、前記認識手段により認識されたジェスチャーの座標に基づいて、前記ユーザの操作によりタッチされた前記操作面上の位置の座標を特定することを特徴とする請求項６又は７に記載の操作装置。
【請求項９】
前記制御手段は更に、前記判定手段が、前記操作面上に前記タッチパネルセンサがあると判定した場合であって、かつ前記物体検知手段が前記操作面上に物体が載置されていると検知した領域以外の操作平面に対しては、前記タッチパネルセンサが検出した位置の座標に基づいて、前記ユーザの操作によりタッチされた前記操作面上の位置の座標を特定することを特徴とする請求項６乃至８のいずれか１項に記載の操作装置。
【請求項１０】
操作装置を制御する制御方法であって、
操作面上を撮影して第１の画像データを取得する画像取得工程と、
前記第１の画像データに基づいて、前記操作面上のユーザによるジェスチャーを認識する認識工程と、
前記操作面上でユーザの操作によりタッチされた位置の座標を取得するタッチパネルセンサがあるかどうかを判定する判定工程と、
前記判定工程が前記操作面上に前記タッチパネルセンサがあると判定すると、前記認識工程で認識されたユーザのジェスチャーではなく、前記タッチパネルセンサが検出した位置の座標に基づいて、前記ユーザの操作によりタッチされた前記操作面上の位置の座標を特定する制御工程と、
を有することを特徴とする操作装置の制御方法。
【請求項１１】
コンピュータを、請求項１乃至９のいずれか１項に記載の操作装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作装置とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
可視光カメラや赤外線カメラ、３次元距離センサなどを用いてユーザの手指を検出し、その動きや位置に応じて機器を制御するジェスチャー操作技術を搭載したシステムが提案されている。例えば、特許文献１に記載のシステムは、ステレオカメラを用いて計測したユーザの手指の３次元座標に応じて、その手指により選択操作が行われている箇所を示す画像を被操作対象物にプロジェクタで表示する。これにより、ユーザは、プロジェクタで表示されたＵＩ画像を操作することが可能になる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２０３１７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、可視光カメラや赤外線カメラ、３次元距離センサなどを用いてユーザの手指の３次元座標を検出する場合、その３次元位置の精度には限界がある。そのため、ＵＩ画面に対してより細かいタッチ操作を行いたい場合、ユーザがタッチしたつもりではなくてもタッチされたと判断され、ユーザが意図しない動作が行われる場合もあるという課題があった。
【０００５】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００６】
本発明の特徴は、ユーザによるタッチ操作を、より高精度に検出する技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明の一態様に係る操作装置は以下のような構成を備える。即ち、
操作面上を撮影して第１の画像データを取得する画像取得手段と、
前記第１の画像データに基づいて、前記操作面上のユーザによるジェスチャーを認識する認識手段と、
前記操作面上でユーザの操作によりタッチされた位置の座標を取得するタッチパネルセンサがあるかどうかを判定する判定手段と、
前記判定手段が、前記操作面上に前記タッチパネルセンサがあると判定すると、前記認識手段が認識したユーザのジェスチャーではなく、前記タッチパネルセンサが検出した位置の座標に基づいて、前記ユーザの操作によりタッチされた前記操作面上の位置の座標を特定する制御手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ユーザによるタッチ操作を、より高精度に検出できるという効果がある。
【０００９】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。尚、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１０】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係るカメラスキャナが含まれるネットワーク構成を示す図。
【図２】実施形態１に係るカメラスキャナの構成を説明する図。
【図３】実施形態１に係るカメラスキャナのコントローラ部のハードウェア構成例を説明する図。
【図４】実施形態１に係るカメラスキャナのコントローラ部が有する機能を説明する機能ブロック図。
【図５】実施形態１に係る距離画像取得部の処理を説明するフローチャート。
【図６】パターン投射方式による距離画像の計測原理を説明するための図。
【図７】実施形態１に係るジェスチャー認識部の処理を説明するフローチャート。
【図８】実施形態１における指先検出処理の方法を模式的に表した図。
【図９】実施形態１に係る物体検知部の処理を説明するフローチャート。
【図１０】図９（Ａ）のＳ９０３の物体除去検知処理を説明するフローチャート。
【図１１】実施形態１に係るメイン制御部による処理を説明するフローチャート。
【図１２】本発明の実施形態２に係る物体検知部が、操作平面に置かれた物体の領域を判定する処理を説明するフローチャート。
【図１３】実施形態２において、操作平面の領域を物体領域と非物体領域とに分類した例を示す図。
【図１４】実施形態２に係るコントローラ部による処理を説明するフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。本実施形態では、本発明に係る操作装置の一例として、静電容量式タッチパネルセンサと、従来の３次元距離センサとを用いて、操作面上に投影されたオブジェクトに対するユーザのタッチ操作を検出するカメラスキャナを例に説明する。
【００１２】
［実施形態１］
図１は、本発明の実施形態１に係るカメラスキャナ１０１が含まれるネットワーク構成を示す図である。
【００１３】
図１に示すように、カメラスキャナ１０１は、イーサネット（登録商標）等のネットワーク１０４を介してホストコンピュータ１０２及びプリンタ１０３に接続されている。この構成において、ホストコンピュータ１０２からの指示により、カメラスキャナ１０１が原稿の画像を読み取るスキャン機能や、その読み取って得られた画像データをプリンタ１０３に送信して印刷させるプリント機能を実行できる。またホストコンピュータ１０２を介さずに、直接、ユーザがカメラスキャナ１０１へ指示することにより、カメラスキャナ１０１による原稿の読み取りと、その読み取って得られた画像データをプリンタ１０３に送信して印刷させることも可能である。
【００１４】
図２は、実施形態１に係るカメラスキャナ１０１の構成を説明する図である。
【００１５】
図２（Ａ）に示すように、カメラスキャナ１０１は、コントローラ部２０１、カメラ部２０２、腕部２０３、プロジェクタ２０７、センサ部２０８を含む。カメラスキャナの本体であるコントローラ部２０１と、撮像を行うためのカメラ部２０２、プロジェクタ２０７及びセンサ部２０８は、腕部２０３により連結されている。腕部２０３は関節を用いて曲げ伸ばしが可能である。
【００１６】
また図２（Ａ）において、カメラスキャナ１０１が設置されている操作面２０４も示している。カメラ部２０２及びセンサ部２０８のレンズは、この操作面２０４方向に向けられており、カメラ部２０２は、破線で囲まれた読み取り領域２０５内の画像を読み取ることができる。図２（Ａ）の例では、原稿２０６は読み取り領域２０５内に置かれているため、このカメラスキャナ１０１により読み取ることができる。
【００１７】
ここでカメラ部２０２は、単一の解像度で画像を撮像するものとしてもよいが、高解像度での撮像と低解像度での撮像が可能なものとすることが好ましい。また操作面２０４内にはターンテーブル２０９を設けてもよい。このターンテーブル２０９は、コントローラ部２０１からの指示によって回転することが可能であり、ターンテーブル２０９上に置かれた物体とカメラ部２０２との角度を変えることができる。また操作面２０４内にタッチパネルセンサ３３０を設けても良い。このタッチパネルセンサ３３０は、ユーザが手で触れたり、ペンで圧力を加える等により、触れられた位置の情報を感知して座標情報としてコントローラ部２０１に出力することができる。タッチパネルセンサ３３０は、ユーザによりタッチされたこと、及びそのタッチ位置を検出可能なデバイスであり、表示機能を有していない。尚、図２に示されていないが、カメラスキャナ１０１は、スピーカ３４０（図３）を更に含むこともできる。更に、周囲の環境情報を収集するための人感センサ、照度センサ、加速度センサなどの各種センサデバイスを含むこともできる。
【００１８】
図２（Ｂ）は、カメラスキャナ１０１における座標系を説明する図である。カメラスキャナ１０１では、各ハードウェアデバイスに対して、カメラの座標系、センサの座標系、プロジェクタの座標系という座標系が定義される。これらはカメラ部２０２及びセンサ部２０８が撮像する画像平面、或いはプロジェクタ２０７が投影する画像平面をそれぞれＸＹ平面とし、各画像平面に直交した方向をＺ方向として定義したものである。更に、これらの独立した座標系の３次元データを統一的に扱えるようにするために、操作面２０４を含む平面をＸＹ平面とし、このＸＹ平面から上方に垂直な向きをＺ軸とする直交座標系を定義する。
【００１９】
座標系を変換する場合の例として、図２（Ｃ）に直交座標系と、カメラ部２０２を中心としたカメラ座標系を用いて表現された空間と、カメラ部２０２が撮像する画像平面との関係を示す。直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］は、（１）式によって、カメラの座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換できる。
【００２０】
［Ｘｃ，Ｙｃ，Ｚｃ］Ｔ＝［Ｒｃ｜ｔｃ］［Ｘ，Ｙ，Ｚ，１］Ｔ  …（１）
ここで、Ｒｃ及びｔｃは、直交座標系に対するカメラ部２０２の姿勢（回転）と位置（並進）によって求まる外部パラメータによって構成され、Ｒｃを３×３の回転行列、ｔｃを並進ベクトルと呼ぶ。逆に、カメラの座標系で定義された３次元点は（２）式によって、直交座標系への変換することができる。
【００２１】
［Ｘ，Ｙ，Ｚ］Ｔ＝［Ｒｃ−１｜−Ｒｃ−１ｔｃ］［Ｘｃ，Ｙｃ，Ｚｃ，１］Ｔ  …（２）
更に、カメラ部２０２で撮影される２次元のカメラ画像平面は、カメラ部２０２によって３次元空間中の３次元情報が２次元情報に変換されたものである。即ち、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を、（３）式によってカメラ画像平面での２次元座標ｐｃ［ｘｐ，ｙｐ］に透視投影変換することができる。
【００２２】
λ［ｘｐ、ｙｐ、１］Ｔ＝Ａ［Ｘｃ，Ｙｃ，Ｚｃ］Ｔ  …（３）
ここで、Ａは、カメラ部２０２の内部パラメータと呼ばれ、焦点距離と画像中心などで表現される３×３の行列である。
【００２３】
以上のように、（１）式と（３）式を用いることで、直交座標系で表された３次元点群を、カメラ座標系での３次元点群座標やカメラ画像平面に変換することができる。尚、各ハードウェアデバイスの内部パラメータ及び直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法により予めキャリブレーションされているものとする。以後、特に断りがなく３次元点群と表記した場合は、直交座標系における３次元データを表しているものとする。
【００２４】
図３は、実施形態１に係るカメラスキャナ１０１のコントローラ部２０１のハードウェア構成例を説明する図である。
【００２５】
コントローラ部２０１は、ＣＰＵ３０２、ＲＡＭ３０３、ＲＯＭ３０４、ＨＤＤ３０５、ネットワークＩ／Ｆ３０６、画像処理プロセッサ３０７、カメラＩ／Ｆ３０８、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０を含む。更に、オーディオコントローラ３１１及びＵＳＢコントローラ３１２を含み、これらはシステムバス３０１を介して相互に接続されている。ＣＰＵ３０２は、コントローラ部２０１全体の動作を制御する中央演算装置である。ＲＡＭ３０３は揮発性メモリである。ＲＯＭ３０４は不揮発性メモリであり、ＣＰＵ３０２の起動用プログラムを格納している。ＨＤＤ３０５はＲＡＭ３０３と比較して大容量なハードディスクドライブで、ＨＤＤ３０５にはコントローラ部２０１が実行するカメラスキャナ１０１の制御用プログラムやＯＳ等が格納されている。ＣＰＵ３０２は電源オン等の起動時、ＲＯＭ３０４に格納されている起動用プログラムを実行し、ＨＤＤ３０５に格納されている制御用プログラムをＲＡＭ３０３に展開する。そしてＣＰＵ３０２は、ＲＡＭ３０３に展開した制御用プログラムを実行して、このコントローラ部２０１による制御処理を実行する。またＣＰＵ３０２は、制御用プログラムによる動作に用いるデータもＲＡＭ３０３に格納して読み書きを行う。ＨＤＤ３０５は更に、制御用プログラムによる動作に必要な各種設定や、また、カメラ部２０２から入力された画像データを格納することができ、ＣＰＵ３０２によって読み書きされる。またＣＰＵ３０２はネットワークＩ／Ｆ３０６を介してネットワーク１０４上の他の機器との通信を行う。
【００２６】
画像処理プロセッサ３０７は、ＲＡＭ３０３に格納された画像データを読み出して処理し、またＲＡＭ３０３へ書き戻す。尚、画像処理プロセッサ３０７が実行する画像処理は、回転、変倍、色変換等を含む。カメラＩ／Ｆ３０８は、カメラ部２０２及びセンサ部２０８と接続され、ＣＰＵ３０２からの指示に応じてカメラ部２０２から画像データを、センサ部２０８から距離画像データを取得してＲＡＭ３０３へ書き込む。またカメラＩ／Ｆ３０８は、ＣＰＵ３０２からの制御コマンドをカメラ部２０２及びセンサ部２０８へ送信し、カメラ部２０２及びセンサ部２０８の設定を行う。
【００２７】
また、コントローラ部２０１は、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０、オーディオコントローラ３１１及びＵＳＢコントローラ３１２のうち少なくとも１つを更に含むことができる。ディスプレイコントローラ３０９は、ＣＰＵ３０２の指示に応じて表示部への画像データの表示を制御する。ここでは、ディスプレイコントローラ３０９は、短焦点プロジェクタ２０７に接続されている。
【００２８】
シリアルＩ／Ｆ３１０はシリアル信号の入出力を行う。ここでは、シリアルＩ／Ｆ３１０はターンテーブル２１０に接続され、ＣＰＵ３０２からの回転開始・終了及び回転角度の指示をターンテーブル２０９へ送信する。またシリアルＩ／Ｆ３１０は、タッチパネルセンサ３３０に接続され、ＣＰＵ３０２はタッチパネルセンサ３３０が押下されたときに、シリアルＩ／Ｆ３１０を介して、その押下された位置の座標情報を取得する。またＣＰＵ３０２はシリアルＩ／Ｆ３１０を介して、タッチパネルセンサ３３０が接続されているかどうかを判定する。オーディオコントローラ３１１はスピーカ３４０に接続され、ＣＰＵ３０２の指示に応じて音声データをアナログ音声信号に変換し、スピーカ３４０を通じて音声を出力する。ＵＳＢコントローラ３１２は、ＣＰＵ３０２の指示に応じて外付けのＵＳＢデバイスの制御を行う。ここでは、ＵＳＢコントローラ３１２はＵＳＢメモリやＳＤカードなどの外部メモリ３５０に接続され、ＣＰＵ３０２は、このＵＳＢコントローラ３１２を介して外部メモリ３５０へのデータの読み書きを行う。尚、センサ部２０８の、赤外線パターン投射部３６１、赤外線カメラ３６２、ＲＧＢカメラ（可視光カメラ）３６３に関しては、図５、図６を参照して後述する。尚、ターンテーブル２０９は、後述する距離画像データを取得する際に使用されるが、プロジェクタ２０７により操作面２０４上の画像を投影して、ユーザが、その画像を指で指示する場合には、操作面２０４から取り除かれているものとする。
【００２９】
図４は、実施形態１に係るカメラスキャナ１０１のコントローラ部２０１が有する機能を説明する機能ブロック図である。この機能は、ＣＰＵ３０２がＨＤＤ３０５からＲＡＭ３０３に展開したプログラムを実行することにより達成される。
【００３０】
メイン制御部４０２は、この機能を達成する各モジュールを制御する。画像取得部４１６は、画像データの入力処理を行うモジュールであり、カメラ画像取得部４０７、距離画像取得部４０８を有している。カメラ画像取得部４０７は、カメラＩ／Ｆ３０８を介してカメラ部２０２が出力する画像データを取得してＲＡＭ３０３へ格納する。距離画像取得部４０８は、カメラＩ／Ｆ３０８を介してセンサ部２０８が出力する距離画像データを取得してＲＡＭ３０３に格納する。距離画像取得部４０８の処理の詳細は図５及び図６を参照して後述する。
【００３１】
認識処理部４１７は、カメラ画像取得部４０７、距離画像取得部４０８が取得する画像データから、操作面２０４上の物体の動きを検知して認識するモジュールである。この認識処理部４１７は、ジェスチャー認識部４０９、物体検知部４１０、及びタッチパネルイベント検知部４２０を有している。ジェスチャー認識部４０９は、画像取得部４１６から出力される、操作面２０４上の画像を取得しており、ユーザの指によるタッチなどのジェスチャーを検知するとメイン制御部４０２へ通知する。ジェスチャー認識部４０９の処理の詳細は図７及び図８を参照して後述する。物体検知部４１０は、画像取得部４１６から操作面２０４を撮像した画像データを取得し、操作面２０４に物体が置かれたタイミング、物体が置かれて静止したタイミング、或いは物体が取り除かれたタイミングなどを検知する。タッチパネルイベント検知部４２０は、ユーザが指等でタッチパネルセンサ３３０に接触すると、シリアルＩ／Ｆ３１０を介して、指等が接触した位置の座標情報を受信し、その座標情報をタッチパネルイベントとしてメイン制御部４０２に通知する。
【００３２】
画像処理部４１８は、カメラ部２０２及びセンサ部２０８から取得した画像データを画像処理プロセッサ３０７で解析するために用いられ、各種画像処理モジュールを有している。前述のジェスチャー認識部４０９や物体検知部４１０は、画像処理部４１８の各種画像処理モジュールを利用して実行される。
【００３３】
ユーザインターフェイス部４０３は、メイン制御部４０２からの要求を受け、メッセージやボタン等のＧＵＩ部品を生成し、その生成したＧＵＩ部品の表示を、表示部４０６に表示するように要求する。表示部４０６はディスプレイコントローラ３０９を介して、プロジェクタ２０７により、要求されたＧＵＩ部品を表示させる。前述したようにプロジェクタ２０７は、操作面２０４に向けて設置されているため、その操作面２０４にＧＵＩ部品を投射して表示する。またユーザインターフェイス部４０３は、ジェスチャー認識部４０９が認識したタッチ等のジェスチャー操作、及びタッチパネルイベント検知部４２０が検知したタッチ操作、更に、それらタッチされた位置の座標情報をメイン制御部４０２経由で受信する。そして、ユーザインターフェイス部４０３は、描画中の操作画面の内容と、その座標情報とを対応付けて操作内容（押下されたボタン等）を判定する。そして、その操作内容をメイン制御部４０２へ通知することにより、操作者による操作を受け付ける。
【００３４】
ネットワーク通信部４０４は、ネットワークＩ／Ｆ３０６を介して、ネットワーク１０４上の他の機器とＴＣＰ／ＩＰによる通信を行う。データ管理部４０５は、制御用プログラム４０１の実行により生成した作業データなどの様々なデータをＨＤＤ３０５上の所定の領域へ保存し、管理する。
【００３５】
次に図５及び図６を参照して、センサ部２０８の距離画像取得部４０８の処理及び機能について説明する。センサ部２０８は、赤外線によるパターン投射方式の画像センサである。赤外線パターン投射部３６１は、対象物に、人の目には不可視である赤外線によって３次元測定パターンを投射する。赤外線カメラ３６２は、その対象物に投射した３次元測定パターンを読み取る。ＲＧＢカメラ３６３は、人の目に見える可視光をＲＧＢ信号で撮影する。
【００３６】
次に、距離画像取得部４０８の処理を図５のフローチャートを参照して説明する。また図６（Ａ）〜（Ｃ）は、パターン投射方式による距離画像の計測原理を説明するための図である。
【００３７】
図５は、実施形態１に係る距離画像取得部４０８の処理を説明するフローチャートである。尚、この処理は、ＣＰＵ３０２が距離画像取得部４０８として機能することにより達成され、この処理を実行するプログラムはＨＤＤ３０５に格納されており、ＣＰＵ３０２がそのプログラムをＲＡＭ３０４に展開して実行することにより実現される。従って、以下の説明では、各ステップの処理の主体はＣＰＵ３０２として説明する。
【００３８】
まずＳ５０１でＣＰＵ３０２は、図６（Ａ）に示すように、赤外線パターン投射部３６１を用いて、赤外線で３次元形状測定パターン６２２を対象物６２１に投射させる。次にＳ５０２に進みＣＰＵ３０２は、ＲＧＢカメラ３６３を用いて対象物を撮影したＲＧＢ画像データ６２３及び、赤外線カメラ３６２を用いてＳ５０１で投射した３次元測定パターン６２２を撮影した赤外線カメラ画像データ６２４（図６（Ｂ））を取得する。尚、赤外線カメラ３６２とＲＧＢカメラ３６３とは設置位置が互いに異なるため、図６（Ｂ）に示すように、それぞれで撮影される２つのＲＧＢカメラ画像データ６２３及び赤外線カメラ画像データ６２４の撮影領域が異なる。そこでＳ５０３に進みＣＰＵ３０２は、赤外線カメラ３６２の座標系からＲＧＢカメラ３６３の座標系への座標系変換を行って、赤外線カメラ画像データ６２４をＲＧＢカメラ画像データ６２３の座標系に合わせる。尚、赤外線カメラ３６２とＲＧＢカメラ３６３の相対位置や、それぞれの内部パラメータは、事前のキャリブレーション処理により既知であるとする。
【００３９】
次にＳ５０４に進みＣＰＵ３０２は、図６（Ｃ）に示すように、３次元測定パターン６２２とＳ５０３で座標変換を行った赤外線カメラ画像データ６２４との間の対応点６２６を抽出する。例えば、赤外線カメラ画像データ６２４上の１点を３次元形状測定パターン６２２上から探索して、同一の点が検出された場合に対応付けを行う。或いは、赤外線カメラ画像データ６２４の画素の周辺のパターンを３次元形状測定パターン６２２から探索し、一番類似度が高い部分と対応付けてもよい。次にＳ５０５に進みＣＰＵ３０２は、赤外線パターン投射部３６１と赤外線カメラ３６２とを結ぶ直線を基線６２５として三角測量の原理を用いて計算することにより、赤外線カメラ３６２から対応点６２６までの距離を算出する。そしてＣＰＵ３２０は、対応付けができた画素については赤外線カメラ３６２からの距離を算出して画素値として保存し、対応付けができなかった画素については、距離の計測ができなかった部分として無効値を保存する。この処理をＳ５０３で座標変換を行った赤外線カメラ画像データ６２４の全画素に対して行うことで、各画素に距離が入った距離画像データを生成する。そしてＳ５０６に進みＣＰＵ３０２は、距離画像データの各画素に、ＲＧＢカメラ画像データ６２３のＲＧＢ値を保存することにより、１画素につきＲ、Ｇ、Ｂ、及び距離の４つの値を持つ距離画像データを生成する。ここで生成した距離画像データは、センサ部２０８のＲＧＢカメラ３６３で定義されたセンサ座標系が基準となっている。そこでＳ５０７に進みＣＰＵ３０２は、図２（Ｂ）を参照して上述したように、センサ座標系として得られた距離画像データを、操作面２０４の直交座標系における３次元点群に変換して、この処理を終了する。尚、これ以後、特に指定がなく３次元点群と表記した場合は、直交座標系における３次元点群を示すものとする。
【００４０】
尚、実施形態１では、上述したように、センサ部２０８として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、２つのＲＧＢカメラでステレオ立体視を行うステレオ方式や、レーザ光の飛行時間を検出することで距離を測定するＴＯＦ（Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ）方式など、他の計測手段を用いても構わない。
【００４１】
図７は、実施形態１に係るジェスチャー認識部４０９の処理を説明するフローチャートである。尚、この処理は、ＣＰＵ３０２がジェスチャー認識部４０９として機能することにより達成され、この処理を実行するプログラムはＨＤＤ３０５に格納されており、ＣＰＵ３０２がそのプログラムをＲＡＭ３０４に展開して実行することにより実現される。従って、以下の説明では、各ステップの処理の主体はＣＰＵ３０２として説明する。
【００４２】
まずＳ７０１でＣＰＵ３０２は、ジェスチャー認識処理の初期化処理を行う。この初期化処理では、ＣＰＵ３０２は、距離画像取得部４０８から、１フレームの距離画像データを取得する。ここで、この処理の開始時は、操作面２０４上に対象物が置かれていない状態であるため、初期状態として操作面２０４の平面を認識する。つまり、取得した距離画像データから最も広い平面を抽出し、その位置と法線ベクトル（以降、操作面２０４の平面パラメータと呼ぶ）を算出してＲＡＭ３０３に保存する。次にＳ７０２でＣＰＵ３０２は、Ｓ７２１〜Ｓ７２２で示す、操作面２０４上に存在する物体の３次元点群を取得する。その際、Ｓ７２１では、距離画像取得部４０８から、１フレームの距離画像データと３次元点群を取得する。次にＳ７２２でＣＰＵ３０２は、操作面２０４の平面パラメータを用いて、その取得した３次元点群から操作面２０４を含む平面にある点群を除去する。
【００４３】
次にＳ７０３でＣＰＵ３０２は、Ｓ７３１〜Ｓ７３４で示す、取得した３次元点群から操作者の手の形状及び指先を検出する処理を行う。ここで、指先検出処理の方法を模式的に表した図８（Ａ）〜（Ｃ）を参照して説明する。
【００４４】
まずＳ７３１でＣＰＵ３０２は、Ｓ７０２で取得した３次元点群から、操作面２０４を含む平面から所定の高さ以上にある、肌色の３次元点群を抽出することで、手の３次元点群を得る。図８（Ａ）の８６１は抽出した手の３次元点群を表している。次にＳ７３２に進みＣＰＵ３０２は、その抽出した手の３次元点群を、操作面２０４の平面に射影した２次元画像データを生成して、その手の外形を検出する。図８（Ａ）の８６２は、この操作面２０４に投影した３次元点群を表している。この投影は、点群の各座標を、操作面２０４の平面パラメータを用いて投影すればよい。また図８（Ｂ）に示すように、投影した３次元点群から、ｘｙ座標の値だけを取り出せば、Ｚ軸方向から見た２次元画像８６３として扱うことができる。このとき、手の３次元点群の各点が、操作面２０４に投影した２次元画像８６３の各座標のどれに対応するかを、記憶しておくものとする。次にＳ７３３に進みＣＰＵ３０２は、その検出した手の外形上の各点について、その点での外形の曲率を算出し、その算出した曲率が所定値より小さい点を指先として検出する。
【００４５】
図８（Ｃ）は、手の外形の曲率から指先を検出する方法を模式的に表した図である。８６４は、操作面２０４に投影された２次元画像８６３の外形を表す点の一部を表している。ここで、８６４で示す外形を表す点のうち、隣り合う５個の点を含むように円を描くことを考える。円８６５，８６７が、その例である。これら円を、全ての外形の点に対して順に描き、その直径（例えば８６６，８６８）が所定の値より小さい（曲率が小さい）ことを以て指先とする。この例では隣り合う５個の点としたが、その数は５個に限定されるものではない。また、ここでは曲率を用いたが、外形に対して楕円フィッティングを行うことで、指先を検出してもよい。そしてＳ７３４に進みＣＰＵ３０２は、その検出した指先の個数及び各指先の座標を算出する。この時、前述したように、操作面２０４に投影した２次元画像の各点と、手の３次元点群の各点の対応関係を記憶しているため、各指先の３次元座標を得ることができる。
【００４６】
今回は、３次元点群から２次元画像に投影した画像データから指先を検出する方法を説明したが、指先検出の対象とする画像データはこれに限定されるものではない。例えば、距離画像の背景差分や、ＲＧＢ画像データの肌色領域から手の領域を抽出し、上に述べたのと同様の方法（外形の曲率計算等）で、手の領域から指先を検出してもよい。この場合、検出した指先の座標は、ＲＧＢ画像データや距離画像といった、２次元画像上の座標であるため、その座標における距離画像の距離情報を用いて、直交座標系の３次元座標に変換する必要がある。この時、指先点となる外形上の点ではなく、指先を検出するときに用いた、曲率円の中心を指先点としてもよい。
【００４７】
次にＳ７０４に進みＣＰＵ３０２は、Ｓ７４１〜Ｓ７４６に示す、検出した手の形状及び指先から、ジェスチャー判定処理を行う。まずＳ７４１でＣＰＵ３０２は、Ｓ７０３で検出した指先が１つかどうか判定する。ここで指先が１つでないと判定するとＳ７４６へ進んでジェスチャーなしと判定してＳ７０５に進む。またＳ７４１で、検出した指先が１つと判定するとＳ７４２へ進みＣＰＵ３０２は、検出した指先と操作面２０４を含む平面との距離を算出する。次にＳ７４３に進みＣＰＵ３０２は、Ｓ７４２で算出した距離が微小な所定値以下であるかどうかを判定し、そうであればＳ７４４へ進みＣＰＵ３０２は、指先が操作面２０４へタッチしたタッチジェスチャーありと判定してＳ７０５に進む。一方、Ｓ７４３で、Ｓ７４２で算出した距離が所定値以下で無いと判定するとＳ７４５へ進み、ＣＰＵ３０２は、指先が移動したジェスチャー（タッチはしていないが指先が操作面２０４の上方に存在するジェスチャー）と判定してＳ７０５に進む。Ｓ７０５でＣＰＵ３０２は、判定したジェスチャーをメイン制御部４０２へ通知し、再びＳ７０２へ戻ってジェスチャー認識処理を繰り返す。
【００４８】
尚、ここでは一本指でのジェスチャー認識について説明を行ったが、複数の指或いは複数の手、或いは腕や体全体でのジェスチャー認識に応用することも可能である。
【００４９】
次に図９及び図１０を参照して、実施形態１に係る物体検知部４１０の処理を説明する。
【００５０】
図９（Ａ）は、実施形態１に係る物体検知部４１０の処理を説明するフローチャートである。尚、この処理は、ＣＰＵ３０２が物体検知部４１０として機能することにより達成され、この処理を実行するプログラムはＨＤＤ３０５に格納されており、ＣＰＵ３０２がそのプログラムをＲＡＭ３０４に展開して実行することにより実現される。従って、以下の説明では、各ステップの処理の主体はＣＰＵ３０２として説明する。
【００５１】
先ずＳ９０１でＣＰＵ３０２は、Ｓ９１１〜Ｓ９１３で示す初期化処理を行う。まずＳ９１１でＣＰＵ３０２は、カメラ画像取得部４０７からカメラで撮影したカメラ画像データを、距離画像取得部４０８から距離画像データをそれぞれ１フレーム取得する。次にＳ９１２に進みＣＰＵ３０２は、Ｓ９１１で取得したカメラ画像データを前フレームのカメラ画像データとして保存する。次にＳ９１３に進みＣＰＵ３０２は、Ｓ９１１で取得したカメラ画像データ及び距離画像データをそれぞれ、操作平面２０４の背景を示すカメラ画像データ、操作平面２０４の背景となる距離画像データとしてそれぞれ保存する。以降、操作平面背景カメラ画像データ、操作平面背景距離画像と記載した場合は、ここで取得した操作平面の初期画像であるカメラ画像データ及び距離画像データを指すものとする。
【００５２】
こうして初期化処理が終了するとＳ９０２に進みＣＰＵ３０２は、物体が操作平面２０４上に置かれたかどうかを検知する処理（物体載置検知処理）を行う。このＳ９０２の処理の詳細は図９（Ｂ）を参照して後述する。次にＳ９０３に進みＣＰＵ３０２は、Ｓ９０２で載置を検知した操作平面２０４の物体が除去されたかどうかを検知する処理（物体除去検知処理）を行う。このＳ９０３の処理の詳細は図１０を参照して後述する。
【００５３】
図９（Ｂ）は、図９（Ａ）のＳ９０２の物体載置検知処理を説明するフローチャートである。
【００５４】
まずＳ９２１でＣＰＵ３０２は、カメラ画像取得部４０７からカメラ画像データを１フレーム取得する。次にＳ９２２に進みＣＰＵ３０２は、その取得したカメラ画像データと操作平面背景カメラ画像データとの画素の毎の差分を求め、それら差分の絶対値を合計した差分値を求める。そしてＳ９２３に進みＣＰＵ３０２は、Ｓ９２２で求めた差分値が、予め決めておいた所定値以上かどうかを判定する。ここで差分値が所定値未満であれば操作平面２０４上には物体が無いと判定してＳ９２８へ進み、現フレームのカメラ画像データを前フレームのカメラ画像データとして保存してＳ９２１に進む。
【００５５】
一方、Ｓ９２３で差分値が所定値以上であればＳ９２４へ進み、ＣＰＵ３０２は、Ｓ９２１で取得したカメラ画像データと前フレームのカメラ画像データとの差分値を、Ｓ９２２と同様に算出する。そしてＳ９２５に進みＣＰＵ３０２は、Ｓ９２４で求めた差分値が予め決めておいた所定値以下かどうかを判定する。Ｓ９２５でＣＰＵ３０２は、その差分値が所定値よりも大きければ操作平面２０４上の物体が動いていると判定してＳ９２８へ進む。Ｓ９２８でＣＰＵ３０２は、現フレームのカメラ画像データを前フレームのカメラ画像データとして保存してＳ９２１に進む。
【００５６】
一方、Ｓ９２５で求めた差分値が所定値以下であると判定するとＳ９２６へ進む。Ｓ９２６でＣＰＵ３０２は、Ｓ９２５の判定がＹＥＳとなってから、その差分値が所定値以下、つまり操作平面２０４上の物体が静止した状態が予め決めておいた複数フレーム連続しているかどうかを判定する。Ｓ９２６でＣＰＵ３０２は、操作平面２０４上の物体が静止した状態が予め決めておいたフレーム数、連続していないと判定するとＳ９２８へ進む。Ｓ９２６でＣＰＵ３０２は、操作平面２０４上の物体が静止した状態が予め決めておいたフレーム数連続したときはＳ９２７へ進み、ＣＰＵ３０２は、操作平面２０４上に物体が置かれたことをメイン制御部４０２へ通知して、この処理を終了する。
【００５７】
図１０は、図９（Ａ）のＳ９０３の物体除去検知処理を説明するフローチャートである。
【００５８】
まずＳ１００１でＣＰＵ３０２は、カメラ画像取得部４０７からカメラ画像データを１フレーム取得する。次にＳ１００２に進みＣＰＵ３０２は、前述のＳ９２２と同様に、Ｓ１００１で取得したカメラ画像データと操作平面背景カメラ画像との差分値を算出する。そしてＳ１００３に進みＣＰＵ３０２は、その求めた差分値が予め決めておいた所定値以下かどうかを判定する。Ｓ１００３でＣＰＵ３０２は、その求めた差分値が予め決めておいた所定値よりも大きければ操作平面２０４上にまだ物体が存在すると判定してＳ１００１へ戻って処理を続ける。そしてＳ１００３で、その差分値が予め決めておいた所定値以下になると、操作平面２０４上の物体が無くなったと判定してＳ１００４に進み、操作平面２０４上の物体が除去されたことをメイン制御部４０２へ通知して、この処理を終了する。
【００５９】
以上の処理により、操作平面２０４上に物体が載置されたこと、及び操作平面２０４から物体が取り除かれたことを検出することができる。
【００６０】
次に図１１のフローチャートを参照して、実施形態１に係るメイン制御部４０２による制御処理を説明する。
【００６１】
図１１は、実施形態１に係るメイン制御部４０２による処理を説明するフローチャートである。尚、この処理は、ＣＰＵ３０２がメイン制御部４０２として機能することにより達成され、この処理を実行するプログラムはＨＤＤ３０５に格納されており、ＣＰＵ３０２がそのプログラムをＲＡＭ３０４に展開して実行することにより実現される。従って、以下の説明では、各ステップの処理の主体はＣＰＵ３０２として説明する。
【００６２】
Ｓ１１０１でＣＰＵ３０２は、センサとの接続状況を確認する。ここでは、コントローラ部２０１に接続されている各種センサを検出する。実施形態１では、例えば、距離画像センサ部２０８、カメラ部２０２、タッチパネルセンサ３０３が接続されているかどうかを確認する。次にＳ１１０２に進みＣＰＵ３０２は、Ｓ１１０１で接続されていることを確認したセンサを使用した処理を開始する。実施形態１では、その中からジェスチャー認識に関わる距離画像センサ部２０８と、タッチパネルセンサ３３０に関わる処理について説明する。実施形態１では、ジェスチャー認識を行うための情報が距離画像センサ部２０８とタッチパネルセンサ３３０より出力されてくるとき、どちらの情報を採用してジェスチャーを認識するかについて以下詳しく説明する。
【００６３】
Ｓ１１０３でＣＰＵ３０２は、Ｓ１１０１のセンサの接続状況の確認結果に基づいて、タッチパネルセンサ３３０が接続されているかどうか判定する。ここでＣＰＵ３０２は、タッチパネルセンサが接続されていないと判定するとＳ１１０５に処理を進める。一方、Ｓ１１０３でタッチパネルセンサ３３０が接続されていると判定するとＳ１１０４に処理を進め、図７及び図８を参照して説明した距離画像センサ部２０８からの指先タッチのジェスチャによるイベントをマスクするマスク処理を行う。これは、タッチパネルセンサ３３０が接続されている場合は、距離画像センサ部２０８からの指先タッチによるジェスチャイベントを採用せずに、タッチパネルセンサ３３０からの情報をタッチイベントとして採用することを意味している。尚、タッチパネルセンサ３３０が接続されている場合でも、図７及び図８を参照して説明した距離画像センサ部２０８で検知される指先の移動によるジェスチャイベントは、ジェスチャーセンサイベントとして取得できる。
【００６４】
次にＳ１１０５に進みＣＰＵ３０２は、ジェスチャーセンサ（距離画像センサ部２０８）が検知したイベントがあるかどうか判定し、ジェスチャーセンサによるイベントが無い場合はＳ１１０７に処理を進める。一方、ジェスチャーセンサによるイベントがあった場合はＳ１１０６に進み、ＣＰＵ３０２は、そのイベントが発生しているタイミングでの座標を取得し、そのイベントの種類と共に、その座標を通知してＳ１１０７に進む。ここでタッチパネルセンサ３３０が接続されている場合は、Ｓ１１０６でのジェスチャーイベントは採用されない。
【００６５】
次にＳ１１０７に進みＣＰＵ３０２は、タッチパネルセンサ３３０からのイベントが発生しているかどうか判定する。タッチパネルセンサ３３０によるイベントとは、前述したようにユーザがタッチパネルセンサ３０３を手もしくはペンで圧力を加えることにより発生する。Ｓ１１０７で、タッチパネルセンサ３０３でのタッチイベントが無い場合はＳ１１０９に処理を進め、タッチパネルセンサ３０３でのタッチイベントが発生した場合はＳ１１０８に進む。Ｓ１１０８でＣＰＵ３０２は、そのタイミングでの時刻及び座標を通知してＳ１１０９に進む。Ｓ１１０９でＣＰＵ３０２は、これまでの処理の中で検出したジェスチャーセンサからのイベント、タッチパネルセンサ３３０からのタッチイベントに基づいてイベント処理を実行し、Ｓ１１１０に進む。このイベントの処理は、ユーザのタッチ操作に基づいて表示画像を変化させる等の処理であり、アプリケーションに依存する部分なので、詳しい説明は割愛する。
但し、Ｓ１１０９では、タッチパネルセンサ３３０が接続されている場合は、Ｓ１１０６で検知されたジェスチャーイベントのうち、指先タッチによるジェスチャイベントは採用されない。Ｓ１１１０でＣＰＵ３０２は、メイン制御部４０２としての処理が終了したかどうかを判定し、終了していないときはＳ１１０５に戻って、前述の処理を繰り返し、メイン制御部４０２としての処理が終了すると、この処理を終了する。
【００６６】
以上説明したように実施形態１によれば、タッチパネルセンサ３３０が接続されているかどうか判定し、タッチパネルセンサ３３０が接続されている場合、タッチパネルセンサ３３０からの情報を用いてユーザの操作を認識する。これにより、ジェスチャーを認識できる複数のセンサが接続されている場合でも、ジェスチャーの認識処理を単純、かつ高速に行うことができる。また、より座標検出の精度が高いタッチパネルセンサが接続されていると、そのタッチパネルセンサによる座標検出を採用することにより、より高精度の座標検出が可能になる。
【００６７】
［実施形態２］
前述の実施形態１では、タッチパネルセンサ３３０が接続されている場合は、距離画像センサ部２０８が指先タッチを検知することにより発生するジェスチャーイベントをマスクする例で説明した。これに対して実施形態２では、操作平面２０４に物体が置かれている場合は、その物体の領域ではタッチパネルセンサによる座標検出ができなくなる。そこで物体が置かれている領域での指示座標の検出はジェスチャーセンサ部で行い、そうでない領域ではタッチパネルセンサにより座標検出を行う例を説明する。尚、実施形態２に係るカメラスキャナ１０１の構成及び、このカメラスキャナ１０１を含むシステム構成は、前述の実施形態１と同様であるため、その説明を省略する。
【００６８】
図１２は、本発明の実施形態２に係る物体検知部４１０が、操作平面２０４に置かれた物体の領域を判定する処理を説明するフローチャートである。尚、この処理は、ＣＰＵ３０２が物体検知部４１０として機能することにより達成され、この処理を実行するプログラムはＨＤＤ３０５に格納されており、ＣＰＵ３０２がそのプログラムをＲＡＭ３０４に展開して実行することにより実現される。従って、以下の説明では、各ステップの処理の主体はＣＰＵ３０２として説明する。
【００６９】
この処理では、物体検知部４１０は、操作平面２０４上に物体が置かれたことを検知すると、その操作平面２０４のどの領域に物体が置かれているかを判定するものである。この処理は、操作平面２０４上に物体が置かれたことを検知することにより開始され、まずＳ１２０１でＣＰＵ３０２は、画像取得部４１６からカメラ画像データを１フレーム取得する。次にＳ１２０２に進みＣＰＵ３０２は、図９のＳ９２２と同様にして、操作平面背景画像とカメラ画像データとの差分画像データを生成する。そしてその差分画像データを二値化する。次にＳ１２０３に進みＣＰＵ３０２は、Ｓ１２０２で得られた二値画像データの中から差分のある領域（例えば、二値画像データが「１」の領域）を物体領域として抽出する。次にＳ１２０４に進みＣＰＵ３０２は、Ｓ１２０３で抽出した物体領域の座標情報を、操作面２０４の直交座標系における２次元点群に変換する。そしてＳ１２０５に進みＣＰＵ３０２は、その変換後の領域を物体領域としてメイン制御部４０２に通知して、この処理を終了する。
【００７０】
図１３は、実施形態２において、操作平面２０４の領域を物体領域１３０１と非物体領域１３０２とに分類した例を示す図である。
【００７１】
図１４は、実施形態２に係るコントローラ部２０１による処理を説明するフローチャートである。ここでは、操作平面２０４内のジェスチャー認識処理を物体領域１３０１と非物体領域１３０２とで変化させる制御について説明する。尚、この処理を実行するプログラムはＨＤＤ３０５に格納されており、ＣＰＵ３０２がそのプログラムをＲＡＭ３０４に展開して実行することにより実現される。従って、以下の説明では、各ステップの処理の主体はＣＰＵ３０２として説明する。
【００７２】
先ずＳ１４０１でＣＰＵ３０２は、前述の実施形態１の図１１のＳ１１０３と同様に、タッチパネルセンサ３３０が接続されているかどうかを判定する。ここでタッチパネルセンサ３３０が接続されていないと判定するとＳ１４０２に進み、距離画像センサ部２０８であるジェスチャーセンサからのイベントがあるかどうかを判定する。Ｓ１４０２でＣＰＵ３０２は、ジェスチャーセンサからのイベントが無いと判定するとＳ１４０１に処理を進め、Ｓ１４０２でジェスチャーセンサからのイベントがあると判定した場合はＳ１４０７に進む。Ｓ１４０７でＣＰＵ３０２は、図１１のＳ１１０６と同様にし、そのイベントが発生した座標を取得してＳ１４０８に進む。
【００７３】
一方、Ｓ１４０１でＣＰＵ３０２は、タッチパネルセンサ３３０が接続されていると判定したときはＳ１４０３に進み、ＣＰＵ３０２は操作平面２０４内に物体が置かれているかどうか判定する。ここで物体が置かれていないと判定した場合はＳ１４０４に移行し、タッチパネルセンサ３３０からのイベントがあるかどうか判定し、イベントが無い場合はＳ１４０１に進む。一方、タッチパネルセンサ３３０からのイベントがある場合はＳ１４０７に処理を進める。
【００７４】
またＳ１４０３でＣＰＵ３０２は、操作平面２０４に物体が置かれていると判定した場合はＳ１４０５に進み、ＣＰＵ３２０は、物体領域１３０１内でジェスチャーセンサからのイベントがあるかどうか判定する。ここでジェスチャーセンサからのイベントが無いと判定した場合はＳ１４０６に処理を進め、非物体領域１３０２でタッチパネルセンサ３３０からのイベントがあるかどうか判定する。ここで、タッチパネルセンサ３３０からのイベントがなければＳ１４０１に移行し、タッチパネルセンサ３３０からのイベントがあるときはＳ１４０７へ処理を進める。
【００７５】
またＳ１４０５で、ＣＰＵ３０２は物体領域１３０１でジェスチャーセンサのイベントがあると判定するとＳ１４０７に処理を進める。Ｓ１４０７でＣＰＵ３０２は、そのイベントが発生した座標情報を取得するとＳ１４０８に進み、実施形態１のＳ１１０９と同様に、イベント処理を行ってＳ１４０９に進む。Ｓ１４０９でＣＰＵ３０２は、この処理を終了するかどうか判定し、終了でないと判定するとＳ１４０１に処理を進める。またＳ１４０９で終了と判定したときは、この処理を終了する。
【００７６】
以上説明したように実施形態２によれば、タッチパネルセンサ３３０が接続されていて、操作平面に物体が置かれているときは、その物体の領域での指示座標の検出を、タッチパネルセンサではなくジェスチャーセンサを用いて行う。またその物体の領域以外の操作平面では、タッチパネルセンサ３３０によるイベント座標の検出を行う。こうすることにより、操作平面上でのジェスチャを認識できるセンサが複数存在する場合でも、センサによるジェスチャーの検出処理を単純、かつ高速に行うことが可能となり、より精度の高い、指示座標の認識処理を実行できる。
【符号の説明】
【００７７】
１０１…カメラスキャナ、２０１…コントローラ部、２０２…カメラ部、２０４…操作面、２０７…プロジェクタ、２０８…センサ部、３３０…タッチパネルセンサ、４０２…メイン制御部、４０９…ジェスチャー認識部、４２０…タッチパネルイベント検知部
【図１】
2017117373.tif 000003
【図２】
2017117373.tif 000004
【図３】
2017117373.tif 000005
【図４】
2017117373.tif 000006
【図５】
2017117373.tif 000007
【図６】
2017117373.tif 000008
【図７】
2017117373.tif 000009
【図８】
2017117373.tif 000010
【図９】
2017117373.tif 000011
【図１０】
2017117373.tif 000012
【図１１】
2017117373.tif 000013
【図１２】
2017117373.tif 000014
【図１３】
2017117373.tif 000015
【図１４】
2017117373.tif 000016