JP3544739B2 - 情報入力装置 - Google Patents
情報入力装置 Download PDFInfo
- Publication number
- JP3544739B2 JP3544739B2 JP08346095A JP8346095A JP3544739B2 JP 3544739 B2 JP3544739 B2 JP 3544739B2 JP 08346095 A JP08346095 A JP 08346095A JP 8346095 A JP8346095 A JP 8346095A JP 3544739 B2 JP3544739 B2 JP 3544739B2
- Authority
- JP
- Japan
- Prior art keywords
- point
- minimum
- light
- distance
- minimum point
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Length Measuring Devices By Optical Means (AREA)
- Image Processing (AREA)
- Position Input By Displaying (AREA)
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
Description
【0001】
【産業上の利用分野】
本発明は、例えば電子機器を操作又は遠隔操作するための情報入力装置に関する。
【0002】
【従来の技術】
従来、実現されていた操作のための情報入力装置(以下、操作装置と呼ぶ)は、操作者が手に何らかの装置を持って行うものが多い。家庭用で最も普及している操作装置はリモコンであり、これは手にリモコン装置を持ち、機械に向けてリモコンのボタンを押すことにより、リモコンから機械に赤外線を投射し、指示を出している。
【0003】
また、手に何も持たない操作装置としては、タッチパネルなどもある。これは透明あるいは不透明のパネルを指などで押さえることで、押したという情報やその位置を入力できるものである。透明パネルを表示装置の上に重ねて配置すれば、表示装置にボタンなどの選択肢を絵として表示させ、そのうちのひとつを「押す」ことによる選択入力が可能である。
【0004】
また研究分野においては、画像認識技術による手振り認識、身ぶり認識などが研究されている。しかし画像処理によりこれらを認識するためには背景を単調にしなければならないとか、画面の中央にどのくらいの大きさで手が写っていなくてはならないとか、制約条件が厳しく、実用化には至っていない。
【0005】
三角測量の原理を用いたステレオ法によって物体の3次元的な形状を把握し、画像認識に役立てようとする研究がある。しかし、遠隔操作装置へと応用した例は少ない。
【0006】
【発明が解決しようとする課題】
リモコン装置による操作は、手に装置を持たなくてはならず、リモコン装置が手元にない場合は操作することができない。また汚れた手で操作するのは好ましくなかった。
【0007】
タッチパネルは手に何も持たずに操作することができるが、表示装置の上にある透明パネルを触るため、パネルが汚れて表示が見えにくくなるなどの問題がある。また、パネルの汚れのために、不特定多数の人が操作する装置を「触りたくない」という要望が強い。
【0008】
画像処理による手振り認識などの技術においても、認識技術の未熟さから、ノイズの影響を受け、きちんと手を認識することが難しい。
【0009】
特に家庭内において、リモコン装置などのいかなるデバイスも手に持ったり装着したりすることなく、素手のみで遠隔操作できる環境を提供することは、非常に望ましいにも関わらず実現されていない。
【0010】
本発明は上記実情に鑑みなされたものであり、リモコン装置などの一切のデバイスを手に持つことなく離れたところから電子機器等のシステムを操作可能とする情報入力装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
本発明は、測定物までの距離を示す距離情報を2次元配列させた距離画像を入力するための距離画像入力手段と、この距離画像入力手段から入力された距離画像の中で局所的に距離値が最小となる極小点を求める極小点検出手段と、前記距離画像入力手段から入力された距離画像の時間に対応した距離値の変化量である時間差分を検出する時間差分検出手段と、前記極小点検出手段が検出した極小点のうち、前記時間差分検出手段が検出した時間差分に変化の生じた極小点を、操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段とを具備することを特徴とする。
【0013】
また、本発明は、測定物までの距離を示す距離情報を2次元配列させた距離画像を入力するための距離画像入力手段と、この距離画像入力手段から入力された距離画像の中で局所的に距離値が最小となる極小点を求める極小点検出手段と、前記距離画像入力手段から入力された距離画像の時間に対応した距離値の変化量である時間差分を検出する時間差分検出手段と、前記極小点検出手段が検出した極小点の中で、距離の時間差分がある範囲の値を持ち、かつ距離値が最も小さい値を持つ極小点を、操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段とを具備することを特徴とする。
【0014】
また、本発明は、アレイ構造に並べた発光素子からなる発光手段と、この発光手段の発光素子を一つづつ順番に発光させる発光制御手段と、この発光手段によって発光された光の、物体による反射光の入射位置を検出する光検出手段と、この光検出手段が検出した光の入射位置とこの光を発光させた発光素子の位置とから距離情報を演算する演算手段と、この計測手段が計測した距離画像のうち局所的に距離値が最小となる極小点を求める極小点検出手段と、からなる距離画像入力手段を持つことを特徴とする。
【0015】
また、本発明は、前記システム制御手段が、指示点決定手段で決定された指示点に対応するディスプレイ上の位置をカーソルで表示し制御するカーソル制御手段と、このカーソル表示手段によって表示されたディスプレイ上のカーソルの軌跡をシステムを制御する命令に変換する制御命令変換手段と、この制御命令変換手段で変換された制御命令を実行する制御実行手段とからなることを特徴とする。
【0016】
また、本発明は、発光手段と、物体による反射光を受光する受光手段と、前記発光手段が発光しているときの前記受光手段の出力と前記発光手段が発光していないときの前記受光手段の出力とから距離画像を計測する計測手段と、この計測手段が計測した距離画像のうち局所的に距離値が最小となる極小点を求める極小点検出手段と、この極小点検出手段が求めた複数の極小点の中から所定の規則により一つ又は二つ以上の極小点を操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段とを具備することを特徴とする。
【0017】
また、本発明は、前記計測手段が、上記発光手段が発光しているときの前記受光手段の出力と前記発光手段が発光していないときの前記受光手段の出力との差分が所定の許容範囲を越えていたときに、これらの出力を用いないようにする手段を含むことを特徴とする。
【0018】
また、本発明は、前記極小点検出手段が求めた複数の極小点の動きを検出する極小点動き検出手段及び前記極小点検出手段が求めた複数の極小点を作成する物体の形状または向きを検出する極小点周辺状況解析手段の少なくとも一方と、前記極小点動き検出手段及び極小点周辺状況解析手段の少なくとも一方の手段の結果から一つ又は二つ以上の極小点を選ぶ手段とを具備することを特徴とする。
【0019】
また、本発明は、前記指示点決定手段が決定した指示点の座標値及び距離値の少なくとも一方を前記指示点決定手段がその直前に決定した時間的に連続する複数の指示点の座標値又は距離値を用いて平準化するフィルタリング手段を具備することを特徴とする。
【0020】
また、本発明は、前記指示点決定手段が決定した指示点の動きが所定の範囲内にある時間を検出する指示点静止時間検出手段と、前記指示点の位置とディスプレイ上に表示された複数のメニューの中のいずれか一つを対応づける指示点メニュー対応検出手段と、前記指示点静止時間検出手段の出力が所定の条件を満たしたときに、前記指示点メニュー対応検出手段によって検出されたメニューを実行するコマンド実行手段とを具備することを特徴とする。
【0021】
また、本発明は、前記極小点検出手段が求めた複数の極小点の中からその動きによって指先に対応する極小点を検出する第1の極小点動作検出手段と、この第1の極小点動作検出手段にて検出された指先がメニューを選択するための動きをしたことを検出する第2の極小点動作検出手段とを具備することを特徴とする。
【0022】
即ち、本発明は、上述のような課題を解決するため、物体との距離値の分布である距離画像を入力するための距離画像入力手段と、この距離画像入力手段から入力された距離画像のうち距離値が最小となる点を操作を行う者が指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記システムを制御するシステム制御手段を具備することを特徴とする。
【0023】
【作用】
上述のような構成を持つことにより、そこにあるものが手の形をしていることを認識するのではなく、距離画像の極小点に関する情報から、手であることを推測する。具体的には例えば、操作者が手を前方に(これから操作を行うという意志と共に)伸ばしたとき、距離画像の極小点が生成することを利用して手が伸ばされたことを検出する。その際に距離画像の時間差分データを利用して手の動きと関係のない極小点を取り除き、指示点を検出する。そのあとはその部分を追跡することにより、手の動きが入力できるので、画面上のポインティングデバイスとして用いることができる。
【0024】
本発明によって、リモコン装置などの一切のデバイスを手に持つことなく、また装着することなく、素手のみでシステムを操作する環境が実現できる。
【0025】
また、ユーザがポインティングしようとして、前方に差し出した手指は、距離画像の中の極小点、すなわち局所的に距離値が最小になる点として現れる。従って、本発明では、距離画像の極小点を中心とした解析を行うことによりユーザの指先の位置を求める。この手法を用いると、画像処理で行うと誤認識の原因になってしまうような複雑な背景条件のもとでも安定して指先の位置を求めることができる。また、距離画像の解析は極小点解析を中心とした比較的簡単な処理で済むので、大規模なハードウエアが必要ない。
【0026】
【実施例】
以下に図面を参照しながら本発明の実施例について詳細に説明する。
【0027】
まず初めに、図1で表される本発明の第1実施例について述べる。その手法の概要は、操作者の手などの距離画像を解析し、その極小点を主とする情報を抽出し、それを利用して機器の遠隔操作を行うものである。まず距離画像入力部1より距離画像が得られ、それが極小点検出部2および時間差分検出部3によって処理される。極小点検出部2は距離画像の中で局所的に距離値が最小になる極小点を検出する。時間差分検出部3は距離画像中の各々の座標についての時間差分を検出する。距離画像入力部1、極小点検出部2、時間差分検出部3から得られる情報を用いて、ユーザの指示する点である指示点を指示点決定部4で決定し、システム制御部5がシステムの制御を行う。第1実施例に示した構成により、使用者や使用者の手の動きが距離画像として取り込まれ処理されるので、手にリモコン装置などの機器を持つことなく、手の動きだけで機器を操作できる遠隔操作環境を実現することができる。
【0028】
本発明の詳細については、主に後述する第2および第3実施例を用いて説明を行うが、ここでは距離画像の入力の原理について述べる。まず従来技術である距離情報を遠隔測定する原理について述べる。図2は、カメラのAF機構などに用いられる距離計測手法である。LED10と投光レンズ11を用いて赤外線などをビーム状に投光し、測定物12からの反射光を、発光手段から離れた位置にある位置検出素子(PSD)13によって受光する。位置検出素子13はスポット光があたった位置に応じて2つの電極より電流を発生する。今、2つのレンズ11、14は同一平面上にあるとし、LED10の光軸と投光用レンズ11の中心軸は一致し、PSD13は、その検出変位方向は2つのレンズの中心を結ぶ直線と平行になるようにし、その一方の端点が受光用レンズ14の中心軸上にくるように配置する。LED10とレンズ11の距離、PSD13とレンズ14の距離は共に等しくfとし、レンズの中心間をL、投光用レンズ11から測定物12までの距離をDとし、PSD上での光の入射位置が(受光用レンズの中心軸上にある)端点からXだけ離れていたとすると、D:L−f:Xが成り立ち、D=Lf/xによって、Dが求められる。またPSD13の2つの電極から発生する電流をi1、i2、抵抗層の長さをCとすると、i1:i2=(C−X):Xが成り立ち、X=C×i2/(i1+i2)によってXが求められる。これらより、D=(i1+i2)/i2×(fL/C)が成り立つので、PSD13の2つの電極に発生する電流の比が分かれば、測定物12までの距離が求められる。
【0029】
本発明においては、上述の距離計測手段を2次元化することによって2次元的な距離情報、つまり距離画像を得る。図3のように、LEDを2次元アレイに並べて(20)発光し、レンズ21で投光すると、レンズ21からある距離だけ離れたところに像を結ぶ。今、アレイの中のひとつのLED22に着目してみると、このLED22の発する光は像の中の1点に向かって進む。この光の軸上に物体23があれば、その反射光をPSDで捕らえることで、その物体23までの距離を測定できる。つまり、アレイとなったLEDをひとつづつ順次発光させ、その反射光をPSDで受光することにより、2次元的な距離情報を得ることができる。この場合、測定物に当たる光スポットが焦点ボケによって(測定誤差が許容範囲を越えるほど)大きくならない範囲において、距離計測を行うことができる。レンズ21の径が小さく、像を結ぶ位置がレンズ21から遠いほど、計測範囲を広くとることができる。このとき投光レンズの中心軸からずれた位置にあるLEDを用いて距離を測定する方法を図4を用いて説明する。すなわち、LEDアレイ30の中心から(PSDとLEDアレイを結ぶ方向に)dだけ離れたLED31の光の、物体Aによる反射光がPSD32に入射する位置は、アレイの中心にあるLED33によって発光された光の物体Aと等距離にある物体B(この場合、距離とは投受光用の2レンズの中心を結ぶ直線からの距離とする)による反射光がPSD32に入射する位置とdだけ離れている。つまり、xO−x=d(ただし、dはアレイの中心から左方向に正)が成り立つ。今は、LEDの位置が、PSDとLEDアレイを結ぶ方向にずれた場合について述べたが、それと直交する方向にずれた場合はPSD上の光入射位置がやはり同じ方向にずれるだけであり、PSDとLEDアレイを結ぶ方向には変化しない。したがって、ある程度の幅を持った1次元PSDを用いれば同じ出力電流比が得られる。以上述べた原理に基づいて、ある広がりを持った操作空間における距離画像を得る。
【0030】
次に第2実施例について述べる。第2実施例の構成は図5に示される。これは前述の第1実施例を更に具体化したものと言える。図1における距離入力部1はLEDアレイ40とその駆動回路であるLEDアレイ制御部41、及び位置検出素子(PSD)42とPSDからの出力より距離を計算する距離演算部43から成る。LEDアレイ制御部41はアレイになったLEDを順次パルス発光させ、PSD42には各LEDに対応する反射光が順次入射される。距離演算部43から順次出力される各座標の距離値は極小点検出部44と時間差分検出部45に送られる。極小点検出部44は随時送られて来るデータから、1点1点についてそれが極小点であるか否かの判定を行う。時間差分検出部45は各点について数フレーム前との時間差分を演算する。これらの結果と距離値、座標値のデータは、指示点決定部46に送られる。指示点決定部46は、時間差分がある一定値以上あり、かつ距離値が最も小さい極小点の座標、距離値を格納する。このデータは全ての座標のデータが得られるまで随時更新され、LEDの発光が一巡したところで確定する。図には表していないが、確定後、この座標(指示点)は、表示部に送られカーソル表示に用いられたり、様々な位置指示部に利用される。タイミング制御部47は上記の各部の同期を取るためにタイミング信号を発生させる。ここで、最も小さい距離値を持つ極小点を指示点として利用する理由について述べる。使用者が遠隔操作をしようとするとき指示したい装置に向かって手または指を伸ばせば、それは距離画像の極小点として認識される。距離画像中には幾つもの極小点が存在すると考えられるが、伸ばした手指を認識することを考えれば、その中で最も装置に近い(距離値が小さい)極小点を手指であると判断するのが最も適当である。しかし使用者より装置に近い側に他の物体があり、手指よりも装置に近い極小点を作ってしまう可能性もある。そこで時間差分がある値以上あるという条件をつけ加える。これにより、手指よりも装置側に物体があって極小値を作っていてもそれが静止状態にある場合は排除できる。
【0031】
図6は図5におけるLEDアレイ40およびLEDアレイ制御部41のさらに具体的な構成である。ここでは各LED毎に発光回路50を設け、パルス信号を入力しパルス発光させる。このパルス信号はタイミング制御部47から取り出す。この図の下部が、タイミング制御部47であるが、ここでのクロック発生器51からの基本クロックを分周器52で分周して得られた信号から、単パルス抜き取り部53で単パルスを抜き出す。これをシフトレジスタ54でずらしながら各LED発光部50に入力することで、各LEDを時間的に重複の無いよう、順番に発光させる。
【0032】
図7は図5における距離演算部43のより具体的な構成である。まずPSD60からの出力電流をアンプ61で電流電圧変換し、増幅した後、A/D変換する。LEDが発光していないときも背景光の影響でPSDには電流が流れているため、この背景光電流に対応する出力値(以後、背景値と呼ぶ)をラッチ回路63にラッチする。LEDが発光したときの出力値からこの背景値を差し引いた値を用いて計算すれば背景光の影響を排除することができる。ここでの背景値のラッチを行う頻度は後述するよう背景光の種類によって決められる。背景光の影響を除去された出力値は一方で足し合わされ逆数変換される。逆数変換回路64はROMを用いて、入力値をアドレスとし逆数を出力する。この結果とi2側の出力をかけ算器65でかけ合わせ、定数倍回路で抵抗層長をかける。この出力が、C×i2/(i1+i2)に相当し、PSD上での光入射位置が計算されたことになる。
【0033】
この後、Xから被測定物体までの距離Dを演算するわけであるが、このXにはPSDの持つ位置検出誤差があり、距離Dには、LEDアレイの位置誤差、レンズなども含めた全体の系の位置や向きの誤差などが存在する。XからDを求める式は、D=k/(k+a)であるが、誤差要因によりパラメータk、aはLED毎に異なる。そこで各LED毎にキャリブレーションを行い、近似的にパラメータを決定する。これをROM66、67に記憶させておき、対応するLEDの座標値をアドレスにして、ROMよりパラメータを読み出し、演算する。この出力は誤差の補正された測定距離値である。
【0034】
図8はPSDからの出力70、A/D変換器の入力トリガ71、ラッチ回路の入力トリガ73、およびA/D出力72、ラッチ出力74、背景値除去後の出力75のタイミングチャートを示したものである。この図では、各LEDを発光する直前に背景値をラッチし、PSD出力から差し引いている。PSDからの出力70はLEDが発光していない時の出力とLED発光時の出力が交点に現れ、LED発光時の出力に対応する光源のLEDは順次変わっていく。したがってA/D出力72もLED発光時とLED非発光時の出力が交互に現れる。LED非発光時の出力が現れている時にこの値をラッチし、次のLED非発光出力をラッチするまで保存しておけば、そのあいだのLED発光時出力に対し背景光除去の処理を行うことができる。図9は複数のLED発光時出力に対し、ひとつのLED非発光時出力を用いて背景光除去を行う場合のタイムチャートである。ここではあるLED非発光時出力を次のLED非発光時出力があるまでラッチし(83、84)、その間に現れるLED発光時出力に対する背景光は一定であると見なして補正を行う。この図では4つのLEDに対してひとつのLED非発光時出力を用いているが、この数はいくつにすることもできる。ただ螢光灯下のようにある時間周期をもって明るさが変化するような環境で行う場合は、余り数を多くし過ぎると正しく補正できなくなる。この手法の利点は図8の場合に比べて高速化が図れるという点である。
【0035】
図10は得られた距離情報を用いて、ある座標点が極小点であるかどうか、時間差分が条件を満たしているかを判断する部分の構成である。基本的にはシフトレジスタを用いて距離値を遅延させ、比較するあるいは差をとることによって、判断する。LEDアレイのサイズが10×10で、(0,0)(0,1)(0,2)…(0,9)(1,0)(1,1)…(9,9)という順番で距離値が得られるとすると、ある座標点が極小点であるかどうかを判断するためにはその11個先の距離値が得られなければならない。そこである座標の距離が得られたときにその11個手前の座標について判断し、結果を出力することにする。図のような種々の遅延長を持ったシフトレジスタを並列に並べ、遅延長11のシフトレジスタの出力(最新の距離値の11個前)を中心にして演算を行う。まず、距離値の入力を1、2、10、11、12、20、21、22、の遅延長を持つシフトレジスタ(90〜97)に入力し、その出力(D2〜D8)およびシフトレジスタを通さない距離値D3を用いて極小点のチェックを行う。上記9個の出力の座標は、操作空間上で3×3の領域となり、その中心座標の出力は遅延長11のシフトレジスタからの出力D1である。これ以外の8個のデータ全てについて、各々中心座標の距離値D1と比較をコンパレータ98で行う。これらのコンパレータは中心座標の距離がそれと比較される座標の距離より小さいときに1を出力し、8つのコンパレータ出力のANDをとった結果が1であれば、中心座標が極小点である。
【0036】
また、このときの中心座標の時間差分をとるために111、211、311、411、の遅延長を持つシフトレジスタ(99〜102)に通し、その出力をセレクタ103で選択し中心座標距離との差分を取る。シフトレジスタ99、100、101、102はそれぞれ1、2、3、4フレーム前の中心座標の距離値を出力する。この時間差分ΔDがTH10W より大きければ1を出力する。ここでは1〜4フレーム前の距離との時間差分を取ることができるようになっているが、シフトレジスタ(99〜102)の長さをもっと長くすれば、さらに以前の距離と比較することもできる。
【0037】
また、中心座標が端の行または列に存在しているとき上記極小点のチェックは意味を成さないので、中心座標が端の行または列に存在していないときのみ極小点として記憶可能にする。最新の距離値を持つ点のx、y座標が共に2以上であれば中心座標(遅延長11のシフトレジスタからの出力)は端の行または列に無い。したがって、4bitで構成される最新の点の各座標が0000か0001でない場合、すなわち上位3bitに1つ以上1がある場合に、1を出力し極小点として記憶可能とする。
【0038】
上述した3つの出力のANDをとった結果が1であった場合、すなわち、中心座標が極小点であり、距離の時間差分がある値の範囲内にあり、端の行または列に存在していない場合、その中心座標のデータを指示点候補とする。
【0039】
図10のうち、時間差分の条件適合性を判断する部分は、図11のように構成することがきる。ここでは4フレーム前と3フレーム前の距離の時間差分、3フレーム前と2フレーム前の距離の時間差分、2フレーム前と1フレーム前の距離の時間差分、1フレーム前と現フレームの距離の時間差分の4つの時間差分すべてがある値以上かどうかをチェックしている。これはある時間範囲において常に手前方向に物体が動き続けていることを検出することに等しい。もちろん、例えば、2、4、6、8フレーム前、あるいは4、8、12、16、20フレーム前というように差分をとる時間間隔や数を変えることは容易である。
【0040】
図12は時間差分がある値以上の極小点(以後、指示点候補と呼ぶ)のうち、もっとも距離の近い点の座標を求める部分の構成である。フリップフロップ110には現時点までの最も近い指示点候補の距離値が保持されており、さらに近い指示点候補が入力されたときには更新される。コンパレータ111は新たに入力された距離値と保持されている距離値と比較し、新たに入力された距離値の方が小いとき1を出力する。この出力と図10に示した、指示点候補であるかどうかの判断部からの出力(図12では記憶指示フラグと表示)とANDをとった結果が1であればデータを更新し、0であれば更新しない。このとき記憶指示フラグは、図10における遅延長11bitのシフトレジスタの出力に対応する座標が指示点候補であるかどうかを示すので、図12の入力距離値は図10における遅延長11bitのシフトレジスタの出力である。また距離値と同時にその座標値も別のフリップフロップ112に保持しておき、ここのデータ更新は上述のフリップフロップ113と同期して行う。ここでの座標データも、遅延長10bitのシフトレジスタ出力に対応するよう変換されてある。全てのLEDが発光し終わった段階で、そのフレームにおける最も近い指示点候補が決定している。ただし、あるフレームでの指示点が決定するのは、その次フレームの第11番目のLEDが発光し終わったときである。全てのLEDが発光した後、フリップフロップ113に決定された極小点を保持し、指示点として利用する。
【0041】
以上で第2実施例についての説明を終える。次に第3の実施例について述べる。
【0042】
図13は第3実施例の構成である。第2実施例と異なるところは指示点決定部121の前に、指示点候補記憶部120が入っているところである。指示点候補記憶部120は、ある値以上の距離の時間差分を持ち、最も距離値が小さいn個の極小点を記憶する。指示点決定部121はこれら複数の指示点候補から指示点候補を決定する。
【0043】
第3実施例の詳細について説明する。図14は図13における指示点候補記憶部120を具体的に示したもので、最も近い3つの指示点候補の距離値と座標値を保持するようにしたものであり、フリップフロップ回路とスイッチ、SW制御回路からなるデータ記憶部を、3段構成にしている。もちろん3つより多くとも少なくとも同様の構成で実現できる。ここの入力部には距離値と座標値とが順次入力される。フリップフロップ130、131、132にはこの順番で現時点での最も小さいものから3つの指示点候補のデータがQ1、Q2、Q3として保持されている。SW制御部133、134は入力された新しいデータと保存されているデータとの比較を行い、その距離値が小さい方のデータを再び保存し、距離値が大きい方のデータを後段のデータ記憶部に送る。制御部135はデータの比較と再保存だけを行う。すなわちSW制御部133は入力データX1の距離値が保存されているQ1の距離値より小いときにスイッチ136と137を1につなぎ、そうでないときに0につなぐ。スイッチ137の接続によってX1かQ1のどちらかが後段に送られる。送られたデータをX2とすると、SW制御部134はX2とQ2の距離値を比較しX2の方が小さければスイッチ138、139を1につなぎ、逆ならば0につなぐ。SW制御部135は前段より送られてきたデータX3とQ3を比較し小さい方を保存するようにスイッチ140を切り替える。あるディレイを経た後、フリップフロップ回路130、131、132の入力が安定したところで、同時にクロックを入力し、一気にデータを更新する。この図には、図12の記憶指示フラグは示されていないが、入力前段に図15の回路を入れ、記憶指示フラグの反転信号とORをとることにより、記憶指示フラグが0の時(入力データが指示点候補でない時)、距離値は全てのbitが1(つまり最大値)になり、記憶部に入力されても記憶されなくなる。LEDの発光が一巡したところで、フリップフロップ回路130、131、132には、あるフレームにおける、最も距離値の小さい3つの指示点候補データが保存されている。このデータをラッチ回路141、142、143にラッチさせる。この図における、データを記憶する部分のタイミングチャートを図16、17に示す。入力X1があると、3つのフリップフロップ回路の入力はディレイを持ちながら順次変化し、全ての入力が安定したところで、フリップフロップ回路のトリガ(CK1)を入れ、出力を更新する(図16)。この場合LEDは100個あるので、フリップフロップの入力トリガ100個にひとつの割合でラッチトリガ(CK2)を入れる。これでラッチ回路にはLED発光が一巡する毎に新しいデータが保存される(図17)。
【0044】
指示点決定部は極小点データ格納部内のデータを用いて指示点を決定する。ここでは、その時の状態によって2種類の処理のどちらかが選択されて行われる。何もない状態から手指(追跡すべき極小点)が現れたことを認識する処理と、認識した手指を追跡する処理である。前者を指示点検出処理、後者を指示点追跡処理と呼ぶ。指示点が認識されていない時点では指示点検出処理が行われる。一度指示点が検出されると、その後は指示点追跡処理を行うようになる。指示点の追跡ができなくなると再び指示点検出処理を行うようになる。図18は図13における指示点決定部を上述の内容にそってさらに細かく構成したものである、指示点検出部150が指示点検出処理を行う。すなわち、距離の差分データがある値以上である極小点が存在した場合、その中で最も最小の距離値を持つ極小点を指示点として決定する。該当する点がない場合は指示点はないものと判断される。指示点追跡部151は指示点追跡処理を行う。これは旧指示点から最も近い極小点を、追跡された結果の新たな指示点とする。ここでは座標だけでなく距離情報も用いて、最も近い極小点を見つける。切り替え制御部152は、その時の状態によって指示点検出部150および指示点追跡部151のどちらかの出力を決定された指示点として選択し、出力する。指示点が検出されていない状態では、切り替え制御部152は何も出力しないか、あるいは指示点が検出されていないことを示す信号を出力する。このときには切り替え制御部152は指示点検出部150の出力を監視している。指示点検出部150は図14のラッチ回路141に有効なデータが存在した場合にそれを検出された指示点として出力し、また指示点記憶部153に記憶する。切り替え制御部152は指示点が検出されると、次からの出力を、指示点追跡部151からの出力に切り替える。指示点追跡部151は指示点記憶部153に記憶されている旧指示点と、新たに入力された指示点候補を比較し、旧指示点と最も近い指示点候補を出力する。指示点候補の全てが、旧指示点より、ある値以上離れていたとき、指示点追跡部151は、指示点の追跡に失敗したことを知らせる信号を出力する。切り替え制御部152がこの信号を受け取ると、次から再び指示点検出部150の出力を監視し始める。以上述べたように、指示点検出処理と指示点追跡処理を交互に繰り返す。
【0045】
図19は指示点追跡部151および指示点記憶部163のより詳細な構成図である。ラッチ回路160、161、162は図14におけるラッチ回路141、142、143に相当する。ラッチ回路163は図19の指示点記憶部163に相当し、旧指示点が保持されている。ラッチ回路160、161、162に新しいデータが入ってくると、距離計算回路164、165、166が旧指示点との距離を計算する。ここで得られる3つの距離を比較部167で比較し、最も距離が小さい点のデータが指示点更新部168によって選択され出力される。この出力は同時にラッチ回路163に再び保持され、次の指示点追跡処理に用いられる。
【0046】
指示点検出処理と指示点追跡処理を交互に繰り返すことにより、一度正しく指示点が検出されると、その後は高い精度で正しく指示点を追跡することができる。また背景ノイズが多く、手指(指示点)の正確な検出が難しいときは、指示点検出処理を複雑にし(例えば、指で円を描かせる等)、指示点検出精度を上げておけば、その後の指示点追跡処理は背景ノイズに強いため、全体のパフォーマンスを上げ易いという利点がある。
【0047】
第3実施例では手指の動きが止まってしまうと、その位置を見失ってしまい易いが、図20のように構成すると指示点追跡処理には時間差分が影響しないため、きちんと追跡できる。
【0048】
以上、3つの実施例について説明したが、実施例は上記述べたものだけにとどまらない。部分的に見てもいくつかの実施例が考えられる。
【0049】
まず、発光部であるが、上記ではLEDをアレイ状に並べたものを、レンズ系で操作空間に投影した。これ以外にいくつかの例が考えられる。例えばLEDとレンズ系を用いて細いビーム状に発光できる単位発光系を作り、これをアレイ状に並べるという方法もある。これは先の例に比べて操作空間が広くとれるという利点がある。マイクロレンズアレイをモールド成形で作り、LEDアレイの上にかぶせるという構造でも良い。またそれ自体で非常に狭指向性を持つ発光素子を使うことができる。光源をスポットに通してビームを作り、そのスポットを機械的または電子的に走査することも考えられる。また図21のようにLEDチップなどの発光部170を並べたものの上を、徐々に屈折率の大きくなっていく多層の透過材で平面状にコーティングして発光部を形成することも考えられる。この図で各層の屈折率は、n1<n2<n3<…<nnで表せる。これだと小さなレンズを数多く作る必要がなく、レンズと違い隣り合うLEDチップでの光の通る領域を共有できるため、小型化する場合には適していると考えられる。
【0050】
次に指示点決定部について他の実施例を考えてみる。実際にこのような遠隔部を家庭内などで使うことを考えた場合、背景や前景の影響が大きいと考えられる。上記実施例では極小点の距離と距離の時間差分を用いて指示点を検出したが、他にもいくつかの方法が考えられる。単純な例では距離画像の最小点のみを用いるという方法もある。この方法だとノイズの影響は受け易くなるが、回路的にも単純にすることができ低コストになる。また狭い操作空間だけで実現できるアプリケーションでは十分な性能を示すことができる。逆にノイズの影響を更に低減するためにいくつかの方法が考えられる。極小点の距離と距離の差分データ以外に極小点位置にある物体の大きさと動きを推定して利用することができる、ある領域の全ての点について距離値が近ければ、その領域はひとつの物体であると考えることができる。領域の大きさと距離値が分かればその物体の実際の大きさが分かるので、これを利用してノイズを排除することができる。例えば使用者の前を急に人が横切ったり、小さな虫が前を飛んだ場合などのノイズを排除することができる。
【0051】
上記実施例では指示点を検出・追跡するだけであったが、実際にはその他の使用者の意志を伝えたい場合が多い。例えば、図22にあるように、画面上に表示されたカーソルを動かしてある領域を指示したい、メニューを選択したい、字や絵を書きたいなど様々な要求がある。これらを実現するために、指示点の軌跡を用いてコマンドを生成する方法が考えられる。例えば指示点を動かしてメニューの上に持ってきた後、一定時間停止した場合、そのメニューを実行コマンド候補とし、例えばメニューの色を変える、点滅させるなどして使用者に知らせる、その後、指示点が決められた動き(前方に少し移動する、上に移動する、丸を描く、など)をした時に、その候補を実行コマンドとして確定し、実行する、というアルゴリズムが考えられる。また、指示点の軌跡を追うのではなく、指示点にある物体(手など)の形を認識しその変化でコマンドを与えることもできる。例えば手を開いてカーソルを動かし、選択するときには握る、あるいは指を一本だけ立てた場合と、2本立てた場合で、カーソルの移動速度を変える、などということは、それほど難しくなく実現できる。
【0052】
さらにディスプレイ装置を用いない使い方も考えられる。例えば、一見ボタンのように見える(実際にボタンであっても良いが)機能の表示板を本体に備え、操作者が手を伸ばしたときに、指示点をボタンの位置と対応付け、選択できるように構成すると、便利な遠隔操作装置となる。また、機能の表示と共に、色の変わる発光部を各機能ごとに並べて配置し、その色や点滅・点灯で、状態を操作者に知らせるようにすると更に良好な環境になる。例えば、手を伸ばしたときに指している機能の発光部を緑色に発光させ、指を動かすと緑色の点灯が移動し、操作者は現在どこを指しているかが分かる。ある機能の発光部を一定時間以上緑色に点灯させるとやがて赤色に変わり、そのボタンを選択し実行させる。このようにして用いる場合は特にディスプレイなどの高価な表示装置を必要としないので、システムを低コストで構成できる。
【0053】
また、操作領域が広いことを考えると、使用者からみて、指の位置と画面上のカーソルまたは点灯しているボタンの位置が一致して見えるようにするためには、工夫が必要である。例えば、初めに指示点(手指)を検出したときには常にある位置(中心など)にカーソルを表示する、あるいは特定のボタンを点灯させるようにしておけば、まず使用者はその特定位置に向けて手を伸ばしてから操作を始めることで、指の位置とカーソルあるいは点灯の視差を少なくできる。指先の初期位置とその距離が分かるので指先と目の位置関係を仮定すれば視差を最小にすることかできる。
【0054】
さらに、使用者へのフィードバックに音を用いても良い。指が一定時間停止すると、音を発し、選択可能であることを示し、更に停止し続けると、実行する、というように効果的に音を使うことができる。
【0055】
次に、第4実施例について説明する。
【0056】
図23に同実施例の構成を示す。
【0057】
同実施例に係る情報入力装置は、距離画像入力部201と距離画像解析部202と処理部203によって構成される。距離画像入力部201によりユーザの距離画像を捕らえ、距離画像解析部202によって極小点解析を中心とした解析を行う。その結果を用いて処理部203が処理を行う。これは主に、ユーザにメニューを提示したり、ユーザによってどのメニューが選択されたかを判定したり、そのメニューを実行したりという処理を行う。各部のより詳細な説明はそれぞれ後述する。
【0058】
距離画像入力部201としては、発光素子と光位置検出素子(PSD)を使った測距手段を走査して距離情報の集合、つまり距離画像を求める方法がある。PSDという素子は、光スポットの入射位置と入射光量に応じた電流を発生する。2つの電極から発生する電流の合計は、光の入射光量に比例する。各電極の電流比は光の入射位置によって決まる。従って図24から分かるように、PSDの出力電流i1、i2からPSD上の光入射位置Xが、光の入射位置Xから距離Dが下式によって求められる。
【0059】
x = c(i2−i1)/(i1+i2)/2
D = Lf/x
この発光素子を図25のようにアレイ状に並べ、順番に発光させれば、ある空間での距離情報の集合、つまり距離画像を入力することができる。距離画像入力部201をブロック図で構成すると図26のようになる。発光部210はLEDアレイおよびその駆動回路を含む。受光部211はPSDである。PSDからの出力電流をアンプ212で電流電圧変換した後、増幅して、A/D変換器213に通す。デジタル化された電流値信号を演算部214で処理することにより、距離値を出力する。制御部215はこれら構成部のタイミングをコントロールする。
【0060】
また、実際にユーザが操作を行う空間が、真っ暗であることは少ないので、発光素子が発光していないときでも、受光素子の出力があることが多い。これは、発光、受光素子を使って距離を求める際に誤差となって現れる。そこで、受光素子の出力を演算に用いるにあたり、発光素子が発光しているときの出力と、発光素子が発光していないときの出力を使って、誤差の少ない演算を行うことができる。たとえば図26におけるA/D変換を、発光素子が発光する直前と発光後PSD出力が定状状態になった時の2回のタイミングで行い、演算部ではその差を取ることにより、発光部210が発光していない時の背景光による影響を排除した出力を得ることができる。
【0061】
背景光として、蛍光灯のような時間的に量が変動する光があると、2回のタイミングの間にも、背景光が変動してしまうことがある。そこで、図27のようにA/D変換のタイミングを3回行い、発光部が発光する前後の非発光時の出力を平均し、発光時の出力から引けばより精度の良い演算ができる。
【0062】
また他の構成も考えられる。図28はA/D変換を行う前に、背景光の影響を除いている。この図では、発光の前、発光中の2回のタイミングで増幅信号をサンプル・ホールドしておき、演算に用いている。2つのサンプル・ホールド回路221、222とA/D変換部223のトリガのタイミングは図29に示したようになる。
【0063】
次に、受光素子として光位置検出素子(PSD)を用いた場合を考えると、PSDは光の量に関係なく位置を知ることができるが、光の量が余りに小さい場合は精度が悪くなる。例えば、物体が遠くにありすぎて、反射光が有効に返ってこない場合は、実際と異なる結果が出てしまうこともある。図30はこのような状態を避けるため、光の量が余り小さいときには距離値が非常に大きいと判定させるようにしたものである。ここでは、A/D変換される前の段階で背景光の影響が取り除かれているとする。A/D変換された後のデータは、距離演算部235と大きさ判定部234の両方に入力される。演算部235ではPSDの両極の出力値から距離を演算する。大きさ判定部234では、PSDの出力値の大きさを判定する。ここでは単純に両極の出力を合計し、あるしきい値より小さいかどうかを判定し、小さければその由の信号を出力する。出力部236は大きさ判定部234の出力により、距離値の出力をコントロールする。すなわち、大きさ判定部234からPSD出力が小さすぎることを示す信号が出ていなければ、距離演算部35の出力をそのまま出力する。PSD出力が小さすぎることを示す信号が出ていれば、出力し得る最大距離を出力する。最大距離を出力する代わりに、距離が遠すぎることを示す信号を出力してもよい。
【0064】
また、背景光のレベルが急激に変動し、その結果として異常に大きなPSD出力が得られてしまうこともある。そこで、大きさ判定部234が、PSDの出力値が小さすぎることと、大きすぎることの2つの状態を判定するようにしてもよい。そして出力部236はPSDの出力が小さすぎるときは最大距離を出力し、PSD出力が大きすぎるときは距離演算不能であったことを示す信号を出力し、それ以外の時、距離演算部235の出力をそのまま出力するようにする。
【0065】
次に、距離画像解析部202について述べる。図31は距離画像解析部202を、極小点検出部241と極小点選択部242から構成した情報入力装置である。ユーザの指先は距離画像の中では、局所的に距離値がもっとも小さい点、すなわち極小点に対応する。そこで、距離画像の極小点を見つけることが、指先の位置を見つけるための有力な手段となる。しかし、指先以外にも距離画像の中には極小点は複数存在するのが通常であり、これらの中から指先に対応する極小点を見つける手段が必要になる。さらに指先以外の物体で作られる極小点だけしか存在しない場合もあり、このような場合には、指先に相当する極小点は存在しないと判断できなくてはいけない。これらの処理を行うのが極小点選択部242である。極小点選択部242は、極小点検出部241が出力する極小点の情報(座標と距離値)だけを用いる場合もあり、また元の距離画像も用いる場合もある。後者の場合は、図32のような構成になる。極小点選択部241によって検出された、指先に対応する極小点の情報または指先に対応する極小点が無いという情報が、後段の処理部243に送られる。
【0066】
もう少し具体的な例として、図33を用いて説明する。この図では距離画像解析部202は、極小点検出部252、極小点動き検出部251、極小点周辺状況解析部253、および極小点選択部254で構成される。極小点検出部252は距離画像中の1つまたは複数の極小点を見つけ、フレーム毎に出力される。極小点動き検出部251は、フレーム間での極小点の対応をとったり、その移動量・方向などを検出する。移動量・方向は、座標だけを用いて、2次元平面内での移動を捕らえることもできるし、距離値まで用いて、3次元空間内での移動を捕らえることもできる。
【0067】
極小点周辺状況解析部253は、極小点を作っている物体のおおよその形状・向きなどを検出する。例えば、今、極小点の1つの距離値をdmとする。あるしきい値thを用意し、極小点の周辺の点について、その距離値dが、
dm < d < dm+th
を満足するような点を求め、さらに満足する点の周辺の点についても調べる。この作業を、これ以上周辺に広がらないところまで繰り返し、その合計の数を数える。この数と極小点の距離値から、この物体の形状が、とがっているか、そうでないか、を知ることができる。図34でいうところの、面積s1、s2を求めたことになる。従って、この値をあるしきい値で区切れば、手(面積が小さい)と頭(面積が大きい)を区別することができる。
【0068】
極小点周辺状況解析部253として別な方法も考えられる。極小点の座標からある方向の点列の距離値の変化具合を見る方法がある。例えば、極小点(xm,ym)に対し、
(xm+1,ym)、(xm+2,ym)、(xm+3,ym)...
(xm−1,ym)、(xm−2,ym)、(xm−3,ym)...
(xm,ym+1)、(xm,ym+2)、(xm,ym+3)...
(xm,ym−1)、(xm,ym−2)、(xm,ym−3)...
の4つの方向へ点の距離値を見ていく。この距離値がdm+th(dmは極小点の距離値、thはあるしきい値)に達した点の、極小点からの距離を見れば、先ほどの例と同様に、物体のおおよその形状をつかむことができる。この方向を更に細かくとり、ある方向に距離値が一定の割合で増加していくことが分かれば、まっすぐ伸ばした手の、伸ばした方向を知ることができる。
【0069】
極小点選択部254は、極小点検出部252、極小点動き検出部251、極小点周辺状況解析部253の出力結果を用いて、極小点の中に指先があるのか、あればどの極小点なのかを判定する。例えば、長時間にわたって静止している極小点は、机や椅子などの静止物体によって作られた極小点だと判断し、除外することができる。頭で作られる極小点は手で作られる極小点に比べ、とがった形状をしていないので、極小点周辺状況解析部253の出力から区別できる。ユーザが操作を使用として前方に差し出した手指は、「ゆっくり近づいて来て止まる」極小点として見つけられる。そこで、このような動きをした極小点を指であると判定できる。一度指であると判定された極小点はその後は優先的に指であると判定した方が精度が上がる。ある極小点が指先だと判定される前と、判定された後では、判定のアルゴリズムを変えることも考えられる。一度指先だと判定された極小点は、その後、指先でないと判定される条件が揃うまでは、指先であると判定され続ける。極小点選択部254が1つの極小点を選択するような場合は、優先的に指先であると判定される極小点があるとそのほかの極小点は除外される。しかし、複数の極小点を選択する場合は、優先的に指先であると判定される極小点があっても、その他の極小点の判定には影響しない。
【0070】
この例では、極小点動き検出部251と極小点周辺状況解析部253の両方を用いたが、どちらか一方を使ってもよいし、それでも効果はある。
【0071】
図35は、図31の極小点選択部242と処理部243との間にフィルタを介在させた構成をもつ。隣り合う2つのLEDビームのちょうど中程に指が位置した場合、極小点選択手段の出力は2つの座標が同程度の確率で現れる。この出力座標を直接カーソル座標にすると、カーソルが2つの座標の間を行ったり来たりすることになり好ましくない。そこでこの図のようにフィルタ263を入れることにより、カーソルの動きをなめらかにすることができる。フィルタの形としては、nフレーム前の(フィルタにかける前の)極小点座標を(Xn,Yn)として、フィルタ出力を(X,Y)とすると、
X=ΣKn・Xn
Y=ΣKn・Yn (Knは定数)
で求められる。また、このX、Yを適当な大きさで量子化すれば、必要以上に小さなゆらぎをなくすことができる。先の例では、カーソルは2つの座標の中間に位置することになる。これはまた解像度を上げることにもなる。
【0072】
次に図23における処理部203の細かい構成も含め、より具体的な処理を行える構成について説明する。
【0073】
まず、画面に出された複数のメニューの中から所望の1つを、指で差すことによって指示することができる環境を考えてみる。これは例えば、図36の構成によって、実現できる。距離画像入力部270と極小点検出部271と極小点選択部272は既に述べたものとほぼ同様の働きをする。極小点選択部272は、指先であると判定した極小点の情報(座標、距離値)を出力する。指示点・メニュー対応検出部274は、選択された極小点の位置がある特定のメニューの領域に入っているかどうかを検出し、その情報を出力する。表示制御部276は、極小点選択部272から入力される選択された極小点の情報をもとに、指先の位置を示すカーソルを表示するとともに、その位置があるメニューの領域内に入っていればメニューの色を変えるなどの処理を行う。指示点静止時間検出部273は、選択された極小点の、ある点からの距離が一定値以下であるような状態が続いたとき、その時間を検出する。そしてその時間がある値以上になったときその旨をコマンド実行部275に伝える。コマンド実行部275は、極小点の静止時間がある値以上になったことを知ると、そのときに極小点の位置に対応しているメニューがどれかという情報を指示点メニュー対応検出部274から受け取り、そのメニューの内容を実行するとともに、表示制御部276に実行したことを伝える。表示制御部276はコマンドが実行されたという情報を受け取ると、さらにメニューの色を変化させて、ユーザにコマンドが実行されたことを知らせる。図36では、ユーザへのフィードバックは表示によってのみ行われたが、図37のように音声出力部277を併用してさらにフィードバック効果を高めることもできる。
【0074】
次に、所望のメニューを指で「押す」などの動作をすることで選択実行する環境を考えてみる。これは図38の構成で実現できる。距離画像入力部280と極小点検出部281はこれまで出てきたものと基本的に同様の働きをする。極小点検出部281から出力された極小点データは第1の極小点動き検出部282と第2の極小点動き検出部283に入力される。第1の極小点検出部282は極小点検出部281から出力される極小点の中から、指先に対応するものを見つける部である。ここでの具体的な方法は上述したようにいくつか考えられる。第2の極小点動き検出部283は、一度指先であると検出された極小点の動きから、あるメニューを選択実行したかどうかを判定する。例えば、少し前進してその後、少し後退すればそれは「押す」という動作であると判定する。あるいは特定の動作を行ったとき、例えば「チェック」動作、「丸を描く」動作をしたときにそのメニューを選択実行することもできる。このような場合、動作をするときにカーソルの位置がずれてしまい、所望のメニューとは違うものが選択されてしまう恐れもある。そのような時は、ある動作が認識されたときその動作が起こる直前の座標があったメニューを対象メニューとするようにすれば、このような問題は回避できる。
【0075】
メニューが横に広がっている場合などは、指先を左右に動かして所望のメニューの位置までカーソルを動かした後、ある値以上の速度で指を下に降ろす(または、上に挙げる)ことによって、そのメニューが選択実行されるようにすることもできる。メニュー制御手段は第1、第2の指示点動き検出部から出力される信号によってメニューの表示を制御する。まず第1の極小点動き検出部282が指先の位置を検出すると、指先に対応する位置に、カーソルを表示する。そしてカーソルがあるメニューの領域の中に入ると、そのメニューの色を変えてユーザにフィードバックする。第2の極小点動き検出部283が、あるメニューが選択実行されたことを示す信号を出力すると、さらにメニューの色を変え、そのメニューが実行されたことをユーザにフィードバックする。この図には描かれたないが、音声を用いてユーザにフィードバックしてももちろん構わない。
【0076】
これには例えば図39に示すようなメニュー画面を提示することが考えられるカーソルは指の位置に対応しており、指を左右に動かすとカーソルが動き、カーソルの乗っているメニューは色が反転されている。ここで所望のメニュー上にカーソルがある時に、指を下に降ろすと、そのメニューが確定する(このとき更にメニューの色を変えてもよい)。このとき、メニューを選んでいるときに、指が上下に振れてしまったことに反応しないように、確定するための「指を降ろす」動作はある程度の速度以上で降ろしたときの反応するようにしておくことも効果的である。
【0077】
また図40のように、階層的なメニューを指示するのにも適している。はじめのメニューで1つを選択し、指を下方に移動すると次の階層のメニューが現れる。そこでまた指を左右に動かし所望のメニューの位置にカーソルを動かしてから、下方に指を移動させるとさらに次の階層のメニューが現れる。これを繰り返すことによって、階層メニューの1つを簡単に指示することができる。この場合は先の例とは違い、「指を降ろす」速度ではなくて、距離にスレッショルドを設けて、メニューを選んだことを判定させる方がよい。この場合、指を上方に動かすと前メニューの選択に戻れるようにしておくと、やり直し操作が行い易いという効果がある。
【0078】
次にもう少し異なる動作でメニューの選択実行が行える環境について述べる。構成は先と同じ、図38に示したものである。異なるのはメニュー制御部285で表示されるメニューの形と、第2の極小点動き検出部283で検出する動きの種類である。第1の極小点動き検出部282が指先を見つけると、メニュー制御部285は図41や図42のような円形もしくは各メニューが円状に並んだ形をしているメニューを表示する。このメニューは、指の位置もしくは指の位置に対応するカーソルの位置がその中心に位置するように表示される。ユーザは指を差し出してこのメニューが表示された後、指を上下左右のいずれかの方向に動かすとその方向にあるメニューが実行される。従って、第2の極小点動き検出部283は指がどの方向に動いたかを検出する。この例では、複数の極小点の中から指先に対応する極小点を見つけるために極小点の動きだけを用いているが、前述の極小点周辺状況解析部を用いて総合的に判断してもよいことは言うまでもない。
【0079】
【発明の効果】
本発明によって、リモコン装置などの一切のデバイスを手に持つことなく、また装着することなく、素手のみでシステムを操作する環境が実現できる。家庭内での現在のリモコンの置き換えに留まらず、手にものを持ちながら操作を行いたい、汚れた手で機械を操作したいといった要求にも応えることができる。
【0080】
また、本発明により、リモコンなどの装置を持つことなく素手のみで機器を操作できる、情報入力装置が構成できる。この情報入力装置によって、操作するときにいちいちリモコンを探す手間がない、複数の人が操作するとき、リモコンの受け渡しをする必要がない、機械に触らずに操作できるので、危機が汚されたり、壊されたりしにくく、メンテナンスコストの削減になる、汚れた手で操作することができる、などの多くの効果がある。
【0081】
また本発明によれば、発光素子と受光素子で距離計測部を構成したとき、発光素子の発光しているときと発光していないときの、出力を用いて距離値を演算するので、外光などのノイズの影響を最小限に押さえることができる。また、蛍光灯のように変動する外光の影響も最小限に押さえることができる。
【0082】
また本発明によれば、受光素子の出力レベルが期待される量を大幅に上回ったり下回ったりしたときに、その出力から演算される距離値を用いないようにすることができるので、被計測対象がその距離を測る必要がないくらいに遠ざかったときや、何らかの原因で出力がおかしくなったときに、その影響を最小限に押さえることができる。
【0083】
また本発明では、距離画像の中の極小点を指先候補として取り出し、その中から指先であろう極小点を見つけだす処理を行っている。ユーザの指先は距離画像中の極小点となるため、画像処理を行って指先を検出する方法に比べ、安定的に検出でき、また処理系も低コスト化できる。
【0084】
更に本発明では、複数の極小点の中から指先であろう極小点を見つけるために、極小点の動きや、極小点の周りの画素の状態を解析するので、静止物体によってつくられる極小点や、頭などの指先とは大きさが異なる物体によってつくられる極小点を良好に排除することができる。
【0085】
また本発明では、求められた極小点の座標をフィルタに通すため、隣り合う2つのLEDビームの中間に指が位置したとき、極小点として2つの座標を不安定に出力することがなく、中間の座標を安定して出力することができる。
【0086】
また本発明によると、メニューの選択などのタスクを行うときに、所望のメニューに(指先位置に対応する)カーソルを静止させるだけで選択を行えるので、マウスのクリックボタンに相当するものがなくても好適に操作を行うことができる。
【0087】
また本発明の別の手段によれば、カーソルを所望のメニューに移動させて、「押す」という動作などの自然な動作を行うことによりメニューの選択ができる。
【0088】
また本発明の別の手段によれば、階層的なメニューの選択も指を動かすだけで好適に選択することができる。また、円形メニューを表示することによって、指を差し出してある方向に動かすという、少ない操作でメニューの選択ができる。また指の動いた方向で選択するためユーザによる誤指示が少ない。
【0089】
以上述べたように本発明により、装置を手に持たずに、あるいはデータグローブなどの装置を装着せずに、離れたところから機器を操作できる自然な環境を提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施例である第1の実施例の構成を示す図。
【図2】本発明の一実施例である距離計測の原理を示す図。
【図3】本発明の一実施例である距離画像の入力方法を示すための図。
【図4】本発明の一実施例である距離画像の入力方法を示すための図。
【図5】本発明の一実施例である第2の実施例の構成を示すための図。
【図6】本発明の一実施例であるLEDアレイとLEDアレイ制御手段の構成を示すための図。
【図7】本発明の一実施例である距離演算部の構成を示すための図。
【図8】本発明の一実施例である背景ノイズを除去する部分のタイムチャートを示す図。
【図9】本発明の一実施例である背景ノイズを除去する部分のタイムチャートを示す図。
【図10】本発明の一実施例である指示点の候補であるかどうか判断する部分の構成を示す図。
【図11】本発明の一実施例である時間差分検出部の1実施例を示す図。
【図12】本発明の一実施例である指示点検出部の構成を示す図。
【図13】本発明の一実施例である第3の実施例の構成を示す図。
【図14】本発明の一実施例である指示点候補記憶部の構成を示す図。
【図15】本発明の一実施例である指示点候補記憶部の構成を示す図。
【図16】本発明の一実施例である指示点候補記憶部における動作タイムチャートを示す図。
【図17】本発明の一実施例である指示点候補記憶部における動作タイムチャートを示す図。
【図18】本発明の一実施例である指示点決定部の構成を示す図。
【図19】本発明の一実施例である指示点追跡部の構成を示す図。
【図20】本発明の一実施例である第3の実施例の変形例を示す図。
【図21】本発明の一実施例である発光部の他の構成例を示す図。
【図22】本発明の一実施例である指示点の移動をメニュー画面上のカーソルの移動およびシステムの制御に用いる例を示す図。
【図23】第4実施例に係る情報入力装置の構成を示す図。
【図24】第4実施例に係る発光素子と受光素子(PSD)を使った測距の原理を説明するための概念図。
【図25】第4実施例に係るLEDアレイによる距離画像入力を説明するための概念図。
【図26】第4実施例に係る距離画像入力部の構成を示す図。
【図27】第4実施例に係る背景光の影響を除去するためのA/D変換タイミングを示す図。
【図28】第4実施例に係るA/D変換の前に背景光の影響を除去するための回路を示す図。
【図29】第4実施例に係るA/D変換の前に背景光の影響を除去するための回路における動作タイミングを示す図。
【図30】第4実施例に係る受光素子出力の大きさから距離値の出力を制御する距離画像入力部の構成を示す図。
【図31】第4実施例に係る距離画像解析部を極小点検出部と極小点選択部とから構成した際の情報入力装置の構成を示す図。
【図32】第4実施例に係る極小点選択部が元の距離画像と極小点検出部が出力する極小点の情報とを使用する際の情報入力装置の構成を示す図。
【図33】第4実施例に係る距離画像解析部を極小点検出部、極小点動き検出部、極小点周辺状況解析部、および極小点選択部から構成した際の情報入力装置の構成を示す図。
【図34】第4実施例に係る極小点周辺状況解析部で検出する情報を例示した図。
【図35】第4実施例に係るフィルタを持った情報入力装置の構成を示す図。
【図36】第4実施例に係るメニュー選択を行うための情報入力装置の構成を示す図。
【図37】第4実施例に係るメニュー選択を行うための情報入力装置の構成を示す図。
【図38】第4実施例に係るメニュー選択を行うための情報入力装置の構成を示す図。
【図39】第4実施例に係るメニューを例示した図。
【図40】第4実施例に係るメニューを例示した図。
【図41】第4実施例に係るメニューを例示した図。
【図42】第4実施例に係るメニューを例示した図。
【符号の説明】
1…距離画像入力部、2…極小点検出部、3…時間差分検出部、4,46,121…指示点決定部、5…システム制御部、20…LEDアレイ、21…レンズ系、40…LEDアレイ、41…LEDアレイ制御部、42…位置検出素子、43…距離演算部、44…極小点検出、45…時間差分検出部、150…指示点検出部、151…指示点追跡部、201…距離画像入力部、202…距離画像解析部、203…処理部、210…発光部、211…受光部、214…演算部、234…大きさ判定部、241…極小点検出部、242…極小点選択部、251…極小点動き検出部、253…極小点周辺状況解析部、263…フィルタ、273…指示点静止時間検出部、274…指示点・メニュー対応検出部、275…コマンド実行部、276…表示制御部、277…音声出力部、282…第1の極小点動き検出部、283…第2の極小点動き検出部。
【産業上の利用分野】
本発明は、例えば電子機器を操作又は遠隔操作するための情報入力装置に関する。
【0002】
【従来の技術】
従来、実現されていた操作のための情報入力装置(以下、操作装置と呼ぶ)は、操作者が手に何らかの装置を持って行うものが多い。家庭用で最も普及している操作装置はリモコンであり、これは手にリモコン装置を持ち、機械に向けてリモコンのボタンを押すことにより、リモコンから機械に赤外線を投射し、指示を出している。
【0003】
また、手に何も持たない操作装置としては、タッチパネルなどもある。これは透明あるいは不透明のパネルを指などで押さえることで、押したという情報やその位置を入力できるものである。透明パネルを表示装置の上に重ねて配置すれば、表示装置にボタンなどの選択肢を絵として表示させ、そのうちのひとつを「押す」ことによる選択入力が可能である。
【0004】
また研究分野においては、画像認識技術による手振り認識、身ぶり認識などが研究されている。しかし画像処理によりこれらを認識するためには背景を単調にしなければならないとか、画面の中央にどのくらいの大きさで手が写っていなくてはならないとか、制約条件が厳しく、実用化には至っていない。
【0005】
三角測量の原理を用いたステレオ法によって物体の3次元的な形状を把握し、画像認識に役立てようとする研究がある。しかし、遠隔操作装置へと応用した例は少ない。
【0006】
【発明が解決しようとする課題】
リモコン装置による操作は、手に装置を持たなくてはならず、リモコン装置が手元にない場合は操作することができない。また汚れた手で操作するのは好ましくなかった。
【0007】
タッチパネルは手に何も持たずに操作することができるが、表示装置の上にある透明パネルを触るため、パネルが汚れて表示が見えにくくなるなどの問題がある。また、パネルの汚れのために、不特定多数の人が操作する装置を「触りたくない」という要望が強い。
【0008】
画像処理による手振り認識などの技術においても、認識技術の未熟さから、ノイズの影響を受け、きちんと手を認識することが難しい。
【0009】
特に家庭内において、リモコン装置などのいかなるデバイスも手に持ったり装着したりすることなく、素手のみで遠隔操作できる環境を提供することは、非常に望ましいにも関わらず実現されていない。
【0010】
本発明は上記実情に鑑みなされたものであり、リモコン装置などの一切のデバイスを手に持つことなく離れたところから電子機器等のシステムを操作可能とする情報入力装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
本発明は、測定物までの距離を示す距離情報を2次元配列させた距離画像を入力するための距離画像入力手段と、この距離画像入力手段から入力された距離画像の中で局所的に距離値が最小となる極小点を求める極小点検出手段と、前記距離画像入力手段から入力された距離画像の時間に対応した距離値の変化量である時間差分を検出する時間差分検出手段と、前記極小点検出手段が検出した極小点のうち、前記時間差分検出手段が検出した時間差分に変化の生じた極小点を、操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段とを具備することを特徴とする。
【0013】
また、本発明は、測定物までの距離を示す距離情報を2次元配列させた距離画像を入力するための距離画像入力手段と、この距離画像入力手段から入力された距離画像の中で局所的に距離値が最小となる極小点を求める極小点検出手段と、前記距離画像入力手段から入力された距離画像の時間に対応した距離値の変化量である時間差分を検出する時間差分検出手段と、前記極小点検出手段が検出した極小点の中で、距離の時間差分がある範囲の値を持ち、かつ距離値が最も小さい値を持つ極小点を、操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段とを具備することを特徴とする。
【0014】
また、本発明は、アレイ構造に並べた発光素子からなる発光手段と、この発光手段の発光素子を一つづつ順番に発光させる発光制御手段と、この発光手段によって発光された光の、物体による反射光の入射位置を検出する光検出手段と、この光検出手段が検出した光の入射位置とこの光を発光させた発光素子の位置とから距離情報を演算する演算手段と、この計測手段が計測した距離画像のうち局所的に距離値が最小となる極小点を求める極小点検出手段と、からなる距離画像入力手段を持つことを特徴とする。
【0015】
また、本発明は、前記システム制御手段が、指示点決定手段で決定された指示点に対応するディスプレイ上の位置をカーソルで表示し制御するカーソル制御手段と、このカーソル表示手段によって表示されたディスプレイ上のカーソルの軌跡をシステムを制御する命令に変換する制御命令変換手段と、この制御命令変換手段で変換された制御命令を実行する制御実行手段とからなることを特徴とする。
【0016】
また、本発明は、発光手段と、物体による反射光を受光する受光手段と、前記発光手段が発光しているときの前記受光手段の出力と前記発光手段が発光していないときの前記受光手段の出力とから距離画像を計測する計測手段と、この計測手段が計測した距離画像のうち局所的に距離値が最小となる極小点を求める極小点検出手段と、この極小点検出手段が求めた複数の極小点の中から所定の規則により一つ又は二つ以上の極小点を操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段とを具備することを特徴とする。
【0017】
また、本発明は、前記計測手段が、上記発光手段が発光しているときの前記受光手段の出力と前記発光手段が発光していないときの前記受光手段の出力との差分が所定の許容範囲を越えていたときに、これらの出力を用いないようにする手段を含むことを特徴とする。
【0018】
また、本発明は、前記極小点検出手段が求めた複数の極小点の動きを検出する極小点動き検出手段及び前記極小点検出手段が求めた複数の極小点を作成する物体の形状または向きを検出する極小点周辺状況解析手段の少なくとも一方と、前記極小点動き検出手段及び極小点周辺状況解析手段の少なくとも一方の手段の結果から一つ又は二つ以上の極小点を選ぶ手段とを具備することを特徴とする。
【0019】
また、本発明は、前記指示点決定手段が決定した指示点の座標値及び距離値の少なくとも一方を前記指示点決定手段がその直前に決定した時間的に連続する複数の指示点の座標値又は距離値を用いて平準化するフィルタリング手段を具備することを特徴とする。
【0020】
また、本発明は、前記指示点決定手段が決定した指示点の動きが所定の範囲内にある時間を検出する指示点静止時間検出手段と、前記指示点の位置とディスプレイ上に表示された複数のメニューの中のいずれか一つを対応づける指示点メニュー対応検出手段と、前記指示点静止時間検出手段の出力が所定の条件を満たしたときに、前記指示点メニュー対応検出手段によって検出されたメニューを実行するコマンド実行手段とを具備することを特徴とする。
【0021】
また、本発明は、前記極小点検出手段が求めた複数の極小点の中からその動きによって指先に対応する極小点を検出する第1の極小点動作検出手段と、この第1の極小点動作検出手段にて検出された指先がメニューを選択するための動きをしたことを検出する第2の極小点動作検出手段とを具備することを特徴とする。
【0022】
即ち、本発明は、上述のような課題を解決するため、物体との距離値の分布である距離画像を入力するための距離画像入力手段と、この距離画像入力手段から入力された距離画像のうち距離値が最小となる点を操作を行う者が指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記システムを制御するシステム制御手段を具備することを特徴とする。
【0023】
【作用】
上述のような構成を持つことにより、そこにあるものが手の形をしていることを認識するのではなく、距離画像の極小点に関する情報から、手であることを推測する。具体的には例えば、操作者が手を前方に(これから操作を行うという意志と共に)伸ばしたとき、距離画像の極小点が生成することを利用して手が伸ばされたことを検出する。その際に距離画像の時間差分データを利用して手の動きと関係のない極小点を取り除き、指示点を検出する。そのあとはその部分を追跡することにより、手の動きが入力できるので、画面上のポインティングデバイスとして用いることができる。
【0024】
本発明によって、リモコン装置などの一切のデバイスを手に持つことなく、また装着することなく、素手のみでシステムを操作する環境が実現できる。
【0025】
また、ユーザがポインティングしようとして、前方に差し出した手指は、距離画像の中の極小点、すなわち局所的に距離値が最小になる点として現れる。従って、本発明では、距離画像の極小点を中心とした解析を行うことによりユーザの指先の位置を求める。この手法を用いると、画像処理で行うと誤認識の原因になってしまうような複雑な背景条件のもとでも安定して指先の位置を求めることができる。また、距離画像の解析は極小点解析を中心とした比較的簡単な処理で済むので、大規模なハードウエアが必要ない。
【0026】
【実施例】
以下に図面を参照しながら本発明の実施例について詳細に説明する。
【0027】
まず初めに、図1で表される本発明の第1実施例について述べる。その手法の概要は、操作者の手などの距離画像を解析し、その極小点を主とする情報を抽出し、それを利用して機器の遠隔操作を行うものである。まず距離画像入力部1より距離画像が得られ、それが極小点検出部2および時間差分検出部3によって処理される。極小点検出部2は距離画像の中で局所的に距離値が最小になる極小点を検出する。時間差分検出部3は距離画像中の各々の座標についての時間差分を検出する。距離画像入力部1、極小点検出部2、時間差分検出部3から得られる情報を用いて、ユーザの指示する点である指示点を指示点決定部4で決定し、システム制御部5がシステムの制御を行う。第1実施例に示した構成により、使用者や使用者の手の動きが距離画像として取り込まれ処理されるので、手にリモコン装置などの機器を持つことなく、手の動きだけで機器を操作できる遠隔操作環境を実現することができる。
【0028】
本発明の詳細については、主に後述する第2および第3実施例を用いて説明を行うが、ここでは距離画像の入力の原理について述べる。まず従来技術である距離情報を遠隔測定する原理について述べる。図2は、カメラのAF機構などに用いられる距離計測手法である。LED10と投光レンズ11を用いて赤外線などをビーム状に投光し、測定物12からの反射光を、発光手段から離れた位置にある位置検出素子(PSD)13によって受光する。位置検出素子13はスポット光があたった位置に応じて2つの電極より電流を発生する。今、2つのレンズ11、14は同一平面上にあるとし、LED10の光軸と投光用レンズ11の中心軸は一致し、PSD13は、その検出変位方向は2つのレンズの中心を結ぶ直線と平行になるようにし、その一方の端点が受光用レンズ14の中心軸上にくるように配置する。LED10とレンズ11の距離、PSD13とレンズ14の距離は共に等しくfとし、レンズの中心間をL、投光用レンズ11から測定物12までの距離をDとし、PSD上での光の入射位置が(受光用レンズの中心軸上にある)端点からXだけ離れていたとすると、D:L−f:Xが成り立ち、D=Lf/xによって、Dが求められる。またPSD13の2つの電極から発生する電流をi1、i2、抵抗層の長さをCとすると、i1:i2=(C−X):Xが成り立ち、X=C×i2/(i1+i2)によってXが求められる。これらより、D=(i1+i2)/i2×(fL/C)が成り立つので、PSD13の2つの電極に発生する電流の比が分かれば、測定物12までの距離が求められる。
【0029】
本発明においては、上述の距離計測手段を2次元化することによって2次元的な距離情報、つまり距離画像を得る。図3のように、LEDを2次元アレイに並べて(20)発光し、レンズ21で投光すると、レンズ21からある距離だけ離れたところに像を結ぶ。今、アレイの中のひとつのLED22に着目してみると、このLED22の発する光は像の中の1点に向かって進む。この光の軸上に物体23があれば、その反射光をPSDで捕らえることで、その物体23までの距離を測定できる。つまり、アレイとなったLEDをひとつづつ順次発光させ、その反射光をPSDで受光することにより、2次元的な距離情報を得ることができる。この場合、測定物に当たる光スポットが焦点ボケによって(測定誤差が許容範囲を越えるほど)大きくならない範囲において、距離計測を行うことができる。レンズ21の径が小さく、像を結ぶ位置がレンズ21から遠いほど、計測範囲を広くとることができる。このとき投光レンズの中心軸からずれた位置にあるLEDを用いて距離を測定する方法を図4を用いて説明する。すなわち、LEDアレイ30の中心から(PSDとLEDアレイを結ぶ方向に)dだけ離れたLED31の光の、物体Aによる反射光がPSD32に入射する位置は、アレイの中心にあるLED33によって発光された光の物体Aと等距離にある物体B(この場合、距離とは投受光用の2レンズの中心を結ぶ直線からの距離とする)による反射光がPSD32に入射する位置とdだけ離れている。つまり、xO−x=d(ただし、dはアレイの中心から左方向に正)が成り立つ。今は、LEDの位置が、PSDとLEDアレイを結ぶ方向にずれた場合について述べたが、それと直交する方向にずれた場合はPSD上の光入射位置がやはり同じ方向にずれるだけであり、PSDとLEDアレイを結ぶ方向には変化しない。したがって、ある程度の幅を持った1次元PSDを用いれば同じ出力電流比が得られる。以上述べた原理に基づいて、ある広がりを持った操作空間における距離画像を得る。
【0030】
次に第2実施例について述べる。第2実施例の構成は図5に示される。これは前述の第1実施例を更に具体化したものと言える。図1における距離入力部1はLEDアレイ40とその駆動回路であるLEDアレイ制御部41、及び位置検出素子(PSD)42とPSDからの出力より距離を計算する距離演算部43から成る。LEDアレイ制御部41はアレイになったLEDを順次パルス発光させ、PSD42には各LEDに対応する反射光が順次入射される。距離演算部43から順次出力される各座標の距離値は極小点検出部44と時間差分検出部45に送られる。極小点検出部44は随時送られて来るデータから、1点1点についてそれが極小点であるか否かの判定を行う。時間差分検出部45は各点について数フレーム前との時間差分を演算する。これらの結果と距離値、座標値のデータは、指示点決定部46に送られる。指示点決定部46は、時間差分がある一定値以上あり、かつ距離値が最も小さい極小点の座標、距離値を格納する。このデータは全ての座標のデータが得られるまで随時更新され、LEDの発光が一巡したところで確定する。図には表していないが、確定後、この座標(指示点)は、表示部に送られカーソル表示に用いられたり、様々な位置指示部に利用される。タイミング制御部47は上記の各部の同期を取るためにタイミング信号を発生させる。ここで、最も小さい距離値を持つ極小点を指示点として利用する理由について述べる。使用者が遠隔操作をしようとするとき指示したい装置に向かって手または指を伸ばせば、それは距離画像の極小点として認識される。距離画像中には幾つもの極小点が存在すると考えられるが、伸ばした手指を認識することを考えれば、その中で最も装置に近い(距離値が小さい)極小点を手指であると判断するのが最も適当である。しかし使用者より装置に近い側に他の物体があり、手指よりも装置に近い極小点を作ってしまう可能性もある。そこで時間差分がある値以上あるという条件をつけ加える。これにより、手指よりも装置側に物体があって極小値を作っていてもそれが静止状態にある場合は排除できる。
【0031】
図6は図5におけるLEDアレイ40およびLEDアレイ制御部41のさらに具体的な構成である。ここでは各LED毎に発光回路50を設け、パルス信号を入力しパルス発光させる。このパルス信号はタイミング制御部47から取り出す。この図の下部が、タイミング制御部47であるが、ここでのクロック発生器51からの基本クロックを分周器52で分周して得られた信号から、単パルス抜き取り部53で単パルスを抜き出す。これをシフトレジスタ54でずらしながら各LED発光部50に入力することで、各LEDを時間的に重複の無いよう、順番に発光させる。
【0032】
図7は図5における距離演算部43のより具体的な構成である。まずPSD60からの出力電流をアンプ61で電流電圧変換し、増幅した後、A/D変換する。LEDが発光していないときも背景光の影響でPSDには電流が流れているため、この背景光電流に対応する出力値(以後、背景値と呼ぶ)をラッチ回路63にラッチする。LEDが発光したときの出力値からこの背景値を差し引いた値を用いて計算すれば背景光の影響を排除することができる。ここでの背景値のラッチを行う頻度は後述するよう背景光の種類によって決められる。背景光の影響を除去された出力値は一方で足し合わされ逆数変換される。逆数変換回路64はROMを用いて、入力値をアドレスとし逆数を出力する。この結果とi2側の出力をかけ算器65でかけ合わせ、定数倍回路で抵抗層長をかける。この出力が、C×i2/(i1+i2)に相当し、PSD上での光入射位置が計算されたことになる。
【0033】
この後、Xから被測定物体までの距離Dを演算するわけであるが、このXにはPSDの持つ位置検出誤差があり、距離Dには、LEDアレイの位置誤差、レンズなども含めた全体の系の位置や向きの誤差などが存在する。XからDを求める式は、D=k/(k+a)であるが、誤差要因によりパラメータk、aはLED毎に異なる。そこで各LED毎にキャリブレーションを行い、近似的にパラメータを決定する。これをROM66、67に記憶させておき、対応するLEDの座標値をアドレスにして、ROMよりパラメータを読み出し、演算する。この出力は誤差の補正された測定距離値である。
【0034】
図8はPSDからの出力70、A/D変換器の入力トリガ71、ラッチ回路の入力トリガ73、およびA/D出力72、ラッチ出力74、背景値除去後の出力75のタイミングチャートを示したものである。この図では、各LEDを発光する直前に背景値をラッチし、PSD出力から差し引いている。PSDからの出力70はLEDが発光していない時の出力とLED発光時の出力が交点に現れ、LED発光時の出力に対応する光源のLEDは順次変わっていく。したがってA/D出力72もLED発光時とLED非発光時の出力が交互に現れる。LED非発光時の出力が現れている時にこの値をラッチし、次のLED非発光出力をラッチするまで保存しておけば、そのあいだのLED発光時出力に対し背景光除去の処理を行うことができる。図9は複数のLED発光時出力に対し、ひとつのLED非発光時出力を用いて背景光除去を行う場合のタイムチャートである。ここではあるLED非発光時出力を次のLED非発光時出力があるまでラッチし(83、84)、その間に現れるLED発光時出力に対する背景光は一定であると見なして補正を行う。この図では4つのLEDに対してひとつのLED非発光時出力を用いているが、この数はいくつにすることもできる。ただ螢光灯下のようにある時間周期をもって明るさが変化するような環境で行う場合は、余り数を多くし過ぎると正しく補正できなくなる。この手法の利点は図8の場合に比べて高速化が図れるという点である。
【0035】
図10は得られた距離情報を用いて、ある座標点が極小点であるかどうか、時間差分が条件を満たしているかを判断する部分の構成である。基本的にはシフトレジスタを用いて距離値を遅延させ、比較するあるいは差をとることによって、判断する。LEDアレイのサイズが10×10で、(0,0)(0,1)(0,2)…(0,9)(1,0)(1,1)…(9,9)という順番で距離値が得られるとすると、ある座標点が極小点であるかどうかを判断するためにはその11個先の距離値が得られなければならない。そこである座標の距離が得られたときにその11個手前の座標について判断し、結果を出力することにする。図のような種々の遅延長を持ったシフトレジスタを並列に並べ、遅延長11のシフトレジスタの出力(最新の距離値の11個前)を中心にして演算を行う。まず、距離値の入力を1、2、10、11、12、20、21、22、の遅延長を持つシフトレジスタ(90〜97)に入力し、その出力(D2〜D8)およびシフトレジスタを通さない距離値D3を用いて極小点のチェックを行う。上記9個の出力の座標は、操作空間上で3×3の領域となり、その中心座標の出力は遅延長11のシフトレジスタからの出力D1である。これ以外の8個のデータ全てについて、各々中心座標の距離値D1と比較をコンパレータ98で行う。これらのコンパレータは中心座標の距離がそれと比較される座標の距離より小さいときに1を出力し、8つのコンパレータ出力のANDをとった結果が1であれば、中心座標が極小点である。
【0036】
また、このときの中心座標の時間差分をとるために111、211、311、411、の遅延長を持つシフトレジスタ(99〜102)に通し、その出力をセレクタ103で選択し中心座標距離との差分を取る。シフトレジスタ99、100、101、102はそれぞれ1、2、3、4フレーム前の中心座標の距離値を出力する。この時間差分ΔDがTH10W より大きければ1を出力する。ここでは1〜4フレーム前の距離との時間差分を取ることができるようになっているが、シフトレジスタ(99〜102)の長さをもっと長くすれば、さらに以前の距離と比較することもできる。
【0037】
また、中心座標が端の行または列に存在しているとき上記極小点のチェックは意味を成さないので、中心座標が端の行または列に存在していないときのみ極小点として記憶可能にする。最新の距離値を持つ点のx、y座標が共に2以上であれば中心座標(遅延長11のシフトレジスタからの出力)は端の行または列に無い。したがって、4bitで構成される最新の点の各座標が0000か0001でない場合、すなわち上位3bitに1つ以上1がある場合に、1を出力し極小点として記憶可能とする。
【0038】
上述した3つの出力のANDをとった結果が1であった場合、すなわち、中心座標が極小点であり、距離の時間差分がある値の範囲内にあり、端の行または列に存在していない場合、その中心座標のデータを指示点候補とする。
【0039】
図10のうち、時間差分の条件適合性を判断する部分は、図11のように構成することがきる。ここでは4フレーム前と3フレーム前の距離の時間差分、3フレーム前と2フレーム前の距離の時間差分、2フレーム前と1フレーム前の距離の時間差分、1フレーム前と現フレームの距離の時間差分の4つの時間差分すべてがある値以上かどうかをチェックしている。これはある時間範囲において常に手前方向に物体が動き続けていることを検出することに等しい。もちろん、例えば、2、4、6、8フレーム前、あるいは4、8、12、16、20フレーム前というように差分をとる時間間隔や数を変えることは容易である。
【0040】
図12は時間差分がある値以上の極小点(以後、指示点候補と呼ぶ)のうち、もっとも距離の近い点の座標を求める部分の構成である。フリップフロップ110には現時点までの最も近い指示点候補の距離値が保持されており、さらに近い指示点候補が入力されたときには更新される。コンパレータ111は新たに入力された距離値と保持されている距離値と比較し、新たに入力された距離値の方が小いとき1を出力する。この出力と図10に示した、指示点候補であるかどうかの判断部からの出力(図12では記憶指示フラグと表示)とANDをとった結果が1であればデータを更新し、0であれば更新しない。このとき記憶指示フラグは、図10における遅延長11bitのシフトレジスタの出力に対応する座標が指示点候補であるかどうかを示すので、図12の入力距離値は図10における遅延長11bitのシフトレジスタの出力である。また距離値と同時にその座標値も別のフリップフロップ112に保持しておき、ここのデータ更新は上述のフリップフロップ113と同期して行う。ここでの座標データも、遅延長10bitのシフトレジスタ出力に対応するよう変換されてある。全てのLEDが発光し終わった段階で、そのフレームにおける最も近い指示点候補が決定している。ただし、あるフレームでの指示点が決定するのは、その次フレームの第11番目のLEDが発光し終わったときである。全てのLEDが発光した後、フリップフロップ113に決定された極小点を保持し、指示点として利用する。
【0041】
以上で第2実施例についての説明を終える。次に第3の実施例について述べる。
【0042】
図13は第3実施例の構成である。第2実施例と異なるところは指示点決定部121の前に、指示点候補記憶部120が入っているところである。指示点候補記憶部120は、ある値以上の距離の時間差分を持ち、最も距離値が小さいn個の極小点を記憶する。指示点決定部121はこれら複数の指示点候補から指示点候補を決定する。
【0043】
第3実施例の詳細について説明する。図14は図13における指示点候補記憶部120を具体的に示したもので、最も近い3つの指示点候補の距離値と座標値を保持するようにしたものであり、フリップフロップ回路とスイッチ、SW制御回路からなるデータ記憶部を、3段構成にしている。もちろん3つより多くとも少なくとも同様の構成で実現できる。ここの入力部には距離値と座標値とが順次入力される。フリップフロップ130、131、132にはこの順番で現時点での最も小さいものから3つの指示点候補のデータがQ1、Q2、Q3として保持されている。SW制御部133、134は入力された新しいデータと保存されているデータとの比較を行い、その距離値が小さい方のデータを再び保存し、距離値が大きい方のデータを後段のデータ記憶部に送る。制御部135はデータの比較と再保存だけを行う。すなわちSW制御部133は入力データX1の距離値が保存されているQ1の距離値より小いときにスイッチ136と137を1につなぎ、そうでないときに0につなぐ。スイッチ137の接続によってX1かQ1のどちらかが後段に送られる。送られたデータをX2とすると、SW制御部134はX2とQ2の距離値を比較しX2の方が小さければスイッチ138、139を1につなぎ、逆ならば0につなぐ。SW制御部135は前段より送られてきたデータX3とQ3を比較し小さい方を保存するようにスイッチ140を切り替える。あるディレイを経た後、フリップフロップ回路130、131、132の入力が安定したところで、同時にクロックを入力し、一気にデータを更新する。この図には、図12の記憶指示フラグは示されていないが、入力前段に図15の回路を入れ、記憶指示フラグの反転信号とORをとることにより、記憶指示フラグが0の時(入力データが指示点候補でない時)、距離値は全てのbitが1(つまり最大値)になり、記憶部に入力されても記憶されなくなる。LEDの発光が一巡したところで、フリップフロップ回路130、131、132には、あるフレームにおける、最も距離値の小さい3つの指示点候補データが保存されている。このデータをラッチ回路141、142、143にラッチさせる。この図における、データを記憶する部分のタイミングチャートを図16、17に示す。入力X1があると、3つのフリップフロップ回路の入力はディレイを持ちながら順次変化し、全ての入力が安定したところで、フリップフロップ回路のトリガ(CK1)を入れ、出力を更新する(図16)。この場合LEDは100個あるので、フリップフロップの入力トリガ100個にひとつの割合でラッチトリガ(CK2)を入れる。これでラッチ回路にはLED発光が一巡する毎に新しいデータが保存される(図17)。
【0044】
指示点決定部は極小点データ格納部内のデータを用いて指示点を決定する。ここでは、その時の状態によって2種類の処理のどちらかが選択されて行われる。何もない状態から手指(追跡すべき極小点)が現れたことを認識する処理と、認識した手指を追跡する処理である。前者を指示点検出処理、後者を指示点追跡処理と呼ぶ。指示点が認識されていない時点では指示点検出処理が行われる。一度指示点が検出されると、その後は指示点追跡処理を行うようになる。指示点の追跡ができなくなると再び指示点検出処理を行うようになる。図18は図13における指示点決定部を上述の内容にそってさらに細かく構成したものである、指示点検出部150が指示点検出処理を行う。すなわち、距離の差分データがある値以上である極小点が存在した場合、その中で最も最小の距離値を持つ極小点を指示点として決定する。該当する点がない場合は指示点はないものと判断される。指示点追跡部151は指示点追跡処理を行う。これは旧指示点から最も近い極小点を、追跡された結果の新たな指示点とする。ここでは座標だけでなく距離情報も用いて、最も近い極小点を見つける。切り替え制御部152は、その時の状態によって指示点検出部150および指示点追跡部151のどちらかの出力を決定された指示点として選択し、出力する。指示点が検出されていない状態では、切り替え制御部152は何も出力しないか、あるいは指示点が検出されていないことを示す信号を出力する。このときには切り替え制御部152は指示点検出部150の出力を監視している。指示点検出部150は図14のラッチ回路141に有効なデータが存在した場合にそれを検出された指示点として出力し、また指示点記憶部153に記憶する。切り替え制御部152は指示点が検出されると、次からの出力を、指示点追跡部151からの出力に切り替える。指示点追跡部151は指示点記憶部153に記憶されている旧指示点と、新たに入力された指示点候補を比較し、旧指示点と最も近い指示点候補を出力する。指示点候補の全てが、旧指示点より、ある値以上離れていたとき、指示点追跡部151は、指示点の追跡に失敗したことを知らせる信号を出力する。切り替え制御部152がこの信号を受け取ると、次から再び指示点検出部150の出力を監視し始める。以上述べたように、指示点検出処理と指示点追跡処理を交互に繰り返す。
【0045】
図19は指示点追跡部151および指示点記憶部163のより詳細な構成図である。ラッチ回路160、161、162は図14におけるラッチ回路141、142、143に相当する。ラッチ回路163は図19の指示点記憶部163に相当し、旧指示点が保持されている。ラッチ回路160、161、162に新しいデータが入ってくると、距離計算回路164、165、166が旧指示点との距離を計算する。ここで得られる3つの距離を比較部167で比較し、最も距離が小さい点のデータが指示点更新部168によって選択され出力される。この出力は同時にラッチ回路163に再び保持され、次の指示点追跡処理に用いられる。
【0046】
指示点検出処理と指示点追跡処理を交互に繰り返すことにより、一度正しく指示点が検出されると、その後は高い精度で正しく指示点を追跡することができる。また背景ノイズが多く、手指(指示点)の正確な検出が難しいときは、指示点検出処理を複雑にし(例えば、指で円を描かせる等)、指示点検出精度を上げておけば、その後の指示点追跡処理は背景ノイズに強いため、全体のパフォーマンスを上げ易いという利点がある。
【0047】
第3実施例では手指の動きが止まってしまうと、その位置を見失ってしまい易いが、図20のように構成すると指示点追跡処理には時間差分が影響しないため、きちんと追跡できる。
【0048】
以上、3つの実施例について説明したが、実施例は上記述べたものだけにとどまらない。部分的に見てもいくつかの実施例が考えられる。
【0049】
まず、発光部であるが、上記ではLEDをアレイ状に並べたものを、レンズ系で操作空間に投影した。これ以外にいくつかの例が考えられる。例えばLEDとレンズ系を用いて細いビーム状に発光できる単位発光系を作り、これをアレイ状に並べるという方法もある。これは先の例に比べて操作空間が広くとれるという利点がある。マイクロレンズアレイをモールド成形で作り、LEDアレイの上にかぶせるという構造でも良い。またそれ自体で非常に狭指向性を持つ発光素子を使うことができる。光源をスポットに通してビームを作り、そのスポットを機械的または電子的に走査することも考えられる。また図21のようにLEDチップなどの発光部170を並べたものの上を、徐々に屈折率の大きくなっていく多層の透過材で平面状にコーティングして発光部を形成することも考えられる。この図で各層の屈折率は、n1<n2<n3<…<nnで表せる。これだと小さなレンズを数多く作る必要がなく、レンズと違い隣り合うLEDチップでの光の通る領域を共有できるため、小型化する場合には適していると考えられる。
【0050】
次に指示点決定部について他の実施例を考えてみる。実際にこのような遠隔部を家庭内などで使うことを考えた場合、背景や前景の影響が大きいと考えられる。上記実施例では極小点の距離と距離の時間差分を用いて指示点を検出したが、他にもいくつかの方法が考えられる。単純な例では距離画像の最小点のみを用いるという方法もある。この方法だとノイズの影響は受け易くなるが、回路的にも単純にすることができ低コストになる。また狭い操作空間だけで実現できるアプリケーションでは十分な性能を示すことができる。逆にノイズの影響を更に低減するためにいくつかの方法が考えられる。極小点の距離と距離の差分データ以外に極小点位置にある物体の大きさと動きを推定して利用することができる、ある領域の全ての点について距離値が近ければ、その領域はひとつの物体であると考えることができる。領域の大きさと距離値が分かればその物体の実際の大きさが分かるので、これを利用してノイズを排除することができる。例えば使用者の前を急に人が横切ったり、小さな虫が前を飛んだ場合などのノイズを排除することができる。
【0051】
上記実施例では指示点を検出・追跡するだけであったが、実際にはその他の使用者の意志を伝えたい場合が多い。例えば、図22にあるように、画面上に表示されたカーソルを動かしてある領域を指示したい、メニューを選択したい、字や絵を書きたいなど様々な要求がある。これらを実現するために、指示点の軌跡を用いてコマンドを生成する方法が考えられる。例えば指示点を動かしてメニューの上に持ってきた後、一定時間停止した場合、そのメニューを実行コマンド候補とし、例えばメニューの色を変える、点滅させるなどして使用者に知らせる、その後、指示点が決められた動き(前方に少し移動する、上に移動する、丸を描く、など)をした時に、その候補を実行コマンドとして確定し、実行する、というアルゴリズムが考えられる。また、指示点の軌跡を追うのではなく、指示点にある物体(手など)の形を認識しその変化でコマンドを与えることもできる。例えば手を開いてカーソルを動かし、選択するときには握る、あるいは指を一本だけ立てた場合と、2本立てた場合で、カーソルの移動速度を変える、などということは、それほど難しくなく実現できる。
【0052】
さらにディスプレイ装置を用いない使い方も考えられる。例えば、一見ボタンのように見える(実際にボタンであっても良いが)機能の表示板を本体に備え、操作者が手を伸ばしたときに、指示点をボタンの位置と対応付け、選択できるように構成すると、便利な遠隔操作装置となる。また、機能の表示と共に、色の変わる発光部を各機能ごとに並べて配置し、その色や点滅・点灯で、状態を操作者に知らせるようにすると更に良好な環境になる。例えば、手を伸ばしたときに指している機能の発光部を緑色に発光させ、指を動かすと緑色の点灯が移動し、操作者は現在どこを指しているかが分かる。ある機能の発光部を一定時間以上緑色に点灯させるとやがて赤色に変わり、そのボタンを選択し実行させる。このようにして用いる場合は特にディスプレイなどの高価な表示装置を必要としないので、システムを低コストで構成できる。
【0053】
また、操作領域が広いことを考えると、使用者からみて、指の位置と画面上のカーソルまたは点灯しているボタンの位置が一致して見えるようにするためには、工夫が必要である。例えば、初めに指示点(手指)を検出したときには常にある位置(中心など)にカーソルを表示する、あるいは特定のボタンを点灯させるようにしておけば、まず使用者はその特定位置に向けて手を伸ばしてから操作を始めることで、指の位置とカーソルあるいは点灯の視差を少なくできる。指先の初期位置とその距離が分かるので指先と目の位置関係を仮定すれば視差を最小にすることかできる。
【0054】
さらに、使用者へのフィードバックに音を用いても良い。指が一定時間停止すると、音を発し、選択可能であることを示し、更に停止し続けると、実行する、というように効果的に音を使うことができる。
【0055】
次に、第4実施例について説明する。
【0056】
図23に同実施例の構成を示す。
【0057】
同実施例に係る情報入力装置は、距離画像入力部201と距離画像解析部202と処理部203によって構成される。距離画像入力部201によりユーザの距離画像を捕らえ、距離画像解析部202によって極小点解析を中心とした解析を行う。その結果を用いて処理部203が処理を行う。これは主に、ユーザにメニューを提示したり、ユーザによってどのメニューが選択されたかを判定したり、そのメニューを実行したりという処理を行う。各部のより詳細な説明はそれぞれ後述する。
【0058】
距離画像入力部201としては、発光素子と光位置検出素子(PSD)を使った測距手段を走査して距離情報の集合、つまり距離画像を求める方法がある。PSDという素子は、光スポットの入射位置と入射光量に応じた電流を発生する。2つの電極から発生する電流の合計は、光の入射光量に比例する。各電極の電流比は光の入射位置によって決まる。従って図24から分かるように、PSDの出力電流i1、i2からPSD上の光入射位置Xが、光の入射位置Xから距離Dが下式によって求められる。
【0059】
x = c(i2−i1)/(i1+i2)/2
D = Lf/x
この発光素子を図25のようにアレイ状に並べ、順番に発光させれば、ある空間での距離情報の集合、つまり距離画像を入力することができる。距離画像入力部201をブロック図で構成すると図26のようになる。発光部210はLEDアレイおよびその駆動回路を含む。受光部211はPSDである。PSDからの出力電流をアンプ212で電流電圧変換した後、増幅して、A/D変換器213に通す。デジタル化された電流値信号を演算部214で処理することにより、距離値を出力する。制御部215はこれら構成部のタイミングをコントロールする。
【0060】
また、実際にユーザが操作を行う空間が、真っ暗であることは少ないので、発光素子が発光していないときでも、受光素子の出力があることが多い。これは、発光、受光素子を使って距離を求める際に誤差となって現れる。そこで、受光素子の出力を演算に用いるにあたり、発光素子が発光しているときの出力と、発光素子が発光していないときの出力を使って、誤差の少ない演算を行うことができる。たとえば図26におけるA/D変換を、発光素子が発光する直前と発光後PSD出力が定状状態になった時の2回のタイミングで行い、演算部ではその差を取ることにより、発光部210が発光していない時の背景光による影響を排除した出力を得ることができる。
【0061】
背景光として、蛍光灯のような時間的に量が変動する光があると、2回のタイミングの間にも、背景光が変動してしまうことがある。そこで、図27のようにA/D変換のタイミングを3回行い、発光部が発光する前後の非発光時の出力を平均し、発光時の出力から引けばより精度の良い演算ができる。
【0062】
また他の構成も考えられる。図28はA/D変換を行う前に、背景光の影響を除いている。この図では、発光の前、発光中の2回のタイミングで増幅信号をサンプル・ホールドしておき、演算に用いている。2つのサンプル・ホールド回路221、222とA/D変換部223のトリガのタイミングは図29に示したようになる。
【0063】
次に、受光素子として光位置検出素子(PSD)を用いた場合を考えると、PSDは光の量に関係なく位置を知ることができるが、光の量が余りに小さい場合は精度が悪くなる。例えば、物体が遠くにありすぎて、反射光が有効に返ってこない場合は、実際と異なる結果が出てしまうこともある。図30はこのような状態を避けるため、光の量が余り小さいときには距離値が非常に大きいと判定させるようにしたものである。ここでは、A/D変換される前の段階で背景光の影響が取り除かれているとする。A/D変換された後のデータは、距離演算部235と大きさ判定部234の両方に入力される。演算部235ではPSDの両極の出力値から距離を演算する。大きさ判定部234では、PSDの出力値の大きさを判定する。ここでは単純に両極の出力を合計し、あるしきい値より小さいかどうかを判定し、小さければその由の信号を出力する。出力部236は大きさ判定部234の出力により、距離値の出力をコントロールする。すなわち、大きさ判定部234からPSD出力が小さすぎることを示す信号が出ていなければ、距離演算部35の出力をそのまま出力する。PSD出力が小さすぎることを示す信号が出ていれば、出力し得る最大距離を出力する。最大距離を出力する代わりに、距離が遠すぎることを示す信号を出力してもよい。
【0064】
また、背景光のレベルが急激に変動し、その結果として異常に大きなPSD出力が得られてしまうこともある。そこで、大きさ判定部234が、PSDの出力値が小さすぎることと、大きすぎることの2つの状態を判定するようにしてもよい。そして出力部236はPSDの出力が小さすぎるときは最大距離を出力し、PSD出力が大きすぎるときは距離演算不能であったことを示す信号を出力し、それ以外の時、距離演算部235の出力をそのまま出力するようにする。
【0065】
次に、距離画像解析部202について述べる。図31は距離画像解析部202を、極小点検出部241と極小点選択部242から構成した情報入力装置である。ユーザの指先は距離画像の中では、局所的に距離値がもっとも小さい点、すなわち極小点に対応する。そこで、距離画像の極小点を見つけることが、指先の位置を見つけるための有力な手段となる。しかし、指先以外にも距離画像の中には極小点は複数存在するのが通常であり、これらの中から指先に対応する極小点を見つける手段が必要になる。さらに指先以外の物体で作られる極小点だけしか存在しない場合もあり、このような場合には、指先に相当する極小点は存在しないと判断できなくてはいけない。これらの処理を行うのが極小点選択部242である。極小点選択部242は、極小点検出部241が出力する極小点の情報(座標と距離値)だけを用いる場合もあり、また元の距離画像も用いる場合もある。後者の場合は、図32のような構成になる。極小点選択部241によって検出された、指先に対応する極小点の情報または指先に対応する極小点が無いという情報が、後段の処理部243に送られる。
【0066】
もう少し具体的な例として、図33を用いて説明する。この図では距離画像解析部202は、極小点検出部252、極小点動き検出部251、極小点周辺状況解析部253、および極小点選択部254で構成される。極小点検出部252は距離画像中の1つまたは複数の極小点を見つけ、フレーム毎に出力される。極小点動き検出部251は、フレーム間での極小点の対応をとったり、その移動量・方向などを検出する。移動量・方向は、座標だけを用いて、2次元平面内での移動を捕らえることもできるし、距離値まで用いて、3次元空間内での移動を捕らえることもできる。
【0067】
極小点周辺状況解析部253は、極小点を作っている物体のおおよその形状・向きなどを検出する。例えば、今、極小点の1つの距離値をdmとする。あるしきい値thを用意し、極小点の周辺の点について、その距離値dが、
dm < d < dm+th
を満足するような点を求め、さらに満足する点の周辺の点についても調べる。この作業を、これ以上周辺に広がらないところまで繰り返し、その合計の数を数える。この数と極小点の距離値から、この物体の形状が、とがっているか、そうでないか、を知ることができる。図34でいうところの、面積s1、s2を求めたことになる。従って、この値をあるしきい値で区切れば、手(面積が小さい)と頭(面積が大きい)を区別することができる。
【0068】
極小点周辺状況解析部253として別な方法も考えられる。極小点の座標からある方向の点列の距離値の変化具合を見る方法がある。例えば、極小点(xm,ym)に対し、
(xm+1,ym)、(xm+2,ym)、(xm+3,ym)...
(xm−1,ym)、(xm−2,ym)、(xm−3,ym)...
(xm,ym+1)、(xm,ym+2)、(xm,ym+3)...
(xm,ym−1)、(xm,ym−2)、(xm,ym−3)...
の4つの方向へ点の距離値を見ていく。この距離値がdm+th(dmは極小点の距離値、thはあるしきい値)に達した点の、極小点からの距離を見れば、先ほどの例と同様に、物体のおおよその形状をつかむことができる。この方向を更に細かくとり、ある方向に距離値が一定の割合で増加していくことが分かれば、まっすぐ伸ばした手の、伸ばした方向を知ることができる。
【0069】
極小点選択部254は、極小点検出部252、極小点動き検出部251、極小点周辺状況解析部253の出力結果を用いて、極小点の中に指先があるのか、あればどの極小点なのかを判定する。例えば、長時間にわたって静止している極小点は、机や椅子などの静止物体によって作られた極小点だと判断し、除外することができる。頭で作られる極小点は手で作られる極小点に比べ、とがった形状をしていないので、極小点周辺状況解析部253の出力から区別できる。ユーザが操作を使用として前方に差し出した手指は、「ゆっくり近づいて来て止まる」極小点として見つけられる。そこで、このような動きをした極小点を指であると判定できる。一度指であると判定された極小点はその後は優先的に指であると判定した方が精度が上がる。ある極小点が指先だと判定される前と、判定された後では、判定のアルゴリズムを変えることも考えられる。一度指先だと判定された極小点は、その後、指先でないと判定される条件が揃うまでは、指先であると判定され続ける。極小点選択部254が1つの極小点を選択するような場合は、優先的に指先であると判定される極小点があるとそのほかの極小点は除外される。しかし、複数の極小点を選択する場合は、優先的に指先であると判定される極小点があっても、その他の極小点の判定には影響しない。
【0070】
この例では、極小点動き検出部251と極小点周辺状況解析部253の両方を用いたが、どちらか一方を使ってもよいし、それでも効果はある。
【0071】
図35は、図31の極小点選択部242と処理部243との間にフィルタを介在させた構成をもつ。隣り合う2つのLEDビームのちょうど中程に指が位置した場合、極小点選択手段の出力は2つの座標が同程度の確率で現れる。この出力座標を直接カーソル座標にすると、カーソルが2つの座標の間を行ったり来たりすることになり好ましくない。そこでこの図のようにフィルタ263を入れることにより、カーソルの動きをなめらかにすることができる。フィルタの形としては、nフレーム前の(フィルタにかける前の)極小点座標を(Xn,Yn)として、フィルタ出力を(X,Y)とすると、
X=ΣKn・Xn
Y=ΣKn・Yn (Knは定数)
で求められる。また、このX、Yを適当な大きさで量子化すれば、必要以上に小さなゆらぎをなくすことができる。先の例では、カーソルは2つの座標の中間に位置することになる。これはまた解像度を上げることにもなる。
【0072】
次に図23における処理部203の細かい構成も含め、より具体的な処理を行える構成について説明する。
【0073】
まず、画面に出された複数のメニューの中から所望の1つを、指で差すことによって指示することができる環境を考えてみる。これは例えば、図36の構成によって、実現できる。距離画像入力部270と極小点検出部271と極小点選択部272は既に述べたものとほぼ同様の働きをする。極小点選択部272は、指先であると判定した極小点の情報(座標、距離値)を出力する。指示点・メニュー対応検出部274は、選択された極小点の位置がある特定のメニューの領域に入っているかどうかを検出し、その情報を出力する。表示制御部276は、極小点選択部272から入力される選択された極小点の情報をもとに、指先の位置を示すカーソルを表示するとともに、その位置があるメニューの領域内に入っていればメニューの色を変えるなどの処理を行う。指示点静止時間検出部273は、選択された極小点の、ある点からの距離が一定値以下であるような状態が続いたとき、その時間を検出する。そしてその時間がある値以上になったときその旨をコマンド実行部275に伝える。コマンド実行部275は、極小点の静止時間がある値以上になったことを知ると、そのときに極小点の位置に対応しているメニューがどれかという情報を指示点メニュー対応検出部274から受け取り、そのメニューの内容を実行するとともに、表示制御部276に実行したことを伝える。表示制御部276はコマンドが実行されたという情報を受け取ると、さらにメニューの色を変化させて、ユーザにコマンドが実行されたことを知らせる。図36では、ユーザへのフィードバックは表示によってのみ行われたが、図37のように音声出力部277を併用してさらにフィードバック効果を高めることもできる。
【0074】
次に、所望のメニューを指で「押す」などの動作をすることで選択実行する環境を考えてみる。これは図38の構成で実現できる。距離画像入力部280と極小点検出部281はこれまで出てきたものと基本的に同様の働きをする。極小点検出部281から出力された極小点データは第1の極小点動き検出部282と第2の極小点動き検出部283に入力される。第1の極小点検出部282は極小点検出部281から出力される極小点の中から、指先に対応するものを見つける部である。ここでの具体的な方法は上述したようにいくつか考えられる。第2の極小点動き検出部283は、一度指先であると検出された極小点の動きから、あるメニューを選択実行したかどうかを判定する。例えば、少し前進してその後、少し後退すればそれは「押す」という動作であると判定する。あるいは特定の動作を行ったとき、例えば「チェック」動作、「丸を描く」動作をしたときにそのメニューを選択実行することもできる。このような場合、動作をするときにカーソルの位置がずれてしまい、所望のメニューとは違うものが選択されてしまう恐れもある。そのような時は、ある動作が認識されたときその動作が起こる直前の座標があったメニューを対象メニューとするようにすれば、このような問題は回避できる。
【0075】
メニューが横に広がっている場合などは、指先を左右に動かして所望のメニューの位置までカーソルを動かした後、ある値以上の速度で指を下に降ろす(または、上に挙げる)ことによって、そのメニューが選択実行されるようにすることもできる。メニュー制御手段は第1、第2の指示点動き検出部から出力される信号によってメニューの表示を制御する。まず第1の極小点動き検出部282が指先の位置を検出すると、指先に対応する位置に、カーソルを表示する。そしてカーソルがあるメニューの領域の中に入ると、そのメニューの色を変えてユーザにフィードバックする。第2の極小点動き検出部283が、あるメニューが選択実行されたことを示す信号を出力すると、さらにメニューの色を変え、そのメニューが実行されたことをユーザにフィードバックする。この図には描かれたないが、音声を用いてユーザにフィードバックしてももちろん構わない。
【0076】
これには例えば図39に示すようなメニュー画面を提示することが考えられるカーソルは指の位置に対応しており、指を左右に動かすとカーソルが動き、カーソルの乗っているメニューは色が反転されている。ここで所望のメニュー上にカーソルがある時に、指を下に降ろすと、そのメニューが確定する(このとき更にメニューの色を変えてもよい)。このとき、メニューを選んでいるときに、指が上下に振れてしまったことに反応しないように、確定するための「指を降ろす」動作はある程度の速度以上で降ろしたときの反応するようにしておくことも効果的である。
【0077】
また図40のように、階層的なメニューを指示するのにも適している。はじめのメニューで1つを選択し、指を下方に移動すると次の階層のメニューが現れる。そこでまた指を左右に動かし所望のメニューの位置にカーソルを動かしてから、下方に指を移動させるとさらに次の階層のメニューが現れる。これを繰り返すことによって、階層メニューの1つを簡単に指示することができる。この場合は先の例とは違い、「指を降ろす」速度ではなくて、距離にスレッショルドを設けて、メニューを選んだことを判定させる方がよい。この場合、指を上方に動かすと前メニューの選択に戻れるようにしておくと、やり直し操作が行い易いという効果がある。
【0078】
次にもう少し異なる動作でメニューの選択実行が行える環境について述べる。構成は先と同じ、図38に示したものである。異なるのはメニュー制御部285で表示されるメニューの形と、第2の極小点動き検出部283で検出する動きの種類である。第1の極小点動き検出部282が指先を見つけると、メニュー制御部285は図41や図42のような円形もしくは各メニューが円状に並んだ形をしているメニューを表示する。このメニューは、指の位置もしくは指の位置に対応するカーソルの位置がその中心に位置するように表示される。ユーザは指を差し出してこのメニューが表示された後、指を上下左右のいずれかの方向に動かすとその方向にあるメニューが実行される。従って、第2の極小点動き検出部283は指がどの方向に動いたかを検出する。この例では、複数の極小点の中から指先に対応する極小点を見つけるために極小点の動きだけを用いているが、前述の極小点周辺状況解析部を用いて総合的に判断してもよいことは言うまでもない。
【0079】
【発明の効果】
本発明によって、リモコン装置などの一切のデバイスを手に持つことなく、また装着することなく、素手のみでシステムを操作する環境が実現できる。家庭内での現在のリモコンの置き換えに留まらず、手にものを持ちながら操作を行いたい、汚れた手で機械を操作したいといった要求にも応えることができる。
【0080】
また、本発明により、リモコンなどの装置を持つことなく素手のみで機器を操作できる、情報入力装置が構成できる。この情報入力装置によって、操作するときにいちいちリモコンを探す手間がない、複数の人が操作するとき、リモコンの受け渡しをする必要がない、機械に触らずに操作できるので、危機が汚されたり、壊されたりしにくく、メンテナンスコストの削減になる、汚れた手で操作することができる、などの多くの効果がある。
【0081】
また本発明によれば、発光素子と受光素子で距離計測部を構成したとき、発光素子の発光しているときと発光していないときの、出力を用いて距離値を演算するので、外光などのノイズの影響を最小限に押さえることができる。また、蛍光灯のように変動する外光の影響も最小限に押さえることができる。
【0082】
また本発明によれば、受光素子の出力レベルが期待される量を大幅に上回ったり下回ったりしたときに、その出力から演算される距離値を用いないようにすることができるので、被計測対象がその距離を測る必要がないくらいに遠ざかったときや、何らかの原因で出力がおかしくなったときに、その影響を最小限に押さえることができる。
【0083】
また本発明では、距離画像の中の極小点を指先候補として取り出し、その中から指先であろう極小点を見つけだす処理を行っている。ユーザの指先は距離画像中の極小点となるため、画像処理を行って指先を検出する方法に比べ、安定的に検出でき、また処理系も低コスト化できる。
【0084】
更に本発明では、複数の極小点の中から指先であろう極小点を見つけるために、極小点の動きや、極小点の周りの画素の状態を解析するので、静止物体によってつくられる極小点や、頭などの指先とは大きさが異なる物体によってつくられる極小点を良好に排除することができる。
【0085】
また本発明では、求められた極小点の座標をフィルタに通すため、隣り合う2つのLEDビームの中間に指が位置したとき、極小点として2つの座標を不安定に出力することがなく、中間の座標を安定して出力することができる。
【0086】
また本発明によると、メニューの選択などのタスクを行うときに、所望のメニューに(指先位置に対応する)カーソルを静止させるだけで選択を行えるので、マウスのクリックボタンに相当するものがなくても好適に操作を行うことができる。
【0087】
また本発明の別の手段によれば、カーソルを所望のメニューに移動させて、「押す」という動作などの自然な動作を行うことによりメニューの選択ができる。
【0088】
また本発明の別の手段によれば、階層的なメニューの選択も指を動かすだけで好適に選択することができる。また、円形メニューを表示することによって、指を差し出してある方向に動かすという、少ない操作でメニューの選択ができる。また指の動いた方向で選択するためユーザによる誤指示が少ない。
【0089】
以上述べたように本発明により、装置を手に持たずに、あるいはデータグローブなどの装置を装着せずに、離れたところから機器を操作できる自然な環境を提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施例である第1の実施例の構成を示す図。
【図2】本発明の一実施例である距離計測の原理を示す図。
【図3】本発明の一実施例である距離画像の入力方法を示すための図。
【図4】本発明の一実施例である距離画像の入力方法を示すための図。
【図5】本発明の一実施例である第2の実施例の構成を示すための図。
【図6】本発明の一実施例であるLEDアレイとLEDアレイ制御手段の構成を示すための図。
【図7】本発明の一実施例である距離演算部の構成を示すための図。
【図8】本発明の一実施例である背景ノイズを除去する部分のタイムチャートを示す図。
【図9】本発明の一実施例である背景ノイズを除去する部分のタイムチャートを示す図。
【図10】本発明の一実施例である指示点の候補であるかどうか判断する部分の構成を示す図。
【図11】本発明の一実施例である時間差分検出部の1実施例を示す図。
【図12】本発明の一実施例である指示点検出部の構成を示す図。
【図13】本発明の一実施例である第3の実施例の構成を示す図。
【図14】本発明の一実施例である指示点候補記憶部の構成を示す図。
【図15】本発明の一実施例である指示点候補記憶部の構成を示す図。
【図16】本発明の一実施例である指示点候補記憶部における動作タイムチャートを示す図。
【図17】本発明の一実施例である指示点候補記憶部における動作タイムチャートを示す図。
【図18】本発明の一実施例である指示点決定部の構成を示す図。
【図19】本発明の一実施例である指示点追跡部の構成を示す図。
【図20】本発明の一実施例である第3の実施例の変形例を示す図。
【図21】本発明の一実施例である発光部の他の構成例を示す図。
【図22】本発明の一実施例である指示点の移動をメニュー画面上のカーソルの移動およびシステムの制御に用いる例を示す図。
【図23】第4実施例に係る情報入力装置の構成を示す図。
【図24】第4実施例に係る発光素子と受光素子(PSD)を使った測距の原理を説明するための概念図。
【図25】第4実施例に係るLEDアレイによる距離画像入力を説明するための概念図。
【図26】第4実施例に係る距離画像入力部の構成を示す図。
【図27】第4実施例に係る背景光の影響を除去するためのA/D変換タイミングを示す図。
【図28】第4実施例に係るA/D変換の前に背景光の影響を除去するための回路を示す図。
【図29】第4実施例に係るA/D変換の前に背景光の影響を除去するための回路における動作タイミングを示す図。
【図30】第4実施例に係る受光素子出力の大きさから距離値の出力を制御する距離画像入力部の構成を示す図。
【図31】第4実施例に係る距離画像解析部を極小点検出部と極小点選択部とから構成した際の情報入力装置の構成を示す図。
【図32】第4実施例に係る極小点選択部が元の距離画像と極小点検出部が出力する極小点の情報とを使用する際の情報入力装置の構成を示す図。
【図33】第4実施例に係る距離画像解析部を極小点検出部、極小点動き検出部、極小点周辺状況解析部、および極小点選択部から構成した際の情報入力装置の構成を示す図。
【図34】第4実施例に係る極小点周辺状況解析部で検出する情報を例示した図。
【図35】第4実施例に係るフィルタを持った情報入力装置の構成を示す図。
【図36】第4実施例に係るメニュー選択を行うための情報入力装置の構成を示す図。
【図37】第4実施例に係るメニュー選択を行うための情報入力装置の構成を示す図。
【図38】第4実施例に係るメニュー選択を行うための情報入力装置の構成を示す図。
【図39】第4実施例に係るメニューを例示した図。
【図40】第4実施例に係るメニューを例示した図。
【図41】第4実施例に係るメニューを例示した図。
【図42】第4実施例に係るメニューを例示した図。
【符号の説明】
1…距離画像入力部、2…極小点検出部、3…時間差分検出部、4,46,121…指示点決定部、5…システム制御部、20…LEDアレイ、21…レンズ系、40…LEDアレイ、41…LEDアレイ制御部、42…位置検出素子、43…距離演算部、44…極小点検出、45…時間差分検出部、150…指示点検出部、151…指示点追跡部、201…距離画像入力部、202…距離画像解析部、203…処理部、210…発光部、211…受光部、214…演算部、234…大きさ判定部、241…極小点検出部、242…極小点選択部、251…極小点動き検出部、253…極小点周辺状況解析部、263…フィルタ、273…指示点静止時間検出部、274…指示点・メニュー対応検出部、275…コマンド実行部、276…表示制御部、277…音声出力部、282…第1の極小点動き検出部、283…第2の極小点動き検出部。
Claims (10)
- 測定物までの距離を示す距離情報を2次元配列させた距離画像を入力するための距離画像入力手段と、
この距離画像入力手段から入力された距離画像の中で局所的に距離値が最小となる極小点を求める極小点検出手段と、
前記距離画像入力手段から入力された距離画像の時間に対応した距離値の変化量である時間差分を検出する時間差分検出手段と、
前記極小点検出手段が検出した極小点のうち、前記時間差分検出手段が検出した時間差分に変化の生じた極小点を、操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、
この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段と
を具備することを特徴とする情報入力装置。 - 測定物までの距離を示す距離情報を2次元配列させた距離画像を入力するための距離画像入力手段と、
この距離画像入力手段から入力された距離画像の中で局所的に距離値が最小となる極小点を求める極小点検出手段と、
前記距離画像入力手段から入力された距離画像の時間に対応した距離値の変化量である時間差分を検出する時間差分検出手段と、
前記極小点検出手段が検出した極小点の中で、距離の時間差分がある範囲の値を持ち、かつ距離値が最も小さい値を持つ極小点を、操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、
この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段と
を具備することを特徴とする情報入力装置。 - アレイ構造に並べた発光素子からなる発光手段と、
この発光手段の発光素子を一つづつ順番に発光させる発光制御手段と、
この発光手段によって発光された光の、物体による反射光の入射位置を検出する光検出手段と、
この光検出手段が検出した光の入射位置とこの光を発光させた発光素子の位置とから距離情報を演算する演算手段と、
この計測手段が計測した距離画像のうち局所的に距離値が最小となる極小点を求める極小点検出手段と
からなる距離画像入力手段を持つことを特徴とする請求項1または2記載の情報入力装置。 - 前記システム制御手段は、指示点決定手段で決定された指示点に対応するディスプレイ上の位置をカーソルで表示し制御するカーソル制御手段と、
このカーソル表示手段によって表示されたディスプレイ上のカーソルの軌跡をシステムを制御する命令に変換する制御命令変換手段と、
この制御命令変換手段で変換された制御命令を実行する制御実行手段とからなる請求項1または2記載の情報入力装置。 - 発光手段と、
物体による反射光を受光する受光手段と、
前記発光手段が発光しているときの前記受光手段の出力と前記発光手段が発光していないときの前記受光手段の出力とから距離画像を計測する計測手段と、
この計測手段が計測した距離画像のうち局所的に距離値が最小となる極小点を求める極小点検出手段と、
この極小点検出手段が求めた複数の極小点の中から所定の規則により一つ又は二つ以上の極小点を操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、
この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段と
を具備することを特徴とする情報入力装置。 - 前記計測手段は、上記発光手段が発光しているときの前記受光手段の出力と前記発光手段が発光していないときの前記受光手段の出力との差分が所定の許容範囲を越えていたときに、これらの出力を用いないようにする手段を含むことを特徴とする請求項5記載の情報入力装置。
- 前記極小点検出手段が求めた複数の極小点の動きを検出する極小点動き検出手段及び前記極小点検出手段が求めた複数の極小点を作成する物体の形状または向きを検出する極小点周辺状況解析手段の少なくとも一方と、
前記極小点動き検出手段及び極小点周辺状況解析手段の少なくとも一方の手段の結果から一つ又は二つ以上の極小点を選ぶ手段と
を具備することを特徴とする請求項5記載の情報入力装置。 - 前記指示点決定手段が決定した指示点の座標値及び距離値の少なくとも一方を前記指示点決定手段がその直前に決定した時間的に連続する複数の指示点の座標値又は距離値を用いて平準化するフィルタリング手段を具備することを特徴とする請求項5記載の情報入力装置。
- 前記指示点決定手段が決定した指示点の動きが所定の範囲内にある時間を検出する指示点静止時間検出手段と、
前記指示点の位置とディスプレイ上に表示された複数のメニューの中のいずれか一つを対応づける指示点メニュー対応検出手段と、
前記指示点静止時間検出手段の出力が所定の条件を満たしたときに、前記指示点メニュー対応検出手段によって検出されたメニューを実行するコマンド実行手段と
を具備することを特徴とする請求項5記載の情報入力装置。 - 前記極小点検出手段が求めた複数の極小点の中からその動きによって指先に対応する極小点を検出する第1の極小点動作検出手段と、
この第1の極小点動作検出手段にて検出された指先がメニューを選択するための動きをしたことを検出する第2の極小点動作検出手段と
を具備することを特徴とする請求項5記載の情報入力装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08346095A JP3544739B2 (ja) | 1994-04-13 | 1995-03-16 | 情報入力装置 |
US08/614,502 US5900863A (en) | 1995-03-16 | 1996-03-13 | Method and apparatus for controlling computer without touching input device |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6-74694 | 1994-04-13 | ||
JP7469494 | 1994-04-13 | ||
JP08346095A JP3544739B2 (ja) | 1994-04-13 | 1995-03-16 | 情報入力装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07334299A JPH07334299A (ja) | 1995-12-22 |
JP3544739B2 true JP3544739B2 (ja) | 2004-07-21 |
Family
ID=26415877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08346095A Expired - Fee Related JP3544739B2 (ja) | 1994-04-13 | 1995-03-16 | 情報入力装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3544739B2 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3819096B2 (ja) * | 1997-01-22 | 2006-09-06 | 株式会社東芝 | ユーザインタフェース装置及び操作範囲呈示方法 |
JP3688879B2 (ja) * | 1998-01-30 | 2005-08-31 | 株式会社東芝 | 画像認識装置、画像認識方法及びその記録媒体 |
JP2000003445A (ja) | 1998-06-15 | 2000-01-07 | Toshiba Corp | 情報抽出方法および情報抽出装置および記録媒体 |
JP2000181601A (ja) * | 1998-12-18 | 2000-06-30 | Fujitsu General Ltd | 情報表示システム |
JP2003173435A (ja) * | 2001-12-06 | 2003-06-20 | Tietech Co Ltd | 移動体検出方法及び移動体検出装置 |
JP4566596B2 (ja) | 2004-03-29 | 2010-10-20 | アルパイン株式会社 | 操作指示装置 |
JP4575829B2 (ja) * | 2005-03-30 | 2010-11-04 | 財団法人エヌエイチケイエンジニアリングサービス | 表示画面上位置解析装置及び表示画面上位置解析プログラム |
JP2008204047A (ja) * | 2007-02-19 | 2008-09-04 | Sony Corp | 表示検出装置および光検出装置 |
JP4513830B2 (ja) * | 2007-06-25 | 2010-07-28 | ソニー株式会社 | 描画装置、及び描画方法 |
WO2010038822A1 (ja) * | 2008-10-01 | 2010-04-08 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、情報処理方法、情報記憶媒体及びプログラム |
KR101091515B1 (ko) * | 2009-09-14 | 2011-12-08 | 대성전기공업 주식회사 | 차량의 원격 터치 패드 장치 및 그 제어 방법 |
EP2395413B1 (en) * | 2010-06-09 | 2018-10-03 | The Boeing Company | Gesture-based human machine interface |
TWI431512B (zh) | 2010-06-23 | 2014-03-21 | Ind Tech Res Inst | 三維控制端點之辨識方法及應用其之電腦可讀取媒體 |
TW201324259A (zh) * | 2011-09-07 | 2013-06-16 | Nitto Denko Corp | 使用者介面顯示裝置 |
JP2013242850A (ja) * | 2012-04-27 | 2013-12-05 | Nitto Denko Corp | 表示入力装置 |
WO2014016994A1 (ja) * | 2012-07-26 | 2014-01-30 | 日本電気株式会社 | インターフェース装置、プログラム、及び制御方法 |
JP6127564B2 (ja) * | 2013-02-15 | 2017-05-17 | コニカミノルタ株式会社 | タッチ判定装置、タッチ判定方法、およびタッチ判定プログラム |
WO2015030264A1 (ja) * | 2013-08-30 | 2015-03-05 | 国立大学法人山梨大学 | クリック動作検出装置,方法およびプログラム |
JP6210055B2 (ja) * | 2014-12-03 | 2017-10-11 | トヨタ自動車株式会社 | 情報処理システム、情報処理装置、情報処理方法 |
JP6488153B2 (ja) * | 2015-02-27 | 2019-03-20 | 株式会社吉田製作所 | カーソル制御方法、カーソル制御プログラム、スクロール制御方法、スクロール制御プログラム、カーソル表示システム、及び医療機器 |
JP6464224B2 (ja) | 2017-05-18 | 2019-02-06 | ファナック株式会社 | モータ駆動装置 |
-
1995
- 1995-03-16 JP JP08346095A patent/JP3544739B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07334299A (ja) | 1995-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3544739B2 (ja) | 情報入力装置 | |
US7956842B2 (en) | Pointing input system and method using one or more array sensors | |
US8854433B1 (en) | Method and system enabling natural user interface gestures with an electronic system | |
KR100886056B1 (ko) | 빛입력디바이스의 방법 및 장치 | |
EP2480955B1 (en) | Remote control of computer devices | |
JP5740822B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP4575829B2 (ja) | 表示画面上位置解析装置及び表示画面上位置解析プログラム | |
EP1037163A2 (en) | Coordinate input apparatus and method | |
CN105593786B (zh) | 对象位置确定 | |
JP3529510B2 (ja) | 情報入力装置および情報入力装置の制御方法 | |
US8867791B2 (en) | Gesture recognition method and interactive system using the same | |
JP3492180B2 (ja) | 座標入力装置 | |
US9632592B1 (en) | Gesture recognition from depth and distortion analysis | |
JP2001084107A (ja) | 座標入力装置および座標入力装置の記録媒体 | |
JPS63223819A (ja) | グラフィック物体を操作する方法及び装置 | |
TW201101140A (en) | Active display feedback in interactive input systems | |
KR20110097504A (ko) | 사용자 모션 인식 방법 및 장치 | |
KR20120072502A (ko) | 적외선 방식 터치스크린 표시장치 및 이의 터치지점 판단방법 | |
JP2000056916A (ja) | ハンドポインティング装置 | |
EP2889748A1 (en) | Touch-sensitive display device with palm input rejection | |
TW201317858A (zh) | 光學觸控系統、光學感測模組及其運作方法 | |
JP4687820B2 (ja) | 情報入力装置及び情報入力方法 | |
JP2003076488A (ja) | 指示位置判断装置及び方法 | |
JP2000284908A (ja) | 入出力一体型装置 | |
WO2001046941A1 (en) | Method and apparatus for vision-based coupling between pointer actions and projected images |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040330 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040406 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080416 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |