(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024163735
(43)【公開日】2024-11-22
(54)【発明の名称】画像解析装置及び画像解析方法
(51)【国際特許分類】
G06T 7/20 20170101AFI20241115BHJP
【FI】
G06T7/20 300Z
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023079588
(22)【出願日】2023-05-12
(71)【出願人】
【識別番号】597132849
【氏名又は名称】株式会社日立ソリューションズ・クリエイト
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】小辰 信夫
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096CA04
5L096FA64
5L096FA66
5L096FA67
5L096GA51
(57)【要約】
【課題】単一の撮影装置を使用した場合でも、被写体の前後・上下方向の移動距離を適切に判定することが可能になる画像解析装置を提供する。
【解決手段】単一の撮影装置で、運動をしているインストラクタまたは熟練作業員である被写体106、および被写体107をそれぞれ撮影し、双方の撮影データを人工知能などの技術を使って解析することで骨格位置を推定し、特定部位の骨格位置の変位の遠近差を三角法で解析することで、前後方向への移動距離を、特定部位の骨格位置の急加速を検知することで、ジャンプなどの上下方向の移動距離を、それぞれ適切に判定することができ、被写体106及び107の動きの相違を正しく把握することに応用することも可能となる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
動画像データに写されている被写体の動作を解析する画像解析装置であって、
前記動画像データを解析して、前記被写体の第1判定用部位における上下方向の変化量が一定値を超えた場合、前記被写体の前後方向の移動及び上下方向の移動の少なくとも一方を含む判定対象移動が発生したと推定する推定部と、
前記判定対象移動が発生した場合、前記動画像データに基づいて、前記被写体の複数の第2判定用部位にて規定される判定用距離の対象移動前後の変化比である前後変化比が所定値以上か否かを判定することで、前記判定対象移動が前記前後方向の移動を含むか否かを判定する判定部と、を有する画像解析装置。
【請求項2】
前記判定部は、前記前後変化比に基づいて、前記前後方向の移動距離を推定する、請求項1に記載の画像解析装置。
【請求項3】
前記判定用距離は、3つの前記第2判定用部位が作る3角形の高さである、請求項1に記載の画像解析装置。
【請求項4】
前記判定部は、3つの前記第2判定用部位の組み合わせを複数選択し、前記組み合わせごとの前記判定用距離の変化比の平均値を前記前後変化比として算出する、請求項3に記載の画像解析装置。
【請求項5】
前記判定対象移動が発生した場合、前記判定対象移動が発生する前の前記被写体の複数の部位の位置の推移を推定した位置時系列データに基づいて、前記判定対象移動が上方向の移動を含むかを判定する計算部をさらに有する請求項2に記載の画像解析装置。
【請求項6】
前記判定対象移動が前記前後方向の移動と前記上方向の移動との両方を含む場合、前記位置時系列データに基づいて、前記前後方向の移動距離を補正する補正部をさらに有する請求項5に記載の画像解析装置。
【請求項7】
動画像データに写されている被写体の動作を解析する画像解析装置による画像解析方法であって、
前記動画像データを解析して、前記被写体の第1判定用部位における上下方向の変化量が一定値を超えた場合、前記被写体の前後方向の移動及び上下方向の移動の少なくとも一方を含む判定対象移動が発生したと推定し、
前記判定対象移動が発生した場合、前記動画像データに基づいて、前記被写体の複数の第2判定用部位にて規定される判定用距離の対象移動前後の変化比が所定値以上か否かを判定することで、前記判定対象移動が前記前後方向の移動を含むか否かを判定する、画像解析方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像解析装置及び画像解析方法に関する。
【背景技術】
【0002】
近年、人工知能技術などを用いて人物の骨格及び姿勢などを推定するシステムが注目されており、その推定結果はスポーツなどの運動の指導などに利用されている。
【0003】
特許文献1には、レーザレーダ装置のような物体までの距離及び方向を検出する検出装置の検出結果に基づいて、対象人物の骨格、関節、及び、過去の移動軌跡を算出し、その算出結果に基づいて、対象人物のプレーを判定する判定システムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示された技術では、物体までの距離及び方向を検出する検出装置としてレーザレーダ装置のような特殊な装置が必要となるという問題がある。このため、スマートフォンのような単一の撮影装置を使用して簡単に人物の骨格及び姿勢などを推定することが難しい。特に、単一の撮影装置を使用した場合、人物の前後方向の移動と上下方向への移動(ジャンプ)とを区別することが難しい。
【0006】
本開示の目的は、単一の撮影装置を使用した場合でも、被写体の前後方向の移動を適切に判別することが可能な画像解析装置及び画像解析方法を提供することにある。
【課題を解決するための手段】
【0007】
本開示の一態様に従う画像解析装置は、動画像データに写されている被写体の動作を解析する画像解析装置であって、前記動画像データを解析して、前記被写体の第1判定用部位における上下方向の変化量が一定値を超えた場合、前記被写体の前後方向の移動及び上下方向の移動の少なくとも一方を含む判定対象移動が発生したと推定する推定部と、前記判定対象移動が発生した場合、前記動画像データに基づいて、前記被写体の複数の第2判定用部位にて規定される判定用距離の対象移動前後の変化比である前後変化比が所定値以上か否かを判定することで、前記判定対象移動が前記前後方向の移動を含むか否かを判定する判定部と、を有する。
【発明の効果】
【0008】
本発明によれば、単一の撮影装置を使用した場合でも、被写体の前後方向の移動を適切に判別することが可能になる。
【図面の簡単な説明】
【0009】
【
図1】本開示の実施例に係る骨格位置推定補正装置の機能的な構成を示すブロック図である。
【
図2】骨格位置推定処理の一例を説明するための図である。
【
図4】骨格位置時系列データの一例を示す図である。
【
図5】骨格位置推定結果の変化の一例を説明するための図である。
【
図6】被写体の後方への移動距離とフレーム内の被写体の縮小率の関係の一例を説明するための図である。
【
図7】判定用距離の一例を説明するための図である。
【
図8】被写体の前後方向の移動距離の算出を説明するための図である。
【
図9】加速度計算部による処理を説明するための図である。
【
図10】加速度計算部による処理を説明するための図である。
【
図11】複合移動の一例を説明するための図である。
【
図13】骨格位置推定補正装置が行う処理の一例を説明するためのフローチャートである。
【
図14】前後移動判定処理の一例を説明するためのフローチャートである。
【
図15】移動距離推定処理の一例を説明するためのフローチャートである。
【
図16】初速度算出処理の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の実施例について、図面を参照して説明する。なお、以下に説明する実施例は請求の範囲に係る発明を限定するものではなく、また実施例で説明されている要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【実施例0011】
図1は、本開示の実施例に係る骨格位置推定補正装置の機能的な構成を示すブロック図である。
【0012】
図1に示す骨格位置推定補正装置は、動画像データに写されている被写体の動作を解析する画像解析装置であり、カメラ100と、画像解析部101と、骨格推定部102と、三角法計算部103と、加速度計算部104と、奥行補正部105とを含む。なお、骨格位置推定補正装置は、例えば、スマートフォンのようなカメラ機能付きデバイスにて実現される。また、骨格位置推定補正装置は、例えば、プロセッサ(コンピュータ)及びメモリ(共に図示せず)を備え、以下で説明する各構成要素及び各機能は、例えば、プロセッサがコンピュータプログラムを読み取り、その読み取ったプログラムを実行することで実現されてもよい。
【0013】
カメラ100は、運動又は作業をしている人物である被写体を撮影する撮影装置である。被写体として、複数の人物が撮影されてもよい。例えば、被写体として、インストラクタ106又は熟練作業者のような指導者と、指導者の運動又は作業を真似て動くユーザ107とが撮影されてもよい。
【0014】
画像解析部101は、カメラ100にて撮影された撮影結果から、被写体を写した動画像データを生成して出力する。
【0015】
骨格推定部102は、画像解析部101から出力された動画像データを解析して、被写体の複数の部位の位置の推移を推定した時系列データである骨格位置時系列データを生成する推定部である。以下、骨格推定部102にて推移が推定される部位を骨格部位と呼ぶこともある。骨格部位の位置を推定する方法は、特に限定されないが、例えば、OpenPoseのような機械学習を用いた方法などが挙げられる。また、骨格部位の位置を推定する骨格位置推定処理は、バッチ処理で行われてもよいし、リアルタイム処理で行われてもよい。また、被写体が複数存在する場合、バッチ処理にて骨格位置推定処理が行われる被写体と、リアルタイム処理にて骨格位置推定処理が行われる被写体とに分かれてもよい。例えば、指導者に対してはバッチ処理で骨格位置推定処理が行われ、ユーザに対してはリアルタイム処理にて骨格位置推定処理が行われてもよい。骨格など主要な関節部や人体の部位の位置を時系列に推定した結果は、メモリまたは外部記憶装置上の骨格位置推定結果時系列データセット108にそれぞれ格納する。
【0016】
また、骨格推定部102は、骨格位置時系列データに基づいて、被写体の所定の第1判定用部位における上下方向の変化量である上下変化量が一定値を超えたか否かを判断する。骨格推定部102は、上下変化量が一定値を超えた場合、被写体の前後方向の移動及び上下方向の移動(ジャンプ)の少なくとも一方を含む判定対象移動が発生したと推定する。第1判定用部位は、本実施例では、被写体の最下点の部位である。骨格推定部102は、例えば、被写体のつま先又は踵の位置を最下点の部位としてもよい。また、上下変化量は、例えば、タイムスタンプの異なる2つのフレーム(本実施例では、連続する2つのフレーム)間の変化量である。
【0017】
三角法計算部103は、骨格位置推定結果時系列データセット108からデータを読み込み、判定対象移動が発生した場合に、骨格推定部102にて生成された骨格位置時系列データに基づいて、その判定対象移動に前後方向の移動が含まれるか否かを判定する判定部である。また、三角法計算部103は、前後方向の移動距離を推定してもよい。
【0018】
加速度計算部104は、骨格位置推定結果時系列データセット108からデータを読み込み、判定対象移動が発生した場合に、骨格推定部102にて生成された骨格位置時系列データに基づいて、その判定対象移動に上下方向の移動が含まれるか否かを判定する計算部である。また、加速度計算部104は、上下方向の移動距離を推定してもよい。
【0019】
奥行補正部105は、判定対象移動が前後方向の移動及び上下方向の移動の両方を含む場合、骨格推定部102にて生成された骨格位置時系列データに基づいて、三角法計算部103にて推定された前後方向の移動距離を補正する。
【0020】
図2は、骨格推定部2による骨格位置推定処理の一例を説明するための図である。骨格位置推定処理では、骨格推定部102は、フレームごとに、そのフレーム内における被写体の複数の骨格部位のそれぞれの位置である骨格位置をピクセル単位で推定する。本実施例では、フレーム内の横方向をX方向とし、縦方向(高さ方向)をZ方向とし、奥行き方向をY方向とし、骨格位置はX座標及びZ座標で示される。
【0021】
また、骨格位置を推定する骨格部位には、予め番号と名称が設定される。
図2の例では、骨格部位の番号と名前は、0Nose(鼻)、1Neck(首)、2RShoulder(右肩)、3RElbow(右肘)、4RWrist(右手首)、5LShoulder(左肩)、6LElbow(左肘)、7LWrist(左手首)、8MidHip(尻中央)、9RHip(右尻)、10RKnee(右膝)、11RAnkle(右踝)、12LHip(左尻)、13LKnee(左膝)、14LAnkle(左踝)、15REye(右目)、16LEye(左目)、17REar(右耳)、18LEar(左耳)、19LBigToe(左足親指)、20LSmallToe(左足小指)、21LHeel(左踵)、22RBigtoe(右足親指)、23RSmallToe(右足小指)、24RHeel(右踵)である。
【0022】
図3、単一フレームにおける骨格位置推定処理の検出結果である骨格位置推定結果の一例を示す図である。
図3に示す骨格位置推定結果300は、フィールド301~305を含む。
【0023】
フィールド301は、骨格部位を特定するための番号を格納する。フィールド302は、骨格部位の名称を格納する。フィールド303~304は、骨格部位の位置である骨格位置を格納する。具体的には、フィールド303は、骨格位置のX座標を格納し、フィールド304は、骨格位置のZ座標を格納する。フィールド305は、骨格位置の推定精度を示す信頼度(確度)を格納する。なお、骨格位置推定結果300において全ての骨格位置が含まれるとは限らない。例えば、被写体が右手を背中に回すと、右手首などが体の後ろに隠れてしまう。このようにカメラ100にて写されていない骨格部位については、骨格部位の位置は推定されずに、骨格部位のX座標及びZ座標の値は格納されなくてもよい。この場合、信頼度は0となる。ただし、カメラ100にて写されていない骨格部位の骨格位置は、別の骨格部位の骨格位置などから推定されてもよい。
【0024】
図4、骨格位置時系列データの一例を示す図である。
図4に示す骨格位置時系列データ400は、フィールド401~402を含む。
【0025】
フィールド401は、フレームが撮影された撮影時刻をタイムスタンプとして格納する。フィールド402は、当該タイムスタンプのフレームにおける各骨格部位の骨格位置及び信頼度を格納する。
図4の例では、フィールド402は、
図2に示した骨格部位0~24のそれぞれの骨格位置及び信頼度を格納するフィールド402_0~402_24を含む。なお、動画像データでは、撮影スピードによって1秒間に含まれるフレーム数が決まる。撮影スピードが24fpsの場合、1秒間に24フレーム、撮影スピードが30fpsの場合、1秒間に30フレームの画像を撮影できる。
【0026】
図5は、被写体が前後方向に移動した際の骨格位置推定結果の変化の一例を説明するための図である。
図5の例では、被写体は後方に移動したとする。
【0027】
図5の例では、後方に移動する前の被写体500における骨格部位1Neck、13LKnee及び10RKneeの3点を結んだ三角形501の高さ502は54.3ピクセルであり、後方に移動した後の被写体500における同じ三角形501の高さ502は48.2ピクセルである。つまり、被写体が後方に移動すると、フレーム内の被写体は縮小され、さらに被写体の後方への移動距離に応じてフレーム内の被写体の縮小率が変化する。一方、被写体が上方向にジャンプした場合、被写体の大きさは変化しない。
【0028】
図6は、被写体の後方への移動距離とフレーム内の被写体の縮小率の関係の一例を説明するための図である。
図6の例では、移動前の被写体500とカメラ100との距離Lを200cm、被写体500の後方への移動距離lを30cm、被写体の高さHを170cmとしている。また、移動前後の被写体の身長の比をH:(H+h)とすると、hはh=(170×(200+30))/200-170=25.5cmとなるため、被写体500は移動後に約13%縮小されて見える。人間は、この程度の大きさの差を認識することができないが、両眼の視野差によって被写体までの距離である奥行を判定している。一方、本実施例では、人間には認識できない被写体500の微妙な大きさの変化から被写体の前後方向の移動が判定される。
【0029】
具体的には、判定対象移動が発生した場合、三角法計算部103は、骨格位置時系列データに基づいて、被写体の複数の第2判定用部位にて規定される判定用距離の判定対象移動前後の変化比である前後変化比が所定値以上か否かを判定することで、判定対象移動が前後方向の移動を含むか否かを判定する。
【0030】
第2判定用部位は、例えば、人がジャンプした場合に判定用距離の変化量が少ない骨格部位であり、予め定められていてもよいし、判定対象移動前の単位時間に判定用距離が規定値以上変化しなかった骨格部位でもよいし、それらの骨格部位のうち判定用距離の変化が大きい方から選択された所定個の骨格部位でもよい。判定用距離は、例えば、3つの骨格部位のなす三角形の高さなどである。三角法計算部103は、判定用距離の変化比である前後変化比が所定値以上の場合、判定対象移動が前後方向の移動を含むと判定する。
【0031】
図7は、判定用距離の一例を説明するための図である。
【0032】
被写体は、運動又は作業をしている場合、体を折り曲げたり、片足だけ高く上げたりするなどの複雑な動作を行うことがある。このため、判定用距離は、複数の骨格部位の単一の組み合わせ(例えば、上述した1Neck、13LKnee及び10RKneeの3点を結んだ三角形)から算出されると、正確に判定ができない恐れがある。そのため、本実施例では、三角法計算部103は、
図7に示すように、第2判定用部位として3つの骨格部位の組み合わせを複数選択し、組み合わせごとの判定用距離の変化比の平均値を判定に用いる前後変化比とする。このとき、三角法計算部103は、各判定用距離の変化比の標準偏差σを計算し、変化比が外れ値となる組み合わせの判定用距離を除外してもよい。例えば、三角法計算部103は、±2σより外れた判定用距離を除外してもい。
【0033】
第2判定用部位と判定用距離は、
図7の例では、以下のように設定されている。
700:鼻踵補正(Height1:0Nose、21Lheel及び24RHeelが作る三角形の高さ)
701:首踵補正(Height2:1Neck、21Lheel及び24RHeelが作る三角形の高さ)
702:鼻膝補正(Height3:0Nose、13Lknee及び10RKneeが作る三角形の高さ)
703:首膝補正(Height4:1Neck、13Lknee及び10RKneeが作る三角形の高さ)
704:肩膝補正(Height5:5Lshoulder、13Lknee及び10RKneeが作る三角形と2Rshoulder、13Lknee及び10RKneeが作る三角形の高さの平均)
【0034】
図8は、被写体の前後方向の移動距離の算出を説明するための図である。
【0035】
図8(a)では、カメラ100と被写体の最下点とを結んだ線の仰角が0度としている。この場合、判定用距離の移動前後の変化比が1:xであり、上述したように移動前の被写体とカメラ100との距離をLとすると、被写体の後方への移動距離lは、l=L/x-Lとなる。
【0036】
なお、
図8(b)に示すように、カメラ100と被写体の最下点とを結んだ線の仰角がプラスの場合でもマイナスの場合でも、移動距離lは、同様に、l=L(H+h)/H-Lとなる。
【0037】
図9及び
図10は、加速度計算部104による処理を説明するための図である。
【0038】
上下変化量が一定値を超え、かつ、前後変化比が所定値未満の場合、被写体は前後移動をせずに上下方向の移動のみを行ったと考えられる。ただし、上下方向の移動であるジャンプと類似する体位となる動作が存在する。なお、ジャンプには、膝のみ上げるジャンプ、及び、両踵も含めて上方に伸び上がるジャンプなど様々な種類があるが、
図9では、V字開脚ジャンプ900と、V字開脚ジャンプ900と類似する体位となるときがある開脚前屈901とが示されている。
【0039】
V字開脚ジャンプ900及び開脚前屈901は、明らかに異なる動作であるが、類似する体位となるときがあるため、誤判定されるおそれがある。なお、V字開脚ジャンプ900の動作後では、踵及び膝などのY座標は増加し、開脚前屈901では、踵及び膝などのY座標は減少すると考えられる。したがって、この差を検出することで、ジャンプしたか否かを判定することができる。ただし、本実施例では、より正確に判定するために、加速度計算部104は、ジャンプする前の動作である初期動作に基づいて、ジャンプしたか否かを判定する。
【0040】
図10に示すように、人間は、地球の重力加速度に逆らってジャンプする前には、反動をつけるために多少なりともしゃがむ、つまり腰(又は尻)とつま先(又は踵)の距離を短くする動作を初期動作として行う。加速度計算部104は、この初期動作の速度を初速度として算出し、その初速度から被写体がジャンプしたか否かを判定する。
【0041】
なお、地球上の重力加速度g=9.80665(m/s2)であり、ジャンプ中の速度、加速度、時間、変位及び初速度の関係は、以下のようになる。
速度(m/s)=加速度(m/s2)×時間(s)+初速度(m/s)
変位(m)=初速度(m/s)×時間(s)+(1/2)×加速度(m/s2)×時間(s)2
速度(m/s)2-初速度(m/s)2=2×加速度×変位
【0042】
このため、例えば、人間が10cm(0.1m)ジャンプするためには、√(2×9.8×0.1)=1.4m/sの初速度が必要となる。なお、例えば、1秒間に30フレームの撮影速度で動画像データが取得される場合、約33msに1回の割合でフレームが取得される。このとき、初期動作が開始されたフレーム間において、1.4m÷30フレーム=4.67cmだけ腰又は膝が上向きに移動していれば、初速度が1.4m/sと同等となる。4.67cmは、
図5などで示した本実施例の場合、約2.54ピクセルに対応する。単位時間を0.1秒とすると、n番目のフレームとn+3番目のフレームとを比較することにより、単位時間である約0.1秒の間に動いた骨格位置の変化を測定することができる。
【0043】
図11は、前後方向の移動と上下方向の移動との両方を含む判定対象移動である複合移動の一例を説明するための図である。
図11では、複合移動として、放物線を描くようにジャンプをしながら後ろに下がる移動が示される。
【0044】
図11の例では、被写体が後ろに下がることでZ座標が増えると同時に体格が縮んで見える。また、被写体がジャンプすることで、ジャンプの前半(最高点に達するまで)はZ座標が増えるが、ジャンプの後半(最高点から着地するまで)はZ座標が減少する。この場合、奥行補正部105は、以下の処理を行う。
【0045】
ジャンプの開始直前と終了直後の奥行きの変化(前後方向の移動距離l)は三角法を使って計算することができる。ジャンプ開始のタイミングは、被写体の最下点のZ座標が増加するフレームであり、ジャンプ終了のタイミングは、被写体の最下点のZ座標の減少が終了するフレームである。ジャンプの初速度は、ジャンプ開始のタイミングの数フレーム前とジャンプするタイミングのフレームを比較することで求めることができるが、垂直にジャンプしていない場合、ジャンプの角度θを考慮する必要がある。つまり、ジャンプの初速度Vは、水平(奥行)方向の初速度Vyと、垂直方向の初速度Vzの合成となる。踵が離れる前の数フレームで速度を測定する方法においては、AI技術を使った骨格測定で観測することができるのは、垂直方向の初速度Vzであり、水平方向にどの程度蹴り出しているかはわからない。
【0046】
初速度Vと、水平方向の初速度Vy、垂直方向の初速度Vz及びジャンプの角度θの関係は、以下の式で表される。
Vz=Vsinθ
Vy=Vcosθ
【0047】
また、前後方向の移動距離lは、水平方向の初速度Vyとジャンプしていた時間(t)の積l=Vytとなる。水平方向の距離lとジャンプしていた時間tは算出できるので、水平方向の初速度Vyは、Vy=l/tとなる。一方、垂直方向の初速度Vzも算出でき、高さhは、h=Vz
2/2gと計算できる。
【0048】
しかしながら、複合移動の場合、ジャンプと同時に後方に移動しているため、Z軸方向の高さがY軸方向の移動距離に応じて縮むことを考慮する必要がある。垂直方向の初速度Vzが決まれば、重力加速度は一定なため、ジャンプできる高さhは一定だが、同じ場所で垂直方向にジャンプした場合に、高さhまでジャンプしたことが観測できても、後方に放物線を描くようにジャンプした場合、高さhも後ろに下がった分だけ縮んで観測されることになる。
【0049】
図12は、複合移動の一例を示す図である。
図12の例では、高さHの被写体500がカメラ100から距離L離れた位置から後方にジャンプして距離lだけ下がった位置に着地したとしている。なお、被写体500の高さHは、ここでは、被写体の最下点から頭頂部までの長さである。また、ジャンプの高さをhとする。この場合、後方に移動しているため、ジャンプの高さはhよりも縮んで観測される。例えば、L=200cm、l=30cm、H=160cm、H=40cmの場合、
z1:高さHの被写体がその場で高さhだけジャンプした場合の地面から頭頂部までの距離
z2:高さHの被写体が距離lだけ下がりながら高さhだけジャンプした場合において、距離l/2だけ下がって最高到達点に達したときの地面から頭頂部までの距離
z3:高さHの被写体の地面から頭頂部までの距離
z4:高さHの被写体が距離lだけ後ろに下がった場合の地面から頭頂部までの距離
z5:高さHの被写体がその場で高さhだけジャンプした場合の地面から足元までの距離
z6:高さHの被写体が距離lだけ下がりながら高さhだけジャンプした場合において、距離l/2だけ下がって最高到達点に達したときの地面から足元までの距離
とすると、
z1=h+H=200cm
z2=L(h+H)/(L+l/2)=148.84cm
z3=H=160cm
z4=HL/(L+l)=160*200/(200+30)=139.13cm
z5=h=40cm
z6=hL/(L+l/2)=40*200/(200+30/2)=37.2cm
となる。
【0050】
したがって、その場でジャンプした場合、z1(200cm)の高さまでZ座標が増えるが、
図12の例では、距離l/2だけ後ろに下がっているため、実際に観測されるZ座標は、z2(148.84cm)に縮んで見える。同様に、その場に立っているだけの状態なら、高さHすなわちz3(160cm)に観測されるが、距離lだけ後ろに下がるとz4(139.13cm)に縮んで観測される。さらには、その場で高さhだけジャンプした場合の足元は、高さhすなわちz5(40cm)だけZ座標が増えるが、距離l/2だけ後ろに下がっているため、実際に観測されるZ座標は、z6(37.2cm)に縮んで見える。
【0051】
図13は、骨格位置推定補正装置が行う処理の一例を説明するためのフローチャートである。
【0052】
先ず、カメラ100は、被写体を撮影する。そして、画像解析部101は、カメラ100にて撮影された撮影結果から、被写体を写した動画像データを生成して出力する(ステップS1301)。被写体は、ここでは、指導者とユーザとを含む。
【0053】
骨格推定部102は、画像解析部101から出力された動画像データからフレームを切り出し、そのフレームに写っている被写体の骨格の位置を推定して骨格位置推定結果を生成する(ステップS1302)。そして、骨格推定部102は、生成した骨格位置推定結果を骨格位置時系列データに加えて格納する(ステップS1303)。ただし、リアルタイム性が要求される場合、骨格推定部102は、骨格位置時系列データをメモリに展開する。
【0054】
骨格推定部102は、被写体の実際の大きさと動画像データ内の大きさとの関係を特定する(ステップS1304)。例えば、骨格推定部102は、被写体の身長と骨格位置時系列データから算出される被写体の大きさ(ピクセル数)に基づいて、被写体の各骨格部位に関する人体寸法に実際の値(cm)と動画像データのピクセル数との対応関係である大きさ対応関係を特定する。人体寸法は、身長、座高、股下高さ、頭囲、頭幅、首囲、肩幅、バスト、ウエスト、手長さ、手首囲、手幅、足長さ、足幅、太もも囲、及び、ふくらはぎ囲などであり、標準的な体格の人体寸法は身長から統計情報に基づいて取得できる。なお、被写体の身長は、予め設定されていてもよいし、設定されていない場合、平均的な身長が使用されてよい。
【0055】
骨格推定部102は、対象のフレームnと次のフレームn+1のそれぞれにおける被写体の最下点の位置を測定し、それらのY方向の位置の差分を上下変化量として算出する(ステップS1305)。
【0056】
骨格推定部102は、上下変化量が一定値を超えるか否かを判定する(ステップS1306)。上下変化量が一定値を超えていない場合、骨格推定部102は、次のフレームn+1を対象のフレームとしてステップS1305の処理に戻る。一方、上下変化量が一定値を超えている場合、骨格推定部102は、被写体の判定対象移動が発生したと推定する(ステップS1307)。
【0057】
被写体の判定対象移動が発生した場合、三角法計算部103は、被写体が前後移動を行ったか否かを判定する前後移動判定処理(
図14参照)を実行する(ステップS1308)。そして、三角法計算部103は、前後移動が行われた場合、その被写体の前後方向の移動距離を推定する移動距離推定処理(
図15参照)を実行する(ステップS1309)。
【0058】
その後、加速度計算部104は、判定対象移動の上下方向の初速度である上下初速度を算出する初速度算出処理(
図16)を実行する(ステップS1310)。そして、加速度計算部104は、上下初速度が基準値を超えているか否かを判断する(ステップS1311)。
【0059】
上下初速度が基準値を超えている場合、加速度計算部104は、被写体がジャンプしたと判定する(ステップS1312)。一方、上下初速度が基準値を超えていない場合、加速度計算部104は、被写体がジャンプしていないと判定する(ステップS1313)。
【0060】
なお、ステップS1312が終了した場合、奥行補正部105は、
図11及び
図12で説明した方法を用いて、三角法計算部103にて推定された前後方向の移動距離を補正してもよい。
【0061】
図14は、
図13のステップS1304の前後移動判定処理の一例を説明するためのフローチャートである。
【0062】
前後移動判定処理では、三角法計算部103は、は、対象のフレームnにおける複数の第2判定用部位にて規定される複数の判定用距離D1~Dkを算出する(ステップS1400)。三角法計算部103は、次のフレームn+1における複数の判定用距離d1~dkを算出する(ステップS1401)。三角法計算部103は、判定用距離ごとに、その判定用距離の変化比C1~Ckを算出する(ステップS1402)。つまり、変化比Ci=di/Diとなる。次に三角法計算部103は、各判定用距離の変化比C1~Ckの標準偏差σを算出する(ステップS1403)。
【0063】
三角法計算部103は、標準偏差σに基づいて、判定用距離の変化比C1~Ckから外れ値を除く(ステップS1404)。例えば、三角法計算部103は、±σ以上外れている変化比を外れ値として除く。そして、骨格推定部102は、外れ値を除いた変化比C1~Ckの平均値を前後変化比として算出する(ステップS1405)。
【0064】
三角法計算部103は、前後変化比の絶対値が所定値以上か否かを判断することで、被写体が前後移動を行ったか否かを判定する(ステップS1406)。このとき、前後変化比の絶対値が所定値以上であり、かつ、平均値が負の場合、被写体は後方に移動していると判定でき、前後変化比の絶対値が所定値以上であり、かつ、前後変化比が正の場合、被写体は前方に移動していると判定できる。
【0065】
図15は、
図13のステップS1308の移動距離推定処理の一例を説明するためのフローチャートである。
【0066】
三角法計算部103は、前後変化比の変化が止まった時点で判定対象移動が終了したと判定し、対象のフレームnから判定対象移動が終了したと判定されたフレームまでの骨格位置時系列データに基づいて、判定対象移動による移動距離を推定する移動距離推定処理を開始する。なお、被写体が前後移動していない場合、ステップS1308の処理はスキップされてもよい。
【0067】
具体的には、三角法計算部103は、カメラ100から被写体までの距離Lを設定する(ステップS1500)。距離Lは、ユーザから指定されてもよいし、予め定められた標準的な値(例えば、200cm)が使用されてもよい。
【0068】
続いて、三角法計算部103は、被写体の高さHを設定する(ステップS1501)。高さHは、ユーザから指定されてもよいし、予め定められた標準的な値(例えば、165cm)が使用されてもよい。なお、高さHは、身長でもよいし、主要部位間の長さでもよい。
【0069】
三角法計算部103は、前後に移動した後でカメラ100から見える高さhを設定する(ステップS1502)。三角法計算部103は、Y軸方向の変化比HΔ=H/hを算出する(ステップS1503)。三角法計算部103は、そして、距離をlとすると、l=(HΔ-1)Lで求めることができる(ステップS1504)。
【0070】
図16は、
図13のステップS1309の初速度算出処理の一例を説明するためのフローチャートである。
【0071】
加速度計算部104は、先ず、対象のフレームn及びn―1における腰(又は尻)とつま先(又は踵)の距離Lnを測定する(ステップS1600)。続いて、加速度計算部104は、対象のフレームnを所定数分進めたフレームn+kにおける上記の距離Ln+kを測定する。加速度計算部104は、距離の差dk=Ln+k-Lnを算出する(ステップS1601)。
【0072】
加速度計算部104は、距離の差dkが負(dk<0)か否かを判断する(ステップS1602)。距離の差dkが負でない場合、加速度計算部104は、ステップS1601の処理に戻る。一方、距離の差dkが負の場合、加速度計算部104は、被写体の腰が沈み始めた(下方向に移動し始めた)と判断して、今回の距離の差dkが1つ前の距離の差dk-1未満(dk<dk-1)か否かを判断する(ステップS1603)。なお、1つ前の距離の差dk-1はdk-1=Ln+k-1-Ln-1である。dk<dk-1でない場合、加速度計算部104は、ステップS1601の処理に戻る。
【0073】
dk<dk-1の場合、加速度計算部104は、被写体の腰が最下点に到達したと判断して、フレームn+kを規定数分進めたフレームn+k+mにおける上記の距離Ln+k+mを測定する。加速度計算部104は、距離の差dm=Ln+k+m-Ln+kを算出する(ステップS1604)。
【0074】
加速度計算部104は、距離の差dmが正(dm>0)か否かを判断する(ステップS1605)。距離の差dmが正でない場合、加速度計算部104は、ステップS1604の処理に戻る。一方、距離の差dmが正の場合、加速度計算部104は、被写体の腰が上方向に移動し始めたと判断して、上下方向の初速度VZを算出する(ステップS1606)。具体的には、加速度計算部104は、動画像データのフレームレートをFとすると、初速度VZをVZ=dm×F/mから算出する。
【0075】
そして、加速度計算部104は、初速度VZが特定速度VΔを超えるか否かを判断することで、被写体がジャンプしたか否かを判断し(ステップS1607)、処理を終了する。なお、重力加速度をgとすると、ジャンプの高さhは、h=Vz
2/2gと表される。ここで、重力加速度gを9.8(m/s2)とし、被写体が地面から0.05mm以上離れたことをジャンプと定義した場合、特定速度VΔは、(0.05×2g)1/2≒0.99となる。
【0076】
以上説明したように本実施例によれば、骨格推定部102は、動画像データを解析して、被写体の第1判定用部位における上下方向の変化量が一定値を超えた場合、被写体の前後方向の移動及び上下方向の移動の少なくとも一方を含む判定対象移動が発生したと推定する。三角法計算部103は、判定対象移動が発生した場合、動画像データに基づいて、被写体の複数の第2判定用部位にて規定される判定用距離の対象移動前後の変化比である前後変化比が所定値以上か否かを判定することで、判定対象移動が前記前後方向の移動を含むか否かを判定する。したがって、単一の撮影装置を使用した場合でも、被写体の前後方向の移動を適切に判別することが可能になる。
【0077】
また、本実施例では、三角法計算部103は、判定用距離の対象移動前後の変化比に基づいて、被写体の前後方向の移動距離を推定する。これにより、移動距離をより正確に推定することが可能となる。
【0078】
また、本実施例では、判定用距離は、3つの前記判定用部位が作る3角形の高さである。これにより、被写体の前後方向の移動をより適切に判別することが可能となる。
【0079】
また、本実施例では、三角法計算部103は、3つの判定用部位の組み合わせを複数選択し、組み合わせごとの判定用距離の変化比の平均値を前後変化比として算出する。これにより、被写体の前後方向の移動をより適切に判別することが可能となる。
【0080】
また、本実施例では、加速度計算部104は、前記判定対象移動が発生する前の被写体の複数の部位の位置の推移を推定した位置時系列データに基づいて、判定対象移動が上方向の移動を含むかを判定する。これにより、被写体の上方向の移動(ジャンプ)を適切に判別することが可能になる。
【0081】
また、本実施例では、奥行補正部105は、判定対象移動が前後方向の移動と上方向の移動との両方を含む場合、位置時系列データに基づいて、前後方向の移動距離を補正する。移動距離をより正確に推定することが可能となる。
【0082】
上述した本開示の実施例は、本開示の説明のための例示であり、本開示の範囲をそれらの実施例にのみ限定する趣旨ではない。当業者は、本開示の範囲を逸脱することなしに、他の様々な態様で本開示を実施することができる。
100:カメラ100 101:画像解析部 102:骨格推定部 103:三角法計算部 104:加速度計算部 105:奥行補正部 106:インストラクタ 107:ユーザ 108:骨格位置推定結果時系列データセット