(57)【要約】【課題】単眼カメラを用いた場合においても、あらゆる動作に対して姿勢推定を行うこと。【解決手段】座標変換部１０３は、複数の部位座標点の画像データにおける座標を、予め保持されたカメラに関する幾何学的パラメータ情報に基づいて、人物に固有の３次元座標系である人物ローカル座標系における３次元部位座標へ変換する。姿勢推定部１０５は、複数の部位領域のうち第１の部位領域において、第１の部位領域に含まれる複数の部位座標点のうち尤度値が最大となる部位座標点の３次元部位座標と、尤度値が最大となる部位座標点以外の部位座標点の３次元部位座標を含む所定の平面領域上の所定の座標とを通る直線を第１の骨直線と推定し、第１の骨直線と、第１の部位領域と隣接する第２の部位領域において推定された第２の骨直線との交点を、人物の関節位置と推定する。【選択図】図１
2012123667.tif 000002
【特許請求の範囲】
【請求項１】
所定の３次元座標空間に設置されたカメラによって撮像される人物画像を含む画像データを取得する画像データ取得部と、
前記画像データ取得部において取得された前記画像データから、身体部位の領域を示す複数の部位領域を抽出し、少なくとも前記複数の部位領域のいずれかに含まれる複数の座標点ごとに部位らしさを示す尤度値を算出し、算出された尤度値に基づいて、各部位領域に含まれる複数の座標点から複数の部位座標点を部位領域ごとに抽出する部位座標点抽出部と、
前記複数の部位座標点の前記画像データにおける座標を、予め保持された前記カメラに関する幾何学的パラメータ情報に基づいて、前記人物に固有の３次元座標系である人物ローカル座標系における３次元部位座標へ変換する座標変換部と、
前記複数の部位領域のうち第１の部位領域において、前記第１の部位領域に含まれる複数の部位座標点のうち尤度値が最大となる部位座標点の３次元部位座標と、前記尤度値が最大となる部位座標点以外の部位座標点の３次元部位座標を含む所定の平面領域上の所定の座標とを通る直線を第１の骨直線と推定し、前記第１の骨直線と、前記第１の部位領域と隣接する第２の部位領域において推定された第２の骨直線との交点を、前記人物の関節位置と推定する姿勢推定部と、
を備えた姿勢推定装置。
【請求項２】
前記幾何学的パラメータ情報は、前記所定の３次元座標空間における前記カメラの設置角度、有効画素数、前記カメラの水平方向および垂直方向の画角、および前記カメラの解像度のうち、少なくとも１つを含む情報である請求項１に記載の姿勢推定装置。
【請求項３】
前記部位座標点抽出部は、
前記画像データ取得部において取得された前記画像データから、身体部位の領域を示す複数の部位領域を抽出する部位領域抽出部と、
前記複数の部位領域に含まれる複数の座標点ごとに部位らしさを示す尤度値を算出し、算出された尤度値に基づいて、前記複数の部位領域ごとに前記尤度値の分布である尤度マップを生成する尤度マップ生成部と、
前記複数の部位領域ごとの尤度マップに基づいて、各部位領域に含まれる複数の座標点から複数の部位座標点を抽出する座標点抽出部と、
を備える請求項１に記載の姿勢推定装置。
【請求項４】
前記部位領域抽出部は、前記画像データ取得部において取得された前記画像データから人物の頭部および肩部の特徴形状を示すオメガ形状を検出し、検出された前記オメガ形状に基づいて肩部の部位領域を推定し、前記肩部の部位領域と予め保持された身体部位の可動域情報とに基づいて、前記複数の部位領域を抽出する請求項３に記載の姿勢推定装置。
【請求項５】
前記座標点抽出部は、前記複数の部位領域ごとの尤度マップにおいて、前記尤度値が所定の閾値以上である座標点を所定数含む領域を楕円領域として抽出し、抽出された楕円領域に含まれる複数の座標点であって、前記楕円領域の中心点を通る直線上に位置する座標点を前記複数の部位座標点として抽出する請求項３に記載の姿勢推定装置。
【請求項６】
前記複数の部位座標点は、前記楕円領域の焦点である請求項５に記載の姿勢推定装置。
【請求項７】
前記部位座標点は、前記複数の部位領域ごとの尤度マップに含まれる座標点のうち、前記尤度値が最大の座標点から順に選択される請求項３に記載の姿勢推定装置。
【請求項８】
前記所定の平面領域上の所定の座標は、身体において各部位が他の部位との関係で存在しうる領域を示す情報である身体制約情報に基づいて定まる請求項１に記載の姿勢推定装置。
【請求項９】
前記姿勢推定部は、前記第２の部位領域において、前記第２の部位領域に含まれる複数の部位座標点のうち尤度値が最大となる部位座標点の３次元部位座標と、前記尤度値が最大となる部位座標点以外の部位座標点の３次元部位座標を含む所定の平面領域上の所定の座標とを通り、且つ、前記第１の部位領域における骨直線と交わる直線を第２の部位領域における骨直線と推定する請求項１に記載の姿勢推定装置。
【請求項１０】
前記第１の部位領域が肩部領域であって、前記第２の部位領域が上腕領域である請求項９に記載の姿勢推定装置。
【請求項１１】
画像データ取得部は、所定の３次元座標空間に設置されたカメラによって撮像される人物画像を含む画像データを取得し、
部位座標点抽出部は、前記画像データ取得部において取得された前記画像データから、身体部位の領域を示す複数の部位領域を抽出し、少なくとも前記複数の部位領域のいずれかに含まれる複数の座標点ごとに部位らしさを示す尤度値を算出し、算出された尤度値に基づいて、各部位領域に含まれる複数の座標点から複数の部位座標点を部位領域ごとに抽出し、
座標変換部は、前記複数の部位座標点の前記画像データにおける座標を、予め保持された前記カメラに関する幾何学的パラメータ情報に基づいて、前記人物に固有の３次元座標系である人物ローカル座標系における３次元部位座標へ変換し、
姿勢推定部は、前記複数の部位領域のうち第１の部位領域において、前記第１の部位領域に含まれる複数の部位座標点のうち尤度値が最大となる部位座標点の３次元部位座標と、前記尤度値が最大となる部位座標点以外の部位座標点の３次元部位座標を含む所定の平面領域上の所定の座標とを通る直線を第１の骨直線と推定し、前記第１の骨直線と、前記第１の部位領域と隣接する第２の部位領域において推定された第２の骨直線との交点を、前記人物の関節位置と推定する姿勢推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単眼カメラ画像に基づいて関節を有する物体の３次元関節位置および角度を推定することにより、当該物体姿勢推定する姿勢推定装置および姿勢推定方法に関する。
【背景技術】
【０００２】
近年、カメラによって撮像された画像に基づいて、人物の姿勢を推定する研究が行われている。記録された動画像をコンピュータを用いて解析した結果に基づいて人物の行動を判定することで、街頭での異常行動検知、店舗での購買行動分析、工場における作業効率化支援、スポーツにおけるフォーム指導などを人手に頼らず行えることが要求されている。
【０００３】
このような要求に対して、カメラによって撮像された画像に基づいて、人物の姿勢を推定する技術が提案されている（例えば、特許文献１）。特許文献１にかかる姿勢推定装置は、人物の様々な姿勢を表現した３Ｄ（three dimensions）人体モデルに基づいて生成された第１シルエット画像と、カメラによって撮像された人物画像から生成された第２シルエット画像との画像マッチングの結果に基づいて、姿勢を推定する。具体的には、第２シルエット画像とのマッチングスコアが最大である第１シルエット画像に対応する３Ｄ人体モデルの姿勢を、推定結果として出力する。
【０００４】
また、複数のカメラを用いて、人物の姿勢を推定する技術が提案されている（例えば、特許文献２）。特許文献２にかかる姿勢推定装置は、複数のカメラ画像を用いて、３次元人物領域を求め、その３次元人物領域の高さに対する幅の比および３次元人物領域の高さに対する奥行きの比に基づいて、被観察者の姿勢を判定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００７／０１０８９３号
【特許文献２】特開２００８−１４６５８３号公報
【非特許文献】
【０００６】
【非特許文献１】P. Viola and M. Jones. "Rapid Object Detection Using a Boosted Cascade of Simple Features," in Proc. of CVPR, vol.1, ppp.511-518, December, 2001
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来の特許文献１にかかる姿勢推定装置では、姿勢推定にシルエット画像を用いるため、カメラから見て人物の胴体と腕とが重なっている場合、人物が胴体の前で腕を縮めている姿勢と、胴体の前で腕を伸ばしている姿勢とは、同じ姿勢として推定される。このように、腕が胴体と重なっていて、腕の姿勢の違いがシルエット上に現れない場合には、正確な姿勢推定をすることは困難であった。さらに、特許文献１にかかる姿勢推定装置では、画像マッチング対象である第１シルエット情報をＤＢ（Data Base）として予め保持する必要があるため、推定可能な姿勢はＤＢに保持されている第１シルエット画像に対応する姿勢に限定される。
【０００８】
また、従来の特許文献２にかかる姿勢推定装置では、複数カメラを用いて奥行き情報を取得している。そのため、奥行き情報が取得できない単眼カメラを採用した場合、特許文献２にかかる姿勢推定装置では３次元人物領域を精度よく求められないという課題がある。また、人物領域の高さに対する幅および奥行きの比を用いて姿勢を判断するため、高さと幅または奥行きの比が同程度の姿勢は判別できないという課題がある。
【０００９】
本発明の目的は、単眼カメラを用いた場合においても、あらゆる動作に対して姿勢推定を行うことができる姿勢推定装置および姿勢推定方法を提供することである。
【課題を解決するための手段】
【００１０】
本発明の一態様の姿勢推定装置は、所定の３次元座標空間に設置されたカメラによって撮像される人物画像を含む画像データを取得する画像データ取得部と、画像データ取得部において取得された画像データから、身体部位の領域を示す複数の部位領域を抽出し、複数の部位領域に含まれる複数の座標点ごとに部位らしさを示す尤度値を算出し、算出された尤度値に基づいて、各部位領域に含まれる複数の座標点から複数の部位座標点を部位領域ごとに抽出する部位座標点抽出部と、複数の部位座標点の画像データにおける座標を、予め保持されたカメラに関する幾何学的パラメータ情報に基づいて、人物に固有の３次元座標系である人物ローカル座標系における３次元部位座標へ変換する座標変換部と、複数の部位領域のうち第１の部位領域において、第１の部位領域に含まれる複数の部位座標点のうち尤度値が最大となる部位座標点の３次元部位座標と、尤度値が最大となる部位座標点以外の部位座標点の３次元部位座標を含む所定の平面領域上の所定の座標とを通る直線を第１の骨直線と推定し、第１の骨直線と、第１の部位領域と隣接する第２の部位領域において推定された第２の骨直線との交点を、人物の関節位置と推定する姿勢推定部と、を具備する。
【発明の効果】
【００１１】
本発明によれば、画像特徴量と身体制約により部位推定を行うため、シルエット上同じとなる動作に対しても、正しい姿勢を推定することができる。また、動作拘束を用いないため、あらゆる動作に対して姿勢推定を行うことが可能である。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施の形態に係る姿勢推定システムの構成の一例を示すブロック図
【図２】単眼カメラ設置された３次元座標空間の一例を示す図
【図３】本実施の形態に係る部位座標点抽出部の構成の一例を示すブロック図
【図４】本実施の形態に係る肩関節位置の推定処理の説明に供する図
【図５】肩関節位置の推定処理（処理１）の説明に供する図
【図６】頭部領域と肩関節位置の一例を示す図
【図７】部位領域の一例を示す図
【図８】上腕領域の尤度マップの一例を示す図
【図９】部位領域と部位座標点の一例を示す図
【図１０】単眼カメラと撮像された画像データの撮像面との関係の一例を示す図
【図１１】単眼カメラ空間において人物が採り得る体勢を例示する図
【図１２】人物ローカル座標系のＹＺ平面の一例を示す図
【図１３】単眼カメラ空間の３次元座標のＸＺ平面の一例を示す図
【図１４】人物ローカル座標系のＸＺ平面の一例を示す図
【図１５】単眼カメラ空間の３次元座標のＸＺ平面の一例を示す図
【図１６】人物ローカル座標系のＸＺ平面の一例を示す図
【図１７】単眼カメラ空間の３次元座標のＸＺ平面の一例を示す図
【図１８】人物ローカル座標系のＸＺ平面の一例を示す図
【図１９】人物ローカル座標系における部位領域と部位座標点の一例を示す図
【図２０】本実施の形態に係る姿勢推定装置の別の構成の一例を示すブロック図
【発明を実施するための形態】
【００１３】
以下、本発明の各実施の形態について、図面を参照して詳細に説明する。
【００１４】
（一実施の形態）
本実施の形態に係る姿勢推定装置の構成について説明する。
【００１５】
図１は、姿勢推定装置１００と単眼カメラ２０１とから構成される姿勢推定システムを示すブロック図である。
【００１６】
図１に示すように、姿勢推定装置１００は、画像データ取得部１０１と、部位座標点抽出部１０２と、座標変換部１０３と、カメラ情報保持部１０４と、姿勢推定部１０５とを備える。姿勢推定装置１００は、画像データに基づいて、画像データに含まれる人物の姿勢を推定する。以下、図１を用いて、姿勢推定装置１００の動作の概要を説明する。
【００１７】
なお、本実施の形態における姿勢とは、３次元座標系における人物の関節の位置または、関節の角度および部位の長さによって表現される。従って、姿勢推定とは、所定の３次元座標系において人物の関節の位置または角度と部位の長さを推定することである。関節の位置および角度は、人体の部位のうち所定の部位を基準として相対的に表現されてもよく、または、３次元座標系において絶対値として表現されてもよい。
【００１８】
画像データ取得部１０１は、所定の３次元座標空間に設置された単眼カメラ２０１（撮像系）によって撮像された画像データを取得する。以下の説明では、画像データは一人の人物の人物画像を含むとして説明するが、その限りではなく、複数の人物画像を含んでもよい。
【００１９】
図２は、単眼カメラ２０１が所定の３次元座標空間に設置された様子を示す。図２において、所定の位置に設置された単眼カメラ２０１の光軸２０２と、図２に示す空間における３次元座標の垂直軸（Ｙ軸）との角度が、単眼カメラの設置角度２０３である。以下、設置角度２０３は角度（θ１）と表記する。また、画角２０４は、単眼カメラ２０１の画角である。単眼カメラ２０１が撮像する画像は、画角２０４の範囲に含まれる平面、例えば平面２０５に焦点（フォーカス）を合わせて撮像される。
【００２０】
なお、本実施の形態において、カメラは単眼カメラとして説明するが、その限りではなく、ステレオカメラまたは複数のカメラでもよい。ステレオカメラの場合には、片方のカメラによって撮像された画像データと後述する幾何学パラメータを採用すればよい。複数のカメラの場合には、そのうち一台のカメラによって撮像された画像データと後述する幾何学パラメータを採用すればよい。また、カメラは、換言すると撮像系である。
【００２１】
図１に戻り、部位座標点抽出部１０２は、画像データ取得部１０１によって取得された画像データを取得し、取得された画像データに基づいて、身体の各部位らしさを示す尤度マップを生成する。部位座標点抽出部１０２は、生成された尤度マップに基づいて、画像データ上の各部位領域を代表する座標点（以下、「部位座標点」という）の座標を算出する。部位座標点の座標を、部位座標と呼称する。部位座標点抽出部１０２によって算出される部位座標は、画像データの座標系における２次元座標によって表現されるため、２次元部位座標と呼称する。
【００２２】
具体的には、部位座標点抽出部１０２は、画像データ取得部１０１から取得された画像データから、身体部位の領域を示す部位領域を複数抽出する。部位領域の抽出方法は、身体の頭部および肩部を示すオメガ形状（以下、「オメガ形状」という）を検出し、検出されたオメガ形状に基づいて画像データ上の肩領域を推定する。推定された肩領域に基づいて、画像データ上の上腕領域が抽出される。このように、順次、身体の部位領域が抽出される。
【００２３】
なお、本実施の形態においては、右肩と左肩を結ぶ直線の方向を、肩の向きとする。
【００２４】
画像データ上で抽出された各部位領域において、各部位領域に含まれる画素ごとに、各部位らしさを示す尤度値が算出される。尤度値の分布が尤度マップである。尤度値は、部位領域ごとに算出されてもよく、画像データ全体について算出した後に、部位領域ごとの尤度値として判別してもよい。すなわち、複数の部位領域に含まれる複数の画素ごとに尤度値を算出してもよい。尤度値の算出方法の詳細は、後述する。
【００２５】
なお、本実施の形態では画素を単位として説明するが、複数の画素を一つの画素とみなして、同様の処理を行ってもよい。こうすることで、高速に処理が行える。複数の画素をひとつの画素とみなす場合、複数の画素の重心となる画素の値をその複数の画素の値として用いてもよいし、複数の画素の値の平均値を、その複数の画素の値として用いてもよい。
【００２６】
なお、本実施の形態における部位とは、人物の身体のうち関節で分割された部分であり、例えば、頭、肩、右上腕、右前腕、左上腕、左前腕、右膝上、右膝下、左膝上、および左膝下である。また、部位領域は画像データ上において部位が占める領域であり、例えば、上腕の画像データ上の領域を上腕領域という。
【００２７】
そして、部位座標点抽出部１０２は、各部位領域の尤度マップに基づいて、部位領域ごとに、各部位領域に含まれる複数の座標点から複数の部位座標点を抽出する。例えば、部位領域ごとに部位座標点を２つ抽出した場合、部位領域の数に２を乗算した個数の部位座標点が抽出される。抽出された部位座標点の座標は、画像データの座標系における２次元部位座標として算出される。部位座標点抽出部１０２は、部位領域ごとの、複数の部位座標点の尤度値および当該部位座標点の座標（２次元部位座標）を出力する。
【００２８】
なお、部位座標点が画像データ上の画素を複数含む座標点であってもよい。かかる場合、２次元部位座標は、部位座標点に含まれる複数の画素のうち所定の画素の座標である。例えば、２次元部位座標は、部位座標点に含まれる複数の画素のうち中心に位置する画素の座標である。また、部位座標点の尤度値は、部位座標点に含まれる複数の画素の尤度値に基づいて、部位座標点抽出部１０２において算出される。
【００２９】
なお、部位座標は、画像データ上に複数の人物画像が含まれる場合には、各人物ごとに定めた座標系で表現してもよいし、または、各部位領域の座標系で表現してもよい。かかる場合、各人物ごとの座標系または各部位ごとの座標系が、画像データ全体の座標系の何処に位置するかについての情報を保持しておけばよい。
【００３０】
次に、座標変換部１０３は、各部位領域に対応した複数の部位座標点の２次元部位座標を、部位座標点抽出部１０２から取得する。そして、座標変換部１０３は、カメラの設置等に関する幾何学的パラメータ情報（カメラの設置角度、カメラの画角、解像度などを含む）と画像データにおける人物画像の位置情報とに基づいて、２次元部位座標を、人物ごとの３次元のローカル座標系（以下、「人物ローカル座標系」という）における３次元座標（以下、「３次元部位座標」という）へ変換する。なお、２次元部位座標から３次元部位座標への変換方法の詳細は後述する。
【００３１】
そして、座標変換部１０３は、部位領域ごとの、複数の部位座標点の尤度値および当該部位座標点の３次元部位座標を姿勢推定部１０５へ出力する。
【００３２】
カメラ情報保持部１０４は、上記幾何学的パラメータ（カメラの設置角度、カメラの画角、解像度などを含む）を保持する。カメラ情報保持部１０４は、座標変換部１０３へ、幾何学的パラメータ情報を出力する。
【００３３】
姿勢推定部１０５は、部位領域ごとの、複数の部位座標点の尤度値および当該部位座標点の３次元部位座標を、座標変換部１０３から取得する。そして、姿勢推定部１０５は、部位領域ごとに、部位座標点の３次元部位座標を含む所定の平面領域を全て通る直線を骨直線として算出する。姿勢推定部１０５は、部位領域ごとに算出された骨直線の交点を関節位置と推定し、骨直線がなす角度を関節角度と推定する。
【００３４】
以上の構成を有する姿勢推定装置１００の動作について、各ブロックごとに詳細に説明する。
【００３５】
画像データ取得部１０１は、所定の３次元座標空間の所定位置に設置された単眼カメラ２０１によって撮像された一つの画像データを取得する。画像データ取得部１０１は、単眼カメラ２０１と接続されてリアルタイムに撮像された画像データを取得してもよいし、予め撮像された画像を取得してもよい。画像データ取得部１０１は、取得した画像データを部位座標点抽出部１０２に出力する。
【００３６】
次に、部位座標点抽出部１０２について説明する。図３は、部位座標点抽出部１０２のブロック構成を示す図である。部位座標点抽出部１０２は、部位領域抽出部３０１と、尤度マップ生成部３０２と、座標点抽出部３０３とを有する。
【００３７】
部位領域抽出部３０１は、画像データ取得部１０１から取得された画像データから、各部位領域を抽出する。抽出された各部位領域は画像データ上の座標情報によって特定される。尤度マップ生成部３０２は、部位領域抽出部３０１において抽出された部位領域毎に尤度マップを生成する。座標点抽出部３０３は、尤度マップ生成部３０２から各部位領域の尤度マップを取得し、取得された尤度マップに基づいて各部位領域の部位座標点を抽出し、部位座標点の座標を部位座標として算出する。以下、図３を用いて、部位座標点抽出部１０２について、詳細に説明する。
【００３８】
部位座標点抽出部１０２において、部位領域抽出部３０１は、画像データ取得部１０１から画像データを取得する。部位領域抽出部３０１は、取得された画像データに基づいて、後に算出する各部位の尤度マップの精度向上のために、各部位領域を抽出する処理を行う。
【００３９】
各部位領域を抽出する処理は、肩関節位置を推定する処理（処理１）と、身体向きを推定する処理（処理２）と、部位領域を抽出する処理（処理３）とからなる。さらに、処理１は、後述のステップ１ないしステップ５から構成される。
【００４０】
図４は、肩関節位置の推定処理（処理１）の説明に供する図である。以下、図４を用いて、肩関節位置の推定処理について説明する。
【００４１】
肩関節位置の推定処理（処理１）では、ステップ１として、画像データ４０１から、身体の頭部および肩部を含む領域の特徴的なエッジ形状であるオメガ形状を検出する。
【００４２】
オメガ形状を始めに検出する理由は、身体の頭部および肩部を含む領域の検出結果に基づいて他の部位領域を推定することで、監視カメラ等を用いた場合に最も安定して撮像される確率が高い頭部および肩部を始めに抽出することになり、その他の部位領域の候補を精度よく絞りこむことができるためである。
【００４３】
オメガ形状を検出する処理は、例えば、数多くのサンプル画像（頭・肩検出であれば、頭・肩が写っている画像と、頭・肩が写っていない画像を用意する）を用いて、Ｒｅａｌ  ＡｄａＢｏｏｓｔのようなＢｏｏｓｔｉｎｇ手法により特徴量の傾向を学習することで、検出器を作成する。特徴量としては、例えば、ＨｏＧ（Histogram of Gradient）特徴量、Ｓｐａｒｓｅ特徴量、Ｈａａｒ特徴量などどのような種類の特徴量も用いることができる。また、学習方法も、Ｂｏｏｓｔｉｎｇ手法のほか、ＳＶＭ（Support Vector Machine：サポートベクタマシン）、ニューラルネットワークなどを利用することも可能である。
【００４４】
ここで、オメガ形状の検出処理（ステップ１）において検出されたオメガ形状を含む領域をオメガ領域と呼称する。図４において、画像データ４０１に含まれるオメガ形状４０２は、オメガ形状検出処理によって検出されたオメガ形状である。このようにして、肩関節位置の推定処理のステップ１は、オメガ形状４０２を含むオメガ領域４０３を抽出する。
【００４５】
次に、ステップ２として、画像データ４０１において検出されたオメガ領域４０３において、検出されたオメガ形状４０２に囲まれる領域に含まれるノイズを取り除く。具体的には、オメガ領域４０３に含まれる画素のうち、オメガ形状４０２を構成する複数の画素はデジタル信号“１”であり、何ら物体が存在しない画素はデジタル信号“０”である場合において、オメガ形状４０２に囲まれる領域にもデジタル信号“１”であるノイズが含まれる場合がある。かかる場合には、所定の画素分または所定の割合で拡大又は縮小するクロージング処理を行うことでオメガ形状４０２に囲まれる領域からノイズを取り除く。
【００４６】
これにより、後述のステップ３において距離ヒストグラムを作成する場合に、ノイズによる誤差を低減ないし除去することができる効果を奏する。
【００４７】
次に、ステップ３として、頭部および肩部から構成されるオメガ領域４０３において、オメガ領域４０３の下辺部４０４からオメガ形状４０２を構成する複数の画素に到達するまでのＹ軸方向の距離を算出して、距離ヒストグラムが作成される。
【００４８】
図５Ａ〜図５Ｃは、オメガ領域４０３を拡大した図である。図５Ａにおいて、下辺部４０４から直近のデジタル信号“１”の画素に到達するまでのＹ軸方向の距離とは、線分５０１ｎ（ｎは正の整数）である。なお、ステップ２において、クロージング処理により、オメガ形状４０２に囲まれる領域に含まれるノイズを取り除いているため、ステップ３において、下辺部４０４から直近のデジタル信号“１”の画素とは、オメガ形状４０２に含まれる画素である。図５Ｂは、線分５０１ｎ（ｎは正の整数）に基づいて作成された距離ヒストグラムである。なお、図５Ｂは、図５Ａの下辺部４０４をＸ軸として、距離ヒストグラムを表示している。
【００４９】
次に、ステップ４として、図５Ｂに示す距離ヒストグラムに対し２値化処理が行われる。例えば、距離ヒストグラムにおいて、所定の閾値より大きければ“１”、所定の閾値より小さければ“０”とする。なお、大津の２値化と称される手法（大津の手法ともいう）を用いても良い。
【００５０】
ここでは、頭領域と肩領域の二つのクラスに分類するために、下辺部４０４から肩領域までの距離と、下辺部４０４から頭領域までの距離とを、所定の閾値で分類する。図５Ｃは、距離ヒストグラムを２値化処理した結果である。
【００５１】
２値化した結果のうち、中央の部分を頭領域とし、両端の部分を各肩領域とする。人物がカメラに対して正面を向いているとわかっている場合、画面上左の肩領域を右肩領域、画面右側の領域を左肩領域とする。人物がカメラに対して前を向いているか、後ろを向いているかを判断するためには、頭領域の色情報を用いて、所定の閾値以上の肌色成分が抽出されれば前を向いていると判断するようにしてもよい。
【００５２】
ここで、２値化後の肩領域の左半分に含まれるオメガ形状４０２を構成するデジタル信号“１”の画素の重心を右肩関節として推定し、右半分に含まれるオメガ形状４０２を構成するデジタル信号“１”の画素の重心を左肩関節として推定してもよい。また、図６に示すように、頭部の重心６０１とオメガ形状４０２との距離の比によって、肩の関節位置を求めてもよい。図６においては、頭の重心６０１（Ｈ）のＸ，Ｙ座標を（ｘｈ，ｙｈ）とし、エッジの傾きが閾値を越えた点を右肩の端６０２（ＲＳＥ）とし、端６０２（ＲＳＥ）のＸ座標を（ｘ＿ｒｓｅ）とし、頭の重心６０１（Ｈ）と端６０２（ＲＳＥ）の水平距離をＲＤとする。
【００５３】
最後に、ステップ５として、頭部の重心６０１（Ｈ）からの水平距離ＲＤの８０％の位置に右肩関節６０４（ＲＳ）があるとして、右肩関節６０４（ＲＳ）のＸ座標は、（ｘ＿ｒｓｅ＋０．２×ＲＤ）と表せる。また、右肩関節６０４（ＲＳ）を通り垂直な直線とエッジの交点６０３を（ＲＳＵ）とし、交点６０３（ＲＳＵ）のＹ座標を（ｙ＿ｒｓｕ）とすると、右肩関節６０４（ＲＳ）のＹ座標は（ｙ＿ｒｓｕ−０．２×ＲＤ）と表してもよい。この場合、右肩関節６０４（ＲＳ）は（ｘ＿ｒｓｅ＋０．２×ＲＤ，ｙ＿ｒｓｕ−０．２×ＲＤ）と表せる。
【００５４】
なお、水平方向の距離ではなく、垂直方向の距離に基づいて、右肩関節６０４（ＲＳ）の位置を算出してもよいし、比率は８０％でなくてもよいし、Ｘ方向とＹ方向の比率は異なっていてもよい。
【００５５】
左肩関節についても、右肩関節における処理と同様の処理を行うことで、左肩関節６０５（ＬＳ）の位置を算出する。
【００５６】
次に、身体の向きを導出する処理（処理２）が行われる。具体的には、図６において、頭部の重心６０１（Ｈ）と右肩関節６０４（ＲＳ）と左肩関節６０５（ＬＳ）との位置に基づいて身体の向きを導出する。部位領域抽出部３０１は、頭部の重心６０１（Ｈ）と右肩関節６０４（ＲＳ）と左肩関節６０５（ＬＳ）との３点と身体の向きの対応表を予め保持しておく。保持された対応表における３点の情報は、頭部の重心６０１（Ｈ）を原点とし、頭部の重心６０１（Ｈ）から右肩関節６０４（ＲＳ）までの長さ、または、左肩関節６０５（ＬＳ）までの長さを１に正規化しておいてもよい。さらに、保持された対応表には、右肩関節６０４（ＲＳ）と左肩関節６０５（ＬＳ）の座標が書かれていてもよいし、以下の事項が記載されていてもよい。
・頭部の重心６０１（Ｈ）を通りＸ軸に垂直な直線と、頭部の重心６０１（Ｈ）と右肩関節６０４（ＲＳ）を通る直線のなす角
・頭部の重心６０１（Ｈ）を通りＸ軸に垂直な直線と、頭部の重心６０１（Ｈ）と左肩関節６０５（ＬＳ）を通る直線のなす角
・頭部の重心６０１（Ｈ）から右肩関節６０４（ＲＳ）までの長さを１としたときの頭部の重心６０１（Ｈ）から左肩関節６０５（ＬＳ）までの長さ
【００５７】
なお、身体の向きを導出する処理（処理２）は、人物の身体向きが既知である場合には、行わなくてもよい。また、当該処理は、後段の処理で行われてもよい。
【００５８】
次に、部位領域を推定する処理（処理３）が行われる。具体的には、頭部の重心６０１（Ｈ）と右肩関節６０４（ＲＳ）と左肩関節６０５（ＬＳ）との位置に基づいて、部位領域抽出部３０１は、他の部位領域の存在可動域を求める。部位領域抽出部３０１は、肩の関節位置と各部位の可動域を予め学習して保持しておき、頭部の重心６０１（Ｈ）と右肩関節６０４（ＲＳ）と左肩関節６０５（ＬＳ）との３点と、各部位の可動域との対応表を保持しておく。予め保持された各部位の可動域情報は、人物の身体制約情報に基づいて予め学習される。
【００５９】
なお、身体制約情報とは、身体において各部位が他の部位との関係で存在しうる領域を示す情報である。身体制約情報についての詳細は、後述する。なお、対応表に頭部の重心６０１（Ｈ）は含めなくてもよい。こうすることで、対応表のデータ量を削減することができる。
【００６０】
なお、対応表に含まれる３点の情報は、頭部の重心６０１（Ｈ）を原点とし、頭部の重心６０１（Ｈ）から右肩関節６０４（ＲＳ）までの長さを１に正規化しておいてもよい。さらに、対応表には、右肩関節６０４（ＲＳ）と左肩関節６０５（ＬＳ）の座標が記載されていてもよいし、以下の事項が記載されていてもよい。
・頭部の重心６０１（Ｈ）を通りＸ軸に垂直な直線と、頭部の重心６０１（Ｈ）と右肩関節６０４（ＲＳ）を通る直線のなす角
・頭部の重心６０１（Ｈ）を通りＸ軸に垂直な直線と、頭部の重心６０１（Ｈ）と左肩関節６０５（ＬＳ）を通る直線のなす角
・頭部の重心６０１（Ｈ）から右肩関節６０４（ＲＳ）までの長さを１としたときの頭部の重心６０１（Ｈ）から左肩関節６０５（ＬＳ）までの長さ
【００６１】
このように、頭の重心６０１（Ｈ）から右肩関節６０４（ＲＳ）までの長さを１として正規化した対応表とすることで、画像サイズの大きさに関係なく、可動域を求めることができる。
【００６２】
各部位領域の抽出方法は、各部位の可動域情報、例えば各部位の可動域に関する対応表に基づいて、画像データに含まれる各画素が、複数の部位領域のうち何れの部位領域に属する画素であるか、または、何れの部位領域にも属しない画素であるかを判断する。所定の部位領域に属する画素であると判断された画素の集合によって、当該所定の部位領域の位置情報が算出される。部位領域の位置情報の詳細については、後述する。
【００６３】
具体的には、画像データに含まれる各画素が、Ｋｉｊ＝［ｋ１、ｋ２、ｋ３、ｋ４、ｋ５］（ｉ、ｊは、画像データのＸ、Ｙ座標）なる形式の情報を有し、ｋ１が上腕に、ｋ２が前腕に、ｋ３が胴体に、ｋ４が膝上に、ｋ５が膝下に含まれる画素であるか否かを示す情報である。かかる場合において、Ｋｉｊの座標（ｉ、ｊ）と、前述の対応表とに基づいて、所定の画素（Ｋｉｊ）が、何れの部位の可動域に含まれるかが判定される。
【００６４】
所定の画素（Ｋｉｊ）が前腕に含まれる画素であると判定された場合には、Ｋｉｊ＝［０、１、０、０、０］と表され、画像データの全画素のうち、ｋ２が「１」となる複数の画素の集合によって前腕領域が特定される。
【００６５】
ここで、以下においては、画像データに含まれる各画素に付された情報Ｋｉｊ＝［ｋ１、ｋ２、ｋ３、ｋ４、ｋ５］（ｉ、ｊは、画像データのＸ、Ｙ座標）を総称して、「部位領域の位置情報」と呼称する。画像データに含まれる全ての画素に付された情報Ｋｉｊの集合によって、各部位領域の画像データにおける位置が特定されるからである。
【００６６】
そして、部位領域抽出部３０１は、画像データに含まれる複数の画素毎に、所定の部位領域に属する画素であるか、または、何れの部位領域にも属さない画素であるかを示す情報を付して、画像データを尤度マップ生成部３０２に出力する。
【００６７】
具体的には、部位領域抽出部３０１は、画像データに含まれる複数の画素毎に、Ｋ＝［ｋ１、ｋ２、ｋ３、ｋ４、ｋ５］なる形式の情報、および、ｋ１ないしｋ５が何れの部位領域の識別情報であるかを示す情報を、尤度マップ生成部３０２に出力する。
【００６８】
なお、部位領域か否かを示す場合に、部位領域であれば１、部位領域でないならば０として画素情報を示したが、その限りではなく、部位領域に属するか否かを示すものであればよい。また、属するか否かの２段階ではなく、属する可能性の重み付けした多段階の値を用いてもよい。
【００６９】
なお、各部位領域の推定方法は、画像データに含まれる各画素が、所定の部位領域に含まれる画素か否かによって各部位領域を推定したが、その限りではない。例えば、画像データ上において、予め部分領域を設けて各部位領域であることを示す識別情報を付し、当該部分領域に含まれる画素の座標情報によって、各部位領域を推定してもよい。かかる場合においても、各部位領域が画像データにおいて何れの位置に存在するかを示す情報を、「部位領域の位置情報」と呼称し、部位領域の位置情報は、各部位領域であることを示す識別情報と供に、尤度マップ生成部３０２に出力される。
【００７０】
以上のようにして推定された部位領域の模式図を、図７に示す。図７において、部位領域抽出部３０１は、頭領域７０１、肩領域７０２、右上腕領域７０３、右前腕領域７０４、左上腕領域７０５、左前腕領域７０６、右膝上領域７０７、右膝下領域７０８、左膝上領域７０９、および左膝下領域７１０を、部位領域として推定した例である。なお、本実施の形態において部位領域は矩形として説明するが、この限りではない。また、図７においては、人物が直立している状態を模式図として示しているため各部位領域が重畳していないが、人物の姿勢によっては各部位領域が重畳する場合もある。
【００７１】
なお、各部位領域を推定する処理の別の例としては、特許文献１と同様の手法を用いて、画像データにおいてエッジを抽出して、エッジによって囲まれた領域のＹ座標の値の範囲に注目して推定してもよい。具体的には、例えば、エッジによって囲まれた領域において、Ｙ座標の値が最も高い位置から２０％までの領域を頭部の領域、１５％から６５％までの領域を胴の領域、５５％から８５％までの領域を膝上の領域、７５％から１００％までの領域を膝下の領域というように推定してもよい。
【００７２】
なお、各部位領域を推定する処理の別の例としては、例えば、部位ごとに特定するのではなく、背景差分をとって動体として抽出した領域を含む領域全体を、各部位の部位領域候補としてもよい。これにより、部位領域を推定する処理の高速化が図れるという効果を奏する。
【００７３】
なお、部位領域抽出部３０１は、後述する各部位の尤度マップの精度向上を目的として、各部位領域を抽出するため、本実施の形態における部位座標点抽出部１０２に不可欠の構成要素ではない。すなわち、部位座標点抽出部１０２は、尤度マップ生成部３０２と、座標点抽出部３０３とによって構成されてもよい。
【００７４】
次に、尤度マップ生成部３０２は、部位領域抽出部３０１から、各部位領域の識別情報と、それに対応する各部位領域の位置情報とを取得し、各部位領域の画像データを特定する。ここで、各部位領域の識別情報は、部位領域抽出部３０１と尤度マップ生成部３０２とで共有される。
【００７５】
尤度マップ生成部３０２は、各部位に適した画像特徴量を判別する処理によって、部位領域内の画素ごとに各部位らしさを示す尤度値を算出し、尤度値の分布である尤度マップを生成する。尤度値は、０から１までに正規化してあってもよいし、正の整数でもよいし、負の数を含む実数でもよい。
【００７６】
ここで、従来から画像中の注目対象として顔を認識するための技術として、矩形情報を基にした複数の弱識別器の総和をＡｄａＢｏｏｓｔにより統合して強識別器を作成し、強識別器をカスケード接続させて、画像中の注目対象として顔を認識する技術がある（非特許文献１参照）。
【００７７】
尤度値を算出する場合に用いられる特徴量は、非特許文献１に記されているＳＩＦＴ（Scale-Invariant Feature Transform）特徴量を応用することで、本実施の形態においても適用できる。ＳＩＦＴ特徴量を用いた手法は、物体のスケール変化、物体の回転、および物体の平行移動に対して影響を受けないために不変である特徴量を抽出する。この特徴量は、１２８次元のベクトルにより構成されており、画素毎に特徴量が計算される。ＳＩＦＴ特徴量を用いた手法は、特に、腕のように様々な方向に回転可能な部位の検出に有効である。
【００７８】
ＳＩＦＴ特徴量を用いた手法を、本実施の形態において適用した場合、強識別器Ｈｋ（ｋ＝１〜５）は、上腕（ｋ＝１）、前腕（ｋ＝２）、胴体（ｋ＝３）、膝上（ｋ＝４）、膝下（ｋ＝５）など、部位領域ごとに予め機械学習により生成され、尤度マップ生成部３０２に保持される。識別器Ｈｋは、ＡｄａＢｏｏｓｔアルゴリズムにより生成される。すなわち、予め部位ごとに用意されている複数の学習画像に対して、上腕、前腕、胴体、膝上、膝下か否かが所望の精度で判定できるまで学習が繰り返され、複数の弱識別器によって識別器Ｈｋが生成される。
【００７９】
所定の部位領域の画像データに含まれる所定の画素の特徴量が識別器Ｈｋに入力されると、識別器Ｈｋは、強識別器である識別器Ｈｋを構成する各弱識別器の出力に対して、弱識別器毎の信頼度αを乗算した値の総和を算出する。そして、識別器Ｈｋは、算出された総和から所定の閾値Ｔｈを減算して尤度値ｃｋ（ｋ＝１〜５）を算出する。
【００８０】
尤度値ｃｋ（ｋは正の整数）は、所定の画素が所定の部位であることの確からしさを示す値である。ｃ１は上腕の尤度値を示し、ｃ２は前腕の尤度値を示し、ｃ３は胴体の尤度値を示し、ｃ４は上足の尤度値を示し、ｃ５は下足の尤度値を示す場合において、各画素の尤度値は、Ｃｉｊ＝［ｃ１、ｃ２、ｃ３、ｃ４、ｃ５］と表せる。ここで、ｉは、画像データにおける、画素のＸ座標を示し、ｊは、Ｙ座標を示す。
【００８１】
すなわち、ＳＩＦＴ特徴量は画像データに含まれる画素ごとに算出され、部位領域ごとに識別器が用いられる。画像データに含まれる全ての画素について１２８次元のベクトルによる特徴量が計算され、各画素が属する部位領域に対応した識別器に基づいて、各画素の尤度が算出される。画素ごとに算出された尤度値の分布が尤度マップである。
【００８２】
なお、部位領域に限定せず、全画素について尤度を求めてから、その画素が各領域に含まれるかを判断するようにしてもよい。その場合、各画素について、その画素が推定した各部位領域に含まれるか判断し、含まれれば、その部位の識別器を用いて尤度を算出し、含まなければ、その画素のその部位の値を０としてもよい。換言すると、部位領域抽出部３０１から出力された各画素の（Ｋｉｊ）からなる行列式と、尤度マップ生成部３０２において算出された各画素の（Ｃｉｊ）からなる行列式とに基づいて尤度値を算出してもよい。具体的には、行列式を積算することで尤度値が算出される。
【００８３】
また、推定した部位領域ごとにその部位の識別器を用いて尤度を算出して、部位ごとに値を保持しておいてもよい。
【００８４】
なお、ＳＩＦＴ特徴量や識別器を用いず、エッジから平行線を抽出することで尤度マップを生成してもよい。例えば、肩関節の長さと各部位の標準的な太さの値の対応表を持っておき、推定した部位領域内に、その部位の標準的な太さの平行線があるかを３６０度回転しながら検索し、あればその平行線で囲まれた領域を候補領域として投票することで、尤度マップを生成してもよい。
【００８５】
このように処理することで、各画素について、平行線の方向と投票数をもつ尤度が算出できる。例えば、平行線の角度を８つに分けて平行線を抽出した場合、画素ごとに８方向に関する投票数をもつ尤度情報としてもよい。
【００８６】
さらに、その部位の標準的な太さの近傍の値の太さの平行線について、同様に処理してもよい。このように処理することで、各画素について、平行線の幅と平行線の方向と投票数をもつ尤度情報が算出できる。例えば、所定の２つの幅に関する平行線について、角度を８つに分けて平行線を抽出した場合、画素ごとに１６項目（２幅ｘ８方向）の投票数をもつ尤度情報としてもよい。
【００８７】
なお、この所定の幅や角度の幅は、部位ごとに変えてもよい。身体制約に基づき部位ごとに所定の幅や角度の幅を変えることで、よりその部位の特徴に適合した値を尤度情報として算出できる。
【００８８】
なお、前述のとおり、部位座標点抽出部１０２が部位領域抽出部３０１を含まない場合においては、尤度マップ生成部３０２は、画像データ取得部１０１から画像データを取得し、取得された画像データに含まれる画素ごとに特徴量が算出され、部位領域ごとの識別器が用いられる。画像データに含まれる全ての画素について１２８次元のベクトルによる特徴量が算出され、各画素について、部位領域ごとの尤度値が算出される。
【００８９】
このようにして、尤度マップ生成部３０２は、各部位領域の尤度マップを生成し、座標点抽出部３０３に出力する。
【００９０】
尤度マップは、画素ごとに、各部位領域である確率を示す尤度情報を有する。例えば、ある画素の部位ｋの尤度をｐｋと表すとし、部位は１からｎ個あるとする場合、Ｘ，Ｙ座標がｉ，ｊの画素の尤度ベクトルＰｉｊは、Ｐｉｊ＝（ｐ１，ｐ２，…，ｐｋ，…，ｐｎ）のように示され、尤度マップはこの尤度ベクトルが画素数分だけ含まれるものとなる。
【００９１】
なお、本実施の形態においては、部位領域抽出部３０１と尤度マップ生成部３０２との間において、推定された各部位領域の画像データを共有するために、位置情報と識別情報とを用いたが、その限りではなく、部位領域抽出部３０１と尤度マップ生成部３０２との間において、推定された各部位領域の画像データを共有できれば他の方法でもよい。
【００９２】
座標点抽出部３０３は、尤度マップ生成部３０２から各部位領域の尤度マップを取得する。座標点抽出部３０３は、取得された尤度マップに基づいて、各部位領域に対応した複数の部位座標点を抽出する。
【００９３】
図８は、上腕領域の尤度マップの例を示す図である。図８を用いて、座標点抽出部３０３における部位座標点の抽出方法について説明する。なお、図８に示す尤度マップ８０１は、各画素の上腕らしさを示す尤度値を領域の色の濃淡によって表現する。図８においては、濃い色の領域ほど各画素の上腕らしさを示す尤度値が高い。
【００９４】
座標点抽出部３０３は、尤度マップ８０１において、尤度値が所定の閾値以上である画素を所定数含む領域を楕円領域８０２として抽出する。そして、楕円領域８０２に含まれる複数の座標点から複数の部位座標点を抽出する。部位座標点は、楕円領域８０２の中心点を通る直線上に位置し、楕円領域８０２の領域内に位置する点であることが望ましい。部位座標点が、尤度値に基づいて抽出された楕円領域に含まれ、且つ、中心点を通ることにより、後述する骨直線の精度が高まるからである。
【００９５】
本実施の形態においては、各部位領域の尤度マップ毎に２つの部位座標点が抽出され、２つの部位座標点は、楕円領域８０２の焦点８０３および焦点８０４であるとして説明する。
【００９６】
ここで、楕円領域８０２の抽出方法は、例えば、尤度マップ８０１の重心に中心点がある所定の楕円内に含まれ、尤度値が所定の閾値以上である画素の数を算出する工程を、当該楕円の焦点位置および短辺の長さを変化させて繰り返す。当該工程を繰り返した結果、所定の閾値以上の画素数を、楕円内の全画素数によって除算した値が最大となる楕円を楕円領域８０２として抽出する。
【００９７】
なお、楕円内にあって、尤度値が所定の閾値以上である画素数を算出したが、楕円内に含まれる各画素の尤度の値の総和が最大と場合の楕円を、楕円領域８０２として抽出してもよい。また、尤度マップの重心の求め方は、画像処理で一般的な輝度を用いてもよいし、尤度を用いてもよい。なお、所定の閾値以上となる境界をエッジとして、ハフ（Hough）変換を用いて楕円を抽出してもよい。ハフ変換は、直線の検出や円弧の検出に広く用いられている手法である。
【００９８】
なお、上記の説明においては、各部位領域に対応した２つの部位座標点が抽出されるとして説明したが、この限りではない。部位座標点は２点以上ならば、何点抽出してもよい。部位座標点が多ければ、骨直線の制約が大きくなるため、後述する姿勢推定部１０５は高速に骨直線を推定することが可能となる。また、部位領域によっては、部位座標点が１つでもよい。例えば、頭領域において算出される部位座標点は１つでもよい。
【００９９】
なお、上記説明においては、座標点抽出部３０３は楕円領域８０２の焦点８０３，８０４を部位座標点として抽出したが、この限りではない。例えば、部位領域を複数の分割領域に分割し、分割領域内に含まれる画素の尤度値の総和が所定の閾値以上である分割領域の中央の座標点を部位座標点としてもよい。かかる場合、当該分割領域内の画素の尤度値の総和を部位座標点の尤度値としてもよい。また、尤度値が所定の閾値以上の画素を部位座標点としてもよい。
【０１００】
なお、部位座標点は、各部位領域の尤度マップ８０１に含まれる座標点のうち、尤度値が最大の座標点から順に選択されてもよい。
【０１０１】
尤度マップ生成部３０２において部位領域ごとに尤度マップを生成していない場合には、座標系が共通のため、座標点抽出部３０３は、抽出された複数の部位座標点について、画像データにおける座標である２次元部位座標を一意に定めることができる。一方、尤度マップ生成部３０２において部位領域ごとに尤度マップを生成した場合には、座標系が異なる場合があるため、座標点抽出部３０３は、尤度マップの位置情報と、画像データの座標系とを参照することにより２次元部位座標を算出する機能を有してもよい。
【０１０２】
上記の説明のとおり、座標点抽出部３０３は、各部位領域に対応した複数の部位座標点を抽出する。図９は、各部位領域について、部位座標点の２次元部位座標の算出処理が完了した場合に、部位座標点抽出部１０２が保持する情報の説明に供する図である。なお、図９は、説明の便宜上、身体の右上半身のみを示している。
【０１０３】
図９においては、９０１ｃと９０１ｄは肩領域７０２の部位座標点であり、９０１ａと９０１ｂは上腕領域７０３の部位座標点であり、９０１ｅと９０１ｆは下腕領域７０４の部位座標点である。図９において、部位領域７０３が上腕領域であるため、部位座標点９０１ａと図８に示す焦点８０４とが対応し、上腕領域７０３のもう一方の部位座標点９０１ｂと図８に示す焦点８０３とが対応する。
【０１０４】
以上に示すように、座標点抽出部３０３は、各部位領域に対応した複数の部位座標点を抽出し、各部位領域に対応した複数の部位座標点の２次元部位座標および尤度値を座標変換部１０３へ出力する。
【０１０５】
ここで、複数の部位座標点の尤度値は、当該部位座標点に対応する画素の尤度値であってもよいが、その限りではない。部位座標点の周辺領域、例えば、楕円領域８０２の短辺の長さを短辺とし、部位座標点を中心とする円８０５（以下、「代表円」という）に含まれる画素の尤度値の総和または平均値を、部位座標点の尤度値としてもよい。
【０１０６】
このように、楕円領域の短辺を代表円の半径とすることにより、画像ごとに抽出した尤度マップに応じた値を用いることになり、後述する姿勢推定部１０５における骨直線算出の精度が向上するという効果を奏する。
【０１０７】
なお、算出された代表円の半径は、後述する姿勢推定部１０５において、骨直線を算出する際に用いられる方向ベクトル可動円領域の半径として用いられても良い。
【０１０８】
かかる場合には、座標点抽出部３０３は、部位領域ごとに抽出された部位座標点について、２次元部位座標と、算出された尤度値と、代表円の半径とを、座標変換部１０３へ出力する。
【０１０９】
座標点抽出部３０３が出力する信号の具体例を以下に示す。
【０１１０】
Ｂｅｇｉｎ
部位領域の識別番号：５
部位座標点の数：２
第１の部位座標点の部位座標：（４０，８０）
第１の部位座標点の代表円の半径：５
第１の座標点の尤度値：７０
第２の部位座標点の部位座標：（３０、７０）
第２の部位座標点の代表円の半径：５
第２の部位座標点の尤度値：６５
Ｅｎｄ
【０１１１】
Ｂｅｇｉｎ
部位領域の識別番号：９
部位座標点の数：２
第１の部位座標点の部位座標：（９０，３０）
第１の部位座標点の代表円の半径：５
第１の部位座標点の尤度値：６０
第２の部位座標点の部位座標：（４５、１２０）
第２の部位座標点の代表円の半径：５
第２の部位座標点の尤度値：８０
Ｅｎｄ
【０１１２】
なお、代表円の半径は、部位ごとに予め定めた値でもよい。かかる場合、予め定めておく各部位の関節候補円の半径を別ファイルに保持しておいてもよい。また、複数の部位座標点の尤度値は、座標変換部１０３へ出力せずに、姿勢推定部１０５へ出力してもよい。
【０１１３】
次に、座標変換部１０３の動作について説明する。
【０１１４】
座標変換部１０３は、部位座標点抽出部１０２から、各部位領域に対応した複数の部位座標点の２次元部位座標および尤度値を取得する。但し、部位座標点の尤度値は、座標変換部１０３においては用いられないため、部位座標点抽出部１０２から直接的に姿勢推定部１０５へ出力され、座標変換部１０３へは出力されなくともよい。
【０１１５】
座標変換部１０３は、取得された部位座標点の２次元部位座標を、人物に固有の３次元のローカル座標系である人物ローカル座標系における３次元部位座標へ変換する。２次元部位座標から３次元部位座標への座標変換方法について、図１０から図１８を用いて、以下で説明する。
【０１１６】
なお、座標変換にかかる説明にあたっては、説明を簡易化するために、１つの２次元部位座標を座標変換する方法について説明するが、本願発明の実施にあたっては、所望の姿勢推定に必要な全ての各部位領域について、部位座標点の２次元部位座標を３次元部位座標へ変換する。但し、人物の部位領域の部位座標点であっても、システムの仕様によっては、座標変換する必要のない部位座標点の２次元部位座標があってもよい。
【０１１７】
図１０は、単眼カメラ２０１が設置された空間（以下、「単眼カメラ空間」という）の３次元座標と、単眼カメラによって撮像された画像データの撮像面１００１との関係を示す図である。
【０１１８】
図１０において、撮像面１００１上の部位座標点９０１および座標点１００２は、画像データにおいて所定の座標位置に存在する。したがって、部位座標点９０１および座標点１００２の座標は、画像データに基づいて画像データ上の座標系で表現されるものであって、単眼カメラ２０１が設置された空間の座標系において、現実の位置座標の値が表現されるものではない。
【０１１９】
なお、本実施の形態においては、撮像面１００１上の部位座標点９０１は、頭領域に含まれる部位座標点であり、座標点１００２は画像データに含まれる人物と地面の接点であり、ここでは足先として説明する。また、座標点１００５は、画像データのＹ軸における中心点であり、座標点１００６は、画像データのＹ軸における端点である。
【０１２０】
なお、本実施の形態において、姿勢推定のために頭領域の部位座標点が抽出される必要性が必ずしもあるわけではない。本実施の形態においては、説明の便宜のために、頭領域の部位座標点９０１を用いて座標変換部１０３の動作を説明する。
【０１２１】
図１０において、撮像面１００１上のそれぞれ部位座標点９０１および座標点１００２に存在する人物の頭部および足先は、単眼カメラ空間においては、それぞれ直線１００３上、直線１００４上に存在することになる。
【０１２２】
ここで、画像データ上の２次元座標を、単眼カメラ空間の３次元座標へ変換する場合において、人物の身体の現実の大きさを算出する場合には、単眼カメラ２０１と人物との現実の距離が必要となる。
【０１２３】
一方で、本実施の形態では、画像データ上の２次元座標を、人物ローカル座標系における３次元座標へ変換する。そのため、人物の各部位の現実の大きさは分からなくても、各部位の比が現実の人物の比と等しい相対的な大きさにおける姿勢が分かれば姿勢推定の目的は達成され、単眼カメラ２０１と人物との現実の距離は不要である。
【０１２４】
ここで、人物ローカル座標系とは、人物の所定の部位（例えば、右肩）の位置を３次元座標系の原点（０，０，０）として、各部位の座標などを表現する、その人物固有の座標系である。具体的には、画像データ上の各部位の位置および大きさを、単眼カメラ２０１と撮像面１００１との角度情報により補正し、現実の各部位の相対位置および相対的な大きさを表現するものである。そのため、人物ローカル座標系における長さ単位と、画像データ上の長さ単位の比率は等しく相似関係にある。
【０１２５】
以上のとおり、本実施の形態では、人物ローカル座標系を構築するにあたり、単眼カメラ空間における人物の体勢は、直線１００３上に人物の頭が存在し、且つ、直線１００４上に人物の足先が存在するという条件を満たせば、どんな体勢でも可能ということになる。
【０１２６】
図１１は、単眼カメラ空間において、人物が採り得る体勢の例を示す図である。
【０１２７】
図１１において、直線１００３上に人物の頭部が存在し、且つ、直線１００４上に人物の足先が存在するという条件を満たす人物姿勢として、体勢１１０１ないし１１０３を例示する。体勢１１０１ないし１１０３のいずれの体勢であっても、人物ローカル座標系の構築は可能だが、本実施の形態においては、人物姿勢が体勢１１０１に対する人物ローカル座標について説明する。
【０１２８】
図１２は、図１０および図１１に対応し、人物ローカル座標系をＹＺ平面から見た図である。本実施の形態においては、人物の肩の向きにＸ軸（右肩関節から左肩または左肩関節から右肩に向かう軸）、重力方向にＹ座標、人物の正面方向にＺ軸をとる。図１２を用いて、人物ローカル座標系において、部位座標点９０１を変換した結果である部位座標点１２０１の３次元部位座標のうち、Ｙ座標を算出する方法について説明する。
【０１２９】
なお、右肩関節と左肩関節を結ぶ直線の方向を肩の向きとする。右肩関節および左肩関節は、それぞれ部位座標点である。また、本実施の形態においては、人物の肩の向きをＸ軸としているが、その限りではなく、例えばカメラの光軸に対して垂直な直線をＸ軸としてもよい。すなわち、人物ローカル座標系の原点が人物の中心に位置するため、Ｘ軸は人物の肩の向きに対して、所定の角度（ゼロ度を含む）を有する直線である。
【０１３０】
なお、本実施の形態においては、人物ローカル座標系の原点は足先としている。また、上記のとおり、人物ローカル座標系を構築するために、単眼カメラ２０１と人物との角度情報が必要になるため、当該角度情報を、単眼カメラ２０１の画角２０４を角度（θ３）、単眼カメラ２０１の設置角度２０３を角度（θ１）として示す。また、図１２においては、人物の体勢１１０１は、簡略化して線分として示す。
【０１３１】
図１２において、人物ローカル座標系における部位座標点１２０１のＹ座標（ｙ１）は、画像データにおける原点を、座標点１２０２に対応する足先の座標点１００２として、部位座標点１２０１に対応する部位座標点９０１の画像データ上の２次元座標を（ｘ１＿ｉｍａｇｅ，ｙ１＿ｉｍａｇｅ）とした場合、以下の（式１）により算出される。
【数１】
2012123667.tif 000003
【０１３２】
ここで、角度（θ２）は、画像データにおける部位座標点９０１の水平方向に対する、単眼カメラ２０１の仰角１２０３である。また、角度（θ１）は、単眼カメラ２０１の設置角度２０３である。
【０１３３】
なお、上記の説明においては、画像データにおける部位座標点９０１を座標変換した結果、人物ローカル座標系におけるＺ座標の値が０となる部位座標点１２０１として説明したが、例えば、人物ローカル座標系に座標変換した結果、部位座標点１２０４のように人物ローカル座標系におけるＺ座標の値が０ではないｚ１となる場合、部位座標点１２０４のＹ座標（ｙ１）１２０５は、以下の（式２）により算出される。
【数２】
2012123667.tif 000004
【０１３４】
次に、tan（θ２）（仰角１２０３）の算出方法について説明する。単眼カメラ２０１の画角２０４を角度（θ３）、画像データ上の中心点１００５と部位座標点９０１との距離（画素数）をα、画像データ上の中心点１００５と画像データ上の端点１００６との距離（画素数）をβとした場合、角度（θ２）（仰角１２０３）は、以下の（式３）により算出される。
【数３】
2012123667.tif 000005
【０１３５】
ここで、単眼カメラ２０１の設置角度２０３（θ１）、および単眼カメラ２０１の画角２０４（θ３）は、後述のカメラ情報保持部１０４から幾何学パラメータとして取得される。また、画像データ上の中心点１００５と部位座標点９０１との距離（α）、および画像データ上の中心点１００５と画像データ上の端点１００６との距離（β）は、単眼カメラ２０１によって撮像された画像データに基づいて算出される。
【０１３６】
上記の（式１）および（式３）により、人物ローカル座標系における部位座標点１２０１のＹ座標（ｙ１）が算出される。
【０１３７】
このように、人物ローカル座標系の構築にあたっては、単眼カメラ２０１と人物との距離情報は不要であり、単眼カメラ２０１と人物との角度情報のみが用いられる。
【０１３８】
なお、人物ローカル座標系におけるＹ座標の算出について、部位座標点１２０１は頭部の部位座標であるとして説明したが、他の部位の部位座標についても同様に、画像データ上の２次元座標から、人物ローカル座標系におけるＹ座標を算出することができる。
【０１３９】
次に、人物ローカル座標系における部位座標点１２０１の３次元座標のうち、Ｘ座標およびＺ座標を算出する方法について説明する。
【０１４０】
図１３は、図１０および図１１に対応する単眼カメラ空間の３次元座標のＸＺ平面を示す図である。なお、説明を簡易化するため、人物は、単眼カメラ２０１の撮像面に対して体を真正面に向けているとして説明する。
【０１４１】
図１３において、部位座標点９０１、座標点１００２および座標点１３０１は、画像データにおける所定の座標位置に存在する座標点である。本実施の形態においては、部位座標点９０１は頭領域の２次元部位座標であり、座標点１００２は画像データに含まれる人物と地面の接点（ここでは足先）の２次元座標である。また、部位座標点１３０１は、例えば、上腕部の部位座標点であるとして説明する。
【０１４２】
角度１３０２は単眼カメラ２０１の画角の半分の値であり、線分１３０３および線分１３０４は角度１３０２の境界線である。以下、角度１３０２を（θ４）とする。
【０１４３】
なお、本実施の形態の説明において、部位座標点１３０１の画像データにおける２次元部位座標は、足先の座標点１００２を原点とした場合、（ｘ２＿ｉｍａｇｅ，ｙ２＿ｉｍａｇｅ）とする。
【０１４４】
図１４は、図１２に対応しており、人物ローカル座標系をＸＺ平面から見た図である。なお、部位座標点１４０１は、人物ローカル座標系において、画像データ上の部位座標点１３０１を変換したものである。
【０１４５】
なお、本実施の形態においては、人物ローカル座標系のＹ軸の原点は足先と地面の接点としている。また、人物ローカル座標系のＸ軸およびＺ軸の原点は、足先と地面の接点としている。なお、人物ローカル座標系のＸ軸とＺ軸の原点は人物の腰部の中心としてもよい。また、上記のとおり、図１４は図１２に対応する人物ローカル座標系をＸＺ平面から見た図であるため、図１４に図１２の単眼カメラ２０１の位置情報を示す。
【０１４６】
まず、図１４において、部位座標点１２０１の人物ローカル座標系におけるＸ座標およびＺ座標は、ともに０である。したがって、人物ローカル座標系における部位座標点１２０１の３次元部位座標は、以下の（式４）により表現される。
【数４】
2012123667.tif 000006
【０１４７】
次に、人物ローカル座標系における部位座標点１４０１のＸ座標およびＺ座標の算出方法について説明する。
【０１４８】
図１４において、部位座標点１４０１の３次元部位座標は、画像データにおける２次元座標系の原点、および、人物ローカル座標系の原点をいずれも人物と地面の接点（足先）としており、部位座標点１４０１のＸ座標は、画像データ上のＸ座標（ｘ２＿ｉｍａｇｅ）に比例するため、（ｘ２）＝（Ｋ×ｘ２＿ｉｍａｇｅ）である。ここで、係数Ｋは正の実数である。
【０１４９】
また、部位座標点１４０１のＺ座標（ｚ２）は、以下の（式５）により算出される。
【数５】
2012123667.tif 000007
【０１５０】
ここでｎおよびｍは、身体制約情報に基づいて定まる正の整数である。身体制約情報とは、所定の部位の長さ、および関節の角度のうち少なくとも一方を基準として、所定の部位に接続する部位が存在しうる領域を制限する情報である。身体制約情報は、例えば、人物の各部位の長さの比、および関節の可動角度のうち少なくとも一方を含む。例えば、肩の長さを１とした場合に、上腕の長さは０．６のように保持されている。以下、身体制約情報について説明する。
【０１５１】
例えば、身体制約情報は、各部位に関して、長さの比、および接続元関節との自由度３方向（Ｘ軸方向、Ｙ軸方向、Ｚ軸方向）の情報を含む。部位の長さや、接続元関節との自由度で示される可動方向は、部位ごとに異なるため、身体制約情報を個別に設定することによって、より精度のよい推定が可能となる。
【０１５２】
また、身体制約情報は、肩の部位ＩＤが１で、肩の長さの比が０．２の場合、部位の長さは以下のようにファイルまたはプログラムソースなどに記載されていてもよい。
【０１５３】
Ｂｅｇｉｎ
部位ＩＤ：１
比：０．２
Ｅｎｄ
【０１５４】
ここで、比は人物の身長を１とした場合の各部位の長さとする。なお、特定の部位、例えば、腕の長さを１として表現してもよい。また、例えば、右肩の関節ＩＤが１００、右肩の関節に接続する部位である肩の部位ＩＤが１で、右肩の関節に接続するもう１つの部位である右上腕の部位ＩＤが３、可動方向がｘ，ｙ，ｚの自由度３、ｘ方向の可動角度が（−６０．０，９０．０）、ｙ方向の可動角度が（−９０．０，９０．０）、ｚ方向の可動角度が（−９０．０，９０．０）の場合、関節の自由度は以下のように記載されていてもよい。
【０１５５】
Ｂｅｇｉｎ
関節ＩＤ：１００
部位ＩＤ：１
部位ＩＤ：３
可動方向：ｒｘ，ｒｙ，ｒｚ
角度：（−６０．０，９０．０）、（−９０．０，９０．０）、（−９０．０，９０．０）
Ｅｎｄ
【０１５６】
関節ＩＤと部位ＩＤによって示される関節と部位の接続関係は別ファイルに格納するようにしてもよい。
【０１５７】
図１４に戻り、部位座標点１２０１が含まれる人物は、単眼カメラ２０１に対して体を真正面を向けているため、画像データにおける２次元座標系上で算出された肩の長さを（ｓｈｏｕｌｄｅｒ＿ｉｍａｇｅ）とすると、部位座標点１４０１のＺ座標（ｚ２）は、以下の（式６）に示される条件を満たすように算出される。
【数６】
2012123667.tif 000008
【０１５８】
なお、ｙ２（部位座標点１４０１のＹ座標）は、ｙ１（部位座標点点１２０１のＹ座標）を（式１）および（式３）に基づいて算出したとおり、同様に算出される。具体的な算出方法は、算術演算に過ぎないため、省略する。
【０１５９】
上記のとおり、部位座標の人物ローカル座標系における部位座標点のＸ座標およびＺ座標が算出されるが、（式５）または（式６）が示すように、３次元部位座標のＺ座標は所定の範囲内の数値を取りうる。そのため、座標変換部１０３における座標変換の工程においては、３次元部位座標のＺ座標は一意に定まらない。３次元部位座標のＺ座標は、後述の姿勢推定部１０５において、身体制約情報を考慮したうえで一意に定まる。
【０１６０】
なお、人物ローカル座標系における部位座標点のＸ座標およびＺ座標の算出について、部位座標点１４０１は上腕部の部位座標点であるとして説明したが、他の部位についても同様に、画像データ上の２次元部位座標から、３次元部位座標を算出することができる。
【０１６１】
なお、上記の説明においては、部位座標点１２０１を含む人物は単眼カメラ２０１の真正面に位置し、当該人物は、単眼カメラ２０１の撮像面に対して真正面に体を向けているとして説明したが、人物が単眼カメラ２０１の真正面に位置していない場合についても、本実施の形態における座標系変換方法は有効である。
【０１６２】
図１５および図１６は、人物は、単眼カメラ２０１に対して真正面に位置していないが、単眼カメラ２０１に対して真正面に体をむけている場合における座標変換方法の説明に供する図である。以下、図１５および図１６を用いて、かかる場合における座標変換方法について説明する。
【０１６３】
図１５は、単眼カメラ２０１空間の３次元座標のＸＺ平面を示す図である。図１３と異なる点は、人物が、単眼カメラ２０１に対して真正面に位置していない点である。なお、人物の身体向きは、単眼カメラ２０１に対して真正面である。
【０１６４】
図１５において、部位座標点１５０１は図１３の部位座標点９０１と同様、人物の頭部の部位座標点であり、部位座標点１５０２は図１３の部位座標点１３０１と同様、上腕部の部位座標点である。また、座標点１５０３は図１３の座標点１００２と同様、人物と地面の接点（足先）である。単眼カメラ２０１と部位座標点１５０１とを結ぶ線分１５０４とＺ軸との角度１５０６を角度（θ５）とし、単眼カメラ２０１と部位座標点１５０２とを結ぶ線分１５０５とＺ軸との角度１５０７を角度（θ６）とする。
【０１６５】
図１６は、図１５に対応し、人物ローカル座標系のＸＺ平面を示す図である。図１６は、図１５に示す単眼カメラ空間の３次元座標を、人物ローカル座標系へ座標変換した図である。本実施の形態においては、人物の肩の向きにＸ軸、重力方向にＹ座標、人物の正面方向にＺ軸をとる。
【０１６６】
図１６において、部位座標点１６０１は、図１５の部位座標点１５０１を人物ローカル座標系へ座標変換したものであり、部位座標点１６０２は、図１５の部位座標点１５０２を人物ローカル座標系へ座標変換したものである。したがって、図１２と同様に、図１５の部位座標点１５０３は、人物ローカル座標系へ座標変換した結果、図１６においては部位座標点１６０１と重なっており、図示されていない。なお、Ｙ座標変換の方法については、図１２ないし図１３を用いた説明と同様のため、ここでは説明を省略する。
【０１６７】
また、部位座標点１６０２を通り人物ローカル座標系のＸ軸に垂直な直線を直線１６０３とする。直線１６０３とＸ軸との交点を交点１６０４とする。部位座標点１６０１を通り、単眼カメラ２０１の撮像面に対して平行な直線を直線１６０５とする。部位座標点１６０２を通り、Ｘ軸に平行な直線を１６２０とし、部位座標点１６０２と単眼カメラ２０１を通る直線を１６１５とする。直線１６１５と直線１６０５との交点を１６０６とする。
【０１６８】
まず、人物ローカル座標系における部位座標点１６０１の座標（ｘ３，ｙ３，ｚ３）のうち、Ｘ座標およびＺ座標は、ともに０である。本実施の形態においては、人物は直立しており、人物の頭部と足先とを結ぶ直線は地面に対して垂直に位置し、人物と地面との接点（足先）を人物ローカル座標系の原点としているからである。したがって、人物ローカル座標系における部位座標点１６０１の３次元座標は、図１４における部位座標点１２０１と同様に、（式４）によって算出される。
【０１６９】
次に、人物ローカル座標系における部位座標点１６０２の座標（ｘ４，ｙ４，ｚ４）のうち、Ｘ座標およびＺ座標の算出方法について説明する。Ｙ座標（ｙ４）の算出方法については、前述したとおりであるため、省略する。
【０１７０】
図１６において、部位座標点１６０２のＸ座標（ｘ４）は、原点または部位座標点１６０１と交点１６０４との距離である。部位座標点１６０２のＺ座標（ｚ４）は、交点１６０４と部位座標点１６０２との距離である。
【０１７１】
ここで、部位座標点１５０１の２次元部位座標を（ｘ３＿ｉｍａｇｅ，ｙ３＿ｉｍａｇｅ）とし、部位座標点１５０２の２次元部位座標を（ｘ４＿ｉｍａｇｅ，ｙ４＿ｉｍａｇｅ）とし、交点１６０７と交点１６０８との距離を（ｘ０＿ｉｍａｇｅ）とする。図１６において、部位座標点１６０１と交点１６０６との距離（ｘ５＿ｉｍａｇｅ）は、以下の（式７）により算出される。
【数７】
2012123667.tif 000009
【０１７２】
なお、ｘ３＿ｉｍａｇｅは、図１６において、部位座標点１６０１と交点１６０７との距離であり、ｘ４＿ｉｍａｇｅは、図１６において、交点１６０６と交点１６０７と距離である。また、ｘ０＿ｉｍａｇｅは、画像データ上の画像の中心である原点から画像の端までの水平（Ｘ軸）方向の距離に相当し、ｘ５＿ｉｍａｇｅは、画像データ上の人物の頭と腕の部位座標点の水平（x軸）方向の距離に相当する。
【０１７３】
角度１５０６である角度（θ５）は、既知の値である（ｘ０＿ｉｍａｇｅ）、（ｘ３＿ｉｍａｇｅ）、および、角度１３０２である角度（θ４）を用いて、以下の（式８）により算出される。
【数８】
2012123667.tif 000010
【０１７４】
同様に、角度１５０７である角度（θ６）は、既知の値である（ｘ４＿ｉｍａｇｅ）、（ｘ０＿ｉｍａｇｅ）、および、角度１３０２である角度（θ４）を用いて、以下の（式９）により算出される。
【数９】
2012123667.tif 000011
【０１７５】
以上より、直線１６０３と直線１６１５と直線１６２０の交点である部位座標点１６０２のＸ座標（ｘ４）は、既知の値とＺ座標（ｚ４）を用いて、以下の（式１０）により算出される。
【数１０】
2012123667.tif 000012
【０１７６】
一方、図１４と同様に、身体制約情報として、例えば、肩の長さを１とした場合に、上腕の長さは０．６のように保持されているとする。画像データ上で求めた肩領域の長さを（ｓｈｏｕｌｄｅｒ＿ｉｍａｇｅ）とすると、図１６の例においては、Ｚ軸から角度（θ５）ずれているので、肩領域の長さ（ｓｈｏｕｌｄｅｒ＿ｉｍａｇｅ２）は以下の（式１１）のようになる。
【数１１】
2012123667.tif 000013
【０１７７】
そして、（式５）および（式１１）を用いることにより、Ｚ座標（ｚ４）は、以下の（式１２）により算出される。
【数１２】
2012123667.tif 000014
【０１７８】
以上より、部位座標点１６０２の３次元部位座標（ｘ４，ｙ４，ｚ４）が算出される。
【０１７９】
なお、上記の説明においては、人物は、単眼カメラ２０１の撮像面に対して真正面を向いているとしたが、真正面を向いていない場合についても、本実施の形態における座標系変換方法は有効である。
【０１８０】
図１７および図１８は、人物は単眼カメラ２０１に対して真正面に位置しておらず、且つ、単眼カメラ２０１に対して真正面に体を向けていない場合における座標変換方法の説明に供する図である。以下、図１７および図１８を用いて、かかる場合における座標変換方法について説明する。
【０１８１】
図１７は、単眼カメラ空間の３次元座標のＸＺ平面を示す図である。図１５との共通点は、人物が単眼カメラ２０１に対して真正面に位置していない点である。図１５との相違点は、人物が、単眼カメラ２０１に対して真正面に体を向けていない点である。
【０１８２】
図１７において、部位座標点１７０１は図１５の部位座標点１５０１と同様、人物の頭部の部位座標点であり、部位座標点１７０２は図１５の部位座標点１５０２と同様、上腕の部位座標点である。また、部位座標点１７０３は図１５の座標点１５０３と同様、人物と地面の接点（足先）である。単眼カメラ２０１と部位座標点１７０１とを結ぶ線分１７０４とＺ軸との角度１７０６を角度（θ８）とし、単眼カメラ２０１と部位座標点１７０２とを結ぶ線分１７０５とＺ軸との角度１７０７を角度（θ９）とする。
【０１８３】
図１８は、人物ローカル座標系をＸＺ平面から見た図である。図１８は、図１７に示す、単眼カメラ空間の３次元座標を、人物ローカル座標系へ座標変換した図である。本実施の形態においては、人物は直立しており人物の頭部と足先とを結ぶ直線は地面と垂直に位置し、足先と地面との接点を人物ローカル座標系の原点とする。また、本実施の形態においては、人物の肩の向きにＸ軸、重力方向にＹ座標、人物の正面方向にＺ軸をとる。
【０１８４】
図１８において、部位座標点１８０１は、図１７の部位座標点１７０１を人物ローカル座標系へ座標変換したものであり、部位座標点１８０２は、図１７の部位座標点１７０２を人物ローカル座標系へ座標変換したものである。したがって、図１２と同様に、図１７の部位座標点１７０３は、人物ローカル座標系へ座標変換された結果、図１８においては部位座標点１８０１と重なっており、図示されていない。なお、Ｙ座標変換の方法については、図１２ないし図１３を用いた説明と同様のため、ここでは説明を省略する。
【０１８５】
また、部位座標点１８０２を通り人物ローカル座標系のＸ軸に垂直な直線を直線１８０３とする。直線１８０３とＸ軸との交点を交点１８０４とする。部位座標点１８０１を通り、直線１７０４と垂直な直線を直線１８０５とする。部位座標点１８０２を通り、Ｘ軸に平行な直線を１８２０とし、部位座標点１８０２と単眼カメラ２０１を通る直線を１８１５とする。直線１８１５と、部位座標点１８０１を通り単眼カメラ２０１の撮像面と平行な直線との交点を１８０６とする。
【０１８６】
まず、人物ローカル座標系における部位座標点１８０１の座標（ｘ５，ｙ５，ｚ５）のうち、Ｘ座標およびＺ座標は、ともに０である。本実施の形態においては、人物は直立しており人物の頭部と足先を結ぶ直線と地面は垂直に位置し、足先と地面との接点を人物ローカル座標系の原点としているからである。したがって、人物ローカル座標系における部位座標点１８０１の３次元座標は、図１４における部位座標点１２０１と同様に、（式４）によって算出される。
【０１８７】
次に、人物ローカル座標系における部位座標点１８０２の座標（ｘ６，ｙ６，ｚ６）のうち、Ｘ座標およびＺ座標の算出方法について説明する。Ｙ座標（ｙ６）の算出方法については、前述したとおりであるため、省略する。
【０１８８】
ここで、図１８において、人物の肩の向きである人物ローカル座標系のＸ軸と、単眼カメラ２０１の撮像面に対して垂直である直線とのなす角度１８０７を角度（θ１０）とおき、角度１７０７を角度（θ９）とする。
【０１８９】
部位座標点１８０２のＸ座標（ｘ６）は、交点１８０４と部位座標点１８０１の距離となる。また、部位座標点１８０２のＺ座標（ｚ６）は、交点１８０４と部位座標点１８０２との距離となる。
【０１９０】
ここで、画像データにおける部位座標点１７０１の２次元座標を（ｘ５＿ｉｍａｇｅ，ｙ５＿ｉｍａｇｅ）、部位座標点１７０２の２次元座標を（ｘ６＿ｉｍａｇｅ，ｙ６＿ｉｍａｇｅ）とする。図１８において、交点１８０６と部位座標点１８０１の距離ｘ７＿ｉｍａｇｅは、以下の（式１３）によって算出される。
【数１３】
2012123667.tif 000015
【０１９１】
直線１８０３と直線１８１５と直線１８２０の交点である部位座標点１８０２のＸ座標（ｘ６）は、既知の値とＺ座標（ｚ６）とを用いて、以下の（式１４）によって算出される。
【数１４】
2012123667.tif 000016
【０１９２】
Ｚ座標（ｚ６）は、（式５）を適用することにより算出される。また、図１４と同様に、身体制約情報として、例えば、肩の長さを１とした場合に、上腕の長さは０．６のように保持されているとする。画像データ上で求めた肩領域の長さが（ｓｈｏｕｌｄｅｒ＿ｉｍａｇｅ）とすると、図１８の例においては、身体向きが角度（θ１０）だけ傾き、カメラ正面方向から角度（θ８）だけずれているため、肩の長さ（ｓｈｏｕｌｄｅｒ＿ｉｍａｇｅ３）は以下のように算出される。
【数１５】
2012123667.tif 000017
【０１９３】
かかる場合、部位座標点１８０１のＺ座標（ｚ５）は、以下の（式１６）により算出される。
【数１６】
2012123667.tif 000018
【０１９４】
以上より、部位座標点１８０２の人物ローカル座標系における座標（ｘ６，ｙ６，ｚ６）が算出される。
【０１９５】
以上のように、座標変換部１０３は、単眼カメラ空間における３次元座標系から、人物ローカル座標系へ座標変換する機能を有する。
【０１９６】
座標変換部１０３は、部位ごとの部位座標点の３次元部位座標および尤度値を姿勢推定部１０５へ出力する。部位座標ローカル座標情報の例を、以下に示す。
【０１９７】
Ｂｅｇｉｎ
部位識別情報：５
部位座標点の数：２
第１の部位座標点の３次元部位座標：（２０＋５ｚ，８０＋ｚ，ｚ）
第１の部位座標点の代表円の半径：５
第１の部位座標点の尤度値：７０
第２の部位座標点の３次元部位座標：（３０＋２ｚ、７０＋３ｚ，ｚ）
第２の部位座標点の代表円の半径：５
第２の部位座標点の尤度値：６５
Ｅｎｄ
【０１９８】
Ｂｅｇｉｎ
部位識別情報：９
部位座標点の数：２
第１の部位座標点の３次元部位座標：（４５＋ｚ，２８＋４ｚ，ｚ）
第１の部位座標点の代表円の半径：５
第１の部位座標点の尤度値：６０
第２の部位座標点の３次元部位座標：（４０＋０．５ｚ，２０−ｚ，ｚ）
第２の部位座標点の代表円の半径：５
第２の部位座標点の尤度値：８０
Ｅｎｄ
【０１９９】
次に、カメラ情報保持部１０４について説明する。
【０２００】
カメラ情報保持部１０４は、単眼カメラ２０１の設置角度２０３（角度θ１）、単眼カメラ２０１の有効画素数、単眼カメラ２０１の水平方向の画角、単眼カメラ２０１の垂直方向の画角、および解像度のうち少なくとも１つを含む単眼カメラ２０１に関する幾何学的パラメータ情報を予め保持する。カメラ情報保持部１０４は、座標変換部１０３へ、幾何学的パラメータ情報を出力する。
【０２０１】
また、人物の体の向きの情報がデフォルト情報として予め保持されてもよい。例えば、単眼カメラ２０１に対して体を真正面に向ける人物しかいない環境においては、体の向きのデフォルト情報を０とする。また、単眼カメラ２０１の設置位置によって、人物の体の向きが決まっている場合もあり得る。そのような場合は、カメラ情報保持部１０４は、画像上の位置と体の向きのデフォルト情報を保持してもよい。
【０２０２】
例えば、画像データ上の座標点（０，０）、座標点（０，１００）、座標点（５０，０）、および座標点（５０，１００）を４角とする矩形領域においては、人物が常に単眼カメラ２０１の光軸に対して真正面に体を向け、画像データ上の座標点（５０，０）、座標点（１００，０）、座標点（５０，１００）、および座標点（１００，１００）を４角とする矩形領域においては、人物が常に単眼カメラ２０１の光軸に対して背中を向けている場合、［身体向き情報，座標情報］なる形式でデータが表現される場合、［０，（０，５０，１００，０）］、［５０，（０，１００，１００，１８０）］と表現してもよい。画素の単位は一画素単位でも１０画素単位でもよいし、角度の単位は度でもラジアンでもよい。
【０２０３】
このように、人物の体の向きをデフォルト情報として保持しておくことにより、人物の体の向きを推定する処理を削減し、処理を高速化できる。
【０２０４】
次に、姿勢推定部１０５について説明する。
【０２０５】
姿勢推定部１０５は、座標変換部１０３から、各部位の部位座標点の３次元部位座標、および、各部位の部位座標点の尤度値を取得する。姿勢推定部１０５は、部位ごとに、部位座標点の３次元部位座標を含む所定の平面領域を全て通る直線を、当該部位の骨直線として算出する。姿勢推定部１０５は、部位ごとに算出された骨直線の交点を関節位置と推定し、骨直線がなす角度を関節角度と推定する。
【０２０６】
なお、各部位の部位座標点の尤度値は、部位座標点抽出部１０２において算出された尤度値であり、部位座標点抽出部１０２から直接取得してもよい。
【０２０７】
図１９は、人物ローカル座標系における、上腕領域の部位座標点１９０１ａおよび部位座標点１９０１ｂ、ならびに、肩領域の部位座標点１９０１ｃの例を示す図である。部位座標点１９０１ａ、１９０１ｂ、１９０３ｃの３次元部位座標は、画像データにおける部位座標点９０１の２次元部位座標を座標変換させたものである。なお、説明の便宜のため、その他の部位領域は図示していない。以下、図１９を用いて、姿勢推定部１０５の動作の説明をする。
【０２０８】
姿勢推定部１０５は、部位ごとに、部位座標点の３次元部位座標を含む所定の平面領域を全て通る直線を当該部位の骨直線として導出する。部位ごとに導出された骨直線が、互いに交わる点が関節位置と推定され、接続された骨直線がなす角度が関節角度と推定される。
【０２０９】
具体的には、複数の部位領域のうち第１の部位領域（例えば、肩部領域）において、第１の部位領域に含まれる複数の部位座標点のうち尤度値が最大となる部位座標点の３次元部位座標を通り、且つ、尤度値が最大となる部位座標点以外の部位座標点の３次元部位座標を含む所定の平面領域に含まれる座標点のうち、所定の条件を満たす座標点を通る直線を、第１の部位領域における骨直線とする。ここで、所定の条件とは、身体制約条件である。
【０２１０】
また、姿勢推定部１０５は、第１の部位領域と隣接する第２の部位領域（例えば、上腕領域）において、第１の部位領域と同様に、第２の部位領域における骨直線を推定する。
【０２１１】
なお、第２の部位領域においては、第２の部位領域に含まれる複数の部位座標点のうち尤度値が最大となる部位座標点の３次元部位座標と、尤度値が最大となる部位座標点以外の部位座標点の３次元部位座標を含む所定の平面領域に含まれる座標点のうち、所定の条件を満たす座標点とを通り、且つ、第１の部位領域における骨直線と交わる直線を、第２の部位領域における骨直線としてもよい。
【０２１２】
以下、図１９を用いて、姿勢推定部１０５における骨直線の導出方法について、さらに詳細に説明する。
【０２１３】
各部位において算出される骨直線の表現方法について説明する。骨直線は人物ローカル座標系における直線である。一般に、３次元座標系における直線は、該直線上の任意の１点の座標を（ａ，ｂ，ｃ）、方向ベクトルを（ｐ，ｑ，ｒ）とおくと、（式１７）によって表現される。
【数１７】
2012123667.tif 000019
【０２１４】
姿勢推定部１０５は、各部位に含まれる複数の部位座標点のうち、一方の部位座標点の３次元部位座標を（式１７）における座標（ａ，ｂ，ｃ）とし、予め姿勢推定部１０５に保持された身体制約情報によって方向ベクトルを推定することによって、各部位の骨直線を導出する。
【０２１５】
姿勢推定部１０５は、各部位の骨直線を算出するにあたり、基準となる骨直線（以下、「基準骨直線」という）を最初に算出する必要がある。座標変換部１０３における座標変換の工程において、Ｚ座標の値が一意に定まらないためである。
【０２１６】
本実施の形態においては、基準骨直線として、肩部の骨直線を推定する。肩部の骨直線を最初に算出する理由は、肩部を含むオメガ形状は画像データから検出しやすいことから、尤度値が高い画素を抽出できる可能性が高く、よって検出精度が高いからである。さらに、監視カメラ等を用いて情報から撮像した場合、頭部および肩部はオクルージョンの発生確率が低く、精度の高い尤度マップを抽出できるからである。
【０２１７】
具体的には、姿勢推定部１０５は、右肩部の部位座標点ａ１を直線上の任意の座標点とする。右肩部の部位座標点ａ１の座標は（ｘａ１，ｙａ１，ｚａ１）とする。座標変換部１０３において算出された肩の傾き（ここではθとする）を用いて、方向ベクトル（ｐ，ｑ，ｒ）を（１，０，tanθ）とする。かかる場合、肩の骨直線は、（式１８）によって表現される。
【数１８】
2012123667.tif 000020
【０２１８】
このように、肩部領域に関しては、肩部の部位座標点を基準点としており、（式５）および（式６）に示すようにＺ座標の値は一定の範囲を取りうるが、（式１８）に示すように、肩の傾きが既知の値であるため方向ベクトルが定まるため、部位座標点ａ１および部位座標点ａ２の座標点は一意に定まる。
【０２１９】
なお、本実施の形態においては肩部の部位座標点を基準点としたが、その限りではなく、画像データからある程度精度よく検出可能な部位であれば、その他の部位の任意の部位座標点を基準点としてもよい。
【０２２０】
肩部以外の各部位は、肩部の骨直線に基づいて、順次算出される。すなわち、肩部に隣接する部位である上腕部の骨直線が、肩部の骨直線が算出されたことに応じて算出される。さらに、上腕部の骨直線が算出されたことに応じて、上腕部に隣接する前腕部の骨直線が算出される。
【０２２１】
以下、肩部（以下、部位Ａ）、肩部に隣接する右上腕部（以下、部位Ｂ）、および右上腕部に隣接する右前腕部（以下、部位Ｃ）を用いて、本実施の形態における骨直線の算出方法について説明する。
【０２２２】
なお、部位Ａは部位座標点ａ１（ｘａ１，ｙａ１，ｚａ１）および部位座標点ａ２（ｘａ２，ｙａ２，ｚａ２）を含み、部位Ｂは部位座標点ｂ１（ｘｂ１，ｙｂ１，ｚｂ１）および部位座標点ｂ２（ｘｂ２，ｙｂ２，ｚｂ２）を含み、部位Ｃは部位座標点ｃ１（ｘｃ１，ｙｃ１，ｚｃ１）および部位座標点ｃ２（ｘｃ２，ｙｃ２，ｚｃ２）を含むとし、部位Ａの部位座標点ａ１は、基準骨直線を算出する際に直線上の一点とした座標点である。また、部位Ｂにおいて、部位座標点ｂ１の尤度は、部位座標点ｂ２の尤度以上であり、部位座標点ｃ１の尤度は、部位座標点ｃ２の尤度以上であるとする。
【０２２３】
姿勢推定部１０５は、部位Ａの部位座標点ａ１を基準として、部位Ａと隣接する部位Ｂの骨直線を導出する。姿勢推定部１０５における骨直線算出方式には、大きく２つの方式がある。まず、第一の方式について説明する。
【０２２４】
姿勢推定部１０５は、基準となる部位Ａの骨直線が算出されたことに応じて、部位Ａに隣接する部位Ｂの骨直線を算出する。姿勢推定部１０５は、部位Ｂの骨直線の算出にあたり、２つの部位座標点のうち尤度が高いまたは等しい部位座標点ｂ１を、（式１７）における任意の１点とする。すなわち、部位Ｂの骨直線は、部位座標点ｂ１を通る。２つの部位座標点のうち、尤度値が高いまたは等しい部位座標点を直線上の任意の１点とすることで、より現実の人物の部位の姿勢に近い骨直線とすることができる。
【０２２５】
姿勢推定部１０５は、部位座標点ｂ１、および部位座標点部位座標点ｂ２の近傍を通り、且つ、部位Ｂの身体制約条件を満たす直線を算出することによって、方向ベクトル（ｐ，ｑ，ｒ）を算出する。
【０２２６】
姿勢推定部１０５における具体的な直線の算出方法を説明する。部位座標点ｂ１の２次元部位座標を３次元部位座標に変換する場合において、Ｘ座標の値は（式１０）または（式１４）により算出され、Ｙ座標の値は（式１）または（式２）により算出されるが、それぞれＺ座標の値に起因する。
【０２２７】
一方、Ｚ座標の値は、（式５）、（式６）、（式１２）または（式１６）に示すように所定の範囲内の数値を取りうる。従って、部位座標点の３次元部位座標は、Ｚ座標が一意に定まることによって算出される。
【０２２８】
本実施の形態における姿勢推定装置１００においては、（式５）、（式６）、（式１２）または（式１６）に示される所定の範囲の中心の値をＺ座標の値の初期値として、部位座標点の座標を算出する。
【０２２９】
具体的には、部位座標点ｂ１を通り、且つ、部位座標点ｂ２を含む所定の２次元領域を通る直線のうち、当該部位の身体制約条件（距離や角度）を具備する直線を骨直線として求める。身体制約条件を満たす直線がない場合は、部位座標点ｂ１の３次元部位座標を、初期値として定めたＺ座標の値の範囲の中心の値から、（式５）、（式６）、（式１２）または（式１６）で示されるような条件の満たす範囲で変化させて、身体制約条件を満たす直線を求める。身体制約条件を満たす直線が求まった場合、かかる場合の方向ベクトルを方向ベクトル（ｐ，ｑ，ｒ）とする。
【０２３０】
なお、接続元関節に関する制約条件も加味し、例えば、部位座標点ｂ１と部位座標点ｂ２とを通り、さらに部位Ａの骨直線と交わる直線としてもよい。また、候補を広げるため、部位座標点ｂ１と部位座標点ｂ２とを通り、部位Ａの骨直線と交わり、且つ、尤度の低い部位座標点ｂ２を中心として所定の２次元平面を通る直線として導出してもよい。ここで、部位座標点ｂ２を中心とした所定の２次元平面は、例えば半径ｒｂ２であり、半径ｒｂ２は、部位座標点抽出部１０２において算出された半径であってもよく、かかる場合には、部位座標点抽出部１０２において算出された半径は、座標変換部１０３を介して、姿勢推定部１０５が取得する。
【０２３１】
このようにして導出された方向ベクトルを（ｐｂ，ｑｂ，ｒｂ）とすると、部位Ｂの骨直線は、（式１９）により表現される。
【数１９】
2012123667.tif 000021
【０２３２】
そして、導出された部位Ｂ（右上腕部）の骨直線と、部位Ａ（肩部）の骨直線との交点が肩の関節位置として、２本の骨直線がなす角度が関節角度であるとして定まる。
【０２３３】
次に第二の方式について説明する。第一の方式において姿勢推定部１０５は、肩部の骨直線と交わる骨直線を算出したが、肩部の部位座標点ａ１が、同時に右肩の関節位置を示していると判明している場合には、肩部の部位座標点ａ１を上腕の部位座標点の一つとして用いてもよい。肩の関節位置は、座標変換部１０３において３次元部位座標が一意に決まっているため、姿勢推定部１０５は、部位座標点の３次元部位座標を一意にするためのＺ座標の探索範囲を狭くできる。
【０２３４】
例えば、姿勢推定部１０５は、上腕の骨直線を部位座標点ａ１と部位座標点ｂ１とを通る直線として求めてもよいし、部位座標点ａ１を通り、部位座標点ｂ１から半径ｒｂ１の可動円領域内を通り、部位座標点ｂ２から部位座標点ｂ２内を通る直線として求めてもよい。または、部位座標点ａ１から半径ｒａ１内を通り、部位座標点ｂ１から半径ｒｂ１内を通り、部位座標点ｂ２から半径ｒｂ２内を通る直線として求めてもよい。
【０２３５】
さらに、姿勢推定部１０５は、第一の方式と同様に、身体において各部位が他の部位との関係で存在しうる領域を示す身体制約情報を用いて、骨直線の候補の絞込みを行ってもよい。例えば、姿勢推定部１０５は、肩部の骨直線と、右上腕部（部位Ｂ）の骨直線の角度が、身体制約情報に含まれる右肩関節の可動角度内となるように、右上腕部（部位Ｂ）の骨直線の候補を絞り込んでもよい。
【０２３６】
また、ここで、姿勢推定部１０５は、身体制約情報に含まれる上腕部の長さの制約を用いて、右上腕部（部位Ｂ）の骨直線上の肘の関節位置を求めてもよい。
【０２３７】
姿勢推定部１０５は、右上腕部（部位Ｂ）に接続する右前腕部（部位Ｃ）の骨直線を求める場合、右上腕部（部位Ｂ）の骨直線と同様に求める。例えば、姿勢推定部１０５は、右前腕部（部位Ｃ）に含まれる複数の部位座標点のうち、尤度の高い部位座標点ｃ１を通り、右上腕部（部位Ｂ）の骨直線と交わり、もう一方の部位座標点ｃ２から半径ｒｃ２の可動円領域を通る方向ベクトルを求める。または、姿勢推定部１０５は、右上腕部（部位Ｂ）の骨直線上で推定した肘の関節位置を基準点として、部位座標点ｃ１から半径ｒｃ１の可動円領域を通り、部位座標点ｃ２から半径ｒｃ２可動円領域の内を通る直線として求めてもよい。
【０２３８】
また、姿勢推定部１０５は、右上腕部（部位Ｂ）の骨直線の算出処理と同様に、右上腕部（部位Ｂ）の骨直線と右下腕部（部位Ｃ）の骨直線がなす角度が、身体制約情報に含まれる右肘関節の可動角度内となり、上腕の長さが制約誤差範囲に収まるように、右上腕部（部位Ｂ）の骨直線を調整してもよい。
【０２３９】
姿勢推定部１０５は、人物ローカル座標系における直線上の任意の１座標点の座標（ａ，ｂ，ｃ）と方向ベクトル（ｐ，ｑ，ｒ）を少しずつ変化させ、身体制約条件を満たすもののうち、最適な値として、各部位の部位座標点と骨直線との距離の総和が最も小さいものを解とするよう調節する。
【０２４０】
なお、姿勢推定部１０５は、部位ごとではなく、隣接する複数の部位のパラメータを同時に変化させて、複数部位について、各部位の部位座標点と骨直線との距離の総和が最も小さい値に最適化することによって、骨直線の調節をしてもよい。
【０２４１】
最適な骨直線が一意に定まらない場合、姿勢推定部１０５は、部位座標点からの距離が一番小さいものを選択するようにしてもよいし、重力を考慮した存在確率マップを用いてもよい。重力を考慮した存在確率マップとは、重力に逆らった動作は身体への負荷が大きいので、重力に逆らう位置に存在する確率も低いという想定に基づく。各部位の接続元の部位に接続する関節（例えば上腕なら肩、下腕なら肘、膝上なら足の付け根、膝下なら膝）を部位の上位関節、下位の部位に接続する関節（例えば、上腕なら肘、下腕なら手首、膝上なら膝、膝下なら足首）を部位の下位関節とする。部位の上位関節から重力方向に伸ばした直線と、部位の上位関節と下位関節のなす角をθとする。
【０２４２】
ここで、部位の上位関節を３次元座標の原点に固定し、関節の角度を考慮した存在確率マップを考える。この座標の原点を中心に、存在しない方向（θが身体制約情報に含まれる関節の可動範囲に含まれない）を存在確率０とし、重力方向に伸ばした方向（θ＝０、ｚ軸のマイナス方向）を存在確率がもっとも高くなるようにし、残りの方向に関して、可動域を考慮し、重力に逆らうほど存在確率が低くなる存在確率マップを考える。
【０２４３】
例えば、存在しない方向を存在確率０とし、重力方向に伸ばした方向（θ＝０、ｚ軸のマイナス方向）を存在確率１とし、残りの方向の確率を１−ｋ（ｈ／θ）sin（θ／２）とおいてもよい。ここで、ｈはｚ軸方向の可動域を考慮するためのｚ軸方向の可動角度の最大値をあらわし、ｋは１以下の実数を表す。または、残りの確率を、正規分布を用いて、ｚ軸方向の可動域の最小値（絶対値は関節の長さ）と座標上のある点のｚ座標の値との差をｄとすると、ある点の存在確率は（式２０）のようにしてもよい。
【数２０】
2012123667.tif 000022
【０２４４】
さらに、この球体を身体制約情報に含まれる各関節の長さを考慮した存在確率マップとしてもよい。まず、角度の場合と同様に、部位の上位関節を３次元座標の原点に固定し、身体制約情報に含まれる関節の長さを半径とした球体を考える。球体の半径上の面の存在確率を最も高くし、半径から離れるほど存在確率が低くなるような存在確率マップを考える。例えば、正規分布を用いて、座標上のある点と球面との距離をｄとすると、ある点の存在確率を（式２１）のようにしてもよい。
【数２１】
2012123667.tif 000023
【０２４５】
このように作成した身体制約情報に含まれる各関節の長さを考慮した存在確率マップと、関節の角度を考慮した存在確率マップを掛け合わせた存在確率マップとしてもよい。
【０２４６】
骨直線のパラメータに複数の候補がある場合、候補の直線をこれらの存在確率マップと掛け合わせ、最も存在確率の高い候補を選ぶことで、適切に骨直線の算出を行うことができる。なお、下腕の先端は、身体制約情報に含まれる部位の長さの制約を用いて、右前腕部（部位Ｂ）の骨直線上の先端位置を求めてもよい。
【０２４７】
このようにして、姿勢推定部１０５は、身体制約情報を満たす右腕の骨直線を求めることができる。また、姿勢推定部１０５は、左腕の骨直線も同様に求める。また、姿勢推定部１０５は、足も、膝上を上腕、膝下を下腕と置き換え、同様に骨直線と関節位置を推定することができる。
【０２４８】
ここでは、肩や胴に接続する、上腕および膝上の部位から骨直線を推定する方法を示したが、姿勢推定部１０５は、下腕および膝下の部位座標ローカル座標の尤度値が高い場合には、尤度の高い部位の骨直線から算出してもよい。
【０２４９】
また、ここでは、部位座標を２点として説明したが、３点以上でもよい。その場合、姿勢推定部１０５は、そのうち一点を３次元上の直線の直線上の１点を（ａ，ｂ，ｃ）として、方向ベクトル（ｐ，ｑ，ｒ)を算出してもよいし、各部位座標ローカル座標から各半径内を通るような直線として求めてもよい。また、姿勢推定部１０５は、隣接する関節を基準点として、基準点を通り、各部位座標点から各半径内を通るような直線として求めてもよい。
【０２５０】
なお、本発明の姿勢推定処理を用いて、体の向きを求めてもよい。ここでは、座標変換部１０３と姿勢推定部１０５の処理を用いて人物が直立している場合に体の向きを求める方法について説明する。
【０２５１】
右肩の部位座標をＡ、左肩の部位座標をＣ、頭の部位座標をＢとし、３点のｘ、ｙ、ｚの３次元座標を以下のように表現する。
Ａ＝（Ａ１，Ａ２，Ａ３）
Ｂ＝（Ｂ１，Ｂ２，Ｂ３）
Ｃ＝（Ｃ１，Ｃ２，Ｃ３）
【０２５２】
座標変換部１０３の処理で説明したように、部位座標Ａにおいて、Ａ１とＡ２は変数Ａ３を用いて表現できる。同様に、部位座標Ｂ１とＢ２は変数Ｂ３を用いて、部位座標Ｃ１とＣ２は変数Ｃ３を用いて表現できる。ここで、変数はＡ３、Ｂ３、Ｃ３の３つである。
【０２５３】
姿勢推定部１０５において、身体制約情報を用いて部位座標Ａ、Ｂ、Ｃを求める。ここで、身体制約情報とは、第一に肩の高さが同じである、すなわちＡ２＝Ｃ２、第二に頭と肩は同一平面上にある、すなわちＢ３＝（Ａ３＋Ｃ３）／２を満たす、第３に、頭から右肩までの距離と頭から左肩までの距離が等しい、すなわちＢ１＝（Ａ１＋Ｃ１）／２を満たすことである。この３つの身体制約情報から、部位座標Ａ、Ｂ、Ｃを求めることができる。このようにして、部位座標Ｂ、Ｃから求めた肩直線の角度を、体の向きとして算出してもよい。
【０２５４】
なお、上記説明においては、画像データ取得部１０１が取得した画像データに基づいて姿勢推定処理を行うことについて説明したが、その限りではなく、画像データ取得部１０１が画像データ中の人物が写っている領域（以下、「人物領域」という）を抽出してから、部位座標点抽出部１０２に画像データを出力してもよい。かかる場合、画像データ取得部１０１は、カメラ２０１から取得した画像データの中における人物領域の位置情報（以下、「人物領域の座標情報」という）を部位座標点抽出部１０２へ出力する。そして、座標変換部１０３は、人物領域の座標情報と、２次元座標系により表現される部位座標とに基づいて、３次元座標へ変換する。
【０２５５】
画像データ取得部１０１が、人物領域を抽出してから、部位座標点抽出部１０２に画像データを出力する場合には、抽出された人物領域の画像データと、人物領域位置情報とを、画像データと併せて出力してもよい。
【０２５６】
なお、上記説明において、カメラの設置等に関する幾何学的パラメータ（例えば、カメラの設置角度、カメラの画角、解像度などを含む）は、画像情報格納部１０４が保持しているとして説明したが、この限りではない。例えば、幾何学的パラメータは、座標変換部１０３が保持してもよい。かかる構成図を、図２０に示す。図２０に示す姿勢推定装置２０００は、画像データ取得部１０１と、部位座標点抽出部１０２と、座標変換部２００１と、姿勢推定部１０５とを有する。座標変換部２００１は、座標変換部１０３およびカメラ情報保持部１０４の機能を包含する。
【０２５７】
なお、上記説明において、身体制約情報は、姿勢推定部１０５が保持しているとして説明したが、この限りではない。例えば、姿勢推定装置１００が、さらに、身体制約情報格納部を備え、姿勢推定部１０５が身体制約情報格納部から、身体制約情報を取得してもよい。
【０２５８】
また、上記説明では、画像データに写っている人物は一人であるとしたが、複数の人物が写っている場合には、それぞれの人物について上記処理をすればよい。
【０２５９】
以上のように、かかる構成によれば、２次元画像データと身体制約を用いて部位ごとの代表点から３次元関節位置を推定することにより、３次元姿勢データベースを用いることなく、３次元姿勢推定することができる。
【０２６０】
なお、本実施の形態においては、人物の姿勢推定について説明したが、人物以外の動物の姿勢推定にも適用できるし、また、ロボットの姿勢推定にも適用することができる。かかる場合、実施の形態の説明において、「人物」を「動物」や「ロボット」に置き換えることで実施される。また、人物とは、人とロボットなどの物であってもよい。
【０２６１】
このように、姿勢データベースを持つことなく、３次元姿勢推定処理を行うことができる。
【産業上の利用可能性】
【０２６２】
本発明に係る姿勢推定装置および姿勢推定方法は、単眼カメラ画像による、３次元モデルデータベースが不要な３次元関節位置角度推定装置および方法として有用である。
【符号の説明】
【０２６３】
１００，２０００  姿勢推定装置
１０１  画像データ取得部
１０２  部位座標点抽出部
１０３，２００１  座標変換部
１０４  カメラ情報保持部
１０５  姿勢推定部
２０１  単眼カメラ
３０１  部位領域抽出部
３０２  尤度マップ生成部
３０３  座標点抽出部
【図１】
2012123667.tif 000024
【図２】
2012123667.tif 000025
【図３】
2012123667.tif 000026
【図４】
2012123667.tif 000027
【図５】
2012123667.tif 000028
【図６】
2012123667.tif 000029
【図７】
2012123667.tif 000030
【図８】
2012123667.tif 000031
【図９】
2012123667.tif 000032
【図１０】
2012123667.tif 000033
【図１１】
2012123667.tif 000034
【図１２】
2012123667.tif 000035
【図１３】
2012123667.tif 000036
【図１４】
2012123667.tif 000037
【図１５】
2012123667.tif 000038
【図１６】
2012123667.tif 000039
【図１７】
2012123667.tif 000040
【図１８】
2012123667.tif 000041
【図１９】
2012123667.tif 000042
【図２０】
2012123667.tif 000043