(57)【要約】【課題】  関節物体を含む画像から、正確かつ高速に関節物体の関節位置および身体部位情報を検出することができる姿勢推定装置を提供する．【解決手段】  ２次元画像中の被写体のシルエットに関する特徴量を抽出する特徴抽出部１０２と、被写体の関節位置または身体部位位置と前記特徴量との関係をあらかじめ学習しておいた相関情報を記憶する相関情報記憶部１０４と、相関情報を用いて、前記特徴量から被写体の関節位置または身体部位位置を推定する関節位置推定部１０３とを含む。これにより、繰返し演算を行うことなく、前記特徴量を入力として、前記相関情報を用いて直接的に関節位置または身体部位位置を推定することができるため、高速かつ正確な姿勢推定が可能である。【選択図】      図１
2007066094.tif 000002
【特許請求の範囲】
【請求項１】
関節物体を含む２次元画像から当該関節物体の３次元空間中または２次元画像中における姿勢を推定する姿勢推定装置であって、
２次元画像中より、関節物体の物体領域を抽出する物体領域抽出手段と、
前記物体領域より、前記関節物体に関する特徴量を抽出する特徴量抽出手段と、
前記特徴量と前記関節物体の３次元空間中または２次元画像中における関節位置との間の写像関係を示す相関情報を記憶している相関情報記憶手段と、
前記特徴量および前記相関情報に基づいて、前記関節物体の３次元空間中または２次元画像中における関節位置を推定する関節位置推定手段とを備える
ことを特徴とする姿勢推定装置。
【請求項２】
前記特徴量抽出手段は、前記物体領域の輪郭線上に設けられる複数の代表点により求められる特徴量を抽出する
ことを特徴とする請求項１に記載の姿勢推定装置。
【請求項３】
前記特徴量抽出手段は、所定の基準点と前記複数の代表点との間の距離を特徴量として抽出する
ことを特徴とする請求項２に記載の姿勢推定装置。
【請求項４】
前記特徴量抽出手段は、前記物体領域の重心または前記物体領域の輪郭の重心と前記複数の代表点との間の距離を特徴量として抽出する
ことを特徴とする請求項３に記載の姿勢推定装置。
【請求項５】
前記特徴量抽出手段は、
前記物体領域の重心または前記物体領域の輪郭の重心を通る主軸を求める主軸算出部と、
前記主軸上に設けられた複数の所定の基準点の各々について、当該基準点と、当該基準点を通り前記主軸に直交する直線と前記物体領域の輪郭線上の交点との間の距離を特徴量として算出する特徴量算出部とを有する
ことを特徴とする請求項３に記載の姿勢推定装置。
【請求項６】
前記特徴量抽出手段は、前記物体領域の重心または前記物体領域の輪郭の重心を原点としたときの、前記複数の代表点の相対座標値を特徴量として抽出する
ことを特徴とする請求項２に記載の姿勢推定装置。
【請求項７】
前記相関情報記憶手段は、前記相関情報を複数記憶しており、
前記姿勢推定装置は、さらに、複数の前記相関情報のうち１つ以上の相関情報を選択する相関情報選択手段を備え、
前記関節位置推定手段は、前記特徴量および前記相関情報選択手段で選択された前記１つ以上の相関情報に基づいて、前記関節物体の３次元空間中または２次元画像中における関節位置を推定する
ことを特徴とする請求項１〜６のいずれか１項に記載の姿勢推定装置。
【請求項８】
前記相関情報記憶手段は、前記関節物体の複数の向きに基づいて分類された複数の相関情報を記憶しており、
前記相関情報選択手段は、
前記関節物体の向きを推定する関節物体向き推定部と、
前記関節物体の向きに基づいて、１つ以上の相関情報を決定する相関情報決定部とを有する
ことを特徴とする請求項７に記載の姿勢推定装置。
【請求項９】
前記相関情報記憶手段は、前記関節物体の複数の向きと前記関節物体の複数の体型とに基づいて分類された複数の相関情報を記憶しており、
前記相関情報選択手段は、さらに、前記関節物体の体型を推定する関節物体体型推定部を有し、
前記相関情報決定部は、前記関節物体の向きおよび体型に基づいて、１つ以上の相関情報を決定する
ことを特徴とする請求項８に記載の姿勢推定装置。
【請求項１０】
前記関節物体向き推定部は、前記関節物体の前記２次元画像中における移動方向に基づいて、前記関節物体の向きを推定する
ことを特徴とする請求項８または９に記載の姿勢推定装置。
【請求項１１】
前記特徴量抽出手段は、さらに、抽出した特徴量を時系列に並べたものを特徴量とする
ことを特徴とする請求項１〜１０のいずれか１項に記載の姿勢推定装置。
【請求項１２】
さらに、前記関節位置推定手段において推定された前記関節位置の時系列情報に基づいて、多関節ロボットの目標軌道を生成する目標軌道生成手段を備える
ことを特徴とする請求項１〜１１のいずれか１項に記載の姿勢推定装置。
【請求項１３】
関節物体を含む２次元画像から当該関節物体の３次元空間中または２次元画像中における姿勢を推定する姿勢推定方法であって、
２次元画像中より、関節物体の物体領域を抽出するステップと、
前記物体領域より、前記関節物体に関する特徴量を抽出するステップと、
前記特徴量および前記特徴量と前記関節物体の３次元空間中または２次元画像中における関節位置との間の写像関係を示す相関情報に基づいて、前記関節物体の３次元空間中または２次元画像中における関節位置を推定するステップとを含む
ことを特徴とする姿勢推定装置。
【請求項１４】
関節物体を含む２次元画像から当該関節物体の３次元空間中または２次元画像中における姿勢を推定する姿勢推定方法のプログラムであって、
２次元画像中より、関節物体の物体領域を抽出するステップと、
前記物体領域より、前記関節物体に関する特徴量を抽出するステップと、
前記特徴量および前記特徴量と前記関節物体の３次元空間中または２次元画像中における関節位置との間の写像関係を示す相関情報に基づいて、前記関節物体の３次元空間中または２次元画像中における関節位置を推定するステップとをコンピュータに実行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人物や動物等の関節物体を含む画像中より、当該関節物体の関節位置または身体部位位置を推定する姿勢推定装置および姿勢推定方法に関する。
【背景技術】
【０００２】
従来の関節物体の姿勢推定技術の１つとして、モーションキャプチャシステムを用いる方法がある。このシステムでは、実際の人物の関節位置等にマーカを貼り付けることによって、実際の人物の形状や動きデータを正確に取得することが可能である。しかしながら、このような技術では、大掛かりな装置とマーカ等を実際の被写体に貼り付ける作業とを必要とする。
【０００３】
一方、モーションキャプチャシステムを使わずに、画像情報から姿勢推定可能な方法も存在する。例えば、特許文献１には、人間等の関節物体の動作解析等を目的として、画像中に存在する関節物体に対して、モデルを当てはめる画像解析方法が開示されている。画像中に存在する対象物（関節物体）に対して、その対象物が持つ部位それぞれについて構成したモデルを当てはめ、当てはめた結果、対象物をモデルパラメータとして保持するものである。また、非特許文献１には、円柱によって近似した身体部位を１０個用いて構成した人物モデルを用いて、画像中に存在する人物に対して人物モデルを当てはめることで身体部位および関節位置や角度を検出する技術が提案されている。
【特許文献１】特開平８−２１４２８９号公報
【非特許文献１】Leonid Sigal, Sidharth Bhatia, Stefan Roth, Michael J.Black, Michael Isard, "Tracking Loose-Limbed People", IEEE ComputerSociety Conference on ComputerVision and Pattern Recognition, Vol.1,pp421-428, 2004
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術に代表される画像解析方法および身体部位の検出方法を用いても、正確かつ高速に関節物体の姿勢推定を行なうことは困難である。
【０００５】
すなわち、特許文献１や非特許文献１に代表される画像解析方法では、円柱や直線等で簡略化した人物モデルを画像に当てはめることで関節位置等の検出を行っている。このような方法は、円柱や直線等の組合せによって、関節物体のモデルを記述している。このため、簡略化した人物モデルでは、正確な関節位置の検出を行なうには限界がある。
【０００６】
また、従来の画像解析方法では、モデルに含まれる関節位置等のパラメータを変更しながら、モデルを画像に当てはめて、当てはまりの妥当性を評価する必要がある。そのため、パラメータを変更するステップと、当てはまりの妥当性を評価ステップとを繰返し行う必要があるため、高速な処理が難しい。特に、非特許文献１の例では、１０個の円柱でモデルを記述し、身体部位の接続パラメータとして、９箇所の３次元位置と３次元角度を推定する必要がある。このようにパラメータ変更ステップと評価ステップとを繰り返しながら多次元のパラメータを推定する場合は、実時間処理は難しく、さらに局所解に陥る危険性が高く推定誤差を生じやすい。
【０００７】
本発明は上述の課題を解決するためになされたものであり、関節物体を含む画像から、正確かつ高速に関節物体の関節位置および身体部位情報を検出することができる姿勢推定装置等を提供することを目的とする。
【０００８】
なお、身体部位位置とは、頭、両手足に加え、関節と関節との間に位置する身体部位を含む。
【課題を解決するための手段】
【０００９】
本発明に係る姿勢推定装置は、関節物体を含む２次元画像から当該関節物体の３次元空間中または２次元画像中における姿勢を推定する姿勢推定装置であって、２次元画像中より、関節物体の物体領域を抽出する物体領域抽出手段と、前記物体領域より、前記関節物体に関する特徴量を抽出する特徴量抽出手段と、前記特徴量と前記関節物体の３次元空間中または２次元画像中における関節位置との間の写像関係を示す相関情報を記憶している相関情報記憶手段と、前記特徴量および前記相関情報に基づいて、前記関節物体の３次元空間中または２次元画像中における関節位置を推定する関節位置推定手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明に係る姿勢推定装置によると、繰返し演算を行うことなく、特徴量を入力として、相関情報を用いて直接的に関節位置を推定することができるため、高速かつ正確な姿勢推定が可能である。
【発明を実施するための最良の形態】
【００１１】
本発明に係る姿勢推定装置は、関節物体を含む２次元画像から当該関節物体の３次元空間中または２次元画像中における姿勢を推定する姿勢推定装置であって、２次元画像中より、関節物体の物体領域を抽出する物体領域抽出手段と、前記物体領域より、前記関節物体に関する特徴量を抽出する特徴量抽出手段と、前記特徴量と前記関節物体の３次元空間中または２次元画像中における関節位置との間の写像関係を示す相関情報を記憶している相関情報記憶手段と、前記特徴量および前記相関情報に基づいて、前記関節物体の３次元空間中または２次元画像中における関節位置を推定する関節位置推定手段とを備える。
【００１２】
この構成によると、特徴量を入力として、相関情報を用いて直接的に関節位置を推定することができるため、高速かつ正確な姿勢推定が可能である。
【００１３】
好ましくは、前記特徴量抽出手段は、前記物体領域の輪郭線上に設けられる複数の代表点により求められる特徴量を抽出する。具体的には、前記特徴量抽出手段は、所定の基準点と前記複数の代表点との間の距離を特徴量として抽出する。さらに具体的には、前記特徴量抽出手段は、前記物体領域の重心または前記物体領域の輪郭の重心を通り、かつ前記物体領域の輪郭線上の各点から垂線を下ろした際に、各点からの距離の合計が最小となる直線を主軸として求める主軸算出部と、前記主軸上に設けられた複数の所定の基準点の各々について、当該基準点と、当該基準点を通り前記主軸に直交する直線と前記物体領域の輪郭線上の交点との間の距離を算出し、当該距離を前記複数の基準点のすべてについて合計した値を特徴量として算出する特徴量算出部とを有する。
【００１４】
この構成によると、特徴量として、主軸に対する垂線方向のみの代表点を用いている。このため、足部に生じた影の影響を受けて、輪郭抽出した画像の足部が地面と繋がった場合においても、足部の繋がった部分の輪郭点が代表点として選択されにくいため、陰の影響を受けにくい利点がある。
【００１５】
さらに好ましくは、前記特徴量抽出手段は、前記物体領域の重心または前記物体領域の輪郭の重心を原点としたときの、前記複数の代表点の相対座標値を特徴量として抽出する。
【００１６】
この構成によると、上述の重心を原点とする座標値を特徴量として用いるため、輪郭形状に加え、代表点同士の位置関係を情報として含むこととなるため、関節位置の推定精度が向上することができる。
【００１７】
さらに好ましくは、前記相関情報記憶手段は、前記相関情報を複数記憶しており、前記姿勢推定装置は、さらに、複数の前記相関情報のうち１つ以上の相関情報を選択する相関情報選択手段を備え、前記関節位置推定手段は、前記特徴量および前記相関情報選択手段で選択された前記１つ以上の相関情報に基づいて、前記関節物体の３次元空間中または２次元画像中における関節位置を推定する。具体的には、前記相関情報記憶手段は、前記関節物体の複数の向きにおける複数の相関情報を記憶しており、前記相関情報選択手段は、前記関節物体の向きを推定する関節物体向き推定部と、前記関節物体の向きに基づいて、１つ以上の相関情報を決定する相関情報決定部とを有する。また、前記相関情報記憶手段は、前記関節物体の複数の向きと前記関節物体の複数の体型とに基づいて分類された複数の相関情報を記憶しており、前記相関情報選択手段は、さらに、前記関節物体の体型を推定する関節物体体型推定部を有し、前記相関情報決定部は、前記関節物体の向きおよび体型に基づいて、１つ以上の相関情報を決定するようにしてもよい。
【００１８】
このように、複数の関節物体の向きや体型から相関情報を決定することにより、様々な関節物体の向きや体型に対応した姿勢推定が可能になる。よって、対象とする関節物体の向きや体型が変化した場合においても、関節位置を正確に推定することが可能である。
【００１９】
さらに好ましくは、前記特徴量抽出手段は、さらに、抽出した特徴量を時系列に並べたものを特徴量とする。
【００２０】
関節や身体部位の一部が胴体によって隠されているような場合、１枚の画像のみからでは、隠れている部位や関節の位置に関して推定誤りが大きくなる傾向がある。よって、この構成のように特徴量を時系列に並べたものを使用することにより、関節位置の推定精度を向上させることができる。
【００２１】
さらに好ましくは、上述の姿勢推定装置は、さらに、前記関節位置推定手段において推定された前記関節位置の時系列情報に基づいて、多関節ロボットの目標軌道を生成する目標軌道生成手段を備える。
【００２２】
この構成によると、繰返し演算を必要とせず、高速かつ正確に関節位置を推定し、多関節ロボットの目標軌道を生成することができる。このため、目標軌道を設計者が与える必要が無く、手軽にロボット動作を実現できる。また、推定された関節位置に基づいて、関節角度を推定することにより、人物等の関節の動きを模擬したロボットの動作が可能である。これにより、スポーツや踊り等の動作を手軽にロボットに真似させることが可能できる。
【００２３】
以下、本発明の実施の形態について、図面を用いて説明する。
【００２４】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係る姿勢推定装置の構成を示す図である。図１の姿勢推定装置は、関節物体を含む画像から、正確かつ高速に関節物体の関節位置および身体部位位置を検出する装置である。なお、本発明における「姿勢推定」とは、関節物体の関節位置および身体部位位置を検出することを含む。
【００２５】
画像入力部１０１は、関節物体を含む画像を入力する処理部であり、カメラ等により構成される。なお、ここでは、入力される画像は時系列に並んだ画像であっても構わない。
【００２６】
特徴抽出部１０２は、入力された画像から輪郭形状を表す輪郭特徴量を抽出する。特徴抽出部１０２の構成例を図２を用いて説明する。特徴抽出部１０２は、入力された画像から関節物体領域を抽出する物体領域抽出部１０２１と、抽出した関節物体領域に対して２値化処理を行い、シルエット画像を抽出するシルエット抽出部１０２２と、シルエット画像に対して、シルエット画像の輪郭に関する特徴を抽出する輪郭特徴抽出部１０２３とから構成される。
【００２７】
また、関節位置推定部１０３では、被写体の関節位置または身体部位位置と輪郭特徴抽出部１０２３と同様の処理にて抽出したシルエットの輪郭に関する特徴量との関係をあらかじめ学習しておいた相関情報記憶部１０４に記憶されている相関情報を用いて、前記特徴量から被写体の関節位置または身体部位位置を推定する。
【００２８】
これにより、画像中に存在する関節物体の画像から、正確かつ高速に画像中に存在する関節物体の関節位置および身体部位情報を検出し、姿勢推定を行うことが可能である。
【００２９】
以下に、本発明の関節物体の姿勢推定装置による姿勢推定方法ついて、図３および図４を用いて詳細に説明する。
【００３０】
まず、画像入力部１０１は、図４（ａ）に示すような入力画像４０１を受け付ける（Ｓ３０１）。
【００３１】
次に、特徴抽出部１０２は、入力画像４０１に対して、図４（ｂ）に示す背景画像４０２を用いて背景差分処理を行い、関節物体領域を抽出する（Ｓ３０２）。なお、ここでは、背景差分処理の代わりにフレーム間差分処理を行うことにより関節物体領域の抽出を行っても良い。さらに、対象とする関節物体が人物である場合は、M.Oren, C.Papageorgiou, P.Sinha, E.Osuna and T.Poggio, "Pedestrian Detection using wavelet templates", Proc.of CVPR97, pp.193-199, 1997に開示されている技術等を用いて、人物検出処理を行い、その結果を用いて人物領域を切り出しても良い。さらに、エッジ検出処理を併用しても良い。また、背景差分処理を行う場合は、人物の存在しない背景となる画像を事前に準備しておく。時系列画像を入力とする場合には、背景スプライト画像を生成し、背景差分処理のための背景画像として用いることもできる。
【００３２】
次に、特徴抽出部１０２は、Ｓ３０２で抽出した関節物体領域を含む画像に対して、２値化処理を行う（Ｓ３０３）。これによって、図４（ｃ）に示すような関節物体のシルエット画像４０３が得られる。
【００３３】
なお、ここで、ノイズの影響により起こる輪郭の不要な凹凸を減らすために、シルエット画像を平滑化することも有効である。
【００３４】
次に、特徴抽出部１０２は、シルエット画像の輪郭を抽出する（Ｓ３０４）。輪郭抽出は、シルエット画像に対して空間微分フィルタを適用することで実現可能である。また、抽出した輪郭の細線化を行う場合には、Ｈｉｌｄｉｔｃｈの細線化アルゴリズムを用いて行うことができる。空間微分フィルタおよびＨｉｌｄｉｔｃｈの細線化アルゴリズムについては、「C.J.Hilditch,"Linear Skeletones From Square Cupboards",Machine Intelligence 4, Eginburgh Univ.Press,p.403,1969」に詳細が記述されている。
【００３５】
次に、特徴抽出部１０２は、抽出したシルエット画像の輪郭からシルエット画像の輪郭形状を表現する輪郭特徴量を抽出する（Ｓ３０５）。輪郭特徴量の抽出方法の一例について図４および図５を用いて以下に説明する。なお、輪郭特徴量としては、シルエット画像の輪郭形状を表現する特徴量であれば以下の例に限らない。
【００３６】
まず、特徴抽出部１０２は、Ｓ３０４にて抽出されたシルエット画像４０３に対して、基準点を決定する。望ましい例としては、シルエット画像の重心ｇを基準点として求める。ここで、基準点は、シルエット画像のすべての画素を用いずに、輪郭画素位置の重心としても構わない。
【００３７】
次に、シルエット画像の主軸４０５を算出する。シルエット画像の主軸４０５は、シルエット画像上の各輪郭点から垂線を下ろした時に、垂線の長さの総和が最小になり、かつ、重心ｇを通る軸とすることで求めることができる。
【００３８】
具体的には、求めたい主軸は、重心（ｇx，ｇy）を通り、傾きをｔａｎθとすると、
【数１】
2007066094.tif 000003
と表せる。
【００３９】
次に、各輪郭点（ｘi，ｙi）から式（１）で表される直線に垂線を下ろすと、垂線の長さdは、
【数２】
2007066094.tif 000004
で表される。
【００４０】
そこで、最小化したい関数Jは、各輪郭点から引いた垂線の長さの総和をとったものであるため、式（１）と式（２）を用いて、次のように表される。
【数３】
2007066094.tif 000005
【００４１】
ここで、式（３）を最小化するためには
【数４】
2007066094.tif 000006
より、
【数５】
2007066094.tif 000007
となる。
【００４２】
式（４）より、直線の傾きは次式（５）で表す事ができる。そして、式（１）に直線の傾きを代入することで、主軸を得ることができる。
【数６】
2007066094.tif 000008
【００４３】
次に、特徴抽出部１０２は、輪郭特徴量の始点を決定するために、シルエット画像の輪郭線上の各点と主軸４０５との交点を求める。ここで、輪郭線上の各点と求めた主軸４０５との交点が複数点存在する場合は、図４（ｅ）に示すように輪郭点中で最上部に位置する輪郭点を輪郭特徴量の始点４０６とする。この時、始点４０６としては、必ずしも最上部に位置する輪郭点を選択する必要は無い。ただし、特に対象が人物である場合は、主軸４０５と交差する最上部の輪郭点を始点４０６とすることが有効である。その理由は、始点４０６が頭部に対応しやすくなるためである。具体的には，頭部は、腕や足の領域と異なり変形が起きにくい。また、影の影響は、地面に対して出やすいために、その影響も受けにくいことが挙げられる。
【００４４】
次に、特徴抽出部１０２は、始点４０６から、シルエット画像の輪郭線上の各点をトレースする。輪郭点のトレース方法は、「安居院猛、長尾智晴著、「画像の処理と認識」、７２ページ、昭晃堂、１９９２年発行」に詳細が記述されている。
【００４５】
次に、特徴抽出部１０２は、トレースした輪郭線上の各点と重心との距離ｌを算出する。ここで、輪郭特徴量は、図５の輪郭特徴量５０３に示されるように、シルエット画像の輪郭線上の各点と重心ｇとの距離ｌを要素とするベクトルとして表現する。
【００４６】
ここで、図６（ａ）に示すように、被写体の姿勢や画像中での大きさによって、輪郭点の数が異なる場合について説明する。この場合、それぞれの被写体シルエット画像において、輪郭点の数がｎのシルエット画像と輪郭点の数がｍのシルエット画像が得られたものとする。ここで、ｎ＜ｍであるものとする。
【００４７】
この例の場合、輪郭特徴量ベクトルの要素数は、ｎおよびｍとなる。そこで、輪郭特徴量のベクトル要素数が異なることを防ぐために、ベクトルの要素数はあらかじめ決定しておき、固定値Ｚとすることが望ましい。具体的には、任意の入力画像に対して、輪郭点数がＺとなるように、全輪郭点の中から輪郭特徴量として利用する輪郭線上の代表点を図６（ｂ）に示すように（ｎ／Ｚ）点ごとまたは（ｍ／Ｚ）点ごとに選択する。本実施の形態では、このように選択した輪郭点を代表点とした特徴量を輪郭特徴量とする。
【００４８】
次に、関節位置推定部１０３は、Ｓ３０５で抽出された輪郭特徴量を入力として、関節位置を推定する（Ｓ３０６）。
【００４９】
ここでは、被写体の関節位置または身体部位位置と前記輪郭特徴量との関係をあらかじめ学習しておいた相関情報記憶部１０４に記憶されている相関情報を用いて、前記輪郭特徴量から被写体の関節位置または身体部位位置を推定する。そのため、本実施の形態では、学習と推定とは別々に行うことになる。そこで、被写体の関節位置および身体部位位置と前記輪郭特徴量との相関情報を学習する方法について説明する。
【００５０】
学習に用いる被写体画像とその画像における関節位置データとのセットをＮセット用意する。Ｎ枚の被写体画像の各々に対して、Ｓ３０５にて抽出した輪郭特徴量をｌtとする。
【００５１】
ここで、関節位置データには、関節位置のほかに身体部位位置も含まれる。
学習に用いる輪郭特徴量の例について説明する。まず、図５に示すように、さまざまな姿勢を含むＮセット分の被写体画像のうち、姿勢（０）の画像５０１から姿勢（Ｎ−１）の画像５０２まで、それぞれシルエット画像を抽出した後、輪郭特徴量５０３を抽出する。学習に用いる被写体画像セットは、さまざまな体型、さまざまな姿勢を含むことが望ましい。輪郭特徴量ｌtは、シルエット画像の重心ｇと輪郭特徴量として利用する輪郭線上の代表点との距離ｌを要素として持つベクトルで構成される。さらに、被写体の大きさの違いの影響を排除するために、シルエット画像の面積（画素数）Ｓを計算し、次式のように、面積Ｓで正規化することが望ましい。
【数７】
2007066094.tif 000009
【００５２】
ここで、ｌt_zは、時刻ｔで入力されたシルエット画像の重心ｇと輪郭線上の代表点ｚとの距離を示す。また、Ｓtは、時刻ｔで入力されたシルエット画像の面積である。
【００５３】
次に、その時刻ｔに対応する関節位置データｐtについて、説明する。
ここで、関節位置データは、図７に示されるように、画像上の関節位置７０１を手作業で指定して、画像上での関節ｉに対応する座標位置（ｘt_i，ｙt_i）をｐtとしても良い。または、モーションキャプチャシステム等を用いて、３次元の関節位置データを取得できる場合は、関節ｉに対応する３次元位置（ｘt_i，ｙt_i，ｚt_i）をｐtとしても良い。
【００５４】
具体的には、ｐtは、次式（７）で表すことができる。
【数８】
2007066094.tif 000010
ここで、Ｍは、関節数を表す。
【００５５】
ここで、学習に用いる関節位置データについて説明する。前記輪郭特徴量を抽出するために用いた被写体画像とその画像における関節位置データとのセットをＮセット用意する。ここで、図７に示すように、前記輪郭特徴量を抽出するために用いたさまざまな姿勢を含むＮセット分の被写体画像に対応する関節位置データをｐtとする。
【００５６】
そして、Ｎセット分の前記輪郭特徴量ｌtと前記関節位置データｐtとを用いて、以下のように相関情報を学習する。相関情報とは、さまざまな体型や姿勢における前記輪郭特徴量と前記関節位置データとの写像関係を表すものである。
【００５７】
次に、相関情報の学習方法について具体的に説明する。
求めたい相関情報Ｃを
【数９】
2007066094.tif 000011
とする。ここで、Ｃ*Lは、ＣLの逆行列または疑似逆行列であり、ＣLは、次式（９）のように表すことができる。
【数１０】
2007066094.tif 000012
【００５８】
ここで、ｍlは、Ｎ個の輪郭特徴量ｌtを平均したベクトルである。すなわち、さまざまな体型や姿勢における輪郭特徴量の平均ベクトルである。
【００５９】
次に、式（８）におけるＣLPは、次式（１０）のように表すことができる。
【数１１】
2007066094.tif 000013
【００６０】
ここで、ｍpは、Ｎ個の関節位置データｐtを平均したベクトルである。すなわち、さまざまな体型や姿勢における関節位置データの平均ベクトルである。
【００６１】
本実施の形態において、姿勢推定を行う時は、式（８）〜式（１０）を用いて、あらかじめ相関情報を求めておき、図１の相関情報記憶部１０４には、ｍp，ｍl，Ｃを保持しておけばよい。
【００６２】
すなわち、図８に示すように、相関情報記憶部１０４に記憶されているｍp，ｍl，Ｃは、式（６）で示されるＺ次元ベクトル空間中の点ｌtと、式（７）で示される３Ｍ次元ベクトル空間中の点ｐtとの写像関係を示している。
【００６３】
次に、関節位置および身体部位位置の推定処理（Ｓ３０６）について説明する。具体的には、関節位置推定部１０３が、上記のようにあらかじめ学習した相関情報を用いて、Ｓ３０５にて抽出した輪郭特徴量を入力として、関節位置および身体部位位置を推定する。
【００６４】
Ｓ３０５にて抽出した輪郭特徴量をｌinputとすると、推定したい関節位置および身体部位位置ｐexpectedは、相関情報記憶部１０４で保持しているｍp，ｍl，Ｃを用いて、次式（１１）により推定することができる。
【数１２】
2007066094.tif 000014
【００６５】
以上のように、ｍp，ｍl，Ｃをあらかじめ学習しておけば、平均ベクトルとの加減算および相関情報Ｃとの相関演算を行うだけで関節位置を推定可能である。すなわち、繰返し演算を必要とせず、高速かつ正確に関節位置および身体部位位置を推定可能である。具体的な推定結果を図９に示す。ここでは、前記輪郭特徴量の代表点数を５０点とし、関節位置および身体部位位置は、頭、胸、左右肩、左右肘、左右手先、左右腰、左右膝、左右足首の１４点とした。図９において、△印が実際にモーションキャプチャシステムにて取得した実際の３次元関節位置および身体部位位置、□印が本実施の形態において推定した関節位置および身体部位位置を示している。なお、図中の関節位置間の直線は人体形状を見やすくするために追記したものである。このように、△印と□印とがほぼ同位置に示されており、関節物体の関節位置および身体部位情報を正確に検出することができることが示されている。
【００６６】
また、本実施の形態では、文字認識やジェスチャー認識等のように、認識対象のクラスを推定する問題とは異なり、あらかじめ学習していない姿勢についても、あらかじめ学習した関節位置データの組合せとして推定することが可能である。すなわち、クラスを推定する問題では、微小な違いを吸収することが重要であるが、本実施の形態であれば、輪郭特徴量の微小な違いが、関節位置の推定結果に反映される事になる。
【００６７】
（第２の実施の形態）
本実施の形態では、輪郭線上の代表点を第１の実施の形態とは異なる方法で選択して輪郭特徴量を抽出する方法について説明する。
【００６８】
本実施の形態に係る姿勢推定装置の構成の概略は図１と同様であるので、その説明を省略する。また、姿勢推定装置による姿勢推定方法は、図３のフローチャートにおいて、Ｓ３０１からＳ３０４まで同様であるので、そこまでの処理の説明を省略する。
【００６９】
本実施の形態における輪郭特徴量の代表点の決定方法について、図１０を用いて説明する。
【００７０】
特徴抽出部１０２は、輪郭特徴量抽出処理（図３のＳ３０５）の代わりに、Ｓ３０４にて抽出したシルエット画像に対して、重心を決定する。望ましい例としては、シルエット画像の重心位置ｇを求める。ここで、重心ｇは、シルエット画像の輪郭位置の重心としても構わない。
【００７１】
次に、特徴抽出部１０２は、シルエット画像の主軸９０２を算出する。主軸９０２については、前述のように式（１）〜式（５）を用いて算出可能である。
【００７２】
次に、特徴抽出部１０２は、シルエット画像の最上部９０３と最下部９０４を求める。ここでは、シルエット画像中のｙ軸上でシルエット画像の最上部９０３とシルエット画像の最下部９０４に位置する画素を選択する。
【００７３】
次に、特徴抽出部１０２は、シルエット画像の最上部９０３とシルエット画像の最下部９０４から主軸９０２に垂線を下ろし、その２点の交点を結ぶ主軸上の点を等間隔にＹ点選択し、基準点９０５とする。そして、図１０の矢印で示すように、Ｙ個の基準点９０５から、それぞれ２本の垂線を引き、垂線と輪郭点との交点を代表点９０６とする。そして、Ｙ個の基準点９０５から代表点９０６までの距離ｌを算出する。この時、１本の垂線に対して、２点以上の交点がある場合は、基準点９０５から最も遠い位置に存在する交点のみを用いる。例えば、基準点９０５ｂからの図中左向きの垂線に対しては、３つの交点９０７ａ〜９０７ｃが存在するが、そのうち、基準点９０５ｂから最も遠い位置に存在する交点は、交点９０７ａである。そのため、代表点として交点９０７ａが選択され、基準点９０５ｂから交点（代表点）９０７ａまでの距離が算出される。
【００７４】
輪郭特徴量は、上記の手順で求めた基準点と代表点との距離を用いて、式（６）の代わりに次式（１２）のように定義できる。
【数１３】
2007066094.tif 000015
【００７５】
ここで、ｌt_yは、時刻ｔで入力されたシルエット画像の主軸上に設定されたＹ個の基準点９０５と代表点９０６との間の距離を示す。また、各基準点から２本の垂線を引くため、１個の基準点から２個の代表点が得られる。すなわち、輪郭特徴量の要素数は２Ｙ個となる。なお、Ｓtは、時刻ｔで入力されたシルエット画像の面積である。
【００７６】
次に、関節位置の推定処理（図３のＳ３０６）については、式（６）の代わりに式（１２）を用い、ｌinputを、式（１２）と同じ形式とすることで同様に実行可能であるため、説明は省略する。
【００７７】
本実施の形態で用いる輪郭特徴量は、主軸に対する垂線方向のみの代表点を用いるため、図１１のように、足部に生じた影の影響を受けて、輪郭抽出した画像の足部が地面と繋がった場合においても、足部の繋がった部分の輪郭点が代表点として選択されにくいため、陰の影響を受けにくい利点がある。
【００７８】
（第３の実施の形態）
第１および第２の実施の形態では、輪郭特徴量として、基準点と代表点との距離値を用いた。本実施の形態では、基準点を原点とした代表点の相対座標値を用いた例について説明する。
【００７９】
本実施の形態に係る姿勢推定装置の構成の概略は図１と同様であるので、その説明を省略する。また、姿勢推定装置による姿勢推定方法は、図３のフローチャートにおいて、Ｓ３０１からＳ３０４まで同様であるので、そこまでの処理の説明を省略する。
【００８０】
本実施の形態における輪郭特徴量の抽出方法について説明する。
特徴抽出部１０２は、輪郭特徴量抽出処理（図３のＳ３０５）の代わりに、抽出したシルエット画像の輪郭からシルエット画像の輪郭形状を表現する輪郭特徴量を抽出する。輪郭特徴量の抽出方法の一例について図１２を用いて以下に説明する。なお、輪郭特徴量としては、シルエット画像の輪郭形状を表現する特徴量であれば以下の例に限らない。
【００８１】
まず、特徴抽出部１０２は、Ｓ３０４の処理にて抽出したシルエット画像１１０１に対して、基準点を決定する。望ましい例としては、シルエット画像１１０１の重心ｇを基準点として求める。ここで、基準点は、シルエット画像１１０１の輪郭位置の重心としても構わない。
【００８２】
次に、特徴抽出部１０２は、シルエット画像１１０１の主軸（図示せず）を算出する。主軸については、前述のように式（１）〜式（５）を用いて算出可能である。
【００８３】
次に、輪郭特徴量の始点を決定するために、シルエット画像の輪郭線上の各点と主軸との交点を求める。ここで、輪郭線上の各点と求めた主軸との交点が複数点存在する場合は、輪郭点中で最上部に位置する輪郭点を輪郭特徴量の始点４０６とする。この時、必ずしも最上部に位置する輪郭点を選択する必要は無い。ただし、特に対象が人物である場合は、主軸上でかつ、最上部の輪郭点を始点とすることが有効である。理由は、始点が頭部に対応しやすくなるためである。具体的には，頭部は、腕や足の領域と異なり変形が起きにくい。また、影の影響は、地面に対して出やすいために、その影響も受けにくいことが挙げられる。次に、前記始点から、シルエット画像の輪郭線上の各点をトレースする。輪郭点のトレース方法は、「安居院猛、長尾智晴著、「画像の処理と認識」、７２ページ、昭晃堂、１９９２年発行」に詳細が記述されている。
【００８４】
次に、図１２に示すように、基準点（ここでは、重心ｇ）を原点として、トレースした輪郭線上の各点を相対座標系で表現する。ここで、輪郭特徴量は、相対座標系で表現された輪郭線上の各点の座標値を要素とするベクトルとして表現する。
【００８５】
ここで、図６（ａ）に示すように、被写体の姿勢や画像中での大きさによって、輪郭点の数が異なる場合がある。画像１における輪郭点の数がｎで、画像における輪郭点の数がｍの場合について説明する。ただし、ｎ＜ｍであるものとする。
【００８６】
この例の場合、前記輪郭特徴量のベクトル要素数は、ｎおよびｍとなる。そこで、輪郭特徴量のベクトル要素数が異なることを防ぐために、ベクトルの要素数はあらかじめ決定しておき、固定値Ｚとすることが望ましい。具体的には、任意の入力画像に対して、輪郭点数がＺとなるように、全輪郭点の中から輪郭特徴量として利用する輪郭線上の代表点を図６（ｂ）に示すように（ｎ／Ｚ）点ごとまたは（ｍ／Ｚ）点ごとに選択する。本実施の形態では、このように選択した輪郭点を代表点とした特徴量を輪郭特徴量と呼ぶ。
【００８７】
ここで、抽出した輪郭特徴量をｌtとする。輪郭特徴量ｌtは、シルエット画像の重心ｇを原点とした時の、代表点１１０３の相対座標値（ｘt_j，ｙt_j）を要素として持つベクトルで構成される。さらに、被写体の大きさの影響を排除するために、シルエット画像の面積（画素数）Ｓをあらかじめ計算し、次式のように、Ｓで正規化することが望ましい。上記により、第１の実施の形態における式（７）の代わりとして、次式（１３）のように輪郭特徴量ｌtを表すことができる。
【数１４】
2007066094.tif 000016
【００８８】
ここで、ｘt_z，ｙt_zは、時刻ｔで入力されたシルエット画像の重心ｇを原点とした時の輪郭点ｚの相対座標値を示す。また、Ｓtは、時刻ｔで入力されたシルエット画像の面積である。
【００８９】
関節位置の推定処理（図３のＳ３０６）については、式（６）の代わりに式（１３）を用い、ｌinputを、式（１３）と同じ形式とすることで同様に実行可能であるため、説明は省略する。
【００９０】
本実施の形態で用いる輪郭特徴量は、基準点と代表点との距離の代わりに座標値を用いるため、同じ数の代表点を選択した場合には、２倍のベクトル要素数を必要とする。しかしながら、座標値を用いれば、輪郭形状に加え、各代表点の位置関係を情報として含むこととなるため、推定精度が向上することが期待できる。
【００９１】
さらに、第２の実施の形態における輪郭特徴量についても、基準点と代表点との距離の代わりに基準点を原点とした代表点の相対座標値を用いることが可能である。
【００９２】
（第４の実施の形態）
図１３は、本発明の第４の実施の形態に係る姿勢推定装置の構成を示す図である。図１３の姿勢推定装置は、関節物体を含む画像から、正確かつ高速に関節物体の関節位置および身体部位位置を検出する装置である。なお、本発明における「姿勢推定」とは、関節物体の関節位置および身体部位位置を検出することを含む。
【００９３】
画像入力部１０１および特徴抽出部１０２については、第１の実施の形態〜第３の実施の形態で説明したものと同様である説明を省略する。
【００９４】
図１４に示すように、相関モデル選択部１２０１は、被写体向き推定部１３０１と、体型推定部１３０２と、相関情報決定部１３０３とを含む。
【００９５】
被写体向き推定部１３０１は、関節物体領域を抽出する物体領域抽出部１０２１で抽出した関節物体について、その被写体向きを推定する処理部である。体型推定部１３０２は、シルエット抽出部１０２２で抽出したシルエット画像を用いて、抽出した関節物体の体型パラメータを推定する処理部である。相関情報決定部１３０３は、被写体向き推定部１３０１で推定した被写体向きと体型推定部１３０２で推定した体型パラメータとから、あらかじめ複数のクラスを設定し、設定したクラスごとに相関情報を学習し、相関情報記憶部１０４に記憶する処理部である。相関情報決定部１３０３は、また、あらかじめ学習しておいた複数の相関情報の中から、１つの相関情報を選択するかまたは複数の相関情報の組合せを選択する処理も行う。
【００９６】
前記相関情報は、被写体の被写体向きや体型パラメータごとに、被写体の関節位置または身体部位位置と特徴抽出部１０２と同様の処理にて抽出したシルエットの輪郭に関する特徴量との関係をあらかじめ学習しておくものである。
【００９７】
なお、相関モデル選択部１２０１は、必ずしも被写体向き推定部１３０１と体型推定部１３０２とを併用する必要は無く、被写体向き推定部１３０１による被写体向き推定のみを用いても良い。被写体向き推定のみを用いる場合については、後述する。また、被写体向き推定部１３０１での処理は、特徴抽出部１０２の物体領域抽出部１０２１での処理結果を用いると処理時間の短縮が可能である。また、体型推定部１３０２での処理は、特徴抽出部１０２のシルエット抽出部１０２２での処理結果を用いると、処理時間の短縮が可能である。もちろん、特徴抽出部１０２および相関モデル選択部１２０１の各々で、物体領域抽出処理およびシルエット画像抽出処理を行っても構わない。さらに、被写体向き推定部１３０１と体型推定部１３０２との処理は順番を入れ替えても問題無い。
【００９８】
また、関節位置推定部１０３では、前記特徴量と相関モデル選択部１２０１で決定した相関情報とを用いて、被写体の関節位置および身体部位位置を推定する。
【００９９】
これにより、画像中に存在する関節物体の画像から、正確かつ高速に画像中に存在する関節物体の関節位置および身体部位情報を検出し、姿勢推定を行うことが可能である。
【０１００】
以下に、本発明の関節物体の姿勢推定方法および装置について、図１５のフローチャートを用いて詳細に説明する。
【０１０１】
Ｓ１４０１からＳ１４０５までの処理については、第１〜第３の実施の形態におけるＳ３０１からＳ３０５までの処理と同様であるので、説明は省略する。
【０１０２】
次に、被写体向き推定部１３０１は、関節物体の被写体向きを推定する（Ｓ１４０６）。ここでは、ブロックマッチングを用いて動きベクトルを算出する。具体的には、図１６に示すように、関節物体領域内を複数のブロックに分割し、各ブロック（ブロックｉ）ごとに動きベクトル（ｕt_i，ｖt_i）を算出する。動きベクトルは、図中、矢印２１０１で示している。そして、被写体向き推定部１３０１は、複数ブロックの動きベクトルの平均値から、平均動きベクトル（ｕt，ｖt）を算出し、関節物体の移動方向を
【数１５】
2007066094.tif 000017
として求める。ここでは、式（１４）で算出した移動方向を被写体向きとする。
【０１０３】
ここで、あらかじめ行っておく相関情報の学習について説明する。
本実施の形態では、相関情報を複数のクラスに分けてクラスごとに相関情報を保持する。
【０１０４】
また、各クラスは、２つのサブクラスから構成される。１つは、被写体向きθtであり、もう１つは、体型パラメータｄである。
【０１０５】
初めに、被写体向きθtからサブクラスを決定し、次に体型パラメータｄからサブクラスを決定する。そして、上記２つのサブクラスからクラスを決定する。ここでは、被写体向きθtによって、サブクラスに分ける方法について説明する。
【０１０６】
図１７に示すように被写体向きθtのサブクラスを決定する。サブクラスは、設計者が与えるかｋ−ｍｅａｎ法等のクラスタリング技術を用いて複数のサブクラスを生成しても良い。具体的には、学習用に用いるさまざまな体型および被写体向きの画像をＮ枚用意し、画像１枚ごとに式（１４）により被写体向きθtを算出する。次に、被写体向きθtをあらかじめサブクラスとして設定した向きに対応させる。サブクラスへの対応は、算出した被写体向きがサブクラスの中で最も近い値とする。ここでは、サブクラスとして、設計者が事前に０度（０ｒａｄ）〜３６０度（２πｒａｄ）まで１５度（０．０８πｒａｄ）ごとに設定した例を示すが、被写体向きのサブクラスの設定は、何度ごとでも良いし、クラスタリング技術を用いてサブクラスを決定しても良い。
【０１０７】
このようにして、Ｎ枚の画像はそれぞれ、被写体向きのサブクラスに分けられる。
【０１０８】
上記のようにサブクラスをあらかじめ決定しておけば、関節位置および身体部位位置を推定する時に、入力画像から被写体向きを推定して、サブクラスを決定することができる。
【０１０９】
なお、移動方向については、複数枚の時系列画像について時間平均をとると、さらに精度の向上が期待できる。
【０１１０】
なお、ブロックマッチングを用いた動きベクトルの算出方法については、「安居院猛、長尾智晴著、「画像の処理と認識」、１６４ページ、昭晃堂、１９９２年発行」に詳細が記述されている。もちろん、被写体向きの算出方法は、上記の限りではなく、顔画像から顔の向き判定を行い被写体向きとしても良いし、多方向から多カメラで撮影する場合は、被写体シルエットのアスペクト比において横幅の比率が最も大きいカメラの方向を向いていると判定することも可能である。
【０１１１】
なお、移動方向に関する情報を用いて被写体向きを推定し、相関情報を決定する場合には、動きベクトルの算出に時間的に連続した２枚の画像を入力する必要がある。
【０１１２】
次に、体型推定部１３０２は、シルエット画像から体型パラメータを推定する（Ｓ１４０７）。具体的な方法について、図１８を用いて説明する。まず、体型推定部１３０２は、シルエット画像１５０１から、シルエット画像の最上部１５０２とシルエット画像の最下部１５０３とを求める。ここでは、シルエット画像の縦軸上で最上部１５０２と最下部１５０３に位置する画素を選択する。ここで、シルエット画像の最上部１５０２とシルエット画像の最下部１５０３との距離をＮとする。
【０１１３】
そして、Ｎを被写体の身長と仮定して、体型に相当する幅を算出する。そのために、縦軸にシルエット画像を投影する。ここでは、２値化された画像を用いているため、シルエット画像の画素数を縦軸に投影すればよい。
【０１１４】
次に、体型推定部１３０２は、投影結果１５０４に対して、身長に相当するＮと上記体型に相当するｓiとの関係から体型パラメータｄを次式（１５）に基づいて算出する。
【数１６】
2007066094.tif 000018
【０１１５】
具体的には、図１９に示すように、体型の異なる被写体を縦軸に投影した後、式（１５）を実行すると、被写体２２０１の場合は、ｄ＝０．１８となり、被写体２２０２の場合は、ｄ＝０．２４となる。
【０１１６】
さらに、体系パラメータｄを次式（１６）に基づいて算出することも有効である。
【数１７】
2007066094.tif 000019
【０１１７】
ここで、あらかじめ行っておく相関情報の学習について説明する。
【０１１８】
本実施の形態では、前述のように、相関情報を複数のクラスに分けてクラスごとに相関情報を保持する。ここでは、体型パラメータｄからサブクラスを決定する方法について説明する。
【０１１９】
サブクラスは、設計者が与えるかｋ−ｍｅａｎ法等のクラスタリング技術を用いて複数のクラスタを生成しても良い。
【０１２０】
具体的には、学習用に用いるさまざまな体型および被写体向きの画像をＮ枚用意し、画像１枚ごとに式（１５）または式（１６）により体型パラメータｄを算出する。
【０１２１】
次に、算出した体型パラメータｄをあらかじめサブクラスとして設定した体型パラメータＤ１〜Ｄｎのいずれかに対応させる。サブクラスへの対応は、算出した体型パラメータｄがあらかじめ設定したサブクラスＤ１〜Ｄｎの中で最も近い値とする。
【０１２２】
なお、サブクラスの決定方法は、あらかじめ設計者が与えた場合について説明したが、クラスタリング技術を用いてサブクラスを決定しても良い。
【０１２３】
ここでサブクラスは、
Ｄ１＜Ｄ２…＜Ｄｎ                                              …（１７）
とする。
【０１２４】
例えば、Ｄ１＝０．０５、Ｄ２＝０．１、Ｄ３＝０．１５、Ｄ４＝０．２０、Ｄ５＝０．２５とすると、図１９の被写体２２０１は、体型パラメータｄ＝０．１８であるため、サブクラスＤ４と判定され、被写体２２０２は、体型パラメータｄ＝０．２４であるため、サブクラスＤ５と判定される。
【０１２５】
このようにして、Ｎ枚の画像はそれぞれ、体型パラメータのサブクラスに分けられる。
上記のようにサブクラスをあらかじめ決定しておけば、関節位置および身体部位位置を推定する時に、入力画像から被写体向きと体型パラメータとを決定してクラスを決定することができる。
【０１２６】
なお、体型パラメータについては、複数枚の時系列画像について時間平均をとると、さらに精度の向上が期待できる。
【０１２７】
上記のように、あらかじめ被写体向きと体型パラメータとを用いてそれぞれ、サブクラスを設定すると、図２０に示すように、それぞれのサブクラスから、複数のクラスｉｊ（相関情報）を定義することができる。
【０１２８】
次に、相関情報決定部１３０３は、Ｓ１４０６で推定した被写体向きのサブクラスとＳ１４０７にて推定した体型パラメータのサブクラスとを用いて、クラスを決定し、相関情報記憶部１０４に複数保持された相関情報の中から、１つの相関情報を選択するか、または複数の相関情報を選択して組み合わせる（Ｓ１４０８）。
【０１２９】
具体的には、図２０に示すように、あらかじめ、複数の体型パラメータのサブクラスと複数の被写体向きのサブクラスの組合せからクラスを決定し、クラスごとに
【数１８】
2007066094.tif 000020
をあらかじめ学習しておき、相関情報記憶部１０４に保持しておく。
【０１３０】
具体的に式（９）に示したＣLを、図２０に示すように、被写体向きのサブクラスｉと体型パラメータのサブクラスｊごとに用意することにより、次式（１８）のように書ける。
【数１９】
2007066094.tif 000021
【０１３１】
ここで、Ｎijは、Ｎ枚の学習用に用いた画像のうち、被写体向き推定処理（Ｓ１４０６）および体型パラメータ推定処理（Ｓ１４０７）の結果からクラスｉｊに割り当てられた画像数である。
【０１３２】
また同様に、
【数２０】
2007066094.tif 000022
は、クラスｉｊに割り当てられた画像から抽出した輪郭特徴量であり、
【数２１】
2007066094.tif 000023
は、Ｎij個の
【数２２】
2007066094.tif 000024
を平均したベクトルである。また、式（１０）に示したＣLPも同様に、被写体向きのサブクラスｉと体型パラメータのサブクラスｊごとに用意することにより、次式（１９）のように書ける。
【数２３】
2007066094.tif 000025
【０１３３】
ここで、式（１８）と同様に、Ｎijは、Ｎ枚の学習用に用いた画像のうち、被写体向き推定処理（Ｓ１４０６）および体型パラメータ推定処理（Ｓ１４０７）の結果からクラスｉｊに割り当てられた画像数である。
【０１３４】
また同様に、
【数２４】
2007066094.tif 000026
は、クラスｉｊに割り当てられた画像に対応する関節位置データであり、
【数２５】
2007066094.tif 000027
は、Ｎij個の
【数２６】
2007066094.tif 000028
を平均したベクトルである。
そして、式（８）に対応する相関情報Ｃijは、次式（２０）で表すことができる。
【数２７】
2007066094.tif 000029
【０１３５】
ここで、
【数２８】
2007066094.tif 000030
は
【数２９】
2007066094.tif 000031
の逆行列または疑似逆行列である。
【０１３６】
次に、関節位置推定部１２０２は、Ｓ１４０８で決定されたクラスｉｊの
【数３０】
2007066094.tif 000032
を用いて、次式（２１）に従い、関節位置を推定する（Ｓ１４０９）。
【数３１】
2007066094.tif 000033
【０１３７】
また、さらに、他の関節位置および身体部位位置推定方法として、複数の相関情報の組合せを用いることも可能である。
【０１３８】
この場合、関節位置推定部１２０２は、次式（２２）に従い、関節位置を推定する（Ｓ１４０９）。
【数３２】
2007066094.tif 000034
【０１３９】
ここで、
【数３３】
2007066094.tif 000035
【数３４】
2007066094.tif 000036
である。
【０１４０】
【数３５】
2007066094.tif 000037
は、最尤推定アルゴリズムの一種であるＥＭアルゴリズムを用いて推定することができる。
【０１４１】
ＥＭアルゴリズムについては、「上田修功「ベイズ学習Ｉ−統計的学習の基礎―」、電子情報通信学会誌、Ｖｏｌ．８５，  Ｎｏ．４，  ｐｐ．２６５−２７１，２００２」に詳しく記載されている。
【０１４２】
なお、体型パラメータを用いずに、被写体向きのみを用いる場合については、前記被写体向きのサブクラスをクラスとすることで、ｉ個のクラスを決定し、式（１８）〜式（２４）における体型パラメータに関する変数ｊを除いたものとして実施可能である。
【０１４３】
このように、複数の被写体向きのサブクラスや体型パラメータのサブクラスからクラスを決定し、クラスごとに相関行列を求めておき、その線形和を用いてモデル変換を行うことで、さまざまな被写体向きと体型に対応した姿勢推定が可能になる。
【０１４４】
以上により、第１の実施の形態〜５の効果に加えて、対象とする関節物体の体型のバリエーションに頑健となる。
【０１４５】
以上のように、クラスごとに
【数３６】
2007066094.tif 000038
をあらかじめ学習しておけば、平均ベクトルとの加減算および相関情報との相関演算を行うだけで関節位置および身体部位位置を推定可能である。すなわち、繰返し演算を必要とせず、高速かつ正確に関節位置および身体部位位置を推定可能である。
【０１４６】
さらに、被写体の向きや体型のバリエーションへの対応も可能になる。特に単眼カメラでの利用においては、被写体の向きと体型のバリエーションとの区別がつきにくくなる問題に対して、Ｓ１４０７およびＳ１４０８で、被写体向きと体型パラメータとを推定し、それに適した相関情報を選択して関節位置および身体部位位置を推定することで、より、高精度な推定が可能となる。また、本実施の形態は、第１〜第３の実施の形態のいずれとも組合せ可能である。
【０１４７】
（第５の実施の形態）
本実施の形態では、第１〜第４の実施の形態に加えて、輪郭特徴量を時系列画像から得る方法について第１の実施の形態に沿って説明する。
【０１４８】
ここでは、時刻ｔと時刻ｔ＋１とで撮像された２枚の画像を入力とした場合について説明するが、時系列に連続した画像を３枚以上用いても構わない。
【０１４９】
画像入力部１０１において、画像を入力する（図３のＳ３０１）。ここでは、時系列に並んだ画像を想定する。次に、特徴抽出部１０２では、Ｓ３０２からＳ３０５に従って、時刻ｔで入力された画像および時刻ｔ＋１で入力された画像の各々の輪郭特徴量を抽出する。ここで、抽出された輪郭特徴量をｌtおよびｌt+1とする。
【０１５０】
次に、複数枚の画像に対応するそれぞれの輪郭特徴量を図２１に示すようにつなぎ合わせる。すなわち、時系列画像から得る輪郭特徴量ｌt,t+1は、式（６）の代わりに、次式（２５）のように書き表せる。
【数３７】
2007066094.tif 000039
【０１５１】
ここで、ｌt_z，ｌt+1_zは、それぞれ、時刻ｔ、ｔ＋１で入力されたシルエット画像の重心ｇと輪郭線上の代表点ｚとの距離を示す。また、Ｓt，Ｓt+1は、それぞれ時刻ｔ、ｔ＋１で入力されたシルエット画像の面積である。
【０１５２】
次に、関節位置の推定処理（Ｓ３０６）については、式（６）の代わりに式（２５）を用い、ｌinputを、式（２５）と同じように時系列とすることで同様に実行可能であるため、説明は省略する。
【０１５３】
例えば、図５における姿勢（０）の画像５０１のように、関節や身体部位の一部が胴体によって隠されているような場合、１枚の画像のみからでは、隠れている部位や関節の位置に関して推定誤りが大きくなる傾向がある。これに対して本実施の形態では、式（２５）のように、輪郭特徴量の時間変動を含めることによって、関節物体の一連の動きから関節位置推定を行うことができる。これにより、特に関節や身体部位の隠れが多い場合において推定精度を高めることが可能である。
【０１５４】
（第６の実施の形態）
本実施の形態では、第１の実施の形態で説明した姿勢推定方法を用いて、多関節を有するロボットを動作させる例について述べる。もちろん、第１〜第５の実施の形態で説明した姿勢推定方法は、すべて適用可能である。
【０１５５】
ここでは、説明を簡単にするため、人物の手先動作に従って、ロボットの手先動作を生成する例について述べるが、ロボットの各リンクと人物の各関節との対応関係をあらかじめ決めておけば、ロボットのリンク数は、推定する関節数を上限として利用可能である。
【０１５６】
図２２は、本発明の第６の実施の形態に係るロボット制御装置の構成を示すブロック図である。ロボット制御装置は、画像入力部１０１、特徴抽出部１０２、関節位置推定部１０３、相関情報記憶部１０４と、軌道生成部１９０１とを備えている。
【０１５７】
ロボット制御装置において、画像入力部１０１、特徴抽出部１０２、関節位置推定部１０３および相関情報記憶部１０４は、第１の実施の形態と同様であるため、説明は省略する。
【０１５８】
軌道生成部１９０１では、関節位置推定部１０３で推定した関節位置および身体部位位置の中から、手先位置を表す３次元位置を用いる。手先位置は、式（７）のベクトルの第ｈ要素として次式（２６）で表される。
【数３８】
2007066094.tif 000040
【０１５９】
そして、式（２６）の手先位置の時系列データを用いて、逆運動学問題としてロボットを制御する。図２３に示すように、ＸＹ平面内における、２個の回転関節（リンク２００３およびリンク２００４）からなる２自由度のロボットアームを例に説明する。ここで、２次元平面を考えるため、式（２６）において、
【数３９】
2007066094.tif 000041
とする。
【０１６０】
ただし、自由度を限定するものではない。
まず、ロボットの手先位置２００１の目標軌道を式（２６）に従って時系列で与える。これに対して、リンク２００３とリンク２００４の関節変数ベクトルを次式（２７）で表すと、
【数４０】
2007066094.tif 000042
目標軌道として与えた手先位置とリンク２００３およびリンク２００４の関節変数ベクトルとの関係は、次式（２８）で表される。
【数４１】
2007066094.tif 000043
【０１６１】
ここで、２自由度ロボットアームの手先位置ベクトルｐt=（ｘt，ｙt）は、式（２８）と図２３のロボットアームの構造より、
【数４２】
2007066094.tif 000044
【数４３】
2007066094.tif 000045
で表すことができる。
【０１６２】
軌道生成部１９０１は、式（２８）から、逆運動学問題を解く事によって、目標軌道から、リンク２００３とリンク２００４の関節変数ベクトルｑtを得ることができる。すなわち、リンク２００３とリンク２００４の関節変動ベクトルを得ることで、式（２６）の手先位置を目標軌道とした制御が可能である。
【０１６３】
具体的には、図２４に示すようなフィードバック制御系を用いることで実現できる。
まず、ｐthを目標軌道値として制御系に与える。
次に、目標軌道値ｐthとロボットアームの手先位置ｐtとの誤差ｐteを計算し、ＰＩＤ制御器に入力する。もちろん、必ずしもＰＩＤ制御である必要は無く、ＰＤ制御等を用いても良い。
【０１６４】
そして、ＰＩＤ補償器からの出力ｕ´tに対してヤコビ行列の逆行列Ｊp-1（ｑ）を乗算する。これにより、リンク２００３およびリンク２００４の駆動指令値ｕtを得ることができる。
【０１６５】
なお、ＰＩＤ制御器の出力は、次式（３１）で表され、
【数４４】
2007066094.tif 000046
ＫP，ＫI，ＫDは、それぞれチューニングする。
【０１６６】
「ＰＩＤ制御器については、則次俊郎、五百井清、西本澄、小西克信、谷口隆雄、「ロボット工学」、Ｐ１１６、朝倉書店、２００３年」に詳しく記述されている。
【０１６７】
また、２自由度の回転関節（リンク）を持つロボットアームのヤコビ行列は、式（２９）および式（３０）から、次式（３２）により表される。
【数４５】
2007066094.tif 000047
【０１６８】
なお、
【数４６】
2007066094.tif 000048
は、それぞれアームの長さを示す。また、本実施例の多自由度への拡張も、ロボットの構造に基づいてヤコビ行列を計算すれば実施可能である。
【０１６９】
２自由度ロボットアーム、多自由度ロボットアームに関するヤコビ行列の算出については、「松日楽信人、大明準治、「わかりやすいロボットシステム入門」Ｐ１０６、オーム社、１９９９年」に詳しく記載されている。
【０１７０】
次に、軌道生成部１９０１は、誤差ｐteを計算するためのロボットアームの手先位置ｐtを計算する。
【０１７１】
アームの手先位置は、順運動学に基づいて解く事ができる。
すなわち、ロボットの現在の関節変動ベクトルｑtから、式（２８）を用いて、ロボットアームの手先位置ｐtを算出できる。
【０１７２】
これにより、アームの手先位置が得られ、誤差ｐteを計算できる。
以上のように、ヤコビ行列を用いて手先に関する変数からリンク（関節）に関する変数に変換してＰＩＤ制御を行うことによって、関節位置推定結果を目標軌道としたロボットの制御が可能である。
【０１７３】
また、順運動学問題として、ロボットを制御することも可能である。
例として、図２３のようにＸＹ平面内を動く２個の回転関節（リンク）で構成された２自由度マニピュレータについて述べる。２リンク構造の場合、関節位置推定部１０３で推定した関節位置のうち、肩、肘、手首に対応する関節位置情報から、推定した肩位置と推定した肘位置を直線で結び、その直線の傾きからθ1を得ることができる。さらに、推定した肘位置と推定した手首位置を直線で結ぶ。そして上記２本の直線のなす角度からθ2を得ることができる。
【０１７４】
これにより、式（２７）のリンク２００３とリンク２００４の関節変数ベクトルを得ることができ、関節変数ベクトルを目標値とした制御を行うことで、人物の肩、肘、手首の角度の関係を模擬したロボット制御が可能となる。具体的には、図２３のように２リンク構造の場合、式（２９）式（３０）にリンク２００３とリンク２００４の関節変数ベクトルを与えるとＰＩＤ制御等を用いて制御が可能である。
【０１７５】
なお、順運動学問題、逆運動学問題、制御方法については、「吉川恒夫、「ロボット制御基礎論」、Ｐ３８、コロナ社、１９８８年」に詳しい。
【０１７６】
以上のように、本実施の形態によれば、繰返し演算を必要とせず、高速かつ正確に関節位置を推定し、軌道生成部で、その結果を用いて目標軌道として関節変数ベクトルを得ることによって、目標軌道に沿ったロボットの動作が可能である。これにより、目標軌道を設計者が与える必要が無く、手軽にロボット動作を実現できる。また、関節位置推定部で推定した関節位置から、軌道生成部で関節角度を推定することによって、人物等の関節の動きを模擬したロボットの動作が可能である。これにより、スポーツや踊り等の動作を手軽にロボットに動作させることが可能である。
【０１７７】
以上、本発明の実施の形態に係る姿勢推定装置およびロボットについて説明したが、姿勢推定方法は、必ずしも上述の実施の形態に限定されるものではない。例えば、ニューラルネットワークを用いて姿勢推定を行うようにし、相関情報の学習は、バックプロパゲーション法を用いるようにしてもよい。
【０１７８】
また、上述の実施の形態に係る姿勢推定装置およびロボットにおいては、３次元空間中における関節位置の推定を行なったが、２次元画像中の関節位置の推定を行うようにしてもよい。この場合には、例えば、上述の式（８）で示した相関情報Ｃにより、輪郭特徴量と２次元の関節位置データとの写像関係を表すようにすればよい。
【産業上の利用可能性】
【０１７９】
本発明によると、２次元画像の被写体シルエットに関する特徴量を入力として、あらかじめ学習しておいた相関情報を用いて直接的に関節位置または身体部位位置を推定することができるため、繰返し演算を行うことなく、高速かつ正確な姿勢推定が可能である。
【０１８０】
よって、人物等の関節の動きを反映させたロボットや、災害時に遠隔救助作業を行なうことができるロボットや、遠隔手術装置や、人物等の関節の動きに基づいてアニメーションを作成するアニメーション作成装置等に適用可能である。
【図面の簡単な説明】
【０１８１】
【図１】本発明の第１の実施の形態による姿勢推定装置の構成を示す機能ブロック図である。
【図２】本発明の第１の実施の形態による特徴抽出部の構成を示す機能ブロック図である。
【図３】本発明の第１の実施の形態による姿勢推定装置が実行する処理のフローチャートである。
【図４】本発明の第１の実施の形態による輪郭特徴量の抽出例を示す図である。
【図５】本発明の第１の実施の形態による輪郭特徴量の例を示す図である。
【図６】本発明の第１の実施の形態による輪郭特徴量の代表点を示す図である。
【図７】本発明の第１の実施の形態による関節位置および身体部位位置を示す図である。
【図８】本発明の第１の実施の形態に相関情報を説明するための概念図である。
【図９】本発明の第１の実施の形態による関節位置および身体部位位置の推定結果を示す図である。
【図１０】本発明の第２の実施の形態による輪郭特徴量の抽出例を示す図である。
【図１１】本発明の第２の実施の形態による輪郭抽出結果を示す図である。
【図１２】本発明の第３の実施の形態による輪郭特徴量の抽出例を示す図である。
【図１３】本発明の第４の実施の形態による姿勢推定装置の構成を示す機能ブロック図である。
【図１４】本発明の第４の実施の形態による相関モデル選択部の構成を示す機能ブロック図である。
【図１５】本発明の第４の実施の形態による姿勢推定装置が実行する処理のフローチャートである。
【図１６】本発明の第４の実施の形態によるブロックマッチングの例を示す図である。
【図１７】本発明の第４の実施の形態による被写体向きを示す図である。
【図１８】本発明の第４の実施の形態による体型パラメータの算出例を示す図である。
【図１９】本発明の第４の実施の形態による体型パラメータの算出例を示す図である。
【図２０】本発明の第４の実施の形態による複数の相関情報を示す図である。
【図２１】本発明の第５の実施の形態による輪郭特徴量の例を示す図である。
【図２２】本発明の第６の実施の形態によるロボット制御装置の構成を示す機能ブロック図である。
【図２３】本発明の第６の実施の形態によるロボット制御の例を示す図である。
【図２４】本発明の第６の実施の形態によるフィードバック制御系の例を示す図である。
【符号の説明】
【０１８２】
１０１  画像入力部
１０２  特徴抽出部
１０３  関節位置推定部
１０４  相関情報記憶部
４０１  入力画像
４０２  背景画像
４０３  シルエット画像
４０５  主軸
４０６  始点
５０１  姿勢（０）の画像
５０２  姿勢（Ｎ−１）の画像
５０３  輪郭特徴量
７０１  関節位置
９０２  主軸
９０３，１５０２  シルエット画像の最上部
９０４，１５０３  シルエット画像の最下部
９０５  基準点
９０６  代表点
１０２１  物体領域抽出部
１０２２  シルエット抽出部
１０２３  輪郭特徴抽出部
１１０１，１５０１  シルエット画像
１１０３  代表点
１２０１  相関モデル選択部
１２０２  関節位置推定部
１３０１  被写体向き推定部
１３０２  体型推定部
１３０３  相関情報決定部
１５０４  投影結果
１９０１  軌道生成部
２００１  手先位置
２００３，２００４  リンク
２１０１  矢印
２２０１，２２０２  被写体
【図１】
2007066094.tif 000049
【図２】
2007066094.tif 000050
【図３】
2007066094.tif 000051
【図４】
2007066094.tif 000052
【図５】
2007066094.tif 000053
【図６】
2007066094.tif 000054
【図７】
2007066094.tif 000055
【図８】
2007066094.tif 000056
【図９】
2007066094.tif 000057
【図１０】
2007066094.tif 000058
【図１１】
2007066094.tif 000059
【図１２】
2007066094.tif 000060
【図１３】
2007066094.tif 000061
【図１４】
2007066094.tif 000062
【図１５】
2007066094.tif 000063
【図１６】
2007066094.tif 000064
【図１７】
2007066094.tif 000065
【図１８】
2007066094.tif 000066
【図１９】
2007066094.tif 000067
【図２０】
2007066094.tif 000068
【図２１】
2007066094.tif 000069
【図２２】
2007066094.tif 000070
【図２３】
2007066094.tif 000071
【図２４】
2007066094.tif 000072