〔発明の概要〕
本発明の一実施形態について図1から図13に基づいて説明すると以下の通りである。ここでは、本実施形態の入力装置の概要について、図2及び図3に基づいて説明する。図2及び図3は、本発明の一実施形態に係る入力装置1の動作の一例を示す図である。同図(a)に示すように、入力装置1は、表示パネル2を備え、表示パネル2上には、ボタンイメージa〜eが表示されている。
ここで、ユーザが、表示パネル2上に手を置くと、同図(b)に示すように、ボタンイメージa〜eのそれぞれが、ユーザの各指先の位置に移動する。図示の例では、ユーザの小指、薬指、中指、人差し指、及び親指のそれぞれに対応する位置にボタンイメージa〜eが表示されている。
この状態において、入力装置1は、ユーザの指の動きを検出して、ボタンイメージa〜eのそれぞれに対応する入力操作を受け付ける。例えば、同図(b)の状態において、ユーザが人差し指で入力操作を行った場合には、同図(c)に示すように、入力装置1は人差し指の動きを検出し、ボタンイメージdに対する入力操作があったと判断する。
このように、入力装置1では、ユーザが手を触れた位置において入力操作を受け付ける。したがって、図3(a)に示すように、ユーザが、表示パネル2のより下方に触れた場合であっても、ユーザの小指、薬指、中指、人差し指、及び親指のそれぞれに対応する位置にボタンイメージa〜eが表示される。
また、図3(b)に示すように、ユーザの手が小さい場合であっても、そして表示パネル2に触れる手が右手であっても、ユーザの小指、薬指、中指、人差し指、及び親指のそれぞれに対応する位置にボタンイメージa〜eが表示される。そして、入力装置1は、ユーザの指の動きを検出して、ボタンイメージa〜eのそれぞれに対応する入力操作を受け付ける。
すなわち、従来の入力装置は、所定の位置に設けられたボタン等によって入力を受け付けていたのに対し、入力装置1では、ユーザが手を触れた位置がボタンとなって入力を受け付ける。したがって、入力装置1を用いた場合には、大人でも子供でも、また右利きの人も左利きの人も、そして表示パネル2を見なくても簡単に入力操作を行うことができる。
〔適用例〕
入力装置1は、様々な電子機器の入力装置として適用することができる。ここでは、一例として、入力装置1を、オーディオやエアコン等の車載機器の入力装置として適用する例について図4に基づいて説明する。
図4は、入力装置1を車載機器の入力装置として適用した場合の外観の一例を示す図である。入力装置1の設置位置は、特に限定されないが、ユーザが表示パネル2を見やすい位置に設置することが好ましい。また、入力装置1は、右手でも左手でも入力操作を行うことができるので、助手席からでも運転席からでも手が届く位置に設置することが好ましい。
具体的には、同図(a)に示すように、入力装置1は、センターコンソールやインストルメントパネルに設置することが好ましい。これにより、助手席及び運転席からも、そして後部座席からも表示パネル2が見やすい上、助手席と運転席とのどちらからでも車載機器の操作を行うことができる。
同図(b)は、同図(a)に示す入力装置1を拡大した図である。図示の例では、表示パネル2の表面は、ドーム状に形成されている。表示パネル2の表面、すなわち入力装置1の入力面は、ユーザが5つの指を載置できるだけのスペースを有するものであれば、その形状はどのようなものであってもよい。例えば、一般的なタッチパネルと同様に、入力面を四角形状の平面としてもよい。この場合には、広く流通している表示パネルを流用することができるのでコスト面で有利である。また、図示の例のように、入力面をドーム状とした場合には手の形状とフィットするという利点がある。
また、図示のように、表示パネル2には、その外周部に沿ってボタンイメージa〜fが表示されている。ボタンイメージa〜fは、ユーザが表示パネル2に手を触れることによって、手の指先のそれぞれに対応する位置に移動するので、ボタンイメージa〜fの初期表示位置は、どのような位置であってもよく、また手を触れたときに初めてボタンイメージa〜fが表示されるようにしてもよい。
ただし、図示の例のように、手を触れる前の状態でボタンイメージa〜fを表示させた場合には、ユーザは、どのような機能を操作できるかを確認した上で、入力装置1への入力操作を行うことができる。したがって、ボタンイメージa〜fは手を触れる前に表示させておくことが好ましい。
また、入力装置1は、表示パネル2にて入力操作を受け付けるので、入力操作を行わないときには、表示パネル2は周辺機器の表示出力装置として利用することもできる。例えば、図示の例では、カーナビゲーションシステムが出力する地図の画像を表示パネル2に表示している。したがって、ボタンイメージa〜fの初期表示位置は、表示パネル2の表示を妨げない位置とすることが好ましい。
なお、表示パネル2に表示されている全てのボタンイメージを、ユーザの指に対応する位置に移動させる必要はない。例えば、ボタンイメージa〜fのうち、現在操作可能な機能に対応するボタンイメージのみをユーザの指に対応する位置に移動させてもよい。この場合には、ユーザは、表示パネル2に表示されているボタンイメージを見ることによって、入力装置1で操作可能な機能を把握することができ、表示パネル2に触れることによって、現在操作可能な機能を把握することができる。
〔ハードウェア構成〕
次に、入力装置1のハードウェア構成について図5に基づいて説明する。図5は、入力装置1のハードウェア構成の一例を示すブロック図である。図示のように、入力装置1は、表示パネル2、画像取得部(撮像部)3、バックライト4、CPU(Central Processing Unit)5、主記憶部6、及び補助記憶部7を備えており、周辺機器Pと通信可能に接続されている。
表示パネル2及びバックライト4は、画像を表示するためのものである。すなわち、表示パネル2は、カラーフィルタと、バックライト4が発する光を遮って上記カラーフィルタに達する光量を調節する液晶層とを備えている。そして、CPU5の制御に従って、バックライト4と液晶層とが駆動することにより、表示パネル2に任意の画像が表示される。また、表示パネル2の入力装置1の外部に露出している側の面は、ユーザの入力操作を受け付ける入力面としての機能も果たしている。
画像取得部3は、表示パネル2上の物体を画像として取得するものであり、画像取得部3が取得した画像に基づいて、表示パネル2への指の接触/非接触が判断される。なお、画像取得部3は、表示パネル2に組み込まれており、バックライト4が発する光が表示パネル2上の物体に反射した光を受光して画像を生成するようになっている。画像取得部3には、例えばCCD(charge-coupled device)等の公知の撮像素子を適用することもできる。
すなわち、表示パネル2、画像取得部3、及びバックライト4によって、いわゆる光センサ内蔵液晶表示装置が構成されている。そして、入力装置1では、表示パネル2、画像取得部3、及びバックライト4によって、表示パネル2に対するユーザの入力操作を検出すると共に画像の表示を行う。
ここで、表示パネル2及び画像取得部3のより詳細な構成について、図6に基づいて説明する。図6は、表示パネル2及び画像取得部3の構成及び機能の概略を示す図である。
図示のように、表示パネル2は、パネル部2aと、パネル部2aの周囲に設けられたゲートドライバ2b及びソースドライバ2cを含む構成である。また、パネル部2aの周囲には、光センサ駆動回路3bが設けられている。そして、パネル部2aには、RGBの副画素からなる画素が配列していると共に、各画素には、光センサ回路3aが設けられている。
ゲートドライバ2b及びソースドライバ2cは、表示パネル2に入力される表示信号に従って、パネル部2aを構成する各画素の背後(入力装置1の内部側)に配置された液晶層(図示せず)を駆動して、該液晶層のさらに入力装置1の内部側に配置されたバックライト4(図示せず)からRGBの各副画素に入射する光量を調整する。これにより、パネル部2aには、上記表示信号に応じた画像が表示される。
一方、画像取得部3は、光センサ回路3aと、該光センサ回路3aを駆動する光センサ駆動回路3bとで構成されている。この光センサ回路3aが、光センサ駆動回路3bによって駆動されることによって、パネル部2a上の像が読み取られ、読み取られた像が、読み取り信号(画像データ)として出力される。
なお、本実施形態では、表示パネル2とバックライト4との組み合わせによって画像を表示する例について説明するが、入力装置1は画像の表示と入力操作の検出とを行うことができるようになっていればよく、この例に限定されない。例えば、表示パネル2及びバックライト4の代わりに、有機EL(Electro Luminescence)表示装置を用いて画像を表示するようにしてもよい。
主記憶部6は、入力装置1が動作する上で最低限必要となるデータ、例えばBIOS(basic input output system)のプログラムデータやOS(operating system)のプログラムデータなどを記憶するROM(Read Only Memory)と、CPU5による情報処理が行われる際の作業メモリとして機能するRAM(Random Access Memory)とで構成されている。
補助記憶部7には、上記RAMにロードされてCPU5によって実行される制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)等の入力装置1で使用される各種データが格納されている。補助記憶部7は、CPU5がデータの書き込み及び読み出しを行えるものであればよい。例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを補助記憶部7として用いることができる。
このように、入力装置1は、入力装置1の各機能を実現する制御プログラムの命令を実行するCPU5、上記プログラムを格納したROM、上記プログラムを展開するRAM、上記プログラムおよび各種データを格納する補助記憶部7を備えていることによって、例えば図2(a)〜(c)に示すような機能を実現している。
なお、入力装置1では、CPU5が必要なデータを利用できるようになっていればよく、データは必ずしも入力装置1に内蔵または外付けされた記憶媒体に格納されている必要はない。例えば、入力装置1を通信ネットワークと接続可能に構成し、必要なデータが通信ネットワークを介してCPU5に供給されるようになっていてもよい。
この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
なお、本実施形態では、プログラムをCPU5に実行させることによって入力装置1の機能を実現する例を説明するが、回路やチップ等のハードウェアを用いて入力装置1の機能を実現することも可能である。
〔画像取得部3が取得する画像〕
ここで、画像取得部3が取得する画像について図7に基づいて説明する。図7は、画像取得部3が取得する画像の一例を示す図である。より詳細には、同図(a)は、ユーザが表示パネル2に手を載置した状態にて画像取得部3が取得する画像の一例を示し、同図(b)は人差し指のみを表示パネル2から離した状態にて画像取得部3が取得する画像の一例を示し、同図(c)は、再度人差し指を表示パネル2に接触させた状態にて画像取得部3が取得する画像の一例を示している。
画像取得部3は、表示パネル2に接触している物体を画像として取り込む。したがって、手全体が表示パネル2に接触しているときには、同図(a)に示すように、5本の指と掌とが画像として取り込まれる。一般に、人の手の外形は共通しているので、この画像から、表示パネル2に接触している手が右手であるか、左手であるかを判別することができ、また画像中の指の種別(親指、人差し指、中指、薬指、小指)も判別することができる。
ここで、人差し指が表示パネル2から離れたときには、バックライト4から照射された光であって、人差し指で反射して画像取得部3に入射する光の量が著しく低下する。したがって、人差し指が表示パネル2から離れたときには、同図(b)に示すように、人差し指を除く4本の指と掌とが画像として認識可能になる。そして、人差し指が再び表示パネル2に接触したときには、同図(c)に示すように、同図(a)と同様に、5本の指と掌とが画像として認識されるようになる。
入力装置1は、画像取得部3が取得した画像が、図7(a)の状態から同図(c)の状態まで変化したことを検出して、人差し指で入力操作が行われたと判断する。そして、入力装置1では、表示パネル2に対する接触状態が変化した指が人差し指以外の場合にも同様の判断が行われる。すなわち、入力装置1は、表示パネル2に接触した指が表示パネル2から一度離れ、その後再び表示パネル2に接触したときに、その指で入力操作が行われたと判断する。
〔要部構成〕
続いて、入力装置1のさらに詳細な構成について、図1に基づいて説明する。図1は、入力装置1が備えている制御部11の要部構成を示すブロック図である。図示のように、制御部11は、周辺機器制御部(装置制御手段)12、入力検出部(入力検出手段、入力信号生成手段)13、画像解析部(接触検出手段、種別判別手段)14、ボタン座標変更部15、表示制御部16、及びボタン表示部(表示手段)17を備えている。また、図示のように、入力装置1は記憶部21を備え、記憶部21には、コマンドテーブル22とボタン座標テーブル23とが格納されている。
なお、制御部11が備える各構成は、CPU5がプログラムを実行して実現される機能を示している。また、記憶部21に格納されているデータは、基本的には補助記憶部7に格納されており、CPU5がこれらのデータを使用するときに主記憶部6に読み出される。
周辺機器制御部12は、入力装置1によって操作される対象となる周辺機器Pにコマンドを送信して、その動作を制御するものである。周辺機器Pとしては、入力装置1によって操作する任意の機器を適用することができる。ここでは、入力装置1を車に搭載することを想定しているので、周辺機器Pがオーディオ機器、空調機器(エアコン)、カーナビゲーションシステム(カーナビ)の3つである例について説明する。
入力検出部13は、画像解析部14が表示パネル2に接触していることを検出した各指の接触状態が変化したことを検出し、接触状態の変化を検出した指に対応する入力信号を生成する。具体的には、入力検出部13は、表示パネル2に対して接触していることが検出された指が、非接触状態となったときに、当該指を示す操作指データを生成する。この操作指データは、周辺機器制御部12に送られ、周辺機器制御部12は、操作指データが示す指の種別に対応するコマンドを生成して、周辺機器Pに送信する。
画像解析部14は、画像取得部3が取得した画像を受け取り、受け取った画像の解析を行う。具体的には、画像解析部14は、上記画像が手の画像であるか否かを判断する。そして、画像解析部14は、上記画像が手の画像であった場合には、その手が右手か左手かを検出すると共に、手の指先の位置を求める。
例えば、標準的な手の画像を予め格納しておき、上記画像と標準的な手の画像とを比較することによって、画像取得部3は上記画像が手の画像であるか否か、その手が右手か左手か、また指先の位置がどこであるかを判断することができる。
また、画像取得部3は、上記画像が手の画像である場合に、その手が右手か左手かを、指先の間隔に基づいて判断してもよい。これについて、図8に基づいて説明する。図8は、指先の間隔に基づいて、左手か右手かを判断する方法を説明する図である。
まず、手の画像が取得された場合には、パターンマッチング等によって、指先の位置を特定することができる。そして、指先の位置が特定されると、特定した指先の位置の間隔を算出することができる。
ここで、図示のように、人の手は、小指の指先から薬指の指先までの距離aよりも、親指の指先から人差し指の指先までの距離bの方が一般的に長くなっている。したがって、5つの指先の位置が特定されたときに、両端に位置する2つの指先位置の間隔を比較することにより、どちらの端の指が親指で、どちらの端の指が小指であるかを判断することができ、これにより、右手か左手かを判断することができる。例えば、図示の例では、左端の指先位置の間隔aよりも、右端の指先位置の間隔bが長いので、右側が親指であると判断することができ、これにより左手の画像であると判断することができる。
なお、手の大きさ、指の太さ、長さ等は、人それぞれであるから、画像取得部3が取得した画像と、予め格納している標準的な手の画像とをそのまま比較した場合には、画像解析部14が誤認識するおそれがある。
そこで、画像解析部14は、画像取得部3が取得した画像の標準化を行うことが好ましい。なお、標準化とは、手の大きさ、指の太さ、長さ等が所定の範囲内となるように行う補正を指す。補正後の画像と標準的な手の画像とを比較することにより、画像解析部14は、画像取得部3が取得した画像が、手の画像であるか否かを判断することができる。また、画像取得部3が取得した画像が手の画像である場合には、画像解析部14は、上記画像が右手の画像であるか左手の画像であるか、そして指先の位置はどこであるかを確実に判断することができる。
そして、画像解析部14は、表示パネル2に接触している各指について、表示パネル2上の位置、指の種別、及び左右の何れの手の指であるかを示すデータを生成して、入力検出部13に送る。
ボタン座標変更部15は、画像解析部14が検出した指先の位置に応じて、記憶部21のボタン座標テーブル23に格納されている、ボタンイメージの表示位置を示す座標を更新する。これにより、ボタンイメージが指の動きに追従して移動することになる。また、ボタン座標変更部15が更新した座標は、入力検出部13による入力操作の検出にも用いられる。なお、以下では、ボタン座標変更部15によって更新された座標を更新座標と呼ぶ。
表示制御部16は、表示パネル2及びバックライト4の動作を制御して表示パネル2に任意の画像を表示させる。また、表示制御部16は、ボタン表示部17からコントロール画面データを受け取って表示パネル2に表示させる。
ボタン表示部17は、各指に割り当てられた機能を示すボタンイメージを当該指に対応する位置に表示させる。具体的には、ボタン表示部17は、記憶部21のコマンドテーブル22に格納されているボタンイメージを読み出すと共に、記憶部21のボタン座標テーブル23に格納されている初期座標または更新座標を読み出す。そして、ボタン表示部17は、読み出した初期座標または更新座標の位置に、読み出したボタンイメージが配置されたコントロール画面データを生成し、このコントロール画面データを表示制御部16に出力して表示させる。
〔コマンドテーブル22〕
ここで、コマンドテーブル22について説明する。コマンドテーブル22は、指と該指に対応するコマンドとが対応付けられたテーブルである。したがって、周辺機器制御部12は、コマンドテーブル22を参照することによって、入力検出部13が特定した指に対応するコマンドを特定することができる。なお、コマンドは、周辺機器Pに所定の動作を実行させる命令であり、周辺機器P毎に異なっているので、コマンドテーブル22は、周辺機器P毎に用意されている。
さらに、コマンドテーブル22には、各コマンドと該コマンドに対応するボタンイメージとが対応付けて記憶されている。ボタンイメージは、各コマンドによって周辺機器Pが実行する動作を示す画像であり、ボタンイメージが表示されることによって、ユーザは、各指にどのようなコマンドが割り当てられているか(どのような動作が実行されるか)を認識することができる。
なお、ボタンイメージは、各指の操作でどのような動作が実行されるかをユーザが認識することができるものであればよく、静止画像以外にも、例えば動画像、文字、及び記号等をボタンイメージとすることもできる。
コマンドテーブル22は、例えば図9に示すような構成とすることもできる。図9は、コマンドテーブル22の一例を示す図である。図9に示すコマンドテーブル22では、左右の指のそれぞれと、メイン、オーディオ、エアコン、及びカーナビの4つのモードに対応するコマンドとボタンイメージとが対応付けられている。
メインモードは、オーディオ、エアコン、及びカーナビの何れの周辺機器Pを操作するかを選択するためのモードである。したがって、メインモードでは、オーディオを操作するオーディオモードに移行するためのオーディオコマンド、エアコンを操作するエアコンモードに移行するためのエアコンコマンド、及びカーナビを操作するカーナビモードに移行するためのカーナビコマンドが、指に対応付けて記憶されている。
具体的には、オーディオコマンドは、運転席のL1及び助手席のR1に対応付けられており、エアコンコマンドは、運転席のL2及び助手席のR2に対応付けられており、カーナビコマンドは、運転席のL3及び助手席のR3に対応付けられている。
なお、L1〜L5は、それぞれ左手の親指、人差し指、中指、薬指、及び小指を示し、同様にR1〜R5は、それぞれ右手の親指、人差し指、中指、薬指、及び小指を示している。すなわち、ここでは、入力装置1を右ハンドルの自動車のセンターコンソールに配置することを想定しているので、助手席から入力装置1を操作する場合には、右手で操作することになり、運転席から入力装置1を操作する場合には、右手で操作することになる。そこで、図示の例のコマンドテーブル22では、運転席用と助手席用との2通りの指の割り当てを定義している。
同様に、オーディオモードでは、L1及びR1には、オーディオの再生を停止させる停止コマンドが、L2及びR2には、オーディオの再生を開始させる再生コマンドが、L3及びR3には、次の曲を再生させる1曲送りコマンドが、L4及びR4には、オーディオの再生音量を上げる音量UPコマンドが、そしてL5及びR5には、オーディオの再生音量を下げる音量DOWNコマンドが対応付けられている。
また、エアコンモードでは、L1及びR1には、外気の取り込みを実行させる外気コマンドが、L2及びR2には、車内の空気を循環させる循環コマンドが、L3及びR3には、設定温度を上げる温度UPコマンドが、L4及びR4には、設定温度を下げる温度DOWNコマンドが対応付けられている。
さらに、カーナビモードでは、L1及びR1には、自宅までのルートガイドを開始させる自宅コマンドが、L2及びR2には、表示する地図をより縮尺の小さい地図に切り換える広域コマンドが、L3及びR3には、表示する地図をより縮尺の大きい地図に切り換える詳細コマンドが対応付けられている。
なお、本実施形態では、入力装置1を運転席と助手席との両側から操作することを想定しているので、運転席から左手で操作する場合でも、助手席から右手で操作する場合でも、同じ感覚で操作できるようにすることが好ましい。そこで、本実施形態では、L1〜L5と、R1〜R5とのそれぞれに同じコマンドを対応付けている。しかしながら、L1〜L5と、R1〜R5とで別のコマンドを対応付けるようにしてもよい。これにより、指の種別のみならず、右手か左手かに応じた多彩な入力を行うことが可能になる。
また、図示のように、各コマンドにはボタンイメージが対応付けられている。このボタンイメージは、ボタン表示部17によって読み出され、表示制御部16によって表示パネル2に表示される。これにより、ユーザは、どの指で操作を行ったときにどのような機能が実行されるかを容易に認識することができる。
なお、各指に割り当てるコマンドはどのようなものであってもよいが、小指や薬指での入力操作には不慣れなユーザも存在すると考えられるので、使用頻度の高いコマンドを、親指、人差し指、及び中指に割り当てることが好ましい。
〔ボタン座標テーブル23〕
次に、ボタン座標テーブル23について説明する。ボタン座標テーブル23は、ボタンイメージを表示する座標を示すテーブルである。ボタン座標テーブル23には、表示パネル2上に手が置かれる前の状態でボタンイメージを表示する座標である初期座標が格納されている。表示パネル2上に手が置かれるまでは、ボタンイメージは、ボタン座標テーブル23の初期座標が示す位置に表示される。
また、ボタン座標テーブル23には、表示パネル2上に手が置かれた後の各指の座標を示す更新座標が格納される。上述のように、更新座標は、ボタン座標変更部15によって更新された座標である。表示パネル2上に手が置かれた後は、ボタンイメージは、ボタン座標テーブル23の更新座標が示す位置に表示される。
ボタン座標テーブル23は、例えば図10に示すような構成とすることもできる。図10は、ボタン座標テーブル23の一例を示す図である。図示のように、ボタン座標テーブル23には、運転席用、すなわち指L1〜L5のそれぞれに対応する初期座標と更新座標とが格納されていると共に、助手席用、すなわち指R1〜R5のそれぞれに対応する初期座標と更新座標とが格納されている。
初期座標は、ユーザが表示パネル2に手を触れる前の状態におけるボタンイメージの表示位置として予め設定されるものであり、その値は固定である。一方、更新座標は、ユーザが表示パネル2に手を触れているときにボタンイメージを表示する位置を示すものであり、表示パネル2上の指の位置に応じて随時更新される。
このように、入力装置1では、座標を用いて表示パネル2上のボタンイメージの表示位置を表している。これについて図11に基づいて説明する。図11は、表示パネル2上に設定する座標、及び該表示パネル2上に表示されるボタンイメージの表示位置を示す図である。図示の例では、0から200までの縦軸と、0から200までの横軸とが設定されており、これにより表示パネル2上の位置を(0,0)から(200,200)までの座標によって表すことができる。
例えば、図10のボタン座標テーブル23を用いた場合には、L1〜L5の初期座標は、それぞれ(180,120)、(160,170)、(100,200)、(40,170)、及び(10,120)となる。したがって、図11に示すように、(180,120)、(160,170)、(100,200)、(40,170)、及び(10,120)の座標にボタンイメージが表示されることになる。
そして、図11に示すように、表示パネル2上に手を載置したときには、その指先の位置の座標が更新座標としてボタン座標テーブル23に格納される。図11の例では、指先の位置座標が、(160,90)、(130,130)、(110,150)、(70,140)、及び(40,110)である。したがって、図10に示すように、L1〜L5の更新座標も(160,90)、(130,130)、(110,150)、(70,140)、及び(40,110)となる。
これにより、図11に示すように、ボタンイメージの表示位置が、更新座標の(160,90)、(130,130)、(110,150)、(70,140)、及び(40,110)に変化することになる。
なお、指先の位置とボタンイメージの表示位置とを一致させる必要はなく、ボタンイメージは、どの指での操作がどのコマンド(機能)に対応しているかをユーザが認識できるように表示すればよい。ただし、指先の座標と全く同じ位置にボタンイメージを表示した場合には、指でボタンイメージが隠れるので、本適用例では、指先の座標からずれた位置にボタンイメージを表示している。尚、指先の座標とボタンイメージの表示位置とのずらし量は、ボタンイメージの大きさに応じて固定的に決定してもよいが、指の種別ごとに、おおよその移動方向と移動可能範囲とが異なっているので、ずらす方向とずらし量とを指の種別に応じて変えることが好ましい。
〔起動からコントロールモードまでの処理の流れ〕
続いて、入力装置1が起動された後、周辺機器Pに対する入力操作を行うことができるようになるまでの処理の流れについて図12に基づいて説明する。なお、ここでは、周辺機器Pに対する入力操作を行うことができる状態をコントロールモードと呼ぶ。図12は、入力装置1の起動からコントロールモードまでの処理の一例を示すフローチャートである。
車のエンジンがかけられると、入力装置1に電流が供給されて入力装置1は起動状態となる。起動状態となった入力装置1では、まずコントロールデータの読み出しが行われる(S1)。なお、コントロールデータとは、入力装置1の動作に必要なプログラム等のデータである。コントロールデータの読み出しにより、図1に示す各ブロックの機能が実行可能な状態となり、これにより入力装置1は、メインコントロールモードに移行する(S2)。
メインコントロールモードでは、何れの周辺機器Pを操作するかの選択が行われる。すなわち、メインコントロールモードにおいて、オーディオ機器を操作する旨の入力が行われた場合には、入力装置1はオーディオコントロールモードに移行する(S3)。一方、エアコンを操作する旨の入力が行われた場合には、入力装置1はエアコンコントロールモードに移行する(S4)。また、エアコンを操作する旨の入力が行われた場合には、入力装置1はカーナビコントロールモードに移行する(S5)。
なお、メインコントロールモード、オーディオコントロールモード、エアコンコントロールモード、及びカーナビコントロールモードでは、入力装置1が参照するコマンドテーブル22のデータが変わるだけであり、入力装置1の基本的な動作は同じである。すなわち、メインコントロールモード、オーディオコントロールモード、エアコンコントロールモード、及びカーナビコントロールモードは、何れも周辺機器Pに対する入力操作を行うことができるコントロールモードである。
〔コントロールモードにおける処理の流れ〕
続いて、コントロールモードにおける処理の流れについて、図13に基づいて説明する。図13は、コントロールモードにおける処理の一例を示すフローチャートである。
入力検出部13は、入力装置1がコントロールモードに移行すると、フラグを0に設定する(S11)。なお、このフラグは、表示パネル2に接触している指の本数を判断するためのものであり、表示パネル2に5本の指が接触していると判断された場合に、フラグが1に設定される。
また、入力装置1がコントロールモードに移行すると、ボタン表示部17は、ボタン座標テーブル23から初期座標を読み出す。すなわち、入力装置1がコントロールモードに移行すると、ボタン座標テーブル23には初期座標がセットされる(S12)。
なお、初期座標は、入力装置1に最後に入力された手画像に応じて決定される。すなわち、ボタン表示部17は、最後に入力された座標が左手のものであったか、右手のものであったかを、例えば補助記憶部7のような任意の記憶部に記憶しておき、同じ側の手の初期座標を読み出す。
続いて、ボタン表示部17は、コマンドテーブル22から各指に対応するボタンイメージを読み出す。なお、ここで読み出すボタンイメージは、入力装置1がどの周辺機器Pを操作するコントロールモードであるかに応じて決定される。例えば、ボタン表示部17は、入力装置1がオーディオコントロールモードである場合には、図9のオーディオモードに対応する各ボタンイメージを読み出す。そして、ボタン表示部17は、表示制御部16に指示して、上記読み出したボタンイメージを初期座標の位置に表示させる(S13)。
また、入力検出部13は、フラグを0に設定すると、画像解析部14に画像の解析を開始するように指示を送る。画像解析の開始指示を受けた画像解析部14は、画像取得部3に指示して画像の取り込みを行わせる(S14)。そして、画像の取り込み指示を受けた画像取得部3は、表示パネル2上の対象物の像を取り込み、取り込んだ画像を画像解析部14に送る。
次に、画像解析部14は、画像取得部3から画像を受け取ると、受け取った画像が手の画像であるか否かを判断する(S15)。なお、画像解析部14は、例えば予め記憶している標準的な手の画像と上記画像とを比較することによって、受け取った画像が手の画像であるか否かを判断することができる。
ここで、画像解析部14は、画像取得部3から受け取った画像が手の画像であると判断できない場合(S15でNO)には、その旨を入力検出部13に伝達し、伝達を受けた入力検出部13は、S11の処理に戻る。つまり、手を表示パネル2に接触させるまではS11からS15の処理を繰り返すことになる。また、接触させていた手を表示パネル2から離したときにも、S15において手の画像が検出されない状態となるので、S11の処理に戻る。したがって、接触させていた手を表示パネル2から離したときには、S11からS13の処理によって、ボタンイメージの表示位置が初期座標の位置に戻ることになる。
一方、画像取得部3から受け取った画像が手の画像であると判断したとき(S15でYES)には、当該画像が右手の画像であるか、左手の画像であるかを判断する(S16)。なお、上記画像が右手の画像であるか、左手の画像であるかについても、予め記憶している標準的な手の画像と上記受け取った画像とを比較することによって判断することができる。
続いて、画像解析部14は、上記受け取った画像から、指先の座標を検出する(S17)。具体的には、画像解析部14は、S16における上記画像が右手の画像であるか、左手の画像であるかの判断結果に基づいて、画像の指が何指であるかを特定する。そして、画像解析部14は、特定した各指の先端部分の、表示パネル2上の位置を座標として取得する。
すなわち、ここでは、画像解析部14は、親指、人差し指、中指、薬指、及び小指の各指先の、表示パネル2上の座標を取得する。そして、画像解析部14は、取得した各指の指先座標を入力検出部13に送る。ここでは、画像解析部14が取得した各指の指先座標を検出座標と呼ぶ。
検出座標を受け取った入力検出部13は、受け取った検出座標に5つの指先座標が含まれているか否かを確認する(S18)。すなわち、入力検出部13は、上記検出座標に、親指、人差し指、中指、薬指、及び小指の各指先の座標が含まれているか否かを確認する。
ここで、5つの指先座標が含まれていることが確認されなかった場合(S18でNO)には、入力検出部13は、フラグが1であるか否かを確認する(S26)。ここでは、S11にてフラグが0に設定されているので、入力検出部13は、フラグが1ではないと判断し(S26でNO)、S14の処理に戻る。
一方、5つの指先座標が含まれていることが確認された場合(S18でYES)には、入力検出部13は、タイマーがスタートしているか否かを確認する(S19)。そして、タイマーがスタートしている場合(S19でYES)には、これをストップ(S20)してS21の処理に進み、タイマーがスタートしていない場合(S19でNO)には、そのままS21の処理に進む。
なお、このタイマーは、入力検出部13が指の接触状態が変化したことを検出した場合に、その接触状態の変化を入力操作と判断するか否かの判定に用いられるものである。なお、タイマーは、図1及び5には示していないが、入力検出部13が参照可能なように、入力装置1に設けられている。ここでは、タイマーがスタートされていないので、S19の次は、S21の処理に進む。
S21では、入力検出部13は、フラグが1であるか否かを確認する。ここでは、S11にてフラグが0に設定されているので、入力検出部13は、フラグが1ではないと判断し(S21でNO)、S22の処理に進む。
そして、S22では、ボタン座標テーブル23に更新座標がセットされる。具体的には、入力検出部13は、画像解析部14に指示して、上記検出座標をボタン座標変更部15に送信させる。次に、指示を受けた画像解析部14は、上記検出座標をボタン座標変更部15に送る。そして、ボタン座標変更部15が、画像解析部14から受け取った検出座標を用いて、ボタン座標テーブル23の更新座標を更新することによって、ボタン座標テーブル23に更新座標がセットされる。
ここで、ボタン表示部17は、ボタン座標テーブル23の更新座標が更新されると、該更新された更新座標を読み出し、読み出した初期座標または更新座標の位置にボタンイメージが配置されたコントロール画面データを生成し、生成したコントロール画面データを表示制御部16に出力し、表示パネル2に表示させる(S23)。
そして、入力検出部13は、フラグを1に設定する。すなわち、5つの指先座標が検出され、検出された各指先座標に対応する位置にボタンイメージが配置されたコントロール画面データの表示指示が行われたときに、フラグが1に設定される。そして、フラグを1に設定した入力検出部13は、S14の処理に戻る。
なお、フラグは、表示パネル2に5本の指が接触しているときに1に設定されるようになっていればよく、フラグを1に設定するタイミングは図示の例に限られない。例えばS18にて5本の指が接触していると判断されたときにフラグを1に設定するようにしてもよい。
さて、フラグが1に設定された状態にて、入力検出部13が5つの指先座標を検出した場合には、S15からS21の処理を経てS25の処理に移行する。S25では、入力検出部13は、入力操作を行った入力指が特定されているか否かを確認する。入力指の特定は、後述のS30にて行われるので、この段階では入力指は特定されていない。したがって、入力検出部13は、入力指は特定されていないと判断し(S25でNO)、S22の処理に戻る。
S22及びS23では、上述のように、ボタン座標テーブル23に更新座標がセットされ、該更新座標に基づいてボタンイメージが表示される。すなわち、入力装置1では、ユーザが表示パネル2に5本の指を接触させた状態で、指の位置を移動させた場合には、指の位置に追従してボタンイメージの表示位置も移動するようになっている。これにより、入力操作中にユーザの指が移動した場合であっても、常に各指に対応するボタンイメージを適切な位置に表示させることができる。なお、この場合には、すでにフラグが1に設定されているので、入力検出部13はS24においてフラグの変更を行わず、S14の処理に戻る。
一方、フラグが1に設定された状態にて、入力検出部13が5つの指先座標を検出できなかった場合には、S18及びS26の処理を経てS27の処理に移行する。S27では、入力検出部13は、4つの指先座標を検出したか否かを確認する。フラグが1に設定されているということは、5つの指先座標が検出されたことを示しているので、S27では、検出された指先座標が5つから4つへと変化したか否かが確認されることになる。
ここで、4つの指先座標の検出が確認できなかった場合(S27でNO)には、入力検出部13は、S14の処理に戻る。一方、4つの指先座標の検出が確認できた場合(S27でYES)には、入力検出部13は、タイマーをスタートさせる(S28)。すなわち、入力検出部13は、4つの指先座標を検出したとき(1本の指が非接触となった状態を検出したとき)に、タイマーをスタートさせる。
続いて、入力検出部13は、検出された上記4つの指先座標と、ボタン座標テーブル23に格納されている更新座標とを比較して、座標が得られない指を検出する(S29)。すなわち、S29では、5本の指のうち、何れの指が表示パネル2から離れたかが検出される。
そして、入力検出部13は、座標が得られない指、すなわち表示パネル2から離れた指を、入力操作を行った入力指として特定する(S30)。この後、処理は再びS14に戻り、画像の取り込みが行われる。
ここで、上記取り込まれた画像が手の画像であり、5つの指先画像が検出された場合には、S15からS18の処理を経て、処理はS19に進む。そして、ここでは、S28においてタイマーがスタートされているので、処理はS20に進み、入力検出部13は、タイマーをストップする。
これにより、1本の指の非接触状態が検出されたとき(S27でYES)から、当該指が再度接触状態となったことが検出されたとき(S18でYES)までの時間が上記タイマーによって計測される。
また、ここではフラグが1に設定されており、S30にて入力指が特定されているので、S21からS25の処理に進み、S25では、入力検出部13は、入力指が特定済みであると判断し(S25でYES)、S31の処理に進む。
S31では、入力検出部13は、上記タイマーにて計測された時間が、予め設定された所定の時間範囲内にあるか否かを確認する。ここで、上記タイマーにて計測された時間が上記所定時間範囲外である場合(S31でNO)には、入力検出部13は、S22の処理に戻る。一方、上記タイマーにて計測された時間が上記所定時間範囲内である場合(S31でYES)には、入力検出部13は、S32の処理に進む。
S32では、周辺機器Pに対するコマンドの出力が行われる。具体的には、入力検出部13は、上記特定した入力指を示す入力指データを周辺機器制御部12に送る。そして、入力指データを受け取った周辺機器制御部12は、受け取った入力指データが示す入力指に対応付けられているコマンドをコマンドテーブル22から読み出して、該コマンドを実行させる周辺機器Pに送信する。
また、周辺機器制御部12は、コマンドを送信すると、その旨を入力検出部13に伝達し、伝達を受けた入力検出部13は、フラグを0に戻して(S33)、S14の処理に戻る。
なお、図13には示していないが、入力指が特定されたときには、特定された入力指に対応するボタンイメージの表示態様の変更を行う。具体的には、入力検出部13は、S32において、上記入力指データをボタン表示部17にも送信する。そして、ボタン表示部17は、上記入力指データで特定される指に対応するボタンイメージの表示態様を変化させたコントロール画面データを生成する。
これにより、入力装置1が入力操作を検出した指に対応するボタンイメージの表示態様が変化するので、ユーザは、自身の入力操作が入力装置1に正しく認識されたか否かを一目で認識することができる。
なお、ボタンイメージの表示態様の変化は、ユーザがその変化を視覚的に認識することができるものであればよく、例えば色、彩度、明度、サイズ、形状等を変化させてもよいし、表示するボタンイメージを別のボタンイメージに変えてもよい。また、図2(c)の例のように、ボタンイメージの色を反転させてもよい。さらに、車の運転中のように、表示パネル2を見ながら操作することが困難な場合にも対応できるように、選択されたコマンド(または、該コマンドにて実行される動作)を音声で出力するようにしてもよい。
以上のように、入力装置1では、ユーザが表示パネル2に接触させた5本の指の1本を表示パネル2から離したときに、入力指が決定され、ユーザが表示パネル2から離した上記の指を再度表示パネル2に接触させることによって、上記入力指に対応付けられたコマンドが周辺機器Pに送信される。
したがって、ユーザは、従来のようにボタンの位置に指を合せる必要がなく、表示パネル2の任意の位置に触れるだけで周辺機器Pの操作を行うことができる。これは、例えば車の運転中のように、表示パネル2を見ずに周辺機器Pの操作を行うことが好ましいときに有用である。
また、入力装置1では、以上のように、表示パネル2に接触させた各指に対応する位置に、当該指で入力操作を行ったときに実行されるコマンド(周辺機器Pの機能)が表示される。したがって、ユーザは、例えば車の停止中や、助手席に乗っているときには、液晶パネルの表示を見ながら確実に周辺機器Pの操作を行うこともできる。
さらに、入力装置1では、タイマーによって計測された、1本の指の非接触状態が検出されたときから、当該指が再度接触状態となったことが検出されたときまでの経過時間に基づいて、入力操作の有無が判断されるようにしている。すなわち、入力装置1では、上記経過時間が、予め定めた時間範囲内でない場合には、入力操作が行われなかったと判断される。
これにより、ユーザの意図しない入力操作が行われることを防ぐことができる。例えば、表示パネル2に接触状態にある手を移動させるときに生じる指の一瞬の浮きをボタン操作として誤認識する問題を回避することもできる。
また、図13の例では、S18において5つの指先座標が検出されない限り、入力操作を受け付けないようにしている。つまり、ユーザは、5つの指先座標が検出されるように、手を表示パネル2に接触させることによって、入力操作を行うことが可能になる。
これは、入力装置1では、各指先座標(または各指先座標から所定距離だけずれた各位置)にボタンイメージを表示させるようになっており、ボタンイメージの数は最大で5つに設定されているためである。すなわち、5つの指先座標が検出された場合には、表示させるボタンイメージの数は、常に指先座標の数以下となるので、各ボタンイメージを各指先座標に対応する位置に確実に表示させることができる。
また、表示パネル2上におけるユーザの指先の位置が、互いに近接している場合には、ボタンイメージの表示位置に重なりが生じて、ユーザの視認性が低下する可能性がある。また、この場合には、入力操作を行った指の誤判定が生じてユーザの意図しない入力操作が行われる可能性もある。
しかしながら、5つの指先座標が検出された場合には、表示パネル2上におけるユーザの各指先の位置は、入力装置1が識別可能な程度に離れていることになる。指先位置の検出精度にもよるが、パターンマッチング等によって各指先の位置を特定することができる場合には、各指先の位置は十分に離れているので、上記のような問題は生じ難い。
なお、上記の問題を確実に解消するために、例えば図13のS18において、5つの指先座標が検出された場合であっても、検出された指先座標に、隣接する指先座標との距離が所定値以下である指先座標が含まれているときには、5つの指先座標が検出されなかった(S18でNO)と判断するようにしてもよい。
〔入力操作の変形例〕
上記実施形態では、検出された指先の座標が5つから4つに変化したときに、入力指が決定され、そして検出された指先の座標が5つに戻ったときにコマンドが出力される例を示したが、入力指の決定は、指の接触/非接触の状態変化に基づいて行うものであればよく、この例に限られない。
例えば、指先の座標が5つから4つに、そしてまた5つに変化したときに、入力指が決定されると共にコマンドが出力されるようにしてもよい。また、例えば指先の座標が4つから3つに、そしてまた4つに変化したときに、入力指が決定されると共にコマンドが出力されるようにしてもよい。
すなわち、入力装置1は、表示パネル2に2本以上の指が接触している状態から、1本の指が非接触状態に変化したことを検出して、変化が検出された指を入力指と判断する構成とすることができる。また、入力装置1は、表示パネル2に2本以上の指が接触している状態から、1本の指が非接触状態に変化した後、再び接触状態に戻ったことを検出し、該検出した指を入力指として決定する構成としてもよい。そして、入力指を決定するタイミングとコマンドを出力するタイミングとは、同じであってもよいし、異なっていてもよい。
また、複数の指の接触状態を同時に変化させることによってコマンドが決定されるようにしてもよい。例えば、5本の指を表示パネル2に接触させた状態から、人差し指と親指とを表示パネル2から離し、再度人差し指と親指とを表示パネル2に接触させたときに、人差し指と親指との組み合わせに対して予め定義しておいたコマンドが出力されるようにしてもよい。これにより、より多彩な入力操作を行うことが可能になる。
さらに、入力装置1では、指が接触状態から非接触状態に変化したことを検出したときにコマンドを出力するようにしてもよい。ただし、この場合には、ユーザが入力操作を終えて表示パネル2から手を離したときに、誤ってコマンドが生成される可能性がある。したがって、上記実施形態のように、非接触状態となった指が再び接触状態となったことを検出したときに入力指を決定することが好ましい。
また、上記実施形態では、入力操作を行った指の種別を判断して、各指に対応付けられたコマンドを生成する例について説明したが、指の種別を問わずにコマンドを割り当てるようにしてもよい。
例えば、入力操作の対象となるコマンドが3種類である場合には、検出された指先座標のうち、右から3番目までの指先座標のそれぞれにコマンドを割り当てるようにしてもよい。この場合には、例えばユーザが右手の5つの指を表示パネル2に接触させたときには、親指、人差し指、及び中指のそれぞれにコマンドが割り当てられると共に、ユーザが右手の人差し指、中指、及び薬指を表示パネル2に接触させたときには、人差し指、中指、及び薬指のそれぞれにコマンドが割り当てられることになる。これによって、ユーザは、より多様な入力方法で入力操作を行うことができる。
また、表示パネル2上の入力操作が行われた位置に応じてコマンドを生成してもよい。例えば、ユーザが表示パネル2に手を置いたときに、その手の位置、向き、大きさなどを検出して、該検出した位置、向き、大きさなどに応じた位置(例えば各指の指先)にボタンイメージを表示する。そして、表示されたボタンイメージにユーザが触れたときに、当該ボタンイメージに予め対応付けられたコマンドを生成するようにしてもよい。この場合には、表示パネル2に手を置いた後は、従来のタッチパネルと同様の入力操作が可能になる。つまり、ボタンイメージに触れる指がどの指であっても、当該ボタンイメージに予め対応付けられたコマンドが生成される。
これは、入力装置1を例えばキーボードのような複数の入力キーを備えた入力装置に適用する場合に好適である。すなわち、表示パネル2にユーザが手を置いたときに、置かれた手の位置及び大きさに応じた、ユーザが操作しやすい位置にボタンイメージを表示し、表示したボタンイメージに対する入力操作を受け付けることにより、ユーザは、手の大小や形状に関わらず、スムーズに入力操作を行うことが可能になる。
さらに、上記実施形態では、手を表示パネル2に載置した後で入力操作を行う例について説明したが、これに加えて従来のタッチパネルと同様の操作入力も行うことができるようにしてもよい。
すなわち、初期座標に表示されているボタンイメージに対して接触があったことを検知した場合に、当該ボタンイメージに対応付けられているコマンドを送信するようにしてもよい。例えば、図2(a)の状態でボタンイメージa〜eをタイレクトタッチすることで、そのボタンイメージに定義されたコマンドを出力するようにしてもよい。これにより、ユーザは、従来のタッチパネルと同じ操作方法で入力操作を行うことも可能となり、運転中でない場合に、表示パネル2を見ながら、従来から使い慣れた操作方法でスムーズに入力操作を行うことも可能になる。
〔入力操作の検出方法の変形例〕
上記実施形態では、表示パネル2に対する指の接触/非接触を画像取得部3が取得した画像に基づいて判断する例を示したが、入力装置1では、どの指で操作が行われたかを判断することができればよく、この例に限られない。
例えば、液晶表示パネルやEL表示パネル、プラズマ表示パネル等のような任意の表示装置の背後に赤外線カメラを設け、表示装置越しにユーザの指を撮像して得た画像に基づいて指の接触/非接触を判断するようにしてもよい。また、例えば、感圧センサや温度センサ等のセンサを用いて、表示パネル2に対する指の接触/非接触を判断することもできる。
〔ユーザ認証〕
入力装置1では、画像取得部3が取得した画像を利用してユーザ認証を行うようにしてもよい。例えば、予め取得したユーザの指紋や掌紋と、画像取得部3が取得した画像との照合を行うことによってユーザ認証を行うことができる。これにより、周辺機器Pの入力操作における制限をユーザ毎に設定することも可能になる。
例えば、カーナビ機能の入力操作については父母のみが可能とし、それ以外の機能は子供でも操作可能とすることもできる。これにより、子供がカーナビ機能を操作して、父母の運転が妨げられることを防ぐことができる。また、子供が表示パネル2に触れた場合には、子供の手に合せた位置にボタンイメージが表示され、その手の位置で入力操作を行うことができるので、子供であっても簡単に入力操作を行うことができる。したがって、ユーザが子供であっても、例えばオーディオ機器を操作して、好きな音楽を再生することも十分に可能である。
また、例えばパソコンやATM(Automatic Teller Machine)等の電子機器の入力装置として入力装置1を適用した場合には、パスワードの入力や指紋等の読み取りといった特別な動作を行うことなくユーザの認証を行い、認証に成功した場合のみ入力操作を有効にすることも可能になる。
さらに、手の大きさに応じて入力操作を制限することもできる。例えば、手の大きさが所定より小さい場合には、入力操作を受け付けないようにすることにより、子供が電子機器を誤って操作してしまうことを防ぐことができる。
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。