(57)【特許請求の範囲】
【請求項１】
被写体を撮像した画像を取得する取得部と、
前記画像から、前記被写体の特定部分を検出する検出部と、
前記検出部で検出された前記特定部分の位置を示す特定位置を設定する第１設定部と、
前記画像のうち基準となる位置を示す基準位置を設定する第２設定部と、
前記基準位置から前記特定位置へ向かう位置ベクトルを算出する第１算出部と、
所定のコマンドに対応する複数のコマンドベクトルごとに、当該コマンドベクトルと前記位置ベクトルとの内積である第１パラメータを算出する第２算出部と、
前記取得部により時系列で取得された複数の前記画像の各々の前記特定位置を記憶する第１記憶部と、
前記第１記憶部に記憶された前記特定位置の履歴に基づいて、前記特定部分が移動する方向及び移動量を示す移動ベクトルを求める第３算出部と、
前記コマンドベクトルごとに、当該コマンドベクトルと前記移動ベクトルとの内積である第２パラメータを算出する第４算出部と、
前記コマンドベクトルごとに、当該コマンドベクトルの前記第１パラメータおよび前記第２パラメータを用いて、前記第１パラメータおよび前記第２パラメータの各々の値が大きいほど高い値を示す第３パラメータを算出する第５算出部と、
各前記コマンドベクトルについて、当該コマンドベクトルの前記第３パラメータの値が閾値以上である場合は、当該コマンドベクトルに対応する前記コマンドを発行する発行部と、
前記第３パラメータを記憶する第２記憶部と、
前記第２記憶部に記憶された前記第３パラメータの履歴に基づいて、前記第５算出部により算出された前記第３パラメータに対して、特定のコマンドベクトルの前記第３パラメータの値が高くなるようなバイアス値を加える補正を行う第１補正部と、を備える、
コマンド発行装置。
【請求項２】
被写体を撮像した画像を取得する取得部と、
前記画像から、前記被写体の特定部分を検出する検出部と、
前記検出部で検出された前記特定部分の位置を示す特定位置を設定する第１設定部と、
前記画像のうち基準となる位置を示す基準位置を設定する第２設定部と、
前記基準位置から前記特定位置へ向かう位置ベクトルを算出する第１算出部と、
所定のコマンドに対応する複数のコマンドベクトルごとに、当該コマンドベクトルと前記位置ベクトルとの内積である第１パラメータを算出する第２算出部と、
前記取得部により時系列で取得された複数の前記画像の各々の前記特定位置を記憶する第１記憶部と、
前記第１記憶部に記憶された前記特定位置の履歴に基づいて、前記特定部分が移動する方向及び移動量を示す移動ベクトルを求める第３算出部と、
前記コマンドベクトルごとに、当該コマンドベクトルと前記移動ベクトルとの内積である第２パラメータを算出する第４算出部と、
前記コマンドベクトルごとに、当該コマンドベクトルの前記第１パラメータおよび前記第２パラメータを用いて、前記第１パラメータおよび前記第２パラメータの各々の値が大きいほど高い値を示す第３パラメータを算出する第５算出部と、
各前記コマンドベクトルについて、当該コマンドベクトルの前記第３パラメータの値が閾値以上である場合は、当該コマンドベクトルに対応する前記コマンドを発行する発行部と、
前記発行部で発行された前記コマンドを記憶する第３記憶部と、
前記第３記憶部に記憶された前記コマンドの履歴に基づいて、前記第５算出部により算出された前記第３パラメータの値を補正する第２補正部と、を備え、
前記第２補正部は、過去に発行された前記コマンドに対応する前記コマンドベクトルの前記第３パラメータの値が大きくなるように、前記基準位置を変更する、
コマンド発行装置。
【請求項３】
前記第５算出部により算出された前記第３パラメータが、撮像距離に応じて異なる値を示さないように、当該算出された前記第３パラメータの値を補正する第３補正部をさらに備える、
請求項１または２のコマンド発行装置。
【請求項４】
前記第３補正部は、前記第５算出部により算出された前記第３パラメータの値を、前記被写体の少なくとも一部の領域の面積値に応じた値に設定される補正値で除算する、
請求項３のコマンド発行装置。
【請求項５】
前記補正値は、前記検出部で検出された前記特定部分の面積値である、
請求項４のコマンド発行装置。
【請求項６】
前記補正値は、前記検出部で検出された前記特定部分の面積値と、当該特定部分の形状とに応じて可変に設定される、
請求項４のコマンド発行装置。
【請求項７】
前記補正値は、前記基準位置を含む所定の領域の面積値である、
請求項４のコマンド発行装置。
【請求項８】
前記補正値は、前記基準位置を含む所定の領域の面積値と、当該所定の領域の形状とに応じて可変に設定される、
請求項４のコマンド発行装置。
【請求項９】
前記第５算出部で算出された前記第３パラメータに対応する前記コマンドの入力状態を表示するように制御する表示制御部をさらに備える、
請求項１または２のコマンド発行装置。
【請求項１０】
被写体を撮像した画像を取得する取得ステップと、
前記画像から、前記被写体の特定部分を検出する検出ステップと、
前記検出ステップで検出された前記特定部分の位置を示す特定位置を設定する第１設定ステップと、
前記画像のうち基準となる位置を示す基準位置を設定する第２設定ステップと、
前記基準位置から前記特定位置へ向かう位置ベクトルを算出する第１算出ステップと、
所定のコマンドに対応する複数のコマンドベクトルごとに、当該コマンドベクトルと前記位置ベクトルとの内積である第１パラメータを算出する第２算出ステップと、
前記取得ステップにより時系列で取得された複数の前記画像の各々の前記特定位置を記憶する第１記憶部に記憶された前記特定位置の履歴に基づいて、前記特定部分が移動する方向及び移動量を示す移動ベクトルを求める第３算出ステップと、
前記コマンドベクトルごとに、当該コマンドベクトルと前記移動ベクトルとの内積である第２パラメータを算出する第４算出ステップと、
前記コマンドベクトルごとに、当該コマンドベクトルの前記第１パラメータおよび前記第２パラメータを用いて、前記第１パラメータおよび前記第２パラメータの各々の値が大きいほど高い値を示す第３パラメータを算出する第５算出ステップと、
各前記コマンドベクトルについて、当該コマンドベクトルの前記第３パラメータの値が閾値以上である場合は、当該コマンドベクトルに対応する前記コマンドを発行する発行ステップと、
前記第３パラメータを記憶する第２記憶部に記憶された前記第３パラメータの履歴に基づいて、前記第５算出ステップにより算出された前記第３パラメータに対して、特定のコマンドベクトルの前記第３パラメータの値が高くなるようなバイアス値を加える補正を行う第１補正ステップと、を備える、
コマンド発行方法。
【請求項１１】
被写体を撮像した画像を取得する取得ステップと、
前記画像から、前記被写体の特定部分を検出する検出ステップと、
前記検出ステップで検出された前記特定部分の位置を示す特定位置を設定する第１設定ステップと、
前記画像のうち基準となる位置を示す基準位置を設定する第２設定ステップと、
前記基準位置から前記特定位置へ向かう位置ベクトルを算出する第１算出ステップと、
所定のコマンドに対応する複数のコマンドベクトルごとに、当該コマンドベクトルと前記位置ベクトルとの内積である第１パラメータを算出する第２算出ステップと、
前記取得ステップにより時系列で取得された複数の前記画像の各々の前記特定位置を記憶する第１記憶部に記憶された前記特定位置の履歴に基づいて、前記特定部分が移動する方向及び移動量を示す移動ベクトルを求める第３算出ステップと、
前記コマンドベクトルごとに、当該コマンドベクトルと前記移動ベクトルとの内積である第２パラメータを算出する第４算出ステップと、
前記コマンドベクトルごとに、当該コマンドベクトルの前記第１パラメータおよび前記第２パラメータを用いて、前記第１パラメータおよび前記第２パラメータの各々の値が大きいほど高い値を示す第３パラメータを算出する第５算出ステップと、
各前記コマンドベクトルについて、当該コマンドベクトルの前記第３パラメータの値が閾値以上である場合は、当該コマンドベクトルに対応する前記コマンドを発行する発行ステップと、
前記発行ステップで発行された前記コマンドを記憶する第３記憶部に記憶された前記コマンドの履歴に基づいて、過去に発行された前記コマンドに対応する前記コマンドベクトルの前記第３パラメータの値が大きくなるように、前記基準位置を変更することで、前記第５算出ステップにより算出された前記第３パラメータの値を補正する第２補正ステップと、を備える、
コマンド発行方法。
【請求項１２】
写体を撮像した画像を取得する取得ステップと、
前記画像から、前記被写体の特定部分を検出する検出ステップと、
前記検出ステップで検出された前記特定部分の位置を示す特定位置を設定する第１設定ステップと、
前記画像のうち基準となる位置を示す基準位置を設定する第２設定ステップと、
前記基準位置から前記特定位置へ向かう位置ベクトルを算出する第１算出ステップと、
所定のコマンドに対応する複数のコマンドベクトルごとに、当該コマンドベクトルと前記位置ベクトルとの内積である第１パラメータを算出する第２算出ステップと、
前記取得ステップにより時系列で取得された複数の前記画像の各々の前記特定位置を記憶する第１記憶部に記憶された前記特定位置の履歴に基づいて、前記特定部分が移動する方向及び移動量を示す移動ベクトルを求める第３算出ステップと、
前記コマンドベクトルごとに、当該コマンドベクトルと前記移動ベクトルとの内積である第２パラメータを算出する第４算出ステップと、
前記コマンドベクトルごとに、当該コマンドベクトルの前記第１パラメータおよび前記第２パラメータを用いて、前記第１パラメータおよび前記第２パラメータの各々の値が大きいほど高い値を示す第３パラメータを算出する第５算出ステップと、
各前記コマンドベクトルについて、当該コマンドベクトルの前記第３パラメータの値が閾値以上である場合は、当該コマンドベクトルに対応する前記コマンドを発行する発行ステップと、
前記第３パラメータを記憶する第２記憶部に記憶された前記第３パラメータの履歴に基づいて、前記第５算出ステップにより算出された前記第３パラメータに対して、特定のコマンドベクトルの前記第３パラメータの値が高くなるようなバイアス値を加える補正を行う第１補正ステップと、をコンピュータに実行させるためのプログラム。
【請求項１３】
被写体を撮像した画像を取得する取得ステップと、
前記画像から、前記被写体の特定部分を検出する検出ステップと、
前記検出ステップで検出された前記特定部分の位置を示す特定位置を設定する第１設定ステップと、
前記画像のうち基準となる位置を示す基準位置を設定する第２設定ステップと、
前記基準位置から前記特定位置へ向かう位置ベクトルを算出する第１算出ステップと、
所定のコマンドに対応する複数のコマンドベクトルごとに、当該コマンドベクトルと前記位置ベクトルとの内積である第１パラメータを算出する第２算出ステップと、
前記取得ステップにより時系列で取得された複数の前記画像の各々の前記特定位置を記憶する第１記憶部に記憶された前記特定位置の履歴に基づいて、前記特定部分が移動する方向及び移動量を示す移動ベクトルを求める第３算出ステップと、
前記コマンドベクトルごとに、当該コマンドベクトルと前記移動ベクトルとの内積である第２パラメータを算出する第４算出ステップと、
前記コマンドベクトルごとに、当該コマンドベクトルの前記第１パラメータおよび前記第２パラメータを用いて、前記第１パラメータおよび前記第２パラメータの各々の値が大きいほど高い値を示す第３パラメータを算出する第５算出ステップと、
各前記コマンドベクトルについて、当該コマンドベクトルの前記第３パラメータの値が閾値以上である場合は、当該コマンドベクトルに対応する前記コマンドを発行する発行ステップと、
前記発行ステップで発行された前記コマンドを記憶する第３記憶部に記憶された前記コマンドの履歴に基づいて、過去に発行された前記コマンドに対応する前記コマンドベクトルの前記第３パラメータの値が大きくなるように、前記基準位置を変更することで、前記第５算出ステップにより算出された前記第３パラメータの値を補正する第２補正ステップと、をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コマンド発行装置、コマンド発行方法およびプログラムに関する。
【背景技術】
【０００２】
従来、ユーザーの特定部分（例えば手など）の動きに応じてコマンドを発行するコマンド発行装置が知られている。このようなコマンド発行装置において、例えば特定部分の現在の移動速度が基準速度を上回る場合は、特定部分の現在の運動は高速運動であると検出され、直前に検出された高速運動との関係から、特定部分の現在の状態が、所定のコマンドを発行させるための送り動作であるか否かを判定する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１８２０１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の技術では、例えばユーザーの手が予め定められた方向に動く送り動作とは反対の方向に特定部分を移動させて元の位置に戻すための動作（復帰動作）が高速運動であると検出された場合、その復帰動作により、新たなコマンドが発行されてしまう。
【０００５】
本発明が解決しようとする課題は、送り動作と、送り動作とは異なる動作（例えば復帰動作や予備動作等）とを区別可能なコマンド発行装置、コマンド発行方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態のコマンド発行装置は、取得部と検出部と第１設定部と第２設定部と第１算出部と第２算出部と第１記憶部と第３算出部と第４算出部と第５算出部と発行部と第２記憶部と第１補正部とを備える。取得部は、被写体を撮像した画像を取得する。検出部は、画像から、被写体の特定部分を検出する。第１設定部は、検出部で検出された特定部分の位置を示す特定位置を設定する。第２設定部は、画像のうち基準となる位置を示す基準位置を設定する。第１算出部は、基準位置から特定位置へ向かう位置ベクトルを算出する。第２算出部は、コマンドベクトルごとに、当該コマンドベクトルと位置ベクトルとの内積である第１パラメータを算出する。第１記憶部は、取得部により時系列で取得された複数の画像の各々の特定位置を記憶する。第３算出部は、第１記憶部に記憶された特定位置の履歴に基づいて、特定部分が移動する方向及び移動量を示す移動ベクトルを求める。第４算出部は、コマンドベクトルごとに、当該コマンドベクトルと移動ベクトルとの内積である第２パラメータを算出する。第５算出部は、コマンドベクトルごとに、当該コマンドベクトルの第１パラメータおよび第２パラメータを用いて、第１パラメータおよび第２パラメータの各々の値が大きいほど高い値を示す第３パラメータを算出する。発行部は、各コマンドベクトルについて、当該コマンドベクトルの第３パラメータの値が閾値以上である場合は、当該コマンドベクトルに対応するコマンドを発行する。第２記憶部は、第３パラメータを記憶する。第１補正部は、第２記憶部に記憶された第３パラメータの履歴に基づいて、第５算出部により算出された第３パラメータに対して、特定のコマンドベクトルの第３パラメータの値が高くなるようなバイアス値を加える補正を行う。
【０００７】
実施形態のコマンド発行方法は、取得ステップと検出ステップと第１設定ステップと第２設定ステップと第１算出ステップと第２算出ステップと第３算出ステップと第４算出ステップと第５算出ステップと発行ステップと第１補正ステップとを備える。取得ステップは、被写体を撮像した画像を取得する。検出ステップは、画像から、被写体の特定部分を検出する。第１設定ステップは、検出ステップで検出された特定部分の位置を示す特定位置を設定する。第２設定ステップは、画像のうち基準となる位置を示す基準位置を設定する。第１算出ステップは、基準位置から特定位置へ向かう位置ベクトルを算出する。第２算出部は、コマンドベクトルごとに、当該コマンドベクトルと位置ベクトルとの内積である第１パラメータを算出する。発行ステップは、第１パラメータの値に基づいてコマンドを発行する。第３算出ステップは、取得ステップにより時系列で取得された複数の画像の各々の特定位置を記憶する第１記憶部に記憶された特定位置の履歴に基づいて、特定部分が移動する方向及び移動量を示す移動ベクトルを求める。第４算出ステップは、コマンドベクトルごとに、当該コマンドベクトルと移動ベクトルとの内積である第２パラメータを算出する。第５算出ステップは、コマンドベクトルごとに、当該コマンドベクトルの第１パラメータおよび第２パラメータを用いて、第１パラメータおよび第２パラメータの各々の値が大きいほど高い値を示す第３パラメータを算出する。発行ステップは、各コマンドベクトルについて、当該コマンドベクトルの第３パラメータの値が閾値以上である場合は、当該コマンドベクトルに対応するコマンドを発行する。第１補正ステップは、第３パラメータを記憶する第２記憶部に記憶された第３パラメータの履歴に基づいて、第５算出ステップにより算出された第３パラメータの値を補正する。
【０００８】
実施形態のプログラムは、取得ステップと検出ステップと第１設定ステップと第２設定ステップと第１算出ステップと第２算出ステップと第３算出ステップと第４算出ステップと第５算出ステップと発行ステップと第１補正ステップとをコンピュータに実行させるためのプログラムである。取得ステップは、被写体を撮像した画像を取得する。検出ステップは、画像から、被写体の特定部分を検出する。第１設定ステップは、検出ステップで検出された特定部分の位置を示す特定位置を設定する。第２設定ステップは、画像のうち基準となる位置を示す基準位置を設定する。第１算出ステップは、基準位置から特定位置へ向かう位置ベクトルを算出する。第２算出部は、コマンドベクトルごとに、当該コマンドベクトルと位置ベクトルとの一致度を示す第１パラメータを算出する。第３算出ステップは、取得ステップにより時系列で取得された複数の画像の各々の特定位置を記憶する第１記憶部に記憶された特定位置の履歴に基づいて、特定部分が移動する方向及び移動量を示す移動ベクトルを求める。第４算出ステップは、コマンドベクトルごとに、当該コマンドベクトルと移動ベクトルとの内積である第２パラメータを算出する。第５算出ステップは、コマンドベクトルごとに、当該コマンドベクトルの第１パラメータおよび第２パラメータを用いて、第１パラメータおよび第２パラメータの各々の値が大きいほど高い値を示す第３パラメータを算出する。発行ステップは、各コマンドベクトルについて、当該コマンドベクトルの第３パラメータの値が閾値以上である場合は、当該コマンドベクトルに対応するコマンドを発行する。第１補正ステップは、第３パラメータを記憶する第２記憶部に記憶された第３パラメータの履歴に基づいて、第１補正部は、第２記憶部に記憶された第３パラメータの履歴に基づいて、第５算出部により算出された第３パラメータに対して、特定のコマンドベクトルの第３パラメータの値が高くなるようなバイアス値を加える補正を行う。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態のコマンド発行装置のブロック図。
【図２】フレームの一例を示す図。
【図３】フレームの一例を示す図。
【図４】コマンド発行装置による処理動作例を示すフローチャート。
【図５】第２実施形態のコマンド発行装置のブロック図。
【図６】コマンド発行装置による処理動作例を示すフローチャート。
【図７】第３実施形態のコマンド発行装置のブロック図。
【図８】コマンド発行装置による処理動作例を示すフローチャート。
【図９】第４実施形態のコマンド発行装置のブロック図。
【図１０】コマンドの入力状態の表示例を示す図。
【図１１】コマンドの入力状態の表示例を示す図。
【図１２】コマンドの入力状態の表示例を示す図。
【図１３】コマンドの入力状態の表示例を示す図。
【図１４】コマンド発行装置による処理動作例を示すフローチャート。
【図１５】変形例のコマンド発行装置のブロック図。
【図１６】変形例のコマンド発行装置のブロック図。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照しながら、本発明に係るコマンド発行装置、コマンド発行方法およびプログラムの実施の形態を詳細に説明する。
【００１１】
（第１実施形態）
図１は、第１実施形態のコマンド発行装置１００の構成例を示すブロック図である。図１に示すように、コマンド発行装置１００は、取得部１０と、検出部１１と、第１設定部１２と、第２設定部１３と、第１算出部１４と、第２算出部１５と、第１記憶部１６と、第３算出部１７と、第４算出部１８と、第５算出部１９と、発行部２０とを含んで構成される。
【００１２】
取得部１０は、不図示の撮像装置が所定の周期（フレーム周期）で撮像する画像（各画像を「フレーム」と呼ぶ）を順次に取得する。撮像装置は、例えばＣＭＯＳイメージセンサ、赤外線イメージセンサ、距離画像センサ、動画再生機器などで構成され得る。
【００１３】
検出部１１は、取得部１０で取得されたフレームから、被写体（例えばユーザー）の特定部分を検出する検出処理を実行する。特定部分の検出はフレームが取得されるたびに行われることが好ましいが、装置の処理能力に応じて所定間隔で検出してもよい。また、本実施形態では、特定部分としてユーザーの手が採用されるが、これに限らず、特定部分は任意に設定可能である。例えばユーザーの手や足などの身体の少なくとも一部を特定部分として採用することもできる。また、空中操作可能なコントローラーや色の付いた球など、予めパターン画像が登録された物体を特定部分として採用することもできる。なお、特定部分の検出方法は任意であり、公知の様々な技術を用いることができる。例えばパターン認識方法や、背景差分法や、肌色抽出法や、フレーム間差分法や、これらを組み合わせた方法を用いることができる。
【００１４】
第１設定部１２は、検出部１１により特定部分が検出されるたびに、その検出された特定部分の位置を示す特定位置を設定する。一例として、本実施形態の第１設定部１２は、フレームのうち、検出部１１で検出された特定部分が示す領域の中心の座標を、特定位置として設定する。
【００１５】
第２設定部１３は、検出部１１により特定部分が検出されるたびに、そのときのフレームのうち基準となる位置を示す基準位置を設定する。本実施形態では、基準位置としてユーザーの肩の位置が採用される。第２設定部１３は、取得部１０で取得されたフレームからユーザーの顔の位置を検出し、その検出した顔の位置に基づいて肩の位置を特定する。そして、その特定した肩の位置を基準位置として設定する。なお、ユーザーの顔の位置の検出方法およびユーザーの肩の位置の検出方法は任意であり、公知の様々な技術を用いることができる。
【００１６】
また、本実施形態では、基準位置としてユーザーの肩の位置を採用しているが、これに限らず、基準位置は任意に設定可能である。例えば予め定められたカメラ座標や世界座標を基準位置として採用することもできる。また、ユーザーの手や足などの身体の少なくとも一部の位置を基準位置として採用することもできる。また、空中操作可能なコントローラーや色の付いた球など、予め画像が登録された物体の位置を基準位置として採用することもできる。さらに、フレームのうち最初に特定部分（例えばユーザーの手）が検出された領域の位置を、基準位置として採用することもできる。
【００１７】
第１算出部１４は、基準位置から特定位置へ向かう位置ベクトルを算出する。より具体的には、第１算出部１４は、検出部１１で特定部分が検出されるたびに、そのときのフレームにおける基準位置および特定位置を用いて位置ベクトルを算出する。例えば図２に示すフレームが取得された場合、第１算出部１４により算出される位置ベクトルは、図２のＶｌで表される。
【００１８】
第２算出部１５は、所定のコマンドに対応する複数のコマンドベクトルごとに、当該コマンドベクトルと、第１算出部１４で算出された位置ベクトルとの一致度を示す第１パラメータを算出する。一例として、本実施形態では、コマンドベクトルと位置ベクトルとの内積が第１パラメータとして採用されるので、コマンドベクトルと位置ベクトルとの一致度が高いほど第１パラメータは大きい値を示す。ただし、これに限らず、第１パラメータは、コマンドベクトルと位置ベクトルとの一致度を示すものであればよい。本実施形態の第２算出部１５は、検出部１１により特定部分が検出されるたびに、各コマンドベクトルの第１パラメータを算出する。図２の例では、所定のコマンドに対応するコマンドベクトルＶｄ１と位置ベクトルＶｌとの内積は、別のコマンドに対応するコマンドベクトルＶｄ２と位置ベクトルＶｌとの内積よりも大きい値を示す。
【００１９】
なお、第１パラメータの算出方法は任意である。例えば以下に示す式（１）のように、特定位置と基準位置との距離ｘが所定値ｃ以内であれば十分に低い値ｂに設定される一方、所定値ｃを超えれば十分に高い値ａに設定されるような非線形の関数を用いて第１パラメータを算出することもできる。この場合、ユーザーは、基準位置から見て、どの位置に特定部分が存在すれば、発行させたいコマンドに対応するコマンドベクトルの第１パラメータの値が十分に大きい値になるのかを容易に把握できる。
Ppos=a  if  x＞c
Ppos=b  otherwise      （１）
上述の式（１）において、Pposは第１パラメータを示す。
【００２０】
各コマンドベクトルの第１パラメータを算出するための式は、線形の関数であってもよい。例えば、特定位置と基準位置との距離ｘと、第１パラメータとの関係を一次関数で表してもよい。この場合、第１パラメータの値は距離ｘに比例する。また例えば、第１パラメータと距離ｘとの関係を、二次関数、シグモイド関数、指数関数、対数関数、カーネル関数（例えばガウシアンカーネル）などといった線形の関数で表してもよい。この場合、距離ｘが大きくなるほど第１パラメータの値が大きくなるのに加え、増加率が滑らかになるので、上記式（１）のように非線形の関数を用いて第１パラメータの値を求める場合に比べて、第１パラメータの値をユーザーの意図に応じた値に設定できる。例えば第１パラメータと距離ｘとの関係は、以下の式（２）で表すこともできる。式（２）は上記の関数を組み合わせたものである。
Ppos=axd  if  x＞c
Ppos=bxe  otherwise      （２）
【００２１】
また、例えば第１パラメータと距離ｘとの関係は、以下の式（３）で表すこともできる。式（３）は、距離ｘに比例して値が大きくなり、距離ｘが所定値以上になると第１パラメータの値の増加率が変化する非線形の関数で表される。
Ppos=alog(dx)  if  x＞c
Ppos=blog(ex)  otherwise      （３）
【００２２】
図１に示す第１記憶部１６は、第１設定部１２で設定された特定位置を記憶する。より具体的には、検出部１１により特定部分が検出されるたびに、その検出された特定部分の位置を示す特定位置が第１記憶部１６に順次に（時系列で）記憶される。第３算出部１７は、第１記憶部１６に記憶された特定位置の履歴に基づいて、特定部分が移動する方向および移動量を示す移動ベクトルを算出する。一例として、本実施形態では、検出部１１により特定部分が検出されるたびに、第１設定部１２で設定された特定位置と、第１記憶部１６に記憶された直前の特定位置とから、そのときのフレームにおける移動ベクトルを算出する。例えば図２の例では、第３算出部１７により算出される移動ベクトルはＶｍで表される。なお、これに限らず、移動ベクトルの算出方法は任意であり、特定部分が移動する方向および大きさを特定できればよい。
【００２３】
第４算出部１８は、コマンドベクトルごとに、当該コマンドベクトルと、第３算出部１７で算出された移動ベクトルとの一致度を示す第２パラメータを算出する。一例として、本実施形態では、コマンドベクトルと移動ベクトルとの内積が第２パラメータとして採用されるので、コマンドベクトルと移動ベクトルとの一致度が高いほど第２パラメータは大きい値を示す。ただし、これに限らず、第２パラメータは、コマンドベクトルと移動ベクトルとの一致度を示すものであればよい。本実施形態の第４算出部１８は、検出部１１により特定部分が検出されるたびに、そのときのフレームにおける各コマンドベクトルの第２パラメータを算出する。図２の例では、コマンドベクトルＶｄ１と移動ベクトルＶｍとの内積は、コマンドベクトルＶｄ２と移動ベクトルＶｍとの内積よりも大きい値を示す。
【００２４】
図１に示す第５算出部１９は、コマンドベクトルごとに、当該コマンドベクトルの第１パラメータおよび第２パラメータに基づいて、第３パラメータを算出する。第３パラメータは、第１パラメータおよび第２パラメータの各々の値が大きいほど高い値を示し、各コマンドベクトルの第１パラメータおよび第２パラメータが算出されるたびに、当該コマンドベクトルの第３パラメータが算出される。一例として、本実施形態では、第３パラメータは、第１パラメータと第２パラメータとの和で表される。これにより、例えば特定位置が基準位置付近であるために位置ベクトルが小さくなり、第１パラメータの値が小さい場合でも、特定部分を速く動かす、あるいは、発行させたいコマンドに対応するコマンドベクトルの方向へ大きく動かすことで、当該コマンドベクトルの第３パラメータの値を増加させることができる。また、特定位置が基準位置から十分に離れていて位置ベクトルが大きい場合は、特定部分の移動速度が低く、発行させたいコマンドに対応するコマンドベクトルの方向へ移動する量が小さくても、当該コマンドベクトルの第３パラメータの値を増加させることができる。
【００２５】
なお、これに限らず、例えば第１パラメータと第２パラメータとを乗算した値を第３パラメータとして算出することもできる。この場合、コマンドベクトルと位置ベクトルとの一致度が高く、かつ、コマンドベクトルと移動ベクトルとの一致度が高い場合に限り、当該コマンドベクトルの第３パラメータの値は大きい値を示す。さらに、第１パラメータおよび第２パラメータのうち何れか低い方の値を第３パラメータとして算出することもできる。また、第１パラメータと第２パラメータとを足し合わせたものと乗算したものとを組み合わせた値を第３パラメータとして算出することもできる。この場合、例えば特定位置が基準位置付近であっても、あるいは特定位置が基準位置から離れていても、所定のコマンドを発行させるための動作が行われたことにより、当該所定のコマンドに対応するコマンドベクトルと移動ベクトルとの一致度を示す第２パラメータの値が大きい値を示せば、当該コマンドベクトルの第３パラメータの値を増加させることができる。
【００２６】
発行部２０は、第５算出部１９で算出された第３パラメータに基づいてコマンドを発行する。より具体的には、発行部２０は、各コマンドベクトルについて、当該コマンドベクトルの第３パラメータの値が閾値以上である場合は、当該コマンドベクトルに対応するコマンドを発行する。なお、閾値は任意に設定可能である。図２の例では、発行部２０は、コマンドベクトルＶｄ１の第３パラメータの値（つまりは、コマンドベクトルＶｄ１と位置ベクトルＶｌとの内積を示す第１パラメータと、コマンドベクトルＶｄ１と移動ベクトルＶｍとの内積を示す第２パラメータとの和）が閾値以上の場合は、コマンドベクトルＶｄ１に対応するコマンドを発行する。また、誤検出を防止するために、あるコマンドベクトルの第３パラメータの値が所定数のフレームにわたって閾値以上の場合に、当該コマンドベクトルに対応するコマンドが発行される構成であってもよい。
【００２７】
ここで、図２の状態から、ユーザーが復帰動作（コマンドベクトルＶｄ１の方向と反対の方向に手を動かして手の位置を元に戻すための動作）を行った場合を想定する。この場合、図２のフレームの次のフレームとして図３に示すフレームが取得されたとする。図３のフレームにおける移動ベクトルＶｍ２は、コマンドベクトルＶｄ１とは反対の方向になるので、コマンドベクトルＶｄ１と移動ベクトルＶｍ２との内積を示す第２パラメータはマイナスの値となる。また、ユーザーの手の位置（特定位置）が肩の位置（基準位置）に近づくので、図３のフレームにおける位置ベクトルＶｌ２は図２の位置ベクトルＶｌ１に比べて小さい値になる。したがって、コマンドベクトルＶｄ１の第３パラメータの値は、図２の場合に比べて小さくなる。
【００２８】
また、図３のフレームにおける移動ベクトルＶｍ２の方向は、コマンドベクトルＶｄ２の方向と一致するので、コマンドベクトルＶｄ２と移動ベクトルとの内積を示す第２パラメータは図２の場合に比べて増加する。しかしながら、コマンドベクトルＶｄ２と、図３のフレームにおける位置ベクトルＶ１２との内積を示す第１パラメータはマイナスの値を示すので、コマンドベクトルＶｄ２の第３パラメータの値が閾値以上になることを抑制できる。すなわち、復帰動作によって、ユーザーが発行させることを意図していないコマンド（この例ではコマンドベクトルＶｄ２に対応するコマンド）が発行されず、送り動作と、送り動作とは異なる動作（例えば復帰動作）とが区別可能になる。
【００２９】
次に、本実施形態のコマンド発行装置１００による処理動作の一例を説明する。図４は、コマンド発行装置１００による処理動作の一例を示すフローチャートである。図４に示すように、まず取得部１０でフレームが取得されると（ステップＳ１）、検出部１１は、その取得されたフレームから、被写体の特定部分（例えばユーザーの手など）を検出する検出処理を実行する。検出部１１により特定部分が検出された場合（ステップＳ２の結果：ＹＥＳ）、第１設定部１２は、その検出された特定部分の位置を示す特定位置を設定する（ステップＳ３）。また、第２設定部１３は、ステップＳ１で取得されたフレームのうち基準となる位置を示す基準位置を設定する（ステップＳ４）。本実施形態では、ユーザーの肩の位置が基準位置として採用される。第２設定部１３は、フレームからユーザーの顔の位置を検出し、その検出した顔の位置に基づいてユーザーの肩の位置を特定する。そして、その特定したユーザーの肩の位置を基準位置として設定する。
【００３０】
ステップＳ４の後、第１算出部１４は、ステップＳ１で取得されたフレームにおける位置ベクトルを算出する（ステップＳ５）。次に、第２算出部１５は、コマンドベクトルごとに、当該コマンドベクトルと、ステップＳ５で算出された位置ベクトルとの一致度を示す第１パラメータを算出する（ステップＳ６）。
【００３１】
また、ステップＳ４の後、第３算出部１７は、ステップＳ３で特定された特定位置と、第１記憶部１６に記憶された過去の特定位置とから、ステップＳ１で取得されたフレームにおける移動ベクトルを算出する（ステップＳ７）。なお、ステップＳ３で特定された特定位置は第１記憶部１６に記憶される。次に、第４算出部１８は、コマンドベクトルごとに、当該コマンドベクトルと、ステップＳ７で算出された移動ベクトルとの一致度を示す第２パラメータを算出する（ステップＳ８）。
【００３２】
次に、第５算出部１９は、コマンドベクトルごとに、当該コマンドベクトルの第１パラメータおよび第２パラメータに基づいて第３パラメータを算出する（ステップＳ９）。前述したように、本実施形態では、コマンドベクトルごとに、当該コマンドベクトルの第１パラメータおよび第２パラメータを足し合わせて第３パラメータを算出する。次に、発行部２０は、ステップＳ９で算出された第３パラメータが閾値以上であるか否かを判定する（ステップＳ１０）。より具体的には、発行部２０は、コマンドベクトルごとに、当該コマンドベクトルの第３パラメータ（ステップＳ９で算出された第３パラメータ）の値が閾値以上であるか否かを判定する。そして、ステップＳ９で算出された第３パラメータの値が閾値以上の場合（ステップＳ１０の結果：ＹＥＳ）、発行部２０は、そのコマンドベクトルに対応するコマンドを発行する（ステップＳ１１）。
【００３３】
以上に説明したように、本実施形態では、コマンドベクトルごとに、当該コマンドベクトルと位置ベクトルとの一致度を示す第１パラメータと、当該コマンドベクトルと移動ベクトルとの一致度を示す第２パラメータとの和で表される第３パラメータを求め、その求めた第３パラメータに基づいてコマンドを発行する。そのため、コマンドベクトルと移動ベクトルとの一致度が高くても、当該コマンドベクトルと位置ベクトルとの一致度が低ければ、当該コマンドベクトルに対応するコマンドは発行されにくくなる。例えばユーザーが、所定のコマンドを発行させるために、当該所定のコマンドに対応するコマンドベクトルの方向に手を動かした後、手を元の位置に戻すための復帰動作を行った場合は、当該コマンドベクトルの方向と反対の方向に手が移動する。これにより、当該コマンドベクトルとは反対方向のコマンドベクトルと、移動ベクトルとの一致度が高まるものの、その反対方向のコマンドベクトルと位置ベクトルとの一致度が低ければ、その反対方向のコマンドベクトルに対応するコマンドは発行されにくい。したがって、本実施形態によれば、復帰動作や予備動作などの送り動作以外の動作と、送り動作とを区別可能になり、ユーザーの意図を反映したコマンドの発行が可能になる。
【００３４】
（第２実施形態）
次に、第２実施形態について説明する。第２実施形態では、第５算出部１９で算出された第３パラメータを、過去の第３パラメータに基づいて補正する点で上述の第１実施形態と相違する。第１実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００３５】
図５は、第２実施形態のコマンド発行装置２００の構成例を示すブロック図である。図５に示すように、コマンド発行装置２００は、第２記憶部２１と、第１補正部２２とをさらに備える。第２記憶部２１は、第５算出部１９で算出された第３パラメータ（補正前の第３パラメータ）を記憶する。
【００３６】
第１補正部２２は、第５算出部１９で第３パラメータが算出されるたびに、当該算出された第３パラメータを、第２記憶部２１に記憶された過去の第３パラメータ（第３パラメーの履歴）を用いて補正する。例えば第５算出部１９で第３パラメータが算出された場合、第１補正部２２は、その算出された第３パラメータと、過去の所定期間における少なくとも１つの第３パラメータ（第２記憶部２１に記憶された過去の第３パラメータ）との平均を求め、あるいは乗算を行うことにより、その算出された第３パラメータを補正することもできる。これにより、特定部分や基準位置の検出誤差などによって、第３パラメータの値が意図しない値に変化することを抑制できる。
【００３７】
また、例えば第５算出部１９で第３パラメータが算出された場合、第１補正部２２は、その算出された第３パラメータに対して、第２記憶部２１に記憶された過去の第３パラメータに応じたバイアス値を加える。バイアス値を加えることで、算出された第３パラメータを補正することもできる。例えば過去の所定期間において、特定のコマンドベクトルの第３パラメータの値が最も高い値を示していた場合は、当該特定のコマンドベクトルの第３パラメータの値が高くなるようなバイアス値を、第５算出部１９で算出された第３パラメータに加えることもできる。これにより、特定のコマンドベクトルに対応するコマンドが発行され易くなる。すなわち、小さい手振り動作や、基準位置付近の手振り動作でも、特定のコマンドベクトルに対応するコマンドが発行され易くなり、連続したスクロール移動などをより簡単に行うことができる。
【００３８】
また、例えばユーザーが、基準位置付近で手を動かして復帰動作を行ったことにより、特定のコマンドベクトルとは反対方向のコマンドベクトルと位置ベクトルとの内積がプラスの値に変化する。反対方向のコマンドベクトルの第１パラメータの値がプラスの値に変化した場合であっても、反対方向のコマンドベクトルの第３パラメータの算出値に対して、特定のコマンドベクトルの第３パラメータの値が高くなるようなバイアス値が加えられる。つまり、特定のコマンドベクトル以外のコマンドベクトルの各々の第３パラメータの値を補正する（低く抑える）ことで、閾値以上になることを抑制し、復帰動作が反対方向のコマンドとして誤認識されることを抑制できる。
【００３９】
図６は、第２実施形態のコマンド発行装置２００による処理動作例を示すフローチャートである。図６の例では、第１補正部２２は、ステップＳ９で算出された第３パラメータに対して、上述の補正処理を行う（図６のステップＳ１０）点で第１実施形態と相違するが、その他は第１実施形態と同様である。
【００４０】
（第３実施形態）
次に、第３実施形態について説明する。第３実施形態では、第５算出部１９で算出された第３パラメータを、過去に発行されたコマンドの履歴に基づいて補正する点で上述の第１実施形態と相違する。第１実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００４１】
図７は、第３実施形態のコマンド発行装置３００の構成例を示すブロック図である。図７に示すように、コマンド発行装置３００は、第３記憶部２３と、第２補正部２４とをさらに備える。第３記憶部２３は、発行部２０で発行されたコマンドを記憶する。
【００４２】
第２補正部２４は、第５算出部１９で第３パラメータが算出されるたびに、当該算出された第３パラメータを、第３記憶部２３に記憶された過去のコマンド（コマンドの履歴）を用いて補正する。より具体的には、第５算出部１９で第３パラメータが算出された場合、第２補正部２４は、過去に発行されたコマンドに対応するコマンドベクトルの第３パラメータの値が大きくなるように、その算出された第３パラメータを補正する。例えば第２補正部２４は、第５算出部１９により算出された第３パラメータに対して、直前に発行されたコマンドに対応するコマンドベクトルの第３パラメータの値が大きくなるようなバイアス値を加えることで、その算出された第３パラメータを補正することもできる。また、例えば第２補正部２４は、第５算出部１９により算出された第３パラメータに対して、直前に発行されたコマンドに対応するコマンドベクトル以外のコマンドベクトルの各々の第３パラメータの値が小さくなるようなバイアス値を加えることで、その算出された第３パラメータを補正することもできる。
【００４３】
以上より、例えば特定のコマンドを繰り返し発行させる場合において、最初に特定のコマンドが発行されれば、それ以降は特定のコマンドは発行され易くなる。すなわち、小さい手振り動作や、基準位置付近の手振り動作でも、特定のコマンドが発行され易くなり、連続したスクロール移動などをより簡単に行うことができる。
【００４４】
また、例えばユーザーが、基準位置付近で手を動かして復帰動作を行ったことにより、反対方向のコマンドベクトルと位置ベクトルとの内積がプラスの値に変化した場合であっても、反対方向のコマンドベクトルの第３パラメータの算出値に対して、特定のコマンド（直前に発行されたコマンドに相当）に対応するコマンドベクトルの第３パラメータの値が大きくなるようなバイアス値が加えられる。つまり、特定のコマンドに対応するコマンドベクトル以外のコマンドベクトルの各々の第３パラメータの値を補正する（低く抑える）ことで、閾値以上になることを抑制し、復帰動作が反対方向のコマンドとして誤認識されることを抑制できる。
【００４５】
また、第２補正部２４は、第５算出部１９で算出された第３パラメータに対して、過去の所定期間における各コマンドの発行回数に応じたバイアス値を加えることで、その算出された第３パラメータを補正することもできる。例えば第２補正部２４は、第５算出部１９で算出された第３パラメータに対して、過去の所定期間において発行回数が最も多いコマンドに対応するコマンドベクトルの第３パラメータの値が大きくなるようなバイアス値を加えることで、その算出された第３パラメータを補正することもできる。また、例えば第２補正部２４は、第５算出部１９により算出された第３パラメータに対して、過去の所定期間において発行回数が最も多いコマンドに対応するコマンドベクトル以外のコマンドベクトルの各々の第３パラメータの値が小さくなるようなバイアス値を加えることで、その算出された第３パラメータを補正することもできる。これにより、発行回数が多いコマンドは発行され易くなる一方、それ以外のコマンドは発行されにくくなる。したがって、例えば特定のコマンドを繰り返し発行させる場合においては、その特定のコマンドが発行されやすくなる一方（発行回数が多いため）、ユーザーの復帰動作によって、特定のコマンドのコマンドベクトルとは反対方向のコマンドベクトルに対応する別のコマンドは発行されにくい。
【００４６】
第３実施形態のコマンド発行装置３００による処理動作例を示すフローチャートは、図６と同様である。図６のステップＳ１０において、第２補正部２４は、ステップＳ９で算出された第３パラメータに対して上述の補正処理を行う。
【００４７】
（第４実施形態）
次に、第４実施形態について説明する。第４実施形態では、第５算出部１９で算出された第３パラメータに応じたコマンドの入力状態を表示する点で上述の第１実施形態と相違する。第１実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００４８】
図８は、第４実施形態のコマンド発行装置４００の構成例を示すブロック図である。図８に示すように、コマンド発行装置４００は、表示制御部２５をさらに備える。表示制御部２５は、第５算出部１９で第３パラメータが算出されるたびに、当該算出された第３パラメータに対応するコマンドの入力状態を表示するように液晶ディスプレイなどの表示装置（不図示）を制御する。コマンドの入力状態として、第３パラメータの値を表示してもよい。第３パラメータとコマンドの入力状態とのスケールの違いを考慮し、第３パラメータとコマンドの入力状態との関係を示す一次関数を用いて、コマンドの入力状態を示す値を求めることもできる。また、第３パラメータとコマンドの入力状態との関係を示す二次関数を用いて、第３パラメータの値が低いときにコマンドの入力状態を示す値が増加することを抑制することで、第３パラメータの値が意図しない値に変化することを抑制できる。さらに、表示装置に表示されるアニメーション動作を滑らかにするために、第３パラメータとコマンドの入力状態との関係を、指数関数やシグモイド関数やカーネル関数（例えばガウネシアンカーネル等）などで表すことで、コマンド入力状態を示す値を求めてもよい。また、上記関数を組み合わせてコマンドの入力状態を示す値を求めることもできる。
【００４９】
コマンドの入力状態の表示方法は任意であり、例えば図９に示すように、第３パラメータの値に応じてゲージが増減するものであってもよい。図９の例では２種類のゲージが表示され、一例として、一方のゲージＧ１は、図２のコマンドベクトルＶｄ１のコマンドに対応し、他方のゲージＧ２は、図２のコマンドベクトルＶｄ２に対応する。図９の例では、コマンドベクトルＶｄ１の第３パラメータの値が閾値に近いほど、着色表示されるゲージＧ１の数は増加し、閾値よりも低いほど、着色表示されるゲージＧ１の数は減少する。例えばコマンドベクトルＶｄ１の第３パラメータの値が閾値以上の場合は、全てのゲージＧ１が着色表示されてもよい。同様に、コマンドベクトルＶｄ２の第３パラメータの値が閾値に近いほど、着色表示されるゲージＧ２の数は増加し、閾値よりも低いほど、着色表示されるゲージＧ２の数は減少する。これにより、ユーザーは、各コマンドの入力状態を容易に把握できる。
【００５０】
また、例えば図１０に示すように、所定のコマンド（コマンドベクトル）に対応する第３パラメータの値が閾値以上の場合は、当該所定のコマンドに対応するアイコンＨが表示され、閾値を下回る場合はアイコンＨが表示されないといった表示方法であってもよい。また、例えば図１１に示すように、コマンドの入力状態に応じて、アイコンが特定の方向に移動するといった表示方法であってもよい。一例として、図２のコマンドベクトルＶｄ２のコマンドが、図１１に示すＸ１の方向にアイコンを移動させる送りコマンドである場合、コマンドベクトルＶｄ２の第３パラメータの値が閾値以上であれば、アイコンはＸ１の方向に移動し、コマンドベクトルＶｄ２の第３パラメータの値が閾値未満であれば、アイコンはＸ１の方向に移動できずに元の位置に戻るように表示されてもよい。また、例えば図１２に示すように、コマンドの入力状態に応じて、リング状のアイコンが特定の方向に回転するといった表示方法であってもよい。
【００５１】
さらに、例えば図１３に示すように、コマンドの入力状態に応じて、画面上に表示されるカーソルＫが特定の方向に移動するといった表示方法であってもよい。図１３の例では、表示装置の画面上には、図２のコマンドベクトルＶｄ１に対応するコマンドのアイコンＭ１、および、図２のコマンドベクトルＶｄ２に対応するコマンドのアイコンＭ２が表示され、これらのアイコンにカーソルＫが接触する（あるいは重なる）と、カーソルと接触したアイコンのコマンドが発行される。図１３の例では、例えばコマンドベクトルＶｄ２の第３パラメータの値が、コマンドベクトルＶｄ１の第３パラメータの値よりも大きい場合は、カーソルＫはアイコンＭ２の方向に移動する。そして、コマンドベクトルＶｄ２の第３パラメータの値が閾値以上の場合は、カーソルＫはアイコンＭ２に接触してコマンドベクトルＶｄ２に対応するコマンドが発行される。同様に、コマンドベクトルＶｄ１の第３パラメータの値が、コマンドベクトルＶｄ２の第３パラメータの値よりも大きい場合は、カーソルＫはアイコンＭ１の方向に移動する。
【００５２】
図１４は、第４実施形態のコマンド発行装置４００による処理動作例を示すフローチャートである。図１４の例では、表示制御部２５は、ステップＳ９で算出された第３パラメータに対して、上述の表示制御を行う（図６のステップＳ１０）点で第１実施形態と相違するが、その他は第１実施形態と同様である。
【００５３】
なお、以上に説明した第５実施形態は、第２実施形態と組み合わせることもできるし、第３実施形態と組み合わせることもできる。すなわち、第２実施形態および第３実施形態の各々のコマンド発行装置が、前述の表示制御部２５を備えることもできる。
【００５４】
（変形例）
以上、本発明の実施形態を説明したが、上述の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下に変形例を記載する。なお、以下に記載する変形例のうちの２以上を任意に組み合わせることもできる。
【００５５】
（１）変形例１
上述のコマンドの種類は任意である。例えばカーソルを特定の方向に移動させる送りコマンド、あるいは、画面を特定の方向にスクロールさせる送りコマンドであってもよい。また、特定の選択項目を決定するコマンドであってもよいし、特定の選択項目をキャンセルするコマンドであってもよい。また、例えば音楽再生や映像再生など特定の機能を実行させるコマンドであってもよい。さらに、例えばマルチメディアを管理するアプリケーションやテレビやテレビ番組表などを起動させるコマンドであってもよい。
【００５６】
（２）変形例２
上述の第３実施形態では、第２補正部２４は、第５算出部１９で算出された第３パラメータに対して、過去に発行されたコマンド（直前に発行されたコマンドや発行回数の最も多いコマンド等）に対応するコマンドベクトルの第３パラメータの値が大きくなるようなバイアス値を加えることで、その算出された第３パラメータの値を補正しているが、例えば第２補正部２４は、過去に発行されたコマンドに対応するコマンドベクトルの第３パラメータの値が大きくなるように、基準位置を変更することもできる。例えば図２のコマンドベクトルＶｄ１の第３パラメータの値が大きくなるような補正を行う場合、第２補正部２４は、コマンドベクトルＶｄ１の方向とは反対の方向に基準位置をずらすこともできる。これにより、基準位置に対する特定位置の位置ベクトルが補正前に比べて増加するので、コマンドベクトルＶｄ１と位置ベクトルとの一致度を示す第１パラメータの値が増加し、コマンドベクトルＶｄ１の第３パラメータの値も増加する。一方、コマンドベクトルＶｄ１とは反対方向のコマンドベクトルＶｄ２に関しては、当該コマンドベクトルＶｄ２と位置ベクトルとの一致度を示す第１パラメータの値は補正前に比べて減少するので、当該コマンドベクトルＶｄ２の第３パラメータの値は小さくなる。
【００５７】
（３）変形例３
図１５に示すように、第１実施形態のコマンド発行装置１００は、第５算出部１９により算出された第３パラメータが、撮像距離に応じて異なる値を示さないように、その算出された第３パラメータの値を補正する第３補正部２６をさらに備えることができる。一例として、第３補正部２６は、第５算出部１９で第３パラメータが算出されるたびに、その算出された第３パラメータの値を、そのときのフレームに表示された被写体のうちの少なくとも一部の領域の面積値に応じた値に設定される補正値で除算する。これにより、第５算出部１９により算出された第３パラメータの値が、撮像距離に応じて異なる値を示さないように補正される。
【００５８】
上述の補正値は任意に設定可能である。例えば検出部１１により検出された特定部分の面積値を補正値とすることもできる。また、例えば第２設定部１３で設定された基準位置を含む所定の領域の面積値を補正値とすることもできる。フレームにおけるユーザーの肩の位置が基準位置として設定される場合は、肩幅を含む領域の面積値を補正値とすることもできる。また、フレームにおけるユーザーの顔の位置（例えば顔の領域の中心座標）が基準位置として設定される場合は、ユーザーの顔の領域の面積値を補正値とすることもできる。
【００５９】
また、例えば補正値は、検出部１１により検出された特定部分の面積値と、当該特定部分の形状とに応じて可変に設定されてもよい。より具体的には、検出部１１により検出された特定部分の形状に応じて、その特定部分の面積値を補正し、その補正された面積値を補正値とすることもできる。一例として、特定部分がユーザーの手であり、検出された手の形状が、手を開いた状態（掌を広げた状態）の場合は、特定部分の面積値が実際の値よりも大きくなるように補正（補正値が大きくなるように設定）され、検出された手の形状が、拳の状態（手を握った状態）の場合は、特定部分の面積値が実際の値よりも小さくなるように補正（補正値が小さくなるように設定）されてもよい。これにより、ユーザーが同じ動作をする場合において、算出される第３パラメータの値がそのときの手の形状に応じて異なる値を示すことを抑制できる。同様に、補正値は、補正値は、第２設定部１３で設定された基準位置を含む所定の領域の面積値と、当該領域の形状とに応じて可変に設定されてもよい。
【００６０】
（４）変形例４
例えば、コマンドベクトルと移動ベクトルとの一致度を考慮せずに、コマンドベクトルと位置ベクトルとの一致度のみに基づいて、コマンドを発行する構成であってもよい。図１６は、この場合のコマンド発行装置５００の構成例を示すブロック図である。図１６に示すように、このコマンド発行装置５００は、第１記憶部１６、第３算出部１７、第４算出部１８および第５算出部１９を備えていない点で第１実施形態と相違する。この場合、発行部２０は、第２算出部１５で算出される第１パラメータに基づいてコマンドを発行する。より具体的には、発行部２０は、各コマンドベクトルについて、当該コマンドベクトルと位置ベクトルとの一致度を示す第１パラメータ（この例ではコマンドベクトルと位置ベクトルとの内積）の値が閾値以上である場合は、当該コマンドベクトルに対応するコマンドを発行する。なお、閾値は任意に設定可能である。図１６の構成でも、上述の各実施形態と同様に、コマンドベクトルと位置ベクトルとの一致度が低ければ、当該コマンドベクトルに対応するコマンドは発行されにくくなるので、例えばユーザーが、所定のコマンドを発行させようとして当該所定のコマンドに対応するコマンドベクトルの方向に手を動かした後、手を元の位置に戻すための復帰動作を行っても、反対方向のコマンドベクトルと位置ベクトルとの一致度が低い場合は、その反対方向のコマンドベクトルに対応するコマンドは発行されにくい。したがって、復帰動作や予備動作などによって、ユーザーが発行させることを意図していないコマンドが発行されることを抑制できる。
【００６１】
（ハードウェア構成およびプログラム）
上述の各実施形態および各変形例のコマンド発行装置は、ＣＰＵ（Central  Processing  Unit）などの制御装置と、ＲＯＭやＲＡＭなどの記憶装置と、ＨＤＤやＳＳＤなどの外部記憶装置と、ディスプレイなどの表示装置と、マウスやキーボードなどの入力装置と、通信Ｉ／Ｆなどの通信装置とを備えており、通常のコンピュータを利用したハードウェア構成となっている。上述した取得部１０、検出部１１、第１設定部１２、第２設定部１３、第１算出部１４、第２算出部１５、第３算出部１７、第４算出部１８、第５算出部１９、発行部２０、第１補正部２２、第２補正部２４、表示制御部２５および第３補正部２６の各々の機能は、コマンド発行装置のＣＰＵがＲＯＭ等に格納されたプログラムをＲＡＭ上で展開して実行することにより実現される。また、これに限らず、これらの機能のうちの少なくとも一部を個別の回路（ハードウェア）で実現することもできる。また、上述した第１記憶部１６、第２記憶部２１、第３記憶部２３は、ハードウェアで実現される要素であり、記憶装置または外部記憶装置に含まれる。
【００６２】
また、上述の各実施形態および各変形例のコマンド発行装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上述の各実施形態および各変形例のコマンド発行装置で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上述の各実施形態および各変形例のコマンド発行装置で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。また、本実施形態におけるコマンド発行装置は、ＣＰＵなどの制御装置と記憶装置を備え、撮像装置から取得される画像を処理する形態であれば、ＰＣ(Personal  Computer)に限らず、ＴＶ等にも適用可能である。
【符号の説明】
【００６３】
１０  取得部
１１  検出部
１２  第１設定部
１３  第２設定部
１４  第１算出部
１５  第２算出部
１６  第１記憶部
１７  第３算出部
１８  第４算出部
１９  第５算出部
２０  発行部
２１  第２記憶部
２２  第１補正部
２３  第３記憶部
２４  第２補正部
２５  表示制御部
２６  第３補正部
１００  コマンド発行装置
２００  コマンド発行装置
３００  コマンド発行装置
４００  コマンド発行装置
５００  コマンド発行装置
【図１】
0005649535.tif 000002
【図２】
0005649535.tif 000003
【図３】
0005649535.tif 000004
【図４】
0005649535.tif 000005
【図５】
0005649535.tif 000006
【図６】
0005649535.tif 000007
【図７】
0005649535.tif 000008
【図８】
0005649535.tif 000009
【図９】
0005649535.tif 000010
【図１０】
0005649535.tif 000011
【図１１】
0005649535.tif 000012
【図１２】
0005649535.tif 000013
【図１３】
0005649535.tif 000014
【図１４】
0005649535.tif 000015
【図１５】
0005649535.tif 000016
【図１６】
0005649535.tif 000017