(57)【特許請求の範囲】
【請求項１】
人を含む画像の画像情報から、前記人の頭の位置を推定する頭推定部と、
前記画像情報から、前記人の、足底が床面に対して平行な足の位置を推定する足推定部と、
推定された前記頭の位置と推定された前記足の位置との相対的な位置関係に基づいて、前記人の姿勢を推定する姿勢推定部と、を有する、
姿勢推定装置。
【請求項２】
前記姿勢推定部は、
前記頭の位置に対して前記足の位置が位置する側を、前記人の正面側と推定する、
請求項１記載の姿勢推定装置。
【請求項３】
前記画像情報は、前記人および前記床面を含む画像の画像情報であり、
前記足推定部は、
前記床面に接触している足の位置を、前記足底が床面に対して平行な足の位置とする、
請求項２記載の姿勢推定装置。
【請求項４】
前記頭推定部は、
前記画像情報から前記画像における前記頭の領域を推定し、推定した前記頭の領域の重心位置である頭重心位置を、前記頭の位置とし、
前記足推定部は、
前記画像情報から、前記画像における前記人の足底の領域を推定する足底推定部と、
推定された前記足底領域から、前記足底領域のうち床面に対して平行な領域の重心位置である足重心位置を推定し、推定した前記足重心位置を、前記足の位置とする足底重心推定部と、を有する、
請求項２記載の姿勢推定装置。
【請求項５】
前記画像は、前記人および前記床面を含む実空間を撮影して得られた画像であり、
前記床面は、水平であり、
前記足底推定部は、
前記画像情報から、前記画像における前記足と背景との境界線を推定し、推定した境界線に基づいて前記足底の領域を推定し、
前記足底重心推定部は、
推定された前記境界線の方向と、前記実空間における水平線方向との比較に基づいて、前記足重心位置を推定する、
請求項４記載の姿勢推定装置。
【請求項６】
前記足底推定部は、
前記人の片足ごとに、前記足底の領域を推定し、
前記足底重心推定部は、
推定された前記片足ごとの前記足底の領域のうち、前記水平線方向に近似する前記境界線の方向の成分が多い前記足底の領域のみを用いて、前記足重心位置を推定する、
請求項５記載の姿勢推定装置。
【請求項７】
前記足底重心推定部は、
推定された前記足底の領域のうち、前記水平線方向により近似する方向の前記境界線に対応する部分に対して、より高い重みが付けられるように、前記前記足底の領域に対して重み付けを行い、得られた重みの重心位置を、前記足重心位置とする、
請求項５記載の姿勢推定装置。
【請求項８】
前記画像は、前記実空間を断続的に撮影して得られた複数の画像を構成する画像であり、
前記足底重心推定部は、
推定された前記足底領域のうち、第１の時刻に撮影された前記画像と、前記第１の時刻から所定の時間後の第２の時刻に撮影された前記画像との間の両方において前記足底の領域と推定された領域である重複領域から、前記足重心位置を推定する、
請求項４記載の姿勢推定装置。
【請求項９】
前記画像情報から、前記人の上半身の角度を推定する上半身姿勢推定部と、
前記姿勢推定部による前記姿勢の推定の結果を出力する推定結果出力部と、を更に有し、
前記推定結果出力部は、
推定された前記上半身の角度が所定の範囲内にあることを条件として、前記姿勢の推定の結果を出力する、
請求項４記載の姿勢推定装置。
【請求項１０】
人体を含む人型多関節物体の左足向きと、前記物体の右足向きと、を検出する足向き検出部と、
前記左足向きの安定度である左足安定度と、前記右足向きの安定度である右足安定度と、を算出する安定度算出部と、
前記左足安定度、前記左足向き、前記右足安定度、および前記右足向きから、前記姿勢として、前記物体の体幹の向きを推定する姿勢推定部と、を更に有する、
請求項１記載の姿勢推定装置。
【請求項１１】
前記姿勢推定部は、
前記左足安定度および前記右足安定度に基づく重み付けを行って、前記左足向きと前記右足向きとを合成することにより、前記姿勢として、前記体幹の向きを推定する、
請求項１０記載の姿勢推定装置。
【請求項１２】
検出された前記左足向きおよび前記右足向きを記憶する足向き履歴保持部、を更に有し、
前記安定度算出部は、
前記左足向きの履歴から前記左足安定度を算出し、前記右足向きの履歴から前記右足安定度を算出する、
請求項１１記載の姿勢推定装置。
【請求項１３】
前記安定度算出部は、
前記左足向きの変動が小さい状態が継続している時間が長いほど、前記左足安定度をより高い値に算出し、前記右足向きの変動が小さい状態が継続している時間が長いほど、前記右足安定度をより高い値に算出し、
前記姿勢推定部は、
前記左足安定度が高いほど、前記左足向きに対する重みをより高い値に算出し、前記右足安定度が高いほど、前記右足向きに対する重みをより高い値に算出する、
請求項１２記載の姿勢推定装置。
【請求項１４】
推定された前記体幹の向きを記憶する姿勢履歴保持部、を更に有し、
前記姿勢推定部は、
前記左足安定度、前記左足向き、前記右足安定度、前記右足向き、および前回推定された前記体幹の向きから、前記体幹の向きを推定する、
請求項１３記載の姿勢推定装置。
【請求項１５】
検出された前記左足向きおよび前記右足向きを記憶する足向き履歴保持部、を更に有し、
前記足向き検出部は、
前記左足向きが検出できないとき、前回検出された前記左足向きを今回検出された前記左足向きとして取得し、前記右足向きが検出できないとき、前回検出された前記右足向きを今回検出された前記右足向きとして取得する、
請求項１０記載の姿勢推定装置。
【請求項１６】
前記物体を撮影した映像を入力する画像入力部、を更に有し、
前記足向き検出部は、
前記映像から、前記物体の左下腿および右下腿を抽出する下腿検出部と、
前記映像および検出された前記左下腿から、左足背を抽出し、前記映像および検出された前記右下腿から、右足背を抽出する足背抽出部と、
抽出された前記左足背から、前記左足向きを推定し、抽出された前記右足背から、前記右足向きを推定する足向き推定部と、を有する、
請求項１０記載の姿勢推定装置。
【請求項１７】
前記足向き検出部は、
所定の間隔を有する複数の向きに量子化して、前記左足向きおよび前記右足向きを検出し、
前記安定度算出部は、
前記左足向きが変動しない状態が継続している時間が長いほど、前記左足安定度をより高い値に算出し、前記右足向きが変動しない状態が継続している時間が長いほど、前記右足安定度をより高い値に算出する、
請求項１０記載の姿勢推定装置。
【請求項１８】
検出された前記左足向きおよび前記右足向きを記憶する足向き履歴保持部、を更に有し、
前記足向き検出部は、
前記左足向きの履歴および前記右足向きの履歴に応じて、前記量子化における前記向きの間隔を変化させる、
請求項１７記載の姿勢推定装置。
【請求項１９】
人を含む画像の画像情報から、前記人の頭の位置と、前記人の、足底が床面に対して平行な足の位置と、を推定するステップと、
推定された前記頭の位置と推定された前記足の位置との相対的な位置関係に基づいて、前記人の姿勢を推定するステップと、を有する、
姿勢推定方法。
【請求項２０】
人を含む画像を入力あるいは生成する装置のコンピュータに、
前記画像の画像情報から、前記人の頭の位置と、前記人の、足底が床面に対して平行な足の位置と、を推定する処理と、
推定された前記頭の位置と推定された前記足の位置との相対的な位置関係に基づいて、前記人の姿勢を推定する処理と、を実行させる、
姿勢推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人体あるいは人型ロボットなどの人型多関節物体の姿勢を推定する、姿勢推定装置、姿勢推定方法、および姿勢推定プログラムに関する。
【背景技術】
【０００２】
近年、撮影された動画像の画像データに基づく人の姿勢推定に関する研究が、盛んに行われている。姿勢推定装置は、動画像から人の行動をコンピュータ解析により判定することができ、人手に頼らずに行動解析を行うことができる。行動解析としては、例えば、街頭での異常行動検知、店舗での購買行動分析、工場における作業効率化支援、およびスポーツにおけるフォーム指導がある。【０００３】
人の姿勢としては、例えば、体幹（肩から腰までの部分）の向き（以下、適宜「身体向き」という）を推定可能であることが望まれる。人の身体向きを推定することができれば、その人が興味を向けた物体の場所の判定、あるいは、直後に歩き出す方向の推定などが可能となるからである。【０００４】
このような推定は、人に方位センサなどの装置を取り付けることなく行えることが望ましい。人に装置を取り付ける推定手法は、不特定の人を推定対象とすることが困難であり、推定対象が多数の場合にはコストが掛かるからである。【０００５】
そこで、人を撮影した映像に基づいて、当該人の身体向きを推定する技術が、例えば特許文献１に記載されている。【０００６】
特許文献１に記載の技術（以下、「従来技術１」という）は、撮影映像から人の肩および胴体を検出し、検出した肩および胴体の移動軌跡を解析し、解析した移動軌跡から人の身体向きを判定する。この技術によれば、人に方位センサなどの装置を取り付けることなく、人の身体向きを推定することができる。【０００７】
また、人を撮影した画像に基づいて、当該人の顔の向きを推定する技術が、例えば特許文献２に記載されている。【０００８】
特許文献２に記載の技術（以下、「従来技術２」という）は、撮影した画像から人の顔領域を検出し、予め学習しておいたパターンと照合することにより、人の顔の向きを推定する。この技術を用いれば、顔が身体の正面を向いている場合、つまり、顔の向きが身体向きと一致している場合には、人に方位センサなどの装置を取り付けることなく、身体向きを推定することができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００３−１０１９９９号公報
【特許文献２】特開２００４−９４４９１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来技術１および従来技術２は、撮影条件によっては、身体向きを高精度に推定することができないという課題を有する。なぜなら、従来技術１は、人が一旦停止してその場で回転した場合、あるいは、人が後ろ歩き若しくは横歩きをした場合、身体向きを誤って推定することになるからである。また、従来技術２は、顔が身体の正面を向いていない間、身体向きを誤って推定することになるからである。【００１１】
また、人型ロボットなど、体幹を有し２足歩行を行う多関節物体を、姿勢推定の対象とすることが考えられるが、従来技術１および従来技術２では、同様の問題が起こり得る。【００１２】
本発明の目的は、人型多関節物体の姿勢を高精度に推定することである。
【課題を解決するための手段】
【００１３】
本発明の一態様に係る姿勢推定装置は、人を含む画像の画像情報から、前記人の頭の位置を推定する頭推定部と、前記画像情報から、前記人の、足底が床面に対して平行な足の位置を推定する足推定部と、推定された前記頭の位置と推定された前記足の位置との相対的な位置関係に基づいて、前記人の姿勢を推定する姿勢推定部とを有する。【００１４】
本発明の一態様に係る姿勢推定方法は、人を含む画像の画像情報から、前記人の頭の位置と、前記人の、足底が床面に対して平行な足の位置とを推定するステップと、
推定された前記頭の位置と推定された前記足の位置との相対的な位置関係に基づいて、前記人の姿勢を推定するステップと、を有する、【００１５】
本発明の一態様に係る姿勢推定プログラムは、人を含む画像を入力あるいは生成する装置のコンピュータに、前記画像の画像情報から、前記人の頭の位置と、前記人の、足底が床面に対して平行な足の位置とを推定する処理と、推定された前記頭の位置と推定された前記足の位置との相対的な位置関係に基づいて、前記人の姿勢を推定する処理とを実行させる。
【発明の効果】
【００１６】
本発明によれば、人型多関節物体の姿勢を高精度に推定することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態１に係る姿勢推定装置の構成の一例を示すブロック図
【図２】本発明の実施の形態２に係る姿勢推定システムの構成の一例を示すシステム構成図
【図３】本発明の実施の形態２における身体モデルの一例を示す図
【図４】本発明の実施の形態２における身体向きの定義を説明するための図
【図５】本発明の実施の形態２に係る姿勢推定装置の構成の一例を示すブロック図
【図６】本発明の実施の形態２に係る姿勢推定装置の動作の一例を示すフローチャート
【図７】本発明の実施の形態２における背景差分画像の一例を示す図
【図８】本発明の実施の形態２における足底領域推定処理の一例を示すフローチャート
【図９】本発明の実施の形態２における部分的な背景差分画像の一例を示す図
【図１０】本発明の実施の形態２における足底候補領域を示す図
【図１１】本発明の実施の形態２における足底領域抽出処理の一例を示すフローチャート
【図１２】本発明の実施の形態２における足底角度の定義を説明するための図
【図１３】本発明の実施の形態２における足底角度推定処理の一例を示すフローチャート
【図１４】本発明の実施の形態２における基準点抽出処理を説明するための図
【図１５】本発明の実施の形態２における姿勢推定処理の一例を示すフローチャート
【図１６】本発明の実施の形態２における頭重心位置および足重心位置の一例を示す図
【図１７】本発明の実施の形態２における姿勢推定処理の他の例を示すフローチャート
【図１８】本発明の実施の形態２における時差画像について説明するための第１の図
【図１９】本発明の実施の形態２における時差画像について説明するための第２の図
【図２０】本発明の実施の形態２における時差画像について説明するための第３の図
【図２１】本発明の実施の形態３に係る姿勢推定装置の構成の一例を示すブロック図
【図２２】本発明の実施の形態３に係る姿勢推定装置の動作の一例を示すフローチャート
【図２３】本発明の実施の形態３における上半身姿勢推定処理の一例を示すフローチャート
【図２４】本発明の実施の形態４に係る姿勢推定装置の構成の一例を示すブロック図
【図２５】本発明の実施の形態５における向きの定義を説明するための図
【図２６】本発明の実施の形態５に係る姿勢推定装置の構成の一例を示すブロック図
【図２７】本発明の実施の形態５に係る足向き検出部の構成の一例を示すブロック図
【図２８】本発明の実施の形態５に係る安定度算出部の構成の一例を示すブロック図
【図２９】本発明の実施の形態５に係る姿勢推定部の構成の一例を示すブロック図
【図３０】本発明の実施の形態５に係る姿勢推定装置の動作の一例を示すフローチャート
【図３１】本発明の実施の形態５における足向き算出処理の一例を示すフローチャート
【図３２】本発明の実施の形態５における足背矩形の候補の決定手法を説明するための図
【図３３】本発明の実施の形態５における安定度算出処理の一例を示すフローチャート
【図３４】本発明の実施の形態５における姿勢推定処理の一例を示すフローチャート
【図３５】実験における左足向きおよび右足向きの検出結果を示すグラフ
【図３６】実験における左右平均向きの算出結果を示すグラフ
【図３７】実験における本発明の実施の形態５による安定度の算出結果を示すグラフ
【図３８】実験における本発明の実施の形態５による身体向きの推定結果を示すグラフ
【図３９】足向きを量子化した場合の実験における左足向きおよび右足向きの検出結果を示すグラフ
【図４０】足向きを量子化した場合の実験における左右平均向きの算出結果を示すグラフ
【図４１】足向きを量子化した場合の実験における本発明の実施の形態５による安定度の算出結果を示すグラフ
【図４２】足向きを量子化した場合の実験における本発明の実施の形態５による身体向きの推定結果を示すグラフ
【発明を実施するための形態】
【００１８】
以下、本発明の各実施の形態について、図面を参照して詳細に説明する。なお、以下に説明する姿勢推定装置１００は、例えば、ＣＰＵ（Central Processing Unit）、制御プログラムを格納したＲＯＭ（Read Only Memory）などの記憶媒体、およびＲＡＭ（Random Access Memory）などの作業用メモリをそれぞれ有してもよい。この場合、以下に説明する各構成部の機能は、ＣＰＵが制御プログラムを実行することにより実現してもよい。
【００１９】
（実施の形態１）
本発明の実施の形態１は、本発明の基本的態様の一例である。
【００２０】
図１は、本実施の形態に係る姿勢推定装置の構成の一例を示すブロック図である。
【００２１】
図１において、姿勢推定装置１００は、頭推定部１２０、足推定部１３０、および姿勢推定部１４０を有する。
【００２２】
頭推定部１２０は、人を含む画像の画像情報から、人の頭の位置を推定する。
【００２３】
足推定部１３０は、画像情報から、人の、足底が床面に対して平行な足の位置を推定する。
【００２４】
姿勢推定部１４０は、推定された頭の位置と推定された足の位置との相対的な位置関係に基づいて、人の姿勢を推定する。
【００２５】
なお、ここで、「人」は、人体あるいはロボットなどの多関節物体を含む人型多関節物体を意味する。また、「人の姿勢」は、人型多関節物体の、正面の向き、あるいは、当該向きに対応した形態を意味する。
【００２６】
このような姿勢推定装置１００は、頭の位置と足の位置との相対的な位置関係に基づいて、人の姿勢を推定することができる。
【００２７】
背筋を伸ばして歩く通常の歩行において、通常、床面に対して平行に近い角度の足底部分は、体幹の正面方向（以下、「正面方向」という）に向かって、頭よりも前に位置する。これは、人の身体には、人の足は踵から体幹の正面方向に伸びており、膝下との角度が垂直から一直線程度しか曲がらず、かつ、膝は後ろ方向にしか曲がらない、という制約があるからである。
【００２８】
まず、人が直立しているとき、足は踵から前方に伸びている。そして、人の足の大きさは、頭の直径よりも大きい。このため、床面に対して平行に近い角度の（以下、適宜、「床面に対して平行な」という）足底部分は、頭よりも前方に位置する。次に、人は膝を曲げ伸ばして足を交互に動かし移動するが、後方の足の踵を床面に接触したままにすると、足首の角度が鋭角となり不自然な姿勢となる。このため、後方にある足は、踵を上げたほうが自然な姿勢となる。
【００２９】
つまり、後方の足の足底の角度は、床面に対して平行に近い角度から、床面に対して垂直の角度側へと変化する。一方、前方の足は踵を床面に接触したままにしても、足首の可動範囲となり不自然にはならない。このため、前方の足底の角度は、後方にある足よりも、床面に対して平行により近い状態となっている場合が多いことになる。ここで、背筋を伸ばして歩く通常の歩行とは、停止しての回転、後ろ歩き、および横歩きを含むものとする。
【００３０】
したがって、足底が床面に対して平行な足と頭との相対的な位置関係を用いることにより、人が、停止しての回転、後ろ歩き、および横歩きなどを行っていても、および、顔が身体の正面を向いていなくても、姿勢を推定することができる。すなわち、姿勢推定装置１００は、人型多関節物体の姿勢を高精度に推定することができる。なお、床面が水平である場合、床面に対して平行であることと、水平であることとは、同義である。
【００３１】
（実施の形態２）
本発明の実施の形態２は、本発明を、撮影画像を入力して撮影画像に含まれる人の姿勢を推定する装置に適用した場合の、本発明の具体的態様の一例である。
【００３２】
まず、本実施の形態に係る姿勢推定装置を含む姿勢推定システムの概要について説明する。
【００３３】
図２は、本実施の形態における姿勢推定システムの構成の一例を示すシステム構成図である。図２において、姿勢推定システム２００は、監視エリア３１０を撮影する監視カメラ３２０と、監視カメラ３２０と通信可能に接続された姿勢推定装置１００とを有する。
【００３４】
監視カメラ３２０は、例えばデジタルビデオカメラであり、監視エリア３１０を斜め上方から撮影する。すなわち、監視カメラ３２０が撮影する画像は、人３４０および水平な床面３３０を含む実空間を撮影して得られた画像である。そして、監視カメラ３２０は、撮影映像の映像データを、姿勢推定装置１００へ送信する。ここでは、監視エリア３１０の床面３３０を、姿勢推定の対象となる人３４０が歩行しているものとする。
【００３５】
姿勢推定装置１００は、例えばパーソナルコンピュータであり、監視カメラ３２０から受信した映像データに基づいて、人３４０の姿勢を推定する。
【００３６】
以上で、姿勢推定システム２００の概要についての説明を終える。
【００３７】
次に、本実施の形態において推定の対象となる人３４０の姿勢について説明する。
【００３８】
図３は、人３４０の身体の構成モデル（以下「身体モデル」という）４１０の一例を示す図である。身体モデル４１０は、姿勢推定に用いられる身体の各部位の位置関係を、模式的に示したものである。身体モデル４１０は、胴４１１、左大腿４１２、左下腿４１３、左足４１４、右大腿４１５、右下腿４１６、右足４１７、および頭４１８を少なくとも含む。
【００３９】
これらの各部位は、関節で接続されている。このため、各部位の可動域は、他の部位により制約を受ける。例えば、左足４１４は、左下腿４１３との接続点を中心とする所定の角度範囲でのみ動くことができる。本実施の形態では、姿勢推定装置１００は、各部位の可動域の制約を用いて、身体モデル４１０における各部位の領域を画像情報から抽出するものとする。なお、姿勢推定装置１００が用いる身体モデルは、図３に示す例に限定されるものではない。
【００４０】
本実施の形態において、人３４０は、床面３３０上を直立あるいは歩行するものとする。そして、推定の対象となる姿勢とは、人３４０の体幹（胴４１１）の正面の向きの水平線方向成分（以下「身体向き」という）とする。したがって、以下の説明において、垂直成分の方向については考慮しない。
【００４１】
図４は、本実施の形態における身体向きの定義を説明するための図である。図４に示すように、身体向き４２１は、人３４０の左肩と右肩とを結んだ線分４２２に対して３次元空間上で直交する線分の、左足および右足が向いている方の向きである。
【００４２】
例えば、身体向きを推定する手法としては、左足の向き４２３と、右足の向き４２４とを平均した向きである平均足向き４２５を用いることができる。平均足向き４２５は、人３４０が両足を着地した状態で自然な姿勢をとる場合、身体上の制約から、身体向き４２１に近似する。したがって、姿勢推定を行うためには、左右の足の向きを抽出し、その平均値をとればよい。
【００４３】
ところが、人３４０の服装の形状または色によって、画像情報から各部位を抽出できない場合がある。そのような場合には、足の向き検出が困難となる。
【００４４】
また、上述の従来技術を適用して姿勢推定を行うことが考えられる。しかしながら、上述の通り、従来技術は、人３４０が後ろ歩きを行っている場合、あるいは、顔を横に向けているような場合、姿勢を推定することができない。
【００４５】
そこで、本実施の形態に係る姿勢推定装置１００は、後述するが、頭の位置と足の位置との相対的な位置関係に基づいて、人の姿勢を推定する。これにより、姿勢推定装置１００は、より確実に（つまり高精度に）、人３４０の姿勢を推定することが可能となる。
【００４６】
以上で、推定の対象となる人３４０の姿勢についての説明を終える。
【００４７】
次に、姿勢推定装置１００の構成について説明する。
【００４８】
図５は、姿勢推定装置１００の構成の一例を示すブロック図である。図５において、姿勢推定装置１００は、画像入力部１１０、頭推定部１２０、足底領域推定部１３１、足底重心推定部１３２、姿勢推定部１４０、推定結果出力部１５０を有する。なお、足底領域推定部１３１および足底重心推定部１３２は、実施の形態１の足推定部１３０に対応するものである。
【００４９】
画像入力部１１０は、人３４０および床面３３０を含む画像を入力する。
【００５０】
具体的には、画像入力部１１０は、監視カメラ３２０が撮影した映像の画像データを受信する。そして、画像入力部１１０は、当該映像を構成する単位となる静止画像（以下「フレーム」という）の画像データを、順次、頭推定部１２０および足底領域推定部１３１へ出力する。
【００５１】
頭推定部１２０は、画像の画像情報から、人３４０の頭の位置を推定する。
【００５２】
具体的には、頭推定部１２０は、入力された画像データから、画像における頭の領域を推定し、推定した頭の領域の重心位置（以下「頭重心位置」という）を、人３４０の頭の位置とする。そして、頭推定部１２０は、推定した頭重心位置の、画像上の水平線方向の位置を示す情報（以下「頭位置情報」という）を、姿勢推定部１４０へ出力する。
【００５３】
足底領域推定部１３１は、画像の画像情報から、画像における人３４０の足底の領域（以下「足底領域」という）を推定する。
【００５４】
具体的には、足底領域推定部１３１は、入力された画像データから、画像における人３４０の足と背景との境界線（以下「足底境界線」という）を推定し、推定した足底境界線に基づいて足底領域を推定する。また、足底領域推定部１３１は、推定した足底境界線の足底角度を推定する。足底角度とは、足底境界線が、基準方向である水平線方向と成す角の角度である。
【００５５】
そして、足底領域推定部１３１は、足底角度情報と足位置情報とを、互いに対応付けた状態で、足底重心推定部１３２へ出力する。ここで、足底角度情報とは、推定された足底角度を示す情報である。また、足位置情報とは、推定された足底領域の画像上における位置を示す情報である。
【００５６】
なお、足底境界線および足底領域の推定手法の詳細については、後述する。また、ここで、足底領域とは、足底の画像の領域ではなく、足底の位置（範囲）に対応する領域であるものとする。
【００５７】
足底重心推定部１３２は、推定された足底領域から、足底領域のうち水平に近い角度の（以下、単に「水平な」という）領域の重心位置（以下「足重心位置」という）を推定し、推定した足重心位置を、上述の足の位置とする。
【００５８】
具体的には、足底重心推定部１３２は、入力された足底角度情報および足位置情報から、足重心位置を推定する。そして、足底重心推定部１３２は、推定した足重心位置の、画像上の水平線方向の位置を示す情報（以下「足重心位置情報」という）を、姿勢推定部１４０へ出力する。
【００５９】
姿勢推定部１４０は、推定された頭の位置と推定された足の位置との相対的な位置関係に基づいて、人３４０の姿勢を推定する。
【００６０】
具体的には、姿勢推定部１４０は、入力された頭位置情報および足重心位置情報から、上記実空間の水平線方向における、頭重心位置に対して足重心位置が位置する側を判定する。そして、姿勢推定部１４０は、実空間の水平線方向（左右方向）のうち判定した側を、人３４０の正面側と推定する。
【００６１】
推定結果出力部１５０は、姿勢推定部１４０による姿勢の推定の結果を出力する。
【００６２】
具体的には、姿勢推定部１４０は、例えば液晶ディスプレイなどの表示装置を含む。姿勢推定部１４０は、姿勢が推定された場合にはその姿勢を示す情報を、姿勢が推定されなかった場合にはその旨を示す情報を、文字または画像の表示によってユーザに通知する。
【００６３】
このような姿勢推定装置１００は、映像の各フレームから、人３４０の頭重心位置および足重心位置を推定し、推定したこれらの相対的な位置関係に基づいて、人３４０の姿勢を推定することができる。そして、これにより、姿勢推定装置１００は、上述の通り、人３４０の姿勢を高精度に推定することができる。
【００６４】
なお、人３４０の両足の足底領域のうち水平に近い部分の足底境界線は、画像の水平線に近似した角度の部分が多くなる。言い換えると、人３４０の水平に近い角度の方の足や、足底のうち水平に近い部分に対応する足底境界線の方向（以下「境界線方向」という）は、水平線方向に近似する。これは、本実施の形態では、床面３３０が水平であるからである。この場合、人３４０がカメラに対して真横を向いていない場合にも、同一人物の足底の角度の相対関係は保たれる。
【００６５】
また、水平に近い角度の領域は、水平に近くない角度の領域よりも、床面３３０との角度がより近い。
【００６６】
したがって、水平線方向に近似する境界線方向の成分が多い足底領域を用いると、床面３３０の角度と近い角度の足底領域から、足重心位置を決定することができる。これは、姿勢推定の精度の向上に繋がる。
【００６７】
そこで、本実施の形態において、足底重心推定部１３２は、推定された片足ごとの足底領域のうち、水平線方向に近似する境界線方向の成分が多い足底領域のみを用いて、足重心位置を推定する。
【００６８】
以上で、姿勢推定装置１００の構成についての説明を終える。
【００６９】
次に、姿勢推定装置１００の動作について説明する。図６は、姿勢推定装置１００の動作の一例を示すフローチャートである。
【００７０】
まず、ステップＳ１０００において、画像入力部１１０は、１フレーム分の画像データを入力する。
【００７１】
そして、ステップＳ２０００において、頭推定部１２０は、頭推定処理を行う。頭推定処理は、上述の頭位置情報を生成する処理である。
【００７２】
ここで、頭領域の抽出手法および頭重心位置の推定手法の一例について説明する。
【００７３】
まず、頭推定部１２０は、入力された画像データから、背景差分画像を生成して、人３４０と推定される領域（以下「人候補領域」という）を抽出する。ここで、背景差分画像とは、例えば、人３４０がいない状態で撮影された背景画像と、新たに入力された画像との差分を示す画像である。
【００７４】
図７は、背景差分画像の一例である。
【００７５】
図７に示すように、背景差分画像５１０は、例えば、入力画像と背景画像との画素値が異なる画素を白で表現し、入力画像と背景画像との画素値が同じ画素を黒で表現する。すなわち、背景差分画像５１０は、人３４０が存在する領域を、白の領域５１１で表現し、人３４０が存在しない領域を、黒の領域５１２で表現する。
【００７６】
人３４０の服装の形状または色によっては、図７に示すように、右太腿４１５、右下腿４１６、左太腿４１２、および左下腿４１３（図３参照）の領域が的確に抽出されない場合がある。また、靴の形状あるいは色によっては、右足４１７、左足４１４（図３参照）の形状も多様となり、特に足の甲の形状が多様となる。
【００７７】
しかし、図７からも分かるように、背景差分画像５１０は、頭部および足底（つまり靴の底側の部分）については、比較的安定してその形状を表現する。
【００７８】
なお、頭推定部１２０は、例えば、背景画像を予め保持し、背景画像と入力画像との差分を演算することにより背景差分画像５１０を生成する。あるいは、頭推定部１２０は、移動物体の領域を抽出することにより、背景差分画像５１０を生成してもよい。移動物体の領域の抽出は、例えば、１つ前のフレームと今回のフレームとの差分から、静止物体と移動物体との識別をすることにより行われる。
【００７９】
頭推定部１２０は、白の領域５１１を人候補領域として抽出し、そのうち、上部の領域を、頭候補領域として抽出する。上部の領域は、例えば、人候補領域（白の領域５１１）のうち上端から下方に向かって所定の比率（例えば、３０％）の部分を含む領域として、予め定められている。
【００８０】
そして、頭推定部１２０は、抽出した頭候補領域から、ハフ変換などを用いて頭領域を抽出する。ハフ変換は公知の技術であり、エッジ情報から円の中心（Ｘ座標、Ｙ座標）と半径を表す三つのパラメータを求めることができる。そして、頭推定部１２０は、この円の中心を、頭重心位置として算出する。
【００８１】
なお、頭推定部１２０は、ステップＳ２０００の処理を、必ずしも後述のステップＳ３０００の前に行う必要はなく、ステップＳ４０００の処理の開始までに行えばよい。
【００８２】
図６のステップＳ３０００において、足底領域推定部１３１は、足底領域推定処理を行う。足底境界線推定処理は、入力された画像データから、画像データに含まれる人３４０の、上述の足底角度情報および足位置情報を生成する処理である。
【００８３】
図８は、足底領域推定処理（図６のステップＳ３０００）の一例を示すフローチャートである。
【００８４】
まず、ステップＳ３１００において、足底領域推定部１３１は、入力された画像データから、人候補領域を抽出する。
【００８５】
具体的には、足底領域推定部１３１は、例えば、図７で説明した抽出手法により、人候補領域を抽出する。なお、頭推定部１２０と足底領域推定部１３１との間で、人候補領域の抽出結果を共用してもよい。
【００８６】
そして、ステップＳ３２００において、足底領域推定部１３１は、抽出した人候補領域のうち、下部の領域を、足底候補領域として抽出する。足底候補領域とは、足底領域の全体を含むと推定される領域である。下部の領域は、例えば、人候補領域の下端から上方に向かって所定の比率（例えば、２５％）の部分を含む領域として、予め定められている。
【００８７】
図９は、背景差分画像から足底候補領域以外を無視したときの一例を示す図である。また、図１０は、図９に示す背景差分画像のうち足底候補領域を拡大した図である。
【００８８】
図１０に示すように、足底候補領域５２０の大きさは、例えば、水平線方向にａ、水平線に対して垂直な方向にｂである。すなわち、ａは、足底候補領域５２０のＸ座標の最大値であり、ｂは、Ｙ座標の最大値である。
【００８９】
ここでは、足底候補領域５２０の左下の角を原点とし、水平線方向をＸ軸とし、垂直方向をＹ軸とする。この場合、足底候補領域５２０上の各画素の位置は、Ｘ座標値ｘとＹ座標値ｙとの組（ｘ，ｙ）により表現される。なお、０＜＝ｘ＜＝ａ，  ０＜＝ｙ＜＝ｂである。
【００９０】
また、以下の説明では、Ｘ軸方向は、画像の水平線方向に一致しているものとする。
【００９１】
また、ここでは、足底候補領域５２０のローカル座標系を用いて足底候補領域５２０の各画素の位置を表現する例を説明するが、入力画像などのグローバル座標系を用いて画素位置を表現してもよい。座標値は、ローカル座標の原点のグローバル座標系での位置を用いることにより、ローカル座標系とグローバル座標系との間で変換することが可能である。
【００９２】
そして、図８のステップＳ３３００において、足底領域推定部１３１は、足底境界線抽出処理を行う。足底境界線抽出処理とは、足底候補領域から、足底境界線を構成する画素（以下「足底境界画素」という）を抽出し、足底境界画素の位置を示す情報（以下「足底位置情報」という）を生成する処理である。
【００９３】
人３４０の足底は、靴または足の甲などの裏側となっているが、その外形のうち少なくとも下側の部分は、靴を含めた足の外形と同視できる。これは、通常、人の歩行時などは、足底は地面側を向くためである。そして、足底候補領域は、背景差分画像の一部であり、足底候補領域における人候補領域（図１０における白い画素の領域）の外形は、靴を含めた足の外形と同視できる。
【００９４】
そこで、足底領域推定部１３１は、足底候補領域から人候補領域（図１０における白い画素の領域）の外形のうち下側の部分を、上記足底境界線として抽出する。
【００９５】
図１０に示すローカル座標系において、１つの足底領域に含まれる画素において、同じＸ座標値を持つ画素のうち、最もＹ座標値が小さい画素が、足底境界画素といえる。１つの足底領域に含まれる足底境界画素のＹ座標値は、そのＸ座標値から一意に定まる。
【００９６】
図１１は、足底領域抽出処理（図８のステップＳ３３００）の一例を示すフローチャートである。
【００９７】
なお、以下の説明において、足底領域に含まれるか否かの判断の対象となっている画素は、「判断対象画素」という。判断対象画素は、その座標が（ｘ、ｙ）である場合、Ｇ（ｘ，ｙ）と表す。また、入力画像のうち、人候補領域の画素（図１０における白い画素）の値は、Ｔと表し、人候補領域以外の画素（図１０における黒い画素）の値は、Ｆと表す。すなわち、例えば、座標（２、３）の判断対象画素が人候補領域に属する場合、当該判断対象画素は、Ｇ（２，３）＝Ｔと表される。
【００９８】
また、Ｘ座標値ｘの位置に足底境界画素が存在するとき、当該足底境界画素のＹ座標値（以下「境界垂直位置」という）は、ＡＧ（ｘ）と表す。すなわち、例えば、Ｘ座標値が３である足底境界画素のＹ座標値が、７であるとき、境界垂直位置は、ＡＧ（３）＝７と表現される。
【００９９】
また、１つの足底候補領域から複数の足底領域が推定される場合もある。通常、人は２本の足で歩行するためである。ｎ番目に抽出される足底領域の足底境界は、Ａ（ｎ）と表す。そして、ｎ番目の足底領域にＸ座標値ｘの足底境界画素が含まれるとき、足底境界画素は、Ａ（ｎ）＝ＡＧ（ｘ）と表現される。
【０１００】
すなわち、例えば、１番目に抽出された足底領域に、Ｘ座標値が６の足底境界画素、Ｘ座標値が７の足底境界画素、およびＸ座標値が８の足底境界画素が含まれていたとする。この場合、１番目の足底領域の足底位置情報は、Ａ（１）＝｛ＡＧ（６），ＡＧ（７），ＡＧ（８）｝と表現される。また、足底領域が複数存在する場合、足底領域は、Ａ＝｛Ａ（１），Ａ（２）｝と表現される。
【０１０１】
まず、ステップＳ３３０１において、足底領域推定部１３１は、判断対象画素の初期位置を決める。例えば、足底領域推定部１３１は、図１０に示すように、足底候補領域５２０の左下隅（０，０）を、判断対象画素の初期位置とする。
【０１０２】
また、足底領域推定部１３１は、１番目（ｎ＝１）の第１の足底領域（１）＝０を新規に定義する。すなわち、足底領域推定部１３１は、ｘ＝０，ｙ＝０，ｎ＝１と設定する。ここで、第１の足底領域（１）＝０とは、足底境界領域が１つも取得されていない状態を表す。
【０１０３】
そして、ステップＳ３３０２において、足底領域推定部１３１は、現在の判断対象画素が、人候補領域に含まれるか否かを判断する。
【０１０４】
具体的には、足底領域推定部１３１は、例えば、判断対象画素が白の場合（Ｇ（０，０）＝Ｔ）、当該判断対象画素は足底領域に含まれると判断する。また、足底領域推定部１３１は、判断対象画素が黒の場合（Ｇ（０，０）＝Ｆ）、当該判断対象画素は足底領域に含まれないと判断する。
【０１０５】
足底領域推定部１３１は、判断対象画素が足底領域に含まれると判断した場合（Ｓ３３０２：ＹＥＳ）、ステップＳ３３０３へ進む。また、足底領域推定部１３１は、足底領域に含まれないと判断した場合（Ｓ３３０２：ＮＯ）、ステップＳ３３０４へ進む。
【０１０６】
ステップＳ３３０３において、足底領域推定部１３１は、判断対象画素Ｇ（ｘ，ｙ）を足底境界画素として保持して、後述のステップＳ３３０６へ進む。
【０１０７】
ステップＳ３３０４において、足底領域推定部１３１は、判断対象画素のＹ座標値が、足底候補領域のＹ座標の最大値ｂより小さい（ｙ＜ｂ）か否かを判断する。
【０１０８】
足底領域推定部１３１は、判断対象画素のｙがｂよりも小さい場合（Ｓ３３０４：ＹＥＳ）、ステップＳ３３０５へ進む。また、足底領域推定部１３１は、判断対象画素のｙがｂよりも小さくない場合（Ｓ３３０４：ＮＯ）、後述のステップＳ３３０８へ進む。
【０１０９】
ステップＳ３３０５において、足底領域推定部１３１は、判断対象画素のＹ座標値を１増加（ｙ＝ｙ＋１）させて、ステップＳ３３０２の処理へ戻る。すなわち、足底領域推定部１３１は、判断対象画素Ｇ（ｘ，ｙ）をＹ軸方向に１つ移動させる。
【０１１０】
ステップＳ３３０６において、足底領域推定部１３１は、Ｘ軸方向のうち原点側の方向に隣接する画素列に足底境界画素が存在しているか否かを判断する。そして、足底領域推定部１３１は、該当する足底境界画素が存在している場合、現在の判断対象画素が隣の画素列の足底境界画素と同一の足底境界線を構成し得るか否かを判断する。
【０１１１】
具体的には、足底領域推定部１３１は、現在の判断対象画素Ｇ（ｘ，ｙ）の境界垂直位置ＡＧ（ｘ）と、隣の画素列の境界垂直位置ＡＧ（ｘ−１）との差の絶対値が、所定の閾値Ｄ以下であるか否かを判断する。
【０１１２】
足底領域推定部１３１は、境界垂直位置ＡＧ（ｘ）、ＡＧ（ｘ−１）との差の絶対値が、閾値Ｄ以下である場合（｜ＡＧ（ｘ）−ＡＧ（ｘ−１）｜≦ａ）（Ｓ３３０６：ＹＥＳ）、ステップＳ３３０７へ進む。なお、足底領域推定部１３１は、隣接する画素列に足底境界画素が存在していいない場合（つまり、境界垂直画素位置ＡＧ（ｘ−１）が存在しない場合）も、ステップＳ３３０７へ進む。また、足底領域推定部１３１は、境界垂直位置ＡＧ（ｘ）、ＡＧ（ｘ−１）との差の絶対値が、閾値Ｄを超える場合（｜ＡＧ（ｘ）−ＡＧ（ｘ−１）｜＞ａ）（Ｓ３３０６：ＮＯ）、ステップＳ３３０８へ進む。
【０１１３】
ステップＳ３３０７において、足底領域推定部１３１は、現在保持している足底位置情報Ａ（ｎ）に足底境界画素ＡＧ（ｘ）を追加更新して、後述のステップＳ３３０９へ進む。これは、境界垂直位置ＡＧ（ｘ）の画素とＡＧ（ｘ−１）の画素とが、同一の足底境界線を構成する可能性が高いためである。
【０１１４】
ステップＳ３３０８において、足底領域推定部１３１は、現在保持している足底位置情報Ａ（ｎ）を保存し、次のｎ番目の足底位置情報Ａ（ｎ）を新規に定義して、ステップＳ３３０９へ進む。すなわち、足底領域推定部１３１は、ｎを１増加（ｎ＋１）させる。これは、境界垂直位置ＡＧ（ｘ）の画素とＡＧ（ｘ−１）の画素とが、同一の足底境界線を構成する可能性が低いためである。
【０１１５】
なお、足底領域推定部１３１は、新たに足底位置情報を定義する前に、直前に保持した足底位置情報に対して、足裏の境界線を示す情報としての信頼性を判別するための判別処理を行ってもよい。足底境界画素として検出された画素が、ノイズに起因するものであって、実際には足底の境界線を構成しない可能性があるからである。
【０１１６】
かかる判別処理として、足底領域推定部１３１は、例えば、直前に保持した足底位置情報に含まれる足底境界画素のＸ座標の最大値と最小値との差分が、所定の値よりも大きいか否かを判断する。そして、足底領域推定部１３１は、かかる差分が所定の値よりも小さい場合、検出された足底境界画素がノイズによるものである可能性が高いとして、直前に保持した足底位置情報を削除する。これにより、足底領域推定部１３１は、足底領域の推定精度を向上させることができる。
【０１１７】
そして、ステップＳ３３０９において、足底領域推定部１３１は、判断対象画素のＸ座標値ｘが、足底候補領域のＸ座標の最大値ａよりも小さい（ｘ＜ａ）か否かを判断する。
【０１１８】
足底領域推定部１３１は、判断対象画素のｘがａよりも小さい場合（Ｓ３３０９：ＹＥＳ）、ステップＳ３３１０へ進む。また、足底領域推定部１３１は、判断対象画素のｘがａよりも小さくない場合（Ｓ３３０４：ＮＯ）、図８の処理へ戻る。
【０１１９】
ステップＳ３３１０において、足底領域推定部１３１は、判断対象画素のＸ座標値を１増加（ｘ＝ｘ＋１）させ、判断対象画素のＹ座標値を０に設定（ｙ＝０）して、ステップＳ３３０２の処理へ戻る。すなわち、足底領域推定部１３１は、判断対象画素Ｇ（ｘ，ｙ）を、Ｘ軸方向に１つ移動させつつ、Ｙ軸方向の原点に戻す。
【０１２０】
このようにして、足底領域推定部１３１は、足底候補領域から、足底領域ごとに（つまり片足ごとに）、足底位置情報を生成することができる。
【０１２１】
なお、足底境界線の位置（つまり足底境界画素の位置）が分かれば、足底候補領域のうち、その上方に位置する人候補領域（図１０の白い画素の領域）は、足底領域であることが分かる。
【０１２２】
すなわち、足底領域推定部１３１は、足底境界線の位置の推定を介して、足底領域の位置を推定しているといえる。したがって、姿勢推定装置１００は、推定した足底領域の位置に基づいて、姿勢推定を行うことが可能である。
【０１２３】
ところが、図９および図１０からも分かるように、足底領域の位置のみからでは、踵の方向と爪先の方向とを判断するのは困難である。
【０１２４】
そこで、上述の通り、姿勢推定装置１００は、頭の位置と足底が床面に対して平行な足（例えば、床面に接触している足）の位置との相対的な位置関係に基づいて、人の姿勢を推定する。姿勢推定装置１００は、足底が床面に対して平行な足の位置として、水平線方向に近似する境界線方向の成分が多い足底領域の重心位置を、取得する。言い換えると、姿勢推定装置１００は、境界線方向が水平線方向に近い足底領域（つまり足底角度が０に近い足底領域）に対して高い重みが付けられるように、足底領域全体に対して重み付けを行った上で、足底領域の重心を推定する。
【０１２５】
そのために、足底領域推定部１３１は、推定された足底領域ごとに、足底角度を推定する。
【０１２６】
図８のステップＳ３４００において、足底領域推定部１３１は、足底角度推定処理を行う。足底角度推定処理は、推定された足底領域ごとに足底角度を抽出する処理である。
【０１２７】
ここで、本実施の形態における足底角度の定義について説明する。
【０１２８】
図１２は、本実施の形態における足底角度の定義を説明するための図である。
【０１２９】
図１２に示すように、２次元画像である足底候補領域６００から、第１の足底境界線６１１を有する第１の足底領域６１２と、第２の足底境界線６２１を有する第２の足底領域６２２とが抽出されたとする。なお、各足底領域は、楕円形で模式的に表現している。
【０１３０】
姿勢推定装置１００は、足底候補領域６００上に、画像における水平線方向に相当する基準方向６３０を設定する。基準方向６３０は、例えば、監視カメラ３１０（図あ２参照）の設置角度などのカメラパラメータにより予め設定することができる。
【０１３１】
そして、姿勢推定装置１００は、第１の足底境界線６１１の方向である第１の方向６１３と基準方向６３０との間の角度である第１の第１の角度θ１により、第１の足底領域６１２（第１の足底境界線６１１）のの足底角度を定義する。また、姿勢推定装置１００は、第２の足底境界線６２１の方向である第２の方向６２３と基準方向６３０との間の角度である第２の角度θ２により、第２の足底領域６２２（第２の足底境界線６２１）の足底角度を定義する。
【０１３２】
なお、本実施の形態において、足底角度は、２次元画像である入力画像上での角度であるものとする。したがって、足底角度により推定される身体向きは、入力画像上で２次元的に定義される。但し、このように２次元的に定義される身体向きは、監視カメラ３２０の設置パラメータなどに基づいて、３次元の実空間での身体向きに変換することが可能である。
【０１３３】
図１３は、足底角度推定処理（図８のステップＳ３４００）の一例を示すフローチャートである。
【０１３４】
ここでは、１つの足底領域について足底角度を求める場合の処理を説明する。足底領域が複数存在する場合には、足底領域推定部１３１は、足底領域ごとに処理を繰り返す。すなわち、複数の足底領域が抽出された場合、足底領域推定部１３１は、以下に説明する処理を繰り返すことにより、それぞれの第足底領域（ｎ）について足底角度θ（ｎ）を抽出する。
【０１３５】
まず、ステップＳ３４０１において、足底領域推定部１３１は、基準点抽出処理を行う。基準点抽出処理とは、足底境界線から、角度推定のために用いる後述の矩形を回転させる基準となる回転基準点を抽出する処理である。
【０１３６】
図１４は、基準点抽出処理を説明するための図である。ここで、黒い画素は、足底境界線を構成する足底境界画素を示し、白い画素は、足底境界画素以外の画素を示す。
【０１３７】
図１４に示すように、例えば、右下がりの足底境界線６５１が抽出されたとする。この場合、足底領域推定部１３１は、足底境界線６５１を構成する足底境界画素のうち、Ｙ座標値が最も小さい右端の画素６５２を、回転基準点として選択する。そして、足底領域推定部１３１は、回転基準点である画素６５２に基準として、足底角度を推定するための矩形６５３を設定する。
【０１３８】
具体的には、足底領域推定部１３１は、所定の大きさの矩形６５３を、その頂点の１つを回転基準点に一致させて配置する。足底領域推定部１３１は、矩形６５３の大きさを、予め設定された固定の大きさとしてもよいし、人候補領域の大きさに応じて変化させてもよい。
【０１３９】
足底領域推定部１３１は、後述するが、矩形６５３を、回転基準点を中心として回転させる。矩形６５３の角度は、矩形６５３の長辺のうち回転基準点と接する長辺が伸びる方向である矩形基線６５４と、水平線方向に対応する基準方向６５５との間の角度６５６で定義される。
【０１４０】
そして、図１３のステップＳ３４０２において、足底領域推定部１３１は、矩形６５３を所定の角度刻みで回転させ、回転角度ごとに、矩形６５３に含まれる足底境界画素の数をカウントする。例えば、１０度刻みに矩形６５３を回転させる場合、１回転は３６０度であるため、３６回分のカウント値が得られる。足底領域推定部１３１は、足底領域ごとに、回転角度と当該回転角度における足底境界画素のカウント値とのペアをリスト化して保持する。
【０１４１】
そして、ステップＳ３４０３において、足底領域推定部１３１は、上記ペアのリストに基づいて、足底角度θ（ｎ）を選択する。そして、選択した足底角度θ（ｎ）を示す足底角度情報を生成して、図８の処理へ戻る。
【０１４２】
具体的には、例えば、足底領域推定部１３１は、最も大きいカウント値が得られた回転角度を、足底領域（足底境界線）の足底角度とする。最も大きいカウント値が得られた回転角度が複数存在する場合、足底領域推定部１３１は、それら複数の回転角度の平均の角度を、足底角度としてもよい。また、足底領域推定部１３１は、各回転角度に対してカウント値に応じた重み付けを行って得られる平均の角度を、足底角度としてもよい。
【０１４３】
そして、姿勢推定装置１００は、図６の処理へ戻る。
【０１４４】
そして、図６のステップＳ４０００において、足底重心推定部１３２は、足底重心推定処理を行う。足底重心推定処理とは、足底位置情報および足底角度情報（Ａ（ｎ），θ（ｎ））に基づいて、足重心位置を推定し、足重心位置情報を生成する処理である。
【０１４５】
具体的には、例えば、足底重心推定部１３２は、境界線方向がより水平線方向の角度に近い方の足底領域の足底境界画素の重心を、足重心位置Ｃとする。これは、２つの足底領域が存在するとき、これら２つの足底領域のうち足底角度が水平に近い方に体重の重心が掛かっている可能性が高いためである。
【０１４６】
足底重心推定部１３２は、例えば、以下の式（１）を用いて、境界線方向がより水平線方向の角度に近い方の足底領域の足重心位置Ｃを算出する。ここで、ｋは、足底境界画素の数を表し、ＡＧ（ｍ）は、ｍ番目の足底境界画素の境界垂直位置を表し、ＡＧＫ（ｍ）は、ｍ番目の足底境界画素のＸ座標値を表す。
【数１】
0005898199.tif 000002
【０１４７】
図１０に示す例では、第２の角度θ２の方が、第１の角度θ１よりも０度に近い。すなわち、第２の足底領域６２２（第１の足底境界線６２１）の境界線方向のほうが、第１の足底領域６１２（第１の足底境界線６１１）の境界線方向よりも、水平線方向に近い。したがって、この場合、足底重心推定部１３２は、第２の足底領域６２２に体重の重心が掛かっているものとして、当該領域の重心を、足重心位置とする。
【０１４８】
このようにして、足底領域推定部１３１は、推定された足底領域から、足底領域のうち床面に平行な領域の重心位置である足重心位置を推定することができる。
【０１４９】
なお、２つの足底領域の足底角度が等しい場合、足底重心推定部１３２は、これら２つの足底領域全体の重心位置を、足重心位置としてもよい。
【０１５０】
また、足底領域が３つ以上（ｎ＞２）抽出された場合、足底領域推定部１３１は、これら３対上の足底領域の中から、所定の条件を満たす足底領域を２つ抽出するようにしてもよい。所定の条件は、例えば、所定の位置にあること、所定の大きさ以上の大きさであること、あるいは、面積が最も大きい上位２つに含まれることである。このように複数の条件を設定して抽出することで、足底領域推定部１３１は、入力された画像データの品質に応じて精度よく足底領域を抽出することができる。
【０１５１】
また、足底領域推定部１３１は、入力された画像データと推定結果とを、関連付けて保持するようにしてもよい。
【０１５２】
そして、ステップＳ５０００において、姿勢推定部１４０は、姿勢推定処理を行う。姿勢推定処理とは、ステップＳ２０００で生成された頭位置情報と、ステップＳ４０００で生成された足重心位置情報とに基づいて、姿勢推定処理を行う処理である。
【０１５３】
図１５は、姿勢推定処理（図６のステップＳ５０００）の一例を示すフローチャートである。
【０１５４】
まず、ステップＳ５１００において、姿勢推定部１４０は、重心位置比較処理を行う。重心位置比較処理とは、頭重心位置と足重心位置との相対的な位置関係を判定する処理である。
【０１５５】
具体的には、姿勢推定部１４０は、頭重心位置のＸ軸座標値と、足重心位置のＸ軸座標値とを比較し、頭重心位置から足重心位置へと向かう方向（以下「足重心方向」という）が、Ｘ軸のプラス側方向かマイナス側方向かを判定する。
【０１５６】
そして、ステップＳ５２００において、姿勢推定部１４０は、身体向き推定処理を行う。身体向き推定処理とは、頭重心位置と足底重心位置との相対的な位置関係と、予め設定したルールとに基づいて、人３４０の身体向きを推定する処理である。
【０１５７】
具体的には、姿勢推定部１４０は、人３４０の姿勢を、判定した足重心方向に正面方向が向いている姿勢であると推定する。
【０１５８】
例えば、姿勢推定部１４０は、水平線方向のうち頭重心位置から足重心位置へと向かう方向が、人３４０の身体向きであるというルール（ｉｆ  Ｈ＜Ｓ  ｔｈｅｎ  Ｒ，  ｏｔｈｅｒｗｉｓｅ  Ｌ）設定している。すなわち、姿勢推定部１４０は、頭重心位置のＸ軸座標値（Ｈ）よりも、足重心位置のＸ軸座標値（Ｓ）が大きい場合（Ｈ＜Ｓ）、人３４０の正面方向は、Ｘ軸のプラス側に向いていると（身体向きがＲであると）判定する。また、姿勢推定部１４０は、頭重心位置のＸ軸座標値（Ｈ）よりも、足重心位置のＸ軸座標値（Ｓ）が小さい場合、人３４０の正面方向は、Ｘ軸のマイナス側に向いていると（身体向きがＬであると）判定する。
【０１５９】
図１６は、図７の背景差分画像から抽出される頭重心位置および足重心位置の一例を示す図である。
【０１６０】
図１６に示すように、頭重心位置６７１のＸ軸座標値６７２（Ｈ）は、足重心位置６７３のＸ軸座標値６７４（Ｓ）よりも小さい（Ｈ＜Ｓ）。このような場合、姿勢推定部１４０は、人３４０の正面方向は、Ｘ軸のプラス側（紙面向かって右側、Ｒ）に向いていると判定する。
【０１６１】
頭重心位置６７１のＸ軸座標値６７２（Ｈ）と足重心位置６７３のＸ軸座標値６７４（Ｓ）とが一致する場合（Ｈ＝Ｓ）、姿勢推定部１４０は、１フレーム前の推定結果を転用するようにしてもよい。これは、１フレーム間隔といった短い時間では人３４０の姿勢が大きく変化することが少ないためである。あるいは、姿勢推定部１４０は、例えば、人３４０の正面方向が、監視カメラ３２０側またはその逆側に向いていると判定してもよい。
【０１６２】
これにより、姿勢推定部１４０は、人３４０の進行方向にかかわらず、２次元画像における人３４０の身体向きをロバストに推定することができる。
【０１６３】
そして、図６のＳ６０００において、推定結果出力部１５０は、推定結果出力処理を行う。推定結果出力処理は、Ｓ５０００で推定された身体向きを示す情報を出力する処理である。
【０１６４】
例えば、推定結果出力部１５０、フレームごとに、入力画像に重畳して、推定した身体向きを示す矢印を、液晶ディスプレイに表示する。
【０１６５】
そして、図６のＳ７０００において、画像入力部１５０は、予め設定された所定の処理終了条件が満たされているか否かを判断する。所定の処理終了条件は、例えば、ユーザ操作により姿勢推定処理の終了を指示されることである。
【０１６６】
画像入力部１５０は、所定の処理終了条件が満たされていない場合（Ｓ７０００：ＮＯ）、ステップＳ１０００へ戻って処理を繰り返す。また、画像入力部１５０は、所定の処理終了条件が満たされている場合（Ｓ７０００：ＹＥＳ）、一連の処理を終了する。
【０１６７】
このような動作により、姿勢推定装置１００は、映像の各フレームから、人３４０の頭重心位置および足重心位置を推定し、推定したこれらの相対的な位置関係に基づいて、人３４０の姿勢を推定することができる。
【０１６８】
以上で、姿勢推定装置１００の動作についての説明を終える。
【０１６９】
以上のように、本実施の形態に係る姿勢推定装置１００は、入力画像から、人の、頭重心位置と、床面に平行な足底領域の重心位置である足重心位置とを推定する。そして、姿勢推定装置１００は、推定した頭重心位置と足重心位置との相対的な位置関係に基づいて、人の姿勢（身体向き）を推定する。これにより、姿勢推定装置１００は、人の姿勢を、高精度に推定することができる。
【０１７０】
なお、上述の通り、人の姿勢は、短い時間では大きく変化することが少なく、特に、体重を掛けている足底領域の位置はほとんど変化しない。逆にいえば、人候補領域のうち、足底候補領域において撮影時刻が異なるフレームの間で変化していない領域は、体重を掛けている足底領域（つまり床面に接触しており、床面に平行となっている足底領域）である可能性が非常に高い。
【０１７１】
そこで、姿勢推定装置１００は、人候補領域のうち、足底候補領域において複数のフレーム間で重複している領域（以下「重複領域」という）を、足底領域と推定するようにしてもよい。
【０１７２】
図１７は、姿勢推定処理（図６のステップＳ５０００）の他の例を示すフローチャートである。図１７に示すフローチャートは、図１５に示すフローチャートに、ステップＳ５００１ａ〜ステップＳ５００４ａの処理を追加したものとなっている。図１５と同一部分には、同一のステップ番号を付し、これについての説明を省略する。
【０１７３】
まず、ステップＳ５００１ａにおいて、姿勢推定部１４０は、頭重心位置と足重心位置との水平線方向における差分（絶対値）が、予め定められた所定の閾値以上であるか否かを判断する。
【０１７４】
姿勢推定部１４０は、上記差分が閾値以上の場合（Ｓ５００１ａ：ＹＥＳ）、ステップＳ５１００へ進む。また、姿勢推定部１４０は、上記差分が閾値未満である場合（Ｓ５００１ａ：ＮＯ）、ステップＳ５００２ａへ進む。この際、姿勢推定部１４０は、上記差分が閾値未満であるために後述の時差足底境界画素に基づく重心位置推定が必要である旨を、足底重心推定部１３２に通知する。
【０１７５】
ステップＳ５００２ａにおいて、足底重心推定部１３２は、足底領域推定部１３１から、現フレームの画像データと前フレームの画像データとを取得して、時差画像生成処理を行う。時差画像生成処理は、現フレームと前フレームとの間の各画素の画素値の一致不一致を表す、時差画像を生成する処理である。
【０１７６】
ここで、現フレームとは、撮影時刻ｔに撮影された最新のフレームであり、前フレームとは、時刻ｔよりも所定の時間ｄだけ前の時刻ｔ−ｄに撮影された過去のフレームである。所定の時間ｄは、例えば、ｆフレーム間隔（ｆは自然数）であり、人の歩行速度との関係で予め定められる時間長さである。
【０１７７】
図１８〜図２０は、時差画像について説明するための図である。
【０１７８】
図１８は、現フレームの画像データから生成された背景差分画像の一例である。具体的には、図１８は、Ｘ軸のマイナス方向に前向きに歩いている人を、左足を後方から前方へ移動させているときに撮影したときの背景差分画像の一例である。
【０１７９】
図１９は、前フレームの画像データから生成された背景差分画像の一例である。
【０１８０】
図２０は、図１８に示す背景差分画像と図１９に示す背景差分画像とから生成される、時差画像の一例である。
【０１８１】
図１８に示す、現フレームの人候補領域（白い領域）６９１は、２つの足底領域の足底角度が近似しており、頭重心位置と足重心位置の水平位置の差が小さい。このような場合、図１５で説明した処理のみでは、姿勢推定を行うことが困難である。
【０１８２】
また、図１９に示す、前フレームの人候補領域（白い領域）６９２は、人の歩行により、現フレームの人候補領域６９１とは異なった位置および形状となっている。
【０１８３】
現フレームは、左足を後方から前方へ移動させているときに撮影されたものである。この場合、体重の重心は右足に掛かり、右足の足底領域の位置はほとんど変化しない。したがって、右足の足底領域は、図２０に示すように、前フレームの人候補領域６９２と現フレームの人候補領域６９１との重複領域（白い領域）６９３として表れる。このような重複領域６９３は、体重の重心が掛けられて床面と接触している足底領域である可能性が非常に高い。
【０１８４】
そして、図１７において、ステップＳ５００３ａにおいて、足底重心推定部１３２は、時差足底境界画素抽出処理を行う。時差足底境界画素抽出処理とは、生成した時差画像と、足底領域推定部１３１が生成した境界線位置情報とから、時差足底境界画素を抽出する処理である。ここで、時差足底境界画素とは、時差画像に含まれる足底境界画素である。
【０１８５】
具体的には、足底重心推定部１３２は、足底境界画素と重複領域との間で重複する画素を、時差足底境界画素として抽出する。
【０１８６】
そして、ステップＳ５００４ａにおいて、足底重心推定部１３２は、重複領域と時差足底境界画素の位置情報とを用いて、足重心位置を推定する。
【０１８７】
具体的には、足底重心推定部１３２は、上述の足底重心推定処理と同様の処理を、足底領域を重複領域に置き換え、足底境界線を差足底境界画素に置き換えて行う。
【０１８８】
このように、姿勢推定装置１００は、映像データ（画像の時系列データ）を用いて求めた足重心位置を用いて、姿勢推定を行ってもよい。これにより、姿勢推定装置１００は、１フレームからのみでは判断が難しい場合にも、人３４０の進行方向にかかわらず、人３４０の身体向きをロバストに推定することができる。
【０１８９】
（実施の形態３）
本発明の実施の形態３は、人が通常の歩行をしていない場合を考慮した例である。
【０１９０】
上述の実施の形態２で説明した姿勢推定は、人が、背筋を伸ばして歩く通常の歩行を行っていることを前提としている。ところが、実際には、人がこのような通常の歩行を行っているとは限らず、例えば、前屈みになって床に落ちたものを拾っているといった姿勢をしていることも有り得る。このような場合には、足重心位置が頭重心位置よりも正面方向側に位置しないことも多い。したがって、通常の歩行を行っていないにもかかわらず頭重心位置と足重心位置との相対的な位置関係に基づく姿勢推定を行うと、誤った推定結果になる可能性がある。
【０１９１】
そこで、本実施の形態に係る姿勢推定装置は、人が通常の歩行をしているか否かを、人の上半身の角度に基づいて推定する。そして、本実施の形態に係る姿勢推定装置は、人が通常の歩行をしていないと推定されることを条件として、上述の位置関係に基づく姿勢推定を行うようにする。
【０１９２】
図２１は、本実施の形態に係る姿勢推定装置の構成の一例を示すブロック図であり、実施の形態２の図５に対応するものである。図５と同一部分には同一符号を付し、これについての説明を省略する。
【０１９３】
図２１において、姿勢推定装置１００ｂは、図５の構成に加えて上半身姿勢推定部１６０ｂを有する。
【０１９４】
上半身姿勢推定部１６０ｂは、画像情報から、人の上半身の角度を推定する。
【０１９５】
具体的には、上半身姿勢推定部１６０ｂは、画像入力部１１０から、撮影画像の画像データを入力し、入力した画像データから、人の頭４１８の位置および胴４１１（図３参照）の位置を推定する。そして、上半身姿勢推定部１６０ｂは、頭位置と胴位置との相対的な位置関係から、画像に含まれる人の上半身角度を推定する。
【０１９６】
ここで、頭位置とは、推定された頭４１８の位置であり、例えば、頭推定部１２０と同様にして推定される頭重心位置である。胴位置とは、推定された胴４１１の位置である。また、上半身角度とは、人の上半身の向きを示す情報であり、例えば、実空間における垂直方向に対する上半身の傾きの角度である。
【０１９７】
そして、上半身姿勢推定部１６０ｂは、推定された上半身角度が、予め定められた所定の範囲内にあるか否かを判断する。所定の範囲とは、人が通常の歩行を行っているときの上半身角度の範囲である。上半身姿勢推定部１６０ｂは、上半身角度が所定の範囲内にあるか否かを示す情報を、足底領域推定部１３１および頭推定部１２０へ出力する。
【０１９８】
なお、本実施の形態において、頭推定部１２０および足底領域推定部１３１は、推定された上半身の角度が所定の範囲内にある場合にのみ、実施の形態２で説明した処理を行うものとする。すなわち、本実施の形態では、推定結果出力部１５０は、推定された上半身の角度が所定の範囲内にあることを条件として、姿勢の推定の結果を出力する。
【０１９９】
また、本実施の形態において、推定結果出力部１５０は、頭推定部１２０および足底領域推定部１３１が処理を行わない結果、姿勢推定を行うことができなかった場合、エラーメッセージを出力するようにしてもよい。
【０２００】
図２２は、姿勢推定装置の動作の一例を示すフローチャートである。図２２に示すフローチャートは、実施の形態２の図６に示すフローチャートに、ステップＳ１１００ｂ、Ｓ１２００ｂの処理を追加したものとなっている。図６と同一部分には、同一のステップ番号を付し、これについての説明を省略する。
【０２０１】
ステップＳ１１００ｂにおいて、上半身姿勢推定部１６０ｂは、上半身姿勢推定処理を行う。胴領域推定処理とは、画像に含まれる人３４０の上半身角度を推定する処理である。
【０２０２】
図２３は、上半身姿勢推定処理（図２２の実施のＳ１１００ｂ）の一例を示すフローチャートである。
【０２０３】
まず、ステップＳ１１０１ｂにおいて、上半身姿勢推定部１６０ｂは、胴領域推定処理を行う。胴領域推定処理とは、画像に含まれる人３４０の胴領域を推定する処理である。
【０２０４】
具体的には、上半身姿勢推定部１６０ｂは、例えば、実施の形態２で説明した頭領域の推定の手法と同様の手法を用いて、胴領域を求める。なお、この際、上半身姿勢推定部１６０ｂは、ハフ変換を用いて楕円で胴領域を近似すればよい。ハフ変換は、公知の技術であり、エッジ情報から楕円の中心（Ｘ座標、Ｙ座標）、長軸、短軸、傾きを表す５つのパラメータを求めることができる。上半身姿勢推定部１６０ｂは、この楕円の中心位置を、胴の重心位置（以下「胴重心位置」という）として算出する。
【０２０５】
そして、ステップＳ１１０２ｂにおいて、上半身姿勢推定部１６０ｂは、傾き推定処理を行って、図２２の処理へ戻る。傾き推定処理とは、頭重心位置と胴重心位置との相対的な位置関係から、人の上半身の傾きを推定する処理である。
【０２０６】
具体的には、上半身姿勢推定部１６０ｂは、頭重心位置および胴重心位置を通る直線と、上記実空間の垂直方向（水平線方向と直交する方向）とが成す角の角度を、上半身角度として推定する。
【０２０７】
なお、上半身姿勢推定部１６０ｂは、胴領域の長手方向（例えば、楕円の長軸方向）など、他の情報に基づいて、上半身角度を推定してもよい。
【０２０８】
そして、図２２のステップＳ１２００ｂにおいて、上半身姿勢推定部１６０ｂは、推定した上半身角度から、人の上半身が垂直であるか否かを判断する。
【０２０９】
具体的には、上半身姿勢推定部１６０ｂは、上半身角度が上述の所定の範囲内にあるか否かの判断を、上半身が垂直であるか否かの判断として行う。
【０２１０】
上半身姿勢推定部１６０ｂは、上半身が垂直である場合（Ｓ１２００ｂ：ＹＥＳ）、ステップＳ２０００へ進む。また、上半身姿勢推定部１６０ｂは、上半身が垂直ではない場合（Ｓ１２００ｂ：ＮＯ）、ステップＳ６０００へ進む。すなわち、姿勢推定装置１００ｂは、上半身が垂直ではない場合、姿勢推定を行わない。
【０２１１】
このように、本実施の形態に係る姿勢推定装置１００ｂは、上半身角度を推定する。そして、姿勢推定装置１００ｂは、上半身角度が予め定められた所定の範囲内にあることを条件として、上述の頭重心位置と足重心位置との相対位置関係に基づく姿勢推定の結果を出力する。
【０２１２】
これにより、姿勢推定装置１００ｂは、かかる姿勢推定の前提条件に当てはまらない画像に対する姿勢推定結果の出力を事前に省くことができるため、出力する姿勢推定結果の精度を向上させることができる。
【０２１３】
なお、以上説明した、本発明の実施の形態２および実施の形態３では、背景差分画像から足底領域を推定する処理について説明したが、これに限定されない。例えば、姿勢推定装置は、公知技術であるメディアンフィルタを用いて背景差分画像からノイズを除去した画像を用いてもよい。また、姿勢推定装置１００は、背景差分画像とエッジ画像とを重畳して得られる画像を用いてもよい。
【０２１４】
また、姿勢推定装置は、画素ごとに、人の足の太さに対応する幅の平行線が存在する確率を記述した足底尤度マップを用いて、足底領域を推定してもよい。これにより、ノイズが除去されたり、欠損した情報が補完されたりするため、姿勢推定装置１００は、より正確に足底領域を推定することができる。
【０２１５】
また、図８のステップＳ３４００の足底角度抽出処理に関して、姿勢推定装置は、矩形の回転以外の手法を用いて足底角度を推定してもよい。例えば、姿勢推定装置は、公知技術である最小二乗法を足底境界画素に適用して近似直線を算出し、近似直線と水平線方向とが成す角から足底角度を推定してもよい。
【０２１６】
また、姿勢推定装置は、１つの足底領域を複数の領域に分割し、分割領域ごとに、足底角度を推定してもよい。また、この場合、姿勢推定装置は、公知の技術である最小二乗法を用いて、足底境界画素についての多項式近似曲線を求め、係数を出力してもよい。このように、足底領域を複数に分割して足底角度を細かく推定することにより、姿勢推定装置は、図６のステップＳ３０００の足底重心推定処理において、境界線方向がより水平線方向に近い部分の足底境界画素の情報のみを用いることが可能となる。すなわち、姿勢推定装置は、足重心位置の推定精度を向上させることができる。
【０２１７】
また、図６のステップＳ３０００の足底重心推定処理に関して、姿勢推定装置は、境界線方向が水平線方向により近い方の足底領域の足底境界画素のうち、最もＹ座標値が小さい画素を、足重心位置として出力してもよい。これにより、姿勢推定装置は、ヒールが高い靴などの、靴底の平面の部分が少ない靴を人が履いている場合に、足底領域のうち床面に対して平行な領域に対応する足重心位置を、精度よく求めることが可能となる。
【０２１８】
また、１つの足底領域が、複数の領域とそれぞれの足底角度とで表現されている場合、姿勢推定装置は、足底領域ごとに、境界線方向が最も０度でより水平に近い領域の足底境界画素の重心を、足重心位置とするようにしてもよい。これにより、姿勢推定装置１００は、足底が柔軟な靴を人３４０が履いている場合に、足底領域のうち床面に対して平行な領域に対応する足重心位置を、精度よく求めることが可能となる。
【０２１９】
また、足底境界画素が多項式近似曲線で近似されている場合、姿勢推定装置は、各足底境界画素に対して、当該曲線の傾き情報に応じて重み付けを行い、足重心位置を推定してもよい。
【０２２０】
すなわち、姿勢推定装置は、足底重心推定部において、推定された足底領域のうち、水平線方向により近似する方向の足底境界線に対応する部分に対して、より高い重みが付けられるように、足底領域に対して重み付けを行ってもよい。そして、姿勢推定装置は、得られた重みの重心位置を、足重心位置としてもよい。
【０２２１】
具体的には、姿勢推定装置は、足底領域の多項式近似曲線の傾きが０（水平）に近いほど、足重心位置に対して影響が大きくなるように、各足底境界画素に対して重み付けを行う。逆にいえば、姿勢推定装置は、足底領域の多項式近似曲線の傾きが大きいほど、足重心位置に対して影響が小さくなるように、各足底境界画素に対して重み付けを行う。そして、姿勢推定装置は、重み付けを行った後に、足重心位置を求める。
【０２２２】
例えば、姿勢推定装置は、以下の式（２）を用いて、足重心位置Ｃを算出する。ここで、ｇ（ｍ）は、ｍ番目の足底境界画素に対して決定された重みを表す。但し、ｇ（ｍ）は、以下の式（３）を満たすものとする。
【数２】
0005898199.tif 000003
【数３】
0005898199.tif 000004
【０２２３】
これにより、姿勢推定装置は、足底角度の変化点の足底境界画素の角度を、より適切に足重心位置に反映することができ、足重心位置の推定精度を向上させることができる。
【０２２４】
また、姿勢推定装置は、単眼カメラの撮影映像からではなく、距離画像カメラまたはステレオカメラにより得られた映像あるいは画像など、単眼カメラの画像以外の画像から、上述の姿勢推定を行ってもよい。
【０２２５】
また、姿勢推定装置は、エッジ画像、または各部位が位置することの確からしさの分布を示す尤度マップなど、他の画像情報から、足底領域を推定してもよい。
【０２２６】
また、姿勢推定装置は、足底が水平な足裏領域を、境界線方向以外の情報に基づいて推定してもよい。例えば、床面に接触センサが備えられている場合には、姿勢推定装置は、足裏領域のうち接触センサーにより接触が検出された領域と一致する足裏領域を、床面と接触しており足底が平行な足裏領域である、と推定してもよい。すなわち、足推定部は、床面に接触している足の位置を、足底が床面に対して平行な足の位置としてもよい。
【０２２７】
また、姿勢推定装置は、人の、頭の位置および足底が床面に対して平行な足の位置として、実施の形態２および実施の形態３で説明した重心位置以外の位置を採用してもよい。例えば、姿勢推定装置は、人候補領域のうち、Ｙ軸座標値が最も大きい画素の位置を、頭の位置とし、Ｙ軸座標値が最も小さい画素の位置を、足底が床面に対して平行な足の位置としてもよい。
【０２２８】
また、本発明に係る姿勢推定装置は、人ではなく、人型ロボットあるいは２足歩行を行う動物など、他の各種人型多関節物体に対して、同様に、その体幹の向きの推定を行ってもよい。
【０２２９】
また、本発明は、人型多関節物体以外にも、頭の位置と足底が床面に対して平行な足の位置との相対的な位置関係と、姿勢との間に関連性が認められる、各種の多関節物体（３足以上のものを含む）に対して適用することが可能である。
【０２３０】
（実施の形態４）
本発明の実施の形態４は、本発明の基本的態様の一例である。
【０２３１】
図２４は、本実施の形態に係る姿勢推定装置の構成の一例を示すブロック図である。
【０２３２】
図２４において、姿勢推定装置１００ｃは、人体を含む人型多関節物体の姿勢を推定する装置であり、足向き検出部１７０、安定度算出部１８０、および姿勢推定部１４０を有する。
【０２３３】
足向き検出部１７０は、実施の形態１から３のいずれかの構成を用いて、人型多関節物体の左足向きと、人型多関節物体の右足向きとを検出する。
【０２３４】
安定度算出部１８０は、左足向きの安定度である左足安定度と、右足向きの安定度である右足安定度とを算出する。
【０２３５】
姿勢推定部１４０は、左足安定度、左足向き、右足安定度、および右足向きから、人型多関節物体の姿勢として、人型多関節物体の体幹の向きを推定する。
【０２３６】
このような姿勢推定装置１００ｃは、左足向きおよび右足向きから、人型多関節物体の姿勢として、身体向きを推定する。ところが、着地している方の足の足背（つまり足の甲、足の表）の向きは、安定して精度良く体幹の向きに対応するのに対し、着地していない方の足の足背の向きは、安定しておらず体幹の向きに対して多少のばらつきがある。そこで、姿勢推定装置１００ｃは、左足向きおよび右足向きだけでなく、それぞれの足背向きの安定度に基づいて、身体向きを推定する。これにより、姿勢推定装置１００ｃは、人型多関節物体の姿勢を高精度に推定することができる。
【０２３７】
（実施の形態５）
本実施の形態は、本発明を、人を撮影した映像から、当該人の体幹の向きを推定する姿勢推定装置に適用した場合の具体的態様の一例である。
【０２３８】
まず、本実施の形態に係る姿勢推定システムは、図２を用いて説明したものと同じであるので、ここでの詳細な説明は省略する。ただし、図２において、姿勢推定装置１００は、本実施の形態に係る姿勢推定装置１００ｃに置き換わる。
【０２３９】
また、本実施の形態において推定の対象となる人３４０の姿勢については、図３を用いて説明した通りである。よって、その詳細な説明は省略する。
【０２４０】
図４は、本実施の形態における身体向き推定の原理を説明するための図である。
【０２４１】
図４に示すように、身体向き４２１は、人３４０の左肩と右肩とを結んだ線分（以下「肩ライン」という）４２２に３次元空間上で直交する向きのうち、左足背および右足背（以下、適宜「足背」と総称する）が向いている方の向きである。
【０２４２】
ここで、左足の足背の向き（以下「左足向き」という）４２３と、右足の足背の向き（以下「右足向き」という）４２４とを平均した向きである平均足向き４２５を考える。この平均足向き４２５は、人３４０が両足を着地した状態で自然な姿勢をとる場合、身体上の制約から、身体向き４２１と略等しくなる。したがって、姿勢推定を行うためには、左右の足背の向きを抽出し、その平均値をとればよいことが分かる。
【０２４３】
ところが、人３４０が歩行中などで片足を着地していない場合、その足背の向きの自由度が高くなり、平均足向き４２５が身体向き４２１に一致する精度が低くなる。
【０２４４】
一方で、着地している方の足は、バランスを取るための軸足となり、その足背の向きは安定し、身体向き４２１との相関は高い。そして、人が身体向きを変える場合、軸足を切り替える動作を繰り返し、いずれか一方は軸足となっている状態となる。
【０２４５】
そこで、姿勢推定装置１００ｃは、左右それぞれの足背向きの安定度を算出し、算出した安定度を考慮して、身体向きを推定する。具体的には、姿勢推定装置１００ｃは、左足背向きの安定度（以下「左足安定度」という）および右足背向きの安定度（以下「右足安定度」という）に基づく重み付けを行って、左足向き４２３と右足向き４２４とを合成する。そして、姿勢推定装置１００ｃは、この重み付き合成により得られた向きを、人３４０の身体向きとする。
【０２４６】
これにより、姿勢推定装置１００ｃは、身体向きとの相関が高い軸足のほうの足背の向きの重みを常に高くした状態で、身体向きを推定することができる。
【０２４７】
なお、本実施の形態において、安定度とは、足向き（足背の向き）の変動が小さい状態が継続している時間が長いほど、より高くなる値とする。言い換えると、本実施の形態において、安定度とは、足背の向きが連続的に同一方向を向いている時間の長さを示す指標である。
【０２４８】
人体を含む人型多関節物体は、身体向きの変化に関連しない動きの場合、足背の向きが変わり易いという特性を有する。身体向きの変化に関連しない動きとは、たとえば、空中で足をぶらぶらさせるといった動きである。したがって、逆に、足背の向きが長く同じ状態に留まっている場合、その足背の向きは物体の身体向きとの関連性が高いといえる。したがって、安定度は、足背の向きと身体向きとの相関の高さの度合いを示す指標といえる。安定度の求め方の詳細については、後述する。
【０２４９】
また、本実施の形態では、姿勢推定装置１００ｃは、３次元の実空間での向きではなく、２次元の映像面上での向きを、左足背向き、右足背向き、および身体向きとして取得するものとする。
【０２５０】
図２５は、本実施の形態における向きの定義を説明するための図である。
【０２５１】
図２５に示すように、姿勢推定装置１００ｃは、映像面４３１に、基準向き（例えば、水平右向き）４３２を予め設定する。そして、姿勢推定装置１００ｃは、左足向き４２３が基準向き４３２と成す時計回りの角度４３３により、左足向き４２３を定義し、右足向き４２４が基準向き４３２と成す時計回りの角度４３４により、右足向き４２４を定義する。また、姿勢推定装置１００ｃは、身体向き４３５を、基準向き４３２と成す時計回りの角度４３６により定義する。
【０２５２】
なお、このようにして定義される身体向き４３５は、監視カメラ３２０の設置パラメータおよび標準的な身体の長さ情報から、３次元の実空間での向きに変換することが可能である。
【０２５３】
以上で、姿勢推定システム２００の概要についての説明を終える。
【０２５４】
次に、姿勢推定装置１００ｃの構成について説明する。図２６は、姿勢推定装置１００ｃの構成の一例を示すブロック図である。
【０２５５】
図２６において、姿勢推定装置１００ｃは、画像入力部１１０、足向き検出部１７０、足向き履歴保持部１９０、安定度算出部１８０、安定度履歴保持部２１０、姿勢推定部１４０、姿勢履歴保持部２２０、および推定結果出力部１５０を有する。
【０２５６】
画像入力部１１０は、監視カメラ３２０が撮影した映像の映像データを受信し、当該映像を構成する単位となる静止画像（以下「フレーム」という）の画像データを、順次、足向き検出部１７０へ出力する。
【０２５７】
足向き検出部１７０は、入力された画像データの画像（映像、以下適宜「画像データ」という）から、撮影映像に含まれる人の左足向きおよび右足向きを検出する。そして、足向き検出部１７０は、検出した左足向きおよび右足向きを、安定度算出部１８０および足向き履歴保持部１９０へ出力する。
【０２５８】
足向き検出部１７０の構成の一例としては、実施の形態１の構成を示す図１、実施の形態２の構成を示す図５、または実施の形態３の構成を示す図２１を用いて、左足向きと右足向きを取得するようにしてもよい。
【０２５９】
具体的には、足推定部１３０（図１）または、足底領域推定部１３１（図５または図２１）で足底領域ごと推定した足底角度と、姿勢推定部１４０（図１、図５または図２１）で推定した正面向きの情報から、各足の踵から爪先の向きを算出する。
【０２６０】
図２７は、足向き検出部１７０の別の構成の一例を示すブロック図である。
【０２６１】
図２７において、足向き検出部１７０は、下腿抽出部１７１、足背抽出部１７２、および足背向き推定部１７３を含む。
【０２６２】
下腿抽出部１７１は、画像入力部１１０から入力された画像データから、人の左下腿が位置すると推定される矩形領域を、左下腿矩形として抽出する。また、下腿抽出部１７１は、画像データから、人の右下腿が位置すると推定される矩形領域を、右下腿矩形として抽出する。そして、下腿抽出部１７１は、抽出した左下腿矩形および右下腿矩形（以下、適宜「下腿矩形」と総称する）と画像データとを、足背抽出部１７２へ出力する。
【０２６３】
足背抽出部１７２は、入力された画像データおよび左下腿矩形から、左足背が位置すると推定される矩形領域を、左足背矩形として抽出する。また、足背抽出部１７２は、画像データおよび右下腿矩形から、右足背が位置すると推定される矩形領域を、右足背矩形として抽出する。そして、足背抽出部１７２は、抽出した左足背矩形および右足背矩形（以下、適宜「足背矩形」と総称する）と画像データとを、足背向き推定部１７３へ出力する。
【０２６４】
足背向き推定部１７３は、入力された上記画像データおよび左足背矩形から、左足向きを推定する。また、足背向き推定部１７３は、画像データおよび右足背矩形から、右足向きを推定する。そして、足背向き推定部１７３は、推定した左足向きおよび右足向き（以下、適宜「足向き」と総称する）を、足向き履歴保持部１９０および安定度算出部１８０へ出力する。また、足背向き推定部１７３は、画像データを、推定結果出力部１５０へ出力する。
【０２６５】
なお、足背向き推定部１７３は、画像データにノイズが生じた場合など、画像データおよび左足背矩形からのみでは左足向きを推定することができない場合が有り得る。この場合、足背向き推定部１７３は、例えば、足向き履歴保持部１９０に保持された、前回のフレームで推定された左足向きを、今回のフレームの左足向きとして取得する。
【０２６６】
同様に、足背向き推定部１７３は、画像データおよび右足背矩形からのみでは右足向きを推定することができない場合がある。この場合、足背向き推定部１７３は、足向き履歴保持部１９０に保持された、前回のフレームで推定された右足向きを、今回のフレームの右足向きとして取得する。
【０２６７】
図２６の足向き履歴保持部１９０は、今回のフレームで入力された（以下、単に「今回の」という）左足向きおよび右足向きと、前回のフレームで入力された（以下、単に「前回の」という）左足向きおよび右足向きとを、保持する。
【０２６８】
安定度算出部１８０は、入力された今回の左足向きと、足向き履歴保持部１９０に保持された前回の左足向きとから、左足安定度を算出する。また、安定度算出部１８０は、入力された今回の右足向きと、足向き履歴保持部１９０に保持された前回の右足向きとから、右足安定度を算出する。そして、安定度算出部１８０は、算出した左足安定度および右足安定度を、安定度履歴保持部２１０および姿勢推定部１４０へ出力する。
【０２６９】
図２８は、安定度算出部の構成の一例を示すブロック図である。
【０２７０】
図２８において、安定度算出部１８０は、差分演算部１８１および安定度演算部１８２を有する。
【０２７１】
差分演算部１８１は、足向き検出部１７０から入力された今回の左足向きと、足向き履歴保持部１９０に保持された前回の左足向きとの差分を、左足差分として算出する。また、差分演算部１８１は、足向き検出部１７０から入力された今回の右足向きと、足向き履歴保持部１９０に保持された前回の右足向きとの差分を、右足差分として算出する。そして、差分演算部１８１は、算出した左足差分および右足差分（以下、適宜「差分」と総称する）を、安定度演算部１８２へ出力する。
【０２７２】
安定度演算部１８２は、入力された左足差分を所定の閾値と比較し、左足向きの変動が小さい状態が継続している時間が長いほど、左足安定度がより高い値となるように、安定度を算出する。この際、安定度演算部１８２は、入力された左足差分を用い、更に、安定度履歴保持部２１０に前回のフレームで算出された（以下、単に「前回の」という）左足安定度が保持されている場合、その保持された前回の左足安定度を用いる。また、安定度演算部１８２は、入力された右足差分を所定の閾値と比較し、右足向きの変動が小さい状態が継続している時間が長いほど、右足安定度がより高い値となるように、右足安定度を算出する。この際、安定度演算部１８２は、入力された右足差分を用い、更に、安定度履歴保持部２１０に前回の右足安定度が保持されている場合、その保持された前回の右足安定度を用いる。そして、安定度演算部１８２は、算出した左足安定度および右足安定度を、安定度履歴保持部２１０および姿勢推定部１４０へ出力する。
【０２７３】
図２６の安定度履歴保持部２１０は、安定度演算部１８２から入力された前回の左足安定度および右足安定度を、保持する。
【０２７４】
姿勢推定部１４０は、入力された左足安定度および右足安定度と、足向き履歴保持部１９０に保持された今回の左足向きおよび右足向きとから、撮影映像に含まれる人（ここでは人３４０）の身体向きを推定する。そして、姿勢推定部１４０は、推定結果を、姿勢履歴保持部２２０および推定結果出力部１５０へ出力する。
【０２７５】
より具体的には、姿勢推定部１４０は、左足安定度および右足安定度に基づく重み付けを行って、左足向きと右足向きとを合成することにより、身体向きを推定する。
【０２７６】
図２９は、姿勢推定部１４０の構成の一例を示すブロック図である。
【０２７７】
図２９において、姿勢推定部１４０は、バランス度算出部１４１および姿勢推定記録部１４２を有する。
【０２７８】
バランス度算出部１４１は、安定度算出部１８０から入力された左足安定度および右足安定から、左バランス度および右バランス度を算出する。より具体的には、バランス度算出部１４１は、左足安定度が高いほど左バランス度が相対的により高い値となるように、かつ、右足安定度が高いほど右バランス度が相対的により高い値となるように、左バランス度および右バランス度を算出する。左バランス度は、後段の姿勢推定記録部１４２で左足向きと右足向きとを合成する際に用いられる、左足向きに対する重みである。右バランス度は、後段の姿勢推定記録部１４２で左足向きと右足向きとを合成する際に用いられる、右足向きに対する重みである。そして、バランス度算出部１４１は、算出した左バランス度および右バランス度を、姿勢推定記録部１４２へ出力する。
【０２７９】
姿勢推定記録部１４２は、入力された左バランス度および右バランス度による重み付けを行って、足向き履歴保持部１９０に保持された今回の左足向きと、足向き履歴保持部１９０に保持された今回の右足向きとを合成する。そして、姿勢推定記録部１４２は、合成により得られた向きを、身体向きとして、姿勢履歴保持部２２０および推定結果出力部１５０へ出力する。
【０２８０】
なお、姿勢推定記録部１４２は、姿勢履歴保持部２２０に、前回のフレームにおける（以下、単に「前回の」という）推定結果が保持されている場合には、前回の推定結果を更に用いて、身体向きを推定する。すなわち、姿勢推定記録部１４２は、重み付けがされた左足向きおよび右足向きと、前回の身体向きとを合成して、身体向きの推定値を算出する。
【０２８１】
図２６の姿勢履歴保持部２２０は、姿勢推定記録部１４２から入力された前回の推定結果（推定された身体向き）を、保持する。
【０２８２】
推定結果出力部１５０は、入力された推定結果を出力する。例えば、推定結果出力部１５０は、足向き検出部１７０から入力された画像データに、姿勢推定部１４０から入力された身体向きを示す矢印画像を重畳して得られる画像を、液晶ディスプレイ（図示せず）に表示する。
【０２８３】
このような姿勢推定装置１００ｃは、左足向きおよび右足向きから、それぞれの安定度を考慮しつつ、人の身体向きを推定することができる。すなわち、姿勢推定装置１００ｃは、足が動くことによる、足背の向きのばらつきの影響を軽減した状態で、姿勢推定を行うことができる。これにより、姿勢推定装置１００ｃは、人型多関節物体の姿勢を高精度に推定することができる。
【０２８４】
以上で、姿勢推定装置１００ｃの構成についての説明を終える。
【０２８５】
次に、姿勢推定装置１００ｃの動作について説明する。図３０は、姿勢推定装置の動作の一例を示すフローチャートである。
【０２８６】
まず、ステップＳ１０００において、画像入力部１１０は、１フレーム分の画像情報（撮影映像、画像データ）を入力する。
【０２８７】
そして、ステップＳ２５００において、足向き検出部１７０は、左足向きおよび右足向きを検出する足向き検出処理を行う。足向き検出処理は、検出された人領域に、予め用意した下腿矩形および足背矩形を複数の異なる位置（および向き）で配置したときに、そのマッチングスコアが一番高い位置（および向き）を下腿および足背の位置（および向き）とする処理である。
【０２８８】
図３１は、足向き算出処理（図３０のステップＳ２５００）の一例を示すフローチャートである。
【０２８９】
まず、ステップＳ２５１０において、下腿抽出部１７１は、入力された画像データから、人が位置する領域（以下「人領域」という）を抽出する。人領域の抽出は、例えば、予め撮影され保持された背景のみの画像と、入力された画像データの画像との差分を抽出することにより、行うことができる。また、人領域の抽出は、１つ前のフレームの画像と、現在のフレームの画像との差分から、静止体と移動物体との識別をすることにより、行うことができる。
【０２９０】
そして、ステップＳ２５２０において、下腿抽出部１７１は、抽出した人領域から、１つまたは複数の左下腿矩形の候補を、決定する。左下腿矩形の候補は、例えば、人領域のうち、下端から所定の比率（例えば、２５％）の範囲を、左下腿および右下腿として扱い、顔領域検出などにより顔の方向を検出して左右を特定することにより、行うことができる。
【０２９１】
そして、ステップＳ２５３０において、下腿抽出部１７１は、左下腿矩形の候補の１つを選択する。
【０２９２】
そして、ステップＳ２５４０において、下腿抽出部１７１は、選択中の左下腿矩形の候補の内部において、人領域に含まれる画素の画素数をカウントする。そして、下腿抽出部１７１は、カウント値が第１の閾値以上であるか否かを判断する。下腿抽出部１７１は、カウント値が第１の閾値以上である場合（Ｓ２５４０：ＹＥＳ）、その左下腿矩形の候補を足背抽出部１７２へ出力して、ステップＳ２５５０へ進む。また、下腿抽出部１７１は、カウント値が第１の閾値未満である場合（Ｓ２５４０：ＮＯ）、ステップＳ２５６０へ進む。
【０２９３】
ステップＳ２５５０において、足背抽出部１７２は、画像入力部１１０から入力された画像データから、下腿抽出部１７１から入力された左下腿矩形の候補に基づいて、複数の左足背矩形の候補を決定する。
【０２９４】
図３２は、足背矩形の候補の決定手法を説明するための図である。
【０２９５】
図３２に示すように、例えば、足背抽出部１７２は、まず、左下腿矩形４４０から、左下腿４１３の左足背４４１との接続点（以下「下腿側接続点」という）４４２を、左下腿矩形４４０の底面の中心とする。また、足背抽出部１７２は、足背側接続点４４４を、左足背矩形４４５の一方の短辺の中心とする。
【０２９６】
そして、足背抽出部１７２は、決定した左下腿矩形４４０の候補ごとに、その下腿側接続点４４２を中心とする近傍の所定の範囲４４３を決定する。そして、足背抽出部１７２は、決定した範囲４４３において、左足背４４１の左下腿４１３との接続点（以下「足背側接続点」という）４４４の候補を、複数決定する（図３２では、１つのみ図示）。足背抽出部１７２は、例えば、下腿側接続点４４２を中心とする３０画素以内の範囲に、５画素の間隔で、足背側接続点４４４の候補を決定する。下腿側接続点４４２と足背側接続点４４４との位置関係は、身体制約の１つである。
【０２９７】
更に、足背抽出部１７２は、決定した足背側接続点４４４の候補ごとに、その点を中心として所定の大きさの矩形を回転させる形で、左足背矩形４４５の候補を複数決定する（図３２では、１つのみ図示）。足背抽出部１７２は、例えば、１度の間隔で、左足背矩形４４５の候補を決定する。
【０２９８】
例えば、２０個の足背側接続点４４４の候補が存在し、１度の間隔で左足背矩形４４５の候補を決定したとする。この場合、左足背矩形４４５の候補の数は、２０×３６０＝７２００となる。なお、下腿側接続点４４２の候補および足背側接続点４４４の候補の決定の手法（範囲および間隔）や、左足背矩形４４５の候補の決定の手法（回転の間隔）は、上述の例に限定されない。
【０２９９】
そして、図３１のステップＳ２５７０において、足背抽出部１７２は、左足背矩形の候補の１つを選択する。
【０３００】
そして、ステップＳ２５８０において、足背抽出部１７２は、選択中の左足背矩形の候補の内部において、人領域であると推定される画素の画素数をカウントする。そして、足背抽出部１７２は、カウント値が第２の閾値以上であるか否かを判断する。足背抽出部１７２は、カウント値が第２の閾値以上である場合（Ｓ２５８０：ＹＥＳ）、ステップＳ２５９０へ進む。また、足背抽出部１７２は、カウント値が第２の閾値未満である場合（Ｓ２５８０：ＮＯ）、ステップＳ２６００へ進む。
【０３０１】
ステップＳ２５９０において、足背抽出部１７２は、選択中の左下腿矩形および左足背矩形の組に対応付けて、それらのカウント値の合計値を、記憶する。
【０３０２】
そして、ステップＳ２６００において、足背抽出部１７２は、全ての左足背矩形の候補を処理したか否かを判断する。足背抽出部１７２は、未処理の左足背矩形の候補が残っている場合（Ｓ２６００：ＮＯ）、ステップＳ２５７０へ戻り、未処理の候補を選択して処理を行う。また、足背抽出部１７２は、全ての左足背矩形の候補を処理した場合（Ｓ２６００：ＹＥＳ）、ステップＳ２５６０へ進む。
【０３０３】
ステップＳ２５７０において、足背抽出部１７２は、選択中の左下腿矩形候補に関して、全ての左足背矩形の候補を処理したか否かを判断する。足背抽出部１７２は、未処理の左足背矩形の候補が残っている場合（Ｓ２６００：ＮＯ）、ステップＳ２５７０へ戻り、未処理の候補を選択して処理を行う。また、足背抽出部１７２は、全ての左足背矩形の候補を処理した場合（Ｓ２６００：ＹＥＳ）、ステップＳ２５６０へ進む。
【０３０４】
ステップＳ２５６０において、下腿抽出部１７１は、全ての左下腿矩形の候補を処理したか否かを判断する。下腿抽出部１７１は、未処理の左下腿矩形の候補が残っている場合（Ｓ２５６０：ＮＯ）、ステップＳ２５４０へ戻り、未処理の候補を選択して処理を行う。また、下腿抽出部１７１は、全ての左下腿矩形の候補を処理した場合（Ｓ２５６０：ＹＥＳ）、ステップＳ２５１０へ進む。
【０３０５】
ステップＳ２５１０において、足背抽出部１７２は、いずれもカウント値が閾値以上となった左下腿矩形の候補および左足背矩形の候補の組を得られたか否かを判断する。足背抽出部１７２は、該当する組を得られなかった場合（Ｓ２５１０：ＮＯ）、ステップＳ２５２０へ進む。また、足背抽出部１７２は、該当する組を得られた場合（Ｓ２５１０：ＹＥＳ）、ステップＳ２５３０へ進む。
【０３０６】
ステップＳ２５３０において、足背抽出部１７２は、カウント値の合計が最も大きい組の左足背矩形の候補を、最終的な左足背矩形として選択し、足背向き推定部１７３へ出力する。
【０３０７】
そして、ステップＳ２５４０において、足背向き推定部１７３は、入力された左足背矩形と、画像入力部１１０から入力された画像データとから、左足向きを推定する。そして、足背向き推定部１７３は、推定結果を、足向き履歴保持部１９０および安定度算出部１８０へ出力する。なお、足背向き推定部１７３は、画像データを用いずに、例えば、足背側接続点に対する左足背矩形の長手方向の向きから、左足向きを推定してもよい。
【０３０８】
また、ステップＳ２５２０において、足背抽出部１７２は、最終的な左足背矩形を選択することができない旨を、足背向き推定部１７３へ出力する。これを受けて、足背向き推定部１７３は、足向き履歴保持部１９０に保持された前回の左足向きを、今回の左足向きとして取得する。なお、足背向き推定部１７３は、最終的な左足背矩形を選択することができない場合や、前回の左足向きが保持されていない場合に、ユーザに対してエラーを通知するようにしてもよい。
【０３０９】
そして、ステップＳ２５５０において、足向き検出部１７０は、ステップＳ２５１０〜Ｓ２５４０と同様の処理を右下腿矩形の候補に対して実行し、右足向きの推定および出力を行い、図３０の処理へ戻る。なお、足向き検出部１７０は、右足向きの推定を先に行ってもよい。
【０３１０】
なお、ここでは、人の領域を用いて足向きを推定する方法を説明したが、足向き検出部１７０は、エッジ情報を用いて足向きを推定するようにしてもよい。例えば、下腿部および足背の画像は、主に平行線で構成されている。したがって、足向き検出部１７０は、は、人領域に存在するエッジから、所定の間隔の複数の平行線を抽出し、平行線が抽出された領域と下腿矩形および足背矩形とをマッチングするようにしてもよい。
【０３１１】
また、ここでは、矩形を用いて足向きを推定する処理について説明したが、足向き検出部１７０は、あらかじめ、足背の画像を向きとともに学習して足背の識別器を作成しておき、足背を検出し、その向きを推定する方法を用いても良い。
【０３１２】
なお、ステップＳ２５２０において、左下腿および右下腿がそれぞれ抽出されることは必要であるが、最終的に求める姿勢に前後の区別が問われない場合、どちらの領域が左または右の下腿なのかを厳密に求める必要はない。
【０３１３】
図３０のステップＳ３５００において、安定度算出部１８０は、左足安定度および右足安定度を算出する安定度算出処理を行う。
【０３１４】
図３３は、安定度算出処理（図３０のステップＳ３５００）の一例を示すフローチャートである。
【０３１５】
まず、ステップＳ３５１０において、差分演算部１８１は、前回の左足向きを、足向き履歴保持部１９０から取得する。なお、差分演算部１８１は、前回、足向き検出部１７０から入力された左足向きを保持しておいてもよい。
【０３１６】
そして、ステップＳ３５２０において、差分演算部１８１は、今回の左足向きと前回の左足向きとの差分（左足差分）が第３の閾値以下であるか否かを判断する。差分演算部１８１は、左足差分が第３の閾値以下である場合（Ｓ３５２０：ＹＥＳ）、その旨を安定度演算部１８２に通知して、ステップＳ３５３０へ進む。また、差分演算部１８１は、左足差分が第３の閾値を超える場合（Ｓ３５２０：ＮＯ）、その旨を安定度演算部１８２に通知して、ステップＳ３５４０へ進む。
【０３１７】
ステップＳ３５３０において、安定度演算部１８２は、安定度履歴保持部２１０に保持された左足安定度を取得し、取得した値を１増加させる。左足安定度は、予め用意したパラメータであり、その初期値は、ここではゼロであるものとする。
【０３１８】
一方、ステップＳ３５４０において、安定度演算部１８２は、安定度履歴保持部２１０に保持された左足安定度を取得し、取得した値をゼロに初期化する。
【０３１９】
そして、ステップＳ３５５０において、差分演算部１８１は、前回の右足向きを、足向き履歴保持部１９０から取得する。なお、差分演算部１８１は、前回、足向き検出部１７０から入力された右足向きを保持しておいてもよい。
【０３２０】
そして、ステップＳ３５６０において、差分演算部１８１は、今回の右足向きと前回の右足向きとの差分（右足差分）が第３の閾値以下であるか否かを判断する。差分演算部１８１は、右足差分が第３の閾値以下である場合（Ｓ３５６０：ＹＥＳ）、その旨を安定度演算部１８２に通知して、ステップＳ３５７０へ進む。また、差分演算部１８１は、右足差分が第３の閾値を超える場合（Ｓ３５６０：ＮＯ）、その旨を安定度演算部１８２に通知して、ステップＳ３５８０へ進む。
【０３２１】
ステップＳ３５７０において、安定度演算部１８２は、安定度履歴保持部２１０に保持された右足安定度を取得し、取得した値を１増加させる。左足安定度は、予め用意したパラメータであり、その初期値は、ここではゼロであるものとする。
【０３２２】
一方、ステップＳ３５８０において、安定度演算部１８２は、安定度履歴保持部２１０に保持された右足安定度を取得し、取得した値をゼロに初期化する。
【０３２３】
そして、ステップＳ３５９０において、安定度演算部１８２は、現在の左足安定度および右足安定度を、安定度履歴保持部２１０および姿勢推定部１４０へ出力して、図３０の処理へ戻る。
【０３２４】
図３０のステップＳ５５００において、姿勢推定部１４０は、左足安定度、右足安定度、左足向き、および右足向きから身体向きを推定する姿勢推定処理を行う。
【０３２５】
図３４は、姿勢推定処理（図３０のステップＳ５５００）の一例を示すフローチャートである。
【０３２６】
まず、ステップＳ５５１０において、バランス度算出部１４１は、安定度算出部１８０から入力された左足安定度および右足安定度に基づいて、上述の左バランス度および右バランス度を算出する。そして、バランス度算出部１４１は、算出した左バランス度および右バランス度を、姿勢推定記録部１４２へ出力する。
【０３２７】
具体的には、バランス度算出部１４１は、例えば、以下の式（４）および式（５）を用いて、左バランス度および右バランス度を算出する。なお、以下の式（４）および式（５）を用いた場合、左バランス度と右バランス度との和は１となる。
左バランス度 ＝ （左足安定度）／｛（左足安定度）＋（右足安定度）｝
・・・・・・（４）
右バランス度 ＝ （右足安定度）／｛（左足安定度）＋（右足安定度）｝
・・・・・・（５）
【０３２８】
そして、ステップＳ５５２０において、姿勢推定記録部１４２は、足向き履歴保持部１９０に保持された今回の左足向きおよび右足向きと、姿勢履歴保持部２２０に保持された前回の身体向きとを取得する。姿勢推定記録部１４２は、取得した左足向き、右足向き、および前回の身体向きと、入力された左バランス度および右バランス度とに基づいて、今回の身体向きを算出する。そして、姿勢推定記録部１４２は、算出結果を、姿勢履歴保持部２２０および推定結果出力部１５０へ出力して、図３０の処理へ戻る。
【０３２９】
具体的には、姿勢推定記録部１４２は、左バランス度と右バランス度との和が１である場合、例えば、以下の式（６）を用いて、今回の身体向きを算出する。
今回の身体向き ＝ ｛（左バランス度）×（左足向き）
＋（右バランス度）×（右足向き）
＋（前回の身体向き）｝／２            ・・・・・・（６）
【０３３０】
身体向きは、通常、短い時間で大きく変化することはない。一方で、左足向きや右足向きには検出誤りが生じている場合や、両方の足向きが安定していない場合もあり得る。このような場合、今回の左足向きおよび右足向きのみから身体向きを算出すると、誤差が大きくなる可能性がある。したがって、姿勢推定記録部１４２は、前回の身体向きを含めて平均化することにより、このような誤差による影響を低減し、推定精度が低下するのを防ぐことができる。
【０３３１】
なお、最初のフレームなど、前回の身体向きが存在しない場合や、人の動きが安定しているような場合、姿勢推定記録部１４２は、以下の式（７４）を用いて、今回の身体向きを算出してもよい。
今回の身体向き ＝ ｛（左バランス度）×（左足向き）
＋（右バランス度）×（右足向き）｝    ・・・・・・（７）
【０３３２】
また、姿勢推定記録部１４２は、以下の条件式群（８）を用いて、今回の身体向きを算出してもよい。この場合、演算処理を高速化することができる。
左足安定度と右足安定度とが等しい場合：  左バランス度＝右バランス度＝０.５
左足安定度と右足安定度とが等しくない場合：安定度が高い方のバランス度＝１
安定度が低い方のバランス度＝０
・・・・・・（８）
【０３３３】
なお、本実施の形態では、左足安定度と右足安定度とが等しいとは、厳密に値が等しいことのみを意味してもよいし、値の差分が所定の範囲内にあることを含んでもよい。左足安定度と右足安定度とが等しいことが所定の範囲を持つ場合、この所定の範囲は、状況に応じて変更されてもよい。
【０３３４】
図３０のステップＳ７０００において、画像入力部１１０は、ユーザ操作などにより処理の終了が指示されたか否かを判断する。画像入力部１１０は、処理の終了が指示されていない場合（Ｓ７０００：ＮＯ）、ステップＳ１０００へ戻り、次のフレームの処理へ移る。また、画像入力部１１０は、処理の終了が指示された場合（Ｓ７０００：ＹＥＳ）、一連の処理を終了する。
【０３３５】
このような処理により、姿勢推定装置１００ｃは、フレームごとに、左足向きおよび右足向きを取得し、左足安定度および右足安定度を算出し、これらに基づいて身体向きを推定することができる。
【０３３６】
以上で、姿勢推定装置１００ｃの動作についての説明を終える。
【０３３７】
以下、姿勢推定装置１００ｃの効果について、実験結果を参照して説明する。
【０３３８】
ここでは、人が直進して右折する動作を実際に行ったときの、実験結果を示す。実験において、姿勢推定装置１００ｃは、モーションキャプチャシステムを採用した。そして、姿勢推定装置１００ｃは、左足背、および右足背の３次元位置情報を取得し、それぞれの位置を映像面上に射影することにより、実際の左足向き、右足向き、および身体向きを、身体向きの推定結果と併せて取得するようにした。ここで、実際の身体向きとは、例えば、取得した画像からオペレータが判断して設定した、推定されるべき身体向きである。
【０３３９】
なお、以下の各図において、横軸は、フレーム番号による時間軸を示し、縦軸は、角度による向き（図２５参照）、または、安定度の値を示す。また、以下の図３５〜図３８の間で同一部分については同一符号を付し、これについての説明を省略する。
【０３４０】
図３５は、本実験における左足向きおよび右足向きの検出結果を示すグラフである。
【０３４１】
図３５において、点線５２１は左足向きを示し、実線５２２は右足向きを示し、極太線５２３は実際の身体向きを示す。図３５に示すように、左足向きと右足向きとはほとんど一致しておらず、それぞれ不規則に変化している。また、左足向きおよび右足向きは、いずれも、身体向きとの一致度が低い。これは、人の動きが、完全に左右対称ではなく、また、正弦波のように完全に規則的に推移するものではないためである。
【０３４２】
図３６は、本実験における左右平均向きの算出結果を示すグラフである。
【０３４３】
図３６において、破線５２４は、左足向きと右足向きとを平均した平均足向きを示す。図３６に示すように、平均足向きは、左足向きおよび右足向きのそれぞれ単独の場合に比べて、実際の身体向き（極太線５２３）との一致度は高くなる。ところが、最大で約４５度の差が生じており、単に平均化しただけでは、身体向きを精度良く推定することができないことが分かる。
【０３４４】
図３７は、本実験における姿勢推定装置１００ｃによる安定度の算出結果を示すグラフである。図３７は、図３５のグラフと時間軸を揃えた状態で、その上側に、左足安定度および右足安定度を示している。
【０３４５】
図３７において、上側の点線５２５は左足安定度の算出結果を示し、上側の実線５２６は右足安定度の算出結果を示す。図３７に示すように、左足安定度は、左足向きの変動が少ない区間（同じ向きが保持されている区間）が長いほど高くなり、右足安定度は、右足向きの変動が少ない区間が長いほど高くなる。また、左足安定度は、左足向きの変動が多い区間（小刻みに足背の向きが変化する区間）が長いほどゼロに近い値を維持し、右足安定度は、右足向きの変動が多い区間が長いほどゼロに近い値を維持する。
【０３４６】
例えば、フレーム１〜６０の付近では、右足安定度が相対的に高く、フレーム１６０〜２４０の付近では、左足安定度が相対的に高くなっている。
【０３４７】
図３８は、本実験における姿勢推定装置１００ｃによる身体向きの推定結果を示すグラフである。なお、ここでは、上述の式（８）により身体向きを算出した場合の推定結果を示す。
【０３４８】
図３８において、一点鎖線５２７は、姿勢推定装置１００ｃによる身体向きの推定結果、つまり、安定度を考慮した重み付きの左右平均向きを示す。図３８の図３５との比較から分かるように、姿勢推定装置１００ｃによる身体向きは、左足向きと右足向きとの単純な平均足向きに比べて、多少の遅れは生じているもものの、実際の身体向き（極太線５２３）との一致度が大幅に向上している。
【０３４９】
このように、実験結果から、姿勢推定装置１００ｃは、直進後に９０度右に曲がるといった身体向きの大きな変化においても、高い精度で身体向きを検出できることが分かった。
【０３５０】
以上で、実験結果に基づく姿勢推定装置１００ｃの効果についての説明を終える。
【０３５１】
以上のように、本実施の形態に係る姿勢推定装置１００ｃは、左足向きおよび右足向きと、左足安定度および右足安定度とから、身体向きを推定する。これにより、姿勢推定装置１００ｃは、人型多関節物体の姿勢を高精度に推定することができる。
【０３５２】
なお、以上の説明では、左足向きおよび右足向きの検出を、１度間隔などできめ細かく行う場合について説明した。
【０３５３】
しかし、特に式（８）を用いて身体向きの推定を行う場合には、姿勢推定装置１００ｃは、左足向きおよび右足向きの検出を、１５度間隔や２２.５度間隔など、より大まかに行うようにしてもよい。すなわち、足向き検出部１７０は、大きめの所定の間隔を有する複数の向きに量子化（離散化、デジタイズ）して、左足向きおよび右足向きを検出してもよい。この場合、式（８）の判断処理が容易となり、処理負荷を軽減し、推定結果をより高速に得ることが可能となる。
【０３５４】
このような量子化は、例えば、足背抽出部１７２が、人領域とのマッチングの際の足背矩形の向きの間隔を、２２.５度などとすることにより、簡単に実現することができる。この場合、マッチング候補の数が削減され、処理速度が更に向上する。
【０３５５】
以下、図３５〜図３８と同一の推定対象について、足向きの検出結果を２２.５度の間隔で量子化した場合における、姿勢推定装置１００ｃの効果について、実験結果を参照して説明する。なお、以下の図３９〜図４２の間で同一部分については同一符号を付し、これについての説明を省略する。また、実際の身体向きについても、同様に２２.５度の間隔で量子化した状態で示す。
【０３５６】
図３９は、足向きを量子化した場合における、左足向きおよび右足向きの検出結果を示すグラフであり、図３５に対応するものである。
【０３５７】
図３９において、点線６３１は量子化された左足向きを示し、実線６３２は量子化された右足向きを示し、極太線６３３は量子化された実際の身体向きを示す。図３９に示すように、量子化した場合も、左足向きおよび右足向きは、身体向きとの一致度が低い。
【０３５８】
図４０は、足向きを量子化した場合における、平均足向きの算出結果を示すグラフであり、図３６に対応するものである。
【０３５９】
図４０において、破線６３４は、量子化された左足向きと量子化された右足向きとを平均した、量子化平均足向きを示す。図４０に示すように、量子化平均足向きも、実際の身体向き（極太線６３３）との一致度はあまり高くない。
【０３６０】
図４１は、足向きを量子化した場合における、安定度の算出結果を示すグラフであり、図３７に対応するものである。
【０３６１】
図４１において、上側の点線６３５は左足安定度の算出結果を示し、上側の実線６３６は右足安定度の算出結果を示す。図４１に示すように、量子化した場合の左足安定度および右足安定度は、量子化しない場合（図３７参照）とほとんど変わらない。
【０３６２】
図４２は、足向きを量子化した場合における、身体向きの推定結果を示すグラフであり、図３８に対応するものである。
【０３６３】
図４２において、太線６３７は、量子化した場合の姿勢推定装置１００ｃによる身体向きの推定結果を示す。図４２の図３９との比較から分かるように、量子化した場合でも、姿勢推定装置１００ｃによる身体向きは、左足向きと右足向きとの単純な平均足向きに比べて、実際の身体向き（極太線６３３）との一致度が大幅に向上している。
【０３６４】
また、図４２と図３９との比較からも分かるように、姿勢推定装置１００ｃによる身体向きの推定精度は、量子化の有無にほとんど影響されない。
【０３６５】
このように、実験結果から、姿勢推定装置１００ｃは、足背向きの検出の量子化により、高い精度を維持しながら、少ない演算処理負荷で身体向きを推定可能であることが分かった。
【０３６６】
なお、足向き検出部１７０は、左足向きの履歴および右足向きの履歴に応じて、量子化における向きの間隔を変化させるようにしてもよい。例えば、足向き検出部１７０は、所定の一定時間内において、足背の向きの変化量が所定の値より小さく推移している場合は、量子化の単位（間隔）を細かくする。そして、足向き検出部１７０は、足背の向きの変化量が所定の値より大きい場合には、量子化の単位（間隔）を大きくする。これにより、姿勢推定装置１００ｃは、細かいノイズに対してロバストでありながら、処理負荷を軽減した、身体向き推定が可能となる。
【０３６７】
なお、以上の説明では、画像中の人領域のスケールのばらつきについて言及していないが、姿勢推定装置は、画像中の人領域のスケールを考慮して、姿勢推定を行うことが望ましい。
【０３６８】
この場合、足向き検出部は、例えば、人領域のサイズから、または、人領域の位置から推定されるカメラから人までの距離から、人領域のスケールを算出する。そして、足向き検出部は、人領域のスケールが小さいほど、画像マッチングの足背矩形をより小さくし、カウント値の閾値（第１の閾値および第２の閾値）をより小さくする。また、安定度算出部は、人領域のスケールが小さいほど、足向きの差分の閾値（第３の閾値）をより大きくする。
【０３６９】
これにより、姿勢推定装置は、人領域のスケールが変化する場合でも、人の姿勢を高精度に推定することができる。なお、足向き検出部は、カメラから各下腿までの距離を取得し、それぞれの距離から下腿（または足背）の画像領域のスケールを算出して、足ごとに上記閾値の変更を行ってもよい。
【０３７０】
また、左足向きおよび右足向きの抽出手法は、上述の例に限定されない。また、姿勢推定装置は、モーションキャプチャシステムにより得られた、人の関節の位置に基づいて、左足向きおよび右足向きを算出してもよい。また、姿勢推定装置は、人の身体の各部位が位置することの確からしさの分布を示す尤度マップに基づいて、左足向きおよび右足向きの抽出を行ってもよい。
【０３７１】
また、姿勢推定装置は、単眼カメラの撮影映像からではなく、距離画像カメラやステレオカメラにより得られた映像または画像から、左足向きおよび右足向きを抽出してもよい。
【０３７２】
また、左足安定度および右足安定度の算出手法は、上述の例に限定されない。例えば、姿勢推定装置は、足背の向きが所定の閾値以上変化した場合、安定度をゼロに初期化するのではなく、１など、所定の値だけ減らすようにしてもよい。
【０３７３】
また、姿勢推定装置は、前回の足背の向きあるいは身体向きの推定結果だけでなく、更に過去の足背の向きあるいは身体向きの推定結果を用いて、身体向きの推定を行ってもよい。
【０３７４】
また、姿勢推定装置は、人ではなく、人型ロボットや２足歩行を行う動物など、他の各種人型多関節物体に対して、同様に、その体幹の向きの推定を行ってもよい。
【０３７５】
２０１１年７月１５日出願の特願２０１１−１５６８０９および２０１２年２月３日出願の特願２０１２−０２２２８３の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【０３７６】
本発明は、人型多関節物体の姿勢を高精度に推定することができる、姿勢推定装置、姿勢推定方法、および姿勢推定プログラムとして有用である。
【符号の説明】
【０３７７】
１００、１００ｂ、１００ｃ  姿勢推定装置
１１０  画像入力部
１２０  頭推定部
１３０  足推定部
１３１  足底領域推定部
１３２  足底重心推定部
１４０  姿勢推定部
１４１  バランス度算出部
１４２  姿勢推定記録部
１５０  推定結果出力部
１６０ｂ  上半身姿勢推定部
１７０  足向き検出部
１７１  下腿抽出部
１７２  足背抽出部
１７３  足背向き推定部
１８０  安定度算出部
１８１  差分演算部
１８２  安定度演算部
１９０  足向き履歴保持部
２００  姿勢推定システム
２２０  姿勢履歴保持部
３１０  監視エリア
３２０  監視カメラ
３３０  床面
３４０  人
【図１】
0005898199.tif 000005
【図２】
0005898199.tif 000006
【図３】
0005898199.tif 000007
【図４】
0005898199.tif 000008
【図５】
0005898199.tif 000009
【図６】
0005898199.tif 000010
【図８】
0005898199.tif 000011
【図１１】
0005898199.tif 000012
【図１２】
0005898199.tif 000013
【図１３】
0005898199.tif 000014
【図１４】
0005898199.tif 000015
【図１５】
0005898199.tif 000016
【図１７】
0005898199.tif 000017
【図２１】
0005898199.tif 000018
【図２２】
0005898199.tif 000019
【図２３】
0005898199.tif 000020
【図２４】
0005898199.tif 000021
【図２５】
0005898199.tif 000022
【図２６】
0005898199.tif 000023
【図２７】
0005898199.tif 000024
【図２８】
0005898199.tif 000025
【図２９】
0005898199.tif 000026
【図３０】
0005898199.tif 000027
【図３１】
0005898199.tif 000028
【図３２】
0005898199.tif 000029
【図３３】
0005898199.tif 000030
【図３４】
0005898199.tif 000031
【図３５】
0005898199.tif 000032
【図３６】
0005898199.tif 000033
【図３７】
0005898199.tif 000034
【図３８】
0005898199.tif 000035
【図３９】
0005898199.tif 000036
【図４０】
0005898199.tif 000037
【図４１】
0005898199.tif 000038
【図４２】
0005898199.tif 000039
【図７】
0005898199.tif 000040
【図９】
0005898199.tif 000041
【図１０】
0005898199.tif 000042
【図１６】
0005898199.tif 000043
【図１８】
0005898199.tif 000044
【図１９】
0005898199.tif 000045
【図２０】
0005898199.tif 000046