(57)【要約】ユーザインタフェース装置は、ポインティング操作に用いられるユーザの特定部位の少なくとも１つの代表的な位置を示すポインティング位置を逐次取得する取得部と、ユーザの特定部位の所定形状への変化開始及び変化終了を検出する検出部と、検出部により検出される変化開始時に対応するポインティング位置を保持する保持部と、検出部により検出される変化終了時に対応するポインティング位置を特定し、特定されたポインティング位置と保持部で保持されるポインティング位置との差を算出する算出部と、算出部で算出される差を用いて、取得部により取得されるポインティング位置を調節する位置調節部と、を有する。
2014054317.tif 000002
【特許請求の範囲】
【請求項１】
ポインティング操作に用いられるユーザの特定部位の少なくとも１つの代表的な位置を示すポインティング位置を逐次取得する位置取得部と、
前記ユーザの前記特定部位の所定形状への変化開始及び変化終了を検出する変化検出部と、
前記位置取得部により逐次取得されるポインティング位置のうち、前記変化検出部により検出される前記変化開始時に対応するポインティング位置を保持する位置保持部と、
前記位置取得部により取得されるポインティング位置のうち、前記変化検出部により検出される前記変化終了時に対応するポインティング位置を特定し、該特定されたポインティング位置と前記位置保持部で保持されるポインティング位置との差を算出する算出部と、
前記算出部で算出される差を用いて、前記位置取得部により取得されるポインティング位置を調節する位置調節部と、
を備えるユーザインタフェース装置。
【請求項２】
前記変化検出部は、前記ユーザの前記特定部位の形状の、前記所定形状から回復方向への回復変化を検出し、
前記位置保持部は、前記変化検出部による前記回復変化の検出に応じて、保持されるポインティング位置を解放し、
前記位置調節部は、前記位置保持部によるポインティング位置の解放に応じて、前記位置取得部で取得されるポインティング位置の調節を停止する、
請求項１に記載のユーザインタフェース装置。
【請求項３】
前記変化検出部は、前記変化開始の検出から前記変化終了の検出までの変化時間を計測し、
前記位置保持部は、前記変化時間が所定閾値より大きい場合に、保持されるポインティング位置を解放し、
前記位置調節部は、前記位置保持部によるポインティング位置の解放に応じて、前記位置取得部で取得されるポインティング位置の調節を停止する、
請求項１又は２に記載のユーザインタフェース装置。
【請求項４】
前記位置保持部は、前記算出部により算出される前記差が所定閾値より大きい場合に、保持されるポインティング位置を解放し、
前記位置調節部は、前記位置保持部によるポインティング位置の解放に応じて、前記位置取得部で取得されるポインティング位置の調節を停止する、
請求項１から３のいずれか１項に記載のユーザインタフェース装置。
【請求項５】
少なくとも１つのコンピュータが、
ポインティング操作に用いられるユーザの特定部位の少なくとも１つの代表的な位置を示すポインティング位置を逐次取得し、
前記ユーザの前記特定部位の所定形状への変化開始及び変化終了を検出し、
前記逐次取得されるポインティング位置のうち、前記検出される変化開始時に対応するポインティング位置を保持し、
前記取得されるポインティング位置のうち、前記検出される変化終了時に対応するポインティング位置を特定し、
前記特定されたポインティング位置と前記保持されるポインティング位置との差を算出し、
前記算出される差を用いて、前記取得されるポインティング位置を調節する、
ことを含むユーザインタフェース方法。
【請求項６】
前記少なくとも１つのコンピュータが、
前記ユーザの前記特定部位の形状の、前記所定形状から回復方向への回復変化を検出し、
前記変化検出部による前記回復変化の検出に応じて、保持されるポインティング位置を解放し、
前記ポインティング位置の解放に応じて、前記ポインティング位置の調節を停止する、
ことを更に含む請求項５に記載のユーザインタフェース方法。
【請求項７】
前記少なくとも１つのコンピュータが、
前記変化開始の検出から前記変化終了の検出までの変化時間を計測し、
前記変化時間が所定閾値より大きい場合に、保持されるポインティング位置を解放し、
前記ポインティング位置の解放に応じて、前記取得されるポインティング位置の調節を停止する、
ことを更に含む請求項５又は６に記載のユーザインタフェース方法。
【請求項８】
前記少なくとも１つのコンピュータが、
前記算出される差が所定閾値より大きい場合に、保持されるポインティング位置を解放し、
前記ポインティング位置の解放に応じて、前記取得されるポインティング位置の調節を停止する、
ことを更に含む請求項５から７のいずれか１項に記載のユーザインタフェース方法。
【請求項９】
請求項５から８のいずれか１項に記載のユーザインタフェース方法を少なくとも１つのコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインタフェース技術に関する。
【背景技術】
【０００２】
コンピュータに対するユーザ入力を可能とするユーザインタフェース（マンマシンインタフェース）装置として、マウス、ジョイスティック、トラックボール、タッチパネルなど様々な機器が提供されている。近年では、データグローブやデータスーツ等のように、体の動き（ジェスチャ）を検出することにより、体の動きに応じたユーザ入力を可能とするユーザインタフェース装置も開発されている。このようなユーザインタフェース装置によりユーザは直感的感覚でコンピュータを操作することができる。【０００３】
例えば、下記特許文献１には、ユーザのジェスチャによる操作入力を容易にする技術が提案されている。この提案技術では、距離センサの分解能とディスプレイの３次元表示性能とユーザの手の指などの指示ポイントの奥行き方向の測定距離とに基づいて、その指示ポイントの奥行き方向の動きを検出する感度を決めるパラメータが調整される。そして、この調整されたパラメータに基づいて指示ポイントの奥行き方向の距離を算出することにより、ユーザのジェスチャによる操作入力が認識される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１３７９８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の提案手法は、手の指などのような体の特定の一部（指示ポイント）の移動に対応するユーザ入力を想定しているに過ぎず、手で物をつかむ動作や指で物をつまむ動作など、ポインティング操作に用いられるユーザの特定部位の形状（状態）の変化に対応するユーザ入力を想定していない。【０００６】
本発明は、このような事情に鑑みてなされたものであり、ユーザの特定部位の形状の変化を含むジェスチャによりコンピュータを直感的に分かり易く操作するユーザインタフェース技術を提供する。
【課題を解決するための手段】
【０００７】
本発明の各態様では、上述した課題を解決するために、それぞれ以下の構成を採用する。【０００８】
第１の態様は、ユーザインタフェース装置に関する。第１態様に係るユーザインタフェース装置は、ポインティング操作に用いられるユーザの特定部位の少なくとも１つの代表的な位置を示すポインティング位置を逐次取得する位置取得部と、ユーザの特定部位の所定形状への変化開始及び変化終了を検出する変化検出部と、位置取得部により逐次取得されるポインティング位置のうち、変化検出部により検出される変化開始時に対応するポインティング位置を保持する位置保持部と、位置取得部により取得されるポインティング位置のうち、変化検出部により検出される変化終了時に対応するポインティング位置を特定し、特定されたポインティング位置と位置保持部で保持されるポインティング位置との差を算出する算出部と、算出部で算出される差を用いて、位置取得部により取得されるポインティング位置を調節する位置調節部と、を有する。【０００９】
第２の態様は、ユーザインタフェース方法に関する。第２態様に係るユーザインタフェース方法では、少なくとも１つのコンピュータが、ポインティング操作に用いられるユーザの特定部位の少なくとも１つの代表的な位置を示すポインティング位置を逐次取得し、ユーザの特定部位の所定形状への変化開始及び変化終了を検出し、逐次取得されるポインティング位置のうち、検出される変化開始時に対応するポインティング位置を保持し、逐次取得されるポインティング位置のうち、検出される変化終了時に対応するポインティング位置を特定し、特定されたポインティング位置と保持されるポインティング位置との差を算出し、算出される差を用いて、逐次取得されるポインティング位置を調節する。【００１０】
なお、他の態様としては、以上の第１態様における各構成を少なくとも１つのコンピュータに実現させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
【発明の効果】
【００１１】
上記各態様によれば、ユーザの特定部位の形状の変化を含むジェスチャによりコンピュータを直感的に分かり易く操作するユーザインタフェース技術を提供することができる。
【図面の簡単な説明】
【００１２】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１３】
【図１】ポインティング位置の取得を概念的に示す図である。
【図２】ポインティング位置の取得に関する問題点を概念的に示す図である。
【図３】実施形態におけるポインティング位置の調節を概念的に示す図である。
【図４】第１実施形態における３次元ユーザインタフェース装置（３Ｄ−ＵＩ装置）のハードウェア構成例を概念的に示す図である。
【図５】第１実施形態における３次元ユーザインタフェース装置（３Ｄ−ＵＩ装置）の利用形態の例を示す図である。
【図６】ＨＭＤの外観構成の例を示す図である。
【図７】第１実施形態におけるセンサ側装置の処理構成例を概念的に示す図である。
【図８】第１実施形態における表示側装置の処理構成例を概念的に示す図である。
【図９】ＨＭＤに表示される合成画像の例を示す図である。
【図１０】第１実施形態における３次元ユーザインタフェース装置（３Ｄ−ＵＩ装置）の動作例を示すシーケンスチャートである。
【図１１】図１０に示される工程（Ｓ１０６）の詳細を示すフローチャートである。
【図１２】第２実施形態における３次元ユーザインタフェース装置（３Ｄ−ＵＩ装置）の処理構成例を概念的に示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について説明する。なお、以下に挙げる各実施形態はそれぞれ例示であり、本発明は以下の各実施形態の構成に限定されない。
【００１５】
本実施形態に係るユーザインタフェース装置は、ポインティング操作に用いられるユーザの特定部位の少なくとも１つの代表的な位置を示すポインティング位置を逐次取得する位置取得部と、ユーザの特定部位の所定形状への変化開始及び変化終了を検出する変化検出部と、位置取得部により逐次取得されるポインティング位置のうち、変化検出部により検出される変化開始時に対応するポインティング位置を保持する位置保持部と、位置取得部により取得されるポインティング位置のうち、変化検出部により検出される変化終了時に対応するポインティング位置を特定し、特定されたポインティング位置と位置保持部で保持されるポインティング位置との差を算出する算出部と、算出部で算出される差を用いて、位置取得部により取得されるポインティング位置を調節する位置調節部と、を有する。
【００１６】
本実施形態に係るユーザインタフェース方法は、少なくとも１つのコンピュータが、ポインティング操作に用いられるユーザの特定部位の少なくとも１つの代表的な位置を示すポインティング位置を逐次取得し、ユーザの特定部位の所定形状への変化開始及び変化終了を検出し、逐次取得されるポインティング位置のうち、検出される変化開始時に対応するポインティング位置を保持し、逐次取得されるポインティング位置のうち、検出される変化終了時に対応するポインティング位置を特定し、特定されたポインティング位置と保持されるポインティング位置との差を算出し、算出される差を用いて、逐次取得されるポインティング位置を調節する、ことを含む。
【００１７】
以下、上述の実施形態における作用及び効果について図１から図３を用いて説明する。図１は、ポインティング位置の取得を概念的に示す図である。図２は、ポインティング位置の取得に関する問題点を概念的に示す図である。図３は、上述の実施形態におけるポインティング位置の調節を概念的に示す図である。
【００１８】
本実施形態では、ユーザの特定部位に対応するポインティング位置が逐次取得される。例えば、ユーザの特定部位を表す２次元画像又は３次元情報（例えば、２次元画像及び深度情報）から、ユーザの特定部位の少なくとも１つの代表的な位置が当該ポインティング位置として特定される。より具体的には、ポインティング位置は、Ｋｉｎｅｃｔ（登録商標）と呼ばれるゲームコントローラシステムのスケルトントラッキングにより得られるスケルトン情報の中から得られるようにしてもよい。また、当該ポインティング位置は、ユーザの特定部位の外形が認識され、その認識された外形から得られる重心位置に設定されるようにしてもよい。本実施形態は、このポインティング位置の特定手法を制限しない。
【００１９】
図１から図３の例では、ユーザの特定部位として手が用いられ、当該手の中の、体から最も離れた位置にある、代表的な１点の位置がポインティング位置に設定される。また、図１の例では、ユーザの手を含む腕全体が動かされることにより、ポインティング位置Ｐ１及びＰ２が逐次取得されている。
【００２０】
ここで、手で物をつかむ動作を検出し、この動作をコンピュータに対するユーザ入力として用いることを考える。図２では、立方体が掴みたい物であり、立方体に対するポインティング位置が適正で、かつ、所定動作（握る）が認識された場合に、当該コンピュータは、その立方体をユーザに掴まれた状態とする。この場合、図２に示されるように、ユーザが手を開いた状態において取得されるポインティング位置Ｐ１は、その手の指先に設定される。この状態で、ユーザが手で物をつかむために手を握ると、握った状態の手における体から最も離れた位置がポインティング位置Ｐ２として取得される。このように、ポインティング操作に用いられるユーザの特定部位の形状の変化を含む動作（ジェスチャ）を認識する場合、形状の変化の前後で、その特定部位に対応するポインティング位置がずれてしまう。これは、ユーザの特定部位の中でのポインティング位置の決定方法に依存しない。例えば、特定部位としての手における重心がポインティング位置に設定される場合においても、手を開いた時の重心と手を握った時の重心とでは位置が異なるため、両状態の間でポインティング位置もずれることになる。
【００２１】
このような特定ジェスチャの前後でのポインティング位置のずれは、その特定ジェスチャでの操作対象となる表示物の位置と、特定ジェスチャ後のポインティング位置との間に距離を生じさせ、その特定ジェスチャが、意図されたユーザ入力とは異なるユーザ入力として誤認識される可能性がある。即ち、その特定ジェスチャによりその表示物に対する操作ができない可能性がある。このように、ユーザの特定部位の形状変化により所定処理を実施し、かつ、形状変化によりポインティング位置が変化しうるユーザインタフェースにおいて、形状変化に応じたポインティング位置の変化によりユーザの意図した動作とならない場合がある。
【００２２】
そこで、本実施形態では、まず、上記特定部位の所定形状への変化開始及び変化終了が検出される。ユーザの特定部位の形状の変化は、例えば、データグローブやデータスーツに搭載されるひずみセンサ等のセンサから得られる情報から検出される。また、当該変化は、ユーザの特定部位を表す２次元画像又は３次元情報（例えば、２次元画像及び深度情報）から検出されるようにしてもよい。本実施形態は、当該特定部位の形状の変化の検出手法自体を制限しない。
【００２３】
所定形状とは、例えば、特定部位が手の場合、物をつかんだ状態における手の形状である。変化開始は、例えば、予め保持される所定の変化幅を超えて、形状が所定形状方向へ変化したことにより検出される。また、変化終了は、例えば、ユーザの特定部位が所定形状となったことにより検出される。変化終了は、特定部位の形状が所定形状となっている状態において当該センサから得られる所定の変化情報（ひずみ情報など）を超えて更に形状が変化したことにより検出されるようにしてもよい。変化終了は、予め保持される所定時間、形状変化が止まったことにより検出されるようにしてもよい。
【００２４】
本実施形態では、図３に示されるように、逐次取得されるポインティング位置の中の、変化検出部により検出される変化開始時に対応するポインティング位置Ｐ１が保持され、更に、変化検出部により検出される変化終了時に対応するポインティング位置Ｐ２が特定される。ここで、変化開始時に対応するポインティング位置とは、変化検出部により変化開始が検出された時点、又は、その時点の前後に、取得されているポインティング位置を意味する。これは、変化終了時に対応するポインティング位置についても同様である。
【００２５】
そして、変化終了時に対応するポインティング位置Ｐ２と、保持されるポインティング位置Ｐ１との差が算出され、この算出される差を用いて、ポインティング位置が調節される。これにより、変化検出部で検出される変化終了時の形状となっている当該特定部位に関するポインティング位置Ｐ４は、その形状の特定部位に関し位置取得部で取得されるポインティング位置が、上述のように算出される差で調節された値となる。図３の例では、ポインティング位置の調節として、当該差の加算が用いられる。本実施形態は、ポインティング位置の調節は、当該差の加算のみに制限せず、所定係数が掛け合わされた差が加算されることで当該調節が行われてもよい。
【００２６】
このように、本実施形態によれば、ポインティング操作に用いられるユーザの特定部位の形状の変化の前後での、その特定部位に対応するポインティング位置のずれを用いて、変化終了時以降のポインティング位置が調節される。従って、本実施形態によれば、特定ジェスチャの前後でのポインティング位置のずれによるユーザ入力の誤認識を防ぐことができ、結果として、ユーザの特定部位の形状の変化を含むジェスチャによりコンピュータを直感的に分かり易く操作するユーザインタフェースを実現することができる。
【００２７】
以下、上述の実施形態について更に詳細を説明する。以下には、詳細実施形態として、第１実施形態、第２実施形態及び第３実施形態、並びにそれらの変形例を例示する。
【００２８】
［第１実施形態］
〔装置構成〕
図４は、第１実施形態における３次元ユーザインタフェース装置（以降、３Ｄ−ＵＩ装置と表記する）１のハードウェア構成例を概念的に示す図である。第１実施形態における３Ｄ−ＵＩ装置１は、大きく、センサ側構成と表示側構成とを持つ。センサ側構成は、３次元センサ（以降、３Ｄセンサと表記する）８及びセンサ側装置１０から形成される。表示側構成は、ヘッドマウントディスプレイ（以降、ＨＭＤと表記する）９及び表示側装置３０から形成される。以降、３次元を３Ｄと適宜省略して表記する。
【００２９】
図５は、第１実施形態における３Ｄ−ＵＩ装置１の利用形態の例を示す図である。図５に示されるように、３Ｄセンサ８は、ユーザの特定部位を検出できる位置に配置される。ＨＭＤ９は、ユーザの頭部に装着され、ユーザの視線に対応する視線映像と共に、その視線映像に合成された上述の仮想３Ｄ空間をユーザに視認させる。
【００３０】
３Ｄセンサ８は、ユーザの特定部位の検出などのために利用される３Ｄ情報を検出する。３Ｄセンサ８は、例えば、Ｋｉｎｅｃｔ（登録商標）のように、可視光カメラ及び距離画像センサにより実現される。距離画像センサは、深度センサとも呼ばれ、レーザから近赤外光のパターンをユーザに照射し、そのパターンを近赤外光を検知するカメラで撮像して得られる情報から距離画像センサからユーザまでの距離（深度）が算出される。なお、３Ｄセンサ８自体の実現手法は制限されず、３Ｄセンサ８は、複数の可視光カメラを用いる３次元スキャナ方式で実現されてもよい。また、図４では、３Ｄセンサ８が１つ要素で図示されるが、３Ｄセンサ８は、ユーザの２次元画像を撮像する可視光カメラ及びユーザまでの距離を検出するセンサといった複数の機器で実現されてもよい。
【００３１】
図６は、ＨＭＤ９の外観構成の例を示す図である。図６には、ビデオシースルー型と呼ばれるＨＭＤ９の構成が示されている。図６の例では、ＨＭＤ９は、２つの視線カメラ９ａ及び９ｂ、２つのディスプレイ９ｃ及び９ｄを有する。各視線カメラ９ａ及び９ｂは、ユーザの各視線に対応する各視線画像をそれぞれ撮像する。これにより、ＨＭＤ９は撮像部と呼ぶこともできる。各ディスプレイ９ｃ及び９ｄは、ユーザの視野の大部分を覆う形に配置され、各視線画像に仮想３Ｄ空間が合成された合成３Ｄ画像を表示する。
【００３２】
センサ側装置１０及び表示側装置は、バスなどで相互に接続される、ＣＰＵ（Central Processing Unit）２、メモリ３、通信装置４、入出力インタフェース（Ｉ／Ｆ）５などをそれぞれ有する。メモリ３は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ハードディスク、可搬型記憶媒体などである。
【００３３】
センサ側装置１０の入出力Ｉ／Ｆ５は、３Ｄセンサ８と接続され、表示側装置３０の入出力Ｉ／Ｆ５は、ＨＭＤ９と接続される。また、センサ側装置１０の入出力Ｉ／Ｆ５は、ゆがみセンサ等のようなユーザの特定部位の形状変化の情報を取得するセンサと接続されてもよい。入出力Ｉ／Ｆ５と３Ｄセンサ８との間、及び、入出力Ｉ／Ｆ５とＨＭＤ９との間は無線により通信可能に接続されてもよい。各通信装置４は、無線又は有線にて、他の装置（センサ側装置１０、表示側装置３０など）と通信を行う。本実施形態は、このような通信の形態を制限しない。また、センサ側装置１０及び表示側装置３０の具体的ハードウェア構成についても制限されない。
【００３４】
〔処理構成〕
〈センサ側装置〉
図７は、第１実施形態におけるセンサ側装置１０の処理構成例を概念的に示す図である。第１実施形態におけるセンサ側装置１０は、３Ｄ情報取得部１１、第１オブジェクト検出部１２、第１基準設定部１３、位置算出部１４、状態取得部１５、送信部１６、変化検出部２１、位置保持部２２、算出部２３、位置調節部２４などを有する。これら各処理部は、例えば、ＣＰＵ２によりメモリ３に格納されるプログラムが実行されることにより実現される。また、当該プログラムは、例えば、ＣＤ（Compact Disc）、メモリカード等のような可搬型記録媒体やネットワーク上の他のコンピュータから入出力Ｉ／Ｆ５を介してインストールされ、メモリ３に格納されてもよい。
【００３５】
３Ｄ情報取得部１１は、３Ｄセンサ８により検出された３Ｄ情報を逐次取得する。３Ｄ情報は、可視光により得られるユーザの２次元画像と、３Ｄセンサ８からの距離（深度）の情報とを含む。
【００３６】
第１オブジェクト検出部１２は、３Ｄ情報取得部１１により取得された３Ｄ情報から既知の共通実オブジェクトを検出する。共通実オブジェクトとは、現実世界に配置された画像や物であり、ＡＲ（Augmented Reality）マーカ等と呼ばれる。本実施形態は、この共通実オブジェクトから、参照方向によらず、或る基準点及びこの基準点からの相互に直交する３つの方向を一定に得ることができるのであれば、この共通実オブジェクトの具体的形態を制限しない。第１オブジェクト検出部１２は、その共通実オブジェクトが示す形状、サイズ、色などについての情報を予め保持しており、このような既知の情報を用いて、共通実オブジェクトを３Ｄ情報から検出する。
【００３７】
第１基準設定部１３は、第１オブジェクト検出部１２により検出される共通実オブジェクトに基づいて、３Ｄ座標空間を設定し、かつ、この３Ｄ座標空間における３Ｄセンサ８の位置及び向きを算出する。例えば、第１基準設定部１３は、共通実オブジェクトから抽出される基準点を原点とし、その基準点からの相互に直交する３方向を各軸とする３Ｄ座標空間を設定する。第１基準設定部１３は、共通実オブジェクトに関する既知の形状及びサイズ（本来の形状及びサイズに相当）と、３Ｄ情報から抽出された共通実オブジェクトが示す形状及びサイズ（３Ｄセンサ８からの見え方に相当）との比較により、３Ｄセンサ８の位置及び向きを算出する。
【００３８】
位置算出部１４は、３Ｄ情報取得部１１により逐次取得される３Ｄ情報を用いて、ユーザの特定部位に関する上記３Ｄ座標空間上の３Ｄポインティング位置を逐次算出する。これにより、位置算出部１４は、位置取得部と呼ぶこともできる。第１実施形態では、位置算出部１４は、具体的に次のように当該３Ｄポインティング位置を算出する。位置算出部１４は、まず、３Ｄ情報取得部１１により取得される３Ｄ情報からユーザの特定部位の少なくとも１つの代表的な位置を示す３Ｄポインティング位置を抽出する。この３Ｄポインティング位置の抽出は、例えば、上述したようなスケルトントラッキングにより行われる。ここで抽出される３Ｄポインティング位置は、３Ｄセンサ８のカメラ座標系に対応する。そこで、位置算出部１４は、第１基準設定部１３により算出される３Ｄセンサ８の位置及び向き並びに３Ｄ座標空間に基づいて、３Ｄセンサ８のカメラ座標系に対応する３Ｄポインティング位置を第１基準設定部１３で設定された３Ｄ座標空間上の３Ｄポインティング位置に変換する。この変換は、３Ｄセンサ８のカメラ座標系から、上記共通実オブジェクトに基づき設定される３Ｄ座標系への変換を意味する。
【００３９】
ここで、検出すべきユーザの特定部位は複数であってもよい。例えば、複数の特定部位としてユーザの両手が利用される形態があり得る。この場合、位置算出部１４は、３Ｄ情報取得部１１により取得される３Ｄ情報から、複数の特定部位の３Ｄポインティング位置をそれぞれ抽出し、この各３Ｄポインティング位置を３Ｄ座標空間上の各３Ｄポインティング位置にそれぞれ変換する。また、特定部位とは、ユーザがＨＭＤ９のディスプレイ９ｃ及び９ｄに表示される仮想オブジェクトを操作するために用いる体の一部であるため、或る程度の面積又は体積を有する。よって、位置算出部１４により算出される３Ｄポインティング位置は、当該特定部位の中の或る１点の位置であってもよいし、複数点の位置であってもよい。
【００４０】
変化検出部２１は、上述の実施形態で述べたように、ユーザの特定部位の所定形状への変化開始及び変化終了を検出する。更に、変化検出部２１は、ユーザの特定部位の形状の、上記所定形状から回復方向への回復変化を検出する。ここで、所定形状から回復方向とは、変化終了時に対応する形状（所定形状）から変化開始時に対応する形状（元の形状）に向かう変化方向を意味する。変化検出部２１は、入出力Ｉ／Ｆ５に接続されるゆがみセンサ等のセンサから得られる、当該特定部位のゆがみ（動き）情報を取得し、この情報に基づいて、変化開始及び変化終了並びに回復変化を検出する。また、変化検出部２１は、３Ｄ情報取得部１１で取得されるユーザの特定部位を表す３Ｄ情報から検出してもよい。変化終了が形状変化の所定時間の停止により検出される場合には、回復変化は、変化終了の検出後、形状変化が再開されたことにより検出されてもよい。
【００４１】
位置保持部２２は、位置算出部１４により逐次算出される３Ｄポインティング位置のうち、変化検出部２１により検出される変化開始時に対応する３Ｄポインティング位置を保持する。例えば、位置保持部２２は、変化検出部２１から変化開始の検出の通知を受け、位置算出部１４で算出されたその時点で最新の３Ｄポインティング位置を保持する。
【００４２】
更に、位置保持部２２は、変化検出部２１による上述の回復変化の検出に応じて、保持される３Ｄポインティング位置を解放する。ここで、３Ｄポインティング位置の解放は、３Ｄポインティング位置の削除により実現されてもよいし、３Ｄポインティング位置の値無し（ＮＵＬＬ）設定により実現されてもよい。
【００４３】
算出部２３は、位置算出部１４により取得される３Ｄポインティング位置のうち、変化検出部２１により検出される変化終了時に対応する３Ｄポインティング位置を特定し、特定された３Ｄポインティング位置と位置保持部２２で保持される３Ｄポインティング位置との差を算出する。例えば、算出部２３は、変化検出部２１から変化終了の検出の通知を受け、位置算出部１４で算出されたその時点で最新の３Ｄポインティング位置を変化終了時に対応する３Ｄポインティング位置として特定する。また、算出部２３は、当該差として、３Ｄ座標空間上の距離を算出する。なお、算出部２３は、当該差として、即ち、３Ｄ座標空間における特定の１軸、即ち、３Ｄセンサ８の深度方向と平行な軸の距離を算出してもよい。
【００４４】
算出部２３は、位置保持部２２により３Ｄポインティング位置が保持されている場合に、上述差を算出する。算出部２３は、位置保持部２２により３Ｄポインティング位置が解放された状態では、上述の差の算出を行わないようにしてもよい。
【００４５】
位置調節部２４は、算出部２３で算出される差を用いて、位置算出部１４により逐次取得される３Ｄポインティング位置を調節する。例えば、位置調節部２４は、変化終了時に対応する３Ｄポインティング位置に当該差を加算することにより得られた位置を、調節された３Ｄポインティング位置とする。位置調節部２４は、所定係数が掛け合わされた差を加算するようにしてもよい。
【００４６】
位置調節部２４は、位置保持部２２による３Ｄポインティング位置の解放に応じて、３Ｄポインティング位置の調節を停止する。よって、位置調節部２４は、変化検出部２１により変化終了が検出されてから回復変化が検出されるまでの間、位置算出部１４により逐次算出される各３Ｄポインティング位置を算出部２３により算出される当該差を用いてそれぞれ調節する。
【００４７】
状態取得部１５は、変化検出部２１により検出されるユーザの特定部位の形状に基づいて、当該特定部位の状態を特定し、状態情報を取得する。例えば、状態取得部１５は、手が握られた状態及び手が開かれた状態の少なくとも２つの中の一方を示す状態情報を取得する。本実施形態は、検出可能な範囲で、この状態情報が示し得る状態の数を制限しない。また、複数の特定部位が利用される場合には、状態取得部１５は、各特定部位に関する状態情報をそれぞれ取得する。
【００４８】
送信部１６は、ユーザの特定部位に関する、位置算出部１４により算出される３Ｄポインティング位置又は位置調節部２４により調節された３Ｄポインティング位置と、状態取得部１５により取得された状態情報を表示側装置３０に送る。
【００４９】
〈表示側装置〉
図８は、第１実施形態における表示側装置３０の処理構成例を概念的に示す図である。第１実施形態における表示側装置３０は、視線画像取得部３１、第２オブジェクト検出部３２、第２基準設定部３３、仮想データ生成部３４、操作特定部３５、オブジェクト処理部３６、画像合成部３７、表示処理部３８などを有する。これら各処理部は、例えば、ＣＰＵ２によりメモリ３に格納されるプログラムが実行されることにより実現される。また、当該プログラムは、例えば、ＣＤ（Compact Disc）、メモリカード等のような可搬型記録媒体やネットワーク上の他のコンピュータから入出力Ｉ／Ｆ５を介してインストールされ、メモリ３に格納されてもよい。
【００５０】
視線画像取得部３１は、ＨＭＤ９からユーザの視線画像を取得する。この視線画像には、ユーザの特定部位が写る場合もある。この特定部位も、センサ側装置１０で検出対象とされる特定部位と同一である。本実施形態では、視線カメラ９ａ及び９ｂが設けられているため、視線画像取得部３１は、左目及び右目の各々に対応する各視線画像をそれぞれ取得する。なお、各処理部は、左目及び右目に対応する両視線画像に対してそれぞれ同様に処理されるため、以下の説明では、１つの視線画像を対象に説明する。
【００５１】
第２オブジェクト検出部３２は、視線画像取得部３１により取得される視線画像から既知の共通実オブジェクトを検出する。この共通実オブジェクトは、上述のセンサ側装置１０で検出されたオブジェクトと同一であってもよいし、センサ側装置１０ではそのオブジェクトの特定の一部が利用され、ＨＭＤ９側ではそのオブジェクトの全体が利用されるような形態であってもよい。第２オブジェクト検出部３２の処理は、上述のセンサ側装置１０の第１オブジェクト検出部１２と同様であるため、ここでは詳細説明を省く。なお、視線画像に含まれる共通実オブジェクトは、３Ｄセンサ８で得られる３Ｄ情報に含まれる共通実オブジェクトとは、撮像方向が異なる。
【００５２】
第２基準設定部３３は、第２オブジェクト検出部３２により検出される共通実オブジェクトに基づいて、センサ側装置１０の第１基準設定部１３により設定された３Ｄ座標空間を設定し、かつ、ＨＭＤ９の位置及び向きをそれぞれ算出する。第２基準設定部３３の処理についても、センサ側装置１０の第１基準設定部１３と同様であるため、ここでは詳細説明を省く。第２基準設定部３３により設定される３Ｄ座標空間も、センサ側装置１０の第１基準設定部１３により設定される３Ｄ座標空間と同じ共通実オブジェクトに基づいて設定されるため、結果として、３Ｄ座標空間がセンサ側装置１０と表示側装置３０との間で共有されることになる。
【００５３】
仮想データ生成部３４は、第２基準設定部３３によりセンサ側装置１０と共有される３Ｄ座標空間に配置される仮想３Ｄオブジェクトデータを生成する。仮想データ生成部３４は、この仮想３Ｄオブジェクトデータと共に、仮想３Ｄオブジェクトが配置される仮想３Ｄ空間のデータを生成してもよい。
【００５４】
操作特定部３５は、ユーザの特定部位に関する当該３Ｄ座標空間上の３Ｄポインティング位置及び状態情報をセンサ側装置１０から受信し、この状態情報と３Ｄポインティング位置の変化との組み合わせに基づいて、複数の所定処理の中からオブジェクト処理部３６により実行される１つの所定処理を特定する。３Ｄポインティング位置の変化は、前回の処理の際に得られた３Ｄポインティング位置との関係から算出される。また、複数の特定部位（例えば、両手）が利用される場合には、操作特定部３５は、センサ側装置１０から取得される複数の３Ｄポインティング位置から、複数の特定部位間の位置関係を算出し、算出された複数の特定部位間の位置関係の変化及び複数の状態情報に基づいて、複数の所定処理の中から１つの所定処理を特定する。複数の所定処理には、移動処理、回転処理、拡大処理、縮小処理、及び、機能メニューの表示データの付加処理等がある。
【００５５】
例えば、操作特定部３５は、ユーザの特定部位が片手の場合、ユーザの片手が特定状態（上記所定形状）（例えば握った状態）を維持している間におけるその片手の直線移動量に対応する距離分、移動させる処理を特定する。また、操作特定部３５は、ユーザの複数特定部位が両手の場合、ユーザの両手が特定状態（上記所定形状）（例えば、握られた状態）を維持した状態でのその両手間の距離の変化量に対応する拡大率でユーザの片手の位置を基準点とした拡大処理を特定する。なお、本実施形態は、操作特定部３５により特定される所定処理自体を制限しない。
【００５６】
操作特定部３５は、上述のような各所定処理を識別するためのＩＤをそれぞれ保持しており、所定処理に対応するＩＤを選択することにより、所定処理の特定を実現する。操作特定部３５は、オブジェクト処理部３６にその選択されたＩＤ、当該３Ｄ座標空間上の３Ｄポインティング位置などを渡すことで、オブジェクト処理部３６にその所定処理を実行させる。
【００５７】
オブジェクト処理部３６は、仮想データ生成部３４により生成された仮想３Ｄオブジェクトデータに対して、操作特定部３５により特定された所定処理を適用する。オブジェクト処理部３６は、サポートする複数の所定処理を実行可能となるように実現されている。
【００５８】
画像合成部３７は、第２基準設定部３３により算出されるＨＭＤ９の位置及び向き並びに３Ｄ座標空間に基づいて、視線画像取得部３１により取得される視線画像に、オブジェクト処理部３６により所定処理が施された仮想３Ｄオブジェクトデータに対応する仮想３Ｄオブジェクトを合成する。なお、画像合成部３７による合成処理には、拡張現実（ＡＲ）等で用いられる周知の手法が利用されればよいため、ここでは説明を省略する。
【００５９】
表示処理部３８は、画像合成部３７により得られる合成画像をＨＭＤ９に表示させる。本実施形態では、ユーザの各視線に対応する２つの視線画像が上述のようにそれぞれ処理されるため、表示処理部３８は、各視線画像と合成された各合成画像をそれぞれＨＭＤ９のディスプレイ９ｃ及び９ｄに表示させる。
【００６０】
図９は、ＨＭＤ９に表示される合成画像の例を示す図である。図９の例に示される合成画像は、球状の仮想３ＤオブジェクトＶＯと、ユーザの片手を含む視線画像（机ＶＡを含む）とから形成される。ユーザは、ＨＭＤ９でこの画像を見ながら、自身の手を動かすことにより、その画像に含まれる仮想３Ｄオブジェクトを自由に操作することができる。
【００６１】
〔動作例〕
以下、第１実施形態におけるユーザインタフェース方法について図１０を用いて説明する。図１０は、第１実施形態における３Ｄ−ＵＩ装置１の動作例を示すシーケンスチャートである。
【００６２】
センサ側装置１０は、３Ｄセンサ８から３Ｄ情報を逐次取得する（Ｓ１０１）。センサ側装置１０は、所定のフレームレートの当該３Ｄ情報に対して次のように動作する。
【００６３】
センサ側装置１０は、当該３Ｄ情報から共通実オブジェクトを検出する（Ｓ１０２）。
続いて、センサ側装置１０は、検出された共通実オブジェクトに基づいて、３Ｄ座標空間を設定し、かつ、この３Ｄ座標空間における３Ｄセンサ８の位置及び向きを算出する（Ｓ１０３）。
【００６４】
更に、センサ側装置１０は、当該３Ｄ情報を用いて、ユーザの特定部位の３Ｄポインティング位置を算出する（Ｓ１０４）。更に、センサ側装置１０は、工程（Ｓ１０３）で算出された３Ｄセンサ８の位置及び向き並びに３Ｄ座標空間に基づいて、工程（Ｓ１０４）で算出された３Ｄポインティング位置を工程（Ｓ１０３）で設定された３Ｄ座標空間上の３Ｄポインティング位置に変換する（Ｓ１０５）。
【００６５】
センサ側装置１０は、ユーザの特定部位の形状変化に応じて、工程（Ｓ１０５）で変換された３Ｄポインティング位置を調節する（Ｓ１０６）。工程（Ｓ１０６）の詳細については後述する。更に、センサ側装置１０は、ユーザの特定部位の形状に基づいて、当該特定部位の状態を特定し、状態情報を取得する（Ｓ１０７）。
【００６６】
センサ側装置１０は、ユーザの特定部位に関し、工程（Ｓ１０６）で得られた３Ｄポインティング位置、及び、工程（Ｓ１０７）で得られた状態情報を表示側装置３０に送る（Ｓ１０８）。
【００６７】
一方で、表示側装置３０は、３Ｄ情報の取得（Ｓ１０１）とは非同期で、ＨＭＤ９から視線画像を逐次取得している（Ｓ１１１）。表示側装置３０は、所定のフレームレートの当該視線画像に対して次のように動作する。
【００６８】
表示側装置３０は、当該視線画像から共通実オブジェクトを検出する（Ｓ１１２）。続いて、表示側装置３０は、検出された共通実オブジェクトに基づいて、３Ｄ座標空間を設定し、かつ、この３Ｄ座標空間におけるＨＭＤ９の位置及び向きを算出する（Ｓ１１３）。
【００６９】
表示側装置３０は、設定された３Ｄ座標空間に配置される仮想３Ｄオブジェクトデータを生成する（Ｓ１１４）。
【００７０】
表示側装置３０は、センサ側装置１０から、ユーザの特定部位に関する３Ｄポインティング位置及び状態情報を受信すると（Ｓ１１５）、当該特定部位の３Ｄポインティング位置の変化及び状態情報の組み合わせに応じて、ユーザのジェスチャに対応する所定処理を特定する（Ｓ１１６）。特定部位が複数存在する場合には、表示側装置３０は、複数の特定部位間の位置関係の変化と複数の状態情報との組み合わせに応じて、所定処理を特定する。
【００７１】
表示側装置３０は、工程（Ｓ１１４）で生成された仮想３Ｄオブジェクトデータに対して、工程（Ｓ１１６）で特定された所定処理を適用する（Ｓ１１７）。続いて、表示側装置３０は、所定処理が施された仮想３Ｄオブジェクトデータに対応する仮想３Ｄオブジェクトと視線画像とを合成し（Ｓ１１８）、表示データを生成する。
【００７２】
表示側装置３０は、その合成により得られた画像をＨＭＤ９に表示させる（Ｓ１１９）。
【００７３】
図１０では、説明の便宜のため、３Ｄ情報の取得（Ｓ１０１）と状態情報の取得（Ｓ１０７）とがシーケンシャルに実行される例が示されるが、特定部位の状態情報が３Ｄ情報以外から得られる場合には、工程（Ｓ１０１）及び（Ｓ１０７）は並列に実行される。また、図１０では、工程（Ｓ１０２）及び（Ｓ１０３）が３Ｄ情報の所定のフレームレートで実行される例が示されるが、工程（Ｓ１０２）及び（Ｓ１０３）はキャリブレーション時のみ実行されるようにしてもよい。
【００７４】
図１０では、説明の便宜のため、センサ側装置１０から送られるユーザの特定部位に関する情報に対する処理（工程（Ｓ１１５）から工程（Ｓ１１７））と、仮想３Ｄオブジェクトデータの生成処理（工程（Ｓ１１２）から工程（Ｓ１１４））とがシーケンシャルに実行される例が示される。しかしながら、工程（Ｓ１１５）から工程（Ｓ１１７）と、工程（Ｓ１１２）から工程（Ｓ１１４）とは並列に実行される。
【００７５】
図１１は、図１０に示される工程（Ｓ１０６）の詳細を示すフローチャートである。
センサ側装置１０は、ユーザの特定部位の形状について、変化開始、変化終了又は回復変化を検出する。センサ側装置１０は、ユーザの特定部位の形状の変化開始を検出すると（Ｓ１２１；ＹＥＳ）、図１０の工程（Ｓ１０５）で変換される３Ｄポインティング位置の中の、変化開始時に対応する３Ｄポインティング位置を保持する（Ｓ１２２）。
【００７６】
センサ側装置１０は、ユーザの特定部位の形状の変化終了を検出すると（Ｓ１２１；ＮＯ、１２３；ＹＥＳ）、図１０の工程（Ｓ１０５）で変換される３Ｄポインティング位置の中の、変化終了時に対応する３Ｄポインティング位置を特定する（Ｓ１２４）。続いて、センサ側装置１０は、変化終了時に対応する３Ｄポインティング位置と、工程（Ｓ１２２）で保持された３Ｄポインティング位置との差を算出する（Ｓ１２５）。センサ側装置１０は、算出された差を用いて、変化終了時に対応する３Ｄポインティング位置を調節する（Ｓ１２９）。
【００７７】
また、センサ側装置１０は、ユーザの特定部位の形状の回復変化を検出すると（Ｓ１２１；ＮＯ、Ｓ１２３；ＮＯ、Ｓ１２６；ＹＥＳ）、工程（Ｓ１２２）で保持された３Ｄポインティング位置を解放する（Ｓ１２７）。
【００７８】
センサ側装置１０は、ユーザの特定部位の形状について、変化開始、変化終了、及び、回復変化のいずれも検出されない場合（Ｓ１２１；ＮＯ、Ｓ１２３；ＮＯ、Ｓ１２６；ＮＯ）、３Ｄポインティング位置が保持中であるか否かを判定する（Ｓ１２８）。センサ側装置１０は、３Ｄポインティング位置が保持中である場合（Ｓ１２８；ＹＥＳ）、工程（Ｓ１２５）で算出された差を用いて、図１０の工程（Ｓ１０５）で変換される３Ｄポインティング位置を調節する（Ｓ１２９）。これにより、ユーザの特定部位の形状が少なくとも変化終了時の形状を維持している間は、３Ｄポインティング位置が調節される。
【００７９】
一方、センサ側装置１０は、３Ｄポインティング位置が保持されていない場合（Ｓ１２８；ＮＯ）、調節することなく、図１０の工程（Ｓ１０５）で変換される３Ｄポインティング位置をそのまま利用する。
【００８０】
〔第１実施形態の作用及び効果〕
上述したように、第１実施形態では、ポインティング操作に用いられる特定部位（手など）が写されたユーザの視線画像が取得され、その視線画像に仮想３Ｄオブジェクトが合成された画像がビデオシースルー方式でユーザの視野内に表示される。その上で、第１実施形態では、ユーザの当該特定部位の３Ｄポインティング位置の変化とその特定部位の形状に関する状態情報が取得され、それらの組み合わせから特定される所定処理が、仮想３Ｄオブジェクトに対して適用される。これにより、第１実施形態によれば、ユーザは、仮想３Ｄオブジェクトを自身の特定部位で操作しているかのように感じることができる。即ち、第１実施形態によれば、ユーザに、仮想３Ｄオブジェクトに対する直感的操作感を与えることができる。
【００８１】
第１実施形態では、ポインティング操作に用いられるユーザの特定部位の形状の変化の前後での、その特定部位に対応するポインティング位置のずれを用いて、変化終了時以降のポインティング位置が調節される。更に、第１実施形態では、変化終了の検出後、形状の回復変化が検出されると、保持される３Ｄポインティング位置が解放され、その解放以降、３Ｄポインティング位置の調節が行われなくなる。例えば、手を握った状態（上記所定形状）から手を開いた状態に変化していく過程で、３Ｄポインティング位置の調節が行われなくなる。これは、当該特定部位に対応するポインティング位置のずれが解消され、当該位置調節が不要となるからである。
【００８２】
従って、本実施形態によれば、特定ジェスチャの前後でのポインティング位置のずれの解消、及び、更なる特定部位の形状変化に伴う位置調節の停止により、ユーザの当該ポインティング操作を一層直感的に認識される操作とすることができる。但し、このような作用効果は、視線画像に、ユーザの特定部位が写され、かつ、操作対象となる仮想３Ｄオブジェクトが合成されている形態に限定的に生じるわけではない。ユーザは、視線を操作対象に向けることなく、自身の特定部位でその操作対象を操作する場合もあり得るからである。このような場合であっても、第１実施形態によれば、当該特定部位に対応するポインティング位置のずれは、同様に解消することができる。
【００８３】
［第２実施形態］
上述の第１実施形態では、ＨＭＤ９が用いられ、ユーザ視線画像に写るユーザの特定部位の動作により、仮想３Ｄオブジェクトの操作を可能とする形態が例示された。しかしながら、本発明は、ユーザ視線画像ではなく、向かい側から写されたユーザ画像に写るユーザの特定部位の動作により、仮想３Ｄオブジェクトの操作を可能とする形態にも適用可能である。このような形態においても、特定ジェスチャの前後でのポインティング位置のずれは起こり得るからである。以下、第２実施形態における３Ｄ−ＵＩ装置１について、第１実施形態と異なる内容を中心に説明する。以下の説明では、第１実施形態と同様の内容については適宜省略する。
【００８４】
第２実施形態における３Ｄ−ＵＩ装置１は、センサ側装置１０のみを有し、センサ側装置１０の入出力Ｉ／Ｆ５に接続される表示部に、当該合成画像を表示させる。
【００８５】
図１２は、第２実施形態における３Ｄ−ＵＩ装置１の処理構成例を概念的に示す図である。第２実施形態における３Ｄ−ＵＩ装置１の処理構成は、第１オブジェクト検出部１２、第１基準設定部１３、位置算出部１４、送信部１６、視線画像取得部３１、第２オブジェクト検出部３２、及び、第２基準設定部３３が除かれる点において第１実施形態と異なる。また、第２実施形態では、３Ｄセンサ８のカメラ座標系に対応する３Ｄポインティング位置に基づいて処理される点において第１実施形態と異なる。
【００８６】
第２実施形態によれば、ユーザは、センサ側装置１０の表示部に表示される、向かい側から写された自身の映像を見ながら、その映像上の自身の特定部位を動かすことにより、その映像に写る仮想３Ｄオブジェクトを操作することができる。第２実施形態におけるセンサ側装置１０は、ユーザの画像に替え、疑似的なユーザ画像を表示させるようにしてもよい。
【００８７】
第２実施形態においても、特定ジェスチャの前後でのポインティング位置のずれは起こり、このずれを、変化終了時に対応する３Ｄポインティング位置と、保持される変化開始時に対応する３Ｄポインティング位置との差を用いた位置調節により解消することができる。
【００８８】
［第３実施形態］
上述の第２実施形態では、ポインティング操作に用いられるユーザの特定部位の位置が、３次元座標系により特定されたが、２次元座標系により特定されるようにしてもよい（第３実施形態）。第３実施形態におけるセンサ側装置１０は、３Ｄセンサ８に替え、２Ｄ画像の撮像装置、赤外線センサなどのような２Ｄセンサを有する。３Ｄ情報取得部１１は、２Ｄ情報取得部に替えられ、２Ｄ情報取得部は、２Ｄセンサから得られる、ユーザの特定部位を特定し得る２Ｄ情報を取得する。これにより、位置算出部１４が、ユーザの特定部位の２Ｄポインティング位置を逐次算出し、この２Ｄポインティング位置が当該特定部位の形状変化に伴って調節される。
【００８９】
仮想データ生成部３４は、２Ｄの仮想オブジェクトデータを生成すればよい。第３実施形態では、２Ｄ情報にユーザの特定部位の画像が含まれていなくてもよい。この場合には、センサ側装置１０は、画像合成部３７を有しなくてもよく、所定の処理が施された２Ｄの仮想オブジェクトデータを表示部に表示する。
【００９０】
このような第３実施形態においても、特定ジェスチャの前後での２Ｄポインティング位置のずれは起こり得る。このずれを、変化終了時に対応する２Ｄポインティング位置と、保持される変化開始時に対応する２Ｄポインティング位置との差を用いた位置調節により解消することができる。
【００９１】
［変形例］
上述の第１実施形態では、カメラ座標系から共通実オブジェクトに基づき設定される３Ｄ座標系へ変換された３Ｄポインティング位置が調節されたが、変換前のカメラ座標系の３Ｄポインティング位置が調節されてもよい。この場合には、調節された３Ｄポインティング位置が共通実オブジェクトに基づき設定される３Ｄ座標系へ変換される。この場合、図１０の工程（Ｓ１０６）は、工程（Ｓ１０４）の後、かつ、工程（Ｓ１０５）の前に実行される。
【００９２】
また、上述の各実施形態における３Ｄポインティング位置又は２Ｄポインティング位置の調節は、更に、次のように実施されてもよい。例えば、変化検出部２１が、変化開始の検出から変化終了の検出までの変化時間を計測し、位置保持部２２が、計測された変化時間が所定閾値より大きい場合に、保持されるポインティング位置を解放し、位置調節部２４が、位置保持部２２によるポインティング位置の解放に応じて、ポインティング位置の調節を停止する。他の例として、位置保持部２２は、算出部２３により算出される当該差が所定閾値より大きい場合に、保持されるポインティング位置を解放し、位置調節部２４は、位置保持部２２によるポインティング位置の解放に応じて、ポインティング位置の調節を停止する。
【００９３】
これにより、ユーザの特定部位における形状の変化開始から所定の形状への変化終了までに掛かる時間が通常時よりも長い場合、及び、ユーザの特定部位の位置が形状の変化開始から所定の形状への変化終了までの間に通常時よりも大きく動いた場合に、ポインティング位置の調節を行わなくすることができる。これにより、ユーザが、意図せず、自身の特定部位の形状を変化させた場合や、想定外の動作と共に当該特定部位の形状を変化させた場合等に、その動作をコンピュータの入力と認識しなくすることができる。従って、この変形例によれば、ユーザが意図しない動作でコンピュータが操作されることを防ぐことができるため、ユーザにとって、より直感的に分かり易いコンピュータ操作とすることができる。
【００９４】
なお、上述の説明で用いた複数のフローチャートでは、複数の工程（処理）が順番に記載されているが、本実施形態で実行される工程の実行順序は、その記載の順番に制限されない。本実施形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態及び各変形例は、内容が相反しない範囲で組み合わせることができる。
【００９５】
上記の各実施形態及び各変形例の一部又は全部は、以下の付記のようにも特定され得る。但し、各実施形態及び各変形例が以下の記載に限定されるものではない。
【００９６】
（付記１）
ポインティング操作に用いられるユーザの特定部位の少なくとも１つの代表的な位置を示すポインティング位置を逐次取得する位置取得部と、
前記ユーザの前記特定部位の所定形状への変化開始及び変化終了を検出する変化検出部と、
前記位置取得部により逐次取得されるポインティング位置のうち、前記変化検出部により検出される前記変化開始時に対応するポインティング位置を保持する位置保持部と、
前記位置取得部により取得されるポインティング位置のうち、前記変化検出部により検出される前記変化終了時に対応するポインティング位置を特定し、該特定されたポインティング位置と前記位置保持部で保持されるポインティング位置との差を算出する算出部と、
前記算出部で算出される差を用いて、前記位置取得部により取得されるポインティング位置を調節する位置調節部と、
を備えるユーザインタフェース装置。
【００９７】
（付記２）
前記変化検出部は、前記ユーザの前記特定部位の形状の、前記所定形状から回復方向への回復変化を検出し、
前記位置保持部は、前記変化検出部による前記回復変化の検出に応じて、保持されるポインティング位置を解放し、
前記位置調節部は、前記位置保持部によるポインティング位置の解放に応じて、前記位置取得部で取得されるポインティング位置の調節を停止する、
付記１に記載のユーザインタフェース装置。
【００９８】
（付記３）
前記変化検出部は、前記変化開始の検出から前記変化終了の検出までの変化時間を計測し、
前記位置保持部は、前記変化時間が所定閾値より大きい場合に、保持されるポインティング位置を解放し、
前記位置調節部は、前記位置保持部によるポインティング位置の解放に応じて、前記位置取得部で取得されるポインティング位置の調節を停止する、
付記１又は２に記載のユーザインタフェース装置。
【００９９】
（付記４）
前記位置保持部は、前記算出部により算出される前記差が所定閾値より大きい場合に、保持されるポインティング位置を解放し、
前記位置調節部は、前記位置保持部によるポインティング位置の解放に応じて、前記位置取得部で取得されるポインティング位置の調節を停止する、
付記１から３のいずれか１つに記載のユーザインタフェース装置。
【０１００】
（付記５）
少なくとも１つのコンピュータにより実行されるユーザインタフェース方法において、
ポインティング操作に用いられるユーザの特定部位の少なくとも１つの代表的な位置を示すポインティング位置を逐次取得し、
前記ユーザの前記特定部位の所定形状への変化開始及び変化終了を検出し、
前記逐次取得されるポインティング位置のうち、前記検出される変化開始時に対応するポインティング位置を保持し、
前記取得されるポインティング位置のうち、前記検出される変化終了時に対応するポインティング位置を特定し、
前記特定されたポインティング位置と前記保持されるポインティング位置との差を算出し、
前記算出される差を用いて、前記取得されるポインティング位置を調節する、
ことを含むユーザインタフェース方法。
【０１０１】
（付記６）
前記ユーザの前記特定部位の形状の、前記所定形状から回復方向への回復変化を検出し、
前記変化検出部による前記回復変化の検出に応じて、保持されるポインティング位置を解放し、
前記ポインティング位置の解放に応じて、前記ポインティング位置の調節を停止する、
ことを更に含む付記５に記載のユーザインタフェース方法。
【０１０２】
（付記７）
前記変化開始の検出から前記変化終了の検出までの変化時間を計測し、
前記変化時間が所定閾値より大きい場合に、保持されるポインティング位置を解放し、
前記ポインティング位置の解放に応じて、前記取得されるポインティング位置の調節を停止する、
ことを更に含む付記５又は６に記載のユーザインタフェース方法。
【０１０３】
（付記８）
前記算出される差が所定閾値より大きい場合に、保持されるポインティング位置を解放し、
前記ポインティング位置の解放に応じて、前記取得されるポインティング位置の調節を停止する、
ことを更に含む付記５から７のいずれか１つに記載のユーザインタフェース方法。
【０１０４】
（付記９）
少なくとも１つのコンピュータにユーザインタフェース方法を実行させるプログラムにおいて、
前記ユーザインタフェース方法は、
ポインティング操作に用いられるユーザの特定部位の少なくとも１つの代表的な位置を示すポインティング位置を逐次取得し、
前記ユーザの前記特定部位の所定形状への変化開始及び変化終了を検出し、
前記逐次取得されるポインティング位置のうち、前記検出される変化開始時に対応するポインティング位置を保持し、
前記取得されるポインティング位置のうち、前記検出される変化終了時に対応するポインティング位置を特定し、
前記特定されたポインティング位置と前記保持されるポインティング位置との差を算出し、
前記算出される差を用いて、前記取得されるポインティング位置を調節する、
ことを含むプログラム。
【０１０５】
（付記１０）
前記ユーザインタフェース方法は、
前記ユーザの前記特定部位の形状の、前記所定形状から回復方向への回復変化を検出し、
前記変化検出部による前記回復変化の検出に応じて、保持されるポインティング位置を解放し、
前記ポインティング位置の解放に応じて、前記ポインティング位置の調節を停止する、
ことを更に含む付記９に記載のプログラム。
【０１０６】
（付記１１）
前記ユーザインタフェース方法は、
前記変化開始の検出から前記変化終了の検出までの変化時間を計測し、
前記変化時間が所定閾値より大きい場合に、保持されるポインティング位置を解放し、
前記ポインティング位置の解放に応じて、前記取得されるポインティング位置の調節を停止する、
ことを更に含む付記９又は１０に記載のプログラム。
【０１０７】
（付記１２）
前記ユーザインタフェース方法は、
前記算出される差が所定閾値より大きい場合に、保持されるポインティング位置を解放し、
前記ポインティング位置の解放に応じて、前記取得されるポインティング位置の調節を停止する、
ことを更に含む付記９から１１のいずれか１つに記載のプログラム。
【０１０８】
（付記１３）
付記９から１２のいずれか１つに記載のプログラムを記録したコンピュータが読み取り可能な記録媒体。
【０１０９】
この出願は、２０１２年１０月５日に出願された日本特許出願特願２０１２−２２２８８４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2014054317.tif 000003
【図２】
2014054317.tif 000004
【図３】
2014054317.tif 000005
【図４】
2014054317.tif 000006
【図５】
2014054317.tif 000007
【図６】
2014054317.tif 000008
【図７】
2014054317.tif 000009
【図８】
2014054317.tif 000010
【図９】
2014054317.tif 000011
【図１０】
2014054317.tif 000012
【図１１】
2014054317.tif 000013
【図１２】
2014054317.tif 000014
【国際調査報告】
2014054317.tif 000015
2014054317.tif 000016
2014054317.tif 000017
2014054317.tif 000018