(57)【要約】【課題】位置情報の入力が容易な情報処理装置を提供すること。【解決手段】動作検出装置１０が検出するユーザの動作に関する動作情報に基づき、表示装置３１０において表示されるユーザが指示する位置を示す位置指示表示情報の位置情報を作成する情報処理装置３０であって、前記動作情報に基づきユーザの動作の速さを検出する速さ検出手段３７と、前記速さ検出手段が検出した速さが予め定められた速さの条件に合致しない場合、前記位置指示表示情報の移動方向を所定方向に制限して前記位置情報を作成する位置情報作成手段３５と、を有する。【選択図】図１
2018005660.tif 000002
【特許請求の範囲】
【請求項１】
動作検出装置が検出するユーザの動作に関する動作情報に基づき、表示装置において表示されるユーザが指示する位置を示す位置指示表示情報の位置情報を作成する情報処理装置であって、
前記動作情報に基づきユーザの動作の速さを検出する速さ検出手段と、
前記速さ検出手段が検出した速さが予め定められた速さの条件に合致しない場合、前記位置指示表示情報の移動方向を所定方向に制限して前記位置情報を作成する位置情報作成手段と、
を有する情報処理装置。
【請求項２】
前記位置情報作成手段は、前記表示装置の横方向又は縦方向に前記位置指示表示情報の移動方向を制限する請求項１に記載の情報処理装置。
【請求項３】
前記位置情報に基づいて前記位置指示表示情報を表示する位置指示表示情報表示手段を有し、
前記速さ検出手段が検出した速さが閾値未満の場合、前記位置指示表示情報表示手段は、前記位置指示表示情報をメッシュと共に該メッシュの交点に表示する請求項１又は２に記載の情報処理装置。
【請求項４】
前記速さ検出手段が検出した速さが閾値未満の場合、前記位置情報作成手段はユーザが動作した大きさが所定以上の場合に、前記メッシュにおける前記位置指示表示情報の位置を更新する請求項３に記載の情報処理装置。
【請求項５】
前記位置情報作成手段は、前記速さ検出手段が検出した速さが閾値以上か閾値未満かによって異なるユーザの身体の部位を用いて前記位置情報を作成する請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記動作情報に基づいて予め定められたジェスチャーを検出するジェスチャー検出手段と、
前記位置情報及び前記ジェスチャー検出手段が検出したジェスチャーをアプリケーションソフトに出力する出力手段と、を有する請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記ジェスチャー検出手段は、前記動作情報に基づいてユーザが手首を動かさずに手先を動かすジェスチャーを検出する請求項６に記載の情報処理装置。
【請求項８】
前記ユーザが前記位置情報の入力を開始するために行う予め定められた動作を前記動作情報に基づき検出する開始動作検出手段を有し、
前記動作検出装置が複数のユーザを検出している場合、前記開始動作検出手段は、複数のユーザのうち最も早く前記予め定められた動作を行ったユーザに前記位置情報を入力するための操作権を与え、
前記位置情報作成手段は、前記開始動作検出手段が前記操作権を与えたユーザの動作から前記位置情報を作成する請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項９】
前記予め定められた動作は、手を挙げる動作であり、
前記開始動作検出手段が前記予め定められた動作を検出した場合、肩の上方に操作エリアを作成するエリア作成手段を有し、
前記位置情報作成手段は、前記操作エリアの原点を基準とするユーザの手の座標を、前記表示装置における前記位置指示表示情報の前記位置情報に変換する請求項８に記載の情報処理装置。
【請求項１０】
前記予め定められた動作は、手を挙げる動作かつ手がユーザの体の予め定められた所定の周辺領域に含まれない動作である請求項９に記載の情報処理装置。
【請求項１１】
前記エリア作成手段は、前記表示装置のアスペクト比に応じて、縦横の長さが異なる前記操作エリアを作成する請求項９又は１０に記載の情報処理装置。
【請求項１２】
前記動作検出装置がユーザを検出した場合、前記動作検出装置のユーザの検出範囲を前記表示装置に表示すると共に、前記動作情報に含まれる前記ユーザの位置に基づいて前記検出範囲の中に前記ユーザを示す人アイコンを表示するアイコン表示手段を有する請求項１〜１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記アイコン表示手段は、ユーザが前記位置情報を入力するための位置を前記検出範囲に明示する請求項１２に記載の情報処理装置。
【請求項１４】
前記位置で前記ユーザが手を挙げた場合、前記アイコン表示手段は、手を挙げている前記人アイコンを表示する請求項１３に記載の情報処理装置。
【請求項１５】
予め定められた速さの条件に合致しない場合とは、速さが閾値未満である場合である請求項１〜１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記動作情報に含まれる前記ユーザの顔向きに関する情報と、ユーザの数と、前記表示装置に表示された画像を対応付けて記録する画像記録手段を有する請求項１〜１５のいずれか１項に記載の情報処理装置。
【請求項１７】
動作検出装置が検出するユーザの動作に関する動作情報に基づき、表示装置において表示されるユーザが指示する位置を示す位置指示表示情報の位置情報を作成する情報処理装置を、
前記動作情報に基づきユーザの動作の速さを検出する速さ検出手段と、
前記速さ検出手段が検出した速さが予め定められた速さの条件に合致しない場合、前記位置指示表示情報の移動方向を所定方向に制限して前記位置情報を作成する位置情報作成手段、
として機能させるためのプログラム。
【請求項１８】
動作検出装置が検出するユーザの動作に関する動作情報に基づき、表示装置において表示されるユーザが指示する位置を示す位置指示表示情報の位置情報を作成する情報処理装置が行う位置情報作成方法であって、
速さ検出手段が、前記動作情報に基づきユーザの動作の速さを検出するステップと、
位置情報作成手段が、前記速さ検出手段が検出した速さが予め定められた速さの条件に合致しない場合、前記位置指示表示情報の移動方向を所定方向に制限して前記位置情報を作成するステップと、を有する位置情報作成方法。
【請求項１９】
ユーザの動作に関する動作情報を検出する動作検出装置と、
前記動作情報に基づきユーザの動作の速さを検出する速さ検出手段と、
前記速さ検出手段が検出した速さが予め定められた速さの条件に合致しない場合、表示装置において表示されるユーザが指示する位置を示す位置指示表示情報の移動方向を所定方向に制限して前記位置指示表示情報の位置情報を作成する位置情報作成手段と、を有する情報処理装置と、を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム、位置情報作成方法及び情報処理システムに関する。
【背景技術】
【０００２】
人が集まる場所や通過する場所に設置されたディスプレイに情報を表示するシステムが知られている。ディスプレイにはネットワークなどを介して情報処理装置が接続されており、静止画や動画を情報処理装置がディスプレイに表示させることで、情報処理装置は例えば広告、天気、ニュースなどの有益な情報を発信できる。このようなシステムや仕組みをデジタルサイネージと称する。ディスプレイは屋外、店頭、公共空間、交通機関、通路などに設置されており、往来者、来客者、施設の利用者（以下、単にユーザという）等に詳細かつ新しい情報を提供できる。
【０００３】
ところで、現状のデジタルサイネージのうち特に大画面のデジタルサイネージは一方的に情報を表示することが主な機能となっている。しかしながら、ユーザから見ると、情報が刻々と変化するため表示されたある情報に興味を持ってもゆっくりと閲覧することができない場合がある。また、情報の提供者から見ると、情報を流しているだけでユーザからのリアクションが得られないので、どのような情報にユーザが興味を示したかを把握できない。また、デジタルサイネージの情報を窓口にしてユーザがより詳細な情報を表示させたり、ユーザが興味を持った情報の詳細情報を提供者が提供したくても困難である。すなわち、従来のデジタルサイネージではインタラクティブ（双方向性）な操作が困難であった。
【０００４】
インタラクティブな操作を実現するにはディスプレイの近くにユーザが操作を入力するための入力装置が用意されていればよいが、設置スペースの確保が難しかったり、設置スペースがあるとしても入力装置の破損や盗難のおそれがある。そこで、ユーザのジェスチャーをデジタルサイネージが検出して操作を受け付ける操作態様が検討される（例えば、特許文献１参照。）。特許文献１には、検出したユーザの動きから、表示面に表示されるカーソルを移動させると共に、ユーザとの距離に基づいてカーソルの動きを調整するポインティング制御装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、手や腕の動きでユーザがカーソルを任意の位置に操作することは必ずしも容易でないという問題がある。これは、カーソルを操作するための手や腕の意識的な動きとは別に人間の身体に無意識に生じる揺れなどにより手や腕の動きが影響されるためである。また、そもそも空間におけるユーザの手や腕の位置を検出した情報には誤差が含まれる。このため、例えばユーザが意図した位置にカーソルを移動させたりユーザが意図した位置で操作ボタンを押下したりすることは容易でなかった。
【０００６】
本発明は、上記課題に鑑み、位置情報の入力が容易な情報処理装置を提供することを目的する。
【課題を解決するための手段】
【０００７】
本発明は、動作検出装置が検出するユーザの動作に関する動作情報に基づき、表示装置において表示されるユーザが指示する位置を示す位置指示表示情報の位置情報を作成する情報処理装置であって、前記動作情報に基づきユーザの動作の速さを検出する速さ検出手段と、前記速さ検出手段が検出した速さが予め定められた速さの条件に合致しない場合、前記位置指示表示情報の移動方向を所定方向に制限して前記位置情報を作成する位置情報作成手段と、を有する。
【発明の効果】
【０００８】
位置情報の入力が容易な情報処理装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理システムが有するディスプレイとカーソルの位置の制御について説明する図の一例である。
【図２】情報処理システムのシステム構成図の一例である。
【図３】情報処理装置のハードウェア構成図の一例である。
【図４】動作検出装置のハードウェア構成図の一例である。
【図５】三次元座標が得られる関節を示す図である。
【図６】アプリケーションソフトとジェスチャー操作受付プログラムの関係を説明する図の一例である。
【図７】ジェスチャー操作受付プログラムの機能がブロック状に示された機能ブロック図の一例である。
【図８】動作検出装置に対する人の検出範囲と操作位置を説明する図の一例である。
【図９】検出範囲を立体的に示す図の一例である。
【図１０】操作エリアを説明する図の一例である。
【図１１】操作エリアを詳細に説明する図の一例である。
【図１２】ユーザの非操作動作を説明する図の一例である。
【図１３】図１２の立方体を側方から見た図の一例である。
【図１４】操作エリアにおける手首関節又は手関節の座標とカーソルの位置を示す図の一例である。
【図１５】ユーザＵの手首関節又は手関節の三次元座標を側方から見た図である。
【図１６】操作エリアの変形例を説明する図の一例である。
【図１７】手首関節又は手関節の速さの検出方法を説明する図の一例である。
【図１８】イベントの検出方法について説明する図の一例である。
【図１９】速さが閾値未満の場合の座標変換を説明する図の一例である。
【図２０】動作検出装置によりユーザが検出された時の操作受付支援アイコンを示す図の一例である。
【図２１】ユーザが操作位置で手を挙げた際の操作受付支援アイコンを示す図の一例である。
【図２２】ユーザが操作位置で手を挙げているが手首関節又は手関節の速さが閾値未満の場合のガイドメッシュを示す図の一例である。
【図２３】ジェスチャー操作受付プログラムがユーザに操作権を付与するまでの手順を示すフローチャート図の一例である。
【図２４】ジェスチャー操作受付プログラムがユーザの操作を受け付けてアプリケーションソフトを操作する手順を示すフローチャート図の一例である。
【図２５】顔向きなどの分析のために情報記録部が記録するセンサ情報の一例を示す図である。
【図２６】図２５のセンサ情報が取得された際に情報記録部が取得したスクリーンショットを示す図の一例である。
【図２７】検出されないユーザを説明する図の一例である。
【図２８】情報記録部がセンサ情報ＤＢに記憶したセンサ情報の解析例を説明する図の一例である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための情報処理システム１００及び情報処理システム１００が行う位置情報作成方法について図面を参照しながら説明する。
【００１１】
＜情報処理システムの概略的特徴＞
図１を用いて、情報処理システム１００の概略的特徴について説明する。図１は、情報処理システム１００が有するディスプレイ３１０とカーソル３の位置の制御について説明する図の一例である。
【００１２】
図１（ａ）に示すように、ディスプレイ３１０にはコンテンツのリスト１０１や動画１０２が表示されると共に操作入力のための各種の操作ボタン１０３（動画１０２の再生、停止等）が表示されている。動作検出装置１０がユーザＵを検出すると、情報処理装置３０は操作受付支援アイコン８１を表示する。操作受付支援アイコン８１にはユーザＵを表す人アイコン８２が表示され、ユーザＵは自分の立ち位置と動作が検出されていることを把握しながら操作できる。
【００１３】
ユーザＵは動作検出装置１０の前方で、カーソル３を操作するための予め定められた動作を行う。動作検出装置１０はユーザＵの関節の三次元座標を検出して情報処理装置３０に送信する。情報処理装置３０は例えば手関節や手首関節等の三次元座標をディスプレイ３１０におけるカーソル３の位置に変換してこの位置にカーソル３を表示する。
【００１４】
本実施形態の情報処理装置３０はユーザＵの動作の「速さ」によってカーソル３の位置の決定方法を切り替える。まず、動作の速さが閾値以上の場合、情報処理装置３０は手や手首の三次元座標をカーソル３の位置に変換する。つまり、三次元座標とカーソル３の位置を１対１に対応させる。このようなカーソル３の位置の決定方法を、以下「通常のカーソル３の位置の決定方法」という。
【００１５】
次に、図１（ｂ）を用いて動作の速さが閾値未満の場合を説明する。この場合、情報処理装置３０はユーザの手や手首の動作の方向を上下左右のいずれかに分類して、マス目状にカーソル３を移動させる。図１（ｂ）に示すように、動作の速さが閾値未満の場合、情報処理装置３０はガイドメッシュ４を表示する。また、ガイドメッシュ４には現在のカーソル３の位置が強調して表示される。ユーザＵがたとえ手関節や手首関節を斜め方向に移動させても、情報処理装置３０は縦又は横のどちらかに移動したと判断して、上下左右方向にのみカーソル３を移動させる。
【００１６】
このようにして、ユーザはカーソル３の位置を制御して、クリックするジェスチャー（後述する）を行う。例えば、操作ボタン１０３を左クリックしたりスクロールするコンテンツのリスト１０１を選択したりすることができる。
【００１７】
動作の速さが閾値未満のカーソル３の位置の決定方法は、カーソル３の移動方向を制限することになる。しかし、カーソル３の移動量が微小になるようにユーザＵがわずかに動作しようとしても、ユーザ自身の身体が揺れていたりするためユーザＵが意図する方向に正確に手関節や手首関節を動かせるわけではない。例えば、斜め方向に移動させたつもりが縦方向又は横方向の移動になったり、縦方向又は横方向に移動させたつもりが斜め方向の移動になってしまう場合がある。また、動作検出装置１０が検出する三次元座標にも誤差があるが、ユーザＵがわずかに動作しようとした場合はこの誤差を無視しにくくなる。このため、三次元座標をそのままカーソル３の位置に変換しても、ユーザＵが意図した位置にカーソル３を移動しにくい。
【００１８】
これに対し、カーソル３の移動方向が上下左右に制限されると、ユーザＵが意図した方向にカーソル３が移動しやすい。例えば、右方向への移動を意図した場合、ユーザＵの身体が揺れたり、意図した方向そのものに手関節や手首関節が動かなくても、上方向、下方向、又は左方向に手関節や手首関節が動くことは少ない。また、動作検出装置１０の検出誤差があるとしても上下左右方向にしか影響しない。このため、ユーザＵは意図した方向にカーソル３を移動させやすいという利点がある。
【００１９】
このように、本実施形態の情報処理システム１００は、ユーザＵの動作の速さが閾値未満の場合、ユーザＵがカーソル３の微小な移動を行うと推定して、カーソル３の移動方向を所定方向に制限することで、カーソル３の位置を入力する際の操作性を向上させることができる。
【００２０】
＜用語について＞
動作情報とは、ユーザの動作を表す情報である。あるいは、ユーザの動作が情報処理装置に解釈できる形態に変換された情報である。あるいは、ユーザの動作を情報処理装置に非接触で入力するための情報である。具体的には、位置、姿勢、手足の動きなどであり、本実施形態ではセンサ情報という用語で説明する。
【００２１】
位置指示表示情報とは、ディスプレイにおいてユーザが指示する位置を表示する表示物である。表示物は画像、数字、文字、記号、図形を含む概念であって、これらの2以上の種類の表示物を組み合わせて表示させてもよい。一般に、マウス（装置）やトラックボールなどの入力装置など、何らかのポインティングデバイスにより位置が指示される。具体的には、カーソル、マウス、マウスカーソル、マウスポインター、移動キーなどと呼ばれる。本実施形態では一例としてカーソルという用語で説明する。
【００２２】
ジェスチャーとは、ユーザが行う動作の内、予め定められた動作をいう。すなわち、特定の動作はジェスチャーと称される。一例として、ジェスチャーは情報処理装置を操作するためのイベントとして使用される。
【００２３】
また、動作の速さとは、単位時間の動作量や単位時間にユーザの所定部位が移動する量などにより定義される。本実施形態では手の速さを例にして説明する。また、手とは手首を含みそれよりも先の部分をいうが、肘を含めたり肘と手首の間を手に含めてもよい。
【００２４】
予め定められた速さの条件に合致する場合の条件とは、カーソルの位置の制御に関するユーザの意図を検出するための条件をいう。この意図は位置を精度よく制御したい意図をいう。条件に合致する場合とは、例えば、速さが閾値未満であること、速さが所定の範囲内であること、等が挙げられる。以下では、速さが閾値未満であることを例にして説明する。
【００２５】
＜システム構成例＞
図２は、情報処理システム１００のシステム構成図の一例である。図２（ａ）に示すように、情報処理システム１００は、ディスプレイ３１０、動作検出装置１０及び情報処理装置３０を有する。動作検出装置１０は情報処理装置３０とＵＳＢケーブルやIEEE1394などのケーブルで接続されており、情報処理装置３０とディスプレイ３１０はDisplayPort（登録商標）、DVI(Digital Visual Interface)、HDMI(登録商標。High-Definition Multimedia Interface)及びVGA(Video Graphics Array)等の規格による通信が可能なケーブルを介して接続されている。なお、動作検出装置１０と情報処理装置３０は、無線ＬＡＮ、Bluetooth（登録商標）、ＺｉｇＢｅｅ（登録商標）などの無線で通信してもよい。同様に、情報処理装置３０とディスプレイ３１０は、無線ＬＡＮ、ＨＤＭＩの無線規格などの無線で通信してもよい。
【００２６】
情報処理装置３０は、ＰＣ(Personal Computer)、タブレット端末、スマートフォン、携帯電話、ＰＤＡ(Personal Digital Assistant)などの汎用的なものを利用できる。情報処理装置３０ではＯＳ(Operating System)が動作しており、マウスやタッチパネルなどのポインティングデバイスの位置を検出しこの位置にカーソル３を表示する機能を有する。また、ＯＳはポインティングデバイスにより行われるイベント（左クリック、右クリック、ダブルクリック、マウスオーバー、マウスダウン、マウスアップなど）を検出する。また、情報処理装置３０はＯＳ上で各種のアプリケーションソフトを動作させている。ＯＳはポインティングデバイスの位置とイベントをアプリケーションソフトに通知するため、アプリケーションソフトはポインティングデバイスの位置で行われたイベントに基づき動作する。
【００２７】
本実施形態では、動作検出装置１０と後述するジェスチャー操作受付プログラムがポインティングデバイスとして動作する。ジェスチャー操作受付プログラムは、動作検出装置１０からセンサ情報を取得してカーソル３の位置に変換したりイベントを検出するプログラムであり、情報処理装置３０で動作している。このジェスチャー操作受付プログラム１１０がカーソル３の位置とイベントをアプリケーションソフト１２０に通知することで、アプリケーションソフト１２０はポインティングデバイスを意識することなく（ポインティングデバイスが動作検出装置１０であることによる変更が必要なく）動作できる。
【００２８】
ディスプレイ３１０は液晶型の表示装置、有機ＥＬを発光原理とする表示装置、又は、プラズマ発光を利用した表示装置などである。アプリケーションソフト１２０はＣＵＩ（Character User Interface）やＧＵＩ（Graphical User  Interface）と呼ばれる画面を作成しディスプレイ３１０に表示させる。
【００２９】
なお、ディスプレイ３１０として、ディスプレイ３１０を備えた何らかの装置を使用してもよい。例えば電子黒板、ノートＰＣなどが備えるディスプレイをディスプレイ３１０として使用できる。
【００３０】
動作検出装置１０は、人の動作を検出するセンサである。例えば、ステレオカメラで空間を撮像すると画像データの画素毎に視差が得られ画素毎の距離情報が得られる。また、画像データをパターン認識することで人を検出したり、人の動作を認識することが可能になる。具体的には、人の手のひら、手首、肩等の三次元座標、姿勢などが得られる。このような人の動作の検出に適したセンサとしてキネクト（登録商標。以下、登録商標という付記を省略する）が知られている。キネクトについて詳細は後述する。なお、動作検出装置１０はキネクトでなくてもよく、キネクトと同様の機能を備えたセンサ、ステレオカメラ、ＴＯＦ（Time Of Flight）等により距離を検出するカメラなどでもよい。
【００３１】
なお、図２（ａ）の動作検出装置１０の設置位置は一例であり、ディスプレイ３１０の上方、左側、又は右側に設置されてもよい。また、情報処理装置３０での設置位置も一例に過ぎず、例えばディスプレイ３１０の背後など設置されてもよい。また、ネットワークを介して動作検出装置１０と接続されていてもよい。
【００３２】
図２（ｂ）に示すように、情報処理システム１００がディスプレイ３１０の代わりにプロジェクタ５を有していてもよい。この場合、情報処理システム１００は、動作検出装置１０、プロジェクタ５、及び情報処理装置３０を有する。プロジェクタ５は、ＬＣＤ（透過型液晶）方式、ＬＣＯＳ（反射型液晶）方式、又はＤＬＰ（Digital Light Processing）方式などで画像をスクリーンなどの投影面６に投影する表示装置である。
【００３３】
プロジェクタ５と情報処理装置３０は、ディスプレイ３１０と情報処理装置３０間の接続態様と同様に接続されている。プロジェクタ５は、いわゆる極単焦点から投影できることが好ましい。これにより、ユーザＵが動作するスペースを確保しやすくなる。動作検出装置１０は、プロジェクタ５よりもユーザＵ側にあってもよいし、スクリーン側にあってもよい。スクリーン側にある場合はスクリーンの下辺、上辺、左辺又は右辺に固定されてよい。また、ユーザＵ側にある場合は用意された台の上に設置される。また、動作検出装置１０がディスプレイ３１０の右端に設置されているのは一例であって、左端に設置されてもよい。右端又は左端に設置されるのは、プロジェクタ５の廃棄熱を避けるためである。廃棄熱を無視できる場合は、ディスプレイ３１０の中央に設置されてもよい。
【００３４】
なお、ディスプレイ３１０とプロジェクタ５を併用してもよい。この場合、例えばプロジェクタ５が床に向けて矢印などを投影することで、ユーザを操作位置５２に誘導することができる。また、矢印を表示して進行方向を指示すること等ができる（例えば、エレベータはあちら、操作位置５２はあちら等）。
【００３５】
＜ハードウェア構成について＞
<<情報処理装置３０のハードウェア構成>>
図３は情報処理装置３０のハードウェア構成図の一例である。情報処理装置３０は、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３及び補助記憶装置３０４を備える。更に、私的使用サーバは、入力部３０５、表示制御部３０６、ネットワークＩ／Ｆ３０７及び外部機器Ｉ／Ｆ３０８を備える。なお、情報処理装置３０の各部は、バスＢを介して相互に接続されている。
【００３６】
ＣＰＵ３０１は、補助記憶装置３０４に格納された各種プログラム、ＯＳ等を実行する。ＲＯＭ３０２は不揮発性メモリ１６である。ＲＯＭ３０２は、補助記憶装置３０４に格納された各種プログラムを、ＣＰＵ３０１が実行するために必要なプログラム、データ等を格納する。
【００３７】
ＲＡＭ３０３は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等の主記憶装置である。ＣＰＵ３０１によって実行される際に補助記憶装置３０４に格納された各種プログラムがＲＡＭ３０３に展開され、ＲＡＭ３０３はＣＰＵ３０１の作業領域となる。
【００３８】
補助記憶装置３０４は、ＣＰＵ３０１により実行される各種プログラム及び各種プログラムがＣＰＵ３０１により実行される際に利用される各種データベースを記憶する。補助記憶装置３０４は例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの不揮発性メモリである。
【００３９】
入力部３０５は、オペレータが情報処理装置３０に各種指示を入力するためのインタフェースである。例えば、キーボード、マウス、タッチパネル、音声入力装置などであるが、本実施形態では接続さてなくてよい。
【００４０】
表示制御部３０６は、ＣＰＵ３０１からの要求により、情報処理装置３０が有する各種情報をカーソル３、メニュー、ウィンドウ、文字、又は画像などの形態でディスプレイ３１０に表示する。表示制御部３０６は、例えばグラフィックチップやディスプレイ３１０Ｉ／Ｆである。
【００４１】
ネットワークＩ／Ｆ３０７は、ネットワークを介して、他の機器と通信を行う通信装置である。ネットワークＩ／Ｆ３０７は例えばイーサネット（登録商標）カードであるがこれに限られない。
【００４２】
外部機器Ｉ／Ｆ３０８は、ＵＳＢケーブル、又は、ＵＳＢメモリ等の各種の記憶媒体３２０などを接続するためのインタフェースである。本実施形態では動作検出装置１０が接続される。
【００４３】
なお、情報処理装置３０は、いわゆるクラウドコンピューティングに対応していることが好ましく、情報処理装置３０は、１つの筐体に収納されていたりひとまとまりの装置として備えられていたりする必要はない。この場合、情報処理装置３０の構成は、負荷に応じてハード的なリソースが動的に接続・切断されることで構成される。
【００４４】
<<動作検出装置１０のハードウェア構成>>
図４は、動作検出装置１０のハードウェア構成図の一例である。動作検出装置１０は、ＣＰＵ１１、カラーカメラ１２、赤外線カメラ１３、赤外線プロジェクタ１４、主記憶装置１５、不揮発性メモリ１６、マイク１７、加速度センサ１８、及びＬＥＤ１９を有する。ＣＰＵは不揮発性メモリ１６に記憶されたファームウェアを主記憶装置１５に展開して実行することで、動作検出装置１０の全体を制御する。主記憶装置１５は例えばＤＲＡＭなどの高速な揮発性メモリであり、不揮発性メモリ１６はフラッシュメモリなどである。
【００４５】
カラーカメラ１２は一例として１９２０×１０８０の解像度でカラー画像を撮像する撮像装置である。すなわち、画素毎にＲ・Ｇ・Ｂの濃度情報が得られている。赤外線カメラ１３と赤外線プロジェクタ１４はこれらで１つのデプスセンサ（距離センサ）として機能する。赤外線プロジェクタ１４はパルス変調された赤外線を投光し、赤外線カメラ１３が投光した赤外線を撮像する。デプスセンサは、赤外線を投光してから反射して戻ってくる時間を測定し、投光された赤外線ごとに距離情報を得る。なお、距離情報の解像度は５１２×４２４であるがあくまで一例である。
【００４６】
また、デプスセンサが距離を測定する原理は一例に過ぎず、投光した赤外線パターンを赤外線カメラ１３で撮像し、パターンのゆがみから距離情報を取得してもよい。
【００４７】
マイク１７は周囲の音声を検出する装置であり、ＣＰＵ１１は複数のマイク１７が検出する音声の位相を比較して音源の方向を推定する。加速度センサ１８は動作検出装置１０の水平に対する傾きを検出するセンサである。ＬＥＤ１９は動作検出装置１０の状態を色や点滅などで表示する。
【００４８】
＜動作検出装置１０が取得する情報＞
続いて、動作検出装置１０が取得する情報について説明する。動作検出装置１０が取得する情報であれば情報処理装置３０が利用することができる。ただし、以下で説明する全ての情報を使用する必要はない。以下で説明される、動作検出装置１０が取得する情報を「センサ情報」という。
【００４９】
１．カラー画像
画素毎にＲ・Ｇ・Ｂの濃度情報が含まれる画像データである。動作検出装置１０の赤外線カメラ１３は所定のフレームレート（例えば３０ｆｐｓ）でカラー画像を撮像する。
【００５０】
２．距離画像
上記のように５１２×４２４の解像度で距離情報が得られた画像データである。動作検出装置１０のデプスセンサは所定のフレームレート（例えば３０ｆｐｓ）で距離画像を撮像する。したがって、所定の解像度でユーザＵを含む対象までの距離が得られる。
【００５１】
３．赤外線画像
赤外線カメラ１３で撮像されたグレイスケールの画像である。赤外線プロジェクタ１４から投影されたパルスを撮像することができる。また、赤外線を発する人（ユーザＵ）を検出できる。
【００５２】
４．人物の形状データ
動作検出装置１０は、距離画像から人物領域のみを抽出して人物の形状データを作成できる。例えば、赤外線画像から人の撮像領域を特定したり、フレームに応じて距離が変化する領域を人の撮像領域として特定する。距離画像からこの撮像領域を抽出したものが人物の形状データである。したがって、情報処理装置３０はユーザＵがいる画素領域が分かる。また、動作検出装置１０は、複数のユーザＵが検出された場合、ユーザＵと画素領域とを対応付けて検出する。情報処理装置３０はカラー画像から人物領域のみを切り出すこともできる。
【００５３】
５．骨格情報
関節の座標情報である。ボーン情報やスケルトン情報と呼ばれる場合がある。図５に三次元座標が得られる関節を示す。なお、図５ではユーザの関節を正面から見た図である。図５の符号と関節の名称を説明する。また、図５では左半分の関節は右側と同じなので符号が省略されている。
a…頭関節、ｂ…首関節、ｃ…肩中央関節、ｄ…右肩関節、ｅ…右肘関節、ｆ…右手首関節、ｇ…右手関節、ｈ…右手先関節、ｉ…右手親指関節、ｊ…背骨関節、ｋ…腰中央関節、ｌ…右腰関節、ｍ…右膝関節、ｎ…右かかと関節、ｏ…右足関節
なお、動作検出装置１０は各関節の空間中の三次元座標（X,Y,Z）だけでなく、カラー画像上（ディスプレイ３１０上）の関節の座標（x,y）を提供する。ユーザＵがいる画素領域が明らかであるためである。また、「右手先関節」「右手親指関節」「左手先関節」「左手親指関節」の三次元座標が分かるので、動作検出装置１０はユーザＵが手のひらを開いているか閉じているかを判断できる。
【００５４】
６．表情
顔の認識に基づくユーザＵの表情である。動作検出装置１０は普通、笑っている、驚いている、左・右の目を閉じているか開いているか、口が開いているか閉じているか、画面から目を離しているか、メガネをかけているか、などを認識できる。
【００５５】
７．顔の向き
人物の顔の向きである。動作検出装置１０はヨー角、ピッチ角、ロール角を検出できる。
【００５６】
８．心拍数
推定されたユーザＵの心拍数である。カラー画像と赤外線画像で肌を推定し、血液の流れによる肌部分の微妙な変化から推定される。
【００５７】
＜情報処理装置３０の機能について＞
まず、図６を用いてアプリケーションソフト１２０とジェスチャー操作受付プログラム１１０の関係を説明する。アプリケーションソフト１２０とジェスチャー操作受付プログラム１１０は共にＯＳ１３０上で動作する。アプリケーションソフト１２０は位置情報やイベントで操作可能なものであればよい。例えば、広告を表示するアプリケーションソフト１２０、プレゼンテーションなどのためのアプリケーションソフト１２０等がある。しかしこれらに限られず、例えば、ブラウザ、ワードプロセッサ、ゲームなどが含まれてよい。
【００５８】
動作検出装置１０のデバイスドライバ１４０が情報処理装置３０にインストールされている。デバイスドライバ１４０は動作検出装置１０が検出する信号をセンサ情報に加工するソフトウェアである。デバイスドライバ１４０はＳＤＫ（Software Development Kit）と呼ばれる場合がある。デバイスドライバ１４０が作成したセンサ情報を、任意のアプリケーションソフト１２０がＯＳ１３０のＡＰＩ（Application Interface）を介して取得できる。本実施形態ではジェスチャー操作受付プログラム１１０がこのＡＰＩを利用して処理に使用するセンサ情報を取得する。
【００５９】
ジェスチャー操作受付プログラム１１０は、動作検出装置１０からセンサ情報を取得して種々の処理を行い、ジェスチャー操作受付プログラム１１０自身を制御すると共に、アプリケーションソフト１２０に操作のためのカーソル３の位置とイベントを送信する。アプリケーションソフト１２０はマウスやタッチパネルなどのポインティングデバイスが操作されることで入力されるカーソル３の位置とイベントを検出する機能を備えている。一般に、ＯＳ１３０はポインティングデバイスの位置とイベントを検出してアプリケーションソフト１２０に提供している。本実施形態では汎用的なポインティングデバイスが使用されないので（情報処理装置３０に接続されていない）、ジェスチャー操作受付プログラム１１０がカーソル３の位置とイベントをアプリケーションソフト１２０に提供する。なお、ジェスチャー操作受付プログラム１１０は複数のアプリケーションソフト１２０にカーソル３の位置とイベントを提供できる。
【００６０】
提供方法はＯＳ１３０やアプリケーションソフト１２０の仕様に従えばよい。例えば、ＯＳ１３０が提供するアプリケーションソフト１２０とジェスチャー操作受付プログラム１１０とのプロセス間通信を利用してもよいし、ジェスチャー操作受付プログラム１１０がＯＳ１３０に対しカーソル３の位置とイベントを通知しそれをアプリケーションソフト１２０が取得するような方法でもよい。このような仕組みにより、アプリケーションソフト１２０がジェスチャー操作受付プログラム１１０からカーソル３の位置とイベントを取得するための変更は不要であり、ジェスチャー操作受付プログラム１１０は汎用的なアプリケーションソフト１２０と共に利用されることができる。
【００６１】
なお、ジェスチャー操作受付プログラム１１０はアプリケーションソフトの１つであるが、デバイスドライバとして実装されてもよい。
【００６２】
<<ジェスチャー操作受付プログラム１１０の機能>>
図７は、ジェスチャー操作受付プログラム１１０の機能がブロック状に示された機能ブロック図の一例である。ジェスチャー操作受付プログラム１１０は、情報取得部３１、人検出部３２、操作開始検出部３３、操作エリア作成部３４、座標変換部３５、ＵＩ制御部３６、速さ検出部３７、イベント判断部３８、情報記録部４３、及び、出力部３９を有する。これら各部は、図３に示された各構成要素のいずれかが、補助記憶装置３０４からＲＡＭ３０３に展開されたプログラム３０４ｐに従ったＣＰＵ３０１からの命令により動作することで実現される機能又は手段である。なお、プログラム３０４ｐには、ＯＳ１３０、デバイスドライバ１４０、アプリケーションソフト１２０、及び、ジェスチャー操作受付プログラム１１０が含まれている。
【００６３】
また、情報処理装置３０はセンサ情報ＤＢ４４（データベース）を有しており、情報記録部４３はこのセンサ情報ＤＢ４４にセンサ情報を記録する。センサ情報ＤＢ４４は、図３に示された補助記憶装置３０４やＲＡＭ３０３に構築されている。
【００６４】
情報取得部３１は、図３に示されたＣＰＵ３０１がジェスチャー操作受付プログラム１１０を実行すること等により実現され、デバイスドライバ１４０からセンサ情報を取得する。動作検出装置１０は周期的に動作を検出しているため、情報取得部３１は周期的に繰り返しセンサ情報を取得する。なお、全てのセンサ情報を取得する必要はなく、処理に使用するセンサ情報のみを取得すればよい。本実施形態では以下のような情報が使用される。
・ 右肩関節ｄ、右手首関節ｆ、右手関節ｇ、右手先関節ｈ、右手親指関節ｉの三次元座標が使用される。なお、ユーザは右手でも左手でも操作できるので、左肩関節、左手首関節、左手関節、左手先関節、左手親指関節の三次元座標も使用される。
・ユーザＵごとの三次元座標（主に人アイコン８２を表示するために使用される）
・顔の向き（人アイコン８２の目を表示するために使用される）
人検出部３２は、図３に示されたＣＰＵ３０１がジェスチャー操作受付プログラム１１０を実行すること等により実現され、情報取得部３１が取得したセンサ情報に基づき動作検出装置１０が人を検出したことを検出する。動作検出装置１０が人を検出したことやその人数により人が検出されたことを検出してもよいし、動作検出装置１０が人を検出すると人物形状データや骨格情報が得られることを利用して人が検出されたことを検出してもよい。なお、人の検出範囲５１は動作検出装置１０の仕様により決まっている。例えば、水平方向の角度は７０度、距離は０．５〜４．５ｍの範囲である。動作検出装置１０の仕様よりも狭い範囲でのみ人を検出してもよいし、動作検出装置１０の仕様が変われば人を検出する範囲も変更されうる。また、同時に検出できる人の数は６人であるが、動作検出装置１０の仕様が変わればこれも変更されうる。
【００６５】
操作開始検出部３３は、図３に示されたＣＰＵ３０１がジェスチャー操作受付プログラム１１０を実行すること等により実現され、情報取得部３１が取得したセンサ情報に基づきユーザＵがアプリケーションソフト１２０を操作する意志を示したことを検出する。本実施形態では、ユーザＵが「操作位置５２に存在し＋手を挙げること」により操作する意志を検出する。詳細は後述される。また、操作開始検出部３３はセンサ情報に基づきユーザＵがアプリケーションソフト１２０の操作を終了する意志を示したことを検出する。本実施形態では、ユーザＵが「操作位置５２から離れること」又は「手を下げること」により、操作を終了する意志を検出する。
【００６６】
操作エリア作成部３４は、図３に示されたＣＰＵ３０１がジェスチャー操作受付プログラム１１０を実行すること等により実現され、操作開始検出部３３が操作の意志を検出すると、ユーザＵが操作を行うための操作エリア５４を作成する。操作エリア５４とはユーザＵが情報処理装置３０を操作できる三次元空間上の範囲（領域）である。ユーザＵの右手関節ｇや右手首関節ｆ等が操作エリア５４に入っていると、右手関節ｇや右手首関節ｆの三次元座標がカーソル３の位置に反映されたり、ジェスチャーが検出される。
【００６７】
座標変換部３５は、図３に示されたＣＰＵ３０１がジェスチャー操作受付プログラム１１０を実行すること等により実現され、情報取得部３１が取得したセンサ情報に基づき操作エリア５４におけるユーザＵの右手関節ｇや右手首関節ｆの三次元座標をカーソル３の位置に変換する。
【００６８】
速さ検出部３７は、図３に示されたＣＰＵ３０１がジェスチャー操作受付プログラム１１０を実行すること等により実現され、情報取得部３１が取得したセンサ情報に基づき操作エリア５４におけるユーザＵの右手関節ｇや右手首関節ｆの速さを検出する。右手関節ｇや右手首関節ｆはどちらの速さを検出してもよいが、ユーザＵは肘を中心に操作するので手先に近い関節の方が早くカーソル３を移動させることができる。逆に、手先から遠い関節の方が微小な移動量を制御しやすい。
【００６９】
イベント判断部３８は、図３に示されたＣＰＵ３０１がジェスチャー操作受付プログラム１１０を実行すること等により実現され、情報取得部３１が取得したセンサ情報に基づき、ユーザＵがイベントを発生させたかどうかを判断する。イベントは上記のように左クリック、右クリック、ダブルクリック、マウスオーバー、マウスダウン、マウスアップなどであるが、これらイベントに対応する一般的なジェスチャーは定められていない。このため、イベント判断部３８はユーザＵの動きをジェスチャーとして予めイベントに対応付けておき、ユーザＵが予め定められたジェスチャーを行うと、対応付けられているイベントが発生したと判断する。例えば、ユーザＵが操作エリア５４で手を握るジェスチャーを行うと、イベント判断部３８は左クリックであると判断する。
【００７０】
情報記録部４３は、図３に示されたＣＰＵ３０１がジェスチャー操作受付プログラム１１０を実行すること等により実現され、センサ情報をユーザごとに時系列にセンサ情報ＤＢ４４に記憶しておく。上記のように動作検出装置１０はユーザの位置とユーザの表情や顔向きを検出しているため、ディスプレイ３１０のどの辺り見ているかを推定できる程度にユーザがディスプレイ３１０を見ているかどうかを記録できる。また、情報記録部４３はアプリケーションソフト１２０から、ディスプレイ３１０に表示されているコンテンツのスクリーンショットを取得する。センサ情報を記録するタイミングとスクリーンショットを取得するタイミングをほぼ同じにすることで、ユーザが興味を持っているコンテンツをコンテンツの提供者などが特定しやすくなる。
【００７１】
出力部３９は、図３に示されたＣＰＵ３０１がジェスチャー操作受付プログラム１１０を実行すること等により実現され、座標変換部３５が変換したカーソル３の位置と、イベント判断部３８が判断したイベントを取得してアプリケーションソフト１２０に出力する。なお、出力部３９は、アプリケーションソフト１２０の状況を取得する機能も有する。例えば、アプリケーションソフト１２０が全画面に動画を表示している場合、ユーザが操作する必要がないので、情報取得部３１はセンサ情報を取得しない。また、出力部３９は、現在、ユーザが操作中である場合はアプリケーションソフト１２０へその旨を通知する。これにより、アプリケーションソフト１２０はユーザの操作中に全画面の動画表示に移行しないので、ユーザが急に操作できなくなることを防止できる。
【００７２】
ＵＩ制御部３６は、図３に示されたＣＰＵ３０１がジェスチャー操作受付プログラム１１０を実行すること等により実現される。ＵＩ制御部３６は更にカーソル表示部４１とアイコン表示部４２を有する。カーソル表示部４１は、ＯＳ１３０の機能を利用してカーソル３を表示したり、通常のカーソル３の代わりにガイドメッシュ４を表示したりする。また、アイコン表示部４２は、ディスプレイ３１０に操作受付支援アイコン８１を表示する。アイコン表示部４２は、ユーザＵの状態に応じて操作受付支援アイコン８１の表示態様を変更する。操作受付支援アイコン８１は、ユーザＵがジェスチャーによりアプリケーションソフト１２０を操作しやすくなるように支援するユーザインタフェースとして機能する。例えば、動作検出装置１０がユーザの全ての骨格情報を取得できるようにユーザを操作位置５２に誘導する。また、操作権を持っているユーザが誰なのかを明示する（複数の人アイコン８２が表示されていても手を上げている人アイコン８２が操作権を有する）。操作権とは、アプリケーションソフト１２０を操作する権利であり、同時には一人にのみ認められる。
【００７３】
＜人の検出範囲５１と操作位置５２＞
図８を用いて人の検出範囲５１と操作位置５２を説明する。図８は、動作検出装置１０に対する人の検出範囲５１と操作位置５２を説明する図の一例である。上記のように、動作検出装置１０は所定の水平角度の範囲（例えば７０度）で所定の距離内（例えば０．５〜４．５ｍ）の人を検出する。当然ながら、操作位置５２は人の検出範囲５１内である。
【００７４】
操作位置５２は、例えば人の検出範囲５１の中央付近であるが、人の検出範囲５１の内側であればどこでもよい。あえて操作位置５２を決定するのは、人の検出範囲５１を通過する任意のユーザＵが手を挙げる動作をしてアプリケーションソフト１２０を操作できないようにするためでる。また、操作位置５２があまり広いと操作権を取得できるユーザＵの数が多くなり、自分が操作できるかどうかの判断が困難になるためである。また、操作位置５２が決まっていることで、ユーザＵは操作位置５２に移動することでアプリケーションソフト１２０を操作できることを把握できる。なお、実際の操作位置５２は他の場所と違う色で明示されていたり、「ここで操作してください」などの文字が表示されていることが好ましい。
【００７５】
後述するように、ユーザは人アイコン８２が操作受付支援アイコン８１の操作位置指示表示８３に入るように移動する。人アイコン８２が操作位置指示表示８３に入った時、ユーザは操作位置５２に存在する。したがって、ユーザは人アイコン８２、操作受付支援アイコン８１、及び操作位置指示表示８３により操作位置５２に誘導される。
【００７６】
しかしながら、例えば操作中にユーザが操作位置５２から外れてしまう場合も想定される。例えば、ディスプレイ３１０をよく見ようと接近するような場合である。
【００７７】
図９は、検出範囲５１を立体的に示す図の一例である。図９（ａ）では検出範囲５１にユーザの骨格情報の全て含まれている。したがって、動作検出装置１０は骨格情報の全てを取得してジェスチャー操作受付プログラム１１０に送出できる。換言すると、ユーザは動作によりデジタルサイネージを操作できる。
【００７８】
これに対し図９（ｂ）ではユーザの身体の一部が検出範囲５１からはみ出ている。動作検出装置１０は全ての骨格情報のうち取得できたものだけをジェスチャー操作受付プログラム１１０に送出する。例えば、ジェスチャー操作受付プログラム１１０の各機能（操作開始検出部３３、操作エリア作成部３４、座標変換部３５、ＵＩ制御部３６、速さ検出部３７、イベント判断部３８）は手の骨格情報を使用するが、センサ情報に含まれていない場合には骨格情報を取得できない。このため、所望の骨格情報が取得されていないことを検出できる。
【００７９】
このような場合、ＵＩ制御部３６は、図９（ｃ）に示すようにメッセージ５４０をディスプレイ３１０に表示することで、ユーザを操作位置５２に移動して貰うことができる。図９（ｃ）では「Please away from the  screen」というメッセージ５４０が表示されている。したがって、ＵＩ制御部３６は重要な（制御に必要な）骨格情報が欠落するほどユーザの位置がずれてしまった場合、案内を表示してユーザを検出範囲５１の中に誘導できる。
【００８０】
なお、図９ではユーザがディスプレイ３１０に接近しすぎた例を示すが、少なくとも関節を含むユーザの身体の一部が検出範囲５１からはみ出した場合、ジェスチャー操作受付プログラム１１０は検出範囲５１の中にユーザを誘導できる。
【００８１】
＜操作の意志の検出＞
図１０を用いて操作の意志の検出と操作エリア５４について説明する。図１０は操作の意志の検出と操作エリア５４を説明する図の一例である。図１０（ａ）は、ユーザＵが操作位置５２で行う初期動作を示している。ユーザＵは操作位置５２に到達するとまず手を挙げる。この操作を行うべきことは指示されているか既にユーザＵが把握している。操作を開始する意志を検出することとしたのは、検出範囲５１のユーザＵの任意の手の動きから操作を受け付けると、ユーザが意図しない操作がアプリケーションソフト１２０に送出されてしまうためである。
【００８２】
操作開始検出部３３は頭関節ａの高さよりも、右手関節ｇが高くなると操作を開始する意志を検出する。なお、ユーザＵが挙げる手は、右でも左でもよい。操作開始検出部３３は右手を優先に検出し、右手を挙げた後に左手を挙げても無視し、左手を挙げた後に右手を挙げても無視する。
【００８３】
また、頭関節ａの高さよりも、右手関節ｇが高くなることを操作開始検出部３３が操作を開始する意志の検出基準としたのは、ユーザＵは一般に頭よりも手を伸ばすことが少ないためである。例えば、携帯電話で通話したり、メガネを触ったりする場合、手は頭よりも低いままである。このため、アプリケーションソフト１２０を操作する意志のない人の動作により、操作の意志があると誤検出することを抑制しやすくなる。
【００８４】
＜操作エリア５４＞
操作エリア作成部３４は、右肩関節ｄと頭関節ａの長さ（以下、Ａとする）を用いて操作エリア５４を作成する。図１０（ｂ）に示すように、長さＡを直径として右肩の上に中心がある円５３を作成する。そして、図１０（ｃ）に示すように、円５３の外接矩形を作成する。この外接矩形が操作エリア５４である。なお、長さＡは３０ｃｍくらいであるが、あくまで一例でありユーザＵの手が届く程度の長さであればよい。
【００８５】
このように、肩よりも上に中心がある円５３から操作エリア５４を作成することで、動作検出装置１０からユーザＵの手を撮像しやすくなる。動作検出装置１０が設置される高さにもよるが、動作検出装置１０がユーザＵの腰の位置程度に設置された場合、手が肩と同じくらいの高さになると動作検出装置１０が肩を撮像できない。このため、右肩関節ｄと頭関節ａの長さの誤差が大きくなり（長さＡが短くなったり大きくなったりしてしまう）、操作エリア５４の形状が安定しなくなる。
【００８６】
図１１は、操作エリア５４を詳細に説明する図の一例である。頭関節ａの三次元座標をＰ１（Ｘ１，Ｙ１，Ｚ１）とし、右肩関節ｄの三次元座標をＰ２（Ｘ２，Ｙ２，Ｚ２）とする。なお、水平方向をＸ軸、高さ方向をＹ軸、紙面の垂直方向をＺ軸とする。長さＡは以下のように算出される。
Ａ＝Ｙ１−Ｙ２
また、円５３の中心Ｏの座標は（Ｘ２、Ｙ２＋Ａ/２）である。したがって、操作エリア作成部３４は中心Ｏを中心として半径Ａ/２の円５３を描画すればよい。また、円５３を求めなくても、操作エリア５４の４つの頂点Ｃ１〜Ｃ４の座標を以下のように算出できる。なお、Ｚ座標については省略したが、例えばＺ１、Ｚ２又はその平均を用いる。
Ｃ１＝（Ｘ２-Ａ/２、Ｙ２＋Ａ）
Ｃ２＝（Ｘ２＋Ａ/２、Ｙ２＋Ａ）
Ｃ３＝（Ｘ２＋Ａ/２、Ｙ２）
Ｃ４＝（Ｘ２-Ａ/２、Ｙ２）
このように操作エリア５４を作成することで、ユーザＵはカーソル３の位置を制御しやすくなる。ユーザＵは手を挙げたままなので（下げると操作権を失う）、必然的に肘を基準に動作する。肩の位置はほぼ固定なので、肩の上方に作成された操作エリア５４を肘を中心に操作できる。したがって、ユーザＵは操作エリア５４がどこにあるかを探したりすることなく肘を中心に右手首関節ｆや右手関節ｇを動かすとカーソル３を操作できる。
【００８７】
＜操作権が付与されない非操作動作＞
ユーザが携帯電話で通話したり、メガネを触ったりする場合にユーザが手を頭よりも高くすることは少なくない。このため、より好ましくは以下のようにユーザの非操作動作を操作開始検出部３３が検出することが有効である。
【００８８】
図１２は、ユーザの非操作動作を説明する図の一例である。非操作動作は、ユーザがデジタルサイネージを操作する意志を示す動作（例えば手を挙げる）と類似した動作である。例えば、ユーザが携帯電話で通話する動作、メガネを触ったりする動作、額に手を当てる動作、頭をかく動作などである。
【００８９】
図１２（ａ）に示すように、操作開始検出部３３は頭関節ａを中心とする立方体５５を定義する。この定義とは、設定すると称してもよく、具体的には立方体５５の座標を特定するという意味である。立方体５５の寸法は頭部や顔よりもやや大きい程度であり、ユーザの手が顔に触れた際に手が入る程度の大きさである。ユーザごとに可変でもよいし、固定でもよい。また、立方体でなく直方体、球体又は楕円体でもよい。
【００９０】
ユーザが非操作動作を行う場合、ユーザの手はこの立方体の中に入ることが多い。したがって、操作開始検出部３３は手が立方体５５に入るかどうかで非操作動作か否かを判断できる。
【００９１】
図１２（ｂ）に示すように、右手関節ｇが立方体５５に入らない場合、操作開始検出部３３は非操作動作でないと判断する。この場合、ユーザＵの手が挙がっているので操作開始検出部３３は操作権を付与する。
【００９２】
図１２（ｃ）に示すように、右手関節ｇが立方体５５に入る場合、操作開始検出部３３は非操作動作であると判断する。この場合、操作開始検出部３３は手が挙がっていても、立方体５５の中に手が入っているので、操作権を付与しない。
【００９３】
したがって、操作をする意志のないユーザＵを操作する意志があるとして誤検出することを抑制できる。
【００９４】
図１３は、図１２の立方体５５を側方から見た図の一例である。立方体５５であるため、動作検出装置１０との距離方向（Ｚ方向）に立方体５５は奥行きを有する。ユーザＵ１の手は立方体５５に入っていないので非操作動作でないと判断され、ユーザＵ２の手は立方体５５に入っているので非操作動作であると判断される。
【００９５】
このように、立方体５５で判断するのでユーザが立方体５５の奥行きに入らないように手を挙げた場合、操作開始検出部３３はユーザに操作権を付与し、座標変換部３５が右手関節ｇ等の座標を検出できる。一方、ユーザが立方体５５の奥行きに入るように手を挙げた場合、ユーザが手を挙げていても、操作開始検出部３３はユーザに操作権を認めない。したがって、単にＸＹ平面で顔の近くに手があるかどうかを判断するよりも、立方体５５で判断することで非操作動作と操作する意志を示す動作を区別して検出しやすくなる。
【００９６】
＜座標変換＞
続いて、図１４を用いて、操作エリア５４における手首関節又は手関節の座標からカーソル３の位置への変換を説明する。図１４は操作エリア５４における手首関節又は手関節の座標とカーソル３の位置を示す図の一例である。なお、図１４は手の速さが閾値以上の場合におけるカーソル３の位置の決定方法を説明する。
【００９７】
座標変換部３５は操作エリア５４における手首関節又は手関節の三次元座標と、ディスプレイ３１０におけるカーソル３の位置を１対１に対応付ける。まず、座標変換部３５は、操作エリア５４の左上コーナーの頂点Ｃ１を原点（０，０）に決定する。そして、操作エリア５４内の手首関節又は手関節の三次元座標を原点（０，０）を基準とする三次元座標に変換する。なお、操作エリア５４はＸＹ平面の二次元平面なので手首関節又は手関節のＺ座標は使用されない。このためＺ座標については常に一定と見なしてよく計算から省いてよい。Ｃ１を原点とする手首関節又は手関節の三次元座標をＲ（Ｘ，Ｙ）とする。
【００９８】
また、ディスプレイ３１０の縦方向の解像度をＨ，横方向の解像度をＷとする。また、操作エリア５４の縦横の長さはＡである。したがって、簡単な比例計算によりディスプレイ３１０におけるカーソル３の位置Ｓ（ｘ、ｙ）を算出できる。
ｘ＝Ｗ×Ａ/Ｘ
ｙ＝Ｈ×Ａ/Ｙ
ユーザＵの手首関節又は手関節が操作エリア５４の外にはみ出すことが当然あるが、座標変換部３５は操作エリア５４外の手首関節又は手関節を無視する。
【００９９】
座標変換部３５は、情報取得部３１がセンサ情報を取得するごとに座標変換を行う。一方、操作エリア作成部３４は、画像データの１フレームごとに操作エリア５４を更新する。これにより、ユーザが正面を向いたり、肩を動作検出装置１０に向けたりして動作が変わっても適切な操作エリア５４を作成できる。
【０１００】
なお、操作エリア５４は、操作開始検出部３３が操作の終了の意志を検出すると（ユーザＵが手を下げると）消去される。
【０１０１】
図１５は、ユーザＵの手首関節又は手関節の三次元座標を側方から見た図である。つまり、図１５の横方向がＺ軸に対応する。図１５のユーザＵ１は自分の身体の近くで腕を動かしており、ユーザＵ２は自分の身体よりも前方で腕を動かしている。つまり、ユーザＵ１とＵ２の手首関節又は手関節のＺ座標は異なっている。しかし、ユーザＵ１とＵ２の手首関節又は手関節のＹ座標はほぼ同じである（図１５からは明らかでないがＸ座標もほぼ同じ）。
【０１０２】
このようにＺ座標が異なっても、座標変換部３５は手首関節又は手関節の座標をカーソル３の位置に変換する際にＺ座標を使用しないので、ユーザＵ１とＵ２が操作するカーソル３の位置（軌跡）は同じになる。
【０１０３】
<<操作エリア５４の変形例>>
一般に、ディスプレイ３１０のアスペクト比は１対１でなく横方向の方が長い。これに対し、操作エリア５４の縦横の長さはどちらも長さＡである。したがって、ユーザＵが横方向に手を動かすとカーソル３は横方向に大きく動くため、ユーザＵは横方向のカーソル３の位置を制御しにくいおそれがある。そこで、操作エリア５４の縦横の長さをディスプレイ３１０のアスペクト比に応じて変更することが有効になる。なお、ディスプレイ３１０のアスペクト比は情報処理装置３０に入力されている。
【０１０４】
図１６は、操作エリア５４の変形例を説明する図の一例である。図１６（ａ）はディスプレイ３１０のアスペクト比が横長の場合の操作エリア５４の一例を示す。操作エリア作成部３４は上記した正方形の操作エリア５４の左右に拡張領域５４ａを付加して操作エリア５４を作成する。拡張領域５４ａの長さαは例えば１０ｃｍである。これは、長さＡが３０ｃｍであるとすると全体で５０ｃｍくらいの範囲ならユーザＵの手が届くためである。したがって、１０ｃｍは一例に過ぎず、長さＡを考慮して手の届く範囲で拡張すればよい。例えばユーザＵの身長などに応じて可変としてもよい。
【０１０５】
図１６（ｂ）はディスプレイ３１０のアスペクト比が縦長の場合の操作エリア５４の一例を示す。αについては図１６（ａ）と同様でよい。このように操作エリア５４の縦横の長さがディスプレイ３１０のアスペクト比に応じて変更されることで、ユーザＵの操作性が向上する。
【０１０６】
＜速さの検出＞
図１７を用いて速さの検出について説明する。図１７は手首関節又は手関節の速さの検出方法を説明する図の一例である。速さ検出部３７は、手首関節又は手関節の過去の数周期の三次元座標を用いて加速度を算出する。例えば、時刻ｔ１の手首関節又は手関節の速度Ｖ１は、時刻ｔ０とｔ１の手首関節又は手関節の三次元座標から求めることができる。なお、センサ情報が取得される周期をΔｔとする。上記のようにＸ，Ｙ成分だけを使用して、時刻ｔ１の速度Ｖ１が算出される。
Ｖｘ＝（Ｘt1−Ｘto）/Δｔ、Ｖｙ＝（Ｙt1−Ｙto）/Δｔ、
Ｖ１＝√（Ｖｘ２＋Ｖｙ２）
同様に、時刻ｔ２の手首関節又は手関節の速度Ｖ２は、時刻ｔ１とｔ２の手首関節又は手関節の三次元座標から求めることができる。そして、時刻ｔ２の加速度αは、速度Ｖ１とＶ２の差を周期Δｔで割った値なので以下のように算出できる。
α＝（Ｖ２−Ｖ１）/Δｔ
したがって、過去の３周期の三次元座標があれば、速さ検出部３７は周期ごとに手首関節又は手関節の加速度を算出できる。
【０１０７】
本実施形態では速度や加速度を手の速さの指標として用いる。これらの速さと比較される閾値は、実験的に定められるものとする。例えば、停止するよりもやや速い程度の速さを閾値とする（例えば１〜１０〔ｃｍ/sec〕）。操作ボタン１０３をクリックしようとするは手首関節又は手関節の速さはゆっくりとしている場合が多いためである。
【０１０８】
なお、手首関節又は手関節の速さとして速度を用いる場合、過去の２周期の三次元座標を用いれば速さ検出部３７が速度を算出できる。また、加速度の加速度を更に算出して速さの指標としてもよい。この場合、過去の４周期の三次元座標を用いれば算出できる。
【０１０９】
＜イベントの検出＞
図１８を用いて、イベントの検出方法について説明する。図１８（ａ）は手の部分に含まれる関節と手の形状を示し、図１８（ｂ）はユーザＵが手を握った状態の手の部分に含まれる関節と手の形状を示す。イベント判断部３８は、一例としてユーザＵが手を握り素早く開くジェスチャーをクリックというイベントとして検出する。つまり、握った（グー）時点ではマウスの左ボタンダウン、開く（パー）と左ボタンアップというイベントになる。こうすることで、ユーザはクリックの他、握ったままドラッグすることなどが可能になる。また、握っている時間が長い場合、イベント判断部３８は右ボタンダウンのイベントを検出する。
【０１１０】
上記のように、動作検出装置１０は右手関節ｇ、右手首関節ｆ、右手先関節ｈ、右手親指関節ｉ（及び、左手関節、左手首関節、左手先関節、左手親指関節）の三次元座標を検出している。図示するように、ユーザＵが右手を握ると、右手先関節ｈと右手親指関節ｉの三次元座標が特定の方向に大きく移動する。図示するようにＸ，Ｙ座標を取ると、右手先関節ｈのＹ座標が小さくなる。また、右手親指関節ｉのＸ座標も小さくなる。
【０１１１】
イベント判断部３８は、右手先関節ｈのＹ座標が小さくなり、かつ、右手親指関節ｉのＸ座標も小さくなると、左ボタンダウンのイベントが生じたと判断する。右手先関節ｈのＹ座標が大きくなり、かつ、右手親指関節ｉのＸ座標も大きくなると、左ボタンアップのイベントが生じたと判断する。なお、右手先関節ｈのＹ座標が小さくなるか、又は、右手親指関節ｉのＸ座標も小さくなった場合に、左ボタンダウンというイベントが生じたと判断してもよい。
【０１１２】
また、動作検出装置１０は、いわゆるじゃんけん（グー、チョキ、パー）というジェスチャーを検出しているので、これを利用して握るというジェスチャーを検出してもよい。例えば、グー又はチョキというジェスチャーが検出された場合に、左ボタンダウンというイベントが生じたと判断する。
【０１１３】
また、イベント判断部３８は、三次元座標のうち二次元の座標だけを使うのでなく、Ｚ座標を使って握るというジェスチャーを検出してもよい。ユーザＵはアプリケーションソフト１２０をクリックする場合に、例えば前方（又は後方）に手を移動させる。イベント判断部３８は、右手関節ｇ等の所定以上の速さのＺ軸方向の三次元座標の変化を検出して、クリックというイベントが生じたと判断する。
【０１１４】
しかしながら、ユーザＵがＺ方向に手を動かそうとすると、Ｘ，Ｙ座標も動きやすくなるため、カーソル３の位置がクリックしたい位置から動いてしまうおそれがある。このため、本実施形態のように、Ｘ座標、Ｙ座標が変化しにくい手を握るというジェスチャーが有効である。したがって、主に指を動かすなどの手を握って開く以外のジェスチャーがクリックのイベントと対応付けられていてもよい。
【０１１５】
＜速さが閾値未満の場合の座標変換＞
図１９を用いて速さが閾値未満の場合の座標変換を説明する。図１９は、速さが閾値未満の場合の座標変換を説明する図の一例である。速さ検出部３７が手首関節又は手関節の速さが閾値未満になったと判断すると、座標変換部３５とＵＩ制御部３６は以下のように動作する。
(i) カーソル表示部４１はガイドメッシュ４をカーソル３の位置に表示する。
(ii)三次元座標が閾値以上変化したかどうか（手首関節が閾値以上の大きさで動作したかどうか）を判断する。
(iii) 三次元座標が閾値以上変化した場合、Ｘ方向又はＹ方向のうちどちらの成分が大きいかを判断する。
(iv) Ｘ方向又はＹ方向のうち成分が大きい方に、ガイドメッシュ４を沿って移動量に応じたマス目だけ移動させる。
【０１１６】
(i)について説明する。速さが閾値未満であると速さ検出部３７が判断した旨の情報をカーソル表示部４１が取得すると、カーソル表示部４１はガイドメッシュ４の表示を開始する。図１９（ａ）に示すように、カーソル表示部４１は座標変換部３５から取得したカーソル３の位置をガイドメッシュ４の所定の交点に対応付けて、交点にカーソル３を配置してガイドメッシュ４を表示する。所定の交点はガイドメッシュ４の略中央のいずれかで予め定められている。したがって、ガイドメッシュ４の略中央にカーソル３が表示される。また、このガイドメッシュ４と共に表示されるカーソル３は、速さが閾値以上である場合のカーソル３とは形状が異なっている。図１９（ａ）では縦横の両端矢印が垂直に交わった形状である。
【０１１７】
カーソル３はガイドメッシュ４の交点上を移動する。ガイドメッシュ４は速さが閾値以上になると消去される。速さが閾値未満の間、ガイドメッシュ４は移動してもよいし固定でもよい。
【０１１８】
なお、ガイドメッシュ４の各マスは正方形でもよいが、ディスプレイ３１０のアスペクト比と同じ比で縦横の長さが決定されていてもよい。
【０１１９】
次に、(ii)のように判断するのは、ユーザＵが意図しないわずかな手の動きによりカーソル３の位置が変化しないようにするためである。また、カーソル３がアプリケーションソフト１２０の例えば操作ボタン１０３上にある状態でユーザＵがクリックしようと握るというジェスチャーを行う場合に、ジェスチャーにより手がジェスチャー以外の動きを行う場合が少なくない。この場合、ジェスチャーした時にはカーソル３が操作ボタン１０３外に移動しており、ユーザＵが操作ボタン１０３をクリックできない場合が生じてしまう。そこで、(ii)のように判断することで、ユーザＵが意図しないわずかな手の動きによりカーソル３の位置が変化してしまうことを抑制できる。
【０１２０】
図１９（ｂ）では、三次元座標が閾値以上変化したものとする。すなわち、手首関節又は手関節の座標が座標（Ｘ１，Ｙ１）から（Ｘ２，Ｙ２）に移動したものとする。カーソル表示部４１は、Ｘ方向とＹ方向のそれぞれの移動量ΔＸ，ΔＹを算出する。
ΔＸ＝Ｘ２−Ｘ１
ΔＹ＝Ｙ２−Ｙ１
カーソル表示部４１は、ΔＸ，ΔＹのうち少なくとも一方が閾値以上であるかどうかを判断する。閾値は、ユーザＵが静止しようとしてもふらついてしまう一般的な手首関節又は手関節の移動量、及び、動作検出装置１０の誤差が考慮して決定されている。例えば数ｃｍにすればよいが、適宜、実験的に担当者等が定めることができる。
【０１２１】
(iii)について説明する。移動量ΔＸ，ΔＹの少なくとも一方が閾値以上である場合、カーソル表示部４１はΔＸとΔＹのどちらの方が大きいかを判断する。図１９（ｂ）ではΔＸ＞ΔＹである。
【０１２２】
(iv)について説明する。カーソル表示部４１は手首関節又は手関節の座標（Ｘ２，Ｙ２）のうちＸ２のみをカーソル３の位置を決定する。カーソル３の位置のガイドメッシュにおけるｙ方向の位置は直前の値をそのまま使用する。座標変換部３５が変換したカーソル３の位置のｘ座標はメッシュガイドの交点上にあるとは限らないので、カーソル表示部４１はｘ座標をメッシュガイドの交点上に補正する。例えば、以下のように補正する。
・カーソル３の位置のｘ座標が最も近いメッシュガイドの交点に補正する
・カーソル３の位置のｘ座標の次のメッシュガイドの交点に補正する
・カーソル３の位置のｘ座標の手前のメッシュガイドの交点に補正する
このように補正することで、カーソル表示部４１はメッシュガイドと共に表示されるカーソル３を交点上に表示できる。図１９（ｃ）では、直前のカーソル３の位置から右方向に２マス分移動した交点にカーソル３が移動して表示される。
【０１２３】
＜手首関節又は手関節の切り替え＞
ユーザＵはカーソル３を大きく移動させたい場合と、操作ボタン１０３の近くなどのように小さく移動させたい場合がある。また、ユーザＵは肘を中心に手を動かすので、手の外側の関節ほど速く動く。そこで、座標変換部３５は、速さ検出部３７が閾値以上の速さを検出したか否かに応じて、カーソル３の位置に変換する関節（ユーザの身体の部位）を切り替える。
Ａ．速さが閾値以上の場合、右手関節ｇの三次元座標をカーソル３の位置に変換する。
Ｂ．速さが閾値未満の場合、右手首関節ｆの三次元座標をカーソル３の位置に変換する。
【０１２４】
これにより、カーソル３を大きく移動させたい場合、ユーザＵは素早くカーソル３を移動させやすくなり、操作ボタン１０３などの近くでは手首を使って意図した位置にカーソル３を移動させやすくなる。なお、Ａの場合、右手先関節ｈや右手親指関節ｉの三次元座標を使用してもよい。肘から更に遠いので、ユーザはより速くカーソル３を操作できる。
【０１２５】
＜操作受付支援アイコンについて＞
図２０〜２２を用いてアイコン表示部４２が表示する操作受付支援アイコン８１について説明する。図２０は、動作検出装置１０によりユーザＵが検出された時の操作受付支援アイコン８１を示す図の一例である。アイコン表示部４２は、まずディスプレイ３１０に操作受付支援アイコン８１を大きく表示させる。なお、操作受付支援アイコン８１は動作検出装置１０の検出範囲５１とほぼ相似の形状を有している。
【０１２６】
操作受付支援アイコン８１は常に表示されていてもよいし、人が検出された場合にだけ表示されてもよいが、検出された時には大きく表示される。これにより、ユーザＵは動作検出装置１０により検出されたことを認識できる。また、ユーザの目をディスプレイ３１０に向けさせる効果がある。なお、アイコン表示部４２は操作受付支援アイコン８１を大きく表示するだけでなく、点滅させたり色を変えたりするなどして表示してもよい。この他、ディスプレイ３１０と別のプロジェクタ５に操作受付支援アイコン８１を表示させフォログラム投影（立体視）してもよい。
【０１２７】
図２０では、ユーザＵが動作検出装置１０の検出範囲５１の右後方から検出範囲５１に進入している。情報取得部３１は、ユーザＵの三次元座標を取得しているので、操作受付支援アイコン８１においてユーザＵの位置に対応する位置（アイコン上位置という）に人アイコン８２を表示する。人アイコン８２がアイコン上位置に表示されるので、ユーザＵは検出範囲５１における自分の位置を把握できる。また、情報取得部３１は、ユーザＵの顔の向きを取得しているので、アイコン表示部４２は顔の向きから推定した目の位置を人アイコン８２に表示する。
【０１２８】
操作受付支援アイコン８１には、操作位置５２に対応する場所（以下、操作位置指示表示８３という）が強調して表示されており、ユーザＵは人アイコン８２が操作位置指示表示８３に入るように移動する。
【０１２９】
図２１は、ユーザＵが操作位置５２で手を挙げた際の操作受付支援アイコン８１を示す図の一例である。なお、図２１は、手首関節又は手関節の速さが閾値以上の場合の画面例を示している。アイコン表示部４２は、ユーザＵが操作位置５２に入って所定時間が経過するか、又は、ユーザＵが操作位置５２で手を挙げてから所定時間が経過すると、操作受付支援アイコン８１を小さく表示する。これにより、ユーザＵがディスプレイ３１０に表示されたアプリケーションソフト１２０の画面を見やすくなる。
【０１３０】
また、ユーザＵが手を挙げると操作開始検出部３３はユーザＵが手を挙げたことを検出するので、アイコン表示部４２は人アイコン８２の手を挙げる。換言すると右手を挙げた人アイコン８２を表示する。これにより、手を挙げたユーザＵに操作権が与えられる。ジェスチャー操作受付プログラム１１０は、仮に、他のユーザＵが手を挙げても操作を受け付けない。図２１では左後方から別のユーザＵが検出範囲５１に進入しているが、このユーザＵはアプリケーションソフト１２０を操作できない。つまり、操作位置５２で最も早く手を挙げたユーザＵ（のみ）が操作権を得る。
【０１３１】
ユーザＵは操作位置５２で上記のように操作エリア５４を作り、手を動かしてカーソル３を表示したり、ジェスチャーを行いイベントを生じさせたりする。
【０１３２】
図２２（ａ）は、ユーザＵが操作位置５２で手を挙げているが手首関節又は手関節の速さが閾値未満の場合のガイドメッシュを示す図の一例である。この場合、カーソル表示部４１はガイドメッシュ４の交点にカーソル３を表示する。また、カーソル３は縦又は横にしか移動しないので、ユーザＵはガイドメッシュ４のマスを参考にしてカーソル３の微小な動きを制御できる。
【０１３３】
なお、ガイドメッシュ４は表示されなくてもよい。ガイドメッシュ４がなくてもカーソル３は縦又は横にしか移動しない点に変わりはなく、ユーザＵはカーソル３の微小な動きを制御できる。しかし、ガイドメッシュ４が表示されることでユーザＵはマス単位にしかカーソル３を移動できないことを把握できるので、操作性しやすいと感じることが期待される。
【０１３４】
また、ガイドメッシュ４の横線は水平でなくてもよく、縦線は垂直でなくてもよい。例えば、縦横の直線が交差していればよい。
【０１３５】
また、図２２（ｂ）に示すように、同心円の円周上を半径方向にカーソル３が移動してもよい。
【０１３６】
＜動作手順＞
図２３は、ジェスチャー操作受付プログラム１１０がユーザＵに操作権を付与するまでの手順を示すフローチャート図の一例である。図２３の処理は例えば、情報処理装置３０がジェスチャー操作受付プログラム１１０を実行中、繰り返し実行される。
【０１３７】
まず、人検出部３２により動作検出装置１０が人を検出したか否かが判断される（Ｓ１０）。人が検出されない場合（Ｓ１０のＮｏ）、図２３の処理は終了する。
【０１３８】
人が検出された場合（Ｓ１０のＹｅｓ）、アイコン表示部４２は操作受付支援アイコン８１をディスプレイ３１０に大きく表示する（Ｓ２０）。この後、アイコン表示部４２は、人が検出されていても操作受付支援アイコン８１を一定時間後に小さく表示する。
【０１３９】
次に、アイコン表示部４２は、ユーザＵの位置に基づいて人アイコン８２を操作受付支援アイコン８１のアイコン上位置に表示する（Ｓ３０）。情報取得部３１はセンサ情報を周期的に取得するので、アイコン表示部４２は人アイコン８２の位置を更新する。
【０１４０】
操作開始検出部３３はユーザＵの位置が操作位置５２に入ったか否かを判断する（Ｓ４０）。すなわち、ユーザＵのＸ，Ｙ，Ｚ座標が操作位置５２に含まれているか否かを判断する。
【０１４１】
ユーザＵが操作位置５２に入るまでは（Ｓ４０のＮｏ）、人が未検出かどうか判断される（Ｓ５０）。そして、人が未検出になると（Ｓ５０のＹｅｓ）、図２３の処理が終了する。
【０１４２】
人が検出されている間（Ｓ５０のＮｏ）、繰り返しユーザＵが操作位置５２に入ったか否かが判断される。
【０１４３】
次に、人が操作位置５２に入った場合（Ｓ４０のＹｅｓ）、操作開始検出部３３はユーザＵが手を挙げたか否かを判断する（Ｓ６０）。例えば、手がユーザの腰より一定（以上）の高さに位置するか否かを判断する。
【０１４４】
ユーザＵが手を挙げるまで（Ｓ６０のＮｏ）、ステップＳ４０以降の判断が繰り返し実行される。
【０１４５】
ユーザＵが手を挙げた場合（Ｓ６０のＹｅｓ）、操作開始検出部３３は手が所定の周辺領域に入っていないかどうかを判断する（Ｓ７０）。所定の周辺領域とは例えば、立方体５５の内側をいう。なお、この立方体５５を用いた判断は所定の領域内に入っているかどうかの判断の一例である。例えば、右手先関節ｈや右手関節ｇが頭関節ａの周辺にないことを確認する。これにより、例えば電話中のユーザＵがアプリケーションソフト１２０を操作してしまうことを抑制できる。なお、ステップＳ７０の判断は、操作する意志のないユーザに操作権を与えることを防ぐものであって、必須ではない。また、ステップＳ７０の判断では、ユーザの頭から腰に向かって作成される直方体（頭から腰のやや手前までを含む直方体）の領域（体の近くの周辺領域）に手が入っていないことを判断することが好ましい。これによりユーザの姿勢に依存しない領域が作成される。具体的には、ユーザがバインダーなどの荷物を抱えているケースでも、頭周辺の領域だけでなく胴回りの領域も非操作領域に含めることができる。
【０１４６】
ステップＳ７０の判断がＹｅｓの場合、操作開始検出部３３は操作を開始する意志を検出して、手を挙げたユーザＵに操作権を付与する（Ｓ８０）。したがって、他のユーザＵが操作位置５２で手を挙げてもアプリケーションソフト１２０を操作できないようにすることができる。
【０１４７】
次に、アイコン表示部４２はアイコン上位置に手を挙げた人アイコン８２を表示する（Ｓ９０）。これによりユーザＵは自分が手を挙げたことが認識されたと判断でき、操作を開始できる。
【０１４８】
操作を開始する意志が検出されると、操作エリア作成部３４は操作エリア５４を作成する（Ｓ１００）。以降、ユーザＵは手関節や手首関節によりカーソル３の位置を操作したり、ジェスチャーによりアプリケーションソフト１２０を操作できる。ジェスチャー操作受付プログラム１１０はユーザＵによるアプリケーションソフト１２０の操作を受け付けを開始する。
【０１４９】
図２４は、ジェスチャー操作受付プログラム１１０がユーザＵの操作を受け付けてアプリケーションソフト１２０を操作する手順を示すフローチャート図の一例である。図２４の処理は操作エリア５４が作成されるとスタートする。
【０１５０】
まず、情報取得部３１がセンサ情報を取得する（Ｓ１１０）。
【０１５１】
速さ検出部３７はセンサ情報に基づいて手関節の速さが閾値以上か否かを判断する（Ｓ１２０）。
【０１５２】
手関節の速さが閾値以上である場合（Ｓ１２０のＹｅｓ）、座標変換部３５は手関節の三次元座標をカーソル３の位置に変換する（Ｓ１３０）。
【０１５３】
出力部３９は、カーソル３の位置をアプリケーションソフト１２０に出力する（Ｓ１４０）。
【０１５４】
また、イベント判断部３８は、ユーザＵがイベントを発生させるジェスチャーをしたか否かを判断する（Ｓ１５０）。これは、ガイドメッシュ４が表示されていなくてもユーザＵはジェスチャーすることが可能なためである。
【０１５５】
イベントが検出された場合は、出力部３９は、カーソル３の位置及びイベントをアプリケーションソフト１２０に出力する（Ｓ１６０）。なお、カーソル３の位置とイベントは同時に出力されなくてもよい。
【０１５６】
次に、手関節の速さが閾値以上でない場合（Ｓ１２０のＮｏ）、カーソル表示部４１はガイドメッシュ４を表示中か否かを判断する（Ｓ１８０）。これは、ガイドメッシュ４を表示中に再度ガイドメッシュ４を表示する必要がないためである。
【０１５７】
ガイドメッシュ４を表示中でない場合（Ｓ１８０のＮｏ）、カーソル表示部４１は中央にカーソル３が表示されたガイドメッシュ４を表示する（Ｓ１９０）。なお、カーソル表示部４１は座標変換部３５からカーソル３の位置を取得する。この後、処理はステップＳ１４０に進む。
【０１５８】
ガイドメッシュ４を表示中である場合（Ｓ１８０のＹｅｓ）、カーソル表示部４１は手首関節の三次元座標が閾値以上移動したか否かを判断する（Ｓ２００）。すなわち、手関節でなく手首関節に着目することで、ユーザＵはカーソル３の微小な移動を制御しやすくなる。
【０１５９】
ステップＳ２００の判断がＹｅｓの場合、カーソル表示部４１はガイドメッシュ４のカーソル３の位置を更新する（Ｓ２１０）。すなわち、カーソル表示部４１は手首関節が移動したＸ方向とＹ方向の移動量の内、大きい方だけをカーソル３の位置に変換する。カーソル表示部４１はこのカーソル３の位置をガイドメッシュ４の交点に補正する。この後、処理はステップＳ１４０に進み、ガイドメッシュ４にカーソル３が表示される。
【０１６０】
また、操作開始検出部３３は、ユーザＵが操作位置５２に入っているかどうか及び手を挙げているかどうかを適宜、判断する（Ｓ１７０）。これは、操作する意志を確認するためである。
【０１６１】
ステップＳ１７０の判断がＹｅｓの場合、処理はステップＳ１１０に戻りアプリケーションソフト１２０の操作が継続される。
【０１６２】
ステップＳ１７０の判断がＮｏの場合、出力部３９はアプリケーションソフト１２０に対しガイドメッシュ及びカーソルを非表示にするよう要求する（Ｓ２２０）。以上で、図２４の処理は終了する。この場合、操作エリア５４が削除されユーザＵは操作権を失う。
【０１６３】
＜センサ情報の記録と活用＞
続いて、図２５〜図２８を用いて、センサ情報の記録と活用について説明する。従来のデジタルサイネージは、ユーザにより閲覧されているかどうか履歴として残せていなかった。本実形態の情報処理装置３０はユーザの顔向き等を動作検出装置１０から取得しているので、コンテンツの提供者などが、後でどのくらいのユーザが閲覧していたかを分析できる。また、情報記録部４３はディスプレイ３１０に表示されたコンテンツのスクリーンショットを記録しているため、ユーザがどのようなスクリーンショットに興味を示したか等を分析できる。なお、スクリーンショットはデータサイズが大きいので、ユーザの顔向きがディスプレイ３１０を向いている場合にだけ、記録すればよい。
【０１６４】
図２５は、顔向きなどの分析のために情報記録部４３が記録するセンサ情報の一例を示す。図２５では、ＸＭＬ形式で一人のユーザに関し記録されるセンサ情報が記述されている。以下、これらの情報について説明する。
<TrackingID>タグは認識されているユーザ（操作権限を持たないユーザも含む）に対して割り当てられているユーザの識別情報である。
<Glasses>タグは眼鏡をしているかどうかを示す。
<Happy>タグは笑顔かどうか（幸せそうか）を示す。
<LeftEyeClosed>タグは左目を閉じているどうかを示す。
<RightEyeClosed>タグは右目を閉じているかどうかを示す
<LookingAway>タグはこちらを向いているかどうかを示す。
<MouthMoved>タグは口が動いているかどうかを示す。
<MouthOpen>タグは口が開いているかどうかを示す。
<Yaw>タグは顔の横方向の角度（ヨー角）を示し、動作検出装置１０に向かって左横に首を曲げるとプラス値、右に首を曲げるとマイナス値となる。
<Pitch>タグは顔の上下方向の角度（ピッチ角）を示し、動作検出装置１０に向かって上を向くとプラス値、下を向くとマイナス値となる。
<Roll>タグは顔を傾ける方向の角度（ロール角）を示し、目や口元が垂直である場合はゼロとなる。
<PositionInfo>タグはユーザの位置を示し、<X>タグは動作検出装置１０の中心から横方向の距離（右側プラス値、左側マイナス値）を示す。<Y>タグは身長を示し、<Z>タグは動作検出装置１０からの距離を示す。
<MouseTrackingInfo>タグの<LeftButtonDown>タグはマウスの左ボタンを押下しているかどうかを示し、<RightButtonDown>タグはマウスの右ボタンを押下しているかどうかを示す。<MousePositionInfo>タグは、カーソルのＸ座標とＹ座標を示す。
【０１６５】
なお、<MouseTrackingInfo>や<MousePositionInfo>は操作権限を持つユーザについてだけ記録される。情報記録部４３はこのような情報を各ユーザごとに記録する。
【０１６６】
図２６は、図２５のセンサ情報が取得された際に情報記録部４３が取得したスクリーンショット２０１を示す図の一例である。したがって、コンテンツの提供者等は、<Yaw>、<Pitch>、<Roll>の各タグにより、ユーザがコンテンツのどこを見ているか（どこに興味があるか）、更に視線の滞留時間等を測定することなどができる。また、<MouseTrackingInfo>タグにより、ユーザが何か操作をしているのか、操作をしていれば何に興味があるのかを、スクリーンショット２０１から判断できる。
【０１６７】
ところで、動作検出装置１０は距離情報をユーザの検出に使用しているので、複数のユーザの位置によってはユーザを検出できない場合がある。図２７は、検出されないユーザを説明する図の一例である。図２７では動作検出装置１０の検出範囲５１に３人のユーザＵ１〜Ｕ３がいることが示されている。しかしながら、ユーザＵ１とユーザＵ３が、動作検出装置１０から見て距離方向に重なっているため、動作検出装置１０はユーザＵ３を検出できない。すなわち、骨格情報を取得できない。
【０１６８】
しかしながら、動作検出装置１０は上記のようにカラー画像２０２を撮像しているため、カラー画像２０２にはユーザＵ３は写っている。また、ユーザＵ３が写っている領域の距離情報も取得されている。情報記録部４３は、例えばカラー画像２０２から顔認識やシルエット認識することで、人だと判断する。これにより、検出範囲５１のユーザの人数を正しく取得できる。
【０１６９】
ユーザＵ３が写っている領域は、Ｚ方向の座標がある範囲に入っている領域（例えば、ユーザＵ１よりも後方の処理範囲内）として抽出できるため、顔認識などを行う領域をユーザＵ１よりも後方のＺ座標を有する領域に制限でき検出時間を短縮できる。
【０１７０】
このように、骨格情報だけでは一度に取得できるユーザの人数に制限があるが（現在は最大６人）、カラー画像２０２や距離情報と組み合わせることで、人が群がっている場合でもユーザの数を検出できる。また、ユーザＵ３がＵ１により遮られる以前のカラー画像２０２と遮られた後のカラー画像を比較したり、ユーザＵ３がＵ１により遮られる以前の距離情報と遮られた後の距離情報を比較することもできる。人検出部３２が検出するユーザの数が急に減った場合、情報記録部４３はユーザが隠れていることを推定し、隠れる前と距離情報が同程度の領域から顔認識などで探索できる。
【０１７１】
図２８は、情報記録部４３がセンサ情報ＤＢ４４に記憶したセンサ情報の解析例を説明する図の一例である。情報処理装置３０は、センサ情報ＤＢ４４に記憶したセンサ情報から時間帯ごと（図では１０分）のユーザの人数を合計する。図２８では、棒グラフ２０５の高さが時間帯ごとのユーザの数を示す。また、各棒グラフ２０５では、時間帯のユーザの数が、操作権を有したユーザの数２０４とそれ以外のユーザの数２０３に分けて表示されている。なお、継続的に検出されている同じユーザには同じ<TrackingID>が付与されるため、情報処理装置３０が重複してカウントするおそれはほとんどない。
【０１７２】
また、図２８では、各時間帯のスクリーンショット２０１がタイムラインのように棒グラフ２０５の上方に表示されている。あるいは、各時間帯の代表的なスクリーンショット２０１が表示されてもよい。代表的なスクリーンショット２０１とは、時間帯の最初又は最後のスクリーンショット、又は、画像の変化が最も大きいスクリーンショットなどである。
【０１７３】
したがって、コンテンツの提供者等は、多くのユーザを集めたコンテンツがどれなのか判断できる。例えば、図２８のコンテンツが異なる講師（学校や予備校の先生、後援者など）の場合、どの講師に人気があるか判断できる。
【０１７４】
＜まとめ＞
以上説明したように、本実施形態の情報処理装置３０は、動作の速さが閾値未満の場合、カーソル３の移動方向を所定方向に制限することで、カーソル３の位置の操作性を向上させることができる。また、動作の速さが閾値未満の場合、右手首関節ｆが閾値以上、移動しないとカーソルが移動しないので、ユーザがクリックのジェスチャーを行う際にカーソルが移動してしまうことを抑制しやすい。また、動作の速さが閾値以上か未満かによって、異なるユーザの関節を使って操作できるのでユーザの操作性を向上できる。また、ディスプレイ３１０のアスペクト比によって適宜、操作エリア５４の縦横の長さを変更するのでユーザによるカーソル３の操作性を向上できる。また、複数のユーザが検出された場合も、最初に操作の意志を示したユーザに操作権を付与できる。また、操作受付支援アイコン８１を表示することでユーザは操作位置５２に移動しやすくなり、また、自分が操作していることを把握しやすい。
【０１７５】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１７６】
例えば、本実施形態では、主にカーソルの移動やクリックなどの操作を例に説明したが、ユーザの動作から情報処理装置３０は種々の情報を取得できる。例えば、コンテンツは動画である場合が多く自動的に変わっていくので、ジェスチャー操作受付プログラム１１０が「チャンネルを固定しますか？」などの質問をコンテンツに重畳して（スーパーインポーズする）もよい。これに対し、ユーザが所定の動作を取ると、イベント判断部３８がそれを検出して、出力部３９がアプリケーションソフト１２０に一時停止を要求する。なお、質問はユーザが検出されている際にだけ表示することが好ましい。
【０１７７】
また、ユーザが見ているコンテンツに簡単な質問（アンケート）を同様に表示して、ユーザの動作によりアンケート結果を取得することもできる。
【０１７８】
例えば、情報処理装置３０はサーバクライアント方式で動作してもよい。この場合、情報処理装置３０はセンサ情報をサーバに送信し、サーバからカーソルの位置とイベントを受信する。そして、アプリケーションソフト１２０に送出する。
【０１７９】
また、主にジェスチャー操作受付プログラムがカーソル３を表示すると説明したが、適宜ＯＳ１３０の機能を利用してカーソル３を表示してよい。また、アプリケーションソフト１２０がカーソル３を表示してもよい。
【０１８０】
また、操作エリア５４内の座標とカーソルの位置を１対１に対応させるのではなく、ユーザは手の移動量でカーソルの位置を操作してもよい。例えば、カーソルと移動させる場合、手を握り、一定以上の速さで動かす。座標変換部は、手の移動量をカーソルの移動量に変換して、最後のカーソルの位置を更新する。したがって、この場合、操作エリア５４はなくてもよい。
【０１８１】
また、本実施例では左クリックのジェスチャーを説明したが、情報処理装置３０が右手と左手を区別して検出するなどにより右クリックのジェスチャーを入力することなども可能である。また、足などの関節の三次元座標や顔向きなどでカーソルを移動させることもできる。また、手を握る以外に、人間の多種多様なジェスチャーをイベントと対応付けることができる。
【０１８２】
また、手を挙げる動作が操作権を得る動作であると説明したが、以下のような動作により操作権が付与されてもよい。
・マイク１７により声とか音（手を叩く）が検出された場合
・操作開始検出部３３が検出した声とか音（手を叩く）が特定のリズムであると判断した場合
・操作開始検出部３３が画像データを解析してスマートフォンなどの無線機器を持っていると判断した場合
・ユーザが持っているスマホなどの無線機器から送信された信号を操作開始検出部３３が検出した場合
・ユーザが足を上げたことを操作開始検出部３３が検出した場合
・手の形が予め定めた条件と一致する特定の形になったことを操作開始検出部３３が検出した場合（グー、チョキ、パー等）
・ユーザが立っていることを操作開始検出部３３が検出した場合（セミナーなどで会場に座っている人が立った場合に操作権を与えることができる）
・顔の表情が予め定めた条件と一致する特定の表情になったことを操作開始検出部３３が検出した場合（例えば、笑っている等）
・ユーザの視線（顔向き）が特定の領域に向かっていることを操作開始検出部３３が検出した場合
また、図７などの構成例は、情報処理装置３０による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。情報処理装置３０の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、１つの処理単位が更に多くの処理を含むように分割することもできる。
【０１８３】
なお、速さ検出部３７は速さ検出手段の一例であり、座標変換部３５は位置情報作成手段の一例であり、カーソル表示部４１は位置指示表示情報表示手段の一例であり、イベント判断部３８はジェスチャー検出手段の一例であり、出力部３９は出力手段の一例であり、操作開始検出部３３は開始動作検出手段の一例であり、操作エリア作成部３４はエリア作成手段の一例であり、アイコン表示部４２はアイコン表示手段の一例である。情報記録部４３は画像記録手段の一例である。
【符号の説明】
【０１８４】
３      カーソル
４      ガイドメッシュ
１０    動作検出装置
３０    情報処理装置
３１    情報取得部
３２    人検出部
３３    操作開始検出部
３４    操作エリア作成部
３５    座標変換部
３６    ＵＩ制御部
３７    検出部
３８    イベント判断部
３９    出力部
４１    カーソル表示部
４２    アイコン表示部
４３    情報記録部
５４    操作エリア
８１    操作受付支援アイコン
１００  情報処理システム
【先行技術文献】
【特許文献】
【０１８５】
【特許文献１】特開２０１５−１７６４５１号公報
【図１】
2018005660.tif 000003
【図２】
2018005660.tif 000004
【図３】
2018005660.tif 000005
【図４】
2018005660.tif 000006
【図５】
2018005660.tif 000007
【図６】
2018005660.tif 000008
【図７】
2018005660.tif 000009
【図８】
2018005660.tif 000010
【図９】
2018005660.tif 000011
【図１０】
2018005660.tif 000012
【図１１】
2018005660.tif 000013
【図１２】
2018005660.tif 000014
【図１３】
2018005660.tif 000015
【図１４】
2018005660.tif 000016
【図１５】
2018005660.tif 000017
【図１６】
2018005660.tif 000018
【図１７】
2018005660.tif 000019
【図１８】
2018005660.tif 000020
【図１９】
2018005660.tif 000021
【図２０】
2018005660.tif 000022
【図２１】
2018005660.tif 000023
【図２２】
2018005660.tif 000024
【図２３】
2018005660.tif 000025
【図２４】
2018005660.tif 000026
【図２５】
2018005660.tif 000027
【図２６】
2018005660.tif 000028
【図２７】
2018005660.tif 000029
【図２８】
2018005660.tif 000030