(57)【要約】  関節を有する物体の姿勢状態を高精度に推定することができる姿勢状態推定装置。姿勢状態推定装置（１００）は、関節により接続された複数の部位を有する物体を撮影した画像データに基づいて物体の姿勢状態の推定を行う装置であって、画像データから、少なくとも２つ以上の部位について、各部位が位置することの尤もらしさの分布を示す尤度マップを生成する尤度マップ生成部（１５０）と、姿勢状態に予め対応付けられた尤度マップである学習尤度マップと、画像データに基づいて生成された尤度マップである推定尤度マップとの一致度が高いとき、その学習尤度マップと対応付けられた姿勢状態を、物体の姿勢状態として推定する姿勢状態推定部（１６０）とを有する。
2012077287.tif 000002
【特許請求の範囲】
【請求項１】
関節により接続された複数の部位を有する物体を撮影した画像データに基づいて前記物体の姿勢状態の推定を行う姿勢状態推定装置であって、
前記画像データから、少なくとも２つ以上の前記部位について、各部位が位置することの尤もらしさの分布を示す尤度マップを生成する尤度マップ生成部と、
前記姿勢状態に予め対応付けられた前記尤度マップである学習尤度マップと、前記画像データに基づいて生成された前記尤度マップである推定尤度マップとの一致度が高いとき、当該学習尤度マップと対応付けられた前記姿勢状態を、前記物体の姿勢状態として推定する姿勢状態推定部と、を有する、
姿勢状態推定装置。
【請求項２】
前記尤度マップは、少なくとも、前記部位が位置することの画素毎の尤度値を前記部位毎に示す情報であり、
前記姿勢状態推定部は、
対応する前記画素毎および前記部位毎の前記尤度値の一致度がより高いほど、学習尤度マップと前記推定尤度マップとの一致度がより高いと判定する、
請求項１記載の姿勢状態推定装置。
【請求項３】
前記姿勢状態推定部は、
前記推定尤度マップを拡大、縮小、平行移動、もしくは回転、またはこれらの組み合わせにより変換した情報と、前記学習尤度マップとの一致度が高いとき、学習尤度マップと前記推定尤度マップとの一致度が高いと判定する、
請求項１記載の姿勢状態推定装置。
【請求項４】
前記少なくとも２つの部位について、前記画像データにおける各部位の可動範囲を、その部位の部位領域として推定する部位領域推定部、を更に有し、
前記尤度マップ生成部は、
前記部位領域以外の領域については、前記部位領域に対応する前記部位が位置することの尤もらしさを低くした前記推定尤度マップを生成する、
請求項１記載の姿勢状態推定装置。
【請求項５】
前記物体は人であり、
前記部位領域推定部は、
前記画像データから前記人の頭部および肩部の位置および向きを検出し、これらの位置および向きから、前記部位領域を推定する、
請求項４記載の姿勢状態推定装置。
【請求項６】
前記推定の対象となる前記姿勢状態の指定を受け付ける姿勢状態指定部、を更に有し、
前記姿勢状態推定部は、
前記推定の対象として指定された前記姿勢状態に対応付けられた前記学習尤度マップと前記推定尤度マップとの一致度が高いとき、前記物体の姿勢状態が指定された前記姿勢状態である旨の通知を行う、
請求項１記載の姿勢状態推定装置。
【請求項７】
前記姿勢状態指定部は、
前記学習尤度マップの生成の指示と、前記生成の対象となる前記姿勢状態の指定とを受け付け、
前記尤度マップ生成部は、
前記学習尤度マップの生成が指示されたとき、所定の画像に基づいて前記学習尤度マップを生成し、
生成された前記学習尤度マップを、指定された前記姿勢状態に対応付けて格納する姿勢状態管理部、を更に有する、
請求項６記載の姿勢状態推定装置。
【請求項８】
前記姿勢状態指定部は、
２つ以上の前記部位の指定を更に受け付け、
指定された前記２つ以上の前記部位について、前記所定の画像における各部位の可動範囲を、その部位の部位領域として推定する部位領域推定部、を更に有し、
前記尤度マップ生成部は、
前記部位領域以外の領域については、前記部位領域に対応する前記部位が位置することの尤もらしさを低くした前記学習尤度マップを生成する、
請求項７記載の姿勢状態推定装置。
【請求項９】
前記尤度マップ生成部は、
前記画像データに含まれる平行線に基づいて、前記尤度マップを生成し、
前記姿勢状態推定部は、
前記平行線から取得される前記推定尤度マップの主要なエッジ方向と、前記学習尤度マップの主要なエッジ方向とを用いて、一致度を算出する、
請求項１記載の姿勢状態推定装置。
【請求項１０】
前記画像データの画像における被写体の面を凹凸で区分したマップである凹凸マップを生成する凹凸マップ推定部、を更に有し、
前記姿勢状態推定部は、
更に、前記姿勢状態に予め対応付けられた前記凹凸マップである学習凹凸マップと、前記画像データに基づいて生成された前記凹凸マップである推定尤度マップとの一致度に基づいて、前記物体の姿勢状態を推定する、
請求項１記載の姿勢状態推定装置。
【請求項１１】
関節により接続された複数の部位を有する物体を撮影した画像データに基づいて前記物体の姿勢状態の推定を行う姿勢状態推定方法であって、
前記画像データから、少なくとも２つ以上の前記部位について、各部位が位置することの尤もらしさの分布を示す尤度マップを生成するステップと、
前記姿勢状態に予め対応付けられた前記尤度マップである学習尤度マップと、前記画像データに基づいて生成された前記尤度マップである推定尤度マップとの一致度を判定するステップと、
前記一致度が高いとき、当該学習尤度マップと対応付けられた前記姿勢状態を、前記物体の姿勢状態として推定するステップと、を有する、
姿勢状態推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関節により接続された複数の部位を有する物体を撮影した画像データに基づいて物体の姿勢状態を推定する姿勢状態推定装置および姿勢状態推定方法に関する。
【背景技術】
【０００２】
近年、撮影された動画像の画像データに基づく人の姿勢推定に関する研究が、盛んに行われている。なぜなら、動画像から人の行動をコンピュータ解析により判定することができれば、各種の分野において行われている行動解析を、人手に頼らずに行うことが可能となるからである。行動解析としては、例えば、街頭での異常行動検知、店舗での購買行動分析、工場における作業効率化支援、およびスポーツにおけるフォーム指導が挙げられる。【０００３】
そこで、単眼カメラにより撮影された画像データに基づいて、人の姿勢状態を推定する技術が、例えば非特許文献１に記載されている。非特許文献１に記載の技術（以下「従来技術」という）は、画像データから人のシルエット（外形）を検出し、そのシルエットから、形状特徴量の１つであるＳｈａｐｅＣｏｎｔｅｘｔヒストグラムを抽出する。そして、従来技術は、抽出したヒストグラムの分散共分散行列を入力として、識別すべき動作の姿勢毎に識別器を構成する。これにより、従来技術は、人の位置や向きによらずに人の姿勢状態を推定する事ができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】下坂正倫、佐藤真、森武俊、佐藤知正、「単眼画像からの形状特徴を用いた動作認識法」、全国大会講演論文集  第７０回平成２０年（５）、社団法人情報処理学会、２００８年３月１３日、ｐ．５−９３、ｐ．５−９４、
【非特許文献２】P. Viola and M. Jones, "Rapid Object Detection Using a Boosted Cascade of Simple Features," in Proc. of CVPR, vol.1, December, 2001, ppp.511-518
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術は、シルエットが類似する複数の姿勢状態を区別することができないため、人の姿勢状態を高精度に推定することができないという課題がある。例えば、カメラから見て人の胴体の外形に両腕が収まっている場合を想定する。この場合、従来技術によれば、腕を縮めているか伸ばしているかによらず、また、腕が前に位置するか後ろに位置するかによらず、他の頭部や足の外形を含めた全体の外形が同じであれば、推定結果は同一の姿勢状態となってしまう。【０００６】
また、従来技術を用いて、ロボット等の、関節により接続された複数の部位を有する各種の人以外の物体についてもその姿勢状態を推定することが考えられるが、同様の問題が起こり得る。【０００７】
本発明の目的は、関節を有する物体の姿勢状態を高精度に推定することができる姿勢状態推定装置および姿勢状態推定方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明の姿勢状態推定装置は、関節により接続された複数の部位を有する物体を撮影した画像データに基づいて前記物体の姿勢状態の推定を行う姿勢状態推定装置であって、前記画像データから、少なくとも２つ以上の前記部位について、各部位が位置することの尤もらしさの分布を示す尤度マップを生成する尤度マップ生成部と、前記姿勢状態に予め対応付けられた前記尤度マップである学習尤度マップと、前記画像データに基づいて生成された前記尤度マップである推定尤度マップとの一致度が高いとき、当該学習尤度マップと対応付けられた前記姿勢状態を、前記物体の姿勢状態として推定する姿勢状態推定部とを有する。【０００９】
本発明の姿勢状態推定方法は、関節により接続された複数の部位を有する物体を撮影した画像データに基づいて前記物体の姿勢状態の推定を行う姿勢状態推定方法であって、前記画像データから、少なくとも２つ以上の前記部位について、各部位が位置することの尤もらしさの分布を示す尤度マップを生成するステップと、前記姿勢状態に予め対応付けられた前記尤度マップである学習尤度マップと、前記画像データに基づいて生成された前記尤度マップである推定尤度マップとの一致度を判定するステップと前記一致度が高いとき、当該学習尤度マップと対応付けられた前記姿勢状態を、前記物体の姿勢状態として推定するステップとを有する。
【発明の効果】
【００１０】
本発明によれば、関節を有する物体の姿勢状態を高精度に推定することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１に係る本発明の実施の形態１に係る姿勢状態推定装置の構成の一例を示すブロック図
【図２】本実施の形態１における画像データを説明するための図
【図３】本実施の形態１に係る姿勢状態推定装置の動作の一例を示すフローチャート
【図４】本実施の形態１における推定フェーズ処理の一例を示すフローチャート
【図５】本実施の形態１におけるオメガ形状を説明するための図
【図６】本実施の形態１における基準線からオメガ形状までの垂直距離を説明するための図
【図７】本実施の形態１における距離ヒストグラムの一例を示す図
【図８】本実施の形態１における２値化後の距離ヒストグラムの一例を示す図
【図９】本実施の形態１における基準部位を示す各種パラメータを説明するための図
【図１０】本実施の形態１における基準部位対応テーブルの内容の一例を示す図
【図１１】本実施の形態１における部位領域対応テーブルの内容の一例を示す図
【図１２】本実施の形態１における部位領域データの内容の一例を示す図
【図１３】本実施の形態１における推定尤度マップの一例を示す図
【図１４】本実施の形態１における２値化後の推定尤度マップの一例を示す図
【図１５】本実施の形態１において指定姿勢であると判定される場合の一例を示す図
【図１６】本実施の形態１において指定姿勢であると判定される場合の他の例を示す図
【図１７】本発明の実施の形態２に係る姿勢状態推定装置の構成の一例を示すブロック図
【図１８】本実施の形態２に係る姿勢状態推定装置の動作の一例を示すフローチャート
【図１９】本実施の形態２おける学習フェーズ処理の一例を示すフローチャート
【図２０】本発明の実施の形態３に係る姿勢状態推定装置の要部構成を示すブロック図
【図２１】本実施の形態３に係る人の姿勢と各部位の明るさとの関係を説明するための図
【図２２】本実施の形態３に係る姿勢状態推定装置の処理フローの一例を示す図
【図２３】本実施の形態３に係る凹凸マップ生成処理の処理フローの一例を示す図
【図２４】本実施の形態３に係るエリア分類の手法を説明するための図
【発明を実施するための形態】
【００１２】
以下、本発明の各実施の形態について、図面を参照して詳細に説明する。
【００１３】
（実施の形態１）
本発明の実施の形態１は、本発明を、撮影された人の姿勢状態が、ユーザが指定した姿勢状態に一致しているか否かを推定する装置に適用した例である。
【００１４】
以下の説明において、「部位」とは、人の身体のうち関節によって分割された部分の一まとまりをいうものとする。すなわち、部位は、例えば、頭、肩、右上腕、右前腕、左上腕、左前腕、右膝上、右膝下、左膝上、および左膝下である。また、「部位領域」とは、画像においてある部位が占め得る領域、つまり、部位の可動範囲であるものとする。
【００１５】
また、推定の対象となる「姿勢状態」とは、着目すべき２つ以上の部位（以下「着目部位」という）の姿勢をいうものとする。また、「姿勢」とは、２次元座標系または３次元座標系における、着目部位を接続する関節の位置、または、関連する各部位の長さおよび部位間の角度等の情報によって表現されるものとする。したがって、「姿勢状態推定」とは、これらの情報を推定することにより、姿勢状態を推定することをいう。なお、上述の位置、長さ、および角度は、人の所定の身体部位を基準とした相対値により表現されても良いし、２次元座標系または３次元座標系における絶対値により表現されて良い。
【００１６】
なお、本実施の形態では画素を単位として説明するが、所定のサイズに相当する複数の画素の一まとまりを、それぞれ一つの画素とみなして、同様の処理を行っても良い。これにより、処理を高速に行うことができる。複数の画素をひとつの画素とみなす場合、複数の画素の重心となる画素の値をその複数の画素の値として用いても良いし、複数の画素の値の平均値を、その複数の画素の値として用いても良い。
【００１７】
図１は、本発明の実施の形態１に係る姿勢状態推定装置の構成の一例を示すブロック図である。説明の簡便化のため、姿勢状態推定装置の周辺機器についても併せて図示する。
【００１８】
図１において、姿勢状態推定装置１００は、姿勢状態管理部１１０、姿勢状態指定部１２０、画像データ取得部１３０、部位領域推定部１４０、尤度マップ生成部１５０、および姿勢状態推定部１６０を有する。
【００１９】
姿勢状態管理部１１０は、予め、姿勢状態毎に、姿勢状態の識別情報と、姿勢状態に対して指定された２つ以上の着目部位の識別情報と、尤度マップとを、対応付けて格納する。尤度マップは、画像上で各着目部位が位置することの尤もらしさ（尤度）の分布であり、その詳細については後述する。以下、姿勢状態管理部１１０に情報が格納されている姿勢状態のみを、「姿勢状態」というものとする。以下、姿勢状態に対応付けられて姿勢状態管理部１１０に予め格納されている尤度マップは、「学習尤度マップ」という。
【００２０】
姿勢状態指定部１２０は、キーボード等の入力装置（図示せず）を介して、推定の対象となる姿勢状態の指定をユーザから受け付ける。具体的には、姿勢状態指定部１２０は、例えば、姿勢状態管理部１１０を参照して姿勢状態の一覧を作成し、これを選択肢として表示することにより、姿勢状態の指定を受け付ける。例えば、姿勢状態指定部１２０は、「右腕が曲がっている」という姿勢状態の指定を受け付ける。そして、姿勢状態指定部１２０は、指定された姿勢状態の識別情報を、部位領域推定部１４０および姿勢状態管理部１１０へ出力する。以下、指定された姿勢状態および指定姿勢の識別情報は、「指定姿勢」と総称する。
【００２１】
また、姿勢状態指定部１２０は、指定姿勢に対応付けられた２つ以上の着目部位を、部位領域推定部１４０へ出力する。例えば、姿勢状態指定部１２０は、「右腕が曲がっている」という姿勢状態については、「右上腕」および「右前腕」が、出力される。以下、指定姿勢に対応付けられた着目部位は、「指定部位」という。
【００２２】
画像データ取得部１３０は、所定の３次元座標空間に設置された単眼カメラ２００によって撮像された画像の画像データを、有線通信または無線通信により取得し、部位領域推定部１４０へ出力する。以下の説明では、画像データは、一人のみの画像を含むものとして説明するが、この限りではなく、複数人の画像を含んでも良いし、人の画像を含んでいなくても良い。
【００２３】
図２は、画像データを説明するための図である。
【００２４】
図２に示すように、例えば、単眼カメラ２００の位置を地面に投射した位置を原点Ｏとする３次元の座標系４１０を設定する。座標系４１０は、例えば、垂直方向をＹ軸とし、Ｙ軸および単眼カメラ２００の光軸４１１と直交する方向をＸ軸とし、Ｘ軸およびＹ軸に直交する方向をＺ軸とする。
【００２５】
単眼カメラ２００の設置角度は、例えば、Ｙ軸と光軸４１１との間の角度θにより表される。そして、単眼カメラ２００は、単眼カメラ２００の画角φの範囲に含まれるある平面４１２に焦点（フォーカス）を合わせて撮像を行う。このように撮影された画像の画像データは、姿勢状態推定装置１００へ送信される。以下、姿勢状態の推定の対象となる画像データは、「推定画像データ」という。
【００２６】
図１の部位領域推定部１４０は、画像データ取得部１３０から入力された推定画像データに基づいて、姿勢状態指定部１２０から入力された指定部位の部位領域を推定する。具体的には、部位領域推定部１４０は、推定画像データから、人の基準部位の位置および向きを推定する。そして、部位領域推定部１４０は、推定した基準部位の位置および向きを基準として、各指定部位の部位領域を推定する。
【００２７】
本実施の形態では、基準部位は、人の頭部および肩部とする。また、基準部位の向きは、肩部の向きとし、肩部の向きは、右肩部と左肩部とを結ぶ直線の方向とする。そして、部位領域推定部１４０は、推定画像データと、指定姿勢と、指定部位毎の部位領域を示す情報（以下「部位領域データ」という）とを、尤度マップ生成部１５０へ出力する。
【００２８】
尤度マップ生成部１５０は、部位領域推定部１４０から入力された推定画像データから、尤度マップを生成する。この際、尤度マップ生成部１５０は、部位領域推定部１４０から入力された部位領域データが示す部位領域以外の領域については、その部位領域に対応する指定部位が位置することの尤もらしさを低くした尤度マップを生成する。このような尤度マップは、指定姿勢の着目部位（例えば、「右腕が曲がっている」という姿勢状態の場合には、「右上腕」および「右前腕」）の可動範囲の尤度のみが高いような情報となる。そして、尤度マップ生成部１５０は、生成した尤度マップを、部位領域推定部１４０から入力された指定姿勢と共に、姿勢状態推定部１６０へ出力する。以下、推定画像データに基づいて生成された尤度マップは、「推定尤度マップ」という。
【００２９】
姿勢状態推定部１６０は、尤度マップ生成部１５０から入力された指定姿勢に対応付けられた学習尤度マップを、姿勢状態管理部１１０から取得する。なお、学習尤度マップは、姿勢状態推定部１６０からの指示を受けた姿勢状態管理部１１０が、姿勢状態推定部１６０へと出力するようにしても良い。そして、姿勢状態推定部１６０は、取得した学習尤度マップと、姿勢状態推定部１６０は尤度マップ生成部１５０から入力された推定尤度マップとの一致度が高いとき、指定姿勢を、推定画像データに含まれる人の姿勢状態として推定する。すなわち、姿勢状態推定部１６０は、単眼カメラ２００が撮影した人が、ユーザにより指定された姿勢状態を取っていたと推定する。そして、姿勢状態推定部１６０は、ディスプレイ装置等の情報出力装置３００に対して、有線通信または無線通信により情報を送信し、ユーザに対して推定結果を通知する。
【００３０】
姿勢状態推定装置１００は、ＣＰＵ（central processing unit）およびＲＡＭ（random access memory）等の記憶媒体等を含むコンピュータである。すなわち、姿勢状態推定装置１００は、記憶する制御プログラムをＣＰＵが実行することによって動作する。
【００３１】
このような姿勢状態推定装置１００は、部位毎の尤度の分布を示す尤度マップを用いるので、例えば、画像上で胴体の外形に右腕が収まっている場合でも、「右腕が曲がっている」という姿勢状態にあるか否かを判定することができる。すなわち、姿勢状態推定装置１００は、従来技術に比べて、人の姿勢状態を高精度に推定することができる。
【００３２】
また、姿勢状態推定装置１００は、指定部位の可動領域である部位領域を推定し、部位領域以外の領域については尤度値を低くするので、尤度マップの精度を向上させることができる。
【００３３】
次に、姿勢状態推定装置１００の動作について説明する。
【００３４】
図３は、姿勢状態推定装置１００の動作の一例を示すフローチャートである。
【００３５】
まず、ステップＳ３０００において、部位領域推定部１４０は、姿勢状態推定の指示があったか否かを判断する。部位領域推定部１４０は、例えば、姿勢状態指定部１２０において新たな姿勢状態の指定が行われたときや、画像データ取得部１３０に新たな推定画像データが入力されたときに、姿勢状態推定の指示があったと判断する。部位領域推定部１４０は、姿勢状態推定の指示があった場合（Ｓ３０００：ＹＥＳ）、ステップＳ４０００へ進む。また、部位領域推定部１４０は、姿勢状態推定の指示がない場合（Ｓ３０００：ＮＯ）、ステップＳ５０００へ進む。
【００３６】
ステップＳ４０００において、姿勢状態推定装置１００は、姿勢状態の推定を行う推定フェーズ処理を実行して、ステップＳ５０００へ進む。推定フェーズ処理の詳細については後述する。
【００３７】
ステップＳ５０００において、部位領域推定部１４０は、ユーザ操作等により処理終了の指示があったか否かを判断する。部位領域推定部１４０は、処理終了の指示がない場合（Ｓ５０００：ＮＯ）、ステップＳ３０００へ戻り、姿勢状態推定の指示の待機を継続する。また、部位領域推定部１４０は、処理終了の指示があった場合には（Ｓ５０００：ＹＥＳ）、一連の処理を終了する。
【００３８】
図４は、推定フェーズ処理（図３のステップＳ４０００）の一例を示すフローチャートである。
【００３９】
ステップＳ４１００において、姿勢状態指定部１２０は、ユーザから姿勢状態の指定を受け付けて指定姿勢を取得し、指定姿勢に対応する指定部位を取得する。
【００４０】
そして、ステップＳ４２００において、部位領域推定部１４０は、画像データ取得部１３０を介して、単眼カメラ２００から推定画像データを取得する。推定画像データは、画単眼カメラ２００において連続的にリアルタイムで撮影された動画像データを構成する静止画像データでも良いし、予め撮影されて保存されていた画像データであっても良い。
【００４１】
そして、ステップＳ４３００において、部位領域推定部１４０は、基準部位の位置および向きを推定する処理（以下「基準部位推定処理」という）を行う。
【００４２】
ここで、基準部位推定処理の詳細の一例について説明する。基準部位推定処理は、大きく分けて、人の肩関節位置を推定する第１の処理と、人の胴体の向きを推定する第２の処理とから成る。
【００４３】
まず、人の肩関節位置を推定する第１の処理について説明する。
【００４４】
部位領域推定部１４０は、推定画像データから、オメガ形状を検出し、オメガ形状に基づいて肩関節位置を推定する。
【００４５】
図５は、オメガ形状を説明するための図である。
【００４６】
オメガ（Ω）形状は、人の頭部および肩部を含む領域の特徴的なエッジ形状であり、人の身体のうち、監視カメラ等を用いた場合に最も安定して撮影される確率が高い形状である。また、頭部および肩部は、人の胴体との相対位置の変化が少ない。したがって、部位領域推定部１４０は、オメガ形状をまず検出して人の頭部および肩部の位置を検出し、これらを基準として他の部位の部位領域を推定することにより、部位領域を高精度に推定する。
【００４７】
オメガ形状は、例えば、充分な数のサンプル画像を用いてＲｅａｌ  ＡｄａＢｏｏｓｔ等により作成された検出器を用いて、検出することができる。検出器に用いられる特徴量としては、例えば、ＨｏＧ（histogram of gradient）特徴量、Ｓｐａｒｓｅ特徴量、Ｈａａｒ特徴量等を用いることができる。また、学習方法としては、例えば、Ｂｏｏｓｔｉｎｇ手法のほか、ＳＶＭ（サポートベクタマシン）、ニューラルネットワークなどを利用することも可能である。
【００４８】
部位領域推定部１４０は、推定画像データの画像４２０から、まず、オメガ形状４２１を検出する。ここで、オメガ領域４２２の画素のうち、オメガ形状４２１を構成する画素（エッジ部分の画素）はデジタル信号「１」であり、他の画素はデジタル信号「０」であるものとする。そして、オメガ形状４２１を包含する比較的小さい矩形領域を、オメガ領域４２２として決定する。ここで、オメガ領域４２２の下の辺を基準線４２３という。
【００４９】
部位領域推定部１４０は、オメガ領域４２２に含まれるノイズを取り除く。具体的には、部位領域推定部１４０は、オメガ領域４２２の画素のうち、オメガ形状４２１に囲まれた領域に存在するデジタル信号「１」を、ノイズとして、これをデジタル信号「０」に修正する。この修正は、例えば、いわゆるクロージング処理を行うことにより可能である。クロージング処理とは、所定の画素分または所定の割合で、画像領域を拡大また縮小する処理である。この修正により、後述の距離ヒストグラムの精度を向上させることができる。
【００５０】
そして、部位領域推定部１４０は、基準線４２３からオメガ形状４２１までの垂直距離を、基準線４２３の各位置について取得する。
【００５１】
図６は、基準線４２３からオメガ形状４２１までの垂直距離を説明するための図である。
【００５２】
図６に示すように、部位領域推定部１４０は、基準線４２３の方向をＸ軸とし、基準線４２３の垂直方向をＹ軸として扱う。部位領域推定部１４０は、例えば、基準線４２３の左端からの画素数を、Ｘ座標値とする。そして、部位領域推定部１４０は、基準線４２３からオメガ形状４２１を構成する画素までのＹ軸方向の画素数、つまり、オメガ形状４２１までの垂直距離を、垂直距離ｄ（Ｘ）として取得する。オメガ形状４２１を構成する画素とは、例えば、デジタル信号「１」の画素のうち、基準線４２３から直近のものである。
【００５３】
そして、部位領域推定部１４０は、ｎ個（ｎは正の整数）の垂直距離ｄ（Ｘ）のデータをＸ座標に対応付けた距離ヒストグラムを生成する。
【００５４】
図７は、部位領域推定部１４０が図５に示すオメガ領域４２２に基づいて生成する距離ヒストグラムの一例を示す図である。
【００５５】
図７に示すように、部位領域推定部１４０は、ＸＹ座標系に、垂直距離ｄ（Ｘ）をＹ軸の値として、垂直距離ｄ（Ｘ）の分布を示す距離ヒストグラム４３０を生成する。距離ヒストグラム４３０は、肩部に対応する形状で盛り上がり、そのうち、頭部の中心部に対応する範囲で突出した形状となる。
【００５６】
そして、部位領域推定部１４０は、生成した距離ヒストグラム４３０に対して、所定の閾値Ｔｈを適用して、２値化処理を行う。具体的には、部位領域推定部１４０は、垂直距離ｄ（Ｘ）が閾値Ｔｈ以上となっているＸ座標のＹ座標値を、「１」に置き換え、垂直距離ｄ（Ｘ）が閾値Ｔｈ未満となっているＸ座標のＹ座標値を、「０」に置き換える。閾値Ｔｈは、オメガ領域４２２において、高い確率で、肩部上端の垂直距離ｄ（Ｘ）よりも大きく、頭部上端の垂直距離ｄ（Ｘ）よりも小さくなる値が設定される。なお、２値化処理はこれに限定されるものではなく、例えば、いわゆる大津の２値化（大津の手法）等、他の手法としても良い。
【００５７】
図８は、図７に示す距離ヒストグラム４３０を２値化処理した結果の一例である。
【００５８】
図８に示すように、「１」となる範囲４４１は、頭部の中央部分の画像領域（以下「頭領域」という）のＸ座標の範囲を示すことになる。また、「１」となる範囲４４１を含む全体の範囲４４２は、肩部の画像領域（以下「肩領域」という）のＸ座標の範囲を示すことになる。したがって、部位領域推定部１４０は、推定画像データの画像４２０のうち、オメガ領域４２２のＸ軸方向範囲を、肩領域のＸ軸方向範囲として抽出し、「１」となる範囲４４１のＸ軸方向範囲を、頭領域のＸ軸方向範囲として抽出する。
【００５９】
そして、部位領域推定部１４０は、抽出した肩領域および頭領域に基づいて、基準部位の位置および向きを示す各種パラメータを算出する。
【００６０】
図９は、基準部位を示す各種パラメータを説明するための図である。
【００６１】
ここで、部位領域推定部１４０は、図９に示すように、基準部位の位置を示す記号（括弧内はＸＹ座標系におけるパラメータ）として、Ｈ（ｘｈ，ｙｈ）、ＲＳＥ（ｘ＿ｒｓｅ）、ＲＤ（ｘ＿ｒｄ）、ＲＳ（ｘ＿ｒｓ，ｙ＿ｒｓ）、ＲＳＵ（ｙ＿ｒｓｕ）、およびＬＳを用いるものとする。Ｈは、頭部の重心位置である。ＲＳＥは、右肩の端部の位置である。ＲＤは、頭部の重心から右肩の端部までのＸ軸方向の距離である。ＲＳは、右肩の関節の位置（以下「右肩位置」という）である。ＲＳＵは、右肩の頂部の位置である。ＬＳは、左肩の関節の位置（以下「左肩位置」という）である。
【００６２】
部位領域推定部１４０は、例えば、以下のようにして各パラメータの値を算出する。
【００６３】
まず、部位領域推定部１４０は、２値化処理の結果に基づいて抽出した肩領域から、人（の胴体）が単眼カメラ２００側に向いているか否かに基づいて、右肩領域を決定する。部位領域推定部１４０は、頭領域の色情報の肌色成分が所定の閾値以上となっているか否かに基づいて、人が単眼カメラ２００側に向いているか否かを判断する。ここでは、人は単眼カメラ２００側に向いており、画像に向かって左側の肩領域が、右肩領域に決定されたものとする。
【００６４】
次に、部位領域推定部１４０は、右肩領域の重心位置を、右肩位置ＲＳ（ｘ＿ｒｓ，ｙ＿ｒｓ）として算出する。また、部位領域推定部１４０は、頭部の重心位置Ｈ（ｘｈ，ｙｈ）を算出し、重心位置Ｈ（ｘｈ，ｙｈ）と基のオメガ形状４２１とのＹ軸方向の距離（以下「頭部高さΔｈ」という）用いて、右肩位置ＲＳ（ｘ＿ｒｓ，ｙ＿ｒｓ）を算出しても良い。具体的には、部位領域推定部１４０は、例えば、頭部高さΔｈに対して予め定められた比となる値を、頭部の重心位置Ｈから右肩位置ＲＳまでのＸ軸方向の距離（ｘｈ−ｘ＿ｒｓ）とすれば良い。また、部位領域推定部１４０は、例えば、肩の高さから頭部高さΔｈの半分の値Δｈ／２だけ低い位置を、右肩位置ＲＳのＹ座標ｙ＿ｒｓとしても良い。
【００６５】
更に、部位領域推定部１４０は、オメガ形状４２１のエッジの傾き（つまり距離ヒストグラムの変化率）が閾値を越えた点を、右肩の端部の位置ＲＳＥ（ｘ＿ｒｓｅ）として算出する。そして、部位領域推定部１４０は、頭部の重心位置Ｈと右肩の端部の位置ＲＳＥとのＸ軸方向の距離ＲＤ（ｘ＿ｒｄ）を算出する。
【００６６】
最後に、部位領域推定部１４０は、頭部の重心位置ＨからＸ軸方向において距離ＲＤの８０％の位置に、右肩位置ＲＳがあるものと推定する。すなわち、部位領域推定部１４０は、右肩位置ＲＳのＸ座標ｘ＿ｒｓを、  ｘ＿ｒｓ＝ｘ＿ｒｓｅ＋０.２×ＲＤ  により算出する。また、部位領域推定部１４０は、右肩位置ＲＳを通り垂直な直線（Ｙ軸に並行な直線）とオメガ形状４２１のエッジとの交点を、右肩の頂部の位置ＲＳＵ（ｙ＿ｒｓｕ）として算出する。そして、部位領域推定部１４０は、右肩位置ＲＳのＹ座標ｙ＿ｒｓを、  ｙ＿ｒｓ＝ｙ＿ｒｓｕ−０.２×ＲＤ  により算出する。
【００６７】
また、部位領域推定部１４０は、同様にして、左肩位置ＬＳについても算出する。なお、各パラメータの算出手法は、上述の例に限定されるものではない。
【００６８】
次に、人の胴体の向きを推定する第２の処理について説明する。
【００６９】
部位領域推定部１４０は、基準部位対応テーブルを、予め保持している。基準部位対応テーブルは、頭部の重心位置Ｈと、右肩位置ＲＳと、左肩位置ＬＳとの組み合わせ（以下「基準部位の位置」という）と、その基準部位の位置から推定される身体の向き（以下「基準部位の向き」という）とを対応付けて記述したテーブルである。すなわち、基準部位テーブルは、各部位の相対的な位置関係を記述したテーブルである。なお、基準部位とは、上述の通り、人の頭部および肩部を示すオメガ形状の部分である。したがって、基準部位の向きとは、人の身体（胴体）の向きである。
【００７０】
部位領域推定部１４０は、推定画像データから算出した基準部位の位置に対応する基準部位の向きを、基準部位対応テーブルから導出する。
【００７１】
なお、保持された基準部位対応テーブルに記述される基準部位の位置、および、部位領域推定部１４０が推定画像データから算出する基準部位の位置は、人の画面上の大きさによらない正規化された値であることが望ましい。具体的には、部位領域推定部１４０は、例えば、頭部の重心位置Ｈを原点とし、頭部の重心位置Ｈと右肩位置ＲＳまたは左肩位置ＬＳとの間の長さが１となるように正規化した値を用いて、準部位の向きを導出する。
【００７２】
また、基準部位対応テーブルには、右肩位置ＲＳおよび左肩位置ＬＳが記述されていても良い。また、基準部位対応テーブルには、頭部の重心位置Ｈと右肩位置ＲＳまたは左肩位置ＬＳとを通る線と、頭部の重心位置Ｈを通る垂直な直線（以下「頭部垂直線」という）とが成す角が記述されていても良い。また、基準部位対応テーブルには、頭部の重心位置Ｈと右肩位置ＲＳとの間の距離を１としたときの頭部の重心位置Ｈと左肩位置ＬＳとの間の距離が記述されていても良い。部位領域推定部１４０は、基準部位対応テーブルに記述されたパラメータに対応するパラメータを算出することにより、基準部位の向きを導出する。
【００７３】
図１０は、基準部位対応テーブルの内容の一例を示す図である。
【００７４】
図１０に示すように、基準部位対応テーブル４５０は、識別子４５１に対応付けて、射影角度４５２、左肩位置ＬＳの座標４５３、頭部の重心位置Ｈの座標４５４、および基準部位の向き４５５を記述する。各座標は、例えば、右肩位置ＲＳを原点とし、画面の２次元座標系に平行な所定の２次元座標系を用いて表現される。射影角度４５２は、例えば、図２で説明した３次元座標系４１０のＸＺ平面に対する、この所定の２次元座標系の角度（つまり図２に示す設置角度θ）である。また、基準部位の向き４５５は、例えば、図２で説明した３次元座標系４１０のＸＹＺ軸のそれぞれに対する回転角度で表される。
【００７５】
このようにして、部位領域推定部１４０は、基準部位の位置および向きを推定する。以上で基準部位推定処理の説明を終える。
【００７６】
次に、図４のステップＳ４４００において、部位領域推定部１４０は、推定した基準部位の位置および向きに基づいて、指定部位毎に部位領域を推定する処理（以下「部位領域推定処理」という）を行う。
【００７７】
ここで、部位領域推定処理の詳細の一例について説明する。
【００７８】
部位領域推定部１４０は、部位領域対応テーブルを、予め保持している。部位領域対応テーブルは、基準部位の位置と向きと、他の部位の部位領域とを対応付けて記述したテーブルである。
【００７９】
部位領域推定部１４０は、推定画像データから推定した基準部位の位置および向きに対応する指定部位の部位領域を、部位領域対応テーブルから導出する。
【００８０】
部位領域は、例えば、推定画像データの画像の画素位置により定義される。したがって、部位領域推定部１４０は、推定画像データの画像全体の全ての画素について、各画素がいずれかの指定部位の部位領域に属する画素であるかを判断する。
【００８１】
図１１は、部位領域対応テーブルの内容の一例を示す図である。
【００８２】
図１１に示すように、部位領域対応テーブル４６０は、識別子４６１に対応付けて、頭肩領域（基準部位）の位置４６３、頭肩領域（基準部位）の向き４６４、および各部位の領域４６５を記述する。各位置および領域は、例えば、画像の２次元座標系の値で表される。射影角度４６２は、例えば、図２で説明した３次元座標系４１０のＸＺ平面に対する、この所定の２次元座標系の角度（つまり図２に示す設置角度θ）である。頭肩領域の位置４６３は、例えば、右肩位置ＲＳである。頭肩領域の向き４６４は、例えば、図２で説明した３次元座標系４１０のＸＹＺ軸のそれぞれに対する回転角度で表される。なお、識別子４６１が基準部位対応テーブル４５０の識別子４５１と共通である場合には、頭肩領域の向き４６４は、必ずしも部位領域対応テーブル４６０に記述されていなくても良い。各部位の領域４６５は、例えば、領域が円で近似される場合における、その円の中心座標と半径とにより表される。
【００８３】
なお、部位領域推定部１４０は、部位領域を求める際に、必ずしも部位領域対応テーブル４６０を用いなくても良い。例えば、部位領域推定部１４０は、基準部位対応テーブル４５０（図１０参照）から導出された基準部位の向きから、他の各種の身体制約情報を用いて、各部位領域を、例えば基準部位からの接続順に動的に算出しても良い。身体制約情報は、各部位の位置に関する制約条件を含む情報である。
【００８４】
そして、部位領域推定部１４０は、推定画像データの画像全体の全ての画素について、画素毎に指定部位の部位領域であるか否かを示す情報を、部位領域データとして尤度マップ生成部１５０へ出力する。
【００８５】
部位領域データは、例えば、推定画像データの全ての画素位置（ｉ，ｊ）について、いずれかの指定部位の部位領域に該当するか否かを示す画素情報Ｋｉｊを並べた構造を有し得る。画素情報Ｋｉｊの各要素は、例えば、対応する指定部位の部位領域に属する場合には「１」を取り、属しない場合には「０」を取る。画素情報Ｋｉｊは、例えば、Ｋｉｊ＝［ｋ１，ｋ２］というように、指定部位の数と同数の次元を有する。ここでは、ｋ１は右上腕の部位領域に対応し、ｋ２は右前腕の部位領域に対応するものとする。
【００８６】
例えば、部位領域推定部１４０は、ある画素位置Ｋａｂが、右上腕の部位領域に含まれるが右前腕の部位領域には含まれないと判定した場合、Ｋａｂ＝［１，０］という画素情報を生成する。部位領域推定部１４０は、このように生成した各画素の画素情報の集合を、部位領域データとして生成する。
【００８７】
なお、部位領域データによる部位領域の表し方は、上述の例に限定されるものではない。例えば、部位領域データは、画像に予め設定された部分領域毎に、いずれの指定部位の部位領域に該当するかを示しても良いし、指定部位毎に部位領域の外縁の座標を示しても良い。
【００８８】
なお、基準部位の位置を正規化した位置が基準部位推定処理において用いられる場合には、部位領域対応テーブルには、正規化された基準部位に対応する部位領域が記述されていることが望ましい。また、部位領域データには、上述の基準部位対応テーブルの場合と同様に、右肩位置ＲＳおよび左肩位置ＬＳ等の他の情報が記述されていても良い。部位領域推定部１４０は、部位領域対応テーブルに記述されたパラメータに対応するパラメータを算出することにより、各指定部位の部位領域を導出する。
【００８９】
図１２は、部位領域データの内容の一例を示す図である。ここでは、説明の簡便化のため、直立状態にある場合の各部位の位置を併せて図示する。
【００９０】
図１２に示すように、部位領域データは、推定画像データの画像４２０において、指定部位である右上腕の部位領域４７１と、指定部位である右前腕の部位領域４７２とを示す。これらの部位領域４７１、４７２は、上述の通り、先に推定された基準部位４７３の位置および向きを基準として推定されたものである。
【００９１】
このようにして、部位領域推定部１４０は、各指定部位の部位領域を推定する。以上で部位領域推定処理の説明を終える。
【００９２】
次に、図４のステップＳ４５００において、尤度マップ生成部１５０は、指定部位毎に部位領域について尤度値を算出して推定尤度マップを生成する処理（以下「推定尤度マップ生成処理」という）を行う。
【００９３】
ここで、推定尤度マップ生成処理の詳細の一例について説明する。
【００９４】
まず、尤度マップ生成部１５０は、推定画像データから、指定部位の部位領域内の画素毎に、指定部位の位置および向きの状態を表すのに適した画像特徴量を判別して指定部位が位置することの尤もらしさを示す尤度値を算出する。そして、尤度マップ生成部１５０は、推定画像データから算出された尤度値を用いて、各画素の尤度値の分布を示す推定尤度マップを生成する。尤度値は、０〜１の範囲となるように正規化した値であっても良いし、正の整数や負の数を含む実数であっても良い。
【００９５】
画像から注目対象を認識する手法としては、例えば、矩形情報を基にした複数の弱識別器の総和をＡｄａＢｏｏｓｔにより統合して強識別器を作成し、強識別器をカスケード接続させて、画像中の注目対象として顔を認識する技術を採用することができる。また、画像特徴量としては、例えば、ＳＩＦＴ（scale-invariant feature transform）特徴量を採用することができる（例えば、非特許文献２参照）。ＳＩＦＴ特徴量は、１２８次元のベクトルにより構成されており、画素毎に計算される値である。ＳＩＦＴ特徴量は、検出の対象となる物体のスケール変化、回転、および平行移動に影響を受けないため、特に、腕のように、様々な方向に回転し得る部位の検出に有効である。すなわち、ＳＩＦＴ特徴量は、姿勢状態を２つ以上の着目部位の相対的な関節の位置および角度によって定義する本実施の形態に好適である。
【００９６】
ＳＩＦＴ特徴量を用いた手法を本実施の形態に適用した場合、強識別器Ｈｋ（ｋ＝１，２）は、右上腕（ｋ＝１）、右前腕（ｋ＝２）等、部位領域毎に、予め機械学習により生成され、尤度マップ生成部１５０に保持される。識別器Ｈｋは、ＡｄａＢｏｏｓｔアルゴリズムにより生成される。すなわち、強識別器Ｈｋは、予め部位毎に用意されている複数の学習画像に対して、右上腕であるか否か、および、右前腕であるか否かが、所望の精度で判定できるまで学習が繰り返され、複数の弱識別器がカスケード接続されることによって生成される。
【００９７】
尤度マップ生成部１５０は、指定部位毎および画素毎に画像特徴量を算出すると、その画像特徴量を強識別器Ｈｋに入力し、その強識別器Ｈｋを構成する各弱識別器の出力に対して弱識別器毎に予め得られた信頼度αを乗算した値の総和を算出する。そして、尤度マップ生成部１５０は、算出した総和から所定の閾値Ｔｈを減算して、指定部位毎および画素毎の尤度値ｃｋを算出する。ここでは、ｃ１は右上腕の尤度値を示し、ｃ２は右前腕の尤度値を示す。
【００９８】
尤度マップ生成部１５０は、各指定部位の尤度値を統合した画素毎の尤度値Ｃｉｊを、Ｃｉｊ＝［ｃ１，ｃ２］とする。そして、尤度マップ生成部１５０は、画像全体の全ての画素の尤度値Ｃｉｊを、推定尤度マップとして、姿勢状態推定部１６０へ出力する。
【００９９】
尤度マップ生成部１５０は、各画素について、その画素がいずれかの部位領域に含まれるか否かを判断し、含まれればその部位の識別器を用いて尤度値を算出し、含まなければその部位の尤度値を０としても良い。換言すると、尤度マップ生成部１５０は、部位領域推定部１４０から出力された画素情報の行列式（Ｋｉｊ）と、部位領域とは無関係に算出した各画素の尤度値の行列式（Ｃｉｊ）とを積算した結果を、最終的な推定尤度マップとしても良い。
【０１００】
図１３は、推定尤度マップの一例を示す図である。ここでは、推定尤度マップのうち１つの指定部位（例えば右上腕）の尤度値のみを表し、尤度値がより高い画素ほどより濃い網掛けを付している。図１３に示すように、推定尤度マップ４７８は、指定部位が位置することの尤もらしさの分布を表す。
【０１０１】
尤度マップの画素毎の情報は、例えば、部位ｋの尤度値をｃｋと表し、指定部位がｎ個存在する場合には、尤度ベクトルＣｉｊ＝［ｃ１，ｃ２，…，ｃｋ，…，ｃｎ］というデータ構造となる。
【０１０２】
このようにして、尤度マップ生成部１５０は、推定尤度マップを生成する。以上で推定尤度マップ生成処理の説明を終える。
【０１０３】
次に、ステップＳ４６００において、姿勢状態推定部１６０は、指定姿勢に対応する学習尤度マップを姿勢状態管理部１１０から取得する。そして、姿勢状態推定部１６０は、学習尤度マップと推定尤度マップとが一致するか否かを、その一致度が所定のレベル以上であるか否かに基づいて判断する一致度判定処理を行う。
【０１０４】
ここで、一致度判定処理の詳細の一例について説明する。
【０１０５】
姿勢状態推定部１６０は、まず、推定尤度マップおよび学習尤度マップをそれぞれ所定の閾値を用いて２値化する。具体的には、姿勢状態推定部１６０は、画素毎および指定部位毎の尤度値を、所定の閾値以上である場合はデジタル信号「０」に、所定の閾値未満である場合にはデジタル信号「１」に変換する。
【０１０６】
図１４は、図１３に示す推定尤度マップを２値化した後の状態の一例を示す図である。ここでは、デジタル信号「１」の画素は灰色、デジタル信号「０」の画素は白色で表している。図１４に示すように、２値化後の推定尤度マップ４７９は、指定部位が位置することの尤もらしさが高い部分の分布を表す。
【０１０７】
そして、姿勢状態推定部１６０は、推定尤度マップと学習尤度マップとの間で、画素毎および指定部位毎に２値化された尤度値の積を取り、全ての画素および全ての指定部位についての値の和を、評価値とする。具体的には、姿勢状態推定部１６０は、推定尤度マップと学習尤度マップとを所定の位置関係で重ね、画素毎に２値化後の尤度値情報を掛け算し、掛け算した値の全ての画素および指定部位についての和を求める。
【０１０８】
姿勢状態推定部１６０は、推定尤度マップと学習尤度マップとの重ね合わせの位置関係を、移動および回転によりずらしていき、各位置関係について上述の演算処理を行う。そして、姿勢状態推定部１６０は、求めた評価値のうちの最大値を、一致度を表す最終的な評価値として取得し、この評価値が所定の閾値以上であるとき、学習尤度マップと推定尤度マップとが一致すると判断する。閾値は、予め、学習等により適切な値が設定される。
【０１０９】
なお、姿勢状態推定部１６０は、必ずしも推定尤度マップおよび学習尤度マップを２値化しなくても良い。この場合には、姿勢状態推定部１６０は、学習尤度マップと推定尤度マップとの一致度をより精度良く判定することができる。また、２値化した場合には、姿勢状態推定部１６０は、高速に一致度の判定を行うことができる。
【０１１０】
このようにして、姿勢状態推定部１６０は、推定尤度マップと学習尤度マップとの一致度を判定する。以上で一致度判定処理の説明を終える。
【０１１１】
姿勢状態推定部１６０は、学習尤度マップと推定尤度マップとが一致する場合（Ｓ４６００：ＹＥＳ）、ステップＳ４７００へ進む。また、姿勢状態推定部１６０は、学習尤度マップと推定尤度マップとが一致しない場合（Ｓ４６００：ＮＯ）、ステップＳ４８００へ進む。
【０１１２】
ステップＳ４７００において、姿勢状態推定部１６０は、情報出力装置３００を介して、ユーザに対し、対象画像データに含まれる人の姿勢が指定姿勢である旨を通知して、図３の処理へ戻る。
【０１１３】
ステップＳ４８００において、姿勢状態推定部１６０は、情報出力装置３００を介して、ユーザに対し、対象画像データに含まれる人の姿勢が指定姿勢でない旨を通知して、図３の処理へ戻る。なお、姿勢状態推定部１６０は、対象画像データから人が検出されない等、姿勢状態の判定を行う事ができない場合に、その旨を通知するようにしても良い。
【０１１４】
なお、ステップＳ４７００、Ｓ４８００の通知は、文字表示、画像表示、音声出力、および振動出力等の、出力の有無もしくは出力内容の違いにより、行うことができる。
【０１１５】
このような動作により、姿勢状態推定装置１００は、部位領域を推定して、指定部位毎の尤度の分布を示す推定尤度マップを生成することができる。そして、姿勢状態推定装置１００は、生成した推定尤度マップと指定姿勢に対応付けられた学習尤度マップとを比較することにより、姿勢状態の推定を行うことができる。
【０１１６】
図１５は、指定姿勢であると判定される場合の一例を示す図である。
【０１１７】
図１５（Ａ）に示すように、学習画像４８０において、「直立姿勢」という手足および背筋を伸ばした姿勢状態に対応付けて、人４８１の全身の部位が指定されていたとする。この場合、比較の対象となる部位領域４８２は、全身を包含する範囲となる。
【０１１８】
そして、図１５（Ｂ）に示すように、推定フェーズにて、推定画像４９０に対して「直立姿勢」が指定された場合を想定する。この場合、指定部位は人４９１の全身の部位となり、比較の対象となる部位領域４９２は、全身を包含する範囲となる。図１５（Ａ）に示す学習画像４８０に基づく部位領域４８２の学習尤度マップと、推定画像４９０に基づく部位領域４９２の推定尤度マップとは、相対的に移動および回転させたとき、一致する。したがって、姿勢状態推定装置１００は、学習画像４８０に含まれる人が「直立姿勢」という姿勢状態にあると判定することができる。
【０１１９】
図１６は、指定姿勢であると判定される場合の他の例を示す図である。
【０１２０】
図１６（Ａ）に示すように、学習画像４８０において、「右腕が曲がっている」という姿勢状態に対応付けて、人４８１の右上腕および右前腕が指定されていたとする。この場合、比較の対象となる部位領域４８２は、右上腕および右前腕を包含する範囲となる。
【０１２１】
そして、図１６（Ｂ）〜（Ｅ）に示すように、推定フェーズにて、推定画像４９０に対して「右腕が曲がっている」が指定された場合を想定する。この場合、指定部位は人４９１の右上腕および右前腕となり、比較の対象となる部位領域４９２は、右上腕および右前腕を包含する範囲となる。図１６（Ａ）に示す学習画像４８０に基づく部位領域４８２の学習尤度マップと、推定画像４９０に基づく部位領域４９２の推定尤度マップとは、相対的に移動および回転させたとき、一致する。したがって、姿勢状態推定装置１００は、学習画像４８０に含まれる人が「右腕が曲がっている」という姿勢状態にあると判定することができる。
【０１２２】
図１６（Ｂ）〜図１６（Ｅ）の各推定画像４９０の人４９１の外形は、それぞれ図１６（Ａ）の学習画像４８０の人４８１の外形と大きく異なっている。したがって、上述の従来技術では、図１６（Ｂ）〜図１６（Ｅ）の推定画像４９０に対して、「右腕が曲がっている」という姿勢状態にないと判定してしまう。これに対し、本実施の形態に係る姿勢状態推定装置１００は、上述の通り、姿勢状態推定を的確に行うことができる。
【０１２３】
また、本実施の形態に係る姿勢状態推定装置１００は、図１６（Ｂ）〜図１６（Ｅ）のように右腕以外の部位の姿勢が異なっていても、「右腕が曲がっている」という姿勢状態であると判定することができる。すなわち、姿勢状態推定装置１００は、指定部位にのみ着目した姿勢を、他の部位の姿勢に関係なく抽出することができる。
【０１２４】
以上のように、本実施の形態に係る姿勢状態推定装置１００は、部位毎の尤度の分布を示す尤度マップを用いるので、人の姿勢状態を高精度に推定することができる。また、姿勢状態推定装置１００は、部位領域を推定し、部位領域以外の領域については尤度値を低くした推定尤度マップを生成するので、尤度マップの精度を向上させ、姿勢状態推定を更に高精度に行うことができる。
【０１２５】
なお、以上説明した実施の形態１では、姿勢状態推定装置１００は、具体的に指定されたある姿勢状態のみについて推定を行うようにしたが、複数の姿勢状態のうちどの姿勢状態に一致するかを推定するようにしても良い。この場合には、例えば、姿勢状態推定装置１００は、姿勢状態管理部１１０に対応する学習尤度マップが格納されている全ての姿勢状態を、指定姿勢として取り扱えば良い。また、姿勢状態推定装置１００は、いずれの姿勢状態も指定されずに姿勢状態推定の実行を指示された場合に、全ての姿勢状態を指定姿勢として取り扱うようにしても良い。
【０１２６】
また、姿勢状態推定に用いられる画像データは、ステレオカメラまたは複数のカメラによって撮影された画像のデータであっても良い。ステレオカメラの画像データを用いる場合には、姿勢状態推定装置１００は、片方のカメラによって撮像された画像データと、ステレオカメラの設置パラメータから得られる被写体の位置情報とを用いても良い。また、複数のカメラの画像データを用いる場合には、姿勢状態推定装置１００は、それらのうち一台のカメラによって撮像された画像データと、各カメラの設置パラメータから得られる被写体の位置情報とを用いても良い。
【０１２７】
また、部位領域推定部１４０は、基準部位の位置および向きが既知である場合や指定される場合には、上述の基準部位推定処理を行わなくても良い。また、部位領域推定部１４０は、例えば人の歩行する方向が決まっており、基準部位の向きがほぼ一定である場合には、身体の向き情報を保持しておいても良い。
【０１２８】
また、部位領域推定部１４０が行う部位領域の推定の手法は、上述の例に限定されない。例えば、部位領域推定部１４０は、推定画像データから画像のエッジ部分（以下、単に「エッジ」という）を抽出し、エッジにより囲まれた領域のＹ座標の値の範囲に基づいて、各部位領域を推定しても良い。具体的には、例えば、部位領域推定部１４０は、エッジにより囲まれた領域において、Ｙ座標の値が最も高い位置から２０％までの領域を頭部の部位領域というように推定する。同様に、例えば、部位領域推定部１４０は、１５％から６５％までの領域を胴の部位領域、５５％から８５％までの領域を膝上の部位領域、７５％から１００％までの領域を膝下の部位領域というように推定する。
【０１２９】
また、推定画像データが動画像データを構成する静止画像データである場合には、部位領域推定部１４０は、画像間で背景差分を取ることにより動体を抽出し、抽出した領域を含む領域全体を、各部位の部位領域の候補としても良い。これにより、部位領域を推定する際の処理の高速化を図ることができる。
【０１３０】
また、姿勢状態推定装置１００は、基準部位から近い順に１つずつ部位の位置を推定し、推定した位置に基づいて次の部位の部位領域を推定するという処理を繰り返すことにより、各着目部位の部位領域を推定するようにしても良い。
【０１３１】
また、姿勢状態推定部１６０は、学習尤度マップに、その学習尤度マップの基となった画像の光軸方向に関する情報が対応付けられている場合には、単眼カメラ２００の設置角度θに対応する学習尤度マップを比較対象とするようにしても良い。
【０１３２】
また、姿勢状態推定装置１００は、必ずしも部位領域推定を行わなくても良い。この場合には、尤度マップ生成部１５０は、画像の全ての領域に対して均一に、尤度値の算出を行うことになる。
【０１３３】
また、姿勢状態推定装置１００が扱う尤度マップの種類は、上述の例により生成される尤度マップに限定されない。例えば、推定尤度マップおよび学習尤度マップは、エッジから平行線を抽出することにより生成されるものであっても良い。
【０１３４】
この場合、尤度マップ生成部１５０は、例えば、肩関節の長さと各部位の標準的な太さの値とを対応付けた対応テーブルを予め備えておく。尤度マップ生成部１５０は、部位領域内に、その部位の標準的な太さに相当する距離で離隔する平行線の組を、判定する方向を３６０度回転させながら検索する。そして、尤度マップ生成部１５０は、該当する平行線の組が存在する場合に、それらの平行線によって囲まれた領域の各画素に対して投票を行う処理を繰り返し、最終的な各画素の投票数に基づいて推定尤度マップを生成する。
【０１３５】
このような手法の場合、推定尤度マップおよび学習尤度マップは、画素毎および指定部位毎に、平行線の方向と投票数（以下「方向の尤度値」という）とを含むことになる。例えば、平行線の角度を８つに分類した場合、画素毎および指定部位毎の尤度値は、８方向に対応した８次元の値となる。更に、例えば、平行線の幅を２つに分類した場合、画素毎および指定部位毎の尤度値は、２×８＝１６次元の値となる。なお、投票の対象となる平行線の距離や角度は、部位毎に異なっていても良い。平行線の幅を複数求めて、そのうちの尤度値が尤も高くなる幅の尤度値を用いることにより、体型や服装の違いを吸収して、尤度を求めることができる。
【０１３６】
そして、尤度マップ生成部１５０は、例えば、指定部位毎に、方向の尤度値が最も高い方向を、その指定部位の主要なエッジ方向と判定する。このとき、姿勢状態推定部１６０は、方向毎に全画素の尤度値の合計値を取り、その合計値が最も高い方向を、方向の尤度値が最も高い方向であると判定しても良い。
【０１３７】
そして、姿勢状態推定部１６０は、指定部位毎に、それぞれの主要なエッジ方向が一致するように推定尤度マップと学習尤度マップとを重ね合わせて、一致度を算出する。以降の処理は、本実施の形態で既に説明した手法と同様である。
【０１３８】
このように、エッジの方向を考慮した手法は、推定尤度マップと学習尤度マップとの重ね合わせの位置関係に制約を加えることができるので、処理負荷を軽減することができる。
【０１３９】
なお、推定尤度マップと学習尤度マップとの一致度を算出する際に、エッジ方向の情報のみを用いても良い。この場合、例えば、姿勢状態推定部１６０は、複数の指定部位間で各指定部位のエッジ方向が成す角の一致度を、推定尤度マップと学習尤度マップとの一致度を表す評価値とする。そして、姿勢状態推定部１６０は、評価値が所定の範囲内であるとき、対象画像データに含まれる人の姿勢が指定姿勢であると判定する。
【０１４０】
このように、エッジ方向のみを用いて一致度を判定する手法は、画像を回転させながら複数の評価値を繰り返し算出する処理を不要とすることができるため、処理負荷を更に低減することができる。
【０１４１】
（実施の形態２）
本発明の実施の形態２は、姿勢状態推定装置において、学習尤度マップの生成を併せて行うようにした例である。本実施の形態に係る姿勢状態推定装置は、姿勢状態の推定を行う推定フェーズ処理の他に、学習尤度マップを生成する学習フェーズ処理を行う。
【０１４２】
図１７は、本発明の実施の形態２に係る姿勢状態推定装置の構成の一例を示すブロック図であり、実施の形態１の図１に対応するものである。図１と同一部分には同一符号を付し、これについての説明を省略する。
【０１４３】
図１７に示すように、本実施の形態に係る姿勢状態推定装置１００ａは、実施の形態１とは異なる尤度マップ生成部１５０ａを有する。
【０１４４】
本実施の形態における画像データ取得部１３０および部位領域推定部１４０は、学習フェーズにおいて入力される画像データ（以下「学習画像データ」という）に対しても、推定画像データに対する処理と同様の処理を行い、部位領域の推定を行う。
【０１４５】
また、本実施の形態における姿勢状態指定部１２０は、学習フェーズにおいても、姿勢状態および部位の指定を受け付け、指定姿勢および指定部位を出力する。
【０１４６】
尤度マップ生成部１５０ａは、学習フェーズにおいても、学習画像データに対し、推定画像データに対する処理と同様の処理を行い、部位領域に対応する指定部位が位置することの尤もらしさを低くした尤度マップを生成する。但し、尤度マップ生成部１５０ａは、学習画像データから生成した尤度マップを、学習尤度マップとして、その指定姿勢および指定部位と対応付けて、姿勢状態管理部１１０に格納する。また、尤度マップ生成部１５０ａは、学習画像データから生成した尤度マップについては、姿勢状態推定部１６０へ出力しない。
【０１４７】
このような姿勢状態推定装置１００ａは、学習画像データの入力と姿勢状態および部位の指定を受けて、学習尤度マップを生成し、生成した学習尤度マップを用いて対象画像データに対する姿勢状態推定を行うことができる。
【０１４８】
次に、姿勢状態推定装置１００ａの動作について説明する。
【０１４９】
図１８は、姿勢状態推定装置１００ａの動作の一例を示すフローチャートであり、実施の形態１の図３に対応するものである。図３と同一部分には同一ステップ番号を付し、これについての説明を省略する。
【０１５０】
まず、ステップＳ１０００ａにおいて、部位領域推定部１４０は、姿勢状態学習の指示があったか否かを判断する。姿勢状態学習とは、つまり、学習尤度マップの生成である。部位領域推定部１４０は、例えば、学習フェーズにあるときに、姿勢状態指定部１２０において新たな姿勢状態の指定が行われたときや、画像データ取得部１３０に新たな推定画像データが入力されたときに、姿勢状態推定の指示があったと判断する。学習フェーズと推定フェーズとの切り替えは、例えば、キーボード等の入力装置（図示せず）を介してユーザから所定の操作を受け付けることにより行われる。部位領域推定部１４０は、姿勢状態学習の指示があった場合（Ｓ１０００ａ：ＹＥＳ）、ステップＳ２０００ａへ進む。また、部位領域推定部１４０は、姿勢状態学習の指示がない場合（Ｓ１０００ａ：ＮＯ）、実施の形態１で説明したステップＳ３０００〜Ｓ５０００の処理へ進む。
【０１５１】
ステップＳ２０００ａにおいて、姿勢状態推定装置１００は、姿勢状態の学習を行う学習フェーズ処理を実行して、実施の形態１で説明したステップＳ３０００〜Ｓ５０００の処理へ進む。
【０１５２】
図１９は、学習フェーズ処理（図１８のステップＳ２０００ａ）の一例を示すフローチャートである。
【０１５３】
ステップＳ２１００ａにおいて、姿勢状態指定部１２０は、ユーザから姿勢状態の指定を受け付けて指定姿勢を取得し、指定姿勢に対応する指定部位を取得する。なお、指定姿勢に対応して、少なくとも１回は、指定部位の外部からの指定が行われる必要がある。姿勢状態指定部１２０は、指定姿勢と指定部位との組を記憶しておき、２回目以降は指定姿勢から自動的に指定部位を決定するようにし、部位の指定の受け付けを省略するようにしても良い。
【０１５４】
そして、ステップＳ２２００ａにおいて、部位領域推定部１４０は、画像データ取得部１３０を介して、単眼カメラ２００から学習画像データを取得する。学習画像データは、画単眼カメラ２００において連続的にリアルタイムで撮影された動画像データを構成する静止画像データでも良いし、予め撮影されて保存されていた画像データであっても良い。また、学習画像データは、実際の人を撮影した画像のデータではなく、コンピュータ上のＣＧ（computer graphics）ソフトウェアなどで作成した画像のデータであっても良い。特に、モーションキャプチャソフトウェアの画像データは、人の３次元姿勢情報を同時に取得可能であるため、学習尤度マップを生成する際の利便性を向上させることができる。
【０１５５】
そして、ステップＳ２３００ａにおいて、部位領域推定部１４０は、学習画像データに対し、実施の形態１で説明した基準部位推定処理と同様の処理を行い、基準部位を推定する。
【０１５６】
そして、ステップＳ２４００ａにおいて、部位領域推定部１４０は、学習画像データに対し、実施の形態１で説明した部位領域推定処理と同様の処理を行い、指定部位毎に部位領域を推定する。
【０１５７】
そして、ステップＳ２５００ａにおいて、尤度マップ生成部１５０ａは、学習画像データに対し、実施の形態１で説明した推定尤度マップ生成処理と同様の処理を行い、指定部位毎に部位領域について尤度値を算出して、学習尤度マップを生成する。
【０１５８】
そして、ステップＳ２６００ａにおいて、尤度マップ生成部１５０ａは、生成した学習尤度マップを、指定部位および指定姿勢に対応付けて、姿勢状態管理部１１０に記憶させ、図１８の処理へ戻る。
【０１５９】
なお、尤度マップ生成部１５０ａは、複数の学習画像データに対して同一の姿勢状態が指定される場合、つまり、指定姿勢が同一の学習尤度マップが複数存在する場合には、尤度値の平均値から成る学習尤度マップを、姿勢状態管理部１１０に記憶させても良い。
【０１６０】
このような動作により、姿勢状態推定装置１００ａは、学習画像データの入力と姿勢状態および部位の指定を受けて、学習尤度マップを生成し、記憶しておくことができる。この結果、例えば、実施の形態１の図１６（Ａ）に示す部位領域４８２に基づいて学習尤度マップが生成され、「右腕が曲がっている」という姿勢状態と、「右上腕」および「右前腕」という部位とに対応付けて記憶される。
【０１６１】
以上のように、本実施の形態に係る姿勢状態推定装置１００ａは、姿勢状態毎に、部位毎の尤度の分布を示す学習尤度マップを生成し、生成した学習尤度マップを用いるので、人の姿勢状態を高精度に推定することができる。
【０１６２】
例えば、実施の形態１で説明したように、上述の従来技術では、図１６（Ｂ）〜図１６（Ｅ）の推定画像４９０に対して、「右腕が曲がっている」という姿勢状態にないと判定してしまう。従来技術においてこれを防ぐためには、図１６（Ｂ）〜図１６（Ｅ）に示される全ての外形について、学習画像を用意し、学習尤度マップを生成しなければならない。このような網羅的な学習は、手間と時間が掛かる。また、記憶されている学習尤度マップの数が増えると、一致度判定にも時間が掛かる。これに対し、本実施の形態に係る姿勢状態推定装置１００ａを用いる場合には、上述の通り図１６（Ａ）に示す学習画像４８０に対する学習で済み、学習尤度マップの数も抑えることができる。
【０１６３】
なお、姿勢状態推定装置１００ａは、実施の形態１で説明したエッジ方向に基づく推定尤度マップ等、他の手法により生成される推定尤度マップを用いる場合には、対応する手法により、学習尤度マップを生成するものとする。
【０１６４】
また、本発明の適用は、実施の形態１および実施の形態２において説明した人の姿勢状態推定に限定されるものではない。本発明は、ロボット等の、関節により接続された複数の部位を有する各種の物体の姿勢状態推定に対しても適用することができる。
【０１６５】
以下、更に凹凸マップを用いて姿勢推定を行う例を、本発明の実施の形態３として説明する。ここで、凹凸マップとは、画像を、画像に映し出された被写体の面を凹凸で区分したマップである。
【０１６６】
（実施の形態３）
図２０は、本発明の実施の形態３に係る姿勢状態推定装置の要部構成を示すブロック図であり、実施の形態１の図１の姿勢状態推定装置１００に対応するものである。なお、図２０において、図１と共通する構成部分には、図１と同一の符号を付して説明を省略する。
【０１６７】
図２０の姿勢状態推定装置１００ｂは、図１の構成に加えて、更に、凹凸マップ推定部１４５ｂを有する。
【０１６８】
凹凸マップ推定部１４５ｂは、各部位の凹凸マップを生成する。より具体的には、凹凸マップ推定部１４５ｂは、尤度マップ生成部１５０から、推定尤度マップおよび推定画像データを入力する。そして、凹凸マップ推定部１４５ｂは、入力した情報に基づいて凹凸マップを生成し、生成した凹凸マップを、姿勢状態推定部１６０ｂへ出力する。凹凸マップの生成手法の詳細については、後述する。以下、推定画像データから生成された凹凸マップは、「推定凹凸マップ」という。
【０１６９】
姿勢状態推定部１６０ｂは、学習尤度マップに加えて、姿勢状態毎に、その姿勢状態にある基準モデルから学習された凹凸マップ（以下「学習凹凸マップ」という）を、予め保持している。そして、姿勢状態推定部１６０ｂは、推定尤度マップと学習尤度マップとの一致度に加えて、推定凹凸マップと学習凹凸マップとの一致度に基づいて、被写体の姿勢状態の推定を行う。すなわち、姿勢状態推定部１６０ｂは、実施の形態１の動作に加えて、推定凹凸マップと学習凹凸マップとのマッチングを更に行う。
【０１７０】
まず、凹凸マップについて説明する。
【０１７１】
凹凸マップ推定部１４５ｂは、画像上の部位の明るさ情報から部位の面の向きを推定する。ここで、明るさとは、例えば、輝度のレベルであり、明るさ情報とは、輝度または輝度のレベルを示す情報である。
【０１７２】
図２１は、人の姿勢と各部位の明るさとの関係を説明するための図である。
【０１７３】
図２１Ａに示す第１の姿勢と図２１Ｂに示す第２の姿勢は、異なる姿勢であるにもかかわらず、図２１Ｃに示すように、正面から見たときのシルエットが同一であるとする。この場合、正面画像のエッジからなる領域情報からだけでは、対象人物の姿勢が第１の姿勢であるか第２の姿勢であるかを、正しく推定することができない。
【０１７４】
例えば、図２１Ｃに示すシルエットから、右腕の長さが左腕の長さよりも短いことが分かるため、右肘が曲がっている可能性が高いことが推測できる。ところが、身体制約を満たす曲げ方には、バリエーションがある。また、図２１Ａや図２１Ｂに示すように、右腕全体の角度にもバリエーションがある。
【０１７５】
また、例えば、図２１Ｃに示すシルエットから、左脚の長さが左腕の長さよりも短いことが分かるため、左膝が曲がって可能性があることが推測できる。ところが、図２１Ａや図２１Ｂに示すように、左膝が曲がっている場合と伸びている場合とがあり得る。
【０１７６】
上腕と前腕との区切りや膝上と膝下との区切りの位置（つまり関節）を推定することができれば、対象人物の姿勢が上述のバリエーションのどれなのかを推定することができる。ところが、図２１Ｃのように腕や脚が直線に見える姿勢の場合、エッジからなる領域情報からだけでは、身体制約を用いたとしても、かかる区切りの位置を推定することは難しい。
【０１７７】
そこで、このような領域情報だけからでは関節位置（各部位の区切り）が特定できない姿勢に対応するため、姿勢状態推定装置１００ｂは、領域情報に加えて、明るさ情報を用いて部位領域を推定する。
【０１７８】
図２１Ｄは、上からの自然光を光源とするときの、第１の姿勢を正面から撮影した場合の各部位の明るさを、濃度で示す図である。図２１Ｅは、上からの自然光を光源とするときの、第２の姿勢を正面から撮影した場合の各部位の明るさを、濃度で示す図である。ここでは、濃度が高いほど、明るさがより低い（より暗い）ことを示す。また、明るさとして、暗い方のレベルから順に、「−２，−１，０，１，２」の５段階のレベルが定義されているものとする。レベル「０」は、例えば、地面に対して垂直方向の面の明るさのレベルである。
【０１７９】
画像の各領域の明るさレベルは、より上を向いている面の領域ほど明るくなり、逆に、より下を向いている面の領域ほど暗くなる。
【０１８０】
例えば、図２１のＤおよび図２１のＥに示すように、第１および第２の姿勢の両方において、頭、胴、左腕の領域は、レベル「０」となり、右脚の領域は、やや暗いレベル「−１」となる。
【０１８１】
第１の姿勢においては、右上腕は垂直に降ろされ、右前腕は前に伸びているため、図２１のＤに示すように、右上腕の領域はレベル「０」となり、右前腕の領域はレベル「２」となる。これに対し、第２の姿勢においては、右上腕は後に引かれ、右前腕は下に向いているため、図２１Ｅに示すように、右上腕の領域はレベル「−２」となり、右前腕の領域はレベル「２」となる。
【０１８２】
また、第１の姿勢においては、左足は全体は前に伸びているため、図２１Ｄに示すように、左膝上および左膝下の領域はレベル「１」となる。これに対し、第２の姿勢においては、左大腿は上に上げられ、左膝は後ろに向いているため、図２１Ｅに示すように、左大腿の領域はレベル「２」となり、左膝の領域はレベル「−２」となる。
【０１８３】
このように、各部位は、同じ明るさの面として捉えることができる。したがって、画像上の部位の明るさ情報から、部位の位置を推定することができる。
【０１８４】
次に、以上のように構成された姿勢状態推定装置１００ｂの動作について、図２２の処理フローを用いて説明する。なお、図２２において、実施の形態１の図４と共通するステップは、図４と同一のステップ番号を付し、その説明を省略する。
【０１８５】
推定尤度マップが生成されると（Ｓ４５００）、処理は、Ｓ４５１０ｂへ進む。
【０１８６】
Ｓ４５１０ｂにおいて、凹凸マップ推定部１４５ｂは、推定凹凸マップ生成処理を行う。推定凹凸マップ生成処理は、Ｓ４２００で取得された推定画像データと、Ｓ４５００で生成された推定尤度マップとから、推定凹凸マップを生成する処理である。
【０１８７】
図２３は、凹凸マップ生成処理（図２２のステップＳ４５１０ｂ）の処理フローを示す図である。
【０１８８】
推定凹凸マップの画素毎の情報は、例えば、部位ｋの尤度をｐｋと表し、部位がｎ個存在する場合には、凹凸ベクトルＯｉｊ＝［ｐ１，ｐ２，…，ｐｋ，…，ｐｎ］というデータ構造となる。ｐｋは２値情報であり、ｐｋの値は、例えば、部位ｋである可能性が無いことを示す０、および、部位ｋである可能性があることを示す１のいずれかを取る。
【０１８９】
Ｓ６１００ｂにおいて、凹凸マップ推定部１４５ｂは、処理の対象となる部位を１つ選択する。例えば、右腕を凹凸マップ生成処理の対象とする場合、凹凸マップ推定部１４５ｂは、まず、基幹部位から一番離れた右前腕を選択する。
【０１９０】
そして、Ｓ６２００ｂにおいて、凹凸マップ推定部１４５ｂは、Ｓ４５００で生成された推定尤度マップから、Ｓ６１００ｂで選択した部位の領域（以後、部位尤度領域とよぶ）を取得する。ここでは、推定尤度マップ上の右前腕の尤度が所定の閾値を超える画素を抽出し、右前腕の部位尤度領域とする。
【０１９１】
そして、Ｓ６３００ｂにおいて、凹凸マップ推定部１４５ｂは、Ｓ４２００で取得された推定画像データから、Ｓ６２００ｂで抽出した部位尤度領域の、明るさ情報を抽出する。明るさ情報は、例えば、推定画像データを構成する各画素のＲＧＢ値から輝度（画素の明るさ）のみを抽出したグレースケール（白黒階調の）画像へと変換することにより、抽出することができる。
【０１９２】
そして、Ｓ６４００ｂにおいて、凹凸マップ推定部１４５ｂは、Ｓ６３００ｂで求めた部位尤度領域の明るさ情報を、明るさの閾値を用いてグルーピングする。凹凸マップ推定部１４５ｂは、明るさの閾値を、あらかじめ設定された固定値としても良いし、動的に設定しても良い。ここでは、閾値を動的に設定する手法の一例について説明する。
【０１９３】
図２４は、右前腕の身体制約を用いたエリア分類の手法を説明するための図である。説明を簡略化するために、胴には右腕しかないものとして説明する。
【０１９４】
図２２のステップＳ４３００では、例えば、推定された右肩位置５００ｂを基準として、頭肩領域とこれに接続する胴領域５０１ｂが推定される。この場合、右上腕と右前腕が存在可能な領域は、領域５０２ｂのようになり、右前腕のみ存在可能な領域は、領域５０３ｂのようになる。領域５０２ｂ、５０３ｂは、例えば、図１１に示す部位領域対応テーブルから算出することができる。
【０１９５】
凹凸マップ推定部１４５ｂは、まず、右前腕の部位尤度領域のうち、右前腕のみ存在可能な領域５０３ｂから、当該領域に存在する画素の輝度値（明るさ情報）を抽出する。
【０１９６】
そして、凹凸マップ推定部１４５ｂは、対象画素の総数ｍのａ％をｎ個とすると、抽出した輝度値のデータから、小さいものから順にｎ個と、大きいものから順にｎ個とを除く。更に、凹凸マップ推定部１４５ｂは、これら２ｎ個のデータを除いた後のデータ（データの数はｍ−２ｎ）の最小値および最大値を、右前腕の明るさ情報の閾値（右前腕として扱う輝度値の範囲の上限値と下限値）とする。ここで、ａは、あらかじめ設定された値である。
【０１９７】
そして、凹凸マップ推定部１４５ｂは、例えば、右前腕の部位尤度領域のうち、この閾値に当てはまる（つまり、右前腕として扱う輝度値の範囲内である）画素の凹凸ベクトルＯｉｊのうち、右前腕を示す値に、右前腕である可能性があることを示す値（例えば１）を設定する。
【０１９８】
このように、凹凸マップ推定部１４５ｂは、身体制約により右前腕しか存在しない部位尤度領域の明るさ情報のみを用いて、輝度値の閾値を設定する。これにより、凹凸マップ推定部１４５ｂは、他の部位の影響を受けずに、右前腕の明るさ情報を持つ画素を特定することができる。
【０１９９】
次に、凹凸マップ推定部１４５ｂは、右前腕の部位尤度領域のうち、右上腕と右前腕のみ存在可能な領域５０２ｂから、画素の輝度値（明るさ情報）を抽出する。
【０２００】
そして、凹凸マップ推定部１４５ｂは、抽出した輝度値のデータの中から、前ステップで求めた右前腕の明るさ情報の閾値に当てはまるものを削除する。そして、凹凸マップ推定部１４５ｂは、残った輝度値のデータの総数ｐのｂ％をｑ個とすると、抽出した輝度値のデータから、小さいものから順にｑ個と、大きいものから順にｑ個とを除く。更に、凹凸マップ推定部１４５ｂは、これら２ｑ個のデータを除いた後のデータ（データの数はｐ−２ｑ）の最小値および最大値を、右上腕の明るさ情報の閾値（右前腕として扱う輝度値の範囲の上限値と下限値）とする。ここで、ｂの値は、あらかじめ設定された値である。
【０２０１】
そして、凹凸マップ推定部１４５ｂは、例えば、右前腕の部位尤度領域のうち、この閾値に当てはまる（つまり、右上腕として扱う輝度値の範囲内である）画素の凹凸ベクトルＯｉｊの、右上腕を示す値に、右上腕である可能性があることを示す値（例えば１）を設定する。
【０２０２】
このように、凹凸マップ推定部１４５ｂは、身体制約により右上腕と右前腕しか存在しない部位尤度領域の明るさ情報のデータから、右前腕として扱う輝度値の範囲内のデータを除いて閾値を設定する。これにより、凹凸マップ推定部１４５ｂは、他の部位の影響を受けずに右上腕の明るさ情報を持つ画素を特定し、右上腕の明るさ情報を持つ画素を精度良く特定することができる。
【０２０３】
このように、凹凸マップ推定部１４５ｂは、基幹部位から離れた部位から順に、その部位だけ存在する領域の明るさ情報を用いて明るさ情報の閾値を設定していき、部位ごとの明るさ情報をグルーピングして領域を推定する。
【０２０４】
なお、右前腕のみ存在可能な領域５０３ｂに、右前腕の部位尤度領域がない場合もあり得る。このような場合、凹凸マップ推定部１４５ｂは、例えば、右前腕と右上腕の部位尤度領域のうち、右上腕と右前腕のみ存在可能な領域５０２ｂに存在する画素の輝度情報を抽出し、右前腕と右上腕の２グループに分類する処理を行っても良い。そして、凹凸マップ推定部１４５ｂは、例えば、大津の２値化を用いて、上述の閾値を設定する。これにより、凹凸マップ推定部１４５ｂは、右前腕のみ存在可能な領域５０３ｂに右前腕の部位尤度領域がない場合にも、右上腕と右前腕の明るさ情報の閾値を設定することができる。
【０２０５】
また、右前腕のみ存在可能な領域５０３ｂで右前腕の明るさ情報を設定した後、右上腕と右前腕のみ存在可能な領域５０２ｂにもかかわらず、右前腕と異なる明るさ情報の画素がないために、右前腕と異なる閾値が設定できない場合もあり得る。このような場合、凹凸マップ推定部１４５ｂは、例えば、右上腕の明るさ情報に対して、右前腕と同じ値を設定しても良い。これにより、凹凸マップ推定部１４５ｂは、右上腕と右前腕の面の向きが似ている場合（真っ直ぐに伸びている場合）にも、右上腕の明るさ情報を設定することができる。
【０２０６】
図２３のＳ６５００ｂにおいて、凹凸マップ推定部１４５ｂは、凹凸マップ生成処理の対象となる部位の全てについて処理したかを判断する。例えば、左腕に関しても推定凹凸マップを生成する場合には、凹凸マップ推定部１４５ｂは、Ｓ６１００ｂに戻り、左腕に関して、右腕と同様の処理を行う。
【０２０７】
そして、凹凸マップ推定部１４５ｂは、生成した推定凹凸マップを、姿勢状態推定部１６０ｂへ出力する。
【０２０８】
図２２のＳ４６００ｂにおいて、姿勢状態推定部１６０ｂは、学習尤度マップと推定尤度マップとのマッチングを行い、その後、学習凹凸マップと推定凹凸マップとのマッチングを行う。そして、姿勢状態推定部１６０ｂは、推定尤度マップが、いずれかの学習尤度マップと一致するか否かを、実施の形態１と同様に判断する。
【０２０９】
より具体的には、姿勢状態推定部１６０ｂは、凹凸マップの尤度の値が２値の場合には、推定凹凸マップと学習凹凸マップとの間で、画素ごとに、尤度の一致度を評価する。例えば、姿勢状態推定部１６０ｂは、全画素に関して、識別子が一致する画素をカウントし、カウント値が最も大きい学習凹凸マップに対して、推定凹凸マップとの一致度が高いと判断する。なお、姿勢状態推定部１６０ｂは、尤度マップと同様に、サイズが異なる場合には、画像領域に対する拡大縮小処理を行ってからマッチングを行っても良い。
【０２１０】
図２１で説明したように、学習尤度マップは同一であっても、学習凹凸マップが異なるような姿勢状態もあり得る。したがって、学習尤度マップだけでなく、学習凹凸マップとのマッチングを併せて行うことにより、より正確な姿勢状態推定が可能となる。
【０２１１】
このように、本実施の形態に係る姿勢状態推定装置１００ｂは、凹凸マップを生成し、凹凸マップのマッチングを併用するので、姿勢推定の精度を更に向上させることができる。
【０２１２】
なお、本実施の形態は、実施の形態２に係る姿勢状態推定装置１００ａに適用しても良い。すなわち、学習尤度マップの生成と同様に、学習凹凸マップを生成するようにしても良い。
【０２１３】
２０１０年１２月９日出願の特願２０１０−２７４６７３の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【０２１４】
本発明に係る姿勢状態推定装置および姿勢状態推定方法は、関節を有する物体の姿勢状態を高精度に推定することができる姿勢状態推定装置および姿勢状態推定方法として有用である。
【符号の説明】
【０２１５】
１００、１００ａ、１００ｂ  姿勢状態推定装置
１１０  姿勢状態管理部
１２０  姿勢状態指定部
１３０  画像データ取得部
１４０  部位領域推定部
１４５ｂ  凹凸マップ推定部
１５０、１５０ａ  尤度マップ生成部
１６０、１６０ｂ  姿勢状態推定部
２００  単眼カメラ
３００  情報出力装置
【図１】
2012077287.tif 000003
【図２】
2012077287.tif 000004
【図３】
2012077287.tif 000005
【図４】
2012077287.tif 000006
【図５】
2012077287.tif 000007
【図６】
2012077287.tif 000008
【図７】
2012077287.tif 000009
【図８】
2012077287.tif 000010
【図９】
2012077287.tif 000011
【図１０】
2012077287.tif 000012
【図１１】
2012077287.tif 000013
【図１２】
2012077287.tif 000014
【図１３】
2012077287.tif 000015
【図１４】
2012077287.tif 000016
【図１５】
2012077287.tif 000017
【図１６】
2012077287.tif 000018
【図１７】
2012077287.tif 000019
【図１８】
2012077287.tif 000020
【図１９】
2012077287.tif 000021
【図２０】
2012077287.tif 000022
【図２１】
2012077287.tif 000023
【図２２】
2012077287.tif 000024
【図２３】
2012077287.tif 000025
【図２４】
2012077287.tif 000026
【手続補正書】
【提出日】平成24年4月6日(2012.4.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
関節により接続された複数の部位を有する物体である人を撮影した画像データに基づいて前記人の姿勢状態の推定を行う姿勢状態推定装置であって、
前記画像データから前記人の頭部および肩部の位置を検出し、検出された前記位置に基づいて、前記複数の部位のうち少なくとも２つの部位の前記画像データにおける可動範囲を、その部位の部位領域として推定する部位領域推定部と、
前記画像データから、前記部位領域について、前記部位領域に対応する各部位が位置することの尤もらしさの分布を示す尤度マップを生成する尤度マップ生成部と、
前記姿勢状態に予め対応付けられた前記尤度マップである学習尤度マップと、前記画像データに基づいて生成された前記尤度マップである推定尤度マップとの一致度が高いとき、当該学習尤度マップと対応付けられた前記姿勢状態を、前記人の姿勢状態として推定する姿勢状態推定部と、を有する、
姿勢状態推定装置。
【請求項２】
前記尤度マップ生成部は、
前記部位領域以外の領域については、前記部位領域に対応する各部位が位置することの尤もらしさを低くした前記推定尤度マップを生成する、
請求項１記載の姿勢状態推定装置。
【請求項３】
前記推定の対象となる前記姿勢状態の指定を受け付ける姿勢状態指定部、を更に有し、
前記姿勢状態推定部は、
前記推定の対象として指定された前記姿勢状態に対応付けられた前記学習尤度マップと前記推定尤度マップとの一致度が高いとき、前記人の姿勢状態が指定された前記姿勢状態である旨の通知を行う、
請求項１記載の姿勢状態推定装置。
【請求項４】
前記姿勢状態指定部は、
前記学習尤度マップの生成の指示と、前記生成の対象となる前記姿勢状態の指定とを受け付け、
前記尤度マップ生成部は、
前記学習尤度マップの生成が指示されたとき、所定の画像に基づいて前記学習尤度マップを生成し、
生成された前記学習尤度マップを、指定された前記姿勢状態に対応付けて格納する姿勢状態管理部、を更に有する、
請求項３記載の姿勢状態推定装置。
【請求項５】
前記尤度マップ生成部は、
前記画像データに含まれる平行線に基づいて、前記尤度マップを生成し、
前記姿勢状態推定部は、
前記平行線から取得される前記推定尤度マップの主要なエッジ方向と、前記学習尤度マップの主要なエッジ方向とを用いて、一致度を算出する、
請求項１記載の姿勢状態推定装置。
【請求項６】
前記画像データの画像における被写体の面を凹凸で区分したマップである凹凸マップを生成する凹凸マップ推定部、を更に有し、
前記姿勢状態推定部は、
更に、前記姿勢状態に予め対応付けられた前記凹凸マップである学習凹凸マップと、前記画像データに基づいて生成された前記凹凸マップである推定尤度マップとの一致度に基づいて、前記人の姿勢状態を推定する、
請求項１記載の姿勢状態推定装置。
【請求項７】
関節により接続された複数の部位を有する物体である人を撮影した画像データに基づいて前記人の姿勢状態の推定を行う姿勢状態推定方法であって、
部位領域推定部は、前記画像データから前記人の頭部および肩部の位置を検出し、検出された前記位置に基づいて、前記複数の部位のうち少なくとも２つの部位の前記画像データにおける可動範囲を、その部位の部位領域として推定し、
尤度マップ生成部は、前記画像データから、前記部位領域について、前記部位領域に対応する各部位が位置することの尤もらしさの分布を示す尤度マップを生成し、
姿勢状態推定部は、前記姿勢状態に予め対応付けられた前記尤度マップである学習尤度マップと、前記画像データに基づいて生成された前記尤度マップである推定尤度マップとの一致度が高いとき、当該学習尤度マップと対応付けられた前記姿勢状態を、前記人の姿勢状態として推定する、
姿勢状態推定方法。
【請求項８】
（削除）
【請求項９】
（削除）
【請求項１０】
（削除）
【請求項１１】
（削除）
【国際調査報告】
2012077287.tif 000027
2012077287.tif 000028
2012077287.tif 000029
2012077287.tif 000030
2012077287.tif 000031
2012077287.tif 000032
2012077287.tif 000033
2012077287.tif 000034