(57)【要約】【課題】人物にマーカーを設置することなく、人物の姿勢を高精度で検出する。【解決手段】各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する距離画像取得部１０と、前記距離画像取得部１０が取得した前記距離画像に基づいて、三次元空間中での物体の座標を計算する座標計算部２０と、前記座標計算部２０が計算した物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する人物領域決定部３０と、前記人物領域決定部３０が決定した前記人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する姿勢検出部４０とを備える。【選択図】図５
2012120647.tif 000002
【特許請求の範囲】
【請求項１】
各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する距離画像取得部と、
前記距離画像取得部が取得した前記距離画像に基づいて、三次元空間中での物体の座標を計算する座標計算部と、
前記座標計算部が計算した物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する人物領域決定部と、
前記人物領域決定部が決定した前記人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する姿勢検出部と
を備える姿勢検出装置。
【請求項２】
さらに、身長ごとに骨格モデルを記憶している記憶部を備え、
前記姿勢検出部は、
前記人物領域の高さから前記被写体人物の身長を推定する身長推定部と、
前記記憶部に記憶されている前記骨格モデルの中から、前記身長推定部で推定された前記身長に最も近い身長の骨格モデルを選択する選択部と、
前記人物領域決定部で決定された前記人物領域に、前記選択部が選択した前記骨格モデルを当てはめることにより前記被写体人物の姿勢を検出する検出部とを有する
請求項１記載の姿勢検出装置。
【請求項３】
前記身長推定部は、
前記人物領域を正面から見た像である二次元の正面画像において水平方向の中心を通る高さ方向の軸を、前記被写体人物の水平方向の中心軸と決定する水平方向中心軸決定部と、
前記人物領域を側面から見た像である二次元の側面画像において水平方向の中心を通る高さ方向の軸を、前記被写体人物の前後方向の中心軸と決定する前後方向中心軸決定部と、
前記水平方向中心軸決定部および前記前後方向中心軸決定部がそれぞれ決定した前記被写体人物の水平方向および前後方向の中心軸に基づいて、前記被写体人物の中心軸を決定する被写体人物中心軸決定部と、
前記被写体人物中心軸決定部が決定した前記被写体人物の中心軸上で最も高い位置にある前記人物領域の座標から地面までの距離を前記被写体人物の身長と推定する推定部とを有する
請求項２記載の姿勢検出装置。
【請求項４】
前記水平方向中心軸決定部は、
前記正面画像において横軸が水平方向の座標を示し、縦軸が各水平方向の座標を有する前記人物領域の画素の度数を示す第１ヒストグラムを生成する第１ヒストグラム生成部と、
前記第１ヒストグラム生成部が生成した前記第１ヒストグラムにおける最大度数を算出する第１最大度数算出部と、
前記第１最大度数算出部が算出した前記最大度数に１未満の第１所定係数を掛けた値である第１積を算出する第１積算出部と、
前記第１積算出部が算出した前記第１積以上の度数を有する水平方向の座標の最小値と最大値との平均値を水平方向の座標とする前記被写体人物の高さ方向の軸を、前記被写体の水平方向の中心軸と決定する第１軸決定部とを有する
請求項３記載の姿勢検出装置。
【請求項５】
前記前後方向中心軸決定部は、
前記側面画像において横軸が前後方向の座標を示し、縦軸が各前後方向の座標を有する前記人物領域の画素の度数を示す第２ヒストグラムを生成する第２ヒストグラム生成部と、
前記第２ヒストグラム生成部が生成した前記第２ヒストグラムにおける最大度数を算出する第２最大度数算出部と、
前記第２最大度数算出部が算出した前記最大度数に１未満の第２所定係数を掛けた値である第２積を算出する第２積算出部と、
前記第２積算出部が算出した前記第２積以上の度数を有する前後方向の座標の最小値と最大値との平均値を前後方向の座標とする前記被写体人物の高さ方向の軸を、前記被写体の前後方向の中心軸と決定する第２軸決定部とを有する
請求項３または請求項４記載の姿勢検出装置。
【請求項６】
前記検出部は、
前フレームの距離画像について決定された三次元空間中での頭部の位置と同じ位置から第１所定距離内に含まれる前記人物領域の座標のうち、高さ方向に最も高い位置の座標から高さ方向に第２所定距離下がった位置を含む所定範囲内の前記人物領域の平均座標を算出する平均座標算出部と、
前記平均座標算出部が算出した前記人物領域の平均座標から高さ方向に前記第２所定距離上がった位置に、前記骨格モデルの頭部を当てはめる頭位置設定部とを有する
請求項３〜請求項５のいずれか１項に記載の姿勢検出装置。
【請求項７】
前記検出部は、さらに、
前記頭位置設定部が設定した前記骨格モデルの頭部の位置を基準として、前記被写体人物中心軸決定部が決定した前記被写体人物の中心軸上に前記骨格モデルの腰部の位置を設定する腰位置設定部を有する
請求項６記載の姿勢検出装置。
【請求項８】
前記検出部は、さらに、
前記頭位置設定部が設定した前記骨格モデルの頭部の位置と前記腰位置設定部が設定した前記骨格モデルの腰部の位置とから前記被写体人物の傾き角度を算出する傾き角度算出部と、
前記傾き角度算出部が算出した前記被写体人物の傾き角度に基づいて定められる首の曲がり角度だけ、前記骨格モデルの首の位置を前記被写体人物の傾きとは逆方向に傾ける首傾き設定部とを有する
請求項７記載の姿勢検出装置。
【請求項９】
前記検出部は、さらに、
当てはめた前記骨格モデルに基づいて、前記人物領域決定部が決定した前記人物領域から少なくとも頭および胴を除いた領域の外接矩形領域を取得する領域取得部と、
前記領域取得部が取得した外接矩形領域のうち、前フレームの距離画像について右腕と判断されている外接矩形領域と重なり合いを有し、かつ前記骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという右腕移動条件を満たす外接矩形領域の位置に、前記被写体人物の右腕が移動したと判断し、当該位置に前記骨格モデルの右腕を当てはめる右腕移動判断部と、
前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について左腕と判断されている外接矩形領域と重なり合いを有し、かつ前記骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという左腕移動条件を満たす外接矩形領域の位置に、前記被写体人物の左腕が移動したと判断し、当該位置に前記骨格モデルの左腕を当てはめる左腕移動判断部とを有する
請求項３〜請求項８のいずれか１項に記載の姿勢検出装置。
【請求項１０】
前記検出部は、さらに、
前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について右腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、前記骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという右腕出現条件を満たす外接矩形領域の位置に、前記被写体人物の右腕が出現したと判断し、当該位置に前記骨格モデルの右腕を当てはめる右腕出現判断部と、
前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について左腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、前記骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという左腕出現条件を満たす外接矩形領域の位置に、前記被写体人物の左腕が出現したと判断し、当該位置に前記骨格モデルの左腕を当てはめる左腕出現判断部とを有する
請求項９記載の姿勢検出装置。
【請求項１１】
前記検出部は、さらに、
前記前フレームの距離画像について前記被写体人物の右腕および左腕が出現していない場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕出現条件および前記左腕出現条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、前記被写体人物の両腕が結合していると判断し、当該位置に前記骨格モデルの両腕を結合した状態で当てはめる第１結合判断部を有する
請求項１０記載の姿勢検出装置。
【請求項１２】
前記検出部は、さらに、
前記前フレームの距離画像について前記被写体人物の右腕および左腕が別個に出現している場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件および前記左腕移動条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、前記被写体人物の両腕が結合していると判断し、当該位置に前記骨格モデルの両腕を結合した状態で当てはめる第２結合判断部を有する
請求項１１記載の姿勢検出装置。
【請求項１３】
前記検出部は、さらに、
前記前フレームの距離画像について前記被写体人物の両腕が結合している場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件を満たす外接矩形領域と前記左腕移動条件を満たす外接矩形領域とが別個に存在する場合には、前記被写体人物の両腕が分離して、前記右腕移動条件を満たす外接矩形領域の位置に前記被写体人物の右腕が移動したと判断し、当該位置に前記骨格モデルの右腕を当てはめ、前記左腕移動条件を満たす外接矩形領域の位置に前記被写体人物の左腕が移動したと判断し、当該位置に前記骨格モデルの左腕を当てはめる第１分離判断部を有する
請求項１２記載の姿勢検出装置。
【請求項１４】
前記検出部は、さらに、
前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件を満たす外接矩形領域が存在しない場合には、前記被写体人物の右腕が消滅したと判断し、前記骨格モデルの右腕を所定右腕位置に移動させ、前記左腕移動条件を満たす外接矩形領域が存在しない場合には、前記被写体人物の左腕が消滅したと判断し、前記骨格モデルの左腕を所定左腕位置に移動させる消滅判断部を有する
請求項１３記載の姿勢検出装置。
【請求項１５】
前記検出部は、さらに、
右腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から前記骨格モデルにおける右肩から最も遠い位置を右手の位置と判断し、当該位置に前記骨格モデルの右手を当てはめる右手判断部と、
左腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から前記骨格モデルにおける左肩から最も遠い位置を左手の位置と判断し、当該位置に前記骨格モデルの左手を当てはめる左手判断部とを有する
請求項１４記載の姿勢検出装置。
【請求項１６】
前記検出部は、さらに、
前記被写体人物の両腕が結合している場合において、前記両腕の先端から第３所定距離内に含まれる前記人物領域を正面から見た像である２次元の正面投影画像において、両腕が離れていれば前記被写体人物の両腕は分離していると判断し、前記骨格モデルの両腕を分離させる第２分離判断部を有する
請求項１５記載の姿勢検出装置。
【請求項１７】
前記検出部は、さらに、
前記骨格モデルにおける恥骨部よりも下の位置において、当該恥骨部から前記人物領域の先端までの距離が、前記骨格モデルにおける脚の長さに対応する所定の長さしきい値よりも大きい場合に、前記人物領域の先端が前記被写体人物の脚の先端であると判断し、前記人物領域の先端に前記骨格モデルの脚の先端を当てはめる脚判断部を有する
請求項１６記載の姿勢検出装置。
【請求項１８】
前記検出部は、さらに、
前記骨格モデルにおいて恥骨部を基準として膝となり得る距離に存在する前記人物領域の座標のうち、最も高さが高い座標に前記被写体人物の膝があると判断し、前記最も高さが高い座標に前記骨格モデルの膝部を当てはめる膝判断部を有する
請求項１７記載の姿勢検出装置。
【請求項１９】
前記検出部は、さらに、
現フレームにおいて当てはめた骨格モデルの各座標を、当該座標と当該座標に対応する前フレームの距離画像における骨格モデルの座標との間の距離が大きいほど前記現フレームの座標に近づき、かつ前記距離が小さいほど前記前フレームの座標に近づくような、前記現フレームの座標と前記前フレームの座標との間の座標に補正する補正部を有する
請求項２〜請求項１８のいずれか１項に記載の姿勢検出装置。
【請求項２０】
前記距離画像取得部は、取得した前記距離画像上で所定サイズのウィンドウを走査し、当該ウィンドウ内の中心画素が示す距離との距離の差が所定の距離しきい値以下となる当該ウィンドウ内の前記中心画素を除く画素数を計数し、計数した前記画素数が所定の画素数しきい値未満であれば前記中心画素をノイズとして除去するノイズ除去部を有する
請求項１または請求項２記載の姿勢検出装置。
【請求項２１】
前記距離しきい値は、前記ウィンドウ内の前記中心画素ごとに設定され、当該中心画素が示す距離が大きいほど大きな値に設定される
請求項２０記載の姿勢検出装置。
【請求項２２】
前記人物領域決定部は、
前記座標計算部が計算した物体の座標の各々について、当該座標と当該座標の近傍の２つの座標とを含む面の法線ベクトルが、前記カメラの撮像面を含む平面である有効角度面と交わる場合に、当該座標を物体の座標である物体座標と判断し、前記法線ベクトルが前記有効角度面と交わらない場合に、当該座標を前記物体座標ではないと判断する物体座標判断部と、
三次元空間を各々が所定体積を有する複数のブロックに分割したときに、互いに隣接する、前記物体座標判断部が判断した物体座標を含むブロックのラベルが同一のラベルとなるように、前記複数のブロックの各々にラベル付けを行うラベリング処理部と、
前記ラベリング処理部がラベル付けを行なったラベルごとに、当該ラベルが付されたブロックの体積の合計値が前記体積しきい値以上の場合に、当該ラベルが付されたブロックを人物領域と決定する決定部とを有する
請求項１〜請求項２１のいずれか１項に記載の姿勢検出装置。
【請求項２３】
各画素における輝度値がカメラから物体までの距離を示す距離画像を撮像する距離画像カメラと、
請求項１〜請求項２２のいずれか１項に記載の姿勢検出装置とを備え、
距離画像取得部は、前記距離画像カメラから前記距離画像を取得する
距離検出システム。
【請求項２４】
各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する距離画像取得ステップと、
前記距離画像取得ステップにおいて取得された前記距離画像に基づいて、三次元空間中での物体の座標を計算する座標計算ステップと、
前記座標計算ステップにおいて計算された物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する人物領域決定ステップと、
前記人物領域決定ステップにおいて決定された前記人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する姿勢検出ステップと
を含む姿勢検出方法。
【請求項２５】
各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する距離画像取得ステップと、
前記距離画像取得ステップにおいて取得された前記距離画像に基づいて、三次元空間中での物体の座標を計算する座標計算ステップと、
前記座標計算ステップにおいて計算された物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する人物領域決定ステップと、
前記人物領域決定ステップにおいて決定された前記人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する姿勢検出ステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は人物の姿勢を検出する姿勢検出装置に関し、特に、物体までの距離を計測することができるカメラを用いて撮像された距離画像から人物の姿勢を検出する姿勢検出装置に関する。
【背景技術】
【０００２】
従来、人物の各関節位置にマーカーを設置し、各マーカーの三次元空間中の位置を三角測量の原理を用いて計測することにより人物の動きを計測するモーションキャプチャーシステムが知られている（例えば、特許文献１参照。）。
【０００３】
このシステムは、例えば、２台のカメラを用いて人物を撮影することにより２枚の画像データを得る。また、このシステムは、得られた画像データ間でマーカーの対応付けを行い、三角測量の原理を用いて各マーカーの三次元空間中の位置を計測する。さらに、このシステムは、三次元空間中での各マーカーの位置を追跡することにより人物の動きを計測する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３４５１６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のモーションキャプチャーシステムでは、人物の各関節位置にマーカーを設置しなければならないため、マーカーを設置する手間がかかるという問題がある。
【０００６】
また、姿勢を検出することができる人物がマーカーを設置した人物に限定されるという問題がある。
【０００７】
さらに、２枚の画像データ間でマーカーの対応付けを行う必要があるため、誤対応が生じやすく姿勢の検出精度が低いという問題がある。
【０００８】
本発明は、上述の問題点を解決するためになされたものであり、人物にマーカーを設置することなく、人物の姿勢を高精度で検出することができる姿勢検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のある局面に係る姿勢検出装置は、各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する距離画像取得部と、前記距離画像取得部が取得した前記距離画像に基づいて、三次元空間中での物体の座標を計算する座標計算部と、前記座標計算部が計算した物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する人物領域決定部と、前記人物領域決定部が決定した前記人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する姿勢検出部とを備える。
【００１０】
この構成によると、距離画像から得られる物体の座標に基づいて人物領域を決定し、その人物領域に骨格モデルを当てはめている。このため、人物にマーカーを設置することなく、人物の姿勢を高精度で検出することができる。
【００１１】
好ましくは、上述の姿勢検出装置は、さらに、身長ごとに骨格モデルを記憶している記憶部を備え、前記姿勢検出部は、前記人物領域の高さから前記被写体人物の身長を推定する身長推定部と、前記記憶部に記憶されている前記骨格モデルの中から、前記身長推定部で推定された前記身長に最も近い身長の骨格モデルを選択する選択部と、前記人物領域決定部で決定された前記人物領域に、前記選択部が選択した前記骨格モデルを当てはめることにより前記被写体人物の姿勢を検出する検出部とを有する。
【００１２】
この構成によると、被写体人物の身長に合致した骨格モデルを用いて被写体人物の姿勢を検出することができる。このため、被写体人物の身長が異なっていても人物の姿勢を高精度で検出することができる。
【００１３】
さらに好ましくは、前記身長推定部は、前記人物領域を正面から見た像である二次元の正面画像において水平方向の中心を通る高さ方向の軸を、前記被写体人物の水平方向の中心軸と決定する水平方向中心軸決定部と、前記人物領域を側面から見た像である二次元の側面画像において水平方向の中心を通る高さ方向の軸を、前記被写体人物の前後方向の中心軸と決定する前後方向中心軸決定部と、前記水平方向中心軸決定部および前記前後方向中心軸決定部がそれぞれ決定した前記被写体人物の水平方向および前後方向の中心軸に基づいて、前記被写体人物の中心軸を決定する被写体人物中心軸決定部と、前記被写体人物中心軸決定部が決定した前記被写体人物の中心軸上で最も高い位置にある前記人物領域の座標から地面までの距離を前記被写体人物の身長と推定する推定部とを有する。
【００１４】
この構成によると、被写体人物の水平方向の中心軸と前後方向の中心軸が求まると、各中心軸を通る平面の交線として被写体人物の中心軸を求めることができる。このため、被写体人物の中心軸を正確に求めることができる。被写体人物の中心軸を正確に求めることができると、被写体人物の身長を正確に推定することができる。
【００１５】
また、前記水平方向中心軸決定部は、前記正面画像において横軸が水平方向の座標を示し、縦軸が各水平方向の座標を有する前記人物領域の画素の度数を示す第１ヒストグラムを生成する第１ヒストグラム生成部と、前記第１ヒストグラム生成部が生成した前記第１ヒストグラムにおける最大度数を算出する第１最大度数算出部と、前記第１最大度数算出部が算出した前記最大度数に１未満の第１所定係数を掛けた値である第１積を算出する第１積算出部と、前記第１積算出部が算出した前記第１積以上の度数を有する水平方向の座標の最小値と最大値との平均値を水平方向の座標とする前記被写体人物の高さ方向の軸を、前記被写体の水平方向の中心軸と決定する第１軸決定部とを有してもよい。
【００１６】
例えば、被写体人物が手を挙げていると、その部分の画素数が大きくなるため、第１ヒストグラムにおいて手の部分の度数が大きくなってしまう。このため、最大度数をそのまま用いて水平方向の中心軸を決定すると、挙げた手の部分が中心軸になってしまう。しかし、この構成では、最大度数に１未満の第１所定係数を掛けた値である第１積を計算している。このため、第１積以上の度数を有する座標は、人物領域の胴付近の座標を示す。よって、第１積以上の度数を有する座標の最小値と最大値との平均値から水平方向の中心軸を決定することにより、正確に水平方向の中心軸を決定することができる。
【００１７】
また、前記前後方向中心軸決定部は、前記側面画像において横軸が前後方向の座標を示し、縦軸が各前後方向の座標を有する前記人物領域の画素の度数を示す第２ヒストグラムを生成する第２ヒストグラム生成部と、前記第２ヒストグラム生成部が生成した前記第２ヒストグラムにおける最大度数を算出する第２最大度数算出部と、前記第２最大度数算出部が算出した前記最大度数に１未満の第２所定係数を掛けた値である第２積を算出する第２積算出部と、前記第２積算出部が算出した前記第２積以上の度数を有する前後方向の座標の最小値と最大値との平均値を前後方向の座標とする前記被写体人物の高さ方向の軸を、前記被写体の前後方向の中心軸と決定する第２軸決定部とを有してもよい。
【００１８】
例えば、被写体人物が手を挙げていると、その部分の画素数が大きくなるため、第２ヒストグラムにおいて手の部分の度数が大きくなってしまう。このため、最大度数をそのまま用いて前後方向の中心軸を決定すると、挙げた手の部分が中心軸になってしまう。しかし、この構成では、最大度数に１未満の第２所定係数を掛けた値である第２積を計算している。このため、第２積以上の度数を有する座標は、人物領域の胴付近の座標を示す。よって、第２積以上の度数を有する座標の最小値と最大値との平均値から前後方向の中心軸を決定することにより、正確に前後方向の中心軸を決定することができる。
【００１９】
また、前記検出部は、前フレームの距離画像について決定された三次元空間中での頭部の位置と同じ位置から第１所定距離内に含まれる前記人物領域の座標のうち、高さ方向に最も高い位置の座標から高さ方向に第２所定距離下がった位置を含む所定範囲内の前記人物領域の平均座標を算出する平均座標算出部と、前記平均座標算出部が算出した前記人物領域の平均座標から高さ方向に前記第２所定距離上がった位置に、前記骨格モデルの頭部を当てはめる頭位置設定部とを有してもよい。
【００２０】
頭髪部分では拡散反射が起き易いため、距離の精度が悪い。しかし、この構成によると、前フレームの頭部の位置に近い位置から第２所定距離下がった位置の周辺において、人物領域の平均座標を算出し、平均座標から第２所定距離上がった位置を頭部の位置とすることができる。前フレームの頭部の位置に近い位置から第２所定距離下がった位置の周辺は人物の顔の位置と考えられ距離が正確に求められている。このため、平均座標は、正確な顔の位置を表している。よって、顔の位置を基準として正確に頭部の位置を算出することができる。
【００２１】
また、前記検出部は、さらに、前記頭位置設定部が設定した前記骨格モデルの頭部の位置を基準として、前記被写体人物中心軸決定部が決定した前記被写体人物の中心軸上に前記骨格モデルの腰部の位置を設定する腰位置設定部を有してもよい。
【００２２】
この構成によると、腰部が被写体人物の中心軸上にあると考えている。このため、頭部の位置を基準として腰部の位置を決定することができる。
【００２３】
また、前記検出部は、さらに、前記頭位置設定部が設定した前記骨格モデルの頭部の位置と前記腰位置設定部が設定した前記骨格モデルの腰部の位置とから前記被写体人物の傾き角度を算出する傾き角度算出部と、前記傾き角度算出部が算出した前記被写体人物の傾き角度に基づいて定められる首の曲がり角度だけ、前記骨格モデルの首の位置を前記被写体人物の傾きとは逆方向に傾ける首傾き設定部とを有してもよい。
【００２４】
この構成によると、被写体人物の傾きと逆方向に首を傾けるようにしている。このため、自然な首の傾きを推定することができる。
【００２５】
また、前記検出部は、さらに、当てはめた前記骨格モデルに基づいて、前記人物領域決定部が決定した前記人物領域から少なくとも頭および胴を除いた領域の外接矩形領域を取得する領域取得部と、前記領域取得部が取得した外接矩形領域のうち、前フレームの距離画像について右腕と判断されている外接矩形領域と重なり合いを有し、かつ前記骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという右腕移動条件を満たす外接矩形領域の位置に、前記被写体人物の右腕が移動したと判断し、当該位置に前記骨格モデルの右腕を当てはめる右腕移動判断部と、前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について左腕と判断されている外接矩形領域と重なり合いを有し、かつ前記骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという左腕移動条件を満たす外接矩形領域の位置に、前記被写体人物の左腕が移動したと判断し、当該位置に前記骨格モデルの左腕を当てはめる左腕移動判断部とを有してもよい。
【００２６】
この構成によると、前フレームにおいて右腕と判断されている外接矩形領域と重なっており、かつ、右肩位置を基準に右肘の稼動範囲と重なり合いを有する外接矩形領域については右腕の可能性が高いため、右腕と判断することができる。同様に左腕も判断することができる。
【００２７】
また、前記検出部は、さらに、前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について右腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、前記骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという右腕出現条件を満たす外接矩形領域の位置に、前記被写体人物の右腕が出現したと判断し、当該位置に前記骨格モデルの右腕を当てはめる右腕出現判断部と、前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について左腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、前記骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという左腕出現条件を満たす外接矩形領域の位置に、前記被写体人物の左腕が出現したと判断し、当該位置に前記骨格モデルの左腕を当てはめる左腕出現判断部とを有してもよい。
【００２８】
右腕出現判断部は、右腕以外の部分と判断されている部分と重なり合いを有していないという条件を満たすことをチェックすることにより、右腕以外の可能性がないということを判断している。このため、右腕出現判断部は、右腕以外の可能性がない外接矩形領域の中から右肘の稼動範囲との重なり部分の体積が最大となるものを決定することにより、右腕の出現を確実に判断することができる。同様に、左腕出現判断部は、左腕の出現を確実に判断することができる。
【００２９】
また、前記検出部は、さらに、前記前フレームの距離画像について前記被写体人物の右腕および左腕が出現していない場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕出現条件および前記左腕出現条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、前記被写体人物の両腕が結合していると判断し、当該位置に前記骨格モデルの両腕を結合した状態で当てはめる第１結合判断部を有してもよい。
【００３０】
前フレームで両腕が出現していないにもかかわらず、現フレームにおいて左腕出現条件および右腕出現条件を満たす外接矩形領域が存在する場合には、両手を繋いだ状態で両腕を被写体人物の前に出したと判断することができる。
【００３１】
また、前記検出部は、さらに、前記前フレームの距離画像について前記被写体人物の右腕および左腕が別個に出現している場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件および前記左腕移動条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、前記被写体人物の両腕が結合していると判断し、当該位置に前記骨格モデルの両腕を結合した状態で当てはめる第２結合判断部を有してもよい。
【００３２】
前フレームで両腕が別々に見えているにもかかわらず、現フレームにおいて左腕出現条件および右腕出現条件を満たす外接矩形領域が存在する場合には、離れていた両手を繋いだと判断することができる。
【００３３】
また、前記検出部は、さらに、前記前フレームの距離画像について前記被写体人物の両腕が結合している場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件を満たす外接矩形領域と前記左腕移動条件を満たす外接矩形領域とが別個に存在する場合には、前記被写体人物の両腕が分離して、前記右腕移動条件を満たす外接矩形領域の位置に前記被写体人物の右腕が移動したと判断し、当該位置に前記骨格モデルの右腕を当てはめ、前記左腕移動条件を満たす外接矩形領域の位置に前記被写体人物の左腕が移動したと判断し、当該位置に前記骨格モデルの左腕を当てはめる第１分離判断部を有してもよい。
【００３４】
前フレームで両腕が結合しているにもかかわらず、現フレームにおいて左腕出現条件を満たす外接矩形領域と右腕出現条件を満たす外接矩形領域とが別個に存在する場合には、繋いでいた両手が分離したと判断することができる。
【００３５】
また、前記検出部は、さらに、前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件を満たす外接矩形領域が存在しない場合には、前記被写体人物の右腕が消滅したと判断し、前記骨格モデルの右腕を所定右腕位置に移動させ、前記左腕移動条件を満たす外接矩形領域が存在しない場合には、前記被写体人物の左腕が消滅したと判断し、前記骨格モデルの左腕を所定左腕位置に移動させる消滅判断部を有してもよい。
【００３６】
右腕移動条件を満たす外接矩形領域が存在しない場合には、右腕が胴体にくっつけられたと判断でき、そのような位置に右腕を移動させることができる。左腕についても同様に胴体にくっついた位置に移動させることができる。
【００３７】
また、前記検出部は、さらに、右腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から前記骨格モデルにおける右肩から最も遠い位置を右手の位置と判断し、当該位置に前記骨格モデルの右手を当てはめる右手判断部と、左腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から前記骨格モデルにおける左肩から最も遠い位置を左手の位置と判断し、当該位置に前記骨格モデルの左手を当てはめる左手判断部とを有してもよい。
【００３８】
腕の領域の外接領域の上面、左面、右面および前面のいずれかに最も近い位置を手の先としており、下面および背面は考慮していない。被写体人物の輪郭部分においては、人物の下方向および後ろ方向にノイズが発生するためである。
【００３９】
また、前記検出部は、さらに、前記被写体人物の両腕が結合している場合において、前記両腕の先端から第３所定距離内に含まれる前記人物領域を正面から見た像である２次元の正面投影画像において、両腕が離れていれば前記被写体人物の両腕は分離していると判断し、前記骨格モデルの両腕を分離させる第２分離判断部を有してもよい。
【００４０】
両腕の先端部分のみを投影した正面投影画像を用いることより、両腕の先端部分以外の影響を受けることなく、両腕が分離しているか否かを正確に判断することができる。
【００４１】
また、前記検出部は、さらに、前記骨格モデルにおける恥骨部よりも下の位置において、当該恥骨部から前記人物領域の先端までの距離が、前記骨格モデルにおける脚の長さに対応する所定の長さしきい値よりも大きい場合に、前記人物領域の先端が前記被写体人物の脚の先端であると判断し、前記人物領域の先端に前記骨格モデルの脚の先端を当てはめる脚判断部を有してもよい。
【００４２】
人物の脚の先端は通常恥骨部よりも下の位置にあると考えられるため、恥骨部よりも下の位置から脚の先端を求めることにより、正確に脚の先端を求めることができる。
【００４３】
また、前記検出部は、さらに、前記骨格モデルにおいて恥骨部を基準として膝となり得る距離に存在する前記人物領域の座標のうち、最も高さが高い座標に前記被写体人物の膝があると判断し、前記最も高さが高い座標に前記骨格モデルの膝部を当てはめる膝判断部を有してもよい。
【００４４】
恥骨部を基準とすると膝の候補領域を絞ることができる。このため、候補領域の中で最も高い位置に膝があると判断することにより、正確に膝の位置を判断することができる。
【００４５】
また、前記検出部は、さらに、現フレームにおいて当てはめた骨格モデルの各座標を、当該座標と当該座標に対応する前フレームの距離画像における骨格モデルの座標との間の距離が大きいほど前記現フレームの座標に近づき、かつ前記距離が小さいほど前記前フレームの座標に近づくような、前記現フレームの座標と前記前フレームの座標との間の座標に補正する補正部を有してもよい。
【００４６】
このように骨格モデルの各座標を補正することにより、関節位置が急激に動いたほど、現フレームの座標に近づくような補正後の座標が得られ、関節位置がゆっくりと動いたほど、前フレームの座標に近づくような補正後の座標が得られる。よって、滑らかな骨格モデルの動きが得られる。
【００４７】
また、前記距離画像取得部は、取得した前記距離画像上で所定サイズのウィンドウを走査し、当該ウィンドウ内の中心画素が示す距離との距離の差が所定の距離しきい値以下となる当該ウィンドウ内の前記中心画素を除く画素数を計数し、計数した前記画素数が所定の画素数しきい値未満であれば前記中心画素をノイズとして除去するノイズ除去部を有してもよい。
【００４８】
人物領域においては近傍の画素同士は似たような距離を有すると考えられる。このため、中心画素の近傍に、中心画素の距離と似ている画素が少なければノイズと判断することができる。
【００４９】
また、前記距離しきい値は、前記ウィンドウ内の前記中心画素ごとに設定され、当該中心画素が示す距離が大きいほど大きな値に設定されてもよい。
【００５０】
カメラに近い位置では距離の分解能が高く、遠い位置では距離の分解能が低い。このため、中心画素が示す距離に応じて距離しきい値を設定することにより、距離の分解能に依存することなくノイズを判断することができる。
【００５１】
また、前記人物領域決定部は、前記座標計算部が計算した物体の座標の各々について、当該座標と当該座標の近傍の２つの座標とを含む面の法線ベクトルが、前記カメラの撮像面を含む平面である有効角度面と交わる場合に、当該座標を物体の座標である物体座標と判断し、前記法線ベクトルが前記有効角度面と交わらない場合に、当該座標を前記物体座標ではないと判断する物体座標判断部と、三次元空間を各々が所定体積を有する複数のブロックに分割したときに、互いに隣接する、前記物体座標判断部が判断した物体座標を含むブロックのラベルが同一のラベルとなるように、前記複数のブロックの各々にラベル付けを行うラベリング処理部と、前記ラベリング処理部がラベル付けを行なったラベルごとに、当該ラベルが付されたブロックの体積の合計値が前記体積しきい値以上の場合に、当該ラベルが付されたブロックを人物領域と決定する決定部とを有してもよい。
【００５２】
上記法線ベクトルが有効角度面と交わっている場合には、法線ベクトルがカメラの方向を向いていると判断することができる。法線ベクトルがカメラの方向を向いている面は、物体の面の一部であると考えることができるため、座標計算部が計算した物体の座標が正確に物体座標であるか否かを判断することができる。
【００５３】
なお、本発明は、このような特徴的な処理部を備える姿勢検出装置として実現することができるだけでなく、姿勢検出装置に含まれる特徴的な処理部が実行する処理をステップとする姿勢検出方法として実現することができる。また、姿勢検出装置に含まれる特徴的な処理部としてコンピュータを機能させるためのプログラムまたは姿勢検出方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのようなプログラムを、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）等のコンピュータ読取可能な非一時的な記録媒体やインターネット等の通信ネットワークを介して流通させることができるのは、言うまでもない。また、姿勢検出装置と距離画像カメラとを備える姿勢検出システムとして実現することもできる。
【発明の効果】
【００５４】
本発明によると、人物にマーカーを設置することなく、人物の姿勢を高精度で検出することができる。
【図面の簡単な説明】
【００５５】
【図１】姿勢検出装置を含む姿勢検出システムの利用シーンを説明するための図である。
【図２】距離画像カメラの概観図である。
【図３】距離画像カメラによる距離計測の原理を説明するための図である。
【図４】（ａ）は、通常のカメラを用いて被写体を撮影した画像の一例を示す図である。（ｂ）は、（ａ）と同一位置を撮影した距離画像の一例を示す図である。
【図５】本発明の実施の形態に係る姿勢検出装置の構成を示すブロック図である。
【図６】骨格モデルの一例を示す図である。
【図７】人物領域決定部の構成を示すブロック図である。
【図８】姿勢検出部の構成を示すブロック図である。
【図９】身長推定部の構成を示すブロック図である。
【図１０】水平方向中心軸決定部の構成を示すブロック図である。
【図１１】前後方向中心軸決定部の構成を示すブロック図である。
【図１２】検出部の構成を示すブロック図である。
【図１３】姿勢検出処理の全体的な流れを示すフローチャートである。
【図１４】座標計算処理（図１３のＳ１）の詳細なフローチャートである。
【図１５】距離画像カメラの撮像範囲内の人物検出エリアを示す図である。
【図１６】ノイズ除去処理（図１４のＳ１１）の詳細なフローチャートである。
【図１７】（ａ）は距離画像の一例を示す図である。（ｂ）はノイズとして除去された画素位置を白い点で示した画像を示す図である。
【図１８】人物の輪郭部分に発生するノイズについて説明するための図である。（ａ）、（ｂ）および（ｃ）は、図４（ｂ）に示した距離画像から得られる三次元空間中の座標位置を、人物の正面、側面、上面からそれぞれ見た図である。
【図１９】人物領域決定処理（図１３のＳ２）の詳細なフローチャートである。
【図２０】距離画像カメラが人物を撮像している状態を示す図である。
【図２１】距離画像カメラと三次元空間中に存在する座標計算部が計算した物体の座標との関係を示す図である。
【図２２】着目している座標が物体座標かノイズ座標かを判断する方法を説明するための図である。
【図２３】三角パッチを生成する方法を説明するための図である。
【図２４】有効角度面を説明するための図である。
【図２５】法線ベクトルによる人物領域決定処理（図１９のＳ２１）の詳細なフローチャートである。
【図２６】法線ベクトルによる人物領域決定処理（図２５）の結果の一例を示す図である。（ａ）は、法線ベクトルによる人物領域決定処理前の画像を示す図である。（ｂ）は、Ｓ２１５の処理後の画像を示す図である。（ｃ）は、最終的な人物領域の画像を示す図である。
【図２７】姿勢検出処理（図１３のＳ３）の前半の詳細なフローチャートである。
【図２８】（ａ）は、被写体人物を通常のカメラで撮像した画像の一例を示す図である。（ｂ）は、（ａ）に示す画像に対応する人物領域の側面画像の図である。（ｃ）は、（ａ）に示す画像に対応する人物領域の正面画像の図である。
【図２９】身長推定処理（図２７のＳ３４）の詳細なフローチャートである。
【図３０】身長推定処理を説明するための図である。（ａ）は、正面画像の一例を示す図である。（ｂ）は、第１ヒストグラム生成部が（ａ）の正面画像から生成したヒストグラムの一例を示す図である。
【図３１】姿勢検出処理（図１３のＳ３）の後半の詳細なフローチャートである。
【図３２】頭部位置設定処理（図３１のＳ４２）の詳細なフローチャートである。
【図３３】頭部位置設定処理を説明するための図である。
【図３４】四肢の外接矩形領域を取得する処理（図３１のＳ４６）を説明するための図である。
【図３５】（１）移動、（２）出現、（３）結合、（４）分離および（５）消滅の５つの状態の判断処理の実行の可否の判断基準を示すフローチャートである。
【図３６】右手判断部または左手判断部による手の先の位置判定処理を説明するための図である。
【図３７】第２分離判断部による手の先の位置判定処理を説明するための図である。（ａ）は、被写体人物を撮像した画像の一例を示す図である。（ｂ）は、（ａ）の画像に対応する距離画像を示す図である。（ｃ）は、（ｂ）の距離画像に基づいて得られる両腕の先端から第３所定距離内に含まれる人物領域の正面投影画像を示す図である。（ｄ）は、被写体人物を撮像した画像の一例を示す図である。（ｅ）は、（ｄ）の画像に対応する距離画像を示す図である。（ｆ）は、（ｅ）の距離画像に基づいて得られる両腕の先端から第３所定距離内に含まれる人物領域の正面投影画像を示す図である。
【図３８】肘の候補領域を説明するための図である。
【図３９】肘の位置判定処理を説明するための図である。
【図４０】脚の先端の当てはめ処理を説明するための図である。
【図４１】膝の当てはめ処理を説明するための図である。
【図４２】上がっている膝と膝の上がり角度の判定処理を説明するための図である。
【図４３】骨格モデルの各関節の座標の補正処理を説明するための図である。
【発明を実施するための形態】
【００５６】
以下、本発明の実施の形態に係る姿勢検出装置について図面を参照しながら説明する。
図１は、姿勢検出装置を含む姿勢検出システムの利用シーンを説明するための図である。
【００５７】
姿勢検出システムは、姿勢検出装置１００と、距離画像カメラ２００とを含む。姿勢検出装置１００は、被写体までの距離を計測し、距離画像を撮像することができる距離画像カメラ２００に接続され、距離画像カメラ２００より距離画像を取得する。姿勢検出装置１００は、取得した距離画像から被写体となる人物３００の姿勢を検出する。距離画像カメラ２００は地面に平行な面に対して一定の煽り角θだけ傾けられ、上方から地面を撮影可能な位置に配置されている。なお、姿勢検出装置１００は、典型的にはＣＰＵおよびメモリを備えるコンピュータにより実現され、後述する各種処理を実現するためのプログラムをＣＰＵ上で動作することにより、姿勢検出装置１００としての機能を果たす。
【００５８】
なお、姿勢検出システムにおいて、距離画像カメラ２００の撮像領域３１０内には、机３０２や椅子等の障害物は含まれないものとする。また、距離画像カメラ２００の真下の地面上の点を原点Ｏ（０，０，０）とし、水平方向をｘ軸方向、高さ方向をｙ軸方向、奥行き方向をｚ軸方向とする。以下では、原点Ｏ、ｘ軸、ｙ軸およびｚ軸で三次元座標系を規定する。
【００５９】
図２は、距離画像カメラ２００の概観図である。
距離画像カメラ２００は、その前面に規則的に配置された複数のＬＥＤ（Light Emitting Diode）２０２と、レンズ２０４とを含む。ＬＥＤ２０２からは被写体に向かって光が照射され、その反射光がレンズ２０４に集光される。
【００６０】
図３は、距離画像カメラ２００による距離計測の原理を説明するための図である。
複数のＬＥＤ２０２から一斉に照射された光は、被写体（例えば、人物３００）で反射され、反射された光がレンズ２０４によって集光される。この時、ＬＥＤ２０２から光が出射してからレンズ２０４へ反射光が到達するまでの時間は被写体の位置により異なる。つまり、被写体が距離画像カメラ２００に近いほど反射光の到達時間は短くなり、被写体が距離画像カメラ２００に遠いほど反射光の到達時間は長くなる。距離画像カメラ２００は、到達時間を画素ごとに計測することによって、被写体までの距離を画素ごとに出力する。つまり、距離画像カメラ２００は、被写体までの距離を画素における輝度値で表した距離画像を出力する。図４（ａ）は、通常のカメラを用いて被写体を撮影した画像の一例を示す図である。図４（ａ）に示すように、画像は、被写体として二人の人物を含むものとする。図４（ｂ）は、図４（ａ）と同一位置を撮影した距離画像の一例を示す図である。距離画像では、距離画像カメラ２００までの距離が近いものほど輝度値が小さく（輝度が暗く）、距離が遠いものほど輝度値が大きい（輝度が明るい）ものとする。図４（ｂ）に示すように前側の人物の方が後ろ側の人物よりも輝度値が小さくなっていることが分かる。
【００６１】
以下では、姿勢検出装置の構成について説明し、その後、姿勢検出装置が実行する処理を説明する。
【００６２】
図５は、本発明の実施の形態に係る姿勢検出装置の構成を示すブロック図である。
姿勢検出装置１００は、距離画像取得部１０と、座標計算部２０と、人物領域決定部３０と、姿勢検出部４０と、記憶部５０とを含む。
【００６３】
距離画像取得部１０は、各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する。例えば、距離画像取得部１０は、距離画像カメラ２００で得られた画像をネットワークまたは記録媒体を介して取得するインタフェースである。
【００６４】
距離画像取得部１０は、ノイズ除去部１１を含む。
ノイズ除去部１１は、取得した距離画像上で所定サイズのウィンドウを走査し、当該ウィンドウ内の中心画素が示す距離との距離の差が所定の距離しきい値以下となる当該ウィンドウ内の前記中心画素を除く画素数を計数し、計数した前記画素数が所定の画素数しきい値未満であれば中心画素をノイズとして除去する。
【００６５】
距離しきい値は、ウィンドウ内の中心画素ごとに設定され、当該中心画素が示す距離が大きいほど大きな値に設定される。
【００６６】
座標計算部２０は、距離画像取得部１０が取得した距離画像に基づいて、三次元空間中での物体の座標を計算する。つまり、座標計算部２０は、距離画像カメラ２００の地面からの高さおよび煽り角θに基づいて、距離画像より得られる距離画像カメラ２００から被写体までの距離データをアフィン変換することにより、図１で説明した三次元座標系上（三次元空間中）での物体の三次元座標を計算する。
【００６７】
人物領域決定部３０は、座標計算部２０が計算した物体の座標（人物領域の候補座標）に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する。つまり、小さい体積の物体領域をノイズとして除去する。人物領域決定部３０の詳細な構成については後述する。
【００６８】
姿勢検出部４０は、人物領域決定部３０が決定した人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する。つまり、姿勢検出部４０は、人物領域決定部３０が決定した人物領域にフィットするように骨格モデルを移動させる。姿勢検出部４０の詳細な構成については後述する。
【００６９】
図６は、骨格モデルの一例を示す図である。骨格モデル５００は、関節モデルと、関節モデル間を接続する骨モデルとから構成される。関節モデルは、頭部５０１と、首部５０２と、右肩部５０３と、右肘部５０４と、右手部５０５と、左肩部５０６と、左肘部５０７と、左手部５０８と、腰部５０９と、右恥骨部５１０と、右膝部５１１と、右足部５１２と、左恥骨部５１３と、左膝部５１４と、左足部５１５とを含む。
【００７０】
記憶部５０は、身長ごとに骨格モデルを記憶している。例えば、身長５ｃｍ間隔で骨格モデルを記憶している。
【００７１】
図７は、人物領域決定部３０の構成を示すブロック図である。
人物領域決定部３０は、物体座標判断部３１と、ラベリング処理部３２と、決定部３３とを含む。
【００７２】
物体座標判断部３１は、座標計算部２０が計算した物体の座標の各々について、当該座標と当該座標の近傍の２つの座標とを含む面の法線ベクトルが、距離画像カメラ２００の撮像面を含む平面である有効角度面と交わる場合に、当該座標を物体の座標である物体座標と判断し、法線ベクトルが有効角度面と交わらない場合に、当該座標を物体座標ではないと判断する。この処理により、物体座標判断部３１はノイズの除去を行う。
【００７３】
ラベリング処理部３２は、三次元空間を各々が所定体積を有する複数のブロックに分割したときに、互いに隣接する、物体座標判断部３１が判断した物体座標を含むブロックのラベルが同一のラベルとなるように、前記複数のブロックの各々にラベル付けを行う。三次元空間を複数のブロックへの分割は、例えば、三次元空間をｘ軸方向、ｙ軸方向およびｚ軸方向にそれぞれ等間隔で区切ることにより行われる。
【００７４】
決定部３３は、ラベリング処理部３２がラベル付けを行なったラベルごとに、当該ラベルが付されたブロックの体積の合計値が体積しきい値以上の場合に、当該ラベルが付されたブロックを人物領域と決定する。つまり、決定部３３は、人物の体積に相当する体積を有するブロックを人物領域と決定する。
【００７５】
図８は、姿勢検出部４０の構成を示すブロック図である。
姿勢検出部４０は、身長推定部４１と、選択部４２と、検出部４３とを含む。
【００７６】
身長推定部４１は、人物領域の高さから被写体人物の身長を推定する。身長推定部４１の詳細な構成については後述する。
【００７７】
選択部４２は、記憶部５０に記憶されている骨格モデルの中から、身長推定部４１で推定された身長に最も近い身長の骨格モデルを選択する。
【００７８】
検出部４３は、人物領域決定部３０で決定された人物領域に、選択部４２が選択した骨格モデルを当てはめることにより被写体人物の姿勢を検出する。検出部４３の詳細な構成については後述する。
【００７９】
図９は、身長推定部４１の構成を示すブロック図である。
身長推定部４１は、水平方向中心軸決定部４１１と、前後方向中心軸決定部４１２と、被写体人物中心軸決定部４１３と、推定部４１４とを含む。
【００８０】
水平方向中心軸決定部４１１は、人物領域を正面から見た像である二次元の正面画像において水平方向の中心を通る高さ方向の軸を、被写体人物の水平方向の中心軸と決定する。水平方向中心軸決定部４１１の詳細な構成については後述する。
【００８１】
前後方向中心軸決定部４１２は、人物領域を側面から見た像である二次元の側面画像において水平方向の中心を通る高さ方向の軸を、被写体人物の前後方向の中心軸と決定する。前後方向中心軸決定部４１２の詳細な構成については後述する。
【００８２】
被写体人物中心軸決定部４１３は、水平方向中心軸決定部４１１および前後方向中心軸決定部４１２がそれぞれ決定した被写体人物の水平方向および前後方向の中心軸に基づいて、被写体人物の中心軸を決定する。
【００８３】
推定部４１４は、被写体人物中心軸決定部４１３が決定した被写体人物の中心軸上で最も高い位置にある人物領域の座標から地面までの距離を被写体人物の身長と推定する。
【００８４】
図１０は、水平方向中心軸決定部４１１の構成を示すブロック図である。
水平方向中心軸決定部４１１は、第１ヒストグラム生成部４１１１と、第１最大度数算出部４１１２と、第１積算出部４１１３と、第１軸決定部４１１４とを含む。
【００８５】
第１ヒストグラム生成部４１１１は、正面画像において横軸が水平方向の座標を示し、縦軸が各水平方向の座標を有する人物領域の画素の度数を示す第１ヒストグラムを生成する。
【００８６】
第１最大度数算出部４１１２は、第１ヒストグラム生成部４１１１が生成した第１ヒストグラムにおける最大度数を算出する。
【００８７】
第１積算出部４１１３は、第１最大度数算出部４１１２が算出した最大度数に１未満の第１所定係数を掛けた値である第１積を算出する。
【００８８】
第１軸決定部４１１４は、第１積算出部４１１３が算出した第１積以上の度数を有する水平方向の座標の最小値と最大値との平均値を水平方向の座標とする被写体人物の高さ方向の軸を、被写体の水平方向の中心軸と決定する。
【００８９】
図１１は、前後方向中心軸決定部４１２の構成を示すブロック図である。
前後方向中心軸決定部４１２は、第２ヒストグラム生成部４１２１と、第２最大度数算出部４１２２と、第２積算出部４１２３と、第２軸決定部４１２４とを含む。
【００９０】
第２ヒストグラム生成部４１２１は、側面画像において横軸が前後方向の座標を示し、縦軸が各前後方向の座標を有する人物領域の画素の度数を示す。
【００９１】
第２最大度数算出部４１２２は、第２ヒストグラム生成部４１２１が生成した第２ヒストグラムにおける最大度数を算出する。
【００９２】
第２積算出部４１２３は、第２最大度数算出部４１２２が算出した最大度数に１未満の第２所定係数を掛けた値である第２積を算出する。
【００９３】
第２軸決定部４１２４は、第２積算出部４１２３が算出した第２積以上の度数を有する前後方向の座標の最小値と最大値との平均値を前後方向の座標とする被写体人物の高さ方向の軸を、被写体の前後方向の中心軸と決定する。
【００９４】
図１２は、検出部４３の構成を示すブロック図である。
検出部４３は、平均座標算出部４３１と、頭位置設定部４３２と、腰位置設定部４３３と、傾き角度算出部４３４と、首傾き設定部４３５と、領域取得部４３６と、右腕移動判断部４３７と、左腕移動判断部４３８と、右腕出現判断部４３９と、左腕出現判断部４４０と、第１結合判断部４４１と、第２結合判断部４４２と、第１分離判断部４４３と、消滅判断部４４４と、右手判断部４４５と、左手判断部４４６と、第２分離判断部４４７と、脚判断部４４８と、膝判断部４４９と、補正部４５０とを含む。
【００９５】
平均座標算出部４３１は、前フレームの距離画像について決定された三次元空間中での頭部の位置と同じ位置から第１所定距離内に含まれる人物領域の座標のうち、高さ方向に最も高い位置の座標から高さ方向に第２所定距離下がった位置を含む所定範囲内の人物領域の平均座標を算出する。なお、距離画像はフレームごとに出力されることにより、動画像を形成する。また、前フレームとは、典型的には１フレーム前であるが、２フレーム以上前であってもよい。
【００９６】
頭位置設定部４３２は、平均座標算出部４３１が算出した人物領域の平均座標から高さ方向に第２所定距離上がった位置に、骨格モデルの頭部を当てはめる。
【００９７】
腰位置設定部４３３は、頭位置設定部４３２が設定した骨格モデルの頭部の位置を基準として、被写体人物中心軸決定部４１３が決定した被写体人物の中心軸上に骨格モデルの腰部の位置を設定する。
【００９８】
傾き角度算出部４３４は、頭位置設定部４３２が設定した骨格モデルの頭部の位置と腰位置設定部が設定した骨格モデルの腰部の位置とから被写体人物の傾き角度を算出する。
【００９９】
首傾き設定部４３５は、傾き角度算出部が算出した被写体人物の傾き角度に基づいて定められる首の曲がり角度だけ、骨格モデルの首の位置を前記被写体人物の傾きとは逆方向に傾ける。
【０１００】
領域取得部４３６は、当てはめた骨格モデルに基づいて、人物領域決定部３０が決定した人物領域から少なくとも頭および胴を除いた領域の外接矩形領域を取得する。
【０１０１】
右腕移動判断部４３７は、前フレームから現フレームの間に右腕が移動したか否かを判断する。つまり、右腕移動判断部４３７は、領域取得部が取得した外接矩形領域のうち、前フレームの距離画像について右腕と判断されている外接矩形領域と重なり合いを有し、かつ骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという右腕移動条件を満たす外接矩形領域の位置に、被写体人物の右腕が移動したと判断し、当該位置に骨格モデルの右腕を当てはめる。
【０１０２】
左腕移動判断部４３８は、前フレームから現フレームの間に左腕が移動したか否かを判断する。つまり、左腕移動判断部４３８は、領域取得部４３６が取得した外接矩形領域のうち、前フレームの距離画像について左腕と判断されている外接矩形領域と重なり合いを有し、かつ骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという左腕移動条件を満たす外接矩形領域の位置に、被写体人物の左腕が移動したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【０１０３】
右腕出現判断部４３９は、前フレームで出現していなかった右腕が現フレームにおいて出現したか否かを判断する。つまり、右腕出現判断部４３９は、領域取得部４３６が取得した外接矩形領域のうち、前フレームの距離画像について右腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという右腕出現条件を満たす外接矩形領域の位置に、被写体人物の右腕が出現したと判断し、当該位置に骨格モデルの右腕を当てはめる。
【０１０４】
左腕出現判断部４４０は、前フレームで出現していなかった左腕が現フレームにおいて出現したか否かを判断する。つまり、左腕出現判断部４４０は、領域取得部４３６が取得した外接矩形領域のうち、前フレームの距離画像について左腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという左腕出現条件を満たす外接矩形領域の位置に、被写体人物の左腕が出現したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【０１０５】
第１結合判断部４４１は、前フレームの距離画像について被写体人物の右腕および左腕が出現していない場合において、領域取得部４３６が取得した外接矩形領域のうち、右腕出現条件および左腕出現条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、被写体人物の両腕が結合していると判断し、当該位置に骨格モデルの両腕を結合した状態で当てはめる。
【０１０６】
第２結合判断部４４２は、前フレームの距離画像について被写体人物の右腕および左腕が別個に出現している場合において、領域取得部４３６が取得した外接矩形領域のうち、右腕移動条件および左腕移動条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、被写体人物の両腕が結合していると判断し、当該位置に骨格モデルの両腕を結合した状態で当てはめる。
【０１０７】
第１分離判断部４４３は、前フレームで結合していた両腕が現フレームで分離したか否かを判断する。つまり、第１分離判断部４４３は、前フレームの距離画像について被写体人物の両腕が結合している場合において、領域取得部４３６が取得した外接矩形領域のうち、右腕移動条件を満たす外接矩形領域と左腕移動条件を満たす外接矩形領域とが別個に存在する場合には、被写体人物の両腕が分離して、右腕移動条件を満たす外接矩形領域の位置に被写体人物の右腕が移動したと判断し、当該位置に骨格モデルの右腕を当てはめ、左腕移動条件を満たす外接矩形領域の位置に被写体人物の左腕が移動したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【０１０８】
消滅判断部４４４は、領域取得部４３６が取得した外接矩形領域のうち、右腕移動条件を満たす外接矩形領域が存在しない場合には、被写体人物の右腕が消滅したと判断し、骨格モデルの右腕を所定右腕位置に移動させ、左腕移動条件を満たす外接矩形領域が存在しない場合には、被写体人物の左腕が消滅したと判断し、骨格モデルの左腕を所定左腕位置に移動させる。
【０１０９】
右手判断部４４５は、右腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から骨格モデルにおける右肩から最も遠い位置を右手の位置と判断し、当該位置に骨格モデルの右手を当てはめる。
【０１１０】
左手判断部４４６は、左腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から骨格モデルにおける左肩から最も遠い位置を左手の位置と判断し、当該位置に骨格モデルの左手を当てはめる。
【０１１１】
第２分離判断部４４７は、結合していると判断された両腕が本当に結合しているかを再度判断する。つまり、第２分離判断部４４７は、被写体人物の両腕が結合している場合において、両腕の先端から第３所定距離内に含まれる人物領域を正面から見た像である２次元の正面投影画像において、両腕が離れていれば被写体人物の両腕は分離していると判断し、骨格モデルの両腕を分離させる。
【０１１２】
脚判断部４４８は、骨格モデルにおける恥骨部よりも下の位置において、当該恥骨部から人物領域の先端までの距離が、骨格モデルにおける脚の長さに対応する所定の長さしきい値よりも大きい場合に、人物領域の先端が被写体人物の脚の先端であると判断し、人物領域の先端に骨格モデルの脚の先端を当てはめる。
【０１１３】
膝判断部４４９は、骨格モデルにおいて恥骨部を基準として膝となり得る距離に存在する人物領域の座標のうち、最も高さが高い座標に被写体人物の膝があると判断し、最も高さが高い座標に骨格モデルの膝部を当てはめる。
【０１１４】
補正部４５０は、現フレームにおいて当てはめた骨格モデルの各座標を、当該座標と当該座標に対応する前フレームの距離画像における骨格モデルの座標との間の距離が大きいほど現フレームの座標に近づき、かつ距離が小さいほど前フレームの座標に近づくような、現フレームの座標と前フレームの座標との間の座標に補正する。
【０１１５】
次に、姿勢検出装置１００が実行する姿勢検出処理について説明する。
図１３は、姿勢検出処理の全体的な流れを示すフローチャートである。
【０１１６】
距離画像取得部１０は、各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する。また、座標計算部２０は、距離画像取得部１０が取得した距離画像に基づいて、三次元空間中での物体の座標を計算する（Ｓ１）。座標計算処理（Ｓ１）の詳細については後述する。
【０１１７】
人物領域決定部３０は、座標計算部２０が計算した物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する（Ｓ２）。つまり、小さい体積の物体領域をノイズとして除去する。人物領域決定処理（Ｓ２）の詳細については後述する。
【０１１８】
姿勢検出部４０は、人物領域決定部３０が決定した人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する（Ｓ３）。つまり、姿勢検出部４０は、人物領域決定部３０が決定した人物領域にフィットするように骨格モデルを移動させる。姿勢検出処理（Ｓ３）は、Ｓ２の処理で決定された人物領域ごとに実行される。なお、姿勢検出処理（Ｓ３）の詳細については後述する。
【０１１９】
図１４は、座標計算処理（図１３のＳ１）の詳細なフローチャートである。
ノイズ除去部１１は、距離画像取得部１０が取得した距離画像の中からノイズを除去する（Ｓ１１）。ノイズ除去処理（Ｓ１１）の詳細については後述する。
【０１２０】
座標計算部２０は、距離画像カメラ２００の地面からの高さおよび煽り角θに基づいて、距離画像より得られる距離画像カメラ２００から被写体までの距離データをアフィン変換することにより、図１で説明した三次元座標系上（三次元空間中）での物体の三次元座標を計算する（Ｓ１２）。
【０１２１】
座標計算部２０は、三次元空間中に設定されている人物検出エリア内の座標を選択する（Ｓ１３）例えば、図１５に示すように、距離画像カメラ２００の撮像範囲内に人物検出エリア３１１が予め設定されているものとし、座標計算部２０は、人物検出エリア３１１内の座標のみを人物領域の候補座標（物体の座標）として選択する。
【０１２２】
図１６は、ノイズ除去処理（図１４のＳ１１）の詳細なフローチャートである。
ノイズ除去処理は、距離画像上の各画素について行なわれる。ただし、距離画像の上下左右の１画素分の端部については、すべてノイズと判断し、処理の対象から除かれる。
【０１２３】
ノイズ除去部１１は、取得した距離画像上で所定サイズ（本実施の形態では３×３）のウィンドウを走査し、当該ウィンドウ内の中心画素について以下に説明するＳ１１１〜Ｓ１１４の処理を実行する。
【０１２４】
つまり、ノイズ除去部１１は、中心画素における輝度値（すなわち、中心画素が示す距離）に応じて、距離しきい値を設定する（Ｓ１１１）。距離しきい値は、ウィンドウ内の中心画素ごとに設定され、当該中心画素が示す距離が大きいほど大きな値に設定される。
【０１２５】
ノイズ除去部１１は、当該ウィンドウ内の中心画素が示す距離との距離の差が距離しきい値以下となる当該ウィンドウ内の前記中心画素を除く画素数を計数する（Ｓ１１２）。つまり、ノイズ除去部１１は、中心画素が示す距離と中心画素の８近傍のそれぞれの画素が示す距離との差と距離しきい値とを比較し、８近傍の画素のうち、差が距離しきい値以下となる画素数を計数する（Ｓ１１２）。
【０１２６】
ノイズ除去部１１は、計数した画素数が所定の画素数しきい値（例えば、３）未満であるか否かを判断し（Ｓ１１３）、上記画素数が画素数しきい値未満であれば（Ｓ１１３でＹＥＳ）、中心画素をノイズと判断する（Ｓ１１４）。
【０１２７】
図１７（ａ）は距離画像の一例を示し、一人の人物が撮像されている。図１７（ｂ）は、ノイズとして除去された画素位置を白い点で示した画像を示す。図１７（ｂ）の画像からも分かるように、人物の輪郭部分がノイズと判断されている。なぜならば、人物と背景との間には距離のギャップが存在し、輪郭部分においては距離が安定しない。このため、輪郭部分の画素がノイズと判断される。
【０１２８】
このように、人物領域においては近傍の画素同士は似たような距離を有すると考えられる。このため、中心画素の近傍に、中心画素の距離と似ている画素が少なければノイズと判断することができる。
【０１２９】
また、カメラに近い位置では距離の分解能が高く、遠い位置では距離の分解能が低い。このため、中心画素が示す距離に応じて距離しきい値を設定することにより、距離の分解能に依存することなくノイズを判断することができる。
【０１３０】
図１８は、人物の輪郭部分に発生するノイズについて説明するための図である。
図１８（ａ）、図１８（ｂ）および図１８（ｃ）は、図４（ｂ）に示した距離画像から得られる三次元空間中の座標位置を、人物の正面、側面、上面からそれぞれ見た図である。図１８（ａ）〜図１８（ｃ）からも分かるように人物の輪郭部分においては、人物の後ろ方向および下方向にも座標位置が示されており、これらが人物の輪郭部分に発生するノイズである。
【０１３１】
図１９は、人物領域決定処理（図１３のＳ２）の詳細なフローチャートである。
人物領域決定部３０は、座標計算部２０が計算した物体の座標（人物領域の候補座標）に基づいて、三次元空間中の各座標が物体の座標を示す物体座標であるか否かを、当該座標と当該座標の近傍の２つの座標とを含む面の法線ベクトルに基づいて判断し、物体座標を含むブロックにラベリングを施し、三次元空間中で所定の体積しきい値以上の体積を占める同一ラベルが付された物体の領域である人物領域を決定する（Ｓ２１）。法線ベクトルによる人物領域決定処理（Ｓ２１）の詳細については後述する。
【０１３２】
人物領域決定部３０は、ラベルが付された人物領域のそれぞれについて以下に説明するＳ２２およびＳ２３の処理を実行する。つまり、人物領域決定部３０は、着目人物領域と前フレームの距離画像から求められた人物領域との三次元空間中の位置を比較し、最も近い位置に存在する前フレームの人物領域に割り当てられたのと同一のラベルを着目人物領域に割り当てる（Ｓ２２）。これにより、フレーム間に渡る人物の追跡を行うことができる。
【０１３３】
人物領域決定部３０は、Ｓ２１の処理において、体積しきい値未満の体積を占める同一ラベルが付された物体の領域（人物以外の領域）について、着目人物領域との統合の可否を判断する（Ｓ２３）。つまり、着目人物領域の前側、上側または下側に位置し、所定の統合距離しきい値以内の距離にある人物以外の領域について、着目人物領域と同一のラベル割り当てることにより、着目人物領域の一部と判断する。この処理により、何らかの影響により途切れている人物領域をつなぎ合わせることができる。
【０１３４】
次に、法線ベクトルによる人物領域決定処理（図１９のＳ２１）について説明する。具体的な処理の説明に入る前に、三次元空間中の各座標が、物体の座標である物体座標であるか、ノイズの座標であるノイズ座標であるかを判断する判断方法の原理について説明する。
【０１３５】
図２０に示すように距離画像カメラ２００が人物３００を撮像しているものとする。
距離画像カメラ２００は、赤外線光を照射してから、照射した赤外線光の物体での反射光を受光するまでの時間を距離に変換する。これにより、距離画像カメラ２００は距離画像を作成する。しかし、距離画像カメラ２００の視野内であっても、物体までの距離が大きく反射光を受光するまでの時間が大きい場合や、赤外線光が届かない位置に物体がある場合には、正確な距離を取得することができない。そこで、本実施の形態では、三次元空間中で近接する３つの座標を含む平面（三角パッチ）を作成し、三角パッチの法線ベクトルを算出する。法線ベクトルの向きに基づいて、三角パッチが物体の面か否かを判断することにより、三次元空間中の各座標が物体座標かノイズ座標かの判断を行い、ノイズ座標の除去を行う。
【０１３６】
図２１は、距離画像カメラ２００と三次元空間中に存在する座標計算部２０が計算した物体の座標との関係を示す図である。図２１に示すように、距離画像カメラ２００から三次元空間中の物体の座標６０１〜６０５へ向かうベクトルを、それぞれベクトル６１１〜６１５とする。
【０１３７】
距離画像カメラ２００から照射された光は、距離画像カメラ２００の方向に反射されるが、距離画像カメラ２００に近い点と遠い点との関係から、距離画像カメラ２００の近い位置にある面が遠い点を遮る場合には、その遠い点には光が当たらないため、ノイズ座標と考えられる。
【０１３８】
例えば、互いに近傍に位置する座標６０１〜６０３を頂点とする三角パッチ６２１を考える。三角パッチ６２１が物体の面であると考えるのであれば、ベクトル６１４は三角パッチ６２１を通過するため座標６０４は観測されないはずである。つまり、三角パッチ６２１に遮られて距離画像カメラ２００から照射される光は座標６０４には到達しないはずである。このため、座標６０４はノイズ座標と考えることができる。
【０１３９】
しかしながら、三角パッチ６２１が物体の面ではない可能性もある。このため、本実施の形態では、着目している座標を頂点とする三角パッチの中に、物体の面として有効な三角パッチが含まれるか否かを判断し、有効な三角パッチが含まれる場合に着目している座標を物体座標と判断し、有効な三角パッチが含まれない場合に着目している座標をノイズ座標と判断する。以下、図２２を用いて説明する。
【０１４０】
図２２は、着目している座標が物体座標かノイズ座標かを判断する方法を説明するための図である。
【０１４１】
図２２に示すように、三次元空間中に座標計算部２０が計算した物体の座標６０１〜６０６が存在するものとする。それらの座標６０１〜６０６から、互いに近傍に位置する３つの座標を頂点とする三角パッチ６２１〜６２４が作成される。また、三角パッチ６２１〜６２４の法線ベクトルをそれぞれ法線ベクトル６３１〜６３４とする。法線ベクトルが距離画像カメラ２００の方を向いていれば、その法線ベクトルに対応する三角パッチ（法線ベクトル６３１に対する三角パッチ６２１、法線ベクトル６３４に対する三角パッチ６２４）は物体の面と判断することができる。つまり、その面での反射光は距離画像カメラ２００に到達すると考えることができる。一方、法線ベクトルが距離画像カメラ２００の方を向いていなければ、その法線ベクトルに対応する三角パッチ（法線ベクトル６３２に対する三角パッチ６２２、法線ベクトル６３３に対する三角パッチ６２３）は物体の面ではないと考えることができる。つまり、その面での反射光は距離画像カメラ２００に到達しないと考えることができる。このため、着目している座標を頂点とする三角パッチのうち物体の面の三角パッチが含まれる場合には、着目している座標を物体座標と判断し、物体の面の三角パッチが含まれない場合には、着目している座標をノイズ座標と判断する。
【０１４２】
より具体的には、図２３に示すように、三次元空間中の座標６４０から、互いに近傍に位置する３つの座標を頂点とする三角パッチ６４１を作成する。例えば、互いに近傍に位置する３つの座標６４０Ａ〜６４０Ｃを頂点とする三角パッチ６４１Ａを作成する。
【０１４３】
三角パッチの法線ベクトルが距離画像カメラ２００の方を向いているか否かの判断は、具体的に以下のように行う。つまり、図２４に示すように距離画像カメラ２００の撮像面を含む平面である有効角度面を想定し、法線ベクトルが有効角度面と交わる場合に、その法線ベクトルが距離画像カメラ２００の方を向いていると判断し、法線ベクトルが有効角度面と交わらない場合に、その法線ベクトルが距離画像カメラ２００の方を向いていないと判断する。
【０１４４】
図２５は、法線ベクトルによる人物領域決定処理（図１９のＳ２１）の詳細なフローチャートである。
【０１４５】
物体座標判断部３１は、座標計算部２０が計算した物体の座標の各々について、以下のＳ２１１〜Ｓ２１３の処理を実行する。
【０１４６】
つまり、物体座標判断部３１は、着目座標と着目座標の近傍の２つの座標とを頂点とする三角パッチの中から、法線ベクトルが有効角度面と交わる（有効角度面を向いている）三角パッチが存在するか否かを判断する（Ｓ２１１）。例えば、図２２で着目座標を座標６０４とすると、座標６０４を含む３つの三角パッチ６２２〜６２４のうち、法線ベクトルが有効角度面と交わる三角パッチが存在するか否かを判断する。
【０１４７】
法線ベクトルが有効角度面と交わる三角パッチが存在する場合には（Ｓ２１１でＹＥＳ）、物体座標判断部３１は、着目座標を物体座標と判断する。例えば、法線ベクトル６３４は有効角度面と交わるため、物体座標判断部３１は、座標６０４を物体座標と判断する（Ｓ２１２）。
【０１４８】
法線ベクトルが有効角度面と交わる三角パッチが存在しない場合には（Ｓ２１１でＮＯ）、物体座標判断部３１は、着目座標をノイズ座標と判断する（Ｓ２１３）。
【０１４９】
このように、法線ベクトルが有効角度面と交わっている場合には、法線ベクトルがカメラの方向を向いていると判断することができる。法線ベクトルがカメラの方向を向いている面は、物体の面の一部であると考えることができるため、座標計算部２０が計算した物体の座標が正確に物体座標であるか否かを判断することができる。
【０１５０】
ラベリング処理部３２は、三次元空間を各々が所定体積を有する複数のブロックに分割したときに、互いに隣接する、物体座標判断部３１が判断した物体座標を含むブロックのラベルが同一のラベルとなるように、複数のブロックの各々にラベル付けを行う（Ｓ２１４）。ブロックの大きさは、例えば、７．５ｃｍ3とする。
【０１５１】
ラベリング処理部３２は、ラベリングされたブロック内のすべての座標は物体領域の座標であると決定する（Ｓ２１５）。なお、ブロックの周辺の座標（ブロックから所定距離内の座標）についても物体領域の座標であると決定してもよい。この処理により、ノイズとして判断され、ノイズとして切り過ぎていた座標を、再度、物体領域の座標と判断することができる。
【０１５２】
決定部３３は、各ラベルについて以下のＳ２１６〜Ｓ２１８の処理を実行する。
つまり、決定部３３は、着目しているラベル（以下、「着目ラベル」という。）が付されたブロックの体積の合計値が体積しきい値以上か否かを判断する（Ｓ２１６）。決定部３３は、上記合計値が体積しきい値以上の場合には（Ｓ２１６でＹＥＳ）、着目ラベルが付されたブロックを人物領域と決定し（Ｓ２１７）、上記合計値が体積しきい値未満の場合には（Ｓ２１６でＮＯ）、着目ラベルが付されたブロックを人物以外の領域と決定する（Ｓ２１８）。
【０１５３】
図２６は、法線ベクトルによる人物領域決定処理（図２５）の結果の一例を示す図である。図２６（ａ）は、図２５の処理前の距離画像において、物体と判断されている座標を白い画素で示した画像である。図２６（ａ）には、人物のほか、人物の背景に存在する障害物が表示されている。
【０１５４】
図２６（ｂ）は、Ｓ２１５の処理後の画像を示しており、ラベル付けされた部分を白い画素で示している。Ｓ２１５の処理によりブロック内のすべての座標が物体領域の座標と判断されるため、人物領域において、図２６（ａ）には見られる穴が埋められている。
【０１５５】
図２６（ｃ）は、最終的な人物領域の画像であり、人物の部分のみが人物領域と決定され、背景の部分は人物領域と決定されていないことが分かる。
【０１５６】
図２７は、姿勢検出処理（図１３のＳ３）の前半の詳細なフローチャートである。
身長推定部４１は、処理の対象となっている人物領域を正面から見た像である二次元の正面画像と、側面から見た像である二次元の側面画像とを作成する（Ｓ３１）。
【０１５７】
図２８（ａ）は、被写体人物を通常のカメラで撮像した画像の一例を示す。図２８（ｂ）は、図２８（ａ）に示す画像に対応する人物領域の側面画像であり、図２８（ｃ）は、図２８（ａ）に示す画像に対応する人物領域の正面画像である。側面画像および正面画像においては、人物領域を白い画素で示している。
【０１５８】
身長推定部４１は、正面画像および側面画像のそれぞれにおける人物領域の面積が、人物と想定される所定の面積範囲に含まれているか否かを判断し（Ｓ３２）、含まれていなければ（Ｓ３２ＮＯ）、処理の対象となっている人物領域はノイズであると判断し、人物が検出されないと判断する（Ｓ３３）。
【０１５９】
人物領域の面積が上記所定の面積範囲に含まれている場合には（Ｓ３２でＹＥＳ）、身長推定部４１は、正面画像および側面画像に基づいて、対象人物領域の人物（被写体人物）の中心軸および身長を推定する（Ｓ３４）。身長推定処理（Ｓ３４）の詳細については後述する。
【０１６０】
被写体人物に対する骨格モデルが作成済みでなければ（Ｓ３５でＮＯ）、身長推定部４１は、被写体人物に対する身長情報が所定数集まったか否かを判断し（Ｓ３６）、集まっていなければ（Ｓ３６でＮＯ）、Ｓ３４で求められた身長情報をバッファに記憶する（Ｓ３８）。このような処理を複数フレームにわたり行い、身長情報が所定数集まった場合には（Ｓ３６でＹＥＳ）、被写体人物と同一のラベルが付された人物の身長情報の所定数の平均を求めることにより、被写体人物の身長を決定する（Ｓ３７）。
【０１６１】
選択部４２は、記憶部５０に記憶されている骨格モデルの中から、Ｓ３７の処理で決定された身長に最も近い身長の骨格モデルを選択する（Ｓ３９）。なお、同じ身長の骨格モデルが存在しない場合には、被写体人物の身長に近い骨格モデルを２つ選択し、２つの骨格モデルから、各関節位置を線形補間により求めることにより、被写体人物の身長に合致する骨格モデルを作成してもよい。
【０１６２】
図２９は、身長推定処理（図２７のＳ３４）の詳細なフローチャートである。
以下に説明するＳ３４１〜Ｓ３４３の処理により、水平方向中心軸決定部４１１は、人物領域を正面から見た像である二次元の正面画像において水平方向の中心を通る高さ方向の軸を、被写体人物の水平方向の中心軸と決定する。
【０１６３】
つまり、第１ヒストグラム生成部４１１１は、正面画像において横軸が水平方向の座標を示し、縦軸が各水平方向の座標を有する人物領域の画素の度数を示す第１ヒストグラムを生成する（Ｓ３４１）。例えば、図３０（ａ）に示すような正面画像を考えた場合、第１ヒストグラム生成部４１１１は、図３０（ｂ）に示すようなヒストグラムを生成する。
【０１６４】
第１最大度数算出部４１１２は、第１ヒストグラム生成部４１１１が生成した第１ヒストグラムにおける最大度数を算出する（Ｓ３４１）。
【０１６５】
第１積算出部４１１３は、第１最大度数算出部４１１２が算出した最大度数に１未満の第１所定係数を掛けた値である第１積を算出する（Ｓ３４２）。図３０（ｂ）では、第１所定係数を０．５としている。
【０１６６】
第１軸決定部４１１４は、第１積算出部４１１３が算出した第１積以上の度数を有する水平方向の座標の最小値と最大値との平均値を水平方向の座標とする被写体人物の高さ方向の軸を、被写体の水平方向の中心軸と決定する（Ｓ３４３）。図３０（ｂ）では、平均値を丸印で示しており、平均値を通るｙ軸方向の軸を中心軸と定めている。
【０１６７】
例えば、被写体人物が手を挙げていると、その部分の画素数が大きくなるため、第１ヒストグラムにおいて手の部分の度数が大きくなってしまう。このため、最大度数をそのまま用いて水平方向の中心軸を決定すると、挙げた手の部分が中心軸になってしまう。しかし、最大度数に１未満の第１所定係数（０．５）を掛けた値である第１積を計算している。このため、第１積以上の度数を有する座標は、人物領域の胴付近の座標を示す。よって、第１積以上の度数を有する座標の最小値と最大値との平均値から水平方向の中心軸を決定することにより、正確に水平方向の中心軸を決定することができる。
【０１６８】
次に、以下に説明するＳ３４４〜Ｓ３４６の処理により、前後方向中心軸決定部４１２は、人物領域を側面から見た像である二次元の側面画像において水平方向の中心を通る高さ方向の軸を、被写体人物の前後方向の中心軸と決定する。
【０１６９】
つまり、第２ヒストグラム生成部４１２１は、側面画像において横軸が前後方向の座標を示し、縦軸が各前後方向の座標を有する人物領域の画素の度数を示す（Ｓ３４４）。
【０１７０】
第２最大度数算出部４１２２は、第２ヒストグラム生成部４１２１が生成した第２ヒストグラムにおける最大度数を算出する（Ｓ３４４）。
【０１７１】
第２積算出部４１２３は、第２最大度数算出部４１２２が算出した最大度数に１未満の第２所定係数を掛けた値である第２積を算出する（Ｓ３４５）。例えば、第２所定係数は、第１所定係数と同じ値とする。
【０１７２】
第２軸決定部４１２４は、第２積算出部４１２３が算出した第２積以上の度数を有する前後方向の座標の最小値と最大値との平均値を前後方向の座標とする被写体人物の高さ方向の軸を、被写体の前後方向の中心軸と決定する（Ｓ３４６）。
【０１７３】
Ｓ３４４〜Ｓ３４６の具体例は、正面画像が側面画像に変わる以外は、図３０と同じである。
【０１７４】
例えば、被写体人物が手を挙げていると、その部分の画素数が大きくなるため、第２ヒストグラムにおいて手の部分の度数が大きくなってしまう。このため、最大度数をそのまま用いて前後方向の中心軸を決定すると、挙げた手の部分が中心軸になってしまう。しかし、この構成では、最大度数に１未満の第２所定係数（例えば、０．５）を掛けた値である第２積を計算している。このため、第２積以上の度数を有する座標は、人物領域の胴付近の座標を示す。よって、第２積以上の度数を有する座標の最小値と最大値との平均値から前後方向の中心軸を決定することにより、正確に前後方向の中心軸を決定することができる。
【０１７５】
被写体人物中心軸決定部４１３は、水平方向中心軸決定部４１１および前後方向中心軸決定部４１２がそれぞれ決定した被写体人物の水平方向および前後方向の中心軸に基づいて、被写体人物の中心軸を決定する（Ｓ３４７）。
【０１７６】
つまり、図１５に示すように三次元空間中で、水平方向の中心軸３１２を通り、ｙ−ｚ平面に平行な平面３１３と、前後方向の中心軸３１４を通り、ｘ−ｚ平面に平行な平面３１５とが規定される。被写体人物中心軸決定部４１３は、平面３１３および平面３１５が交わる線を被写体人物の中心軸３１６と決定する。
【０１７７】
推定部４１４は、被写体人物中心軸決定部４１３が決定した被写体人物の中心軸上で最も高い位置にある人物領域の座標から地面までの距離を被写体人物の身長と推定する（Ｓ３４８）。
【０１７８】
次に、姿勢検出処理（図１３のＳ３）の後半の処理について詳細に説明する。
図３１は、姿勢検出処理（図１３のＳ３）の後半の詳細なフローチャートである。
【０１７９】
Ｓ３９の処理の後、検出部４３は、人物領域決定部３０で決定された人物領域に、選択部４２が選択した骨格モデルを当てはめることにより被写体人物の姿勢を検出する（Ｓ４０〜Ｓ５１）。
【０１８０】
つまり、検出部４３は、骨格モデルの初期位置を設定する（Ｓ４０）。具体的には、検出部４３は、Ｓ３６の処理で求められた被写体人物の中心軸に骨格モデルの頭部５０１、首部５０２および腰部５０９を一致させる。
【０１８１】
ユーザ設定により上半身の傾き認識モードが設定されている場合には（Ｓ４１でＹＥＳ）、検出部４３は、Ｓ４２〜Ｓ４４の処理を実行する。
【０１８２】
つまり、検出部４３は、被写体人物の頭部の位置を決定し、骨格モデルの頭部の位置を設定する（Ｓ４２）。
【０１８３】
図３２は、頭部位置設定処理（図３１のＳ４２）の詳細なフローチャートである。
平均座標算出部４３１は、前フレームの距離画像について決定された三次元空間中での頭部の位置と同じ位置から第１所定距離内に含まれる人物領域の座標のうち、高さ方向に最も高い位置の座標を決定する（Ｓ４２１）。
【０１８４】
図３３を参照して、例えば、１つ前のフレームにおける頭部の位置と同じ位置から第１所定距離内に含まれる人物領域の座標のうち、高さ方向に最も高い位置２８１の座標を決定する。
【０１８５】
平均座標算出部４３１は、Ｓ４２１で決定した座標から高さ方向に第２所定距離下がった位置を決定する（Ｓ４２２）。例えば、平均座標算出部４３１は、位置２８１から顔の大きさの半分だけ下がった位置２８２を決定する。
【０１８６】
平均座標算出部４３１は、Ｓ４２２で決定した座標を含む所定範囲内の人物領域の平均座標を算出する（Ｓ４２３）。例えば、平均座標算出部４３１は、位置２８２を含む所定範囲２８３を設定する。例えば、所定範囲２８３は、位置２８２を含み、上下幅が顔の１／３の幅の直方体の範囲とする。また、この範囲内の人物領域の平均座標の位置２８４が求められたものとする。
【０１８７】
頭位置設定部４３２は、Ｓ４２３で算出した人物領域の平均座標の位置から高さ方向に第２所定距離上がった位置が頭部の位置と決定し、当該位置に、骨格モデルの頭部を当てはめる（Ｓ４２４）。例えば、頭位置設定部４３２は、位置２８４から顔の大きさの半分だけ上がった位置２８５が頭部の位置と決定し、当該位置に、骨格モデルの頭部を当てはめる。
【０１８８】
頭髪部分では拡散反射が起き易いため、距離の精度が悪い。しかし、前フレームの頭部の位置に近い位置から第２所定距離下がった位置の周辺において、人物領域の平均座標を算出し、平均座標から第２所定距離上がった位置を頭部の位置としている。前フレームの頭部の位置に近い位置から第２所定距離下がった位置の周辺は人物の顔の位置と考えられ距離が正確に求められている。このため、平均座標は、正確な顔の位置を表している。よって、顔の位置を基準として正確に頭部の位置を算出することができる。
【０１８９】
再度図３１を参照して、Ｓ４３以降の処理を説明する。
腰位置設定部４３３は、頭位置設定部４３２が設定した骨格モデルの頭部の位置を基準として、Ｓ３４の処理で決定された被写体人物の中心軸上に骨格モデルの腰部の位置を設定する（Ｓ４３）。頭部の位置を基準に腰部の位置が決定されるため、例えば、被写体人物がしゃがんだ場合には、腰部の位置は地面に近くなる。また、被写体人物がジャンプをした場合には、腰部の位置も通常より高くなる。
【０１９０】
傾き角度算出部４３４は、頭位置設定部４３２が設定した骨格モデルの頭部の位置と腰位置設定部が設定した骨格モデルの腰部の位置とから被写体人物の傾き角度を算出する（Ｓ４４）。
【０１９１】
首傾き設定部４３５は、傾き角度算出部４３４が算出した被写体人物の傾き角度に基づいて定められる首の曲がり角度だけ、骨格モデルの首の位置を前記被写体人物の傾きとは逆方向に傾ける（Ｓ４４）。例えば、首の曲がり角度を被写体人物の傾き角度の１／３とした場合には、首傾き設定部４３５は、被写体人物が３０度傾いていれば、首を被写体人物の傾きとは逆の方向に１０度傾けた位置に骨格モデルの首の位置を設定する。これにより、自然な首の傾きを推定することができる。
【０１９２】
ユーザ設定により脚または腕の認識モードが設定されている場合には（Ｓ４５でＹＥＳ）、領域取得部４３６は、当てはめた骨格モデルに基づいて、人物領域決定部３０が決定した人物領域から少なくとも頭および胴を除いた領域の外接矩形領域を取得する（Ｓ４６）。
【０１９３】
例えば、図３４に示すような人物領域から頭および胴の領域２９１を除いた領域として、４つの領域２９２〜２９５が得られる。領域取得部４３６は、領域２９２〜２９５の各々について三次元空間中で外接矩形領域を計算することにより取得する。
【０１９４】
なお、領域取得部４３６は、外接矩形領域ごとに、以下の値を計数する。つまり、領域取得部４３６は、外接矩形領域内に含まれる人物領域の座標数を計数する。また、領域取得部４３６は、骨格モデルにおいて左肩部を基準としたときに左肘部の稼動範囲に存在する人物領域の座標数および骨格モデルにおいて右肩部を基準としたときに右肘部の稼動範囲に存在する人物領域の座標数を計数する。また、領域取得部４３６は、骨格モデルにおいて左恥骨部を基準としたときに左膝部の稼動範囲に存在する人物領域の座標数および骨格モデルにおいて右恥骨部を基準としたときに右膝部の稼動範囲に存在する人物領域の座標数を計数する。また、領域取得部４３６は、１つ前のフレームにおける左手、右手、左脚、右脚、左肘、右肘および頭とそれぞれ重なり合いを有する部分における人物領域の座標数を計数する。これら計数した値は、以下に説明するＳ４８またはＳ５０の処理で用いられる。
【０１９５】
ユーザ設定により腕の認識モードが設定されている場合には（Ｓ４７でＹＥＳ）、検出部４３は、Ｓ４６の処理で取得された外接矩形領域のそれぞれについて、右腕または左腕か否かの判定を行い、右腕または左腕と判定された外接矩形領域の位置に、骨格モデルの右腕部または左腕部を移動させる（Ｓ４８）。
【０１９６】
腕については、（１）移動、（２）出現、（３）結合、（４）分離および（５）消滅の５つの状態があると考え、検出部４３は、外接矩形領域が５つの状態のいずれに該当するかを判断する。ここで、（１）移動とは、前フレームで見えていた腕が移動した状態または同位置に静止している状態を示す。（２）出現とは、前フレームで見えていなかった腕が見えるようになった状態を示す。（３）結合とは、２本の腕が手の先でつながっている状態を示す。（４）分離とは、前フレームで結合状態にあった２本の腕の手の先が分かれた状態を示す。（５）消滅とは、前フレームで見えていた腕が見えなくなった状態を示す。
【０１９７】
（１）移動について
まず、前フレームから現フレームの間に腕が移動したか否かの判断方法について説明する。なお、ここでは、前フレームから現フレームの間に腕が静止している場合も、腕の移動と考える。
【０１９８】
つまり、右腕移動判断部４３７は、領域取得部４３６が取得した外接矩形領域のうち、前フレームの距離画像について右腕と判断されている外接矩形領域と重なり合いを有し、かつ骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという右腕移動条件を満たす外接矩形領域の位置に、被写体人物の右腕が移動したと判断し、当該位置に骨格モデルの右腕を当てはめる。
【０１９９】
また、左腕移動判断部４３８は、領域取得部４３６が取得した外接矩形領域のうち、前フレームの距離画像について左腕と判断されている外接矩形領域と重なり合いを有し、かつ骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという左腕移動条件を満たす外接矩形領域の位置に、被写体人物の左腕が移動したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【０２００】
（２）出現について
次に、前フレームから現フレームの間に腕が出現したか否かの判断方法について説明する。
【０２０１】
つまり、右腕出現判断部４３９は、領域取得部４３６が取得した外接矩形領域のうち、前フレームの距離画像について右腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという右腕出現条件を満たす外接矩形領域の位置に、被写体人物の右腕が出現したと判断し、当該位置に骨格モデルの右腕を当てはめる。
【０２０２】
また、左腕出現判断部４４０は、領域取得部４３６が取得した外接矩形領域のうち、前フレームの距離画像について左腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという左腕出現条件を満たす外接矩形領域の位置に、被写体人物の左腕が出現したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【０２０３】
（３）結合について
次に、前フレームから現フレームの間に両腕が結合したか否かの判断方法について説明する。なお、前フレームにおいて２本の腕が見えていない場合には、第１結合判断部４４１が処理を行ない、２本の腕が別々に見えている場合には、第２結合判断部４４２が処理を行なう。
【０２０４】
つまり、第１結合判断部４４１は、前フレームの距離画像について被写体人物の右腕および左腕が出現していない場合において、領域取得部４３６が取得した外接矩形領域のうち、右腕出現条件および左腕出現条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、被写体人物の両腕が結合していると判断し、当該位置に骨格モデルの両腕を結合した状態で当てはめる。
【０２０５】
また、第２結合判断部４４２は、前フレームの距離画像について被写体人物の右腕および左腕が別個に出現している場合において、領域取得部４３６が取得した外接矩形領域のうち、右腕移動条件および左腕移動条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、被写体人物の両腕が結合していると判断し、当該位置に骨格モデルの両腕を結合した状態で当てはめる。
【０２０６】
（４）分離について
次に、前フレームから現フレームの間に腕が分離したか否かの判断方法について説明する。
【０２０７】
つまり、第１分離判断部４４３は、前フレームの距離画像について被写体人物の両腕が結合している場合において、領域取得部４３６が取得した外接矩形領域のうち、右腕移動条件を満たす外接矩形領域と左腕移動条件を満たす外接矩形領域とが別個に存在する場合には、被写体人物の両腕が分離して、右腕移動条件を満たす外接矩形領域の位置に被写体人物の右腕が移動したと判断し、当該位置に骨格モデルの右腕を当てはめ、左腕移動条件を満たす外接矩形領域の位置に被写体人物の左腕が移動したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【０２０８】
（５）消滅について
最後に、前フレームから現フレームの間に腕が消滅したか否かの判断方法について説明する。
【０２０９】
つまり、消滅判断部４４４は、領域取得部４３６が取得した外接矩形領域のうち、右腕移動条件を満たす外接矩形領域が存在しない場合には、被写体人物の右腕が消滅したと判断し、骨格モデルの右腕を所定右腕位置に移動させ、左腕移動条件を満たす外接矩形領域が存在しない場合には、被写体人物の左腕が消滅したと判断し、骨格モデルの左腕を所定左腕位置に移動させる。
【０２１０】
なお、以上説明した（１）〜（５）の判断処理は、前フレームでの腕の状態に応じて実行されたり実行されなかったりする。図３５は、（１）〜（５）の判断処理の実行の可否の判断基準を示すフローチャートである。
【０２１１】
つまり、前フレームにおいて、両腕が結合状態にあった場合には（Ｓ３０１でＹＥＳ）、現フレームで（４）分離、（１）移動または（５）消滅の可能性があるため、（４）分離、（１）移動、（５）消滅の順で腕の状態の判断が行われる（Ｓ３０２）。
【０２１２】
前フレームにおいて、両腕が認識されており、かつ結合状態にない場合には（Ｓ３０３でＹＥＳ）、現フレームで（３）結合、（１）移動または（５）消滅の可能性があるため、（３）結合、（１）移動、（５）消滅の順で腕の状態の判断が行われる（Ｓ３０４）。
【０２１３】
前フレームにおいて、片腕のみが認識されている場合には（Ｓ３０５でＹＥＳ）、認識されている側の腕については、現フレームで（１）移動または（５）消滅の可能性があるため、（１）移動、（５）消滅の順で腕の状態の判断が行われる（Ｓ３０６）。また、認識されていない側の腕については、現フレームで（２）出現の可能性があるため、腕の（２）出現の判断が行われる（Ｓ３０７）。
【０２１４】
前フレームにおいて、両腕とも見えていない場合には（Ｓ３０５でＮＯ）、現フレームで（２）出現または（３）結合の可能性があるため、（２）出現、（３）結合の順で腕の状態の判断が行われる（Ｓ３０８）。
【０２１５】
なお、Ｓ３０２、Ｓ３０４、Ｓ３０６〜Ｓ３０８の各処理において、いずれかの状態が満たされた時点でそれ以降の状態判断処理は実行されない。例えば、Ｓ３０２において、腕が分離していると判断された場合には、（１）移動および（５）消滅の可能性はなくなったものと判断され、移動の可能性および消滅の可能性の判断処理は実行されない。また、いずれの状態にも該当しない場合には、前フレームの状態が維持される。例えば、Ｓ３０２において、（４）分離、（１）移動および（５）消滅のいずれの可能性もないと判断された場合には、前フレームと同様に、現フレームにおいても両腕を合わせていると判断される。
【０２１６】
なお、Ｓ４８においては、腕の状態の判断のみならず、以下に説明する（１）手の先の位置判定および（２）肘の位置判定も行われる。
【０２１７】
（１）手の先の位置判定
両腕が結合状態でない場合には、右手判断部４４５および左手判断部４４６が以下の処理を実行し、両腕が結合状態である場合には、第２分離判断部４４７が以下の処理を実行する。
【０２１８】
つまり、右手判断部４４５は、右腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から骨格モデルにおける右肩から最も遠い位置を右手の位置と判断し、当該位置に骨格モデルの右手を当てはめる。
【０２１９】
例えば、図３６に示すように、右手判断部４４５は、三次元空間中における右腕領域の外接矩形領域を考えた場合に、外接矩形領域の上面、左面、右面および前面のそれぞれについて各面に最も近い右腕の位置を決定する。これにより、４つの位置が決定される。右手判断部４４５は、４つの位置のうち、骨格モデルにおける右肩の位置から最も遠い位置を右手の位置と判断し、判断した位置に骨格モデルの右手を当てはめる。
【０２２０】
また、左手判断部４４６は、左腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から骨格モデルにおける左肩から最も遠い位置を左手の位置と判断し、当該位置に骨格モデルの左手を当てはめる。
【０２２１】
腕の領域の外接領域の上面、左面、右面および前面のいずれかに最も近い位置を手の先としており、下面および背面は考慮していない。被写体人物の輪郭部分においては、人物の下方向および後ろ方向にノイズが発生するためである。
【０２２２】
第２分離判断部４４７は、被写体人物の両腕が結合している場合において、両腕の先端から第３所定距離内に含まれる人物領域を正面から見た像である２次元の正面投影画像において、両腕が離れていれば被写体人物の両腕は分離していると判断し、骨格モデルの両腕を分離させる。
【０２２３】
例えば、図３７（ａ）に示すように画像を考えた場合に、その距離画像は図３７（ｂ）に示すような画像になる。この時、両腕の先端から第３所定距離内に含まれる人物領域の正面投影画像は図３７（ｃ）のようになる。図３７（ｃ）の正面投影画像では、１つの領域が示されているため、両腕は結合していると判断される。
【０２２４】
また、図３７（ｄ）に示すような画像を考えた場合に、その距離画像は図３７（ｅ）に示すような画像になる。この時、両腕の先端から第３所定距離内に含まれる人物領域の正面投影画像は図３７（ｆ）のようになる。図３７（ｆ）の正面投影画像では、２つの領域が示されているため、両腕は分離していると判断される。
【０２２５】
このように、両腕の先端部分のみを投影した正面投影画像を用いることより、両腕の先端部分以外の影響を受けることなく、両腕が分離しているか否かを正確に判断することができる。
【０２２６】
両腕が離れていると判断された場合には、右手判断部４４５および左手判断部４４６が上述した処理を行なう。両腕が結合していると判断された場合には、両腕を１つの腕とみなして、右手判断部４４５または左手判断部４４６が上述した処理を行なう。これにより、手の先が求められる。
【０２２７】
（２）肘の位置判定
次に、右手判断部４４５および左手判断部４４６は、右肘および左肘の位置をそれぞれ判定する。
【０２２８】
つまり、骨格モデルから、肩肘間の距離および手肘間の距離は既知である。このため、図３８に示すように、右肩位置を中心として肩肘間の距離を半径とする球上の領域を右肘の候補領域とすることができる。また、右手位置を中心として手肘間の距離を半径とする球状の領域を右肘の候補領域とすることができる。つまり、右手判断部４４５は、右肩を基準とした右肘の候補領域と、右手を基準とした右肘の候補領域とが重なり合う位置に右肘が存在すると判断し、骨格モデルの右肘部をその位置に移動させる。
【０２２９】
同様に、左手判断部４４６は、左肩を基準とした左肘の候補領域と、左手を基準とした左肘の候補領域とが重なり合う位置に左肘が存在すると判断し、骨格モデルの左肘部をその位置に移動させる。
【０２３０】
なお、２つの候補領域が重なり合う位置であっても、肘がその位置に来るはずがない場合には、右手判断部４４５または左手判断部４４６は、その位置に骨格モデルの肘部を移動させることはしない。例えば、図３９に示すように、胴体を内側とした場合に、肘が外側に折れ曲がっている場合には、その位置は正確な肘の位置であると判断し、骨格モデルの肘部３４０１を移動させる。逆に、肘が内側に折れ曲がっている場合には、そのような姿勢を肘がとることができないため、その位置は正確な肘の位置ではないと判断し、骨格モデルの肘部３４０２を移動させない。
【０２３１】
再度、図３１を参照して、ユーザ設定により脚の認識モードが設定されている場合には（Ｓ４９でＹＥＳ）、検出部４３は、Ｓ４６の処理で取得された外接矩形領域のそれぞれについて、右脚または左脚か否かの判定を行い、右脚または左脚と判定された外接矩形領域の位置に、骨格モデルの右脚部または左脚部を移動させる。また、検出部４３は、右膝または左膝の位置を判定する（Ｓ５０）。以下、これらの処理について詳細に説明する。
【０２３２】
つまり、脚判断部４４８は、骨格モデルにおける恥骨部よりも下の位置において、当該恥骨部から人物領域の先端までの距離が、骨格モデルにおける脚の長さに対応する所定の長さしきい値よりも大きい場合に、人物領域の先端が被写体人物の脚の先端であると判断し、人物領域の先端に骨格モデルの脚の先端を当てはめる。
【０２３３】
脚判断部４４８の処理について、図４０を参照して具体的に説明する。脚判断部４４８は、骨格モデルにおいて右恥骨部３５０１および左恥骨部３５０２よりも下の領域３５０３において、ｘ座標が最小となる人物領域の座標と、ｘ座標が最大となる人物領域の座標と、ｚ座標が最小となる人物領域の座標を決定する。つまり、ｘ座標が最小の人物領域の座標は、図４０に示すように両脚を左右に開いた場合の、右脚先端の座標である。また、ｘ座標が最大の人物領域の座標は、図４０に示すように両脚を左右に開いた場合の、左脚先端の座標である。また、ｚ座標が最小となる人物領域の座標は、両脚を前後方向に開いた場合の、一方の脚の先端の座標である。なお、ｚ座標が最大となる人物領域の座標は、ノイズの影響を受けているため、処理の対象外としている。
【０２３４】
脚判断部４４８は、右恥骨部３５０１からｘ座標が最小となる人物領域の座標までの距離が、脚の長さ×０．９以上であれば、ｘ座標が最小となる人物領域の座標を右脚の先端と判断する。
【０２３５】
脚判断部４４８は、左恥骨部３５０２からｘ座標が最大となる人物領域の座標までの距離が、脚の長さ×０．９以上であれば、ｘ座標が最小となる人物領域の座標を左脚の先端と判断する。
【０２３６】
脚判断部４４８は、右恥骨部３５０１または左恥骨部３５０２からｚ座標が最大となる人物領域の座標までの距離が、脚の長さ×０．９以上であれば、ｚ座標が最大となる人物領域の座標を右脚または左脚の先端と判断する。ここで、右恥骨部３５０１からｚ座標が最大となる人物領域の座標までの距離が左恥骨部３５０２からｚ座標が最大となる人物領域の座標までの距離よりも短ければ、ｚ座標が最大となる人物領域の座標を右脚の先端と判断し、逆の場合は、ｚ座標が最大となる人物領域の座標を左脚の先端と判断する。
【０２３７】
このように、人物の脚の先端は通常恥骨部よりも下の位置にあると考えられるため、恥骨部よりも下の位置から脚の先端を求めることにより、正確に脚の先端を求めることができる。
【０２３８】
次に、膝判断部４４９による膝の位置の判定処理について説明する。
膝判断部４４９は、図４１に示すように、骨格モデルにおいて恥骨部を基準として膝となり得る距離に存在する人物領域の座標のうち、最も高さが高い座標に被写体人物の膝があると判断し、最も高さが高い座標に骨格モデルの膝部を当てはめる。
【０２３９】
なお、最も高さが高い座標にある膝が左膝なのか右膝なのかは以下のようにして行う。つまり、膝判断部４４９は、図４２のように、被写体人物を正面からみて３つに分けたエリア内のそれぞれにおいて、人物領域の座標から膝の上がり角度を求める。膝判断部４４９は、右脚エリア３６０１での膝の上がり角度の方が、左脚エリア３６０３での膝の上がり角度よりも大きい場合には、左膝が上がっていると判断し、逆の場合には、右膝が上がっていると判断する。膝判断部４４９は、左膝が上がっていると判断した場合には、左脚エリア３６０３での膝の上がり角度と中央エリア３６０２での膝の上がり角度のうち、最大の上がり角度を左膝の上がり角度と判断する。また、膝判断部４４９は、右膝が上がっていると判断した場合には、右脚エリア３６０１での膝の上がり角度と中央エリア３６０２での膝の上がり角度のうち、最大の上がり角度を右膝の上がり角度と判断する。
【０２４０】
このように、脚を３つのエリアに分けることにより、右脚エリア３６０１には右脚の座標のみが含まれ、左脚エリア３６０３には左脚の座標のみが含まれることとなる。このため、右膝を上げているのか左膝を上げているのかを正確に判断することができる。
【０２４１】
再度、図３１を参照して、脚判断部４４８は、脚の先端が地面よりも下になった場合には、脚の先端が地面上に来るように、脚の先端の位置を補正する（Ｓ５１）。例えば、膝の位置を中心として、骨格モデルから得られる膝から脚の先端までの長さを半径とする球と、地面とが交わる位置に、脚の先端を移動させる。
【０２４２】
このように、恥骨部を基準とすると膝の候補領域を絞ることができる。このため、候補領域の中で最も高い位置に膝があると判断することにより、正確に膝の位置を判断することができる。
【０２４３】
以上説明した処理により、骨格モデルにおける各関節の座標が決定される。ただし、補正部４５０は、前フレームからの動きが滑らかになるように、現フレームでの各関節の座標をｘ座標、ｙ座標およびｚ座標のそれぞれについて補正する。つまり、補正部４５０は、現フレームにおいて当てはめた骨格モデルの各座標を、当該座標と当該座標に対応する前フレームの距離画像における骨格モデルの座標との間の距離が大きいほど現フレームの座標に近づき、かつ距離が小さいほど前フレームの座標に近づくような、現フレームの座標と前フレームの座標との間の座標に補正する。
【０２４４】
例えば、補正部４５０は、同一の関節について一軸（ｘ軸、ｙ軸またはｚ軸）方向の前フレームの座標と現フレームの座標との差を２点間の距離とした場合に、以下の（式１）により補正係数を計算する。次に、補正部４５０は、一軸方向の現フレームの座標を（式２）に従い補正する。
【０２４５】
補正係数＝１５０．０（ｍｍ）／２点間の距離（ｍｍ）  （式１）
補正後の座標＝（前フレームの座標×補正係数＋現フレームの座標）
／（補正係数＋１．０）  （式２）
【０２４６】
このような補正をすることにより、例えば、図４３に示すように、２点間の距離が大きいほど（関節位置が急激に動いたほど）、今回計算した座標に近づくような補正後の座標が得られ、２点間の距離が小さいほど（関節位置がゆっくりと動いたほど）、前回計算した座標に近づくような補正後の座標が得られる。また、補正後の座標は、必ず、前フレームの座標と現フレームの座標との間にあるため、滑らかな骨格モデルの動きが得られる。
【０２４７】
以上説明したように、本実施の形態によると、距離画像から得られる物体の座標に基づいて人物領域を決定し、その人物領域に骨格モデルを当てはめている。このため、人物にマーカーを設置することなく、人物の姿勢を高精度で検出することができる。
【０２４８】
また、被写体人物の身長に合致した骨格モデルを用いて被写体人物の姿勢を検出することができる。このため、被写体人物の身長が異なっていても人物の姿勢を高精度で検出することができる。
【０２４９】
また、被写体人物中心軸決定部４１３は、被写体人物の水平方向の中心軸と前後方向の中心軸とから、各中心軸を通る平面の交線として被写体人物の中心軸を求めることができる。このため、被写体人物の中心軸を正確に求めることができる。被写体人物の中心軸を正確に求めることができると、被写体人物の身長を正確に推定することができる。
【０２５０】
以上、本発明の実施の形態に係る姿勢検出装置について説明したが、本発明は、この実施の形態に限定されるものではない。
【０２５１】
例えば、上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクドライブ、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムとして構成されても良い。ＲＡＭまたはハードディスクドライブには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０２５２】
さらに、上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしても良い。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【０２５３】
さらにまた、上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしても良い。ＩＣカードまたはモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカードまたはモジュールは、上記の超多機能ＬＳＩを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ＩＣカードまたはモジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしても良い。
【０２５４】
また、本発明は、上記に示す方法であるとしても良い。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。
【０２５５】
さらに、本発明は、上記コンピュータプログラムまたは上記デジタル信号をコンピュータ読み取り可能な非一時的な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Blu-ray Disc（登録商標））、半導体メモリなどに記録したものとしても良い。また、これらの非一時的な記録媒体に記録されている上記デジタル信号であるとしても良い。
【０２５６】
また、本発明は、上記コンピュータプログラムまたは上記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。
【０２５７】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしても良い。
【０２５８】
また、上記プログラムまたは上記デジタル信号を上記非一時的な記録媒体に記録して移送することにより、または上記プログラムまたは上記デジタル信号を上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【０２５９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０２６０】
本発明は、姿勢検出装置に適用でき、特に距離画像カメラから得られる距離画像に基づいて被写体人物の姿勢を検出することができる姿勢検出装置等に適用できる。
【符号の説明】
【０２６１】
１０  距離画像取得部
１１  ノイズ除去部
２０  座標計算部
２６  再度図
３０  人物領域決定部
３１  物体座標判断部
３２  ラベリング処理部
３３  決定部
４０  姿勢検出部
４１  身長推定部
４２  選択部
４３  検出部
５０  記憶部
１００  姿勢検出装置
２００  距離画像カメラ
２０４  レンズ
２８１、２８２、２８４、２８５  位置
２８３  所定範囲
２９１〜２９５  領域
３００  人物
３０２  机
３１０  撮像領域
３１１  人物検出エリア
３１２  水平方向の中心軸
３１３、３１５  平面
３１４  前後方向の中心軸
３１６  被写体人物の中心軸
４１１  水平方向中心軸決定部
４１２  前後方向中心軸決定部
４１３  被写体人物中心軸決定部
４１４  推定部
４３１  平均座標算出部
４３２  頭位置設定部
４３３  腰位置設定部
４３４  傾き角度算出部
４３５  首傾き設定部
４３６  領域取得部
４３７  右腕移動判断部
４３８  左腕移動判断部
４３９  右腕出現判断部
４４０  左腕出現判断部
４４１  第１結合判断部
４４２  第２結合判断部
４４３  第１分離判断部
４４４  消滅判断部
４４５  右手判断部
４４６  左手判断部
４４７  第２分離判断部
４４８  脚判断部
４４９  膝判断部
４５０  補正部
５００  骨格モデル
５０１  頭部
５０２  首部
５０３  右肩部
５０４  右肘部
５０５  右手部
５０６  左肩部
５０７  左肘部
５０８  左手部
５０９  腰部
５１０、３５０１  右恥骨部
５１１  右膝部
５１２  右足部
５１３、３５０２  左恥骨部
５１４  左膝部
５１５  左足部
６０１〜６０６  座標
６１１〜６１５  ベクトル
６２１〜６２４、６４１、６４１Ａ  三角パッチ
６３１〜６３４  法線ベクトル
６４０、６４０Ａ〜６４０Ｃ  座標
３４０１、３４０２  肘部
３５０３  領域
３６０１  右脚エリア
３６０２  中央エリア
３６０３  左脚エリア
４１１１  第１ヒストグラム生成部
４１１２  第１最大度数算出部
４１１３  第１積算出部
４１１４  第１軸決定部
４１２１  第２ヒストグラム生成部
４１２２  第２最大度数算出部
４１２３  第２積算出部
４１２４  第２軸決定部
【図１】
2012120647.tif 000003
【図２】
2012120647.tif 000004
【図３】
2012120647.tif 000005
【図５】
2012120647.tif 000006
【図６】
2012120647.tif 000007
【図７】
2012120647.tif 000008
【図８】
2012120647.tif 000009
【図９】
2012120647.tif 000010
【図１０】
2012120647.tif 000011
【図１１】
2012120647.tif 000012
【図１２】
2012120647.tif 000013
【図１３】
2012120647.tif 000014
【図１４】
2012120647.tif 000015
【図１５】
2012120647.tif 000016
【図１６】
2012120647.tif 000017
【図１９】
2012120647.tif 000018
【図２０】
2012120647.tif 000019
【図２１】
2012120647.tif 000020
【図２２】
2012120647.tif 000021
【図２３】
2012120647.tif 000022
【図２４】
2012120647.tif 000023
【図２５】
2012120647.tif 000024
【図２７】
2012120647.tif 000025
【図２９】
2012120647.tif 000026
【図３０】
2012120647.tif 000027
【図３１】
2012120647.tif 000028
【図３２】
2012120647.tif 000029
【図３３】
2012120647.tif 000030
【図３４】
2012120647.tif 000031
【図３５】
2012120647.tif 000032
【図３６】
2012120647.tif 000033
【図３８】
2012120647.tif 000034
【図３９】
2012120647.tif 000035
【図４０】
2012120647.tif 000036
【図４２】
2012120647.tif 000037
【図４３】
2012120647.tif 000038
【図４】
2012120647.tif 000039
【図１７】
2012120647.tif 000040
【図１８】
2012120647.tif 000041
【図２６】
2012120647.tif 000042
【図２８】
2012120647.tif 000043
【図３７】
2012120647.tif 000044
【図４１】
2012120647.tif 000045