(57)【特許請求の範囲】
【請求項１】
測定物までの距離を示す距離情報を２次元配列させた距離画像を入力するための距離画像入力手段と、
この距離画像入力手段から入力された距離画像の中で局所的に距離値が最小となる極小点を求める極小点検出手段と、
前記距離画像入力手段から入力された距離画像の時間に対応した距離値の変化量である時間差分を検出する時間差分検出手段と、
前記極小点検出手段が検出した極小点のうち、前記時間差分検出手段が検出した時間差分に変化の生じた極小点を、操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、
この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段と
を具備することを特徴とする情報入力装置。
【請求項２】
測定物までの距離を示す距離情報を２次元配列させた距離画像を入力するための距離画像入力手段と、
この距離画像入力手段から入力された距離画像の中で局所的に距離値が最小となる極小点を求める極小点検出手段と、
前記距離画像入力手段から入力された距離画像の時間に対応した距離値の変化量である時間差分を検出する時間差分検出手段と、
前記極小点検出手段が検出した極小点の中で、距離の時間差分がある範囲の値を持ち、かつ距離値が最も小さい値を持つ極小点を、操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、
この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段と
を具備することを特徴とする情報入力装置。
【請求項３】
アレイ構造に並べた発光素子からなる発光手段と、
この発光手段の発光素子を一つづつ順番に発光させる発光制御手段と、
この発光手段によって発光された光の、物体による反射光の入射位置を検出する光検出手段と、
この光検出手段が検出した光の入射位置とこの光を発光させた発光素子の位置とから距離情報を演算する演算手段と、
この計測手段が計測した距離画像のうち局所的に距離値が最小となる極小点を求める極小点検出手段と
からなる距離画像入力手段を持つことを特徴とする請求項１または２記載の情報入力装置。
【請求項４】
前記システム制御手段は、指示点決定手段で決定された指示点に対応するディスプレイ上の位置をカーソルで表示し制御するカーソル制御手段と、
このカーソル表示手段によって表示されたディスプレイ上のカーソルの軌跡をシステムを制御する命令に変換する制御命令変換手段と、
この制御命令変換手段で変換された制御命令を実行する制御実行手段とからなる請求項１または２記載の情報入力装置。
【請求項５】
発光手段と、
物体による反射光を受光する受光手段と、
前記発光手段が発光しているときの前記受光手段の出力と前記発光手段が発光していないときの前記受光手段の出力とから距離画像を計測する計測手段と、
この計測手段が計測した距離画像のうち局所的に距離値が最小となる極小点を求める極小点検出手段と、
この極小点検出手段が求めた複数の極小点の中から所定の規則により一つ又は二つ以上の極小点を操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、
この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段と
を具備することを特徴とする情報入力装置。
【請求項６】
前記計測手段は、上記発光手段が発光しているときの前記受光手段の出力と前記発光手段が発光していないときの前記受光手段の出力との差分が所定の許容範囲を越えていたときに、これらの出力を用いないようにする手段を含むことを特徴とする請求項５記載の情報入力装置。
【請求項７】
前記極小点検出手段が求めた複数の極小点の動きを検出する極小点動き検出手段及び前記極小点検出手段が求めた複数の極小点を作成する物体の形状または向きを検出する極小点周辺状況解析手段の少なくとも一方と、
前記極小点動き検出手段及び極小点周辺状況解析手段の少なくとも一方の手段の結果から一つ又は二つ以上の極小点を選ぶ手段と
を具備することを特徴とする請求項５記載の情報入力装置。
【請求項８】
前記指示点決定手段が決定した指示点の座標値及び距離値の少なくとも一方を前記指示点決定手段がその直前に決定した時間的に連続する複数の指示点の座標値又は距離値を用いて平準化するフィルタリング手段を具備することを特徴とする請求項５記載の情報入力装置。
【請求項９】
前記指示点決定手段が決定した指示点の動きが所定の範囲内にある時間を検出する指示点静止時間検出手段と、
前記指示点の位置とディスプレイ上に表示された複数のメニューの中のいずれか一つを対応づける指示点メニュー対応検出手段と、
前記指示点静止時間検出手段の出力が所定の条件を満たしたときに、前記指示点メニュー対応検出手段によって検出されたメニューを実行するコマンド実行手段と
を具備することを特徴とする請求項５記載の情報入力装置。
【請求項１０】
前記極小点検出手段が求めた複数の極小点の中からその動きによって指先に対応する極小点を検出する第１の極小点動作検出手段と、
この第１の極小点動作検出手段にて検出された指先がメニューを選択するための動きをしたことを検出する第２の極小点動作検出手段と
を具備することを特徴とする請求項５記載の情報入力装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、例えば電子機器を操作又は遠隔操作するための情報入力装置に関する。
【０００２】
【従来の技術】
従来、実現されていた操作のための情報入力装置（以下、操作装置と呼ぶ）は、操作者が手に何らかの装置を持って行うものが多い。家庭用で最も普及している操作装置はリモコンであり、これは手にリモコン装置を持ち、機械に向けてリモコンのボタンを押すことにより、リモコンから機械に赤外線を投射し、指示を出している。
【０００３】
また、手に何も持たない操作装置としては、タッチパネルなどもある。これは透明あるいは不透明のパネルを指などで押さえることで、押したという情報やその位置を入力できるものである。透明パネルを表示装置の上に重ねて配置すれば、表示装置にボタンなどの選択肢を絵として表示させ、そのうちのひとつを「押す」ことによる選択入力が可能である。
【０００４】
また研究分野においては、画像認識技術による手振り認識、身ぶり認識などが研究されている。しかし画像処理によりこれらを認識するためには背景を単調にしなければならないとか、画面の中央にどのくらいの大きさで手が写っていなくてはならないとか、制約条件が厳しく、実用化には至っていない。
【０００５】
三角測量の原理を用いたステレオ法によって物体の３次元的な形状を把握し、画像認識に役立てようとする研究がある。しかし、遠隔操作装置へと応用した例は少ない。
【０００６】
【発明が解決しようとする課題】
リモコン装置による操作は、手に装置を持たなくてはならず、リモコン装置が手元にない場合は操作することができない。また汚れた手で操作するのは好ましくなかった。
【０００７】
タッチパネルは手に何も持たずに操作することができるが、表示装置の上にある透明パネルを触るため、パネルが汚れて表示が見えにくくなるなどの問題がある。また、パネルの汚れのために、不特定多数の人が操作する装置を「触りたくない」という要望が強い。
【０００８】
画像処理による手振り認識などの技術においても、認識技術の未熟さから、ノイズの影響を受け、きちんと手を認識することが難しい。
【０００９】
特に家庭内において、リモコン装置などのいかなるデバイスも手に持ったり装着したりすることなく、素手のみで遠隔操作できる環境を提供することは、非常に望ましいにも関わらず実現されていない。
【００１０】
本発明は上記実情に鑑みなされたものであり、リモコン装置などの一切のデバイスを手に持つことなく離れたところから電子機器等のシステムを操作可能とする情報入力装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、測定物までの距離を示す距離情報を２次元配列させた距離画像を入力するための距離画像入力手段と、この距離画像入力手段から入力された距離画像の中で局所的に距離値が最小となる極小点を求める極小点検出手段と、前記距離画像入力手段から入力された距離画像の時間に対応した距離値の変化量である時間差分を検出する時間差分検出手段と、前記極小点検出手段が検出した極小点のうち、前記時間差分検出手段が検出した時間差分に変化の生じた極小点を、操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段とを具備することを特徴とする。
【００１３】
また、本発明は、測定物までの距離を示す距離情報を２次元配列させた距離画像を入力するための距離画像入力手段と、この距離画像入力手段から入力された距離画像の中で局所的に距離値が最小となる極小点を求める極小点検出手段と、前記距離画像入力手段から入力された距離画像の時間に対応した距離値の変化量である時間差分を検出する時間差分検出手段と、前記極小点検出手段が検出した極小点の中で、距離の時間差分がある範囲の値を持ち、かつ距離値が最も小さい値を持つ極小点を、操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段とを具備することを特徴とする。
【００１４】
また、本発明は、アレイ構造に並べた発光素子からなる発光手段と、この発光手段の発光素子を一つづつ順番に発光させる発光制御手段と、この発光手段によって発光された光の、物体による反射光の入射位置を検出する光検出手段と、この光検出手段が検出した光の入射位置とこの光を発光させた発光素子の位置とから距離情報を演算する演算手段と、この計測手段が計測した距離画像のうち局所的に距離値が最小となる極小点を求める極小点検出手段と、からなる距離画像入力手段を持つことを特徴とする。
【００１５】
また、本発明は、前記システム制御手段が、指示点決定手段で決定された指示点に対応するディスプレイ上の位置をカーソルで表示し制御するカーソル制御手段と、このカーソル表示手段によって表示されたディスプレイ上のカーソルの軌跡をシステムを制御する命令に変換する制御命令変換手段と、この制御命令変換手段で変換された制御命令を実行する制御実行手段とからなることを特徴とする。
【００１６】
また、本発明は、発光手段と、物体による反射光を受光する受光手段と、前記発光手段が発光しているときの前記受光手段の出力と前記発光手段が発光していないときの前記受光手段の出力とから距離画像を計測する計測手段と、この計測手段が計測した距離画像のうち局所的に距離値が最小となる極小点を求める極小点検出手段と、この極小点検出手段が求めた複数の極小点の中から所定の規則により一つ又は二つ以上の極小点を操作すべきシステムに指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記操作すべきシステムの動作を制御するシステム制御手段とを具備することを特徴とする。
【００１７】
また、本発明は、前記計測手段が、上記発光手段が発光しているときの前記受光手段の出力と前記発光手段が発光していないときの前記受光手段の出力との差分が所定の許容範囲を越えていたときに、これらの出力を用いないようにする手段を含むことを特徴とする。
【００１８】
また、本発明は、前記極小点検出手段が求めた複数の極小点の動きを検出する極小点動き検出手段及び前記極小点検出手段が求めた複数の極小点を作成する物体の形状または向きを検出する極小点周辺状況解析手段の少なくとも一方と、前記極小点動き検出手段及び極小点周辺状況解析手段の少なくとも一方の手段の結果から一つ又は二つ以上の極小点を選ぶ手段とを具備することを特徴とする。
【００１９】
また、本発明は、前記指示点決定手段が決定した指示点の座標値及び距離値の少なくとも一方を前記指示点決定手段がその直前に決定した時間的に連続する複数の指示点の座標値又は距離値を用いて平準化するフィルタリング手段を具備することを特徴とする。
【００２０】
また、本発明は、前記指示点決定手段が決定した指示点の動きが所定の範囲内にある時間を検出する指示点静止時間検出手段と、前記指示点の位置とディスプレイ上に表示された複数のメニューの中のいずれか一つを対応づける指示点メニュー対応検出手段と、前記指示点静止時間検出手段の出力が所定の条件を満たしたときに、前記指示点メニュー対応検出手段によって検出されたメニューを実行するコマンド実行手段とを具備することを特徴とする。
【００２１】
また、本発明は、前記極小点検出手段が求めた複数の極小点の中からその動きによって指先に対応する極小点を検出する第１の極小点動作検出手段と、この第１の極小点動作検出手段にて検出された指先がメニューを選択するための動きをしたことを検出する第２の極小点動作検出手段とを具備することを特徴とする。
【００２２】
即ち、本発明は、上述のような課題を解決するため、物体との距離値の分布である距離画像を入力するための距離画像入力手段と、この距離画像入力手段から入力された距離画像のうち距離値が最小となる点を操作を行う者が指示を行うための指示点として決定する指示点決定手段と、この指示点決定手段が決定した指示点の動きをもとに前記システムを制御するシステム制御手段を具備することを特徴とする。
【００２３】
【作用】
上述のような構成を持つことにより、そこにあるものが手の形をしていることを認識するのではなく、距離画像の極小点に関する情報から、手であることを推測する。具体的には例えば、操作者が手を前方に（これから操作を行うという意志と共に）伸ばしたとき、距離画像の極小点が生成することを利用して手が伸ばされたことを検出する。その際に距離画像の時間差分データを利用して手の動きと関係のない極小点を取り除き、指示点を検出する。そのあとはその部分を追跡することにより、手の動きが入力できるので、画面上のポインティングデバイスとして用いることができる。
【００２４】
本発明によって、リモコン装置などの一切のデバイスを手に持つことなく、また装着することなく、素手のみでシステムを操作する環境が実現できる。
【００２５】
また、ユーザがポインティングしようとして、前方に差し出した手指は、距離画像の中の極小点、すなわち局所的に距離値が最小になる点として現れる。従って、本発明では、距離画像の極小点を中心とした解析を行うことによりユーザの指先の位置を求める。この手法を用いると、画像処理で行うと誤認識の原因になってしまうような複雑な背景条件のもとでも安定して指先の位置を求めることができる。また、距離画像の解析は極小点解析を中心とした比較的簡単な処理で済むので、大規模なハードウエアが必要ない。
【００２６】
【実施例】
以下に図面を参照しながら本発明の実施例について詳細に説明する。
【００２７】
まず初めに、図１で表される本発明の第１実施例について述べる。その手法の概要は、操作者の手などの距離画像を解析し、その極小点を主とする情報を抽出し、それを利用して機器の遠隔操作を行うものである。まず距離画像入力部１より距離画像が得られ、それが極小点検出部２および時間差分検出部３によって処理される。極小点検出部２は距離画像の中で局所的に距離値が最小になる極小点を検出する。時間差分検出部３は距離画像中の各々の座標についての時間差分を検出する。距離画像入力部１、極小点検出部２、時間差分検出部３から得られる情報を用いて、ユーザの指示する点である指示点を指示点決定部４で決定し、システム制御部５がシステムの制御を行う。第１実施例に示した構成により、使用者や使用者の手の動きが距離画像として取り込まれ処理されるので、手にリモコン装置などの機器を持つことなく、手の動きだけで機器を操作できる遠隔操作環境を実現することができる。
【００２８】
本発明の詳細については、主に後述する第２および第３実施例を用いて説明を行うが、ここでは距離画像の入力の原理について述べる。まず従来技術である距離情報を遠隔測定する原理について述べる。図２は、カメラのＡＦ機構などに用いられる距離計測手法である。ＬＥＤ１０と投光レンズ１１を用いて赤外線などをビーム状に投光し、測定物１２からの反射光を、発光手段から離れた位置にある位置検出素子（ＰＳＤ）１３によって受光する。位置検出素子１３はスポット光があたった位置に応じて２つの電極より電流を発生する。今、２つのレンズ１１、１４は同一平面上にあるとし、ＬＥＤ１０の光軸と投光用レンズ１１の中心軸は一致し、ＰＳＤ１３は、その検出変位方向は２つのレンズの中心を結ぶ直線と平行になるようにし、その一方の端点が受光用レンズ１４の中心軸上にくるように配置する。ＬＥＤ１０とレンズ１１の距離、ＰＳＤ１３とレンズ１４の距離は共に等しくｆとし、レンズの中心間をＬ、投光用レンズ１１から測定物１２までの距離をＤとし、ＰＳＤ上での光の入射位置が（受光用レンズの中心軸上にある）端点からＸだけ離れていたとすると、Ｄ：Ｌ−ｆ：Ｘが成り立ち、Ｄ＝Ｌｆ／ｘによって、Ｄが求められる。またＰＳＤ１３の２つの電極から発生する電流をｉ１、ｉ２、抵抗層の長さをＣとすると、ｉ１：ｉ２＝（Ｃ−Ｘ）：Ｘが成り立ち、Ｘ＝Ｃ×ｉ２／（ｉ１＋ｉ２）によってＸが求められる。これらより、Ｄ＝（ｉ１＋ｉ２）／ｉ２×（ｆＬ／Ｃ）が成り立つので、ＰＳＤ１３の２つの電極に発生する電流の比が分かれば、測定物１２までの距離が求められる。
【００２９】
本発明においては、上述の距離計測手段を２次元化することによって２次元的な距離情報、つまり距離画像を得る。図３のように、ＬＥＤを２次元アレイに並べて（２０）発光し、レンズ２１で投光すると、レンズ２１からある距離だけ離れたところに像を結ぶ。今、アレイの中のひとつのＬＥＤ２２に着目してみると、このＬＥＤ２２の発する光は像の中の１点に向かって進む。この光の軸上に物体２３があれば、その反射光をＰＳＤで捕らえることで、その物体２３までの距離を測定できる。つまり、アレイとなったＬＥＤをひとつづつ順次発光させ、その反射光をＰＳＤで受光することにより、２次元的な距離情報を得ることができる。この場合、測定物に当たる光スポットが焦点ボケによって（測定誤差が許容範囲を越えるほど）大きくならない範囲において、距離計測を行うことができる。レンズ２１の径が小さく、像を結ぶ位置がレンズ２１から遠いほど、計測範囲を広くとることができる。このとき投光レンズの中心軸からずれた位置にあるＬＥＤを用いて距離を測定する方法を図４を用いて説明する。すなわち、ＬＥＤアレイ３０の中心から（ＰＳＤとＬＥＤアレイを結ぶ方向に）ｄだけ離れたＬＥＤ３１の光の、物体Ａによる反射光がＰＳＤ３２に入射する位置は、アレイの中心にあるＬＥＤ３３によって発光された光の物体Ａと等距離にある物体Ｂ（この場合、距離とは投受光用の２レンズの中心を結ぶ直線からの距離とする）による反射光がＰＳＤ３２に入射する位置とｄだけ離れている。つまり、ｘＯ−ｘ＝ｄ（ただし、ｄはアレイの中心から左方向に正）が成り立つ。今は、ＬＥＤの位置が、ＰＳＤとＬＥＤアレイを結ぶ方向にずれた場合について述べたが、それと直交する方向にずれた場合はＰＳＤ上の光入射位置がやはり同じ方向にずれるだけであり、ＰＳＤとＬＥＤアレイを結ぶ方向には変化しない。したがって、ある程度の幅を持った１次元ＰＳＤを用いれば同じ出力電流比が得られる。以上述べた原理に基づいて、ある広がりを持った操作空間における距離画像を得る。
【００３０】
次に第２実施例について述べる。第２実施例の構成は図５に示される。これは前述の第１実施例を更に具体化したものと言える。図１における距離入力部１はＬＥＤアレイ４０とその駆動回路であるＬＥＤアレイ制御部４１、及び位置検出素子（ＰＳＤ）４２とＰＳＤからの出力より距離を計算する距離演算部４３から成る。ＬＥＤアレイ制御部４１はアレイになったＬＥＤを順次パルス発光させ、ＰＳＤ４２には各ＬＥＤに対応する反射光が順次入射される。距離演算部４３から順次出力される各座標の距離値は極小点検出部４４と時間差分検出部４５に送られる。極小点検出部４４は随時送られて来るデータから、１点１点についてそれが極小点であるか否かの判定を行う。時間差分検出部４５は各点について数フレーム前との時間差分を演算する。これらの結果と距離値、座標値のデータは、指示点決定部４６に送られる。指示点決定部４６は、時間差分がある一定値以上あり、かつ距離値が最も小さい極小点の座標、距離値を格納する。このデータは全ての座標のデータが得られるまで随時更新され、ＬＥＤの発光が一巡したところで確定する。図には表していないが、確定後、この座標（指示点）は、表示部に送られカーソル表示に用いられたり、様々な位置指示部に利用される。タイミング制御部４７は上記の各部の同期を取るためにタイミング信号を発生させる。ここで、最も小さい距離値を持つ極小点を指示点として利用する理由について述べる。使用者が遠隔操作をしようとするとき指示したい装置に向かって手または指を伸ばせば、それは距離画像の極小点として認識される。距離画像中には幾つもの極小点が存在すると考えられるが、伸ばした手指を認識することを考えれば、その中で最も装置に近い（距離値が小さい）極小点を手指であると判断するのが最も適当である。しかし使用者より装置に近い側に他の物体があり、手指よりも装置に近い極小点を作ってしまう可能性もある。そこで時間差分がある値以上あるという条件をつけ加える。これにより、手指よりも装置側に物体があって極小値を作っていてもそれが静止状態にある場合は排除できる。
【００３１】
図６は図５におけるＬＥＤアレイ４０およびＬＥＤアレイ制御部４１のさらに具体的な構成である。ここでは各ＬＥＤ毎に発光回路５０を設け、パルス信号を入力しパルス発光させる。このパルス信号はタイミング制御部４７から取り出す。この図の下部が、タイミング制御部４７であるが、ここでのクロック発生器５１からの基本クロックを分周器５２で分周して得られた信号から、単パルス抜き取り部５３で単パルスを抜き出す。これをシフトレジスタ５４でずらしながら各ＬＥＤ発光部５０に入力することで、各ＬＥＤを時間的に重複の無いよう、順番に発光させる。
【００３２】
図７は図５における距離演算部４３のより具体的な構成である。まずＰＳＤ６０からの出力電流をアンプ６１で電流電圧変換し、増幅した後、Ａ／Ｄ変換する。ＬＥＤが発光していないときも背景光の影響でＰＳＤには電流が流れているため、この背景光電流に対応する出力値（以後、背景値と呼ぶ）をラッチ回路６３にラッチする。ＬＥＤが発光したときの出力値からこの背景値を差し引いた値を用いて計算すれば背景光の影響を排除することができる。ここでの背景値のラッチを行う頻度は後述するよう背景光の種類によって決められる。背景光の影響を除去された出力値は一方で足し合わされ逆数変換される。逆数変換回路６４はＲＯＭを用いて、入力値をアドレスとし逆数を出力する。この結果とｉ２側の出力をかけ算器６５でかけ合わせ、定数倍回路で抵抗層長をかける。この出力が、Ｃ×ｉ２／（ｉ１＋ｉ２）に相当し、ＰＳＤ上での光入射位置が計算されたことになる。
【００３３】
この後、Ｘから被測定物体までの距離Ｄを演算するわけであるが、このＸにはＰＳＤの持つ位置検出誤差があり、距離Ｄには、ＬＥＤアレイの位置誤差、レンズなども含めた全体の系の位置や向きの誤差などが存在する。ＸからＤを求める式は、Ｄ＝ｋ／（ｋ＋ａ）であるが、誤差要因によりパラメータｋ、ａはＬＥＤ毎に異なる。そこで各ＬＥＤ毎にキャリブレーションを行い、近似的にパラメータを決定する。これをＲＯＭ６６、６７に記憶させておき、対応するＬＥＤの座標値をアドレスにして、ＲＯＭよりパラメータを読み出し、演算する。この出力は誤差の補正された測定距離値である。
【００３４】
図８はＰＳＤからの出力７０、Ａ／Ｄ変換器の入力トリガ７１、ラッチ回路の入力トリガ７３、およびＡ／Ｄ出力７２、ラッチ出力７４、背景値除去後の出力７５のタイミングチャートを示したものである。この図では、各ＬＥＤを発光する直前に背景値をラッチし、ＰＳＤ出力から差し引いている。ＰＳＤからの出力７０はＬＥＤが発光していない時の出力とＬＥＤ発光時の出力が交点に現れ、ＬＥＤ発光時の出力に対応する光源のＬＥＤは順次変わっていく。したがってＡ／Ｄ出力７２もＬＥＤ発光時とＬＥＤ非発光時の出力が交互に現れる。ＬＥＤ非発光時の出力が現れている時にこの値をラッチし、次のＬＥＤ非発光出力をラッチするまで保存しておけば、そのあいだのＬＥＤ発光時出力に対し背景光除去の処理を行うことができる。図９は複数のＬＥＤ発光時出力に対し、ひとつのＬＥＤ非発光時出力を用いて背景光除去を行う場合のタイムチャートである。ここではあるＬＥＤ非発光時出力を次のＬＥＤ非発光時出力があるまでラッチし（８３、８４）、その間に現れるＬＥＤ発光時出力に対する背景光は一定であると見なして補正を行う。この図では４つのＬＥＤに対してひとつのＬＥＤ非発光時出力を用いているが、この数はいくつにすることもできる。ただ螢光灯下のようにある時間周期をもって明るさが変化するような環境で行う場合は、余り数を多くし過ぎると正しく補正できなくなる。この手法の利点は図８の場合に比べて高速化が図れるという点である。
【００３５】
図１０は得られた距離情報を用いて、ある座標点が極小点であるかどうか、時間差分が条件を満たしているかを判断する部分の構成である。基本的にはシフトレジスタを用いて距離値を遅延させ、比較するあるいは差をとることによって、判断する。ＬＥＤアレイのサイズが１０×１０で、（０，０）（０，１）（０，２）…（０，９）（１，０）（１，１）…（９，９）という順番で距離値が得られるとすると、ある座標点が極小点であるかどうかを判断するためにはその１１個先の距離値が得られなければならない。そこである座標の距離が得られたときにその１１個手前の座標について判断し、結果を出力することにする。図のような種々の遅延長を持ったシフトレジスタを並列に並べ、遅延長１１のシフトレジスタの出力（最新の距離値の１１個前）を中心にして演算を行う。まず、距離値の入力を１、２、１０、１１、１２、２０、２１、２２、の遅延長を持つシフトレジスタ（９０〜９７）に入力し、その出力（Ｄ２〜Ｄ８）およびシフトレジスタを通さない距離値Ｄ３を用いて極小点のチェックを行う。上記９個の出力の座標は、操作空間上で３×３の領域となり、その中心座標の出力は遅延長１１のシフトレジスタからの出力Ｄ１である。これ以外の８個のデータ全てについて、各々中心座標の距離値Ｄ１と比較をコンパレータ９８で行う。これらのコンパレータは中心座標の距離がそれと比較される座標の距離より小さいときに１を出力し、８つのコンパレータ出力のＡＮＤをとった結果が１であれば、中心座標が極小点である。
【００３６】
また、このときの中心座標の時間差分をとるために１１１、２１１、３１１、４１１、の遅延長を持つシフトレジスタ（９９〜１０２）に通し、その出力をセレクタ１０３で選択し中心座標距離との差分を取る。シフトレジスタ９９、１００、１０１、１０２はそれぞれ１、２、３、４フレーム前の中心座標の距離値を出力する。この時間差分ΔＤがＴＨ１０Ｗ  より大きければ１を出力する。ここでは１〜４フレーム前の距離との時間差分を取ることができるようになっているが、シフトレジスタ（９９〜１０２）の長さをもっと長くすれば、さらに以前の距離と比較することもできる。
【００３７】
また、中心座標が端の行または列に存在しているとき上記極小点のチェックは意味を成さないので、中心座標が端の行または列に存在していないときのみ極小点として記憶可能にする。最新の距離値を持つ点のｘ、ｙ座標が共に２以上であれば中心座標（遅延長１１のシフトレジスタからの出力）は端の行または列に無い。したがって、４ｂｉｔで構成される最新の点の各座標が００００か０００１でない場合、すなわち上位３ｂｉｔに１つ以上１がある場合に、１を出力し極小点として記憶可能とする。
【００３８】
上述した３つの出力のＡＮＤをとった結果が１であった場合、すなわち、中心座標が極小点であり、距離の時間差分がある値の範囲内にあり、端の行または列に存在していない場合、その中心座標のデータを指示点候補とする。
【００３９】
図１０のうち、時間差分の条件適合性を判断する部分は、図１１のように構成することがきる。ここでは４フレーム前と３フレーム前の距離の時間差分、３フレーム前と２フレーム前の距離の時間差分、２フレーム前と１フレーム前の距離の時間差分、１フレーム前と現フレームの距離の時間差分の４つの時間差分すべてがある値以上かどうかをチェックしている。これはある時間範囲において常に手前方向に物体が動き続けていることを検出することに等しい。もちろん、例えば、２、４、６、８フレーム前、あるいは４、８、１２、１６、２０フレーム前というように差分をとる時間間隔や数を変えることは容易である。
【００４０】
図１２は時間差分がある値以上の極小点（以後、指示点候補と呼ぶ）のうち、もっとも距離の近い点の座標を求める部分の構成である。フリップフロップ１１０には現時点までの最も近い指示点候補の距離値が保持されており、さらに近い指示点候補が入力されたときには更新される。コンパレータ１１１は新たに入力された距離値と保持されている距離値と比較し、新たに入力された距離値の方が小いとき１を出力する。この出力と図１０に示した、指示点候補であるかどうかの判断部からの出力（図１２では記憶指示フラグと表示）とＡＮＤをとった結果が１であればデータを更新し、０であれば更新しない。このとき記憶指示フラグは、図１０における遅延長１１ｂｉｔのシフトレジスタの出力に対応する座標が指示点候補であるかどうかを示すので、図１２の入力距離値は図１０における遅延長１１ｂｉｔのシフトレジスタの出力である。また距離値と同時にその座標値も別のフリップフロップ１１２に保持しておき、ここのデータ更新は上述のフリップフロップ１１３と同期して行う。ここでの座標データも、遅延長１０ｂｉｔのシフトレジスタ出力に対応するよう変換されてある。全てのＬＥＤが発光し終わった段階で、そのフレームにおける最も近い指示点候補が決定している。ただし、あるフレームでの指示点が決定するのは、その次フレームの第１１番目のＬＥＤが発光し終わったときである。全てのＬＥＤが発光した後、フリップフロップ１１３に決定された極小点を保持し、指示点として利用する。
【００４１】
以上で第２実施例についての説明を終える。次に第３の実施例について述べる。
【００４２】
図１３は第３実施例の構成である。第２実施例と異なるところは指示点決定部１２１の前に、指示点候補記憶部１２０が入っているところである。指示点候補記憶部１２０は、ある値以上の距離の時間差分を持ち、最も距離値が小さいｎ個の極小点を記憶する。指示点決定部１２１はこれら複数の指示点候補から指示点候補を決定する。
【００４３】
第３実施例の詳細について説明する。図１４は図１３における指示点候補記憶部１２０を具体的に示したもので、最も近い３つの指示点候補の距離値と座標値を保持するようにしたものであり、フリップフロップ回路とスイッチ、ＳＷ制御回路からなるデータ記憶部を、３段構成にしている。もちろん３つより多くとも少なくとも同様の構成で実現できる。ここの入力部には距離値と座標値とが順次入力される。フリップフロップ１３０、１３１、１３２にはこの順番で現時点での最も小さいものから３つの指示点候補のデータがＱ１、Ｑ２、Ｑ３として保持されている。ＳＷ制御部１３３、１３４は入力された新しいデータと保存されているデータとの比較を行い、その距離値が小さい方のデータを再び保存し、距離値が大きい方のデータを後段のデータ記憶部に送る。制御部１３５はデータの比較と再保存だけを行う。すなわちＳＷ制御部１３３は入力データＸ１の距離値が保存されているＱ１の距離値より小いときにスイッチ１３６と１３７を１につなぎ、そうでないときに０につなぐ。スイッチ１３７の接続によってＸ１かＱ１のどちらかが後段に送られる。送られたデータをＸ２とすると、ＳＷ制御部１３４はＸ２とＱ２の距離値を比較しＸ２の方が小さければスイッチ１３８、１３９を１につなぎ、逆ならば０につなぐ。ＳＷ制御部１３５は前段より送られてきたデータＸ３とＱ３を比較し小さい方を保存するようにスイッチ１４０を切り替える。あるディレイを経た後、フリップフロップ回路１３０、１３１、１３２の入力が安定したところで、同時にクロックを入力し、一気にデータを更新する。この図には、図１２の記憶指示フラグは示されていないが、入力前段に図１５の回路を入れ、記憶指示フラグの反転信号とＯＲをとることにより、記憶指示フラグが０の時（入力データが指示点候補でない時）、距離値は全てのｂｉｔが１（つまり最大値）になり、記憶部に入力されても記憶されなくなる。ＬＥＤの発光が一巡したところで、フリップフロップ回路１３０、１３１、１３２には、あるフレームにおける、最も距離値の小さい３つの指示点候補データが保存されている。このデータをラッチ回路１４１、１４２、１４３にラッチさせる。この図における、データを記憶する部分のタイミングチャートを図１６、１７に示す。入力Ｘ１があると、３つのフリップフロップ回路の入力はディレイを持ちながら順次変化し、全ての入力が安定したところで、フリップフロップ回路のトリガ（ＣＫ１）を入れ、出力を更新する（図１６）。この場合ＬＥＤは１００個あるので、フリップフロップの入力トリガ１００個にひとつの割合でラッチトリガ（ＣＫ２）を入れる。これでラッチ回路にはＬＥＤ発光が一巡する毎に新しいデータが保存される（図１７）。
【００４４】
指示点決定部は極小点データ格納部内のデータを用いて指示点を決定する。ここでは、その時の状態によって２種類の処理のどちらかが選択されて行われる。何もない状態から手指（追跡すべき極小点）が現れたことを認識する処理と、認識した手指を追跡する処理である。前者を指示点検出処理、後者を指示点追跡処理と呼ぶ。指示点が認識されていない時点では指示点検出処理が行われる。一度指示点が検出されると、その後は指示点追跡処理を行うようになる。指示点の追跡ができなくなると再び指示点検出処理を行うようになる。図１８は図１３における指示点決定部を上述の内容にそってさらに細かく構成したものである、指示点検出部１５０が指示点検出処理を行う。すなわち、距離の差分データがある値以上である極小点が存在した場合、その中で最も最小の距離値を持つ極小点を指示点として決定する。該当する点がない場合は指示点はないものと判断される。指示点追跡部１５１は指示点追跡処理を行う。これは旧指示点から最も近い極小点を、追跡された結果の新たな指示点とする。ここでは座標だけでなく距離情報も用いて、最も近い極小点を見つける。切り替え制御部１５２は、その時の状態によって指示点検出部１５０および指示点追跡部１５１のどちらかの出力を決定された指示点として選択し、出力する。指示点が検出されていない状態では、切り替え制御部１５２は何も出力しないか、あるいは指示点が検出されていないことを示す信号を出力する。このときには切り替え制御部１５２は指示点検出部１５０の出力を監視している。指示点検出部１５０は図１４のラッチ回路１４１に有効なデータが存在した場合にそれを検出された指示点として出力し、また指示点記憶部１５３に記憶する。切り替え制御部１５２は指示点が検出されると、次からの出力を、指示点追跡部１５１からの出力に切り替える。指示点追跡部１５１は指示点記憶部１５３に記憶されている旧指示点と、新たに入力された指示点候補を比較し、旧指示点と最も近い指示点候補を出力する。指示点候補の全てが、旧指示点より、ある値以上離れていたとき、指示点追跡部１５１は、指示点の追跡に失敗したことを知らせる信号を出力する。切り替え制御部１５２がこの信号を受け取ると、次から再び指示点検出部１５０の出力を監視し始める。以上述べたように、指示点検出処理と指示点追跡処理を交互に繰り返す。
【００４５】
図１９は指示点追跡部１５１および指示点記憶部１６３のより詳細な構成図である。ラッチ回路１６０、１６１、１６２は図１４におけるラッチ回路１４１、１４２、１４３に相当する。ラッチ回路１６３は図１９の指示点記憶部１６３に相当し、旧指示点が保持されている。ラッチ回路１６０、１６１、１６２に新しいデータが入ってくると、距離計算回路１６４、１６５、１６６が旧指示点との距離を計算する。ここで得られる３つの距離を比較部１６７で比較し、最も距離が小さい点のデータが指示点更新部１６８によって選択され出力される。この出力は同時にラッチ回路１６３に再び保持され、次の指示点追跡処理に用いられる。
【００４６】
指示点検出処理と指示点追跡処理を交互に繰り返すことにより、一度正しく指示点が検出されると、その後は高い精度で正しく指示点を追跡することができる。また背景ノイズが多く、手指（指示点）の正確な検出が難しいときは、指示点検出処理を複雑にし（例えば、指で円を描かせる等）、指示点検出精度を上げておけば、その後の指示点追跡処理は背景ノイズに強いため、全体のパフォーマンスを上げ易いという利点がある。
【００４７】
第３実施例では手指の動きが止まってしまうと、その位置を見失ってしまい易いが、図２０のように構成すると指示点追跡処理には時間差分が影響しないため、きちんと追跡できる。
【００４８】
以上、３つの実施例について説明したが、実施例は上記述べたものだけにとどまらない。部分的に見てもいくつかの実施例が考えられる。
【００４９】
まず、発光部であるが、上記ではＬＥＤをアレイ状に並べたものを、レンズ系で操作空間に投影した。これ以外にいくつかの例が考えられる。例えばＬＥＤとレンズ系を用いて細いビーム状に発光できる単位発光系を作り、これをアレイ状に並べるという方法もある。これは先の例に比べて操作空間が広くとれるという利点がある。マイクロレンズアレイをモールド成形で作り、ＬＥＤアレイの上にかぶせるという構造でも良い。またそれ自体で非常に狭指向性を持つ発光素子を使うことができる。光源をスポットに通してビームを作り、そのスポットを機械的または電子的に走査することも考えられる。また図２１のようにＬＥＤチップなどの発光部１７０を並べたものの上を、徐々に屈折率の大きくなっていく多層の透過材で平面状にコーティングして発光部を形成することも考えられる。この図で各層の屈折率は、ｎ１＜ｎ２＜ｎ３＜…＜ｎｎで表せる。これだと小さなレンズを数多く作る必要がなく、レンズと違い隣り合うＬＥＤチップでの光の通る領域を共有できるため、小型化する場合には適していると考えられる。
【００５０】
次に指示点決定部について他の実施例を考えてみる。実際にこのような遠隔部を家庭内などで使うことを考えた場合、背景や前景の影響が大きいと考えられる。上記実施例では極小点の距離と距離の時間差分を用いて指示点を検出したが、他にもいくつかの方法が考えられる。単純な例では距離画像の最小点のみを用いるという方法もある。この方法だとノイズの影響は受け易くなるが、回路的にも単純にすることができ低コストになる。また狭い操作空間だけで実現できるアプリケーションでは十分な性能を示すことができる。逆にノイズの影響を更に低減するためにいくつかの方法が考えられる。極小点の距離と距離の差分データ以外に極小点位置にある物体の大きさと動きを推定して利用することができる、ある領域の全ての点について距離値が近ければ、その領域はひとつの物体であると考えることができる。領域の大きさと距離値が分かればその物体の実際の大きさが分かるので、これを利用してノイズを排除することができる。例えば使用者の前を急に人が横切ったり、小さな虫が前を飛んだ場合などのノイズを排除することができる。
【００５１】
上記実施例では指示点を検出・追跡するだけであったが、実際にはその他の使用者の意志を伝えたい場合が多い。例えば、図２２にあるように、画面上に表示されたカーソルを動かしてある領域を指示したい、メニューを選択したい、字や絵を書きたいなど様々な要求がある。これらを実現するために、指示点の軌跡を用いてコマンドを生成する方法が考えられる。例えば指示点を動かしてメニューの上に持ってきた後、一定時間停止した場合、そのメニューを実行コマンド候補とし、例えばメニューの色を変える、点滅させるなどして使用者に知らせる、その後、指示点が決められた動き（前方に少し移動する、上に移動する、丸を描く、など）をした時に、その候補を実行コマンドとして確定し、実行する、というアルゴリズムが考えられる。また、指示点の軌跡を追うのではなく、指示点にある物体（手など）の形を認識しその変化でコマンドを与えることもできる。例えば手を開いてカーソルを動かし、選択するときには握る、あるいは指を一本だけ立てた場合と、２本立てた場合で、カーソルの移動速度を変える、などということは、それほど難しくなく実現できる。
【００５２】
さらにディスプレイ装置を用いない使い方も考えられる。例えば、一見ボタンのように見える（実際にボタンであっても良いが）機能の表示板を本体に備え、操作者が手を伸ばしたときに、指示点をボタンの位置と対応付け、選択できるように構成すると、便利な遠隔操作装置となる。また、機能の表示と共に、色の変わる発光部を各機能ごとに並べて配置し、その色や点滅・点灯で、状態を操作者に知らせるようにすると更に良好な環境になる。例えば、手を伸ばしたときに指している機能の発光部を緑色に発光させ、指を動かすと緑色の点灯が移動し、操作者は現在どこを指しているかが分かる。ある機能の発光部を一定時間以上緑色に点灯させるとやがて赤色に変わり、そのボタンを選択し実行させる。このようにして用いる場合は特にディスプレイなどの高価な表示装置を必要としないので、システムを低コストで構成できる。
【００５３】
また、操作領域が広いことを考えると、使用者からみて、指の位置と画面上のカーソルまたは点灯しているボタンの位置が一致して見えるようにするためには、工夫が必要である。例えば、初めに指示点（手指）を検出したときには常にある位置（中心など）にカーソルを表示する、あるいは特定のボタンを点灯させるようにしておけば、まず使用者はその特定位置に向けて手を伸ばしてから操作を始めることで、指の位置とカーソルあるいは点灯の視差を少なくできる。指先の初期位置とその距離が分かるので指先と目の位置関係を仮定すれば視差を最小にすることかできる。
【００５４】
さらに、使用者へのフィードバックに音を用いても良い。指が一定時間停止すると、音を発し、選択可能であることを示し、更に停止し続けると、実行する、というように効果的に音を使うことができる。
【００５５】
次に、第４実施例について説明する。
【００５６】
図２３に同実施例の構成を示す。
【００５７】
同実施例に係る情報入力装置は、距離画像入力部２０１と距離画像解析部２０２と処理部２０３によって構成される。距離画像入力部２０１によりユーザの距離画像を捕らえ、距離画像解析部２０２によって極小点解析を中心とした解析を行う。その結果を用いて処理部２０３が処理を行う。これは主に、ユーザにメニューを提示したり、ユーザによってどのメニューが選択されたかを判定したり、そのメニューを実行したりという処理を行う。各部のより詳細な説明はそれぞれ後述する。
【００５８】
距離画像入力部２０１としては、発光素子と光位置検出素子（ＰＳＤ）を使った測距手段を走査して距離情報の集合、つまり距離画像を求める方法がある。ＰＳＤという素子は、光スポットの入射位置と入射光量に応じた電流を発生する。２つの電極から発生する電流の合計は、光の入射光量に比例する。各電極の電流比は光の入射位置によって決まる。従って図２４から分かるように、ＰＳＤの出力電流ｉ１、ｉ２からＰＳＤ上の光入射位置Ｘが、光の入射位置Ｘから距離Ｄが下式によって求められる。
【００５９】
ｘ  ＝  ｃ（ｉ２−ｉ１）／（ｉ１＋ｉ２）／２
Ｄ  ＝  Ｌｆ／ｘ
この発光素子を図２５のようにアレイ状に並べ、順番に発光させれば、ある空間での距離情報の集合、つまり距離画像を入力することができる。距離画像入力部２０１をブロック図で構成すると図２６のようになる。発光部２１０はＬＥＤアレイおよびその駆動回路を含む。受光部２１１はＰＳＤである。ＰＳＤからの出力電流をアンプ２１２で電流電圧変換した後、増幅して、Ａ／Ｄ変換器２１３に通す。デジタル化された電流値信号を演算部２１４で処理することにより、距離値を出力する。制御部２１５はこれら構成部のタイミングをコントロールする。
【００６０】
また、実際にユーザが操作を行う空間が、真っ暗であることは少ないので、発光素子が発光していないときでも、受光素子の出力があることが多い。これは、発光、受光素子を使って距離を求める際に誤差となって現れる。そこで、受光素子の出力を演算に用いるにあたり、発光素子が発光しているときの出力と、発光素子が発光していないときの出力を使って、誤差の少ない演算を行うことができる。たとえば図２６におけるＡ／Ｄ変換を、発光素子が発光する直前と発光後ＰＳＤ出力が定状状態になった時の２回のタイミングで行い、演算部ではその差を取ることにより、発光部２１０が発光していない時の背景光による影響を排除した出力を得ることができる。
【００６１】
背景光として、蛍光灯のような時間的に量が変動する光があると、２回のタイミングの間にも、背景光が変動してしまうことがある。そこで、図２７のようにＡ／Ｄ変換のタイミングを３回行い、発光部が発光する前後の非発光時の出力を平均し、発光時の出力から引けばより精度の良い演算ができる。
【００６２】
また他の構成も考えられる。図２８はＡ／Ｄ変換を行う前に、背景光の影響を除いている。この図では、発光の前、発光中の２回のタイミングで増幅信号をサンプル・ホールドしておき、演算に用いている。２つのサンプル・ホールド回路２２１、２２２とＡ／Ｄ変換部２２３のトリガのタイミングは図２９に示したようになる。
【００６３】
次に、受光素子として光位置検出素子（ＰＳＤ）を用いた場合を考えると、ＰＳＤは光の量に関係なく位置を知ることができるが、光の量が余りに小さい場合は精度が悪くなる。例えば、物体が遠くにありすぎて、反射光が有効に返ってこない場合は、実際と異なる結果が出てしまうこともある。図３０はこのような状態を避けるため、光の量が余り小さいときには距離値が非常に大きいと判定させるようにしたものである。ここでは、Ａ／Ｄ変換される前の段階で背景光の影響が取り除かれているとする。Ａ／Ｄ変換された後のデータは、距離演算部２３５と大きさ判定部２３４の両方に入力される。演算部２３５ではＰＳＤの両極の出力値から距離を演算する。大きさ判定部２３４では、ＰＳＤの出力値の大きさを判定する。ここでは単純に両極の出力を合計し、あるしきい値より小さいかどうかを判定し、小さければその由の信号を出力する。出力部２３６は大きさ判定部２３４の出力により、距離値の出力をコントロールする。すなわち、大きさ判定部２３４からＰＳＤ出力が小さすぎることを示す信号が出ていなければ、距離演算部３５の出力をそのまま出力する。ＰＳＤ出力が小さすぎることを示す信号が出ていれば、出力し得る最大距離を出力する。最大距離を出力する代わりに、距離が遠すぎることを示す信号を出力してもよい。
【００６４】
また、背景光のレベルが急激に変動し、その結果として異常に大きなＰＳＤ出力が得られてしまうこともある。そこで、大きさ判定部２３４が、ＰＳＤの出力値が小さすぎることと、大きすぎることの２つの状態を判定するようにしてもよい。そして出力部２３６はＰＳＤの出力が小さすぎるときは最大距離を出力し、ＰＳＤ出力が大きすぎるときは距離演算不能であったことを示す信号を出力し、それ以外の時、距離演算部２３５の出力をそのまま出力するようにする。
【００６５】
次に、距離画像解析部２０２について述べる。図３１は距離画像解析部２０２を、極小点検出部２４１と極小点選択部２４２から構成した情報入力装置である。ユーザの指先は距離画像の中では、局所的に距離値がもっとも小さい点、すなわち極小点に対応する。そこで、距離画像の極小点を見つけることが、指先の位置を見つけるための有力な手段となる。しかし、指先以外にも距離画像の中には極小点は複数存在するのが通常であり、これらの中から指先に対応する極小点を見つける手段が必要になる。さらに指先以外の物体で作られる極小点だけしか存在しない場合もあり、このような場合には、指先に相当する極小点は存在しないと判断できなくてはいけない。これらの処理を行うのが極小点選択部２４２である。極小点選択部２４２は、極小点検出部２４１が出力する極小点の情報（座標と距離値）だけを用いる場合もあり、また元の距離画像も用いる場合もある。後者の場合は、図３２のような構成になる。極小点選択部２４１によって検出された、指先に対応する極小点の情報または指先に対応する極小点が無いという情報が、後段の処理部２４３に送られる。
【００６６】
もう少し具体的な例として、図３３を用いて説明する。この図では距離画像解析部２０２は、極小点検出部２５２、極小点動き検出部２５１、極小点周辺状況解析部２５３、および極小点選択部２５４で構成される。極小点検出部２５２は距離画像中の１つまたは複数の極小点を見つけ、フレーム毎に出力される。極小点動き検出部２５１は、フレーム間での極小点の対応をとったり、その移動量・方向などを検出する。移動量・方向は、座標だけを用いて、２次元平面内での移動を捕らえることもできるし、距離値まで用いて、３次元空間内での移動を捕らえることもできる。
【００６７】
極小点周辺状況解析部２５３は、極小点を作っている物体のおおよその形状・向きなどを検出する。例えば、今、極小点の１つの距離値をｄｍとする。あるしきい値ｔｈを用意し、極小点の周辺の点について、その距離値ｄが、
ｄｍ  ＜  ｄ  ＜  ｄｍ＋ｔｈ
を満足するような点を求め、さらに満足する点の周辺の点についても調べる。この作業を、これ以上周辺に広がらないところまで繰り返し、その合計の数を数える。この数と極小点の距離値から、この物体の形状が、とがっているか、そうでないか、を知ることができる。図３４でいうところの、面積ｓ１、ｓ２を求めたことになる。従って、この値をあるしきい値で区切れば、手（面積が小さい）と頭（面積が大きい）を区別することができる。
【００６８】
極小点周辺状況解析部２５３として別な方法も考えられる。極小点の座標からある方向の点列の距離値の変化具合を見る方法がある。例えば、極小点（ｘｍ，ｙｍ）に対し、
（ｘｍ＋１，ｙｍ）、（ｘｍ＋２，ｙｍ）、（ｘｍ＋３，ｙｍ）．．．
（ｘｍ−１，ｙｍ）、（ｘｍ−２，ｙｍ）、（ｘｍ−３，ｙｍ）．．．
（ｘｍ，ｙｍ＋１）、（ｘｍ，ｙｍ＋２）、（ｘｍ，ｙｍ＋３）．．．
（ｘｍ，ｙｍ−１）、（ｘｍ，ｙｍ−２）、（ｘｍ，ｙｍ−３）．．．
の４つの方向へ点の距離値を見ていく。この距離値がｄｍ＋ｔｈ（ｄｍは極小点の距離値、ｔｈはあるしきい値）に達した点の、極小点からの距離を見れば、先ほどの例と同様に、物体のおおよその形状をつかむことができる。この方向を更に細かくとり、ある方向に距離値が一定の割合で増加していくことが分かれば、まっすぐ伸ばした手の、伸ばした方向を知ることができる。
【００６９】
極小点選択部２５４は、極小点検出部２５２、極小点動き検出部２５１、極小点周辺状況解析部２５３の出力結果を用いて、極小点の中に指先があるのか、あればどの極小点なのかを判定する。例えば、長時間にわたって静止している極小点は、机や椅子などの静止物体によって作られた極小点だと判断し、除外することができる。頭で作られる極小点は手で作られる極小点に比べ、とがった形状をしていないので、極小点周辺状況解析部２５３の出力から区別できる。ユーザが操作を使用として前方に差し出した手指は、「ゆっくり近づいて来て止まる」極小点として見つけられる。そこで、このような動きをした極小点を指であると判定できる。一度指であると判定された極小点はその後は優先的に指であると判定した方が精度が上がる。ある極小点が指先だと判定される前と、判定された後では、判定のアルゴリズムを変えることも考えられる。一度指先だと判定された極小点は、その後、指先でないと判定される条件が揃うまでは、指先であると判定され続ける。極小点選択部２５４が１つの極小点を選択するような場合は、優先的に指先であると判定される極小点があるとそのほかの極小点は除外される。しかし、複数の極小点を選択する場合は、優先的に指先であると判定される極小点があっても、その他の極小点の判定には影響しない。
【００７０】
この例では、極小点動き検出部２５１と極小点周辺状況解析部２５３の両方を用いたが、どちらか一方を使ってもよいし、それでも効果はある。
【００７１】
図３５は、図３１の極小点選択部２４２と処理部２４３との間にフィルタを介在させた構成をもつ。隣り合う２つのＬＥＤビームのちょうど中程に指が位置した場合、極小点選択手段の出力は２つの座標が同程度の確率で現れる。この出力座標を直接カーソル座標にすると、カーソルが２つの座標の間を行ったり来たりすることになり好ましくない。そこでこの図のようにフィルタ２６３を入れることにより、カーソルの動きをなめらかにすることができる。フィルタの形としては、ｎフレーム前の（フィルタにかける前の）極小点座標を（Ｘｎ，Ｙｎ）として、フィルタ出力を（Ｘ，Ｙ）とすると、
Ｘ＝ΣＫｎ・Ｘｎ
Ｙ＝ΣＫｎ・Ｙｎ    （Ｋｎは定数）
で求められる。また、このＸ、Ｙを適当な大きさで量子化すれば、必要以上に小さなゆらぎをなくすことができる。先の例では、カーソルは２つの座標の中間に位置することになる。これはまた解像度を上げることにもなる。
【００７２】
次に図２３における処理部２０３の細かい構成も含め、より具体的な処理を行える構成について説明する。
【００７３】
まず、画面に出された複数のメニューの中から所望の１つを、指で差すことによって指示することができる環境を考えてみる。これは例えば、図３６の構成によって、実現できる。距離画像入力部２７０と極小点検出部２７１と極小点選択部２７２は既に述べたものとほぼ同様の働きをする。極小点選択部２７２は、指先であると判定した極小点の情報（座標、距離値）を出力する。指示点・メニュー対応検出部２７４は、選択された極小点の位置がある特定のメニューの領域に入っているかどうかを検出し、その情報を出力する。表示制御部２７６は、極小点選択部２７２から入力される選択された極小点の情報をもとに、指先の位置を示すカーソルを表示するとともに、その位置があるメニューの領域内に入っていればメニューの色を変えるなどの処理を行う。指示点静止時間検出部２７３は、選択された極小点の、ある点からの距離が一定値以下であるような状態が続いたとき、その時間を検出する。そしてその時間がある値以上になったときその旨をコマンド実行部２７５に伝える。コマンド実行部２７５は、極小点の静止時間がある値以上になったことを知ると、そのときに極小点の位置に対応しているメニューがどれかという情報を指示点メニュー対応検出部２７４から受け取り、そのメニューの内容を実行するとともに、表示制御部２７６に実行したことを伝える。表示制御部２７６はコマンドが実行されたという情報を受け取ると、さらにメニューの色を変化させて、ユーザにコマンドが実行されたことを知らせる。図３６では、ユーザへのフィードバックは表示によってのみ行われたが、図３７のように音声出力部２７７を併用してさらにフィードバック効果を高めることもできる。
【００７４】
次に、所望のメニューを指で「押す」などの動作をすることで選択実行する環境を考えてみる。これは図３８の構成で実現できる。距離画像入力部２８０と極小点検出部２８１はこれまで出てきたものと基本的に同様の働きをする。極小点検出部２８１から出力された極小点データは第１の極小点動き検出部２８２と第２の極小点動き検出部２８３に入力される。第１の極小点検出部２８２は極小点検出部２８１から出力される極小点の中から、指先に対応するものを見つける部である。ここでの具体的な方法は上述したようにいくつか考えられる。第２の極小点動き検出部２８３は、一度指先であると検出された極小点の動きから、あるメニューを選択実行したかどうかを判定する。例えば、少し前進してその後、少し後退すればそれは「押す」という動作であると判定する。あるいは特定の動作を行ったとき、例えば「チェック」動作、「丸を描く」動作をしたときにそのメニューを選択実行することもできる。このような場合、動作をするときにカーソルの位置がずれてしまい、所望のメニューとは違うものが選択されてしまう恐れもある。そのような時は、ある動作が認識されたときその動作が起こる直前の座標があったメニューを対象メニューとするようにすれば、このような問題は回避できる。
【００７５】
メニューが横に広がっている場合などは、指先を左右に動かして所望のメニューの位置までカーソルを動かした後、ある値以上の速度で指を下に降ろす（または、上に挙げる）ことによって、そのメニューが選択実行されるようにすることもできる。メニュー制御手段は第１、第２の指示点動き検出部から出力される信号によってメニューの表示を制御する。まず第１の極小点動き検出部２８２が指先の位置を検出すると、指先に対応する位置に、カーソルを表示する。そしてカーソルがあるメニューの領域の中に入ると、そのメニューの色を変えてユーザにフィードバックする。第２の極小点動き検出部２８３が、あるメニューが選択実行されたことを示す信号を出力すると、さらにメニューの色を変え、そのメニューが実行されたことをユーザにフィードバックする。この図には描かれたないが、音声を用いてユーザにフィードバックしてももちろん構わない。
【００７６】
これには例えば図３９に示すようなメニュー画面を提示することが考えられるカーソルは指の位置に対応しており、指を左右に動かすとカーソルが動き、カーソルの乗っているメニューは色が反転されている。ここで所望のメニュー上にカーソルがある時に、指を下に降ろすと、そのメニューが確定する（このとき更にメニューの色を変えてもよい）。このとき、メニューを選んでいるときに、指が上下に振れてしまったことに反応しないように、確定するための「指を降ろす」動作はある程度の速度以上で降ろしたときの反応するようにしておくことも効果的である。
【００７７】
また図４０のように、階層的なメニューを指示するのにも適している。はじめのメニューで１つを選択し、指を下方に移動すると次の階層のメニューが現れる。そこでまた指を左右に動かし所望のメニューの位置にカーソルを動かしてから、下方に指を移動させるとさらに次の階層のメニューが現れる。これを繰り返すことによって、階層メニューの１つを簡単に指示することができる。この場合は先の例とは違い、「指を降ろす」速度ではなくて、距離にスレッショルドを設けて、メニューを選んだことを判定させる方がよい。この場合、指を上方に動かすと前メニューの選択に戻れるようにしておくと、やり直し操作が行い易いという効果がある。
【００７８】
次にもう少し異なる動作でメニューの選択実行が行える環境について述べる。構成は先と同じ、図３８に示したものである。異なるのはメニュー制御部２８５で表示されるメニューの形と、第２の極小点動き検出部２８３で検出する動きの種類である。第１の極小点動き検出部２８２が指先を見つけると、メニュー制御部２８５は図４１や図４２のような円形もしくは各メニューが円状に並んだ形をしているメニューを表示する。このメニューは、指の位置もしくは指の位置に対応するカーソルの位置がその中心に位置するように表示される。ユーザは指を差し出してこのメニューが表示された後、指を上下左右のいずれかの方向に動かすとその方向にあるメニューが実行される。従って、第２の極小点動き検出部２８３は指がどの方向に動いたかを検出する。この例では、複数の極小点の中から指先に対応する極小点を見つけるために極小点の動きだけを用いているが、前述の極小点周辺状況解析部を用いて総合的に判断してもよいことは言うまでもない。
【００７９】
【発明の効果】
本発明によって、リモコン装置などの一切のデバイスを手に持つことなく、また装着することなく、素手のみでシステムを操作する環境が実現できる。家庭内での現在のリモコンの置き換えに留まらず、手にものを持ちながら操作を行いたい、汚れた手で機械を操作したいといった要求にも応えることができる。
【００８０】
また、本発明により、リモコンなどの装置を持つことなく素手のみで機器を操作できる、情報入力装置が構成できる。この情報入力装置によって、操作するときにいちいちリモコンを探す手間がない、複数の人が操作するとき、リモコンの受け渡しをする必要がない、機械に触らずに操作できるので、危機が汚されたり、壊されたりしにくく、メンテナンスコストの削減になる、汚れた手で操作することができる、などの多くの効果がある。
【００８１】
また本発明によれば、発光素子と受光素子で距離計測部を構成したとき、発光素子の発光しているときと発光していないときの、出力を用いて距離値を演算するので、外光などのノイズの影響を最小限に押さえることができる。また、蛍光灯のように変動する外光の影響も最小限に押さえることができる。
【００８２】
また本発明によれば、受光素子の出力レベルが期待される量を大幅に上回ったり下回ったりしたときに、その出力から演算される距離値を用いないようにすることができるので、被計測対象がその距離を測る必要がないくらいに遠ざかったときや、何らかの原因で出力がおかしくなったときに、その影響を最小限に押さえることができる。
【００８３】
また本発明では、距離画像の中の極小点を指先候補として取り出し、その中から指先であろう極小点を見つけだす処理を行っている。ユーザの指先は距離画像中の極小点となるため、画像処理を行って指先を検出する方法に比べ、安定的に検出でき、また処理系も低コスト化できる。
【００８４】
更に本発明では、複数の極小点の中から指先であろう極小点を見つけるために、極小点の動きや、極小点の周りの画素の状態を解析するので、静止物体によってつくられる極小点や、頭などの指先とは大きさが異なる物体によってつくられる極小点を良好に排除することができる。
【００８５】
また本発明では、求められた極小点の座標をフィルタに通すため、隣り合う２つのＬＥＤビームの中間に指が位置したとき、極小点として２つの座標を不安定に出力することがなく、中間の座標を安定して出力することができる。
【００８６】
また本発明によると、メニューの選択などのタスクを行うときに、所望のメニューに（指先位置に対応する）カーソルを静止させるだけで選択を行えるので、マウスのクリックボタンに相当するものがなくても好適に操作を行うことができる。
【００８７】
また本発明の別の手段によれば、カーソルを所望のメニューに移動させて、「押す」という動作などの自然な動作を行うことによりメニューの選択ができる。
【００８８】
また本発明の別の手段によれば、階層的なメニューの選択も指を動かすだけで好適に選択することができる。また、円形メニューを表示することによって、指を差し出してある方向に動かすという、少ない操作でメニューの選択ができる。また指の動いた方向で選択するためユーザによる誤指示が少ない。
【００８９】
以上述べたように本発明により、装置を手に持たずに、あるいはデータグローブなどの装置を装着せずに、離れたところから機器を操作できる自然な環境を提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施例である第１の実施例の構成を示す図。
【図２】本発明の一実施例である距離計測の原理を示す図。
【図３】本発明の一実施例である距離画像の入力方法を示すための図。
【図４】本発明の一実施例である距離画像の入力方法を示すための図。
【図５】本発明の一実施例である第２の実施例の構成を示すための図。
【図６】本発明の一実施例であるＬＥＤアレイとＬＥＤアレイ制御手段の構成を示すための図。
【図７】本発明の一実施例である距離演算部の構成を示すための図。
【図８】本発明の一実施例である背景ノイズを除去する部分のタイムチャートを示す図。
【図９】本発明の一実施例である背景ノイズを除去する部分のタイムチャートを示す図。
【図１０】本発明の一実施例である指示点の候補であるかどうか判断する部分の構成を示す図。
【図１１】本発明の一実施例である時間差分検出部の１実施例を示す図。
【図１２】本発明の一実施例である指示点検出部の構成を示す図。
【図１３】本発明の一実施例である第３の実施例の構成を示す図。
【図１４】本発明の一実施例である指示点候補記憶部の構成を示す図。
【図１５】本発明の一実施例である指示点候補記憶部の構成を示す図。
【図１６】本発明の一実施例である指示点候補記憶部における動作タイムチャートを示す図。
【図１７】本発明の一実施例である指示点候補記憶部における動作タイムチャートを示す図。
【図１８】本発明の一実施例である指示点決定部の構成を示す図。
【図１９】本発明の一実施例である指示点追跡部の構成を示す図。
【図２０】本発明の一実施例である第３の実施例の変形例を示す図。
【図２１】本発明の一実施例である発光部の他の構成例を示す図。
【図２２】本発明の一実施例である指示点の移動をメニュー画面上のカーソルの移動およびシステムの制御に用いる例を示す図。
【図２３】第４実施例に係る情報入力装置の構成を示す図。
【図２４】第４実施例に係る発光素子と受光素子（ＰＳＤ）を使った測距の原理を説明するための概念図。
【図２５】第４実施例に係るＬＥＤアレイによる距離画像入力を説明するための概念図。
【図２６】第４実施例に係る距離画像入力部の構成を示す図。
【図２７】第４実施例に係る背景光の影響を除去するためのＡ／Ｄ変換タイミングを示す図。
【図２８】第４実施例に係るＡ／Ｄ変換の前に背景光の影響を除去するための回路を示す図。
【図２９】第４実施例に係るＡ／Ｄ変換の前に背景光の影響を除去するための回路における動作タイミングを示す図。
【図３０】第４実施例に係る受光素子出力の大きさから距離値の出力を制御する距離画像入力部の構成を示す図。
【図３１】第４実施例に係る距離画像解析部を極小点検出部と極小点選択部とから構成した際の情報入力装置の構成を示す図。
【図３２】第４実施例に係る極小点選択部が元の距離画像と極小点検出部が出力する極小点の情報とを使用する際の情報入力装置の構成を示す図。
【図３３】第４実施例に係る距離画像解析部を極小点検出部、極小点動き検出部、極小点周辺状況解析部、および極小点選択部から構成した際の情報入力装置の構成を示す図。
【図３４】第４実施例に係る極小点周辺状況解析部で検出する情報を例示した図。
【図３５】第４実施例に係るフィルタを持った情報入力装置の構成を示す図。
【図３６】第４実施例に係るメニュー選択を行うための情報入力装置の構成を示す図。
【図３７】第４実施例に係るメニュー選択を行うための情報入力装置の構成を示す図。
【図３８】第４実施例に係るメニュー選択を行うための情報入力装置の構成を示す図。
【図３９】第４実施例に係るメニューを例示した図。
【図４０】第４実施例に係るメニューを例示した図。
【図４１】第４実施例に係るメニューを例示した図。
【図４２】第４実施例に係るメニューを例示した図。
【符号の説明】
１…距離画像入力部、２…極小点検出部、３…時間差分検出部、４，４６，１２１…指示点決定部、５…システム制御部、２０…ＬＥＤアレイ、２１…レンズ系、４０…ＬＥＤアレイ、４１…ＬＥＤアレイ制御部、４２…位置検出素子、４３…距離演算部、４４…極小点検出、４５…時間差分検出部、１５０…指示点検出部、１５１…指示点追跡部、２０１…距離画像入力部、２０２…距離画像解析部、２０３…処理部、２１０…発光部、２１１…受光部、２１４…演算部、２３４…大きさ判定部、２４１…極小点検出部、２４２…極小点選択部、２５１…極小点動き検出部、２５３…極小点周辺状況解析部、２６３…フィルタ、２７３…指示点静止時間検出部、２７４…指示点・メニュー対応検出部、２７５…コマンド実行部、２７６…表示制御部、２７７…音声出力部、２８２…第１の極小点動き検出部、２８３…第２の極小点動き検出部。
【図１】
0003544739.tif 000002
【図２】
0003544739.tif 000003
【図３】
0003544739.tif 000004
【図４】
0003544739.tif 000005
【図５】
0003544739.tif 000006
【図６】
0003544739.tif 000007
【図７】
0003544739.tif 000008
【図８】
0003544739.tif 000009
【図９】
0003544739.tif 000010
【図１０】
0003544739.tif 000011
【図１１】
0003544739.tif 000012
【図１２】
0003544739.tif 000013
【図１３】
0003544739.tif 000014
【図１４】
0003544739.tif 000015
【図１５】
0003544739.tif 000016
【図１６】
0003544739.tif 000017
【図１７】
0003544739.tif 000018
【図１８】
0003544739.tif 000019
【図１９】
0003544739.tif 000020
【図２０】
0003544739.tif 000021
【図２１】
0003544739.tif 000022
【図２２】
0003544739.tif 000023
【図２３】
0003544739.tif 000024
【図２４】
0003544739.tif 000025
【図２５】
0003544739.tif 000026
【図２６】
0003544739.tif 000027
【図２７】
0003544739.tif 000028
【図２８】
0003544739.tif 000029
【図２９】
0003544739.tif 000030
【図３０】
0003544739.tif 000031
【図３１】
0003544739.tif 000032
【図３２】
0003544739.tif 000033
【図３３】
0003544739.tif 000034
【図３４】
0003544739.tif 000035
【図３５】
0003544739.tif 000036
【図３６】
0003544739.tif 000037
【図３７】
0003544739.tif 000038
【図３８】
0003544739.tif 000039
【図３９】
0003544739.tif 000040
【図４０】
0003544739.tif 000041
【図４１】
0003544739.tif 000042
【図４２】
0003544739.tif 000043