(57)【特許請求の範囲】
【請求項１】
撮像される２次元の画像の画素単位の、前記画像内の被写体の撮像位置からの距離の情報からなる奥行画像を取得する奥行画像取得手段と、
前記奥行画像における、隣接する複数の画素毎に構成されるブロック単位で、撮像位置から近い部分の奥行、および位置を局所先端部として検出する局所先端部検出手段と、
前記ブロックの各々を注目ブロックとする場合、前記注目ブロックを含む、前記注目ブロックに隣接する複数の前記ブロックで構成される領域における前記注目ブロックの前記局所先端部が、前記領域内において最も前記撮像位置から近い局所先端部となるとき、その局所先端部を凸部として検出する凸部検出手段と、
前記凸部検出手段により検出された凸部の位置の連続的な追跡を開始し、以降においては、直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されるとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される凸部の位置を追跡し、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されないとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される前記局所先端部の位置を、前記凸部の位置として追跡し、追跡する前記凸部の位置、または前記局所先端部の位置のいずれかを、先端部の位置として追跡し、前記先端部のそれぞれに尤度を設定し、前記尤度が所定の閾値よりも小さくなった前記先端部の追跡を終了する追跡手段と、
前記追跡手段により追跡された前記凸部の位置の軌跡を、前記画像に撮像される被写体の動作として認識し、前記軌跡に基づいて、前記被写体の動作によるジェスチャを検出するジェスチャ検出手段と、
前記ジェスチャ検出手段により、前記先端部の軌跡に基づいて検出されたジェスチャに応じて、前記先端部の追跡優先度を設定する追跡優先度設定手段とを含み、
前記追跡手段は、前記先端部のそれぞれの前記追跡優先度に基づいて、それぞれの前記尤度を設定する
画像処理装置。
【請求項２】
撮像される２次元の画像の画素単位の、前記画像内の被写体の撮像位置からの距離の情報からなる奥行画像を取得する奥行画像取得手段と、
前記奥行画像における、隣接する複数の画素毎に構成されるブロック単位で、撮像位置から近い部分の奥行、および位置を局所先端部として検出する局所先端部検出手段と、
前記ブロックの各々を注目ブロックとする場合、前記注目ブロックを含む、前記注目ブロックに隣接する複数の前記ブロックで構成される領域における前記注目ブロックの前記局所先端部が、前記領域内において最も前記撮像位置から近い局所先端部となるとき、その局所先端部を凸部として検出する凸部検出手段と、
前記凸部検出手段により検出された凸部の位置の連続的な追跡を開始し、以降においては、直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されるとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される凸部の位置を追跡し、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されないとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される前記局所先端部の位置を、前記凸部の位置として追跡し、追跡する前記凸部の位置、または前記局所先端部の位置のいずれかを、先端部の位置として追跡し、前記先端部のそれぞれに尤度を設定し、前記尤度が所定の閾値よりも小さくなった前記先端部の追跡を終了する追跡手段と、
前記追跡手段により追跡された前記凸部の位置の軌跡を、前記画像に撮像される被写体の動作として認識し、前記軌跡に基づいて、前記被写体の動作によるジェスチャを検出するジェスチャ検出手段と、
前記ジェスチャ検出手段により、前記先端部の軌跡に基づいて検出されたジェスチャに応じて、前記先端部の追跡優先度を設定する追跡優先度設定手段とを含み、
前記追跡手段は、前記先端部のそれぞれの前記追跡優先度に基づいて、それぞれの前記尤度を設定する画像処理装置の画像処理方法であって、
前記奥行画像取得手段における、前記撮像される２次元の画像の画素単位の、前記画像内の被写体の撮像位置からの距離の情報からなる奥行画像を取得する奥行画像取得ステップと、
前記局所先端部検出手段における、前記奥行画像における、隣接する複数の画素毎に構成されるブロック単位で、撮像位置から近い部分の奥行、および位置を局所先端部として検出する局所先端部検出ステップと、
前記凸部検出手段における、前記ブロックの各々を注目ブロックとする場合、前記注目ブロックを含む、前記注目ブロックに隣接する複数の前記ブロックで構成される領域における前記注目ブロックの前記局所先端部が、前記領域内において最も前記撮像位置から近い局所先端部となるとき、その局所先端部を凸部として検出する凸部検出ステップと、
前記追跡手段における、前記凸部検出ステップの処理により検出された凸部の位置の連続的な追跡を開始し、以降においては、直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されるとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される凸部の位置を追跡し、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されないとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される前記局所先端部の位置を、前記凸部の位置として追跡し、追跡する前記凸部の位置、または前記局所先端部の位置のいずれかを、先端部の位置として追跡し、前記先端部のそれぞれに尤度を設定し、前記尤度が所定の閾値よりも小さくなった前記先端部の追跡を終了する追跡ステップと、
前記ジェスチャ検出手段における、前記追跡ステップの処理により追跡された前記凸部の位置の軌跡を、前記画像に撮像される被写体の動作として認識し、前記軌跡に基づいて、前記被写体の動作によるジェスチャを検出するジェスチャ検出ステップと、
前記追跡優先度設定手段における、前記ジェスチャ検出手段により、前記先端部の軌跡に基づいて検出されたジェスチャに応じて、前記先端部の追跡優先度を設定する追跡優先度設定ステップとを含み、
前記追跡ステップの処理は、前記先端部のそれぞれの前記追跡優先度に基づいて、それぞれの前記尤度を設定する
画像処理方法。
【請求項３】
撮像される２次元の画像の画素単位の、前記画像内の被写体の撮像位置からの距離の情報からなる奥行画像を取得する奥行画像取得手段と、
前記奥行画像における、隣接する複数の画素毎に構成されるブロック単位で、撮像位置から近い部分の奥行、および位置を局所先端部として検出する局所先端部検出手段と、
前記ブロックの各々を注目ブロックとする場合、前記注目ブロックを含む、前記注目ブロックに隣接する複数の前記ブロックで構成される領域における前記注目ブロックの前記局所先端部が、前記領域内において最も前記撮像位置から近い局所先端部となるとき、その局所先端部を凸部として検出する凸部検出手段と、
前記凸部検出手段により検出された凸部の位置の連続的な追跡を開始し、以降においては、直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されるとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される凸部の位置を追跡し、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されないとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される前記局所先端部の位置を、前記凸部の位置として追跡し、追跡する前記凸部の位置、または前記局所先端部の位置のいずれかを、先端部の位置として追跡し、前記先端部のそれぞれに尤度を設定し、前記尤度が所定の閾値よりも小さくなった前記先端部の追跡を終了する追跡手段と、
前記追跡手段により追跡された前記凸部の位置の軌跡を、前記画像に撮像される被写体の動作として認識し、前記軌跡に基づいて、前記被写体の動作によるジェスチャを検出するジェスチャ検出手段と、
前記ジェスチャ検出手段により、前記先端部の軌跡に基づいて検出されたジェスチャに応じて、前記先端部の追跡優先度を設定する追跡優先度設定手段とを含み、
前記追跡手段は、前記先端部のそれぞれの前記追跡優先度に基づいて、それぞれの前記尤度を設定する画像処理装置を制御するコンピュータに、
前記奥行画像取得手段における、前記撮像される２次元の画像の画素単位の、前記画像内の被写体の撮像位置からの距離の情報からなる奥行画像を取得する奥行画像取得ステップと、
前記局所先端部検出手段における、前記奥行画像における、隣接する複数の画素毎に構成されるブロック単位で、撮像位置から近い部分の奥行、および位置を局所先端部として検出する局所先端部検出ステップと、
前記凸部検出手段における、前記ブロックの各々を注目ブロックとする場合、前記注目ブロックを含む、前記注目ブロックに隣接する複数の前記ブロックで構成される領域における前記注目ブロックの前記局所先端部が、前記領域内において最も前記撮像位置から近い局所先端部となるとき、その局所先端部を凸部として検出する凸部検出ステップと、
前記追跡手段における、前記凸部検出ステップの処理により検出された凸部の位置の連続的な追跡を開始し、以降においては、直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されるとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される凸部の位置を追跡し、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されないとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される前記局所先端部の位置を、前記凸部の位置として追跡し、追跡する前記凸部の位置、または前記局所先端部の位置のいずれかを、先端部の位置として追跡し、前記先端部のそれぞれに尤度を設定し、前記尤度が所定の閾値よりも小さくなった前記先端部の追跡を終了する追跡ステップと、
前記ジェスチャ検出手段における、前記追跡ステップの処理により追跡された前記凸部の位置の軌跡を、前記画像に撮像される被写体の動作として認識し、前記軌跡に基づいて、前記被写体の動作によるジェスチャを検出するジェスチャ検出ステップと、
前記追跡優先度設定手段における、前記ジェスチャ検出手段により、前記先端部の軌跡に基づいて検出されたジェスチャに応じて、前記先端部の追跡優先度を設定する追跡優先度設定ステップとを含む処理を実行させ、
前記追跡ステップの処理は、前記先端部のそれぞれの前記追跡優先度に基づいて、それぞれの前記尤度を設定する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、撮像された人物のジェスチャを容易に認識できるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
人間のジェスチャ動作を画像処理によって認識させるジェスチャ認識装置が知られている。
【０００３】
例えば、フレーム画像を複数の画像ブロックに分割し、画像ブロック毎にフレーム間の変化を算出して、ジェスチャを判別する技術が提案されている（特許文献１参照）。
【０００４】
また、Time-of-flightを用いて奥行き画像を取得し、全体の奥行き分布（ヒストグラム）を算出した上で、奥行き方向の閾値を決定し、注目領域(ROI)である手と腕部分をラベリングし切り出した上で、その中心点を求めて、ジェスチャ操作の座標とする技術が提案されている（非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−０６４１９９号公報
【非特許文献】
【０００６】
【非特許文献１】YANG-Keun Ahn, Young-Choong Park, Kwang-Soon Choi, Woo-Chool Park, Hae-Moon Seo, Kwang-Mo Jung, “3D Spatial Touch System Based on Time-of-flight Camera”, WSEAS TRANSACTIONS on INFORMATION SCIENCE and APPLICATIONS, Issue 9, Volume 6, September 2009
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の方法では、認識対象の背後に激しい動きがあると、正常な認識を行うことができない恐れがあった。
【０００８】
また、非特許文献１の技術においては、注目領域を定めるためのラベリング処理が必要であり、処理時間コストが大きい。また、非特許文献１の技術においては、ラベリングを行うにあたって、閾値を設ける必要があり、汎用性に乏しいという問題がある。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、特に、画像内の被写体の画素単位の撮像位置からの距離の情報からなる奥行画像が取得できることを前提として、奥行画像より局所先端部を求め、そのうちフレーム単位で連続的な軌跡を求めて、その軌跡よりジェスチャを認識するようにすることで、処理負荷を低減しつつ、正確にジェスチャを認識できるようにするものである。
【課題を解決するための手段】
【００１０】
本発明の一側面の画像処理装置は、撮像される２次元の画像の画素単位の、前記画像内の被写体の撮像位置からの距離の情報からなる奥行画像を取得する奥行画像取得手段と、前記奥行画像における、隣接する複数の画素毎に構成されるブロック単位で、撮像位置から近い部分の奥行、および位置を局所先端部として検出する局所先端部検出手段と、前記ブロックの各々を注目ブロックとする場合、前記注目ブロックを含む、前記注目ブロックに隣接する複数の前記ブロックで構成される領域における前記注目ブロックの前記局所先端部が、前記領域内において最も前記撮像位置から近い局所先端部となるとき、その局所先端部を凸部として検出する凸部検出手段と、前記凸部検出手段により検出された凸部の位置の連続的な追跡を開始し、以降においては、直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されるとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される凸部の位置を追跡し、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されないとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される前記局所先端部の位置を、前記凸部の位置として追跡し、追跡する前記凸部の位置、または前記局所先端部の位置のいずれかを、先端部の位置として追跡し、前記先端部のそれぞれに尤度を設定し、前記尤度が所定の閾値よりも小さくなった前記先端部の追跡を終了する追跡手段と、前記追跡手段により追跡された前記凸部の位置の軌跡を、前記画像に撮像される被写体の動作として認識し、前記軌跡に基づいて、前記被写体の動作によるジェスチャを検出するジェスチャ検出手段と、前記ジェスチャ検出手段により、前記先端部の軌跡に基づいて検出されたジェスチャに応じて、前記先端部の追跡優先度を設定する追跡優先度設定手段とを含み、前記追跡手段は、前記先端部のそれぞれの前記追跡優先度に基づいて、それぞれの前記尤度を設定する。
【００１５】
本発明の一側面の画像処理方法は、撮像される２次元の画像の画素単位の、前記画像内の被写体の撮像位置からの距離の情報からなる奥行画像を取得する奥行画像取得手段と、前記奥行画像における、隣接する複数の画素毎に構成されるブロック単位で、撮像位置から近い部分の奥行、および位置を局所先端部として検出する局所先端部検出手段と、前記ブロックの各々を注目ブロックとする場合、前記注目ブロックを含む、前記注目ブロックに隣接する複数の前記ブロックで構成される領域における前記注目ブロックの前記局所先端部が、前記領域内において最も前記撮像位置から近い局所先端部となるとき、その局所先端部を凸部として検出する凸部検出手段と、前記凸部検出手段により検出された凸部の位置の連続的な追跡を開始し、以降においては、直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されるとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される凸部の位置を追跡し、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されないとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される前記局所先端部の位置を、前記凸部の位置として追跡し、追跡する前記凸部の位置、または前記局所先端部の位置のいずれかを、先端部の位置として追跡し、前記先端部のそれぞれに尤度を設定し、前記尤度が所定の閾値よりも小さくなった前記先端部の追跡を終了する追跡手段と、前記追跡手段により追跡された前記凸部の位置の軌跡を、前記画像に撮像される被写体の動作として認識し、前記軌跡に基づいて、前記被写体の動作によるジェスチャを検出するジェスチャ検出手段と、前記ジェスチャ検出手段により、前記先端部の軌跡に基づいて検出されたジェスチャに応じて、前記先端部の追跡優先度を設定する追跡優先度設定手段とを含み、前記追跡手段は、前記先端部のそれぞれの前記追跡優先度に基づいて、それぞれの前記尤度を設定する画像処理装置の画像処理方法であって、前記奥行画像取得手段における、前記撮像される２次元の画像の画素単位の、前記画像内の被写体の撮像位置からの距離の情報からなる奥行画像を取得する奥行画像取得ステップと、前記局所先端部検出手段における、前記奥行画像における、隣接する複数の画素毎に構成されるブロック単位で、撮像位置から近い部分の奥行、および位置を局所先端部として検出する局所先端部検出ステップと、前記凸部検出手段における、前記ブロックの各々を注目ブロックとする場合、前記注目ブロックを含む、前記注目ブロックに隣接する複数の前記ブロックで構成される領域における前記注目ブロックの前記局所先端部が、前記領域内において最も前記撮像位置から近い局所先端部となるとき、その局所先端部を凸部として検出する凸部検出ステップと、前記追跡手段における、前記凸部検出ステップの処理により検出された凸部の位置の連続的な追跡を開始し、以降においては、直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されるとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される凸部の位置を追跡し、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されないとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される前記局所先端部の位置を、前記凸部の位置として追跡し、追跡する前記凸部の位置、または前記局所先端部の位置のいずれかを、先端部の位置として追跡し、前記先端部のそれぞれに尤度を設定し、前記尤度が所定の閾値よりも小さくなった前記先端部の追跡を終了する追跡ステップと、前記ジェスチャ検出手段における、前記追跡ステップの処理により追跡された前記凸部の位置の軌跡を、前記画像に撮像される被写体の動作として認識し、前記軌跡に基づいて、前記被写体の動作によるジェスチャを検出するジェスチャ検出ステップと、前記追跡優先度設定手段における、前記ジェスチャ検出手段により、前記先端部の軌跡に基づいて検出されたジェスチャに応じて、前記先端部の追跡優先度を設定する追跡優先度設定ステップとを含み、前記追跡ステップの処理は、前記先端部のそれぞれの前記追跡優先度に基づいて、それぞれの前記尤度を設定する。
【００１６】
本発明の一側面のプログラムは、撮像される２次元の画像の画素単位の、前記画像内の被写体の撮像位置からの距離の情報からなる奥行画像を取得する奥行画像取得手段と、前記奥行画像における、隣接する複数の画素毎に構成されるブロック単位で、撮像位置から近い部分の奥行、および位置を局所先端部として検出する局所先端部検出手段と、前記ブロックの各々を注目ブロックとする場合、前記注目ブロックを含む、前記注目ブロックに隣接する複数の前記ブロックで構成される領域における前記注目ブロックの前記局所先端部が、前記領域内において最も前記撮像位置から近い局所先端部となるとき、その局所先端部を凸部として検出する凸部検出手段と、前記凸部検出手段により検出された凸部の位置の連続的な追跡を開始し、以降においては、直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されるとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される凸部の位置を追跡し、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されないとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される前記局所先端部の位置を、前記凸部の位置として追跡し、追跡する前記凸部の位置、または前記局所先端部の位置のいずれかを、先端部の位置として追跡し、前記先端部のそれぞれに尤度を設定し、前記尤度が所定の閾値よりも小さくなった前記先端部の追跡を終了する追跡手段と、前記追跡手段により追跡された前記凸部の位置の軌跡を、前記画像に撮像される被写体の動作として認識し、前記軌跡に基づいて、前記被写体の動作によるジェスチャを検出するジェスチャ検出手段と、前記ジェスチャ検出手段により、前記先端部の軌跡に基づいて検出されたジェスチャに応じて、前記先端部の追跡優先度を設定する追跡優先度設定手段とを含み、前記追跡手段は、前記先端部のそれぞれの前記追跡優先度に基づいて、それぞれの前記尤度を設定する画像処理装置を制御するコンピュータに、前記奥行画像取得手段における、前記撮像される２次元の画像の画素単位の、前記画像内の被写体の撮像位置からの距離の情報からなる奥行画像を取得する奥行画像取得ステップと、前記局所先端部検出手段における、前記奥行画像における、隣接する複数の画素毎に構成されるブロック単位で、撮像位置から近い部分の奥行、および位置を局所先端部として検出する局所先端部検出ステップと、前記凸部検出手段における、前記ブロックの各々を注目ブロックとする場合、前記注目ブロックを含む、前記注目ブロックに隣接する複数の前記ブロックで構成される領域における前記注目ブロックの前記局所先端部が、前記領域内において最も前記撮像位置から近い局所先端部となるとき、その局所先端部を凸部として検出する凸部検出ステップと、前記追跡手段における、前記凸部検出ステップの処理により検出された凸部の位置の連続的な追跡を開始し、以降においては、直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されるとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される凸部の位置を追跡し、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されないとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される前記局所先端部の位置を、前記凸部の位置として追跡し、追跡する前記凸部の位置、または前記局所先端部の位置のいずれかを、先端部の位置として追跡し、前記先端部のそれぞれに尤度を設定し、前記尤度が所定の閾値よりも小さくなった前記先端部の追跡を終了する追跡ステップと、前記ジェスチャ検出手段における、前記追跡ステップの処理により追跡された前記凸部の位置の軌跡を、前記画像に撮像される被写体の動作として認識し、前記軌跡に基づいて、前記被写体の動作によるジェスチャを検出するジェスチャ検出ステップと、前記追跡優先度設定手段における、前記ジェスチャ検出手段により、前記先端部の軌跡に基づいて検出されたジェスチャに応じて、前記先端部の追跡優先度を設定する追跡優先度設定ステップとを含む処理を実行させ、前記追跡ステップの処理は、前記先端部のそれぞれの前記追跡優先度に基づいて、それぞれの前記尤度を設定する。
【００１７】
本発明の一側面においては、撮像される２次元の画像の画素単位の、前記画像内の被写体の撮像位置からの距離の情報からなる奥行画像が取得され、前記奥行画像における、隣接する複数の画素毎に構成されるブロック単位で、撮像位置から近い部分の奥行、および位置が局所先端部として検出され、前記ブロックの各々を注目ブロックとする場合、前記注目ブロックを含む、前記注目ブロックに隣接する複数の前記ブロックで構成される領域における前記注目ブロックの前記局所先端部が、前記領域内において最も前記撮像位置から近い局所先端部となるとき、その局所先端部が凸部として検出され、検出された凸部の位置の連続的な追跡が開始され、以降においては、直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されるとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される凸部の位置が追跡され、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に前記凸部が検出されないとき、前記直前に検出された凸部の位置から所定近傍範囲内で時間方向に連続的に検出される前記局所先端部の位置が、前記凸部の位置として追跡され、追跡される前記凸部の位置、または前記局所先端部の位置のいずれかが、先端部の位置として追跡され、前記先端部のそれぞれに尤度が設定され、前記尤度が所定の閾値よりも小さくなった前記先端部の追跡が終了され、追跡された前記凸部の位置の軌跡が、前記画像に撮像される被写体の動作として認識され、前記軌跡に基づいて、前記被写体の動作によるジェスチャが検出され、前記先端部の軌跡に基づいて検出されたジェスチャに応じて、前記先端部の追跡優先度が設定され、前記先端部のそれぞれの前記追跡優先度に基づいて、それぞれの前記尤度が設定される。
【００１８】
本発明の画像処理装置は、独立した装置であっても良いし、画像処理を行うブロックであっても良い。
【発明の効果】
【００１９】
本発明の一側面によれば、画像内の被写体の画素単位の撮像位置からの距離に応じた値で構成される奥行画像に基づいて、時間的に連続して検出される局所先端部の位置の軌跡により撮像される画像内の人物によるジェスチャを容易に認識することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
【図２】図１の画像処理装置による画像処理を説明するフローチャートである。
【図３】入力画像および奥行画像を説明する図である。
【図４】平滑化された奥行画像を説明する図である。
【図５】局所先端部を説明する図である。
【図６】凸部情報の検出方法を説明する図である。
【図７】凸部情報の検出結果を示す図である。
【図８】凸部追跡処理を説明するフローチャートである。
【図９】凸部情報の構造を説明する図である。
【図１０】凸部情報の更新を説明する図である。
【図１１】先端部追跡処理を説明するフローチャートである。
【図１２】先端部情報の構造を説明する図である。
【図１３】先端部情報と追跡IDを説明する図である。
【図１４】先端部情報の更新を説明する図である。
【図１５】凸部未検出先端部情報更新処理を説明するフローチャートである。
【図１６】新規の先端部情報の生成を説明する図である。
【図１７】重複した先端部情報を説明する図である。
【図１８】軌跡として検出されるジェスチャを説明する図である。
【図１９】追跡優先度情報を説明する図である。
【図２０】追跡優先度の設定方法を説明する図である。
【図２１】汎用のパーソナルコンピュータの構成例を説明する図である。
【発明を実施するための最良の形態】
【００２１】
［画像処理装置の構成例］
図１は、本発明を適用した画像処理装置のハードウェアの一実施の形態の構成例を示している。図１の画像処理装置１１は、撮像された画像の供給を受けると、画像内に被写体として含まれている人物のジェスチャを検出し、検出したジェスチャの情報を出力する。
【００２２】
より具体的には、画像処理装置１１は、奥行画像生成部１０１、局所先端検出部１０２、凸部検出部１０３、凸部追跡部１０４、先端追跡部１０５、軌跡ジェスチャ検出部１０６、追跡優先度設定部１０７、および追跡優先度記憶部１０８を備えている。
【００２３】
奥行画像生成部１０１は、入力される撮像された画像における画素単位で撮像位置から被写体までの距離に対応する値からなる奥行画像を生成して局所先端検出部１０２に供給する。
【００２４】
また、奥行画像生成部１０１は、平滑化部１０１ａを備えており、生成した奥行画像を平滑化する。すなわち、奥行画像は、撮像画像に含まれるイメージセンサのノイズや、視点の違いによる反射具合の違いなど、左右間で相関の無いエラーが多く含まれており、この影響を統計的に小さくするために平滑化される。
【００２５】
局所先端検出部１０２は、奥行画像生成部１０１より供給されてくる奥行画像を16ピクセル×16ピクセルなどのブロック単位に分割し、ブロック単位で、撮像位置から近い部分、すなわち、手前である部分の領域情報（座標）を局所先端部として検出する。そして、局所先端検出部１０２は、検出結果である局所先端部の情報を凸部検出部１０３、および先端追跡部１０５に供給する。尚、以降においては、奥行画像は、手前（撮像位置側）へ近づくほど値が大きく、逆に、撮像位置から離れるほど小さくなる値（ディスパリティ値）となる奥行値が画素単位で格納された画像であるものとして説明を進めるものとする。しかしながら、奥行値は、撮像位置から被写体までの距離に応じたものであればよく、撮像位置からの距離が近いほど小さな値となり、遠いほど大きな値となる、いわゆる、距離値を用いるようにしてもよい。
【００２６】
凸部検出部１０３は、凸部情報更新部１１１を制御して、局所先端検出部１０２が出力したブロック領域毎の局所先端部の情報に基づいて、例えば、各ブロックを注目ブロックとするとき、注目ブロックと上下左右および斜め方向に隣接する8ブロックを合わせた3ブロック×3ブロックの領域の各ブロックの局所先端部の値のうち、注目ブロックの局所先端部の値が領域内で最大値となるとき、その注目ブロックの局所先端部を凸部として検出し、その情報を凸部情報として凸部追跡部１０４に供給する。尚、注目ブロックに対して設定される領域は、上述した９ブロックに限るものではなく、それ以外の数のブロックにより設定される領域であっても良いものである。
【００２７】
凸部追跡部１０４は、凸部情報更新部１１１、および凸部情報記憶部１１２を備えている。凸部追跡部１０４の凸部情報更新部１１１は、凸部検出部１０３で検出した凸部の位置を含む凸部情報が、前フレームの凸部の位置の所定の近傍範囲内であるとき、同一の凸部を連続して検出したものとみなし、連続して検出された回数のカウントすることにより凸部を追跡し、追跡結果を凸部情報として凸部情報記憶部１１２に記憶させて更新する。
【００２８】
先端追跡部１０５は、先端部情報更新部１２１を制御して、凸部追跡部１０４において検出された、一定フレーム数以上（例えば、８フレーム以上）連続して凸部として検出されたディスパリティが極大となるピクセルの位置、すなわち、局所先端部の位置を、画像内に被写体として含まれている人間のジェスチャ軌跡による先端部と仮定する。そして、先端追跡部１０５は、この先端部の位置を追跡し、順次更新される先端部の位置の情報を先端部情報として先端部情報記憶部１２２に順次更新して記憶させる。この際、先端部更新部１２１は、凸部の追跡開始後は、凸部追跡部１０４が出力する凸部情報に基づいて、直前のフレームで検出された凸部の位置から所定の近傍範囲内で凸部が検出されるとき、同一の凸部が連続して検出されたものとする。そして、先端部情報更新部１２１は、その凸部の位置を被写体の動作に応じてジェスチャを構成する先端部の位置として追跡し、追跡結果を先端部情報として先端部情報記憶部１２２に記憶させる。
【００２９】
また、先端追跡部１０５は、凸部の追跡開始後は、凸部追跡部１０４が出力する凸部情報に基づいて、直前のフレームで検出された凸部の位置から所定の近傍範囲内で凸部が検出されないとき、局所先端検出部１０２により検出されたブロック毎の局所先端部の情報に基づいて、直前のフレームで検出された凸部の位置から所定の近傍範囲内に存在する局所先端部を連続して検出される先端部の位置として追跡し、先端部情報記憶部１２２に記憶されている先端部情報を順次更新する。また、先端部情報更新部１２１は、先端部情報として先端部の位置と共に尤度を設定し、凸部の追跡ができず、局所先端部を持って先端部の位置を更新するとき、対応する先端部情報の尤度を減衰させ、尤度が所定の閾値よりも小さくなるとき、対応する先端部情報を先端部情報記憶部１２２より削除する。さらに、先端部情報更新部１２１は、追跡優先度記憶部１０８に格納されている、先端部情報毎に設定される追跡IDに対応づけて設定される追跡優先度の情報に基づいて、追跡IDに対応する先端部情報の尤度を計算する。
【００３０】
軌跡ジェスチャ検出部１０６は、先端追跡部１０５の先端部情報記憶部１２２に記憶されている先端部情報の位置情報（座標情報）を、ジェスチャをする際の手先、または指先などの被写体の動作に応じたジェスチャを構成する先端部の軌跡として用いて、ジェスチャを検出し、検出結果であるジェスチャの情報を出力する。また、軌跡ジェスチャ検出部１０６は、検出結果であるジェスチャの情報を追跡優先度設定部１０７にも供給する。軌跡ジェスチャ検出部１０６は、例えば、先端部情報に含まれる位置情報（座標情報）の軌跡を用いたジェスチャ認識手法の一例として、隠れマルコフモデル(HMM)を用いて、軌跡の時間的な変化量を解析することでジェスチャを認識する。尚、このジェスチャ認識手法についての詳細は、An HMM-Based Threshold Model Approach for Gesture Recognition，Hyeon-Kyu Lee and Jin H. Kimを参照されたい。
【００３１】
追跡優先度設定部１０７は、軌跡ジェスチャ検出部１３１によるジェスチャ検出結果に基づいて、軌跡を構成し、追跡対象となる先端部情報を識別する追跡IDに対応付けて優先度を設定し、フレーム単位で追跡優先度記憶部１０８に記憶させる。追跡優先度設定部１０７は、例えば、円形の閉路を描くような軌跡を検出したとき、優先度を高く設定する。
【００３２】
［画像処理］
次に、図２のフローチャートを参照して、図１の画像処理装置１１による画像処理について説明する。
【００３３】
ステップＳ１１において、奥行画像生成部１０１は、入力される撮像された画像における画素単位で撮像位置から被写体までの距離に対応する値からなる奥行画像を生成する。より詳細には、奥行画像生成部１０１は、例えば、異なる位置に設けられた２台以上のカメラを用いて撮像した複数枚の画像間の対応点をステレオマッチングなどのアルゴリズムで探索し、互いに基準画像上の画素と、参照画像上の画素の位置の視差を求め、三角測量の原理により、画素単位で撮像位置から被写体までの距離に応じて、例えば、撮像位置に近いほど大きく、撮像位置から離れるに従って小さくなる値（ディスパリティ）を求め、画素単位に求められた距離に対応した画素値からなる奥行画像を生成する。また、撮像された画像について、奥行画像が求められればよいので、これ以外の方法で奥行画像を生成するようにしてもよく、例えば、奥行画像生成部１０１は、TOF(Time Of Flight)と呼ばれる、撮像位置から被写体に向けて発光した近赤外線などの測距光が被写体に発射し戻ってくるまでの時間を画素単位で計測することにより、画素単位で撮像位置から被写体までの距離を求めて、これを用いて奥行画像を生成するようにしてもよい。
【００３４】
この結果、例えば、図３の画像Ｐ１で示されるように左上部に太陽があり、右上部に雲があり、中央下部に人物が存在するような入力画像が入力されると、図３の画像Ｐ２で示されるように、撮像位置から見て、最も手前に存在するであろう人物の手先近傍が最も高い画素値となり、背景となるものが低い画素値となる画像が得られることになる。
【００３５】
ステップＳ１２において、平滑化部１０１ａは、例えば、以下の式（１）で示される演算により、奥行画像の各画素を基準として、例えば、８画素（ピクセル）×８画素（ピクセル）の範囲の画素の画素値の移動平均値に置換することにより、ディスパリティからなる画素値を平滑化する。そして、奥行画像生成部１０１は、平滑化された奥行画像を局所先端検出部１０２に供給する。
【００３６】
【数１】
0005648443.tif 000002
・・・（１）
【００３７】
ここで、g(x,y)は、平滑化された奥行画像の画素値を表しており、f(x,y)は平滑化される前の奥行画像の画素値を表しており、i,jは、それぞれ奥行画像におけるx方向、およびy方向の範囲を表している。この処理により、例えば、平滑化されるまでの奥行画像が、図３の画像Ｐ２であるような場合、図４で示されるような平滑化された奥行画像である画像Ｐ１１が求められる。画像Ｐ１１は、画像Ｐ２が平滑化されることにより、全体としてぼんやりとしたような画像となる。尚、平滑化する際、各画素について周辺の画素の画素値の移動平均値が求められればよく、各画素について周辺画素の範囲は、近傍の複数の画素から構成できればよいため、８画素×８画素の範囲以外であってもよい。
【００３８】
ステップＳ１３において、局所先端検出部１０２は、平滑化された奥行画像を、例えば、図５で示される画像Ｐ２１で示されるように、16画素（ピクセル）×16画素（ピクセル）の単位でブロックに分割し、各ブロック単位で平滑化された奥行画像の画素のうち、画素値が最大となる画素g(umn,vmn)を局所先端部として検出し、その画素の画素値g(umn,vmn)、および位置座標(umn,vmn)を凸部検出部１０３、および先端追跡部１０５に供給する。尚、図５における丸印で示される画素は、各ブロックにおける局所先端部を示している。ここで、m,nは、各ブロック内におけるx方向、およびy方向の座標位置(m,n)を表している。また、ブロックのサイズは、16画素（ピクセル）×16画素（ピクセル）に限るものではなく、それ以外のサイズであってもよい。
【００３９】
ステップＳ１４において、凸部検出部１０３は、各ブロックについて、上下左右、および斜め方向に隣接する８ブロックを含む３ブロック×３ブロックの合計９ブロックの局所先端部のうち、中心となるブロックの局所先端部の画素値が最大となる否かにより凸部を検出し、凸部を検出したとき、凸部の画素位置の位置座標を凸部追跡部１０４に供給する。
【００４０】
すなわち、例えば、図６の左部で示される画像Ｐ３１が白線で示されるようにブロックに分割されている場合、画像Ｐ３１の全ブロックのうち、図６の右上部で示されるブロックＢ２２が注目ブロックであって、ブロックＢ１１乃至Ｂ１３，Ｂ２１乃至Ｂ２３、およびＢ３１乃至Ｂ３３における９ブロックについては、注目ブロックであるブロックＢ２２の局所先端部の画素値が、９ブロックの局所先端部の画素値のうちの最大値であるので、ブロックＢ２２の局所先端部は凸部として検出される。
【００４１】
一方、画像Ｐ３１の全ブロックのうち、図６の右下部で示されるブロックＢ１２が注目ブロックであって、ブロックＢ１乃至Ｂ３，Ｂ１１乃至Ｂ１３、およびＢ２１乃至Ｂ２３における９ブロックについては、注目ブロックであるブロックＢ１２の局所先端部の画素値が、９ブロックの局所先端部の画素値のうちの最大値ではなく、ブロックＢ２２の局所先端部が最大値となるので、ブロックＢ１２の局所先端部は凸部として検出されない。
【００４２】
凸部検出部１０３が、例えば、図７の画像Ｐ３１の全ブロックに対して上述した処理を実行することにより、図７中の×印で示される局所先端部が、凸部として検出されることになる。尚、図７においては、画像Ｐ３１に被写体である人物の顔、および左右の手の局所先端部が凸部として検出されると共に、右上部に撮像に際して発生したノイズが凸部として誤検出されている。
【００４３】
ステップＳ１５において、凸部情報更新部１１１は、凸部追跡処理を実行し、同一の凸部が連続して検出しているか否かを判定し、判定結果に応じて凸部情報記憶部１１２に記憶されている凸部情報を更新する。
【００４４】
［凸部追跡処理］
ここで、図８のフローチャートを参照して、凸部追跡処理について説明する。
【００４５】
ステップＳ４１において、凸部情報更新部１１１は、凸部情報記憶部１１２にアクセスし、１フレーム前の凸部情報が登録されているか否かを判定する。凸部情報記憶部１１２には、図９で示されるような凸部情報が、凸部として検出された局所先端部毎に登録されており、最初に凸部として検出されたフレームにおける局部先端部毎の情報として登録され、以降のフレームにおいて同一の凸部とみなされる凸部情報が順次更新されていく。すなわち、図９においては、上から最新フレーム凸部座標(x,y)、凸部連続検出回数N、および旧フレーム凸部座標(x',y')が格納されている。最新フレーム凸部座標(x,y)は、最新のフレームにおける凸部として検出された局所先端部の画像内における座標である。また、凸部連続検出回数Nは、連続するフレームで、同一の凸部として検出された局所先端部が連続して検出された回数である。さらに、旧フレーム凸部座標(x',y')は、直前のフレームにおいて凸部として検出された局所先端部の画像内における座標である。
【００４６】
また、凸部情報記憶部１１２は、図１０で示されるように、記憶領域が２面設けられており、フレーム単位で交互に凸部情報を記憶する。すなわち、凸部情報記憶部１１２に設けられている第１の面Ｓｔ１に直前のフレームの凸部情報として、凸部情報Ｉ１乃至Ｉ４が登録されているものとする。このような場合、凸部情報記憶部１１２の第２の面Ｓｔ２に、次のフレームの凸部情報として、例えば、新規の凸部情報が検出されると、凸部情報Ｉ１’に登録され、凸部情報Ｉ１，Ｉ３と同一の凸部が検出されると、それぞれの凸部連続検出回数Nが１インクリメントされて凸部情報Ｉ２’，Ｉ４’として更新され、凸部情報Ｉ３と同一の凸部が検出されないので、凸部情報Ｉ３が消去されるといった管理がなされる。そして、さらに次ぎのフレームの凸部情報については、第１の面Ｓｔ１の情報が一旦クリアされて、新たに登録されるといった処理が繰り返される。
【００４７】
すなわち、新たなフレームにおいて、直前のフレームで検出された凸部と同一のものとみられる凸部が検出されると、直前のフレームにおける最新フレーム凸部座標(x,y)が、旧フレーム凸部座標(x',y')に上書きされて、最新のフレームで検出された凸部の座標が最新フレーム凸部座標(x,y)に新たに上書きされ、これが繰り返されることになる。また、連続するフレームで同一の凸部が検出される場合、凸部連続検出回数Nは１インクリメントされることになり、連続するフレームで同一の凸部が検出されない場合、凸部情報は削除される。
【００４８】
そこで、凸部情報更新部１１１は、凸部情報記憶部１１２の直前のフレームに対応する第１の面Ｓｔ１、または第２の面Ｓｔ２のいずれかに登録される凸部情報を読み出し、１フレーム前の凸部情報が登録されているか否かを判定する。
【００４９】
ステップＳ４１において、例えば、少なくとも１以上の凸部情報が登録されている場合、処理は、ステップＳ４２に進む。
【００５０】
ステップＳ４２において、凸部情報更新部１１１は、凸部情報記憶部１１２に格納されている、１フレーム前の凸部情報の最新フレーム凸部座標(x,y)全てを参照し、検出された凸部検出座標(xn,yn)とのユークリッド距離d(x,y)を以下の式（２）を計算することにより求める。
【００５１】
d(x,y)＝√（（x−xn）2＋（y−yn）2）
・・・（２）
【００５２】
ここで、xn,ynは、それぞれ検出された凸部の画像内におけるx,y座標である。尚、以降においては、ユークリッド距離d(x,y)が最小となる１フレーム前の最新フレーム凸部座標(x,y)を座標(xold,yold)とし、座標(xold,yold)に対応する他の凸部情報の各要素とし、凸部連続検出回数NをNoldとし、旧フレーム凸部座標(x',y')は座標(x'old,y'old)と表すものとする。
【００５３】
ステップＳ４３において、凸部情報更新部１１１は、新たに検出された凸部と、登録済みの凸部との距離が最小となるユークリッド距離d(xold,yold)が、所定の閾値ｔｈ１よりも十分に小さく、フレーム間で移動した同一の凸部とみなせるか否かを判定する。すなわち、フレーム間で移動したとみなせる凸部同士であるか否かが判定される。ステップＳ４３において、例えば、ユークリッド距離d(xold,yold)が、所定の閾値ｔｈ１よりも十分に小さく、フレーム間で移動した同一の凸部とみなせると判定された場合、処理は、ステップＳ４４に進む。
【００５４】
ステップＳ４４において、凸部情報更新部１１１は、凸部情報記憶部１１２に記憶されている、凸部情報のうち、直前のフレームから連続して検出される、同一の凸部として認識された凸部情報における、凸部連続検出回数Nの値に１を加算して、凸部連続検出回数N（＝Nold＋１）を更新する。また、凸部情報更新部１１１は、同一の凸部として認識された凸部情報における、旧フレーム凸部座標(x'old,y'old)を、最新フレーム凸部座標(xold,yold)で更新する。
【００５５】
ステップＳ４５において、凸部情報更新部１１１は、凸部情報記憶部１１２に記憶されている、凸部情報のうち、直前のフレームから連続して検出される、同一の凸部として認識された凸部情報における、最新フレーム凸部座標(xold,yold)を、今現在のフレームの凸部として検出された局所先端部である凸部検出座標(xn,yn)で更新する。凸部情報更新部１１１は、このように更新された最新フレーム凸部座標(xn,yn)、凸部連続検出回数N、および旧フレーム凸部座標(xold,yold)により凸部情報を更新して、凸部情報記憶部１１２に記憶させる。
【００５６】
一方、ステップＳ４１において、凸部情報が登録されていない場合、または、ステップＳ４３において、例えば、ユークリッド距離d(xold,yold)が、所定の閾値ｔｈ１よりも十分に小さくなく、フレーム間で移動した同一の凸部とみなせないと判定された場合、処理は、ステップＳ４６に進む。
【００５７】
ステップＳ４６において、凸部情報更新部１１１は、凸部連続検出回数NをN=0に初期化し、最新フレーム凸部座標値(x,y)、および旧フレーム凸部座標値(x',y')をいずれも、凸部検出座標(xn,yn)として新規の凸部情報を生成して、凸部情報記憶部１１２に記憶させる。すなわち、例えば、図１０を参照して説明した凸部情報Ｉ１’のように新規の凸部情報として記憶される。
【００５８】
尚、旧フレーム凸部座標値(x',y')が、凸部検出座標(xn,yn)により更新されるのは、新規の凸部情報であり、直前のフレームの凸部座標値が存在しないので、ブランクとされるべきところであるが、凸部情報が不安定とならないようにするためである。尚、この際、連続するフレームで、連続して検出されなかった凸部情報は、凸部情報として更新されず、例えば、図１０を参照して説明した凸部情報Ｉ３のように実質的に削除される。
【００５９】
以上の処理により、局所先端部のうち、凸部として検出されたものが、フレーム間で連続して検出されると、凸部連続検出回数Ｎが順次カウントされると共に、最新フレーム凸部座標値および旧フレーム凸部座標値が対応して更新されて凸部情報として凸部情報記憶部１１２に記憶される。また、連続するフレーム間で同一の凸部情報として検出されることのない凸部情報については、削除される。
【００６０】
ここで、図２のフローチャートの説明に戻る。
【００６１】
ステップＳ１５の凸部追跡処理により凸部情報記憶部１１２に順次検出される凸部の凸部情報が更新されて記憶されると、処理は、ステップＳ１６に進む。
【００６２】
ステップＳ１６において、先端追跡部１０５の先端部情報更新部１２１は、先端追跡処理を実行し、先端部情報を順次更新して、先端部情報記憶部１２２に記憶させる。
【００６３】
［先端部追跡処理］
ここで、図１１のフローチャートを参照して、先端部追跡処理について説明する。
【００６４】
ステップＳ７１において、先端部情報更新部１２１は、先端部情報記憶部１２２に記憶されている全ての先端部情報の更新フラグｆを更新なしを示す０に初期化する。
【００６５】
先端部情報とは、ジェスチャを構成する被写体の動作の先端である、例えば、手先や指先である先端部の位置を追跡する際に管理される情報である。凸部が検出され続けている場合、先端部の追跡は、検出され続けている凸部の位置情報が先端部の位置の追跡に利用される。また、一旦検出された凸部が検出されない状態となった場合、先端部の追跡は、直前に検出された先端部の位置に近い局所先端部の位置が利用される。より具体的には、先端部情報は、先端部の位置を追跡する際に、追跡すべき先端部を識別する情報であり、例えば、図１２で示されるように、追跡ID、最新フレーム座標(x,y)、尤度p(0≦p≦1.0)、および更新フラグf(f＝0：更新なし，f＝1：更新あり)より構成されている。
【００６６】
先端部IDは、例えば、追跡すべき先端部を識別するID、すなわち、先端部の位置の変移により生じる軌跡を識別するIDである。先端部IDは、例えば、図１３中の下部で示されるように画像内で追跡すべき先端部の軌跡が軌跡ｒ１，ｒ２の場合、それぞれを識別する追跡IDは、追跡ID＝1234，3456といったように付される。先端部情報は、この追跡IDにより識別されて、先端部情報記憶部１２２に登録される。また、最新フレーム座標(x,y)は、追跡IDにより識別されている軌跡の先端部の最新フレームにおける座標であり、凸部記憶部１１２に記憶されている凸部の最新フレーム座標、または、局所先端検出部１０２より供給されてくる局所先端部の最新フレーム座標のいずれかに基づいて設定される。尤度pは、追跡IDにより識別される軌跡の尤もらしさを示す値である。さらに、更新フラグfは、最新フレーム上の凸部情報、または最新フレーム上の局所先端部のいずれかにより更新されたか否かを示すフラグである。すなわち、ステップＳ７１の処理により、いずれの先端部情報も最新のフレーム上の凸部情報、または局所先端部のいずれによっても更新されていない状態に設定される。
【００６７】
ステップＳ７２において、先端部情報更新部１２１は、先端部情報記憶部１２２に登録されている先端部情報の最新フレーム座標を順次読み出し、凸部情報記憶部１１２に記憶されている全ての凸部情報の旧フレーム凸部座標と比較し、一致するものがある場合、先端部情報の最新フレーム座標を、旧フレーム凸部座標と一致した凸部情報の最新フレーム凸部座標で更新し、さらに、更新フラグfを更新したことを示す１に更新する。また、先端部情報更新部１２１は、尤度pを以下の式（３）で示されるように演算して尤度ｐを更新する。
【００６８】
p＝k0×1.0＋（1.0−k0）×p
・・・（３）
【００６９】
ここで、pは、尤度を示し、k0は、凸部として連続的に検出されたときに尤度を高める割合を示す定数であり、例えば、k0＝0.2などである。
【００７０】
すなわち、例えば、図１４で示される先端部情報Ｂに含まれる更新前の最新フレーム座標(x,y)と、凸部情報Ａに含まれる直前のフレームにおける凸部Ｐｆ０の座標位置を示す旧フレーム凸部座標(x',y')とが一致する場合、軌跡として追跡すべき先端部と、その凸部情報で表される凸部とが一致しているものとみなし、最新のフレームにおける凸部Ｐｆ１における凸部情報Ａの最新フレーム凸部座標に置き換えることで、先端部情報Ｂの最新フレーム座標(x,y)を更新する。
【００７１】
この処理により、先端部情報のうち、更新前の最新フレーム座標と、いずれかの凸部情報の旧フレーム凸部座標とが一致する、全ての先端部情報については、最新フレーム座標が更新されて、更新フラグfが１に更新されて、尤度pが高められる。したがって、先端部情報のうち、更新前の最新フレーム座標と、いずれの凸部情報の旧フレーム凸部座標とも一致しない先端部情報については、最新フレーム座標も更新されず、更新フラグfは、０のままとされている。
【００７２】
ステップＳ７３において、先端部情報更新部１２１は、凸部未検出先端部情報更新処理を実行し、先端部情報のうち、更新前の最新フレーム座標と、いずれの凸部情報の旧フレーム凸部座標とも一致しない先端部情報について、局所先端検出部１０２より供給されてくる局所先端部の情報に基づいて、最新フレーム座標の情報を更新し、更新フラグを１に設定する。
【００７３】
［凸部未検出先端部情報更新処理］
ここで、図１５のフローチャートを参照して、凸部未検出先端部情報更新処理について説明する。
【００７４】
ステップＳ９１において、先端部情報更新部１２１は、更新フラグfが0に設定されている未処理の先端部情報のいずれかを、処理対象となる先端部情報に設定し、その最新フレーム座標(X,Y)について、局所先端検出部１０２より供給されてくる全ての局所先端部の座標とのユークリッド距離dを求める。そして、先端部情報更新部１２１は、求められたユークリッド距離dが最小となる局所先端部の座標(u,v)を求める。尚、ユークリッド距離dについては、上述した式（２）と同様の演算により求められる。
【００７５】
ステップＳ９２において、先端部情報更新部１２１は、最小となるユークリッド距離d(u,v)が所定の閾値ｔｈ２よりも十分に小さく、ユークリッド距離が最小となる局所先端部が、追跡IDにより識別される軌跡の先端部の最新フレームにおける座標位置であるか否かを判定する。
【００７６】
ステップＳ９２において、例えば、最小となるユークリッド距離d(u,v)が所定の閾値ｔｈ２よりも十分に小さく、ユークリッド距離が最小となる局所先端部が、追跡IDにより識別される軌跡の先端部の最新フレームにおける座標位置であるとみなされた場合、処理は、ステップＳ９３に進む。
【００７７】
ステップＳ９３において、先端部情報更新部１２１は、局所先端部の座標(u,v)を、処理対象の先端部情報における最新フレーム座標(X,Y)として反映させる。
【００７８】
ステップＳ９４において、先端部情報更新部１２１は、以下の式（４）で示される演算により尤度pを減衰させる。この際、先端部情報更新部１２１は、更新フラグfを更新済みを示す１に設定する。
【００７９】
p=(1.0−k1)×p
・・・（４）
【００８０】
ここで、k1は、凸部未検出時の尤度の減衰割合を定義する定数であり、例えば、k1=0.2などでもよい。
【００８１】
一方、ステップＳ９２において、例えば、最小となるユークリッド距離d(u,v)が所定の閾値ｔｈ２よりも十分に小さくなく、ユークリッド距離が最小となる局所先端部が、追跡IDにより識別される軌跡の先端部の最新フレームにおける座標位置であるとみなせない場合、処理は、ステップＳ９５に進む。
【００８２】
ステップＳ９５において、先端部情報更新部１２１は、処理対象となる先端部情報の近傍に局所先端部が検出されていないことになるため、無効な先端部であるものとみなし、尤度p=0にすると共に、更新フラグfを更新済みを示す１に設定する。
【００８３】
ステップＳ９６において、先端部情報更新部１２１は、更新フラグfが0に設定されている未処理の先端部情報が存在するか否かを判定し、未処理の先端部情報が存在する場合、処理は、ステップＳ９１に戻る。すなわち、更新フラグfが0となっている更新されていない未処理の先端部情報がなくなるまで、ステップＳ９１乃至Ｓ９６の処理が繰り返される。そして、ステップＳ９６において、更新フラグfが0となっている更新されていない未処理の先端部情報がないと判定された場合、処理は終了する。
【００８４】
すなわち、以上の処理により、凸部情報に一致するものがない先端部情報については、全ての局所先端部のうち、最小となるユークリッド距離が所定閾値ｔｈ２よりも小さい場合、先端部情報の最新フレームにおける座標とみなせる局所先端部の座標に設定されて更新され、それ以外の場合、尤度pが0に設定される。
【００８５】
ここで、図１１のフローチャートの説明に戻る。
【００８６】
ステップＳ７３の処理により、凸部情報により最新フレーム座標を更新できなかった先端部情報について、局所先端部により最新フレーム座標が更新されると、処理は、ステップＳ７４に進む。
【００８７】
ステップＳ７４において、先端部情報更新部１２１は、凸部情報記憶部１１２に記憶されている凸部情報のうち、連続検出回数Nが所定回数（例えば、16回）よりも高く、対応する先端部情報が存在しない場合、その連続検出回数Nが所定回数よりも高い凸部情報を用いて、新規の先端部情報を生成する。すなわち、図１６の左部で示されるように、凸部情報の最新フレーム凸部が、凸部Ｐｆ１，・・・Ｐｆ１２乃至Ｐｆ１６のように連続するフレーム間で連続的に検出されて、凸部連続検出回数Ｎが、所定回数を超えると、先端部情報更新部１２１は、新規に追跡すべき軌跡、すなわち、先端部が発生したものとみなす。そして、先端部情報更新部１２１は、新規の追跡IDを設定し、最新フレーム座標として、その連続検出回数Nが所定回数よりも高い凸部情報の最新フレーム凸部座標を用いる。また、先端部情報更新部１２１は、新規の先端部情報の尤度pを、初期値p＝k2（k2は、例えば、0.6など）に設定し、更新フラグfを更新済みを示す１に設定する。そして、先端部情報更新部１２１は、生成した新規の先端部情報を先端部情報記憶部１２２に記憶させる。
【００８８】
ステップＳ７５において、先端部情報更新部１２１は、追跡優先度記憶部１０８に記憶されている、追跡ID毎に登録されている軌跡ジェスチャ検出部１０６の検出結果に基づいて設定される優先度qを読み出し、追跡IDに対応する先端部情報の尤度pを以下の式（５）により更新する。このように優先度qに基づいて、尤度pを更新することにより、軌跡ジェスチャ検出部１０６によりジェスチャ検出された先端部情報の尤度pが高められることとなる。
【００８９】
p＝k3×q＋（1.0−k3）×p
・・・（５）
【００９０】
ここで、k3は、ジェスチャ検出による優先度qを、フレーム単位で反映させる割合であり、例えば、k3=0.2でもよい。尚、優先度qの設定については、後述する。
【００９１】
ステップＳ７６において、先端部情報更新部１２１は、先端部情報記憶部１２２に記憶されている全ての先端部情報のうち、尤度pが所定の閾値k4よりも低いの先端部情報を先端部情報記憶部１２２より削除する。尚、閾値k4は、有効な先端部であるとみなす尤度の閾値であり、例えば、k4=0.4でもよい。
【００９２】
ステップＳ７７において、先端部情報更新部１２１は、先端部情報記憶部１２２に記憶されている先端部情報のうち、最新フレーム座標(X,Y)が重複するものを検索する。そして、先端部情報更新部１２１は、最新フレーム座標(X,Y)が重複するものが複数に存在する場合（複数の追跡IDが割り当てられている場合）、重複する先端部情報のうち、尤度pが最も高いものを１つ残して、それ以外の先端部情報を先端部情報記憶部１２２より削除する。
【００９３】
すなわち、例えば、図１７で示されるように、追跡ID1234で識別される軌跡ｒ１１と、追跡ID3456で識別される軌跡ｒ１２とが存在するような場合、図中のバツ印で示される位置において最新フレーム座標が一致することになる。このような場合、追跡すべき軌跡は１でよいため、先端部情報更新部１２１は、追跡ID1234の先端部情報に含まれる尤度p=0.8と、追跡ID3456の先端部情報に含まれる尤度p=0.7とを比較して、尤度pの高い追跡ID1234の先端部情報のみを残し、追跡ID3456の先端部情報を先端部情報記憶部１２２より削除する。
【００９４】
以上の処理により、フレーム毎に先端部情報の最新フレーム座標の情報が順次更新されて先端部情報記憶部１２２に記憶される。
【００９５】
ここで、図２のフローチャートの説明に戻る。
【００９６】
ステップＳ１６の先端部追跡処理により順次先端部情報記憶部１２２に記憶されている先端部情報がフレーム単位で順次更新されると、処理は、ステップＳ１７に進む。
【００９７】
ステップＳ１７において、軌跡ジェスチャ検出部１０６は、順次先端部情報記憶部１２２に記憶されている先端部情報の最新フレーム座標を追跡ID単位で順次読み出すことにより、先端部として認識されている部位の軌跡として検出する。結果として、その軌跡の情報に基づいて、例えば、隠れマルコフモデル（HMM）によりジェスチャを認識することが可能となる。
【００９８】
すなわち、順次先端部情報の最新フレーム座標が、追跡ID毎にフレーム単位で読み出されるので、フレーム単位で読み出された最新フレーム座標の情報を順次記憶して接続することにより、例えば、図１８で示されるように、人物の左右の手Ｈ１，Ｈ２が先端部として認識され、その軌跡が軌跡ｒ１０１，ｒ１０２のように求められる。軌跡ジェスチャ検出部１０６は、この軌跡に基づいて、ジェスチャを検出し、検出したジェスチャの情報を出力すると共に、検出したジェスチャの情報、および、ジェスチャの検出に寄与した先端部情報を識別する追跡IDを追跡優先度設定部１０７に供給する。尚、ジェスチャの途中などの場合、ジェスチャとしては認識されないことになるが、この場合においても、軌跡ジェスチャ検出部１０６は、追跡IDに基づいて、軌跡の情報のみを追跡優先度設定部１０７に供給する。
【００９９】
ステップＳ１８において、追跡優先度設定部１０７は、軌跡ジェスチャ検出部１０６の検出結果であるジェスチャと、そのジェスチャの検出に寄与した追跡IDに基づいて、優先度qを設定し、例えば、図１９で示されるように、追跡IDに対応付けて、設定した優先度qの情報を追跡優先度記憶部１０８に記憶させる。尚、優先度qの設定は、例えば、図２０の左部で示されるように、始点Ｓから略円を描き、交差している軌跡ｒ２０１のようなジェスチャが検出された軌跡を構成する先端部については、優先度qがq＝1.0に設定されるようにし、図２０の右部で示される、始点Ｓから円弧状に描かれた軌跡ｒ２０２のように、ジェスチャが検出されていない軌跡を構成する先端部については、優先度qがq＝0.7とするように設定されるようにしてもよい。このようにジェスチャの検出に寄与した先端部に対しては、優先度qが高めに設定されることで、上述したように、尤度pが高めに設定され、逆にジェスチャに寄与しない先端部に対しては、優先度qが低めに設定されることで、尤度が低めに設定される。
【０１００】
ステップＳ１９において、奥行画像生成部１０１は、入力画像の供給が停止されて処理が終了したか否かを判定し、順次入力画像が供給されてきて、処理が終了していないと判定された場合、処理は、ステップＳ１１に戻る。すなわち、処理の終了が指示されるまで、ステップＳ１１乃至Ｓ１９の処理が繰り返される。そして、入力画像の供給が停止されるなどして、処理の終了が指示された場合、処理は、終了する。
【０１０１】
すなわち、奥行画像より局所先端部を求め、そのうち周辺のブロックの局所先端部の値より高いものが凸部として検出され、直前のフレームで検出された凸部の位置の所定の近傍の範囲内で最新フレームの凸部が検出できれば、フレーム単位で連続的に先端部が検出されたものとみなし、このようにして連続して検出される凸部の位置を先端部の位置として追跡し、その軌跡よりジェスチャを認識するようにすることで、処理負荷を低減しつつ、正確にジェスチャを認識することが可能となる。
【０１０２】
さらに、凸部として連続的に検出できない状態になっても、直前のフレームで検出された凸部の位置の所定の近傍の範囲内で最新フレームの局所先端部が検出できれば、フレーム単位で連続的に先端部が検出されたものとみなし、このようにして連続して検出される局所先端部の位置を追跡することにより、例えば、ジェスチャをしている手先が撮像位置に最も近い位置とならなくても追跡することが可能となり、より精度よくジェスチャを認識することが可能となる。
【０１０３】
また、先端部の情報には、尤度が設定されているため、連続的に凸部が検出されて、凸部の座標位置の情報により先端部の位置が更新されている場合、または、ジェスチャとして検出される軌跡に寄与している場合には、尤度が高められるので、ジェスチャの検出に必要とされる先端部の情報は継続して追跡され続ける。逆に、連続的に凸部が検出されず、局所先端部の座標位置の情報により先端部の位置が更新されている場合、または、ジェスチャとして検出される軌跡に寄与していない場合には、尤度が減衰されていくので、ジェスチャの検出に必要とされる先端部の情報はやがて消去される。この結果、必要な先端部の情報は追跡が継続されて、不要な先端部の情報は消去されていくので、必要な先端部の情報によって高い精度でジェスチャを認識することが可能となる。
【０１０４】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１０５】
図２１は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)１００１を内蔵している。CPU１００１にはバス１００４を介して、入出力インタ-フェイス１００５が接続されている。バス１００４には、ROM(Read Only Memory)１００２およびRAM(Random Access Memory)１００３が接続されている。
【０１０６】
入出力インタ-フェイス１００５には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部１００６、処理操作画面や処理結果の画像を表示デバイスに出力する出力部１００７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部１００８、LAN（Local Area Network）アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部１００９が接続されている。また、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリなどのリムーバブルメディア１０１１に対してデータを読み書きするドライブ１０１０が接続されている。
【０１０７】
CPU１００１は、ROM１００２に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア１０１１から読み出されて記憶部１００８にインストールされ、記憶部１００８からRAM１００３にロードされたプログラムに従って各種の処理を実行する。RAM１００３にはまた、CPU１００１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１０８】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【符号の説明】
【０１０９】
１１  画像処理装置，  １０１  奥行画像生成部，  １０１ａ  平滑化部，  １０２  局所先端検出部，  １０３  凸部検出部，  １０４  凸部追跡部，  １０５  先端追跡部，  １０６  軌跡ジェスチャ検出部，  １０７  追跡優先度設定部，  １０８  追跡優先度記憶部
【図１】
0005648443.tif 000003
【図２】
0005648443.tif 000004
【図３】
0005648443.tif 000005
【図４】
0005648443.tif 000006
【図５】
0005648443.tif 000007
【図６】
0005648443.tif 000008
【図７】
0005648443.tif 000009
【図８】
0005648443.tif 000010
【図９】
0005648443.tif 000011
【図１０】
0005648443.tif 000012
【図１１】
0005648443.tif 000013
【図１２】
0005648443.tif 000014
【図１３】
0005648443.tif 000015
【図１４】
0005648443.tif 000016
【図１５】
0005648443.tif 000017
【図１６】
0005648443.tif 000018
【図１７】
0005648443.tif 000019
【図１８】
0005648443.tif 000020
【図１９】
0005648443.tif 000021
【図２０】
0005648443.tif 000022
【図２１】
0005648443.tif 000023