JP2004246814A - 指示動作認識装置 - Google Patents
指示動作認識装置 Download PDFInfo
- Publication number
- JP2004246814A JP2004246814A JP2003038658A JP2003038658A JP2004246814A JP 2004246814 A JP2004246814 A JP 2004246814A JP 2003038658 A JP2003038658 A JP 2003038658A JP 2003038658 A JP2003038658 A JP 2003038658A JP 2004246814 A JP2004246814 A JP 2004246814A
- Authority
- JP
- Japan
- Prior art keywords
- click
- feature point
- user
- mode
- pointing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Position Input By Displaying (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
【課題】自然かつ簡単な操作によって利用者による指示位置又は指示方向の判断精度を向上させることができる指示動作認識装置を提供する。
【解決手段】ビデオカメラ20A、20Bにより互いに異なる複数の方向から利用者を撮像する。制御部16は、撮像画像に基づいて、利用者が特定の位置又は方向を指し示す動作を行っている際の指示位置又は指示方向の変化に応じて位置が変化する特徴点の3次元座標を認識し、この3次元座標に基づいて、利用者による指示位置又は指示方向を判断する。また、制御部16は、特徴点の3次元座標のうち大画面ディスプレイ14と平行な2次元平面における2次元座標に基づいて、特徴点が停止状態か否かを判定する。そして、2次元平面における移動量が所定閾値以下の場合には停止状態であると判定してクリックモードへ切り替え、停止状態でない場合にはポインティングモードへ切り替える。
【選択図】 図1
【解決手段】ビデオカメラ20A、20Bにより互いに異なる複数の方向から利用者を撮像する。制御部16は、撮像画像に基づいて、利用者が特定の位置又は方向を指し示す動作を行っている際の指示位置又は指示方向の変化に応じて位置が変化する特徴点の3次元座標を認識し、この3次元座標に基づいて、利用者による指示位置又は指示方向を判断する。また、制御部16は、特徴点の3次元座標のうち大画面ディスプレイ14と平行な2次元平面における2次元座標に基づいて、特徴点が停止状態か否かを判定する。そして、2次元平面における移動量が所定閾値以下の場合には停止状態であると判定してクリックモードへ切り替え、停止状態でない場合にはポインティングモードへ切り替える。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、指示動作認識装置に係り、特に、利用者による指示位置又は指示方向を判断するための指示動作認識装置に関する。
【0002】
【従来の技術】
従来より、所定の情報を表示するディスプレイの近傍に到来した利用者がディスプレイ上の任意の位置を指等によって指し示した状況を撮像手段によって撮像し、撮像によって得られた画像に基づいて利用者を認識して利用者が指示したディスプレイ上の位置を判断し、ディスプレイ上の指示位置にカーソル等を表示するハンドポインティング装置が知られている。
【0003】
上記のハンドポインティング装置によれば、利用者がキーボードやマウス等の入力機器に触れることなく、情報処理装置に対して各種の指示を与えたり、各種の情報を入力することが可能となるので、情報処理装置を利用するための操作の簡素化を実現できる。
【0004】
このようなハンドポインティング装置の中で、指が所定時間停止したことを検出した場合に、その指が指し示す位置が選択された(クリックされた)と判断するものがある。
【0005】
しかしながら、この場合、判断をためらって指を停止した場合でもその指が指し示す位置が選択されたと認識されてしまうため、利用者の判断と異なる操作結果になってしまう場合がある、という問題があった。
【0006】
また、利用者の手の入力画像の画像処理結果に基づいて、ポインティングを行うモード、すなわちディスプレイ上に表示されたカーソルの移動を指示するモードと、それ以外のモード、例えばカーソル位置に表示されたアイコンの選択を指示するモードとを切り替えるものも提案されている(例えば特許文献1参照)。
【0007】
【特許文献1】
特開平10−207618号公報
【0008】
【発明が解決しようとする課題】
しかしながら、上記特許文献1に記載された技術では、例えば利用者が親指と人差し指を伸ばした手の形状が認識された場合にポインティングを行うモードに切り替え、親指を閉じて人差し指を伸ばした手の形状が認識された場合にアイコンの選択を指示するモードに切り替えるといったように、手の形状の変化を認識してモードを切り替えるため、処理が複雑になる、という問題があった。
【0009】
また、手の形状を様々な形に変更することにより各モードを切り替えるため、人間の感性に応じた自然な操作をするのが困難であると共に、利用者は各モードに対応した様々な手の形状を予め覚えておかなければならないため、スムーズにモードを切り替えるのが困難である、という問題もあった。
【0010】
本発明は、上記問題を解決すべく成されたものであり、自然かつ簡単な操作によって利用者による指示位置又は指示方向の判断精度を向上させることができる指示動作認識装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
上記目的を達成するために、請求項1記載の発明は、互いに異なる複数の方向から利用者を撮像する撮像手段と、前記撮像手段の撮像によって得られた画像に基づいて、利用者が特定の位置又は方向を指し示す動作を行っている際の指示位置又は指示方向の変化に応じて位置が変化する特徴点の3次元座標を認識する認識手段と、前記認識手段によって認識された特徴点の3次元座標に基づいて、前記利用者による指示位置又は指示方向を判断する判断手段と、前記認識手段によって認識された特徴点の3次元座標に基づいて、前記特徴点が停止状態か否かを判定する停止状態判定手段と、前記停止状態判定手段による判定結果に基づいて、少なくとも特定の位置又は方向を指し示す動作を行うためのポインティングモードと、指し示した特定の位置又は方向に存在する対象物を選択する動作を含むクリック動作を行うためのクリックモードとを切り替える切替手段と、前記クリックモードのときに前記クリック動作が行われたか否かを判定するクリック判定手段と、を含むことを特徴とする。
【0012】
この発明によれば、撮像手段により互いに異なる複数の方向から利用者が撮像され、認識手段は、撮像手段の撮像によって得られた画像に基づいて、利用者が特定の位置又は方向を指し示す動作を行っている際の指示位置又は指示方向の変化に応じて位置が変化する特徴点の3次元座標を認識する。
【0013】
なお、特徴点としては、例えば利用者の手や指等の先端、或いは利用者が把持している指示器の先端等に相当する点を用いることができる。また、特徴点の3次元座標は、詳しくは、例えば複数の方向からの撮像によって得られた複数の画像上での特徴点の位置を各々求め、複数の画像上での特徴点の位置から認識することができる。
【0014】
そして判断手段は、認識手段によって認識された特徴点の3次元座標に基づいて、利用者による指示位置又は指示方向を判断する。この指示位置や指示方向の判断は、例えば利用者の位置と特徴点の位置の3次元座標に基づいて行うことができる。
【0015】
停止状態判定手段は、認識手段によって認識された特徴点の3次元座標に基づいて、特徴点が停止状態か否かを判定する。例えば、予め定めた所定時間内に認識された特徴点の3次元座標が何れも予め定めた範囲内であった場合や、特徴点の移動量又は移動速度が所定閾値以下になった場合を停止状態と判定することができる。すなわち、停止状態とは、完全に特徴点が停止している場合の他、特徴点が完全に停止しておらず、多少移動しているものの、ほぼ停止しているとみなすことができる場合を含む。
【0016】
切替手段は、停止状態判定手段による判定結果に基づいて、少なくとも特定の位置又は方向を指し示す動作を行うためのポインティングモードと、指し示した特定の位置又は方向に存在する対象物を選択する動作を含むクリック動作を行うためのクリックモードとを切り替える。なお、対象物には、表示手段に表示された任意の情報の少なくとも一部の情報が表示された領域や、利用者が操作したい装置に設けられた操作ボタン等が含まれる。
【0017】
切替手段は、例えば、ポインティングモードの状態で停止状態判定手段により特徴点が停止状態であると判定された場合にクリックモードに切り替える。
【0018】
クリック判定手段は、クリックモードのときに前記クリック動作が行われたか否かを判定する。例えば、利用者が指し示す方向に特徴点が所定閾値以上の速度で移動した場合に、その指し示す位置を選択した、すなわちクリックしたと判定することができる。また、特徴点が予め定めた軌跡で移動した場合や利用者の手がクリック動作に応じた形状に変化した場合にクリックしたと判定するようにしてもよい。
【0019】
このように、特徴点が停止状態になった場合に、すぐにクリック動作が行われたと認識するのではなく、クリックモードの状態においてのみクリック動作が行われたか否かを判定するため、利用者が判断をためらって指などが停止状態になった場合に、指し示した特定の位置又は方向に存在する対象物が選択されたと誤認識するのを防ぐことができる。このため、クリック動作の判断精度を向上させることができ、利用者の意図と異なる操作結果になるのを防ぐことができる。
【0020】
また、人間の手の形状の認識結果に応じてモードを切替えるのではなく、特徴点の停止状態に応じてモードを切替えるため、処理が複雑になるのを防ぐことができると共に、利用者は各モードに対応した様々な手の形状を予め覚えておく必要がないため、自然かつ簡単な操作でスムーズにモードを切り替えることができる。
【0021】
請求項2記載の発明は、前記停止状態判定手段は、少なくとも前記利用者による指示方向と交差する予め定めた2次元平面における前記利用者による指示方向と交差する2次元平面における前記特徴点の移動量に基づいて、前記特徴点が停止状態か否かを判定することを特徴とする。
【0022】
この発明によれば、停止状態判定手段は、3次元空間内における特徴点の移動量に基づいて特徴点が停止状態か否かを判定するのではなく、少なくとも利用者による指示方向と交差する予め定めた2次元平面における特徴点の移動量に基づいて、特徴点が停止状態か否かを判定する。
【0023】
2次元平面は、例えば利用者が平面的な表示手段を指し示すような状況の場合には、その表示手段と略平行な面に設定される。このような場合には、利用者による指示方向と設定された2次元平面とは略直交する関係になる場合が多いと考えられる。また、この場合、利用者によるクリック動作は、利用者が指し示す方向、すなわち2次元平面と略直交する方向に特徴点を移動させる動作を含むのが自然である。従って、停止状態判定手段は、2次元平面と略直交する方向における特徴点の移動を無視することとなる。
【0024】
このように、停止状態判定手段は、クリック動作に必要となる方向の動作を無視し、ポインティング動作に必要な方向の移動量、すなわち2次元平面における移動量のみを考慮して特徴点が停止状態か否かを判定するので、簡単な処理で精度よく停止状態を判定することができる。
【0025】
請求項3記載の発明は、前記切替手段は、前記特徴点が停止状態であると判定された場合にクリックモードに切り替え、前記クリックモードにおいて前記クリック動作が行われた場合に前記ポインティングモードに切り替えることを特徴とする。
【0026】
この発明によれば、切替手段は、特徴点が停止状態であると判定された場合にクリックモードに切り替え、このクリックモードにおいてクリック動作が行われた場合にはポインティングモードに自動的に切り替えるため、クリック動作が行われた後にポインティングモードに移行するための特別な動作をする必要がなく、簡単且つ自然な動作で各モードを切り替えることができる。
【0027】
請求項4記載の発明は、前記切替手段は、前記クリックモードにおいて前記特徴点が停止状態であると判定された場合にクリックモードに切り替え、前記クリックモードにおいて前記特徴点が停止状態でないと判定された場合に前記ポインティングモードに切り替えることを特徴とする。
【0028】
この発明によれば、切替手段は、クリックモードにおいて特徴点が停止状態でないと判定された場合、例えば2次元平面における特徴点の移動量が所定以上の場合に自動的にポインティングモードに切り替える。このため、判断をためらって特徴点が停止状態になったが、クリック動作をせずにポインティング動作に移行したいような場合でも、ポインティングモードに移行するための特別な動作をする必要がなく、簡単かつ自然な動作でポインティングモードに切り替えることができる。
【0029】
請求項5記載の発明は、前記クリック判定手段は、少なくとも前記利用者による指示方向と交差する予め定めた2次元平面と略直交する方向における前記特徴点の移動量に基づいて前記クリック動作の種類を判定することを特徴とする。
【0030】
この発明によれば、2次元平面と略直交する方向における特徴点の移動量に基づいてクリック動作の種類を判定するので、利用者は、2次元平面と略直交する方向、すなわち自身が指し示す方向に向けて特徴点を移動させる自然かつ簡単な動作によってクリック動作を行うことができ、利便性を向上させることができる。
【0031】
請求項6記載の発明は、任意の情報を表示すると共に、前記判断手段により判断された前記利用者による指示位置又は指示方向をカーソルにより表示する表示手段と、前記ポインティングモードの場合とクリックモードの場合とでカーソルが異なるように前記表示手段を制御する制御手段と、をさらに備えたことを特徴とする。
【0032】
この発明によれば、表示手段は、任意の情報を表示すると共に、判断手段により判断された前記利用者による指示位置又は指示方向をカーソルにより表示し、制御手段は、ポインティングモードの場合とクリックモードの場合とでカーソルが異なるように表示手段を制御する。
【0033】
制御手段は、ポインティングモードの場合とクリックモードの場合とで例えばカーソルの形状、大きさ、色、模様等のうち少なくとも1つを異ならせる。これにより、利用者は現在のモードがどのモードなのかを容易に認識することができる。
【0034】
請求項7記載の発明は、前記制御手段は、前記クリックモードでの前記カーソルの移動率が、前記ポインティングモードの場合よりも小さくなるように前記表示手段を制御することを特徴とする。
【0035】
この発明によれば、制御手段は、クリックモードでのカーソルの移動率、すなわち特徴点の移動量に対するカーソルの移動量の割合が、ポインティングモードの場合よりも小さくなるように表示手段を制御するので、利用者の腕がぶれたりすることにより、これに連動してカーソル位置が変動するのを防ぐことができる。
【0036】
ところで、指示位置又は指示方向を変化させる動作は、一般に、利用者の任意の関節を中心として特徴点の位置を円弧状に回動させる動作となるため、利用者が上記の動作を行った場合の特徴点の位置は、前記任意の関節を中心とする仮想的な球面に略沿って移動することになる。なお、複数の関節を各々動かす動作の場合には、前記仮想的な球面の中心が特定の関節に一致するとは限らないが、何れにしても特徴点の位置は、指示位置又は指示方向を変化させる動作に伴い、略一定の位置を中心とする仮想的な球面に略沿って移動する。
【0037】
そこで、前記特徴点が互いに異なる場所に位置している状況で前記認識手段によって各々認識された特徴点の3次元座標に基づいて、利用者が指示位置又は指示方向を変化させる動作を行った際の特徴点の位置変化の回転中心に相当する点の3次元座標を演算する演算手段をさらに設け、前記判断手段は、前記認識手段によって認識された特徴点の3次元座標と、前記演算手段によって演算された前記回転中心に相当する点の3次元座標とに基づいて、前記利用者による指示位置又は指示方向を判断するようにしてもよい。
【0038】
これにより、指示動作として利用者が実際に行った動作における回転中心に相当する位置の3次元座標が演算されることになる。
【0039】
なお、演算手段による回転中心に相当する点の3次元座標の演算は、詳しくは、例えば、利用者が指示位置又は指示方向を変化させる動作を行っている間に認識手段による認識が複数回行われることで得られた、特徴点の移動軌跡上の複数箇所における3次元座標に基づいて行うことができる。また、演算手段による演算には、例えば最小二乗法や他の公知の演算方法を利用することができる。
【0040】
なお、指示位置又は指示方向の判断は、具体的には、例えば特徴点と前記回転中心に相当する点を結ぶ仮想線を結ぶ仮想線の延びる方向を求めるか、又は、前記回転中心に相当する点の3次元座標に基づいて基準点の3次元座標を求めた後に、特徴点と前記基準点を結ぶ仮想線の延びる方向を求めることができる(例えば、仮想線の延びる方向を指示方向と判断し、仮想線の延長線上に存在している物体と仮想線の交点を指示位置と判断する等)。
【0041】
このように、利用者が指示位置又は指示方向を変化させる動作を行った際の特徴点の位置変化の回転中心に相当する点の座標を求めて利用者による指示位置又は指示方向を判断することにより、利用者が指示動作としてどのような動作を行うかに拘らず、利用者による指示位置又は指示方向の判断精度を向上させることができる。
【0042】
また、特徴点の3次元座標から演算によって前記回転中心に相当する点の3次元座標を求めてることにより、前記回転中心に相当する点が撮像手段による撮像範囲内に入っていなくても前記回転中心に相当する点の3次元座標を演算可能であり、撮像手段による撮像範囲の設定の自由度も向上する。
【0043】
なお、時間の経過に伴って利用者による指示動作自体が変化する(前記回転中心に相当する点の位置が変化する)可能性があることを考慮すると、認識手段及び演算手段は、特徴点の3次元座標の認識又は前記回転中心に相当する点の3次元座標の演算を繰り返し行うことが好ましい。
【0044】
これにより、利用者の指示動作自体が変化した場合にも、変化した後の動作における特徴点の位置変化の回転中心に相当する点の3次元座標を得ることができ、利用者による指示動作自体の変化に拘らず、利用者による指示位置又は指示方向を精度良く判断することができる。
【0045】
また、演算手段は、例えば認識手段によって認識された特徴点の3次元座標から、特徴点の位置変化の回転中心に相当する点の3次元座標を直接演算するように構成することができる。但し、この発明では、特徴点の3次元座標から前記回転中心に相当する点の3次元座標を直接演算するため、演算に用いる特徴点の3次元座標が、特徴点が3次元的に移動している期間に対応するデータである必要がある。従って、演算に用いるデータ量が多くなり易く、演算が複雑になるという欠点がある。
【0046】
これを考慮すると、演算手段は、例えば認識手段によって認識された特徴点の3次元座標から求まる、互いに交差する複数の平面内における特徴点の2次元座標に基づいて、複数の平面内における前記回転中心に相当する点の2次元座標を各々演算し、複数の平面内における基準点の2次元座標から前記回転中心に相当する点の3次元座標を演算するように構成してもよい。
【0047】
この発明では、互いに交差する複数(例えば2つ)の平面内における特徴点の2次元座標に基づいて複数の平面内における前記回転中心に相当する点の2次元座標を各々演算し、これらに基づいて前記回転中心に相当する点の3次元座標を演算するので、特徴点の位置が複数の平面内のうちの何れか1つの平面内でのみ変化している期間にも、この期間に認識された特徴点の3次元座標から求まる前記平面内における特徴点の2次元座標に基づいて、前記平面内における前記回転中心に相当する点の2次元座標を演算することができる。従って、前記回転中心に相当する点の個々の2次元座標の演算に用いるデータ量を少なくすることができるので、演算が簡単になる。
【0048】
なお、この発明において、複数の平面内における前記回転中心に相当する点の2次元座標を各々演算することは、例えば認識手段によって認識された特徴点の3次元座標が複数の平面のうちの少なくとも1つの平面内で変化しているか否かを判定し、特徴点の3次元座標が特定の平面内で変化していると判定する毎に、特定の平面内における特徴点の2次元座標に基づいて、特定の平面内における前記回転中心に相当する点の2次元座標を演算することにより実現できる。
【0049】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。
【0050】
図1には、本発明に係る指示動作認識装置としての機能を備えた情報表示装置10の概略構成が示されている。
【0051】
情報表示装置10はパーソナル・コンピュータ(PC)12を備えている。PC12は、CPU、ROM、RAM、入出力ポート及びHDD(何れも図示省略)を含んで構成されている。PC12には大画面ディスプレイ14(以下、ディスプレイ14という)と制御部16が接続されている。なお、PC12は本発明の制御手段に対応し、ディスプレイ14は本発明の表示手段に対応している。
【0052】
ディスプレイ14は、LCD又はプラズマディスプレイ又は有機ELディスプレイから成り、壁部に取り付けられ、制御部16からPC12に入力された情報に従い、PC12によって種々の情報が表示されるようになっている。
【0053】
制御部16は、CPU、ROM、RAM、及び入出力ポート(何れも図示省略)がバスを介して互いに接続されて構成されており、記憶部18が接続されている。
【0054】
記憶部18は、各種のデータやプログラム等を記憶するものであり、記憶内容を書き替え可能な不揮発性の情報記憶媒体、例えばハードディスクやバックアップ電源に接続されたRAM等を含んで構成されていることが望ましい。
【0055】
本実施形態において、利用者はディスプレイ14の配設位置近傍(ディスプレイ14前方の図2及び図3(B)に示した箇所)に到来し(図2及び図3(B)では利用者に「80」の符号を付して示す)、ディスプレイ14の表示画面上に設けられた対応する表示領域の任意の位置を指し示す指示動作(ポインティング動作)を行うと共に、指示動作を行っている状態から手を前方向(ディスプレイ14に近づく方向)や後方向(ディスプレイ14から離間する方向)、すなわちX方向(前方向を正とする)に移動させる動作等を含むクリック動作等を行うことにより、対応する表示領域に所望の情報を表示させる。なお、ディスプレイ14には、利用者が指し示した位置を表すカーソルが表示される。このカーソルは、利用者が指し示す位置に対応して移動する。
【0056】
また、制御部16には、2台のビデオカメラ20A,20Bが接続された撮像制御装置22及び利用者検出センサ24が各々接続されている。なお、ビデオカメラ20A,20Bは本発明に係る撮像手段に対応している。
【0057】
利用者検出センサ24は、例えばロードセル等で構成されており、指示動作やクリック動作を行う際に利用者が留まる位置(ディスプレイ14前方の所定位置)の床部に埋設されている。
【0058】
ディスプレイ14の前方の空間(情報入力空間)の上方には、図3(A)に示すように、情報入力空間に到来した利用者を照明する照明装置26A,26Bが配設されている。
【0059】
なお、照明装置26A,26Bから射出される照明光は可視光であっても近赤外光であってもよいが、照明光を近赤外光とする場合には、ビデオカメラ20A,20Bとして、近赤外光に感度を有するCCD等から成るエリアセンサを内蔵し、入射光をエリアセンサの受光面に結像させる結像レンズの光入射側に、近赤外域の波長の光のみを透過するフィルタが設けられた構成のビデオカメラを用いればよい。
【0060】
一方、情報入力空間の上方には、回転放物面の一部(詳しくは回転対称とならない部分)に相当する凹の反射面を有する凹面鏡28が配置されている。ビデオカメラ20A,20Bは、凹面鏡28との位置関係が、オフセットパラボラアンテナにおける反射鏡と1次放射器の位置関係と略同等になる位置近傍でかつXZ平面に沿って互いに異なる位置に、凹面鏡28を介して情報入力空間を略直上より撮像する向きで各々配置されている。
【0061】
凹面鏡28は、情報入力空間側から入射された平行光線束をビデオカメラ20A,20B側へ収束光線束として反射する光学性能を備えているので、ビデオカメラ20A,20Bの撮像範囲(図2及び図3(B)において、ビデオカメラ20Aの撮像範囲は一点鎖線を境界とする範囲、ビデオカメラ20Bの撮像範囲は破線を境界とする範囲である)の水平方向に沿った幅は、鉛直方向(Z方向)に亘って各々略一定とされている。
【0062】
また、本実施形態では、ビデオカメラ20Aは情報入力空間を正確に直上より撮像するように(図に一点鎖線で示す撮像範囲の境界が鉛直方向に沿うように)配置位置が定められている。一方、ビデオカメラ20A,20Bの配置位置はXZ平面に沿ってずれているので、ビデオカメラ20Bによる撮像範囲は、ビデオカメラ20Aによる撮像範囲に対してX方向に偏倚しており(図6(A)参照)、情報入力空間をやや斜め上方より撮像する(各図に破線で示す撮像範囲の境界が鉛直方向に対して若干傾く)範囲となる。
【0063】
従って、本実施形態に係る情報表示装置10において、利用者による動作(指示動作やポインティング動作)を認識可能な領域(認識領域)は、ビデオカメラ20Aによる撮像範囲とビデオカメラ20Bによる撮像範囲とが重複している領域、すなわち図2及び図3に二点鎖線で囲んで示す領域(図2ではハッチングで示す領域)となり、認識領域の水平方向に沿った幅についても、鉛直方向に亘っておおよそ一定となる。
【0064】
図3(B)からも明らかなように、本実施形態では、情報入力空間に到来した利用者自体は認識領域から外れ、利用者が指示動作やクリック動作を行った際に、利用者の手のみが認識領域内に入るように、ビデオカメラ20A,20Bの撮像範囲(凹面鏡28の形状・寸法や凹面鏡28、ビデオカメラ20A,20Bの位置関係等)が定められている。
【0065】
なお、撮像手段(カメラ)として遠赤外線カメラを用い、人間(利用者)の体温による遠赤外線と、人間の体温と所定値以上離れた温度(体温よりも高い温度であっても低い温度であってもよい)に設定又は温度調整された床から放射される遠赤外光と、によって人間と背景とを弁別する方法を用いても良い。
【0066】
次に本実施形態の作用を説明する。本実施形態では、利用者検出センサ24が利用者の到来を検出する毎に、制御部16で指示判断処理が実行される。
【0067】
以下、この指示判断処理について図4のフローチャートを参照して説明する。なお、指示判断処理は、利用者検出センサ24によって利用者の退去が検出されると実行が終了される。
【0068】
ステップ200ではポインティングモード設定処理を行う。具体的には、ディスプレイ14に表示するカーソルに関する設定処理等を行う。
【0069】
カーソルに関する設定処理では、カーソルの移動率、すなわち利用者の指先等の移動量に対するカーソルの移動量の割合や、カーソルの形状や大きさ、色等のデザインに関する情報を含むカーソル情報をPC12に通知する。なお、PC12側でポインティングモードに対応したカーソルの移動率やカーソルのデザインに関する情報を予め記憶しておき、制御部16からはポインティングモードである旨だけを通知するようにしてもよい。
【0070】
次のステップ202では特徴点座標演算処理を行う。
【0071】
以下、この特徴点座標演算処理について、図5のフローチャートを参照して説明する。
【0072】
ステップ230ではビデオカメラ20Aから出力される画像Aを表す画像データを取り込み、次のステップ232では取り込んだ画像データをRAM22C等に記憶する。ステップ234では、前回の処理周期で画像Aの画像データを取り込んで記憶しているか否か判定する。利用者が情報入力空間に到来して最初に特徴点座標演算処理を行ったときには、画像Aの画像データが記憶されていないので、ステップ234の判定が否定されて特徴点座標演算処理を終了するが、2回目以降の前記処理実行時には、前回の処理周期で取り込んだ画像Aの画像データが制御部16のRAM等に記憶されているので、前記判定が肯定されてステップ236へ移行する。
【0073】
ステップ236では、前回の処理周期で取り込んだ画像Aの画像データ、及び今回取り込んだ画像Aの画像データを用い、双方の画像データが表す画像の差分を画素毎に演算する。この演算により、ビデオカメラ20Aの撮像範囲内に存在している物体のうち、前回の処理周期から現在迄の間に動きが有った物体に相当する画素のみが「差分有り」になるので、「差分有り」の画素のみを抽出することにより、動きが有った物体に相当する画像領域が抽出される。
【0074】
なお、利用者の手が認識領域内に位置している場合、利用者が手を前後に移動させる等のクリック動作を行ったときのみならず、利用者が特定個所を指し示す指示動作を行っているときであっても、手を空中で完全に静止させることは困難であるので、利用者の手に相当する領域は、殆どの場合、前回の処理周期から現在迄の間に動きが有った物体に相当する画像領域として抽出されることになる。
【0075】
次のステップ238では、ステップ236の処理により、利用者の手に相当する画像領域(例えば図6(B)に太線で囲んで示す画像領域)が抽出されたか否か判定する。なお、認識領域内に存在している物体は照明装置26A,26Bによって照明されるので、認識領域内に利用者の手が存在している場合、画像A及び画像Bの中には、利用者の手に相当する画像領域が、高輝度の画素から成る所定値以上の面積の連続した領域として現れる。従って、認識領域内に利用者の手が存在していれば、その手に相当する画像領域を容易に抽出することができる。
【0076】
ステップ236で動きが有った物体に相当する画像領域が抽出されなかった場合、及びステップ236で抽出された画像領域が利用者の手に相当する画像領域でないと判定した場合には、認識領域内に利用者の手は存在していないと判断できるので、ステップ238の判定が否定されて特徴点座標演算処理を終了する。
【0077】
一方、ステップ238の判定が肯定された場合にはステップ240へ移行する。本実施形態では、利用者による指示動作やクリック動作を認識するための特徴点として利用者の手の指先を用いており、ステップ240では今回取り込んだ画像データが表す画像A上での特徴点P(図6(B)に示す点PA参照)の位置(2次元座標)を演算する。
【0078】
本実施形態において、ビデオカメラ20Aの配置位置は、情報入力空間がビデオカメラ20Aによって正確に直上より撮像されるように定められているので、特徴点が鉛直方向に沿って移動(X座標値及びY座標値が変化することなく移動)した場合には、特徴点に対応する画像A上の点PAの位置は殆ど変化しない。
【0079】
このように、画像A上での点PAの位置はXYZ座標系のXY平面(水平面)内における特徴点の位置に略対応しているので、ステップ240の演算により水平面内の特徴点の2次元座標(x,y)が求まることになる。
【0080】
ステップ244では、ビデオカメラ20Bから出力される画像Bを表す画像データを取り込み、次のステップ246では取り込んだ画像データを制御部16のRAM等に記憶する。
【0081】
ステップ248では、前回の処理周期で取り込んだ画像Bの画像データ、及び今回取り込んだ画像Bの画像データを用い、双方の画像データが表す画像の差分を画素毎に演算し、「差分有り」の画素のみを抽出することで、動きが有った物体に相当する画像領域を抽出する。そしてステップ250では、今回取り込んだ画像データが表す画像B上での特徴点(図6(B)に示す点PB参照)の位置(2次元座標)を演算する。
【0082】
図6(A)にも示すように、ビデオカメラ20Bによる撮像範囲は、ビデオカメラ20Aによる撮像範囲に対してX方向に偏倚しているので、画像A上での特徴点の位置と画像B上での特徴点の位置は、例として図6(B)に点PA及び点PBとして示すようにX方向に沿ってずれる(偏差dが生ずる)ことになる。
【0083】
また、偏差dの大きさは特徴点の高さ位置(Z方向位置)に応じて変化し、仮に特徴点が凹面鏡28の反射面上に位置していたとすると偏差dは0になり、特徴点が情報入力空間の床面上に位置していたとすると偏差dは最大となる(偏差dの最大値は、情報入力空間の床面上におけるビデオカメラ20A,20Bの撮像範囲のずれ量に一致する)。従って、偏差dと特徴点の高さ(手の高さ)Hとの間には図6(C)に示すような関係がある。本実施形態では、図6(C)に示すような偏差dと特徴点の高さHとの関係を表すマップが記憶部18に予め記憶されている。
【0084】
上記に基づき、ステップ252では画像A上での特徴点の位置と画像B上での特徴点の位置のX方向に沿った偏差dを演算し、次のステップ254では、記憶部18に記憶されている偏差dと特徴点の高さHとの関係を表すマップに基づいて、ステップ252で求めた偏差dに対応する特徴点の高さH、すなわちXYZ座標系における特徴点の高さ(座標値z)を求める。
【0085】
そして、ステップ256では、特徴点の3次元座標(x,y,z)を現在の時刻(演算時刻)と対応付けて記憶部18等に記憶する。特徴点座標演算処理は繰り返し実行されるので、該処理によって演算される特徴点の3次元座標は、利用者の姿勢や動作の変化に応じて逐次更新される。
【0086】
なお、求めた特徴点の高さHが極端に高い、或いは極端に低い場合には、特徴点の誤認識等が生じている可能性が非常に高いので、例えば高さHが、図2及び図3に示す認識領域の上側境界よりも高い、或いは下側境界よりも低い場合には、認識領域内に利用者の手は存在していないと判断する等の例外処理を行うようにしてもよい。
【0087】
また、特徴点座標演算処理は、例えば周知のDLT(Direct Liner Transformation)法やステレオ法を用いて行ってもよい。
【0088】
特徴点座標演算処理が終了すると、指示判断処理(図4)のステップ204へ移行し、基準点の3次元座標を演算する基準点座標演算処理を行う。
【0089】
以下、この基準点座標演算処理について、図7のフローチャートを参照して説明する。
【0090】
ステップ260では、先に説明した特徴点座標演算処理(図5)によって演算されて記憶部18に記憶された特徴点の3次元座標データ(x,y,z)を参照し、現時点より所定時間前から現時点迄の期間内に演算された特徴点の3次元座標データが所定数(例えば特徴点の位置変化の回転中心に相当する座標を演算する処理(詳細は後述)の実行に十分な数:例えば16個)以上有るか否か判定する。利用者が情報入力空間に到来した当初は、特徴点座標演算処理の実行回数が所定数に満たないため、上記の条件を満足する特徴点の3次元座標データの数が所定数に達せず、回転中心に相当する点の座標を高精度に演算することは非常に困難である。
【0091】
このため、ステップ260の判定が否定された場合にはステップ274へ移行し、記憶部18に記憶されている特徴点の3次元座標に基づいて、特徴点の位置変化の回転中心に相当する点の3次元座標を推定演算する。この推定演算は、例えば以下のようにして行うことができる。
【0092】
すなわち、例として図8(A)に示すように、利用者が、指示動作として、肘を直角又は直角に近い角度迄曲げ、手を比較的低い位置に維持した状態(ローポジション)で、肘より先の部分のみを動かすことで指示位置を変化させる動作を行っている場合は、おおよそ肘の関節を回転中心として特徴点の位置が変化することが多い。
【0093】
また、例として図8(C)に示すように、利用者が、指示動作として、腕を比較的真っ直ぐに前方へ伸ばし、手を比較的高い位置に維持した状態(ハイポジション)で、腕全体を動かすことで指示位置を変化させる動作を行っている場合には、おおよそ肩の関節を回転中心として特徴点の位置が変化することが多い。
【0094】
更に、例として図8(B)に示すように、利用者が、指示動作として、手をハイポジションとローポジションの中間的な位置に維持した状態(ミドルポジション)で指示位置を変化させる動作を行っている場合には、肘及び肩の関節が各々動かされることにより、肩の関節よりも若干後方の位置を回転中心として特徴点の位置が変化することが多い。
【0095】
従って、ステップ274の推定演算は、例えば利用者の姿勢(状態)がローポジション/ミドルポジション/ハイポジションの何れであるかを判断し、特徴点の位置変化の回転中心に相当する3次元座標として、肘の関節に相当する位置の3次元座標、肩の関節に相当する位置の3次元座標、及び肩の関節よりも若干後方の位置の3次元座標の何れかを、利用者の姿勢(状態)に応じて選択的に演算することによって行うことができる。
【0096】
なお、利用者の姿勢(状態)がローポジション/ミドルポジション/ハイポジションの何れであるかは、利用者の身長と特徴点の高さ(座標値z)の比率から判断でき、利用者のおおよその身長は、先に説明した特徴点座標演算処理(図5)のステップ252,254と同様に、画像A,B上での利用者の頭部の位置のX方向に沿った偏差dを演算し、偏差dと高さHとの関係を表すマップを用いることで求めることができる。
【0097】
特徴点の位置変化の回転中心に相当する3次元座標が推定演算されるとステップ276へ移行し、ディスプレイ14までの距離及びディスプレイ14の大きさに応じて回転中心に相当する点の3次元座標(X,Y,Z)を修正することで、基準点の3次元座標(X,Y,Z)を演算し、演算した基準点の3次元座標(X,Y,Z)を記憶部18に記憶させて基準点座標演算処理を終了する。
【0098】
一方、利用者が情報入力空間に到来して指示動作を開始してから若干の時間が経過すると、基準点座標演算処理において、現時点より所定時間前から現時点迄の期間内に演算された特徴点の3次元座標データが所定数以上になることでステップ260の判定が肯定される。ステップ260の判定が肯定されるとステップ262へ移行し、上記の条件に合致する特徴点の3次元座標データ群のうち、利用者によって後述するクリック動作が行われた期間に対応する特徴点の3次元座標データが有るか否か判定する。この判定は、例えば判定対象の特徴点の3次元座標データ群の各データを演算時刻順に時系列に並べ、各データの中に座標値xが急激に所定値以上変化しているデータが存在しているか否かを探索すること等によって、各クリック動作に相当するデータが存在するか否かを探索することで行うことができる。
【0099】
利用者によってクリック動作が行われた期間に対応する特徴点の位置は、後述する特徴点の位置変化の回転中心に相当する点の座標の演算における演算精度低下の原因となるので、ステップ262の判定が肯定された場合はステップ264へ移行し、該当する特徴点の3次元座標データを、回転中心に相当する点の座標の演算における演算対象から除外する処理を行った後に、ステップ266へ移行する。なお、ステップ262の判定が否定された場合には、何ら処理を行うことなくステップ266へ移行する。
【0100】
ステップ266では、演算対象の特徴点の3次元座標データ群に、水平面内(XY平面内)及び垂直面内(YZ平面内)での座標の変化が有るか否か判定する。この判定が否定される場合は、例えば利用者が一定の位置を指示している状態を継続している等の場合であり、このような状態でのデータを用いて特徴点の位置変化の回転中心を演算することは、利用者による指示位置の判断精度の低下に繋がる。このため、ステップ266の判定が否定された場合にはステップ274へ移行し、前述の推定演算を行う。
【0101】
一方、ステップ266の判定が肯定された場合にはステップ268へ移行し、演算対象の特徴点の3次元座標データ群が表す特徴点の移動軌跡に基づいて、特徴点の位置変化の回転中心に相当する点の3次元座標(X,Y,Z)を演算する。
【0102】
以下、ステップ268における演算について詳述する。特徴点の位置は、空間内の特定の位置(この位置は利用者の動作によって相違する)を中心とする仮想的な球の表面に沿って移動すると見なすことができる。座標(X,Y,Z)を中心とする半径Rの球面は次の(1)式で表すことができる。
(x−X)2+(y−Y)2+(x−X)2=R2 …(1)
なお、(1)式における座標(x,y,z)は球面上の任意の点の座標である。特徴点のn個の3次元座標データを(xi,yi,zi)とし(i=1,2,…,n)、これらを(1)式に代入して最小二乗法の極値を座標値X及び半径Rでとると、以下のようになる。
【0103】
【数1】
【0104】
上記の結果より次の(3)式が得られる。
【0105】
【数2】
【0106】
(3)式を(2)式に代入して整理すると、次の(4)式が得られる。
【0107】
【数3】
【0108】
上記と同様に座標値Y,Zについて解くと、次の(5),(6)式が得られる。
【0109】
【数4】
【0110】
続いて、(4),(5),(6)式を連立させて座標値X,Y,Zを解く。これらを行列式で表すと次の(7)式のようになる。
【0111】
【数5】
【0112】
そして、(7)式の解は以下の(8)〜(10)式のようになる。
【0113】
【数6】
【0114】
従って、ステップ268は、演算対象の特徴点の3次元座標データ(xi,yi,zi)を(8)〜(10)式に各々代入することで、回転中心に相当する点の3次元座標(X,Y,Z)を求めることができる。また半径Rは、演算対象の特徴点の3次元座標データ、及び(8)〜(10)式の演算結果を(3)式に各々代入することで求めることができる。なお、ステップ268は演算手段に対応している。
【0115】
次のステップ270では、以前に(現在の利用者が情報入力空間に到来してから現在までの間に)特徴点の位置変化の回転中心に相当する点の3次元座標を演算したか否か判定する。判定が否定された場合には何ら処理を行うことなくステップ276へ移行するが、判定が肯定された場合にはステップ272へ移行し、以前に演算した回転中心に相当する点の3次元座標も考慮して(例えば加重平均値を演算する等により)、回転中心に相当する点の3次元座標(X,Y,Z)を最終決定する。
【0116】
そして次のステップ276では、ディスプレイ14までの距離及びディスプレイ14の大きさに基づいて回転中心に相当する点の3次元座標(X,Y,Z)が修正されることで基準点の3次元座標(X,Y,Z)が演算され、記憶部18に記憶される。
【0117】
このように、本実施形態では、利用者が情報入力空間に到来して指示動作を開始してから若干の時間が経過した後(現時点より所定時間前から現時点迄の期間内に演算された特徴点の3次元座標データが所定数以上になった後)は、特徴点の移動軌跡に基づき、特徴点の位置変化の回転中心に相当する点の3次元座標を最小二乗法によって演算し、この回転中心に相当する点の3次元座標に基づいて設定した基準点の3次元座標を用いて利用者による指示位置を判断しているので、指示動作として利用者が図8(A)〜(C)に示す各種動作(姿勢)の何れを行っている場合にも、また図9に示すように、利用者の体格が大きく相違している場合にも、これらの影響を受けることなく基準点を適切な位置に設定することができ、利用者による指示位置を精度良く判断することができる。
【0118】
また、基準点座標演算処理(及び特徴点座標演算処理)は繰り返し行われるので、例えば図10(A)、(B)に示すように利用者が指示動作に用いている腕が利用途中で変化した場合、或いは指示動作として利用者が行っている動作が利用途中で変化した場合(例えばハイポジションからミドルポジション又はローポジションに変化した等の場合)にも、この変化に追随して基準点を適切な位置に切り替えることができ、利用者による指示位置を常に精度良く判断することができる。
【0119】
基準点座標演算処理が終了すると、図4のフローチャートのステップ206へ移行し、ディスプレイ14に表示すべきカーソルの座標を演算する。
【0120】
具体的には、先の特徴点座標演算処理で演算された特徴点の3次元座標(x,y,z)と、基準点座標演算処理で演算された基準点の3次元座標(X,Y,Z)に基づき、利用者の指示動作による指示方向を表す線として、図11に示すように、基準点P0と特徴点PXとを結ぶ仮想線(図11の仮想線54参照)の延びる方向を求め、利用者が指し示している位置(指示位置)として、ディスプレイ14の表示面を含む平面と、設定した仮想線の交点(図11に示す点S参照)の座標(2次元座標)を演算する。
【0121】
そして、演算したカーソル位置の座標をPC12へ通知する。PC12は、ステップ200で設定されたカーソル情報に基づくカーソルを制御部16から指定された座標に表示させる。これにより、利用者が指先等をディスプレイ14に向けて指し示すだけで、その位置にカーソルが表示される。なお、ステップ206は、本発明の判断手段に対応している。
【0122】
次のステップ208では、特徴点座標演算処理で演算された特徴点の3次元座標(x,y,z)に基づいて、特徴点が停止状態か否かを判定する。本実施形態では、特徴点のX方向の動きを無視し、2次元平面としてのYZ平面の動きのみに着目して特徴点が停止状態か否かを判定する。すなわち、2次元座標(y,z)に基づいて特徴点が停止状態か否かを判定する。なお、ステップ208は、本発明の停止状態判定手段及び切替手段に対応している。
【0123】
具体的には、現在から過去における所定時間内に演算した特徴点の2次元座標(y,z)に基づいて特徴点のYZ平面における所定時間内の移動量を算出し、この移動量に基づいて停止状態か否かを判定する。
【0124】
例えば、現在時刻(時刻t)における特徴点のYZ成分ベクトルをr(y,z,t)=r(t)で表し、特徴点のサンプリング間隔(演算間隔)をΔtとした場合、過去n回(nは自然数)演算した特徴点のYZ成分ベクトルの各々と現在のYZ成分ベクトルとの差(距離)である|r(t)−r(t−Δt)|、|r(t)−r(t−2Δt)|、|r(t)−r(t−3Δt)|、…|r(t)−r(t−nΔt)|の各々が全て予め定めた所定閾値以下の場合には特徴点が停止状態であると判定し、これ以外の場合には特徴点が停止状態でないと判定することができる。
【0125】
また、現在時刻(時刻t)における特徴点のYZ平面における移動速度をv(t)={r(t)−r(t−Δt)}/Δtで表し、過去n回演算した特徴点のYZ平面における移動速度である|v(t)|、|v(t−Δt)|、|v(t−2Δt)|、…|v(t−nΔt)|の各々が全て予め定めた所定閾値以下の場合には特徴点が停止状態であると判定し、これ以外の場合には特徴点が停止状態でないと判定するようにしてもよい。なお、上記の所定閾値は、特徴点がYZ平面で多少移動してもほぼ停止状態であるとみなすことができる値に設定される。
【0126】
このように、X方向、すなわちクリック動作に必要となる方向の動作を無視し、ポインティング動作に必要なYZ平面における特徴点の移動量のみに基づいて特徴点が停止状態か否かを判定するため、簡単な処理で精度よく停止状態を判定することができる。
【0127】
ステップ208で停止状態でないと判定された場合には、ステップ202へ移行し、特徴点が停止状態であると判定されるまで上記と同様の処理、すなわちステップ202〜208の処理を繰り返す。この間、逐次カーソル位置の座標が演算されてPC12に通知され、PC12では、設定された移動率でカーソルが移動するようにディスプレイ14を制御する。
【0128】
一方、停止状態であると判定された場合にはステップ210へ移行する。ステップ210では、クリックモード設定処理を行う。具体的には、ステップ200と同様に、ディスプレイ14に表示するカーソルに関する設定処理等を行う。
【0129】
カーソルに関する設定処理では、カーソルの移動率をポインティングモードのp倍(0≦p≦1)に設定する。ここで、p=1の場合はポインティングモードの場合と同一の移動率となり、p=0の場合はカーソルが全く移動しないこととなる。
【0130】
なお、クリックモードのときは、カーソルを移動させるのが主目的ではなく、指し示した位置をクリックするのが主目的であるため、正確にその位置をクリックできることが優先される場合が多い。従って、クリックモードのときは、ポインティングモードのときよりも移動率を低下させる、すなわちpを1未満にすることが好ましい。これにより、利用者の腕がぶれたりすることにより、これに連動してカーソル位置が変動し、クリック位置がずれてしまうのを防ぐことができ、利便性を向上させることができる。
【0131】
また、カーソルのデザインは、ポインティングモードの場合と異なるデザインを設定する。例えばポインティングモードのときのカーソルのデザインを矢印又は十字のデザインとした場合、クリックモードでは、指の形状やボタンの形状等に設定する。なお、カーソルの色のみを異ならせるようにしてもよい。
【0132】
このようにポインティングモードとクリックモードとでカーソルを異ならせることにより、利用者は現在のモードがポインティングモードなのかクリックモードなのかを容易かつ的確に認識することができる。
【0133】
ステップ212では、ステップ202と同様に特徴点座標演算処理を行い、次のステップ214では、ステップ204と同様に基準点座標演算処理を行う。
【0134】
そして、ステップ216では、ステップ206と同様に、特徴点座標演算処理で演算された特徴点の3次元座標(x,y,z)と、基準点座標演算処理で演算された基準点の3次元座標(X,Y,Z)と基づいてディスプレイ14に表示すべきカーソル位置の座標を演算し、PC12へ通知する。これにより、ディスプレイ14には利用者が指し示した位置にクリックモードに対応した形状のカーソルが表示される。
【0135】
ところで、クリック動作として、種々の動作を採用することができるが、本実施形態では、利用者が手を前方に素早く移動させる動作(図12(A)参照、以下「前進クリック」という)や、利用者が手を後方に素早く移動させる動作(図12(B)参照、以下「後進クリック」という)の他、利用者が手を後方に素早く移動させる動作を2回繰り返す動作(図12(C)参照、以下「後進ダブルクリック」という)、利用者が手を後方に移動させた後、前方に手を移動させ、元の位置に戻す動作(図12(D)参照、以下「後ストローク」という)をクリック動作としている。
【0136】
このクリック動作は、ディスプレイ14の表示面上の特定の箇所を指し示して選択する動作等として極めて自然な動作であり、利用者は違和感を感ずることなくクリック動作を行うことができる。
【0137】
また、このようなクリック動作の初期動作では、利用者の手が前方向、すなわちディスプレイ14に近づく方向に移動する動作又は利用者の手が後方向、すなわちディスプレイ14から離間する方向に移動する動作が必ず含まれることとなる。
【0138】
そこで、次のステップ218では、特徴点のX座標に基づいて、特徴点のX方向における移動速度が所定閾値以上か否かを判定することにより、クリック動作における初期動作がなされたか否かを判定する。
【0139】
具体的には、特徴点のt時刻におけるX方向のX成分ベクトルをx(t)で表すと共に、特徴点のX方向のt時点における移動速度をVx(t)={x(t)−x(t−Δt)}/Δtで表した場合、移動速度Vx(t)が予め定めた前クリック閾値以上又は後クリック閾値以上になったか否かを判定する。
【0140】
ここで、前クリック閾値は、特徴点が前方向に素早く移動した場合に前クリック閾値以上となるような値に設定される。同様に、後クリック閾値は、特徴点が後方向に素早く移動した場合に前クリック閾値以上となるような値に設定される。なお、前クリック閾値及び後クリック閾値の絶対値が同一の値となるように各々の閾値を設定してもよいし、異なる値となるようにしてもよい。
【0141】
移動速度Vx(t)が前クリック閾値以上でもなく、後クリック閾値以上でもない場合、すなわちクリック動作の初期動作が行われていない場合には、ステップ220へ移行し、移動速度Vx(t)が前クリック閾値以上又は後クリック閾値以上になった場合、すなわちクリック動作の初期動作が行われた場合には、ステップ222へ移行する。
【0142】
ステップ220では、ステップ208と同様に、特徴点座標演算処理で演算された特徴点の3次元座標(x,y,z)、詳しくは2次元座標(y,z)に基づいて、特徴点が停止状態か否かを判定する。なお、ステップ220の処理は本発明の停止状態判定手段及び切替手段に対応している。
【0143】
このとき、閾値をステップ208で用いる所定閾値と異なる値に設定してもよく、ステップ220で用いる閾値をステップ208で用いる閾値よりも大きい値に設定することが好ましい。これにより、利用者の手がクリック動作をする直前に変動することによって特徴点がYZ平面で変動し、誤ってポインティングモードに移行してしまうのを防ぐことができる。
【0144】
このように、特徴点のYZ平面における移動量がポインティングモードのときよりも大きくならないとポインティングモードへ移行することができないため、利用者の使い勝手を向上させることができる。
【0145】
また、利用者が一旦手の動きを止めてクリック動作に入るべくクリックモードへ移行したものの、再度ポインティングモードに移行したい場合には、手をある程度大きくYZ平面で移動させるだけでよいので、ポインティングモードに移行するために手の形状を変化させたりするなどの特別な動作をする必要がなく、簡単かつ自然な動作でポインティングモードに切り替えることができる。
【0146】
一方、クリック動作の初期動作が行われたと判定された場合には、ステップ222において、特徴点の移動方向が前方か否かが判断される。これは、移動速度Vx(t)が正か負かによって判断することができる。そして、特徴点の移動方向が前方の場合、すなわち移動速度Vx(t)が正の値の場合にはステップ224へ移行し、移動方向が後方の場合、すなわち移動速度Vx(t)が負の値である場合には、ステップ226へ移行する。
【0147】
ステップ224では、クリック種別を表すクリック種別変数に前進クリックを表す値(例えば‘1’)を代入し、記憶部18へ記憶する。
【0148】
前進クリック動作は、図12(A)に示したように、特徴点としての利用者の指先が静止している状態を初期位置として、前方に指先を移動させたあと元の場所に戻る動作、すなわち一旦前方に指先を移動させた後、後方向に指先を移動させる動作が基本であるが、本実施形態では、特徴点が所定閾値以上の速度で前方に移動したことのみをもって前進クリック動作がなされたものとして扱う。
【0149】
これは、指先が後方向に移動したことを検出してから前進クリックであることを認識し、前進クリックに対応する処理を行ったのでは利用者にとって反応が鈍いと感じてしまう場合があるためである。このように、特徴点が所定閾値以上の速度で前方に移動したことのみをもって前進クリック動作がなされたものとすることにより、利用者は違和感を感じることなく操作することが可能となる。
【0150】
なお、反応性に問題がなければ、前方に指先を移動させたあと後方に指先を移動させたことを検出することにより前進クリックと認識するようにしてもよい。
【0151】
一方、移動方向が後方の場合には、ステップ226において、後進側クリック判定処理を行う。以下、この処理について図13に示すフローチャートを参照して説明する。
【0152】
初期動作が後進側のクリック動作としては、図12(B)〜(D)に示すように、後進クリック、後進ダブルクリック、後進ストローク等があるが、このようなクリック動作では、前進クリックに比べて処理の反応性よりも処理の確実性が要求されるため、初期動作後所定時間の間の特徴点のX方向における軌跡、すなわちX座標を求め、これに基づいて後進側のクリック動作を判別する。
【0153】
このため、図13に示すように、ステップ280では、まずステップ208と同様の特徴点座標演算処理を行う。
【0154】
次のステップ282では、予め定めた所定時間経過したか否かを判定し、所定時間経過していなければステップ280へ戻って再び特徴点座標演算処理を行う。この処理はΔt時刻毎に行われる。なお、所定時間は、例えば後ストロークや後進ダブルクリック等のクリック動作に比較的時間を要する一連のクリック動作が終了するのに十分な時間に設定される。
【0155】
所定時間経過すると、ステップ284へ移行し、ステップ280で演算された特徴点の3次元座標(x,y,z)のうちX座標のみを用いて、ステップ218と同様に各時刻の移動速度Vx(t)を求める。
【0156】
次のステップ286では、所定時間内に前クリック閾値以上となった移動速度Vx(t)が存在するか否かを判断し、所定時間内に前クリック閾値以上となった移動速度Vx(t)が存在しない場合には、ステップ288へ移行する。
【0157】
ステップ288では、クリック種別を表すクリック種別変数に判別不能を表す値(例えば‘0’)を代入して記憶部18へ記憶し、本ルーチンを終了する。すなわち、初期動作として後方に特徴点が移動し、その後特徴点が所定時間内に前方へ所定速度以上で移動していない場合には、図12(B)〜(D)の何れの動作にも当てはまらないため、判別不能とする。
【0158】
一方、所定時間内に前クリック閾値以上となった移動速度Vx(t)が存在する場合には、ステップ290へ移行し、所定時間内において前クリック閾値以上となった後に後クリック閾値以上となった移動速度Vx(t)が存在するか否かを判断する。
【0159】
そして、所定時間内に後クリック閾値以上となった移動速度Vx(t)が存在しない場合には、ステップ292へ移行する。
【0160】
ステップ292では、クリック種別を表すクリック種別変数に後進クリックを表す値(例えば‘2’)を代入して記憶部18へ記憶し、本ルーチンを終了する。すなわち、図14に示すように、初期動作として後方に特徴点が移動し、その後特徴点が前方へ前クリック閾値以上の速度で移動し、その後特徴点が後方へ後クリック閾値以上の速度で移動していない場合には、後進クリック動作がなされたと判断する(図12(B)も参照)。
【0161】
また、前クリック閾値以上となった後に所定時間内において後クリック閾値以上になった移動速度Vx(t)が存在する場合には、ステップ294へ移行し、前クリック閾値以上となった後に後クリック閾値以上となり、さらに前クリック閾値以上になった移動速度Vx(t)が存在するか否かを判断する。
【0162】
そして、所定時間内において前クリック閾値以上となった後に後クリック閾値以上となり、さらに前クリック閾値以上になった移動速度Vx(t)が存在しない場合には、ステップ296へ移行する。
【0163】
ステップ296では、クリック種別を表すクリック種別変数に後ストロークを表す値(例えば‘3’)を代入して記憶部18へ記憶し、本ルーチンを終了する。すなわち、図14に示すように、初期動作として後方に特徴点が移動し、その後特徴点が前方へ前クリック閾値以上の速度で移動し、その後特徴点が後方へ後クリック閾値以上の速度で移動し、その後特徴点が前方へ前クリック閾値以上の速度で移動していない場合には、後ストローク動作がなされたと判断する(図12(C)も参照)。
【0164】
前クリック閾値以上となった後に後クリック閾値以上となり、さらに前クリック閾値以上になった移動速度Vx(t)が存在する場合には、ステップ298へ移行し、クリック種別を表すクリック種別変数に後進ダブルクリックを表す値(例えば‘4’)を代入して記憶部18へ記憶し、本ルーチンを終了する。すなわち、図14に示すように、初期動作として後方に特徴点が移動し、その後特徴点が前方へ前クリック閾値以上の速度で移動し、その後特徴点が後方へ後クリック閾値以上の速度で移動し、その後特徴点が前方へ前クリック閾値以上の速度で移動した場合には、後進ダブルクリック動作がなされたと判断する(図12(D)も参照)。なお、ステップ218、222、224、226の処理は本発明のクリック判定手段に対応している。
【0165】
このように、特徴点のX方向の移動のみを考慮することで後進クリック等の各種クリック動作の判別処理を簡便に行うことができる。
【0166】
なお、図13では最初にステップ280〜284において一括して所定時間の特徴点の座標を演算すると共に移動速度を演算してからクリック動作の判別を行っているが、図15に示すように制御してもよい。
【0167】
すなわち、ステップ300において、図13に示すステップ280と同様に特徴点座標演算処理を行い、次のステップ302において、その時刻における移動速度Vx(t)を図13に示すステップ284と同様に行う。そして、ステップ304で移動速度Vx(t)が前クリック閾値以上か否かを判断し、前クリック閾値以上であればステップ310へ移行し、前クリック閾値以上でなければステップ306へ移行する。
【0168】
ステップ306では、予め定めた所定時間経過したか否かを判断し、所定時間経過した場合には、ステップ308で図13に示すステップ288と同様の処理を行い、所定時間経過していない場合には、ステップ300へ戻って上記と同様の処理を繰り返す。
【0169】
ステップ310では、ステップ300と同様に特徴点座標演算処理を行い、次のステップ312において、その時刻における移動速度Vx(t)をステップ302と同様に行う。そして、ステップ314で移動速度Vx(t)が後クリック閾値以上か否かを判断し、後クリック閾値以上であればステップ320へ移行し、後クリック閾値以上でなければステップ316へ移行する。
【0170】
ステップ316では、ステップ306と同様に予め定めた所定時間経過したか否かを判断し、所定時間経過した場合には、ステップ318で図13に示すステップ292と同様の処理を行い、所定時間経過していない場合には、ステップ310へ戻って上記と同様の処理を繰り返す。
【0171】
ステップ320では、ステップ300と同様に特徴点座標演算処理を行い、次のステップ322において、その時刻における移動速度Vx(t)をステップ302と同様に行う。そして、ステップ324で移動速度Vx(t)が前クリック閾値以上か否かを判断し、前クリック閾値以上であればステップ326へ移行し、前クリック閾値以上でなければステップ326へ移行する。
【0172】
ステップ326では、ステップ306と同様に予め定めた所定時間経過したか否かを判断し、所定時間経過した場合には、ステップ328で図13に示すステップ296と同様の処理を行い、所定時間経過していない場合には、ステップ320へ戻って上記と同様の処理を繰り返す。
【0173】
また、ステップ330では、図13に示すステップ298と同様の処理を行う。
【0174】
なお、図13の場合には、所定時間は、後ストローク等の比較的時間を要する一連のクリック動作が終了するのに十分な時間に設定する必要があるが、図15の場合においては、一連のクリック動作が終了するのに十分な時間である必要はなく、クリック動作を構成する動作(例えば前進クリックや後進クリック)を行うのに十分な時間であればよい。このため、図15における所定時間は図13における所定時間よりも短い時間に設定することができる。
【0175】
後進側クリック判定処理が終了すると、図4のステップ227へ移行し、クリック種別が判別不能であるか否かを判断する。これは、記憶部18に記憶されたクリック種別変数を参照することにより判断することができる。
【0176】
そして、クリック種別が判別不能だった場合には、ステップ212へ戻り、上記と同様の処理を繰り返し、クリック種別が判別不能でなかった場合、すなわち、クリック種別が前進クリック、後進クリック、後ストローク、後進クリックの何れかであった場合には、ステップ228へ移行する。
【0177】
ステップ228では、クリック種別をPC12に通知する。これにより、PC12は、通知されたクリック種別に対応する処理を行い、処理結果などをディスプレイ14に表示させる。
【0178】
なお、各クリック動作の機能としては、次に示すようなものが考えられる。例えば、前進クリックは入出力デバイスとしてのマウスの左ボタンのシングルクリックに相当する機能、後進クリックはマウスの右ボタンのシングルクリックに相当する機能、後進ダブルクリックはマウスの左ボタンのダブルクリックに相当する機能、後ストロークはマウスの左ボタンによるドラッグ開始又はドラッグ終了に相当する機能とすることができる。
【0179】
このように、X方向の移動のみによって各種クリック動作を認識するため、自然かつ簡単な動作で様々なクリック動作を行うことができる。
【0180】
クリック種別をPC12に通知した後は、ステップ229において、所定時間待機する待機処理を行い、ステップ200へ戻り、ポインティングモードに移行する。
【0181】
このように、クリック動作を行った後に一定時間待機してカーソルの移動やクリック種別の判定を行わないようにすることにより、利用者の腕がぶれたりすることによって利用者の意図に反して前進クリックが連続して入力されてしまったりするのを防ぐことができる。
【0182】
また、クリック動作がなされた場合には、自動的にポインティングモードに移行するため、利用者はポインティングモードへ移行するための特別な動作をする必要がなく、利便性を向上させることができる。
【0183】
【発明の効果】
以上説明したように、本発明によれば、自然かつ簡単な操作によって利用者による指示位置又は指示方向の判断精度を向上させることができる、という効果を有する。
【図面の簡単な説明】
【図1】本実施形態に係る情報表示装置の概略構成を示すブロック図である。
【図2】カメラと凹面鏡の位置関係、及び各カメラの撮像範囲を示す情報入力空間の側面図である。
【図3】(A)は情報入力空間の正面図、(B)は情報入力空間の側面図である。
【図4】指示判断処理の内容を示すフローチャートである。
【図5】特徴点座標演算処理の内容を示すフローチャートである。
【図6】(A)は各カメラによる撮像範囲、(B)は各カメラによって得られた各画像の一例を各々示すイメージ図、(C)は各画像上での指先位置の差から手の高さを求めるためのマップの内容の一例を示す線図である。
【図7】第1実施形態に係る基準点座標演算処理の内容を示すフローチャートである。
【図8】利用者による各種の指示動作における特徴点の回転中心の一例を各々示すイメージ図である。
【図9】利用者の体格の相違が反映された基準点の位置を示すイメージ図である。
【図10】利用者が指示動作に用いる腕を変えた場合の基準点の移動を示すイメージ図である。
【図11】特徴点及び基準点から指示位置の座標を演算する処理を説明するための、(A)は側面図、(B)及び(C)は平面図である。
【図12】(A)は前進クリック動作、(B)は後進クリック動作、(C)は後進ダブルクリック動作、(D)は後ストローク動作を説明するためのイメージ図である。
【図13】後進側クリック処理の内容を示すフローチャートである。
【図14】各種クリック動作における指先位置や移動速度について説明するための線図である。
【図15】後進側クリック処理の内容の他の例を示すフローチャートである。
【符号の説明】
10 情報表示装置
12 PC
14 大画面ディスプレイ
16 制御部
18 記憶部
20A、20B ビデオカメラ
22 撮像制御装置
24 利用者検出センサ
28 凹面鏡
26A,26B 照明装置
【発明の属する技術分野】
本発明は、指示動作認識装置に係り、特に、利用者による指示位置又は指示方向を判断するための指示動作認識装置に関する。
【0002】
【従来の技術】
従来より、所定の情報を表示するディスプレイの近傍に到来した利用者がディスプレイ上の任意の位置を指等によって指し示した状況を撮像手段によって撮像し、撮像によって得られた画像に基づいて利用者を認識して利用者が指示したディスプレイ上の位置を判断し、ディスプレイ上の指示位置にカーソル等を表示するハンドポインティング装置が知られている。
【0003】
上記のハンドポインティング装置によれば、利用者がキーボードやマウス等の入力機器に触れることなく、情報処理装置に対して各種の指示を与えたり、各種の情報を入力することが可能となるので、情報処理装置を利用するための操作の簡素化を実現できる。
【0004】
このようなハンドポインティング装置の中で、指が所定時間停止したことを検出した場合に、その指が指し示す位置が選択された(クリックされた)と判断するものがある。
【0005】
しかしながら、この場合、判断をためらって指を停止した場合でもその指が指し示す位置が選択されたと認識されてしまうため、利用者の判断と異なる操作結果になってしまう場合がある、という問題があった。
【0006】
また、利用者の手の入力画像の画像処理結果に基づいて、ポインティングを行うモード、すなわちディスプレイ上に表示されたカーソルの移動を指示するモードと、それ以外のモード、例えばカーソル位置に表示されたアイコンの選択を指示するモードとを切り替えるものも提案されている(例えば特許文献1参照)。
【0007】
【特許文献1】
特開平10−207618号公報
【0008】
【発明が解決しようとする課題】
しかしながら、上記特許文献1に記載された技術では、例えば利用者が親指と人差し指を伸ばした手の形状が認識された場合にポインティングを行うモードに切り替え、親指を閉じて人差し指を伸ばした手の形状が認識された場合にアイコンの選択を指示するモードに切り替えるといったように、手の形状の変化を認識してモードを切り替えるため、処理が複雑になる、という問題があった。
【0009】
また、手の形状を様々な形に変更することにより各モードを切り替えるため、人間の感性に応じた自然な操作をするのが困難であると共に、利用者は各モードに対応した様々な手の形状を予め覚えておかなければならないため、スムーズにモードを切り替えるのが困難である、という問題もあった。
【0010】
本発明は、上記問題を解決すべく成されたものであり、自然かつ簡単な操作によって利用者による指示位置又は指示方向の判断精度を向上させることができる指示動作認識装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
上記目的を達成するために、請求項1記載の発明は、互いに異なる複数の方向から利用者を撮像する撮像手段と、前記撮像手段の撮像によって得られた画像に基づいて、利用者が特定の位置又は方向を指し示す動作を行っている際の指示位置又は指示方向の変化に応じて位置が変化する特徴点の3次元座標を認識する認識手段と、前記認識手段によって認識された特徴点の3次元座標に基づいて、前記利用者による指示位置又は指示方向を判断する判断手段と、前記認識手段によって認識された特徴点の3次元座標に基づいて、前記特徴点が停止状態か否かを判定する停止状態判定手段と、前記停止状態判定手段による判定結果に基づいて、少なくとも特定の位置又は方向を指し示す動作を行うためのポインティングモードと、指し示した特定の位置又は方向に存在する対象物を選択する動作を含むクリック動作を行うためのクリックモードとを切り替える切替手段と、前記クリックモードのときに前記クリック動作が行われたか否かを判定するクリック判定手段と、を含むことを特徴とする。
【0012】
この発明によれば、撮像手段により互いに異なる複数の方向から利用者が撮像され、認識手段は、撮像手段の撮像によって得られた画像に基づいて、利用者が特定の位置又は方向を指し示す動作を行っている際の指示位置又は指示方向の変化に応じて位置が変化する特徴点の3次元座標を認識する。
【0013】
なお、特徴点としては、例えば利用者の手や指等の先端、或いは利用者が把持している指示器の先端等に相当する点を用いることができる。また、特徴点の3次元座標は、詳しくは、例えば複数の方向からの撮像によって得られた複数の画像上での特徴点の位置を各々求め、複数の画像上での特徴点の位置から認識することができる。
【0014】
そして判断手段は、認識手段によって認識された特徴点の3次元座標に基づいて、利用者による指示位置又は指示方向を判断する。この指示位置や指示方向の判断は、例えば利用者の位置と特徴点の位置の3次元座標に基づいて行うことができる。
【0015】
停止状態判定手段は、認識手段によって認識された特徴点の3次元座標に基づいて、特徴点が停止状態か否かを判定する。例えば、予め定めた所定時間内に認識された特徴点の3次元座標が何れも予め定めた範囲内であった場合や、特徴点の移動量又は移動速度が所定閾値以下になった場合を停止状態と判定することができる。すなわち、停止状態とは、完全に特徴点が停止している場合の他、特徴点が完全に停止しておらず、多少移動しているものの、ほぼ停止しているとみなすことができる場合を含む。
【0016】
切替手段は、停止状態判定手段による判定結果に基づいて、少なくとも特定の位置又は方向を指し示す動作を行うためのポインティングモードと、指し示した特定の位置又は方向に存在する対象物を選択する動作を含むクリック動作を行うためのクリックモードとを切り替える。なお、対象物には、表示手段に表示された任意の情報の少なくとも一部の情報が表示された領域や、利用者が操作したい装置に設けられた操作ボタン等が含まれる。
【0017】
切替手段は、例えば、ポインティングモードの状態で停止状態判定手段により特徴点が停止状態であると判定された場合にクリックモードに切り替える。
【0018】
クリック判定手段は、クリックモードのときに前記クリック動作が行われたか否かを判定する。例えば、利用者が指し示す方向に特徴点が所定閾値以上の速度で移動した場合に、その指し示す位置を選択した、すなわちクリックしたと判定することができる。また、特徴点が予め定めた軌跡で移動した場合や利用者の手がクリック動作に応じた形状に変化した場合にクリックしたと判定するようにしてもよい。
【0019】
このように、特徴点が停止状態になった場合に、すぐにクリック動作が行われたと認識するのではなく、クリックモードの状態においてのみクリック動作が行われたか否かを判定するため、利用者が判断をためらって指などが停止状態になった場合に、指し示した特定の位置又は方向に存在する対象物が選択されたと誤認識するのを防ぐことができる。このため、クリック動作の判断精度を向上させることができ、利用者の意図と異なる操作結果になるのを防ぐことができる。
【0020】
また、人間の手の形状の認識結果に応じてモードを切替えるのではなく、特徴点の停止状態に応じてモードを切替えるため、処理が複雑になるのを防ぐことができると共に、利用者は各モードに対応した様々な手の形状を予め覚えておく必要がないため、自然かつ簡単な操作でスムーズにモードを切り替えることができる。
【0021】
請求項2記載の発明は、前記停止状態判定手段は、少なくとも前記利用者による指示方向と交差する予め定めた2次元平面における前記利用者による指示方向と交差する2次元平面における前記特徴点の移動量に基づいて、前記特徴点が停止状態か否かを判定することを特徴とする。
【0022】
この発明によれば、停止状態判定手段は、3次元空間内における特徴点の移動量に基づいて特徴点が停止状態か否かを判定するのではなく、少なくとも利用者による指示方向と交差する予め定めた2次元平面における特徴点の移動量に基づいて、特徴点が停止状態か否かを判定する。
【0023】
2次元平面は、例えば利用者が平面的な表示手段を指し示すような状況の場合には、その表示手段と略平行な面に設定される。このような場合には、利用者による指示方向と設定された2次元平面とは略直交する関係になる場合が多いと考えられる。また、この場合、利用者によるクリック動作は、利用者が指し示す方向、すなわち2次元平面と略直交する方向に特徴点を移動させる動作を含むのが自然である。従って、停止状態判定手段は、2次元平面と略直交する方向における特徴点の移動を無視することとなる。
【0024】
このように、停止状態判定手段は、クリック動作に必要となる方向の動作を無視し、ポインティング動作に必要な方向の移動量、すなわち2次元平面における移動量のみを考慮して特徴点が停止状態か否かを判定するので、簡単な処理で精度よく停止状態を判定することができる。
【0025】
請求項3記載の発明は、前記切替手段は、前記特徴点が停止状態であると判定された場合にクリックモードに切り替え、前記クリックモードにおいて前記クリック動作が行われた場合に前記ポインティングモードに切り替えることを特徴とする。
【0026】
この発明によれば、切替手段は、特徴点が停止状態であると判定された場合にクリックモードに切り替え、このクリックモードにおいてクリック動作が行われた場合にはポインティングモードに自動的に切り替えるため、クリック動作が行われた後にポインティングモードに移行するための特別な動作をする必要がなく、簡単且つ自然な動作で各モードを切り替えることができる。
【0027】
請求項4記載の発明は、前記切替手段は、前記クリックモードにおいて前記特徴点が停止状態であると判定された場合にクリックモードに切り替え、前記クリックモードにおいて前記特徴点が停止状態でないと判定された場合に前記ポインティングモードに切り替えることを特徴とする。
【0028】
この発明によれば、切替手段は、クリックモードにおいて特徴点が停止状態でないと判定された場合、例えば2次元平面における特徴点の移動量が所定以上の場合に自動的にポインティングモードに切り替える。このため、判断をためらって特徴点が停止状態になったが、クリック動作をせずにポインティング動作に移行したいような場合でも、ポインティングモードに移行するための特別な動作をする必要がなく、簡単かつ自然な動作でポインティングモードに切り替えることができる。
【0029】
請求項5記載の発明は、前記クリック判定手段は、少なくとも前記利用者による指示方向と交差する予め定めた2次元平面と略直交する方向における前記特徴点の移動量に基づいて前記クリック動作の種類を判定することを特徴とする。
【0030】
この発明によれば、2次元平面と略直交する方向における特徴点の移動量に基づいてクリック動作の種類を判定するので、利用者は、2次元平面と略直交する方向、すなわち自身が指し示す方向に向けて特徴点を移動させる自然かつ簡単な動作によってクリック動作を行うことができ、利便性を向上させることができる。
【0031】
請求項6記載の発明は、任意の情報を表示すると共に、前記判断手段により判断された前記利用者による指示位置又は指示方向をカーソルにより表示する表示手段と、前記ポインティングモードの場合とクリックモードの場合とでカーソルが異なるように前記表示手段を制御する制御手段と、をさらに備えたことを特徴とする。
【0032】
この発明によれば、表示手段は、任意の情報を表示すると共に、判断手段により判断された前記利用者による指示位置又は指示方向をカーソルにより表示し、制御手段は、ポインティングモードの場合とクリックモードの場合とでカーソルが異なるように表示手段を制御する。
【0033】
制御手段は、ポインティングモードの場合とクリックモードの場合とで例えばカーソルの形状、大きさ、色、模様等のうち少なくとも1つを異ならせる。これにより、利用者は現在のモードがどのモードなのかを容易に認識することができる。
【0034】
請求項7記載の発明は、前記制御手段は、前記クリックモードでの前記カーソルの移動率が、前記ポインティングモードの場合よりも小さくなるように前記表示手段を制御することを特徴とする。
【0035】
この発明によれば、制御手段は、クリックモードでのカーソルの移動率、すなわち特徴点の移動量に対するカーソルの移動量の割合が、ポインティングモードの場合よりも小さくなるように表示手段を制御するので、利用者の腕がぶれたりすることにより、これに連動してカーソル位置が変動するのを防ぐことができる。
【0036】
ところで、指示位置又は指示方向を変化させる動作は、一般に、利用者の任意の関節を中心として特徴点の位置を円弧状に回動させる動作となるため、利用者が上記の動作を行った場合の特徴点の位置は、前記任意の関節を中心とする仮想的な球面に略沿って移動することになる。なお、複数の関節を各々動かす動作の場合には、前記仮想的な球面の中心が特定の関節に一致するとは限らないが、何れにしても特徴点の位置は、指示位置又は指示方向を変化させる動作に伴い、略一定の位置を中心とする仮想的な球面に略沿って移動する。
【0037】
そこで、前記特徴点が互いに異なる場所に位置している状況で前記認識手段によって各々認識された特徴点の3次元座標に基づいて、利用者が指示位置又は指示方向を変化させる動作を行った際の特徴点の位置変化の回転中心に相当する点の3次元座標を演算する演算手段をさらに設け、前記判断手段は、前記認識手段によって認識された特徴点の3次元座標と、前記演算手段によって演算された前記回転中心に相当する点の3次元座標とに基づいて、前記利用者による指示位置又は指示方向を判断するようにしてもよい。
【0038】
これにより、指示動作として利用者が実際に行った動作における回転中心に相当する位置の3次元座標が演算されることになる。
【0039】
なお、演算手段による回転中心に相当する点の3次元座標の演算は、詳しくは、例えば、利用者が指示位置又は指示方向を変化させる動作を行っている間に認識手段による認識が複数回行われることで得られた、特徴点の移動軌跡上の複数箇所における3次元座標に基づいて行うことができる。また、演算手段による演算には、例えば最小二乗法や他の公知の演算方法を利用することができる。
【0040】
なお、指示位置又は指示方向の判断は、具体的には、例えば特徴点と前記回転中心に相当する点を結ぶ仮想線を結ぶ仮想線の延びる方向を求めるか、又は、前記回転中心に相当する点の3次元座標に基づいて基準点の3次元座標を求めた後に、特徴点と前記基準点を結ぶ仮想線の延びる方向を求めることができる(例えば、仮想線の延びる方向を指示方向と判断し、仮想線の延長線上に存在している物体と仮想線の交点を指示位置と判断する等)。
【0041】
このように、利用者が指示位置又は指示方向を変化させる動作を行った際の特徴点の位置変化の回転中心に相当する点の座標を求めて利用者による指示位置又は指示方向を判断することにより、利用者が指示動作としてどのような動作を行うかに拘らず、利用者による指示位置又は指示方向の判断精度を向上させることができる。
【0042】
また、特徴点の3次元座標から演算によって前記回転中心に相当する点の3次元座標を求めてることにより、前記回転中心に相当する点が撮像手段による撮像範囲内に入っていなくても前記回転中心に相当する点の3次元座標を演算可能であり、撮像手段による撮像範囲の設定の自由度も向上する。
【0043】
なお、時間の経過に伴って利用者による指示動作自体が変化する(前記回転中心に相当する点の位置が変化する)可能性があることを考慮すると、認識手段及び演算手段は、特徴点の3次元座標の認識又は前記回転中心に相当する点の3次元座標の演算を繰り返し行うことが好ましい。
【0044】
これにより、利用者の指示動作自体が変化した場合にも、変化した後の動作における特徴点の位置変化の回転中心に相当する点の3次元座標を得ることができ、利用者による指示動作自体の変化に拘らず、利用者による指示位置又は指示方向を精度良く判断することができる。
【0045】
また、演算手段は、例えば認識手段によって認識された特徴点の3次元座標から、特徴点の位置変化の回転中心に相当する点の3次元座標を直接演算するように構成することができる。但し、この発明では、特徴点の3次元座標から前記回転中心に相当する点の3次元座標を直接演算するため、演算に用いる特徴点の3次元座標が、特徴点が3次元的に移動している期間に対応するデータである必要がある。従って、演算に用いるデータ量が多くなり易く、演算が複雑になるという欠点がある。
【0046】
これを考慮すると、演算手段は、例えば認識手段によって認識された特徴点の3次元座標から求まる、互いに交差する複数の平面内における特徴点の2次元座標に基づいて、複数の平面内における前記回転中心に相当する点の2次元座標を各々演算し、複数の平面内における基準点の2次元座標から前記回転中心に相当する点の3次元座標を演算するように構成してもよい。
【0047】
この発明では、互いに交差する複数(例えば2つ)の平面内における特徴点の2次元座標に基づいて複数の平面内における前記回転中心に相当する点の2次元座標を各々演算し、これらに基づいて前記回転中心に相当する点の3次元座標を演算するので、特徴点の位置が複数の平面内のうちの何れか1つの平面内でのみ変化している期間にも、この期間に認識された特徴点の3次元座標から求まる前記平面内における特徴点の2次元座標に基づいて、前記平面内における前記回転中心に相当する点の2次元座標を演算することができる。従って、前記回転中心に相当する点の個々の2次元座標の演算に用いるデータ量を少なくすることができるので、演算が簡単になる。
【0048】
なお、この発明において、複数の平面内における前記回転中心に相当する点の2次元座標を各々演算することは、例えば認識手段によって認識された特徴点の3次元座標が複数の平面のうちの少なくとも1つの平面内で変化しているか否かを判定し、特徴点の3次元座標が特定の平面内で変化していると判定する毎に、特定の平面内における特徴点の2次元座標に基づいて、特定の平面内における前記回転中心に相当する点の2次元座標を演算することにより実現できる。
【0049】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。
【0050】
図1には、本発明に係る指示動作認識装置としての機能を備えた情報表示装置10の概略構成が示されている。
【0051】
情報表示装置10はパーソナル・コンピュータ(PC)12を備えている。PC12は、CPU、ROM、RAM、入出力ポート及びHDD(何れも図示省略)を含んで構成されている。PC12には大画面ディスプレイ14(以下、ディスプレイ14という)と制御部16が接続されている。なお、PC12は本発明の制御手段に対応し、ディスプレイ14は本発明の表示手段に対応している。
【0052】
ディスプレイ14は、LCD又はプラズマディスプレイ又は有機ELディスプレイから成り、壁部に取り付けられ、制御部16からPC12に入力された情報に従い、PC12によって種々の情報が表示されるようになっている。
【0053】
制御部16は、CPU、ROM、RAM、及び入出力ポート(何れも図示省略)がバスを介して互いに接続されて構成されており、記憶部18が接続されている。
【0054】
記憶部18は、各種のデータやプログラム等を記憶するものであり、記憶内容を書き替え可能な不揮発性の情報記憶媒体、例えばハードディスクやバックアップ電源に接続されたRAM等を含んで構成されていることが望ましい。
【0055】
本実施形態において、利用者はディスプレイ14の配設位置近傍(ディスプレイ14前方の図2及び図3(B)に示した箇所)に到来し(図2及び図3(B)では利用者に「80」の符号を付して示す)、ディスプレイ14の表示画面上に設けられた対応する表示領域の任意の位置を指し示す指示動作(ポインティング動作)を行うと共に、指示動作を行っている状態から手を前方向(ディスプレイ14に近づく方向)や後方向(ディスプレイ14から離間する方向)、すなわちX方向(前方向を正とする)に移動させる動作等を含むクリック動作等を行うことにより、対応する表示領域に所望の情報を表示させる。なお、ディスプレイ14には、利用者が指し示した位置を表すカーソルが表示される。このカーソルは、利用者が指し示す位置に対応して移動する。
【0056】
また、制御部16には、2台のビデオカメラ20A,20Bが接続された撮像制御装置22及び利用者検出センサ24が各々接続されている。なお、ビデオカメラ20A,20Bは本発明に係る撮像手段に対応している。
【0057】
利用者検出センサ24は、例えばロードセル等で構成されており、指示動作やクリック動作を行う際に利用者が留まる位置(ディスプレイ14前方の所定位置)の床部に埋設されている。
【0058】
ディスプレイ14の前方の空間(情報入力空間)の上方には、図3(A)に示すように、情報入力空間に到来した利用者を照明する照明装置26A,26Bが配設されている。
【0059】
なお、照明装置26A,26Bから射出される照明光は可視光であっても近赤外光であってもよいが、照明光を近赤外光とする場合には、ビデオカメラ20A,20Bとして、近赤外光に感度を有するCCD等から成るエリアセンサを内蔵し、入射光をエリアセンサの受光面に結像させる結像レンズの光入射側に、近赤外域の波長の光のみを透過するフィルタが設けられた構成のビデオカメラを用いればよい。
【0060】
一方、情報入力空間の上方には、回転放物面の一部(詳しくは回転対称とならない部分)に相当する凹の反射面を有する凹面鏡28が配置されている。ビデオカメラ20A,20Bは、凹面鏡28との位置関係が、オフセットパラボラアンテナにおける反射鏡と1次放射器の位置関係と略同等になる位置近傍でかつXZ平面に沿って互いに異なる位置に、凹面鏡28を介して情報入力空間を略直上より撮像する向きで各々配置されている。
【0061】
凹面鏡28は、情報入力空間側から入射された平行光線束をビデオカメラ20A,20B側へ収束光線束として反射する光学性能を備えているので、ビデオカメラ20A,20Bの撮像範囲(図2及び図3(B)において、ビデオカメラ20Aの撮像範囲は一点鎖線を境界とする範囲、ビデオカメラ20Bの撮像範囲は破線を境界とする範囲である)の水平方向に沿った幅は、鉛直方向(Z方向)に亘って各々略一定とされている。
【0062】
また、本実施形態では、ビデオカメラ20Aは情報入力空間を正確に直上より撮像するように(図に一点鎖線で示す撮像範囲の境界が鉛直方向に沿うように)配置位置が定められている。一方、ビデオカメラ20A,20Bの配置位置はXZ平面に沿ってずれているので、ビデオカメラ20Bによる撮像範囲は、ビデオカメラ20Aによる撮像範囲に対してX方向に偏倚しており(図6(A)参照)、情報入力空間をやや斜め上方より撮像する(各図に破線で示す撮像範囲の境界が鉛直方向に対して若干傾く)範囲となる。
【0063】
従って、本実施形態に係る情報表示装置10において、利用者による動作(指示動作やポインティング動作)を認識可能な領域(認識領域)は、ビデオカメラ20Aによる撮像範囲とビデオカメラ20Bによる撮像範囲とが重複している領域、すなわち図2及び図3に二点鎖線で囲んで示す領域(図2ではハッチングで示す領域)となり、認識領域の水平方向に沿った幅についても、鉛直方向に亘っておおよそ一定となる。
【0064】
図3(B)からも明らかなように、本実施形態では、情報入力空間に到来した利用者自体は認識領域から外れ、利用者が指示動作やクリック動作を行った際に、利用者の手のみが認識領域内に入るように、ビデオカメラ20A,20Bの撮像範囲(凹面鏡28の形状・寸法や凹面鏡28、ビデオカメラ20A,20Bの位置関係等)が定められている。
【0065】
なお、撮像手段(カメラ)として遠赤外線カメラを用い、人間(利用者)の体温による遠赤外線と、人間の体温と所定値以上離れた温度(体温よりも高い温度であっても低い温度であってもよい)に設定又は温度調整された床から放射される遠赤外光と、によって人間と背景とを弁別する方法を用いても良い。
【0066】
次に本実施形態の作用を説明する。本実施形態では、利用者検出センサ24が利用者の到来を検出する毎に、制御部16で指示判断処理が実行される。
【0067】
以下、この指示判断処理について図4のフローチャートを参照して説明する。なお、指示判断処理は、利用者検出センサ24によって利用者の退去が検出されると実行が終了される。
【0068】
ステップ200ではポインティングモード設定処理を行う。具体的には、ディスプレイ14に表示するカーソルに関する設定処理等を行う。
【0069】
カーソルに関する設定処理では、カーソルの移動率、すなわち利用者の指先等の移動量に対するカーソルの移動量の割合や、カーソルの形状や大きさ、色等のデザインに関する情報を含むカーソル情報をPC12に通知する。なお、PC12側でポインティングモードに対応したカーソルの移動率やカーソルのデザインに関する情報を予め記憶しておき、制御部16からはポインティングモードである旨だけを通知するようにしてもよい。
【0070】
次のステップ202では特徴点座標演算処理を行う。
【0071】
以下、この特徴点座標演算処理について、図5のフローチャートを参照して説明する。
【0072】
ステップ230ではビデオカメラ20Aから出力される画像Aを表す画像データを取り込み、次のステップ232では取り込んだ画像データをRAM22C等に記憶する。ステップ234では、前回の処理周期で画像Aの画像データを取り込んで記憶しているか否か判定する。利用者が情報入力空間に到来して最初に特徴点座標演算処理を行ったときには、画像Aの画像データが記憶されていないので、ステップ234の判定が否定されて特徴点座標演算処理を終了するが、2回目以降の前記処理実行時には、前回の処理周期で取り込んだ画像Aの画像データが制御部16のRAM等に記憶されているので、前記判定が肯定されてステップ236へ移行する。
【0073】
ステップ236では、前回の処理周期で取り込んだ画像Aの画像データ、及び今回取り込んだ画像Aの画像データを用い、双方の画像データが表す画像の差分を画素毎に演算する。この演算により、ビデオカメラ20Aの撮像範囲内に存在している物体のうち、前回の処理周期から現在迄の間に動きが有った物体に相当する画素のみが「差分有り」になるので、「差分有り」の画素のみを抽出することにより、動きが有った物体に相当する画像領域が抽出される。
【0074】
なお、利用者の手が認識領域内に位置している場合、利用者が手を前後に移動させる等のクリック動作を行ったときのみならず、利用者が特定個所を指し示す指示動作を行っているときであっても、手を空中で完全に静止させることは困難であるので、利用者の手に相当する領域は、殆どの場合、前回の処理周期から現在迄の間に動きが有った物体に相当する画像領域として抽出されることになる。
【0075】
次のステップ238では、ステップ236の処理により、利用者の手に相当する画像領域(例えば図6(B)に太線で囲んで示す画像領域)が抽出されたか否か判定する。なお、認識領域内に存在している物体は照明装置26A,26Bによって照明されるので、認識領域内に利用者の手が存在している場合、画像A及び画像Bの中には、利用者の手に相当する画像領域が、高輝度の画素から成る所定値以上の面積の連続した領域として現れる。従って、認識領域内に利用者の手が存在していれば、その手に相当する画像領域を容易に抽出することができる。
【0076】
ステップ236で動きが有った物体に相当する画像領域が抽出されなかった場合、及びステップ236で抽出された画像領域が利用者の手に相当する画像領域でないと判定した場合には、認識領域内に利用者の手は存在していないと判断できるので、ステップ238の判定が否定されて特徴点座標演算処理を終了する。
【0077】
一方、ステップ238の判定が肯定された場合にはステップ240へ移行する。本実施形態では、利用者による指示動作やクリック動作を認識するための特徴点として利用者の手の指先を用いており、ステップ240では今回取り込んだ画像データが表す画像A上での特徴点P(図6(B)に示す点PA参照)の位置(2次元座標)を演算する。
【0078】
本実施形態において、ビデオカメラ20Aの配置位置は、情報入力空間がビデオカメラ20Aによって正確に直上より撮像されるように定められているので、特徴点が鉛直方向に沿って移動(X座標値及びY座標値が変化することなく移動)した場合には、特徴点に対応する画像A上の点PAの位置は殆ど変化しない。
【0079】
このように、画像A上での点PAの位置はXYZ座標系のXY平面(水平面)内における特徴点の位置に略対応しているので、ステップ240の演算により水平面内の特徴点の2次元座標(x,y)が求まることになる。
【0080】
ステップ244では、ビデオカメラ20Bから出力される画像Bを表す画像データを取り込み、次のステップ246では取り込んだ画像データを制御部16のRAM等に記憶する。
【0081】
ステップ248では、前回の処理周期で取り込んだ画像Bの画像データ、及び今回取り込んだ画像Bの画像データを用い、双方の画像データが表す画像の差分を画素毎に演算し、「差分有り」の画素のみを抽出することで、動きが有った物体に相当する画像領域を抽出する。そしてステップ250では、今回取り込んだ画像データが表す画像B上での特徴点(図6(B)に示す点PB参照)の位置(2次元座標)を演算する。
【0082】
図6(A)にも示すように、ビデオカメラ20Bによる撮像範囲は、ビデオカメラ20Aによる撮像範囲に対してX方向に偏倚しているので、画像A上での特徴点の位置と画像B上での特徴点の位置は、例として図6(B)に点PA及び点PBとして示すようにX方向に沿ってずれる(偏差dが生ずる)ことになる。
【0083】
また、偏差dの大きさは特徴点の高さ位置(Z方向位置)に応じて変化し、仮に特徴点が凹面鏡28の反射面上に位置していたとすると偏差dは0になり、特徴点が情報入力空間の床面上に位置していたとすると偏差dは最大となる(偏差dの最大値は、情報入力空間の床面上におけるビデオカメラ20A,20Bの撮像範囲のずれ量に一致する)。従って、偏差dと特徴点の高さ(手の高さ)Hとの間には図6(C)に示すような関係がある。本実施形態では、図6(C)に示すような偏差dと特徴点の高さHとの関係を表すマップが記憶部18に予め記憶されている。
【0084】
上記に基づき、ステップ252では画像A上での特徴点の位置と画像B上での特徴点の位置のX方向に沿った偏差dを演算し、次のステップ254では、記憶部18に記憶されている偏差dと特徴点の高さHとの関係を表すマップに基づいて、ステップ252で求めた偏差dに対応する特徴点の高さH、すなわちXYZ座標系における特徴点の高さ(座標値z)を求める。
【0085】
そして、ステップ256では、特徴点の3次元座標(x,y,z)を現在の時刻(演算時刻)と対応付けて記憶部18等に記憶する。特徴点座標演算処理は繰り返し実行されるので、該処理によって演算される特徴点の3次元座標は、利用者の姿勢や動作の変化に応じて逐次更新される。
【0086】
なお、求めた特徴点の高さHが極端に高い、或いは極端に低い場合には、特徴点の誤認識等が生じている可能性が非常に高いので、例えば高さHが、図2及び図3に示す認識領域の上側境界よりも高い、或いは下側境界よりも低い場合には、認識領域内に利用者の手は存在していないと判断する等の例外処理を行うようにしてもよい。
【0087】
また、特徴点座標演算処理は、例えば周知のDLT(Direct Liner Transformation)法やステレオ法を用いて行ってもよい。
【0088】
特徴点座標演算処理が終了すると、指示判断処理(図4)のステップ204へ移行し、基準点の3次元座標を演算する基準点座標演算処理を行う。
【0089】
以下、この基準点座標演算処理について、図7のフローチャートを参照して説明する。
【0090】
ステップ260では、先に説明した特徴点座標演算処理(図5)によって演算されて記憶部18に記憶された特徴点の3次元座標データ(x,y,z)を参照し、現時点より所定時間前から現時点迄の期間内に演算された特徴点の3次元座標データが所定数(例えば特徴点の位置変化の回転中心に相当する座標を演算する処理(詳細は後述)の実行に十分な数:例えば16個)以上有るか否か判定する。利用者が情報入力空間に到来した当初は、特徴点座標演算処理の実行回数が所定数に満たないため、上記の条件を満足する特徴点の3次元座標データの数が所定数に達せず、回転中心に相当する点の座標を高精度に演算することは非常に困難である。
【0091】
このため、ステップ260の判定が否定された場合にはステップ274へ移行し、記憶部18に記憶されている特徴点の3次元座標に基づいて、特徴点の位置変化の回転中心に相当する点の3次元座標を推定演算する。この推定演算は、例えば以下のようにして行うことができる。
【0092】
すなわち、例として図8(A)に示すように、利用者が、指示動作として、肘を直角又は直角に近い角度迄曲げ、手を比較的低い位置に維持した状態(ローポジション)で、肘より先の部分のみを動かすことで指示位置を変化させる動作を行っている場合は、おおよそ肘の関節を回転中心として特徴点の位置が変化することが多い。
【0093】
また、例として図8(C)に示すように、利用者が、指示動作として、腕を比較的真っ直ぐに前方へ伸ばし、手を比較的高い位置に維持した状態(ハイポジション)で、腕全体を動かすことで指示位置を変化させる動作を行っている場合には、おおよそ肩の関節を回転中心として特徴点の位置が変化することが多い。
【0094】
更に、例として図8(B)に示すように、利用者が、指示動作として、手をハイポジションとローポジションの中間的な位置に維持した状態(ミドルポジション)で指示位置を変化させる動作を行っている場合には、肘及び肩の関節が各々動かされることにより、肩の関節よりも若干後方の位置を回転中心として特徴点の位置が変化することが多い。
【0095】
従って、ステップ274の推定演算は、例えば利用者の姿勢(状態)がローポジション/ミドルポジション/ハイポジションの何れであるかを判断し、特徴点の位置変化の回転中心に相当する3次元座標として、肘の関節に相当する位置の3次元座標、肩の関節に相当する位置の3次元座標、及び肩の関節よりも若干後方の位置の3次元座標の何れかを、利用者の姿勢(状態)に応じて選択的に演算することによって行うことができる。
【0096】
なお、利用者の姿勢(状態)がローポジション/ミドルポジション/ハイポジションの何れであるかは、利用者の身長と特徴点の高さ(座標値z)の比率から判断でき、利用者のおおよその身長は、先に説明した特徴点座標演算処理(図5)のステップ252,254と同様に、画像A,B上での利用者の頭部の位置のX方向に沿った偏差dを演算し、偏差dと高さHとの関係を表すマップを用いることで求めることができる。
【0097】
特徴点の位置変化の回転中心に相当する3次元座標が推定演算されるとステップ276へ移行し、ディスプレイ14までの距離及びディスプレイ14の大きさに応じて回転中心に相当する点の3次元座標(X,Y,Z)を修正することで、基準点の3次元座標(X,Y,Z)を演算し、演算した基準点の3次元座標(X,Y,Z)を記憶部18に記憶させて基準点座標演算処理を終了する。
【0098】
一方、利用者が情報入力空間に到来して指示動作を開始してから若干の時間が経過すると、基準点座標演算処理において、現時点より所定時間前から現時点迄の期間内に演算された特徴点の3次元座標データが所定数以上になることでステップ260の判定が肯定される。ステップ260の判定が肯定されるとステップ262へ移行し、上記の条件に合致する特徴点の3次元座標データ群のうち、利用者によって後述するクリック動作が行われた期間に対応する特徴点の3次元座標データが有るか否か判定する。この判定は、例えば判定対象の特徴点の3次元座標データ群の各データを演算時刻順に時系列に並べ、各データの中に座標値xが急激に所定値以上変化しているデータが存在しているか否かを探索すること等によって、各クリック動作に相当するデータが存在するか否かを探索することで行うことができる。
【0099】
利用者によってクリック動作が行われた期間に対応する特徴点の位置は、後述する特徴点の位置変化の回転中心に相当する点の座標の演算における演算精度低下の原因となるので、ステップ262の判定が肯定された場合はステップ264へ移行し、該当する特徴点の3次元座標データを、回転中心に相当する点の座標の演算における演算対象から除外する処理を行った後に、ステップ266へ移行する。なお、ステップ262の判定が否定された場合には、何ら処理を行うことなくステップ266へ移行する。
【0100】
ステップ266では、演算対象の特徴点の3次元座標データ群に、水平面内(XY平面内)及び垂直面内(YZ平面内)での座標の変化が有るか否か判定する。この判定が否定される場合は、例えば利用者が一定の位置を指示している状態を継続している等の場合であり、このような状態でのデータを用いて特徴点の位置変化の回転中心を演算することは、利用者による指示位置の判断精度の低下に繋がる。このため、ステップ266の判定が否定された場合にはステップ274へ移行し、前述の推定演算を行う。
【0101】
一方、ステップ266の判定が肯定された場合にはステップ268へ移行し、演算対象の特徴点の3次元座標データ群が表す特徴点の移動軌跡に基づいて、特徴点の位置変化の回転中心に相当する点の3次元座標(X,Y,Z)を演算する。
【0102】
以下、ステップ268における演算について詳述する。特徴点の位置は、空間内の特定の位置(この位置は利用者の動作によって相違する)を中心とする仮想的な球の表面に沿って移動すると見なすことができる。座標(X,Y,Z)を中心とする半径Rの球面は次の(1)式で表すことができる。
(x−X)2+(y−Y)2+(x−X)2=R2 …(1)
なお、(1)式における座標(x,y,z)は球面上の任意の点の座標である。特徴点のn個の3次元座標データを(xi,yi,zi)とし(i=1,2,…,n)、これらを(1)式に代入して最小二乗法の極値を座標値X及び半径Rでとると、以下のようになる。
【0103】
【数1】
【0104】
上記の結果より次の(3)式が得られる。
【0105】
【数2】
【0106】
(3)式を(2)式に代入して整理すると、次の(4)式が得られる。
【0107】
【数3】
【0108】
上記と同様に座標値Y,Zについて解くと、次の(5),(6)式が得られる。
【0109】
【数4】
【0110】
続いて、(4),(5),(6)式を連立させて座標値X,Y,Zを解く。これらを行列式で表すと次の(7)式のようになる。
【0111】
【数5】
【0112】
そして、(7)式の解は以下の(8)〜(10)式のようになる。
【0113】
【数6】
【0114】
従って、ステップ268は、演算対象の特徴点の3次元座標データ(xi,yi,zi)を(8)〜(10)式に各々代入することで、回転中心に相当する点の3次元座標(X,Y,Z)を求めることができる。また半径Rは、演算対象の特徴点の3次元座標データ、及び(8)〜(10)式の演算結果を(3)式に各々代入することで求めることができる。なお、ステップ268は演算手段に対応している。
【0115】
次のステップ270では、以前に(現在の利用者が情報入力空間に到来してから現在までの間に)特徴点の位置変化の回転中心に相当する点の3次元座標を演算したか否か判定する。判定が否定された場合には何ら処理を行うことなくステップ276へ移行するが、判定が肯定された場合にはステップ272へ移行し、以前に演算した回転中心に相当する点の3次元座標も考慮して(例えば加重平均値を演算する等により)、回転中心に相当する点の3次元座標(X,Y,Z)を最終決定する。
【0116】
そして次のステップ276では、ディスプレイ14までの距離及びディスプレイ14の大きさに基づいて回転中心に相当する点の3次元座標(X,Y,Z)が修正されることで基準点の3次元座標(X,Y,Z)が演算され、記憶部18に記憶される。
【0117】
このように、本実施形態では、利用者が情報入力空間に到来して指示動作を開始してから若干の時間が経過した後(現時点より所定時間前から現時点迄の期間内に演算された特徴点の3次元座標データが所定数以上になった後)は、特徴点の移動軌跡に基づき、特徴点の位置変化の回転中心に相当する点の3次元座標を最小二乗法によって演算し、この回転中心に相当する点の3次元座標に基づいて設定した基準点の3次元座標を用いて利用者による指示位置を判断しているので、指示動作として利用者が図8(A)〜(C)に示す各種動作(姿勢)の何れを行っている場合にも、また図9に示すように、利用者の体格が大きく相違している場合にも、これらの影響を受けることなく基準点を適切な位置に設定することができ、利用者による指示位置を精度良く判断することができる。
【0118】
また、基準点座標演算処理(及び特徴点座標演算処理)は繰り返し行われるので、例えば図10(A)、(B)に示すように利用者が指示動作に用いている腕が利用途中で変化した場合、或いは指示動作として利用者が行っている動作が利用途中で変化した場合(例えばハイポジションからミドルポジション又はローポジションに変化した等の場合)にも、この変化に追随して基準点を適切な位置に切り替えることができ、利用者による指示位置を常に精度良く判断することができる。
【0119】
基準点座標演算処理が終了すると、図4のフローチャートのステップ206へ移行し、ディスプレイ14に表示すべきカーソルの座標を演算する。
【0120】
具体的には、先の特徴点座標演算処理で演算された特徴点の3次元座標(x,y,z)と、基準点座標演算処理で演算された基準点の3次元座標(X,Y,Z)に基づき、利用者の指示動作による指示方向を表す線として、図11に示すように、基準点P0と特徴点PXとを結ぶ仮想線(図11の仮想線54参照)の延びる方向を求め、利用者が指し示している位置(指示位置)として、ディスプレイ14の表示面を含む平面と、設定した仮想線の交点(図11に示す点S参照)の座標(2次元座標)を演算する。
【0121】
そして、演算したカーソル位置の座標をPC12へ通知する。PC12は、ステップ200で設定されたカーソル情報に基づくカーソルを制御部16から指定された座標に表示させる。これにより、利用者が指先等をディスプレイ14に向けて指し示すだけで、その位置にカーソルが表示される。なお、ステップ206は、本発明の判断手段に対応している。
【0122】
次のステップ208では、特徴点座標演算処理で演算された特徴点の3次元座標(x,y,z)に基づいて、特徴点が停止状態か否かを判定する。本実施形態では、特徴点のX方向の動きを無視し、2次元平面としてのYZ平面の動きのみに着目して特徴点が停止状態か否かを判定する。すなわち、2次元座標(y,z)に基づいて特徴点が停止状態か否かを判定する。なお、ステップ208は、本発明の停止状態判定手段及び切替手段に対応している。
【0123】
具体的には、現在から過去における所定時間内に演算した特徴点の2次元座標(y,z)に基づいて特徴点のYZ平面における所定時間内の移動量を算出し、この移動量に基づいて停止状態か否かを判定する。
【0124】
例えば、現在時刻(時刻t)における特徴点のYZ成分ベクトルをr(y,z,t)=r(t)で表し、特徴点のサンプリング間隔(演算間隔)をΔtとした場合、過去n回(nは自然数)演算した特徴点のYZ成分ベクトルの各々と現在のYZ成分ベクトルとの差(距離)である|r(t)−r(t−Δt)|、|r(t)−r(t−2Δt)|、|r(t)−r(t−3Δt)|、…|r(t)−r(t−nΔt)|の各々が全て予め定めた所定閾値以下の場合には特徴点が停止状態であると判定し、これ以外の場合には特徴点が停止状態でないと判定することができる。
【0125】
また、現在時刻(時刻t)における特徴点のYZ平面における移動速度をv(t)={r(t)−r(t−Δt)}/Δtで表し、過去n回演算した特徴点のYZ平面における移動速度である|v(t)|、|v(t−Δt)|、|v(t−2Δt)|、…|v(t−nΔt)|の各々が全て予め定めた所定閾値以下の場合には特徴点が停止状態であると判定し、これ以外の場合には特徴点が停止状態でないと判定するようにしてもよい。なお、上記の所定閾値は、特徴点がYZ平面で多少移動してもほぼ停止状態であるとみなすことができる値に設定される。
【0126】
このように、X方向、すなわちクリック動作に必要となる方向の動作を無視し、ポインティング動作に必要なYZ平面における特徴点の移動量のみに基づいて特徴点が停止状態か否かを判定するため、簡単な処理で精度よく停止状態を判定することができる。
【0127】
ステップ208で停止状態でないと判定された場合には、ステップ202へ移行し、特徴点が停止状態であると判定されるまで上記と同様の処理、すなわちステップ202〜208の処理を繰り返す。この間、逐次カーソル位置の座標が演算されてPC12に通知され、PC12では、設定された移動率でカーソルが移動するようにディスプレイ14を制御する。
【0128】
一方、停止状態であると判定された場合にはステップ210へ移行する。ステップ210では、クリックモード設定処理を行う。具体的には、ステップ200と同様に、ディスプレイ14に表示するカーソルに関する設定処理等を行う。
【0129】
カーソルに関する設定処理では、カーソルの移動率をポインティングモードのp倍(0≦p≦1)に設定する。ここで、p=1の場合はポインティングモードの場合と同一の移動率となり、p=0の場合はカーソルが全く移動しないこととなる。
【0130】
なお、クリックモードのときは、カーソルを移動させるのが主目的ではなく、指し示した位置をクリックするのが主目的であるため、正確にその位置をクリックできることが優先される場合が多い。従って、クリックモードのときは、ポインティングモードのときよりも移動率を低下させる、すなわちpを1未満にすることが好ましい。これにより、利用者の腕がぶれたりすることにより、これに連動してカーソル位置が変動し、クリック位置がずれてしまうのを防ぐことができ、利便性を向上させることができる。
【0131】
また、カーソルのデザインは、ポインティングモードの場合と異なるデザインを設定する。例えばポインティングモードのときのカーソルのデザインを矢印又は十字のデザインとした場合、クリックモードでは、指の形状やボタンの形状等に設定する。なお、カーソルの色のみを異ならせるようにしてもよい。
【0132】
このようにポインティングモードとクリックモードとでカーソルを異ならせることにより、利用者は現在のモードがポインティングモードなのかクリックモードなのかを容易かつ的確に認識することができる。
【0133】
ステップ212では、ステップ202と同様に特徴点座標演算処理を行い、次のステップ214では、ステップ204と同様に基準点座標演算処理を行う。
【0134】
そして、ステップ216では、ステップ206と同様に、特徴点座標演算処理で演算された特徴点の3次元座標(x,y,z)と、基準点座標演算処理で演算された基準点の3次元座標(X,Y,Z)と基づいてディスプレイ14に表示すべきカーソル位置の座標を演算し、PC12へ通知する。これにより、ディスプレイ14には利用者が指し示した位置にクリックモードに対応した形状のカーソルが表示される。
【0135】
ところで、クリック動作として、種々の動作を採用することができるが、本実施形態では、利用者が手を前方に素早く移動させる動作(図12(A)参照、以下「前進クリック」という)や、利用者が手を後方に素早く移動させる動作(図12(B)参照、以下「後進クリック」という)の他、利用者が手を後方に素早く移動させる動作を2回繰り返す動作(図12(C)参照、以下「後進ダブルクリック」という)、利用者が手を後方に移動させた後、前方に手を移動させ、元の位置に戻す動作(図12(D)参照、以下「後ストローク」という)をクリック動作としている。
【0136】
このクリック動作は、ディスプレイ14の表示面上の特定の箇所を指し示して選択する動作等として極めて自然な動作であり、利用者は違和感を感ずることなくクリック動作を行うことができる。
【0137】
また、このようなクリック動作の初期動作では、利用者の手が前方向、すなわちディスプレイ14に近づく方向に移動する動作又は利用者の手が後方向、すなわちディスプレイ14から離間する方向に移動する動作が必ず含まれることとなる。
【0138】
そこで、次のステップ218では、特徴点のX座標に基づいて、特徴点のX方向における移動速度が所定閾値以上か否かを判定することにより、クリック動作における初期動作がなされたか否かを判定する。
【0139】
具体的には、特徴点のt時刻におけるX方向のX成分ベクトルをx(t)で表すと共に、特徴点のX方向のt時点における移動速度をVx(t)={x(t)−x(t−Δt)}/Δtで表した場合、移動速度Vx(t)が予め定めた前クリック閾値以上又は後クリック閾値以上になったか否かを判定する。
【0140】
ここで、前クリック閾値は、特徴点が前方向に素早く移動した場合に前クリック閾値以上となるような値に設定される。同様に、後クリック閾値は、特徴点が後方向に素早く移動した場合に前クリック閾値以上となるような値に設定される。なお、前クリック閾値及び後クリック閾値の絶対値が同一の値となるように各々の閾値を設定してもよいし、異なる値となるようにしてもよい。
【0141】
移動速度Vx(t)が前クリック閾値以上でもなく、後クリック閾値以上でもない場合、すなわちクリック動作の初期動作が行われていない場合には、ステップ220へ移行し、移動速度Vx(t)が前クリック閾値以上又は後クリック閾値以上になった場合、すなわちクリック動作の初期動作が行われた場合には、ステップ222へ移行する。
【0142】
ステップ220では、ステップ208と同様に、特徴点座標演算処理で演算された特徴点の3次元座標(x,y,z)、詳しくは2次元座標(y,z)に基づいて、特徴点が停止状態か否かを判定する。なお、ステップ220の処理は本発明の停止状態判定手段及び切替手段に対応している。
【0143】
このとき、閾値をステップ208で用いる所定閾値と異なる値に設定してもよく、ステップ220で用いる閾値をステップ208で用いる閾値よりも大きい値に設定することが好ましい。これにより、利用者の手がクリック動作をする直前に変動することによって特徴点がYZ平面で変動し、誤ってポインティングモードに移行してしまうのを防ぐことができる。
【0144】
このように、特徴点のYZ平面における移動量がポインティングモードのときよりも大きくならないとポインティングモードへ移行することができないため、利用者の使い勝手を向上させることができる。
【0145】
また、利用者が一旦手の動きを止めてクリック動作に入るべくクリックモードへ移行したものの、再度ポインティングモードに移行したい場合には、手をある程度大きくYZ平面で移動させるだけでよいので、ポインティングモードに移行するために手の形状を変化させたりするなどの特別な動作をする必要がなく、簡単かつ自然な動作でポインティングモードに切り替えることができる。
【0146】
一方、クリック動作の初期動作が行われたと判定された場合には、ステップ222において、特徴点の移動方向が前方か否かが判断される。これは、移動速度Vx(t)が正か負かによって判断することができる。そして、特徴点の移動方向が前方の場合、すなわち移動速度Vx(t)が正の値の場合にはステップ224へ移行し、移動方向が後方の場合、すなわち移動速度Vx(t)が負の値である場合には、ステップ226へ移行する。
【0147】
ステップ224では、クリック種別を表すクリック種別変数に前進クリックを表す値(例えば‘1’)を代入し、記憶部18へ記憶する。
【0148】
前進クリック動作は、図12(A)に示したように、特徴点としての利用者の指先が静止している状態を初期位置として、前方に指先を移動させたあと元の場所に戻る動作、すなわち一旦前方に指先を移動させた後、後方向に指先を移動させる動作が基本であるが、本実施形態では、特徴点が所定閾値以上の速度で前方に移動したことのみをもって前進クリック動作がなされたものとして扱う。
【0149】
これは、指先が後方向に移動したことを検出してから前進クリックであることを認識し、前進クリックに対応する処理を行ったのでは利用者にとって反応が鈍いと感じてしまう場合があるためである。このように、特徴点が所定閾値以上の速度で前方に移動したことのみをもって前進クリック動作がなされたものとすることにより、利用者は違和感を感じることなく操作することが可能となる。
【0150】
なお、反応性に問題がなければ、前方に指先を移動させたあと後方に指先を移動させたことを検出することにより前進クリックと認識するようにしてもよい。
【0151】
一方、移動方向が後方の場合には、ステップ226において、後進側クリック判定処理を行う。以下、この処理について図13に示すフローチャートを参照して説明する。
【0152】
初期動作が後進側のクリック動作としては、図12(B)〜(D)に示すように、後進クリック、後進ダブルクリック、後進ストローク等があるが、このようなクリック動作では、前進クリックに比べて処理の反応性よりも処理の確実性が要求されるため、初期動作後所定時間の間の特徴点のX方向における軌跡、すなわちX座標を求め、これに基づいて後進側のクリック動作を判別する。
【0153】
このため、図13に示すように、ステップ280では、まずステップ208と同様の特徴点座標演算処理を行う。
【0154】
次のステップ282では、予め定めた所定時間経過したか否かを判定し、所定時間経過していなければステップ280へ戻って再び特徴点座標演算処理を行う。この処理はΔt時刻毎に行われる。なお、所定時間は、例えば後ストロークや後進ダブルクリック等のクリック動作に比較的時間を要する一連のクリック動作が終了するのに十分な時間に設定される。
【0155】
所定時間経過すると、ステップ284へ移行し、ステップ280で演算された特徴点の3次元座標(x,y,z)のうちX座標のみを用いて、ステップ218と同様に各時刻の移動速度Vx(t)を求める。
【0156】
次のステップ286では、所定時間内に前クリック閾値以上となった移動速度Vx(t)が存在するか否かを判断し、所定時間内に前クリック閾値以上となった移動速度Vx(t)が存在しない場合には、ステップ288へ移行する。
【0157】
ステップ288では、クリック種別を表すクリック種別変数に判別不能を表す値(例えば‘0’)を代入して記憶部18へ記憶し、本ルーチンを終了する。すなわち、初期動作として後方に特徴点が移動し、その後特徴点が所定時間内に前方へ所定速度以上で移動していない場合には、図12(B)〜(D)の何れの動作にも当てはまらないため、判別不能とする。
【0158】
一方、所定時間内に前クリック閾値以上となった移動速度Vx(t)が存在する場合には、ステップ290へ移行し、所定時間内において前クリック閾値以上となった後に後クリック閾値以上となった移動速度Vx(t)が存在するか否かを判断する。
【0159】
そして、所定時間内に後クリック閾値以上となった移動速度Vx(t)が存在しない場合には、ステップ292へ移行する。
【0160】
ステップ292では、クリック種別を表すクリック種別変数に後進クリックを表す値(例えば‘2’)を代入して記憶部18へ記憶し、本ルーチンを終了する。すなわち、図14に示すように、初期動作として後方に特徴点が移動し、その後特徴点が前方へ前クリック閾値以上の速度で移動し、その後特徴点が後方へ後クリック閾値以上の速度で移動していない場合には、後進クリック動作がなされたと判断する(図12(B)も参照)。
【0161】
また、前クリック閾値以上となった後に所定時間内において後クリック閾値以上になった移動速度Vx(t)が存在する場合には、ステップ294へ移行し、前クリック閾値以上となった後に後クリック閾値以上となり、さらに前クリック閾値以上になった移動速度Vx(t)が存在するか否かを判断する。
【0162】
そして、所定時間内において前クリック閾値以上となった後に後クリック閾値以上となり、さらに前クリック閾値以上になった移動速度Vx(t)が存在しない場合には、ステップ296へ移行する。
【0163】
ステップ296では、クリック種別を表すクリック種別変数に後ストロークを表す値(例えば‘3’)を代入して記憶部18へ記憶し、本ルーチンを終了する。すなわち、図14に示すように、初期動作として後方に特徴点が移動し、その後特徴点が前方へ前クリック閾値以上の速度で移動し、その後特徴点が後方へ後クリック閾値以上の速度で移動し、その後特徴点が前方へ前クリック閾値以上の速度で移動していない場合には、後ストローク動作がなされたと判断する(図12(C)も参照)。
【0164】
前クリック閾値以上となった後に後クリック閾値以上となり、さらに前クリック閾値以上になった移動速度Vx(t)が存在する場合には、ステップ298へ移行し、クリック種別を表すクリック種別変数に後進ダブルクリックを表す値(例えば‘4’)を代入して記憶部18へ記憶し、本ルーチンを終了する。すなわち、図14に示すように、初期動作として後方に特徴点が移動し、その後特徴点が前方へ前クリック閾値以上の速度で移動し、その後特徴点が後方へ後クリック閾値以上の速度で移動し、その後特徴点が前方へ前クリック閾値以上の速度で移動した場合には、後進ダブルクリック動作がなされたと判断する(図12(D)も参照)。なお、ステップ218、222、224、226の処理は本発明のクリック判定手段に対応している。
【0165】
このように、特徴点のX方向の移動のみを考慮することで後進クリック等の各種クリック動作の判別処理を簡便に行うことができる。
【0166】
なお、図13では最初にステップ280〜284において一括して所定時間の特徴点の座標を演算すると共に移動速度を演算してからクリック動作の判別を行っているが、図15に示すように制御してもよい。
【0167】
すなわち、ステップ300において、図13に示すステップ280と同様に特徴点座標演算処理を行い、次のステップ302において、その時刻における移動速度Vx(t)を図13に示すステップ284と同様に行う。そして、ステップ304で移動速度Vx(t)が前クリック閾値以上か否かを判断し、前クリック閾値以上であればステップ310へ移行し、前クリック閾値以上でなければステップ306へ移行する。
【0168】
ステップ306では、予め定めた所定時間経過したか否かを判断し、所定時間経過した場合には、ステップ308で図13に示すステップ288と同様の処理を行い、所定時間経過していない場合には、ステップ300へ戻って上記と同様の処理を繰り返す。
【0169】
ステップ310では、ステップ300と同様に特徴点座標演算処理を行い、次のステップ312において、その時刻における移動速度Vx(t)をステップ302と同様に行う。そして、ステップ314で移動速度Vx(t)が後クリック閾値以上か否かを判断し、後クリック閾値以上であればステップ320へ移行し、後クリック閾値以上でなければステップ316へ移行する。
【0170】
ステップ316では、ステップ306と同様に予め定めた所定時間経過したか否かを判断し、所定時間経過した場合には、ステップ318で図13に示すステップ292と同様の処理を行い、所定時間経過していない場合には、ステップ310へ戻って上記と同様の処理を繰り返す。
【0171】
ステップ320では、ステップ300と同様に特徴点座標演算処理を行い、次のステップ322において、その時刻における移動速度Vx(t)をステップ302と同様に行う。そして、ステップ324で移動速度Vx(t)が前クリック閾値以上か否かを判断し、前クリック閾値以上であればステップ326へ移行し、前クリック閾値以上でなければステップ326へ移行する。
【0172】
ステップ326では、ステップ306と同様に予め定めた所定時間経過したか否かを判断し、所定時間経過した場合には、ステップ328で図13に示すステップ296と同様の処理を行い、所定時間経過していない場合には、ステップ320へ戻って上記と同様の処理を繰り返す。
【0173】
また、ステップ330では、図13に示すステップ298と同様の処理を行う。
【0174】
なお、図13の場合には、所定時間は、後ストローク等の比較的時間を要する一連のクリック動作が終了するのに十分な時間に設定する必要があるが、図15の場合においては、一連のクリック動作が終了するのに十分な時間である必要はなく、クリック動作を構成する動作(例えば前進クリックや後進クリック)を行うのに十分な時間であればよい。このため、図15における所定時間は図13における所定時間よりも短い時間に設定することができる。
【0175】
後進側クリック判定処理が終了すると、図4のステップ227へ移行し、クリック種別が判別不能であるか否かを判断する。これは、記憶部18に記憶されたクリック種別変数を参照することにより判断することができる。
【0176】
そして、クリック種別が判別不能だった場合には、ステップ212へ戻り、上記と同様の処理を繰り返し、クリック種別が判別不能でなかった場合、すなわち、クリック種別が前進クリック、後進クリック、後ストローク、後進クリックの何れかであった場合には、ステップ228へ移行する。
【0177】
ステップ228では、クリック種別をPC12に通知する。これにより、PC12は、通知されたクリック種別に対応する処理を行い、処理結果などをディスプレイ14に表示させる。
【0178】
なお、各クリック動作の機能としては、次に示すようなものが考えられる。例えば、前進クリックは入出力デバイスとしてのマウスの左ボタンのシングルクリックに相当する機能、後進クリックはマウスの右ボタンのシングルクリックに相当する機能、後進ダブルクリックはマウスの左ボタンのダブルクリックに相当する機能、後ストロークはマウスの左ボタンによるドラッグ開始又はドラッグ終了に相当する機能とすることができる。
【0179】
このように、X方向の移動のみによって各種クリック動作を認識するため、自然かつ簡単な動作で様々なクリック動作を行うことができる。
【0180】
クリック種別をPC12に通知した後は、ステップ229において、所定時間待機する待機処理を行い、ステップ200へ戻り、ポインティングモードに移行する。
【0181】
このように、クリック動作を行った後に一定時間待機してカーソルの移動やクリック種別の判定を行わないようにすることにより、利用者の腕がぶれたりすることによって利用者の意図に反して前進クリックが連続して入力されてしまったりするのを防ぐことができる。
【0182】
また、クリック動作がなされた場合には、自動的にポインティングモードに移行するため、利用者はポインティングモードへ移行するための特別な動作をする必要がなく、利便性を向上させることができる。
【0183】
【発明の効果】
以上説明したように、本発明によれば、自然かつ簡単な操作によって利用者による指示位置又は指示方向の判断精度を向上させることができる、という効果を有する。
【図面の簡単な説明】
【図1】本実施形態に係る情報表示装置の概略構成を示すブロック図である。
【図2】カメラと凹面鏡の位置関係、及び各カメラの撮像範囲を示す情報入力空間の側面図である。
【図3】(A)は情報入力空間の正面図、(B)は情報入力空間の側面図である。
【図4】指示判断処理の内容を示すフローチャートである。
【図5】特徴点座標演算処理の内容を示すフローチャートである。
【図6】(A)は各カメラによる撮像範囲、(B)は各カメラによって得られた各画像の一例を各々示すイメージ図、(C)は各画像上での指先位置の差から手の高さを求めるためのマップの内容の一例を示す線図である。
【図7】第1実施形態に係る基準点座標演算処理の内容を示すフローチャートである。
【図8】利用者による各種の指示動作における特徴点の回転中心の一例を各々示すイメージ図である。
【図9】利用者の体格の相違が反映された基準点の位置を示すイメージ図である。
【図10】利用者が指示動作に用いる腕を変えた場合の基準点の移動を示すイメージ図である。
【図11】特徴点及び基準点から指示位置の座標を演算する処理を説明するための、(A)は側面図、(B)及び(C)は平面図である。
【図12】(A)は前進クリック動作、(B)は後進クリック動作、(C)は後進ダブルクリック動作、(D)は後ストローク動作を説明するためのイメージ図である。
【図13】後進側クリック処理の内容を示すフローチャートである。
【図14】各種クリック動作における指先位置や移動速度について説明するための線図である。
【図15】後進側クリック処理の内容の他の例を示すフローチャートである。
【符号の説明】
10 情報表示装置
12 PC
14 大画面ディスプレイ
16 制御部
18 記憶部
20A、20B ビデオカメラ
22 撮像制御装置
24 利用者検出センサ
28 凹面鏡
26A,26B 照明装置
Claims (7)
- 互いに異なる複数の方向から利用者を撮像する撮像手段と、
前記撮像手段の撮像によって得られた画像に基づいて、利用者が特定の位置又は方向を指し示す動作を行っている際の指示位置又は指示方向の変化に応じて位置が変化する特徴点の3次元座標を認識する認識手段と、
前記認識手段によって認識された特徴点の3次元座標に基づいて、前記利用者による指示位置又は指示方向を判断する判断手段と、
前記認識手段によって認識された特徴点の3次元座標に基づいて、前記特徴点が停止状態か否かを判定する停止状態判定手段と、
前記停止状態判定手段による判定結果に基づいて、少なくとも特定の位置又は方向を指し示す動作を行うためのポインティングモードと、指し示した特定の位置又は方向に存在する対象物を選択する動作を含むクリック動作を行うためのクリックモードとを切り替える切替手段と、
前記クリックモードのときに前記クリック動作が行われたか否かを判定するクリック判定手段と、
を含む指示動作認識装置。 - 前記停止状態判定手段は、少なくとも前記利用者による指示方向と交差する予め定めた2次元平面における前記特徴点の移動量に基づいて、前記特徴点が停止状態か否かを判定することを特徴とする請求項1記載の指示動作認識装置。
- 前記切替手段は、前記特徴点が停止状態であると判定された場合にクリックモードに切り替え、前記クリックモードにおいて前記クリック動作が行われた場合に前記ポインティングモードに切り替えることを特徴とする請求項1又は請求項2記載の指示動作認識装置。
- 前記切替手段は、前記クリックモードにおいて前記特徴点が停止状態であると判定された場合にクリックモードに切り替え、前記クリックモードにおいて前記特徴点が停止状態でないと判定された場合に前記ポインティングモードに切り替えることを特徴とする請求項1乃至請求項3の何れか1項に記載の指示動作認識装置。
- 前記クリック判定手段は、少なくとも前記利用者による指示方向と交差する予め定めた2次元平面と略直交する方向における前記特徴点の移動量に基づいて前記クリック動作の種類を判定することを特徴とする請求項1乃至請求項4の何れか1項に記載の指示動作認識装置。
- 任意の情報を表示すると共に、前記判断手段により判断された前記利用者による指示位置又は指示方向をカーソルにより表示する表示手段と、
前記ポインティングモードの場合とクリックモードの場合とでカーソルが異なるように前記表示手段を制御する制御手段と、
をさらに備えたことを特徴とする請求項1乃至請求項5の何れか1項に記載の指示動作認識装置。 - 前記制御手段は、前記クリックモードでの前記カーソルの移動率が、前記ポインティングモードの場合よりも小さくなるように前記表示手段を制御することを特徴とする請求項6記載の指示動作認識装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003038658A JP2004246814A (ja) | 2003-02-17 | 2003-02-17 | 指示動作認識装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003038658A JP2004246814A (ja) | 2003-02-17 | 2003-02-17 | 指示動作認識装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004246814A true JP2004246814A (ja) | 2004-09-02 |
Family
ID=33023121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003038658A Pending JP2004246814A (ja) | 2003-02-17 | 2003-02-17 | 指示動作認識装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004246814A (ja) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006209359A (ja) * | 2005-01-26 | 2006-08-10 | Takenaka Komuten Co Ltd | 指示動作認識装置、指示動作認識方法及び指示動作認識プログラム |
JP2007172303A (ja) * | 2005-12-22 | 2007-07-05 | Seiko Epson Corp | 情報入力システム |
KR100947502B1 (ko) | 2007-02-22 | 2010-03-17 | 엠텍비젼 주식회사 | 피사체 움직임 감지 장치 및 방법 |
WO2010044204A1 (ja) * | 2008-10-15 | 2010-04-22 | パナソニック株式会社 | 光投射装置 |
JP2010277197A (ja) * | 2009-05-26 | 2010-12-09 | Sony Corp | 情報処理装置、情報処理方法およびプログラム |
JP2011505639A (ja) * | 2007-12-05 | 2011-02-24 | アルメーファ・アクチエンゲゼルシャフト | 画面と指示体との間でインタラクションを行うためのインタラクション装置 |
JP2012146303A (ja) * | 2011-01-06 | 2012-08-02 | Samsung Electronics Co Ltd | モーションによって制御されるディスプレイ装置及びそのモーション制御方法 |
JP2015510648A (ja) * | 2012-02-24 | 2015-04-09 | アマゾン・テクノロジーズ、インコーポレイテッド | 多次元入力のためのナビゲーション手法 |
WO2015093827A1 (ko) * | 2013-12-16 | 2015-06-25 | (주)골프존 | 뎁스 영상 분석을 통한 사용자 동작 인식 방법, 이를 이용한 사용자 동작 분석 장치 및 이를 기록한 컴퓨팅 장치에 의해 판독 가능한 기록매체 |
JP2016006559A (ja) * | 2014-06-20 | 2016-01-14 | 船井電機株式会社 | 入力装置 |
US9398243B2 (en) | 2011-01-06 | 2016-07-19 | Samsung Electronics Co., Ltd. | Display apparatus controlled by motion and motion control method thereof |
US9513711B2 (en) | 2011-01-06 | 2016-12-06 | Samsung Electronics Co., Ltd. | Electronic device controlled by a motion and controlling method thereof using different motions to activate voice versus motion recognition |
JP2018528551A (ja) * | 2015-06-10 | 2018-09-27 | ブイタッチ・コーポレーション・リミテッド | ユーザー基準空間座標系上におけるジェスチャー検出方法および装置 |
JP2020003754A (ja) * | 2018-07-02 | 2020-01-09 | カシオ計算機株式会社 | 投影装置、投影方法及びプログラム |
JP7497458B2 (ja) | 2020-04-26 | 2024-06-10 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ジェスチャ制御電子装置の制御表示ゲインを調整するための方法および装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61196317A (ja) * | 1985-02-27 | 1986-08-30 | Nippon Telegr & Teleph Corp <Ntt> | 情報入力方式 |
JPH0519957A (ja) * | 1991-07-15 | 1993-01-29 | Nippon Telegr & Teleph Corp <Ntt> | 情報の入力方法 |
JPH05324181A (ja) * | 1992-05-26 | 1993-12-07 | Takenaka Komuten Co Ltd | ハンドポインティング式入力装置 |
JPH07141101A (ja) * | 1993-11-19 | 1995-06-02 | Hitachi Ltd | 画像を用いた入力システム |
JPH09128141A (ja) * | 1995-11-07 | 1997-05-16 | Sony Corp | 制御装置および制御方法 |
JPH10207618A (ja) * | 1997-01-22 | 1998-08-07 | Toshiba Corp | ユーザインタフェース装置及び指示入力方法 |
JP2000056916A (ja) * | 1998-08-06 | 2000-02-25 | Takenaka Komuten Co Ltd | ハンドポインティング装置 |
JP2000267800A (ja) * | 1999-01-12 | 2000-09-29 | Takenaka Komuten Co Ltd | 動作認識装置 |
JP2000298544A (ja) * | 1999-04-12 | 2000-10-24 | Matsushita Electric Ind Co Ltd | 入出力装置と入出力方法 |
JP2001216069A (ja) * | 2000-02-01 | 2001-08-10 | Toshiba Corp | 操作入力装置および方向検出方法 |
-
2003
- 2003-02-17 JP JP2003038658A patent/JP2004246814A/ja active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61196317A (ja) * | 1985-02-27 | 1986-08-30 | Nippon Telegr & Teleph Corp <Ntt> | 情報入力方式 |
JPH0519957A (ja) * | 1991-07-15 | 1993-01-29 | Nippon Telegr & Teleph Corp <Ntt> | 情報の入力方法 |
JPH05324181A (ja) * | 1992-05-26 | 1993-12-07 | Takenaka Komuten Co Ltd | ハンドポインティング式入力装置 |
JPH07141101A (ja) * | 1993-11-19 | 1995-06-02 | Hitachi Ltd | 画像を用いた入力システム |
JPH09128141A (ja) * | 1995-11-07 | 1997-05-16 | Sony Corp | 制御装置および制御方法 |
JPH10207618A (ja) * | 1997-01-22 | 1998-08-07 | Toshiba Corp | ユーザインタフェース装置及び指示入力方法 |
JP2000056916A (ja) * | 1998-08-06 | 2000-02-25 | Takenaka Komuten Co Ltd | ハンドポインティング装置 |
JP2000267800A (ja) * | 1999-01-12 | 2000-09-29 | Takenaka Komuten Co Ltd | 動作認識装置 |
JP2000298544A (ja) * | 1999-04-12 | 2000-10-24 | Matsushita Electric Ind Co Ltd | 入出力装置と入出力方法 |
JP2001216069A (ja) * | 2000-02-01 | 2001-08-10 | Toshiba Corp | 操作入力装置および方向検出方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006209359A (ja) * | 2005-01-26 | 2006-08-10 | Takenaka Komuten Co Ltd | 指示動作認識装置、指示動作認識方法及び指示動作認識プログラム |
JP4608326B2 (ja) * | 2005-01-26 | 2011-01-12 | 株式会社竹中工務店 | 指示動作認識装置及び指示動作認識プログラム |
JP2007172303A (ja) * | 2005-12-22 | 2007-07-05 | Seiko Epson Corp | 情報入力システム |
KR100947502B1 (ko) | 2007-02-22 | 2010-03-17 | 엠텍비젼 주식회사 | 피사체 움직임 감지 장치 및 방법 |
JP2011505639A (ja) * | 2007-12-05 | 2011-02-24 | アルメーファ・アクチエンゲゼルシャフト | 画面と指示体との間でインタラクションを行うためのインタラクション装置 |
US8446288B2 (en) | 2008-10-15 | 2013-05-21 | Panasonic Corporation | Light projection device |
WO2010044204A1 (ja) * | 2008-10-15 | 2010-04-22 | パナソニック株式会社 | 光投射装置 |
JP2010277197A (ja) * | 2009-05-26 | 2010-12-09 | Sony Corp | 情報処理装置、情報処理方法およびプログラム |
JP2012146303A (ja) * | 2011-01-06 | 2012-08-02 | Samsung Electronics Co Ltd | モーションによって制御されるディスプレイ装置及びそのモーション制御方法 |
US9398243B2 (en) | 2011-01-06 | 2016-07-19 | Samsung Electronics Co., Ltd. | Display apparatus controlled by motion and motion control method thereof |
US9513711B2 (en) | 2011-01-06 | 2016-12-06 | Samsung Electronics Co., Ltd. | Electronic device controlled by a motion and controlling method thereof using different motions to activate voice versus motion recognition |
JP2015510648A (ja) * | 2012-02-24 | 2015-04-09 | アマゾン・テクノロジーズ、インコーポレイテッド | 多次元入力のためのナビゲーション手法 |
US9423877B2 (en) | 2012-02-24 | 2016-08-23 | Amazon Technologies, Inc. | Navigation approaches for multi-dimensional input |
US9746934B2 (en) | 2012-02-24 | 2017-08-29 | Amazon Technologies, Inc. | Navigation approaches for multi-dimensional input |
WO2015093827A1 (ko) * | 2013-12-16 | 2015-06-25 | (주)골프존 | 뎁스 영상 분석을 통한 사용자 동작 인식 방법, 이를 이용한 사용자 동작 분석 장치 및 이를 기록한 컴퓨팅 장치에 의해 판독 가능한 기록매체 |
JP2016006559A (ja) * | 2014-06-20 | 2016-01-14 | 船井電機株式会社 | 入力装置 |
JP2018528551A (ja) * | 2015-06-10 | 2018-09-27 | ブイタッチ・コーポレーション・リミテッド | ユーザー基準空間座標系上におけるジェスチャー検出方法および装置 |
JP2020003754A (ja) * | 2018-07-02 | 2020-01-09 | カシオ計算機株式会社 | 投影装置、投影方法及びプログラム |
JP7497458B2 (ja) | 2020-04-26 | 2024-06-10 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ジェスチャ制御電子装置の制御表示ゲインを調整するための方法および装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10606441B2 (en) | Operation control device and operation control method | |
JP4608326B2 (ja) | 指示動作認識装置及び指示動作認識プログラム | |
KR101761050B1 (ko) | 인간-컴퓨터 자연스러운 3차원 손 제스처 기반 내비게이션 방법 | |
JP2004246814A (ja) | 指示動作認識装置 | |
JP3114813B2 (ja) | 情報入力方法 | |
US6266061B1 (en) | User interface apparatus and operation range presenting method | |
US8552976B2 (en) | Virtual controller for visual displays | |
EP2273345A2 (en) | Movement controlled computer | |
JP6618276B2 (ja) | 情報処理装置、その制御方法、プログラム、及び記憶媒体 | |
WO2009059716A1 (en) | Pointing device and method for operating the pointing device | |
KR101550580B1 (ko) | 사용자 인터페이스 장치 및 그것의 제어 방법 | |
JP4172307B2 (ja) | 3次元指示入力装置 | |
KR101654311B1 (ko) | 사용자 모션 인식 방법 및 장치 | |
JP4563723B2 (ja) | 指示動作認識装置及び指示動作認識プログラム | |
JP3792907B2 (ja) | ハンドポインティング装置 | |
JP2003228458A (ja) | 指示動作認識装置及び方法 | |
JP5558899B2 (ja) | 情報処理装置、その処理方法及びプログラム | |
JP3588527B2 (ja) | ユーザインタフェース装置及び指示入力方法 | |
US20240211025A1 (en) | Control device and control method | |
WO2023181549A1 (ja) | 制御装置、制御方法、プログラム | |
WO2020166351A1 (ja) | 情報処理装置、情報処理方法、および記録媒体 | |
JP2023143634A (ja) | 制御装置、制御方法、プログラム | |
CN118244882A (zh) | 控制装置及控制方法 | |
CN116166161A (zh) | 基于多层级菜单的交互方法及相关设备 | |
JP2000222117A (ja) | ハンドポインティング装置、指示位置表示方法及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080311 |