"取得画像内の人物の特徴部位の位置を推定する基幹骨格推定手段と、前記人物の特徴部位の位置に基づいて、前記取得画像において前記人物の特徴部位以外の部位が存在する確からしさを示す尤度マップを生成する尤度マップ生成手段と、複数の2次元の骨格モデルを候補として含み、かつ、各2次元の骨格モデルは各部位を表す線群と各部位間の連結を表す点群とから構成されるとともに人物の一姿勢に対応する、候補群を、前記尤度マップに基づいて評価する評価手段と、を具備する姿勢推定装置。前記評価手段は、前記候補群の各候補と、3次元の骨格モデルとを対応付けて記憶する手段であって、前記各候補が、前記3次元の骨格モデルを2次元の骨格モデルに射影変換することによって生成される、記憶手段と、前記尤度マップから、前記2次元の骨格モデルと同じ表現方法で表現されるターゲット骨格モデルを形成する形成手段と、前記候補群の候補と前記ターゲット骨格モデルとの類似度に基づいて、前記候補群のうちいずれかの前記候補を、前記取得画像内の人物の姿勢に対応する2次元の骨格モデルとして選択する選択手段と、を具備する請求項1に記載の姿勢推定装置。前記評価手段は、前記候補群の各候補と、3次元の骨格モデルとを対応付けて記憶する手段であって、前記各候補が、前記取得画像内の人物の特徴部位と、前記候補群の各候補における、前記取得画像内の人物の特徴部位の対応部位との向き及び長さが一致するように、前記3次元の骨格モデルを2次元の骨格モデルに射影変換することによって生成される、記憶手段と、射影変換後の前記候補群の候補及び前記尤度マップに基づいて、前記候補群のうちいずれかの前記候補を、前記取得画像内の人物の姿勢に対応する2次元の骨格モデルとして選択する選択手段と、を具備する請求項1に記載の姿勢推定装置。前記尤度マップ生成手段は、前記人物の特徴部位の位置、前記人物の向き、及び、人体寸法の統計的データに基づいて、前記識別手段に入力する探索領域を制限し、制限された前記探索領域において前記尤度マップを生成する請求項1に記載の姿勢推定装置。前記評価手段により前記人物の姿勢に対応する2次元の骨格モデルとして選択された前記候補群の候補に対応付けられた3次元の骨格モデルから、前記特徴部位の長さに対する各部位間の長さを示す関節長比を取得画像毎に算出し、複数の取得画像にわたり前記関節長比を各部位間毎に平滑化して代表関節長比を算出する算出手段、を具備し、前記尤度マップ生成手段は、前記人物の特徴部位の位置、前記人物の向き、及び、前記代表関節長比に基づいて、前記識別手段に入力する探索領域を制限し、制限された前記探索領域において前記尤度マップを生成する請求項2に記載の姿勢推定装置。前記評価手段により前記人物の姿勢に対応する2次元の骨格モデルとして選択された前記候補群の候補に対応付けられた3次元の骨格モデルから、前記特徴部位の長さに対する各部位間の長さを示す関節長比を取得画像毎に算出し、複数の取得画像にわたり前記関節長比を各部位間毎に平滑化して代表関節長比を算出する算出手段、を具備し、前記尤度マップ生成手段は、前記人物の特徴部位の位置、前記人物の向き、及び、前記代表関節長比に基づいて、前記識別手段に入力する探索領域を制限し、制限された前記探索領域において前記尤度マップを生成する請求項3に記載の姿勢推定装置。前記基幹骨格推定手段は、更に、前記人物の向きを抽出し、前記選択手段は、前記人物の特徴部位の方向及び前記人物の向きが一致する3次元の骨格モデルに対応する前記候補群の各候補から、前記取得画像内の人物の姿勢に対応する2次元の骨格モデルを選択する請求項2に記載の姿勢推定装置。前記基幹骨格推定手段は、更に、前記人物の向きを抽出し、前記選択手段は、前記人物の特徴部位の方向及び前記人物の向きが一致する3次元の骨格モデルに対応する前記候補群の各候補から、前記取得画像内の人物の姿勢に対応する2次元の骨格モデルを選択する請求項3に記載の姿勢推定装置。前記評価手段により前記人物の姿勢に対応する2次元の骨格モデルとして選択された前記候補群の候補に対応付けられた3次元の骨格モデルから、前記特徴部位の長さに対する各部位間の長さを示す関節長比を取得画像毎に算出し、複数の取得画像にわたり前記関節長比を各部位間毎に平滑化して代表関節長比を算出する算出手段、を具備し、前記格納手段は、3次元の骨格モデルのうち、関節長比が、前記代表関節長比と一致する3次元の骨格モデルに対応する2次元の骨格モデルを、前記候補群の各候補とする請求項7に記載の姿勢推定装置。前記評価手段により前記人物の姿勢に対応する2次元の骨格モデルとして選択された前記候補群の候補に対応付けられた3次元の骨格モデルから、前記特徴部位の長さに対する各部位間の長さを示す関節長比を取得画像毎に算出し、複数の取得画像にわたり前記関節長比を各部位間毎に平滑化して代表関節長比を算出する算出手段、を具備し、前記格納手段は、3次元の骨格モデルのうち、関節長比が、前記代表関節長比と一致する3次元の骨格モデルに対応する2次元の骨格モデルを、前記候補群の各候補とする請求項8に記載の姿勢推定装置。前記基幹骨格推定手段は、前記人物の特徴部位の位置として、前記人物の肩の位置を推定する請求項1に記載の姿勢推定装置。取得画像内の人物の特徴部位の位置を推定し、前記人物の特徴部位の位置に基づいて、前記取得画像において前記人物の特徴部位以外の部位が存在する確からしさを示す尤度マップを生成し、複数の2次元の骨格モデルを候補として含み、かつ、各2次元の骨格モデルは各部位を表す線群と各部位間の連結を表す点群とから構成されるとともに人物の一姿勢に対応する、候補群を、前記尤度マップに基づいて評価する、姿勢推定方法。しかしながら、人物の姿勢は多種多様であり、撮像するカメラと人物の位置関係によっては、部位が重なって写る場合も多い。例えば、図1に示すように、手を伸ばしても手を曲げても人物のシルエットは同じとなる。特許文献1に記載の姿勢推定装置は、人の輪郭より内側の情報を失うシルエットを用いるため、部位の重なりに脆弱であり、姿勢推定が難しいという課題がある。本発明の目的は、骨格モデルを用いることにより、人物の多種多様な3次元姿勢を推定する姿勢推定装置及び姿勢推定方法を提供することである。本発明の姿勢推定装置の一つの態様は、取得画像内の人物の特徴部位の位置を推定する基幹骨格推定手段と、前記人物の特徴部位の位置に基づいて、前記取得画像において前記人物の特徴部位以外の部位が存在する確からしさを示す尤度マップを生成する尤度マップ生成手段と、複数の2次元の骨格モデルを候補として含み、かつ、各2次元の骨格モデルは各部位を表す線群と各部位間の連結を表す点群とから構成されるとともに人物の一姿勢に対応する、候補群を、前記尤度マップに基づいて評価する評価手段と、を具備する。本発明の姿勢推定方法の一つの態様は、取得画像内の人物の特徴部位の位置を推定し、前記人物の特徴部位の位置に基づいて、前記取得画像において前記人物の特徴部位以外の部位が存在する確からしさを示す尤度マップを生成し、複数の2次元の骨格モデルを候補として含み、かつ、各2次元の骨格モデルは各部位を表す線群と各部位間の連結を表す点群とから構成されるとともに人物の一姿勢に対応する、候補群を、前記尤度マップに基づいて評価する。本発明によれば、骨格モデルを用いることにより、多種多様な3次元姿勢を推定することができる。以下、本発明の実施の形態について、図面を用いて詳細に説明する。本発明に係る姿勢推定装置及び姿勢推定方法は、骨格モデルを用いて画像に写っている人物の姿勢を推定する。ここで、骨格モデルとは、人体の骨格を、関節及び骨を単純化して表現したものである。骨格モデルにおいては、関節は点、関節間をつなぐ骨は直線でそれぞれ表現される。図2は、骨格モデルの一例を示す。図2に示すように、骨格モデル1000は、首関節1010、右肩関節1020、左肩関節1030、右肘関節1040、左肘関節1050、右手首関節1060、左手首関節1070、股関節1080、右大腿関節1090、左大腿関節1100、右膝関節1110、左膝関節1120、右踵関節1130、左踵関節1140と、各関節を結合する骨で表現される。骨格モデルを用いることにより、人物の多種多様な姿勢が表現可能となる。つまり、姿勢が異なれば、異なる骨格モデルとなる。なお、2次元座標系における骨格モデルを2次元の骨格モデル、3次元座標系における骨格モデルを3次元の骨格モデルという。図3は、本発明の各実施の形態に係る姿勢推定装置を含む行動解析システムの構成図である。図3に示す行動解析システム100は、姿勢推定装置110、及び、カメラ120を有する。姿勢推定装置110とカメラ120は、例えば、IPInternetProtocolネットワークによる通信によってデータの交換を行う。行動解析システム100は、例えば、動画像を記録し、記録した動画像を解析することにより、人物の行動を解析する。このため、行動解析システム100は、街頭での異常行動検知、店舗での購買行動分析、工場における作業効率化支援、スポーツにおけるフォーム指導などに適用することができる。姿勢推定装置110は、例えば、通信機能を有するコンピュータシステムパーソナルコンピュータやワークステーションなどで構成されている。このコンピュータシステムは、図示しないが、大別して、入力装置、コンピュータ本体、出力装置、及び通信装置を有する。入力装置は、例えば、キーボードやマウスなどである。出力装置は、例えば、ディスプレイやプリンタなどである。通信装置は、例えば、IPネットワークと接続可能な通信インタフェースなどである。コンピュータ本体は、例えば、主に、CPUCentralProcessingUnitと記憶装置で構成されている。CPUは、制御機能と演算機能を有する。記憶装置は、例えば、プログラムやデータを記憶するROMReadOnlyMemoryと、データを一時的に記憶するRAMRandomAccessMemoryとを有する。ROMは、電気的に内容の書き直しが可能なフラッシュメモリであってもよい。カメラ120は、人物の作業シーン等の動画を撮影して動画像を取得し、動画像を構成するフレームを所定時間毎に姿勢推定装置110に出力する。以下、各実施の形態について説明する。特に、実施の形態1及び実施の形態2は、フレーム毎に画像に写っている人物の姿勢を推定する姿勢推定装置及び姿勢推定方法に関する。また、実施の形態3は、複数フレームを用いることにより、姿勢推定に要する演算量を削減しつつ、人物の姿勢の推定精度を向上することができる姿勢推定装置及び姿勢推定方法に関する。実施の形態1図4は、本実施の形態に係る姿勢推定装置の要部構成を示す。図4の姿勢推定装置200は、図3の姿勢推定装置110として適用される。姿勢推定装置200は、操作制御部210、画像格納部220、基幹骨格推定部230、部位抽出部尤度マップ生成部240、及び、骨格モデル評価部250を有する。図5は、図4に示す本実施の形態に係る姿勢推定装置200のうち、骨格モデル評価部250の要部構成を示す図である。骨格モデル評価部250は、骨格推定部251と骨格モデル記述変換部252とから構成されるターゲット骨格モデル形成部253、相似骨格モデル格納部254、及び、相似骨格モデル選択部255を有する。操作制御部210は、本実施の形態で示す一連の手順の開始と終了を制御し、ユーザが操作するための操作画面を提供する。図6は、本実施の形態における操作画面の一例を示している。操作画面は、開始ボタン、終了ボタン、及び、ログ表示領域を有する。ユーザは、入力装置を介して開始ボタン或いは終了ボタンを操作することにより、処理の開始や終了を指示する。ログ表示領域には、文字列や画像が表示される。本実施の形態では、複数ステップで処理を実行するため、ログ表示領域には、処理の進捗を示す文字列、或いは、各ステップが完了したときの処理結果を示す画像等が表示される。詳細は後述する。画像格納部220は、ユーザから処理の開始が指示されると、カメラ120から動画像を構成するフレームを所定時間毎に取得してメモリに格納する。フレームレートは、例えば10~30fpsである。格納した動画像は、操作制御部210以外に、基幹骨格推定部230、部位抽出部240等からも参照可能である。なお、本実施の形態では、画像格納部220が格納する動画像のうち、同一の一フレームを操作制御部210、基幹骨格推定部230が参照するものとして説明する。また、以降、人物の姿勢推定処理の対象となる当該同一の一フレームを対象画像または、ターゲット画像、対象画像に写っており、姿勢推定の対象となる人物を対象人物と称する。また、対象人物は一人であるとして説明する。また、本実施の形態における画像は二値画像であるものとして説明する。また画像格納部220は、カメラによる動画像撮影時のカメラパラメータを格納する。カメラパラメータの詳細については後述する。基幹骨格推定部230は、頭肩検出器、肩関節検出器、胴体検出器の3種類の検出器を備える。基幹骨格推定部230は、検出器を用いて、対象人物の基幹骨格を検出する。基幹骨格とは、両手、両脚がつながる骨格のことである。基幹骨格を決定する、人物の頭肩の位置、胴体の慣性主軸、体の向きを基幹骨格情報と称する。図7は、基幹骨格情報の一例を示す。基幹骨格情報は、対象人物の右肩関節位置、左肩関節位置、胴体領域の重心位置、胴体領域のスケール、胴体領域の角度、及び、体の向きの情報を含む。図8は、基幹骨格情報に含まれる各情報の基準となる画像座標系を示す。なお、図8は、対象画像であり、対象人物を模式的に示した図である。画像座標系において、右肩関節位置、左肩関節位置、胴体領域の重心位置、及び、胴体領域のスケールは、対象画像上の左上を原点とし、横方向にx軸、縦方向にy軸を設定した座標系で表現する。胴体領域の角度、及び、体の向きは、x軸からの角度θπ≦θ≦πで表現する。なお、基幹骨格推定部230における基幹骨格の抽出方法の詳細は後述する。基幹骨格推定部230が基幹骨格を抽出することにより、部位抽出部240は、基幹骨格につながる手脚の探索範囲を絞り込むことができる。基幹骨格推定部230は、対象画像から対象人物の基幹骨格を抽出し、抽出した基幹骨格の情報を基幹骨格情報として部位抽出部240に出力する。部位抽出部240は、対象人物の上腕、前腕、胴体、上脚、下脚を識別する識別器を有する。部位抽出部240は、上記識別器を用いて、基幹骨格推定部230から出力される基幹骨格情報に基づいて、対象人物の部位が対象画像上に存在する確からしさを示す尤度マップを生成する。部位抽出部240は、尤度マップに基づいて、対象画像のうち対象人物の各部位が存在する領域以下、部位領域というの情報以下、部位領域情報というを抽出する。図9は、部位領域及び部位領域情報の一例を示す。図9は、部位領域の形状が矩形で抽出された一例である。部位領域の形状は矩形に限らず、楕円形など種々の形状でもよい。この場合、部位領域情報は、各部位ごとの重心位置、縦スケール、横スケール、及び回転角度を含む。ここで、重心位置とは、矩形で表現された部位領域の重心である。縦スケールは、矩形の辺のうち、各部位に対応する骨の向きに平行な辺の長さである。横スケールは、矩形の辺のうち、各部位に対応する骨の向きに垂直な辺の長さである。回転角度は、矩形の辺のうち、各部位に対応する骨の向きに垂直な辺横スケールに対応する辺とx軸とのなす角の角度であり、反時計回りを正とする。図10は、部位抽出部240により抽出された各部位胴体、右上腕、右前腕、左上腕、左前腕、右上脚、右下脚、左上脚、及び、左下脚の部位領域情報を示す矩形を、対象画像に重畳したイメージ図である。なお、図10に示すイメージ図は、説明を補足するために図示したものであり、姿勢推定装置200の出力として必須のものではない。このように、部位抽出部240は、人体の中で最も検出しやすい部位以下、特徴部位ともいうとしての肩の位置に基づいて、対象人物の部位が対象画像上に存在する確からしさを示す尤度マップを生成する。なお、部位抽出部240における尤度マップの生成方法、及び、部位領域の抽出方法の詳細については後述する。部位抽出部240は、生成した部位領域情報と尤度マップを骨格推定部251に出力する。骨格モデル評価部250は、尤度マップに基づいて、複数の2次元の骨格モデルを候補として含む候補群を評価する。上述のように、骨格モデルは、関節を点で表現し、及び関節間をつなぐ骨を直線で表現したものである。すなわち、骨格モデルは、各部位を表す線群と、各部位間の連結を表す点群とから構成され、人物の一姿勢に対応する。2次元座標系における骨格モデルを、2次元の骨格モデルという。具体的には、骨格推定部251は、部位抽出部240から出力された部位領域情報と尤度マップに基づき、対象人物の関節位置を推定する。なお、関節位置の推定方法については後述する。そして、骨格推定部251は、推定した各関節の位置の情報を骨格情報として、骨格モデル記述変換部252に出力する。関節位置が分かれば、関節間をつなぐ骨の位置も分かるので、関節位置を推定することは骨モデルを推定することと同じである。図11は、骨格推定部251が出力する骨格情報の例である。図11に示すように、骨格情報は、対象座標の座標系における対象人物の首、右肩、左肩、右肘、左肘、右手首、左手首、股、右股、左股、右膝、左膝、右踵、及び、左踵の関節位置の情報を含む。図12は、対象画像に、骨格推定部251により出力された骨格情報が示す関節位置を点、関節位置をつなぐ骨を直線として重畳したイメージ図である。ただし、図12に示すイメージ図は、説明を補足するために図示したものであり、姿勢推定装置200の出力として必須のものではない。骨格モデル記述変換部252は、対象画像の座標系で記述された骨格情報を、骨格モデル座標系で記述された骨格モデル記述情報に変換する。ここで、骨格モデル座標系とは、骨格モデルに複数存在する関節の一つ、或いは関節をつないだ直線上の一点を原点に、二つの関節を通る直線に一致する軸をX軸、X軸に直交する直線をY軸とする座標系である。例えば、図13に示すように、右肩1301と左肩1302をつないだ直線1303の中心首1304を原点、右肩と左肩をつないだ直線以下、肩ラインという1303をX軸、X軸に直交する直線をY軸と定義する。なお、骨格モデル座標系では、肩ラインの長さを1とし、他の関節長は、肩ライン長に対する関節長比として表される。ここで関節長とは、関節と関節を結ぶ直線の長さすなわち、部位の長さを示す。例えば、右肘と右肩を結ぶ直線に関する関節長比α1は、式1により算出される。次に、骨格モデル記述変換部252は関節角度β1を求める。例えば、右肩と右肘を結ぶ線分の角度は、右肩と左肩をつないだ肩ラインと右肩と右肘を結ぶ線分の成す角度θで表される。例えば、3つの点の座標、右肩=,左肩=,右肘=が与えられているとする。このとき、骨格モデル記述変換部252はベクトルAAx,Ay=xls-xrs,yls-yrsと、ベクトルBBx,By=xre-xrs,yre-yrsに関して、式2に示すように外積Sを計算する。もし、S>0ならば関節角度β1は角度θであり、S<0ならば角度θである。また、S=0の場合、右肩、左肩及び右肘は一直線上にある。ベクトルAとベクトルBとがなす角β1は、式3を満たす。β1は、式4に示すように、逆三角関数により求められる。骨格モデル記述変換部252は、右肘と右手首、左肩と左肘、左肘と左手首、首と股、右大腿と左大腿、右大腿と右膝、右膝と踵、左大腿と左膝、左膝と踵についても、右肩と右肘との計算と同様の計算により、それぞれ関節長比及び関節角度を算出する。図14は、各関節長比及び関節角度の一例を示す図である。このようにして、骨格モデル記述変換部252は、骨格推定部251により出力された骨格情報すなわち、対象人物の骨格モデルを、画像座標系から骨格モデル座標系での記述に変換する。これにより、カメラと対象人物との位置関係により生じる、画像に映った対象人物のスケール変化に依存しない骨格モデル記述情報を取得することができる。そして、骨格モデル記述変換部252は、対象人物の骨格モデル記述情報を相似骨格モデル選択部255に出力する。以降、骨格モデル記述情報で記述された対象人物の骨格モデルをターゲット骨格モデルという。相似骨格モデル格納部254は、対象人物の姿勢推定処理に先立って、対象人物の骨格モデル記述情報とのマッチング評価を行う多数の骨格モデル記述情報を格納する。なお、直立姿勢であっても、様々な体型の直立姿勢がある。以下、特定の姿勢に対して、体型により異なることを体型差と称する。さらに、直立姿勢のみならず、しゃがんだ姿勢、或いは、直立していても両手を下ろした姿勢と両手を前に伸ばした姿勢のように、様々な姿勢が考えられる。以下、同一人物が取り得る様々な姿勢を姿勢差と称する。したがって相似骨格モデル格納部254は、体型差或いは姿勢差を考慮した様々な姿勢を表現した骨格モデル記述情報を格納しておく必要がある。相似骨格モデル格納部254に格納しておく骨格モデル記述情報は、例えば、モーションキャプチャによって取得したデータ以下、モーションキャプチャデータと称するを用いて作成することができる。ここで、モーションキャプチャデータは、例えば、関節の3次元x軸、y軸、z軸位置座標、及び、関節回転角度で定義されるデータであり、一般に公開、或いは市販されている。このモーションキャプチャデータの関節を直線でつなぐことで、容易に3次元の骨格モデルとして可視化することができる。相似骨格モデル格納部254は、画像格納部220が格納するカメラパラメータを用いて、3次元の骨格モデルから、2次元の骨格モデルを生成する。ここで、カメラパラメータには、カメラ外部パラメータとカメラ内部パラメータとが存在する。カメラ外部パラメータとは、ワールド座標系でのカメラの位置座標カメラ座標系原点の位置、ワールド座標系を基準としたカメラの姿勢xyz回転角度のことである。また、カメラ内部パラメータとは、カメラの焦点距離、カメラの垂直画角、2次元画像への投影スクリーン幅、2次元画像への投影スクリーン高さなどのことである。つまり、カメラパラメータとは、ワールド座標系に存在する3次元骨格モデルをカメラから見た2次元画像に変換する際に必要なパラメータである。したがって、相似骨格モデル格納部254は、図15のようにワールド座標系に存在する3次元の骨格モデルに対し、カメラ外部パラメータを変更することで、3次元の骨格モデルを、異なる視点から射影した複数の2次元の骨格モデルを取得することができる。画面に射影された関節は、骨格モデル記述情報で表現される。図16は、ある動作の姿勢を示す骨格モデルを複数の視点から射影することにより得られた2次元画像の一例である。同一の姿勢から得られた複数の骨格モデル記述情報を相似骨格情報という。このようにして、相似骨格モデル格納部254は、人物の一姿勢に対応する3次元の骨格モデルを射影変換することにより得られた2次元の骨格モデルを、骨格モデル記述情報として格納する。また、相似骨格モデル格納部254は、モーションキャプチャによって取得したデータすなわち、姿勢の数と同じ数の相似骨格情報を格納していることとなる。相似骨格モデル選択部255は、骨格モデル記述変換部252から出力された対象人物の骨格モデル記述情報と、相似骨格モデル格納部254が格納する相似骨格情報とを用いて、対象人物の姿勢を推定するための評価関数を計算する。ここで、骨格モデル記述情報及び相似骨格情報は、共に、画像座標系で記述されている。評価関数xは、式5に示されるように、パラメータベクトルPe、Pdの差分の大きさの二乗で表される。ここで、Peは骨格モデル記述変換部252から出力された骨格モデル記述情報であり、Pdは相似骨格モデル格納部254が格納する相似骨格情報である。相似骨格モデル選択部255は、評価関数xの値が最小となるよう最適化手法により、複数の相似骨格情報の中から最終的な推定結果を出力する。前述のように、相似骨格情報のそれぞれに対してモーションキャプチャデータの関節をつないだ3次元の骨格モデルが関連付けられている。そのため、相似骨格モデル選択部255は、最も類似した相似骨格情報を抽出することで、最も類似した3次元の骨格モデルを特定し、出力することができる。なお、以上の説明では、相似骨格モデル選択部255が、最適化手法として非線形最小二乗法を用いる場合を説明したが、他の様々な方法を利用することも可能である。このようにして、相似骨格モデル選択部255は、2次元の骨格モデルとターゲット骨格モデルとの類似度に基づいて、2次元の骨格モデルのうちいずれかを、対象人物の姿勢に対応する2次元の骨格モデルとして選択する。2次元のモデルは、上述の通り、相似骨格モデル格納部254が格納する人物の一姿勢に対応する3次元の骨格モデルを射影変換することにより得られたモデルである。そして、相似骨格モデル選択部255は、選択した2次元の骨格モデルに対応する3次元の骨格モデルの情報を、対象人物の姿勢の情報として出力する。次に、上述のように構成された姿勢推定装置200の動作について詳細に説明する。図17は、本実施の形態に係る姿勢推定装置200の処理フローの一例を示す図である。S101において、カメラ120は、操作画面にてユーザによって開始ボタンが押下されると、人物の撮影を開始する。画像格納部220は、カメラ120から動画像を構成するフレームを所定時間毎例えばフレームレート=10~30fpsに取得し、メモリに格納する。画像格納部220は、カメラ120から取得した動画像のフレームを、例えば、JPEGJointPhotographicExpertsGroupフォーマットの静止画像ファイルとして格納する。また、画像格納部220は、各画像ファイル名に取得時刻順序を示す数字を付して格納する。例えば、画像格納部220は、最も古い時刻の画像ファイル名に0番を付し、最も新しい時刻の画像ファイル名にN番を付して、新たなフレームがカメラで取得されるごとにファイル名に付与される数字が1つずつ増えるとする。以下では、画像格納部220が動画像のフレームを取得するたびに、画像格納部220から基幹骨格抽出依頼を基幹骨格推定部230に出力する場合を例に説明する。基幹骨格抽出依頼には処理対象となるファイル名が含まれている。また画像格納部220は、カメラによる人物撮影時のカメラパラメータを格納する。S102において、基幹骨格推定部230は、対象人物の基幹骨格を検出する。具体的にはまず、基幹骨格推定部230は、画像格納部220から基幹骨格抽出依頼を受け取ると、画像格納部220が蓄積する画像のうち、基幹骨格抽出依頼に含まれるファイル名と一致する画像対象画像を参照する。基幹骨格推定部230は、頭肩検出器、肩関節検出器、胴体検出器の3種類の検出器を備えている。これらの検出器は、互いに異なるアルゴリズム或いは特徴量を用いて、検出処理を行う機能である。各検出器は、対象画像の中から、対象人物の基幹骨格の可能性がある領域をすべて検出し、その検出した領域を検出結果の尤度とともに出力する。尤度とは、その検出した領域が対象人物の基幹骨格である確率を表すスコアであり、尤度が高いほど対象人物の基幹骨格である可能性が高いことを示している。ここで、基幹骨格推定部230において、三つの検出器は並列に実行されるのではなく、頭肩検出器、肩関節検出器、胴体検出器の順番で一つずつ実行される。三つの検出器の処理順は、各検出器の特性を考慮して決定される。混雑或いは顔の向きの変化により人体の隠れが発生する状況において、人体の中で最も検出しやすい部位特徴部位は、頭肩部である。例えば、人物が重なって画像に写っている場合には、胴体の検出が難しい場合が多い。しかし、そのような胴体の検出が難しい画像であっても、人物の頭肩部の輪郭が明瞭に写っていれば、頭肩部検出が可能である。また、頭肩部検出のアルゴリズムは比較的単純であり、処理時間も短いという利点がある。そこで、本実施の形態では、先ず、頭肩検出器による頭肩部検出処理を実行する。なお、各検出器で頭部ではない、肩ではない、胴体ではないと判定された時点で、基幹骨格推定部230は、検出処理を終了し、残りの検出器での処理を省略する。これにより、検出器の実行回数を可及的に少なくし、検出処理に要する時間を短縮することができる。なお、肩関節検出器の処理については後述する。胴体検出器は、領域の輪郭や色などに着目して胴体か否かを検出する機能を有する。頭肩部検出のアルゴリズムと同様、胴体検出のアルゴリズムは比較的単純であり、処理時間も短いという利点がある。胴体検出器は、胴体領域の重心、胴体領域のスケール、及び、胴体領域の角度を検出し、検出結果を基幹骨格情報に書き込む。なお、用いる検出器の種類アルゴリズム、数、順番などは、上記で示したものに限らず、適宜変更してもかまわない。例えば、顔器官の特徴などを用いて人物の顔か否かを検出する顔検出器などを組み合わせてもよい。検出器の具体的なアルゴリズム及び検出器の作成手法に関しては、従来公知の技術を利用することができる。例えば、数多くのサンプル画像頭肩検出器であれば、頭肩が写っている画像と、頭肩が写っていない画像を用意するを用いて、RealAdaBoostのようなBoosting手法により特徴量の傾向を学習することで、検出器が作成される。特徴量としては、例えば、HoGHistogramofGradient特徴量、Sparse特徴量、Haar特徴量などどのような種類の特徴量も用いることができる。また、学習方法も、Boosting手法のほか、SVMサポートベクタマシン、ニューラルネットワークなどを利用することも可能である。次に、図18及び図19を用いて肩関節検出器における肩関節位置の推定方法を説明する。図18は、肩関節位置の推定方法の処理フローの一例を示す図である。また、図19は肩関節位置の推定方法によって対象画像が処理される様子を示す図である。前述のように、既に頭肩検出器によって、対象人物の頭肩領域が算出されているS201、図19A参照。そこで、S202では、肩関節検出器は、対象人物の頭肩領域をある画素分だけ拡大又は縮小するクロージングを行い、白い画素の集合の中に現れる黒いノイズを取り除く図19B参照。S203において、肩関節検出器は、対象人物の頭肩領域の下辺から黒い画素に到達するまでのy軸方向の距離を抽出し、距離ヒストグラムを作成する図19C参照。続いて、S204にて、肩関節検出器は、距離ヒストグラムに対し2値化処理を行う図19D参照。2値化処理は、予め定義された閾値に基づいて行ってもよいし、大津の2値化と称される手法大津の手法ともいうを用いても良い。利用する大津の手法は、ある値の集合を二つクラスに分類する場合の適切な閾値を決定する手法である。当該方法は、二つのクラス内の分散はできるだけ小さく、クラス間の分散はできるだけ大きくなるような閾値を求める。ここでは、対象人物の頭領域と肩領域とを二つのクラスに分類するために、対象画像の下辺から肩領域までの距離と、対象画像の下辺から頭領域までの距離とを、ある閾値で分類する。続いて、肩関節検出器は、S205にて、2値化後の肩領域の左半分に含まれる白い画素の重心を右肩関節として推定し図19E参照、右半分に含まれる白い画素の重心を左肩関節として推定する。基幹骨格推定部230は、推定した右肩関節、左肩関節それぞれのx座標の値、y座標の値を、基幹骨格情報に書き込む。以上のような処理により、基幹骨格推定部230は、対象人物の特徴部位として、肩の位置及び対象人物の向き体の向きを推定して、基幹骨格情報を作成する。そして、基幹骨格推定部230は、基幹骨格情報の作成が完了すると、作成した基幹骨格情報と部位抽出依頼を部位抽出部240に出力し、肩関節位置の推定方法の処理フローを終了する。そして、図17の処理フローのS103に進む。S103において、基幹骨格推定部230から部位抽出依頼を受け取った部位抽出部240は、対象人物の部位の候補領域を推定する。具体的には、部位抽出部240は、対象人物の部位毎に、部位が存在する確からしさを示す尤度マップを生成する。より詳細には、部位抽出部240は、基幹骨格推定部230から部位抽出依頼を受け取ると、対象画像の各画素における特徴量を抽出し、抽出した特徴量を識別器に入力する。ここで、特徴量は、非特許文献1に記されているSIFTScaleInvariantFeatureTransform特徴量などを用いる。SIFT特徴量を用いた手法は、物体のスケール変化、物体の回転、物体の平行移動に対して影響を受けない不変となる特徴点を抽出する。そして、その特徴点は128次元のベクトルにより構成されている。SIFT特徴量を用いた手法は、特に、腕のような、様々な方向に回転可能な部位の検出に有効である。なお、従来、矩形情報を基にした複数の弱識別器の総和をAdaBoostにより統合して強識別器を作成し、強識別器をカスケード接続させて、画像中の注目対象として顔を認識する技術が提案されている非特許文献2参照。識別器Hkk=1~5は、上腕k=1、前腕k=2、胴体k=3、上脚k=4、下脚k=5ごとに予め機械学習により準備される。識別器Hkの生成は、AdaBoostアルゴリズムにより行われ、予め部位ごとに用意されている複数の教師画像に対して所望の精度で上腕、前腕、胴体、上脚、下脚か否かの判定ができるようになるまで繰り返される。ある特徴量が識別器Hkに入力されると、識別器Hkは、識別器Hkを構成する各弱識別器の出力にその弱識別器の信頼度αを乗じた値の総和を算出し、その総和から所定の閾値Thを減じて尤度ckを算出する。尤度ckは、ある画素がある人物の部位であることの確からしさを示す値である。c1は上腕の尤度を示し、c2は前腕の尤度を示し、c3は胴体の尤度を示し、c4は上脚の尤度を示し、c5は下脚の尤度を示す。対象画像の各画素の特徴量を全ての識別器Hkに入力することで、画素ごとに尤度ベクトルCij=[c1、c2、c3、c4、c5]が出力される。ここで、尤度ベクトルCijにおいて、iは、画素のx座標を示し、jは、y座標を示す。このようにして、部位抽出部240は、各部位毎の尤度マップを生成する。ここで、識別器Hkへの入力対象の削減方法について説明する。識別器Hkへの入力対象を削減することにより、演算量を低減することができる。識別器Hkへの入力対象を削減するために、人体の関節角度に着目した方法を説明する。人体の関節は、あらゆる方向に曲がるわけではない。人体の関節はある角度まで曲げると、それ以上は曲がりにくくなる。このため、当該関節に接続する部位を動かせる範囲以下、可動域には、限界がある。例えば、図20は、左肩関節に接続する左上腕の可動域を示している。図20Aは対象人物が正面を向いた場合の右上腕の可動域を示し、図20Bは対象人物が向かって左横を向いた場合の左上腕の可動域を示している。肩関節を背中側に曲げることは難しいため、図20Bに示すように、左上腕を動かせない領域図中、動かない領域として示される領域が発生する。肘関節、大腿関節、膝関節の場合も同様に、それぞれ動かせる範囲に限界があるため、動かない領域が発生する。S102において、基幹骨格推定部230により、対象画像中の対称人物の肩関節位置、及び、体の向きが既に推定されている。対象人物の上腕が存在する候補領域は、肩関節位置を中心とした、上腕の可動域内にある。また、図20に示すように、対象人物の体の向きによって、対象画像上の部位の可動域が異なる。以下、対象人物の体の向きによって異なる、対象画像上の部位の可動域を画面内可動域と称する。例えば左上腕の場合、対象人物が体を正面に向けたときに、図20Aに示すように画面内可動域が最も大きくなる。一方、図20Bに示すように、対象人物が体を向かって左真横に向けたときには、動かない領域横線領域が発生するため、画面内可動域が最も小さくなる。なお、図20では、画面内可動域は、部位が接続する関節を中心とし、関節長を半径とした円と、関節を曲げることが可能な角度とで表現する例を示した。部位抽出部240は、基幹骨格推定部230から受け取った基幹骨格情報に含まれる胴体領域のスケールShを用いて、式6によって上腕の平均関節長BAVEを計算する。式6は、腕の関節長と胴体の長さとの相関が高く、胴体の長さから腕の関節長を線形近似できることを示している。ここで、式6の係数a、bは人体寸法データを用いて、あらかじめ統計的に算出されて、部位抽出部240が保持している。続いて、部位抽出部240は、基幹骨格情報に含まれる対象人物の体の向きと上腕の平均関節長とから、対象画像における画面内可動域を一意に決定する。さらに、部位抽出部240は、基幹骨格情報に含まれる対象人物の肩の位置と、画面内可動域の中心とを一致させる。これにより、対象画像における上腕候補領域の探索範囲を小さくすることができる。すなわち、部位抽出部240は、対象画像内の全画素を上腕識別器に入力せずに、画面内可動域に含まれる画素についてのみ上腕識別器に入力し、尤度Ckを算出することで、計算時間を短縮することができる。また、背景差分のような公知技術を用いて、対象画像において対象人物が存在する可能性がある候補領域を予め抽出しておくようにしてもよい。この場合、対象人物が存在する可能性がある候補領域と画面内可動域の共通領域とに含まれる画素を、部位の探索範囲とすることで、部位抽出部240は、さらなる計算時間の短縮が可能となる。このようにして、部位抽出部240は、部位が存在する確からしさを示す尤度マップを生成し、当該尤度マップに応じた、部位領域情報を生成する。そして、部位抽出部240が部位領域情報の作成を完了すると、部位領域情報と尤度マップともに骨格推定依頼を骨格推定部251に出力し、S104に進む。S104において、骨格推定部251は、部位抽出部240から受け取った部位領域情報を参照して対象人物の骨格を推定する。本実施の形態では、骨格推定部251における推定方法として、2つの関節位置を推定した後、2つの関節位置の中間に存在する関節位置を推定する方式について説明する。例えば、骨格推定部251は、肩と手首の位置を用いて、中間に存在する肘の位置を推定する。或いは、骨格推定部251は、脚の大腿と踵の位置を用いて膝の位置を推定する。図21は、骨格推定部251における骨格推定の処理フローの一例を示す図である。肩の位置肩の位置は、S102において推定済みである。手首の位置手首について、骨格推定部251は、部位抽出部240から受け取った部位領域情報に含まれる右前腕の重心を通り、右前腕の縦スケールに対応する辺に平行に伸びる直線と、右前腕の横スケールに対応する辺との交点とを抽出する。交点は2つ存在するが、骨格推定部251は、手の領域の検出によって、手の存在する領域に近い交点を対象人物の右手首の位置とみなす。なお、手の領域の検出については、骨格推定部251は、一般的に用いられるHSV表色系を用いた肌色抽出を活用できる。骨格推定部251は、左手首の位置についても同様に求めることができる。肘の位置肩と手首の位置が決まった後、骨格推定部251は、肩を中心に角度θごとに部位の端点関節位置を通り、部位の傾きに平行な直線初期位置を一定角度刻みで回転させ、そのときの直線が通る画素に付与された部位の尤度の総和を求める。同様に、骨格推定部251は、手首を中心に角度θごとに部位の端点関節位置を通り、部位の傾きに平行な直線初期位置を一定角度刻みで回転させ、そのときの直線が通る画素に付与された部位の尤度の総和を求める。肩から伸びる直線と手首から伸びる直線との交点が、肘の候補位置となる。骨格推定部251は、肩から肘の候補位置を経由して手首に至る距離が最短となる直線上の画素の尤度の総和を求め、尤度の総和が最大となる肩、肘、手首位置の組み合わせから肘の位置を特定する。踵の位置骨格推定部251は、部位領域情報に含まれる右下脚の重心を通り、右下脚の縦スケールに対応する辺に平行に伸びる直線と、右下脚の横スケールに対応する辺との交点とを抽出する。交点は2つ存在するが、踵は地面に近いと想定されることから、骨格推定部251は、y座標の値が大きい方を、対象人物の右踵の位置とみなす。骨格推定部251は、左踵の位置についても同様に求めることができる。大腿の位置骨格推定部251は、部位領域情報に含まれる右上脚の重心を通り、右上脚の縦スケールに対応する辺に平行に伸びる直線と、右上脚の横スケールに対応する辺との交点とを抽出する。交点は2つ存在するが、大腿は地面から遠いと想定されることから、骨格推定部251は、y座標の値が小さい方を、対象人物の右大腿の位置と見なす。骨格推定部251は、左大腿の位置についても同様に求めることができる。膝の位置骨格推定部251は、肩と手首の位置の推定結果を用いた肘の位置の推定と同様に、踵と大腿の位置の推定結果を用いて、膝の位置を推定する。首、股の位置骨格推定部251は、S102で位置を推定した両肩を結ぶ直線の中点を首の位置として推定する。また、骨格推定部251は、上記方法で位置を推定した両大腿を結ぶ直線の中点を股の位置として推定する。以上のように、S104では、S102で決めた両肩の位置以外に、首、両肘、両手首、股、両大腿、両膝、両踵の位置を推定し、骨格情報を作成する。このようにして、骨格情報の作成を完了すると、骨格推定部251は、骨格情報と骨格モデル記述変換依頼を骨格モデル記述変換部252に出力し、S105に進む。S105において、骨格モデル記述変換部252は、部位ごとに、肩を基準とした関節長比及び関節角度を計算する。骨格モデル記述変換部252の処理の流れは、以下のようになる。骨格モデル記述変換部252は、骨格推定部251から骨格情報と骨格モデル記述変換依頼を受け取ると、骨格情報に含まれる関節の位置座標を式1~式4に適用して骨格モデル記述情報を作成する。これにより、ターゲット骨格モデルを表現する骨格モデル記述情報がた作成される。骨格モデル記述変換部252は、骨格モデル記述情報の作成を完了すると、ターゲット骨格モデルを表現する骨格モデル記述情報と骨格モデル照合依頼を相似骨格モデル選択部255に出力し、S106に進む。S106において、相似骨格モデル選択部255は、対象人物の姿勢を推定する。具体的には、相似骨格モデル選択部255は、骨格モデル記述変換部252から骨格モデル照合依頼を受け取る。そして、相似骨格モデル選択部255は、骨格モデル記述変換部252から受け取った骨格モデル記述情報と相似骨格モデル格納部254が格納する相似骨格情報とのマッチング評価を、繰り返し実施する。マッチング評価は、例えば、式5を用いて行うことができる。この場合には、式5の値が小さいほど、マッチング評価が高い。そして、相似骨格モデル選択部255は、マッチング評価が最も高かった相似骨格情報に関連付けられた3次元の骨格モデルを、対象人物の姿勢であると推定する。このようにして、マッチング評価を完了すると、相似骨格モデル選択部255は、操作制御部210に推定結果表示依頼、及び、マッチング評価が最も高かった相似骨格情報に関連付けられた3次元の骨格モデルを出力する。操作制御部210は、相似骨格モデル選択部255から、対象人物の姿勢の推定結果である3次元の骨格モデルと推定結果表示依頼を受け取る。そして、操作制御部210は、図22のようにログ領域内の、オリジナル画像領域に対象画像を表示し、推定結果領域に相似骨格モデル選択部255から受け取った3次元の骨格モデルを表示する。推定された3次元の骨格モデルは、関節ごとに3次元位置x座標、y座標、z座標と、回転角度が定義されている。そのため、ユーザは、推定結果領域内でマウスを操作して3次元の骨格モデルを回転させることにより、カメラ視点を変化させた3次元の骨格モデルの見え方の変化を目視確認することができる図示せず。入力装置を介してユーザによって終了ボタンが押下されると、操作制御部210は、操作画面を消去し、姿勢推定装置200も動作を終了する。以上述べたように、本実施の形態の姿勢推定装置200は、対象人物の姿勢を2次元の骨格モデルで表現することができる。そして、姿勢推定装置200は、対象人物の姿勢を、予め準備され、かつ、様々な姿勢と関連付けられた2次元の骨格モデルとの類似度を評価し、最も類似する2次元の骨格モデルに対応する姿勢を対象人物の姿勢として推定することができる。すなわち、本実施の形態に係る姿勢推定装置200において、相似骨格モデル格納部254は、相似骨格情報を3次元の骨格モデルと対応付けて格納する。各相似骨格情報は、3次元の骨格モデルを2次元の骨格モデルに射影変換することによって生成される。骨格推定部251及び骨格モデル記述変換部252から構成されるターゲット骨格モデル形成部253は、尤度マップを用いて、ターゲット骨格モデルを表現する骨格モデル記述情報を作成する。相似骨格モデル選択部255は、相似骨格情報とターゲット骨格モデルを表現する骨格モデル記述情報との類似度に基づいて、最も類似する相似骨格情報を、対象人物の姿勢に対応する2次元の骨格モデルとして選択する。相似骨格情報には、様々な姿勢の3次元骨格モデルが対応付けられているため、姿勢推定装置200は、対象人物の姿勢を推定することができる。このように、本実施の形態では、対象人物の姿勢を2次元の骨格モデルで単純化し、関節長比と間接角度からなるパラメータに変換して表現している。これにより、シルエットマッチングに代表される、計算コストの高い画像同士の類似度評価に代えて、単純なパラメータ比較により類似度評価を採用できる。また、単眼カメラ画像において推定が難しいカメラの設置位置に対する対象人物の奥行き情報に依存せず、スケールフリーなマッチングが可能となる。さらに、基幹骨格推定部230は、姿勢推定処理の初期段階で対象人物の肩の位置及び体の向きを推定するようにした。そして、基幹骨格推定部230は、後段の部位抽出部240における処理に、運動学的制約や、人体寸法統計から得られる知識を適用し、自由度の高い腕や脚の探索範囲に制限を設けるようにした。これにより、高速処理を実現できる。なお、相似骨格モデル選択部255は、人物の特徴部位としての肩の位置及び体の向きが一致する3次元の骨格モデルに対応する相似骨格情報のみを対象としてマッチング評価を、対象人物の姿勢に対応する2次元の骨格モデルを選択するようにしてもよい。これにより、マッチング評価の候補数を絞り込むことができるため、高速処理を実現できる。実施の形態2実施の形態1に係る姿勢推定装置は、相似骨格情報と、骨格モデル記述情報との類似度に基づいて、対象人物の姿勢を推定した。上述の通り、相似骨格情報は、予め定義された3次元の骨格モデルを2次元の骨格モデルに射影変換することにより生成された情報でありる。また、骨格モデル記述情報は、尤度マップから形成されたターゲット骨格モデルに対応する情報である。本発明の実施の形態2に係る姿勢推定装置は、予め定義された3次元の骨格モデルを射影変換した2次元の骨格モデルを、対象人物の部位が存在する確からしさを示す尤度マップに重畳させる。そして、本実施の形態に係る姿勢推定装置は、2次元の骨格モデルが尤度マップに重なる画素が保持する尤度の総和に基づいて、対象人物の姿勢を推定する。図23は、本実施の形態に係る姿勢推定装置の要部構成を示すブロック図である。図23の姿勢推定装置300は、図3の姿勢推定装置110として適用される。なお、図23において、図4と共通する構成部分には、図4と同一の符号を付して説明を省略する。図23の姿勢推定装置300は、図4の姿勢推定装置200に対して、骨格モデル評価部250に代えて、骨格モデル評価部310を具備する。なお、本実施の形態では、部位抽出部240は、尤度マップのみを骨格モデル評価部310に出力する。すなわち、部位抽出部240は、骨格モデル評価部310に対して部位領域情報を出力しない。そのため、本実施の形態では、部位抽出部240は、尤度マップのみを生成し、部位領域情報の抽出は行わなくてもよい。骨格モデル評価部310は、相似骨格モデル格納部311及び相似骨格モデル選択部312を有する。実施の形態1における相似骨格モデル格納部254は、上述の通り、3次元の骨格モデルから、画像格納部220が格納する動画像撮影時のカメラパラメータを用いて2次元の骨格モデルを生成する。これに対し、本実施の形態における相似骨格モデル格納部311は、対象人物の肩ラインと、2次元の骨格モデルの肩ラインとが平行になるように、射影時に用いるカメラパラメータを変更する。対象人物の肩ライは、基幹骨格推定部230が推定する。2次元の骨格モデルの肩ラインは、3次元の骨格モデルを2次元に射影した結果である。これにより、基幹骨格推定部230が推定した対象人物の肩ラインと、肩ラインが平行である2次元の骨格モデルが形成され、形成された2次元の骨格モデルを表現する骨格モデル記述情報が生成される。相似骨格モデル格納部311は、例えばモーションキャプチャなどによって体型差または姿勢差を考慮した様々な姿勢を表現した3次元の骨格モデルを、予め取得する。そして、相似骨格モデル格納部311は、予め取得された3次元の骨格モデルを2次元に射影して、対応する2次元の骨格モデルを形成し、形成された2次元の骨格モデルを表現する骨格モデル記述情報を生成し、格納する。さらに、相似骨格モデル格納部311は、基幹骨格推定部230によって推定された対象人物の肩ライン長と、格納された骨格モデル記述情報によって表現される2次元の骨格モデルの肩ライン長との比Sを算出する。相似骨格モデル格納部311は、当該2次元の骨格モデルの全関節長に算出した比Sを乗じて、2次元の骨格モデルを伸縮させる。当該比Sは、対象人物の肩ライン長と、2次元の骨格モデルの肩ライン長とを一致させるためのパラメータである。相似骨格モデル格納部311はこのようにして得られた2次元の骨格モデルを表現する骨格モデル記述情報を格納する。相似骨格モデル選択部312は、部位抽出部240から取得された尤度マップ及び相似骨格モデル格納部311が格納する骨格モデル記述情報に基づいて、対象人物の姿勢を推定する。具体的には、相似骨格モデル選択部312は、相似骨格モデル格納部311が格納する骨格モデル記述情報が表現する2次元の骨格モデルの全てを、尤度マップにそれぞれ重畳させる。そして、相似骨格モデル選択部312は、重なる画素が保持する尤度の総和を算出し、最も高いスコアを出力する2次元の骨格モデルを、対象人物の姿勢に対応する2次元の骨格モデルとして選択する。なお、相似骨格モデル選択部312における推定方法の詳細については、後述する。次に、以上のように構成された姿勢推定装置200の動作について、図24の処理フローを用いて説明する。なお、図24において、図17と共通するステップには、図17と同一の符号を付して説明を省略する。S101において、画像格納部220に、対象人物の画像が格納される。S102において、基幹骨格推定部230により、対象人物の肩ラインと体の向きが推定される。S103において、部位抽出部240により、対象人物の各部位の領域が推定される。S401では、相似骨格モデル格納部311は、予め取得された複数の3次元の骨格モデルから1つ抽出し、基幹骨格推定部230が推定した対象人物の肩ラインと、肩ラインが平行となるよう2次元に射影して、対応する2次元の骨格モデルを形成する。そして、相似骨格モデル格納部311は、対象人物の肩ライン長と肩ライン長が一致するよう、全ての2次元の骨格モデルを伸縮させ、伸縮させた2次元の骨格モデルを表現する骨格モデル記述情報を格納する。そして、S402に進む。S402では、骨格モデル評価部310は、相似骨格モデル格納部311が格納する骨格モデル記述情報が表現する2次元の骨格モデルを、部位抽出部240から取得された尤度マップに重畳させる。ここで、尤度マップは、画素ごとに各識別器Hkから出力された尤度をスコアとして保持している。S401により、相似骨格モデル格納部311が格納する骨格モデル記述情報が表現する2次元の骨格モデルは、対象人物と肩ラインが平行でかつ、肩ライン長が一致するよう形成されている。そのため、相似骨格モデル選択部312は、相似骨格モデル格納部311が格納する骨格モデル記述情報が表現する2次元の骨格モデルの肩関節位置を、対象人物の肩関節位置と一致させる。これにより、相似骨格モデル選択部312は、相似骨格モデル格納部311が格納する骨格モデル記述情報が表現する2次元の骨格モデルを、尤度マップに重畳することができる。相似骨格モデル選択部312は、尤度マップの重畳が完了すると、S403に進む。S403では、相似骨格モデル選択部312は、重畳された2次元の骨格モデルが重なる画素が保持する尤度の総和であるスコアを算出する。そして、相似骨格モデル選択部312は、S401において選択した3次元の骨格モデルとスコアとを対応付けて、尤度加算情報に記録する。上記尤度加算情報には、相似骨格モデル選択部312が、対象人物の全ての部位の尤度の総和であるスコアを記録する場合について説明したが、これに限らない。例えば、腕に着目して姿勢を推定する場合には、相似骨格モデル選択部312は、上半身の部位の尤度のみの総和をスコアとしたり、腕の尤度のみに重み付けを行ってスコアを算出したりしてもよい。相似骨格モデル選択部312は、尤度加算情報への記録が完了すると、S404に進む。S404では、相似骨格モデル選択部312は、相似骨格モデル格納部311が取得済みである3次元の骨格モデル全てについてS401~S403の処理が完了したか否かを判定する。全ての3次元の骨格モデルについて処理が完了していない場合、骨格モデル評価部310は、S401に戻って、次の3次元の骨格モデルに対する評価を開始する。ここで、別の3次元姿勢を表現する2次元の骨格モデルは、初期骨格モデルに対して、腕の位置、脚の位置などを変化させたN個のパターンとして予め定義された骨格モデルである。したがって、相似骨格モデル選択部312は、N回評価を繰り返し、相似骨格モデル格納部311が格納する2次元の骨格モデルの中から、対象人物の姿勢に最も近い骨格モデルを探索することになる。全ての3次元の骨格モデルについての評価が完了した場合、S405において、相似骨格モデル選択部312は、尤度加算情報を参照して、スコアが最大の3次元の骨格モデルを対象人物の姿勢であると推定する。以上のように、本実施の形態では、骨格モデル評価部310は、3次元の骨格モデルを2次元へ射影し伸縮させた2次元の骨格モデルを尤度マップに重畳させ、各人体部位の尤度の総和であるスコアを算出する。そして、骨格モデル評価部310は、最も高いスコアを出力する2次元骨格モデルまたは、当該2次元の骨格モデルに対応する3次元の骨格モデルを、対象人物の姿勢として出力する。具体的には、相似骨格モデル格納部311は、予め取得された3次元の骨格モデルを、その語らいが、対象人物の肩ラインと平行となるように2次元に射影して、3次元の骨格モデルに対応する2次元の骨格モデルを形成する。対象人物の肩ラインは、基幹骨格推定部230が推定する。そして、相似骨格モデル格納部311は、対象人物と肩ライン長が一致するように2次元の骨格モデルを伸縮させ、伸縮させた2次元の骨格モデルを表現する骨格モデル記述情報を格納する。相似骨格モデル選択部312は、相似骨格モデル格納部311が格納する骨格モデル記述情報によって表現される2次元の骨格モデルを尤度マップに重畳させる。そして、相似骨格モデル選択部312は、2次元の骨格モデルが尤度マップに重なる画素が保持する尤度の総和であるスコアに基づいて、2次元の骨格モデルを選択し、当該2次元の骨格モデルに対応する3次元の骨格モデルの姿勢を対象人物の姿勢として推定する。このように、本実施の形態では、実施の形態1と同様に、対象人物の姿勢を2次元の骨格モデルで単純化し、関節長比と間接角度からなるパラメータを用いて表現している。これにより、シルエットマッチングに代表される、計算コストの高い画像同士の類似度評価に代えて、単純なパラメータ比較により類似度評価ができる。また、単眼カメラ画像において推定が難しいカメラの設置位置に対する人物の奥行き情報に依存せず、スケールフリーなマッチングが可能となる。なお、本実施の形態では、相似骨格モデル格納部311のS401の処理をS402の処理の前に都度行うよう説明したが、最初のS401の処理のタイミングで、あらかじめ取得しておいた3次元の骨格モデルを全て射影、伸縮させておいてもよい。この場合、S404においてNoとなった場合には、S402の前に処理が戻る。実施の形態3実施の形態1及び実施の形態2では、フレーム毎に対象人物の姿勢を推定する方法について説明した。実施の形態1に係る姿勢推定装置は、相似骨格情報と、骨格モデル記述情報との類似度に基づいて、取得画像内の人物の姿勢を推定した以下では、ボトムアップ方法ともいう。上述の通り、相似骨格情報は、予め定義された3次元の骨格モデルを2次元の骨格モデルに射影変換することにより生成されたものである。また、骨格モデル記述情報は、尤度マップから形成されたターゲット骨格モデルに対応するものである。また、実施の形態2に係る姿勢推定装置は、予め取得された3次元の骨格モデルを2次元に射影、伸縮することにより形成された2次元の骨格モデルを、尤度マップに重畳させた。そして、実施の形態2に係る姿勢推定装置は、2次元の骨格モデルが重なる画素が保持する尤度の総和であるスコアに基づいて、対象人物の姿勢を推定した以下では、トップダウン方法ともいう。本実施の形態では、フレーム毎の対象人物の3次元姿勢推定結果を蓄積し、蓄積した複数の推定結果から算出される関節長比を活用する方法について説明する。なお、始めに、フレーム毎の対象人物の3次元姿勢を実施の形態1で説明したボトムアップ方法を用いて推定し、以降の骨格モデル評価についてもボトムアップ方法を用いる場合について説明する。図25は、本発明の実施の形態に係る姿勢推定装置の要部構成を示すブロック図である。図25の姿勢推定装置400は、図3の姿勢推定装置110として適用される。なお、図25の本実施の形態に係る姿勢推定装置において、図5と共通する構成部分には、図5と同一の符号を付して説明を省略する。図25の姿勢推定装置400は、図5の姿勢推定装置200に対して、部位抽出部240に代えて、部位抽出部尤度マップ生成部420を備え、関節長比算出部410をさらに具備する構成を取る。関節長比算出部410は、同一の対象人物に対するフレーム毎の推定結果である3次元姿勢を複数保持し、それらを使って、対象人物の関節長比を時間幅Tで平滑化する。関節長比算出部410は、フレーム毎の推定結果である3次元姿勢を、例えば、相似骨格モデル選択部255からの出力により取得する。この場合、関節長比算出部410は、相似骨格モデル選択部255骨格モデル評価部250により対象人物の姿勢に対応する2次元の骨格モデルとして選択された相似骨格情報に対応付けられた3次元の骨格モデルから、対象人物の関節長比を算出する。なお、関節長比の平滑化方法については、後述する。関節長比算出部410は、関節長比の平滑化が完了すると、平滑化した関節長比以下、代表関節長比という及び平滑化完了通知を部位抽出部420に出力する。部位抽出部420は、部位抽出部240と同様に、人物の特徴部位としての肩の位置に基づいて、対象人物の特徴部位以外の部位が存在する確からしさを示す尤度マップを生成する。なお、部位抽出部420は、平滑化が終わったか否かを区別する平滑化完了フラグを保持している。そして、部位抽出部420は、関節長比算出部410から平滑化完了通知を受け取ると、平滑化完了フラグをOFFからONに切り替える。平滑化完了フラグがOFFの場合、部位抽出部420は、部位抽出部240と同様に、式6の平均関節長を用いて、各部位の尤度マップを生成する。これに対し、平滑化完了フラグがONの場合、部位抽出部420は、対象人物の特徴部位の位置、体の向き、及び、代表関節長比に基づいて、部位抽出部420が有する各識別器に入力する対象画像中の探索領域を制限し、制限された探索領域において尤度マップを生成する。次に、以上のように構成された姿勢推定装置400の動作について、図26の処理フローを用いて説明する。なお、図26において、図17と共通するステップには、図17と同一の符号を付して説明を省略する。最初に、S501において、関節長比算出部410は、同一の対象人物に対するフレーム毎の推定結果である3次元姿勢を複数保持し、それらを用いて、対象人物の関節長比を時間幅Tで平滑化する。ここで平滑化とは、時刻iにおける画像ファイル番号Niに対応するフレームでの対象人物の3次元姿勢の関節長比を表す関節長比ベクトルをViとすると、時間幅Tに含まれる複数の関節長比ベクトルVから、対象人物に最適な代表関節長比VAveを算出することである。ここで関節長比ベクトルとは、関節と関節を結ぶ直線の肩ライン長に対する比を要素とするベクトルであり、例えば、図14の表で示すような、左肩と右肩を結ぶ直線の関節長比、右肩と右肘を結ぶ直線の関節長比などを要素とする。以下、関節長比算出部410が、画像ファイル番号N0からN5の関節長比ベクトルから代表関節長比VAveを抽出する場合を例に説明する。平滑化の方法は、統計的処理を行ってもよいし、事前知識に基づいた分類を行ってもよい。例えば、関節長比算出部410が、平滑化の方法として統計的処理を採用する場合には、式7に示すような式を用いて平均を算出し、それを代表関節長比とすればよい。また、関節長比算出部410は、事前知識として、人体寸法データを活用して、代表関節長比VAveを抽出してもよい。例えば、関節長比算出部410は、人体の全身長や、各部位の長さを集めた人体寸法データを用いて、対象人物の関節長比を算出し、これら関節長比をデータ集合とする。関節長比算出部410は、このデータ集合を、K-Meansと呼ばれる公知技術を用いて、K個のクラスに分割することができる。関節長比算出部410は、K個に分割されたクラスごとに、そのクラスの中心となるデータを得て、そのデータを各クラスの代表例とする。代表例とは、クラスを説明する代表的な関節長比ベクトルを意味することになる。また、関節長比算出部410は、対象画像から推定した関節長比ベクトルViがどのクラスに属するか、さらにV0からV5が属するクラスのうち、最も数多くのViが属するクラスを多数決で決定してもよい。そして、関節長比算出部410は、決定したクラスに関連付けられた代表例をVAveとしてもよい。関節長比算出部410は、関節長比の平滑化が完了すると、部位抽出部420に対し、代表関節長比VAveを用いて部位抽出を行うことを許可する平滑化完了通知を出力する。部位抽出部420は、関節長比算出部410から平滑化完了通知を受け取ると、保持する平滑化完了フラグを、平滑化が完了したことを意味するONの状態に変更する。そして、平滑化完了フラグがONになると、後続のS101、S102において、対象人物の基幹骨格が検出される。次に、S502において、部位抽出部420は、保持する平滑化完了フラグがONの場合、関節長比算出部410が推定した対象人物の代表関節長比VAveに基づいて、部位抽出部420が有する各識別器に入力する対象画像中の探索領域を制限する。そして、部位抽出部420は、制限された探索領域において尤度マップを生成する。平滑化完了フラグがOFFの場合、部位抽出部420は、実施の形態1と同様に、式6を用いて算出される平均関節長を用いて、部位抽出部240と同様の処理により、部位抽出を行う。部位抽出部420による部位抽出が完了すると、S104~S106において、骨格モデル評価部250は、骨格モデルを評価することにより、姿勢を推定する。以上のように、関節長比算出部410は、相似骨格情報に対応付けられた3次元の骨格モデルから、特徴部位としての肩ライン長に対する各部位間の長さ関節長を示す関節長比を対象画像フレーム毎に算出する。そして、関節長比算出部410は、複数の対象画像にわたり関節長比を関節長毎に平滑化して代表関節長比を算出する。相似骨格情報は、上述の通り、対象人物の姿勢に対応する2次元の骨格モデルとして骨格モデル評価部250により選択された情報である。そして、部位抽出部420は、対象人物の特徴部位の位置、体の向き、及び、代表関節長比に基づいて、部位抽出部420が有する各識別器に入力する対象画像中の探索領域を制限し、制限された探索領域において尤度マップを生成する。これにより、照明変動やオクリュージョンなどの変動要因が発生し、フレーム毎に3次元姿勢の推定結果にばらつきが発生しうる状況下であっても、安定的な3次元姿勢推定が可能となる。なお、以上の説明では、関節長比算出部410は、実施の形態1で説明したボトムアップ方法を用いて推定された3次元姿勢を用いて、関節長比を算出し、以降の3次元姿勢もボトムアップ方法により推定する例を説明したが、これに限られない。例えば、関節長比算出部410は、実施の形態2で説明したトップダウン方法を用いて推定された3次元姿勢を用いて、関節長比を算出し、以降の3次元姿勢もトップダウン方法を用いて推定するようにしてもよい。以下、この場合について、説明する。図27は、本発明の実施の形態に係る別の姿勢推定装置の要部構成を示すブロック図である。なお、図27において、図23及び図25と共通する構成部分には、図23及び図25と同一の符号を付して説明を省略する。図27の姿勢推定装置500は、図23の姿勢推定装置300に対して、部位抽出部240及び骨格モデル評価部310に代えて、部位抽出部420及び骨格モデル評価部510を備える。骨格モデル評価部510は、相似骨格モデル格納部511及び相似骨格モデル選択部312を有する。なお、姿勢推定装置500において、関節長比算出部410は、得られた代表関節長比を部位抽出部420及び相似骨格モデル格納部511に出力する。相似骨格モデル格納部511は、相似骨格モデル格納部311と同様に、対象人物の肩ラインと、肩ラインが平行となるよう、あらかじめ取得しておいた3次元の骨格モデルを2次元に射影して、対応する2次元の骨格モデルを形成する。ここで、相似骨格モデル格納部511は、対象人物の代表関節長比を用いて、射影変換する3次元の骨格モデルを絞り込む。具体的には、相似骨格モデル格納部511は、関節長比が代表関節長比と一致する、3次元の骨格モデルに対してのみ2次元へ射影変換をして、対応する2次元の骨格モデルを形成する。相似骨格モデル格納部511は、形成された2次元の骨格モデルに対して、対象人物の肩ライン長と2次元の骨格モデルの肩ライン長が一致するよう、2次元の骨格モデルを伸縮させる。これにより、取得画像内の対象人物の姿勢の候補となる2次元の骨格モデルの数が絞り込まれるため、後段の相似骨格モデル選択部312におけるマッチング演算量が削減される。次に、以上のように構成された姿勢推定装置500の動作について、図28の処理フローを用いて説明する。なお、図28において、図17、図24及び図26と共通するステップについては、図17、図24及び図26と同様の符号を付し説明を省略し、異なるステップS601について説明する。S601では、相似骨格モデル格納部511は、あらかじめ取得しておいた3次元の骨格モデルのうち、関節長比が代表関節長比と一致する3次元の骨格モデル以下、代表骨格モデルを一つ選択する。そして、相似骨格モデル格納部511は、選択した代表骨格モデルに対して、基幹骨格推定部230が推定した対象人物の肩ラインと、代表骨格モデルの肩ラインとが平行になるように、射影時に用いるカメラパラメータを変更する。次に、相似骨格モデル格納部511は、対象人物の肩ライン長と、代表骨格モデルの肩ライン長との比Sを計算し、代表骨格モデルの全関節長に比Sを乗じて、代表骨格モデルを伸縮させる。その後、相似骨格モデル格納部511は、伸縮された代表骨格モデルを、変更したカメラパラメータにより2次元に射影し、2次元の骨格モデルを形成する。そして、S402に進む。以降の処理は、実施の形態2における処理と同様である。相似骨格モデル選択部312は、初期骨格モデルを射影変換することによって形勢された2次元の骨格モデルを尤度マップに重畳させるS402。そして、相似骨格モデル選択部312は、2次元の骨格モデルが尤度マップに重なる画素が保持する尤度の総和であるスコアを算出するS403。そして、相似骨格モデル選択部312は、S401において選択した代表骨格モデルとスコアとを対応付けて、尤度加算情報に記録する。上記上記尤度加算情報には、相似骨格モデル選択部312が、対象人物の全ての部位の尤度の総和であるスコアを記録する場合について説明したが、これに限らない。例えば、腕に着目して姿勢を推定する場合には、相似骨格モデル選択部312は、上半身の部位の尤度のみの総和をスコアとしたり、腕の尤度のみに重み付けを行ってスコアを算出したりしてもよい。相似骨格モデル選択部312は、尤度加算情報への記録が完了すると、S404に進む。S404では、全ての代表骨格モデルについて処理が完了していない場合、相似骨格モデル評価部310は、S401に戻って、次の代表骨格モデルに対する評価を開始する。全ての代表骨格モデルについての評価が完了した場合、S405において、相似骨格モデル選択部312は、尤度加算情報を参照して、スコアが最大の代表骨格もモデルを対象人物の姿勢であると推定する。以上のように、相似骨格モデル格納部511は、格納している3次元の骨格モデルのうち、関節長比が、代表関節長比と一致する3次元の骨格モデル代表骨格モデルに対応する2次元の骨格モデルを、対象人物の姿勢推定の候補とする。これにより、候補が絞りこまれるため、相似骨格モデル選択部312における演算量を削減することができる。なお、姿勢推定装置400の相似骨格モデル格納部254においても、相似骨格モデル格納部511と同様に、代表関節長比を用いて、射影変換する3次元の骨格モデルを絞り込むようにしてもよい。これにより、候補が絞りこまれるため、相似骨格モデル選択部255における演算量を削減することができる。なお、実施の形態1と実施の形態2とを組み合わせて活用してもよい。例えば、姿勢推定の対象となる人物を検知してから最初の数フレームは、実施の形態1で説明した方式を用い、時間幅Tを経過した段階で実施の形態2で説明した方式を用いることができる。すなわち、関節長比算出部410は、実施の形態1に係る骨格モデル評価部250により推定された対象人物の3次元姿勢を用いて、関節長比を算出し、以降の3次元姿勢は、骨格モデル評価部510により推定するようにしてもよい。また、関節長比算出部410は、実施の形態2に係る骨格モデル評価部310により推定された3次元姿勢を用いて、関節長比を算出し、以降、骨格モデル評価部250により対象人物の3次元姿勢を推定するようにしてもよい。実施の形態4実施の形態1から実施の形態3では、姿勢推定装置は、対象人物の上腕、前腕、胴体、上脚、下脚を識別する識別器を有し、前記識別器を用いて生成した部位領域情報もしくは尤度マップに基づいて、対象人物の姿勢を推定した。本実施の形態では、姿勢推定装置は、対象人物の上腕、前腕、胴体、上脚、下脚を平行な直線ペアと近似し、予め定義された平行な直線を検出する矩形フィルタを用いて作成した部位領域情報もしくは尤度マップに基づいて、対象人物の姿勢を推定する。図29は、本実施の形態に係る姿勢推定装置の要部構成を示すブロック図である。図29の姿勢推定装置600は、図3の姿勢推定装置110として適用される。なお、図29の本実施の形態に係る姿勢推定装置600において、図23と共通する構成部分には、図23と同一の符号を付して説明を省略する。図29の姿勢推定装置600は、図23の姿勢推定装置300に対して、部位抽出部240に代えて、部位抽出部尤度マップ生成部620を備え、エッジペア抽出矩形フィルタ生成部610を具備する構成を取る。エッジペア抽出矩形フィルタ生成部610は、基幹骨格推定部230により得られた対象人物の基幹骨格情報に基づき、エッジペア抽出矩形フィルタを生成する手段である。エッジペア抽出矩形フィルタは、エッジ勾配方向を一定数で量子化した各方向別で、特徴部位以外の部位毎に異なる矩形フィルタ間距離と矩形フィルタスケールを保持した平行線検出のためのフィルタである。詳細は後述する。部位抽出部620は、基幹骨格推定部230により得られた対象人物の基幹骨格情報に基づいて、エッジペア抽出矩形フィルタ生成部610で生成されたエッジペア抽出矩形フィルタ以下、単に矩形フィルタと記述を用いて、特徴部位以外の部位が存在する確からしさを示す尤度マップを生成する。詳細は後述する。次に、以上のように構成された姿勢推定装置600の動作について、図30の処理フローを用いて説明する。なお、図30において、図24と共通するステップは、図24と同一の符号を付して説明を省略する。S101において、画像格納部220に、対象人物が撮影された対象画像が格納される。S102において、基幹骨格推定部230により、対象人物の肩ラインと体の向きが推定される。S601では、エッジペア抽出矩形フィルタ生成部610は、図31Aに示すような矩形フィルタに対し、矩形フィルタスケールa及びbと矩形フィルタ間距離dを部位毎に異なる値に設定し図31C参照、かつ図32A、図32Bに示すように、エッジ勾配方向を一定数で量子化した各方向別の矩形フィルタを作成する。ここで、矩形フィルタ間距離は、矩形フィルタが保持する一対の矩形領域の間の長さで、矩形フィルタスケールは、矩形領域の縦横の辺の長さである。例えば、エッジペア抽出矩形フィルタ生成部610は、人体寸法公開データベース等を用いて予め取得した、肩幅に対する部位の長さ比及び幅の比図31C参照と、基幹骨格推定部230から得られた対象人物の肩幅を用いて、矩形フィルタスケールa及びbと矩形フィルタ間距離dを求めることができる。また、エッジペア抽出矩形フィルタ生成部610は、エッジ勾配方向を8方向で量子化し、矩形フィルタを作成する。なお、矩形フィルタスケール及び矩形フィルタ間距離は部位ごとに異なる値に設定したが、これに限らず、例えばすべての部位で共通の値に設定してもよい。このようにして、矩形フィルタの生成を完了すると、エッジペア抽出矩形フィルタ生成部610は、矩形フィルタを部位抽出部620に出力し、S602に進む。S602において、部位抽出部620は、対象画像Iに対しエッジ検出を行い、さらにエッジ強度mと勾配方向θを算出し、勾配方向別にエッジ画像を作成する。エッジ検出アルゴリズムは、例えばソーベルフィルタなどの従来公知の技術を利用することができる。また、勾配方向θは、式8-1~8-3により算出し、8方向で量子化する。なお、エッジ強度mは、式8-1、8-2、8-3により算出される。また、勾配方向別のエッジ画像は、前記エッジ検出アルゴリズムによりエッジとして検出された画素のうち、同一の勾配方向を持つ画素のみを集めた画像であり、エッジ勾配方向を8方向で量子化した場合は8枚のエッジ画像が作成される。次に、S603において、部位抽出部620は、8枚のエッジ画像それぞれに対して、積分画像を作成する。勾配方向別のエッジ画像に対する積分画像の作成方法について、図33から図36を用いて説明する。図33から図36に示すように、積分画像は、エッジ画像と同一の大きさで、各画素がエッジ画像中の特定領域Rに属するすべての画素の画素値を累積した値を持つ画像である。ここで、エッジ画像中の着目位置PCに対して、PCを通りエッジ勾配方向に平行な直線と、エッジ勾配方向に垂直な直線が画像領域端と交わる位置をそれぞれPA、PBとする。この場合、領域Rは、PAとPCを通る直線の負領域と、PBとPCを通る直線の負領域と、画像領域の重複領域を指す。具体的には、エッジ勾配方向が90degの場合、領域Rは、着目位置PCが図33に示すようなx,yの位置にある時、直線PAPCの負領域と、直線PBPCの負領域と、画像領域の重複領域となる。ここで、PAは、エッジ勾配方向に平行な直線X=xが画像領域端と交わる位置であり、PBは、エッジ勾配方向に垂直な直線Y=yが画像領域端と交わる位置である。エッジ勾配方向が0degの場合は、領域Rは90degの場合のPBと同一の位置をPA、PAと同一の位置をPBとした場合の、直線PAPCの負領域、直線PBPCの負領域及び画像領域の重複領域となる。また、エッジ勾配方向が45degの場合、領域Rは、図34に示すような着目位置PCに対しては、直線PAPCの負領域と、直線PBPCの負領域と、画像領域の重複領域となる。ここで、PAは、PCを通り傾きが1の直線と画像領域端が交わる位置であり、PBは、PCを通り傾きが-1の直線と画像領域端が交わる位置である。エッジ勾配方向が-45degの場合は、領域Rは、45degの場合のPBと同一の位置をPA、PAと同一の位置をPBとしたときの直線PAPCの負領域、直線PBPCの負領域及び画像領域の重複領域となる。また、エッジ勾配方向が22.5degの場合、領域Rは、図35に示すような着目位置PCに対しては、直線PAPCの負領域と、直線PBPCの負領域と、画像領域の重複領域となる。ここで、PAは、PCを通り傾きが1/2の直線と画像領域端が交わる位置であり、PBは、PCを通り傾きが-2の直線と画像領域端が交わる位置である。エッジ勾配方向が-67degの場合は、領域Rは、22.5degの場合のPBと同一の位置をPA、PAと同一の位置をPBとしたとき、直線PAPCの負領域、直線PBPCの負領域及び画像領域の重複領域となる。また、エッジ勾配方向が67degの場合、領域Rは、図36に示すような着目位置PCに対しては、直線PAPCの負領域と、直線PBPCの負領域と、画像領域の重複領域となる。ここで、PAは、PCを通り傾きが2の直線と画像領域端が交わる位置であり、PBは、PCを通り傾きが-1/2の直線と画像領域端が交わる位置である。エッジ勾配方向が-22.5degの場合、67degの場合のPBと同一の位置をPA、PAと同一の位置をPBとしたとき、直線PAPCの負領域、直線PBPC及び画像領域の重複領域となる。以上のように計算することで、部位抽出部620は、勾配方向別のエッジ画像に対応する積分画像を作成する。次に、S604において、部位抽出部620は、S601で生成した矩形フィルタとS603で作成したエッジ勾配方向別の積分画像を用いて、対象人物の部位の形状を近似した平行線を検出し、併せて矩形フィルタ内にあるエッジ画素の累積画素値の積を平行線らしさとして求め、部位毎の尤度マップを作成する。矩形フィルタと勾配方向別の積分画像を用いた部位毎の平行線検出及び尤度マップ算出方法について図37から図42を用いて説明する。まず始めに図37を用いて、基幹骨格推定部230で求めた基幹骨格情報を基に、部位抽出部620が、上腕、前腕、胴体、上脚、下脚を検出する画像領域371中の初期位置と探索範囲を設定する方法を説明する。部位抽出部620は、上腕及び前腕の初期位置として、基幹骨格情報における右肩関節位置PRS及び左肩関節位置PLSと用い、胴体の初期位置として、左右肩関節位置の中点PMを用いる。また部位抽出部620は、上脚及び下脚の初期位置は、胴体の初期位置と胴体領域の重心との差を2倍し、胴体の初期位置に加えた位置を用いる。なお、部位抽出部620は、初期位置は前記位置に限らず、例えば基幹骨格情報に含まれる胴体領域の重心x,yとスケールV,Hを用いて、x±V/2,y-H/2を上腕の初期位置、x,y-H/2を胴体の初期位置、x±V/2,yH/2を上脚及び下脚の初期位置として適用することができる。部位抽出部620は、部位を検出する初期位置を始点とし、部位の可動域を考慮した円弧領域を、探索範囲として用いる。具体的には、部位抽出部620は、例えば角度θ1で半径d1の円弧領域を左上腕の探索範囲とし、角度θ2で半径d2の円弧領域を左前腕の探索範囲として設定する。部位抽出部620は、人体寸法公開データベース等を用いて予め定義した肩幅に対する部位の長さ比を用い、基幹骨格推定部230で得られた肩幅と長さ比をかけ合わせた値として半径d1及び半径d2を求めることができる。また、上腕よりも前腕、上脚よりも下脚の方が可動域として広くなるため、部位抽出部620は、角度θ1<角度θ2となるように設定する。同様の方法により、部位抽出部620は、上脚及び下脚の探索範囲を設定し、また胴体の場合には上脚と上腕と同様の方法により探索範囲を設定する。以上のような処理を行うことで、部位抽出部620は、部位を検出する初期位置と探索範囲を設定することができる。次に、図38及び図39を用いて、前記方法により設定した探索範囲内で、矩形フィルタと勾配方向別の積分画像を用いた平行線検出と尤度マップ算出を行う処理について説明する。図38は、左上腕の探索範囲内の点PLS1においてエッジ勾配方向が90degの矩形フィルタを適用した様子を示している。部位抽出部620は、矩形フィルタ内のエッジ画素の累積画素値Sa、Sbを式9-1、9-2により計算し、その積LPLS1以下、尤度と記述を式10を用いて計算することで平行線を検出する。式9-1、9-2は、勾配方向別の積分画像を用いて矩形フィルタ内のエッジ画素の累積値を求める計算である。式9-1、9-2では、図38に示すように矩形フィルタと同じ勾配方向のエッジが集まっている場合、すなわち矩形フィルタと部位の直線が平行の場合に、値が大きくなる。また、式9-1、9-2は、矩形フィルタ内のエッジ画素の累積値の積を求める計算である。式9-1、9-2は、PLS1を中心にした部位の平行線上に矩形フィルタが掛かっている場合に、値が大きくなる性質を持つ。さらに、図40及び図41を用いて、左上腕の探索範囲内の点PLS1においてエッジ勾配方向が67degの矩形フィルタを適用した場合について説明する。この場合、部位抽出部620は、式11-1、11-2を用いて矩形フィルタ内のエッジ画素の累積画素値S1a、S1bを計算し、式12を用いて尤度LPLS1を計算することで平行線を検出する。図40においては、矩形フィルタと同じ勾配方向のエッジが存在しないため、前記した積分画像を用いた累積値の算出式と尤度の算出式の性質により、矩形フィルタの累積値及び尤度の値は0となる。部位抽出部620は、左上腕の探索範囲内の点PLS1において、エッジ勾配方向が90deg及び67deg以外の矩形フィルタを適用し、累積値と尤度の計算を繰り返し行い、PLS1に対する平行線の検出と尤度算出処理を終了する。また、図42を用いて、左上腕の探索範囲内の点PLS2においてエッジ勾配方向が90degの矩形フィルタを適用した場合の処理について説明する。この場合、矩形フィルタと同じ勾配方向のエッジが存在しないため、式9-1、9-2及び式10を用いて算出した尤度は0となる。このように、探索範囲内に対象人物の部位が存在し、矩形フィルタと同じ勾配方向のエッジが集まっている場合は尤度が高く、矩形フィルタと同じ交配方向のエッジが存在しない場合には尤度が低くなる。このため、部位とそれ以外とを区別することができ、対象人物の部位を確実に検出できる。部位抽出部620は、以上の処理を、左上腕以外のすべての部位に対して適用することで、各画素は式10もしくは式12により求めた値を持ち、部位毎でかつ勾配方向別に分けられた尤度マップを作成することができる。なお、前腕及び下脚に対し矩形フィルタを適用して尤度を算出した場合は、求めた尤度に探索範囲内で初期位置からの距離に比例して大きくなるような重みを掛けあわせた値としてもよい。次に、S605において、部位抽出部620は、部位毎でかつ勾配方向別に分けられた尤度マップを統合した尤度マップを作成する。始めに、部位抽出部620は、各部位の勾配方向別に分けられた8個の尤度マップに対して、画素毎に尤度の値を比較し、最も高い尤度を代表値として新たな尤度マップに割り当てる。これにより、部位抽出部620は、勾配方向別に分けられた尤度マップを統合した部位毎の代表尤度マップを作成する。そして、部位抽出部620は、部位毎の代表尤度マップに対して、画素毎に尤度の値を比較し、最も高い尤度を代表値として新たな尤度マップに割り当てる。これにより、部位抽出部620は、部位毎に分けられた代表尤度マップを統合した相似骨格モデル選択部312に出力するための尤度マップを一つ作成する事ができる。以上のような処理により、部位抽出部620は、部位が存在する確からしさを示す尤度マップを作成し、作成した尤度マップを相似骨格モデル選択部312に出力する。部位抽出部620による部位抽出が完了すると、S401からS406において、相似骨格モデル格納部311及び相似骨格モデル選択部312は、相似骨格モデルの評価を行い、姿勢を推定する。以上のように、部位抽出部620は、入力画像に対してエッジ検出を行い、エッジの勾配方向別に積分画像を作成する。また、部位抽出部620は、予め定義された平行な直線を検出する矩形フィルタと積分画像を併用し、矩形フィルタ内のエッジ画素の累積値と累積値同士の積を求め、尤度マップを作成する。これにより、部位抽出部620は、人体部位のような人工物と比べてエッジが検出しにくい場合においても、部位を近似した平行線を安定的にかつ高速に検出し尤度マップを作成することができる。これにより、不正確な尤度マップによる姿勢推定誤りを軽減することが可能となる。以下、さらに凹凸マップを用いて姿勢推定を行う例を、本発明の実施の形態5~実施の形態7として説明する。実施の形態5本発明の実施の形態5は、実施の形態1に係る姿勢推定装置において、接続する部位の線が平行で部位位置が算出できない場合に、凹凸マップを用いて関節位置を推定する例である。図43は、本実施の形態に係る姿勢推定装置の要部構成を示すブロック図である。図43の姿勢推定装置200aは、実施の形態1の図5の姿勢推定装置200として適用される。なお、図43の本実施の形態に係る姿勢推定装置200aにおいて、図5と共通する構成部分には、図5と同一の符号を付して説明を省略する。図43の姿勢推定装置200aは、骨格モデル評価部250において、骨格推定部251に代えて骨格推定部251aを具備し、凹凸マップ生成部145aおよび関節位置推定部166aをさらに具備する構成を取る。骨格推定部251aは、部位領域情報と、部位の直線情報と、画像データと、推定の対象となる関節位置の識別情報とを、凹凸マップ生成部145aへ出力する。ここで、推定の対象となる関節位置とは、例えば、部位位置を推定することができなかった部位の関節位置である。また、骨格推定部251aは、後述の関節位置推定部166aから推定関節位置を入力されると、入力された推定関節位置を、関節位置の推定結果として採用する。凹凸マップ生成部145aは、各部位の凹凸マップを生成する。より具体的には、凹凸マップ生成部145aは、骨格推定部251aから、推定尤度マップと、部位の直線情報と、画像データと、推定の対象となる関節位置の識別情報とを入力する。そして、凹凸マップ生成部145aは、受け取った情報に基づいて凹凸マップを生成し、生成した凹凸マップと、部位の直線情報と、推定の対象となる関節位置の識別情報とを、関節位置推定部166aへ出力する。凹凸マップの生成手法の詳細については、後述する。関節位置推定部166aは、入力された凹凸マップから、関節位置を推定する。より具体的には、関節位置推定部166aは、凹凸マップおよび部位の直線情報から、推定の対象となる関節位置を求め、求めた関節位置つまり推定関節位置とその関節の識別子とを、骨格推定部251aへ出力する。関節位置の推定手法の詳細については、後述する。まず、凹凸マップについて説明する。凹凸マップとは、画像を、画像に映し出された被写体の面を凹凸で区分したマップである。凹凸マップ生成部145aは、画像上の部位の明るさ情報から部位の面の向きを推定する。関節位置推定部166aは、凹凸マップが示す面が等しい1つの領域を、1つの部位の領域と推定することにより、関節位置の推定を行う。ここで、明るさとは、例えば、輝度のレベルであり、明るさ情報とは、輝度または輝度のレベルを示す情報である。図44は、人の姿勢と各部位の明るさとの関係を説明するための図である。図44Aに示す第1の姿勢と図44Bに示す第2の姿勢は、異なる姿勢であるにもかかわらず、図44Cに示すように、正面から見たときのシルエットが同一であるとする。この場合、正面画像のエッジからなる領域情報からだけでは、対象人物の姿勢が第1の姿勢であるか第2の姿勢であるかを、正しく推定することができない。例えば、図44Cに示すシルエットから、右腕の長さが左腕の長さよりも短いことが分かるため、右肘が曲がっている可能性が高いことが推測できる。ところが、身体制約を満たす曲げ方には、バリエーションがある。また、図44Aや図44Bに示すように、右腕全体の角度にもバリエーションがある。また、例えば、図44Cに示すシルエットから、左脚の長さが左腕の長さよりも短いことが分かるため、左膝が曲がって可能性があることが推測できる。ところが、図44Aや図44Bに示すように、左膝が曲がっている場合と伸びている場合とがあり得る。上腕と前腕との区切りや膝上と膝下との区切りの位置つまり関節を推定することができれば、対象人物の姿勢が上述のバリエーションのどれなのかを推定することができる。ところが、図44Cのように腕や脚が直線に見える姿勢の場合、エッジからなる領域情報からだけでは、身体制約を用いたとしても、かかる区切りの位置を推定することは難しい。そこで、このような領域情報だけからでは関節位置が特定できない姿勢に対応するため、姿勢推定装置200aは、領域情報に加えて、明るさ情報を用いて部位領域を推定する。図44Dは、上からの自然光を光源とするときの、第1の姿勢を正面から撮影した場合の各部位の明るさを、濃度で示す図である。図44Eは、上からの自然光を光源とするときの、第2の姿勢を正面から撮影した場合の各部位の明るさを、濃度で示す図である。ここでは、濃度が高いほど、明るさがより低いより暗いことを示す。また、明るさとして、暗い方のレベルから順に、-2,-1,0,1,2の5段階のレベルが定義されているものとする。レベル0は、例えば、地面に対して垂直方向の面の明るさのレベルである。画像の各領域の明るさレベルは、より上を向いている面の領域ほど明るくなり、逆に、より下を向いている面の領域ほど暗くなる。例えば、図44のDおよび図44のEに示すように、第1および第2の姿勢の両方において、頭、胴、左腕の領域は、レベル0となり、右脚の領域は、やや暗いレベル-1となる。第1の姿勢においては、右上腕は垂直に降ろされ、右前腕は前に伸びているため、図44のDに示すように、右上腕の領域はレベル0となり、右前腕の領域はレベル2となる。これに対し、第2の姿勢においては、右上腕は後に引かれ、右前腕は下に向いているため、図44Eに示すように、右上腕の領域はレベル-2となり、右前腕の領域はレベル2となる。また、第1の姿勢においては、左足は全体は前に伸びているため、図44のDに示すように、左膝上および左膝下の領域はレベル1となる。これに対し、第2の姿勢においては、左大腿は上に上げられ、左膝は後ろに向いているため、図44Eに示すよに、左大腿の領域はレベル2となり、左膝の領域はレベル-2となる。このように、各部位は、同じ明るさの面として捉えることができる。したがって、画像上の部位の明るさ情報から、部位の面の向きを推定し、さらに、この部位の面の向きが変わった位置を、関節位置と推測することができる。すなわち、明るさ情報を用いることにより、領域情報から得られる角度が等しい部位シルエットが直線状に伸びた連続する複数の部位、部位の直線が平行な複数の部位間であっても、関節位置を推定することが可能となる。次に、以上のように構成された姿勢推定装置200aの動作について、図45の処理フローを用いて説明する。なお、図45において、実施の形態1の図17と共通するステップは、図17と同一の符号を付して説明を省略する。S104において、骨格推定部251aは、部位領域情報に基づく対象人物の骨格の推定を行うと、S1750aへ進む。S1750において、骨格推定部251aは、関節が計算できなかった部位がなかったか調べる。骨格推定部251aは、関節が計算できなかった部位がなければS105へ進み、関節が計算できなかった部位があればS1755aへ進む。S1755aにおいて、凹凸マップ生成部145aは、S103で推定した部位領域とS101で取得した画像データとから、凹凸マップを生成する。ここで、凹凸マップの生成手法の詳細について説明する。図46は、凹凸マップ生成処理の処理フローを示す図である。凹凸マップ生成処理は、図45のS1755aで実行される。凹凸マップの画素毎の情報は、例えば、部位kの尤度をpkと表し、部位がn個存在する場合には、凹凸ベクトルOij=[p1,p2,...,pk,...,pn]というデータ構造となる。pkは2値情報であり、pkの値は、例えば、部位kである可能性が無いことを示す0、および、部位kである可能性があることを示す1のいずれかを取る。S3100aにおいて、凹凸マップ生成部145aは、処理の対象となる部位を1つ選択する。本実施の形態では、推定の対象となる関節位置が、右肘であるものとする。この場合、凹凸マップ生成部145aは、右腕を凹凸マップ生成処理の対象とし、まず、基幹部位から一番離れた右前腕を選択する。そして、S3200aにおいて、凹凸マップ生成部145aは、S1200で生成された推定尤度マップから、S3100aで選択した部位の領域以後、部位尤度領域とよぶを取得する。ここでは、推定尤度マップ上の右前腕の尤度が所定の閾値を超える画素を抽出し、右前腕の部位尤度領域とする。そして、S3300aにおいて、凹凸マップ生成部145aは、S1100で取得された画像データから、S3200aで抽出した部位尤度領域の、明るさ情報を抽出する。明るさ情報は、例えば、画像データを構成する各画素のRGB値から輝度画素の明るさのみを抽出したグレースケール白黒階調の画像へと変換することにより、抽出することができる。そして、S3400aにおいて、凹凸マップ生成部145aは、S3300aで求めた部位尤度領域の明るさ情報を、明るさの閾値を用いてグルーピングする。凹凸マップ生成部145aは、は、明るさの閾値を、あらかじめ設定された固定値としてもよいし、動的に設定してもよい。ここでは、閾値を動的に設定する手法の一例について説明する。図47は、右前腕の身体制約を用いたエリア分類の手法を説明するための図である。説明を簡略化するために、胴には右腕しかないものとして説明する。S1200で、推定された右肩位置500aを基準として、頭肩領域とこれに接続する胴領域501aが推定される。この場合、右上腕と右前腕が存在可能な領域は、領域502aのようになり、右前腕のみ存在可能な領域は、領域503aのようになる。領域502a、503aは、図9に示す部位領域及び部位領域情報から算出することができる。凹凸マップ生成部145aは、まず、右前腕の部位尤度領域のうち、右前腕のみ存在可能な領域503aから、当該領域に存在する画素の輝度値明るさ情報を抽出する。そして、凹凸マップ生成部145aは、対象画素の総数mのaをn個とすると、抽出した輝度値のデータから、小さいものから順にn個と、大きいものから順にn個とを除く。さらに、凹凸マップ生成部145aは、これら2n個のデータを除いた後のデータデータの数はm-2nの最小値および最大値を、右前腕の明るさ情報の閾値右前腕として扱う輝度値の範囲の上限値と下限値とする。ここで、aは、あらかじめ設定された値である。そして、凹凸マップ生成部145aは、例えば、右前腕の部位尤度領域のうち、この閾値に当てはまるつまり、右前腕として扱う輝度値の範囲内である画素の凹凸ベクトルOijのうち、右前腕を示す値に、右前腕である可能性があることを示す値例えば1を設定する。このように、凹凸マップ生成部145aは、身体制約により右前腕しか存在しない部位尤度領域の明るさ情報のみを用いて、輝度値の閾値を設定する。これにより、凹凸マップ生成部145aは、他の部位の影響を受けずに、右前腕の明るさ情報を持つ画素を特定することができる。次に、凹凸マップ生成部145aは、右前腕の部位尤度領域のうち、右上腕と右前腕のみ存在可能な領域502aから、画素の輝度値明るさ情報を抽出する。そして、凹凸マップ生成部145aは、抽出した輝度値のデータの中から、前ステップで求めた右前腕の明るさ情報の閾値に当てはまるものを削除する。そして、凹凸マップ生成部145aは、残った輝度値のデータの総数pのbをq個とすると、抽出した輝度値のデータから、小さいものから順にq個と、大きいものから順にq個とを除く。さらに、凹凸マップ生成部145aは、これら2q個のデータを除いた後のデータデータの数はp-2qの最小値および最大値を、右上腕の明るさ情報の閾値右前腕として扱う輝度値の範囲の上限値と下限値とする。ここで、bの値は、あらかじめ設定された値である。そして、凹凸マップ生成部145aは、例えば、右前腕の部位尤度領域のうち、この閾値に当てはまるつまり、右上腕として扱う輝度値の範囲内である画素の凹凸ベクトルOijの、右上腕を示す値に、右上腕である可能性があることを示す値例えば1を設定する。このように、凹凸マップ生成部145aは、身体制約により右上腕と右前腕しか存在しない部位尤度領域の明るさ情報のデータから、右前腕として扱う輝度値の範囲内のデータを除いて閾値を設定する。これにより、凹凸マップ生成部145aは、他の部位の影響を受けずに右上腕の明るさ情報を持つ画素を特定し、右上腕の明るさ情報を持つ画素を精度良く特定することができる。このように、凹凸マップ生成部145aは、基幹部位から離れた部位から順に、その部位だけ存在する領域の明るさ情報を用いて明るさ情報の閾値を設定していき、部位ごとの明るさ情報をグルーピングして領域を推定する。なお、右前腕のみ存在可能な領域503aに、右前腕の部位尤度領域がない場合もあり得る。このような場合、凹凸マップ生成部145aは、例えば、右前腕と右上腕の部位尤度領域のうち、右上腕と右前腕のみ存在可能な領域502aに存在する画素の輝度情報を抽出し、右前腕と右上腕の2グループに分類する処理を行ってもよい。そして、凹凸マップ生成部145aは、例えば、大津の2値化を用いて、上述の閾値を設定する。これにより、凹凸マップ生成部145aは、右前腕のみ存在可能な領域503aに右前腕の部位尤度領域がない場合にも、右上腕と右前腕の明るさ情報の閾値を設定することができる。また、右前腕のみ存在可能な領域503aで右前腕の明るさ情報を設定した後、右上腕と右前腕のみ存在可能な領域502aにもかかわらず、右前腕と異なる明るさ情報の画素がないために、右前腕と異なる閾値が設定できない場合もあり得る。このような場合、凹凸マップ生成部145aは、例えば、右上腕の明るさ情報に対して、右前腕と同じ値を設定してもよい。これにより、凹凸マップ生成部145aは、右上腕と右前腕の面の向きが似ている場合真っ直ぐに伸びている場合にも、右上腕の明るさ情報を設定することができる。図46のS3500aにおいて、凹凸マップ生成部145aは、凹凸マップ生成処理の対象となる部位の全てについて処理したかを判断する。例えば、左腕に関しても凹凸マップを生成する場合には、凹凸マップ生成部145aは、S3100aに戻り、左腕に関して、右腕と同様の処理を行う。以上で、凹凸マップの生成手法の詳細についての説明を終える。凹凸マップ生成部145aは、生成した凹凸マップと、部位の直線情報と、推定の対象となる関節位置の識別情報とを、関節位置推定部166aへ出力する。図45のS1760aにおいて、関節位置推定部166aは、関節位置を推定する。具体的には、関節位置推定部166aは、例えば、右上腕と右前腕の部位の直線の始点から終点に向かって、順番に、部位軸上の画素位置の凹凸マップの値を参照する。そして、関節位置推定部166aは、凹凸マップの値が変化した画素の位置を、関節位置として抽出する。該当する画素が複数ある場合には、関節位置推定部166aは、中央の位置を関節位置として出力してもよい。そして、関節位置推定部166aは、求めた関節位置つまり推定関節位置と、その関節の識別子とを、骨格推定部251aへ出力する。骨格推定部251aは、入力された推定関節位置により、推定することができなかった部位の位置を取得する。以上のような処理により、姿勢推定装置200aは、部位の直線の角度が同じ場合には、凹凸マップを用いて関節位置を推定することができる。このように、本実施の形態に係る姿勢推定装置200aは、凹凸マップを生成し、凹凸マップに基づいて各関節の位置を推定するので、部位の直線の角度が同じであり接続する部位の線が並行であるような場合であっても、その姿勢を推定することができる。実施の形態6本発明の実施の形態6は、実施の形態2に係る姿勢推定装置において、2次元骨格モデルでは姿勢の違いを判別することができない場合に、凹凸マップを用いて骨格モデルを特定する例である。異なる姿勢が、3次元骨格モデルでは異なっていても、2次元骨格モデルにおいて同一となり得ることは、実施の形態5の図44で説明した通りである。図48は、本実施の形態に係る姿勢推定装置の要部構成を示すブロック図である。図48の姿勢推定装置300aは、実施の形態2の図23の姿勢推定装置300として適用される。なお、図48の本実施の形態に係る姿勢推定装置300aにおいて、図23と共通する構成部分には、図23と同一の符号を付して説明を省略する。図48の姿勢推定装置300aは、骨格モデル評価部310において、相似骨格モデル選択部312に代えて相似骨格モデル選択部312aを具備し、凹凸マップ生成部145aおよび相似骨格モデル推定部167aをさらに具備する構成を取る。相似骨格モデル選択部312aは、画像データと、部位抽出部240で抽出された尤度マップと、相似骨格モデル格納部311が格納する骨格モデル記述情報のうち特定の骨格モデル記述情報とを、凹凸マップ生成部145aへ出力する。凹凸マップ生成部145aは、実施の形態5の凹凸マップ生成部145aと同じ処理を行い、生成した凹凸マップと、部位の直線情報と、推定の対象となる関節位置の識別情報とを、相似骨格モデル推定部167aへ出力する。相似骨格モデル推定部167aは、凹凸マップに骨格モデルを重畳し、骨格モデル毎に、凹凸マップが示す各部位の位置と骨格モデルが示す各部位の位置とのマッチングの度合を、スコアとして算出する。そして、相似骨格モデル推定部167aは、最も高いスコアを出力する骨格モデルを、対象人物の姿勢に対応する2次元の骨格モデルとして選択する。図49は、姿勢推定装置300aの処理フローを示す図である。なお、図49において、実施の形態2の図24と共通するステップは、図24と同一の符号を付して説明を省略する。S404の後、S1751aにおいて、相似骨格モデル選択部312aは、加算スコアが所定の閾値以上の骨格モデルが複数あったか否かを判断する。相似骨格モデル選択部312aは、加算スコアの高い骨格モデルが複数なかった場合、S405へ進み、加算スコアの高い骨格モデルが複数あった場合、S1755aへ進む。S1755aにおいて、凹凸マップ生成部145aは、凹凸マップ生成部145aは、相似骨格モデル選択部312aから、画像データと、尤度マップと、選択された骨格モデル記述情報とを入力する。ここで、実施の形態4で入力とした、部位領域情報、部位の直線情報、画像データ、および推定の対象となる関節位置の識別情報は、骨格モデル記述情報から取得するものとする。そして、凹凸マップ生成部145aは、入力した情報から凹凸マップを生成し、生成した凹凸マップと、骨格モデル記述情報とを、相似骨格モデル推定部167aへ出力する。この凹凸マップの生成処理は、実施の形態4で説明した凹凸マップの生成処理と同様である。そして、S1761aにおいて、相似骨格モデル推定部167aは、凹凸マップに骨格モデルを1つ重畳する。重畳の手法は、骨格モデルと尤度マップの重畳手法と同様である。そして、S1762aにおいて、相似骨格モデル推定部167aは、重畳した骨格モデルと凹凸マップとの間のマッチングスコアを算出する。このマッチングの手法は、骨格モデルと尤度マップとのマッチング手法と同様である。そして、S1763aにおいて、相似骨格モデル推定部167aは、指定された選択された骨格モデルの数だけ処理を行ったか否かを判断する。未処理の骨格モデルがあれば、S1761aへ戻って未処理の骨格モデルについて処理を繰り返し、指定された骨格モデルのスコアが全て算出されれば、S405へ進む。この際、相似骨格モデル推定部167aは、最も高いスコアを出力する骨格モデルを、対象人物の姿勢に対応する2次元の骨格モデルとして選択し、その選択結果を出力する。このように、本実施の形態に係る姿勢推定装置200aは、凹凸マップを用いることにより、エッジを用いた2次元の尤度マップでは類似の結果となってしまう異なる姿勢を区別し、姿勢推定をより精度良く行うことができる。実施の形態7実施の形態7は、実施の形態4に係る姿勢推定装置において、2次元骨格モデルでは姿勢の違いを判別することができない場合に、凹凸マップを用いて骨格モデルを特定する例である。図50は、本実施の形態に係る姿勢推定装置の要部構成をしめすブロック図である。図50の姿勢推定装置600aは、実施の形態4の図29の姿勢推定装置600として適用される。なお、図50の本実施の形態に係る姿勢推定装置600aにおいて、図29と共通する構成部分には、図29と同一の符号を付して説明を省略する。図50の姿勢推定装置600aは、骨格評価モデル部310において、相似骨格モデル選択部312に代えて相似骨格モデル選択部312aを具備し、凹凸マップ生成部145aおよび相似骨格モデル推定部167aをさらに具備する構成を取る。相似骨格モデル選択部312a、凹凸マップ生成部145a、および相似骨格モデル推定部167aは、それぞれ、実施の形態6と同じ処理を行う。図51は、姿勢推定装置600aの処理フローを示す図である。なお、図51において、実施の形態4の図30と共通するステップは、図24と同一の符号を付して説明を省略する。図51に示すように、姿勢推定装置600aは、S404の後、実施の形態6の図49で説明したS1751a~S1763aの処理を行い、S405へ進む。すなわち、姿勢推定装置600aは、加算スコアの高い骨格モデルの中から、凹凸マップとのマッチングスコアが最も高いものを、対象人物の姿勢に対応する2次元の骨格モデルとして選択する。このように、本実施の形態に係る姿勢推定装置600aは、矩形フィルタを用いる場合においても、凹凸マップを用いることにより、エッジを用いた2次元の尤度マップでは類似の結果となってしまう異なる姿勢を区別して姿勢推定を行うことができる。2010年10月8日出願の特願2010-228730の日本出願および2011年3月2日出願の特願2011-45492の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。"