(57)【要約】【課題】ジェスチャーの認識精度を向上する。【解決手段】撮像した対象の動作に基づくジェスチャーを認識するジェスチャー認識装置において、ジェスチャーの認識条件を設定する認識条件設定部と、撮像された画像を複数の領域に分割した分割領域毎に、分割領域内の各画素の輝度の変化量に基づいて動き量を検出する動き量検出部と、動き量検出部により検出された動き量が所定の閾値以上である分割領域を動き領域として検出する動き領域検出部と、動き領域検出部により検出された動き領域からジェスチャーの認識に採用すべき分割領域である特定領域を検出する特定領域検出部と、少なくとも、特定領域検出部により検出された特定領域と、認識条件設定部により設定されたジェスチャーの認識条件とに基づいて、ジェスチャーを認識するジェスチャー認識部と、を備える。【選択図】図２
2012150837.tif 000002
【特許請求の範囲】
【請求項１】
撮像した対象の動作に基づくジェスチャーを認識するジェスチャー認識装置において、
ジェスチャーの認識条件を設定する認識条件設定手段と、
撮像された画像を複数の領域に分割した分割領域毎に、分割領域内の各画素の輝度の変化量に基づいて動き量を検出する動き量検出手段と、
前記動き量検出手段により検出された動き量が所定の閾値以上である分割領域を動き領域として検出する動き領域検出手段と、
前記動き領域検出手段により検出された動き領域が、ジェスチャーの認識に採用すべき特定領域であるか否かを判別する特定領域判別手段と、
少なくとも、前記特定領域判別手段により特定領域であると判別された動き領域と、前記認識条件設定手段により設定されたジェスチャーの認識条件とに基づいて、ジェスチャーを認識するジェスチャー認識手段と、
を備える、ことを特徴とするジェスチャー認識装置。
【請求項２】
前記認識条件設定手段は、前記所定の閾値を設定する閾値設定手段を備え、
前記動き領域検出手段は、前記動き量検出手段により検出された動き量が前記閾値設定手段により設定された閾値以上である分割領域を動き領域として検出する、
ことを特徴とする請求項１に記載のジェスチャー認識装置。
【請求項３】
前記閾値設定手段は、順次撮像された画像の各画素の輝度の変化量に基づいて閾値を設定する、
ことを特徴とする請求項２に記載のジェスチャー認識装置。
【請求項４】
前記動き量検出手段は、分割領域内の各画素の輝度の変化量を自乗した値の総和を動き量として検出する、
ことを特徴とする請求項１に記載のジェスチャー認識装置。
【請求項５】
前記特定領域判別手段は、前記動き領域検出手段により所定時間以上継続して検出された動き領域を前記特定領域であると判別しない、
ことを特徴とする請求項１に記載のジェスチャー認識装置。
【請求項６】
前記特定領域判別手段は、前記動き領域検出手段により複数の動き領域が検出された場合に、前記動き領域検出手段により検出された動き領域のうち、前記複数の動き領域を含む所定の領域に含まれる動き領域を前記特定領域であると判別する、
ことを特徴とする請求項１に記載のジェスチャー認識装置。
【請求項７】
前記特定領域判別手段により特定領域であると判別された動き領域が複数存在する場合に、該特定領域であると判別された複数の動き領域の画像内の位置から、画像内におけるジェスチャーの動きの中心の位置を検出する中心位置検出手段、をさらに備え、
前記ジェスチャー認識手段は、前記中心位置検出手段により検出された中心の位置に基づいてジェスチャーを認識する、
ことを特徴とする請求項１に記載のジェスチャー認識装置。
【請求項８】
撮像された複数の画像からジェスチャーの動きの方向を判別する動き方向判別手段と、
前記特定領域判別手段により特定領域であると判別された動き領域が複数存在する場合に、該特定領域であると判別された複数の動き領域のうち、前記中心位置検出手段により検出された動きの中心位置を基準として、前記動き方向判別手段により判別されたジェスチャーの動きの方向の最も離れた位置に存在する動き領域を検出する先端位置検出手段と、をさらに備え、
前記ジェスチャー認識手段は、前記先端位置検出手段により検出された最も離れた位置に存在する動き領域の画像内の位置に基づいてジェスチャーを認識する、
ことを特徴とする請求項７に記載のジェスチャー認識装置。
【請求項９】
順次撮像された画像の撮像時刻を取得する撮像時刻取得手段、をさらに備え、
前記ジェスチャー認識手段は、前記撮像時刻取得手段により取得された画像の撮像時刻に基づいて、前記特定領域判別手段により継続して前記動き領域が特定領域であると判別された時間を求め、該求められた時間に応じたジェスチャーとして認識する、
ことを特徴とする請求項１に記載のジェスチャー認識装置。
【請求項１０】
撮像した対象の動作に基づくジェスチャーを認識するジェスチャー認識方法において、
ジェスチャーの認識条件を設定する認識条件設定ステップと、
撮像された画像を複数の領域に分割した分割領域毎に、分割領域内の各画素の輝度の変化量に基づいて動き量を検出する動き量検出ステップと、
前記動き量検出ステップで検出された動き量が所定の閾値以上である分割領域を動き領域として検出する動き領域検出ステップと、
前記動き領域検出ステップで検出された動き領域が、ジェスチャーの認識に採用すべき特定領域であるか否かを判別する特定領域判別ステップと、
少なくとも、前記特定領域判別ステップで特定領域であると判別された動き領域と、前記認識条件設定ステップで設定されたジェスチャーの認識条件とに基づいて、ジェスチャーを認識するジェスチャー認識ステップと、
を備える、ことを特徴とするジェスチャー認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジェスチャー認識装置及びジェスチャー認識方法に関する。
【背景技術】
【０００２】
ジェスチャーの意味内容をコンピュータに認識させるジェスチャー認識装置が知られている。例えば、特許文献１には、ジェスチャーを行う者を撮像することによって得られたフレーム画像を複数の画像ブロックに分割し、画像ブロック毎にフレーム間の変化を示す動き量を算出し、ブロック毎の動き量に基づいて、ジェスチャーを判別する装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２３５７７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載された遠隔操作装置では、例えば、撮影条件によるノイズの影響が考慮されておらず、また、分割されたブロック全体からジェスチャーを認識していないために、ジェスチャーの認識精度に問題があった。
【０００５】
より詳細には、上述の遠隔操作装置では、ノイズの影響により動き量が増大した場合であっても、動き量が所定の閾値を超えてさえいれば、そのブロックに動きがあると判別してしまう。このため、ジェスチャーがない場合であっても、誤ってジェスチャーがあると認識してしまう可能性がある。例えば、撮影範囲に、テレビジョン等の常に動きのあるものを含む場合、ジェスチャーによる動きと認識すべきでないテレビジョン等の画面上の動きを、ジェスチャーによる動きと認識する結果、ジェスチャーがあると認識する可能性がある。
【０００６】
本発明は、上記問題に鑑みてなされたものであり、認識精度が高いジェスチャー認識装置及びジェスチャー認識方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の第１の観点に係るジェスチャー認識装置は、
撮像した対象の動作に基づくジェスチャーを認識するジェスチャー認識装置において、
ジェスチャーの認識条件を設定する認識条件設定手段と、
撮像された画像を複数の領域に分割した分割領域毎に、分割領域内の各画素の輝度の変化量に基づいて動き量を検出する動き量検出手段と、
前記動き量検出手段により検出された動き量が所定の閾値以上である分割領域を動き領域として検出する動き領域検出手段と、
前記動き領域検出手段により検出された動き領域が、ジェスチャーの認識に採用すべき特定領域であるか否かを判別する特定領域判別手段と、
少なくとも、前記特定領域判別手段により特定領域であると判別された動き領域と、前記認識条件設定手段により設定されたジェスチャーの認識条件とに基づいて、ジェスチャーを認識するジェスチャー認識手段と、
を備える、ことを特徴とする。
【０００８】
前記認識条件設定手段は、前記所定の閾値を設定する閾値設定手段を備え、
前記動き領域検出手段は、前記動き量検出手段により検出された動き量が前記閾値設定手段により設定された閾値以上である分割領域を動き領域として検出してもよい。
【０００９】
前記閾値設定手段は、順次撮像された画像の各画素の輝度の変化量に基づいて閾値を設定してもよい。
【００１０】
前記動き量検出手段は、分割領域内の各画素の輝度の変化量を自乗した値の総和を動き量として検出してもよい。
【００１１】
前記特定領域判別手段は、前記動き領域検出手段により所定時間以上継続して検出された動き領域を前記特定領域であると判別しなくともよい。
【００１２】
前記特定領域判別手段は、前記動き領域検出手段により複数の動き領域が検出された場合に、前記動き領域検出手段により検出された動き領域のうち、前記複数の動き領域を含む所定の領域に含まれる動き領域を前記特定領域であると判別してもよい。
【００１３】
前記特定領域判別手段により特定領域であると判別された動き領域が複数存在する場合に、該特定領域であると判別された複数の動き領域の画像内の位置から、画像内におけるジェスチャーの動きの中心の位置を検出する中心位置検出手段、をさらに備え、
前記ジェスチャー認識手段は、前記中心位置検出手段により検出された中心の位置に基づいてジェスチャーを認識してもよい。
【００１４】
撮像された複数の画像からジェスチャーの動きの方向を判別する動き方向判別手段と、
前記特定領域判別手段により特定領域であると判別された動き領域が複数存在する場合に、該特定領域であると判別された複数の動き領域のうち、前記中心位置検出手段により検出された動きの中心位置を基準として、前記動き方向判別手段により判別されたジェスチャーの動きの方向の最も離れた位置に存在する動き領域を検出する先端位置検出手段と、をさらに備え、
前記ジェスチャー認識手段は、前記先端位置検出手段により検出された最も離れた位置に存在する動き領域の画像内の位置に基づいてジェスチャーを認識してもよい。
【００１５】
順次撮像された画像の撮像時刻を取得する撮像時刻取得手段、をさらに備え、
前記ジェスチャー認識手段は、前記撮像時刻取得手段により取得された画像の撮像時刻に基づいて、前記特定領域判別手段により継続して前記動き領域が特定領域であると判別された時間を求め、該求められた時間に応じたジェスチャーとして認識してもよい。
【００１６】
上記目的を達成するために、本発明の第２の観点に係るジェスチャー認識方法は、
撮像した対象の動作に基づくジェスチャーを認識するジェスチャー認識方法において、
ジェスチャーの認識条件を設定する認識条件設定ステップと、
撮像された画像を複数の領域に分割した分割領域毎に、分割領域内の各画素の輝度の変化量に基づいて動き量を検出する動き量検出ステップと、
前記動き量検出ステップで検出された動き量が所定の閾値以上である分割領域を動き領域として検出する動き領域検出ステップと、
前記動き領域検出ステップで検出された動き領域が、ジェスチャーの認識に採用すべき特定領域であるか否かを判別する特定領域判別ステップと、
少なくとも、前記特定領域判別ステップで特定領域であると判別された動き領域と、前記認識条件設定ステップで設定されたジェスチャーの認識条件とに基づいて、ジェスチャーを認識するジェスチャー認識ステップと、
を備える、ことを特徴とする。
【発明の効果】
【００１７】
本発明にかかるジェスチャー認識装置及びジェスチャー認識方法によれば、ジェスチャーの認識精度を向上することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態に係るジェスチャー認識装置が適用されるシステムの構成図である。
【図２】本発明の実施の形態に係るジェスチャー認識装置の機能ブロック図である。
【図３】図１に示すジェスチャー認識装置のジェスチャー認識処理の一例を示すフローチャートである。
【図４】図３のフローチャートに示す閾値設定処理の一例を示すフローチャートである。
【図５】図３のフローチャートに示す連続ノイズ除去処理の一例を示すフローチャートである。
【図６】図３のフローチャートに示す微少ノイズ除去処理の一例を示すフローチャートである。
【図７】微少ノイズの除去処理を説明するための図である。
【図８】図３のフローチャートに示すパターン検出処理の一例を示すフローチャートである。
【図９Ａ】動きブロックの中心位置の検出方法を説明するための図である。
【図９Ｂ】動きブロックの先端位置の検出方法を説明するための図である。
【図１０】ジェスチャーのパターンの一例を示す図である。
【図１１Ａ】パターン１とのマッチング処理を説明するための図である。
【図１１Ｂ】パターン１とのマッチング処理を説明するための図である。
【図１１Ｃ】パターン１とのマッチング処理を説明するための図である。
【図１１Ｄ】パターン１のコマンド処理を説明するための図である。
【図１１Ｅ】パターン１のコマンド処理を説明するための図である。
【図１１Ｆ】パターン１のコマンド処理を説明するための図である。
【図１２Ａ】パターン５とのマッチング処理を説明するための図である。
【図１２Ｂ】パターン５とのマッチング処理を説明するための図である。
【図１２Ｃ】パターン５とのマッチング処理を説明するための図である。
【図１２Ｄ】パターン５のコマンド処理を説明するための図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本発明の実施の形態に係るジェスチャー認識装置の構成と動作について説明する。
【００２０】
まず、図１を用いて、本発明の実施の形態に係るジェスチャー認識装置１００の物理的な構成を説明する。
【００２１】
ジェスチャー認識装置１００は、図１に示すように、ＣＰＵ２０がＲＯＭ３０に格納されたプログラムを実行することにより実現されるもので、カメラ２００から供給されるスクリーン４００と被撮像者５００とを撮像範囲に含む画像データに基づいてジェスチャーを認識する。また、ジェスチャー認識装置１００は、認識したジェスチャーに対応するコマンドに応じた画像データをプロジェクタ３００に供給することにより、画像データに対応した画像をスクリーン４００に表示させる。
【００２２】
ジェスチャー認識装置１００は、バス１０と、ＣＰＵ（Central  Processing  Unit）２０と、ＲＯＭ（Read  Only  Memory）３０と、ＲＡＭ（Random  Access  Memory）４０と、Ｉ／Ｏ（Input  Output）部５０と、ハードディスク６０と、入力バッファ７０と、出力バッファ８０と、タイマカウンタ９０とを備える。
【００２３】
バス１０は、ジェスチャー認識装置１００内の各デバイスを相互に接続する。各デバイスは、バス１０を介して相互にデータを送受信する。
【００２４】
ＣＰＵ２０は、ＲＯＭ３０に格納されているプログラムを実行することにより、カメラ２００から供給された画像データを解析してジェスチャーを認識し、認識したジェスチャーに対応するコマンドを実行する。また、ＣＰＵ２０は、入力バッファ７０に供給された画像データや、Ｉ／Ｏ部５０を介して図示しない外部機器から供給されたデータに基づいて、ジェスチャーの認識条件を設定する。
【００２５】
ＲＯＭ３０は、ＣＰＵ２０の動作を制御するためのプログラムを記憶する。
【００２６】
ＲＡＭ４０は、ＣＰＵ２０のワークエリアとして機能する。また、ＲＡＭ４０は、後述する閾値設定処理（ステップＳ５０）や連続ノイズ除去処理（ステップＳ６０）などで使用する各種変数を記憶する。さらに、ＲＡＭ４０は、入力バッファ７０から供給された１フレーム前の画像データと、現在のフレームの画像データとを記憶する。また、ＲＡＭ４０は、後述する画像データの取得時刻を記憶する。
【００２７】
Ｉ／Ｏ部５０は、図示しない外部機器と接続され、外部機器とのデータの入出力を行う。具体的には、Ｉ／Ｏ部５０は、プロジェクタ３００に表示させる画像データやジェスチャーの認識処理で使用するジェスチャーの認識条件を示すデータ等を外部機器から入力する。また、Ｉ／Ｏ部５０は、認識したジェスチャーに対応するコマンドに応じたデータを外部機器に出力してもよい。
【００２８】
ハードディスク６０は、Ｉ／Ｏ部５０を介して外部機器から供給された画像データやジェスチャーの認識条件を示すデータ等を記憶する。具体的には、ハードディスク６０は、プロジェクタ３００に表示させる複数ページ分の画像データや、ブロックのサイズや、後述するジェスチャーのパターンを示すパターンデータなどのジェスチャーの認識条件を示すデータ等を記憶する。
【００２９】
ここで、ブロックは、１フレーム分の画像を構成する縦方向及び横方向に二次元に配置された画素を、縦方向及び横方向に所定の画素数毎に分割したときの画素の集まりである。例えば、縦方向に８画素毎に分割し、横方向に８画素毎に分割した場合、１ブロックは８×８＝６４画素から構成される。ジェスチャーを認識するにあたり、ブロック単位で画像の動きをとらえることにより、計算量を減らし、使用するＲＡＭの容量を小さくすることが可能となる。
【００３０】
入力バッファ７０は、カメラ２００と接続され、カメラ２００から供給される画像データを記憶する。入力バッファ７０は、カメラ２００から１フレーム分の画像データが供給されたことを検出すると、バス１０を介してＣＰＵ２０に割り込み信号を送信する。
【００３１】
出力バッファ８０は、プロジェクタ３００と接続され、記憶している画像データをプロジェクタ３００に供給する。出力バッファ８０が記憶する画像データは、ＣＰＵ２０の制御のもと、ハードディスク６０から供給される。
【００３２】
タイマカウンタ９０は、例えば水晶発振子を有する回路から構成される。タイマカウンタ９０は、検出後タイマ、標準タイマ及び停止後タイマの値を格納するレジスタを内部に備え、各タイマの値をカウントアップする。検出後タイマは、各ブロックが動きブロックとして検出された時刻からの経過時間（すなわち、各ブロックの閾値以上の動き量が連続して検出される時間）を示すブロック毎のタイマである。標準タイマは、ジェスチャー認識処理を開始した時刻からの経過時間を示すタイマである。停止後タイマは、動きブロックが１つも検出されなくなった時刻からの経過時間を示すタイマである。
【００３３】
カメラ２００は、スクリーン４００と被撮像者５００の手とを含む領域を撮像し、撮像した画像データを入力バッファ７０に供給する。
【００３４】
プロジェクタ３００は、出力バッファ８０から供給された画像データに対応した画像をスクリーン４００に投影する。
【００３５】
スクリーン４００には、プロジェクタ３００から供給された画像データに応じた画像が投影される。
【００３６】
被撮像者５００は、スクリーン４００の端に立ち、スクリーン４００に投影された画像に対して操作するようにジェスチャーを行う。
【００３７】
次に、上述の構成により実現される機能的構成を説明する。
【００３８】
図２は、本発明の実施の形態に係るジェスチャー認識装置１００の機能ブロック図である。
【００３９】
ジェスチャー認識装置１００は、画像入力部１１０、撮像時刻取得部１２０、認識条件設定部１３０、動き量検出部１４０、動きブロック検出部１５０、特定ブロック検出部１６０、ジェスチャー認識部１７０、コマンド処理部１８０、及び、画像出力部１８０の機能ブロックから構成される。
【００４０】
画像入力部１１０は、撮像部２１０が供給する画像データを入力する。
【００４１】
時刻取得部１２０は、時刻を取得する。時刻取得部１２０は、取得した時刻に対応するデータをノイズ除去部１６１と、ジェスチャー認識部１７０とに供給する。また、時刻取得部１２０は、撮像時刻取得部１２１を備える。撮像時刻取得部１２１は、画像入力部１１０に画像データが供給された時刻である撮像時刻を取得し、撮像時刻に対応するデータをパターンマッチング部１７４に供給する。
【００４２】
認識条件設定部１３０は、ジェスチャーの認識条件を設定する。認識条件設定部１３０は、閾値設定部１３１を備える。閾値設定部１３１は、画像入力部１１０から供給された画像データに基づいて、動きブロックを検出するための閾値を設定する。
【００４３】
動き量検出部１４０は、画像入力部１１０から供給された画像データに基づいて、ブロック毎に動き量を検出する。
【００４４】
動きブロック検出部１５０は、閾値設定部１３１により設定された閾値と、動き量検出部１４０により検出したブロック毎の動き量とに基づいて、動きブロックを検出する。
【００４５】
特定ブロック検出部１６０は、動きブロック検出部１５０により検出された動きブロックから後述する特定ブロックを検出する。特定ブロック検出部１６０は、連続ノイズ除去部１６１と、微少ノイズ除去部１６２と、を備える。
【００４６】
連続ノイズ除去部１６１は、動きブロック検出部１５０により検出された動きブロックのうち、継続して動きブロックとして検出された動きブロックを、特定ブロックの候補から除外する。連続して動きブロックとして検出されたブロックは、ノイズによって誤って動きブロックとして検出されたブロックに過ぎず、ジェスチャーに起因するものではないと考えられるためである。
【００４７】
微少ノイズ除去部１６２は、動きブロック検出部１５０により検出された動きブロックのうち、複数の動きブロックを含む所定の範囲外の動きブロックを、特定ブロックの候補から除外する。ジェスチャーに起因して動きブロックと検出されるブロックは、所定の範囲内において高い割合で検出されるものであり、所定の範囲外で検出された動きブロックはノイズによって誤って動きブロックとして検出されたブロックに過ぎないと考えられるためである。
【００４８】
ジェスチャー認識部１７０は、特定ブロック検出部１６０により検出された特定ブロックに基づいて、ジェスチャーを認識する。ジェスチャー認識部１７０は、中心位置検出部１７１と、先端位置検出部１７１と、軌跡検出部１７３と、パターンマッチング部１７０と、を備える。
【００４９】
中心位置検出部１７１は、特定ブロック検出部１６０により検出された特定ブロックから特定ブロックの中心位置を検出する。
【００５０】
先端位置検出部１７２は、特定ブロック検出部１６０により検出された特定ブロックから特定ブロックの先端位置を検出する。
【００５１】
軌跡検出部１７３は、中心位置検出部１７１により検出された中心位置の軌跡と、先端位置検出部１７２により検出された先端位置の軌跡とを検出する。
【００５２】
パターンマッチング部１７４は、軌跡検出部１７３により検出された中心位置の軌跡と、あらかじめ設定されているジェスチャーの各パターンに対応する中心位置の軌跡とのマッチングを行う。パターンマッチング部１７４は、同じパターンにマッチングした場合でも、撮像時刻取得部１２０により取得された撮像時刻から求められるジェスチャーの時間や軌跡検出部１７３により検出された先端位置の軌跡に応じて異なるコマンドを発行しても良い。
【００５３】
コマンド処理部１８０は、ジェスチャー認識部１７０により認識されたジェスチャーのパターンに対応したコマンドを実行する。
【００５４】
画像出力部１９０は、コマンド処理部１８０の制御のもとコマンドに応じた画像データを投影部３１０に供給する。
【００５５】
続いて、ジェスチャー認識装置１００の動作を説明する。図１に示す各部が以下に説明する動作を実行することにより、図２に示す各機能ブロックが実現される。なお、理解を容易にするため、機能ブロックへの逐一の言及は行わないものとする。
【００５６】
カメラ２００及びプロジェクタ３００の電源がオンしている状態において、Ｉ／Ｏ部５０を介して外部機器からジェスチャー認識処理の開始信号を受信すると、ＣＰＵ２０は、図３のフローチャートに示すジェスチャー認識処理を実行する。
【００５７】
まず、ＣＰＵ２０は、初期設定を行う（ステップＳ１０）。初期設定では、ＣＰＵ２０は、ＲＡＭ４０に格納された各種変数の初期化等を行う。具体的には、ＣＰＵ２０は、全ての検出後タイマを停止し、クリアする。また、ＣＰＵ２０は、標準タイマをクリアし、起動する。また、ＣＰＵ２０は、Ｉ／Ｏ部５０を介して外部機器から画像データやジェスチャーの認識条件を示すデータ等を入力し、入力したデータをハードディスク６０に記憶させる。
【００５８】
ＣＰＵ２０は、初期設定が終了すると、画像表示を開始する（ステップＳ２０）。ＣＰＵ２０は、ハードディスク６０に記憶されている画像データのうち、スクリーン４００に表示させる初期画像に対応する画像データを出力バッファ８０に供給する。出力バッファ８０に供給された画像データは、直ちにプロジェクタ３００に供給され、プロジェクタ３００は供給された画像データに対応する画像をスクリーン４００に投影する。これらの動作により、画像出力部１９０と投影部３１０が実現される。
【００５９】
次に、ＣＰＵ２０は１フレーム分の画像データを取得する（ステップＳ３０）。入力バッファ７０は、カメラ２００から１フレーム分の画像データを供給されると、ＣＰＵ２０に割り込み信号を送信する。ＣＰＵ２０は、この割り込み信号を受信すると、入力バッファ７０に供給された１フレーム分の画像データをＲＡＭ４０に転送する。また、ＣＰＵ２０は、標準タイマが示す値を、現在のフレームの画像データを識別するデータとともにＲＡＭ４０に記憶する。これらの動作により、画像入力部１１０が実現される。
【００６０】
ＣＰＵ２０は、１フレーム分の画像データの取得が完了すると、閾値設定処理を実行する（ステップＳ４０）。ＣＰＵ２０は、閾値設定処理では、現在のフレームの画像データと１フレーム前の画像データとに基づいて、各ブロックの画像が前のフレームから変化したか否かを判別するための閾値を設定する。これらの動作により、閾値設定部１３１が実現される。詳細については、後述する。
【００６１】
ＣＰＵ２０は、閾値設定処理が完了すると、連続ノイズ除去処理を実行する（ステップＳ５０）。ＣＰＵ２０は、動き量を検出し、動きブロックを検出した後に連続ノイズを除去する。ＣＰＵ２０は、連続ノイズ除去処理では、一定時間以上継続して画像が変化しているブロックを、特定ブロックの候補から除外する。これらの動作により、動き量検出部１４０、動きブロック検出部１４０及び連続ノイズ除去部１６１が実現される。詳細については、後述する。
【００６２】
ＣＰＵ２０は、連続ノイズ除去処理が完了すると、微少ノイズ除去処理を実行する（ステップＳ６０）。ＣＰＵ２０は、微少ノイズ除去処理では、ジェスチャーの対象となる画像は一定以上の大きさを有するとみなして、画像が変化している他のブロックから離れて画像が変化しているブロックを、特定ブロックの候補から除外する。これらの動作により、微少ノイズ除去部１６２が実現される。詳細については、後述する。
【００６３】
ＣＰＵ２０は、微少ノイズ除去処理が完了すると、パターン検出処理を実行する（ステップＳ７０）。ＣＰＵ２０は、パターン検出処理では、検出された画像の変化を、あらかじめ設定されたジェスチャーの各パターンと比較し、一致する場合は一致したパターンに対応するコマンドを実行する。これらの動作により、ジェスチャー認識部１７０及びコマンド処理部１８０が実現される。詳細については、後述する。
【００６４】
ジェスチャー認識装置１００は、詳細を後述する閾値設定処理（ステップＳ４０）、連続ノイズ除去処理（ステップＳ５０）、微少ノイズ除去処理（ステップＳ６０）、又は、パターン検出処理（ステップＳ７０）を実行することにより、ジェスチャーの認識精度を高めることが可能となる。
【００６５】
次に、図４に示すフローチャートを用いて、閾値設定処理（ステップＳ４０）の詳細を説明する。
【００６６】
まず、ＣＰＵ２０は、画素別の輝度の差分を検出する（ステップＳ４１）。具体的には、ＣＰＵ２０は、ＲＡＭ４０に記憶された現在のフレームの画像データに対応する画像を構成する各画素の輝度から、１フレーム前の画像データに対応する画像を構成する画素のうち対応する画素の輝度を減じる。各画素がＲＧＢの３原色から構成される場合は、原色毎に輝度の差分を求める。ＣＰＵ２０は、求めた輝度の差分をＲＡＭ４０に記憶する。
【００６７】
次に、ＣＰＵ２０は、全画素について輝度の差分の検出が完了したか否かを判別する（ステップＳ４２）。ＣＰＵ２０は、全画素については輝度の差分の検出が完了していないと判別した場合（ステップＳ４２：ＮＯ）、輝度の差分の検出が完了していない画素について輝度の差分の検出を実行する（ステップＳ４１）。一方、ＣＰＵ２０は、全画素について輝度の差分の検出が完了したと判別した場合（ステップＳ４２：ＹＥＳ）、輝度の差分を自乗した値の平均値を算出する（ステップＳ４３）。
【００６８】
具体的には、輝度の差分の自乗の平均値算出（ステップＳ４３）では、ＣＰＵ２０は、全画素について輝度の差分（ΔＢ１、ΔＢ２、・・・、ΔＢＮ）を求め、各画素の輝度の差分を自乗した値（（ΔＢ１）２、（ΔＢ２）２、・・・、（ΔＢＮ）２）を全画素分加算した値（Σ（ΔＢｎ）２）を全画素数で割ることにより、輝度の差分を自乗した値の平均値（Σ（ΔＢｎ）２／Ｎ）を算出する。なお、ｉ番目の画素の輝度をＢｉ、ｉ番目の画素の輝度の差分をΔＢｉ、全画素数をＮとした。各画素がＲＧＢの３原色から構成される場合は、原色毎に輝度の差分を自乗した値の平均値を算出する。
【００６９】
次に、ＣＰＵ２０は、閾値の設定を更新する（ステップＳ４４）。具体的には、例えば、ＣＰＵ２０は、輝度の差分の自乗の平均値算出（ステップＳ４３）で算出した輝度の差分を自乗した値の平均値（Σ（ΔＢｎ）２／Ｎ）に、１ブロック当たりの画素数Ｍを乗じた値（Σ（ΔＢｎ）２／Ｎ×Ｍ）を閾値としてＲＡＭ４０に記憶する。ＣＰＵ２０は、閾値設定更新（ステップＳ４４）を完了すると、閾値設定処理（ステップＳ４０）を終了する。
【００７０】
このように、輝度の差分を自乗した値の平均値に基づいて閾値を設定すると、画面全体の動きが激しい場合は閾値が高く設定され、動きが少ない場合は閾値が低く設定される。このような閾値を用いる場合、画面全体の動きの激しさに応じて自動で最適な閾値を設定することが可能となり、誤検出を減らすことができる。
【００７１】
次に、図５に示すフローチャートを用いて、連続ノイズ除去処理（ステップＳ５０）を詳細に説明する。連続ノイズ除去処理は、一定時間以上継続して画像が変化しているブロックを、ノイズにより画像が変化しているブロックとみなし、特定ブロックの候補から除外する処理である。
【００７２】
まず、ＣＰＵ２０は、ブロック毎に動き量Ｘを検出する（ステップＳ５１）。具体的には、ＣＰＵ２０は、ブロック毎に、ブロック内の各画素の輝度の差分を自乗した値の総和（Σ（ΔＢｍ）２）を動き量Ｘとして求める。
【００７３】
次に、ＣＰＵ２０は、動き量Ｘが閾値以上であるか否かの判別を行う（ステップＳ５２）。具体的には、ＣＰＵ２０は、動き量検出（ステップＳ５１）で検出された各ブロックの動き量Ｘが、閾値設定更新（ステップＳ４４）で更新された閾値（Σ（ΔＢｎ）２／Ｎ×Ｍ）以上であるか否かを判別する。
【００７４】
ＣＰＵ２０は、動き量Ｘが閾値以上ではないと判別した場合（ステップＳ５２：ＮＯ）、対象のブロックを動きのないブロックとみなして非動きブロックに設定する（ステップＳ５３）。具体的には、ＣＰＵ２０は、対象ブロックの属性情報を「非動きブロック」としてＲＡＭ４０に記憶する。ＣＰＵ２０は、ステップＳ５３が完了すると、検出後タイマを停止、クリアする（ステップＳ５４）。
【００７５】
一方、ＣＰＵ２０は、動き量Ｘが閾値以上であると判別した場合（ステップＳ５２：ＹＥＳ）、対象のブロックを動きのあるブロックとみなして動きブロックに設定する（ステップＳ５３）。具体的には、ＣＰＵ２０は、対象ブロックの属性情報を「動きブロック」としてＲＡＭ４０に記憶する。
【００７６】
ＣＰＵ２０は、検出後タイマが２秒以上か否かを判別し（ステップＳ５６）、検出後タイマが２秒以上である判別した場合（ステップＳ５６：ＹＥＳ）、対象のブロックをジェスチャーの認識に採用しないブロックに設定する（ステップＳ５７）。すなわち、動き量Ｘが閾値以上であるブロックであっても、継続して２秒以上、閾値以上の動き量が検出されたブロックは、ノイズによって誤って動きブロックとして検出されたブロックとして扱う。具体的には、ＣＰＵ２０は、ＲＡＭ４０に記憶された対象ブロックの属性情報を「ジェスチャーの認識に採用しないブロック」に書き換える。
【００７７】
ＣＰＵ２０は、検出後タイマが２秒以上ではないと判別した場合（ステップＳ５６：ＮＯ）、又は、非動きブロックへの設定（ステップＳ５７）が完了した後、停止後タイマが停止中か否かを判別する（ステップＳ５８）。ＣＰＵ２０は、検出後タイマが停止中であると判別した場合（ステップＳ５８：ＹＥＳ）、検出後タイマを起動する（ステップＳ５９）。
【００７８】
ＣＰＵ２０は、検出後タイマが停止中ではないと判別した場合（ステップＳ５８：ＮＯ）、又は、検出後タイマの起動（ステップＳ５９）、又は、検出後タイマの停止、クリア（ステップＳ５４）、が完了した後、全ブロック分の処理が完了しているかを判別する（ステップＳ５１０）。
【００７９】
ＣＰＵ２０は、全ブロック分の設定が完了していると判別した場合（ステップＳ５１０：ＹＥＳ）、連続ノイズ除去処理を終了する。一方、ＣＰＵ２０は、全ブロック分の設定が完了していないと判別した場合（ステップＳ５１０：ＮＯ）、設定が完了していないブロックの動き量検出を行う（ステップＳ５１）。
【００８０】
以上のように、連続ノイズ除去処理では、各ブロックが、動きブロック、非動きブロック、又は、ジェスチャーの認識に採用しないブロック、のうちいずれのブロックに該当するかを設定する。
【００８１】
通常、テレビジョン等に投影されている動きそのものをジェスチャーとして認識しようとすることは稀である。従来のジェスチャー認識装置では、テレビジョン等とジェスチャーを行う者とを含む領域を撮像した画像データから、ジェスチャーを認識しようとする場合、テレビジョン等に投影されている動きをジェスチャーとして誤って認識してしまう可能性がある。
【００８２】
しかしながら、本発明の実施の形態に係るジェスチャー認識装置１００では、一定時間以上連続して動きブロックとして検出されたブロックは、ジェスチャーの認識に採用するブロックから除外される。このため、ジェスチャーの誤検出を減らすことができる。
【００８３】
また、本発明の実施の形態に係るジェスチャー認識装置１００では、各ブロックの動き量Ｘを、各画素の輝度の差分を自乗した値の総和（Σ（ΔＢｍ）２）としている。このため、特許文献１に記載された装置のように、各ブロックの動き量Ｘを、各画素の輝度の差分の総和（Σ｜ΔＢｍ｜）とする場合に比べ、より俊敏な動きの認識が可能となり、ジェスチャーの認識精度の向上が期待できる。以下に理由を説明する。
【００８４】
ジェスチャーによって画像が変化する場合、輝度の差分が非常に大きな少数の画素が発生すると予想される。一方、照明装置の光量の変化や、撮像装置のブレなどジェスチャーとは無関係なものによって画像の変化する場合、輝度の差分が比較的小さい多数の画素が発生すると予想される。
【００８５】
ここで、ブロック内の各画素の輝度の差分を自乗した値の総和を動き量とする場合、輝度の差分が大きい画素が少しでも存在すれば動き量は比較的大きな値となり、輝度の差分が小さい画素が多く存在しても動き量は比較的小さな値となる。
【００８６】
このため、ブロック内の各画素の輝度の差分を自乗した値の総和を動き量とすることにより、ジェスチャーに起因する画像の変化分を動き量の主成分として検出することが可能となり、ジェスチャーの認識精度の向上が期待できる。
【００８７】
次に、図６と図７を用いて、微少ノイズ除去処理（ステップＳ６０）を詳細に説明する。図６は、微少ノイズの除去処理を示すフローチャートであり、図７は、微少ノイズの除去処理を説明するための図である。微少ノイズ除去処理は、ジェスチャーの対象となる画像は一定以上の大きさを有するとみなして、画像が変化している他のブロックから離れて画像が変化しているブロックを、ノイズにより画像が変化しているブロックとみなして特定ブロックの候補から除外する処理である。
【００８８】
図７には、横軸をＸ軸、縦軸をＹ軸として、２００ブロック分（２０（Ｘ軸方向）×１０（Ｙ軸方向））の画像が示されている。なお、図７に示す画像は、プロジェクタ３００からスクリーン４００に投影された富士山と雲と飛行機の画像と、スクリーン４００の右側から被撮像者５００の手とを含む領域をカメラ２００で撮像した画像である。
【００８９】
また、図７に示す斜線が引かれたブロックは、動きブロックに設定された動きブロックである。プロジェクタ３００から投影される画像にほとんど変化がない場合、動きブロックとして検出されるブロックの多くは、被撮像者５００の手の部分に該当するブロックである。
【００９０】
まず、ＣＰＵ２０は、ＲＡＭ４０に記憶されたブロックの属性情報から、列毎に動きブロック数をカウントし、各列の動きブロック数を求める（ステップＳ６１）。
【００９１】
同様にして、ＣＰＵ２０は、行毎に動きブロック数をカウントし、各行の動きブロック数を求める（ステップＳ６２）。
【００９２】
次に、ＣＰＵ２０は、ステップＳ６１で求めた各列の動きブロック数に基づいて、動きブロック数の多い列の範囲を設定する（ステップＳ６３）。
【００９３】
動きブロック数の多い列の範囲を設定する方法には様々な方法が考えられる。例えば、動きブロック数が１以上の列が２列以上連続する列の範囲を設定する。図７では、第１２列〜第２０列の範囲で連続して動きブロック数が１以上であるので、ＣＰＵ２０は、第１２列〜第２０列の範囲を動きブロック数の多い列の範囲として設定する。
【００９４】
続いて、ＣＰＵ２０は、ステップＳ６２で求めた各行の動きブロック数に基づいて、動きブロック数の多い行の範囲を設定する（ステップＳ６４）。ＣＰＵ２０は、ステップＳ６３と同様の基準により、第６行〜第８行の範囲を動きブロック数の多い行の範囲として設定する。
【００９５】
次に、ＣＰＵ２０は、動きブロック数の多い矩形範囲を設定する（ステップＳ６５）。ＣＰＵ２０は、ステップＳ６３で設定された動きブロック数の多い列の範囲と、ステップＳ６４で設定された動きブロック数の多い行の範囲との双方に属する範囲を、動きブロック数の多い矩形範囲として設定する。図７において、太線で囲まれた範囲が動きブロック数の多い矩形範囲となる。
【００９６】
ＣＰＵ２０は、動きブロック数の多い矩形範囲の設定（ステップＳ６５）を完了すると、各ブロックが設定された矩形範囲内であるか否かを判別する（ステップＳ６６）。ＣＰＵ２０は、各ブロックが設定された矩形範囲内であると判別した場合（ステップＳ６６：ＹＥＳ）、全ブロック分の判別が完了したか否かを判別する（ステップＳ６８）。
【００９７】
一方、ＣＰＵ２０は、各ブロックが設定された矩形範囲内ではないと判別した場合（ステップＳ６６：ＮＯ）、対象ブロックをジェスチャーの認識に採用しないブロックに設定（ステップＳ６７）する。具体的には、ＣＰＵ２０は、ＲＡＭ４０に記憶された対象ブロックの属性情報を、「ジェスチャーの認識に採用しないブロック」に書き換える。ＣＰＵ２０は、ステップＳ６７を完了すると、全ブロック分の判別が完了したか否かを判別する（ステップＳ６８）。
【００９８】
ＣＰＵ２０は、全ブロック分の判別が完了したと判別すると（ステップＳ６８：ＹＥＳ）、微少ノイズ除去処理を終了する。一方、ＣＰＵ２０は、全ブロック分の判別が完了していないと判別すると（ステップＳ６８：ＮＯ）、判別が完了していないブロックについて矩形範囲内か否かを判別する（ステップＳ６６）。
【００９９】
本発明の実施の形態に係るジェスチャー認識装置１００では、動きブロック数の多い矩形範囲内にないブロックは、ジェスチャーの認識に採用するブロックから除外される。このため、ジェスチャーとは無関係の領域であって、ノイズにより輝度の変化が大きい領域を、ジェスチャー認識の対象から外すことができ、ジェスチャーの誤検出を減らすことができる。
【０１００】
次に、図８に示すフローチャートを用いて、パターン検出処理（ステップＳ７０）を詳細に説明する。
【０１０１】
まず、ＣＰＵ２０は、動きブロックが有るか否かを判別する（ステップＳ７１）。ＣＰＵ２０は、いずれかのブロックが動きブロックであると判別すると（ステップＳ７１：ＹＥＳ）、中心位置検出を行う（ステップＳ７２）。一方、ＣＰＵ２０は、全てのブロックが動きブロックではないと判別すると（ステップＳ７１：ＮＯ）、停止後タイマが１秒以上か否かを判別する（ステップＳ７５）。
【０１０２】
中心位置検出（ステップＳ７２）では、ＣＰＵ２０は、動きブロックの中心位置を検出する。図９Ａを用いて、動きブロックの中心位置の検出方法について詳細に説明する。
【０１０３】
図９Ａには、横軸をＸ軸、縦軸をＹ軸として、８０ブロック分（１０（Ｘ軸方向）×８（Ｙ軸方向））の画像が示されている。図９Ａに示す斜線が引かれたブロックは、動きブロックである。
【０１０４】
図９Ａに示す画像では、動きブロックは９個存在する。ＣＰＵ２０は、９つのブロックのＸ座標の総和を９で除算することにより中心位置のＸ座標を求め、９つのブロックのＹ座標の総和を９で除算することにより中心位置のＹ座標を求める。
【０１０５】
ただし、理解を容易にするため、中心位置の座標に最も近いブロックの座標を中心位置の座標として近似した場合を例にとり以下に説明する。図９Ａにおいて、太線の“○”が付されたブロックの座標（Ｘ座標＝９、Ｙ座標＝７）が中心位置の座標となる。ＣＰＵ２０は、求めた中心位置の座標をＲＡＭ４０に記憶する。
【０１０６】
ＣＰＵ２０は、中心位置検出（ステップＳ７２）が完了すると、先端位置検出（ステップＳ７３）を実行する。ＣＰＵ２０は、先端位置検出では、中心位置検出（ステップＳ７２）で求めた中心位置からジェスチャーの動きの方向を求め、さらに中心位置を基準としてジェスチャーの動きの方向の最も離れた位置に存在する動きブロックを先端位置として検出する。
【０１０７】
図９Ｂを用いて、動きブロックの先端位置の検出方法について詳細に説明する。なお、図９Ｂに示す画像は、図９Ａに示す画像の次のフレームの画像である。
【０１０８】
図９Ｂに示す画像では、動きブロックは１９個存在する。上述した方法で中心位置の座標を求めると、太線の“○”が付されたブロックの座標（Ｘ座標＝７、Ｙ座標＝６）が中心位置の座標となる。なお、図９Ｂにおいて、破線の“○が付されたブロックの座標（Ｘ座標＝９、Ｙ座標＝７）が１フレーム前の中心位置の座標である。
【０１０９】
ここで、１フレーム前の中心位置の座標から本フレームの中心位置の座標までを結んだときにできる差分ベクトルで示される方向をジェスチャーの対象物が進行する方向と考える。そして、差分ベクトルの延長線上の動きブロックであって、中心位置から最も離れた位置にあるブロックの座標を先端位置の座標とする。
【０１１０】
図９Ｂにおいて、太線の“△”が付されたブロックの座標（Ｘ座標＝３、Ｙ座標＝４）が先端位置の座標となる。ＣＰＵ２０は、求めた先端位置の座標をＲＡＭ４０に記憶する。
【０１１１】
ＣＰＵ２０は、先端位置検出（ステップＳ７３）が完了すると、停止後タイマを再起動する（ステップＳ７４）。具体的には、ＣＰＵ２０は、停止後タイマの値をクリアした上で停止後タイマを起動する。
【０１１２】
ＣＰＵ２０は、停止後タイマ再起動（ステップＳ７４）を完了、又は、動きブロック有り？（ステップＳ７１）でＮＯと判別すると、停止後タイマの値が１秒以上であるか否かを判別する（ステップＳ７５）。ＣＰＵ２０は、停止後タイマの値が１秒以上であると判別すると（ステップＳ７５：ＹＥＳ）、軌跡検出を行う（ステップＳ７６）。一方、ＣＰＵ２０は、停止後タイマの値が１秒以上ではないと判別すると（ステップＳ７５：ＮＯ）、パターン検出処理（ステップＳ７０）を終了する。なお、ステップＳ７５は、動きブロックが検出されなくなってから１秒経過する前は、コマンドを発行しないようにするための処理である。
【０１１３】
軌跡検出（ステップＳ７６）では、ＣＰＵ２０は、中心位置検出（ステップＳ７２）においてＲＡＭ４０に記憶された中心位置の座標に基づいて、中心位置の軌跡を検出する。また、ＣＰＵ２０は、先端位置検出（ステップＳ７３）においてＲＡＭ４０に記憶された先端位置の座標に基づいて、先端位置の軌跡を検出する。
【０１１４】
ＣＰＵ２０は、軌跡検出（ステップＳ７６）が完了すると、ジェスチャーのパターンが所定のパターンとマッチングしているかを判別する（ステップＳ７７）。ＣＰＵ２０は、軌跡検出（ステップＳ７６）で検出した中心位置の軌跡と、先端位置の軌跡と、あらかじめハードディスク６０に記憶されているジェスチャーのパターンを示すデータとに基づいて、パターンのマッチングを行う。
【０１１５】
図１０に、ジェスチャーのパターンの一例を示す。「パターン」は、ジェスチャーのパターンの通し番号を示す。「中心位置の軌跡」は、軌跡検出（ステップＳ７６）で求めた中心位置の軌跡を示す。「移動距離」は、中心位置の移動距離を示す。「移動時間」は、動きブロック有り（ステップＳ７１）において、ＹＥＳと判別されてから、ＮＯと判別されるまでの時間、すなわち、ジェスチャーの候補としての動きが認識されてからジェスチャーの候補としての動きがなくなるまでの時間を示す。
【０１１６】
「コマンドの表示」は、パターンがマッチングしたとき、すなわち、上述の「中心位置の軌跡」、「移動距離」及び「移動時間」の全ての条件を満たしたときに実行するコマンド処理の内容を示す。
【０１１７】
ＣＰＵ２０は、検出したジェスチャーのパターンがハードディスク６０に記憶されたパターンを示すデータのうちいずれかのパターンとマッチングしたと判別すると（ステップＳ７７：ＹＥＳ）、コマンド処理を行う（ステップＳ７８）。一方、ＣＰＵ２０は、検出したジェスチャーのパターンがいずれのパターンともマッチングしていないと判別すると（ステップＳ７７：ＮＯ）、パターン検出初期化（ステップＳ７９）を行う。
【０１１８】
ＣＰＵ２０は、コマンド処理（ステップＳ７８）が完了、又は、検出したジェスチャーのパターンがいずれのパターンともマッチングしていないと判別すると（ステップＳ７７：ＮＯ）、パターン検出初期化（ステップＳ７９）を行う。パターン検出初期化（ステップＳ７９）では、ＣＰＵ２０は、パターン検出処理（ステップＳ７０）で使用した各種変数の初期化を行う。具体的には、ＲＡＭ４０に記憶されている中心位置、先端位置の履歴を消去する。
【０１１９】
ＣＰＵ２０は、パターン検出初期化（ステップＳ７９）を完了すると、停止後タイマの停止し、クリアする（ステップＳ７１０）。ＣＰＵ２０は、停止後タイマの停止、クリア（ステップＳ７１０）を完了すると、パターン検出処理（ストップＳ７０）を終了し、フレームの画像取得（ステップＳ３０）に処理を戻す。
【０１２０】
ここで、図１１Ａ〜図１１Ｆ及び図１２Ａ〜図１２Ｄを用いて、パターンマッチング（ステップＳ７７）とコマンド処理（ステップＳ７８）の例について詳細に説明する。
【０１２１】
始めに、ジェスチャーの「パターン」が「１」である場合の、パターンマッチングとコマンド処理について説明する。
【０１２２】
図１１Ａは、動きブロックの中心位置が右下の特定領域内で検出された直後の画像を示す図である。なお、図１１Ａ〜図１１Ｆにおいて、四隅に示した太線で囲まれた３×３ブロックの領域は特定領域である。また、太線の“○”が付されたブロックの座標が動きブロックの中心位置の座標である。図１１Ａに示すように、被撮像者５００の手が画角外から画角内の右下の領域に進入すると、動きブロックの中心位置が右下の特定領域内に検出される。
【０１２３】
図１１Ｂは、動きブロックの中心位置が右下の特定領域内に検出されているときの画像を示す図である。図１１Ｂに示すように、被撮像者５００の手が画角内の右下の領域で移動している間は、動きブロックの中心位置は右下の特定領域内で検出され続ける。
【０１２４】
図１１Ｃは、動きブロックの中心位置が右下の特定領域内から検出されなくなった直後の画像を示す図である。図１１Ｃにおいて、破線の“○”が付されたブロックの座標が最後に検出された中心位置の座標である。図１１Ｃに示すように、被撮像者５００の手が画角内の右下の領域から画角外に外れると、動きブロックの中心位置が右下の特定領域内から検出されなくなる。
【０１２５】
動きブロックの中心位置が検出されなくなってから１秒が経過し、停止後タイマが１秒以上になると、ＣＰＵ２０は、軌跡検出（ステップＳ７６）後、パターンのマッチングを行う（ステップＳ７７）。前述のように、中心位置の軌跡は画角外から画角の右下の特定領域に進入した後に画角外に外れる軌跡を示しているため、パターン１の「中心位置の軌跡」の条件を満たす。
【０１２６】
ただし、「移動時間」、ここでは、動きブロックの中心位置が画角の右下の特定領域内に滞在した時間によって、ＣＰＵ２０が実行するコマンドの内容が異なる。なお、ＣＰＵ２０は、フレーム画像取得（ステップＳ３０）においてＲＡＭ４０に記憶した画像データの取得時刻をもとに移動時間を求める。
【０１２７】
「移動時間」が２秒以上である場合は、ＣＰＵ２０は、画像を切り替えない。具体的には、ＣＰＵ２０は、図１１Ｄに示すように、それまで表示していたページの画像を、スクリーン４００に投影させ続ける。
【０１２８】
「移動時間」が１秒以上２秒未満である場合は、ＣＰＵ２０は、次ページの画像を表示する。具体的には、ＣＰＵ２０は、ハードディスク６０に記憶されている次ページの画像の画像データを、出力バッファ８０に転送することにより、プロジェクタ３００がスクリーン４００に投影する画像を、図１１Ｅに示すような次ページの画像に切り替える。
【０１２９】
「移動時間」が１秒未満である場合は、ＣＰＵ２０は、次々ページの画像を表示する。具体的には、ＣＰＵ２０は、次ページの画像とは異なる次々ページの画像の画像データを、ハードディスク６０から出力バッファ８０に転送することにより、プロジェクタ３００がスクリーン４００に投影する画像を、図１１Ｆに示すような次々ページの画像に切り替える。
【０１３０】
上述のように、本発明の実施の形態に係るジェスチャー認識装置１００は、ＣＰＵ２０は、タイマカウンタ９０がカウントアップする標準タイマを用いて、画像データを取得した時刻をＲＡＭ４０に記憶する。このため、ジェスチャーの速度を正確に測定することができる。従って、中心位置の軌跡や移動距離が同じ場合であっても、ジェスチャーの速度に応じて異なるコマンドを用意することができる。
【０１３１】
また、ジェスチャーの中心位置を検出することで、ジェスチャー動作を容易に捉えることができる。
【０１３２】
次に、ジェスチャーのパターンが「パターン５」である場合の、パターンマッチングとコマンド処理について説明する。
【０１３３】
図１２Ａは、動きブロックの中心位置が検出された直後の画像を示す図である。図１２Ａ、図１２Ｂにおいて、太線の“○”が付されたブロックの座標が動きブロックの中心位置の座標である。図１２Ａに示すように、ジェスチャーの対象物が画角外から画角内に進入すると、動きブロックの中心位置が検出される。
【０１３４】
図１２Ｂは、動きブロックの先端位置が最も左側になったときの画像を示す図である。図１２Ｂにおいて、太線の“△”が付されたブロックの座標が動きブロックの先端位置の座標である。図１２Ｂに示すように、被撮像者５００の手が画角内で最も左側の位置に移動したとき、動きブロックの先端位置が最も左側になる。
【０１３５】
図１２Ｃは、動きブロックの中心位置が検出されなくなった直後の画像を示す図である。図１２Ｃにおいて、破線の“○”が付されたブロックの座標が最後に検出されたの中心位置の座標であり、破線の“△”が付されたブロックの座標が先端位置が最も左側になったときの先端位置の座標（以下、先端位置のピーク座標とする。）である。なお、図１２Ｃに示すように、画角内に被撮像者５００の手が残っていても、手が停止している場合は、手が画角外に外れたときと同じように、動きブロックの中心位置が検出されなくなる。
【０１３６】
動きブロックの中心位置が検出されなくなってから１秒が経過し、停止後タイマが１秒以上になると、ＣＰＵ２０は、軌跡検出（ステップＳ７６）後、パターンのマッチングを行う（ステップＳ７７）。前述のように、「中心位置の軌跡」は右→左→右であり、「中心位置の移動距離」は画角の１／２０以上であるため、パターン５の条件を満たす。
【０１３７】
ここで、「移動時間」が３秒未満である場合は、ＣＰＵ２０は、現在表示している画像を拡大表示する。具体的には、ＣＰＵ２０は、ハードディスク６０に記憶されている現在表示している画像に対応する画像データをもとに、先端位置のピーク座標を中心にして拡大した画像に対応する画像データを作成する。そして、ＣＰＵ２０は、作成した画像データを、出力バッファ８０に転送することにより、プロジェクタ３００がスクリーン４００に投影する画像を、図１２Ｄに示すような拡大画像に切り替える。
【０１３８】
一方、「移動時間」が３秒以上である場合は、ＣＰＵ２０は、画像を切り替えない。
【０１３９】
上述のように、本発明の実施の形態に係るジェスチャー認識装置１００は、ジェスチャーの先端位置を検出することで、コマンドのパターンの自由度を広げることができる。
【０１４０】
なお、この発明は上記実施例に限定されず、種々の変形及び応用が可能である。
【０１４１】
上記実施の形態では、１ブロック当たりの画素数Ｍを縦方向８画素×横方向８画素＝６４としたが、ブロックのサイズは任意である。例えば、より小さい動きを検出したい場合は、ブロックのサイズを小さくし（例えば、縦方向４画素×縦方向４画素）、より速い動きを検出したい場合は、ブロックのサイズを大きくする（例えば、縦方向１６画素×縦方向１６画素）。
【０１４２】
また、上記実施の形態では、動き量Ｘの閾値を、輝度の差分の自乗の平均値算出（ステップＳ４３）で算出した輝度の差分を自乗した値の平均値（Σ（ΔＢｎ）２／Ｎ）に、１ブロック当たりの画素数Ｍを乗じた値（Σ（ΔＢｎ）２／Ｎ×Ｍ）とした。しかし、動き量Ｘの閾値は、上述の閾値をさらに定数Ｋ倍した値（Σ（ΔＢｎ）２／Ｎ×Ｍ×Ｋ）や、輝度の差分の絶対値の平均値に１ブロック当たりの画素数Ｍを乗じた値（Σ｜ΔＢｎ｜／Ｎ×Ｍ）等、画面全体の輝度の変化量に応じて求められる他の値としてもよい。
【０１４３】
また、上記実施の形態では、動き量Ｘの閾値を、演算により求めていたが、画面全体の輝度の変化量に応じて適切な閾値を選択するようにしてもよい。この場合、複数の閾値を候補値としてあらかじめハードディスク６０等に記憶しておけばよい。
【０１４４】
また、上記実施の形態では、動き量Ｘの閾値を、画面全体の輝度の変化量に応じて求めていたが、画面全体の動きの激しさが予測できる場合は、閾値を固定値としてもよい。この場合、閾値をあらかじめハードディスク６０等に記憶しておけばよい。
【０１４５】
また、上記実施の形態では、動きブロック数の多い矩形範囲を１つのみ設定したが、矩形範囲は２つ以上設定してもよい。また、動きブロック数の多い範囲として設定する形は、矩形に限られず、ジェスチャー対象物の形状に合わせて、例えば、円形、楕円形、四角形でない多角形など任意の形状にすることができる。
【０１４６】
上記実施の形態では、カメラ２００から供給された全てのフレーム画像について処理する例を示した。しかし、撮像する際のフレームレートがジェスチャー認識装置の処理速度に対して高速である場合は、間引きしたフレーム画像に対して処理するようにしてもよい。
【０１４７】
また、本発明は、上述したジェスチャーのパターンやコマンドは上述の例に限定されず、任意に設定することが可能である。
【０１４８】
さらに、本発明は、上述した構成例やフローチャートに示される手順に限定されないことは勿論である。
【符号の説明】
【０１４９】
１０  バス
２０  ＣＰＵ（Central  Processing  Unit）
３０  ＲＯＭ（Read  Only  Memory）
４０  ＲＡＭ（Random  Access  Memory）
５０  Ｉ／Ｏ（Input  Output）部
６０  ハードディスク
７０  入力バッファ
８０  出力バッファ
９０  タイマカウンタ
１００  ジェスチャー認識装置
１１０  画像入力部
１２０  時刻取得部
１２１  撮像時刻取得部
１３０  認識条件設定部
１３１  閾値設定部
１４０  動き量検出部
１５０  動きブロック検出部
１６０  特定ブロック検出部
１６１  連続ノイズ除去部
１６２  微少ノイズ除去部
１７０  ジェスチャー認識部
１７１  中心位置検出部
１７２  先端位置検出部
１７３  軌跡検出部
１７４  パターンマッチング部
１８０  コマンド処理部
１９０  画像出力部
２００  カメラ
２１０  撮像部
３００  プロジェクタ
３１０  投影部
４００  スクリーン
５００  被撮像者
【図１】
2012150837.tif 000003
【図２】
2012150837.tif 000004
【図３】
2012150837.tif 000005
【図４】
2012150837.tif 000006
【図５】
2012150837.tif 000007
【図６】
2012150837.tif 000008
【図７】
2012150837.tif 000009
【図８】
2012150837.tif 000010
【図９Ａ】
2012150837.tif 000011
【図９Ｂ】
2012150837.tif 000012
【図１０】
2012150837.tif 000013
【図１１Ａ】
2012150837.tif 000014
【図１１Ｂ】
2012150837.tif 000015
【図１１Ｃ】
2012150837.tif 000016
【図１１Ｄ】
2012150837.tif 000017
【図１１Ｅ】
2012150837.tif 000018
【図１１Ｆ】
2012150837.tif 000019
【図１２Ａ】
2012150837.tif 000020
【図１２Ｂ】
2012150837.tif 000021
【図１２Ｃ】
2012150837.tif 000022
【図１２Ｄ】
2012150837.tif 000023
【手続補正書】
【提出日】平成24年5月25日(2012.5.25)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、ジェスチャー認識装置、ジェスチャー認識方法及びそのプログラムに関する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本発明は、上記問題に鑑みてなされたものであり、認識精度が高いジェスチャー認識装置、ジェスチャー認識方法及びそのプログラムを提供することを目的とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上記目的を達成するため、本発明の第１の観点に係るジェスチャー認識装置は、
撮像した対象の動作に基づくジェスチャーを認識するジェスチャー認識装置において、
ジェスチャーの認識条件を設定する認識条件設定手段と、
撮像された画像を複数の領域に分割した分割領域毎に動き量を検出する動き量検出手段と、
撮像された画像内における特定領域に含まれ、且つ、前記動き量検出手段により検出された動き量が所定の閾値以上である分割領域を、採用領域として設定する採用領域設定手段と、
少なくとも、前記採用領域設定手段により設定された採用領域と、前記認識条件設定手段により設定されたジェスチャーの認識条件とに基づいて、ジェスチャーを認識するジェスチャー認識手段と、
を備える、ことを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
順次撮像された画像の各画素の輝度の変化量に基づいて閾値を設定する閾値設定手段をさらに備え、
前記動き量検出手段は、分割領域内の各画素の輝度の変化量を自乗した値の総和を動き量として検出し、
前記採用領域設定手段は、前記閾値設定手段により設定された閾値と、前記動き量検出手段により検出された動き量とを比較することにより、動き量が閾値以上か否かを判定してもよい。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】削除
【補正の内容】
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
前記採用領域設定手段は、前記動き量検出手段により所定時間以上継続して検出された分割領域を前記採用領域から除外してもよい。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
前記特定領域は、前記動き量検出手段により検出された動き量が前記閾値以上の分割領域が連続している領域を囲む、予め定められている形状の範囲としてもよい。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
前記採用領域が複数存在する場合に、画像内での各採用領域の位置から、画像内におけるジェスチャーの動きの中心の位置を検出する中心位置検出手段、をさらに備え、
前記ジェスチャー認識手段は、前記中心位置検出手段により検出された中心の位置に基づいてジェスチャーを認識してもよい。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
撮像された複数の画像からジェスチャーの動きの方向を判別する動き方向判別手段と、
前記中心位置検出手段により検出された中心位置を基準として、前記動き方向判別手段により判別された方向の最も離れた位置に存在する採用領域を検出する先端位置検出手段と、をさらに備え、
前記ジェスチャー認識手段は、前記先端位置検出手段により検出された採用領域の画像内での位置に基づいてジェスチャーを認識してもよい。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
順次撮像された画像の撮像時刻を取得する撮像時刻取得手段、をさらに備え、
前記ジェスチャー認識手段は、前記撮像時刻取得手段により取得された画像の撮像時刻に基づいて、前記採用領域設定手段により継続して前記分割領域が前記採用領域であると判別された時間を求め、該求められた時間に応じたジェスチャーとして認識してもよい。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
上記目的を達成するため、本発明の第２の観点に係るジェスチャー認識方法は、
撮像した対象の動作に基づくジェスチャーを認識するジェスチャー認識方法において、
ジェスチャーの認識条件を設定する認識条件設定ステップと、
撮像された画像を複数の領域に分割した分割領域毎に動き量を検出する動き量検出ステップと、
撮像された画像内における特定領域に含まれ、且つ、前記動き量検出ステップで検出された動き量が所定の閾値以上である分割領域を、採用領域として設定する採用領域設定ステップと、
少なくとも、前記採用領域設定ステップで設定された採用領域と、前記認識条件設定ステップで設定されたジェスチャーの認識条件とに基づいて、ジェスチャーを認識するジェスチャー認識ステップと、
を備える、ことを特徴とする。
上記目的を達成するため、本発明の第３の観点に係るプログラムは、
撮像した対象の動作に基づくジェスチャーを認識するジェスチャー認識装置が有するコンピュータを、
ジェスチャーの認識条件を設定する認識条件設定手段と、
撮像された画像を複数の領域に分割した分割領域毎に動き量を検出する動き量検出手段と、
撮像された画像内における特定領域に含まれ、且つ、前記動き量検出手段により検出された動き量が所定の閾値以上である分割領域を、採用領域として設定する採用領域設定手段と、
少なくとも、前記採用領域設定手段により設定された採用領域と、前記認識条件設定手段により設定されたジェスチャーの認識条件とに基づいて、ジェスチャーを認識するジェスチャー認識手段と、
して機能させる、ことを特徴とする。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
本発明に係るジェスチャー認識装置、ジェスチャー認識方法及びそのプログラムによれば、ジェスチャーの認識精度を向上させることができる。
【手続補正１５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
撮像した対象の動作に基づくジェスチャーを認識するジェスチャー認識装置において、
ジェスチャーの認識条件を設定する認識条件設定手段と、
撮像された画像を複数の領域に分割した分割領域毎に動き量を検出する動き量検出手段と、
撮像された画像内における特定領域に含まれ、且つ、前記動き量検出手段により検出された動き量が所定の閾値以上である分割領域を、採用領域として設定する採用領域設定手段と、
少なくとも、前記採用領域設定手段により設定された採用領域と、前記認識条件設定手段により設定されたジェスチャーの認識条件とに基づいて、ジェスチャーを認識するジェスチャー認識手段と、
を備える、ことを特徴とするジェスチャー認識装置。
【請求項２】
順次撮像された画像の各画素の輝度の変化量に基づいて閾値を設定する閾値設定手段をさらに備え、
前記動き量検出手段は、分割領域内の各画素の輝度の変化量を自乗した値の総和を動き量として検出し、
前記採用領域設定手段は、前記閾値設定手段により設定された閾値と、前記動き量検出手段により検出された動き量とを比較することにより、動き量が閾値以上か否かを判定する、
ことを特徴とする請求項１に記載のジェスチャー認識装置。
【請求項３】
前記採用領域設定手段は、前記動き量検出手段により所定時間以上継続して検出された分割領域を前記採用領域から除外する、
ことを特徴とする請求項１に記載のジェスチャー認識装置。
【請求項４】
前記特定領域は、前記動き量検出手段により検出された動き量が前記閾値以上の分割領域が連続している領域を囲む、予め定められている形状の範囲である、
ことを特徴とする請求項１に記載のジェスチャー認識装置。
【請求項５】
前記採用領域が複数存在する場合に、画像内での各採用領域の位置から、画像内におけるジェスチャーの動きの中心の位置を検出する中心位置検出手段、をさらに備え、
前記ジェスチャー認識手段は、前記中心位置検出手段により検出された中心の位置に基づいてジェスチャーを認識する、
ことを特徴とする請求項１に記載のジェスチャー認識装置。
【請求項６】
撮像された複数の画像からジェスチャーの動きの方向を判別する動き方向判別手段と、
前記中心位置検出手段により検出された中心位置を基準として、前記動き方向判別手段により判別された方向の最も離れた位置に存在する採用領域を検出する先端位置検出手段と、をさらに備え、
前記ジェスチャー認識手段は、前記先端位置検出手段により検出された採用領域の画像内での位置に基づいてジェスチャーを認識する、
ことを特徴とする請求項５に記載のジェスチャー認識装置。
【請求項７】
順次撮像された画像の撮像時刻を取得する撮像時刻取得手段、をさらに備え、
前記ジェスチャー認識手段は、前記撮像時刻取得手段により取得された画像の撮像時刻に基づいて、前記採用領域設定手段により継続して前記分割領域が前記採用領域であると判別された時間を求め、該求められた時間に応じたジェスチャーとして認識する、
ことを特徴とする請求項１に記載のジェスチャー認識装置。
【請求項８】
撮像した対象の動作に基づくジェスチャーを認識するジェスチャー認識方法において、
ジェスチャーの認識条件を設定する認識条件設定ステップと、
撮像された画像を複数の領域に分割した分割領域毎に動き量を検出する動き量検出ステップと、
撮像された画像内における特定領域に含まれ、且つ、前記動き量検出ステップで検出された動き量が所定の閾値以上である分割領域を、採用領域として設定する採用領域設定ステップと、
少なくとも、前記採用領域設定ステップで設定された採用領域と、前記認識条件設定ステップで設定されたジェスチャーの認識条件とに基づいて、ジェスチャーを認識するジェスチャー認識ステップと、
を備える、ことを特徴とするジェスチャー認識方法。
【請求項９】
撮像した対象の動作に基づくジェスチャーを認識するジェスチャー認識装置が有するコンピュータを、
ジェスチャーの認識条件を設定する認識条件設定手段と、
撮像された画像を複数の領域に分割した分割領域毎に動き量を検出する動き量検出手段と、
撮像された画像内における特定領域に含まれ、且つ、前記動き量検出手段により検出された動き量が所定の閾値以上である分割領域を、採用領域として設定する採用領域設定手段と、
少なくとも、前記採用領域設定手段により設定された採用領域と、前記認識条件設定手段により設定されたジェスチャーの認識条件とに基づいて、ジェスチャーを認識するジェスチャー認識手段と、
して機能させる、ことを特徴とするプログラム。