(57)【要約】  骨格モデルを用いることにより、多種多様な３次元姿勢を推定する姿勢推定装置。姿勢推定装置（２００）は、取得画像内の人物の特徴部位の位置を推定する基幹骨格推定部（２３０）と、人物の特徴部位の位置に基づいて、取得画像において人物の特徴部位以外の部位が存在する確からしさを示す尤度マップを生成する部位抽出部（２４０）と、複数の２次元の骨格モデルを候補として含み、かつ、各２次元の骨格モデルは各部位を表す線群と各部位間の連結を表す点群とから構成されるとともに人物の一姿勢に対応する、候補群を、尤度マップに基づいて評価する骨格モデル評価部（２５０）とを有する。
2012046392.tif 000002
【特許請求の範囲】
【請求項１】
取得画像内の人物の特徴部位の位置を推定する基幹骨格推定手段と、
前記人物の特徴部位の位置に基づいて、前記取得画像において前記人物の特徴部位以外の部位が存在する確からしさを示す尤度マップを生成する尤度マップ生成手段と、
複数の２次元の骨格モデルを候補として含み、かつ、各２次元の骨格モデルは各部位を表す線群と各部位間の連結を表す点群とから構成されるとともに人物の一姿勢に対応する、候補群を、前記尤度マップに基づいて評価する評価手段と、
を具備する姿勢推定装置。
【請求項２】
前記評価手段は、
前記候補群の各候補と、３次元の骨格モデルとを対応付けて記憶する手段であって、前記各候補が、前記３次元の骨格モデルを２次元の骨格モデルに射影変換することによって生成される、記憶手段と、
前記尤度マップから、前記２次元の骨格モデルと同じ表現方法で表現されるターゲット骨格モデルを形成する形成手段と、
前記候補群の候補と前記ターゲット骨格モデルとの類似度に基づいて、前記候補群のうちいずれかの前記候補を、前記取得画像内の人物の姿勢に対応する２次元の骨格モデルとして選択する選択手段と、を具備する
請求項１に記載の姿勢推定装置。
【請求項３】
前記評価手段は、
前記候補群の各候補と、３次元の骨格モデルとを対応付けて記憶する手段であって、前記各候補が、前記取得画像内の人物の特徴部位と、前記候補群の各候補における、前記取得画像内の人物の特徴部位の対応部位との向き及び長さが一致するように、前記３次元の骨格モデルを２次元の骨格モデルに射影変換することによって生成される、記憶手段と、
射影変換後の前記候補群の候補及び前記尤度マップに基づいて、前記候補群のうちいずれかの前記候補を、前記取得画像内の人物の姿勢に対応する２次元の骨格モデルとして選択する選択手段と、を具備する
請求項１に記載の姿勢推定装置。
【請求項４】
前記尤度マップ生成手段は、
前記人物の特徴部位の位置、前記人物の向き、及び、人体寸法の統計的データに基づいて、前記識別手段に入力する探索領域を制限し、制限された前記探索領域において前記尤度マップを生成する
請求項１に記載の姿勢推定装置。
【請求項５】
前記評価手段により前記人物の姿勢に対応する２次元の骨格モデルとして選択された前記候補群の候補に対応付けられた３次元の骨格モデルから、前記特徴部位の長さに対する各部位間の長さを示す関節長比を取得画像毎に算出し、複数の取得画像にわたり前記関節長比を各部位間毎に平滑化して代表関節長比を算出する算出手段、を具備し、
前記尤度マップ生成手段は、
前記人物の特徴部位の位置、前記人物の向き、及び、前記代表関節長比に基づいて、前記識別手段に入力する探索領域を制限し、制限された前記探索領域において前記尤度マップを生成する
請求項２に記載の姿勢推定装置。
【請求項６】
前記評価手段により前記人物の姿勢に対応する２次元の骨格モデルとして選択された前記候補群の候補に対応付けられた３次元の骨格モデルから、前記特徴部位の長さに対する各部位間の長さを示す関節長比を取得画像毎に算出し、複数の取得画像にわたり前記関節長比を各部位間毎に平滑化して代表関節長比を算出する算出手段、を具備し、
前記尤度マップ生成手段は、
前記人物の特徴部位の位置、前記人物の向き、及び、前記代表関節長比に基づいて、前記識別手段に入力する探索領域を制限し、制限された前記探索領域において前記尤度マップを生成する
請求項３に記載の姿勢推定装置。
【請求項７】
前記基幹骨格推定手段は、
更に、前記人物の向きを抽出し、
前記選択手段は、
前記人物の特徴部位の方向及び前記人物の向きが一致する３次元の骨格モデルに対応する前記候補群の各候補から、前記取得画像内の人物の姿勢に対応する２次元の骨格モデルを選択する
請求項２に記載の姿勢推定装置。
【請求項８】
前記基幹骨格推定手段は、
更に、前記人物の向きを抽出し、
前記選択手段は、
前記人物の特徴部位の方向及び前記人物の向きが一致する３次元の骨格モデルに対応する前記候補群の各候補から、前記取得画像内の人物の姿勢に対応する２次元の骨格モデルを選択する
請求項３に記載の姿勢推定装置。
【請求項９】
前記評価手段により前記人物の姿勢に対応する２次元の骨格モデルとして選択された前記候補群の候補に対応付けられた３次元の骨格モデルから、前記特徴部位の長さに対する各部位間の長さを示す関節長比を取得画像毎に算出し、複数の取得画像にわたり前記関節長比を各部位間毎に平滑化して代表関節長比を算出する算出手段、を具備し、
前記格納手段は、
３次元の骨格モデルのうち、関節長比が、前記代表関節長比と一致する３次元の骨格モデルに対応する２次元の骨格モデルを、前記候補群の各候補とする
請求項７に記載の姿勢推定装置。
【請求項１０】
前記評価手段により前記人物の姿勢に対応する２次元の骨格モデルとして選択された前記候補群の候補に対応付けられた３次元の骨格モデルから、前記特徴部位の長さに対する各部位間の長さを示す関節長比を取得画像毎に算出し、複数の取得画像にわたり前記関節長比を各部位間毎に平滑化して代表関節長比を算出する算出手段、を具備し、
前記格納手段は、
３次元の骨格モデルのうち、関節長比が、前記代表関節長比と一致する３次元の骨格モデルに対応する２次元の骨格モデルを、前記候補群の各候補とする
請求項８に記載の姿勢推定装置。
【請求項１１】
前記基幹骨格推定手段は、前記人物の特徴部位の位置として、前記人物の肩の位置を推定する
請求項１に記載の姿勢推定装置。
【請求項１２】
取得画像内の人物の特徴部位の位置を推定し、
前記人物の特徴部位の位置に基づいて、前記取得画像において前記人物の特徴部位以外の部位が存在する確からしさを示す尤度マップを生成し、
複数の２次元の骨格モデルを候補として含み、かつ、各２次元の骨格モデルは各部位を表す線群と各部位間の連結を表す点群とから構成されるとともに人物の一姿勢に対応する、候補群を、前記尤度マップに基づいて評価する、
姿勢推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラによって撮像された画像を用いた人物の姿勢推定装置及び姿勢推定方法に関する。
【背景技術】
【０００２】
近年、カメラによって撮像された画像を用いた人物の姿勢推定に関する研究が行われている。従来の姿勢推定装置として、特許文献１には、シルエットマッチングによる姿勢推定装置が開示されている。特許文献１に記載の姿勢推定装置は、様々な姿勢を表現した３次元人体モデルから作成したシルエット画像と、入力画像から生成したシルエット画像との画像マッチングを行い、マッチングスコアが最高の３次元人体モデルの姿勢を入力画像上の人物の推定姿勢として出力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００７／０１０８９３号
【非特許文献】
【０００４】
【非特許文献１】D.G. Lowe, “Distinctive Image Features from Scale-InvariantKeypoints”, International Journal of Computer Vision, Springer Netherlands, 2004年11月, Vol. 60, No.2, p.91−110
【非特許文献２】P. Viola and M. Jones. "Rapid Object Detection Using a Boosted Cascade of Simple Features," in Proc. of CVPR, vol.1, ppp.511-518, December, 2001
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、人物の姿勢は多種多様であり、撮像するカメラと人物の位置関係によっては、部位が重なって写る場合も多い。例えば、図１に示すように、手を伸ばしても手を曲げても人物のシルエットは同じとなる。特許文献１に記載の姿勢推定装置は、人の輪郭より内側の情報を失うシルエットを用いるため、部位の重なりに脆弱であり、姿勢推定が難しいという課題がある。【０００６】
本発明の目的は、骨格モデルを用いることにより、人物の多種多様な３次元姿勢を推定する姿勢推定装置及び姿勢推定方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の姿勢推定装置の一つの態様は、取得画像内の人物の特徴部位の位置を推定する基幹骨格推定手段と、前記人物の特徴部位の位置に基づいて、前記取得画像において前記人物の特徴部位以外の部位が存在する確からしさを示す尤度マップを生成する尤度マップ生成手段と、複数の２次元の骨格モデルを候補として含み、かつ、各２次元の骨格モデルは各部位を表す線群と各部位間の連結を表す点群とから構成されるとともに人物の一姿勢に対応する、候補群を、前記尤度マップに基づいて評価する評価手段と、を具備する。【０００８】
本発明の姿勢推定方法の一つの態様は、取得画像内の人物の特徴部位の位置を推定し、前記人物の特徴部位の位置に基づいて、前記取得画像において前記人物の特徴部位以外の部位が存在する確からしさを示す尤度マップを生成し、複数の２次元の骨格モデルを候補として含み、かつ、各２次元の骨格モデルは各部位を表す線群と各部位間の連結を表す点群とから構成されるとともに人物の一姿勢に対応する、候補群を、前記尤度マップに基づいて評価する。
【発明の効果】
【０００９】
本発明によれば、骨格モデルを用いることにより、多種多様な３次元姿勢を推定することができる。
【図面の簡単な説明】
【００１０】
【図１】従来の姿勢推定装置による姿勢推定結果の一例を示す図
【図２】骨格モデルを説明するための図
【図３】本発明の各実施の形態に係る姿勢推定装置を含む行動解析システムの構成図
【図４】本発明の実施の形態１に係る姿勢推定装置の要部構成を示すブロック図
【図５】実施の形態１に係る骨格モデル評価部の要部構成を示すブロック図
【図６】本実施の形態１における操作画面の一例を示す図
【図７】基幹骨格情報の一例を示す図
【図８】基幹骨格情報に含まれる各情報の基準となる画像座標系を示す図
【図９】部位領域及び部位領域情報の一例を示す図
【図１０】各部位の部位領域を対象画像に重畳したイメージ図
【図１１】骨格情報の一例を示す図
【図１２】骨格情報を活用し、対象画像に骨格情報を重畳したイメージ図
【図１３】骨格モデル座標系を示す図
【図１４】各関節長比及び関節角度の一例を示す図
【図１５】３次元の骨格モデルを射影変換することにより２次元画像を取得する動作を説明するための図
【図１６】ある動作の姿勢を示す骨格モデルを多視点から射影することにより得られた２次元画像の一例を示す図
【図１７】実施の形態１に係る推定処理装置の処理フローの一例を示す図
【図１８】肩関節検出器における処理フローの一例を示す図
【図１９】肩関節検出器における肩関節位置の推定方法を説明するための図
【図２０】肩関節の動く範囲を示す図
【図２１】骨格推定部における骨格情報の作成方法を説明するための図
【図２２】推定結果の表示の一例を示す図
【図２３】実施の形態２に係る姿勢推定装置の要部構成を示すブロック図
【図２４】実施の形態２に係る推定処理装置の処理フローの一例を示す図
【図２５】本発明の実施の形態３に係る姿勢推定装置の要部構成を示すブロック図
【図２６】実施の形態３に係る推定処理装置の処理フローの一例を示す図
【図２７】実施の形態３に係る姿勢推定装置の別の要部構成を示すブロック図
【図２８】実施の形態３に係る推定処理装置の別の処理フローの一例を示す図
【図２９】実施の形態４に係る姿勢推定装置の要部構成を示すブロック図
【図３０】実施の形態４に係る推定処理装置の処理フローの一例を示す図
【図３１】実施の形態４に係る矩形フィルタの生成方法を説明するための図
【図３２】実施の形態４に係る各方向別の矩形フィルタを示す図
【図３３】実施の形態４に係る勾配方向別のエッジ画像に対する積分画像の作成方法を説明するための図
【図３４】実施の形態４に係る勾配方向別のエッジ画像に対する積分画像の作成方法を説明するための図
【図３５】実施の形態４に係る勾配方向別のエッジ画像に対する積分画像の作成方法を説明するための図
【図３６】実施の形態４に係る勾配方向別のエッジ画像に対する積分画像の作成方法を説明するための図
【図３７】実施の形態４に係る初期位置と探索範囲を設定する方法を説明するための図
【図３８】実施の形態４に係る平行線検出と尤度マップ算出を行う処理を説明するための図
【図３９】実施の形態４に係る平行線検出と尤度マップ算出を行う処理を説明するための図
【図４０】実施の形態４に係る平行線検出と尤度マップ算出を行う処理を説明するための図
【図４１】実施の形態４に係る平行線検出と尤度マップ算出を行う処理を説明するための図
【図４２】実施の形態４に係る平行線検出と尤度マップ算出を行う処理を説明するための図
【図４３】実施の形態５に係る姿勢推定装置の要部構成を示すブロック図
【図４４】実施の形態５に係る人の姿勢と各部位の明るさとの関係を説明するための図
【図４５】実施の形態５に係る推定処理装置の処理フローの一例を示す図
【図４６】実施の形態５に係る凹凸マップ生成処理の処理フローの一例を示す図
【図４７】実施の形態５に係るエリア分類の手法を説明するための図
【図４８】実施の形態６に係る姿勢推定装置の要部構成を示すブロック図
【図４９】実施の形態６に係る推定処理装置の処理フローの一例を示す図
【図５０】実施の形態７に係る姿勢推定装置の要部構成を示すブロック図
【図５１】実施の形態７に係る推定処理装置の処理フローの一例を示す図
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００１２】
本発明に係る姿勢推定装置及び姿勢推定方法は、骨格モデルを用いて画像に写っている人物の姿勢を推定する。
【００１３】
ここで、骨格モデルとは、人体の骨格を、関節及び骨を単純化して表現したものである。骨格モデルにおいては、関節は点、関節間をつなぐ骨は直線でそれぞれ表現される。
【００１４】
図２は、骨格モデルの一例を示す。図２に示すように、骨格モデル１０００は、首関節１０１０、右肩関節１０２０、左肩関節１０３０、右肘関節１０４０、左肘関節１０５０、右手首関節１０６０、左手首関節１０７０、股関節１０８０、右大腿関節１０９０、左大腿関節１１００、右膝関節１１１０、左膝関節１１２０、右踵関節１１３０、左踵関節１１４０と、各関節を結合する骨で表現される。
【００１５】
骨格モデルを用いることにより、人物の多種多様な姿勢が表現可能となる。つまり、姿勢が異なれば、異なる骨格モデルとなる。なお、２次元座標系における骨格モデルを「２次元の骨格モデル」、３次元座標系における骨格モデルを「３次元の骨格モデル」という。
【００１６】
図３は、本発明の各実施の形態に係る姿勢推定装置を含む行動解析システムの構成図である。
【００１７】
図３に示す行動解析システム１００は、姿勢推定装置１１０、及び、カメラ１２０を有する。姿勢推定装置１１０とカメラ１２０は、例えば、ＩＰ（Internet Protocol）ネットワークによる通信によってデータの交換を行う。
【００１８】
行動解析システム１００は、例えば、動画像を記録し、記録した動画像を解析することにより、人物の行動を解析する。このため、行動解析システム１００は、街頭での異常行動検知、店舗での購買行動分析、工場における作業効率化支援、スポーツにおけるフォーム指導などに適用することができる。
【００１９】
姿勢推定装置１１０は、例えば、通信機能を有するコンピュータシステム（パーソナルコンピュータやワークステーションなど）で構成されている。このコンピュータシステムは、図示しないが、大別して、入力装置、コンピュータ本体、出力装置、及び通信装置を有する。
【００２０】
入力装置は、例えば、キーボードやマウスなどである。出力装置は、例えば、ディスプレイやプリンタなどである。通信装置は、例えば、ＩＰネットワークと接続可能な通信インタフェースなどである。コンピュータ本体は、例えば、主に、ＣＰＵ（Central Processing Unit）と記憶装置で構成されている。ＣＰＵは、制御機能と演算機能を有する。記憶装置は、例えば、プログラムやデータを記憶するＲＯＭ（Read Only Memory）と、データを一時的に記憶するＲＡＭ（Random Access Memory）とを有する。ＲＯＭは、電気的に内容の書き直しが可能なフラッシュメモリであってもよい。
【００２１】
カメラ１２０は、人物の作業シーン等の動画を撮影して動画像を取得し、動画像を構成するフレームを所定時間毎に姿勢推定装置１１０に出力する。
【００２２】
以下、各実施の形態について説明する。特に、実施の形態１及び実施の形態２は、フレーム毎に画像に写っている人物の姿勢を推定する姿勢推定装置及び姿勢推定方法に関する。また、実施の形態３は、複数フレームを用いることにより、姿勢推定に要する演算量を削減しつつ、人物の姿勢の推定精度を向上することができる姿勢推定装置及び姿勢推定方法に関する。
【００２３】
（実施の形態１）
図４は、本実施の形態に係る姿勢推定装置の要部構成を示す。図４の姿勢推定装置２００は、図３の姿勢推定装置１１０として適用される。
【００２４】
姿勢推定装置２００は、操作制御部２１０、画像格納部２２０、基幹骨格推定部２３０、部位抽出部（尤度マップ生成部）２４０、及び、骨格モデル評価部２５０を有する。
【００２５】
図５は、図４に示す本実施の形態に係る姿勢推定装置２００のうち、骨格モデル評価部２５０の要部構成を示す図である。骨格モデル評価部２５０は、骨格推定部２５１と骨格モデル記述変換部２５２とから構成されるターゲット骨格モデル形成部２５３、相似骨格モデル格納部２５４、及び、相似骨格モデル選択部２５５を有する。
【００２６】
操作制御部２１０は、本実施の形態で示す一連の手順の開始と終了を制御し、ユーザが操作するための操作画面を提供する。
【００２７】
図６は、本実施の形態における操作画面の一例を示している。操作画面は、「開始」ボタン、「終了」ボタン、及び、ログ表示領域を有する。
【００２８】
ユーザは、入力装置を介して「開始」ボタン或いは「終了」ボタンを操作することにより、処理の開始や終了を指示する。ログ表示領域には、文字列や画像が表示される。本実施の形態では、複数ステップで処理を実行するため、ログ表示領域には、処理の進捗を示す文字列、或いは、各ステップが完了したときの処理結果を示す画像等が表示される。詳細は後述する。
【００２９】
画像格納部２２０は、ユーザから処理の開始が指示されると、カメラ１２０から動画像を構成するフレームを所定時間毎に取得してメモリに格納する。フレームレートは、例えば１０〜３０ｆｐｓである。格納した動画像は、操作制御部２１０以外に、基幹骨格推定部２３０、部位抽出部２４０等からも参照可能である。
【００３０】
なお、本実施の形態では、画像格納部２２０が格納する動画像のうち、同一の一フレームを操作制御部２１０、基幹骨格推定部２３０が参照するものとして説明する。また、以降、人物の姿勢推定処理の対象となる当該同一の一フレームを「対象画像（または、ターゲット画像）」、対象画像に写っており、姿勢推定の対象となる人物を「対象人物」と称する。また、対象人物は一人であるとして説明する。また、本実施の形態における画像は二値画像であるものとして説明する。
【００３１】
また画像格納部２２０は、カメラによる動画像撮影時のカメラパラメータを格納する。カメラパラメータの詳細については後述する。
【００３２】
基幹骨格推定部２３０は、頭・肩検出器、肩関節検出器、胴体検出器の３種類の検出器を備える。基幹骨格推定部２３０は、検出器を用いて、対象人物の基幹骨格を検出する。基幹骨格とは、両手、両脚がつながる骨格のことである。基幹骨格を決定する、人物の頭・肩の位置、胴体の慣性主軸、体の向きを「基幹骨格情報」と称する。
【００３３】
図７は、基幹骨格情報の一例を示す。基幹骨格情報は、対象人物の右肩関節位置、左肩関節位置、胴体領域の重心位置、胴体領域のスケール、胴体領域の角度、及び、体の向きの情報を含む。
【００３４】
図８は、基幹骨格情報に含まれる各情報の基準となる画像座標系を示す。なお、図８は、対象画像であり、対象人物を模式的に示した図である。画像座標系において、右肩関節位置、左肩関節位置、胴体領域の重心位置、及び、胴体領域のスケールは、対象画像上の左上を原点とし、横方向にｘ軸、縦方向にｙ軸を設定した座標系で表現する。胴体領域の角度、及び、体の向きは、ｘ軸からの角度θ（-π≦θ≦π）で表現する。
【００３５】
なお、基幹骨格推定部２３０における基幹骨格の抽出方法の詳細は後述する。基幹骨格推定部２３０が基幹骨格を抽出することにより、部位抽出部２４０は、基幹骨格につながる手・脚の探索範囲を絞り込むことができる。
【００３６】
基幹骨格推定部２３０は、対象画像から対象人物の基幹骨格を抽出し、抽出した基幹骨格の情報を基幹骨格情報として部位抽出部２４０に出力する。
【００３７】
部位抽出部２４０は、対象人物の上腕、前腕、胴体、上脚、下脚を識別する識別器を有する。部位抽出部２４０は、上記識別器を用いて、基幹骨格推定部２３０から出力される基幹骨格情報に基づいて、対象人物の部位が対象画像上に存在する確からしさを示す尤度マップを生成する。部位抽出部２４０は、尤度マップに基づいて、対象画像のうち対象人物の各部位が存在する領域（以下、部位領域という）の情報（以下、部位領域情報という）を抽出する。
【００３８】
図９は、部位領域及び部位領域情報の一例を示す。図９は、部位領域の形状が矩形で抽出された一例である。部位領域の形状は矩形に限らず、楕円形など種々の形状でもよい。
【００３９】
この場合、部位領域情報は、各部位ごとの重心位置、縦スケール、横スケール、及び回転角度を含む。ここで、重心位置とは、矩形で表現された部位領域の重心である。縦スケールは、矩形の辺のうち、各部位に対応する骨の向きに平行な辺の長さである。横スケールは、矩形の辺のうち、各部位に対応する骨の向きに垂直な辺の長さである。回転角度は、矩形の辺のうち、各部位に対応する骨の向きに垂直な辺（横スケールに対応する辺）とｘ軸とのなす角の角度であり、反時計回りを正とする。
【００４０】
図１０は、部位抽出部２４０により抽出された各部位（胴体、右上腕、右前腕、左上腕、左前腕、右上脚、右下脚、左上脚、及び、左下脚）の部位領域情報を示す矩形を、対象画像に重畳したイメージ図である。なお、図１０に示すイメージ図は、説明を補足するために図示したものであり、姿勢推定装置２００の出力として必須のものではない。
【００４１】
このように、部位抽出部２４０は、人体の中で最も検出しやすい部位（以下、特徴部位ともいう）としての肩の位置に基づいて、対象人物の部位が対象画像上に存在する確からしさを示す尤度マップを生成する。なお、部位抽出部２４０における尤度マップの生成方法、及び、部位領域の抽出方法の詳細については後述する。部位抽出部２４０は、生成した部位領域情報と尤度マップを骨格推定部２５１に出力する。
【００４２】
骨格モデル評価部２５０は、尤度マップに基づいて、複数の２次元の骨格モデルを候補として含む候補群を評価する。上述のように、骨格モデルは、関節を点で表現し、及び関節間をつなぐ骨を直線で表現したものである。すなわち、骨格モデルは、各部位を表す線群と、各部位間の連結を表す点群とから構成され、人物の一姿勢に対応する。２次元座標系における骨格モデルを、２次元の骨格モデルという。
【００４３】
具体的には、骨格推定部２５１は、部位抽出部２４０から出力された部位領域情報と尤度マップに基づき、対象人物の関節位置を推定する。なお、関節位置の推定方法については後述する。そして、骨格推定部２５１は、推定した各関節の位置の情報を骨格情報として、骨格モデル記述変換部２５２に出力する。関節位置が分かれば、関節間をつなぐ骨の位置も分かるので、関節位置を推定することは骨モデルを推定することと同じである。
【００４４】
図１１は、骨格推定部２５１が出力する骨格情報の例である。図１１に示すように、骨格情報は、対象座標の座標系における対象人物の首、右肩、左肩、右肘、左肘、右手首、左手首、股、右股、左股、右膝、左膝、右踵、及び、左踵の関節位置の情報を含む。
【００４５】
図１２は、対象画像に、骨格推定部２５１により出力された骨格情報が示す関節位置を点、関節位置をつなぐ骨を直線として重畳したイメージ図である。ただし、図１２に示すイメージ図は、説明を補足するために図示したものであり、姿勢推定装置２００の出力として必須のものではない。
【００４６】
骨格モデル記述変換部２５２は、対象画像の座標系で記述された骨格情報を、骨格モデル座標系で記述された骨格モデル記述情報に変換する。ここで、骨格モデル座標系とは、骨格モデルに複数存在する関節の一つ、或いは関節をつないだ直線上の一点を原点に、二つの関節を通る直線に一致する軸をＸ軸、Ｘ軸に直交する直線をＹ軸とする座標系である。例えば、図１３に示すように、右肩１３０１と左肩１３０２をつないだ直線１３０３の中心（首）１３０４を原点、右肩と左肩をつないだ直線（以下、肩ラインという）１３０３をＸ軸、Ｘ軸に直交する直線をＹ軸と定義する。
【００４７】
なお、骨格モデル座標系では、肩ラインの長さを１とし、他の関節長は、肩ライン長に対する関節長比として表される。ここで関節長とは、関節と関節を結ぶ直線の長さ（すなわち、部位の長さ）を示す。例えば、右肘と右肩を結ぶ直線に関する関節長比α１は、式（１）により算出される。
【数１】
2012046392.tif 000003
【００４８】
次に、骨格モデル記述変換部２５２は関節角度β１を求める。例えば、右肩と右肘を結ぶ線分の角度は、右肩と左肩をつないだ肩ラインと右肩と右肘を結ぶ線分の成す角度θ(-180°＜θ＜180°)で表される。
【００４９】
例えば、３つの点の座標、右肩＝(ｘｒｓ，ｙｒｓ)，左肩＝(ｘｌｓ，ｙｌｓ)，右肘＝(ｘｒｅ，ｙｒｅ)が与えられているとする。このとき、骨格モデル記述変換部２５２はベクトルＡ（Ａｘ，Ａｙ）＝（ｘｌｓ−ｘｒｓ，ｙｌｓ−ｙｒｓ）と、ベクトルＢ（Ｂｘ，Ｂｙ）＝（ｘｒｅ−ｘｒｓ，ｙｒｅ−ｙｒｓ）に関して、式（２）に示すように外積Ｓを計算する。もし、Ｓ＞０ならば関節角度β１は角度θ(0°＜θ＜180°)であり、Ｓ＜０ならば角度θ(-180°＜θ＜0°)である。また、Ｓ＝０の場合、右肩、左肩及び右肘は一直線上にある。
【数２】
2012046392.tif 000004
【００５０】
ベクトルＡとベクトルＢとがなす角β１は、式（３）を満たす。
【数３】
2012046392.tif 000005
【００５１】
β１(0°≦β１≦180°)は、式（４）に示すように、逆三角関数により求められる。
【数４】
2012046392.tif 000006
【００５２】
骨格モデル記述変換部２５２は、右肘と右手首、左肩と左肘、左肘と左手首、首と股、右大腿と左大腿、右大腿と右膝、右膝と踵、左大腿と左膝、左膝と踵についても、右肩と右肘との計算と同様の計算により、それぞれ関節長比及び関節角度を算出する。図１４は、各関節長比及び関節角度の一例を示す図である。
【００５３】
このようにして、骨格モデル記述変換部２５２は、骨格推定部２５１により出力された骨格情報（すなわち、対象人物の骨格モデル）を、画像座標系から骨格モデル座標系での記述に変換する。これにより、カメラと対象人物との位置関係により生じる、画像に映った対象人物のスケール変化に依存しない骨格モデル記述情報を取得することができる。そして、骨格モデル記述変換部２５２は、対象人物の骨格モデル記述情報を相似骨格モデル選択部２５５に出力する。以降、骨格モデル記述情報で記述された対象人物の骨格モデルを「ターゲット骨格モデル」という。
【００５４】
相似骨格モデル格納部２５４は、対象人物の姿勢推定処理に先立って、対象人物の骨格モデル記述情報とのマッチング評価を行う多数の骨格モデル記述情報を格納する。
【００５５】
なお、直立姿勢であっても、様々な体型の直立姿勢がある。以下、特定の姿勢に対して、体型により異なることを体型差と称する。さらに、直立姿勢のみならず、しゃがんだ姿勢、或いは、直立していても両手を下ろした姿勢と両手を前に伸ばした姿勢のように、様々な姿勢が考えられる。以下、同一人物が取り得る様々な姿勢を姿勢差と称する。
【００５６】
したがって相似骨格モデル格納部２５４は、体型差或いは姿勢差を考慮した様々な姿勢を表現した骨格モデル記述情報を格納しておく必要がある。
【００５７】
相似骨格モデル格納部２５４に格納しておく骨格モデル記述情報は、例えば、モーションキャプチャによって取得したデータ（以下、モーションキャプチャデータと称する）を用いて作成することができる。ここで、モーションキャプチャデータは、例えば、関節の３次元（ｘ軸、ｙ軸、ｚ軸）位置座標、及び、関節回転角度で定義されるデータであり、一般に公開、或いは市販されている。このモーションキャプチャデータの関節を直線でつなぐことで、容易に３次元の骨格モデルとして可視化することができる。
【００５８】
相似骨格モデル格納部２５４は、画像格納部２２０が格納するカメラパラメータを用いて、３次元の骨格モデルから、２次元の骨格モデルを生成する。ここで、カメラパラメータには、カメラ外部パラメータとカメラ内部パラメータとが存在する。カメラ外部パラメータとは、ワールド座標系でのカメラの位置座標（カメラ座標系原点の位置）、ワールド座標系を基準としたカメラの姿勢（ｘｙｚ回転角度）のことである。また、カメラ内部パラメータとは、カメラの焦点距離、カメラの垂直画角、２次元画像への投影スクリーン幅、２次元画像への投影スクリーン高さなどのことである。
【００５９】
つまり、カメラパラメータとは、ワールド座標系に存在する３次元骨格モデルをカメラから見た２次元画像に変換する際に必要なパラメータである。
【００６０】
したがって、相似骨格モデル格納部２５４は、図１５のようにワールド座標系に存在する３次元の骨格モデルに対し、カメラ外部パラメータを変更することで、３次元の骨格モデルを、異なる視点から射影した複数の２次元の骨格モデルを取得することができる。画面に射影された関節は、骨格モデル記述情報で表現される。
【００６１】
図１６は、ある動作の姿勢を示す骨格モデルを複数の視点から射影することにより得られた２次元画像の一例である。同一の姿勢から得られた複数の骨格モデル記述情報を「相似骨格情報」という。
【００６２】
このようにして、相似骨格モデル格納部２５４は、人物の一姿勢に対応する３次元の骨格モデルを射影変換することにより得られた２次元の骨格モデルを、骨格モデル記述情報として格納する。また、相似骨格モデル格納部２５４は、モーションキャプチャによって取得したデータ（すなわち、姿勢）の数と同じ数の相似骨格情報を格納していることとなる。
【００６３】
相似骨格モデル選択部２５５は、骨格モデル記述変換部２５２から出力された対象人物の骨格モデル記述情報と、相似骨格モデル格納部２５４が格納する相似骨格情報とを用いて、対象人物の姿勢を推定するための評価関数を計算する。ここで、骨格モデル記述情報及び相似骨格情報は、共に、画像座標系で記述されている。
【００６４】
評価関数ｘ＊は、式（５）に示されるように、パラメータベクトルＰｅ、Ｐｄの差分の大きさの二乗で表される。
【数５】
2012046392.tif 000007
ここで、Ｐｅは骨格モデル記述変換部２５２から出力された骨格モデル記述情報であり、Ｐｄは相似骨格モデル格納部２５４が格納する相似骨格情報である。
【００６５】
相似骨格モデル選択部２５５は、評価関数ｘ＊の値が最小となるよう最適化手法により、複数の相似骨格情報の中から最終的な推定結果を出力する。
【００６６】
前述のように、相似骨格情報のそれぞれに対してモーションキャプチャデータの関節をつないだ３次元の骨格モデルが関連付けられている。そのため、相似骨格モデル選択部２５５は、最も類似した相似骨格情報を抽出することで、最も類似した３次元の骨格モデルを特定し、出力することができる。
【００６７】
なお、以上の説明では、相似骨格モデル選択部２５５が、最適化手法として非線形最小二乗法を用いる場合を説明したが、他の様々な方法を利用することも可能である。
【００６８】
このようにして、相似骨格モデル選択部２５５は、２次元の骨格モデルとターゲット骨格モデルとの類似度に基づいて、２次元の骨格モデルのうちいずれかを、対象人物の姿勢に対応する２次元の骨格モデルとして選択する。２次元のモデルは、上述の通り、相似骨格モデル格納部２５４が格納する人物の一姿勢に対応する３次元の骨格モデルを射影変換することにより得られたモデルである。そして、相似骨格モデル選択部２５５は、選択した２次元の骨格モデルに対応する３次元の骨格モデルの情報を、対象人物の姿勢の情報として出力する。
【００６９】
次に、上述のように構成された姿勢推定装置２００の動作について詳細に説明する。図１７は、本実施の形態に係る姿勢推定装置２００の処理フローの一例を示す図である。
【００７０】
Ｓ１０１において、カメラ１２０は、操作画面にてユーザによって「開始」ボタンが押下されると、人物の撮影を開始する。画像格納部２２０は、カメラ１２０から動画像を構成するフレームを所定時間毎（例えばフレームレート＝１０〜３０ｆｐｓ）に取得し、メモリに格納する。画像格納部２２０は、カメラ１２０から取得した動画像のフレームを、例えば、ＪＰＥＧ（Joint Photographic Experts Group）フォーマットの静止画像ファイルとして格納する。
【００７１】
また、画像格納部２２０は、各画像ファイル名に取得時刻順序を示す数字を付して格納する。例えば、画像格納部２２０は、最も古い時刻の画像ファイル名に０番を付し、最も新しい時刻の画像ファイル名にＮ番を付して、新たなフレームがカメラで取得されるごとにファイル名に付与される数字が１つずつ増えるとする。
【００７２】
以下では、画像格納部２２０が動画像のフレームを取得するたびに、画像格納部２２０から「基幹骨格抽出依頼」を基幹骨格推定部２３０に出力する場合を例に説明する。「基幹骨格抽出依頼」には処理対象となるファイル名が含まれている。また画像格納部２２０は、カメラによる人物撮影時のカメラパラメータを格納する。
【００７３】
Ｓ１０２において、基幹骨格推定部２３０は、対象人物の基幹骨格を検出する。具体的にはまず、基幹骨格推定部２３０は、画像格納部２２０から「基幹骨格抽出依頼」を受け取ると、画像格納部２２０が蓄積する画像のうち、「基幹骨格抽出依頼」に含まれるファイル名と一致する画像（対象画像）を参照する。
【００７４】
基幹骨格推定部２３０は、頭・肩検出器、肩関節検出器、胴体検出器の３種類の検出器を備えている。これらの検出器は、互いに異なるアルゴリズム（或いは特徴量）を用いて、検出処理を行う機能である。
【００７５】
各検出器は、対象画像の中から、対象人物の基幹骨格の可能性がある領域をすべて検出し、その検出した領域を検出結果の尤度とともに出力する。尤度とは、その検出した領域が対象人物の基幹骨格である確率を表すスコアであり、尤度が高いほど対象人物の基幹骨格である可能性が高いことを示している。
【００７６】
ここで、基幹骨格推定部２３０において、三つの検出器は並列に実行されるのではなく、頭・肩検出器、肩関節検出器、胴体検出器の順番で一つずつ実行される。三つの検出器の処理順は、各検出器の特性を考慮して決定される。
【００７７】
混雑或いは顔の向きの変化により人体の隠れが発生する状況において、人体の中で最も検出しやすい部位（特徴部位）は、頭・肩部である。例えば、人物が重なって画像に写っている場合には、胴体の検出が難しい場合が多い。しかし、そのような胴体の検出が難しい画像であっても、人物の頭・肩部の輪郭が明瞭に写っていれば、頭・肩部検出が可能である。また、頭・肩部検出のアルゴリズムは比較的単純であり、処理時間も短いという利点がある。そこで、本実施の形態では、先ず、頭・肩検出器による頭・肩部検出処理を実行する。
【００７８】
なお、各検出器で「頭部ではない」、「肩ではない」、「胴体ではない」と判定された時点で、基幹骨格推定部２３０は、検出処理を終了し、残りの検出器での処理を省略する。これにより、検出器の実行回数を可及的に少なくし、検出処理に要する時間を短縮することができる。なお、肩関節検出器の処理については後述する。
【００７９】
胴体検出器は、領域の輪郭や色などに着目して胴体か否かを検出する機能を有する。頭・肩部検出のアルゴリズムと同様、胴体検出のアルゴリズムは比較的単純であり、処理時間も短いという利点がある。胴体検出器は、胴体領域の重心、胴体領域のスケール、及び、胴体領域の角度を検出し、検出結果を基幹骨格情報に書き込む。
【００８０】
なお、用いる検出器の種類（アルゴリズム）、数、順番などは、上記で示したものに限らず、適宜変更してもかまわない。例えば、顔器官の特徴などを用いて人物の顔か否かを検出する顔検出器などを組み合わせてもよい。
【００８１】
検出器の具体的なアルゴリズム及び検出器の作成手法に関しては、従来公知の技術を利用することができる。例えば、数多くのサンプル画像（頭・肩検出器であれば、頭・肩が写っている画像と、頭・肩が写っていない画像を用意する）を用いて、Ｒｅａｌ  ＡｄａＢｏｏｓｔのようなＢｏｏｓｔｉｎｇ手法により特徴量の傾向を学習することで、検出器が作成される。特徴量としては、例えば、ＨｏＧ（Histogram of Gradient）特徴量、Ｓｐａｒｓｅ特徴量、Ｈａａｒ特徴量などどのような種類の特徴量も用いることができる。また、学習方法も、Ｂｏｏｓｔｉｎｇ手法のほか、ＳＶＭ（サポートベクタマシン）、ニューラルネットワークなどを利用することも可能である。 
【００８２】
次に、図１８及び図１９を用いて肩関節検出器における肩関節位置の推定方法を説明する。図１８は、肩関節位置の推定方法の処理フローの一例を示す図である。また、図１９は肩関節位置の推定方法によって対象画像が処理される様子を示す図である。
【００８３】
前述のように、既に頭・肩検出器によって、対象人物の頭・肩領域が算出されている（Ｓ２０１、図１９Ａ参照）。そこで、Ｓ２０２では、肩関節検出器は、対象人物の頭・肩領域をある画素分だけ拡大又は縮小するクロージングを行い、白い画素の集合の中に現れる黒いノイズを取り除く（図１９Ｂ参照）。
【００８４】
Ｓ２０３において、肩関節検出器は、対象人物の頭・肩領域の下辺から黒い画素に到達するまでのｙ軸方向の距離を抽出し、距離ヒストグラムを作成する（図１９Ｃ参照）。続いて、Ｓ２０４にて、肩関節検出器は、距離ヒストグラムに対し２値化処理を行う（図１９Ｄ参照）。２値化処理は、予め定義された閾値に基づいて行ってもよいし、大津の２値化と称される手法（大津の手法ともいう）を用いても良い。
【００８５】
利用する大津の手法は、ある値の集合を二つクラスに分類する場合の適切な閾値を決定する手法である。当該方法は、二つのクラス内の分散はできるだけ小さく、クラス間の分散はできるだけ大きくなるような閾値を求める。ここでは、対象人物の頭領域と肩領域とを二つのクラスに分類するために、対象画像の下辺から肩領域までの距離と、対象画像の下辺から頭領域までの距離とを、ある閾値で分類する。
【００８６】
続いて、肩関節検出器は、Ｓ２０５にて、２値化後の肩領域の左半分に含まれる白い画素の重心を右肩関節として推定し（図１９Ｅ参照）、右半分に含まれる白い画素の重心を左肩関節として推定する。
【００８７】
基幹骨格推定部２３０は、推定した右肩関節、左肩関節それぞれのｘ座標の値、ｙ座標の値を、基幹骨格情報に書き込む。
【００８８】
以上のような処理により、基幹骨格推定部２３０は、対象人物の特徴部位として、肩の位置及び対象人物の向き（体の向き）を推定して、基幹骨格情報を作成する。そして、基幹骨格推定部２３０は、基幹骨格情報の作成が完了すると、作成した基幹骨格情報と「部位抽出依頼」を部位抽出部２４０に出力し、肩関節位置の推定方法の処理フローを終了する。そして、図１７の処理フローのＳ１０３に進む。
【００８９】
Ｓ１０３において、基幹骨格推定部２３０から「部位抽出依頼」を受け取った部位抽出部２４０は、対象人物の部位の候補領域を推定する。具体的には、部位抽出部２４０は、対象人物の部位毎に、部位が存在する確からしさを示す尤度マップを生成する。
【００９０】
より詳細には、部位抽出部２４０は、基幹骨格推定部２３０から「部位抽出依頼」を受け取ると、対象画像の各画素における特徴量を抽出し、抽出した特徴量を識別器に入力する。ここで、特徴量は、非特許文献１に記されているＳＩＦＴ（Scale-Invariant Feature Transform）特徴量などを用いる。ＳＩＦＴ特徴量を用いた手法は、物体のスケール変化、物体の回転、物体の平行移動に対して影響を受けない（不変となる）特徴点を抽出する。そして、その特徴点は１２８次元のベクトルにより構成されている。ＳＩＦＴ特徴量を用いた手法は、特に、腕のような、様々な方向に回転可能な部位の検出に有効である。
【００９１】
なお、従来、矩形情報を基にした複数の弱識別器の総和をＡｄａＢｏｏｓｔにより統合して強識別器を作成し、強識別器をカスケード接続させて、画像中の注目対象として顔を認識する技術が提案されている（非特許文献２参照）。
【００９２】
識別器Ｈｋ（ｋ＝１〜５）は、上腕（ｋ＝１）、前腕（ｋ＝２）、胴体（ｋ＝３）、上脚（ｋ＝４）、下脚（ｋ＝５）ごとに予め機械学習により準備される。識別器Ｈｋの生成は、ＡｄａＢｏｏｓｔアルゴリズムにより行われ、予め部位ごとに用意されている複数の教師画像に対して所望の精度で上腕、前腕、胴体、上脚、下脚か否かの判定ができるようになるまで繰り返される。
【００９３】
ある特徴量が識別器Ｈｋに入力されると、識別器Ｈｋは、識別器Ｈｋを構成する各弱識別器の出力にその弱識別器の信頼度αを乗じた値の総和を算出し、その総和から所定の閾値Ｔｈを減じて尤度ｃｋを算出する。尤度ｃｋは、ある画素がある人物の部位であることの確からしさを示す値である。ｃ１は上腕の尤度を示し、ｃ２は前腕の尤度を示し、ｃ３は胴体の尤度を示し、ｃ４は上脚の尤度を示し、ｃ５は下脚の尤度を示す。
【００９４】
対象画像の各画素の特徴量を全ての識別器Ｈｋに入力することで、画素ごとに尤度ベクトルＣｉｊ＝［ｃ１、ｃ２、ｃ３、ｃ４、ｃ５］が出力される。ここで、尤度ベクトルＣｉｊにおいて、ｉは、画素のｘ座標を示し、ｊは、ｙ座標を示す。このようにして、部位抽出部２４０は、各部位毎の尤度マップを生成する。
【００９５】
ここで、識別器Ｈｋへの入力対象の削減方法について説明する。識別器Ｈｋへの入力対象を削減することにより、演算量を低減することができる。識別器Ｈｋへの入力対象を削減するために、人体の関節角度に着目した方法を説明する。
【００９６】
人体の関節は、あらゆる方向に曲がるわけではない。人体の関節はある角度まで曲げると、それ以上は曲がりにくくなる。このため、当該関節に接続する部位を動かせる範囲（以下、可動域）には、限界がある。
【００９７】
例えば、図２０は、左肩関節に接続する左上腕の可動域を示している。図２０Ａは対象人物が正面を向いた場合の右上腕の可動域を示し、図２０Ｂは対象人物が向かって左横を向いた場合の左上腕の可動域を示している。肩関節を背中側に曲げることは難しいため、図２０Ｂに示すように、左上腕を動かせない領域（図中、「動かない領域」として示される領域）が発生する。肘関節、大腿関節、膝関節の場合も同様に、それぞれ動かせる範囲に限界があるため、動かない領域が発生する。
【００９８】
Ｓ１０２において、基幹骨格推定部２３０により、対象画像中の対称人物の肩関節位置、及び、体の向きが既に推定されている。対象人物の上腕が存在する候補領域は、肩関節位置を中心とした、上腕の可動域内にある。
【００９９】
また、図２０に示すように、対象人物の体の向きによって、対象画像上の部位の可動域が異なる。以下、対象人物の体の向きによって異なる、対象画像上の部位の可動域を「画面内可動域」と称する。例えば左上腕の場合、対象人物が体を正面に向けたときに、図２０Ａに示すように画面内可動域が最も大きくなる。一方、図２０Ｂに示すように、対象人物が体を向かって左真横に向けたときには、動かない領域（横線領域）が発生するため、画面内可動域が最も小さくなる。なお、図２０では、画面内可動域は、部位が接続する関節を中心とし、関節長を半径とした円と、関節を曲げることが可能な角度とで表現する例を示した。
【０１００】
部位抽出部２４０は、基幹骨格推定部２３０から受け取った基幹骨格情報に含まれる胴体領域のスケールＳｈを用いて、式（６）によって上腕の平均関節長ＢＡＶＥを計算する。
【数６】
2012046392.tif 000008
【０１０１】
式（６）は、腕の関節長と胴体の長さとの相関が高く、胴体の長さから腕の関節長を線形近似できることを示している。ここで、式（６）の係数ａ、ｂは人体寸法データを用いて、あらかじめ統計的に算出されて、部位抽出部２４０が保持している。
【０１０２】
続いて、部位抽出部２４０は、基幹骨格情報に含まれる対象人物の体の向きと上腕の平均関節長とから、対象画像における画面内可動域を一意に決定する。さらに、部位抽出部２４０は、基幹骨格情報に含まれる対象人物の肩の位置と、画面内可動域の中心とを一致させる。
【０１０３】
これにより、対象画像における上腕候補領域の探索範囲を小さくすることができる。すなわち、部位抽出部２４０は、対象画像内の全画素を上腕識別器に入力せずに、画面内可動域に含まれる画素についてのみ上腕識別器に入力し、尤度Ｃｋを算出することで、計算時間を短縮することができる。
【０１０４】
また、背景差分のような公知技術を用いて、対象画像において対象人物が存在する可能性がある候補領域を予め抽出しておくようにしてもよい。この場合、対象人物が存在する可能性がある候補領域と画面内可動域の共通領域とに含まれる画素を、部位の探索範囲とすることで、部位抽出部２４０は、さらなる計算時間の短縮が可能となる。
【０１０５】
このようにして、部位抽出部２４０は、部位が存在する確からしさを示す尤度マップを生成し、当該尤度マップに応じた、部位領域情報を生成する。そして、部位抽出部２４０が部位領域情報の作成を完了すると、部位領域情報と尤度マップともに「骨格推定依頼」を骨格推定部２５１に出力し、Ｓ１０４に進む。
【０１０６】
Ｓ１０４において、骨格推定部２５１は、部位抽出部２４０から受け取った部位領域情報を参照して対象人物の骨格を推定する。
【０１０７】
本実施の形態では、骨格推定部２５１における推定方法として、２つの関節位置を推定した後、２つの関節位置の中間に存在する関節位置を推定する方式について説明する。
【０１０８】
例えば、骨格推定部２５１は、肩と手首の位置を用いて、中間に存在する肘の位置を推定する。或いは、骨格推定部２５１は、脚の大腿と踵の位置を用いて膝の位置を推定する。
【０１０９】
図２１は、骨格推定部２５１における骨格推定の処理フローの一例を示す図である。
【０１１０】
・肩の位置
肩の位置は、Ｓ１０２において推定済みである。
【０１１１】
・手首の位置
手首について、骨格推定部２５１は、部位抽出部２４０から受け取った部位領域情報に含まれる右前腕の重心を通り、右前腕の縦スケールに対応する辺に平行に伸びる直線と、右前腕の横スケールに対応する辺との交点とを抽出する。交点は２つ存在するが、骨格推定部２５１は、手の領域の検出によって、手の存在する領域に近い交点を対象人物の右手首の位置とみなす。なお、手の領域の検出については、骨格推定部２５１は、一般的に用いられるＨＳＶ表色系を用いた肌色抽出を活用できる。骨格推定部２５１は、左手首の位置についても同様に求めることができる。
【０１１２】
・肘の位置
肩と手首の位置が決まった後、骨格推定部２５１は、肩を中心に角度θごとに部位の端点（関節位置）を通り、部位の傾きに平行な直線（初期位置）を一定角度刻みで回転させ、そのときの直線が通る画素に付与された部位の尤度の総和を求める。
【０１１３】
同様に、骨格推定部２５１は、手首を中心に角度θごとに部位の端点（関節位置）を通り、部位の傾きに平行な直線（初期位置）を一定角度刻みで回転させ、そのときの直線が通る画素に付与された部位の尤度の総和を求める。
【０１１４】
肩から伸びる直線と手首から伸びる直線との交点が、肘の候補位置となる。骨格推定部２５１は、肩から肘の候補位置を経由して手首に至る距離が最短となる直線上の画素の尤度の総和を求め、尤度の総和が最大となる肩、肘、手首位置の組み合わせから肘の位置を特定する。
【０１１５】
・踵の位置
骨格推定部２５１は、部位領域情報に含まれる右下脚の重心を通り、右下脚の縦スケールに対応する辺に平行に伸びる直線と、右下脚の横スケールに対応する辺との交点とを抽出する。交点は２つ存在するが、踵は地面に近いと想定されることから、骨格推定部２５１は、ｙ座標の値が大きい方を、対象人物の右踵の位置とみなす。骨格推定部２５１は、左踵の位置についても同様に求めることができる。
【０１１６】
・大腿の位置
骨格推定部２５１は、部位領域情報に含まれる右上脚の重心を通り、右上脚の縦スケールに対応する辺に平行に伸びる直線と、右上脚の横スケールに対応する辺との交点とを抽出する。交点は２つ存在するが、大腿は地面から遠いと想定されることから、骨格推定部２５１は、ｙ座標の値が小さい方を、対象人物の右大腿の位置と見なす。骨格推定部２５１は、左大腿の位置についても同様に求めることができる。
【０１１７】
・膝の位置
骨格推定部２５１は、肩と手首の位置の推定結果を用いた肘の位置の推定と同様に、踵と大腿の位置の推定結果を用いて、膝の位置を推定する。
【０１１８】
・首、股の位置
骨格推定部２５１は、Ｓ１０２で位置を推定した両肩を結ぶ直線の中点を首の位置として推定する。また、骨格推定部２５１は、上記方法で位置を推定した両大腿を結ぶ直線の中点を股の位置として推定する。
【０１１９】
以上のように、Ｓ１０４では、Ｓ１０２で決めた両肩の位置以外に、首、両肘、両手首、股、両大腿、両膝、両踵の位置を推定し、骨格情報を作成する。
【０１２０】
このようにして、骨格情報の作成を完了すると、骨格推定部２５１は、骨格情報と「骨格モデル記述変換依頼」を骨格モデル記述変換部２５２に出力し、Ｓ１０５に進む。
【０１２１】
Ｓ１０５において、骨格モデル記述変換部２５２は、部位ごとに、肩を基準とした関節長比及び関節角度を計算する。骨格モデル記述変換部２５２の処理の流れは、以下のようになる。
【０１２２】
骨格モデル記述変換部２５２は、骨格推定部２５１から骨格情報と「骨格モデル記述変換依頼」を受け取ると、骨格情報に含まれる関節の位置座標を式（１）〜式（４）に適用して骨格モデル記述情報を作成する。これにより、ターゲット骨格モデルを表現する骨格モデル記述情報がた作成される。
【０１２３】
骨格モデル記述変換部２５２は、骨格モデル記述情報の作成を完了すると、ターゲット骨格モデルを表現する骨格モデル記述情報と「骨格モデル照合依頼」を相似骨格モデル選択部２５５に出力し、Ｓ１０６に進む。
【０１２４】
Ｓ１０６において、相似骨格モデル選択部２５５は、対象人物の姿勢を推定する。具体的には、相似骨格モデル選択部２５５は、骨格モデル記述変換部２５２から「骨格モデル照合依頼」を受け取る。そして、相似骨格モデル選択部２５５は、骨格モデル記述変換部２５２から受け取った骨格モデル記述情報と相似骨格モデル格納部２５４が格納する相似骨格情報とのマッチング評価を、繰り返し実施する。マッチング評価は、例えば、式（５）を用いて行うことができる。この場合には、式（５）の値が小さいほど、マッチング評価が高い。そして、相似骨格モデル選択部２５５は、マッチング評価が最も高かった相似骨格情報に関連付けられた３次元の骨格モデルを、対象人物の姿勢であると推定する。
【０１２５】
このようにして、マッチング評価を完了すると、相似骨格モデル選択部２５５は、操作制御部２１０に「推定結果表示依頼」、及び、マッチング評価が最も高かった相似骨格情報に関連付けられた３次元の骨格モデルを出力する。
【０１２６】
操作制御部２１０は、相似骨格モデル選択部２５５から、対象人物の姿勢の推定結果である３次元の骨格モデルと「推定結果表示依頼」を受け取る。そして、操作制御部２１０は、図２２のようにログ領域内の、オリジナル画像領域に対象画像を表示し、推定結果領域に相似骨格モデル選択部２５５から受け取った３次元の骨格モデルを表示する。
【０１２７】
推定された３次元の骨格モデルは、関節ごとに３次元位置（ｘ座標、ｙ座標、ｚ座標）と、回転角度が定義されている。そのため、ユーザは、推定結果領域内でマウスを操作して３次元の骨格モデルを回転させることにより、カメラ視点を変化させた３次元の骨格モデルの見え方の変化を目視確認することができる（図示せず）。
【０１２８】
入力装置を介してユーザによって「終了」ボタンが押下されると、操作制御部２１０は、操作画面を消去し、姿勢推定装置２００も動作を終了する。
【０１２９】
以上述べたように、本実施の形態の姿勢推定装置２００は、対象人物の姿勢を２次元の骨格モデルで表現することができる。そして、姿勢推定装置２００は、対象人物の姿勢を、予め準備され、かつ、様々な姿勢と関連付けられた２次元の骨格モデルとの類似度を評価し、最も類似する２次元の骨格モデルに対応する姿勢を対象人物の姿勢として推定することができる。
【０１３０】
すなわち、本実施の形態に係る姿勢推定装置２００において、相似骨格モデル格納部２５４は、相似骨格情報を３次元の骨格モデルと対応付けて格納する。各相似骨格情報は、３次元の骨格モデルを２次元の骨格モデルに射影変換することによって生成される。骨格推定部２５１及び骨格モデル記述変換部２５２から構成されるターゲット骨格モデル形成部２５３は、尤度マップを用いて、ターゲット骨格モデルを表現する骨格モデル記述情報を作成する。
【０１３１】
相似骨格モデル選択部２５５は、相似骨格情報とターゲット骨格モデルを表現する骨格モデル記述情報との類似度に基づいて、最も類似する相似骨格情報を、対象人物の姿勢に対応する２次元の骨格モデルとして選択する。相似骨格情報には、様々な姿勢の３次元骨格モデルが対応付けられているため、姿勢推定装置２００は、対象人物の姿勢を推定することができる。
【０１３２】
このように、本実施の形態では、対象人物の姿勢を２次元の骨格モデルで単純化し、関節長比と間接角度からなるパラメータに変換して表現している。これにより、シルエットマッチングに代表される、計算コストの高い画像同士の類似度評価に代えて、単純なパラメータ比較により類似度評価を採用できる。また、単眼カメラ画像において推定が難しいカメラの設置位置に対する対象人物の奥行き情報に依存せず、スケールフリーなマッチングが可能となる。
【０１３３】
さらに、基幹骨格推定部２３０は、姿勢推定処理の初期段階で対象人物の肩の位置及び体の向きを推定するようにした。そして、基幹骨格推定部２３０は、後段の部位抽出部２４０における処理に、運動学的制約や、人体寸法統計から得られる知識を適用し、自由度の高い腕や脚の探索範囲に制限を設けるようにした。これにより、高速処理を実現できる。
【０１３４】
なお、相似骨格モデル選択部２５５は、人物の特徴部位としての肩の位置及び体の向きが一致する３次元の骨格モデルに対応する相似骨格情報のみを対象としてマッチング評価を、対象人物の姿勢に対応する２次元の骨格モデルを選択するようにしてもよい。これにより、マッチング評価の候補数を絞り込むことができるため、高速処理を実現できる。
【０１３５】
（実施の形態２）
実施の形態１に係る姿勢推定装置は、相似骨格情報と、骨格モデル記述情報との類似度に基づいて、対象人物の姿勢を推定した。上述の通り、相似骨格情報は、予め定義された３次元の骨格モデルを２次元の骨格モデルに射影変換することにより生成された情報でありる。また、骨格モデル記述情報は、尤度マップから形成されたターゲット骨格モデルに対応する情報である。
【０１３６】
本発明の実施の形態２に係る姿勢推定装置は、予め定義された３次元の骨格モデルを射影変換した２次元の骨格モデルを、対象人物の部位が存在する確からしさを示す尤度マップに重畳させる。そして、本実施の形態に係る姿勢推定装置は、２次元の骨格モデルが尤度マップに重なる画素が保持する尤度の総和に基づいて、対象人物の姿勢を推定する。
【０１３７】
図２３は、本実施の形態に係る姿勢推定装置の要部構成を示すブロック図である。図２３の姿勢推定装置３００は、図３の姿勢推定装置１１０として適用される。なお、図２３において、図４と共通する構成部分には、図４と同一の符号を付して説明を省略する。
【０１３８】
図２３の姿勢推定装置３００は、図４の姿勢推定装置２００に対して、骨格モデル評価部２５０に代えて、骨格モデル評価部３１０を具備する。
【０１３９】
なお、本実施の形態では、部位抽出部２４０は、尤度マップのみを骨格モデル評価部３１０に出力する。すなわち、部位抽出部２４０は、骨格モデル評価部３１０に対して部位領域情報を出力しない。そのため、本実施の形態では、部位抽出部２４０は、尤度マップのみを生成し、部位領域情報の抽出は行わなくてもよい。
【０１４０】
骨格モデル評価部３１０は、相似骨格モデル格納部３１１及び相似骨格モデル選択部３１２を有する。
【０１４１】
実施の形態１における相似骨格モデル格納部２５４は、上述の通り、３次元の骨格モデルから、画像格納部２２０が格納する動画像撮影時のカメラパラメータを用いて２次元の骨格モデルを生成する。
【０１４２】
これに対し、本実施の形態における相似骨格モデル格納部３１１は、対象人物の肩ラインと、２次元の骨格モデルの肩ラインとが平行になるように、射影時に用いるカメラパラメータを変更する。対象人物の肩ライは、基幹骨格推定部２３０が推定する。２次元の骨格モデルの肩ラインは、３次元の骨格モデルを２次元に射影した結果である。これにより、基幹骨格推定部２３０が推定した対象人物の肩ラインと、肩ラインが平行である２次元の骨格モデルが形成され、形成された２次元の骨格モデルを表現する骨格モデル記述情報が生成される。
【０１４３】
相似骨格モデル格納部３１１は、例えばモーションキャプチャなどによって体型差または姿勢差を考慮した様々な姿勢を表現した３次元の骨格モデルを、予め取得する。そして、相似骨格モデル格納部３１１は、予め取得された３次元の骨格モデルを２次元に射影して、対応する２次元の骨格モデルを形成し、形成された２次元の骨格モデルを表現する骨格モデル記述情報を生成し、格納する。
【０１４４】
さらに、相似骨格モデル格納部３１１は、基幹骨格推定部２３０によって推定された対象人物の肩ライン長と、格納された骨格モデル記述情報によって表現される２次元の骨格モデルの肩ライン長との比Ｓを算出する。相似骨格モデル格納部３１１は、当該２次元の骨格モデルの全関節長に算出した比Ｓを乗じて、２次元の骨格モデルを伸縮させる。当該比Ｓは、対象人物の肩ライン長と、２次元の骨格モデルの肩ライン長とを一致させるためのパラメータである。相似骨格モデル格納部３１１はこのようにして得られた２次元の骨格モデルを表現する骨格モデル記述情報を格納する。
【０１４５】
相似骨格モデル選択部３１２は、部位抽出部２４０から取得された尤度マップ及び相似骨格モデル格納部３１１が格納する骨格モデル記述情報に基づいて、対象人物の姿勢を推定する。
【０１４６】
具体的には、相似骨格モデル選択部３１２は、相似骨格モデル格納部３１１が格納する骨格モデル記述情報が表現する２次元の骨格モデルの全てを、尤度マップにそれぞれ重畳させる。そして、相似骨格モデル選択部３１２は、重なる画素が保持する尤度の総和を算出し、最も高いスコアを出力する２次元の骨格モデルを、対象人物の姿勢に対応する２次元の骨格モデルとして選択する。なお、相似骨格モデル選択部３１２における推定方法の詳細については、後述する。
【０１４７】
次に、以上のように構成された姿勢推定装置２００の動作について、図２４の処理フローを用いて説明する。なお、図２４において、図１７と共通するステップには、図１７と同一の符号を付して説明を省略する。
【０１４８】
Ｓ１０１において、画像格納部２２０に、対象人物の画像が格納される。Ｓ１０２において、基幹骨格推定部２３０により、対象人物の肩ラインと体の向きが推定される。Ｓ１０３において、部位抽出部２４０により、対象人物の各部位の領域が推定される。
【０１４９】
Ｓ４０１では、相似骨格モデル格納部３１１は、予め取得された複数の３次元の骨格モデルから１つ抽出し、基幹骨格推定部２３０が推定した対象人物の肩ラインと、肩ラインが平行となるよう２次元に射影して、対応する２次元の骨格モデルを形成する。そして、相似骨格モデル格納部３１１は、対象人物の肩ライン長と肩ライン長が一致するよう、全ての２次元の骨格モデルを伸縮させ、伸縮させた２次元の骨格モデルを表現する骨格モデル記述情報を格納する。そして、Ｓ４０２に進む。
【０１５０】
Ｓ４０２では、骨格モデル評価部３１０は、相似骨格モデル格納部３１１が格納する骨格モデル記述情報が表現する２次元の骨格モデルを、部位抽出部２４０から取得された尤度マップに重畳させる。ここで、尤度マップは、画素ごとに各識別器Ｈｋから出力された尤度をスコアとして保持している。
【０１５１】
Ｓ４０１により、相似骨格モデル格納部３１１が格納する骨格モデル記述情報が表現する２次元の骨格モデルは、対象人物と肩ラインが平行でかつ、肩ライン長が一致するよう形成されている。そのため、相似骨格モデル選択部３１２は、相似骨格モデル格納部３１１が格納する骨格モデル記述情報が表現する２次元の骨格モデルの肩関節位置を、対象人物の肩関節位置と一致させる。これにより、相似骨格モデル選択部３１２は、相似骨格モデル格納部３１１が格納する骨格モデル記述情報が表現する２次元の骨格モデルを、尤度マップに重畳することができる。相似骨格モデル選択部３１２は、尤度マップの重畳が完了すると、Ｓ４０３に進む。
【０１５２】
Ｓ４０３では、相似骨格モデル選択部３１２は、重畳された２次元の骨格モデルが重なる画素が保持する尤度の総和であるスコアを算出する。そして、相似骨格モデル選択部３１２は、Ｓ４０１において選択した３次元の骨格モデルとスコアとを対応付けて、尤度加算情報に記録する。
【０１５３】
上記尤度加算情報には、相似骨格モデル選択部３１２が、対象人物の全ての部位の尤度の総和であるスコアを記録する場合について説明したが、これに限らない。例えば、腕に着目して姿勢を推定する場合には、相似骨格モデル選択部３１２は、上半身の部位の尤度のみの総和をスコアとしたり、腕の尤度のみに重み付けを行ってスコアを算出したりしてもよい。
【０１５４】
相似骨格モデル選択部３１２は、尤度加算情報への記録が完了すると、Ｓ４０４に進む。
【０１５５】
Ｓ４０４では、相似骨格モデル選択部３１２は、相似骨格モデル格納部３１１が取得済みである３次元の骨格モデル全てについてＳ４０１〜Ｓ４０３の処理が完了したか否かを判定する。全ての３次元の骨格モデルについて処理が完了していない場合、骨格モデル評価部３１０は、Ｓ４０１に戻って、次の３次元の骨格モデルに対する評価を開始する。
【０１５６】
ここで、別の３次元姿勢を表現する２次元の骨格モデルは、初期骨格モデルに対して、腕の位置、脚の位置などを変化させたＮ個のパターンとして予め定義された骨格モデルである。したがって、相似骨格モデル選択部３１２は、Ｎ回評価を繰り返し、相似骨格モデル格納部３１１が格納する２次元の骨格モデルの中から、対象人物の姿勢に最も近い骨格モデルを探索することになる。
【０１５７】
全ての３次元の骨格モデルについての評価が完了した場合、Ｓ４０５において、相似骨格モデル選択部３１２は、尤度加算情報を参照して、スコアが最大の３次元の骨格モデルを対象人物の姿勢であると推定する。
【０１５８】
以上のように、本実施の形態では、骨格モデル評価部３１０は、３次元の骨格モデルを２次元へ射影し伸縮させた２次元の骨格モデルを尤度マップに重畳させ、各人体部位の尤度の総和であるスコアを算出する。そして、骨格モデル評価部３１０は、最も高いスコアを出力する２次元骨格モデルまたは、当該２次元の骨格モデルに対応する３次元の骨格モデルを、対象人物の姿勢として出力する。
【０１５９】
具体的には、相似骨格モデル格納部３１１は、予め取得された３次元の骨格モデルを、その語らいが、対象人物の肩ラインと平行となるように２次元に射影して、３次元の骨格モデルに対応する２次元の骨格モデルを形成する。対象人物の肩ラインは、基幹骨格推定部２３０が推定する。そして、相似骨格モデル格納部３１１は、対象人物と肩ライン長が一致するように２次元の骨格モデルを伸縮させ、伸縮させた２次元の骨格モデルを表現する骨格モデル記述情報を格納する。
【０１６０】
相似骨格モデル選択部３１２は、相似骨格モデル格納部３１１が格納する骨格モデル記述情報によって表現される２次元の骨格モデルを尤度マップに重畳させる。そして、相似骨格モデル選択部３１２は、２次元の骨格モデルが尤度マップに重なる画素が保持する尤度の総和であるスコアに基づいて、２次元の骨格モデルを選択し、当該２次元の骨格モデルに対応する３次元の骨格モデルの姿勢を対象人物の姿勢として推定する。
【０１６１】
このように、本実施の形態では、実施の形態１と同様に、対象人物の姿勢を２次元の骨格モデルで単純化し、関節長比と間接角度からなるパラメータを用いて表現している。これにより、シルエットマッチングに代表される、計算コストの高い画像同士の類似度評価に代えて、単純なパラメータ比較により類似度評価ができる。また、単眼カメラ画像において推定が難しいカメラの設置位置に対する人物の奥行き情報に依存せず、スケールフリーなマッチングが可能となる。
【０１６２】
なお、本実施の形態では、相似骨格モデル格納部３１１のＳ４０１の処理をＳ４０２の処理の前に都度行うよう説明したが、最初のＳ４０１の処理のタイミングで、あらかじめ取得しておいた３次元の骨格モデルを全て射影、伸縮させておいてもよい。この場合、Ｓ４０４においてＮｏとなった場合には、Ｓ４０２の前に処理が戻る。
【０１６３】
（実施の形態３）
実施の形態１及び実施の形態２では、フレーム毎に対象人物の姿勢を推定する方法について説明した。実施の形態１に係る姿勢推定装置は、相似骨格情報と、骨格モデル記述情報との類似度に基づいて、取得画像内の人物の姿勢を推定した（以下では、ボトムアップ方法ともいう）。上述の通り、相似骨格情報は、予め定義された３次元の骨格モデルを２次元の骨格モデルに射影変換することにより生成されたものである。また、骨格モデル記述情報は、尤度マップから形成されたターゲット骨格モデルに対応するものである。また、実施の形態２に係る姿勢推定装置は、予め取得された３次元の骨格モデルを２次元に射影、伸縮することにより形成された２次元の骨格モデルを、尤度マップに重畳させた。そして、実施の形態２に係る姿勢推定装置は、２次元の骨格モデルが重なる画素が保持する尤度の総和であるスコアに基づいて、対象人物の姿勢を推定した（以下では、トップダウン方法ともいう）。
【０１６４】
本実施の形態では、フレーム毎の対象人物の３次元姿勢推定結果を蓄積し、蓄積した複数の推定結果から算出される関節長比を活用する方法について説明する。なお、始めに、フレーム毎の対象人物の３次元姿勢を実施の形態１で説明したボトムアップ方法を用いて推定し、以降の骨格モデル評価についてもボトムアップ方法を用いる場合について説明する。
【０１６５】
図２５は、本発明の実施の形態に係る姿勢推定装置の要部構成を示すブロック図である。図２５の姿勢推定装置４００は、図３の姿勢推定装置１１０として適用される。なお、図２５の本実施の形態に係る姿勢推定装置において、図５と共通する構成部分には、図５と同一の符号を付して説明を省略する。
【０１６６】
図２５の姿勢推定装置４００は、図５の姿勢推定装置２００に対して、部位抽出部２４０に代えて、部位抽出部（尤度マップ生成部）４２０を備え、関節長比算出部４１０をさらに具備する構成を取る。
【０１６７】
関節長比算出部４１０は、同一の対象人物に対するフレーム毎の推定結果である３次元      
【０１６８】
姿勢を複数保持し、それらを使って、対象人物の関節長比を時間幅Ｔで「平滑化」する。関節長比算出部４１０は、フレーム毎の推定結果である３次元姿勢を、例えば、相似骨格モデル選択部２５５からの出力により取得する。この場合、関節長比算出部４１０は、相似骨格モデル選択部２５５（骨格モデル評価部２５０）により対象人物の姿勢に対応する２次元の骨格モデルとして選択された相似骨格情報に対応付けられた３次元の骨格モデルから、対象人物の関節長比を算出する。なお、関節長比の平滑化方法については、後述する。
【０１６９】
関節長比算出部４１０は、関節長比の平滑化が完了すると、平滑化した関節長比（以下、「代表関節長比」という）及び平滑化完了通知を部位抽出部４２０に出力する。
【０１７０】
部位抽出部４２０は、部位抽出部２４０と同様に、人物の特徴部位としての肩の位置に基づいて、対象人物の特徴部位以外の部位が存在する確からしさを示す尤度マップを生成する。
【０１７１】
なお、部位抽出部４２０は、平滑化が終わったか否かを区別する平滑化完了フラグを保持している。そして、部位抽出部４２０は、関節長比算出部４１０から平滑化完了通知を受け取ると、平滑化完了フラグをＯＦＦからＯＮに切り替える。
【０１７２】
平滑化完了フラグがＯＦＦの場合、部位抽出部４２０は、部位抽出部２４０と同様に、式（６）の平均関節長を用いて、各部位の尤度マップを生成する。これに対し、平滑化完了フラグがＯＮの場合、部位抽出部４２０は、対象人物の特徴部位の位置、体の向き、及び、代表関節長比に基づいて、部位抽出部４２０が有する各識別器に入力する対象画像中の探索領域を制限し、制限された探索領域において尤度マップを生成する。
【０１７３】
次に、以上のように構成された姿勢推定装置４００の動作について、図２６の処理フローを用いて説明する。なお、図２６において、図１７と共通するステップには、図１７と同一の符号を付して説明を省略する。
【０１７４】
最初に、Ｓ５０１において、関節長比算出部４１０は、同一の対象人物に対するフレーム毎の推定結果である３次元姿勢を複数保持し、それらを用いて、対象人物の関節長比を時間幅Ｔで「平滑化」する。ここで平滑化とは、時刻ｉにおける画像ファイル番号Ｎｉに対応するフレームでの対象人物の３次元姿勢の関節長比を表す関節長比ベクトルをＶｉとすると、時間幅Ｔに含まれる複数の関節長比ベクトルＶから、対象人物に最適な代表関節長比ＶＡｖｅを算出することである。ここで関節長比ベクトルとは、関節と関節を結ぶ直線の肩ライン長に対する比を要素とするベクトルであり、例えば、図１４の表で示すような、左肩と右肩を結ぶ直線の関節長比、右肩と右肘を結ぶ直線の関節長比などを要素とする。
【０１７５】
以下、関節長比算出部４１０が、画像ファイル番号Ｎ０からＮ５の関節長比ベクトルから代表関節長比ＶＡｖｅを抽出する場合を例に説明する。
【０１７６】
平滑化の方法は、統計的処理を行ってもよいし、事前知識に基づいた分類を行ってもよい。例えば、関節長比算出部４１０が、平滑化の方法として統計的処理を採用する場合には、式（７）に示すような式を用いて平均を算出し、それを代表関節長比とすればよい。
【数７】
2012046392.tif 000009
【０１７７】
また、関節長比算出部４１０は、事前知識として、人体寸法データを活用して、代表関節長比ＶＡｖｅを抽出してもよい。例えば、関節長比算出部４１０は、人体の全身長や、各部位の長さを集めた人体寸法データを用いて、対象人物の関節長比を算出し、これら関節長比をデータ集合とする。関節長比算出部４１０は、このデータ集合を、Ｋ−Ｍｅａｎｓと呼ばれる公知技術を用いて、Ｋ個のクラスに分割することができる。関節長比算出部４１０は、Ｋ個に分割されたクラスごとに、そのクラスの中心となるデータを得て、そのデータを各クラスの代表例とする。代表例とは、クラスを説明する代表的な関節長比ベクトルを意味することになる。
【０１７８】
また、関節長比算出部４１０は、対象画像から推定した関節長比ベクトルＶｉがどのクラスに属するか、さらにＶ０からＶ５が属するクラスのうち、最も数多くのＶｉが属するクラスを多数決で決定してもよい。そして、関節長比算出部４１０は、決定したクラスに関連付けられた代表例をＶＡｖｅとしてもよい。
【０１７９】
関節長比算出部４１０は、関節長比の平滑化が完了すると、部位抽出部４２０に対し、代表関節長比ＶＡｖｅを用いて部位抽出を行うことを許可する平滑化完了通知を出力する。
【０１８０】
部位抽出部４２０は、関節長比算出部４１０から平滑化完了通知を受け取ると、保持する平滑化完了フラグを、平滑化が完了したことを意味するＯＮの状態に変更する。
【０１８１】
そして、平滑化完了フラグがＯＮになると、後続のＳ１０１、Ｓ１０２において、対象人物の基幹骨格が検出される。
【０１８２】
次に、Ｓ５０２において、部位抽出部４２０は、保持する平滑化完了フラグがＯＮの場合、関節長比算出部４１０が推定した対象人物の代表関節長比ＶＡｖｅに基づいて、部位抽出部４２０が有する各識別器に入力する対象画像中の探索領域を制限する。そして、部位抽出部４２０は、制限された探索領域において尤度マップを生成する。
【０１８３】
平滑化完了フラグがＯＦＦの場合、部位抽出部４２０は、実施の形態１と同様に、式（６）を用いて算出される平均関節長を用いて、部位抽出部２４０と同様の処理により、部位抽出を行う。
【０１８４】
部位抽出部４２０による部位抽出が完了すると、Ｓ１０４〜Ｓ１０６において、骨格モデル評価部２５０は、骨格モデルを評価することにより、姿勢を推定する。
【０１８５】
以上のように、関節長比算出部４１０は、相似骨格情報に対応付けられた３次元の骨格モデルから、特徴部位としての肩ライン長に対する各部位間の長さ（関節長）を示す関節長比を対象画像（フレーム）毎に算出する。そして、関節長比算出部４１０は、複数の対象画像にわたり関節長比を関節長毎に平滑化して代表関節長比を算出する。相似骨格情報は、上述の通り、対象人物の姿勢に対応する２次元の骨格モデルとして骨格モデル評価部２５０により選択された情報である。
【０１８６】
そして、部位抽出部４２０は、対象人物の特徴部位の位置、体の向き、及び、代表関節長比に基づいて、部位抽出部４２０が有する各識別器に入力する対象画像中の探索領域を制限し、制限された探索領域において尤度マップを生成する。これにより、照明変動やオクリュージョンなどの変動要因が発生し、フレーム毎に３次元姿勢の推定結果にばらつきが発生しうる状況下であっても、安定的な３次元姿勢推定が可能となる。
【０１８７】
なお、以上の説明では、関節長比算出部４１０は、実施の形態１で説明したボトムアップ方法を用いて推定された３次元姿勢を用いて、関節長比を算出し、以降の３次元姿勢もボトムアップ方法により推定する例を説明したが、これに限られない。
【０１８８】
例えば、関節長比算出部４１０は、実施の形態２で説明したトップダウン方法を用いて推定された３次元姿勢を用いて、関節長比を算出し、以降の３次元姿勢もトップダウン方法を用いて推定するようにしてもよい。以下、この場合について、説明する。
【０１８９】
図２７は、本発明の実施の形態に係る別の姿勢推定装置の要部構成を示すブロック図である。なお、図２７において、図２３及び図２５と共通する構成部分には、図２３及び図２５と同一の符号を付して説明を省略する。
【０１９０】
図２７の姿勢推定装置５００は、図２３の姿勢推定装置３００に対して、部位抽出部２４０及び骨格モデル評価部３１０に代えて、部位抽出部４２０及び骨格モデル評価部５１０を備える。骨格モデル評価部５１０は、相似骨格モデル格納部５１１及び相似骨格モデル選択部３１２を有する。
【０１９１】
なお、姿勢推定装置５００において、関節長比算出部４１０は、得られた代表関節長比を部位抽出部４２０及び相似骨格モデル格納部５１１に出力する。
【０１９２】
相似骨格モデル格納部５１１は、相似骨格モデル格納部３１１と同様に、対象人物の肩ラインと、肩ラインが平行となるよう、あらかじめ取得しておいた３次元の骨格モデルを２次元に射影して、対応する２次元の骨格モデルを形成する。ここで、相似骨格モデル格納部５１１は、対象人物の代表関節長比を用いて、射影変換する３次元の骨格モデルを絞り込む。具体的には、相似骨格モデル格納部５１１は、関節長比が代表関節長比と一致する、３次元の骨格モデルに対してのみ２次元へ射影変換をして、対応する２次元の骨格モデルを形成する。
【０１９３】
相似骨格モデル格納部５１１は、形成された２次元の骨格モデルに対して、対象人物の肩ライン長と２次元の骨格モデルの肩ライン長が一致するよう、２次元の骨格モデルを伸縮させる。これにより、取得画像内の対象人物の姿勢の候補となる２次元の骨格モデルの数が絞り込まれるため、後段の相似骨格モデル選択部３１２におけるマッチング演算量が削減される。
【０１９４】
次に、以上のように構成された姿勢推定装置５００の動作について、図２８の処理フローを用いて説明する。なお、図２８において、図１７、図２４及び図２６と共通するステップについては、図１７、図２４及び図２６と同様の符号を付し説明を省略し、異なるステップＳ６０１について説明する。
【０１９５】
Ｓ６０１では、相似骨格モデル格納部５１１は、あらかじめ取得しておいた３次元の骨格モデルのうち、関節長比が代表関節長比と一致する３次元の骨格モデル（以下、「代表骨格モデル」）を一つ選択する。そして、相似骨格モデル格納部５１１は、選択した代表骨格モデルに対して、基幹骨格推定部２３０が推定した対象人物の肩ラインと、代表骨格モデルの肩ラインとが平行になるように、射影時に用いるカメラパラメータを変更する。
【０１９６】
次に、相似骨格モデル格納部５１１は、対象人物の肩ライン長と、代表骨格モデルの肩ライン長との比Ｓを計算し、代表骨格モデルの全関節長に比Ｓを乗じて、代表骨格モデルを伸縮させる。
【０１９７】
その後、相似骨格モデル格納部５１１は、伸縮された代表骨格モデルを、変更したカメラパラメータにより２次元に射影し、２次元の骨格モデルを形成する。そして、Ｓ４０２に進む。
【０１９８】
以降の処理は、実施の形態２における処理と同様である。相似骨格モデル選択部３１２は、初期骨格モデルを射影変換することによって形勢された２次元の骨格モデルを尤度マップに重畳させる（Ｓ４０２）。そして、相似骨格モデル選択部３１２は、２次元の骨格モデルが尤度マップに重なる画素が保持する尤度の総和であるスコアを算出する（Ｓ４０３）。そして、相似骨格モデル選択部３１２は、Ｓ４０１において選択した代表骨格モデルとスコアとを対応付けて、尤度加算情報に記録する。
【０１９９】
上記上記尤度加算情報には、相似骨格モデル選択部３１２が、対象人物の全ての部位の尤度の総和であるスコアを記録する場合について説明したが、これに限らない。例えば、腕に着目して姿勢を推定する場合には、相似骨格モデル選択部３１２は、上半身の部位の尤度のみの総和をスコアとしたり、腕の尤度のみに重み付けを行ってスコアを算出したりしてもよい。
【０２００】
相似骨格モデル選択部３１２は、尤度加算情報への記録が完了すると、Ｓ４０４に進む。Ｓ４０４では、全ての代表骨格モデルについて処理が完了していない場合、相似骨格モデル評価部３１０は、Ｓ４０１に戻って、次の代表骨格モデルに対する評価を開始する。
【０２０１】
全ての代表骨格モデルについての評価が完了した場合、Ｓ４０５において、相似骨格モデル選択部３１２は、尤度加算情報を参照して、スコアが最大の代表骨格もモデルを対象人物の姿勢であると推定する。
【０２０２】
以上のように、相似骨格モデル格納部５１１は、格納している３次元の骨格モデルのうち、関節長比が、代表関節長比と一致する３次元の骨格モデル（代表骨格モデル）に対応する２次元の骨格モデルを、対象人物の姿勢推定の候補とする。これにより、候補が絞りこまれるため、相似骨格モデル選択部３１２における演算量を削減することができる。
【０２０３】
なお、姿勢推定装置４００の相似骨格モデル格納部２５４においても、相似骨格モデル格納部５１１と同様に、代表関節長比を用いて、射影変換する３次元の骨格モデルを絞り込むようにしてもよい。これにより、候補が絞りこまれるため、相似骨格モデル選択部２５５における演算量を削減することができる。
【０２０４】
なお、実施の形態１と実施の形態２とを組み合わせて活用してもよい。例えば、姿勢推定の対象となる人物を検知してから最初の数フレームは、実施の形態１で説明した方式を用い、時間幅Ｔを経過した段階で実施の形態２で説明した方式を用いることができる。すなわち、関節長比算出部４１０は、実施の形態１に係る骨格モデル評価部２５０により推定された対象人物の３次元姿勢を用いて、関節長比を算出し、以降の３次元姿勢は、骨格モデル評価部５１０により推定するようにしてもよい。
【０２０５】
また、関節長比算出部４１０は、実施の形態２に係る骨格モデル評価部３１０により推定された３次元姿勢を用いて、関節長比を算出し、以降、骨格モデル評価部２５０により対象人物の３次元姿勢を推定するようにしてもよい。
【０２０６】
（実施の形態４）
実施の形態１から実施の形態３では、姿勢推定装置は、対象人物の上腕、前腕、胴体、上脚、下脚を識別する識別器を有し、前記識別器を用いて生成した部位領域情報もしくは尤度マップに基づいて、対象人物の姿勢を推定した。本実施の形態では、姿勢推定装置は、対象人物の上腕、前腕、胴体、上脚、下脚を平行な直線ペアと近似し、予め定義された平行な直線を検出する矩形フィルタを用いて作成した部位領域情報もしくは尤度マップに基づいて、対象人物の姿勢を推定する。
【０２０７】
図２９は、本実施の形態に係る姿勢推定装置の要部構成を示すブロック図である。図２９の姿勢推定装置６００は、図３の姿勢推定装置１１０として適用される。なお、図２９の本実施の形態に係る姿勢推定装置６００において、図２３と共通する構成部分には、図２３と同一の符号を付して説明を省略する。
【０２０８】
図２９の姿勢推定装置６００は、図２３の姿勢推定装置３００に対して、部位抽出部２４０に代えて、部位抽出部（尤度マップ生成部）６２０を備え、エッジペア抽出矩形フィルタ生成部６１０を具備する構成を取る。
【０２０９】
エッジペア抽出矩形フィルタ生成部６１０は、基幹骨格推定部２３０により得られた対象人物の基幹骨格情報に基づき、エッジペア抽出矩形フィルタを生成する手段である。エッジペア抽出矩形フィルタは、エッジ勾配方向を一定数で量子化した各方向別で、特徴部位以外の部位毎に異なる矩形フィルタ間距離と矩形フィルタスケールを保持した平行線検出のためのフィルタである。詳細は後述する。
【０２１０】
部位抽出部６２０は、基幹骨格推定部２３０により得られた対象人物の基幹骨格情報に基づいて、エッジペア抽出矩形フィルタ生成部６１０で生成されたエッジペア抽出矩形フィルタ（以下、単に「矩形フィルタ」と記述）を用いて、特徴部位以外の部位が存在する確からしさを示す尤度マップを生成する。詳細は後述する。
【０２１１】
次に、以上のように構成された姿勢推定装置６００の動作について、図３０の処理フローを用いて説明する。なお、図３０において、図２４と共通するステップは、図２４と同一の符号を付して説明を省略する。
【０２１２】
Ｓ１０１において、画像格納部２２０に、対象人物が撮影された対象画像が格納される。Ｓ１０２において、基幹骨格推定部２３０により、対象人物の肩ラインと体の向きが推定される。
【０２１３】
Ｓ６０１では、エッジペア抽出矩形フィルタ生成部６１０は、図３１Ａに示すような矩形フィルタに対し、矩形フィルタスケールａ及びｂと矩形フィルタ間距離ｄを部位毎に異なる値に設定し（図３１Ｃ参照）、かつ図３２Ａ、図３２Ｂに示すように、エッジ勾配方向を一定数で量子化した各方向別の矩形フィルタを作成する。
【０２１４】
ここで、矩形フィルタ間距離は、矩形フィルタが保持する一対の矩形領域の間の長さで、矩形フィルタスケールは、矩形領域の縦横の辺の長さである。例えば、エッジペア抽出矩形フィルタ生成部６１０は、人体寸法公開データベース等を用いて予め取得した、肩幅に対する部位の長さ比及び幅の比（図３１Ｃ参照）と、基幹骨格推定部２３０から得られた対象人物の肩幅を用いて、矩形フィルタスケールａ及びｂと矩形フィルタ間距離ｄを求めることができる。
【０２１５】
また、エッジペア抽出矩形フィルタ生成部６１０は、エッジ勾配方向を８方向で量子化し、矩形フィルタを作成する。なお、矩形フィルタスケール及び矩形フィルタ間距離は部位ごとに異なる値に設定したが、これに限らず、例えばすべての部位で共通の値に設定してもよい。
【０２１６】
このようにして、矩形フィルタの生成を完了すると、エッジペア抽出矩形フィルタ生成部６１０は、矩形フィルタを部位抽出部６２０に出力し、Ｓ６０２に進む。
【０２１７】
Ｓ６０２において、部位抽出部６２０は、対象画像Ｉに対しエッジ検出を行い、さらにエッジ強度ｍと勾配方向θを算出し、勾配方向別にエッジ画像を作成する。エッジ検出アルゴリズムは、例えばソーベルフィルタなどの従来公知の技術を利用することができる。また、勾配方向θは、式（８−１）〜（８−３）により算出し、８方向で量子化する。なお、エッジ強度ｍは、式（８−１）、（８−２）、（８−３）により算出される。
【０２１８】
また、勾配方向別のエッジ画像は、前記エッジ検出アルゴリズムによりエッジとして検出された画素のうち、同一の勾配方向を持つ画素のみを集めた画像であり、エッジ勾配方向を８方向で量子化した場合は８枚のエッジ画像が作成される。
【数８】
2012046392.tif 000010
【０２１９】
次に、Ｓ６０３において、部位抽出部６２０は、８枚のエッジ画像それぞれに対して、積分画像を作成する。勾配方向別のエッジ画像に対する積分画像の作成方法について、図３３から図３６を用いて説明する。
【０２２０】
図３３から図３６に示すように、積分画像は、エッジ画像と同一の大きさで、各画素がエッジ画像中の特定領域Ｒに属するすべての画素の画素値を累積した値を持つ画像である。ここで、エッジ画像中の着目位置ＰＣに対して、ＰＣを通りエッジ勾配方向に平行な直線と、エッジ勾配方向に垂直な直線が画像領域端と交わる位置をそれぞれＰＡ、ＰＢとする。この場合、領域Ｒは、ＰＡとＰＣを通る直線の負領域と、ＰＢとＰＣを通る直線の負領域と、画像領域の重複領域を指す。
【０２２１】
具体的には、エッジ勾配方向が９０ｄｅｇの場合、領域Ｒは、着目位置ＰＣが図３３に示すような（ｘ，ｙ）の位置にある時、直線ＰＡＰＣの負領域と、直線ＰＢＰＣの負領域と、画像領域の重複領域となる。ここで、ＰＡは、エッジ勾配方向に平行な直線Ｘ＝ｘが画像領域端と交わる位置であり、ＰＢは、エッジ勾配方向に垂直な直線Ｙ＝ｙが画像領域端と交わる位置である。エッジ勾配方向が０ｄｅｇの場合は、領域Ｒは９０ｄｅｇの場合のＰＢと同一の位置をＰＡ、ＰＡと同一の位置をＰＢとした場合の、直線ＰＡＰＣの負領域、直線ＰＢＰＣの負領域及び画像領域の重複領域となる。
【０２２２】
また、エッジ勾配方向が４５ｄｅｇの場合、領域Ｒは、図３４に示すような着目位置ＰＣに対しては、直線ＰＡＰＣの負領域と、直線ＰＢＰＣの負領域と、画像領域の重複領域となる。ここで、ＰＡは、ＰＣを通り傾きが＋１の直線と画像領域端が交わる位置であり、ＰＢは、ＰＣを通り傾きが−１の直線と画像領域端が交わる位置である。エッジ勾配方向が−４５ｄｅｇの場合は、領域Ｒは、４５ｄｅｇの場合のＰＢと同一の位置をＰＡ、ＰＡと同一の位置をＰＢとしたときの直線ＰＡＰＣの負領域、直線ＰＢＰＣの負領域及び画像領域の重複領域となる。
【０２２３】
また、エッジ勾配方向が２２．５ｄｅｇの場合、領域Ｒは、図３５に示すような着目位置ＰＣに対しては、直線ＰＡＰＣの負領域と、直線ＰＢＰＣの負領域と、画像領域の重複領域となる。ここで、ＰＡは、ＰＣを通り傾きが１／２の直線と画像領域端が交わる位置であり、ＰＢは、ＰＣを通り傾きが−２の直線と画像領域端が交わる位置である。
【０２２４】
エッジ勾配方向が−６７ｄｅｇの場合は、領域Ｒは、２２．５ｄｅｇの場合のＰＢと同一の位置をＰＡ、ＰＡと同一の位置をＰＢとしたとき、直線ＰＡＰＣの負領域、直線ＰＢＰＣの負領域及び画像領域の重複領域となる。
【０２２５】
また、エッジ勾配方向が６７ｄｅｇの場合、領域Ｒは、図３６に示すような着目位置ＰＣに対しては、直線ＰＡＰＣの負領域と、直線ＰＢＰＣの負領域と、画像領域の重複領域となる。ここで、ＰＡは、ＰＣを通り傾きが２の直線と画像領域端が交わる位置であり、ＰＢは、ＰＣを通り傾きが−１／２の直線と画像領域端が交わる位置である。エッジ勾配方向が−２２．５ｄｅｇの場合、６７ｄｅｇの場合のＰＢと同一の位置をＰＡ、ＰＡと同一の位置をＰＢとしたとき、直線ＰＡＰＣの負領域、直線ＰＢＰＣ及び画像領域の重複領域となる。
【０２２６】
以上のように計算することで、部位抽出部６２０は、勾配方向別のエッジ画像に対応する積分画像を作成する。
【０２２７】
次に、Ｓ６０４において、部位抽出部６２０は、Ｓ６０１で生成した矩形フィルタとＳ６０３で作成したエッジ勾配方向別の積分画像を用いて、対象人物の部位の形状を近似した平行線を検出し、併せて矩形フィルタ内にあるエッジ画素の累積画素値の積を平行線らしさとして求め、部位毎の尤度マップを作成する。矩形フィルタと勾配方向別の積分画像を用いた部位毎の平行線検出及び尤度マップ算出方法について図３７から図４２を用いて説明する。
【０２２８】
まず始めに図３７を用いて、基幹骨格推定部２３０で求めた基幹骨格情報を基に、部位抽出部６２０が、上腕、前腕、胴体、上脚、下脚を検出する画像領域３７１中の初期位置と探索範囲を設定する方法を説明する。部位抽出部６２０は、上腕及び前腕の初期位置として、基幹骨格情報における右肩関節位置ＰＲＳ及び左肩関節位置ＰＬＳと用い、胴体の初期位置として、左右肩関節位置の中点ＰＭを用いる。また部位抽出部６２０は、上脚及び下脚の初期位置は、胴体の初期位置と胴体領域の重心との差を２倍し、胴体の初期位置に加えた位置を用いる。
【０２２９】
なお、部位抽出部６２０は、初期位置は前記位置に限らず、例えば基幹骨格情報に含まれる胴体領域の重心（ｘ，ｙ）とスケール（Ｖ，Ｈ）を用いて、（ｘ±Ｖ／２，ｙ−Ｈ／２）を上腕の初期位置、（ｘ，ｙ−Ｈ／２）を胴体の初期位置、（ｘ±Ｖ／２，ｙ＋Ｈ／２）を上脚及び下脚の初期位置として適用することができる。部位抽出部６２０は、部位を検出する初期位置を始点とし、部位の可動域を考慮した円弧領域を、探索範囲として用いる。
【０２３０】
具体的には、部位抽出部６２０は、例えば角度θ１で半径ｄ１の円弧領域を左上腕の探索範囲とし、角度θ２で半径ｄ２の円弧領域を左前腕の探索範囲として設定する。部位抽出部６２０は、人体寸法公開データベース等を用いて予め定義した肩幅に対する部位の長さ比を用い、基幹骨格推定部２３０で得られた肩幅と長さ比をかけ合わせた値として半径ｄ１及び半径ｄ２を求めることができる。また、上腕よりも前腕、上脚よりも下脚の方が可動域として広くなるため、部位抽出部６２０は、角度θ１＜角度θ２となるように設定する。
【０２３１】
同様の方法により、部位抽出部６２０は、上脚及び下脚の探索範囲を設定し、また胴体の場合には上脚と上腕と同様の方法により探索範囲を設定する。以上のような処理を行うことで、部位抽出部６２０は、部位を検出する初期位置と探索範囲を設定することができる。
【０２３２】
次に、図３８及び図３９を用いて、前記方法により設定した探索範囲内で、矩形フィルタと勾配方向別の積分画像を用いた平行線検出と尤度マップ算出を行う処理について説明する。図３８は、左上腕の探索範囲内の点ＰＬＳ１においてエッジ勾配方向が９０ｄｅｇの矩形フィルタを適用した様子を示している。部位抽出部６２０は、矩形フィルタ内のエッジ画素の累積画素値Ｓａ、Ｓｂを式（９−１）、（９−２）により計算し、その積Ｌ（ＰＬＳ１）（以下、尤度と記述）を式（１０）を用いて計算することで平行線を検出する。
【数９】
2012046392.tif 000011
【数１０】
2012046392.tif 000012
【０２３３】
式（９−１）、（９−２）は、勾配方向別の積分画像を用いて矩形フィルタ内のエッジ画素の累積値を求める計算である。式（９−１）、（９−２）では、図３８に示すように矩形フィルタと同じ勾配方向のエッジが集まっている場合、すなわち矩形フィルタと部位の直線が平行の場合に、値が大きくなる。また、式（９−１）、（９−２）は、矩形フィルタ内のエッジ画素の累積値の積を求める計算である。式（９−１）、（９−２）は、ＰＬＳ１を中心にした部位の平行線上に矩形フィルタが掛かっている場合に、値が大きくなる性質を持つ。
【０２３４】
さらに、図４０及び図４１を用いて、左上腕の探索範囲内の点ＰＬＳ１においてエッジ勾配方向が６７ｄｅｇの矩形フィルタを適用した場合について説明する。この場合、部位抽出部６２０は、式（１１−１）、（１１−２）を用いて矩形フィルタ内のエッジ画素の累積画素値Ｓ１ａ、Ｓ１ｂを計算し、式（１２）を用いて尤度Ｌ（ＰＬＳ１）を計算することで平行線を検出する。
【数１１】
2012046392.tif 000013
【数１２】
2012046392.tif 000014
【０２３５】
図４０においては、矩形フィルタと同じ勾配方向のエッジが存在しないため、前記した積分画像を用いた累積値の算出式と尤度の算出式の性質により、矩形フィルタの累積値及び尤度の値は０となる。
【０２３６】
部位抽出部６２０は、左上腕の探索範囲内の点ＰＬＳ１において、エッジ勾配方向が９０ｄｅｇ及び６７ｄｅｇ以外の矩形フィルタを適用し、累積値と尤度の計算を繰り返し行い、ＰＬＳ１に対する平行線の検出と尤度算出処理を終了する。
【０２３７】
また、図４２を用いて、左上腕の探索範囲内の点ＰＬＳ２においてエッジ勾配方向が９０ｄｅｇの矩形フィルタを適用した場合の処理について説明する。この場合、矩形フィルタと同じ勾配方向のエッジが存在しないため、式（９−１）、（９−２）及び式（１０）を用いて算出した尤度は０となる。
【０２３８】
このように、探索範囲内に対象人物の部位が存在し、矩形フィルタと同じ勾配方向のエッジが集まっている場合は尤度が高く、矩形フィルタと同じ交配方向のエッジが存在しない場合には尤度が低くなる。このため、部位とそれ以外とを区別することができ、対象人物の部位を確実に検出できる。
【０２３９】
部位抽出部６２０は、以上の処理を、左上腕以外のすべての部位に対して適用することで、各画素は式（１０）もしくは式（１２）により求めた値を持ち、部位毎でかつ勾配方向別に分けられた尤度マップを作成することができる。なお、前腕及び下脚に対し矩形フィルタを適用して尤度を算出した場合は、求めた尤度に探索範囲内で初期位置からの距離に比例して大きくなるような重みを掛けあわせた値としてもよい。
【０２４０】
次に、Ｓ６０５において、部位抽出部６２０は、部位毎でかつ勾配方向別に分けられた尤度マップを統合した尤度マップを作成する。始めに、部位抽出部６２０は、各部位の勾配方向別に分けられた８個の尤度マップに対して、画素毎に尤度の値を比較し、最も高い尤度を代表値として新たな尤度マップに割り当てる。これにより、部位抽出部６２０は、勾配方向別に分けられた尤度マップを統合した部位毎の代表尤度マップを作成する。
【０２４１】
そして、部位抽出部６２０は、部位毎の代表尤度マップに対して、画素毎に尤度の値を比較し、最も高い尤度を代表値として新たな尤度マップに割り当てる。これにより、部位抽出部６２０は、部位毎に分けられた代表尤度マップを統合した相似骨格モデル選択部３１２に出力するための尤度マップを一つ作成する事ができる。
【０２４２】
以上のような処理により、部位抽出部６２０は、部位が存在する確からしさを示す尤度マップを作成し、作成した尤度マップを相似骨格モデル選択部３１２に出力する。
【０２４３】
部位抽出部６２０による部位抽出が完了すると、Ｓ４０１からＳ４０６において、相似骨格モデル格納部３１１及び相似骨格モデル選択部３１２は、相似骨格モデルの評価を行い、姿勢を推定する。
【０２４４】
以上のように、部位抽出部６２０は、入力画像に対してエッジ検出を行い、エッジの勾配方向別に積分画像を作成する。また、部位抽出部６２０は、予め定義された平行な直線を検出する矩形フィルタと積分画像を併用し、矩形フィルタ内のエッジ画素の累積値と累積値同士の積を求め、尤度マップを作成する。これにより、部位抽出部６２０は、人体部位のような人工物と比べてエッジが検出しにくい場合においても、部位を近似した平行線を安定的にかつ高速に検出し尤度マップを作成することができる。これにより、不正確な尤度マップによる姿勢推定誤りを軽減することが可能となる。
【０２４５】
以下、さらに凹凸マップを用いて姿勢推定を行う例を、本発明の実施の形態５〜実施の形態７として説明する。
【０２４６】
（実施の形態５）
本発明の実施の形態５は、実施の形態１に係る姿勢推定装置において、接続する部位の線が平行で部位位置が算出できない場合に、凹凸マップを用いて関節位置を推定する例である。
【０２４７】
図４３は、本実施の形態に係る姿勢推定装置の要部構成を示すブロック図である。図４３の姿勢推定装置２００ａは、実施の形態１の図５の姿勢推定装置２００として適用される。なお、図４３の本実施の形態に係る姿勢推定装置２００ａにおいて、図５と共通する構成部分には、図５と同一の符号を付して説明を省略する。
【０２４８】
図４３の姿勢推定装置２００ａは、骨格モデル評価部２５０において、骨格推定部２５１に代えて骨格推定部２５１ａを具備し、凹凸マップ生成部１４５ａおよび関節位置推定部１６６ａをさらに具備する構成を取る。
【０２４９】
骨格推定部２５１ａは、部位領域情報と、部位の直線情報と、画像データと、推定の対象となる関節位置の識別情報とを、凹凸マップ生成部１４５ａへ出力する。ここで、推定の対象となる関節位置とは、例えば、部位位置を推定することができなかった部位の関節位置である。また、骨格推定部２５１ａは、後述の関節位置推定部１６６ａから推定関節位置を入力されると、入力された推定関節位置を、関節位置の推定結果として採用する。
【０２５０】
凹凸マップ生成部１４５ａは、各部位の凹凸マップを生成する。より具体的には、凹凸マップ生成部１４５ａは、骨格推定部２５１ａから、推定尤度マップと、部位の直線情報と、画像データと、推定の対象となる関節位置の識別情報とを入力する。そして、凹凸マップ生成部１４５ａは、受け取った情報に基づいて凹凸マップを生成し、生成した凹凸マップと、部位の直線情報と、推定の対象となる関節位置の識別情報とを、関節位置推定部１６６ａへ出力する。凹凸マップの生成手法の詳細については、後述する。
【０２５１】
関節位置推定部１６６ａは、入力された凹凸マップから、関節位置を推定する。より具体的には、関節位置推定部１６６ａは、凹凸マップおよび部位の直線情報から、推定の対象となる関節位置を求め、求めた関節位置（つまり推定関節位置）とその関節の識別子とを、骨格推定部２５１ａへ出力する。関節位置の推定手法の詳細については、後述する。
【０２５２】
まず、凹凸マップについて説明する。
【０２５３】
凹凸マップとは、画像を、画像に映し出された被写体の面を凹凸で区分したマップである。凹凸マップ生成部１４５ａは、画像上の部位の明るさ情報から部位の面の向きを推定する。関節位置推定部１６６ａは、凹凸マップが示す面が等しい１つの領域を、１つの部位の領域と推定することにより、関節位置の推定を行う。ここで、明るさとは、例えば、輝度のレベルであり、明るさ情報とは、輝度または輝度のレベルを示す情報である。
【０２５４】
図４４は、人の姿勢と各部位の明るさとの関係を説明するための図である。
【０２５５】
図４４Ａに示す第１の姿勢と図４４Ｂに示す第２の姿勢は、異なる姿勢であるにもかかわらず、図４４Ｃに示すように、正面から見たときのシルエットが同一であるとする。この場合、正面画像のエッジからなる領域情報からだけでは、対象人物の姿勢が第１の姿勢であるか第２の姿勢であるかを、正しく推定することができない。
【０２５６】
例えば、図４４Ｃに示すシルエットから、右腕の長さが左腕の長さよりも短いことが分かるため、右肘が曲がっている可能性が高いことが推測できる。ところが、身体制約を満たす曲げ方には、バリエーションがある。また、図４４Ａや図４４Ｂに示すように、右腕全体の角度にもバリエーションがある。
【０２５７】
また、例えば、図４４Ｃに示すシルエットから、左脚の長さが左腕の長さよりも短いことが分かるため、左膝が曲がって可能性があることが推測できる。ところが、図４４Ａや図４４Ｂに示すように、左膝が曲がっている場合と伸びている場合とがあり得る。
【０２５８】
上腕と前腕との区切りや膝上と膝下との区切りの位置（つまり関節）を推定することができれば、対象人物の姿勢が上述のバリエーションのどれなのかを推定することができる。ところが、図４４Ｃのように腕や脚が直線に見える姿勢の場合、エッジからなる領域情報からだけでは、身体制約を用いたとしても、かかる区切りの位置を推定することは難しい。
【０２５９】
そこで、このような領域情報だけからでは関節位置が特定できない姿勢に対応するため、姿勢推定装置２００ａは、領域情報に加えて、明るさ情報を用いて部位領域を推定する。
【０２６０】
図４４Ｄは、上からの自然光を光源とするときの、第１の姿勢を正面から撮影した場合の各部位の明るさを、濃度で示す図である。図４４Ｅは、上からの自然光を光源とするときの、第２の姿勢を正面から撮影した場合の各部位の明るさを、濃度で示す図である。ここでは、濃度が高いほど、明るさがより低い（より暗い）ことを示す。また、明るさとして、暗い方のレベルから順に、「−２，−１，０，１，２」の５段階のレベルが定義されているものとする。レベル「０」は、例えば、地面に対して垂直方向の面の明るさのレベルである。
【０２６１】
画像の各領域の明るさレベルは、より上を向いている面の領域ほど明るくなり、逆に、より下を向いている面の領域ほど暗くなる。
【０２６２】
例えば、図４４のＤおよび図４４のＥに示すように、第１および第２の姿勢の両方において、頭、胴、左腕の領域は、レベル「０」となり、右脚の領域は、やや暗いレベル「−１」となる。
【０２６３】
第１の姿勢においては、右上腕は垂直に降ろされ、右前腕は前に伸びているため、図４４のＤに示すように、右上腕の領域はレベル「０」となり、右前腕の領域はレベル「２」となる。これに対し、第２の姿勢においては、右上腕は後に引かれ、右前腕は下に向いているため、図４４Ｅに示すように、右上腕の領域はレベル「−２」となり、右前腕の領域はレベル「２」となる。
【０２６４】
また、第１の姿勢においては、左足は全体は前に伸びているため、図４４のＤに示すように、左膝上および左膝下の領域はレベル「１」となる。これに対し、第２の姿勢においては、左大腿は上に上げられ、左膝は後ろに向いているため、図４４Ｅに示すよに、左大腿の領域はレベル「２」となり、左膝の領域はレベル「−２」となる。
【０２６５】
このように、各部位は、同じ明るさの面として捉えることができる。したがって、画像上の部位の明るさ情報から、部位の面の向きを推定し、さらに、この部位の面の向きが変わった位置を、関節位置と推測することができる。すなわち、明るさ情報を用いることにより、領域情報から得られる角度が等しい部位（シルエットが直線状に伸びた連続する複数の部位、部位の直線が平行な複数の部位）間であっても、関節位置を推定することが可能となる。
【０２６６】
次に、以上のように構成された姿勢推定装置２００ａの動作について、図４５の処理フローを用いて説明する。なお、図４５において、実施の形態１の図１７と共通するステップは、図１７と同一の符号を付して説明を省略する。
【０２６７】
Ｓ１０４において、骨格推定部２５１ａは、部位領域情報に基づく対象人物の骨格の推定を行うと、Ｓ１７５０ａへ進む。
【０２６８】
Ｓ１７５０において、骨格推定部２５１ａは、関節が計算できなかった部位がなかったか調べる。骨格推定部２５１ａは、関節が計算できなかった部位がなければＳ１０５へ進み、関節が計算できなかった部位があればＳ１７５５ａへ進む。
【０２６９】
Ｓ１７５５ａにおいて、凹凸マップ生成部１４５ａは、Ｓ１０３で推定した部位領域とＳ１０１で取得した画像データとから、凹凸マップを生成する。
【０２７０】
ここで、凹凸マップの生成手法の詳細について説明する。
【０２７１】
図４６は、凹凸マップ生成処理の処理フローを示す図である。凹凸マップ生成処理は、図４５のＳ１７５５ａで実行される。
【０２７２】
凹凸マップの画素毎の情報は、例えば、部位ｋの尤度をｐｋと表し、部位がｎ個存在する場合には、凹凸ベクトルＯｉｊ＝［ｐ１，ｐ２，…，ｐｋ，…，ｐｎ］というデータ構造となる。ｐｋは２値情報であり、ｐｋの値は、例えば、部位ｋである可能性が無いことを示す０、および、部位ｋである可能性があることを示す１のいずれかを取る。
【０２７３】
Ｓ３１００ａにおいて、凹凸マップ生成部１４５ａは、処理の対象となる部位を１つ選択する。本実施の形態では、推定の対象となる関節位置が、右肘であるものとする。この場合、凹凸マップ生成部１４５ａは、右腕を凹凸マップ生成処理の対象とし、まず、基幹部位から一番離れた右前腕を選択する。
【０２７４】
そして、Ｓ３２００ａにおいて、凹凸マップ生成部１４５ａは、Ｓ１２００で生成された推定尤度マップから、Ｓ３１００ａで選択した部位の領域（以後、部位尤度領域とよぶ）を取得する。ここでは、推定尤度マップ上の右前腕の尤度が所定の閾値を超える画素を抽出し、右前腕の部位尤度領域とする。
【０２７５】
そして、Ｓ３３００ａにおいて、凹凸マップ生成部１４５ａは、Ｓ１１００で取得された画像データから、Ｓ３２００ａで抽出した部位尤度領域の、明るさ情報を抽出する。明るさ情報は、例えば、画像データを構成する各画素のＲＧＢ値から輝度（画素の明るさ）のみを抽出したグレースケール（白黒階調の）画像へと変換することにより、抽出することができる。
【０２７６】
そして、Ｓ３４００ａにおいて、凹凸マップ生成部１４５ａは、Ｓ３３００ａで求めた部位尤度領域の明るさ情報を、明るさの閾値を用いてグルーピングする。凹凸マップ生成部１４５ａは、は、明るさの閾値を、あらかじめ設定された固定値としてもよいし、動的に設定してもよい。ここでは、閾値を動的に設定する手法の一例について説明する。
【０２７７】
図４７は、右前腕の身体制約を用いたエリア分類の手法を説明するための図である。説明を簡略化するために、胴には右腕しかないものとして説明する。
【０２７８】
Ｓ１２００で、推定された右肩位置５００ａを基準として、頭肩領域とこれに接続する胴領域５０１ａが推定される。この場合、右上腕と右前腕が存在可能な領域は、領域５０２ａのようになり、右前腕のみ存在可能な領域は、領域５０３ａのようになる。領域５０２ａ、５０３ａは、図９に示す部位領域及び部位領域情報から算出することができる。
【０２７９】
凹凸マップ生成部１４５ａは、まず、右前腕の部位尤度領域のうち、右前腕のみ存在可能な領域５０３ａから、当該領域に存在する画素の輝度値（明るさ情報）を抽出する。
【０２８０】
そして、凹凸マップ生成部１４５ａは、対象画素の総数ｍのａ％をｎ個とすると、抽出した輝度値のデータから、小さいものから順にｎ個と、大きいものから順にｎ個とを除く。さらに、凹凸マップ生成部１４５ａは、これら２ｎ個のデータを除いた後のデータ（データの数はｍ−２ｎ）の最小値および最大値を、右前腕の明るさ情報の閾値（右前腕として扱う輝度値の範囲の上限値と下限値）とする。ここで、ａは、あらかじめ設定された値である。
【０２８１】
そして、凹凸マップ生成部１４５ａは、例えば、右前腕の部位尤度領域のうち、この閾値に当てはまる（つまり、右前腕として扱う輝度値の範囲内である）画素の凹凸ベクトルＯｉｊのうち、右前腕を示す値に、右前腕である可能性があることを示す値（例えば１）を設定する。
【０２８２】
このように、凹凸マップ生成部１４５ａは、身体制約により右前腕しか存在しない部位尤度領域の明るさ情報のみを用いて、輝度値の閾値を設定する。これにより、凹凸マップ生成部１４５ａは、他の部位の影響を受けずに、右前腕の明るさ情報を持つ画素を特定することができる。
【０２８３】
次に、凹凸マップ生成部１４５ａは、右前腕の部位尤度領域のうち、右上腕と右前腕のみ存在可能な領域５０２ａから、画素の輝度値（明るさ情報）を抽出する。
【０２８４】
そして、凹凸マップ生成部１４５ａは、抽出した輝度値のデータの中から、前ステップで求めた右前腕の明るさ情報の閾値に当てはまるものを削除する。そして、凹凸マップ生成部１４５ａは、残った輝度値のデータの総数ｐのｂ％をｑ個とすると、抽出した輝度値のデータから、小さいものから順にｑ個と、大きいものから順にｑ個とを除く。さらに、凹凸マップ生成部１４５ａは、これら２ｑ個のデータを除いた後のデータ（データの数はｐ−２ｑ）の最小値および最大値を、右上腕の明るさ情報の閾値（右前腕として扱う輝度値の範囲の上限値と下限値）とする。ここで、ｂの値は、あらかじめ設定された値である。
【０２８５】
そして、凹凸マップ生成部１４５ａは、例えば、右前腕の部位尤度領域のうち、この閾値に当てはまる（つまり、右上腕として扱う輝度値の範囲内である）画素の凹凸ベクトルＯｉｊの、右上腕を示す値に、右上腕である可能性があることを示す値（例えば１）を設定する。
【０２８６】
このように、凹凸マップ生成部１４５ａは、身体制約により右上腕と右前腕しか存在しない部位尤度領域の明るさ情報のデータから、右前腕として扱う輝度値の範囲内のデータを除いて閾値を設定する。これにより、凹凸マップ生成部１４５ａは、他の部位の影響を受けずに右上腕の明るさ情報を持つ画素を特定し、右上腕の明るさ情報を持つ画素を精度良く特定することができる。
【０２８７】
このように、凹凸マップ生成部１４５ａは、基幹部位から離れた部位から順に、その部位だけ存在する領域の明るさ情報を用いて明るさ情報の閾値を設定していき、部位ごとの明るさ情報をグルーピングして領域を推定する。
【０２８８】
なお、右前腕のみ存在可能な領域５０３ａに、右前腕の部位尤度領域がない場合もあり得る。このような場合、凹凸マップ生成部１４５ａは、例えば、右前腕と右上腕の部位尤度領域のうち、右上腕と右前腕のみ存在可能な領域５０２ａに存在する画素の輝度情報を抽出し、右前腕と右上腕の２グループに分類する処理を行ってもよい。そして、凹凸マップ生成部１４５ａは、例えば、大津の２値化を用いて、上述の閾値を設定する。これにより、凹凸マップ生成部１４５ａは、右前腕のみ存在可能な領域５０３ａに右前腕の部位尤度領域がない場合にも、右上腕と右前腕の明るさ情報の閾値を設定することができる。
【０２８９】
また、右前腕のみ存在可能な領域５０３ａで右前腕の明るさ情報を設定した後、右上腕と右前腕のみ存在可能な領域５０２ａにもかかわらず、右前腕と異なる明るさ情報の画素がないために、右前腕と異なる閾値が設定できない場合もあり得る。このような場合、凹凸マップ生成部１４５ａは、例えば、右上腕の明るさ情報に対して、右前腕と同じ値を設定してもよい。これにより、凹凸マップ生成部１４５ａは、右上腕と右前腕の面の向きが似ている場合（真っ直ぐに伸びている場合）にも、右上腕の明るさ情報を設定することができる。
【０２９０】
図４６のＳ３５００ａにおいて、凹凸マップ生成部１４５ａは、凹凸マップ生成処理の対象となる部位の全てについて処理したかを判断する。例えば、左腕に関しても凹凸マップを生成する場合には、凹凸マップ生成部１４５ａは、Ｓ３１００ａに戻り、左腕に関して、右腕と同様の処理を行う。
【０２９１】
以上で、凹凸マップの生成手法の詳細についての説明を終える。
【０２９２】
凹凸マップ生成部１４５ａは、生成した凹凸マップと、部位の直線情報と、推定の対象となる関節位置の識別情報とを、関節位置推定部１６６ａへ出力する。
【０２９３】
図４５のＳ１７６０ａにおいて、関節位置推定部１６６ａは、関節位置を推定する。
【０２９４】
具体的には、関節位置推定部１６６ａは、例えば、右上腕と右前腕の部位の直線の始点から終点に向かって、順番に、部位軸上の画素位置の凹凸マップの値を参照する。そして、関節位置推定部１６６ａは、凹凸マップの値が変化した画素の位置を、関節位置として抽出する。該当する画素が複数ある場合には、関節位置推定部１６６ａは、中央の位置を関節位置として出力してもよい。
【０２９５】
そして、関節位置推定部１６６ａは、求めた関節位置（つまり推定関節位置）と、その関節の識別子とを、骨格推定部２５１ａへ出力する。骨格推定部２５１ａは、入力された推定関節位置により、推定することができなかった部位の位置を取得する。
【０２９６】
以上のような処理により、姿勢推定装置２００ａは、部位の直線の角度が同じ場合には、凹凸マップを用いて関節位置を推定することができる。
【０２９７】
このように、本実施の形態に係る姿勢推定装置２００ａは、凹凸マップを生成し、凹凸マップに基づいて各関節の位置を推定するので、部位の直線の角度が同じであり接続する部位の線が並行であるような場合であっても、その姿勢を推定することができる。
【０２９８】
（実施の形態６）
本発明の実施の形態６は、実施の形態２に係る姿勢推定装置において、２次元骨格モデルでは姿勢の違いを判別することができない場合に、凹凸マップを用いて骨格モデルを特定する例である。
【０２９９】
異なる姿勢が、３次元骨格モデルでは異なっていても、２次元骨格モデルにおいて同一となり得ることは、実施の形態５の図４４で説明した通りである。
【０３００】
図４８は、本実施の形態に係る姿勢推定装置の要部構成を示すブロック図である。図４８の姿勢推定装置３００ａは、実施の形態２の図２３の姿勢推定装置３００として適用される。なお、図４８の本実施の形態に係る姿勢推定装置３００ａにおいて、図２３と共通する構成部分には、図２３と同一の符号を付して説明を省略する。
【０３０１】
図４８の姿勢推定装置３００ａは、骨格モデル評価部３１０において、相似骨格モデル選択部３１２に代えて相似骨格モデル選択部３１２ａを具備し、凹凸マップ生成部１４５ａおよび相似骨格モデル推定部１６７ａをさらに具備する構成を取る。
【０３０２】
相似骨格モデル選択部３１２ａは、画像データと、部位抽出部２４０で抽出された尤度マップと、相似骨格モデル格納部３１１が格納する骨格モデル記述情報のうち特定の骨格モデル記述情報とを、凹凸マップ生成部１４５ａへ出力する。
【０３０３】
凹凸マップ生成部１４５ａは、実施の形態５の凹凸マップ生成部１４５ａと同じ処理を行い、生成した凹凸マップと、部位の直線情報と、推定の対象となる関節位置の識別情報とを、相似骨格モデル推定部１６７ａへ出力する。
【０３０４】
相似骨格モデル推定部１６７ａは、凹凸マップに骨格モデルを重畳し、骨格モデル毎に、凹凸マップが示す各部位の位置と骨格モデルが示す各部位の位置とのマッチングの度合を、スコアとして算出する。そして、相似骨格モデル推定部１６７ａは、最も高いスコアを出力する骨格モデルを、対象人物の姿勢に対応する２次元の骨格モデルとして選択する。
【０３０５】
図４９は、姿勢推定装置３００ａの処理フローを示す図である。なお、図４９において、実施の形態２の図２４と共通するステップは、図２４と同一の符号を付して説明を省略する。
【０３０６】
Ｓ４０４の後、Ｓ１７５１ａにおいて、相似骨格モデル選択部３１２ａは、加算スコアが所定の閾値以上の骨格モデルが複数あったか否かを判断する。相似骨格モデル選択部３１２ａは、加算スコアの高い骨格モデルが複数なかった場合、Ｓ４０５へ進み、加算スコアの高い骨格モデルが複数あった場合、Ｓ１７５５ａへ進む。
【０３０７】
Ｓ１７５５ａにおいて、凹凸マップ生成部１４５ａは、凹凸マップ生成部１４５ａは、相似骨格モデル選択部３１２ａから、画像データと、尤度マップと、選択された骨格モデル記述情報とを入力する。ここで、実施の形態４で入力とした、部位領域情報、部位の直線情報、画像データ、および推定の対象となる関節位置の識別情報は、骨格モデル記述情報から取得するものとする。そして、凹凸マップ生成部１４５ａは、入力した情報から凹凸マップを生成し、生成した凹凸マップと、骨格モデル記述情報とを、相似骨格モデル推定部１６７ａへ出力する。この凹凸マップの生成処理は、実施の形態４で説明した凹凸マップの生成処理と同様である。
【０３０８】
そして、Ｓ１７６１ａにおいて、相似骨格モデル推定部１６７ａは、凹凸マップに骨格モデルを１つ重畳する。重畳の手法は、骨格モデルと尤度マップの重畳手法と同様である。
【０３０９】
そして、Ｓ１７６２ａにおいて、相似骨格モデル推定部１６７ａは、重畳した骨格モデルと凹凸マップとの間のマッチングスコアを算出する。このマッチングの手法は、骨格モデルと尤度マップとのマッチング手法と同様である。
【０３１０】
そして、Ｓ１７６３ａにおいて、相似骨格モデル推定部１６７ａは、指定された（選択された）骨格モデルの数だけ処理を行ったか否かを判断する。未処理の骨格モデルがあれば、Ｓ１７６１ａへ戻って未処理の骨格モデルについて処理を繰り返し、指定された骨格モデルのスコアが全て算出されれば、Ｓ４０５へ進む。この際、相似骨格モデル推定部１６７ａは、最も高いスコアを出力する骨格モデルを、対象人物の姿勢に対応する２次元の骨格モデルとして選択し、その選択結果を出力する。
【０３１１】
このように、本実施の形態に係る姿勢推定装置２００ａは、凹凸マップを用いることにより、エッジを用いた２次元の尤度マップでは類似の結果となってしまう異なる姿勢を区別し、姿勢推定をより精度良く行うことができる。
【０３１２】
（実施の形態７）
実施の形態７は、実施の形態４に係る姿勢推定装置において、２次元骨格モデルでは姿勢の違いを判別することができない場合に、凹凸マップを用いて骨格モデルを特定する例である。
【０３１３】
図５０は、本実施の形態に係る姿勢推定装置の要部構成をしめすブロック図である。図５０の姿勢推定装置６００ａは、実施の形態４の図２９の姿勢推定装置６００として適用される。なお、図５０の本実施の形態に係る姿勢推定装置６００ａにおいて、図２９と共通する構成部分には、図２９と同一の符号を付して説明を省略する。
【０３１４】
図５０の姿勢推定装置６００ａは、骨格評価モデル部３１０において、相似骨格モデル選択部３１２に代えて相似骨格モデル選択部３１２ａを具備し、凹凸マップ生成部１４５ａおよび相似骨格モデル推定部１６７ａをさらに具備する構成を取る。
【０３１５】
相似骨格モデル選択部３１２ａ、凹凸マップ生成部１４５ａ、および相似骨格モデル推定部１６７ａは、それぞれ、実施の形態６と同じ処理を行う。
【０３１６】
図５１は、姿勢推定装置６００ａの処理フローを示す図である。なお、図５１において、実施の形態４の図３０と共通するステップは、図２４と同一の符号を付して説明を省略する。
【０３１７】
図５１に示すように、姿勢推定装置６００ａは、Ｓ４０４の後、実施の形態６の図４９で説明したＳ１７５１ａ〜Ｓ１７６３ａの処理を行い、Ｓ４０５へ進む。すなわち、姿勢推定装置６００ａは、加算スコアの高い骨格モデルの中から、凹凸マップとのマッチングスコアが最も高いものを、対象人物の姿勢に対応する２次元の骨格モデルとして選択する。
【０３１８】
このように、本実施の形態に係る姿勢推定装置６００ａは、矩形フィルタを用いる場合においても、凹凸マップを用いることにより、エッジを用いた２次元の尤度マップでは類似の結果となってしまう異なる姿勢を区別して姿勢推定を行うことができる。
【０３１９】
２０１０年１０月８日出願の特願２０１０−２２８７３０の日本出願および２０１１年３月２日出願の特願２０１１−４５４９２の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【０３２０】
本発明の姿勢推定装置及び姿勢推定方法は、部位の重なりが表現可能な骨格モデルを用いることにより、多種多様な３次元姿勢を推定することができ、画像を用いた動作解析を行うための姿勢推定装置及び姿勢推定方法等に有用である。
【符号の説明】
【０３２１】
１１０，２００，２００ａ，３００，３００ａ，４００，５００，６００，６００ａ  姿勢推定装置
１２０  カメラ
１４５ａ  凹凸マップ生成部
１６６ａ  関節位置推定部
１６７ａ  相似骨格モデル推定部
２１０  操作制御部
２２０  画像格納部
２３０  基幹骨格推定部
２４０，４２０，６２０  部位抽出部
２５０，３１０，５１０  骨格モデル評価部
２５１，２５１ａ  骨格推定部
２５２  骨格モデル記述変換部
２５３  ターゲット骨格モデル形成部
２５４，３１１，５１１  相似骨格モデル格納部
２５５，３１２  相似骨格モデル選択部
３１２ａ  相似骨格モデル選択部
４１０  関節長比算出部
６１０  エッジペア抽出矩形フィルタ生成部
【図１】
2012046392.tif 000015
【図２】
2012046392.tif 000016
【図３】
2012046392.tif 000017
【図４】
2012046392.tif 000018
【図５】
2012046392.tif 000019
【図６】
2012046392.tif 000020
【図７】
2012046392.tif 000021
【図８】
2012046392.tif 000022
【図９】
2012046392.tif 000023
【図１０】
2012046392.tif 000024
【図１１】
2012046392.tif 000025
【図１２】
2012046392.tif 000026
【図１３】
2012046392.tif 000027
【図１４】
2012046392.tif 000028
【図１５】
2012046392.tif 000029
【図１６】
2012046392.tif 000030
【図１７】
2012046392.tif 000031
【図１８】
2012046392.tif 000032
【図１９】
2012046392.tif 000033
【図２０】
2012046392.tif 000034
【図２１】
2012046392.tif 000035
【図２２】
2012046392.tif 000036
【図２３】
2012046392.tif 000037
【図２４】
2012046392.tif 000038
【図２５】
2012046392.tif 000039
【図２６】
2012046392.tif 000040
【図２７】
2012046392.tif 000041
【図２８】
2012046392.tif 000042
【図２９】
2012046392.tif 000043
【図３０】
2012046392.tif 000044
【図３１】
2012046392.tif 000045
【図３２】
2012046392.tif 000046
【図３３】
2012046392.tif 000047
【図３４】
2012046392.tif 000048
【図３５】
2012046392.tif 000049
【図３６】
2012046392.tif 000050
【図３７】
2012046392.tif 000051
【図３８】
2012046392.tif 000052
【図３９】
2012046392.tif 000053
【図４０】
2012046392.tif 000054
【図４１】
2012046392.tif 000055
【図４２】
2012046392.tif 000056
【図４３】
2012046392.tif 000057
【図４４】
2012046392.tif 000058
【図４５】
2012046392.tif 000059
【図４６】
2012046392.tif 000060
【図４７】
2012046392.tif 000061
【図４８】
2012046392.tif 000062
【図４９】
2012046392.tif 000063
【図５０】
2012046392.tif 000064
【図５１】
2012046392.tif 000065
【国際調査報告】
2012046392.tif 000066
2012046392.tif 000067
2012046392.tif 000068
2012046392.tif 000069