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