以下、本発明の実施の形態を図面に従って説明する。
実施の形態1.
(表示システムの構成)
図1は、実施の形態1における入力装置12を備えた表示システム10の構成の一例を示すブロック図である。この表示システム10は、ユーザからの入力情報を入力装置12によって取得し、取得された入力情報に応じて画面を表示するシステムである。
図1において、表示システム10は、画像取得装置11、入力装置12、表示制御装置13、および表示装置14を有する。画像取得装置11と入力装置12、入力装置12と表示制御装置13、表示制御装置13と表示装置14は、それぞれ、有線または無線により接続され通信が可能となっている。また、画像取得装置11、入力装置12、表示制御装置13、および表示装置14は、物理的に一体であってもよいし、互いに分離されていてもよい。例えば、画像取得装置11、入力装置12、表示制御装置13、および表示装置14は、1つの筐体に収納されている。別の例として、画像取得装置11および入力装置12が一体となりリモートコントローラを構成し、表示制御装置13および表示装置14が一体になり情報表示装置を構成し、リモートコントローラと情報表示装置とが無線通信を行う構成も考えられる。
以下、画像取得装置11、入力装置12、表示制御装置13、および表示装置14についてそれぞれ説明する。
画像取得装置11は、ユーザ(または人物)が撮像された画像を取得する。例えば、画像取得装置11は、表示装置14の前方の所定範囲の画像を取得する。具体的には、画像取得装置11は、レンズ等の光学部、撮像素子、この撮像素子からの信号を処理して画像データを生成する画像処理部、生成した画像データを記憶するフレームバッファ部等により構成される。取得された画像データは、入力装置12により参照される。画像の取得は、例えば1/30秒ごとといった一定期間ごとに行われる。
本実施の形態では、画像取得装置11は、レンズ等の光学部および撮像素子の組を2対備え、2つの撮像素子からの信号を処理して2つの画像データを生成する、いわゆるステレオカメラである。ステレオカメラでは、2つの画像データに撮像されている物体の位置の差(視差)を利用して三角測量の原理に基づき物体の3次元位置を測定することができる。
入力装置12は、画像取得装置11が取得した画像データを基に、ユーザ(または人物)の手の位置または動き(またはジェスチャ)を検出し、検出した手の位置または動きに基づいて入力情報を取得し、取得した入力情報を表示制御装置13に出力する。入力装置12は、ジェスチャ入力装置とも呼ばれる。本例では、入力装置12は、入力情報として、ユーザの手の位置に基づき、所定の2次元座標系における2次元座標を取得する。なお、入力装置12の詳細な構成や処理については後述する。
表示制御装置13は、入力装置12からの入力情報に基づき、表示画面の生成や画面の制御を行い、表示画面を示す表示信号を表示装置14に出力する。
表示装置14は、例えば液晶パネルを備え、表示制御装置13からの表示信号に基づいて表示画面の表示を行う装置である。
なお、入力装置12および表示制御装置13は、それぞれ、電気回路などのハードウェア資源のみにより実現されてもよいし、ハードウェア資源とソフトウェアとの協働により実現されてもよく、例えば、コンピュータプログラムが情報処理装置(またはコンピュータ)により実行されることによって実現されてもよい。具体的には、入力装置12および表示制御装置13のそれぞれの機能の一部または全部は、ROM(Read Only Memory)等の記録媒体に記録された情報処理プログラムがRAM(Random Access Memory)に読み出されて中央処理装置(CPU:Central Processing Unit)により実行されることによって実現されてもよい。情報処理プログラムは、光ディスク等のコンピュータ読み取り可能な記録媒体に記録されて提供されてもよいし、インターネット等の通信回線を介して提供されてもよい。
また、本実施の形態における表示システム10は、具体的には、デジタルテレビや、デジタルサイネージ(または電子看板)、カーナビゲーションシステムといった表示機器として利用できるほか、パーソナルコンピュータなどの情報処理機器の一部として利用できる。また、表示システム10は、操作端末を備える工場用機器など、表示画面を備え、ユーザに操作される機器に広く適用可能である。
(ユーザの操作と表示制御の例)
図2は、表示制御装置13により生成されて表示装置14に表示される表示画面Sの一例を示す図である。以下、図2を参照して、表示制御装置13による表示制御の一例を説明する。ここでは、表示画面に地図を表示し、ユーザの操作により地図の表示範囲(表示画面に表示される地図の範囲)を移動させるスクロール処理を行う場合を例にとる。
図2(A)において、表示装置14の表示画面Sには、地図が表示されている。このとき、表示画面Sには表示可能な地図情報全体のうちの一部の範囲が表示されている。
ユーザは、表示画面Sをスクロールする際に、まず、手を体の前に突き出す。これにより、手の位置に対応する表示画面S上の座標にカーソルCが表示され、スクロール処理が開始される(図2(B)参照)。
スクロール処理が開始された後、ユーザが手を動かすと、ユーザの手の動きに応じてカーソルCが移動するとともに、カーソルCの移動と同じ移動方向および移動量で地図の表示範囲が移動する(図2(C)参照)。
ユーザは、所望する位置に表示範囲を移動させた後、手を体の方に引き寄せる。これにより、表示画面S上のカーソルCが消滅し、スクロール処理が終了する(図2(D)参照)。一旦スクロール処理が終了すると、再度手を体の前に突き出してスクロール処理を開始しない限りは、手を動かしたとしても表示範囲が移動することはない。
本実施の形態においては、ユーザの手の動きに応じて入力装置12が2次元座標を算出し、表示制御装置13は、入力装置12により算出された2次元座標に対応する表示画面S上の位置にカーソルCを表示する。また、表示制御装置13は、入力装置12が2次元座標の算出を開始したときにカーソルCを表示してスクロール処理を開始し、入力装置12が2次元座標の算出を終了したときにカーソルCを消滅させてスクロール処理を終了する。
(入力装置の構成)
図3は、実施の形態1における入力装置12の構成の一例を示すブロック図である。以下、図3を参照して、入力装置12の構成を説明する。
図3において、入力装置12は、人物位置取得部21、手位置取得部22、操作領域設定部23、基準領域設定部24、および入力情報取得部25を有する。
人物位置取得部21は、人物の位置を取得する。本例では、人物位置取得部21は、画像取得装置11が取得した2つの画像データから、人物(具体的には人物の像)を検出し、その3次元位置を取得する。具体的には、人物位置取得部21は、人物の位置として、人物の顔の位置を検出する。より具体的には、人物位置取得部21は、2つの画像データにおいて人物の顔の位置を検出し、三角測量の原理を利用して当該人物の顔の3次元位置を取得する。
画像中から人物の顔の位置を検出する手法として、ビオラ−ジョーンズ法と呼ばれる方式が知られている。ビオラ−ジョーンズ法は、要約すると、画像内における小領域の位置や大きさを変えながら画像内に小領域を設定し、当該小領域から特徴量を抽出し、識別器を利用して、当該小領域が顔であるか否かを判別するものである。人物位置取得部21は、例えば、画像データにビオラ−ジョーンズ法を適用した後、顔であると判別された小領域の位置や大きさから、画像データ(撮像された画像)の座標軸で表される顔の中心位置や顔の大きさを求めることができる。
人物位置取得部21は、画像データから複数の人物を検出した場合には、検出された複数の人物のそれぞれについて位置を取得する。
また、人物位置取得部21は、例えば一定時間ごとに取得される各画像データから人物の位置を検出することにより、人物の位置を継続的に取得する。この場合、人物位置取得部21は、画像データに複数の人物が含まれる場合、各人物を識別し、識別された各人物の位置を継続的に取得して記録してもよい。
手位置取得部22は、手の位置を取得する。本例では、手位置取得部22は、画像取得装置11が取得した2つの画像データから、人物の手(具体的には手の像)を検出し、その3次元位置を取得する。具体的には、手位置取得部22は、人物位置取得部21と同様に、2つの画像データにおける人物の手の位置を検出し、三角測量の原理を利用して手の3次元位置を取得する。
画像中からの人物の手の位置の検出は、例えば、画像データから肌色の領域を抜き出すか輝度勾配が極大となる点を抜き出すことにより物体の輪郭を抜き出した後、テンプレートマッチング法等により物体の輪郭が手に類似するか否かを判断することにより行うことができる。あるいは、手の位置の取得の簡易化や高精度化を図る観点より、手位置取得部22は、画像データから、ユーザ(または人物)が手に持つか装着している物体または装置の位置を手の位置として検出してもよい。ユーザが手に持つ物体としては、リモコン(例えばテレビリモコン)のような形状の指示器が考えられる。また、ユーザが装着する物体としては、手袋や、指輪、腕輪のような形状のものが考えられる。例えば、表面が特定の色や特定のパターンを有している物体または装置をユーザが手に装着する場合は、手位置取得部22は、画像データから当該特定の色やパターンの領域を抽出し、その位置を手の位置として検出することができる。
手位置取得部22は、画像データから複数の手を検出した場合には、検出された複数の手のそれぞれについて位置を取得する。
また、手位置取得部22は、例えば一定時間ごとに取得される各画像データから手の位置を検出することにより、手の位置を継続的に取得する。この場合、手位置取得部22は、画像データに複数の手が含まれる場合、各手を識別し、識別された各手の位置を継続的に取得して記録してもよい。
操作領域設定部23は、人物位置取得部21の取得結果に基づき、人物の前方に仮想的な操作領域(または操作空間)を設定する。具体的には、操作領域設定部23は、人物位置取得部21が取得した人物の位置の前方に、当該人物に対応する操作領域を設定する。操作領域は、実空間内に割り当てられる領域である。概略的には、操作領域内に手が入れられると入力情報の取得が開始され、操作領域内での手の位置または動きを基に入力情報が取得され、操作領域外に手が出されると入力情報の取得が終了する。
操作領域設定部23は、人物位置取得部21により複数の人物の位置が検出された場合は、当該複数の人物のそれぞれについて操作領域を設定する。
操作領域設定部23により設定される操作領域は、例えば図4に示すように、人物Aの前方の直方体状の領域R1である。操作領域は、人物が自然に手を前に伸ばしたときに、手が操作領域内に含まれるように設定されることが望ましい。操作領域の詳細な設定方法、および操作領域の形状の別様態については後述する。
基準領域設定部24は、人物位置取得部21の取得結果に基づき、人物に対して所定の位置に仮想的な基準領域(または基準空間)を設定する。基準領域は、操作領域と同様に、実空間内に割り当てられる領域である。本例では、基準領域は、人物位置取得部21が検出した人物の位置の近傍に設定され、手が操作領域から離れる際の手の位置変化が、手を体に引き寄せる動きに対応したものであるかを判別するために利用される。
基準領域設定部24は、人物位置取得部21により複数の人物の位置が検出された場合は、当該複数の人物のそれぞれについて基準領域を設定する。
基準領域設定部24により設定される基準領域は、人物が自然に手を引き寄せる際の手の動きの方向を直線で示したとき、当該直線が基準領域を通過するように設定される。例えば、基準領域は、人物が自然に手を前に伸ばしたときに基準領域側から操作領域側に向けて手が移動し、また、人物が手を体の方に引き寄せたときに操作領域側から基準領域側に向けて手が移動するように設定される。また、基準領域は、例えば図5に示すように、人物Aの両肩の位置を含むように、また人物Aの前方を向くように設定される。具体的には、図5において、基準領域は、人物Aの前後方向に対して垂直な、人物Aの中心と両肩の位置を通過し、人物Aの肩幅よりやや広い幅を持つ長方形状の平面領域R2である。このとき、平面領域R2の幅としては、例えば、人物の肩幅に対して一定の数値(例えば1.2)を乗じた値が設定される。人物の肩幅は、あらかじめ人体の寸法に関する統計値などを参照して設定されていても良いし、あるいは、実際に操作を行う人物の肩幅を取得しても良い。実際に操作を行う人物の肩幅を取得する場合には、例えば、画像データ中から人物の顔の大きさを取得し、統計値などから設定された顔の大きさと人物の肩幅との相関を基に、人物の肩幅を推定する。
再び図3を参照すると、入力情報取得部25は、手位置取得部22の取得結果に基づき、手が操作領域に接触したと判定した場合に、手の位置または動きに基づく入力情報の取得を開始し、手が操作領域から離れたと判定した場合、手が操作領域から離れる際の(または離れるまでの)手の動きが所定方向の動きであると判定したときに、入力情報の取得を終了する。一例では、所定方向の動きは、操作領域に対応する人物側に向かう方向の動きであり、入力情報取得部25は、人物が手を体の方向に引き寄せて操作領域から離した場合に、入力情報の取得を終了する。また、手が操作領域から離れる際の手の動きは、例えば、手が操作領域から離れたと判定された時点の直前の手の動きである。
本実施の形態では、入力情報取得部25は、手位置取得部22の取得結果に基づき、手が操作領域から離れたと判定した場合、手が操作領域から離れる際の(または離れるまでの)手の動きの方向を示す方向線を求め、当該方向線が操作領域に対応する人物に対して設定された基準領域を通過すると判定したときに、入力情報の取得を終了する。例えば、基準領域は、手が人物側に向かう方向に移動して操作領域から離れた場合に、方向線が基準領域を通過するように設定される。また、方向線は、手が操作領域から離れる際の一定期間における当該手の位置の変化を示す有向線分の始点から終点方向に延びる半直線である。
手が操作領域に接触したか否かを判定する際、入力情報取得部25は、例えば、手の位置が操作領域外から操作領域内に移動したときに、手が操作領域に接触したと判定する。あるいは、入力情報取得部25は、手の位置が操作領域外から操作領域内に移動した後、一定期間操作領域内に存在したときに、手が操作領域に接触したと判定してもよい。
また、手が操作領域から離れたか否かを判定する際、入力情報取得部25は、例えば、手の位置が操作領域内から操作領域外に移動したときに、手が操作領域から離れたと判定する。あるいは、入力情報取得部25は、手の位置が操作領域内から操作領域外に移動した後、一定期間操作領域外に存在したときに、手が操作領域から離れたと判定してもよい。
複数の人物のそれぞれに対して操作領域および基準領域が設定されている場合には、入力情報取得部25は、各操作領域について、手が当該操作領域に接触したか否かを判定し、接触したと判定した場合に、当該手の位置または動きに基づく入力情報の取得を開始し、その後、当該手が当該操作領域から離れたと判定した場合、手が操作領域から離れる際の手の動きが所定方向の動きであると判定したときに、入力情報の取得を終了する。
また、手位置取得部22により複数の手の位置が取得された場合には、入力情報取得部25は、複数の手のうちのいずれかの手が操作領域に接触したかを判定し、いずれかの手が接触したと判定した場合に、当該手の位置または動きに基づく入力情報の取得を開始し、その後、当該手が当該操作領域から離れたと判定した場合、手が操作領域から離れる際の手の動きが所定方向の動きであると判定したときに、入力情報の取得を終了する。
なお、入力情報取得部25は、手が操作領域に接触したと判定した場合に、必ず入力情報の取得を開始するのではなく、所定の条件が成立するときに入力情報の取得を開始してもよい。所定の条件としては、例えば、後述の実施の形態5で示されるものがある。
図3の例では、入力情報取得部25は、接触判定部31、方向線算出部32、通過判定部33、算出タイミング決定部34、および座標算出部35を含む。
接触判定部31は、人物の手が操作領域に接触しているか否かを判定する。例えば、接触判定部31は、手位置取得部22が取得した手の位置が、操作領域設定部23が設定した操作領域内に含まれているか否かを判断し、含まれている場合に接触していると判定し、含まれていない場合には接触していないと判定する。あるいは、接触判定部31は、手の位置が操作領域内に含まれている状態が一定時間(例えば1秒)継続したとき、手が操作領域に接触していると判定し、手の位置が操作領域内に含まれていない状態が一定時間継続したとき、手が操作領域に接触していないと判定し、手の位置が操作領域内に含まれている状態や含まれていない状態の継続時間が一定時間に満たない場合は、それ以前の判定結果を維持するようにしてもよい。これにより、意図しない瞬間的な手の接触などによる誤操作を抑制することができる。
また、複数の手の位置が取得されている場合や、複数の操作領域が設定されている場合は、接触判定部31は、手の位置と操作領域との全ての組み合わせに対して、手の位置が操作領域内に含まれているか否か、または手が操作領域に接触しているか否かの判定を行う。
接触判定部31は、その判定結果が非接触から接触に変化した場合に、人物の手が操作領域に接触したと判定してもよく、また、その判定結果が接触から非接触に変化した場合に、人物の手が操作領域から離れたと判定してもよい。
方向線算出部32は、手が操作領域から離れる際の手の動きの方向を示す方向線を算出する。例えば、方向線算出部32は、接触判定部31により手が操作領域から離れたと判定された場合に、その時点までの一定期間における当該手の位置に基づいて当該手の方向線を算出する。方向線は、例えば、手が操作領域から離れた時点よりも一定時間(例えば0.5秒)前の手の位置を始点とし、手が操作領域から離れた時点における手の位置を通過する半直線である。すなわち、方向線は、例えば、手が操作領域から離れた時点における位置を終点とし、手が操作領域から離れた時点よりも一定時間(例えば0.5秒)前の手の位置を始点として、始点と終点を結ぶ線を、始点から終点方向に延長して得られる半直線である。あるいは、方向線算出部32は、手が操作領域から離れた時点における手の位置を通過する直線であって、かつ、手が操作領域から離れた時点よりも前の複数の時点における手の位置と当該直線との距離の二乗の和が最小となる直線を方向線として算出してもよい。
なお、方向線算出部32は、接触判定部31の判定結果によらず、手位置取得部22により取得された全ての手について方向線を算出してもよい。
通過判定部33は、方向線算出部32により算出された方向線が基準領域設定部24により設定された基準領域を通過するか(または基準領域に交差するか)を判定する。このとき、複数の方向線が算出されている場合や、複数の基準領域が設定されている場合は、通過判定部33は、方向線と基準領域との全ての組み合わせに対して、方向線が基準領域を通過するか否かの判定を行う。
算出タイミング決定部34は、後述する座標算出部35による2次元座標の算出の開始および終了を決定する。座標算出部35による2次元座標の算出の開始および終了は、ユーザによる情報入力またはジェスチャ入力の開始および終了を意味する。
算出タイミング決定部34は、接触判定部31により手が操作領域に接触したと判定された場合に、座標算出部35による当該手の3次元位置に基づく2次元座標の算出の開始を決定する。ただし、すでに当該手の3次元位置に基づく2次元座標の算出が開始されている場合は、算出の開始の決定は行われない。
また、算出タイミング決定部34は、接触判定部31により手が操作領域から離れたと判定され、かつ、通過判定部33により当該手の方向線が基準領域を通過していると判定された場合であって、さらに当該操作領域と当該基準領域とが同一の人物に対して設定されたものである場合に、座標算出部35による当該手の3次元位置に基づく2次元座標の算出の終了を決定する。ただし、当該手の3次元位置に基づく2次元座標の算出が行われていない場合は、算出の終了の決定は行われない。
図6(A)および(B)において、人物Aの操作領域R1は人物Aの位置の前方に設定されており、人物Aの基準領域R2は人物Aの位置の近傍に人物Aの前方を向くように設定されている。この場合、図6(A)に示すように、手Hが操作領域R1から離れ、かつ手Hの方向線Dが基準領域R2に交差している場合、手Hが操作領域R1から基準領域R2に向かう方向に移動した可能性が高く、当該手Hの動きは、人物Aが手を体の方に引き寄せる際の手の動きである可能性が高い。一方、図6(B)に示すように、手Hが操作領域R1から離れ、かつ手Hの方向線Dが基準領域R2に交差していない場合、当該手Hの動きは、人物Aが手を体の方に引き寄せる際の手の動きではなく、人物Aが操作領域R1内で手を動かす際の手の動きである可能性が高い。したがって、この場合は、ジェスチャ入力を終了する意図がなく、操作領域内で手を動かしているつもりであるにもかかわらず手が操作領域から抜け出てしまったという可能性がある。このようなことから、本実施の形態では、算出タイミング決定部34は、方向線が基準領域を通過するか否かを判定することによって、操作領域から離れる際の手の動きが、人物が手を体の方に引き寄せる際の手の動きであるか否かを判定し、手を体の方に引き寄せる際の動きであると判定したときに、2次元座標の算出を終了する。
座標算出部35は、手の3次元位置を基に2次元座標の算出を行う。座標算出部35による座標の算出は、手の3次元座標を所定の2次元座標系に射影することにより行うことができる。所定の2次元座標系は、例えば、当該手が接触した操作領域を基準とする2次元座標系、または当該手が接触した操作領域に対応する人物の位置を基準とする2次元座標系である。
例えば、図7に示すように、座標算出部35は、操作領域R1内に定義された2本のベクトルu、vにより張られる平面に対して、手の3次元座標を投影した際の座標を、当該2本のベクトルu、vを基底とする座標系における座標値として算出する。
座標算出部35によって算出された2次元座標は、表示制御装置13に対して出力される。
(処理の流れ)
図8は、実施の形態1における入力装置12の処理の一例を示すフローチャートである。以下、図8を参照して、入力装置12の処理を説明する。
以下に説明する一連の処理は、一定のタイミングごとに実行される。例えば、画像取得装置11が画像データを取得するタイミング(例えば1/30秒に1回)にあわせて、1/30秒に1回実行される。
また、ここでは、入力装置12は、人物に関するデータを保持する人物テーブルと、手に関するデータを保持する手テーブルとを有する。
図9は、人物テーブルを示す。人物テーブルには、人物を識別するための識別情報である人物ID、当該人物の位置、当該人物の操作領域、当該人物の基準領域、当該人物によるジェスチャ入力の開始を示す開始フラグ、およびジェスチャ入力を行う手の手IDが互いに対応付けて記録される。開始フラグは、「0」または「1」のいずれかの値をとり、「0」は開始されていないことを示し、「1」は開始されたことを示す。開始フラグの初期値は「0」である。図9において、M1(T)およびM2(T)は、それぞれ対応する人物の現在の3次元座標値である。
図10は、手テーブルを示す。手テーブルには、手を識別するための識別情報である手IDと、当該手の位置と、当該手の方向線とが互いに対応付けて記録される。手の位置は、現在までの位置が時系列的に記録される。図10において、H1(T)は対応する手の現在の3次元座標値であり、H1(T−N)は対応する手のN回前の3次元座標値である。
図8を参照すると、まず、入力装置12は、画像取得装置11から画像データを取得し(S1)、取得した画像データから人物を検出し、検出された人物の位置を取得する(S2)。
具体的には、入力装置12は、検出された人物それぞれについて、当該人物のデータが既に人物テーブルに登録されているか否かを判断し、登録されていない場合は、当該人物に人物IDを割り当て、当該人物の人物IDと位置とを人物テーブルに新規に登録する。一方、既に登録されている場合には、人物テーブルにおいて当該人物の位置を更新する。上記の判断は、例えば、今回取得された人物の位置と、人物テーブルに登録されている各人物の位置との位置関係に基づいてなされる。具体的には、入力装置12は、人物テーブルにおいて、今回検出された人物の位置からの距離が所定閾値以下である人物の位置が登録されているかを判断し、登録されていない場合には今回検出された人物のデータを新規登録し、登録されている場合には、人物テーブルに登録されている人物の位置のうち今回検出された人物の位置から最も近い人物の位置を、今回検出された位置によって更新する。ただし、入力装置12は、上記以外の方法で判断してもよく、例えば、画像データから各人物の特徴を抽出し、各人物の特徴を人物テーブルに記録しておき、今回検出された人物の特徴と人物テーブルに記録されている各人物の特徴との類似度に基づいて判断してもよい。
また、入力装置12は、人物テーブルに登録されている人物のデータのうち、今回検出されなかった人物のデータ、すなわち位置が更新されなかった人物のデータを、人物テーブルから削除する。
次に、入力装置12は、ステップS2で人物の位置が取得されたか否かを判断し(S3)、人物の位置が取得されなかった場合は(S3:N)、処理を終了する。
一方、1人以上の人物の位置が取得された場合は(S3:Y)、入力装置12は、取得した人物の位置それぞれに対して、操作領域を設定するとともに(S4)、基準領域を設定する(S5)。具体的には、入力装置12は、人物テーブルに登録されている人物の人物IDのそれぞれに対応付けて、当該人物に対して設定された操作領域および基準領域を記録する。
次に、入力装置12は、ステップS1で取得した画像データから人物の手を検出し、検出された手の位置を取得する(S6)。
具体的には、入力装置12は、検出された手それぞれについて、当該手のデータが既に手テーブルに登録されているか否かを判断し、登録されていない場合は、当該手に手IDを割り当て、当該手の手IDと位置とを手テーブルに新規登録する。一方、既に登録されている場合には、手テーブルにおいて、当該手の位置の時系列データに今回取得された手の位置を追加する。上記の判断は、例えば、今回取得された手の位置と、手テーブルに登録されている各手の位置との位置関係に基づいてなされる。具体的には、入力装置12は、手テーブルにおいて、今回検出された手の位置からの距離が所定閾値以下である手の位置が登録されているかを判断し、登録されていない場合には今回検出された手のデータを新規登録し、登録されている場合には、手テーブルに登録されている手の位置のうち今回検出された手の位置から最も近い手の位置を、今回検出された位置によって更新する。ただし、入力装置12は、上記以外の方法で判断してもよく、例えば、画像データから各手の特徴を抽出し、各手の特徴を手テーブルに記録しておき、今回検出された手の特徴と手テーブルに記録されている各手の特徴との類似度に基づいて判断してもよい。
また、入力装置12は、手テーブルに登録されている手のデータうち、今回検出されなかった手のデータ、すなわち位置が追加されなかった手のデータを、手テーブルから削除する。
次に、入力装置12は、一定時間以上位置を取得した手が存在するか否かを判断し(S7)、そのような手が存在する場合(S7:Y)、そのような手のすべてに対して方向線を求める(S8)。具体的には、入力装置12は、手テーブルにおいて位置データが所定数以上登録されている手が存在する場合に、そのような手のそれぞれについて、方向線を求めて手テーブルに登録する。例えば、今回取得した手の位置(方向線が通過する点)と0.5秒前の手の位置(方向線の始点)とを、方向線を示すデータとして手テーブルに登録する。一方、一定時間以上位置を取得した手が1つも存在しない場合は(S7:N)、処理を終了する。
上記ステップS8の後、処理はステップS9に進む。ステップS9以降の処理は、ステップS2で位置が取得された人物、すなわち人物テーブルに登録されている人物のそれぞれについて行われる。
ステップS9では、入力装置12は、処理対象の人物(以下、「対象人物」と称する)がすでにジェスチャ入力を開始しているかを判断する。具体的には、人物テーブルにおいて、対象人物の開始フラグが「0」であれば開始していないと判断し、「1」であれば開始していると判断する。
ジェスチャ入力を開始していない場合は(S9:N)、入力装置12は、次のように、ジェスチャ入力を開始するか否かの判断を行う。
入力装置12は、対象人物に対して設定された操作領域に手が触れているかを判断する(S10)。具体的には、人物テーブルに記録されている対象人物の操作領域と、手テーブルに記録されている各手の現在の位置とに基づいて、操作領域に触れている手が存在するかを判断する。そして、操作領域に触れている手が存在しない場合は(S10:N)、処理を終了する。一方、操作領域に触れている手が存在する場合は(S10:Y)、対象人物によるジェスチャ入力を開始し(S11)、対象人物の操作領域に触れている手の3次元座標から2次元座標を算出し(S12)、処理を終了する。ステップS11では、入力装置12は、人物テーブルにおける対象人物のデータにおいて、開始フラグを「1」に設定し、対象人物の操作領域に触れている手の手IDをジェスチャ入力を行う手の手IDとして登録する。
また、ステップS9において、対象人物がすでにジェスチャ入力を開始していると判断された場合は(S9:Y)、次のように、ジェスチャ入力を終了するか否かの判断を行う。
入力装置12は、まず、対象人物に対して設定された操作領域に、ジェスチャ入力を行う手が触れているかを判断する(S13)。具体的には、人物テーブルに記録されている対象人物の操作領域と、人物テーブルに記録されている対象人物のジェスチャ入力を行う手の手IDと、当該手IDと対応付けて手テーブルに記録されている現在の手の位置とに基づいて、対象人物の操作領域にジェスチャ入力を行う手が触れているかを判断する。
そして、操作領域にジェスチャ入力を行う手が触れている場合は(S13:Y)、ジェスチャ入力を終了せずに、ジェスチャ入力を行う手の3次元座標に基づく2次元座標の算出を行い(S12)、処理を終了する。
一方、操作領域にジェスチャ入力を行う手が触れていない場合には(S13:N)、入力装置12は、当該ジェスチャ入力を行う手に対して算出された方向線が、対象人物に対して設定された基準領域に交差しているかを判断する(S14)。
方向線が基準領域に交差している場合(S14:Y)、対象人物によるジェスチャ入力を終了し(S15)、処理を終了する。この場合、人物テーブルにおける対象人物のデータにおいて、開始フラグを「0」に戻し、ジェスチャ入力を行う手の手IDを消去する。
一方、方向線が基準領域に交差していない場合(S14:N)、ジェスチャ入力を終了せずに、ジェスチャ入力を行う手の3次元座標に基づく2次元座標の算出を行い(S12)、処理を終了する。
(操作領域の設定)
本実施の形態における操作領域設定部23が人物の位置を基に設定する操作領域について説明する。
操作領域は、例えば、図4に示すように、人物の前方に位置する直方体の領域である。この操作領域の位置および大きさの一例を図11および図12に示す。図11および図12は、それぞれ人物と操作領域との位置関係を示す上面図および側面図である。
なお、以下の説明では、人物Aの左右方向、上下方向、前後方向に平行な方向における寸法を、それぞれ、幅、高さ、奥行きと称する。
図11および図12において、操作領域R1は、幅W、高さHの長方形を、人物Aの位置Pから距離L1離れた位置から距離L2離れた位置まで、人物Aの前後方向に平行移動させてできる直方体である。この直方体は、幅W、高さH、および奥行き(L2−L1)を有する。
幅Wおよび高さHの値は、人物Aの位置Pから距離L1離れた位置に存在する幅W、高さHの長方形の全体に手が届くように設定されることが望ましい。例えば、幅Wは人物Aの肩幅よりもやや広い長さ、高さHは人物Aの頭頂から腰の位置までの長さである。また、例えば、操作領域R1は、人物Aの左右方向において操作領域R1の中心が人物Aの位置(例えば顔の中心位置)Pと一致するように、かつ人物Aの上下方向において操作領域R1の上端および下端がそれぞれ人物Aの頭頂および腰の位置と一致するように配置される。
また、距離L1は人物Aの手の長さより小さい値、距離L2は人物Aの手の長さより大きい値であることが望ましい。これにより、人物Aが自然に手を前に伸ばした場合に手が操作領域R1に触れることができる。
ここで、人物の肩幅や人物の頭頂から腰の位置までの長さ、さらに人物の手の長さは、あらかじめ人体の寸法に関する統計値などを参照して設定されていても良いし、あるいは、実際に操作を行う人物の寸法を取得しても良い。実際に操作を行う人物の寸法を取得する場合、例えば、画像データから人物の顔の大きさを取得し、統計値などから設定された顔の大きさと人物の寸法との相関を基に、人物の寸法を推定する。
また、入力装置12における操作領域や基準領域の設定等の処理において、人物の左右方向、上下方向、および前後方向は、例えば、画像データから取得される人物の姿勢や顔の向きなどから決定してもよいし、あらかじめ入力装置12や表示装置14の配置を基に設定してもよい。例えば、表示装置14の画面の左右方向を人物の左右方向、表示装置14の画面の上下方向を人物の上下方向、表示装置14の画面の法線方向を人物の前後方向と設定してもよい。
図13、図14、および図15は、それぞれ操作領域の別の一例を示す斜視図、上面図、および側面図である。
本例では、操作領域R3は、直方体の両側に円筒状の立体の一部を組み合わせた形状を有する。人物Aを上方から見た場合、円筒状の立体は、人物Aの肩の位置SR、SLを中心とすることが望ましい。人物の手が届く範囲は、肩を中心とした円状の範囲であるため、部分円筒状の立体を操作領域R3に組み入れることで、全体に手が届きやすい操作領域を設定することができる。
具体的には、操作領域R3は、図14に示すように、人物Aから見て手前側に位置する第1の面S1と、奥側に位置する第2の面S2とに挟まれる領域である。第1の面S1は、人物Aの前方に位置し、人物Aの両肩を結ぶ線分および人物Aの上下方向に平行な平面部SC1と、人物Aから見て平面部SC1の左端に接続し、人物Aの左肩の位置SLを通り人物Aの上下方向に延びる直線を中心軸とする部分円筒面状の左曲面部SL1と、人物Aから見て平面部SC1の右端に接続し、人物Aの右肩の位置SRを通り人物Aの上下方向に延びる直線を中心軸とする部分円筒面状の右曲面部SR1とで構成される。第2の面S2は、人物Aの前方に位置し、人物Aの両肩を結ぶ線分および人物Aの上下方向に平行な平面部SC2と、人物Aから見て平面部SC2の左端に接続し、人物Aの左肩の位置SLを通り人物Aの上下方向に延びる直線を中心軸とする部分円筒面状の左曲面部SL2と、人物Aから見て平面部SC2の右端に接続し、人物Aの右肩の位置SRを通り人物Aの上下方向に延びる直線を中心軸とする部分円筒面状の右曲面部SR2とで構成される。
第1の面S1について、人物Aの両肩を結ぶ線分から平面部SC1までの距離、左曲面部SL1の半径、および右曲面部SR1の半径は、人物Aの腕の長さよりも小さい。第2の面S2について、人物Aの両肩を結ぶ線分から平面部SC2までの距離、左曲面部SL2の半径、および右曲面部SR2の半径は、人物Aの腕の長さよりも大きい。図14の例では、人物Aの両肩を結ぶ線分から平面部SC1までの距離はL1であり、左曲面部SL1の半径および右曲面部SR1の半径はいずれもr1であり、人物Aの両肩を結ぶ線分から平面部SC2までの距離はL2(>L1)であり、左曲面部SL2の半径および右曲面部SR2の半径はいずれもr2(>r1)である。
あるいは、操作領域R3は、人物Aの前方に配置される直方体状の中央部RCと、人物Aから見て中央部RCの左側に接続する左側部RLと、人物Aから見て中央部RCの右側に接続する右側部RRとを有する。中央部RCは、上記図4および図11に示される操作領域R1と同様の形状を有する。左側部RLは、人物Aの左肩の位置SLを通り人物Aの上下方向に延びる直線を中心軸とする部分円筒状の立体であり、右側部RRは、人物Aの右肩の位置SRを通り人物Aの上下方向に延びる直線を中心軸とする部分円筒状の立体である。
(効果)
以上説明した本実施の形態によれば、下記(1)〜(10)の効果が得られる。
(1)本実施の形態では、入力装置は、手が操作領域に接触したと判定した場合に、当該手の位置または動きに基づく入力情報の取得を開始し、手が操作領域から離れたと判定した場合、手が操作領域から離れる際の手の動きが所定方向の動きであると判定したときに、上記入力情報の取得を終了する。これにより、ユーザの意図しない情報入力の終了を抑制することができる。具体的には、ユーザが入力を終了する意図が無いにも関わらず手が操作領域から抜け出てしまったために操作が終了されてしまうことを防ぐことができる。例えば、所定方向の動きは、操作領域に対応する人物側に向かう方向の動きであり、この場合、人物が手を体の方向に引き寄せる動きをしたときにのみ、入力情報の取得を終了することができる。
より具体的には、ユーザが操作領域の範囲を正確には把握することができないので、ユーザは操作領域内で手を動かしているつもりであっても、実際には操作領域から手が抜け出る可能性がある。そのため、操作領域から手が離れたことのみによって入力の終了を判定する構成では、ユーザが入力を終了する意図が無いにも関わらず、手が操作領域から意図せず抜け出ることにより、入力が終了してしまう場合がある。こういった場合、例えば手を動かす操作により画面上の地図などの画像をスクロールさせるときにスクロールが途中で終了したり、手を動かす操作により画面上に線を描画するときに描画中の線が途切れたりと、ユーザの利便性が損なわれる。これに対し、本実施の形態では、手が操作領域から離れ、かつ操作領域から離れる際の手の動きが所定方向の動きであるときに入力を終了するので、手が操作領域から離れたことのみによって入力を終了する構成と比較して、ユーザの意図しない入力の終了を抑制することができる。
(2)入力装置は、人物の前方に操作領域を設定するとともに、人物に対して所定の位置に仮想的な基準領域を設定し、手が操作領域に接触したと判定した場合に、当該手の位置または動きに基づく入力情報の取得を開始し、手が操作領域から離れたと判定した場合、手が操作領域から離れる際の手の動きの方向を示す方向線を求め、当該方向線が操作領域に対応する人物に対して設定された基準領域を通過すると判定したときに、上記入力情報の取得を終了する。本態様によれば、方向線が基準領域を通過するか否かを判定することにより、手が操作領域から離れる際の手の動きが所定方向の動きであるか否かを判定することができ、ユーザの意図しない情報入力の終了を抑制することができる。例えば、基準領域は、手が人物側に向かう方向に移動して操作領域から離れた場合に方向線が基準領域を通過するように設定され、この場合、方向線が基準領域を通過するか否かを判定することで、人物側に向かう方向の手の動きを判別することができる。
(3)基準領域は、操作領域よりも人物の近傍に人物の前方を向くように設定される。この場合、手が操作領域から離れ、かつ方向線が基準領域を通過する場合、人物の動きは、手を体の方に引き寄せて操作領域から離す動きである可能性が高い。このため、本態様によれば、人物が手を体の方に引き寄せて操作領域から離す動作を判別し、当該動作により手が操作領域から離れた場合に、情報入力を終了することができる。
(4)方向線は、手が操作領域から離れる際の一定期間における手の位置の変化を示す有向線分の始点から終点方向に延びる半直線である。本態様によれば、方向線が延びる方向を一方に制限することにより、方向線が双方向に無限に延びる直線である場合と比較して、ユーザの意図しない情報入力の終了をより確実に抑制することができる。
(5)入力装置は、手の位置が操作領域外から操作領域内に移動した後、一定期間操作領域内に存在した場合に、手が操作領域に接触したと判定する。本態様によれば、ユーザの意図しない瞬間的な手の接触などによる情報入力の開始を防ぐことができる。
(6)入力装置は、手の位置が操作領域内から操作領域外に移動した後、一定期間操作領域外に存在した場合に、手が操作領域外に出たと判定する。本態様によれば、意図せず瞬間的に手が操作領域から出てしまった場合に情報入力が終了してしまうことを防ぐことができる。
(7)操作領域は、人物の肩の位置を通り人物の上下方向に延びる直線を中心軸とする部分円筒状の領域を含む。本態様では、人物の手が届く範囲を考慮した適切な操作領域が得られる。具体的には、人物の手が届く範囲は、人物を上から見たときに肩を中心とした円状の範囲であるので、本態様によれば、範囲の過不足が少ない操作領域が得られる。
(8)操作領域は、人物から見て手前側に位置する第1の面と、奥側に位置する第2の面とに挟まれる領域であり、第1の面および第2の面は、それぞれ、上述した、平面部と、部分円筒面状の左曲面部と、部分円筒面状の右曲面部とで構成される。本態様によれば、全体に手が届きやすい操作領域が得られる。
(9)上記第1の面について、人物の両肩を結ぶ線分から平面部までの距離、左曲面部の半径、および右曲面部の半径は、人物の腕の長さよりも小さい。この場合、ユーザは、自然に手を伸ばして操作領域内に手を入れることができる。
(10)上記第2の面について、人物の両肩を結ぶ線分から平面部までの距離、左曲面部の半径、および右曲面部の半径は、人物の腕の長さよりも大きい。これにより、ユーザが手を前方に完全に伸ばしたときに、手が操作領域外に出てしまうことを防ぐことができる。
以下、実施の形態2〜6における入力装置について説明する。実施の形態2〜6の入力装置は、実施の形態1の入力装置と一部を除いて同様であり、実施の形態2〜6の説明では、実施の形態1と同様の部分については説明を省略または簡略化し、実施の形態1と同一または対応する要素については同一の符号を付す。
実施の形態2.
実施の形態2における入力装置12は、実施の形態1と異なる判定方法により、手の動きが所定方向の動きかどうかを判定し、入力情報の取得の終了を判定するものである。
図16は、実施の形態2における入力装置12の構成の一例を示すブロック図である。図16において、入力装置12は、人物位置取得部21、手位置取得部22、操作領域設定部23、および入力情報取得部25を有する。
本実施の形態では、入力情報取得部25は、手位置取得部22の取得結果に基づき、手が操作領域に接触したと判定した場合に、手の位置または動きに基づく入力情報の取得を開始し、手が操作領域から離れたと判定した場合、操作領域から離れる際の手の動きの方向を示す方向線を求め、操作領域に対応する人物に対して所定の位置に定められる一点と手の位置を結ぶ直線と方向線とがなす角が所定範囲内(例えば、所定値未満または所定値以上)であると判定したときに、入力情報の取得を終了する。
一例では、方向線は、手が操作領域から離れる際の一定期間における当該手の位置の変化を示す有向線分の始点から終点方向に延びる半直線である。また、上記一点は、手が人物側に向かう方向に移動して操作領域から離れた場合に、上記なす角が上記所定範囲内となるように設定され、例えば操作領域よりも人物の近傍に設定される。また、上記一点と手の位置を結ぶ直線における当該手の位置は、例えば、操作領域から離れた時点における手の位置(例えば上記有向線分の終点)、または操作領域から離れた時点よりも一定時間(例えば0.5秒)前の手の位置(例えば上記有向線分の始点)である。
図16の例では、入力情報取得部25は、接触判定部31、方向線算出部32、算出タイミング決定部34、および座標算出部35を含む。
算出タイミング決定部34は、接触判定部31により手が操作領域から離れたと判定された場合、人物の近傍に定める一点と操作領域から離れた時点における当該手の位置を結ぶ直線と、方向線算出部32により算出された当該手の方向線とのなす角を求め、当該なす角が所定範囲内であると判定した場合に、座標算出部35による当該手の3次元位置に基づく2次元座標の算出の終了を決定する。
図17に示すように、例えば、算出タイミング決定部34は、人物位置取得部21により取得された人物Aの3次元位置に基づいて、人物Aの両肩の位置SL,SRの中点PCを上記一点として設定する。そして、当該一点PCと操作領域から離れた時点における当該手の位置PHを結ぶ直線LHと、当該手の方向線DHとのなす角θを求め、なす角θが一定未満(例えば30度未満)であると判定した場合に、当該手の3次元位置に基づく2次元座標の算出の終了を決定する。
人物の近傍に定める一点と手の位置を結ぶ直線と当該手の方向線とのなす角が一定未満である場合には、人物の手の動きは、人物が手を体の方向に引き寄せる際の手の動きである可能性が高い。このようなことから、算出タイミング決定部34は、なす角が所定範囲内であるか否かを判定することによって、手が操作領域から離れる際の手の動きが、人物が手を体の方に引き寄せる際の手の動きであるか否かを判定し、手を体の方に引き寄せる際の動きであると判定したときに、2次元座標の算出を終了する。
次に、図8を参照して、実施の形態2における入力装置12の処理を説明する。本実施の形態では、基準領域を設定する処理(ステップS5の処理)は省略されてもよい。また、ステップS14において、入力装置12は、方向線が基準領域に交差しているかを判断する代わりに、人物テーブルに記録されている人物の位置と手テーブルに記録されている現在の手の位置とを結ぶ直線と、手テーブルに記録されている方向線とがなす角を求め、当該なす角が一定未満であるかを判断する。そして、なす角が一定未満である場合(S14:Y)、対象人物によるジェスチャ入力を終了し(S15)、なす角が一定未満でない場合(S14:N)、ジェスチャ入力を終了せずに、ジェスチャ入力を行う手の3次元座標に基づく2次元座標の算出を行い(S12)、処理を終了する。
以上の通り、本実施の形態では、入力装置は、手が操作領域に接触したと判定した場合に、当該手の位置または動きに基づく入力情報の取得を開始し、手が操作領域から離れたと判定した場合、手が操作領域から離れる際の手の動きの方向を示す方向線を求め、操作領域に対応する人物に対して所定の位置に定められる一点と手の位置を結ぶ直線と方向線とがなす角が所定範囲内であると判定したときに、上記入力情報の取得を終了する。本態様によれば、上記なす角が所定範囲内であるか否かを判定することにより、手が操作領域から離れる際の手の動きが所定方向の動きであるか否かを判定することができ、ユーザの意図しない情報入力の終了を抑制することができる。例えば、上記一点は、手が人物に向かう方向に移動して操作領域から離れた場合に上記なす角が上記所定範囲内となるように設定され、この場合、なす角が所定範囲内か否かを判定することで、人物側に向かう方向の手の動きを判別することができる。
なお、実施の形態2において、入力装置12は、実施の形態1と同様に方向線が基準領域を通過するか否かを判定するとともに、なす角が所定範囲内か否かを判定してもよい。この場合、入力装置12は、方向線が基準領域を通過するという第1の条件と、なす角が所定範囲内であるという第2の条件とのうち、少なくとも1つの条件が成立する場合に入力情報の取得を終了してもよいし、両方の条件が成立する場合に入力情報の取得を終了してもよい。また、第1の条件に用いられる方向線(第1の方向線)と、第2の条件に用いられる方向線(第2の方向線)とは、互いに同じであってもよいし、異なっていてもよい。
実施の形態3.
本実施の形態3では、ユーザが操作を終了する意図をもって操作領域から手を引き出したにもかかわらず入力が終了されない状態が継続してしまうことを防止する観点より、入力情報取得部25は、手が操作領域から離れる際の手の動きが所定方向の動きでない場合であっても、所定の条件が成立すると判定した場合には、入力情報の取得を終了する。具体的には、算出タイミング決定部34は、方向線が基準領域を通過するか否かにかかわらず、所定の条件が満たされると判定した場合には、座標算出部35による2次元座標の算出の終了を決定する。
例えば、入力情報取得部25は、手が操作領域に触れていない状態が一定期間(例えば3秒)以上継続したと判定した場合には、当該手による入力情報の取得を終了する。
また、入力情報取得部25は、手が操作領域に触れておらず、かつ当該手の移動速度(例えば一定期間における手の3次元位置の変化を示す移動ベクトルの大きさ)が一定以上(例えば50cm/sec以上)であると判定した場合には、当該手による入力情報の取得を終了してもよい。ここで、ユーザが操作をするために操作領域内で手を動かしている場合は、手は高速には動かない傾向にあり、手の移動速度が一定以上である場合は、ユーザが操作を終了する意図を持っている可能性が高いと考えられる。
また、図18に例示するように、操作領域設定部23が、人物位置取得部21の取得結果に基づき、操作領域R1に加えて、操作領域R1と隣接し、かつ操作領域R1よりも人物Aに近い位置に準操作領域R4を設定し、入力情報取得部25は、手が操作領域R1および準操作領域R4のどちらにも触れていない場合に、当該手による入力情報の取得を終了してもよい。ここで、手が操作領域R1および準操作領域R4のどちらにも触れていない場合は、手は人物の体に十分近い位置にあり、ユーザは手を体の方に引き寄せる意図があったものと考えられる。
以上説明した本実施の形態によれば、ユーザが入力を終了する意図をもって操作領域から手を引き出したにもかかわらず入力が終了されない状態が継続してしまうことを防止することができる。
なお、上記実施の形態3の構成は、実施の形態2の入力装置に適用されてもよい。
実施の形態4.
本実施の形態4では、入力情報取得部25は、下記(a)〜(f)のうちの一部または全部の複数の条件の論理演算の結果に基づき、入力情報の取得を終了する。具体的には、算出タイミング決定部34は、下記(a)〜(f)の中から選択される複数の条件を組み合わせた論理演算により、座標算出部35による2次元座標の算出の終了を決定する。
(a)手が操作領域の外にある。
(b)手が操作領域から離れる際の手の動きの方向を示す方向線が、操作領域に対応する人物に対して所定の位置に設定される基準領域を通過する。
(c)操作領域に対応する人物に対して所定の位置に定められる一点と手の位置を結ぶ直線と、手が操作領域から離れる際の手の動きの方向を示す方向線とがなす角が所定範囲内である。
(d)手が操作領域の外にある状態が一定期間以上継続した。
(e)手の移動速度が一定以上である。
(f)手が、操作領域と隣接し、かつ操作領域よりも人物に近い位置に設定される準操作領域の外にある。
上記条件(b)は実施の形態1と同様に、条件(c)は実施の形態2と同様に、(d)〜(f)は実施の形態3と同様に判定される。
上記論理演算は、一つの態様では、手が操作領域から離れ、かつ手が操作領域から離れる際の手の動きが所定方向の動きである場合に入力情報の取得が終了するように構成され、例えば、条件(a)と、条件(b)および(c)のうちの少なくとも1つとを含む。
一例では、算出タイミング決定部34は、条件(a)および(f)が成立する場合、2次元座標の算出の終了を決定し、条件(a)が成立して条件(f)が成立しない場合、条件(b)が成立するときに2次元座標の算出の終了を決定する。
以上説明した本実施の形態によれば、ユーザが入力を終了する意図をもって操作領域から手を引き出したにもかかわらず入力が終了されないことと、ユーザが入力を終了する意図が無いにもかかわらず手が操作領域から抜け出てしまったために操作が終了されてしまうことの両方を防止することができる。
なお、上記実施の形態4の構成は、実施の形態2または3の入力装置に適用されてもよい。
実施の形態5.
本実施の形態5における入力装置12は、手が操作領域に接触したと判定した場合、所定の条件が成立すると判定したときに、入力情報の取得を開始するものである。
本実施の形態では、基準領域設定部24は、人物位置取得部21の取得結果に基づき、人物に対して所定の位置に仮想的な開始判定用の基準領域(以下、「開始基準領域」と称す)を設定する。基準領域設定部24は、実施の形態1で説明した終了判定用の基準領域(以下、「終了基準領域」と称す)のほかに開始基準領域を設定してもよいし、開始基準領域および終了基準領域として共通の1つの基準領域を設定してもよい。開始基準領域は、例えば、人物位置取得部21が検出した人物の位置の近傍に設定され、手が操作領域に接触するまでの当該手の位置変化が、手を前に出す動きに対応したものであるかを判別するために利用される。
基準領域設定部24は、人物位置取得部21により複数の人物の位置が検出された場合は、当該複数の人物のそれぞれについて開始基準領域を設定する。
基準領域設定部24により設定される開始基準領域は、人物が自然に手を前に伸ばした際の手の動きの方向を直線で示したとき、当該直線が開始基準領域を通過するように設定され、例えば、人物が自然に手を前に伸ばしたとき、開始基準領域から操作領域に向かう方向に手が移動するように設定される。開始基準領域は、例えば図5に示すように、終了基準領域と同様に設定されてもよい。
入力情報取得部25は、手位置取得部22の取得結果に基づき、手が操作領域に接触したと判定した場合、手が操作領域に接触する際の(または接触するまでの)手の動きが所定方向の動きであると判定したときに、当該手の位置または動きに基づく入力情報の取得を開始する。一例では、所定方向の動きは、操作領域に対応する人物側から操作領域に向かう方向の動きであり、入力情報取得部25は、人物が手を前に伸ばして操作領域に接触した場合に、入力情報の取得を開始する。また、手が操作領域に接触する際の手の動きは、例えば、手が操作領域に接触したと判定された時点の直前の手の動きである。
本例では、入力情報取得部25は、手位置取得部22の取得結果に基づき、手が操作領域に接触したと判定した場合、手が操作領域に接触する際の(または接触するまでの)手の動きの方向を示す開始判定用の方向線(以下、「開始方向線」と称す)を求め、当該開始方向線が操作領域に対応する人物に対して設定された開始基準領域を通過すると判定したときに、当該手の位置または動きに基づく入力情報の取得を開始する。例えば、開始基準領域は、手が人物側から操作領域に向かう方向に移動して操作領域に接触した場合に、開始方向線が開始基準領域を通過するように設定される。また、開始方向線は、例えば、手が操作領域に接触する際の一定期間における当該手の位置の変化を示す有向線分の終点から始点方向に延びる半直線である。
複数の人物のそれぞれに対して操作領域および開始基準領域が設定されている場合には、入力情報取得部25は、各操作領域について、手が当該操作領域に接触したか否かを判定し、接触したと判定した場合に、当該手が当該操作領域に接触する際の当該手の動きの方向を示す開始方向線を求め、当該開始方向線が当該操作領域に対応する人物に対して設定された開始基準領域を通過するか否かを判定し、通過すると判定した場合に、当該手の位置または動きに基づく入力情報の取得を開始する。
また、手位置取得部22により複数の手の位置が取得された場合には、入力情報取得部25は、複数の手のうちのいずれかの手が操作領域に接触したかを判定し、いずれかの手が接触したと判定した場合に、当該手が操作領域に接触する際の当該手の動きの方向を示す開始方向線を求め、当該開始方向線が操作領域に対応する人物に対して設定された開始基準領域を通過するか否かを判定し、通過すると判定した場合に、当該手の位置または動きに基づく入力情報の取得を開始する。
なお、入力情報の取得の終了については、実施の形態1と同様である。
図3の例では、入力情報取得部25は、接触判定部31、方向線算出部32、通過判定部33、算出タイミング決定部34、および座標算出部35を含む。
方向線算出部32は、実施の形態1で説明した終了判定用の方向線(以下、「終了方向線」と称す)の他に、手が操作領域に接触する際の手の動きの方向を示す開始方向線を算出する。例えば、方向線算出部32は、接触判定部31により手が操作領域に接触したと判定された場合に、その接触時点までの一定期間における当該手の位置に基づいて当該手の開始方向線を算出する。開始方向線は、例えば、手が操作領域に接触した位置を終点とする半直線であり、手が操作領域に接触した時点よりも一定時間(例えば0.5秒)前の手の位置を通過する半直線である。すなわち、開始方向線は、例えば、手が操作領域に接触した位置を終点とし、また、手が操作領域に接触した時点よりも一定時間(例えば0.5秒)前の手の位置を始点として、始点と終点を結ぶ線を、終点から始点方向に延長して得られる半直線である。あるいは、方向線算出部32は、手が操作領域に接触した位置を終点とする半直線であり、手が操作領域に接触するまでの一定期間における各時点(例えば接触時点の0.1秒前から1秒前までの0.1秒ごとの時点)での手の位置との距離の二乗の合計が最小となる半直線を開始方向線として算出してもよい。
方向線算出部32は、接触判定部31により複数の手が操作領域に接触したと判定された場合は、当該複数の手のそれぞれに対して開始方向線の算出を行う。
なお、方向線算出部32は、接触判定部31の判定結果によらず、手位置取得部22により取得された全ての手について開始方向線を算出してもよい。
通過判定部33は、実施の形態1と同様に終了方向線が終了基準領域を通過するかを判定するとともに、方向線算出部32により算出された開始方向線が基準領域設定部24により設定された開始基準領域を通過するかを判定する。このとき、複数の開始方向線が算出されている場合や、複数の開始基準領域が設定されている場合は、通過判定部33は、開始方向線と開始基準領域との全ての組み合わせに対して、開始方向線が開始基準領域を通過するか否かの判定を行う。
算出タイミング決定部34は、接触判定部31により手が操作領域に接触したと判定され、かつ通過判定部33により当該手の開始方向線が開始基準領域を通過していると判定された場合であって、さらに当該操作領域と当該開始基準領域とが同一の人物に対して設定されたものである場合に、座標算出部35による2次元座標の算出の開始を決定する。
図19は、実施の形態5における入力装置12の処理の一例を示すフローチャートである。以下、図19を参照して、本実施の形態における入力装置12の処理を説明する。
以下に説明する一連の処理は、一定のタイミングごとに実行される。例えば、画像取得装置11が画像データを取得するタイミング(例えば1/30秒に1回)にあわせて、1/30秒に1回実行される。
また、ここでは、入力装置12は、開始基準領域および終了基準領域として共通の基準領域を設定し、図9に示す人物テーブルと、図10に示す手テーブルとを有する。
図19を参照すると、本実施の形態では、ステップS8において、一定時間以上位置が取得された手に対して、開始方向線および終了方向線を求める。具体的には、入力装置12は、手テーブルにおいて位置データが所定数以上登録されている手が存在する場合に、そのような手のそれぞれについて、開始方向線および終了方向線を求めて手テーブルに登録する。ここでは、今回取得した手の位置(開始方向線の終点であり、終了方向線が通過する点である)と0.5秒前の手の位置(開始方向線が通過する点であり、終了方向線の始点)とを、開始方向線および終了方向線を示すデータとして手テーブルに登録する。
そして、ステップS10で操作領域に触れている手が存在すると判定された場合(S10:Y)、入力装置12は、当該手に対して算出された開始方向線が、対象人物に対して設定された基準領域に交差しているかを判断する(S20)。
開始方向線が基準領域に交差している場合(S20:Y)、対象人物によるジェスチャー入力を開始し(S11)、対象人物の操作領域に触れている手の3次元座標から2次元座標を算出し(S12)、処理を終了する。一方、開始方向線が基準領域に交差していない場合には(S20:N)、処理を終了する。
以上説明した本実施の形態によれば、下記(11)〜(16)の効果が得られる。
(11)本実施の形態では、入力装置は、手が操作領域に接触したと判定した場合、手が操作領域に接触する際の手の動きが所定方向の動きであると判定したときに、当該手の位置または動きに基づく入力情報の取得を開始する。これにより、ユーザの意図しない情報入力の開始を抑制することができる。具体的には、ユーザが入力を開始する意図が無いにも関わらず手が操作領域に触れたために情報入力や操作が開始されてしまうことを防ぐことができる。例えば、手を振る動作などにより、ユーザの手が当該ユーザの操作領域に偶然触れたことによる入力の開始や、ユーザ以外の人物の手が当該ユーザの操作領域に触れたことによる入力の開始を防ぐことができる。この結果、誤入力や誤操作を抑制することができる。
例えば、上記所定方向の動きは、操作領域に対応する人物側から操作領域に向かう方向の動きであり、この場合、人物が手を前に出す動きをしたときにのみ、入力情報の取得を開始することができる。
(12)入力装置は、人物の前方に操作領域を設定するとともに、人物に対して所定の位置に仮想的な開始基準領域を設定し、手が操作領域に接触したと判定した場合、手が操作領域に接触する際の手の動きの方向を示す開始方向線を求め、当該開始方向線が操作領域に対応する人物に対して設定された開始基準領域を通過すると判定したときに、当該手の位置または動きに基づく入力情報の取得を開始する。本態様によれば、開始方向線が開始基準領域を通過するか否かを判定することにより、手が操作領域に接触する際の手の動きが所定方向の動きであるか否かを判定することができ、ユーザの意図しない情報入力の開始を抑制することができる。例えば、開始基準領域は、手が人物側から操作領域に向かう方向に移動して操作領域に接触した場合に開始方向線が開始基準領域を通過するように設定され、この場合、開始方向線が開始基準領域を通過するか否かを判定することで、人物側から操作領域に向かう方向の手の動きを判別することができる。
(13)開始基準領域は、操作領域よりも人物の近傍に人物の前方を向くように設定される。この場合、手が操作領域に接触し、かつ開始方向線が開始基準領域を通過する場合、人物の動きは、手を前に出して操作領域に触れる動きである可能性が高い。このため、本態様によれば、人物が手を前に出して操作領域に触れる動作を検出し、当該動作により手が操作領域に接触した場合に、情報入力を開始することができる。
(14)開始方向線は、手が操作領域に接触する際の一定期間における手の位置の変化を示す有向線分の終点から始点方向に延びる半直線である。本態様によれば、開始方向線が延びる方向を一方に制限することにより、開始方向線が双方向に無限に延びる直線である場合と比較して、ユーザの意図しない情報入力の開始をより確実に抑制することができる。
(15)入力装置は、複数の人物の位置を取得した場合、各人物に対して操作領域および開始基準領域を設定する。そして、各操作領域について、手が当該操作領域に接触したか否かを判定し、接触したと判定した場合に、手が当該操作領域に接触する際の手の動きの方向を示す開始方向線を求め、当該開始方向線が当該操作領域に対応する人物に対して設定された開始基準領域を通過するか否かを判定し、通過すると判定した場合に、当該手の位置または動きに基づく入力情報の取得を開始する。本構成によれば、複数の人物が存在する場合に、各人物は、自身に設定された操作領域内で手を動かして情報入力または操作を行うことができる。また、複数の人物が存在し、各人物に操作領域が設定された場合に、あるユーザが別の人物に設定された操作領域に触れたとしても情報入力が開始されないので、ユーザが入力を開始する意図が無いにも関わらずユーザの手が操作領域に触れたために情報入力が開始されてしまうことを防ぐことができる。
(16)入力装置は、複数の手の位置を取得した場合、当該複数の手のうちのいずれかの手が操作領域に接触したか否かを判定し、いずれかの手が接触したと判定した場合に、当該手が操作領域に接触する際の当該手の動きの方向を示す開始方向線を求め、当該開始方向線が操作領域に対応する人物に対して設定された開始基準領域を通過するか否かを判定し、通過すると判定した場合に、当該手の位置または動きに基づく入力情報の取得を開始する。本態様によれば、複数の手が存在する場合にも、適切に入力情報の取得を開始することができる。
なお、上記実施の形態5の構成は、実施の形態2〜4のいずれかの入力装置に適用されてもよい。
実施の形態6.
本実施の形態6における入力装置12は、入力情報の取得開始前と取得開始後とで、操作領域の形状または位置を変更するものである。
本実施の形態では、入力情報取得部25による入力情報の取得開始後、または算出タイミング決定部34が入力情報の取得開始を決定した後、操作領域設定部23は、入力情報の取得開始前と異なる位置または形状の操作領域を設定する。例えば、図8のステップS4において、入力装置12は、ある人物に対して操作領域を設定する場合、当該人物の開始フラグが「0」であるときには開始前用の操作領域を設定し、開始フラグが「1」であるときには開始後用の操作領域を設定する。
例えば、操作領域設定部23は、入力情報取得部25による入力情報の取得開始後、入力情報の取得開始前よりも操作領域が人物に近づくように操作領域を設定するか、あるいは、入力情報の取得開始前よりも操作領域が大きくなるように操作領域を設定する。例えば、操作領域設定部23は、入力情報の取得開始後、図12または図15における距離L1の値を、入力情報の取得開始前よりも小さくすることで、操作領域を人物に近づけるとともに操作領域の範囲を広げる。
また例えば、操作領域設定部23は、入力情報取得部25による入力情報の取得開始後、入力情報の取得開始時(または2次元座標の算出の開始の決定時)における、手の位置および開始方向線が開始基準領域を通過する位置のうちの一方または両方を基に操作領域の設定を行う。例えば、操作領域設定部23は、入力情報の取得開始時における開始方向線が開始基準領域を通過する位置が人物の右側か左側かを判断し、その判断結果に応じた位置または形状の領域を操作領域として設定する。
具体的には、開始方向線が開始基準領域に交差する位置が人物の右側である場合は、当該人物は右手を伸ばしている可能性が高い。そこで、交差する位置が人物の右側である場合には、例えば図20に示すように、取得開始前(図4、図11)よりも右手側にずらした位置に操作領域R5を設定し、交差する位置が人物の左側である場合には、取得開始前よりも左手側にずらした位置に操作領域を設定する。
あるいは、交差する位置が人物の右側である場合には、例えば図21に示すように、人物Aの右肩の位置SRを通り人物Aの上下方向に延びる直線を中心軸とする部分円筒面状の内周面SIと、人物Aの右肩の位置SRを通り人物Aの上下方向に延びる直線を中心軸とし、内周面SIよりも大きい半径を有する部分円筒面状の外周面SOとに挟まれる領域、または右肩の位置SRを中心とする部分円筒状の領域を操作領域R6として設定する。一方、交差する位置が人物の左側である場合には、人物の左肩の位置SLを通り人物の上下方向に延びる直線を中心軸とする部分円筒面状の内周面と、人物の左肩の位置SLを通り人物の上下方向に延びる直線を中心軸とし、内周面よりも大きい半径を有する部分円筒面状の外周面とに挟まれる領域、または左肩の位置を中心とする部分円筒状の領域を操作領域として設定する。
以上の通り、本実施の形態では、入力装置は、入力情報の取得開始後、取得開始前よりも操作領域が人物に近づくように、または操作領域が広くなるように操作領域を設定する。これにより、情報入力の開始後、意図せずに手が操作領域から離れ、情報入力が終了してしまうことを防ぐことができる。また、情報入力の開始前は、操作領域をある程度人物から離しておくことができ、または操作領域をある程度小さくしておくことができ、意図せずに手が操作領域に触れて情報入力が開始してしまうことを防ぐことができる。
また、入力装置は、入力情報の取得開始後、取得開始時における、手の位置および開始方向線が開始基準領域を通過する位置のうちの一方または両方を基に操作領域の設定を行う。これにより、ユーザの手の位置や動きに応じて、入力しやすい操作領域を設定することができる。例えば、取得開始時における手の位置または開始方向線が開始基準領域を通過する位置が人物の右側である場合に、操作領域の位置を右側にずらすことにより、右手での入力または操作を行いやすい操作領域を設定することができる。
なお、上記実施の形態6の構成は、実施の形態2〜5のいずれかの入力装置に適用されてもよい。
また、本発明は、上記実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の態様で実施することができる。
例えば、上記の説明では、人物および手の3次元位置を取得する場合を例示したが、入力装置12は、人物の2次元位置や手の2次元位置を取得してもよい。2次元位置としては、例えば、水平面に平行な2次元座標系における座標がある。この場合でも、例えば、人物が手を前に出す動きや引き寄せる動きを判別することができる。
また、終了判定における所定方向の動きは、人物側に向かう方向の動きに限られず、他の方向であってもよい。同様に、開始判定における所定方向の動きは、人物側から操作領域に向かう方向の動きに限られず、他の方向であってもよい。
また、終了基準領域の位置や形状は、上記に限られず、どのような方向の手の動きを情報入力の終了時の動作とするかなどによって適宜決められればよい。例えば、操作領域と人物との間に終了基準領域を設定してもよいし、人物の後方のある程度離れた位置に終了基準領域を設定してもよい。また例えば、右手を右斜め後方に引く動きを終了時の動作とする場合には、人物の右斜め後方に終了基準領域を設定してもよい。同様に、開始基準領域についても、どのような方向の手の動きを情報入力の開始時の動作とするかなどによって適宜決められればよい。
また、上記の説明では、終了方向線として半直線を例示したが、終了方向線は、他の種類の線であってもよく、基準領域の位置や形状などに応じて適宜決められればよい。例えば、終了方向線は、手が操作領域から離れる際の手の位置の変化を示す有向線分の始点および終点を通って双方向に延びる直線であってもよいし、当該有向線分の始点から終点方向に延びる所定長さの線分であってもよい。同様に、開始方向線は、適宜決められればよく、例えば、手が操作領域に接触する際の手の位置の変化を示す有向線分の始点および終点を通って双方向に延びる直線であってもよいし、当該有向線分の終点から始点方向に延びる所定長さの線分であってもよい。
また、上記の説明では、複数の人物の位置が取得された場合に、当該複数の人物のそれぞれに対して操作領域および基準領域を設定する構成を例示したが、入力装置は、各人物の位置や特徴などに基づいて、複数の人物のうちの特定の人物(例えば1人の人物)に対して操作領域および基準領域を設定してもよい。
また、入力装置は、手が操作領域の外にある場合に当該手の位置に基づいて2次元座標を算出する場合(例えば、図8のステップS14で「N」と判定された後にステップS12で2次元座標を算出する場合)、手の位置(操作領域外の位置)に最も近い操作領域内の位置を求め、当該位置を基に2次元座標の算出を行ってもよい。
また、上記の説明では、入力情報として、手の3次元位置を基に2次元座標を算出する場合を例示したが、入力情報取得部25は、手の位置変化または動きに基づいてユーザのジェスチャまたは指示を認識し、認識されたジェスチャまたは指示を出力してもよい。
また、上記の説明では、入力装置を表示システムに利用する場合を例示したが、入力装置は、入力情報を他の種類の対象機器に出力してもよいし、入力情報に基づいて他の種類の対象機器の制御を行ってもよい。