(57)【特許請求の範囲】
【請求項１】
複数の部位から成る物体の姿勢を推定する姿勢推定装置において、
前記物体を撮影した画像を取得する画像入力部と、
前記姿勢ごとに前記複数の部位の配置を規定する姿勢情報を保持する姿勢情報データベースと、
前記画像における前記複数の部位の配置と、前記姿勢情報との間で、前記部位ごとの相関度を算出するフィッティング部と、
前記姿勢情報に含まれる前記部位のそれぞれの平行線成分に基づいて算出された、前記姿勢ごとに前記部位のそれぞれの位置の推定の難しさの度合いである推定難度を保持する難度情報テーブルと、
前記相関度に対して、前記推定難度に基づく重み付けを適用し、重み付けされた相関度に基づいて、前記物体の姿勢の推定を行う姿勢推定部と、を有する、
姿勢推定装置。
【請求項２】
前記姿勢情報から、前記姿勢ごとに、前記部位のそれぞれの平行線成分を抽出する平行線抽出部と、
抽出された前記平行線成分に基づいて、前記姿勢ごとに前記推定難度を判定し、判定結果を前記難度情報テーブルに保持させる推定難度判定部と、を有する、
請求項１記載の姿勢推定装置。
【請求項３】
前記推定難度判定部は、
抽出される前記平行線成分が多い前記部位ほど、前記推定難度をより低い値に判定する、
請求項２記載の姿勢推定装置。
【請求項４】
前記推定難度判定部は、
抽出される前記平行線成分の長さが長い前記部位ほど、前記推定難度をより低い値に判定する、
請求項２記載の姿勢推定装置。
【請求項５】
前記姿勢情報は、前記物体の３次元モデルを２次元平面に射影したときの、前記部位のそれぞれの外形を含み、
前記平行線抽出部は、
前記外形から、前記平行線成分を抽出する、
請求項２記載の姿勢推定装置。
【請求項６】
前記姿勢情報は、前記物体の３次元モデルを２次元平面に射影したときの、前記部位のそれぞれの軸の位置、軸の長さ、および平均の太さを含み、
前記平行線抽出部は、
前記軸の位置、前記軸の長さ、および前記平均の太さに基づいて、前記軸の両側に、前記外形の探索範囲である部位矩形ペアを配置し、前記外形のうち前記部位矩形ペアに含まれる部分の前記軸の方向の成分を、前記平行線成分として抽出する、
請求項５記載の姿勢推定装置。
【請求項７】
前記推定難度定部は、
前記姿勢情報から、前記姿勢ごとに、前記部位のそれぞれの、他の前記部位との混同の生じ易さを判断し、前記混同が生じ易い前記部位ほど、前記推定難度をより高い値に判定する、
請求項２記載の姿勢推定装置。
【請求項８】
入力された前記画像から、前記画像における前記複数の部位のそれぞれが位置することの確からしさの分布を示す部位推定マップを生成する部位推定部、を有し、
前記フィッティング部は、
前記２次元平面における前記複数の部位のそれぞれが位置することの確からしさの分布を示す部位基準マップと、前記部位推定マップとを比較し、前記姿勢ごとおよび前記部位ごとに、前記物体を撮影した画像における前記複数の部位の配置と、前記姿勢情報との間の、部位ごとの相関度を算出し、
前記姿勢推定部は、
前記物体を撮影した画像における前記複数の部位の配置と、前記姿勢情報との間の、部位ごとの相関度に対し、前記姿勢ごとに、前記推定難度が高いほど重みがより小さくなるような前記重み付けを適用して、前記部位基準マップと前記部位推定マップとの間の一致度を算出し、算出された前記一致度が最も高い前記部位推定マップに対応する前記姿勢を、前記物体の姿勢と判定する、
請求項１記載の姿勢推定装置。
【請求項９】
前記姿勢ごとに、単位時間経過後に遷移していることが可能な前記姿勢を規定する３次元姿勢情報と、前回、前記物体の姿勢であると推定された姿勢である前回推定姿勢と、に基づいて、次に前記物体が取り得る前記姿勢である次候補姿勢を推定する次候補姿勢抽出部、を更に有し、
前記姿勢推定部は、
前記推定難度が所定の閾値よりも高い前記部位が存在しないことを条件として、前記３次元姿勢情報に基づいて推定された前記次候補姿勢に絞って前記物体の姿勢の判定を行う、
請求項１記載の姿勢推定装置。
【請求項１０】
複数の部位から成る物体の姿勢を推定する姿勢推定方法において、
前記物体を撮影した画像を取得するステップと、
前記画像における前記複数の部位の配置と、前記姿勢ごとに前記複数の部位の配置を規定する姿勢情報との間で、前記部位ごとの相関度を算出するステップと、
前記姿勢情報に含まれる前記部位のそれぞれの平行線成分に基づいて算出された、前記姿勢ごとに前記部位のそれぞれの位置の推定の難しさの度合いである推定難度を用い、当該推定難度に基づく重み付けを、前記相関度に対して適用するステップと、
重み付けされた相関度に基づいて、前記物体の姿勢の推定を行うステップと、を有する、
姿勢推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の部位から成る物体の姿勢を推定する姿勢推定装置および姿勢推定方法に関する。
【背景技術】
【０００２】
近年、撮影された動画像の画像データに基づく人の姿勢推定に関する研究が、盛んに行われている。姿勢推定装置は、動画像から人の行動をコンピュータ解析により判定することができ、人手に頼らずに行動解析を行うことができる。行動解析としては、例えば、街頭での異常行動検知、店舗での購買行動分析、工場における作業効率化支援、およびスポーツにおけるフォーム指導が挙げられる。
【０００３】
このような姿勢推定は、人に方位センサなどの装置を取り付けることなく行われることが望ましい。人に装置を取り付ける場合、不特定の人を推定対象とすることが困難となり、推定対象が多数の場合にはコストが掛かるからである。
【０００４】
そこで、人を撮影した映像に基づいて、当該人の身体向きを推定する技術が、例えば特許文献１に記載されている。
【０００５】
特許文献１に記載の技術（以下「従来技術」という）は、前回推定された姿勢（以下「前回推定姿勢」）に基づいて、次に取り得る姿勢の候補（以下「次候補姿勢」）を推定する。そして、従来技術は、次候補姿勢の各部位の位置と、撮影画像の各部位の画像とを比較し、最も相関の高い候補姿勢を探索する。
【０００６】
ただし、姿勢によっては、人のある部位が他の部位によって隠れ、その一部または全部が画像上で認識されない状態（以下「隠蔽」という）となる。このような隠蔽されている部位（以下「隠蔽部位」という）が存在すると、異なる姿勢の間で外形が類似してしまうことがあり、正しく姿勢推定を行うことができない場合がある。
【０００７】
そこで、従来技術は、前回推定姿勢において、部位ごとに、画像を占める領域の面積（画素数）を求め、面積が閾値以下となる部位を、隠蔽部位として抽出する。そして、従来技術は、前回推定姿勢に隠蔽部位が存在する場合、隠蔽部位の姿勢の自由度を隠蔽がない部位よりも高く設定し、次候補姿勢の自由度を拡げて数を増やす。これにより、従来技術は、隠蔽部位の位置の推定の難しさ（推定精度の低さ）のために、前回推定姿勢が間違っていた場合にも、次候補姿勢に正しい姿勢が含まれることを考慮した姿勢推定を行うことができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−３１０７０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来技術は、姿勢を高精度に推定することが難しいという課題を有する。なぜなら、部位によっては、画像を占める領域の面積の小ささと、位置の推定の難しさとの間には、必ずしも高い相関があるとはいえないからである。小さい面積ではあるものの位置の推定が容易であるような部位に対して、次候補姿勢の自由度を不要に高く設定して、候補数を増やすと、誤推定の可能性を高めてしまう。
【００１０】
また、従来技術は、ロボットなど、人以外の物体にも適用することが考えられるが、この場合にも同様の問題が起こり得る。
【００１１】
本発明の目的は、複数の部位から成る物体の姿勢を高精度に推定することができる姿勢推定装置および姿勢推定方法を提供することである。
【課題を解決するための手段】
【００１２】
本発明の姿勢推定装置は、複数の部位から成る物体の姿勢を推定する姿勢推定装置において、前記物体を撮影した画像を取得する画像入力部と、前記姿勢ごとに前記複数の部位の配置を規定する姿勢情報を保持する姿勢情報データベースと、前記画像における前記複数の部位の配置と、前記姿勢情報との間で、前記部位ごとの相関度を算出するフィッティング部と、前記姿勢情報に含まれる前記部位のそれぞれの平行線成分に基づいて算出された、前記姿勢ごとに前記部位のそれぞれの位置の推定の難しさの度合いである推定難度を保持する難度情報テーブルと、前記相関度に対して、前記推定難度に基づく重み付けを適用し、重み付けされた相関度に基づいて、前記物体の姿勢の推定を行う姿勢推定部とを有する。
【００１３】
本発明の姿勢推定方法は、複数の部位から成る物体の姿勢を推定する姿勢推定方法において、前記物体を撮影した画像を取得するステップと、前記画像における前記複数の部位の配置と、前記姿勢ごとに前記複数の部位の配置を規定する姿勢情報との間で、前記部位ごとの相関度を算出するステップと、前記姿勢情報に含まれる前記部位のそれぞれの平行線成分に基づいて算出された、前記姿勢ごとに前記部位のそれぞれの位置の推定の難しさの度合いである推定難度を用い、当該推定難度に基づく重み付けを、前記相関度に対して適用するステップと、重み付けされた相関度に基づいて、前記物体の姿勢の推定を行うステップとを有する。
【発明の効果】
【００１４】
本発明によれば、複数の部位から成る物体の姿勢を高精度に推定することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態１に係る姿勢推定装置の構成の一例を示すブロック図
【図２】本発明の実施の形態２に係る本実施の形態に係る姿勢推定装置の構成の一例を示すブロック図
【図３】本実施の形態２における骨格画像の一例を示す図
【図４】本実施の形態２における骨格画像とエッジ画像を重畳した重畳画像の一例を示す図
【図５】本実施の形態２における人体モデルの一例を示す図
【図６】本実施の形態２における関節位置情報の内容の一例を示す図
【図７】本実施の形態２における部位角度情報の内容の一例を示す図
【図８】本実施の形態２における部位平均太さ情報の内容の一例を示す図
【図９】本実施の形態２における姿勢情報テーブルの内容一例を示す図
【図１０】本実施の形態２に係る姿勢推定装置の動作の一例を示すフローチャート
【図１１】本実施の形態２における推定難度判定処理の一例を示すフローチャート
【図１２】本実施の形態２における平行線抽出処理の一例を示すフローチャート
【図１３】本実施の形態２における部位矩形を説明するための図
【図１４】本実施の形態２におけるエッジの長さを説明するための図
【図１５】本実施の形態２における姿勢推定処理の一例を示すフローチャート
【図１６】本実施の形態２に係る姿勢推定装置の他の構成の例を示すブロック図
【図１７】本実施の形態２における難度情報生成部の他の構成の第１の例を示すブロック図
【図１８】本実施の形態２における難度情報生成部の他の構成の第２の例を示すブロック図
【図１９】本発明の実施の形態３に係る姿勢推定装置の構成の一例を示すブロック図
【図２０】本実施の形態３における３次元姿勢情報テーブルの内容一例を示す図
【図２１】本実施の形態３に係る姿勢推定装置の動作の一例を示すフローチャート
【図２２】本実施の形態３における後続姿勢推定処理の一例を示すフローチャート
【図２３】本実施の形態３における右腕の稼動範囲の一例を示す図
【図２４】本実施の形態３における右前腕の先端部が取り得る位置を示す図
【図２５】本実施の形態３におけるシルエットが同一となる複数の姿勢の例を示す図
【図２６】本実施の形態３における運動モデルによる次候補姿勢の絞り込みを行わない場合の右前腕の先端部が取り得る位置を示す図
【図２７】本実施の形態３における運動モデルによる次候補姿勢の絞り込みを行った場合の右前腕の先端部が取り得る位置を示す図
【発明を実施するための形態】
【００１６】
以下、本発明の各実施の形態について、図面を参照して詳細に説明する。
【００１７】
（実施の形態１）
本発明の実施の形態１は、本発明の基本的態様の一例である。
【００１８】
図１は、本発明の実施の形態１に係る姿勢推定装置の構成の一例を示すブロック図である。
【００１９】
図１に示す姿勢推定装置１００は、複数の部位から成る物体の姿勢を推定する装置である。図１において、姿勢推定装置１００は、画像入力部１４０、姿勢情報データベース１１０、フィッティング部１６０、難度情報テーブル１３０、および姿勢推定部１７０を有する。
【００２０】
画像入力部１４０は、物体を撮影した画像を取得する。
【００２１】
姿勢情報データベース１１０は、姿勢ごとに複数の部位の配置を規定する姿勢情報を保持する。
【００２２】
フィッティング部１６０は、画像における複数の部位の配置と、姿勢情報との間で、部位ごとの相関度を算出する。
【００２３】
難度情報テーブル１３０は、姿勢情報に含まれる部位のそれぞれの平行線成分に基づいて算出された、姿勢ごとに部位のそれぞれの位置の推定の難しさの度合いである推定難度を保持する。
【００２４】
姿勢推定部１７０は、相関度に対して、推定難度に基づく重み付けを適用し、重み付けされた相関度に基づいて、物体の姿勢の推定を行う。
【００２５】
姿勢推定装置１００は、例えば、ＣＰＵ（Central Processing Unit）、制御プログラムを格納したＲＯＭ（Read Only Memory）などの記憶媒体、およびＲＡＭ（Random Access Memory）などの作業用メモリを有する。この場合、上記した各構成部の機能は、ＣＰＵが制御プログラムを実行することにより実現される。
【００２６】
このような姿勢推定装置１００は、平行線成分に基づいて各部位の推定難度を判定し、各部位の推定難度を考慮した姿勢推定を行うことができる。平行線成分の量および長さは、上述の従来技術で用いられている面積の大きさに比べて、推定難度との間により高い相関を有する。このため、姿勢推定装置１００は、従来技術に比べて、複数の部位から成る物体の姿勢をより高精度に推定することができる。
【００２７】
平行線成分が推定難度との間に高い相関を有する理由は、以下の通りである。部位らしさが平行線で表せる部位については、平行線が抽出できる可能性が高いほど推定精度が高くなるが、抽出できる面積と抽出できる平行線の量は比例しない。例えば、部位の全面積の２分の１が遮蔽されている部位を考える。このような部位において、部位の平行線と垂直に遮蔽されている場合、平行線が抽出できる可能性は面積と同じ２分の１となるが、部位が斜めに遮蔽されている場合、平行線が抽出できる割合は０となる。すなわち、部位らしさが平行線で表せる部位の推定精度が悪くなる。したがって、平行線成分は、推定難度との間に高い相関を有する。
【００２８】
（実施の形態２）
本発明の実施の形態２は、本発明を、各部位が位置することの確からしさの分布を示す尤度マップのフィッティング（マッチング）により、人の姿勢推定を行う装置に適用した例である。
【００２９】
なお、以下の説明において、「人の姿勢」とは、人体が取り得るあらゆる形状のうちの１つとする。
【００３０】
まず、本実施の形態に係る姿勢推定装置の構成について説明する。
【００３１】
図２は、本実施の形態に係る姿勢推定装置の構成の一例を示すブロック図である。
【００３２】
図２において、姿勢推定装置１００は、姿勢情報データベース１１０、難度情報生成部１２０、難度情報テーブル１３０、画像入力部１４０、部位推定部１５０、フィッティング部１６０、姿勢推定部１７０、および推定結果出力部１８０を有する。
【００３３】
姿勢情報データベース１１０は、姿勢ごとに、複数の部位の配置を規定する姿勢情報を保持する。姿勢情報には、部位基準マップが含まれる。部位基準マップは、３次元の物体姿勢を２次元平面に射影したときの、当該２次元平面における、各部位が位置することの確からしさの分布を示す尤度マップである。この２次元平面は、人を撮影するカメラ（図示せず）の撮像面に対応している。
【００３４】
また、姿勢情報データベース１１０は、姿勢ごとに、その姿勢にある人の３次元姿勢を２次元平面上で示す情報として、関節位置情報、部位角度情報、および部位平均太さ情報、または、これらを特定する情報を保持している。
【００３５】
関節位置情報は、３次元の骨格姿勢を、上述の２次元平面に射影したときの像（以下「骨格画像」という）の、当該２次元平面における各関節の位置を示す情報である。部位角度情報は、骨格画像の、当該２次元平面における各部位の角度（以降、「部位角度」という）を示す情報である。部位角度は、２次元平面の水平方向と各部位とのなす角とする。部位平均太さ情報は、３次元の物体姿勢を２次元平面に射影したときの外形の像（以下「エッジ画像」という）の、当該２次元平面における各部位の太さの平均値を示す情報である。
【００３６】
ここで、部位とは、人体の各部のうち、姿勢がどのように変化してもその３次元形状が変化しないとみなすことができる単位であり、例えば、右上腕や右前腕である。そして、関節とは、部位を接続する部分であり、例えば、右肘である。
【００３７】
また、骨格姿勢とは、人の姿勢を、人体の各関節を実際の接続関係に従って接続した直線の集合で表現するものである。また、物体姿勢とは、人の姿勢を、肉、皮膚、頭髪、および衣服などを含めた外観情報を更に含めて表現するものである。
【００３８】
図３は、骨格画像の一例を示す図である。
【００３９】
図３に示すように、骨格画像３１０は、複数の直線から成る。各直線は、それぞれ、部位の軸を示し、その両端は、隣の部位との間の関節の位置、または、人体の先端の位置を示す。
【００４０】
図４は、図３に示す骨格画像３１０に、同じ姿勢のエッジ画像を重畳した状態（重畳画像）の一例を示す図である。
【００４１】
図４に示すように、エッジ画像３２０は、同じ姿勢の骨格画像３１０を、覆う形状となり、衣服などを含めた人体の外形を示す。
【００４２】
姿勢情報データベース１１０は、姿勢ごとに、その骨格画像３１０およびエッジ画像３２０をも保持しているものとする。
【００４３】
骨格画像３１０およびエッジ画像３２０の各部分は、人体モデルの各部位（および各関節）と対応付けられている。
【００４４】
図５は、人体モデルの一例を示す図である。
【００４５】
図５に示すように、人体モデル３３０は、例えば、２３個の関節からなる。各関節には、識別子が割り当てられている。また、本実施の形態では、この識別子は、対応する関節の体幹に近い側で接続する部位（人体の１つ内側の関節との間にある部位）を示す部位識別子とする。上述の関節位置情報、部位角度情報、および部位平均太さ情報は、この部位識別子を用いて情報を記述している。
【００４６】
図６は、関節位置情報の内容の一例を示す図である。
【００４７】
図６に示すように、関節位置情報４１０は、部位識別子４１１に対応付けて、ｘ座標４１２およびｙ座標４１３を記述している。ｘ座標４１２は、上述の２次元平面に設定されたｘｙ座標系（以下、単に「ｘｙ座標系」という）における、部位識別子４１１が示す関節の位置のｘ座標である。ｙ座標４１３は、ｘｙ座標系における、部位識別子４１１が示す関節の位置のｙ座標である。
【００４８】
図７は、部位角度情報の内容の一例を示す図である。
【００４９】
図７に示すように、部位角度情報４２０は、部位識別子４２１に対応付けて、角度４２２を記述している。角度４２２は、部位識別子４２１が示す部位の軸の方向である。より具体的には、角度４２２は、部位の軸方向のうち部位の接続元から接続先へ向かう向きの、ｘｙ座標系のｘ軸方向（水平方向）に対する角度である。
【００５０】
図８は、部位平均太さ情報の内容の一例を示す図である。
【００５１】
図８に示すように、部位平均太さ情報４３０は、部位識別子４３１に対応付けて、平均の太さ４３２を記述している。平均の太さ４３２は、部位識別子４３１が示す部位の太さの平均値である。なお、図８において、平均の太さ４３２として記述された「ｎ」は、対応する部位の太さの平均値は、情報として存在しない、または、使用されない、ということを示す。
【００５２】
図６〜図８に示した関節位置情報４１０、部位角度情報４２０、および部位平均太さ情報４３０、並びに、上述の骨格画像およびエッジ画像は、姿勢ごとに異なり得る。
【００５３】
ここでは、姿勢情報データベース１１０は、複数の姿勢に対応して、複数の関節位置情報４１０、複数の部位角度情報４２０、および複数の部位平均太さ情報４３０を格納しているものとする。
【００５４】
また、姿勢情報データベース１１０は、複数の姿勢に対応して、複数の画像情報を格納しているものとする。画像情報は、後述の画像フィッティングに用いられるものであり、例えば、シルエット画像のデータ、エッジ画像のデータ、カラー画像のデータ、上述の骨格画像のデータ、あるいは、背景画像のデータである。シルエット画像とは、人の画像が占める領域（シルエット）を示す画像である。エッジ画像とは、人の画像が占める領域の外形（エッジ）を示す画像である。カラー画像とは、各部分の色を示す画像である。背景画像は、人の背景の状態を示す画像である。
【００５５】
関節位置情報４１０、部位角度情報４２０、および部位平均太さ情報４３０には、関節位置情報識別子、部位角度情報識別子、および部位平均太さ情報識別子が、それぞれ割り当てられている。また、画像情報のそれぞれには、画像識別子が割り当てられている。
【００５６】
姿勢情報データベース１１０は、推定難度を保持する。推定難度は、姿勢情報に含まれる部位のそれぞれの平行線成分に基づいて算出された、姿勢ごとに部位のそれぞれの位置の推定の難しさの度合いである。より具体的には、姿勢情報データベース１１０は、各姿勢に、これらの識別子を対応付けた姿勢情報テーブルを用いることにより、姿勢と、姿勢情報および画像情報との対応付けを行う。
【００５７】
図９は、姿勢情報テーブルの内容一例を示す図である。
【００５８】
図９に示すように、姿勢情報テーブル４４０は、例えば、２次元姿勢識別子４４１に対応付けて、画像情報識別子４４２、関節位置情報識別子４４３、部位角度情報識別子４４４、部位平均太さ情報識別子４４５を記述している。
【００５９】
なお、姿勢情報テーブル４４０は、上述の識別子を用いずに、各姿勢に対して、直接、情報を対応付けて記述してもよい。
【００６０】
図２の難度情報生成部１２０は、姿勢情報データベース１１０が格納する姿勢情報（図６〜図９参照）から、各部位の平行線成分を抽出し、抽出した平行線成分から、各部位の推定難度を判定する。難度情報生成部１２０は、難度情報生成部１２０は、姿勢情報取得部１２１、平行線抽出部１２２、推定難度判定部１２３、および難度情報出力部１２４を有する。
【００６１】
ここで、平行線成分とは、各部位を形作る線分のうち、互いに平行となっている複数の線分の一まとまりである。本実施の形態では、平行線成分とは、部位の外形（エッジ）のうち、部位の軸に略平行な部分を指すものとする。また、推定難度とは、上述の通り、部位のそれぞれの、画像における位置の推定の難しさの度合いである。
【００６２】
姿勢情報取得部１２１は、姿勢情報データベース１１０から、各姿勢の姿勢情報を取得する。そして、姿勢情報取得部１２１は、取得した姿勢情報を、平行線抽出部１２２へ出力する。
【００６３】
平行線抽出部１２２は、入力された姿勢情報から、姿勢ごとに、部位のそれぞれの平行線成分を抽出する。そして、平行線抽出部１２２は、抽出した平行線成分を、推定難度判定部１２３へ出力する。
【００６４】
推定難度判定部１２３は、抽出された平行線成分に基づいて、姿勢ごとに推定難度を判定し、判定結果を難度情報テーブルに保持させる。より具体的には、推定難度判定部１２３は、入力された平行線成分に基づいて、姿勢ごとに、各部位の推定難度を判定する。そして、推定難度判定部１２３は、判定した推定難度を、難度情報出力部１２４へ出力する。
【００６５】
難度情報出力部１２４は、入力された推定難度を、対応する姿勢の２次元姿勢識別子および対応する部位の部位識別子に対応付けた難度情報として出力し、難度情報テーブル１３０に格納する。
【００６６】
画像入力部１４０は、物体を撮影した画像を取得する。より具体的には、画像入力部１４０は、所定の３次元座標空間に設置された単眼カメラ（図示せず）によって撮像された画像の画像データを、有線通信または無線通信により取得する。または、予めメモリデバイス（図示せず）に格納してある画像データを有線通信または無線通信により取得する。そして、画像入力部１４０は、取得した画像データを、部位推定部１５０へ出力する。画像データを格納したメモリデバイスは、姿勢推定装置１００と物理的に一体であってもよい。
【００６７】
以下の説明では、画像データは、一人のみの画像を含むものとして説明するが、この限りではなく、複数人の画像を含んでも良いし、人の画像を含んでいなくても良い。
【００６８】
部位推定部１５０は、入力された画像データから、画像の含まれる人の各部位の画像上の位置を推定し、部位推定マップを生成する。部位推定マップは、画像における、各部位が位置することの確からしさの分布を示す尤度マップであり、上述の部位基準マップと対応するものである。そして、部位推定部１５０は、生成した部位推定マップを、フィッティング部１６０へ出力する。
【００６９】
フィッティング部１６０は、画像入力部１４０が取得した画像における複数の部位の配置と、姿勢情報データベース１１０が保持する姿勢情報との間で、部位ごとの相関度を算出する。より具体的には、フィッティング部１６０は、姿勢情報データベース１１０から、部位基準マップを取得する。フィッティング部１６０は、取得した部位基準マップと、入力された部位推定マップとを比較し、姿勢ごとおよび部位ごとに、部位基準マップと部位推定マップとの間の相関度を算出する。そして、フィッティング部１６０は、算出した相関度を、姿勢推定部１７０へ出力する。
【００７０】
姿勢推定部１７０は、姿勢推定部１７０は、相関度に対して、難度情報テーブル１３０が保持する推定難度に基づく重み付けを適用し、重み付けされた相関度に基づいて、物体の姿勢の推定を行う。より具体的には、姿勢推定部１７０は、入力された姿勢ごとおよび部位ごとの相関度に対し、推定難度に応じた重み付けを適用して、物体の姿勢の推定を行う。そして、姿勢推定部１７０は、画像に含まれる人が取っていると推定した姿勢の２次元姿勢識別子を、推定結果出力部１８０へ出力する。
【００７１】
推定結果出力部１８０は、入力された２次元姿勢識別子が示す姿勢を、人の姿勢の推定結果として出力する。推定結果出力部１８０は、例えば、画像表示装置を有し、推定結果を、画像および文字などで出力する。
【００７２】
姿勢推定装置１００は、例えば、ＣＰＵ、制御プログラムを格納したＲＯＭなどの記憶媒体、およびＲＡＭなどの作業用メモリを有する。この場合、上記した各構成部の機能は、ＣＰＵが制御プログラムを実行することにより実現される。
【００７３】
このような姿勢推定装置１００は、平行線成分から各部位の推定難度を判定し、各部位の推定難度を考慮した姿勢推定を行うことができる。
【００７４】
また、部位の平行線成分は、部位らしさの特徴の強さを示すため、その長さが長いほど、当該部位の特徴が抽出され易いということを示す。すなわち、平行線成分の長さは、上述の従来技術で用いられている面積の大きさに比べて、推定難度との間により高い相関を有する。このため、部位の平行線成分を用いたほうが、より精度良く推定難度を求めることができる。したがって、姿勢推定装置１００は、従来技術に比べて、複数の部位から成る物体の姿勢をより高精度に推定することができる。
【００７５】
以上で、姿勢推定装置１００の構成についての説明を終了する。
【００７６】
次に、姿勢推定装置１００の動作について説明する。
【００７７】
図１０は、姿勢推定装置１００の動作の一例を示すフローチャートである。
【００７８】
まず、ステップＳ１０００において、姿勢推定装置１００は、推定難度判定処理を行う。推定難度判定処理は、姿勢ごとに、各部位の推定難度を判定する処理である。
【００７９】
そして、ステップＳ２０００において、姿勢推定装置１００は、姿勢推定処理を行う。姿勢推定処理は、判定された姿勢難度を用いて、撮影された画像に含まれる人の姿勢を推定する処理である。
【００８０】
まず、推定難度判定処理の詳細について説明する。
【００８１】
図１１は、推定難度判定処理（図１０のＳ１０００）の一例を示すフローチャートである。
【００８２】
まず、ステップＳ１１００において、姿勢情報取得部１２１は、姿勢情報データベース１１０に姿勢情報が保持されている姿勢の中から、１つを選択する。
【００８３】
そして、ステップＳ１２００において、姿勢情報取得部１２１は、姿勢情報データベース１１０から、選択中の姿勢の姿勢情報を取得する。ここで姿勢情報取得部１２１が取得する姿勢情報には、骨格画像、エッジ画像、関節位置情報、および部位平均太さ情報が含まれる。
【００８４】
そして、ステップＳ１３００において、平行線抽出部１２２は、平行線抽出処理を行う。平行線抽出処理は、姿勢情報から、選択中の部位のエッジが平行に現れている部分の長さ（平行線成分の長さ）を抽出する処理である。
【００８５】
図１２は、平行線抽出処理（図１１のＳ１３００）の一例を示すフローチャートである。
【００８６】
まず、ステップＳ１３１０において、平行線抽出部１２２は、姿勢情報データベース１１０から取得した骨格画像とエッジ画像から、骨格画像とエッジ画像とを重畳した画像（図４参照、以下「重畳画像」という）を生成する。
【００８７】
そして、ステップＳ１３２０において、平行線抽出部１２２は、姿勢情報に含まれている部位の中から、１つを選択する。
【００８８】
そして、ステップＳ１３３０において、平行線抽出部１２２は、重畳画像うち、選択中の部位に対して、部位矩形ペアを配置する。部位矩形は、部位の外形のうち長さ方向に伸びる部分が含まれる可能性が高い矩形領域であり、部位の外形の探索対象となる範囲である。平行線抽出部１２２は、選択中の部位の、軸の位置、軸の長さ、および平均の太さに基づいて、軸の両側に、所定の幅から成る部位矩形ペアを配置する。
【００８９】
図１３は、部位矩形を説明するための図である。
【００９０】
図１３に示すように、平行線抽出部１２２は、選択中の部位の骨格（軸）４５１とエッジ（外形）４５２とを含む重畳画像に対して、部位矩形４５３のペアを配置する。各部位矩形４５３の位置は、骨格４５１からの距離が、部位の平均の太さＴの２分の１（Ｔ／２）となる位置である。各部位矩形４５３の長さは、部位の骨格４５１の長さＬである。また、各部位矩形４５３の幅は、予め定められた所定の幅Ｗである。
【００９１】
各部位矩形４５３の幅は、部位の平均の太さの誤差や、部位内での太さの不均一さを考慮した幅とすることが望ましい。また、各部位矩形４５３の幅は、部位の骨格４５１の長さＬや平均の太さＴに比例した、部位ごとに異なる幅であってもよい。また、各部位矩形４５３の長さは、部位の軸の長さＬの誤差を加味した長さとしてもよい。
【００９２】
そして、図１２のステップＳ１３４０において、平行線抽出部１２２は、部位のエッジ４５２のうち、部位矩形４５３のペアに含まれる部分の骨格４５１の方向の長さを、エッジの長さとして算出する（図１３参照）。
【００９３】
図１４は、エッジの長さを説明するための図であり、図１３に対応するものである。図１３と対応する部分には同一符号を付している。但し、図１４に示す骨格やエッジは、図１３に比べて簡略化している。
【００９４】
図１４に示すように、ある部位矩形４５３の一部に、エッジ４５２の画素が含まれていたとする。平行線抽出部１２２は、部位矩形４５３内で、エッジ４５２の画素が部位矩形４５３の中心線４５４に沿った方向に連続している部分を探索する。そして、エッジ４５２の画素が部位矩形４５３の中心線４５４に沿った方向で連続している部分の長さを、エッジの長さとする。
【００９５】
ここでは、図１４に示すように、部位矩形４５３は横方向に伸びていたとする。そして、部位矩形４５３の左から１列目〜３列目の画素群にはエッジ４５２の画素が含まれておらず、部位矩形４５３の左から４列目〜９列目にエッジ４５２の画素が連続して存在していたとする。この場合、平行線抽出部１２２は、部位矩形４５３の左から４列目〜９列目の横方向の長さ（つまり６列画素分の長さ）ｌを、エッジの長さとする。
【００９６】
そして、図１２のステップＳ１３５０において、平行線抽出部１２２は、部位矩形ペアから算出された１つまたは複数のエッジの長さから、平行線成分の長さを算出する。
【００９７】
具体的には、平行線抽出部１２２は、例えば、１つの部位矩形において複数のエッジの長さを算出した場合、それらの合計値を、当該部位矩形のエッジの長さとする。そして、平行線抽出部１２２は、１つの部位についての２つの部位矩形のそれぞれから抽出されたエッジの長さのうち、より長くない方を、当該部位の平行線成分の長さとする。
【００９８】
例えば、図１３に示す例の場合、上側の部位矩形４５３から得られるエッジの長さｌ１の方が、下側の部位矩形４５３から得られるエッジの長さｌ２よりも短い。この場合、平行線抽出部１２２は、上側の部位矩形４５３から得られるエッジの長さｌ１を、部位の平行線成分の長さとする。
【００９９】
なお、平行線抽出部１２２は、２つの部位矩形のそれぞれから抽出されたエッジの長さの平均値を、部位の平行線成分の長さとするなど、他の手法を用いて平行線成分の長さを算出してもよい。
【０１００】
そして、図１２のステップＳ１３６０において、平行線抽出部１２２は、姿勢情報に含まれている部位に、未処理の部位が残っているか否かを判断する。平行線抽出部１２２は、未処理の部位が残っている場合（Ｓ１３６０：ＹＥＳ）、ステップＳ１３２０へ戻る。また、平行線抽出部１２２は、未処理の部位が残っていない場合（Ｓ１３６０：ＮＯ）、図１１の処理へ戻る。
【０１０１】
図１１のステップＳ１４００において、推定難度判定部１２３は、部位ごとに、平行線成分の長さと、予め設定しておいた所定の閾値とに基づいて、推定難度を判定する。
【０１０２】
具体的には、推定難度判定部１２３は、２つ以上の推定難度のうち、最も推定難度が低いものを除き、推定難度ごとに、平行線成分の長さの下限値を予め保持している。そして、推定難度判定部１２３は、平行線成分長さがその下限値以上となるような推定難度のうち、最も低いものを、選択中の部位の推定難度とする。
【０１０３】
このように、閾値を用いることにより、部位の遮蔽がない場合の部位本来の長さにかかわらず、画像から抽出できる平行線の画素の長さで推定難度を判定することができる。
【０１０４】
なお、閾値は、姿勢ごとあるいは部位ごとに異なっていてもよい。閾値の設定を細分化することにより、より詳細な推定難度判定を行うことができる。
【０１０５】
そして、ステップＳ１５００において、推定難度判定部１２３は、判定結果を、難度情報として難度情報テーブル１３０へ出力する。
【０１０６】
そして、ステップＳ１６００において、姿勢情報取得部１２１は、姿勢情報データベース１１０に姿勢情報が保持されている姿勢のうち、未処理の姿勢が残っているか否かを判断する。姿勢情報取得部１２１は、未処理の姿勢が残っている場合（Ｓ１６００：ＹＥＳ）、ステップＳ１１００へ戻る。また、姿勢情報取得部１２１は、未処理の姿勢が残っていない場合（Ｓ１６００：ＮＯ）、推定難度判定処理を終了し、図１０の処理へ戻る。
【０１０７】
以上のような推定難度判定処理の結果、姿勢推定装置１００は、姿勢ごとに各部位の推定難度を示す難度情報が用意された状態となる。
【０１０８】
次に、姿勢推定処理の詳細について説明する。
【０１０９】
図１５は、姿勢推定処理（図１０のＳ２０００）の一例を示すフローチャートである。
【０１１０】
まず、ステップＳ２１００において、画像入力部１４０は、姿勢推定の対象となる画像分の画像データを入力する。
【０１１１】
そして、ステップＳ２２００において、部位推定部１５０は、姿勢ごとに、姿勢情報データベース１１０内の２次元姿勢の画像情報から部位推定マップを生成する。
【０１１２】
ここで、部位推定マップの生成処理の一例について、詳細に説明する。部位推定部１５０が出力する部位推定マップは、例えば、画像上の画素位置を（ｉ，ｊ）とし、部位ｋの尤度値をｃｋと表し、部位がｎ個存在する場合には、尤度ベクトルＣｉｊ＝［ｃ１，ｃ２，…，ｃｋ，…，ｃｎ］というデータ構造となる。
【０１１３】
部位推定マップを生成する手法の第１の例は、部位ごとの識別器を用いる手法である。
【０１１４】
識別器を生成する手法としては、画像特徴量としてＨａａｒ−ｌｉｋｅ特徴量を用い、Ａｄａｂｏｏｓｔと呼ばれるアルゴリズムを用いて、基準モデルの画像から学習を行う手法がある。Ｈａａｒ−ｌｉｋｅ特徴量は、予め定義された矩形領域のパターンに基づいて算出される特徴量で、公知の技術である。また、Ａｄａｂｏｏｓｔは、判別能力のあまり高くない識別器を複数組み合わせることで、強い識別器を生成する手法で、公知の技術である。
【０１１５】
部位推定部１５０は、学習により予め部位ごとに用意された識別器を用いて、画像上の各部位の位置を推定し、部位推定マップを生成する。具体的は、部位推定部１５０は、例えば、ある画素に着目した画像特徴量を、部位ｋの強識別器Ｈｋに入力し、その強識別器Ｈｋを構成する各弱識別器の出力に対して弱識別器毎に予め得られた信頼度αを乗算した値の総和を算出する。そして、部位推定部１５０は、算出した総和から所定の閾値Ｔｈを減算して、着目画素の部位ｋの尤度値ｃｋを算出する。部位推定部１５０は、このような処理を、各部位および各画素について行い、部位推定マップを出力する。
【０１１６】
部位推定マップを生成する手法の第２の例は、頭部など基準となる部位の位置を、第１の手法で推定した後、残りの部位を、画像のエッジから平行線を抽出する手法である。
【０１１７】
具体的には、部位推定部１５０は、例えば、予め保持された、頭領域の長さと各部位の標準的な太さの値ｒ、および各部位の頭領域からの距離ｄとを対応付けた対応テーブルを参照して、平行線の抽出を行う。そして、部位推定部１５０は、推定した頭から、注目する部位の頭領域からの距離ｄの領域内に、その部位の標準的な太さｒに相当する距離で離隔する平行線の組を、判定する方向を３６０度回転させながら、検索する。そして、部位推定部１５０は、該当する平行線の組が存在する場合に、それらの平行線によって囲まれた領域の各画素に対して投票を行う処理を繰り返し、最終的な各画素の投票数に基づいて部位推定マップを生成する。
【０１１８】
このような手法の場合、部位推定マップは、画素毎および部位毎に、平行線の方向と投票数とを含むことになる。例えば、平行線の角度を８つに分類した場合、画素毎および部位毎の尤度値は、８方向に対応した８次元の値となる。更に、例えば、平行線の幅を２つに分類した場合、画素毎および部位毎の尤度値は、２×８＝１６次元の値となる。なお、投票の対象となる平行線の距離や角度は、部位毎に異なっていても良い。平行線の幅を複数求めて、そのうちの尤度値が尤も高くなる幅の尤度値を用いることにより、体型や服装の違いを吸収して、尤度を求めることができる。
【０１１９】
そして、ステップＳ２３００において、フィッティング部１６０は、姿勢情報データベース１１０に姿勢情報（部位基準マップ）が保持されている姿勢を１つ選択する。
【０１２０】
そして、ステップＳ２４００において、フィッティング部１６０は、選択中の姿勢の部位基準マップと、画像から生成した部位推定マップとの間で、部位ごとに相関係数を算出する。
【０１２１】
相関係数は、尤度の相関の度合いを示す値であればよく、その算出には、各種の公知技術を適用することができる。ここで、相関係数の算出手法の一例について説明する。
【０１２２】
例えば、部位推定マップが、画像上の画素位置を（ｉ，ｊ）とし、部位ｋの尤度値をｃｋと表し、部位がｐ個存在する場合には、尤度ベクトルＣｉｊ＝［ｃ１，ｃ２，…，ｃｋ，…，ｃｐ］というデータ構造で表されるとする。
【０１２３】
ここで、部位ｋについて、入力画像の部位尤度マップのデータ列をＸＫｉｊ＝［ｃｋ］、姿勢情報データベース１１０内のある部位推定マップのデータ列をＹＫｉｊ＝［ｃｋ］とする。そして、２組の数値からなるデータ列（ｘ，ｙ）＝｛（  ＸＫｉｊ，ＹＫｉｊ）（１＜＝ｉ＜＝ｎ，  １＜＝ｊ＜＝ｍ）｝が与えられたとする。この場合、フィッティング部１６０は、例えば、以下の式（１）を用いて、部位ｋの相関係数Ｓｋを求める。なお、式（１）において、平均記号（バー）付きのｘは、ｘの相加平均値を示し、平均記号（バー）付きのｙは、ｙの相加平均値を示す。
【数１】
0005877053.tif 000002
【０１２４】
なお、フィッティング部１６０は、部位識別子を付加した部位ごとの相関係数と、算出に用いた姿勢情報データベース１１０の２次元姿勢の２次元姿勢識別子とを組にして、姿勢推定部１７０へ出力する。
【０１２５】
そして、ステップＳ２５００において、姿勢推定部１７０は、選択中の姿勢の部位基準マップと、画像から生成された部位推定マップとの一致度を算出する。この際、姿勢推定部１７０は、選択中の姿勢の難度情報を難度情報テーブル１３０から取得し、相関係数に対し、推定難度に応じた重み付けを適用して、上記一致度を算出する。
【０１２６】
ここで、推定難度に応じた重み付けを適用した一致度の算出手法の一例について説明する。
【０１２７】
姿勢推定部１７０は、フィッティング部１６０から取得した部位ごとの相関係数に基づき、姿勢情報データベース１１０の２次元姿勢のうち、画像に含まれる人の姿勢と最も類似する姿勢を推定する。
【０１２８】
例えば、姿勢推定部１７０は、まず、相関係数が予め設定した所定の閾値の閾値以下の部位を含む２次元姿勢を、候補から除外する。すなわち、姿勢推定部１７０は、かかる姿勢については、ステップＳ２５００において、一致度の算出処理を行わない。
【０１２９】
次に、姿勢推定部１７０は、候補に残っている２次元姿勢について、各部位ｋの相関係数Ｓｋと、難度情報テーブル１３０から取得した各部位の推定難度とを用いて、一致度Ｖを算出する。具体的には、姿勢推定部１７０は、例えば、以下の式（２）を用いて、２次元姿勢識別子ｐについての一致度Ｖｐを算出する。ここで、Ｄｋは、選択中の２次元姿勢の部位ｋに対して適用する重みであり、推定難度が高いほど小さい値をとり、例えば、推定難度の逆数である。
【数２】
0005877053.tif 000003
【０１３０】
このような一致度Ｖｐは、相関係数の精度が低いような部位の影響を低減した値となる。
【０１３１】
そして、ステップＳ２６００において、フィッティング部１６０は、姿勢情報データベース１１０に姿勢情報（部位基準マップ）が保持されている姿勢のうち、未処理の姿勢が残っているか否かを判断する。フィッティング部１６０は、未処理の姿勢が残っている場合（Ｓ２６００：ＹＥＳ）、ステップＳ２３００へ戻る。また、姿勢情報取得部１２１は、未処理の姿勢が残っていない場合（Ｓ２６００：ＮＯ）、ステップ２７００へ進む。
【０１３２】
そして、ステップＳ２７００において、姿勢推定部１７０は、姿勢情報データベース１１０に姿勢情報（部位基準マップ）が保持されている姿勢のうち、一致度Ｖが最も高い姿勢を、画像に含まれる人の姿勢として推定する。そして、姿勢推定装置１００は、推定結果出力部１８０から推定結果を出力し、姿勢推定処理を終了して、図１０の処理へ戻る。
【０１３３】
以上のような姿勢推定処理の結果、姿勢推定装置１００は、姿勢ごとの各部位の推定難度を考慮して、精度の高い姿勢の推定を行うことができる。
【０１３４】
なお、姿勢推定装置１００は、上述の部位推定マップと同様の手順を、各姿勢の物体画像に対して行うことにより、部位基準マップを生成するようにしても良い。
【０１３５】
以上で、姿勢推定装置１００の動作についての説明を終える。
【０１３６】
以上のように、本実施の形態に係る姿勢推定装置１００によれば、平行線成分から各部位の推定難度を判定し、各部位の推定難度を考慮した姿勢推定を行うことができる。したがって、姿勢推定装置１００は、複数の部位から成る物体の姿勢を高精度に推定することができる。
【０１３７】
なお、推定難度判定処理と、姿勢推定処理とは、物理的に別個の装置で行われてもよい。
【０１３８】
図１６は、姿勢推定装置１００の他の構成の例を示すブロック図である。
【０１３９】
図１６に示すように、姿勢推定装置１００ａは、例えば、難度情報生成装置１２０ａと共に、姿勢推定システム５００ａを構成する。姿勢推定装置１００ａは、図２に示す姿勢推定装置１００から、図２に示す難度情報生成部１２０を抜き出した構成となっている。難度情報生成装置１２０ａは、図２に示す難度情報生成部１２０の各部を有する。但し、姿勢推定装置１００ａおよび難度情報生成装置１２０ａは、それぞれ、通信回路などを有し、姿勢情報および難度情報を、有線通信または無線通信により送受信する。
【０１４０】
このような構成とすることにより、姿勢推定装置１００ａの軽量小型化を図ることができる。
【０１４１】
また、難度情報生成部１２０（または難度情報生成装置１２０ａ）は、姿勢情報から、姿勢ごとに、各部位の他の部位との混同の生じ易さを判断し、混同が生じ易い部位ほど推定難度をより高い値に判定するようにしてもよい。
【０１４２】
図１７は、難度情報生成部の他の構成の第１の例を示すブロック図である。
【０１４３】
図１７に示すように、難度情報生成部１２０ｂは、図２の構成に加えて、閾値調節部１２５ｂを更に有する。
【０１４４】
閾値調節部１２５ｂは、部位の平均の太さが大きいほど、他の部位との混同がより生じ易いものとして、推定難度判定部１２３がその部位に適用する、平行線成分の長さの閾値を、より高い値に設定する。すなわち、閾値調節部１２５ｂは、推定難度がより高い値に判定され易くなるようにする。
【０１４５】
これは、部位の平均の太さが大きいほど、その部位の領域内に他の部位のエッジが混ざる可能性が高くなるためである。
【０１４６】
図１８は、難度情報生成部の他の構成の第２の例を示すブロック図である。
【０１４７】
図１８に示すように、難度情報生成部１２０ｃは、図２の構成に加えて、隣接部位角度抽出部１２６ｃを更に有する。また、ここでは、姿勢情報取得部１２１が取得する姿勢情報には、部位角度情報も含まれるものとする。
【０１４８】
隣接部位角度抽出部１２６ｃは、部位角度情報および骨格画像から、部位ごとに、その部位の骨格から所定の距離のエリアを、部位エリアとして設定する。隣接部位角度抽出部１２６ｃは、部位ごとに、その部位エリアに含まれる他の部位の角度を、部位角度情報から抽出する。そして、隣接部位角度抽出部１２６ｃは、部位の角度と、その部位エリア内に含まれる他の部位の骨格の角度とが近いほど、他の部位との混同がより生じ易いものとして、推定難度判定部１２３がその部位に適用する、平行線成分の長さの閾値を、より高い値に設定する。すなわち、隣接部位角度抽出部１２６ｃは、推定難度がより高い値に判定され易くなるようにする。
【０１４９】
これは、角度が近似する複数の部位が近傍にあると、各部位のエッジの区別がし難くなるからである。
【０１５０】
このように、難度情報生成部１２０ｂ、１２０ｃは、各部位の他の部位との混同の生じ易さが高いほど、推定難度がより高い値に判定され易くなるようにするので、より高い精度で推定難度を判定することができる。
【０１５１】
なお、推定難度がより高い値に判定され易くなるようにするための手法は、閾値の調節に限定されない。例えば、難度情報生成部１２０ｂ、１２０ｃは、混同の生じ易さに基づいて直接に推定難度を判定するようにしてもよい。
【０１５２】
また、本実施の形態では、姿勢推定装置１００は、姿勢情報データベース１１０の画像情報として、骨格画像およびエッジ画像を保持しているとしたが、これに限定されない。姿勢推定装置１００は、骨格画像を姿勢情報データベース１１０に保持せず、難度情報生成部１２０において、関節位置情報から逐次生成するようにしてもよい。また、姿勢推定装置１００は、骨格画像とエッジ画像とを重畳した上述の重畳画像を、姿勢情報データベース１１０に予め保持していてもよい。
【０１５３】
（実施の形態３）
本発明の実施の形態３は、映像などの時系列の画像を入力する場合において、前回の推定結果を用いて姿勢推定を行うようにした例である。
【０１５４】
図１９は、本実施の形態に係る姿勢推定装置の構成の一例を示すブロック図であり、実施の形態２の図２に対応するものである。図２と同一部分には同一符号を付し、これについての説明を省略する。
【０１５５】
図１９において、姿勢推定装置１００ｄは、図２の構成に加えて、３次元姿勢情報データベース１９０ｄおよび次候補姿勢抽出部２００ｄを更に有する。
【０１５６】
３次元姿勢情報データベース１９０ｄは、３次元姿勢ごとに、対応する２次元姿勢の２次元姿勢識別子（図９参照）を保持している。また、３次元姿勢情報データベース１９０ｄは、姿勢ごとに、３次元関節位置情報および遷移可能３次元姿勢情報またはこれらを示す情報とを保持している。
【０１５７】
３次元関節位置情報は、３次元の骨格姿勢（以下「３次元姿勢」という）のうち、３次元空間における各関節の位置を示す情報である。遷移可能３次元姿勢情報は、単位時間経過後に遷移していることが可能な３次元姿勢を示す情報である。すなわち、３次元姿勢に対応付けられた遷移可能３次元姿勢情報は、人の運動モデルを示す。３次元空間は、人を撮影するカメラ（図示せず）の撮像面の位置および向きを基準とした空間であり、例えば、ｘｙｚ座標系により定義される。
【０１５８】
３次元関節位置情報および遷移可能３次元姿勢情報には、３次元関節位置情報識別子および遷移可能３次元姿勢識別子が、それぞれ割り当てられている。
【０１５９】
３次元姿勢情報データベース１９０ｄは、各３次元姿勢に、これらの識別子を対応付けた３次元姿勢情報テーブルを用いることにより、３次元姿勢と、３次元関節位置情報および遷移可能３次元姿勢情報との対応付けを行う。
【０１６０】
図２０は、３次元姿勢情報テーブルの内容一例を示す図である。
【０１６１】
図２０に示すように、３次元姿勢情報テーブル６１０は、例えば、３次元姿勢識別子６１１に対応付けて、２次元姿勢識別子６１２、３次元関節位置情報識別子６１３、および遷移可能３次元姿勢識別子６１４を記述している。
【０１６２】
なお、３次元姿勢情報テーブル６１０は、上述の識別子を用いずに、各３次元姿勢に対して、直接、情報を対応付けて記述してもよい。
【０１６３】
また、３次元姿勢情報データベース１９０ｄは、類似度のレベルが異なる複数の姿勢について、遷移可能３次元姿勢情報を記述していてもよい。１つの３次元姿勢に対応する次候補姿勢（遷移可能３次元姿勢情報が示す姿勢）の数が少ない場合、後段のフィッティング部１６０の処理量は少なくなり、姿勢推定処理が高速になる。一方、１つの３次元姿勢に対応する次候補姿勢（遷移可能３次元姿勢情報が示す姿勢）の数が多い場合、正解の姿勢が次候補姿勢から漏れる可能性が少なくなり、姿勢推定処理がロバストなものになる。
【０１６４】
人のモデルの各関節は、関節ごとに可動域や運動速度が異なる。したがって、このように遷移可能３次元姿勢を予め保持しておくことにより、次候補姿勢を素早く推定することが可能となる。
【０１６５】
なお、３次元姿勢情報テーブル６１０は、複数の異なる単位時間のそれぞれについて、遷移可能３次元姿勢識別子を対応付けておいてもよい。この場合、画像入力のタイミング（姿勢推定の間隔）に応じて、適切な次候補姿勢を、素早くかつ精度良く推定することが可能となる。
【０１６６】
図１９の次候補姿勢抽出部２００ｄは、前回推定された姿勢（以下「前回推定姿勢」という）と、３次元姿勢情報データベース１９０ｄの遷移可能３次元姿勢情報（つまり運動モデル）とに基づいて、次候補姿勢を推定する。そして、推定した次候補姿勢を示す情報（例えば、２次元姿勢識別子）を、フィッティング部１６０へ出力する。
【０１６７】
本実施の形態では、フィッティング部１６０は、次候補姿勢抽出部２００ｄから入力された次候補姿勢の部位基準マップに絞って、部位推定マップとのフィッティングを行う。
【０１６８】
但し、前回推定姿勢がそもそも誤っていた場合、誤った姿勢が次候補姿勢として推定されてしまっている可能性が高くなる。
【０１６９】
そこで、次候補姿勢抽出部２００ｄは、前回推定姿勢の信頼度が低い場合には、運動モデルからではなく、推定の対象となっている画像から得られる情報を用いて、次候補姿勢を推定する。そして、次候補姿勢抽出部２００ｄは、前回推定姿勢の信頼度が低いか否かを、推定難度が所定の閾値よりも高い部位が存在するか否かに基づいて判断する。
【０１７０】
この結果、フィッティング部１６０は、推定難度が所定の閾値よりも高い部位が存在しないことを条件として、３次元姿勢情報に基づいて推定された次候補姿勢に絞って、尤度マップのフィッティングを行うことになる。そして、姿勢推定部１７０は、推定難度が所定の閾値よりも高い部位が存在しないことを条件として、３次元姿勢情報に基づいて推定された次候補姿勢に絞って、人の姿勢の判定を行うことになる。
【０１７１】
また、姿勢推定部１７０は、推定した姿勢の２次元姿勢識別子を、次の画像に対する処理のために、次候補姿勢抽出部２００ｄへ出力する。
【０１７２】
図２１は、姿勢推定装置１００ｄの動作の一例を示すフローチャートであり、実施の形態２の図１０に対応するものである。図１０と同一部分には同一符号を付し、これについての説明を省略する。
【０１７３】
本実施の形態では、姿勢推定装置１００ｄは、姿勢推定処理を行った後（Ｓ２０００）、ステップＳ３０００ｄへ進む。
【０１７４】
ステップＳ３０００ｄにおいて、姿勢推定装置１００ｄは、後続画像があるか否かを判断する。ここで、後続画像とは、映像を構成する時系列の複数の静止画のうち、最後に処理した静止画の次の静止画である。姿勢推定装置１００ｄは、後続画像がない場合（Ｓ３０００ｄ：ＮＯ）、一連の処理を終了する。一方、後続画像がある場合（Ｓ３０００ｄ：ＹＥＳ）、姿勢推定装置１００ｄは、ステップＳ４０００ｄへ進む。
【０１７５】
ステップＳ４０００ｄにおいて、姿勢推定装置１００ｄは、後続姿勢推定処理を行う。後続姿勢推定処理は、前回推定姿勢を活用して姿勢推定を行う処理である。
【０１７６】
図２２は、本実施の形態における後続姿勢推定処理（図２１のＳ４０００ｄ）の一例を示すフローチャートである。
【０１７７】
後続姿勢推定処理の一部は、実施の形態２の図１５で説明した姿勢推定処理と同様となっている。図１５と同一部分には同一符号を付し、これについての説明を省略する。
【０１７８】
部位推定部１５０で部位推定マップが生成されると（Ｓ２２００）、ステップＳ４１００ｄにおいて、次候補姿勢抽出部２００ｄは、姿勢推定部１７０から、前回推定姿勢の２次元姿勢識別子を取得する。
【０１７９】
そして、ステップＳ４２００ｄにおいて、次候補姿勢抽出部２００ｄは、取得した２次元姿勢識別子が示す姿勢における、各部位の部位難度を、難度情報テーブル１３０から取得する。
【０１８０】
そして、ステップＳ４３００ｄにおいて、次候補姿勢抽出部２００ｄは、部位難度が所定の閾値を超える部位が、前回推定姿勢の部位に存在するか否かを判断する。次候補姿勢抽出部２００ｄは、部位難度が所定の閾値を超える部位が存在する場合（Ｓ４３００ｄ：ＹＥＳ）、ステップＳ４４００ｄへ進む。また、次候補姿勢抽出部２００ｄは、部位難度が所定の閾値を超える部位が存在しない場合（Ｓ４３００ｄ：ＮＯ）、ステップＳ４４００ｄをスキップして後述のステップＳ４５００ｄへ進む。
【０１８１】
ステップＳ４４００ｄにおいて、次候補姿勢抽出部２００ｄは、前回推定姿勢の類似姿勢を、前回推定姿勢の画像の情報から推定し、前回推定姿勢とともに前回推定姿勢の類似姿勢を、ステップＳ４５００ｄへ出力する。
【０１８２】
このように、姿勢推定部１７０で出力した２次元姿勢に、推定が難しいために姿勢が正確でない可能性が高い部位が含まれていて、次回入力の画像の姿勢が、通常の運動モデルからは外れている場合には、画像情報の類似度を用いて候補を広げる。これにより、正解の姿勢が候補から外れるのを防ぐことができる。
【０１８３】
画像の情報から前回推定姿勢の類似を絞り込む手法としては、各種の手法を用いることができる。例えば、次候補姿勢抽出部２００ｄは、姿勢情報データベース１１０から各姿勢のシルエット画像のデータを取得し、画像から抽出されるシルエット画像を、取得した各姿勢のシルエット画像と重畳する。そして、次候補姿勢抽出部２００ｄは、シルエットが重なる領域の画素数を求め、その値が予め定めた所定の閾値より大きい姿勢を、前回推定姿勢の類似姿勢として抽出する。このとき、部位難度の高い部位の可動領域に限って、シルエットが重なる領域の画素数を求めるようにしてもよい。
【０１８４】
なお、このような前回推定姿勢の類似姿勢の絞り込み手法は、遷移可能３次元姿勢情報（運動モデル）を生成する際にも用いることができる。
【０１８５】
ステップＳ４５００ｄにおいて、次候補姿勢抽出部２００ｄは、次候補姿勢を、前回推定姿勢と前回推定姿勢の類似姿勢をもとにして、運動モデルに適合する姿勢に絞り込む。すなわち、次候補姿勢抽出部２００ｄは、３次元姿勢情報データベース１９０ｄの遷移可能３次元姿勢情報に基づいて、次候補姿勢を絞り込む。
【０１８６】
そして、ステップＳ４６００ｄにおいて、姿勢推定部１７０は、ステップＳ４５００ｄにおいて絞り込まれた次候補姿勢の中から、人の姿勢を推定する。そして、推定結果出力部１８０は、推定結果を出力する。ステップＳ４６００ｄの処理は、例えば、図１５のステップＳ２３００〜Ｓ２７００の処理と同様としてもよい。
【０１８７】
このような処理により、部位推定難度が低く、推定した２次元姿勢に誤りの可能性が低い場合には、運動モデルのみを用いて次回の姿勢候補を抽出することができる。そして、、部位推定難度が高く、推定した２次元姿勢に誤りの可能性が高い部位を含む場合には、画像情報を用いて候補を広げ、その後に運動モデルを用いて次回の姿勢候補を抽出することができる。すなわわち、姿勢推定装置１００ｄは、ロバストな姿勢推定を行うことが可能となる。
【０１８８】
以下、姿勢推定装置１００ｄにおいてフィッティングの対象となる姿勢が絞られる様子について説明する。ここでは、人が棚から物を手に取る一連の動作のうち、右腕の動作にのみ着目する。
【０１８９】
図２３は、右腕の稼動範囲の一例を示す図である。図２３Ａは、体幹に対する右腕の水平面における稼動範囲を示す。図２３Ｂは、体幹に対する右上腕の垂直平面における稼動範囲を示す。図２３Ｃは、右上腕に対する右前腕の垂直平面における稼動範囲を示す。
【０１９０】
図２３Ａに示すように、体幹６２１に対する右腕６２２（右上腕６２３および右前腕６２４）の水平面における稼動範囲は、体幹６２１の正面方向に対して−４５度〜＋４５度の範囲とする。
【０１９１】
また、図２３Ｂに示すように、体幹６２１に対する右上腕６２３の垂直平面における稼動範囲は、鉛直方向に対して０度〜１８０度の範囲とする。
【０１９２】
また、図２３Ｃに示すように、右上腕６２３に対する右前腕６２４の垂直平面における稼動範囲は、右上腕６２３の軸方向に対して０度〜１８０度の範囲とする。
【０１９３】
また、このような稼動範囲における右腕６２２（右上腕６２３および右前腕６２４）の角度を、２２.５度刻みで推定することが可能であるものとする。
【０１９４】
図２４は、右腕を体幹正面方向に向けた姿勢における、右前腕の先端部が取り得る位置（軌跡）を示す図である。図中、Ｘ軸は、右肩を原点とした体幹正面方向における距離を示し、Ｙ軸は、右肩を原点とした垂直方向における距離を示す。また、以下の各図において、三角印（▲）は、右前腕の先端部が取り得る位置を示す。
【０１９５】
図２４に示すように、右前腕の先端部は、９×９＝８１通りの位置を取り得る。
【０１９６】
なお、右腕６２２の水平面における稼動範囲は５通り存在し、各方向において、右前腕の先端部は、９×９＝８１通りの位置を取り得る。したがって、人が取り得る姿勢は、５×８１＝４０５通りとなる。
【０１９７】
なお、カメラが、仰角が０度であり、人を真横から撮影するものである場合は、特殊である。この場合、右腕６２２の水平面における向きが−４５度である場合と＋４５度である場合とで、および、右腕６２２の水平面における向きが−２２．５度である場合と＋２２．５度である場合とで、画像上で右前腕の先端部が取り得る位置のパターンは同一となる。また、腕を真下に下ろす姿勢と、真上に上げている位置のパターンは同一になる。したがって、カメラが、仰角０度で人を真横から撮影する場合は、画像上で確認することが可能な姿勢は、３×８１−４＝２４３−４＝２３９通りとなる。
【０１９８】
運動モデルを用いれば、このような多数の姿勢の中から、次候補姿勢を絞り込むことができる。例えば、０.１秒毎に撮影および姿勢推定が行われ、人の各関節は、水平方向および垂直方向のそれぞれにおいて、０.１秒当たり最大で２２.５度までしかその角度を変えられなかったとする。この場合、次候補姿勢は、３×３×３＝９個以下に絞られる。
【０１９９】
ところが、正解の姿勢とシルエットが同一の、誤った姿勢が、前回推定姿勢であった場合、運動モデルによる次候補姿勢の絞り込みは有効ではない。
【０２００】
図２５は、シルエットが同一となる複数の姿勢の例を示す図である。
【０２０１】
図２５Ａに示すように、前回推定姿勢が、腕を真下に伸ばしている姿勢であったとする。しかし、図２５Ｂおよび図２５Ｃに示すように、シルエットが同一の別の姿勢も存在し、これらと誤った姿勢推定がされた可能性がある。
【０２０２】
図２６は、右上腕および右前腕の推定難度が高い場合、つまり、運動モデルによる次候補姿勢の絞り込みを行わない場合の、右前腕の先端部が取り得る位置（軌跡）を示す図である。以下の各図において、菱形印（◇）は、次候補姿勢において右前腕の先端部が取り得る位置を示す。
【０２０３】
図２５Ａに示す姿勢とシルエットが同じ姿勢（右腕が胴および頭と重なる姿勢）の数は、例えば、４１となる。そして、仰角０度で人を真横から撮影する場合、図２５Ａに示す姿勢とシルエットが同じ姿勢の数は、例えば、１８となる。
【０２０４】
図２７は、右上腕および右前腕の推定難度が低い場合、つまり、運動モデルによる次候補姿勢の絞り込みを行った場合の、右前腕の先端部が取り得る位置（軌跡）を示す図である。
【０２０５】
図２５Ａに示す姿勢に対する遷移可能３次元姿勢の数は、例えば、９１となる。そして、仰角０度で人を真横から撮影する場合、図２５Ａに示す姿勢に対する遷移可能３次元姿勢の２次元姿勢の数は、例えば、６３となる。
【０２０６】
以上のように、姿勢推定装置１００ｄは、推定難度が高い部位が存在しなければ、次候補姿勢の数を、仰角０度で人を真横から撮影する場合には２４３から６３まで、その他の場合には４０５から９１まで、削減することができる。また、姿勢推定装置１００ｄは、推定難度が高い部位が存在する場合でも、仰角０度で人を真横から撮影する場合には、シルエット画像の類似度から、次候補姿勢の数を、２４３から１８まで削減することができる。
【０２０７】
以上のように、本実施の形態に係る姿勢推定装置１００ｄは、推定難度から前回推定姿勢の信頼度を判定し、前回推定姿勢の信頼度が高い場合、運動モデルを用いて次回姿勢候補を抽出する。これにより、姿勢推定装置１００ｄは、処理の高速化・低負荷化を図ることができる。
【０２０８】
また、本実施の形態に係る姿勢推定装置１００ｄは、前回推定姿勢の信頼度が低い場合、画像情報に基づいて姿勢判定を行う。あるいは、本実施の形態に係る姿勢推定装置１００ｄは、前回推定姿勢の信頼度が低い場合、画像情報の類似度を用いて、前回推定姿勢の候補を拡大してから、運動モデルを用いて次回姿勢候補を抽出する。これにより、姿勢推定装置１００ｄは、ロバストな姿勢推定を行うことができる。
【０２０９】
なお、以上説明した実施の形態２および実施の形態３では、姿勢推定の対象が人である場合について説明したが、本発明は、ロボットなど、複数の部位から成る各種の物体の姿勢推定に適用することができる。
【産業上の利用可能性】
【０２１０】
本発明は、複数の部位から成る物体の姿勢を高精度に推定することができる姿勢推定装置および姿勢推定方法として有用である。
【符号の説明】
【０２１１】
１００、１００ａ、１００ｄ  姿勢推定装置
１１０  姿勢情報データベース
１２０、１２０ｂ、１２０ｃ  難度情報生成部
１２０ａ  難度情報生成装置
１２１  姿勢情報取得部
１２２  平行線抽出部
１２３  推定難度判定部
１２４  難度情報出力部
１２５ｂ  閾値調節部
１２６ｃ  隣接部位角度抽出部
１３０  難度情報テーブル
１４０  画像入力部
１５０  部位推定部
１６０  フィッティング部
１７０  姿勢推定部
１８０  推定結果出力部
１９０ｄ  ３次元姿勢情報データベース
２００ｄ  次候補姿勢抽出部
５００ａ  姿勢推定システム
【図１】
0005877053.tif 000004
【図２】
0005877053.tif 000005
【図３】
0005877053.tif 000006
【図４】
0005877053.tif 000007
【図５】
0005877053.tif 000008
【図６】
0005877053.tif 000009
【図７】
0005877053.tif 000010
【図８】
0005877053.tif 000011
【図９】
0005877053.tif 000012
【図１０】
0005877053.tif 000013
【図１１】
0005877053.tif 000014
【図１２】
0005877053.tif 000015
【図１３】
0005877053.tif 000016
【図１４】
0005877053.tif 000017
【図１５】
0005877053.tif 000018
【図１６】
0005877053.tif 000019
【図１７】
0005877053.tif 000020
【図１８】
0005877053.tif 000021
【図１９】
0005877053.tif 000022
【図２０】
0005877053.tif 000023
【図２１】
0005877053.tif 000024
【図２２】
0005877053.tif 000025
【図２３】
0005877053.tif 000026
【図２４】
0005877053.tif 000027
【図２５】
0005877053.tif 000028
【図２６】
0005877053.tif 000029
【図２７】
0005877053.tif 000030