説明

姿勢検出装置

【課題】人物にマーカーを設置することなく、人物の姿勢を高精度で検出する。
【解決手段】各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する距離画像取得部10と、前記距離画像取得部10が取得した前記距離画像に基づいて、三次元空間中での物体の座標を計算する座標計算部20と、前記座標計算部20が計算した物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する人物領域決定部30と、前記人物領域決定部30が決定した前記人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する姿勢検出部40とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は人物の姿勢を検出する姿勢検出装置に関し、特に、物体までの距離を計測することができるカメラを用いて撮像された距離画像から人物の姿勢を検出する姿勢検出装置に関する。
【背景技術】
【0002】
従来、人物の各関節位置にマーカーを設置し、各マーカーの三次元空間中の位置を三角測量の原理を用いて計測することにより人物の動きを計測するモーションキャプチャーシステムが知られている(例えば、特許文献1参照。)。
【0003】
このシステムは、例えば、2台のカメラを用いて人物を撮影することにより2枚の画像データを得る。また、このシステムは、得られた画像データ間でマーカーの対応付けを行い、三角測量の原理を用いて各マーカーの三次元空間中の位置を計測する。さらに、このシステムは、三次元空間中での各マーカーの位置を追跡することにより人物の動きを計測する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−345161号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のモーションキャプチャーシステムでは、人物の各関節位置にマーカーを設置しなければならないため、マーカーを設置する手間がかかるという問題がある。
【0006】
また、姿勢を検出することができる人物がマーカーを設置した人物に限定されるという問題がある。
【0007】
さらに、2枚の画像データ間でマーカーの対応付けを行う必要があるため、誤対応が生じやすく姿勢の検出精度が低いという問題がある。
【0008】
本発明は、上述の問題点を解決するためになされたものであり、人物にマーカーを設置することなく、人物の姿勢を高精度で検出することができる姿勢検出装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明のある局面に係る姿勢検出装置は、各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する距離画像取得部と、前記距離画像取得部が取得した前記距離画像に基づいて、三次元空間中での物体の座標を計算する座標計算部と、前記座標計算部が計算した物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する人物領域決定部と、前記人物領域決定部が決定した前記人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する姿勢検出部とを備える。
【0010】
この構成によると、距離画像から得られる物体の座標に基づいて人物領域を決定し、その人物領域に骨格モデルを当てはめている。このため、人物にマーカーを設置することなく、人物の姿勢を高精度で検出することができる。
【0011】
好ましくは、上述の姿勢検出装置は、さらに、身長ごとに骨格モデルを記憶している記憶部を備え、前記姿勢検出部は、前記人物領域の高さから前記被写体人物の身長を推定する身長推定部と、前記記憶部に記憶されている前記骨格モデルの中から、前記身長推定部で推定された前記身長に最も近い身長の骨格モデルを選択する選択部と、前記人物領域決定部で決定された前記人物領域に、前記選択部が選択した前記骨格モデルを当てはめることにより前記被写体人物の姿勢を検出する検出部とを有する。
【0012】
この構成によると、被写体人物の身長に合致した骨格モデルを用いて被写体人物の姿勢を検出することができる。このため、被写体人物の身長が異なっていても人物の姿勢を高精度で検出することができる。
【0013】
さらに好ましくは、前記身長推定部は、前記人物領域を正面から見た像である二次元の正面画像において水平方向の中心を通る高さ方向の軸を、前記被写体人物の水平方向の中心軸と決定する水平方向中心軸決定部と、前記人物領域を側面から見た像である二次元の側面画像において水平方向の中心を通る高さ方向の軸を、前記被写体人物の前後方向の中心軸と決定する前後方向中心軸決定部と、前記水平方向中心軸決定部および前記前後方向中心軸決定部がそれぞれ決定した前記被写体人物の水平方向および前後方向の中心軸に基づいて、前記被写体人物の中心軸を決定する被写体人物中心軸決定部と、前記被写体人物中心軸決定部が決定した前記被写体人物の中心軸上で最も高い位置にある前記人物領域の座標から地面までの距離を前記被写体人物の身長と推定する推定部とを有する。
【0014】
この構成によると、被写体人物の水平方向の中心軸と前後方向の中心軸が求まると、各中心軸を通る平面の交線として被写体人物の中心軸を求めることができる。このため、被写体人物の中心軸を正確に求めることができる。被写体人物の中心軸を正確に求めることができると、被写体人物の身長を正確に推定することができる。
【0015】
また、前記水平方向中心軸決定部は、前記正面画像において横軸が水平方向の座標を示し、縦軸が各水平方向の座標を有する前記人物領域の画素の度数を示す第1ヒストグラムを生成する第1ヒストグラム生成部と、前記第1ヒストグラム生成部が生成した前記第1ヒストグラムにおける最大度数を算出する第1最大度数算出部と、前記第1最大度数算出部が算出した前記最大度数に1未満の第1所定係数を掛けた値である第1積を算出する第1積算出部と、前記第1積算出部が算出した前記第1積以上の度数を有する水平方向の座標の最小値と最大値との平均値を水平方向の座標とする前記被写体人物の高さ方向の軸を、前記被写体の水平方向の中心軸と決定する第1軸決定部とを有してもよい。
【0016】
例えば、被写体人物が手を挙げていると、その部分の画素数が大きくなるため、第1ヒストグラムにおいて手の部分の度数が大きくなってしまう。このため、最大度数をそのまま用いて水平方向の中心軸を決定すると、挙げた手の部分が中心軸になってしまう。しかし、この構成では、最大度数に1未満の第1所定係数を掛けた値である第1積を計算している。このため、第1積以上の度数を有する座標は、人物領域の胴付近の座標を示す。よって、第1積以上の度数を有する座標の最小値と最大値との平均値から水平方向の中心軸を決定することにより、正確に水平方向の中心軸を決定することができる。
【0017】
また、前記前後方向中心軸決定部は、前記側面画像において横軸が前後方向の座標を示し、縦軸が各前後方向の座標を有する前記人物領域の画素の度数を示す第2ヒストグラムを生成する第2ヒストグラム生成部と、前記第2ヒストグラム生成部が生成した前記第2ヒストグラムにおける最大度数を算出する第2最大度数算出部と、前記第2最大度数算出部が算出した前記最大度数に1未満の第2所定係数を掛けた値である第2積を算出する第2積算出部と、前記第2積算出部が算出した前記第2積以上の度数を有する前後方向の座標の最小値と最大値との平均値を前後方向の座標とする前記被写体人物の高さ方向の軸を、前記被写体の前後方向の中心軸と決定する第2軸決定部とを有してもよい。
【0018】
例えば、被写体人物が手を挙げていると、その部分の画素数が大きくなるため、第2ヒストグラムにおいて手の部分の度数が大きくなってしまう。このため、最大度数をそのまま用いて前後方向の中心軸を決定すると、挙げた手の部分が中心軸になってしまう。しかし、この構成では、最大度数に1未満の第2所定係数を掛けた値である第2積を計算している。このため、第2積以上の度数を有する座標は、人物領域の胴付近の座標を示す。よって、第2積以上の度数を有する座標の最小値と最大値との平均値から前後方向の中心軸を決定することにより、正確に前後方向の中心軸を決定することができる。
【0019】
また、前記検出部は、前フレームの距離画像について決定された三次元空間中での頭部の位置と同じ位置から第1所定距離内に含まれる前記人物領域の座標のうち、高さ方向に最も高い位置の座標から高さ方向に第2所定距離下がった位置を含む所定範囲内の前記人物領域の平均座標を算出する平均座標算出部と、前記平均座標算出部が算出した前記人物領域の平均座標から高さ方向に前記第2所定距離上がった位置に、前記骨格モデルの頭部を当てはめる頭位置設定部とを有してもよい。
【0020】
頭髪部分では拡散反射が起き易いため、距離の精度が悪い。しかし、この構成によると、前フレームの頭部の位置に近い位置から第2所定距離下がった位置の周辺において、人物領域の平均座標を算出し、平均座標から第2所定距離上がった位置を頭部の位置とすることができる。前フレームの頭部の位置に近い位置から第2所定距離下がった位置の周辺は人物の顔の位置と考えられ距離が正確に求められている。このため、平均座標は、正確な顔の位置を表している。よって、顔の位置を基準として正確に頭部の位置を算出することができる。
【0021】
また、前記検出部は、さらに、前記頭位置設定部が設定した前記骨格モデルの頭部の位置を基準として、前記被写体人物中心軸決定部が決定した前記被写体人物の中心軸上に前記骨格モデルの腰部の位置を設定する腰位置設定部を有してもよい。
【0022】
この構成によると、腰部が被写体人物の中心軸上にあると考えている。このため、頭部の位置を基準として腰部の位置を決定することができる。
【0023】
また、前記検出部は、さらに、前記頭位置設定部が設定した前記骨格モデルの頭部の位置と前記腰位置設定部が設定した前記骨格モデルの腰部の位置とから前記被写体人物の傾き角度を算出する傾き角度算出部と、前記傾き角度算出部が算出した前記被写体人物の傾き角度に基づいて定められる首の曲がり角度だけ、前記骨格モデルの首の位置を前記被写体人物の傾きとは逆方向に傾ける首傾き設定部とを有してもよい。
【0024】
この構成によると、被写体人物の傾きと逆方向に首を傾けるようにしている。このため、自然な首の傾きを推定することができる。
【0025】
また、前記検出部は、さらに、当てはめた前記骨格モデルに基づいて、前記人物領域決定部が決定した前記人物領域から少なくとも頭および胴を除いた領域の外接矩形領域を取得する領域取得部と、前記領域取得部が取得した外接矩形領域のうち、前フレームの距離画像について右腕と判断されている外接矩形領域と重なり合いを有し、かつ前記骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという右腕移動条件を満たす外接矩形領域の位置に、前記被写体人物の右腕が移動したと判断し、当該位置に前記骨格モデルの右腕を当てはめる右腕移動判断部と、前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について左腕と判断されている外接矩形領域と重なり合いを有し、かつ前記骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという左腕移動条件を満たす外接矩形領域の位置に、前記被写体人物の左腕が移動したと判断し、当該位置に前記骨格モデルの左腕を当てはめる左腕移動判断部とを有してもよい。
【0026】
この構成によると、前フレームにおいて右腕と判断されている外接矩形領域と重なっており、かつ、右肩位置を基準に右肘の稼動範囲と重なり合いを有する外接矩形領域については右腕の可能性が高いため、右腕と判断することができる。同様に左腕も判断することができる。
【0027】
また、前記検出部は、さらに、前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について右腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、前記骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという右腕出現条件を満たす外接矩形領域の位置に、前記被写体人物の右腕が出現したと判断し、当該位置に前記骨格モデルの右腕を当てはめる右腕出現判断部と、前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について左腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、前記骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという左腕出現条件を満たす外接矩形領域の位置に、前記被写体人物の左腕が出現したと判断し、当該位置に前記骨格モデルの左腕を当てはめる左腕出現判断部とを有してもよい。
【0028】
右腕出現判断部は、右腕以外の部分と判断されている部分と重なり合いを有していないという条件を満たすことをチェックすることにより、右腕以外の可能性がないということを判断している。このため、右腕出現判断部は、右腕以外の可能性がない外接矩形領域の中から右肘の稼動範囲との重なり部分の体積が最大となるものを決定することにより、右腕の出現を確実に判断することができる。同様に、左腕出現判断部は、左腕の出現を確実に判断することができる。
【0029】
また、前記検出部は、さらに、前記前フレームの距離画像について前記被写体人物の右腕および左腕が出現していない場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕出現条件および前記左腕出現条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、前記被写体人物の両腕が結合していると判断し、当該位置に前記骨格モデルの両腕を結合した状態で当てはめる第1結合判断部を有してもよい。
【0030】
前フレームで両腕が出現していないにもかかわらず、現フレームにおいて左腕出現条件および右腕出現条件を満たす外接矩形領域が存在する場合には、両手を繋いだ状態で両腕を被写体人物の前に出したと判断することができる。
【0031】
また、前記検出部は、さらに、前記前フレームの距離画像について前記被写体人物の右腕および左腕が別個に出現している場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件および前記左腕移動条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、前記被写体人物の両腕が結合していると判断し、当該位置に前記骨格モデルの両腕を結合した状態で当てはめる第2結合判断部を有してもよい。
【0032】
前フレームで両腕が別々に見えているにもかかわらず、現フレームにおいて左腕出現条件および右腕出現条件を満たす外接矩形領域が存在する場合には、離れていた両手を繋いだと判断することができる。
【0033】
また、前記検出部は、さらに、前記前フレームの距離画像について前記被写体人物の両腕が結合している場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件を満たす外接矩形領域と前記左腕移動条件を満たす外接矩形領域とが別個に存在する場合には、前記被写体人物の両腕が分離して、前記右腕移動条件を満たす外接矩形領域の位置に前記被写体人物の右腕が移動したと判断し、当該位置に前記骨格モデルの右腕を当てはめ、前記左腕移動条件を満たす外接矩形領域の位置に前記被写体人物の左腕が移動したと判断し、当該位置に前記骨格モデルの左腕を当てはめる第1分離判断部を有してもよい。
【0034】
前フレームで両腕が結合しているにもかかわらず、現フレームにおいて左腕出現条件を満たす外接矩形領域と右腕出現条件を満たす外接矩形領域とが別個に存在する場合には、繋いでいた両手が分離したと判断することができる。
【0035】
また、前記検出部は、さらに、前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件を満たす外接矩形領域が存在しない場合には、前記被写体人物の右腕が消滅したと判断し、前記骨格モデルの右腕を所定右腕位置に移動させ、前記左腕移動条件を満たす外接矩形領域が存在しない場合には、前記被写体人物の左腕が消滅したと判断し、前記骨格モデルの左腕を所定左腕位置に移動させる消滅判断部を有してもよい。
【0036】
右腕移動条件を満たす外接矩形領域が存在しない場合には、右腕が胴体にくっつけられたと判断でき、そのような位置に右腕を移動させることができる。左腕についても同様に胴体にくっついた位置に移動させることができる。
【0037】
また、前記検出部は、さらに、右腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から前記骨格モデルにおける右肩から最も遠い位置を右手の位置と判断し、当該位置に前記骨格モデルの右手を当てはめる右手判断部と、左腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から前記骨格モデルにおける左肩から最も遠い位置を左手の位置と判断し、当該位置に前記骨格モデルの左手を当てはめる左手判断部とを有してもよい。
【0038】
腕の領域の外接領域の上面、左面、右面および前面のいずれかに最も近い位置を手の先としており、下面および背面は考慮していない。被写体人物の輪郭部分においては、人物の下方向および後ろ方向にノイズが発生するためである。
【0039】
また、前記検出部は、さらに、前記被写体人物の両腕が結合している場合において、前記両腕の先端から第3所定距離内に含まれる前記人物領域を正面から見た像である2次元の正面投影画像において、両腕が離れていれば前記被写体人物の両腕は分離していると判断し、前記骨格モデルの両腕を分離させる第2分離判断部を有してもよい。
【0040】
両腕の先端部分のみを投影した正面投影画像を用いることより、両腕の先端部分以外の影響を受けることなく、両腕が分離しているか否かを正確に判断することができる。
【0041】
また、前記検出部は、さらに、前記骨格モデルにおける恥骨部よりも下の位置において、当該恥骨部から前記人物領域の先端までの距離が、前記骨格モデルにおける脚の長さに対応する所定の長さしきい値よりも大きい場合に、前記人物領域の先端が前記被写体人物の脚の先端であると判断し、前記人物領域の先端に前記骨格モデルの脚の先端を当てはめる脚判断部を有してもよい。
【0042】
人物の脚の先端は通常恥骨部よりも下の位置にあると考えられるため、恥骨部よりも下の位置から脚の先端を求めることにより、正確に脚の先端を求めることができる。
【0043】
また、前記検出部は、さらに、前記骨格モデルにおいて恥骨部を基準として膝となり得る距離に存在する前記人物領域の座標のうち、最も高さが高い座標に前記被写体人物の膝があると判断し、前記最も高さが高い座標に前記骨格モデルの膝部を当てはめる膝判断部を有してもよい。
【0044】
恥骨部を基準とすると膝の候補領域を絞ることができる。このため、候補領域の中で最も高い位置に膝があると判断することにより、正確に膝の位置を判断することができる。
【0045】
また、前記検出部は、さらに、現フレームにおいて当てはめた骨格モデルの各座標を、当該座標と当該座標に対応する前フレームの距離画像における骨格モデルの座標との間の距離が大きいほど前記現フレームの座標に近づき、かつ前記距離が小さいほど前記前フレームの座標に近づくような、前記現フレームの座標と前記前フレームの座標との間の座標に補正する補正部を有してもよい。
【0046】
このように骨格モデルの各座標を補正することにより、関節位置が急激に動いたほど、現フレームの座標に近づくような補正後の座標が得られ、関節位置がゆっくりと動いたほど、前フレームの座標に近づくような補正後の座標が得られる。よって、滑らかな骨格モデルの動きが得られる。
【0047】
また、前記距離画像取得部は、取得した前記距離画像上で所定サイズのウィンドウを走査し、当該ウィンドウ内の中心画素が示す距離との距離の差が所定の距離しきい値以下となる当該ウィンドウ内の前記中心画素を除く画素数を計数し、計数した前記画素数が所定の画素数しきい値未満であれば前記中心画素をノイズとして除去するノイズ除去部を有してもよい。
【0048】
人物領域においては近傍の画素同士は似たような距離を有すると考えられる。このため、中心画素の近傍に、中心画素の距離と似ている画素が少なければノイズと判断することができる。
【0049】
また、前記距離しきい値は、前記ウィンドウ内の前記中心画素ごとに設定され、当該中心画素が示す距離が大きいほど大きな値に設定されてもよい。
【0050】
カメラに近い位置では距離の分解能が高く、遠い位置では距離の分解能が低い。このため、中心画素が示す距離に応じて距離しきい値を設定することにより、距離の分解能に依存することなくノイズを判断することができる。
【0051】
また、前記人物領域決定部は、前記座標計算部が計算した物体の座標の各々について、当該座標と当該座標の近傍の2つの座標とを含む面の法線ベクトルが、前記カメラの撮像面を含む平面である有効角度面と交わる場合に、当該座標を物体の座標である物体座標と判断し、前記法線ベクトルが前記有効角度面と交わらない場合に、当該座標を前記物体座標ではないと判断する物体座標判断部と、三次元空間を各々が所定体積を有する複数のブロックに分割したときに、互いに隣接する、前記物体座標判断部が判断した物体座標を含むブロックのラベルが同一のラベルとなるように、前記複数のブロックの各々にラベル付けを行うラベリング処理部と、前記ラベリング処理部がラベル付けを行なったラベルごとに、当該ラベルが付されたブロックの体積の合計値が前記体積しきい値以上の場合に、当該ラベルが付されたブロックを人物領域と決定する決定部とを有してもよい。
【0052】
上記法線ベクトルが有効角度面と交わっている場合には、法線ベクトルがカメラの方向を向いていると判断することができる。法線ベクトルがカメラの方向を向いている面は、物体の面の一部であると考えることができるため、座標計算部が計算した物体の座標が正確に物体座標であるか否かを判断することができる。
【0053】
なお、本発明は、このような特徴的な処理部を備える姿勢検出装置として実現することができるだけでなく、姿勢検出装置に含まれる特徴的な処理部が実行する処理をステップとする姿勢検出方法として実現することができる。また、姿勢検出装置に含まれる特徴的な処理部としてコンピュータを機能させるためのプログラムまたは姿勢検出方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのようなプログラムを、CD−ROM(Compact Disc-Read Only Memory)等のコンピュータ読取可能な非一時的な記録媒体やインターネット等の通信ネットワークを介して流通させることができるのは、言うまでもない。また、姿勢検出装置と距離画像カメラとを備える姿勢検出システムとして実現することもできる。
【発明の効果】
【0054】
本発明によると、人物にマーカーを設置することなく、人物の姿勢を高精度で検出することができる。
【図面の簡単な説明】
【0055】
【図1】姿勢検出装置を含む姿勢検出システムの利用シーンを説明するための図である。
【図2】距離画像カメラの概観図である。
【図3】距離画像カメラによる距離計測の原理を説明するための図である。
【図4】(a)は、通常のカメラを用いて被写体を撮影した画像の一例を示す図である。(b)は、(a)と同一位置を撮影した距離画像の一例を示す図である。
【図5】本発明の実施の形態に係る姿勢検出装置の構成を示すブロック図である。
【図6】骨格モデルの一例を示す図である。
【図7】人物領域決定部の構成を示すブロック図である。
【図8】姿勢検出部の構成を示すブロック図である。
【図9】身長推定部の構成を示すブロック図である。
【図10】水平方向中心軸決定部の構成を示すブロック図である。
【図11】前後方向中心軸決定部の構成を示すブロック図である。
【図12】検出部の構成を示すブロック図である。
【図13】姿勢検出処理の全体的な流れを示すフローチャートである。
【図14】座標計算処理(図13のS1)の詳細なフローチャートである。
【図15】距離画像カメラの撮像範囲内の人物検出エリアを示す図である。
【図16】ノイズ除去処理(図14のS11)の詳細なフローチャートである。
【図17】(a)は距離画像の一例を示す図である。(b)はノイズとして除去された画素位置を白い点で示した画像を示す図である。
【図18】人物の輪郭部分に発生するノイズについて説明するための図である。(a)、(b)および(c)は、図4(b)に示した距離画像から得られる三次元空間中の座標位置を、人物の正面、側面、上面からそれぞれ見た図である。
【図19】人物領域決定処理(図13のS2)の詳細なフローチャートである。
【図20】距離画像カメラが人物を撮像している状態を示す図である。
【図21】距離画像カメラと三次元空間中に存在する座標計算部が計算した物体の座標との関係を示す図である。
【図22】着目している座標が物体座標かノイズ座標かを判断する方法を説明するための図である。
【図23】三角パッチを生成する方法を説明するための図である。
【図24】有効角度面を説明するための図である。
【図25】法線ベクトルによる人物領域決定処理(図19のS21)の詳細なフローチャートである。
【図26】法線ベクトルによる人物領域決定処理(図25)の結果の一例を示す図である。(a)は、法線ベクトルによる人物領域決定処理前の画像を示す図である。(b)は、S215の処理後の画像を示す図である。(c)は、最終的な人物領域の画像を示す図である。
【図27】姿勢検出処理(図13のS3)の前半の詳細なフローチャートである。
【図28】(a)は、被写体人物を通常のカメラで撮像した画像の一例を示す図である。(b)は、(a)に示す画像に対応する人物領域の側面画像の図である。(c)は、(a)に示す画像に対応する人物領域の正面画像の図である。
【図29】身長推定処理(図27のS34)の詳細なフローチャートである。
【図30】身長推定処理を説明するための図である。(a)は、正面画像の一例を示す図である。(b)は、第1ヒストグラム生成部が(a)の正面画像から生成したヒストグラムの一例を示す図である。
【図31】姿勢検出処理(図13のS3)の後半の詳細なフローチャートである。
【図32】頭部位置設定処理(図31のS42)の詳細なフローチャートである。
【図33】頭部位置設定処理を説明するための図である。
【図34】四肢の外接矩形領域を取得する処理(図31のS46)を説明するための図である。
【図35】(1)移動、(2)出現、(3)結合、(4)分離および(5)消滅の5つの状態の判断処理の実行の可否の判断基準を示すフローチャートである。
【図36】右手判断部または左手判断部による手の先の位置判定処理を説明するための図である。
【図37】第2分離判断部による手の先の位置判定処理を説明するための図である。(a)は、被写体人物を撮像した画像の一例を示す図である。(b)は、(a)の画像に対応する距離画像を示す図である。(c)は、(b)の距離画像に基づいて得られる両腕の先端から第3所定距離内に含まれる人物領域の正面投影画像を示す図である。(d)は、被写体人物を撮像した画像の一例を示す図である。(e)は、(d)の画像に対応する距離画像を示す図である。(f)は、(e)の距離画像に基づいて得られる両腕の先端から第3所定距離内に含まれる人物領域の正面投影画像を示す図である。
【図38】肘の候補領域を説明するための図である。
【図39】肘の位置判定処理を説明するための図である。
【図40】脚の先端の当てはめ処理を説明するための図である。
【図41】膝の当てはめ処理を説明するための図である。
【図42】上がっている膝と膝の上がり角度の判定処理を説明するための図である。
【図43】骨格モデルの各関節の座標の補正処理を説明するための図である。
【発明を実施するための形態】
【0056】
以下、本発明の実施の形態に係る姿勢検出装置について図面を参照しながら説明する。
図1は、姿勢検出装置を含む姿勢検出システムの利用シーンを説明するための図である。
【0057】
姿勢検出システムは、姿勢検出装置100と、距離画像カメラ200とを含む。姿勢検出装置100は、被写体までの距離を計測し、距離画像を撮像することができる距離画像カメラ200に接続され、距離画像カメラ200より距離画像を取得する。姿勢検出装置100は、取得した距離画像から被写体となる人物300の姿勢を検出する。距離画像カメラ200は地面に平行な面に対して一定の煽り角θだけ傾けられ、上方から地面を撮影可能な位置に配置されている。なお、姿勢検出装置100は、典型的にはCPUおよびメモリを備えるコンピュータにより実現され、後述する各種処理を実現するためのプログラムをCPU上で動作することにより、姿勢検出装置100としての機能を果たす。
【0058】
なお、姿勢検出システムにおいて、距離画像カメラ200の撮像領域310内には、机302や椅子等の障害物は含まれないものとする。また、距離画像カメラ200の真下の地面上の点を原点O(0,0,0)とし、水平方向をx軸方向、高さ方向をy軸方向、奥行き方向をz軸方向とする。以下では、原点O、x軸、y軸およびz軸で三次元座標系を規定する。
【0059】
図2は、距離画像カメラ200の概観図である。
距離画像カメラ200は、その前面に規則的に配置された複数のLED(Light Emitting Diode)202と、レンズ204とを含む。LED202からは被写体に向かって光が照射され、その反射光がレンズ204に集光される。
【0060】
図3は、距離画像カメラ200による距離計測の原理を説明するための図である。
複数のLED202から一斉に照射された光は、被写体(例えば、人物300)で反射され、反射された光がレンズ204によって集光される。この時、LED202から光が出射してからレンズ204へ反射光が到達するまでの時間は被写体の位置により異なる。つまり、被写体が距離画像カメラ200に近いほど反射光の到達時間は短くなり、被写体が距離画像カメラ200に遠いほど反射光の到達時間は長くなる。距離画像カメラ200は、到達時間を画素ごとに計測することによって、被写体までの距離を画素ごとに出力する。つまり、距離画像カメラ200は、被写体までの距離を画素における輝度値で表した距離画像を出力する。図4(a)は、通常のカメラを用いて被写体を撮影した画像の一例を示す図である。図4(a)に示すように、画像は、被写体として二人の人物を含むものとする。図4(b)は、図4(a)と同一位置を撮影した距離画像の一例を示す図である。距離画像では、距離画像カメラ200までの距離が近いものほど輝度値が小さく(輝度が暗く)、距離が遠いものほど輝度値が大きい(輝度が明るい)ものとする。図4(b)に示すように前側の人物の方が後ろ側の人物よりも輝度値が小さくなっていることが分かる。
【0061】
以下では、姿勢検出装置の構成について説明し、その後、姿勢検出装置が実行する処理を説明する。
【0062】
図5は、本発明の実施の形態に係る姿勢検出装置の構成を示すブロック図である。
姿勢検出装置100は、距離画像取得部10と、座標計算部20と、人物領域決定部30と、姿勢検出部40と、記憶部50とを含む。
【0063】
距離画像取得部10は、各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する。例えば、距離画像取得部10は、距離画像カメラ200で得られた画像をネットワークまたは記録媒体を介して取得するインタフェースである。
【0064】
距離画像取得部10は、ノイズ除去部11を含む。
ノイズ除去部11は、取得した距離画像上で所定サイズのウィンドウを走査し、当該ウィンドウ内の中心画素が示す距離との距離の差が所定の距離しきい値以下となる当該ウィンドウ内の前記中心画素を除く画素数を計数し、計数した前記画素数が所定の画素数しきい値未満であれば中心画素をノイズとして除去する。
【0065】
距離しきい値は、ウィンドウ内の中心画素ごとに設定され、当該中心画素が示す距離が大きいほど大きな値に設定される。
【0066】
座標計算部20は、距離画像取得部10が取得した距離画像に基づいて、三次元空間中での物体の座標を計算する。つまり、座標計算部20は、距離画像カメラ200の地面からの高さおよび煽り角θに基づいて、距離画像より得られる距離画像カメラ200から被写体までの距離データをアフィン変換することにより、図1で説明した三次元座標系上(三次元空間中)での物体の三次元座標を計算する。
【0067】
人物領域決定部30は、座標計算部20が計算した物体の座標(人物領域の候補座標)に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する。つまり、小さい体積の物体領域をノイズとして除去する。人物領域決定部30の詳細な構成については後述する。
【0068】
姿勢検出部40は、人物領域決定部30が決定した人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する。つまり、姿勢検出部40は、人物領域決定部30が決定した人物領域にフィットするように骨格モデルを移動させる。姿勢検出部40の詳細な構成については後述する。
【0069】
図6は、骨格モデルの一例を示す図である。骨格モデル500は、関節モデルと、関節モデル間を接続する骨モデルとから構成される。関節モデルは、頭部501と、首部502と、右肩部503と、右肘部504と、右手部505と、左肩部506と、左肘部507と、左手部508と、腰部509と、右恥骨部510と、右膝部511と、右足部512と、左恥骨部513と、左膝部514と、左足部515とを含む。
【0070】
記憶部50は、身長ごとに骨格モデルを記憶している。例えば、身長5cm間隔で骨格モデルを記憶している。
【0071】
図7は、人物領域決定部30の構成を示すブロック図である。
人物領域決定部30は、物体座標判断部31と、ラベリング処理部32と、決定部33とを含む。
【0072】
物体座標判断部31は、座標計算部20が計算した物体の座標の各々について、当該座標と当該座標の近傍の2つの座標とを含む面の法線ベクトルが、距離画像カメラ200の撮像面を含む平面である有効角度面と交わる場合に、当該座標を物体の座標である物体座標と判断し、法線ベクトルが有効角度面と交わらない場合に、当該座標を物体座標ではないと判断する。この処理により、物体座標判断部31はノイズの除去を行う。
【0073】
ラベリング処理部32は、三次元空間を各々が所定体積を有する複数のブロックに分割したときに、互いに隣接する、物体座標判断部31が判断した物体座標を含むブロックのラベルが同一のラベルとなるように、前記複数のブロックの各々にラベル付けを行う。三次元空間を複数のブロックへの分割は、例えば、三次元空間をx軸方向、y軸方向およびz軸方向にそれぞれ等間隔で区切ることにより行われる。
【0074】
決定部33は、ラベリング処理部32がラベル付けを行なったラベルごとに、当該ラベルが付されたブロックの体積の合計値が体積しきい値以上の場合に、当該ラベルが付されたブロックを人物領域と決定する。つまり、決定部33は、人物の体積に相当する体積を有するブロックを人物領域と決定する。
【0075】
図8は、姿勢検出部40の構成を示すブロック図である。
姿勢検出部40は、身長推定部41と、選択部42と、検出部43とを含む。
【0076】
身長推定部41は、人物領域の高さから被写体人物の身長を推定する。身長推定部41の詳細な構成については後述する。
【0077】
選択部42は、記憶部50に記憶されている骨格モデルの中から、身長推定部41で推定された身長に最も近い身長の骨格モデルを選択する。
【0078】
検出部43は、人物領域決定部30で決定された人物領域に、選択部42が選択した骨格モデルを当てはめることにより被写体人物の姿勢を検出する。検出部43の詳細な構成については後述する。
【0079】
図9は、身長推定部41の構成を示すブロック図である。
身長推定部41は、水平方向中心軸決定部411と、前後方向中心軸決定部412と、被写体人物中心軸決定部413と、推定部414とを含む。
【0080】
水平方向中心軸決定部411は、人物領域を正面から見た像である二次元の正面画像において水平方向の中心を通る高さ方向の軸を、被写体人物の水平方向の中心軸と決定する。水平方向中心軸決定部411の詳細な構成については後述する。
【0081】
前後方向中心軸決定部412は、人物領域を側面から見た像である二次元の側面画像において水平方向の中心を通る高さ方向の軸を、被写体人物の前後方向の中心軸と決定する。前後方向中心軸決定部412の詳細な構成については後述する。
【0082】
被写体人物中心軸決定部413は、水平方向中心軸決定部411および前後方向中心軸決定部412がそれぞれ決定した被写体人物の水平方向および前後方向の中心軸に基づいて、被写体人物の中心軸を決定する。
【0083】
推定部414は、被写体人物中心軸決定部413が決定した被写体人物の中心軸上で最も高い位置にある人物領域の座標から地面までの距離を被写体人物の身長と推定する。
【0084】
図10は、水平方向中心軸決定部411の構成を示すブロック図である。
水平方向中心軸決定部411は、第1ヒストグラム生成部4111と、第1最大度数算出部4112と、第1積算出部4113と、第1軸決定部4114とを含む。
【0085】
第1ヒストグラム生成部4111は、正面画像において横軸が水平方向の座標を示し、縦軸が各水平方向の座標を有する人物領域の画素の度数を示す第1ヒストグラムを生成する。
【0086】
第1最大度数算出部4112は、第1ヒストグラム生成部4111が生成した第1ヒストグラムにおける最大度数を算出する。
【0087】
第1積算出部4113は、第1最大度数算出部4112が算出した最大度数に1未満の第1所定係数を掛けた値である第1積を算出する。
【0088】
第1軸決定部4114は、第1積算出部4113が算出した第1積以上の度数を有する水平方向の座標の最小値と最大値との平均値を水平方向の座標とする被写体人物の高さ方向の軸を、被写体の水平方向の中心軸と決定する。
【0089】
図11は、前後方向中心軸決定部412の構成を示すブロック図である。
前後方向中心軸決定部412は、第2ヒストグラム生成部4121と、第2最大度数算出部4122と、第2積算出部4123と、第2軸決定部4124とを含む。
【0090】
第2ヒストグラム生成部4121は、側面画像において横軸が前後方向の座標を示し、縦軸が各前後方向の座標を有する人物領域の画素の度数を示す。
【0091】
第2最大度数算出部4122は、第2ヒストグラム生成部4121が生成した第2ヒストグラムにおける最大度数を算出する。
【0092】
第2積算出部4123は、第2最大度数算出部4122が算出した最大度数に1未満の第2所定係数を掛けた値である第2積を算出する。
【0093】
第2軸決定部4124は、第2積算出部4123が算出した第2積以上の度数を有する前後方向の座標の最小値と最大値との平均値を前後方向の座標とする被写体人物の高さ方向の軸を、被写体の前後方向の中心軸と決定する。
【0094】
図12は、検出部43の構成を示すブロック図である。
検出部43は、平均座標算出部431と、頭位置設定部432と、腰位置設定部433と、傾き角度算出部434と、首傾き設定部435と、領域取得部436と、右腕移動判断部437と、左腕移動判断部438と、右腕出現判断部439と、左腕出現判断部440と、第1結合判断部441と、第2結合判断部442と、第1分離判断部443と、消滅判断部444と、右手判断部445と、左手判断部446と、第2分離判断部447と、脚判断部448と、膝判断部449と、補正部450とを含む。
【0095】
平均座標算出部431は、前フレームの距離画像について決定された三次元空間中での頭部の位置と同じ位置から第1所定距離内に含まれる人物領域の座標のうち、高さ方向に最も高い位置の座標から高さ方向に第2所定距離下がった位置を含む所定範囲内の人物領域の平均座標を算出する。なお、距離画像はフレームごとに出力されることにより、動画像を形成する。また、前フレームとは、典型的には1フレーム前であるが、2フレーム以上前であってもよい。
【0096】
頭位置設定部432は、平均座標算出部431が算出した人物領域の平均座標から高さ方向に第2所定距離上がった位置に、骨格モデルの頭部を当てはめる。
【0097】
腰位置設定部433は、頭位置設定部432が設定した骨格モデルの頭部の位置を基準として、被写体人物中心軸決定部413が決定した被写体人物の中心軸上に骨格モデルの腰部の位置を設定する。
【0098】
傾き角度算出部434は、頭位置設定部432が設定した骨格モデルの頭部の位置と腰位置設定部が設定した骨格モデルの腰部の位置とから被写体人物の傾き角度を算出する。
【0099】
首傾き設定部435は、傾き角度算出部が算出した被写体人物の傾き角度に基づいて定められる首の曲がり角度だけ、骨格モデルの首の位置を前記被写体人物の傾きとは逆方向に傾ける。
【0100】
領域取得部436は、当てはめた骨格モデルに基づいて、人物領域決定部30が決定した人物領域から少なくとも頭および胴を除いた領域の外接矩形領域を取得する。
【0101】
右腕移動判断部437は、前フレームから現フレームの間に右腕が移動したか否かを判断する。つまり、右腕移動判断部437は、領域取得部が取得した外接矩形領域のうち、前フレームの距離画像について右腕と判断されている外接矩形領域と重なり合いを有し、かつ骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという右腕移動条件を満たす外接矩形領域の位置に、被写体人物の右腕が移動したと判断し、当該位置に骨格モデルの右腕を当てはめる。
【0102】
左腕移動判断部438は、前フレームから現フレームの間に左腕が移動したか否かを判断する。つまり、左腕移動判断部438は、領域取得部436が取得した外接矩形領域のうち、前フレームの距離画像について左腕と判断されている外接矩形領域と重なり合いを有し、かつ骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという左腕移動条件を満たす外接矩形領域の位置に、被写体人物の左腕が移動したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【0103】
右腕出現判断部439は、前フレームで出現していなかった右腕が現フレームにおいて出現したか否かを判断する。つまり、右腕出現判断部439は、領域取得部436が取得した外接矩形領域のうち、前フレームの距離画像について右腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという右腕出現条件を満たす外接矩形領域の位置に、被写体人物の右腕が出現したと判断し、当該位置に骨格モデルの右腕を当てはめる。
【0104】
左腕出現判断部440は、前フレームで出現していなかった左腕が現フレームにおいて出現したか否かを判断する。つまり、左腕出現判断部440は、領域取得部436が取得した外接矩形領域のうち、前フレームの距離画像について左腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという左腕出現条件を満たす外接矩形領域の位置に、被写体人物の左腕が出現したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【0105】
第1結合判断部441は、前フレームの距離画像について被写体人物の右腕および左腕が出現していない場合において、領域取得部436が取得した外接矩形領域のうち、右腕出現条件および左腕出現条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、被写体人物の両腕が結合していると判断し、当該位置に骨格モデルの両腕を結合した状態で当てはめる。
【0106】
第2結合判断部442は、前フレームの距離画像について被写体人物の右腕および左腕が別個に出現している場合において、領域取得部436が取得した外接矩形領域のうち、右腕移動条件および左腕移動条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、被写体人物の両腕が結合していると判断し、当該位置に骨格モデルの両腕を結合した状態で当てはめる。
【0107】
第1分離判断部443は、前フレームで結合していた両腕が現フレームで分離したか否かを判断する。つまり、第1分離判断部443は、前フレームの距離画像について被写体人物の両腕が結合している場合において、領域取得部436が取得した外接矩形領域のうち、右腕移動条件を満たす外接矩形領域と左腕移動条件を満たす外接矩形領域とが別個に存在する場合には、被写体人物の両腕が分離して、右腕移動条件を満たす外接矩形領域の位置に被写体人物の右腕が移動したと判断し、当該位置に骨格モデルの右腕を当てはめ、左腕移動条件を満たす外接矩形領域の位置に被写体人物の左腕が移動したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【0108】
消滅判断部444は、領域取得部436が取得した外接矩形領域のうち、右腕移動条件を満たす外接矩形領域が存在しない場合には、被写体人物の右腕が消滅したと判断し、骨格モデルの右腕を所定右腕位置に移動させ、左腕移動条件を満たす外接矩形領域が存在しない場合には、被写体人物の左腕が消滅したと判断し、骨格モデルの左腕を所定左腕位置に移動させる。
【0109】
右手判断部445は、右腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から骨格モデルにおける右肩から最も遠い位置を右手の位置と判断し、当該位置に骨格モデルの右手を当てはめる。
【0110】
左手判断部446は、左腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から骨格モデルにおける左肩から最も遠い位置を左手の位置と判断し、当該位置に骨格モデルの左手を当てはめる。
【0111】
第2分離判断部447は、結合していると判断された両腕が本当に結合しているかを再度判断する。つまり、第2分離判断部447は、被写体人物の両腕が結合している場合において、両腕の先端から第3所定距離内に含まれる人物領域を正面から見た像である2次元の正面投影画像において、両腕が離れていれば被写体人物の両腕は分離していると判断し、骨格モデルの両腕を分離させる。
【0112】
脚判断部448は、骨格モデルにおける恥骨部よりも下の位置において、当該恥骨部から人物領域の先端までの距離が、骨格モデルにおける脚の長さに対応する所定の長さしきい値よりも大きい場合に、人物領域の先端が被写体人物の脚の先端であると判断し、人物領域の先端に骨格モデルの脚の先端を当てはめる。
【0113】
膝判断部449は、骨格モデルにおいて恥骨部を基準として膝となり得る距離に存在する人物領域の座標のうち、最も高さが高い座標に被写体人物の膝があると判断し、最も高さが高い座標に骨格モデルの膝部を当てはめる。
【0114】
補正部450は、現フレームにおいて当てはめた骨格モデルの各座標を、当該座標と当該座標に対応する前フレームの距離画像における骨格モデルの座標との間の距離が大きいほど現フレームの座標に近づき、かつ距離が小さいほど前フレームの座標に近づくような、現フレームの座標と前フレームの座標との間の座標に補正する。
【0115】
次に、姿勢検出装置100が実行する姿勢検出処理について説明する。
図13は、姿勢検出処理の全体的な流れを示すフローチャートである。
【0116】
距離画像取得部10は、各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する。また、座標計算部20は、距離画像取得部10が取得した距離画像に基づいて、三次元空間中での物体の座標を計算する(S1)。座標計算処理(S1)の詳細については後述する。
【0117】
人物領域決定部30は、座標計算部20が計算した物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する(S2)。つまり、小さい体積の物体領域をノイズとして除去する。人物領域決定処理(S2)の詳細については後述する。
【0118】
姿勢検出部40は、人物領域決定部30が決定した人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する(S3)。つまり、姿勢検出部40は、人物領域決定部30が決定した人物領域にフィットするように骨格モデルを移動させる。姿勢検出処理(S3)は、S2の処理で決定された人物領域ごとに実行される。なお、姿勢検出処理(S3)の詳細については後述する。
【0119】
図14は、座標計算処理(図13のS1)の詳細なフローチャートである。
ノイズ除去部11は、距離画像取得部10が取得した距離画像の中からノイズを除去する(S11)。ノイズ除去処理(S11)の詳細については後述する。
【0120】
座標計算部20は、距離画像カメラ200の地面からの高さおよび煽り角θに基づいて、距離画像より得られる距離画像カメラ200から被写体までの距離データをアフィン変換することにより、図1で説明した三次元座標系上(三次元空間中)での物体の三次元座標を計算する(S12)。
【0121】
座標計算部20は、三次元空間中に設定されている人物検出エリア内の座標を選択する(S13)例えば、図15に示すように、距離画像カメラ200の撮像範囲内に人物検出エリア311が予め設定されているものとし、座標計算部20は、人物検出エリア311内の座標のみを人物領域の候補座標(物体の座標)として選択する。
【0122】
図16は、ノイズ除去処理(図14のS11)の詳細なフローチャートである。
ノイズ除去処理は、距離画像上の各画素について行なわれる。ただし、距離画像の上下左右の1画素分の端部については、すべてノイズと判断し、処理の対象から除かれる。
【0123】
ノイズ除去部11は、取得した距離画像上で所定サイズ(本実施の形態では3×3)のウィンドウを走査し、当該ウィンドウ内の中心画素について以下に説明するS111〜S114の処理を実行する。
【0124】
つまり、ノイズ除去部11は、中心画素における輝度値(すなわち、中心画素が示す距離)に応じて、距離しきい値を設定する(S111)。距離しきい値は、ウィンドウ内の中心画素ごとに設定され、当該中心画素が示す距離が大きいほど大きな値に設定される。
【0125】
ノイズ除去部11は、当該ウィンドウ内の中心画素が示す距離との距離の差が距離しきい値以下となる当該ウィンドウ内の前記中心画素を除く画素数を計数する(S112)。つまり、ノイズ除去部11は、中心画素が示す距離と中心画素の8近傍のそれぞれの画素が示す距離との差と距離しきい値とを比較し、8近傍の画素のうち、差が距離しきい値以下となる画素数を計数する(S112)。
【0126】
ノイズ除去部11は、計数した画素数が所定の画素数しきい値(例えば、3)未満であるか否かを判断し(S113)、上記画素数が画素数しきい値未満であれば(S113でYES)、中心画素をノイズと判断する(S114)。
【0127】
図17(a)は距離画像の一例を示し、一人の人物が撮像されている。図17(b)は、ノイズとして除去された画素位置を白い点で示した画像を示す。図17(b)の画像からも分かるように、人物の輪郭部分がノイズと判断されている。なぜならば、人物と背景との間には距離のギャップが存在し、輪郭部分においては距離が安定しない。このため、輪郭部分の画素がノイズと判断される。
【0128】
このように、人物領域においては近傍の画素同士は似たような距離を有すると考えられる。このため、中心画素の近傍に、中心画素の距離と似ている画素が少なければノイズと判断することができる。
【0129】
また、カメラに近い位置では距離の分解能が高く、遠い位置では距離の分解能が低い。このため、中心画素が示す距離に応じて距離しきい値を設定することにより、距離の分解能に依存することなくノイズを判断することができる。
【0130】
図18は、人物の輪郭部分に発生するノイズについて説明するための図である。
図18(a)、図18(b)および図18(c)は、図4(b)に示した距離画像から得られる三次元空間中の座標位置を、人物の正面、側面、上面からそれぞれ見た図である。図18(a)〜図18(c)からも分かるように人物の輪郭部分においては、人物の後ろ方向および下方向にも座標位置が示されており、これらが人物の輪郭部分に発生するノイズである。
【0131】
図19は、人物領域決定処理(図13のS2)の詳細なフローチャートである。
人物領域決定部30は、座標計算部20が計算した物体の座標(人物領域の候補座標)に基づいて、三次元空間中の各座標が物体の座標を示す物体座標であるか否かを、当該座標と当該座標の近傍の2つの座標とを含む面の法線ベクトルに基づいて判断し、物体座標を含むブロックにラベリングを施し、三次元空間中で所定の体積しきい値以上の体積を占める同一ラベルが付された物体の領域である人物領域を決定する(S21)。法線ベクトルによる人物領域決定処理(S21)の詳細については後述する。
【0132】
人物領域決定部30は、ラベルが付された人物領域のそれぞれについて以下に説明するS22およびS23の処理を実行する。つまり、人物領域決定部30は、着目人物領域と前フレームの距離画像から求められた人物領域との三次元空間中の位置を比較し、最も近い位置に存在する前フレームの人物領域に割り当てられたのと同一のラベルを着目人物領域に割り当てる(S22)。これにより、フレーム間に渡る人物の追跡を行うことができる。
【0133】
人物領域決定部30は、S21の処理において、体積しきい値未満の体積を占める同一ラベルが付された物体の領域(人物以外の領域)について、着目人物領域との統合の可否を判断する(S23)。つまり、着目人物領域の前側、上側または下側に位置し、所定の統合距離しきい値以内の距離にある人物以外の領域について、着目人物領域と同一のラベル割り当てることにより、着目人物領域の一部と判断する。この処理により、何らかの影響により途切れている人物領域をつなぎ合わせることができる。
【0134】
次に、法線ベクトルによる人物領域決定処理(図19のS21)について説明する。具体的な処理の説明に入る前に、三次元空間中の各座標が、物体の座標である物体座標であるか、ノイズの座標であるノイズ座標であるかを判断する判断方法の原理について説明する。
【0135】
図20に示すように距離画像カメラ200が人物300を撮像しているものとする。
距離画像カメラ200は、赤外線光を照射してから、照射した赤外線光の物体での反射光を受光するまでの時間を距離に変換する。これにより、距離画像カメラ200は距離画像を作成する。しかし、距離画像カメラ200の視野内であっても、物体までの距離が大きく反射光を受光するまでの時間が大きい場合や、赤外線光が届かない位置に物体がある場合には、正確な距離を取得することができない。そこで、本実施の形態では、三次元空間中で近接する3つの座標を含む平面(三角パッチ)を作成し、三角パッチの法線ベクトルを算出する。法線ベクトルの向きに基づいて、三角パッチが物体の面か否かを判断することにより、三次元空間中の各座標が物体座標かノイズ座標かの判断を行い、ノイズ座標の除去を行う。
【0136】
図21は、距離画像カメラ200と三次元空間中に存在する座標計算部20が計算した物体の座標との関係を示す図である。図21に示すように、距離画像カメラ200から三次元空間中の物体の座標601〜605へ向かうベクトルを、それぞれベクトル611〜615とする。
【0137】
距離画像カメラ200から照射された光は、距離画像カメラ200の方向に反射されるが、距離画像カメラ200に近い点と遠い点との関係から、距離画像カメラ200の近い位置にある面が遠い点を遮る場合には、その遠い点には光が当たらないため、ノイズ座標と考えられる。
【0138】
例えば、互いに近傍に位置する座標601〜603を頂点とする三角パッチ621を考える。三角パッチ621が物体の面であると考えるのであれば、ベクトル614は三角パッチ621を通過するため座標604は観測されないはずである。つまり、三角パッチ621に遮られて距離画像カメラ200から照射される光は座標604には到達しないはずである。このため、座標604はノイズ座標と考えることができる。
【0139】
しかしながら、三角パッチ621が物体の面ではない可能性もある。このため、本実施の形態では、着目している座標を頂点とする三角パッチの中に、物体の面として有効な三角パッチが含まれるか否かを判断し、有効な三角パッチが含まれる場合に着目している座標を物体座標と判断し、有効な三角パッチが含まれない場合に着目している座標をノイズ座標と判断する。以下、図22を用いて説明する。
【0140】
図22は、着目している座標が物体座標かノイズ座標かを判断する方法を説明するための図である。
【0141】
図22に示すように、三次元空間中に座標計算部20が計算した物体の座標601〜606が存在するものとする。それらの座標601〜606から、互いに近傍に位置する3つの座標を頂点とする三角パッチ621〜624が作成される。また、三角パッチ621〜624の法線ベクトルをそれぞれ法線ベクトル631〜634とする。法線ベクトルが距離画像カメラ200の方を向いていれば、その法線ベクトルに対応する三角パッチ(法線ベクトル631に対する三角パッチ621、法線ベクトル634に対する三角パッチ624)は物体の面と判断することができる。つまり、その面での反射光は距離画像カメラ200に到達すると考えることができる。一方、法線ベクトルが距離画像カメラ200の方を向いていなければ、その法線ベクトルに対応する三角パッチ(法線ベクトル632に対する三角パッチ622、法線ベクトル633に対する三角パッチ623)は物体の面ではないと考えることができる。つまり、その面での反射光は距離画像カメラ200に到達しないと考えることができる。このため、着目している座標を頂点とする三角パッチのうち物体の面の三角パッチが含まれる場合には、着目している座標を物体座標と判断し、物体の面の三角パッチが含まれない場合には、着目している座標をノイズ座標と判断する。
【0142】
より具体的には、図23に示すように、三次元空間中の座標640から、互いに近傍に位置する3つの座標を頂点とする三角パッチ641を作成する。例えば、互いに近傍に位置する3つの座標640A〜640Cを頂点とする三角パッチ641Aを作成する。
【0143】
三角パッチの法線ベクトルが距離画像カメラ200の方を向いているか否かの判断は、具体的に以下のように行う。つまり、図24に示すように距離画像カメラ200の撮像面を含む平面である有効角度面を想定し、法線ベクトルが有効角度面と交わる場合に、その法線ベクトルが距離画像カメラ200の方を向いていると判断し、法線ベクトルが有効角度面と交わらない場合に、その法線ベクトルが距離画像カメラ200の方を向いていないと判断する。
【0144】
図25は、法線ベクトルによる人物領域決定処理(図19のS21)の詳細なフローチャートである。
【0145】
物体座標判断部31は、座標計算部20が計算した物体の座標の各々について、以下のS211〜S213の処理を実行する。
【0146】
つまり、物体座標判断部31は、着目座標と着目座標の近傍の2つの座標とを頂点とする三角パッチの中から、法線ベクトルが有効角度面と交わる(有効角度面を向いている)三角パッチが存在するか否かを判断する(S211)。例えば、図22で着目座標を座標604とすると、座標604を含む3つの三角パッチ622〜624のうち、法線ベクトルが有効角度面と交わる三角パッチが存在するか否かを判断する。
【0147】
法線ベクトルが有効角度面と交わる三角パッチが存在する場合には(S211でYES)、物体座標判断部31は、着目座標を物体座標と判断する。例えば、法線ベクトル634は有効角度面と交わるため、物体座標判断部31は、座標604を物体座標と判断する(S212)。
【0148】
法線ベクトルが有効角度面と交わる三角パッチが存在しない場合には(S211でNO)、物体座標判断部31は、着目座標をノイズ座標と判断する(S213)。
【0149】
このように、法線ベクトルが有効角度面と交わっている場合には、法線ベクトルがカメラの方向を向いていると判断することができる。法線ベクトルがカメラの方向を向いている面は、物体の面の一部であると考えることができるため、座標計算部20が計算した物体の座標が正確に物体座標であるか否かを判断することができる。
【0150】
ラベリング処理部32は、三次元空間を各々が所定体積を有する複数のブロックに分割したときに、互いに隣接する、物体座標判断部31が判断した物体座標を含むブロックのラベルが同一のラベルとなるように、複数のブロックの各々にラベル付けを行う(S214)。ブロックの大きさは、例えば、7.5cm3とする。
【0151】
ラベリング処理部32は、ラベリングされたブロック内のすべての座標は物体領域の座標であると決定する(S215)。なお、ブロックの周辺の座標(ブロックから所定距離内の座標)についても物体領域の座標であると決定してもよい。この処理により、ノイズとして判断され、ノイズとして切り過ぎていた座標を、再度、物体領域の座標と判断することができる。
【0152】
決定部33は、各ラベルについて以下のS216〜S218の処理を実行する。
つまり、決定部33は、着目しているラベル(以下、「着目ラベル」という。)が付されたブロックの体積の合計値が体積しきい値以上か否かを判断する(S216)。決定部33は、上記合計値が体積しきい値以上の場合には(S216でYES)、着目ラベルが付されたブロックを人物領域と決定し(S217)、上記合計値が体積しきい値未満の場合には(S216でNO)、着目ラベルが付されたブロックを人物以外の領域と決定する(S218)。
【0153】
図26は、法線ベクトルによる人物領域決定処理(図25)の結果の一例を示す図である。図26(a)は、図25の処理前の距離画像において、物体と判断されている座標を白い画素で示した画像である。図26(a)には、人物のほか、人物の背景に存在する障害物が表示されている。
【0154】
図26(b)は、S215の処理後の画像を示しており、ラベル付けされた部分を白い画素で示している。S215の処理によりブロック内のすべての座標が物体領域の座標と判断されるため、人物領域において、図26(a)には見られる穴が埋められている。
【0155】
図26(c)は、最終的な人物領域の画像であり、人物の部分のみが人物領域と決定され、背景の部分は人物領域と決定されていないことが分かる。
【0156】
図27は、姿勢検出処理(図13のS3)の前半の詳細なフローチャートである。
身長推定部41は、処理の対象となっている人物領域を正面から見た像である二次元の正面画像と、側面から見た像である二次元の側面画像とを作成する(S31)。
【0157】
図28(a)は、被写体人物を通常のカメラで撮像した画像の一例を示す。図28(b)は、図28(a)に示す画像に対応する人物領域の側面画像であり、図28(c)は、図28(a)に示す画像に対応する人物領域の正面画像である。側面画像および正面画像においては、人物領域を白い画素で示している。
【0158】
身長推定部41は、正面画像および側面画像のそれぞれにおける人物領域の面積が、人物と想定される所定の面積範囲に含まれているか否かを判断し(S32)、含まれていなければ(S32NO)、処理の対象となっている人物領域はノイズであると判断し、人物が検出されないと判断する(S33)。
【0159】
人物領域の面積が上記所定の面積範囲に含まれている場合には(S32でYES)、身長推定部41は、正面画像および側面画像に基づいて、対象人物領域の人物(被写体人物)の中心軸および身長を推定する(S34)。身長推定処理(S34)の詳細については後述する。
【0160】
被写体人物に対する骨格モデルが作成済みでなければ(S35でNO)、身長推定部41は、被写体人物に対する身長情報が所定数集まったか否かを判断し(S36)、集まっていなければ(S36でNO)、S34で求められた身長情報をバッファに記憶する(S38)。このような処理を複数フレームにわたり行い、身長情報が所定数集まった場合には(S36でYES)、被写体人物と同一のラベルが付された人物の身長情報の所定数の平均を求めることにより、被写体人物の身長を決定する(S37)。
【0161】
選択部42は、記憶部50に記憶されている骨格モデルの中から、S37の処理で決定された身長に最も近い身長の骨格モデルを選択する(S39)。なお、同じ身長の骨格モデルが存在しない場合には、被写体人物の身長に近い骨格モデルを2つ選択し、2つの骨格モデルから、各関節位置を線形補間により求めることにより、被写体人物の身長に合致する骨格モデルを作成してもよい。
【0162】
図29は、身長推定処理(図27のS34)の詳細なフローチャートである。
以下に説明するS341〜S343の処理により、水平方向中心軸決定部411は、人物領域を正面から見た像である二次元の正面画像において水平方向の中心を通る高さ方向の軸を、被写体人物の水平方向の中心軸と決定する。
【0163】
つまり、第1ヒストグラム生成部4111は、正面画像において横軸が水平方向の座標を示し、縦軸が各水平方向の座標を有する人物領域の画素の度数を示す第1ヒストグラムを生成する(S341)。例えば、図30(a)に示すような正面画像を考えた場合、第1ヒストグラム生成部4111は、図30(b)に示すようなヒストグラムを生成する。
【0164】
第1最大度数算出部4112は、第1ヒストグラム生成部4111が生成した第1ヒストグラムにおける最大度数を算出する(S341)。
【0165】
第1積算出部4113は、第1最大度数算出部4112が算出した最大度数に1未満の第1所定係数を掛けた値である第1積を算出する(S342)。図30(b)では、第1所定係数を0.5としている。
【0166】
第1軸決定部4114は、第1積算出部4113が算出した第1積以上の度数を有する水平方向の座標の最小値と最大値との平均値を水平方向の座標とする被写体人物の高さ方向の軸を、被写体の水平方向の中心軸と決定する(S343)。図30(b)では、平均値を丸印で示しており、平均値を通るy軸方向の軸を中心軸と定めている。
【0167】
例えば、被写体人物が手を挙げていると、その部分の画素数が大きくなるため、第1ヒストグラムにおいて手の部分の度数が大きくなってしまう。このため、最大度数をそのまま用いて水平方向の中心軸を決定すると、挙げた手の部分が中心軸になってしまう。しかし、最大度数に1未満の第1所定係数(0.5)を掛けた値である第1積を計算している。このため、第1積以上の度数を有する座標は、人物領域の胴付近の座標を示す。よって、第1積以上の度数を有する座標の最小値と最大値との平均値から水平方向の中心軸を決定することにより、正確に水平方向の中心軸を決定することができる。
【0168】
次に、以下に説明するS344〜S346の処理により、前後方向中心軸決定部412は、人物領域を側面から見た像である二次元の側面画像において水平方向の中心を通る高さ方向の軸を、被写体人物の前後方向の中心軸と決定する。
【0169】
つまり、第2ヒストグラム生成部4121は、側面画像において横軸が前後方向の座標を示し、縦軸が各前後方向の座標を有する人物領域の画素の度数を示す(S344)。
【0170】
第2最大度数算出部4122は、第2ヒストグラム生成部4121が生成した第2ヒストグラムにおける最大度数を算出する(S344)。
【0171】
第2積算出部4123は、第2最大度数算出部4122が算出した最大度数に1未満の第2所定係数を掛けた値である第2積を算出する(S345)。例えば、第2所定係数は、第1所定係数と同じ値とする。
【0172】
第2軸決定部4124は、第2積算出部4123が算出した第2積以上の度数を有する前後方向の座標の最小値と最大値との平均値を前後方向の座標とする被写体人物の高さ方向の軸を、被写体の前後方向の中心軸と決定する(S346)。
【0173】
S344〜S346の具体例は、正面画像が側面画像に変わる以外は、図30と同じである。
【0174】
例えば、被写体人物が手を挙げていると、その部分の画素数が大きくなるため、第2ヒストグラムにおいて手の部分の度数が大きくなってしまう。このため、最大度数をそのまま用いて前後方向の中心軸を決定すると、挙げた手の部分が中心軸になってしまう。しかし、この構成では、最大度数に1未満の第2所定係数(例えば、0.5)を掛けた値である第2積を計算している。このため、第2積以上の度数を有する座標は、人物領域の胴付近の座標を示す。よって、第2積以上の度数を有する座標の最小値と最大値との平均値から前後方向の中心軸を決定することにより、正確に前後方向の中心軸を決定することができる。
【0175】
被写体人物中心軸決定部413は、水平方向中心軸決定部411および前後方向中心軸決定部412がそれぞれ決定した被写体人物の水平方向および前後方向の中心軸に基づいて、被写体人物の中心軸を決定する(S347)。
【0176】
つまり、図15に示すように三次元空間中で、水平方向の中心軸312を通り、y−z平面に平行な平面313と、前後方向の中心軸314を通り、x−z平面に平行な平面315とが規定される。被写体人物中心軸決定部413は、平面313および平面315が交わる線を被写体人物の中心軸316と決定する。
【0177】
推定部414は、被写体人物中心軸決定部413が決定した被写体人物の中心軸上で最も高い位置にある人物領域の座標から地面までの距離を被写体人物の身長と推定する(S348)。
【0178】
次に、姿勢検出処理(図13のS3)の後半の処理について詳細に説明する。
図31は、姿勢検出処理(図13のS3)の後半の詳細なフローチャートである。
【0179】
S39の処理の後、検出部43は、人物領域決定部30で決定された人物領域に、選択部42が選択した骨格モデルを当てはめることにより被写体人物の姿勢を検出する(S40〜S51)。
【0180】
つまり、検出部43は、骨格モデルの初期位置を設定する(S40)。具体的には、検出部43は、S36の処理で求められた被写体人物の中心軸に骨格モデルの頭部501、首部502および腰部509を一致させる。
【0181】
ユーザ設定により上半身の傾き認識モードが設定されている場合には(S41でYES)、検出部43は、S42〜S44の処理を実行する。
【0182】
つまり、検出部43は、被写体人物の頭部の位置を決定し、骨格モデルの頭部の位置を設定する(S42)。
【0183】
図32は、頭部位置設定処理(図31のS42)の詳細なフローチャートである。
平均座標算出部431は、前フレームの距離画像について決定された三次元空間中での頭部の位置と同じ位置から第1所定距離内に含まれる人物領域の座標のうち、高さ方向に最も高い位置の座標を決定する(S421)。
【0184】
図33を参照して、例えば、1つ前のフレームにおける頭部の位置と同じ位置から第1所定距離内に含まれる人物領域の座標のうち、高さ方向に最も高い位置281の座標を決定する。
【0185】
平均座標算出部431は、S421で決定した座標から高さ方向に第2所定距離下がった位置を決定する(S422)。例えば、平均座標算出部431は、位置281から顔の大きさの半分だけ下がった位置282を決定する。
【0186】
平均座標算出部431は、S422で決定した座標を含む所定範囲内の人物領域の平均座標を算出する(S423)。例えば、平均座標算出部431は、位置282を含む所定範囲283を設定する。例えば、所定範囲283は、位置282を含み、上下幅が顔の1/3の幅の直方体の範囲とする。また、この範囲内の人物領域の平均座標の位置284が求められたものとする。
【0187】
頭位置設定部432は、S423で算出した人物領域の平均座標の位置から高さ方向に第2所定距離上がった位置が頭部の位置と決定し、当該位置に、骨格モデルの頭部を当てはめる(S424)。例えば、頭位置設定部432は、位置284から顔の大きさの半分だけ上がった位置285が頭部の位置と決定し、当該位置に、骨格モデルの頭部を当てはめる。
【0188】
頭髪部分では拡散反射が起き易いため、距離の精度が悪い。しかし、前フレームの頭部の位置に近い位置から第2所定距離下がった位置の周辺において、人物領域の平均座標を算出し、平均座標から第2所定距離上がった位置を頭部の位置としている。前フレームの頭部の位置に近い位置から第2所定距離下がった位置の周辺は人物の顔の位置と考えられ距離が正確に求められている。このため、平均座標は、正確な顔の位置を表している。よって、顔の位置を基準として正確に頭部の位置を算出することができる。
【0189】
再度図31を参照して、S43以降の処理を説明する。
腰位置設定部433は、頭位置設定部432が設定した骨格モデルの頭部の位置を基準として、S34の処理で決定された被写体人物の中心軸上に骨格モデルの腰部の位置を設定する(S43)。頭部の位置を基準に腰部の位置が決定されるため、例えば、被写体人物がしゃがんだ場合には、腰部の位置は地面に近くなる。また、被写体人物がジャンプをした場合には、腰部の位置も通常より高くなる。
【0190】
傾き角度算出部434は、頭位置設定部432が設定した骨格モデルの頭部の位置と腰位置設定部が設定した骨格モデルの腰部の位置とから被写体人物の傾き角度を算出する(S44)。
【0191】
首傾き設定部435は、傾き角度算出部434が算出した被写体人物の傾き角度に基づいて定められる首の曲がり角度だけ、骨格モデルの首の位置を前記被写体人物の傾きとは逆方向に傾ける(S44)。例えば、首の曲がり角度を被写体人物の傾き角度の1/3とした場合には、首傾き設定部435は、被写体人物が30度傾いていれば、首を被写体人物の傾きとは逆の方向に10度傾けた位置に骨格モデルの首の位置を設定する。これにより、自然な首の傾きを推定することができる。
【0192】
ユーザ設定により脚または腕の認識モードが設定されている場合には(S45でYES)、領域取得部436は、当てはめた骨格モデルに基づいて、人物領域決定部30が決定した人物領域から少なくとも頭および胴を除いた領域の外接矩形領域を取得する(S46)。
【0193】
例えば、図34に示すような人物領域から頭および胴の領域291を除いた領域として、4つの領域292〜295が得られる。領域取得部436は、領域292〜295の各々について三次元空間中で外接矩形領域を計算することにより取得する。
【0194】
なお、領域取得部436は、外接矩形領域ごとに、以下の値を計数する。つまり、領域取得部436は、外接矩形領域内に含まれる人物領域の座標数を計数する。また、領域取得部436は、骨格モデルにおいて左肩部を基準としたときに左肘部の稼動範囲に存在する人物領域の座標数および骨格モデルにおいて右肩部を基準としたときに右肘部の稼動範囲に存在する人物領域の座標数を計数する。また、領域取得部436は、骨格モデルにおいて左恥骨部を基準としたときに左膝部の稼動範囲に存在する人物領域の座標数および骨格モデルにおいて右恥骨部を基準としたときに右膝部の稼動範囲に存在する人物領域の座標数を計数する。また、領域取得部436は、1つ前のフレームにおける左手、右手、左脚、右脚、左肘、右肘および頭とそれぞれ重なり合いを有する部分における人物領域の座標数を計数する。これら計数した値は、以下に説明するS48またはS50の処理で用いられる。
【0195】
ユーザ設定により腕の認識モードが設定されている場合には(S47でYES)、検出部43は、S46の処理で取得された外接矩形領域のそれぞれについて、右腕または左腕か否かの判定を行い、右腕または左腕と判定された外接矩形領域の位置に、骨格モデルの右腕部または左腕部を移動させる(S48)。
【0196】
腕については、(1)移動、(2)出現、(3)結合、(4)分離および(5)消滅の5つの状態があると考え、検出部43は、外接矩形領域が5つの状態のいずれに該当するかを判断する。ここで、(1)移動とは、前フレームで見えていた腕が移動した状態または同位置に静止している状態を示す。(2)出現とは、前フレームで見えていなかった腕が見えるようになった状態を示す。(3)結合とは、2本の腕が手の先でつながっている状態を示す。(4)分離とは、前フレームで結合状態にあった2本の腕の手の先が分かれた状態を示す。(5)消滅とは、前フレームで見えていた腕が見えなくなった状態を示す。
【0197】
(1)移動について
まず、前フレームから現フレームの間に腕が移動したか否かの判断方法について説明する。なお、ここでは、前フレームから現フレームの間に腕が静止している場合も、腕の移動と考える。
【0198】
つまり、右腕移動判断部437は、領域取得部436が取得した外接矩形領域のうち、前フレームの距離画像について右腕と判断されている外接矩形領域と重なり合いを有し、かつ骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという右腕移動条件を満たす外接矩形領域の位置に、被写体人物の右腕が移動したと判断し、当該位置に骨格モデルの右腕を当てはめる。
【0199】
また、左腕移動判断部438は、領域取得部436が取得した外接矩形領域のうち、前フレームの距離画像について左腕と判断されている外接矩形領域と重なり合いを有し、かつ骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという左腕移動条件を満たす外接矩形領域の位置に、被写体人物の左腕が移動したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【0200】
(2)出現について
次に、前フレームから現フレームの間に腕が出現したか否かの判断方法について説明する。
【0201】
つまり、右腕出現判断部439は、領域取得部436が取得した外接矩形領域のうち、前フレームの距離画像について右腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという右腕出現条件を満たす外接矩形領域の位置に、被写体人物の右腕が出現したと判断し、当該位置に骨格モデルの右腕を当てはめる。
【0202】
また、左腕出現判断部440は、領域取得部436が取得した外接矩形領域のうち、前フレームの距離画像について左腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという左腕出現条件を満たす外接矩形領域の位置に、被写体人物の左腕が出現したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【0203】
(3)結合について
次に、前フレームから現フレームの間に両腕が結合したか否かの判断方法について説明する。なお、前フレームにおいて2本の腕が見えていない場合には、第1結合判断部441が処理を行ない、2本の腕が別々に見えている場合には、第2結合判断部442が処理を行なう。
【0204】
つまり、第1結合判断部441は、前フレームの距離画像について被写体人物の右腕および左腕が出現していない場合において、領域取得部436が取得した外接矩形領域のうち、右腕出現条件および左腕出現条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、被写体人物の両腕が結合していると判断し、当該位置に骨格モデルの両腕を結合した状態で当てはめる。
【0205】
また、第2結合判断部442は、前フレームの距離画像について被写体人物の右腕および左腕が別個に出現している場合において、領域取得部436が取得した外接矩形領域のうち、右腕移動条件および左腕移動条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、被写体人物の両腕が結合していると判断し、当該位置に骨格モデルの両腕を結合した状態で当てはめる。
【0206】
(4)分離について
次に、前フレームから現フレームの間に腕が分離したか否かの判断方法について説明する。
【0207】
つまり、第1分離判断部443は、前フレームの距離画像について被写体人物の両腕が結合している場合において、領域取得部436が取得した外接矩形領域のうち、右腕移動条件を満たす外接矩形領域と左腕移動条件を満たす外接矩形領域とが別個に存在する場合には、被写体人物の両腕が分離して、右腕移動条件を満たす外接矩形領域の位置に被写体人物の右腕が移動したと判断し、当該位置に骨格モデルの右腕を当てはめ、左腕移動条件を満たす外接矩形領域の位置に被写体人物の左腕が移動したと判断し、当該位置に骨格モデルの左腕を当てはめる。
【0208】
(5)消滅について
最後に、前フレームから現フレームの間に腕が消滅したか否かの判断方法について説明する。
【0209】
つまり、消滅判断部444は、領域取得部436が取得した外接矩形領域のうち、右腕移動条件を満たす外接矩形領域が存在しない場合には、被写体人物の右腕が消滅したと判断し、骨格モデルの右腕を所定右腕位置に移動させ、左腕移動条件を満たす外接矩形領域が存在しない場合には、被写体人物の左腕が消滅したと判断し、骨格モデルの左腕を所定左腕位置に移動させる。
【0210】
なお、以上説明した(1)〜(5)の判断処理は、前フレームでの腕の状態に応じて実行されたり実行されなかったりする。図35は、(1)〜(5)の判断処理の実行の可否の判断基準を示すフローチャートである。
【0211】
つまり、前フレームにおいて、両腕が結合状態にあった場合には(S301でYES)、現フレームで(4)分離、(1)移動または(5)消滅の可能性があるため、(4)分離、(1)移動、(5)消滅の順で腕の状態の判断が行われる(S302)。
【0212】
前フレームにおいて、両腕が認識されており、かつ結合状態にない場合には(S303でYES)、現フレームで(3)結合、(1)移動または(5)消滅の可能性があるため、(3)結合、(1)移動、(5)消滅の順で腕の状態の判断が行われる(S304)。
【0213】
前フレームにおいて、片腕のみが認識されている場合には(S305でYES)、認識されている側の腕については、現フレームで(1)移動または(5)消滅の可能性があるため、(1)移動、(5)消滅の順で腕の状態の判断が行われる(S306)。また、認識されていない側の腕については、現フレームで(2)出現の可能性があるため、腕の(2)出現の判断が行われる(S307)。
【0214】
前フレームにおいて、両腕とも見えていない場合には(S305でNO)、現フレームで(2)出現または(3)結合の可能性があるため、(2)出現、(3)結合の順で腕の状態の判断が行われる(S308)。
【0215】
なお、S302、S304、S306〜S308の各処理において、いずれかの状態が満たされた時点でそれ以降の状態判断処理は実行されない。例えば、S302において、腕が分離していると判断された場合には、(1)移動および(5)消滅の可能性はなくなったものと判断され、移動の可能性および消滅の可能性の判断処理は実行されない。また、いずれの状態にも該当しない場合には、前フレームの状態が維持される。例えば、S302において、(4)分離、(1)移動および(5)消滅のいずれの可能性もないと判断された場合には、前フレームと同様に、現フレームにおいても両腕を合わせていると判断される。
【0216】
なお、S48においては、腕の状態の判断のみならず、以下に説明する(1)手の先の位置判定および(2)肘の位置判定も行われる。
【0217】
(1)手の先の位置判定
両腕が結合状態でない場合には、右手判断部445および左手判断部446が以下の処理を実行し、両腕が結合状態である場合には、第2分離判断部447が以下の処理を実行する。
【0218】
つまり、右手判断部445は、右腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から骨格モデルにおける右肩から最も遠い位置を右手の位置と判断し、当該位置に骨格モデルの右手を当てはめる。
【0219】
例えば、図36に示すように、右手判断部445は、三次元空間中における右腕領域の外接矩形領域を考えた場合に、外接矩形領域の上面、左面、右面および前面のそれぞれについて各面に最も近い右腕の位置を決定する。これにより、4つの位置が決定される。右手判断部445は、4つの位置のうち、骨格モデルにおける右肩の位置から最も遠い位置を右手の位置と判断し、判断した位置に骨格モデルの右手を当てはめる。
【0220】
また、左手判断部446は、左腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から骨格モデルにおける左肩から最も遠い位置を左手の位置と判断し、当該位置に骨格モデルの左手を当てはめる。
【0221】
腕の領域の外接領域の上面、左面、右面および前面のいずれかに最も近い位置を手の先としており、下面および背面は考慮していない。被写体人物の輪郭部分においては、人物の下方向および後ろ方向にノイズが発生するためである。
【0222】
第2分離判断部447は、被写体人物の両腕が結合している場合において、両腕の先端から第3所定距離内に含まれる人物領域を正面から見た像である2次元の正面投影画像において、両腕が離れていれば被写体人物の両腕は分離していると判断し、骨格モデルの両腕を分離させる。
【0223】
例えば、図37(a)に示すように画像を考えた場合に、その距離画像は図37(b)に示すような画像になる。この時、両腕の先端から第3所定距離内に含まれる人物領域の正面投影画像は図37(c)のようになる。図37(c)の正面投影画像では、1つの領域が示されているため、両腕は結合していると判断される。
【0224】
また、図37(d)に示すような画像を考えた場合に、その距離画像は図37(e)に示すような画像になる。この時、両腕の先端から第3所定距離内に含まれる人物領域の正面投影画像は図37(f)のようになる。図37(f)の正面投影画像では、2つの領域が示されているため、両腕は分離していると判断される。
【0225】
このように、両腕の先端部分のみを投影した正面投影画像を用いることより、両腕の先端部分以外の影響を受けることなく、両腕が分離しているか否かを正確に判断することができる。
【0226】
両腕が離れていると判断された場合には、右手判断部445および左手判断部446が上述した処理を行なう。両腕が結合していると判断された場合には、両腕を1つの腕とみなして、右手判断部445または左手判断部446が上述した処理を行なう。これにより、手の先が求められる。
【0227】
(2)肘の位置判定
次に、右手判断部445および左手判断部446は、右肘および左肘の位置をそれぞれ判定する。
【0228】
つまり、骨格モデルから、肩肘間の距離および手肘間の距離は既知である。このため、図38に示すように、右肩位置を中心として肩肘間の距離を半径とする球上の領域を右肘の候補領域とすることができる。また、右手位置を中心として手肘間の距離を半径とする球状の領域を右肘の候補領域とすることができる。つまり、右手判断部445は、右肩を基準とした右肘の候補領域と、右手を基準とした右肘の候補領域とが重なり合う位置に右肘が存在すると判断し、骨格モデルの右肘部をその位置に移動させる。
【0229】
同様に、左手判断部446は、左肩を基準とした左肘の候補領域と、左手を基準とした左肘の候補領域とが重なり合う位置に左肘が存在すると判断し、骨格モデルの左肘部をその位置に移動させる。
【0230】
なお、2つの候補領域が重なり合う位置であっても、肘がその位置に来るはずがない場合には、右手判断部445または左手判断部446は、その位置に骨格モデルの肘部を移動させることはしない。例えば、図39に示すように、胴体を内側とした場合に、肘が外側に折れ曲がっている場合には、その位置は正確な肘の位置であると判断し、骨格モデルの肘部3401を移動させる。逆に、肘が内側に折れ曲がっている場合には、そのような姿勢を肘がとることができないため、その位置は正確な肘の位置ではないと判断し、骨格モデルの肘部3402を移動させない。
【0231】
再度、図31を参照して、ユーザ設定により脚の認識モードが設定されている場合には(S49でYES)、検出部43は、S46の処理で取得された外接矩形領域のそれぞれについて、右脚または左脚か否かの判定を行い、右脚または左脚と判定された外接矩形領域の位置に、骨格モデルの右脚部または左脚部を移動させる。また、検出部43は、右膝または左膝の位置を判定する(S50)。以下、これらの処理について詳細に説明する。
【0232】
つまり、脚判断部448は、骨格モデルにおける恥骨部よりも下の位置において、当該恥骨部から人物領域の先端までの距離が、骨格モデルにおける脚の長さに対応する所定の長さしきい値よりも大きい場合に、人物領域の先端が被写体人物の脚の先端であると判断し、人物領域の先端に骨格モデルの脚の先端を当てはめる。
【0233】
脚判断部448の処理について、図40を参照して具体的に説明する。脚判断部448は、骨格モデルにおいて右恥骨部3501および左恥骨部3502よりも下の領域3503において、x座標が最小となる人物領域の座標と、x座標が最大となる人物領域の座標と、z座標が最小となる人物領域の座標を決定する。つまり、x座標が最小の人物領域の座標は、図40に示すように両脚を左右に開いた場合の、右脚先端の座標である。また、x座標が最大の人物領域の座標は、図40に示すように両脚を左右に開いた場合の、左脚先端の座標である。また、z座標が最小となる人物領域の座標は、両脚を前後方向に開いた場合の、一方の脚の先端の座標である。なお、z座標が最大となる人物領域の座標は、ノイズの影響を受けているため、処理の対象外としている。
【0234】
脚判断部448は、右恥骨部3501からx座標が最小となる人物領域の座標までの距離が、脚の長さ×0.9以上であれば、x座標が最小となる人物領域の座標を右脚の先端と判断する。
【0235】
脚判断部448は、左恥骨部3502からx座標が最大となる人物領域の座標までの距離が、脚の長さ×0.9以上であれば、x座標が最小となる人物領域の座標を左脚の先端と判断する。
【0236】
脚判断部448は、右恥骨部3501または左恥骨部3502からz座標が最大となる人物領域の座標までの距離が、脚の長さ×0.9以上であれば、z座標が最大となる人物領域の座標を右脚または左脚の先端と判断する。ここで、右恥骨部3501からz座標が最大となる人物領域の座標までの距離が左恥骨部3502からz座標が最大となる人物領域の座標までの距離よりも短ければ、z座標が最大となる人物領域の座標を右脚の先端と判断し、逆の場合は、z座標が最大となる人物領域の座標を左脚の先端と判断する。
【0237】
このように、人物の脚の先端は通常恥骨部よりも下の位置にあると考えられるため、恥骨部よりも下の位置から脚の先端を求めることにより、正確に脚の先端を求めることができる。
【0238】
次に、膝判断部449による膝の位置の判定処理について説明する。
膝判断部449は、図41に示すように、骨格モデルにおいて恥骨部を基準として膝となり得る距離に存在する人物領域の座標のうち、最も高さが高い座標に被写体人物の膝があると判断し、最も高さが高い座標に骨格モデルの膝部を当てはめる。
【0239】
なお、最も高さが高い座標にある膝が左膝なのか右膝なのかは以下のようにして行う。つまり、膝判断部449は、図42のように、被写体人物を正面からみて3つに分けたエリア内のそれぞれにおいて、人物領域の座標から膝の上がり角度を求める。膝判断部449は、右脚エリア3601での膝の上がり角度の方が、左脚エリア3603での膝の上がり角度よりも大きい場合には、左膝が上がっていると判断し、逆の場合には、右膝が上がっていると判断する。膝判断部449は、左膝が上がっていると判断した場合には、左脚エリア3603での膝の上がり角度と中央エリア3602での膝の上がり角度のうち、最大の上がり角度を左膝の上がり角度と判断する。また、膝判断部449は、右膝が上がっていると判断した場合には、右脚エリア3601での膝の上がり角度と中央エリア3602での膝の上がり角度のうち、最大の上がり角度を右膝の上がり角度と判断する。
【0240】
このように、脚を3つのエリアに分けることにより、右脚エリア3601には右脚の座標のみが含まれ、左脚エリア3603には左脚の座標のみが含まれることとなる。このため、右膝を上げているのか左膝を上げているのかを正確に判断することができる。
【0241】
再度、図31を参照して、脚判断部448は、脚の先端が地面よりも下になった場合には、脚の先端が地面上に来るように、脚の先端の位置を補正する(S51)。例えば、膝の位置を中心として、骨格モデルから得られる膝から脚の先端までの長さを半径とする球と、地面とが交わる位置に、脚の先端を移動させる。
【0242】
このように、恥骨部を基準とすると膝の候補領域を絞ることができる。このため、候補領域の中で最も高い位置に膝があると判断することにより、正確に膝の位置を判断することができる。
【0243】
以上説明した処理により、骨格モデルにおける各関節の座標が決定される。ただし、補正部450は、前フレームからの動きが滑らかになるように、現フレームでの各関節の座標をx座標、y座標およびz座標のそれぞれについて補正する。つまり、補正部450は、現フレームにおいて当てはめた骨格モデルの各座標を、当該座標と当該座標に対応する前フレームの距離画像における骨格モデルの座標との間の距離が大きいほど現フレームの座標に近づき、かつ距離が小さいほど前フレームの座標に近づくような、現フレームの座標と前フレームの座標との間の座標に補正する。
【0244】
例えば、補正部450は、同一の関節について一軸(x軸、y軸またはz軸)方向の前フレームの座標と現フレームの座標との差を2点間の距離とした場合に、以下の(式1)により補正係数を計算する。次に、補正部450は、一軸方向の現フレームの座標を(式2)に従い補正する。
【0245】
補正係数=150.0(mm)/2点間の距離(mm) (式1)
補正後の座標=(前フレームの座標×補正係数+現フレームの座標)
/(補正係数+1.0) (式2)
【0246】
このような補正をすることにより、例えば、図43に示すように、2点間の距離が大きいほど(関節位置が急激に動いたほど)、今回計算した座標に近づくような補正後の座標が得られ、2点間の距離が小さいほど(関節位置がゆっくりと動いたほど)、前回計算した座標に近づくような補正後の座標が得られる。また、補正後の座標は、必ず、前フレームの座標と現フレームの座標との間にあるため、滑らかな骨格モデルの動きが得られる。
【0247】
以上説明したように、本実施の形態によると、距離画像から得られる物体の座標に基づいて人物領域を決定し、その人物領域に骨格モデルを当てはめている。このため、人物にマーカーを設置することなく、人物の姿勢を高精度で検出することができる。
【0248】
また、被写体人物の身長に合致した骨格モデルを用いて被写体人物の姿勢を検出することができる。このため、被写体人物の身長が異なっていても人物の姿勢を高精度で検出することができる。
【0249】
また、被写体人物中心軸決定部413は、被写体人物の水平方向の中心軸と前後方向の中心軸とから、各中心軸を通る平面の交線として被写体人物の中心軸を求めることができる。このため、被写体人物の中心軸を正確に求めることができる。被写体人物の中心軸を正確に求めることができると、被写体人物の身長を正確に推定することができる。
【0250】
以上、本発明の実施の形態に係る姿勢検出装置について説明したが、本発明は、この実施の形態に限定されるものではない。
【0251】
例えば、上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクドライブ、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムとして構成されても良い。RAMまたはハードディスクドライブには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0252】
さらに、上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
【0253】
さらにまた、上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしても良い。ICカードまたはモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしても良い。
【0254】
また、本発明は、上記に示す方法であるとしても良い。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。
【0255】
さらに、本発明は、上記コンピュータプログラムまたは上記デジタル信号をコンピュータ読み取り可能な非一時的な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray Disc(登録商標))、半導体メモリなどに記録したものとしても良い。また、これらの非一時的な記録媒体に記録されている上記デジタル信号であるとしても良い。
【0256】
また、本発明は、上記コンピュータプログラムまたは上記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。
【0257】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしても良い。
【0258】
また、上記プログラムまたは上記デジタル信号を上記非一時的な記録媒体に記録して移送することにより、または上記プログラムまたは上記デジタル信号を上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【0259】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0260】
本発明は、姿勢検出装置に適用でき、特に距離画像カメラから得られる距離画像に基づいて被写体人物の姿勢を検出することができる姿勢検出装置等に適用できる。
【符号の説明】
【0261】
10 距離画像取得部
11 ノイズ除去部
20 座標計算部
26 再度図
30 人物領域決定部
31 物体座標判断部
32 ラベリング処理部
33 決定部
40 姿勢検出部
41 身長推定部
42 選択部
43 検出部
50 記憶部
100 姿勢検出装置
200 距離画像カメラ
204 レンズ
281、282、284、285 位置
283 所定範囲
291〜295 領域
300 人物
302 机
310 撮像領域
311 人物検出エリア
312 水平方向の中心軸
313、315 平面
314 前後方向の中心軸
316 被写体人物の中心軸
411 水平方向中心軸決定部
412 前後方向中心軸決定部
413 被写体人物中心軸決定部
414 推定部
431 平均座標算出部
432 頭位置設定部
433 腰位置設定部
434 傾き角度算出部
435 首傾き設定部
436 領域取得部
437 右腕移動判断部
438 左腕移動判断部
439 右腕出現判断部
440 左腕出現判断部
441 第1結合判断部
442 第2結合判断部
443 第1分離判断部
444 消滅判断部
445 右手判断部
446 左手判断部
447 第2分離判断部
448 脚判断部
449 膝判断部
450 補正部
500 骨格モデル
501 頭部
502 首部
503 右肩部
504 右肘部
505 右手部
506 左肩部
507 左肘部
508 左手部
509 腰部
510、3501 右恥骨部
511 右膝部
512 右足部
513、3502 左恥骨部
514 左膝部
515 左足部
601〜606 座標
611〜615 ベクトル
621〜624、641、641A 三角パッチ
631〜634 法線ベクトル
640、640A〜640C 座標
3401、3402 肘部
3503 領域
3601 右脚エリア
3602 中央エリア
3603 左脚エリア
4111 第1ヒストグラム生成部
4112 第1最大度数算出部
4113 第1積算出部
4114 第1軸決定部
4121 第2ヒストグラム生成部
4122 第2最大度数算出部
4123 第2積算出部
4124 第2軸決定部

