(57)【要約】【課題】ユーザの手形状を手モデルに忠実に反映できる入力装置を提供する。【解決手段】指を伸ばした初期状態からの接触領域の移動量および接触領域の面積の変化を算出し、その接触領域の面積の変化に基づいて指曲げによる移動量を算出し、その指曲げによる移動量に基づいて各指関節の曲り角度を算出する。また、初期状態からの接触領域の移動量および指曲げによる移動量に基づいてＣＧモデルの平行移動量を算出する。算出した各指関節の曲り角度および平行移動量に基づいて、ＣＧモデルの変形形状を決定する。そして、変形形状が決定されたＣＧモデルと保持されているＧＵＩパーツとを重畳した画像を作成して表示部に表示させ、ＧＵＩパーツとＣＧモデルの指先との衝突を判定し、衝突が判定されると、衝突が判定されたＧＵＩパーツに割当てられたコマンドを機器に送信する。【選択図】図２
2010097530.tif 000002
【特許請求の範囲】
【請求項１】
操作面に置かれた手のＣＧモデルを表示部に表示して機器を操作する入力装置であって、
前記操作面と前記手との複数の接触領域を検知する接触領域検知部と、
前記手の指を伸ばした初期状態からの前記接触領域の移動量を算出する移動量算出部と、
前記初期状態からの前記接触領域の面積の変化に基づいて各指先位置の指曲げによる移動量を算出する指曲げ移動量算出部と、
前記各指先位置の指曲げによる移動量に基づいて前記ＣＧモデルの各指関節の曲り角度を算出する指曲り角度算出部と、
前記初期状態からの前記接触領域の移動量と前記各指先位置の指曲げによる移動量とに基づいて、前記ＣＧモデルの平行移動量を算出する平行移動量算出部と、
前記ＣＧモデルの平行移動量および各指関節の曲り角度に基づいて、前記ＣＧモデルの位置および変形形状を決定するモデル形状決定部と、
前記機器に対するコマンドを割り当てたＧＵＩパーツを保持するＧＵＩパーツ保持部と、
前記モデル形状決定部で形状が決定された前記ＣＧモデルと前記ＧＵＩパーツ保持部に保持されたＧＵＩパーツとを重畳した画像を作成して前記表示部に表示させる重畳画像作成部と、
前記ＧＵＩパーツと前記ＣＧモデルの指先との衝突を判定する衝突判定部と、
前記衝突判定部によって衝突が判定されると、当該衝突が判定されたＧＵＩパーツに割当てられたコマンドを前記機器に送信するコマンド送信部とを備える、入力装置。
【請求項２】
操作面に置かれた手のＣＧモデルを表示部に表示して機器を操作する入力装置であって、
前記操作面と前記手との複数の接触領域を検知する接触領域検知部と、
前記初期状態からの前記接触領域の面積の変化に基づいて各指先位置の指曲げによる移動量を算出する指曲げ移動量算出部と、
前記各指先位置の指曲げによる移動量に基づいて前記ＣＧモデルの各指関節の曲り角度を算出する指曲り角度算出部と、
前記ＣＧモデルの各指関節の曲り角度に基づいて、前記ＣＧモデルの変形形状を決定し、当該形状が決定されたＣＧモデルの各指先位置が前記複数の接触領域に合うように移動させる位置を決定するモデル形状決定部と、
前記機器に対するコマンドを割り当てたＧＵＩパーツを保持するＧＵＩパーツ保持部と、
前記モデル形状決定部で形状が決定された前記ＣＧモデルと前記ＧＵＩパーツ保持部に保持されたＧＵＩパーツとを重畳した画像を作成して前記表示部に表示させる重畳画像作成部と、
前記ＧＵＩパーツと前記ＣＧモデルの指先との衝突を判定する衝突判定部と、
前記衝突判定部によって衝突が判定されると、当該衝突が判定されたＧＵＩパーツに割当てられたコマンドを前記機器に送信するコマンド送信部とを備える、入力装置。
【請求項３】
操作面に置かれた手のＣＧモデルを表示部に表示して機器を操作する入力方法であって、
前記操作面と前記手との複数の接触領域を検知する接触領域検知ステップと、
前記手の指を伸ばした初期状態からの前記接触領域の移動量を算出する移動量算出ステップと、
前記初期状態からの前記接触領域の面積の変化に基づいて各指先位置の指曲げによる移動量を算出する指曲げ移動量算出ステップと、
前記各指先位置の指曲げによる移動量に基づいて前記ＣＧモデルの各指関節の曲り角度を算出する指曲り角度算出ステップと、
前記初期状態からの前記接触領域の移動量と前記各指先位置の指曲げによる移動量とに基づいて、前記ＣＧモデルの平行移動量を算出する平行移動量算出ステップと、
前記ＣＧモデルの平行移動量および各指関節の曲り角度に基づいて、前記ＣＧモデルの位置および変形形状を決定するモデル形状決定ステップと、
前記モデル形状決定ステップで形状が決定された前記ＣＧモデルと、前記機器に対するコマンドを割り当てた予め保持されているＧＵＩパーツとを重畳した画像を作成して前記表示部に表示させる重畳画像作成ステップと、
前記ＧＵＩパーツと前記ＣＧモデルの指先との衝突を判定する衝突判定ステップと、
前記衝突判定ステップによって衝突が判定されると、当該衝突が判定されたＧＵＩパーツに割当てられたコマンドを前記機器に送信するコマンド送信ステップとを備える、入力方法。
【請求項４】
操作面に置かれた手のＣＧモデルを表示部に表示して機器を操作する入力方法であって、
前記操作面と前記手との複数の接触領域を検知する接触領域検知ステップと、
前記初期状態からの前記接触領域の面積の変化に基づいて各指先位置の指曲げによる移動量を算出する指曲げ移動量算出ステップと、
前記各指先位置の指曲げによる移動量に基づいて前記ＣＧモデルの各指関節の曲り角度を算出する指曲り角度算出ステップと、
前記ＣＧモデルの各指関節の曲り角度に基づいて、前記ＣＧモデルの変形形状を決定し、当該形状が決定されたＣＧモデルの各指先位置が前記複数の接触領域に合うように移動させる位置を決定するモデル形状決定ステップと、
前記モデル形状決定ステップで形状が決定された前記ＣＧモデルと、前記機器に対するコマンドを割り当てた予め保持されているＧＵＩパーツとを重畳した画像を作成して前記表示部に表示させる重畳画像作成ステップと、
前記ＧＵＩパーツと前記ＣＧモデルの指先との衝突を判定する衝突判定ステップと、
前記衝突判定ステップによって衝突が判定されると、当該衝突が判定されたＧＵＩパーツに割当てられたコマンドを前記機器に送信するコマンド送信ステップとを備える、入力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが機器に対して命令等を入力するための入力装置および入力方法に関し、より特定的には、ユーザがディスプレイ等に表示された情報に基づいて手等の身体部分を用いて、命令等を入力することのできる入力装置および入力方法に関する。
【背景技術】
【０００２】
近年の情報機器端末の多機能化に伴って、ユーザがより使い易いユーザインターフェイスが求められている。使い易いユーザインターフェイスの一例として、タッチパネルディスプレイがある。タッチパネルディスプレイは、ディスプレイに表示されるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）パーツを押す操作をすることによって、ユーザが命令等を情報機器端末等に入力する装置である。このことから、タッチパネルディスプレイは、初心者でも直感的に操作できるインターフェイスと言える。
【０００３】
しかし、タッチパネルディスプレイにおいては、タッチを検知するデバイス（以下、操作部という）と表示部とが一体であるので、当該タッチパネルディスプレイがユーザの手元にないと操作できないという課題があった。
【０００４】
この課題を解決するために、特許文献１の技術は、操作部と表示部とを分離し、操作部に置かれた操作者の手を検知し、コンピュータグラフィック（以下、ＣＧという）の手形状モデル（以下、単に、手モデルという）を、表示部に表示されるＧＵＩに重畳して表示する。このことによって、ユーザは、表示部から離れている場合でも、タッチパネルディスプレイの直感的な操作感を維持した操作を行うことができる。
【特許文献１】特開２００６−７２８５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した従来の技術は、操作者であるユーザの指の曲りを算出できないので、ユーザが指を曲げて操作を行った場合には、ユーザの手形状と大幅に異なる形状の
手モデルを表示部に表示する。この結果として、操作中にユーザが違和感を感じるという問題があった。
【課題を解決するための手段】
【０００６】
本発明の第１の局面は、操作面に置かれた手のＣＧモデルを表示部に表示して機器を操作する入力装置であって、操作面と手との複数の接触領域を検知する接触領域検知部と、手の指を伸ばした初期状態からの接触領域の移動量を算出する移動量算出部と、初期状態からの接触領域の面積の変化に基づいて各指先位置の指曲げによる移動量を算出する指曲げ移動量算出部と、各指先位置の指曲げによる移動量に基づいてＣＧモデルの各指関節の曲り角度を算出する指曲り角度算出部と、初期状態からの接触領域の移動量と各指先位置の指曲げによる移動量とに基づいて、ＣＧモデルの平行移動量を算出する平行移動量算出部と、ＣＧモデルの平行移動量および各指関節の曲り角度に基づいて、ＣＧモデルの位置および変形形状を決定するモデル形状決定部と、機器に対するコマンドを割り当てたＧＵＩパーツを保持するＧＵＩパーツ保持部と、モデル形状決定部で形状が決定されたＣＧモデルとＧＵＩパーツ保持部に保持されたＧＵＩパーツとを重畳した画像を作成して表示部に表示させる重畳画像作成部と、ＧＵＩパーツとＣＧモデルの指先との衝突を判定する衝突判定部と、衝突判定部によって衝突が判定されると、当該衝突が判定されたＧＵＩパーツに割当てられたコマンドを機器に送信するコマンド送信部とを備える。
【０００７】
本発明の第２の局面は、操作面に置かれた手のＣＧモデルを表示部に表示して機器を操作する入力装置であって、操作面と手との複数の接触領域を検知する接触領域検知部と、初期状態からの接触領域の面積の変化に基づいて各指先位置の指曲げによる移動量を算出する指曲げ移動量算出部と、各指先位置の指曲げによる移動量に基づいてＣＧモデルの各指関節の曲り角度を算出する指曲り角度算出部と、ＣＧモデルの各指関節の曲り角度に基づいて、ＣＧモデルの変形形状を決定し、当該形状が決定されたＣＧモデルの各指先位置が複数の接触領域に合うように移動させる位置を決定するモデル形状決定部と、機器に対するコマンドを割り当てたＧＵＩパーツを保持するＧＵＩパーツ保持部と、モデル形状決定部で形状が決定されたＣＧモデルとＧＵＩパーツ保持部に保持されたＧＵＩパーツとを重畳した画像を作成して表示部に表示させる重畳画像作成部と、ＧＵＩパーツとＣＧモデルの指先との衝突を判定する衝突判定部と、衝突判定部によって衝突が判定されると、当該衝突が判定されたＧＵＩパーツに割当てられたコマンドを機器に送信するコマンド送信部とを備える。
【０００８】
本発明の第３の局面は、操作面に置かれた手のＣＧモデルを表示部に表示して機器を操作する入力方法に向けられている。そして、上記目的を達成させるために、本発明の入力方法は、操作面と手との複数の接触領域を検知する接触領域検知ステップと、手の指を伸ばした初期状態からの接触領域の移動量を算出する移動量算出ステップと、初期状態からの接触領域の面積の変化に基づいて各指先位置の指曲げによる移動量を算出する指曲げ移動量算出ステップと、各指先位置の指曲げによる移動量に基づいてＣＧモデルの各指関節の曲り角度を算出する指曲り角度算出ステップと、初期状態からの接触領域の移動量と各指先位置の指曲げによる移動量とに基づいて、ＣＧモデルの平行移動量を算出する平行移動量算出ステップと、ＣＧモデルの平行移動量および各指関節の曲り角度に基づいて、ＣＧモデルの位置および変形形状を決定するモデル形状決定ステップと、モデル形状決定ステップで形状が決定された前記ＣＧモデルと、機器に対するコマンドを割り当てた予め保持されているＧＵＩパーツとを重畳した画像を作成して表示部に表示させる重畳画像作成ステップと、ＧＵＩパーツとＣＧモデルの指先との衝突を判定する衝突判定ステップと、衝突判定ステップによって衝突が判定されると、当該衝突が判定されたＧＵＩパーツに割当てられたコマンドを前記機器に送信するコマンド送信ステップとを備える。
【０００９】
本発明の第４の局面は、操作面に置かれた手のＣＧモデルを表示部に表示して機器を操作する入力方法に向けられている。そして、上記目的を達成させるために、本発明の入力方法は、操作面と手との複数の接触領域を検知する接触領域検知ステップと、初期状態からの接触領域の面積の変化に基づいて各指先位置の指曲げによる移動量を算出する指曲げ移動量算出ステップと、各指先位置の指曲げによる移動量に基づいてＣＧモデルの各指関節の曲り角度を算出する指曲り角度算出ステップと、ＣＧモデルの各指関節の曲り角度に基づいて、ＣＧモデルの変形形状を決定し、当該形状が決定されたＣＧモデルの各指先位置が複数の接触領域に合うように移動させる位置を決定するモデル形状決定ステップと、モデル形状決定ステップで形状が決定されたＣＧモデルと、機器に対するコマンドを割り当てた予め保持されているＧＵＩパーツとを重畳した画像を作成して表示部に表示させる重畳画像作成ステップと、ＧＵＩパーツとＣＧモデルの指先との衝突を判定する衝突判定ステップと、衝突判定ステップによって衝突が判定されると、当該衝突が判定されたＧＵＩパーツに割当てられたコマンドを機器に送信するコマンド送信ステップとを備える
これら本発明の第１〜４の局面の入力装置、入力方法によれば、操作者の手の動きをＣＧモデルに反映させることができ、更に、操作者の各指の動きまでもＣＧモデルに反映させることができる。
【発明の効果】
【００１０】
本発明の入力装置および入力方法によれば、ユーザが指を曲げて操作した場合であっても、ユーザの手形状を手モデルに忠実に反映できる。この結果として、本発明の入力装置および入力方法によれば、ユーザは、違和感を感じることなく操作を行うことができる。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明の実施形態に係る入力装置１００の動作の概要を説明するための図である。以下では、図１を用いて、入力装置１００の動作について簡単に説明する。
【００１２】
図１に示す通り、入力装置１００は、接触領域検知部１と演算部２とを備える。接触領域検知部１は、当該接触領域検知部１の操作面上に置いたユーザ（以下、操作者という）の手が接触した領域を検出し、検出した接触領域の情報（以下、単に、接触領域情報という）を演算部２に出力する。接触領域検知部１は、例えば、多点で接触を検知するタッチパッドである。なお、接触領域検知部１は、複数点の接触を検知できればよく、光学式、静電容量方式、感圧方式、抵抗膜方式等を用いる一般的なデバイスでよい。
【００１３】
演算部２は、接触領域検知部１が検知した接触領域情報を用いて表示データを作成して表示部３に出力する。具体的には、演算部２は、接触領域情報を用いてＣＧの手モデルを作成し、当該手モデルをＧＵＩに重畳した表示データを作成して表示部３に出力する。また、演算部２は、作成した手モデルとＧＵＩパーツとの位置関係を用いて操作者が意図するコマンドを決定し、決定したコマンドを情報端末機器等である操作対象機器４に出力する。なお、演算部２は、一般的なパーソナルコンピュータ（以下、ＰＣという）でもよいし、専用のグラフィックＩＣ等を組み込んだ汎用性のない専用機でもよい。また、演算部２は、接触領域検知部１から入力される信号を受信するインターフェイスと、ＣＰＵ、ＲＯＭ、ＲＡＭと、各モジュール間を結ぶバスと、計算結果を映像として出力するインターフェイスとを含む。
【００１４】
表示部３は、演算部２から入力された表示データを用いて表示を行う。表示部３は、例えば、液晶ディスプレイやＣＲＴ等のディスプレイである。操作対象機器４は、演算部２から入力されたコマンドを実行する。
【００１５】
以上の構成によって、操作者は、表示部３に表示されたＧＵＩパーツ上に重畳された手モデルを目視しながら、接触領域検知部１の操作面上の手を動かして手モデルを操作することによって、操作対象機器４を操作することができる。
【００１６】
以下では、入力装置１００の構成および動作について詳しく説明する。図２は、入力装置１００の構成例を示す図である。図２に示すように、入力装置１００は、接触領域検知部１と演算部２とを備える。演算部２は、移動量算出部１２と、指曲げ移動量算出部１３と、指曲り角度算出部１４と、平行移動量算出部１５と、モデル保持部１６と、モデル形状決定部１７と、ＧＵＩパーツ保持部１８と、重畳画像作成部１９と、衝突判定部２０と、コマンド送信部２１とを含む。
【００１７】
図３は、入力装置１００の動作を説明するためのフローチャートである。操作者等によってスタートスイッチがオンにされると、入力装置１００は動作を開始する。
【００１８】
まず、ステップＳ１０１において、接触領域検知部１は、当該接触領域検知部１の操作面上に操作者の手が置かれているか否かを判定する。操作者の手が置かれていない場合、接触領域検知部１は、処理待ち状態となり、操作者の手が置かれると、ステップＳ１０２に移る。なお、ステップＳ１０１における判定は、接触が検知されたか否かによって行うことができる。
【００１９】
次に、ステップＳ１０２において、接触領域検知部１は、操作者の手が当該接触領域検知部１に接触している領域を点群（以下、接触点群という）として検知し、検知した接触点群のデータを移動量算出部１２に出力する。移動量算出部１２は、入力された接触点群のデータを用いて、操作者の４つの指先の位置を示す点（以下、指先位置点という）と接触面積を取得する。なお、４つの指先位置点と接触面積を取得する方法は、後に詳細に説明する。
【００２０】
次に、ステップＳ１０３において、移動量算出部１２は、４つの指先位置点を取得するまで待機し、取得するとステップＳ１０４に移る。
【００２１】
ステップＳ１０４において、移動量算出部１２は、操作者が手を開いた状態（指を伸ばした状態）の指先位置点である初期位置点と基準接触面積が取得済みか否かを判定する。初期位置点と基準接触面積が取得済みの場合は、ステップＳ１０６に移る。初期位置点と基準接触面積が取得済みでない場合は、ステップＳ１０５に移る。ここで、初期位置点と基準接触面積が取得済みか否かの判定は、入力装置１００が今回起動した後に初期位置点と基準接触面積を取得したか否かを判定するものである。
【００２２】
ステップＳ１０５において、移動量算出部１２は、操作者に接触領域検知部１に置いた手を開くように促すメッセージを通知して初期位置点と基準接触面積を取得する。このメッセージは、例えば、表示部３に表示されて操作者に通知される。その後、移動量算出部１２は、取得した初期位置点を用いて操作者が手を開いた状態の手モデル（以下、初期手モデルという）を作成する。ステップＳ１０５で取得された初期位置点、基準接触面積および初期手モデルのデータは、モデル保持部１６に保存される。その後、ステップＳ１０２に戻る。つまり、入力装置１００は、起動後最初に操作者が手を接触領域検知部１に置いた時点で、初期位置点、基準接触面積および初期手モデルを取得する。初期位置点、基準接触面積および初期手モデルの取得方法は、後に詳細に説明する。
【００２３】
なお、操作者が交代した場合や、操作者の左右の手が入れ替わった場合には、既に取得済みの初期位置点、基準接触面積および初期手モデルを破棄し、ステップＳ１０５の動作を再度行うことで初期位置点、基準接触面積および初期手モデルを更新してもよい。また、初期位置点、基準接触面積および初期手モデルを起動毎に取得せず、操作者の指示に応答してステップＳ１０５の動作を行うことによって、初期位置点、基準接触面積および初期手モデルを新たに取得してもよい。また、ステップＳ１０１において接触領域検知部１が所定期間手の接触を検知しない場合には、既に取得済みの初期位置点、基準接触面積および初期手モデルを破棄し、ステップＳ１０５の動作を再度行って新たな初期位置点、基準接触面積および初期手モデルを取得してもよい。
【００２４】
ステップＳ１０６において、移動量算出部１２は、指先位置点の初期位置点からの移動量と、現在の接触面積の基準接触面積からの変化量とをそれぞれ取得する。このステップＳ１０６の処理については、後に詳細に説明する。
【００２５】
次に、ステップＳ１０７において、指曲げ移動量算出部１３は、ステップＳ１０６で取得した接触面積の変化量を用いて、指曲げによる各指先位置点の移動量を算出する。そして、指曲り角度算出部１４は、算出された指曲げによる各指先位置点の移動量を用いて、手モデルの各指関節の曲り角度を算出する。このステップＳ１０７の処理については、後に詳細に説明する。
【００２６】
次に、ステップＳ１０８において、平行移動量算出部１５は、ステップＳ１０６で取得した指先位置点の初期位置点からの移動量と、ステップＳ１０７で取得した指曲げによる各指先位置点の移動量とに基づいて、手モデルの平行移動量を決定する。この平行移動量を決定する方法については、後に詳細に説明する。
【００２７】
次に、ステップＳ１０９において、モデル形状決定部１７は、ステップＳ１０７およびＳ１０８で決定された手モデルの各指関節の曲り角度、平行移動量を用いて、モデル保持部１６に保持された手モデルを読出して変形を反映させる。ここで、モデル保持部１６に初期手モデルが保持されている場合には、当該初期手モデルを読出して変形を反映させる。
【００２８】
なお、モデル保持部１６に保持される手モデルは、一般的な骨格（以下、ボーン構造という）を持つＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）モデルであることが好ましい。モデル保持部１６が保持する手モデルの一例を図４に示す。図４に示す手モデルは、複数のポリゴンとボーン構造を示すラインとから構成される。また、手モデルをモデル保持部１６に保持するファイル形式は、一般的な形式でよい。一例として、ポリゴンの頂点座標を格納したファイル形式が挙げられる。また、手モデルは、併せてテクスチャ情報も保持し、手モデルの現実感を増幅させてもよい。
【００２９】
次に、ステップＳ１１０において、重畳画像作成部１９は、ＧＵＩパーツ保持部１８が予め保持しているＧＵＩパーツを読み出し、読出したＧＵＩパーツを配置した操作画像を作成する。ここで、ＧＵＩパーツとは、表示部３に表示される制御命令を割り当てたボタン等である。なお、ＧＵＩパーツおよびその配置方法は、一般的なものでよい。その後、重畳画像作成部１９は、ステップＳ１０９で変形を反映された手モデルと、ＧＵＩパーツが配置された操作画像とを重畳して重畳画像を作成し、当該重畳画像を表示部３に表示する。
【００３０】
次に、ステップＳ１１１において、衝突判定部２０は、ＧＵＩパーツと手モデルの指先位置点との衝突の有無を判定する。この衝突判定の詳細は、後述する。衝突がないと判定されている場合は、ステップＳ１０１〜Ｓ１１１の処理が繰り返されて、操作者の手の動きに応じて重畳画像内の手モデルが変形する。衝突が有ると判定されると、衝突判定部２０は、衝突が有ったＧＵＩパーツに割当てられたコマンドをコマンド送信部２１に通知し、ステップＳ１１２に移る。
【００３１】
ステップＳ１１２において、コマンド送信部２１は、通知されたコマンドを操作対象機器４に送信し、ステップＳ１０１に戻る。操作対象機器４は、送信されたコマンドを受信して実行する。以上の処理が繰り返されることによって、入力装置１００は、コマンドの送信を繰り返して操作対象機器４を操作する。なお、操作者等によってスタートスイッチがオフにされると処理は終了する。
【００３２】
以上に説明した動作によって、操作者は、表示部３に表示された重畳画像を目視しながら手を動かすことによって、重畳画像内の手モデルを操作できる。そして、操作者は、手モデルを操作して指先の位置をＧＵＩパーツに重ね合わせることによって、操作対象機器４を操作できることとなる。
【００３３】
以下では、図３を用いて説明した各ステップについて、詳細に説明する。
【００３４】
図５は、図３のステップＳ１０１およびＳ１０２における接触領域検知部１の動作について説明するための図である。図５（ａ）は、接触領域検知部１の操作面に操作者の手が置かれた状態の一例を示す。図５（ｂ）は、接触領域検知部１が検知した接触点群を黒丸群で表した図である。図５に示すように、接触領域検知部１は、図３のステップＳ１０１およびＳ１０２において、接触点（接触点群）を検知することによって、手の接触領域を検知する。
【００３５】
図６は、図３のステップＳ１０２を詳細に説明するためのフローチャートである。図７は、図３のステップＳ１０２で取得される指先位置点の算出方法について説明するための図ある。以下、図６および図７を用いて、図３のステップＳ１０２の処理を詳細に説明する。
【００３６】
まず、Ｓ１０２−１において、移動量算出部１２は、接触領域検知部１から図５（ｂ）を用いて説明した接触点群を示すデータを取得する。
【００３７】
次に、ステップＳ１０２−２において、移動量算出部１２は、接触点の位置関係に基づいて、図７の楕円で示す複数の領域を算出する。Ｓ１０２−２において複数の領域を算出する方法は、一般的な方法でよい。例えば、接触点の近傍に他の接触点が存在する場合はこれらの接触点を同一の領域とみなすことによって、複数の領域に区分する方法がある。
【００３８】
次に、ステップＳ１０２−３において、移動量算出部１２は、ステップＳ１０２−２で算出した各領域に対して、楕円フィッティング処理を行う。ステップＳ１０２−３において、移動量算出部１２は、図７（ａ）の楕円Ａで示すように指の接触点群を楕円で囲む。その後、移動量算出部１２は、例えば、楕円Ａの中心を指先位置点とする（図７（ｂ）を参照）。なお、指先位置点は、他の方法を用い、また、他の位置に決定してもよい。
【００３９】
指先位置点を決定した後、各指先位置点について接触面積を求める。接触面積は、各指先が操作面に接触している面積で、例えば、上記の様に指先位置点を楕円フィッティングで求めた場合には楕円の面積を計算することで求めることができる。また、各領域内にある接触点の数を接触面積とすることもできる。
【００４０】
次に、ステップＳ１０２−４において、移動量算出部１２は、ステップＳ１０２−３で取得した指先位置点の位置と接触面積をＲＡＭ（図２には図示せず）に保存する。図８は、図６のステップＳ１０２−３で取得された指先位置点の位置の一例を示す図である。図８において、黒丸は指先位置点８０１、点線の楕円８０２は接触面積の領域を示している。
【００４１】
図９は、図３のステップＳ１０５の処理を詳しく説明するためのフローチャートである。まず、ステップＳ１０５−１において、移動量算出部１２は、操作者に接触領域検知部１の操作面上の手を開くように促すメッセージを通知して４つの初期位置点および基準接触面積を取得する。この基準接触面積は、操作者の手が開いている状態の接触面積であり、このとき接触領域検知部１の操作面に指の腹が接触している。そのため接触面積は最大となる。この接触面積が最大となるものを基準接触面積としてＲＡＭ（図２には図示せず）に保存する。ただし、予め設定した閾値以上の面積を検知した場合は、ノイズ、もしくは誤入力とし、基準接触面積を取得しなおす。後述する様に、操作者が指を曲げていくと、接触部分は指の腹から爪先の方に移っていくため、接触面積は徐々に小さくなっていく。
【００４２】
次に、ステップＳ１０５−２において、移動量算出部１２は、ステップＳ１０５−１で取得した初期位置点（指先位置点）と、モデル保持部１６が当初から保持しているひな形であるひな形手モデルの対応する指先位置点とが重なるように、当該ひな形手モデルを変形して初期手モデルを作成する。ここで、４つの初期位置点は、それぞれ小指、薬指、中指、人差し指に対応する。操作者の操作が左手に限定される場合には、左手のひな形手モデルを使用して、左から小指、薬指、中指、人差し指の順番に初期位置点とが重なるように、当該ひな形手モデルを変形して初期手モデルを作成する。
【００４３】
ここで、初期手モデルを作成する際には、接触領域検知部１に対して操作者がどの方向から手を進入させたかを知る必要がある。逆方向から手を進入させた場合には、同じ４つの初期位置点であっても、初期手モデルが反対向きに作成されてしまう。そのため、接触領域検知部１に対して操作者がどの方向から手を進入させるかは、予め分っているものとする。
【００４４】
図１０は接触領域検知部１の車への設置位置の例を示している。図１０（ａ）は車両のセンターコンソールに取り付けられた場合の一例を示す図である。図１０（ｂ）は、接触領域検知部１が車両のドアの操作部に取り付けられた場合の一例を示す図である。図１０（ｃ）は、接触領域検知部１が車両のハンドルに取り付けられた場合の一例を示す図である。図１０（ａ）に示すような車両の位置に、接触領域検知部１を取り付けることで、ドライバである操作者は接触領域検知部１に対して左手を矢印１００１の方向に進入させることは予め分る。また、図１０（ｂ）に示すような車両の位置に、接触領域検知部１を取り付けることで、ドライバである操作者は接触領域検知部１に対して右手を矢印１００２の方向に進入させることは予め分る。図１０（ｃ）の場合には、ドライバである操作者は接触領域検知部１に対して手を矢印１００３の方向に進入させることは予め分る。ただ、この場合には、操作者が右手で操作するか左手で操作するかは分らないため、事前に操作者の好みで右手もしくは左手で操作するかの情報を入力できる様にしておけばよい。
【００４５】
また、操作者が右手もしくは左手で操作する場合には、通常は小指は他の指と比較して小さく、操作面との接触面積も小さいため、ステップＳ１０２で取得した接触面積が最も小さい領域を小指と判断し、他の領域との位置関係から右手か左手かを特定することもできる。すなわち、小指と特定された領域が他の３つの領域より、最も左側に存在すれば左手と判断し、左手のひな形手モデルを変形する。逆に、小指と特定された領域が他の３つの領域より、最も右側に存在すれば右手と判断し、右手のひな形手モデルを変形する。
【００４６】
図９に戻り、その後、移動量算出部１２は、作成した初期手モデルを、表示部３に表示する。この処理によって、移動量算出部１２は、操作者の手の大きさを反映した初期手モデルを作成し、表示部３に表示できる。
【００４７】
次に、ステップＳ１０５−３において、移動量算出部１２は、ステップＳ１０５−１で取得した初期位置点の位置、基準接触面積と、ステップＳ１０５−２で作成した初期手モデルとをモデル保持部１６に保存し、ステップＳ１０２に戻る（図３を参照）。
【００４８】
図１１は、図３のステップＳ１０６の処理を説明するためのフローチャートである。図１１において、ステップＳ１０６−１において、移動量算出部１２は、現在の指先位置点の初期位置点からの移動量を算出する。ここで、各点の移動量を取得するために、移動後の各点と初期位置の各点との対応をとる方法は、一般的な手法でよい。
【００４９】
図１２は、操作者が指を曲げたときの各指先位置の接触領域の変化を示しており、図１２（ａ）は初期状態の場合を示しており、図１２（ｂ）は操作者が手全体は動かさずに４つの指を曲げた場合を示している。ここで、各指先位置の接触領域を黒の楕円で示している。指を曲げることにより操作面と指との接触位置が、各指の腹の部分から、爪の方に移動するため、接触面積は小さくなる。逆に、指を曲げた状態から伸ばすと、その接触面積は大きくなる。ここで、移動量算出部１２が算出する現在の指先位置点の初期位置点からの移動量は、図１２（ｂ）の矢印で示ように、対応する指の各座標値から算出することができる。
【００５０】
次に、ステップＳ１０６−２において、移動量算出部１２は、現在の接触面積の基準接触面積からの変化量を算出する。現在の接触面積の基準接触面積からの変化量は、図１２に示すように、対応する指の各接触面積から算出することができる。ここで、接触面積は操作者の指の大きさなどにより個人差があるため、接触面積の変化量は、変化率として算出する方が好ましい。
【００５１】
次に、ステップＳ１０６−３において、移動量算出部１２は、ステップＳ１０６−１で取得した指先位置点の移動量と、ステップＳ１０６−２で算出した接触面積の変化量をＲＡＭ（図２に図示せず）に保存し、ステップＳ１０７に進む（図３を参照）。
【００５２】
次に、図３のステップＳ１０７の処理について詳細に説明する。ステップＳ１０７において、指曲げ移動量算出部１３は、ステップＳ１０６で取得した接触面積の変化量を用いて、手モデルの指曲げによる各指先位置点の移動量を決定する。
【００５３】
図１３は、図１２に示したのと同様に、操作者が初期状態から指を徐々に曲げた場合の各指先位置の接触面積の変化率の一例を示す図である。図１３において、表の下側の図は、各状態での操作面上に置いた指を側面から見た様子を表している。左端の図は初期状態で、前述したように手を開いて操作面上に置いた状態を表している。このときの接触面積は、基準接触面積となり最大である。指を曲げることにより操作面と指との接触位置が、各指の腹の部分から、爪の方に移動するため、接触面積は小さくなる。
【００５４】
図１３の右端の図は、指を曲げて指先に最も近い関節（遠位指節間関節）と、指先位置点を結ぶ直線が操作面に対して垂直な状態（以下、対操作面垂直状態という）を表している。図１３の真中の図は、両者の中間状態を表している。ここで、図１３の初期状態の指先位置点（初期位置点）をゼロ点とし、対操作面垂直状態の指先位置点への移動量をＡとすると、中間状態の指先位置点への移動量はＡ／２である。
【００５５】
図１３の表の各数値は、各指について初期状態の基準接触面積を基準にした、各状態での接触面積の変化率を表している。図１３に示すように、指先位置点の移動量（初期位置点が０）に対して、接触面積の変化率は線形には変化していない。図１３の様な表を用いて、もしくはそれから求めた近似関数を用いることにより、指先位置での接触面積の変化率が分れば、指曲げによる指先位置点の移動量は算出できる。
【００５６】
ここで、各指先位置の接触面積の変化率は、操作者によるばらつきも考えられるため、複数人の実験値から平均値を求め、予め図１３の様な表として、もしくは平均値から算出される近似関数として、モデル保持部１６に記憶しておくこともできる。
【００５７】
また、図３のステップＳ１０５で初期位置点と基準接触面積を取得する際に、図１３に示すように、操作者に指を曲げるように促すメッセージを通知して、初期位置点、基準接触面積と共に、各状態での指先位置点と接触面積を取得してもよい。そのようにすることで、操作者に合わせた各指先位置の接触面積の変化率が取得できるため、ユーザの手形状を手モデルにより忠実に反映できる。
【００５８】
なお、操作面への指の押し付け方により、接触面積は多少変化することが考えられるため、一定時間内の接触面積の変化について所定の閾値を予め設定しておき、接触面積の変化率の絶対値が所定の閾値より大きい場合に接触面積が変化したと判断しても良い。そのため、ある一定の閾値以下の変化率であった場合は、指曲げによる指先位置点の移動量の算出を行わず、面積変化無しとして処理することが考えられる。また、予め設定した時間内の接触面積の変化率の絶対値が、所定の閾値より小さいが接触面積が増加、もしくは減少し続けている場合は、操作者が意図的に指曲げを行っていると判断し、予め設定した時間後に指曲げによる指先位置点の移動量を決定してもよい。
【００５９】
以上の様に求めた各指の指曲げによる指先位置点の移動量を用いて、指曲り角度算出部１４は、各指の各関節の曲り角度を決定する。ここで、指先の変位から指関節の曲り角度を求める方法として、ロボット工学分野等で周知であるインバースキネマティクス（以下、ＩＫという）技術がある。ＩＫ技術は、複数の可動部を持つアームの先端を目的位置に移動させるために用いられる。そして、アームが複数の可動部を持つ場合、ＩＫ技術を用いて目的位置にアームの先端を移動させるためには、可動部の曲り角度には複数の解が存在する。
【００６０】
本発明においても、指には複数の関節があるので、指関節の曲り角度には複数の解が存在する。このため、本発明では、一例として、操作者の掌および指先は操作面上（同一平面上）に存在するという拘束条件と、各指関節の曲り角度は等しいという拘束条件とを用いて、解を一意に求める。
【００６１】
図１４（ａ）は、一例として、人差し指を曲げた場合の指先位置点の変位を示している。図１４（ｂ）は、図１４（ａ）に示す曲げた状態の人差し指１４００の手モデルを側面から見た図である。図１４から分るように、通常、指を曲げると３つの指関節は同時に曲がるので、各指関節の曲り角度１４０１〜１４０３は等しいという拘束条件を用いて手モデルを変形すると、操作者は違和感無く操作を行うことができる。また、この様な拘束条件を用いて手モデルを変形すると、演算量が大幅に低減できるので、操作者の手の動きに瞬時に応答する手モデルの変形が可能である。
【００６２】
なお、指関節の曲り角度を算出するための拘束条件は、これには限定されず、解を一意に求めらる拘束条件であればよい。しかし、上記したように、指関節の曲り角度を算出するための拘束条件は、操作者が違和感を感じない手モデルとなる拘束条件が好ましく、操作者の操作行為が自然に行える手モデルとなる拘束条件が好ましい。また、ＩＫ技術において目的位置からアーム可動部の曲り角度を求める方法として、ヤコビ行列を用いて繰り返し計算を行う方法や幾何学的に算出する方法等が知られているが、本発明においてはいずれを用いてもよい。
【００６３】
以上に説明した図３のステップＳ１０７の処理を行い、指曲げ移動量算出部１３は指曲げによる各指先位置点の移動量を算出し、指曲り角度算出部１４は各指関節の曲り角度を算出する。そして、指曲げ移動量算出部１３および指曲り角度算出部１４は、算出した手モデルの各指先位置点の移動量および各指関節の曲り角度をＲＡＭ（図２に図示せず）に保存する。
【００６４】
次に、図３のステップＳ１０８の処理について詳細に説明する。ステップＳ１０８において、平行移動量算出部１５は、ステップＳ１０６で取得した指先位置点の初期位置点からの移動量と、ステップＳ１０７で取得した指曲げによる各指先位置点の移動量とに基づいて、手モデルの平行移動量を算出する。操作者が指を曲げずに手全体を動かして操作面上を平行移動させた場合、指先位置点は変化するが、指先位置での接触面積は変化しない。そのため、平行移動量算出部１５は、ステップＳ１０６で取得した指先位置点の初期位置点からの移動量と、ステップＳ１０７で取得した指曲げによる各指先位置点の移動量をＲＡＭから読み出す。そして、読み出した指先位置点の初期位置点からの移動量から、指曲げによる各指先位置点の移動量を引くことで、手モデルの平行移動量を算出し、ＲＡＭ（図２に図示せず）に保存する。
【００６５】
次に、図３のステップＳ１０９の処理について詳細に説明する。図１５は、図３のステップＳ１０９の処理を説明するためのフローチャートである。図１５のフローチャートの処理によって、ステップＳ１０７およびＳ１０８で決定された各値を用いて手モデルの変形形状が決定される。以下では、図１５を参照して、図３のステップＳ１０９処理について詳しく説明する。
【００６６】
まず、ステップＳ１０９−１において、モデル形状決定部１７は、ステップＳ１０８で決定された手モデルの平行移動量をＲＡＭから読み出して、手モデルの位置を決定する。
【００６７】
次に、ステップＳ１０９−２において、モデル形状決定部１７は、ステップＳ１０７で決定された各指関節の曲り角度をＲＡＭから読み出して、手モデルの変形形状を決定する。その後、ステップＳ１１０に移る。
【００６８】
図１６は、図３のステップＳ１０９における手モデルの変形の具体例を示す図である。図１６（ａ）は、初期位置点（操作者が手を開いた状態の指先位置点）を示す。図１６（ｂ）は、図１６（ａ）に示す初期位置点を用いて描画された初期手モデルである。図１６（ｃ）は、一例として、操作者が人差し指を曲げた場合の指先位置点を示す。図１６（ｄ）は、図１６（ｃ）に示す指先位置点を用いて変形された手モデルである。図１７（ａ）、（ｂ）はそれぞれ、図１６（ｂ）および（ｄ）に示した手モデルを側面から見た図である。図１６および図１７に示すように、図３のステップＳ１０９において、手モデルは、操作者の手の変形に応じてリアルに変形する。
【００６９】
図１８は、図３のステップＳ１１０の処理を説明するための図である。図１８に示す通り、ステップＳ１１０において、重畳画像作成部１９は、ＧＵＩパーツ１８０１を配置した操作画像１８００と、変形された手モデル１８１０とを重畳して、重畳画像１８２０を作成し、表示部３に表示する。なお、重畳画像１８２０を作成する際、手モデルと重なるＧＵＩパーツを視認し易くするために、手モデルを半透過等にしてもよい。
【００７０】
図１９は、図３のステップＳ１１１の処理について説明するための図である。衝突判定部２０は、重畳画像においてＧＵＩパーツ１９０１〜１９０４と手モデル１９１０の指先位置点とが重なった場合には、当該ＧＵＩパーツと手モデル１９１０の指先位置点とが衝突したと判定する。図１９の場合には、衝突判定部２０は、矢印１９２０で示す衝突が判定されたＧＵＩパーツ１９０２に割当てられたコマンドをコマンド送信部２１に通知する。
【００７１】
その後、ステップＳ１１２でコマンドが操作対象装置４に送信される。操作対象装置４は、受信したコマンドを実行する。
【００７２】
以上に説明したように、本発明に係る入力装置１００によれば、操作者は、表示部３から離れている場合でも、タッチパネルディスプレイの直感的な操作感を維持した操作を行うことができる。また、本発明に係る入力装置１００は、操作者の指の動きを忠実に再現した手モデルを表示部３に表示することができる。この結果として、本発明に係る入力装置１００は、操作者に違和感の無い快適な操作感覚を提供することができる。
【００７３】
なお、本実施形態の図３のステップＳ１０８において、ステップＳ１０６で取得した指先位置点の初期位置点からの移動量と、ステップＳ１０７で取得した指曲げによる各指先位置点の移動量とに基づいて、手モデルの平行移動量を算出した。この平行移動については、ステップＳ１０７における各指関節の曲り角度が算出できれば、手モデルを変形させた形状は決るので、その変形させた手モデルの指先位置点が、現在の操作面上で検出している指先位置点に合うように移動させる方法でも可能である。この場合、移動量算出部１２は初期状態からの指先位置点の移動量を算出する必要はなく、モデル形状決定部１７は、手モデルの各指関節の曲り角度に基づいて、手モデルの変形形状を決定し、当該形状が決定された手モデルの各指先位置が、現在検出している各指先位置点に合うように、変形させた手モデルを移動させる位置を決定する
また、本実施形態の図３のステップＳ１０３においては、４つの指先位置点と接触面積を取得することとしたが、４つに限られることはない。右手か左手かが分っており、接触する指が特定できる場合には（例えば、人差し指で接触）、手の進入方向が分っていれば手モデルの位置を決定できるため、１〜３つの指先位置点と接触面積を取得することにしてもよい。
【産業上の利用可能性】
【００７４】
本発明は、入力装置および入力方法等に利用可能であり、特に、操作者の手のＣＧモデルを操作者の手の動きに併せてよりリアルに変形させたい場合等に有用である。
【図面の簡単な説明】
【００７５】
【図１】本発明の実施形態に係る入力装置１００の動作の概要を説明するための図
【図２】本発明の実施形態に係る入力装置１００の構成例を示す図
【図３】本発明の実施形態に係る入力装置１００の動作を説明するためのフローチャート
【図４】モデル保持部１６が保持する手モデルの一例を示す図
【図５】図３のステップＳ１０１およびＳ１０２における接触領域検知部１の動作について説明するための図で、（ａ）接触領域検知部１の操作面に操作者の手か置かれた状態の一例を示す図、（ｂ）接触領域検知部１が検知した接触点群を黒丸群で表した図
【図６】図３のステップＳ１０２を詳細に説明するためのフローチャート
【図７】図３のステップＳ１０２で取得される指先位置点を説明するための図で、（ａ）接触点群を楕円フィッティング処理した一例を示す図、（ｂ）楕円から指先位置点を決定する一例を示す図
【図８】図６のステップＳ１０２−３で取得された指先位置点の位置の一例を示す図
【図９】図３のステップＳ１０５の処理を詳しく説明するためのフローチャート
【図１０】接触領域検知部１の車への設置位置の例を示す図で、（ａ）車両のセンターコンソールに取り付けられた場合の一例を示す図、（ｂ）車両のドアの操作部に取り付けられた場合の一例を示す図、（ｃ）車両のハンドルに取り付けられた場合の一例を示す図
【図１１】図３のステップＳ１０６の処理を説明するためのフローチャート
【図１２】操作者が指を曲げたときの各指先位置の接触領域の変化を示す図で、（ａ）初期状態を示す図、（ｂ）操作者が手全体は動かさずに４つの指を曲げた状態を示す図
【図１３】操作者が初期状態から指を曲げた場合の各指先位置の接触面積の変化率の一例を示す図
【図１４】図３のステップＳ１０７において、手モデルの指曲り角度を算出する方法を説明するための図で、（ａ）人差し指１４００を曲げた場合の指先位置点の変位を示す図、（ｂ）曲げた状態の人差し指１４００の手モデルを側面から見た図
【図１５】図３のステップＳ１０９の処理を説明するためのフローチャート
【図１６】図３のステップＳ１０９における手モデルの変形の具体例を示す図で、（ａ）初期位置点を示す図、（ｂ）初期位置点を用いて描画された初期手モデルを示す図、（ｃ）操作者が人差し指を曲げた場合の指先位置点を示す図、（ｄ）人差し指を曲げた時の指先位置点を用いて変形された手モデルを示す図
【図１７】図１６に示した手モデルを側面から見た図で、（ａ）図１６ｂに示した手モデルを側面から見た図、（ｂ）図１６ｄに示した手モデルを側面から見た図
【図１８】図３のステップＳ１１０の処理を説明するための図
【図１９】図３のステップＳ１１１の処理について説明するための図
【符号の説明】
【００７６】
１    接触領域検知部
２    演算部
３    表示部
４    操作対象機器
１２    移動量算出部
１３    指曲げ移動量算出部
１４    指曲り角度算出部
１５    平行移動量算出部
１６    モデル保持部
１７    モデル形状決定部
１８    ＧＵＩパーツ保持部
１９    重畳画像作成部
２０    衝突判定部
２１    コマンド送信部
１００    入力装置
【図１】
2010097530.tif 000003
【図２】
2010097530.tif 000004
【図３】
2010097530.tif 000005
【図４】
2010097530.tif 000006
【図５】
2010097530.tif 000007
【図６】
2010097530.tif 000008
【図７】
2010097530.tif 000009
【図８】
2010097530.tif 000010
【図９】
2010097530.tif 000011
【図１０】
2010097530.tif 000012
【図１１】
2010097530.tif 000013
【図１２】
2010097530.tif 000014
【図１３】
2010097530.tif 000015
【図１４】
2010097530.tif 000016
【図１５】
2010097530.tif 000017
【図１６】
2010097530.tif 000018
【図１７】
2010097530.tif 000019
【図１８】
2010097530.tif 000020
【図１９】
2010097530.tif 000021