(57)【特許請求の範囲】
【請求項１】
撮像装置によって撮影された撮影画像を表示装置に表示させ、
前記撮影画像内において対象物が写っている対象物領域と、前記撮影画像内において手が写っている手領域とが重なっている場合、前記対象物に対するユーザの作業における操作項目を含む操作メニューを前記撮影画像の代わりに前記表示装置に表示させ、
前記操作メニューを表示した時点の前記手領域の輪郭線上で隣り合う第１輪郭点、第２輪郭点、及び第３輪郭点について、前記第１輪郭点と前記手領域の重心との第１距離、前記第２輪郭点と前記重心との第２距離、及び前記第３輪郭点と前記重心との第３距離を求め、
前記第２距離が前記第１距離よりも大きく、かつ、前記第２距離が前記第３距離よりも大きい場合に、前記第２輪郭点を指先候補点として抽出し、
前記輪郭線上で抽出された複数の指先候補点の中から、前記重心から指先候補点へ向かうベクトルの角度に基づいて特定した指先候補点を、指先の位置に決定し、
前記指先の位置を起点として、前記手の動きに応じて移動するポインタを前記表示装置に表示させ、
前記ポインタと前記操作メニュー内の前記操作項目との間の位置関係と、前記手領域の形状の変化とに基づいて、前記操作項目に対する決定操作を検出する、
処理をコンピュータが実行することを特徴とする操作検出方法。
【請求項２】
前記コンピュータは、前記ポインタが前記操作メニューの表示領域内に位置しているときの前記手領域の形状の変化に基づいて、前記決定操作を検出し、
前記手領域の重心は、前記手領域内の画素の座標の平均値であることを特徴とする請求項１記載の操作検出方法。
【請求項３】
前記コンピュータは、前記対象物領域と前記手領域とが重なっており、前記手領域の形状が１本の指を伸ばした形状である場合、前記操作メニューと前記ポインタとを前記表示装置に表示させ、前記ポインタが前記操作メニューの前記表示領域内に位置しているときの前記指の第１の長さと、所定時間後における前記指の第２の長さとを検出し、前記第２の長さが前記第１の長さよりも短い場合、前記決定操作が行われたと判定することを特徴とする請求項２記載の操作検出方法。
【請求項４】
前記コンピュータは、前記ポインタが前記操作メニューの前記表示領域内に位置しており、前記手領域の重心の移動量が所定値よりも小さい場合、前記第１の長さと前記第２の長さとを検出することを特徴とする請求項３記載の操作検出方法。
【請求項５】
前記コンピュータは、前記ポインタが前記操作メニューの前記表示領域内に位置しているときの前記指の指先から前記指の根元へ向かって、前記手領域の幅を計算し、計算した幅が閾値を超える位置と前記指先の位置との距離に基づいて、前記第１の長さを求めることを特徴とする請求項３又は４記載の操作検出方法。
【請求項６】
前記コンピュータは、前記ポインタとともに、前記指が伸びている方向を示す情報を前記表示装置に表示させることを特徴とする請求項３乃至５のいずれか１項に記載の操作検出方法。
【請求項７】
前記コンピュータは、前記対象物領域と前記手領域とが重なっており、前記手領域の形状が１本の指を伸ばした形状である場合、前記操作メニューと前記ポインタとを前記表示装置に表示させ、前記ポインタが前記操作メニューの前記表示領域内に位置しているときの前記指先の位置と前記手領域の重心とを結ぶ線分を、前記指の指先から指の根元へ向かう方向に決定し、前記指の指先から前記指の根元へ向かって、前記手領域の幅を計算し、計算した幅が閾値を超える位置と前記指先の位置との距離に基づいて、前記指の第１の長さを検出し、所定時間後における前記指の第２の長さを検出し、前記第２の長さが前記第１の長さよりも短い場合、前記決定操作が行われたと判定し、
前記手領域の重心は、前記手領域内の画素の座標の平均値であることを特徴とする請求項１記載の操作検出方法。
【請求項８】
撮像装置によって撮影された撮影画像を表示装置に表示させ、前記撮影画像内において対象物が写っている対象物領域と、前記撮影画像内において手が写っている手領域とが重なっている場合、前記対象物に対するユーザの作業における操作項目を含む操作メニューを前記撮影画像の代わりに前記表示装置に表示させる表示制御部と、
前記操作メニューを表示した時点の前記手領域の輪郭線上で隣り合う第１輪郭点、第２輪郭点、及び第３輪郭点について、前記第１輪郭点と前記手領域の重心との第１距離、前記第２輪郭点と前記重心との第２距離、及び前記第３輪郭点と前記重心との第３距離を求め、前記第２距離が前記第１距離よりも大きく、かつ、前記第２距離が前記第３距離よりも大きい場合に、前記第２輪郭点を指先候補点として抽出し、前記輪郭線上で抽出された複数の指先候補点の中から、前記重心から指先候補点へ向かうベクトルの角度に基づいて特定した指先候補点を、指先の位置に決定する検出部とを備え、
前記表示制御部は、前記指先の位置を起点として、前記手の動きに応じて移動するポインタを前記表示装置に表示させ、
前記検出部は、前記ポインタと前記操作メニュー内の前記操作項目との間の位置関係と、前記手領域の形状の変化とに基づいて、前記操作項目に対する決定操作を検出することを特徴とする操作検出装置。
【請求項９】
撮像装置によって撮影された撮影画像を表示装置に表示させ、
前記撮影画像内において対象物が写っている対象物領域と、前記撮影画像内において手が写っている手領域とが重なっている場合、前記対象物に対するユーザの作業における操作項目を含む操作メニューを前記撮影画像の代わりに前記表示装置に表示させ、
前記操作メニューを表示した時点の前記手領域の輪郭線上で隣り合う第１輪郭点、第２輪郭点、及び第３輪郭点について、前記第１輪郭点と前記手領域の重心との第１距離、前記第２輪郭点と前記重心との第２距離、及び前記第３輪郭点と前記重心との第３距離を求め、
前記第２距離が前記第１距離よりも大きく、かつ、前記第２距離が前記第３距離よりも大きい場合に、前記第２輪郭点を指先候補点として抽出し、
前記輪郭線上で抽出された複数の指先候補点の中から、前記重心から指先候補点へ向かうベクトルの角度に基づいて特定した指先候補点を、指先の位置に決定し、
前記指先の位置を起点として、前記手の動きに応じて移動するポインタを前記表示装置に表示させ、
前記ポインタと前記操作メニュー内の前記操作項目との間の位置関係と、前記手領域の形状の変化とに基づいて、前記操作項目に対する決定操作を検出する、
処理をコンピュータに実行させる操作検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作検出方法、操作検出装置、及び操作検出プログラムに関する。
【背景技術】
【０００２】
近年、カメラによって撮影した画像に視覚情報を付加して表示する拡張現実技術の開発が行われている。拡張現実技術では、ウェアラブル装置、タブレット端末等の情報処理装置が用いられ、ウェアラブル装置としては、カメラを装着したヘッドマウントディスプレイ（ＨＭＤ）装置等が用いられる。これらの情報処理装置の画面上では、ユーザの視野内に存在する対象物の位置に対応させて、その対象物に関する情報が表示される。
【０００３】
このような拡張現実技術を利用すれば、工場における保守点検、機器設置等のユーザの作業を支援することが可能である。ユーザは両手を用いて作業を行うことが多いため、タブレット端末よりも、頭部に装着可能なＨＭＤ装置の方がユーザの作業支援に適している。ユーザの視野の端に小型ディスプレイを配置して、小型ディスプレイに画像を表示するマイクロディスプレイ型ＨＭＤ装置も普及しつつある。
【０００４】
画像処理の分野において、機器に接触することなく手又は指の動作のみにより、コンピュータ等に情報を入力する技術も知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−３２４１８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＨＭＤ装置の画面上では、ポインティングデバイスによる選択操作、クリック操作等を行うことが困難である。
【０００７】
なお、かかる問題は、ＨＭＤ装置等のウェアラブル装置の操作に限らず、ポインティングデバイスを使用することが困難な作業環境における他の情報処理装置の操作においても生ずるものである。
【０００８】
１つの側面において、本発明は、ジェスチャによる情報処理装置の操作を支援することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、コンピュータは以下の処理を実行する。
（１）コンピュータは、撮像装置によって撮影された撮影画像を表示装置に表示させる。
（２）コンピュータは、撮影画像内において対象物が写っている対象物領域と、撮影画像内において手が写っている手領域とが重なっている場合、対象物に対応する操作対象情報を撮影画像の代わりに表示装置に表示させる。
（３）コンピュータは、操作対象情報を表示した時点の手領域内における所定部位の位置を起点として、手の動きに応じて移動するポインタを表示装置に表示させる。
（４）コンピュータは、ポインタと操作対象情報との間の位置関係と、手領域の形状の変化とに基づいて、操作対象情報に対する決定操作を検出する。
【発明の効果】
【００１０】
実施形態によれば、ジェスチャによる情報処理装置の操作を支援することができる。
【図面の簡単な説明】
【００１１】
【図１】操作検出装置の機能的構成図である。
【図２】操作検出処理のフローチャートである。
【図３】ＨＭＤ装置の機能的構成図である。
【図４】操作検出処理の具体例を示すフローチャートである。
【図５】対象選択モードの処理のフローチャートである。
【図６】指領域抽出処理のフローチャートである。
【図７】平滑化フィルタを示す図である。
【図８】手領域抽出処理を示す図である。
【図９】指先検出処理のフローチャートである。
【図１０】指先候補点を示す図である。
【図１１】メニュー操作モードの処理のフローチャートである。
【図１２】座標変換を示す図である。
【図１３】操作メニュー及びポインタを示す図である。
【図１４】決定操作検出処理のフローチャートである。
【図１５】指長計算処理のフローチャートである。
【図１６】指長計算処理を示す図である。
【図１７】軸方向を示す図である。
【図１８】情報処理装置の構成図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、実施形態を詳細に説明する。
図１は、操作検出装置の機能的構成例を示している。図１の操作検出装置１０１は、表示制御部１１１及び検出部１１２を含む。
【００１３】
図２は、図１の操作検出装置１０１が行う操作検出処理の例を示すフローチャートである。まず、表示制御部１１１は、撮像装置によって撮影された撮影画像を表示装置に表示させる（ステップ２０１）。そして、表示制御部１１１は、撮影画像内において対象物が写っている対象物領域と、撮影画像内において手が写っている手領域とが重なっている場合、対象物に対応する操作対象情報を撮影画像の代わりに表示装置に表示させる（ステップ２０２）。
【００１４】
次に、表示制御部１１１は、操作対象情報を表示した時点の手領域内における所定部位の位置を起点として、手の動きに応じて移動するポインタを表示装置に表示させる（ステップ２０３）。そして、検出部１１２は、ポインタと操作対象情報との間の位置関係と、手領域の形状の変化とに基づいて、操作対象情報に対する決定操作を検出する（ステップ２０４）。
【００１５】
図１の操作検出装置１０１によれば、ジェスチャによる情報処理装置の操作を支援することができる。
【００１６】
図３は、図１の操作検出装置１０１を含むＨＭＤ装置の構成例を示している。図３のＨＭＤ装置は、操作検出装置１０１、撮像装置３０１、距離画像センサ３０２、及び表示装置３０３を含む。操作検出装置１０１は、表示制御部１１１、検出部１１２、取得部３１１、取得部３１２、及び記憶部３１３を含む。検出部１１２は、領域抽出部３２１、指先検出部３２２、制御部３２３、座標変換部３２４、及び操作判定部３２５を含む。
【００１７】
記憶部３１３は、映像情報３３１、デプスマップ３３２、モード情報３３３、及び操作メニュー３３４、クリック対象３３５、及び指長情報３３６を記憶する。映像情報３３１は、撮像装置３０１によって撮影された映像を表し、複数時刻におけるフレームの画像を含む。
【００１８】
デプスマップ３３２は、距離画像センサ３０２によって撮影された距離画像を表し、距離画像の各画素の画素値は、距離画像センサ３０２から物体までの距離を表す。距離画像センサ３０２から物体までの距離の代わりに、所定の基準点から物体までの距離を表す画素値を用いてもよい。
【００１９】
モード情報３３３は、操作検出装置１０１の動作モードを表す。動作モードとしては、ユーザの作業領域における対象物を選択する対象選択モードと、操作メニュー３３４を表示装置３０３の画面に表示してユーザの作業を支援するメニュー操作モードとが存在する。操作メニュー３３４は、対象物に対するユーザの作業における１つ以上の操作項目を含む画像を表す。操作メニュー３３４に含まれる各操作項目は、対象物に対応する操作対象情報を表す。
【００２０】
例えば、工場における保守点検作業の場合、対象物は、電力計、圧力計、温度計等の各種計測機器であってもよい。この場合、ユーザは、計測機器が表示する計測値を確認し、操作メニュー３３４を用いて確認結果をＨＭＤ装置に入力したり、計測値又は計測機器の画像をＨＭＤ装置に入力したりする作業を行う。クリック対象３３５は、ユーザが操作メニュー３３４から選択した操作項目を表し、指長情報３３６は、ユーザが操作項目を選択した時点における指の長さを表す。
【００２１】
撮像装置３０１は、例えば、カラー映像を撮影するカメラであり、作業領域の映像を撮影する。取得部３１１は、撮像装置３０１から映像を取得し、映像情報３３１として記憶部３１３に格納する。距離画像センサ３０２は、レーザ光線、赤外線等を用いて各時刻における距離画像を撮影する。取得部３１２は、距離画像センサ３０２から距離画像を取得し、デプスマップ３３２として記憶部３１３に格納する。
【００２２】
領域抽出部３２１は、デプスマップ３３２から手領域を抽出するとともに、映像情報３３１に含まれる各フレームの画像から対象物領域及び手領域を抽出する。指先検出部３２２は、映像情報３３１の画像内の手領域から指先の位置を検出する。制御部３２３は、対象物領域と手領域との重なり状態に応じてモード情報３３３を変更し、モード情報３３３が表す動作モードを示す制御信号を、表示制御部１１１へ出力する。座標変換部３２４は、指先検出部３２２が検出した指先の位置を表す座標を、表示装置３０３の画面上の座標に変換して、表示制御部１１１へ出力する。
【００２３】
表示制御部１１１は、制御部３２３から出力される制御信号に従って、映像情報３３１又は操作メニュー３３４を、表示装置３０３の画面に表示させる。操作メニュー３３４が画面に表示された場合、表示制御部１１１は、操作メニュー３３４とともに、その時点における指先の位置を示すポインタを画面に表示させる。
【００２４】
操作判定部３２５は、画面に表示されたポインタと操作メニュー３３４内の各操作項目との位置関係と、手領域の形状の変化とに基づいて、ユーザがいずれかの操作項目をクリックする決定操作を行ったか否かを判定する。
【００２５】
ユーザの頭部に装着されるヘッドマウントモジュールは、図３のＨＭＤ装置全体を含んでいてもよく、ＨＭＤ装置の一部の構成要素のみを含んでいてもよい。例えば、撮像装置３０１、距離画像センサ３０２、及び表示装置３０３をヘッドマウントモジュールとして実装し、操作検出装置１０１を頭部以外の身体部位に装着されるモジュールとして実装することができる。
【００２６】
図４は、図３の操作検出装置１０１が行う操作検出処理の具体例を示すフローチャートである。図４の操作検出処理は、映像情報３３１に含まれる各フレームの画像に対して行われる。
【００２７】
まず、制御部３２３は、モード情報３３３が対象選択モード又はメニュー操作モードのいずれの動作モードを表すかチェックする（ステップ４０１）。初期状態において、モード情報３３３は対象選択モードに設定されている。
【００２８】
モード情報３３３が対象選択モードを表す場合（ステップ４０１，ＹＥＳ）、制御部３２３は、対象選択モードを示す制御信号を表示制御部１１１へ出力し、操作検出装置１０１は、対象選択モードの処理を行う（ステップ４０２）。対象選択モードにおいて、表示制御部１１１は、映像情報３３１を表示装置３０３の画面に表示させる。
【００２９】
一方、モード情報３３３がメニュー操作モードを表す場合（ステップ４０１，ＮＯ）、制御部３２３は、メニュー操作モードを示す制御信号を表示制御部１１１へ出力し、操作検出装置１０１は、メニュー操作モードの処理を行う（ステップ４０３）。メニュー操作モードにおいて、表示制御部１１１は、操作メニュー３３４を表示装置３０３の画面に表示させる。
【００３０】
図５は、図４のステップ４０２における対象選択モードの処理の例を示すフローチャートである。まず、領域抽出部３２１は、現時刻のデプスマップ３３２を用いて、映像情報３３１における同じ時刻の画像から手領域を抽出し、指先検出部３２２は、その手領域から指領域を抽出する（ステップ５０１）。指領域は、指先の位置であってもよい。
【００３１】
デプスマップ３３２の各画素の位置は、映像情報３３１における同じ時刻の画像の各画素の位置に対応する。そこで、領域抽出部３２１は、デプスマップ３３２から手領域を抽出し、その手領域に対応する映像情報３３１の画像内の領域を特定することで、画像から手領域を抽出することができる。
【００３２】
次に、領域抽出部３２１は、映像情報３３１の画像から対象物領域を抽出する（ステップ５０２）。例えば、対象物上又はその周囲の物体にマーカが貼付されている場合、領域抽出部３２１は、画像内におけるマーカの位置を特定し、特定したマーカの位置と所定の位置関係にある対象物領域を抽出することができる。また、領域抽出部３２１は、テンプレートマッチング等を用いて、画像から対象物領域を抽出することもできる。
【００３３】
次に、制御部３２３は、映像情報３３１の画像内で指領域と対象物領域とが重なっているか否かをチェックする（ステップ５０３）。指領域と対象物領域とが重なっている場合（ステップ５０３，ＹＥＳ）、制御部３２３は、モード情報３３３を対象選択モードからメニュー操作モードに変更し、メニュー操作モードを示す制御信号を表示制御部１１１へ出力する（ステップ５０４）。そして、操作検出装置１０１は、メニュー操作モードの処理を行う。
【００３４】
一方、指領域と対象物領域とが重なっていない場合（ステップ５０３，ＮＯ）、制御部３２３は、モード情報３３３を変更しない。
【００３５】
図６は、図５のステップ５０１における指領域抽出処理の例を示すフローチャートである。まず、領域抽出部３２１は、平滑化フィルタ等を用いて、デプスマップ３３２の領域を平滑化する（ステップ６０１）。
【００３６】
図７は、平滑化フィルタの例を示している。図７の平滑化フィルタは、３画素×３画素のフィルタであり、中央の画素の画素値は、フィルタ内の９個の画素の各画素値に重み１／９を乗算して加算した結果に置き換えられる。このような重み付き加算をデプスマップ３３２の全画素に対して行うことで、デプスマップ３３２のノイズが低減される。
【００３７】
次に、領域抽出部３２１は、平滑化されたデプスマップ３３２から手領域を抽出する（ステップ６０２）。領域抽出部３２１は、例えば、デプスマップ３３２の画素のうち、閾値よりも小さい画素値を有する近距離画素からなる領域を、手領域として抽出することができる。この場合、閾値以上の画素値を有する遠距離画素からなる領域は、背景領域とみなされる。
【００３８】
図８は、手領域抽出処理の例を示している。図８のデプスマップ８０１のうち、近距離画素からなる領域８０２が手領域として抽出される。
【００３９】
ステップ６０２において、領域抽出部３２１は、デプスマップ３３２から抽出された手領域に対応する映像情報３３１の画像内の領域を、手領域として抽出する。そして、指先検出部３２２は、画像から抽出された手領域から、指先の位置を検出する（ステップ６０３）。
【００４０】
図９は、図６のステップ６０３における指先検出処理の例を示すフローチャートである。まず、指先検出部３２２は、手領域の基準点を決定する（ステップ９０１）。手領域の基準点としては、例えば、手領域内の全画素の座標の平均値に対応する重心を用いることができる。
【００４１】
次に、指先検出部３２２は、手領域の輪郭線上の点の中から指先候補点を抽出する（ステップ９０２）。例えば、輪郭線上で隣り合う３個の点を輪郭点Ａ、輪郭点Ｂ、及び輪郭点Ｃとし、輪郭点Ａ、輪郭点Ｂ、及び輪郭点Ｃと基準点との距離を、それぞれ、Ｄａ、Ｄｂ、及びＤｃとする。このとき、指先検出部３２２は、輪郭線上の各点に対して次式を満たすか否かをチェックし、次式を満たす輪郭点Ｂを指先候補点として抽出する。
【００４２】
Ｄａ＜Ｄｂ＞Ｄｃ      （１）
【００４３】
次に、指先検出部３２２は、抽出した指先候補点のうち、基準点から指先候補点へ向かうベクトルが上向きである指先候補点を特定し（ステップ９０３）、特定した指先候補点を指先の位置に決定する（ステップ９０４）。例えば、画像の水平方向又は垂直方向に対するベクトルの角度が所定範囲内である場合、ベクトルが上向きであると判定される。
【００４４】
ユーザが１本の指を伸ばした状態で手を移動させながら、操作メニュー３３４を操作する場合、手領域の形状は１本の指を伸ばした形状（１本指形状）になる。この場合、上向きの指先候補点は、手領域から１個だけ抽出される。そこで、ステップ９０３において抽出された上向きの指先候補点の個数が１個の場合、指先検出部３２２は、手領域の形状が１本指形状であると判定し、その指先候補点を指先の位置に決定する。
【００４５】
図１０は、このような１本指形状の手領域における指先候補点の例を示している。手領域１００１の輪郭点１００３と基準点１００２との距離は、輪郭線上で輪郭点１００３の両隣に位置する２つの輪郭点と基準点１００２との距離よりも大きいため、輪郭点１００３は指先候補点として抽出される。そして、基準点１００２から輪郭点１００３へ向かうベクトル１００４は上向きであるため、輪郭点１００３の位置が指先の位置に決定される。
【００４６】
この場合、図５のステップ５０３において、制御部３２３は、画像内で指先の位置が対象物領域に含まれる場合、指領域と対象物領域とが重なっていると判定する。
【００４７】
図１１は、図４のステップ４０３及び図５のステップ５０４におけるメニュー操作モードの処理の例を示すフローチャートである。ステップ１１０１の処理は、図５のステップ５０１の処理と同様である。
【００４８】
座標変換部３２４は、指先検出部３２２が検出した指先の位置の座標（ｘ，ｙ）を、表示装置３０３の画面上の座標（ｕ，ｖ）に変換して、表示制御部１１１へ出力する（ステップ１１０２）。座標変換部３２４は、例えば、定数ｘ０、定数ｙ０、定数α、及び定数βを用いて、次式により座標（ｘ，ｙ）から座標（ｕ，ｖ）を計算する。
【００４９】
ｕ＝（ｘ−ｘ０）＊α      （２）
ｖ＝（ｙ−ｙ０）＊β      （３）
【００５０】
図１２は、座標変換の例を示している。画像１２０１内の指先の位置に対応する輪郭点１００３の座標が、画面１２０２上の点１２０３の座標に変換される。
【００５１】
表示制御部１１１は、メニュー操作モードを示す制御信号に従って、操作メニュー３３４と座標（ｕ，ｖ）を示すポインタとを表示装置３０３へ出力し、表示装置３０３は、操作メニュー３３４を画面に表示するとともに、座標（ｕ，ｖ）の位置にポインタを表示する。
【００５２】
図１３は、画面に表示された操作メニュー３３４及びポインタの例を示している。画面１２０２内には、操作項目１３０１〜操作項目１３０３が表示され、図１２の点１２０３に対応する位置にポインタ１３１１が表示される。ポインタ１３１１は、操作メニュー３３４上でユーザの手の動きに応じて移動する。
【００５３】
次に、操作判定部３２５は、画面内におけるポインタと各操作項目との位置関係に基づいて、ユーザによって選択された操作項目を特定する（ステップ１１０３）。操作判定部３２５は、例えば、ポインタの位置が操作項目の表示領域に含まれる場合に、その操作項目が選択されたと判定する。図１３の例では、ポインタ１３１１の位置が操作項目１３０２の表示領域に含まれるため、操作項目１３０２がユーザによって選択されたと判定される。
【００５４】
次に、操作判定部３２５は、選択された操作項目に対する決定操作を検出する（ステップ１１０４）。図１３の例では、操作項目１３０２が選択された状態で決定操作が検出された場合、ユーザが操作項目１３０２をクリックしたと判定される。
【００５５】
例えば、ユーザは、１本指形状の指先で操作項目を選択した状態で、伸ばした指を折り曲げるジェスチャを行うことで、操作項目をクリックする決定操作を行うことができる。このようなジェスチャ操作によれば、ユーザにとって入力タイミングが明確となり、フィードバックのない空間内であっても、入力作業が容易になる。また、操作判定部３２５は、指長の変化から容易に決定操作を検出することができる。
【００５６】
図１４は、図１１のステップ１１０４における決定操作検出処理の例を示すフローチャートである。操作判定部３２５は、ステップ１１０３においていずれかの操作項目を特定した場合、特定した操作項目を、記憶部３１３内のクリック対象３３５に設定する（ステップ１４０１）。ただし、現時刻よりも前の画像に基づく決定操作検出処理において、クリック対象３３５に操作項目が既に設定されている場合、操作判定部３２５は、クリック対象３３５を変更しない。
【００５７】
次に、操作判定部３２５は、クリック対象３３５に操作項目が設定されているか否かをチェックする（ステップ１４０２）。クリック対象３３５に操作項目が設定されている場合（ステップ１４０２，ＹＥＳ）、操作判定部３２５は、手領域の重心が移動したか否かをチェックする（ステップ１４０３）。
【００５８】
このとき、操作判定部３２５は、例えば、現時刻よりも前の時刻における手領域の重心と現時刻における手領域の重心との距離を、重心の移動量として求める。そして、操作判定部３２５は、移動量が所定値以上である場合、重心が移動したと判定し、移動量が所定値よりも小さい場合、重心が移動していないと判定する。重心の移動量に基づいて手が移動したか否かを判定することで、ユーザが選択した操作項目をクリックすることなく、指先を別の操作項目へ移動させたか否かを検出することができる。
【００５９】
重心が移動していない場合（ステップ１４０３，ＮＯ）、操作判定部３２５は、指先の位置に基づいて、指先から指の根元までの長さ（指長）を計算する（ステップ１４０４）。ステップ１４０１において操作項目をクリック対象３３５に設定した場合、操作判定部３２５は、計算した指長Ｌを指長情報３３６として記憶部３１３に格納する。
【００６０】
現時刻よりも前の画像に基づく決定操作検出処理において、指長情報３３６が既に格納されている場合、操作判定部３２５は、計算した指長Ｌを、指長情報３３６が示す指長Ｌ０と比較する（ステップ１４０５）。操作判定部３２５は、例えば、１以上の定数ａを用いて、次式によりＬとＬ０を比較することができる。
【００６１】
Ｌ０＞Ｌ＊ａ      （４）
【００６２】
Ｌが式（４）を満たす場合（ステップ１４０５，ＹＥＳ）、操作判定部３２５は、操作項目が選択された時点よりも指長が一定割合以下まで短くなり、ユーザがクリック対象３３５の操作項目をクリックしたと判定する（ステップ１４０６）。ユーザがクリックした操作項目がメニュー操作モードの終了を表す項目である場合、制御部３２３は、モード情報３３３をメニュー操作モードから対象選択モードに変更し、対象選択モードを示す制御信号を表示制御部１１１へ出力する。
【００６３】
一方、Ｌが式（４）を満たさない場合（ステップ１４０５，ＮＯ）、操作判定部３２５は、指長が短くなっておらず、ユーザがクリック対象３３５の操作項目をクリックしていないと判定する。なお、現時刻の画像に基づく決定操作検出処理において指長情報３３６を格納した場合は、Ｌ＝Ｌ０であるため、ユーザがクリック対象３３５の操作項目をクリックしていないと判定される。
【００６４】
重心が移動した場合（ステップ１４０３，ＹＥＳ）、操作判定部３２５は、ユーザが選択した操作項目をクリックするのを止めたと判定する。そして、操作判定部３２５は、クリック対象３３５に設定されている操作項目を削除して、クリック対象３３５を解放する（ステップ１４０７）。
【００６５】
クリック対象３３５が解放された後、次の時刻以降の画像において、ステップ１１０３で別の操作項目が特定された場合、ステップ１４０１において、その操作項目がクリック対象３３５に設定される。
【００６６】
また、ステップ１４０４において指長Ｌ０が指長情報３３６に設定された後、次の時刻以降の画像において、ステップ１４０４で指長Ｌが計算された場合、ステップ１４０５において、指長Ｌが指長Ｌ０と比較される。
【００６７】
このような決定操作検出処理によれば、ユーザは、１本指形状の指先をポインティングデバイスの代わりに用いて、指を折り曲げる直感的なジェスチャにより、操作項目に対するクリック操作を行うことができる。
【００６８】
図１５は、図１４のステップ１４０４における指長計算処理の例を示すフローチャートである。この指長計算処理では、指先から指の根元へ向かって手領域の幅が計算され、手領域における指の方向と、手領域の幅（指幅）の変化とに基づいて、指長が求められる。
【００６９】
操作判定部３２５は、ステップ１４０１において操作項目をクリック対象３３５に設定した場合、指先の位置と手領域の重心とを結ぶ線分を求め、その線分を指が伸びている軸方向に決定する（ステップ１５０１）。決定された軸方向は、指先から指の根元へ向かう方向を表している。ただし、現時刻よりも前の画像に基づく指長計算処理において、軸方向が既に決定されている場合、操作判定部３２５は、その軸方向を用いる。
【００７０】
次に、操作判定部３２５は、軸方向に沿って指先から重心へ向かって、所定長毎に、軸方向と垂直な方向における手領域の幅を計算する（ステップ１５０２）。操作判定部３２５は、例えば、軸方向と垂直な方向における手領域の２つの輪郭点の間の画素数を、手領域の幅として求める。そして、操作判定部３２５は、手領域の幅が閾値を超える位置を指の根元として特定し、指先と指の根元との距離を指長に決定する。閾値は、固定値であってもよく、デプスマップ３３２が示す手領域の距離に反比例する値であってもよい。
【００７１】
図１６は、指長計算処理の例を示している。図１６（ａ）は、操作項目が選択されたときの１本指形状の手領域を示しており、指先の位置１６０１と手領域の重心１６０２とを結ぶ線分１６０３は、１本指形状の軸方向を表す。この場合、１本指の指先から根元までの指長Ｌ１が求められる。
【００７２】
図１６（ｂ）は、操作項目が選択されてから所定時間後にその操作項目がクリックされたときの手領域を示しており、線分１６０３に沿った指長Ｌ２は、Ｌ１よりも一定割合以下まで短くなっている。このように、一旦、軸方向が決定されれば、その後は、指先の位置１６０１が検出されなくても、軸方向に沿って指長を計算することができる。
【００７３】
ところで、図１１のステップ１１０２において、指先の位置を示すポインタとともに、指の軸方向を示す情報を画面に表示することも可能である。この場合、指先検出部３２２は、図１５のステップ１５０１と同様にして軸方向を決定し、表示制御部１１１は、操作メニュー３３４、指先の位置を示すポインタ、及び軸方向を示す情報を、表示装置３０３へ出力する。そして、表示装置３０３は、操作メニュー３３４、ポインタ、及び軸方向を画面に表示する。
【００７４】
図１７は、画面に表示された軸方向の例を示している。図１７（ａ）の例では、画面１２０２内に、操作項目１３０１〜操作項目１３０３、ポインタ１３１１、及び軸方向を示す線分１７０１が表示される。ポインタ１３１１及び線分１７０１は、操作メニュー３３４上でユーザの手の動きに応じて移動する。
【００７５】
図１７（ｂ）の例では、画面１２０２内に、操作項目１３０１〜操作項目１３０３、ポインタ１３１１、及び軸方向を示す手の図形１７０２が表示される。ポインタ１３１１及び図形１７０２は、操作メニュー３３４上でユーザの手の動きに応じて移動する。
【００７６】
このように、指先の位置を示すポインタに加えて軸方向も表示することで、ユーザは、画面上での指の移動方向を容易に認識することができる。
【００７７】
図１の操作検出装置１０１及び図３のＨＭＤ装置の構成は一例に過ぎず、操作検出装置１０１及びＨＭＤ装置の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図３のＨＭＤ装置において、デプスマップ３３２の代わりに映像情報３３１を用いて指領域抽出処理を行う場合、距離画像センサ３０２及び取得部３１２を省略することができる。
【００７８】
図２、図４〜図６、図９、図１１、図１４、及び図１５のフローチャートは一例に過ぎず、操作検出装置１０１の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、図６の指領域抽出処理において、デプスマップ３３２のノイズが少ない場合、ステップ６０１の処理を省略することができる。検出部１１２は、デプスマップ３３２の代わりに映像情報３３１を用いて指領域抽出処理を行ってもよい。
【００７９】
図９の指先検出処理のステップ９０１において、手領域の基準点として重心以外の点を用いてもよい。ユーザは、１本指形状以外の手で操作メニュー３３４を操作してもよく、指先以外の所定部位を用いて操作項目を選択してもよい。この場合、検出部１１２は、指先の位置の代わりに、所定部位の位置を検出する処理を行う。
【００８０】
図１４の決定操作検出処理のステップ１４０３において、重心以外の点の移動量に基づいて手が移動したか否かを判定してもよい。ユーザは、指を折り曲げるジェスチャ以外のジェスチャで決定操作を行ってもよく、ステップ１４０４及びステップ１４０５において、操作判定部３２５は、指長以外の手領域の形状の変化に基づいて決定操作が行われたか否かを判定してもよい。
【００８１】
図７の平滑化フィルタ、図８のデプスマップ８０１、図１０及び図１２の手領域１００１、図１３の操作項目１３０１〜操作項目１３０３及びポインタ１３１１、図１６の線分１６０３、図１７の線分１７０１及び図形１７０２は一例に過ぎない。別の平滑化フィルタ等を用いてもよい。
【００８２】
図１及び図３の操作検出装置１０１は、例えば、図１８に示すような情報処理装置（コンピュータ）を用いて実現可能である。図１８の情報処理装置は、Central Processing Unit（ＣＰＵ）１８０１、メモリ１８０２、補助記憶装置１８０３、媒体駆動装置１８０４、及びネットワーク接続装置１８０５を備える。これらの構成要素はバス１８０６により互いに接続されている。
【００８３】
メモリ１８０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ１８０２は、図３の記憶部３１３として用いることができる。
【００８４】
ＣＰＵ１８０１（プロセッサ）は、例えば、メモリ１８０２を利用してプログラムを実行することにより、図１及び図３の表示制御部１１１及び検出部１１２として動作する。ＣＰＵ１８０１は、プログラムを実行することにより、取得部３１１、取得部３１２、領域抽出部３２１、指先検出部３２２、制御部３２３、座標変換部３２４、及び操作判定部３２５としても動作する。
【００８５】
補助記憶装置１８０３は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置１８０３は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置１８０３にプログラム及びデータを格納しておき、それらをメモリ１８０２にロードして使用することができる。補助記憶装置１８０３は、図３の記憶部３１３として用いることができる。
【００８６】
媒体駆動装置１８０４は、可搬型記録媒体１８０７を駆動し、その記録内容にアクセスする。可搬型記録媒体１８０７は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体１８０７は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。ユーザは、この可搬型記録媒体１８０７にプログラム及びデータを格納しておき、それらをメモリ１８０２にロードして使用することができる。
【００８７】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ１８０２、補助記憶装置１８０３、又は可搬型記録媒体１８０７のような、物理的な（非一時的な）記録媒体である。
【００８８】
ネットワーク接続装置１８０５は、Local Area Network、Wide Area Network等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置１８０５を介して受け取り、それらをメモリ１８０２にロードして使用することができる。
【００８９】
なお、情報処理装置が図１８のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、他の装置との通信を行う必要がない場合は、ネットワーク接続装置１８０５を省略してもよく、可搬型記録媒体１８０７を利用しない場合は、媒体駆動装置１８０４を省略してもよい。
【００９０】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【００９１】
図１乃至図１８を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
撮像装置によって撮影された撮影画像を表示装置に表示させ、
前記撮影画像内において対象物が写っている対象物領域と、前記撮影画像内において手が写っている手領域とが重なっている場合、前記対象物に対応する操作対象情報を前記撮影画像の代わりに前記表示装置に表示させ、
前記操作対象情報を表示した時点の前記手領域内における所定部位の位置を起点として、前記手の動きに応じて移動するポインタを前記表示装置に表示させ、
前記ポインタと前記操作対象情報との間の位置関係と、前記手領域の形状の変化とに基づいて、前記操作対象情報に対する決定操作を検出する、
処理をコンピュータが実行することを特徴とする操作検出方法。
（付記２）
前記所定部位は前記手の指先であり、前記コンピュータは、前記ポインタが前記操作対象情報の表示領域内に位置しているときの前記手領域の形状の変化に基づいて、前記決定操作を検出することを特徴とする付記１記載の操作検出方法。
（付記３）
前記コンピュータは、前記対象物領域と前記手領域とが重なっており、前記手領域の形状が１本の指を伸ばした形状である場合、前記操作対象情報と前記ポインタとを前記表示装置に表示させ、前記ポインタが前記操作対象情報の前記表示領域内に位置しているときの前記指の第１の長さと、所定時間後における前記指の第２の長さとを検出し、前記第２の長さが前記第１の長さよりも短い場合、前記決定操作が行われたと判定することを特徴とする付記２記載の操作検出方法。
（付記４）
前記コンピュータは、前記ポインタが前記操作対象情報の前記表示領域内に位置しており、前記手領域の重心の移動量が所定値よりも小さい場合、前記第１の長さと前記第２の長さとを検出することを特徴とする付記３記載の操作検出方法。
（付記５）
前記コンピュータは、前記ポインタが前記操作対象情報の前記表示領域内に位置しているときの前記指の指先から前記指の根元へ向かって、前記手領域の幅を計算し、計算した幅が閾値を超える位置と前記指先の位置との距離に基づいて、前記第１の長さを求めることを特徴とする付記３又は４記載の操作検出方法。
（付記６）
前記コンピュータは、前記ポインタとともに、前記指が伸びている方向を示す情報を前記表示装置に表示させることを特徴とする付記３乃至５のいずれか１項に記載の操作検出方法。
（付記７）
撮像装置によって撮影された撮影画像を表示装置に表示させ、前記撮影画像内において対象物が写っている対象物領域と、前記撮影画像内において手が写っている手領域とが重なっている場合、前記対象物に対応する操作対象情報を前記撮影画像の代わりに前記表示装置に表示させ、前記操作対象情報を表示した時点の前記手領域内における所定部位の位置を起点として、前記手の動きに応じて移動するポインタを前記表示装置に表示させる表示制御部と、
前記ポインタと前記操作対象情報との間の位置関係と、前記手領域の形状の変化とに基づいて、前記操作対象情報に対する決定操作を検出する検出部と、
を備えることを特徴とする操作検出装置。
（付記８）
前記所定部位は前記手の指先であり、前記検出部は、前記ポインタが前記操作対象情報の表示領域内に位置しているときの前記手領域の形状の変化に基づいて、前記決定操作を検出することを特徴とする付記７記載の操作検出装置。
（付記９）
前記表示制御部は、前記対象物領域と前記手領域とが重なっており、前記手領域の形状が１本の指を伸ばした形状である場合、前記操作対象情報と前記ポインタとを前記表示装置に表示させ、前記検出部は、前記ポインタが前記操作対象情報の前記表示領域内に位置しているときの前記指の第１の長さと、所定時間後における前記指の第２の長さとを検出し、前記第２の長さが前記第１の長さよりも短い場合、前記決定操作が行われたと判定することを特徴とする付記８記載の操作検出装置。
（付記１０）
前記検出部は、前記ポインタが前記操作対象情報の前記表示領域内に位置しており、前記手領域の重心の移動量が所定値よりも小さい場合、前記第１の長さと前記第２の長さとを検出することを特徴とする付記９記載の操作検出装置。
（付記１１）
撮像装置によって撮影された撮影画像を表示装置に表示させ、
前記撮影画像内において対象物が写っている対象物領域と、前記撮影画像内において手が写っている手領域とが重なっている場合、前記対象物に対応する操作対象情報を前記撮影画像の代わりに前記表示装置に表示させ、
前記操作対象情報を表示した時点の前記手領域内における所定部位の位置を起点として、前記手の動きに応じて移動するポインタを前記表示装置に表示させ、
前記ポインタと前記操作対象情報との間の位置関係と、前記手領域の形状の変化とに基づいて、前記操作対象情報に対する決定操作を検出する、
処理をコンピュータに実行させる操作検出プログラム。
（付記１２）
前記所定部位は前記手の指先であり、前記コンピュータは、前記ポインタが前記操作対象情報の表示領域内に位置しているときの前記手領域の形状の変化に基づいて、前記決定操作を検出することを特徴とする付記１１記載の操作検出プログラム。
（付記１３）
前記コンピュータは、前記対象物領域と前記手領域とが重なっており、前記手領域の形状が１本の指を伸ばした形状である場合、前記操作対象情報と前記ポインタとを前記表示装置に表示させ、前記ポインタが前記操作対象情報の前記表示領域内に位置しているときの前記指の第１の長さと、所定時間後における前記指の第２の長さとを検出し、前記第２の長さが前記第１の長さよりも短い場合、前記決定操作が行われたと判定することを特徴とする付記１２記載の操作検出プログラム。
（付記１４）
前記コンピュータは、前記ポインタが前記操作対象情報の前記表示領域内に位置しており、前記手領域の重心の移動量が所定値よりも小さい場合、前記第１の長さと前記第２の長さとを検出することを特徴とする付記１３記載の操作検出プログラム。
【符号の説明】
【００９２】
１０１  操作検出装置
１１１  表示制御部
１１２  検出部
３０１  撮像装置
３０２  距離画像センサ
３０３  表示装置
３１１、３１２  取得部
３１３  記憶部
３２１  領域抽出部
３２２  指先検出部
３２３  制御部
３２４  座標変換部
３２５  操作判定部
３３１  映像情報
３３２、８０１  デプスマップ
３３３  モード情報
３３４  操作メニュー
３３５  クリック対象
３３６  指長情報
８０２  領域
１００１  手領域
１００２  基準点
１００３  輪郭点
１００４  ベクトル
１２０１  画像
１２０２  画面
１２０３  点
１３０１〜１３０３  操作項目
１３１１  ポインタ
１６０１  指先の位置
１６０２  重心
１６０３、１７０１  線分
１７０２  図形
１８０１  ＣＰＵ
１８０２  メモリ
１８０３  補助記憶装置
１８０４  媒体駆動装置
１８０５  ネットワーク接続装置
１８０６  バス
１８０７  可搬型記録媒体
【図１】
0006716897.tif 000002
【図２】
0006716897.tif 000003
【図３】
0006716897.tif 000004
【図４】
0006716897.tif 000005
【図５】
0006716897.tif 000006
【図６】
0006716897.tif 000007
【図７】
0006716897.tif 000008
【図８】
0006716897.tif 000009
【図９】
0006716897.tif 000010
【図１０】
0006716897.tif 000011
【図１１】
0006716897.tif 000012
【図１２】
0006716897.tif 000013
【図１３】
0006716897.tif 000014
【図１４】
0006716897.tif 000015
【図１５】
0006716897.tif 000016
【図１６】
0006716897.tif 000017
【図１７】
0006716897.tif 000018
【図１８】
0006716897.tif 000019