【特許請求の範囲】
【請求項1】
各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する距離画像取得部と、
前記距離画像取得部が取得した前記距離画像に基づいて、三次元空間中での物体の座標を計算する座標計算部と、
前記座標計算部が計算した物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する人物領域決定部と、
前記人物領域決定部が決定した前記人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する姿勢検出部と
を備える姿勢検出装置。
【請求項2】
さらに、身長ごとに骨格モデルを記憶している記憶部を備え、
前記姿勢検出部は、
前記人物領域の高さから前記被写体人物の身長を推定する身長推定部と、
前記記憶部に記憶されている前記骨格モデルの中から、前記身長推定部で推定された前記身長に最も近い身長の骨格モデルを選択する選択部と、
前記人物領域決定部で決定された前記人物領域に、前記選択部が選択した前記骨格モデルを当てはめることにより前記被写体人物の姿勢を検出する検出部とを有する
請求項1記載の姿勢検出装置。
【請求項3】
前記身長推定部は、
前記人物領域を正面から見た像である二次元の正面画像において水平方向の中心を通る高さ方向の軸を、前記被写体人物の水平方向の中心軸と決定する水平方向中心軸決定部と、
前記人物領域を側面から見た像である二次元の側面画像において水平方向の中心を通る高さ方向の軸を、前記被写体人物の前後方向の中心軸と決定する前後方向中心軸決定部と、
前記水平方向中心軸決定部および前記前後方向中心軸決定部がそれぞれ決定した前記被写体人物の水平方向および前後方向の中心軸に基づいて、前記被写体人物の中心軸を決定する被写体人物中心軸決定部と、
前記被写体人物中心軸決定部が決定した前記被写体人物の中心軸上で最も高い位置にある前記人物領域の座標から地面までの距離を前記被写体人物の身長と推定する推定部とを有する
請求項2記載の姿勢検出装置。
【請求項4】
前記水平方向中心軸決定部は、
前記正面画像において横軸が水平方向の座標を示し、縦軸が各水平方向の座標を有する前記人物領域の画素の度数を示す第1ヒストグラムを生成する第1ヒストグラム生成部と、
前記第1ヒストグラム生成部が生成した前記第1ヒストグラムにおける最大度数を算出する第1最大度数算出部と、
前記第1最大度数算出部が算出した前記最大度数に1未満の第1所定係数を掛けた値である第1積を算出する第1積算出部と、
前記第1積算出部が算出した前記第1積以上の度数を有する水平方向の座標の最小値と最大値との平均値を水平方向の座標とする前記被写体人物の高さ方向の軸を、前記被写体の水平方向の中心軸と決定する第1軸決定部とを有する
請求項3記載の姿勢検出装置。
【請求項5】
前記前後方向中心軸決定部は、
前記側面画像において横軸が前後方向の座標を示し、縦軸が各前後方向の座標を有する前記人物領域の画素の度数を示す第2ヒストグラムを生成する第2ヒストグラム生成部と、
前記第2ヒストグラム生成部が生成した前記第2ヒストグラムにおける最大度数を算出する第2最大度数算出部と、
前記第2最大度数算出部が算出した前記最大度数に1未満の第2所定係数を掛けた値である第2積を算出する第2積算出部と、
前記第2積算出部が算出した前記第2積以上の度数を有する前後方向の座標の最小値と最大値との平均値を前後方向の座標とする前記被写体人物の高さ方向の軸を、前記被写体の前後方向の中心軸と決定する第2軸決定部とを有する
請求項3または請求項4記載の姿勢検出装置。
【請求項6】
前記検出部は、
前フレームの距離画像について決定された三次元空間中での頭部の位置と同じ位置から第1所定距離内に含まれる前記人物領域の座標のうち、高さ方向に最も高い位置の座標から高さ方向に第2所定距離下がった位置を含む所定範囲内の前記人物領域の平均座標を算出する平均座標算出部と、
前記平均座標算出部が算出した前記人物領域の平均座標から高さ方向に前記第2所定距離上がった位置に、前記骨格モデルの頭部を当てはめる頭位置設定部とを有する
請求項3〜請求項5のいずれか1項に記載の姿勢検出装置。
【請求項7】
前記検出部は、さらに、
前記頭位置設定部が設定した前記骨格モデルの頭部の位置を基準として、前記被写体人物中心軸決定部が決定した前記被写体人物の中心軸上に前記骨格モデルの腰部の位置を設定する腰位置設定部を有する
請求項6記載の姿勢検出装置。
【請求項8】
前記検出部は、さらに、
前記頭位置設定部が設定した前記骨格モデルの頭部の位置と前記腰位置設定部が設定した前記骨格モデルの腰部の位置とから前記被写体人物の傾き角度を算出する傾き角度算出部と、
前記傾き角度算出部が算出した前記被写体人物の傾き角度に基づいて定められる首の曲がり角度だけ、前記骨格モデルの首の位置を前記被写体人物の傾きとは逆方向に傾ける首傾き設定部とを有する
請求項7記載の姿勢検出装置。
【請求項9】
前記検出部は、さらに、
当てはめた前記骨格モデルに基づいて、前記人物領域決定部が決定した前記人物領域から少なくとも頭および胴を除いた領域の外接矩形領域を取得する領域取得部と、
前記領域取得部が取得した外接矩形領域のうち、前フレームの距離画像について右腕と判断されている外接矩形領域と重なり合いを有し、かつ前記骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという右腕移動条件を満たす外接矩形領域の位置に、前記被写体人物の右腕が移動したと判断し、当該位置に前記骨格モデルの右腕を当てはめる右腕移動判断部と、
前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について左腕と判断されている外接矩形領域と重なり合いを有し、かつ前記骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲と重なり合いを有する外接矩形領域が存在するという左腕移動条件を満たす外接矩形領域の位置に、前記被写体人物の左腕が移動したと判断し、当該位置に前記骨格モデルの左腕を当てはめる左腕移動判断部とを有する
請求項3〜請求項8のいずれか1項に記載の姿勢検出装置。
【請求項10】
前記検出部は、さらに、
前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について右腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、前記骨格モデルにおける右肩位置を基準とした場合の右肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという右腕出現条件を満たす外接矩形領域の位置に、前記被写体人物の右腕が出現したと判断し、当該位置に前記骨格モデルの右腕を当てはめる右腕出現判断部と、
前記領域取得部が取得した外接矩形領域のうち、前記前フレームの距離画像について左腕以外の部分と判断されている部分と重なり合いを有しておらず、かつ、前記骨格モデルにおける左肩位置を基準とした場合の左肘の稼動範囲との重なり部分の体積が最大となる外接矩形領域が存在するという左腕出現条件を満たす外接矩形領域の位置に、前記被写体人物の左腕が出現したと判断し、当該位置に前記骨格モデルの左腕を当てはめる左腕出現判断部とを有する
請求項9記載の姿勢検出装置。
【請求項11】
前記検出部は、さらに、
前記前フレームの距離画像について前記被写体人物の右腕および左腕が出現していない場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕出現条件および前記左腕出現条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、前記被写体人物の両腕が結合していると判断し、当該位置に前記骨格モデルの両腕を結合した状態で当てはめる第1結合判断部を有する
請求項10記載の姿勢検出装置。
【請求項12】
前記検出部は、さらに、
前記前フレームの距離画像について前記被写体人物の右腕および左腕が別個に出現している場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件および前記左腕移動条件を満たす外接矩形領域が存在する場合には、当該存在する外接矩形領域の位置において、前記被写体人物の両腕が結合していると判断し、当該位置に前記骨格モデルの両腕を結合した状態で当てはめる第2結合判断部を有する
請求項11記載の姿勢検出装置。
【請求項13】
前記検出部は、さらに、
前記前フレームの距離画像について前記被写体人物の両腕が結合している場合において、前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件を満たす外接矩形領域と前記左腕移動条件を満たす外接矩形領域とが別個に存在する場合には、前記被写体人物の両腕が分離して、前記右腕移動条件を満たす外接矩形領域の位置に前記被写体人物の右腕が移動したと判断し、当該位置に前記骨格モデルの右腕を当てはめ、前記左腕移動条件を満たす外接矩形領域の位置に前記被写体人物の左腕が移動したと判断し、当該位置に前記骨格モデルの左腕を当てはめる第1分離判断部を有する
請求項12記載の姿勢検出装置。
【請求項14】
前記検出部は、さらに、
前記領域取得部が取得した外接矩形領域のうち、前記右腕移動条件を満たす外接矩形領域が存在しない場合には、前記被写体人物の右腕が消滅したと判断し、前記骨格モデルの右腕を所定右腕位置に移動させ、前記左腕移動条件を満たす外接矩形領域が存在しない場合には、前記被写体人物の左腕が消滅したと判断し、前記骨格モデルの左腕を所定左腕位置に移動させる消滅判断部を有する
請求項13記載の姿勢検出装置。
【請求項15】
前記検出部は、さらに、
右腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から前記骨格モデルにおける右肩から最も遠い位置を右手の位置と判断し、当該位置に前記骨格モデルの右手を当てはめる右手判断部と、
左腕と判断されている領域について、当該領域の外接領域の上面、左面、右面および前面のそれぞれについて各面に最も近い位置を決定し、決定した位置の中から前記骨格モデルにおける左肩から最も遠い位置を左手の位置と判断し、当該位置に前記骨格モデルの左手を当てはめる左手判断部とを有する
請求項14記載の姿勢検出装置。
【請求項16】
前記検出部は、さらに、
前記被写体人物の両腕が結合している場合において、前記両腕の先端から第3所定距離内に含まれる前記人物領域を正面から見た像である2次元の正面投影画像において、両腕が離れていれば前記被写体人物の両腕は分離していると判断し、前記骨格モデルの両腕を分離させる第2分離判断部を有する
請求項15記載の姿勢検出装置。
【請求項17】
前記検出部は、さらに、
前記骨格モデルにおける恥骨部よりも下の位置において、当該恥骨部から前記人物領域の先端までの距離が、前記骨格モデルにおける脚の長さに対応する所定の長さしきい値よりも大きい場合に、前記人物領域の先端が前記被写体人物の脚の先端であると判断し、前記人物領域の先端に前記骨格モデルの脚の先端を当てはめる脚判断部を有する
請求項16記載の姿勢検出装置。
【請求項18】
前記検出部は、さらに、
前記骨格モデルにおいて恥骨部を基準として膝となり得る距離に存在する前記人物領域の座標のうち、最も高さが高い座標に前記被写体人物の膝があると判断し、前記最も高さが高い座標に前記骨格モデルの膝部を当てはめる膝判断部を有する
請求項17記載の姿勢検出装置。
【請求項19】
前記検出部は、さらに、
現フレームにおいて当てはめた骨格モデルの各座標を、当該座標と当該座標に対応する前フレームの距離画像における骨格モデルの座標との間の距離が大きいほど前記現フレームの座標に近づき、かつ前記距離が小さいほど前記前フレームの座標に近づくような、前記現フレームの座標と前記前フレームの座標との間の座標に補正する補正部を有する
請求項2〜請求項18のいずれか1項に記載の姿勢検出装置。
【請求項20】
前記距離画像取得部は、取得した前記距離画像上で所定サイズのウィンドウを走査し、当該ウィンドウ内の中心画素が示す距離との距離の差が所定の距離しきい値以下となる当該ウィンドウ内の前記中心画素を除く画素数を計数し、計数した前記画素数が所定の画素数しきい値未満であれば前記中心画素をノイズとして除去するノイズ除去部を有する
請求項1または請求項2記載の姿勢検出装置。
【請求項21】
前記距離しきい値は、前記ウィンドウ内の前記中心画素ごとに設定され、当該中心画素が示す距離が大きいほど大きな値に設定される
請求項20記載の姿勢検出装置。
【請求項22】
前記人物領域決定部は、
前記座標計算部が計算した物体の座標の各々について、当該座標と当該座標の近傍の2つの座標とを含む面の法線ベクトルが、前記カメラの撮像面を含む平面である有効角度面と交わる場合に、当該座標を物体の座標である物体座標と判断し、前記法線ベクトルが前記有効角度面と交わらない場合に、当該座標を前記物体座標ではないと判断する物体座標判断部と、
三次元空間を各々が所定体積を有する複数のブロックに分割したときに、互いに隣接する、前記物体座標判断部が判断した物体座標を含むブロックのラベルが同一のラベルとなるように、前記複数のブロックの各々にラベル付けを行うラベリング処理部と、
前記ラベリング処理部がラベル付けを行なったラベルごとに、当該ラベルが付されたブロックの体積の合計値が前記体積しきい値以上の場合に、当該ラベルが付されたブロックを人物領域と決定する決定部とを有する
請求項1〜請求項21のいずれか1項に記載の姿勢検出装置。
【請求項23】
各画素における輝度値がカメラから物体までの距離を示す距離画像を撮像する距離画像カメラと、
請求項1〜請求項22のいずれか1項に記載の姿勢検出装置とを備え、
距離画像取得部は、前記距離画像カメラから前記距離画像を取得する
距離検出システム。
【請求項24】
各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する距離画像取得ステップと、
前記距離画像取得ステップにおいて取得された前記距離画像に基づいて、三次元空間中での物体の座標を計算する座標計算ステップと、
前記座標計算ステップにおいて計算された物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する人物領域決定ステップと、
前記人物領域決定ステップにおいて決定された前記人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する姿勢検出ステップと
を含む姿勢検出方法。
【請求項25】
各画素における輝度値がカメラから物体までの距離を示す距離画像を取得する距離画像取得ステップと、
前記距離画像取得ステップにおいて取得された前記距離画像に基づいて、三次元空間中での物体の座標を計算する座標計算ステップと、
前記座標計算ステップにおいて計算された物体の座標に基づいて、三次元空間中で所定の体積しきい値以上の体積を占める物体の領域である人物領域を決定する人物領域決定ステップと、
前記人物領域決定ステップにおいて決定された前記人物領域に、人体の骨格をモデル化した骨格モデルを当てはめることにより被写体人物の姿勢を検出する姿勢検出ステップと
をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図27】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図42】
image rotate

【図43】
image rotate

【図4】
image rotate

【図17】
image rotate

【図18】
image rotate

【図26】
image rotate

【図28】
image rotate

【図37】
image rotate

【図41】
image rotate


【公開番号】特開2012−120647(P2012−120647A)
【公開日】平成24年6月28日(2012.6.28)
【国際特許分類】
【出願番号】特願2010−273034(P2010−273034)
【出願日】平成22年12月7日(2010.12.7)
【出願人】(510322845)有限会社アルファ (2)
【Fターム(参考)】