(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024141415
(43)【公開日】2024-10-10
(54)【発明の名称】姿勢推定システム、および姿勢推定方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20241003BHJP
A61B 5/107 20060101ALI20241003BHJP
A61B 5/11 20060101ALI20241003BHJP
【FI】
G06T7/00 660B
A61B5/107 300
A61B5/11 200
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023053042
(22)【出願日】2023-03-29
(71)【出願人】
【識別番号】000001247
【氏名又は名称】株式会社ジェイテクト
(74)【代理人】
【識別番号】110000280
【氏名又は名称】弁理士法人サンクレスト国際特許事務所
(72)【発明者】
【氏名】久保田 直樹
【テーマコード(参考)】
4C038
5L096
【Fターム(参考)】
4C038VA04
4C038VB01
4C038VC05
5L096AA06
5L096BA08
5L096CA02
5L096DA02
5L096FA67
5L096FA69
(57)【要約】
【課題】姿勢推定の精度の低下を抑制することができる技術を提供する。
【解決手段】姿勢推定システム1は、対象者Tを撮像した画像から得られる複数の関節点に基づいて、対象者Tの部位を示す複数の部位ベクトルを取得する処理と、複数の部位ベクトルのうちの基準部位を示す基準部位ベクトルと、複数の部位ベクトルのうちの可動部位を示す可動部位ベクトルと、がなすベクトル間角度を求める処理と、可動部位の可動範囲を平面視したときにおいて、基準部位ベクトルに直交する方向を有する方向基準ベクトルを複数の部位ベクトルのうちの参照部位ベクトルに基づいて求める処理と、ベクトル間角度、可動部位ベクトル、および方向基準ベクトルに基づいて、関節における可動部位と基準部位との間の関節角度を求める処理と、を実行する処理部6を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
基準部位、および関節を介して前記基準部位に繋がる可動部位を有する対象者の姿勢を推定する姿勢推定システムであって、
前記対象者を撮像した画像から得られる複数の関節点に基づいて、前記対象者の部位を示す複数の部位ベクトルを取得する処理と、
前記複数の部位ベクトルのうちの前記基準部位を示す基準部位ベクトルと、前記複数の部位ベクトルのうちの前記可動部位を示す可動部位ベクトルと、がなすベクトル間角度を求める処理と、
前記可動部位の可動範囲を平面視したときにおいて、前記基準部位ベクトルに直交する方向を有する方向基準ベクトルを前記複数の部位ベクトルのうちの参照部位ベクトルに基づいて求める処理と、
前記ベクトル間角度、前記可動部位ベクトル、および前記方向基準ベクトルに基づいて、前記関節における前記可動部位と前記基準部位との間の関節角度を求める処理と、を実行する処理部を備える
姿勢推定システム。
【請求項2】
前記参照部位ベクトルは、前記複数の部位ベクトルのうち、前記可動部位の可動範囲を平面視したときにおいて、前記基準部位の長手方向に対して交差する方向に延びる部位のベクトルである
請求項1に記載の姿勢推定システム。
【請求項3】
前記方向基準ベクトルを求める処理は、
前記基準部位ベクトルおよび前記可動部位ベクトルに基づいて、前記可動部位の可動範囲を平面視したときに前記基準部位ベクトルに垂直なベクトルを求める処理と、
前記基準部位ベクトルに垂直なベクトルと、前記参照部位ベクトルと、に基づいて前記方向基準ベクトルを求める処理と、
を含む
請求項2に記載の姿勢推定システム。
【請求項4】
前記参照部位ベクトルが示す部位は足であり、
前記基準部位は体幹である
請求項1に記載の姿勢推定システム。
【請求項5】
前記可動部位は太腿である
請求項4に記載の姿勢推定システム。
【請求項6】
前記可動部位は上腕である
請求項4に記載の姿勢推定システム。
【請求項7】
前記参照部位ベクトルが示す部位は肩であり、
前記基準部位は体幹である
請求項1に記載の姿勢推定システム。
【請求項8】
前記可動部位は太腿である
請求項7に記載の姿勢推定システム。
【請求項9】
前記可動部位は上腕である
請求項7に記載の姿勢推定システム。
【請求項10】
基準部位、および関節を介して前記基準部位に繋がる可動部位を有する対象者の姿勢を姿勢推定する姿勢推定方法であって、
前記対象者を撮像した画像から得られる複数の関節点に基づいて、前記対象者の部位を示す複数の部位ベクトルを取得するステップと、
前記複数の部位ベクトルのうちの前記基準部位を示す基準部位ベクトルと、前記複数の部位ベクトルのうちの前記可動部位を示す可動部位ベクトルと、がなすベクトル間角度を求めるステップと、
前記可動部位の可動範囲を平面視したときにおいて、前記基準部位ベクトルに直交する方向を有する方向基準ベクトルを前記複数の部位ベクトルのうちの参照部位ベクトルに基づいて求めるステップと、
前記ベクトル間角度、前記可動部位ベクトル、および前記方向基準ベクトルに基づいて、前記関節における前記可動部位と前記基準部位との間の関節角度を求めるステップと、
を含む
姿勢推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、姿勢推定システム、および姿勢推定方法に関する。
【背景技術】
【0002】
特許文献1には、機械学習を利用して、人物の画像データから前記人物における骨格モデルおよび各部の関節点を推定し、姿勢推定を行う技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
骨格モデルによって姿勢推定を行う場合、人物における複数の関節点および複数の関節点を繋ぐ部位を示すベクトルを求め、関節を介して互いに可動する2つの部位同士の間で両者のベクトルがなす角度を求め、関節角度を推定することがある。
例えば、
図7に示すように、歩行中の人物の股関節の角度を求めようとすると、体幹部分を示すベクトル100と、大腿部を示すベクトル102と、の角度を求めることになる。
【0005】
ここで、2つのベクトルがなす角度は、ベクトルの内積の関係を利用して求めるため、0度から180度の範囲の値を採る。
このため、2つのベクトルがなす角度に基づいて大腿部の関節角度を求めようとすると、大腿部が人物の前方側に位置しているのか、人物の後方側に位置しているのかを判定することができないおそれがあり、姿勢推定の精度を低下させる要因となっていた。
【課題を解決するための手段】
【0006】
実施形態である姿勢推定システムは、基準部位、および関節を介して前記基準部位に繋がる可動部位を有する対象者の姿勢を推定するシステムである。姿勢推定システムは、前記対象者を撮像した画像から得られる複数の関節点に基づいて、前記対象者の部位を示す複数の部位ベクトルを取得する処理と、前記複数の部位ベクトルのうちの前記基準部位を示す基準部位ベクトルと、前記複数の部位ベクトルのうちの前記可動部位を示す可動部位ベクトルと、がなすベクトル間角度を求める処理と、前記可動部位の可動範囲を平面視したときにおいて、前記基準部位ベクトルに直交する方向を有する方向基準ベクトルを前記複数の部位ベクトルのうちの参照部位ベクトルに基づいて求める処理と、前記ベクトル間角度、前記可動部位ベクトル、および前記方向基準ベクトルに基づいて、前記関節における前記可動部位と前記基準部位との間の関節角度を求める処理と、を実行する処理部を備える。
【0007】
また、他の観点から見た本実施形態は、姿勢推定方法である。この姿勢推定方法は、基準部位、および関節を介して前記基準部位に繋がる可動部位を有する対象者の姿勢を姿勢推定する。姿勢推定方法は、前記対象者を撮像した画像から得られる複数の関節点に基づいて、前記対象者の部位を示す複数の部位ベクトルを取得するステップと、前記複数の部位ベクトルのうちの前記基準部位を示す基準部位ベクトルと、前記複数の部位ベクトルのうちの前記可動部位を示す可動部位ベクトルと、がなすベクトル間角度を求めるステップと、前記可動部位の可動範囲を平面視したときにおいて、前記基準部位ベクトルに直交する方向を有する方向基準ベクトルを前記複数の部位ベクトルのうちの参照部位ベクトルに基づいて求めるステップと、前記ベクトル間角度、前記可動部位ベクトル、および前記方向基準ベクトルに基づいて、前記関節における前記可動部位と前記基準部位との間の関節角度を求めるステップと、を含む。
【発明の効果】
【0008】
本開示によれば、姿勢推定の精度の低下を抑制することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態に係る姿勢推定システムの全体構成を示す図である。
【
図2】
図2は、姿勢推定システム1を用いた姿勢推定の手順を示すフローチャートである。
【
図3】
図3は、処理部6が推定する複数の関節点を示す図である。
【
図4】
図4は、関節角度推定処理の一例を示すフローチャートである。
【
図5】
図5は、対象者Tを側面から見たときの部位ベクトルの一部を示す図である。
【
図6】
図6は、対象者Tを正面から見たときの部位ベクトルの一部を示す図である。
【
図7】
図7は、体幹のベクトルと、大腿部のベクトクと、の関係を示す図である。
【発明を実施するための形態】
【0010】
最初に実施形態の内容を列記して説明する。
[実施形態の概要]
(1)実施形態である姿勢推定システムは、基準部位、および関節を介して前記基準部位に繋がる可動部位を有する対象者の姿勢を推定するシステムである。姿勢推定システムは、前記対象者を撮像した画像から得られる複数の関節点に基づいて、前記対象者の部位を示す複数の部位ベクトルを取得する処理と、前記複数の部位ベクトルのうちの前記基準部位を示す基準部位ベクトルと、前記複数の部位ベクトルのうちの前記可動部位を示す可動部位ベクトルと、がなすベクトル間角度を求める処理と、前記可動部位の可動範囲を平面視したときにおいて、前記基準部位ベクトルに直交する方向を有する方向基準ベクトルを前記複数の部位ベクトルのうちの参照部位ベクトルに基づいて求める処理と、前記ベクトル間角度、前記可動部位ベクトル、および前記方向基準ベクトルに基づいて、前記関節における前記可動部位と前記基準部位との間の関節角度を求める処理と、を実行する処理部を備える。
【0011】
上記システムによれば、基準部位ベクトルに直交する方向を有する方向基準ベクトルを求めるので、方向基準ベクトルと、可動部位ベクトルと、に基づいて、可動部位ベクトルの可動方向(可動位置)を特定することができる。
この結果、基準部位ベクトルおよび可動部位ベクトルから関節角度を求める際に、基準部位に対する可動部位の可動方向を加味することができ、関節角度を精度よく求めることができる。
この結果、姿勢推定の精度低下を抑制することができる。
【0012】
(2)上記システムにおいて、前記参照部位ベクトルは、前記複数の部位ベクトルのうち、前記可動部位の可動範囲を平面視したときにおいて、前記基準部位の長手方向に対して交差する方向に延びる部位のベクトルであることが好ましい。
この場合、方向基準ベクトルを好適に求めることができる。
【0013】
(3)上記システムにおいて、前記方向基準ベクトルを求める処理は、前記基準部位ベクトルおよび前記可動部位ベクトルに基づいて、前記可動部位の可動範囲を平面視したときに前記基準部位ベクトルに垂直なベクトルを求める処理と、前記基準部位ベクトルに垂直なベクトルと、前記参照部位ベクトルと、に基づいて前記方向基準ベクトルを求める処理と、を含むことが好ましい。
この場合、参照部位ベクトルの他、基準部位ベクトルおよび可動部位ベクトルを用いて方向基準ベクトルを求めることができる。
【0014】
(4)上記システムにおいて、前記参照部位ベクトルが示す部位は足であり、前記基準部位は体幹であってもよい。
この場合、対象者の前後方向に可動する可動部位の角度について好適に求めることができる。
(5)この場合、前記可動部位は太腿であってもよい。
(6)また、前記可動部位は上腕であってもよい。
【0015】
(7)上記システムにおいて、前記参照部位ベクトルが示す部位は肩であり、前記基準部位は体幹であってもよい。
この場合、対象者の左右方向に可動する可動部位の角度について好適に求めることができる。
(8)この場合、前記可動部位は太腿であってもよい。
(9)また、前記可動部位は上腕であってもよい。
【0016】
(10)また、他の観点から見た本実施形態は、姿勢推定方法である。この姿勢推定方法は、基準部位、および関節を介して前記基準部位に繋がる可動部位を有する対象者の姿勢を姿勢推定する。姿勢推定方法は、前記対象者を撮像した画像から得られる複数の関節点に基づいて、前記対象者の部位を示す複数の部位ベクトルを取得するステップと、前記複数の部位ベクトルのうちの前記基準部位を示す基準部位ベクトルと、前記複数の部位ベクトルのうちの前記可動部位を示す可動部位ベクトルと、がなすベクトル間角度を求めるステップと、前記可動部位の可動範囲を平面視したときにおいて、前記基準部位ベクトルに直交する方向を有する方向基準ベクトルを前記複数の部位ベクトルのうちの参照部位ベクトルに基づいて求めるステップと、前記ベクトル間角度、前記可動部位ベクトル、および前記方向基準ベクトルに基づいて、前記関節における前記可動部位と前記基準部位との間の関節角度を求めるステップと、を含む。
【0017】
[実施形態の詳細]
以下、好ましい実施形態について図面を参照しつつ説明する。
〔全体構成について〕
図1は、実施形態に係る姿勢推定システムの全体構成を示す図である。
実施形態に係る姿勢推定システム1は、対象者を撮像し、撮像した動画または静止画に基づいて対象者の姿勢推定を行うシステムである。
【0018】
姿勢推定システム1は、複数のカメラ2と、処理装置4と、を備える。
複数のカメラ2は、それぞれ、CCD素子やCMOS素子等の撮像素子およびレンズ等の光学機構を有しており、所定の撮像範囲を撮像し動画または静止画等の画像データを生成する機能を有する。カメラ2は、撮像範囲内の対象者Tを被写体とし、対象者Tが撮像された画像データを生成する。カメラ2は、脚3によって支持されており、対象者Tの身長の1/2程度の高さに設置される。これにより、対象者Tを撮像する際のカメラ2の撮像方向は、ほぼ水平となる。
カメラ2は、処理装置4に通信可能に接続されている。カメラ2が生成する画像データは、処理装置4へ与えられる。
【0019】
処理装置4は、処理部6と、記憶部8と、入出力部10と、を備えるコンピュータ等により構成される。
処理部6は、例えば、CPU(Central Processing Unit)等からなる。
【0020】
記憶部8は、例えば、フラッシュメモリ、ハードディスク、ROM(Read Only Memory)、RAM(Random Access Memory)等である。
記憶部8には、処理部6に実行させるためのコンピュータプログラムや、必要な情報が記憶されている。処理部6は、記憶部8のようなコンピュータ読み取り可能な非一過性の記録媒体に記憶されたコンピュータプログラムを実行することで、処理部6が有する各種処理機能を実現する。
【0021】
入出力部10は、入力デバイスと、出力デバイスと、を含む。入力デバイスは処理装置4のオペレータによる操作を受け付ける機能を有する。入力デバイスには、キーボードやマウス、タッチパネル等が含まれる。出力デバイスは、処理装置4による処理に関する各種情報を外部へ向けて出力する機能を有する。出力デバイスには、モニタや、プリンタ、タッチパネル、スピーカ等が含まれる。
【0022】
〔姿勢推定システムを用いた姿勢推定について〕
図2は、姿勢推定システム1を用いた姿勢推定の手順を示すフローチャートである。
姿勢推定において、まず、オペレータは、複数のカメラ2を用いて対象者Tを撮像する(
図2中、ステップS1)。
対象者Tを撮像することで複数のカメラ2が生成する画像データは、上述のように、処理装置4へ与えられる。
対象者Tが撮像された画像データが与えられると、処理装置4の処理部6は、画像データに含まれる画像から対象者Tの像を特定し、対象者Tの像に基づいて、対象者Tの骨格を推定し、さらに推定した骨格から複数の関節点を推定する(
図2中、ステップS2)。
処理部6は、機械学習を利用した手法を用いて、対象者Tの骨格および関節点の推定を行う。骨格および関節点の推定手法としては、オープンポーズ等が挙げられる。
処理部6は、対象者Tの頭、首、肩、腕、腰、大腿、足等の部位を推定し、さらに各部位が繋がる関節点を推定する。
【0023】
図3は、処理部6が推定する複数の関節点を示す図である。
処理部6により推定される関節点は、
図3に示すように、頭部関節点20、左肩関節点21、右肩関節点22、左肘関節点23、右肘関節点24、左手首関節点25、右手首関節点26、左股関節点(左臀部関節点)27、右股関節点(右臀部関節点)28、左膝関節点29、右膝関節点30、左足首関節点31、右足首関節点32、左爪先関節点33、右爪先関節点34、左踵関節点35、および、右踵関節点36を含む。
【0024】
処理部6は、複数の関節点の位置情報として座標を得る。
さらに、処理部6は、複数の関節点に基づいて複数の部位ベクトルを取得する(
図2中、ステップS3)。
複数の部位ベクトルは、対象者Tを構成する複数の部位を示す方向ベクトルである。
処理部6は、複数の関節点の座標に基づいて、対象者Tの部位によって繋がる関節点間のベクトルを部位ベクトルとして求める。
図3中の部位ベクトルは、図に示す矢印の方向に向くベクトルである。
【0025】
図3に示すように、処理部6によって取得される部位ベクトルは、左上腕ベクトル41、右上腕ベクトル42、左前腕ベクトル43、右前腕ベクトル44、左大腿ベクトル45、右大腿ベクトル46、左脛ベクトル47、右脛ベクトル48、左足ベクトル49、および、右足ベクトル50を含む。
【0026】
さらに、処理部6は、左肩関節点21と、右肩関節点22と、の第1中点52を求める。また、処理部6は、左臀部関節点27と、右臀部関節点28と、の第2中点54を求める。
処理部6は、第1中点52と、第2中点54と、とを繋ぐベクトルを体幹ベクトル56として求める。体幹ベクトル56は、対象者Tの体幹を示す部位ベクトルである。なお、体幹とは、対象者Tの頭、首、腕、脚以外の胴体部分をいう。
また、処理部6は、第1中点52と、左肩関節点21と、を繋ぐベクトルを左肩ベクトル57として求める。左肩ベクトル57は、対象者Tの左肩を示す部位ベクトルである。
処理部6は、第1中点52と、右肩関節点22と、を繋ぐベクトルを右肩ベクトル58として求める。右肩ベクトル58は、対象者Tの右肩を示す部位ベクトルである。
【0027】
なお、以下の説明では、各図中、互いに直交する3方向をX方向、Y方向、およびZ方向とする。また、
図3に示すように、X方向のうちの一方向をX1方向、X1方向の反対方向をX2方向とする。Y方向のうちの一方向をY1方向、Y1方向の反対方向をY2方向とする。Z方向のうちの一方向をZ1方向、Z1方向の反対方向をZ2方向とする。
また、以下の説明では、体幹ベクトル56は、Y方向に平行であるものとし、左肩ベクトル57および右肩ベクトル58はZ方向に平行であるものとし、第2中点、左臀部関節点27、および右臀部関節点28は、Z方向に沿って一直線上に並んでいるものとする。
つまり、X方向、Y方向、およびZ方向は、対象者Tを基準とした方向であり、対象者Tの体幹ベクトル56、左肩ベクトル57および右肩ベクトル58に基づいて定まる。
例えば、X1方向は、対象者Tから見て前方向(アンテリア方向)である。X2方向は、対象者Tからにて後方向(ポステリア方向)である。
また、X-Y平面は、サジタル面、Y-Z平面は、コロナル面である。
【0028】
図2に示すように、複数の部位ベクトルを取得すると、処理部6は、姿勢推定処理を行う(
図2中、ステップS4)。処理部6は、複数の部位ベクトルを用いて、対象者Tの姿勢を推定する。
処理部6は、関節を介して繋がる2つの部位の間の関節角度の推定値を求める処理(関節角度推定処理)を行い、対象者Tの姿勢を推定する。
【0029】
複数のカメラ2が生成する画像データが動画である場合、処理部6は、動画に含まれる複数の静止画像のうちの一部または全部について上述のステップS2~S4の処理を行い、対象者Tの姿勢を推定する。
【0030】
ステップS4にて対象者Tの姿勢を推定すると、処理部6は、姿勢の推定結果を、入出力部10を介して、オペレータへ出力し(
図2中、ステップS5)、処理を終える。
【0031】
〔関節角度推定処理について〕
上述のように、
図2中の姿勢推定処理では、処理部6は、関節角度の推定値を求める関節角度推定処理を行う。
図4は、関節角度推定処理の一例を示すフローチャートである。
関節角度推定処理において、処理部6は、基準部位と、可動部位との間の関節角度の推定値を求める。
基準部位とは、可動部位の動作の基準となる部位である。可動部位とは、関節を介して基準部位に繋がる部位である。
処理部6は、可動部位ベクトルの先端の位置を特定し、可動部位ベクトルの先端の位置に基づいて関節角度の推定値を求める。なお以下の説明では、関節角度の推定値は、単に関節角度ともいうことがある。
【0032】
関節角度推定処理において、処理部6は、まず、基準部位ベクトルに垂直なベクトルを求める(
図4中、ステップS11)。
処理部6は、基準部位ベクトルと、可動部位ベクトルとに基づいて、可動部位の可動範囲を平面視したときに基準部位ベクトルに垂直なベクトルを求める。なお、基準部位ベクトルとは、基準部位を示すベクトルである。また、可動部位ベクトルとは、可動部位を示すベクトルである。
可動部位の可動範囲を平面視するとは、可動範囲を含む面の法線方向から前記面における部位およびベクトル等を見ることをいう。
【0033】
基準部位ベクトルに垂直なベクトルを求めると、処理部6は、ステップS12へ進み、方向基準ベクトルを求める。方向基準ベクトルは、基準部位ベクトルに直交する方向を有するベクトルであり、可動部位ベクトルの可動方向(可動位置)を特定するためのベクトルである。
処理部6は、基準部位ベクトルに垂直なベクトルと、参照部位ベクトルと、に基づいて方向基準ベクトルを求める。参照部位ベクトルは、複数の部位ベクトルのうち、可動部位の可動範囲を平面視したときにおいて、基準部位の長手方向に対して交差する方向に延びる部位のベクトルである。
【0034】
方向基準ベクトルを求めると、処理部6は、ステップS13へ進み、ベクトル間角度を求める。ベクトル間角度とは、基準部位ベクトルと、可動部位ベクトルと、がなす角度である。
ベクトル間角度を求めた処理部6は、ステップS14へ進み、ベクトル間角度、可動部位ベクトル、および方向基準ベクトルに基づいて、関節角度を求め、処理を終える。
【0035】
〔X-Y面上における股関節の関節角度推定処理〕
次に、上述の関節角度推定処理について、より具体的に説明する。
ここでは、まず、歩行中の対象者Tを側面(Z1方向)から撮像した画像に基づいて関節角度を求める場合における関節角度推定処理について説明する。
【0036】
図5は、対象者Tを側面から見たときの部位ベクトルの一部を示す図である。
図5は、対象者TをZ1方向から撮像したときの画像に基づいて、関節点および部位ベクトルを取得した場合を示している。つまり、
図5では、X-Y平面における関節点および部位ベクトルを示している。
【0037】
図5では、対象者TがX1方向(前方)へ歩行しているときの対象者Tの体幹ベクトル56、左上腕ベクトル41、左大腿ベクトル45、左足ベクトル49、および右足ベクトル50を示している。
以下、処理部6が、関節角度推定処理によって、左股関節の関節角度θ
hiplを求める場合について説明する。関節角度θ
hiplは、
図5に示すように、X-Y平面における、対象者Tの体幹60と、股関節61を介して体幹60に繋がる左大腿部62と、の間の関節角度である。
つまり、ここでは、体幹60を基準部位、左大腿部62を可動部位としたときの、体幹60と、左大腿部62と、の間の股関節における関節角度の推定値を処理部6が求める場合について説明する。
なお、左大腿部62はX-Y平面に沿って可動範囲を有している。よって、
図5は、左大腿部62の可動範囲を平面視している。
【0038】
まず、処理部6は、X-Y平面上において、体幹ベクトル56(基準部位ベクトル)に垂直なベクトルを求める(
図4中、ステップS11)。
処理部6は、下記式(1)に基づいて、体幹ベクトル56に垂直なベクトルnを求める。なお、本明細書では、ベクトルを表す文字上の矢印を省略し、ベクトルという文字によってベクトルであることを表すことがある。
【0039】
【0040】
式(1)中、dspineは体幹ベクトル56、dthghlは、左大腿ベクトル45である。ベクトルnは、体幹ベクトル56に垂直であるが、X1方向を向いているのか、X2方向を向いているのかは不明である。
【0041】
次いで、処理部6は、方向基準ベクトルaを求める(
図4中、ステップS11)。
方向基準ベクトルaは、左大腿ベクトル45(可動部位ベクトル)の先端の位置を特定するためのベクトルである。
処理部6は、ベクトルnと、参照部位ベクトルとに基づいて、方向基準ベクトルaを求める。
関節角度θ
hiplを求める場合、処理部6は、左足ベクトル49および右足ベクトル50から求められる足ベクトルd
footを参照部位ベクトルとして用いる。足ベクトルd
footは、下記式(2)のように表される。
【0042】
【0043】
式(2)中、d
lfootは左足ベクトル49、d
rfootは右足ベクトル50である。式(2)に示すように、左足ベクトル49および右足ベクトル50の平均が足ベクトルd
footである。
左足ベクトル49および右足ベクトル50は、上記式(3)(4)のように表される。
式(3)中、p
ltoeは、左爪先関節点33の位置ベクトル、p
lheelは、左踵関節点35の位置ベクトル、式(4)中、p
rtoeは、右爪先関節点34の位置ベクトル、p
rheelは、右踵関節点36の位置ベクトルである。
図5に示すように、左足ベクトル49および右足ベクトル50は、対象者TのX1方向側(前側)を向くベクトルである。この場合、左足ベクトル49および右足ベクトル50は、対象者TのX2方向側(後側)を向くことはほぼない。このため、足ベクトルd
footは、対象者TのX1方向側を示している。
このように、参照部位ベクトルである足ベクトルd
footは、左大腿部62の可動範囲を平面視したときにおいて、体幹60の長手方向に対して交差する方向に延びる部位である左足64および右足66のベクトルである。
【0044】
次いで、処理部6は、下記式(5)に示すように、ベクトルnと、足ベクトルdfootと、の内積αを求める。
【0045】
【0046】
ここで、足ベクトルdfootは、対象者TのX1方向側を示している。また、ベクトルnは、体幹ベクトル56に垂直なベクトルである。
よって、内積αが0以上の場合、ベクトルnと、足ベクトルdfootとの角度は0度から90度の範囲であることが判る。よって、この場合、処理部6は、ベクトルnが対象者TのX1方向側を向いていると判定する。
逆に、内積αが0より小さい場合、ベクトルnと、足ベクトルdfootとの角度は90度から180度の範囲とあることが判る。よって、この場合、処理部6は、ベクトルnが対象者TのX2方向側を向いていると判定することができる。
つまり、内積αは、ベクトルnの方向を示している。
【0047】
次いで、処理部6は、下記式(6)に示すように、内積αと、ベクトルnと、に基づいて、方向基準ベクトルaを求める(
図4中、ステップS12)。
【0048】
【0049】
内積αが0以上である場合(ベクトルnが対象者TのX1方向側を向いている場合)、処理部6は、ベクトルnをそのまま方向基準ベクトルaとする。
内積αが0より小さい場合(ベクトルnが対象者TのX2方向側を向いている場合)、処理部6は、ベクトルnを反転させて方向基準ベクトルaを得る。
これにより、方向基準ベクトルaは、左上腕部72の可動範囲を平面視したときにおいて、体幹ベクトル56に垂直かつ対象者TのX1方向側(前側)を向くベクトルとして得られる。
【0050】
次いで、処理部6は、ベクトル間角度を求める(
図4中、ステップS13)。
処理部6は、下記式(7)に基づいて、ベクトル間角度θ
tlを求める。
【0051】
【0052】
ベクトル間角度θ
tlを求めると、処理部6は、関節角度θ
hiplを求める(
図4中、ステップS14)。
処理部6は、まず、下記式(8)に示すように、方向基準ベクトルaと、左大腿ベクトル45と、の内積β
lを求める。
【0053】
【0054】
内積βlが0以上の場合、方向基準ベクトルaと、左大腿ベクトル45と、の角度は0度から90度の範囲であることが判る。よって、この場合、処理部6は、左大腿ベクトル45の向きがX1方向側(前側)であるか、または、左大腿ベクトル45と体幹ベクトル56とが同一直線上に位置していると特定することができる。
逆に、内積βlが0より小さい場合、方向基準ベクトルaと、左大腿ベクトル45と、の角度は90度から180度の範囲であることが判る。よって、この場合、処理部6は、左大腿ベクトル45の向きがX2方向側(後側)であると特定することができる。
【0055】
なお、左大腿ベクトル45の向きがX1方向側(前側)である場合とは、左大腿ベクトル45の先端の位置が体幹ベクトル56よりもX1方向側である場合をいう。また、左大腿ベクトル45の向きがX2方向側(後側)である場合とは、左大腿ベクトル45の先端の位置が体幹ベクトル56よりもX2方向側である場合をいう。
【0056】
次いで、処理部6は、下記式(9)に基づいて、関節角度θhiplを求める。
【0057】
【0058】
式(9)では、内積βlが0以上の場合、処理部6は、ベクトル間角度θtlをそのまま、関節角度θhiplとし、内積βlが0より小さい場合、正負を反転させたベクトル間角度θtlを関節角度θhiplとする。
つまり、処理部6は、左大腿部62が体幹ベクトル56を基準に対象者TのX1方向側(前側)に位置する場合、ベクトル間角度θtlを関節角度θhiplとし、左大腿部62が体幹ベクトル56を基準に対象者TのX2方向側(後側)に位置する場合、正負を反転させたベクトル間角度θtlを関節角度θhiplとする。
【0059】
このように、処理部6は、対象者Tの左大腿部62が対象者TのX1方向側(前側)に位置しているのか、X2方向側(後側)に位置しているのか、を把握することができ、関節角度θhiplを精度良く求めることができる。
【0060】
本実施形態によれば、体幹ベクトル56(基準部位ベクトル)に直交する方向を有する方向基準ベクトルaを求めるので、方向基準ベクトルaと、左大腿ベクトル45(可動部位ベクトル)と、に基づいて、左大腿ベクトル45の可動方向(可動位置)を特定することができる。
この結果、体幹ベクトル56および左大腿ベクトル45から関節角度θhiplを求める際に、体幹60に対する左大腿部62の可動方向を加味することができ、関節角度θhiplを精度よく求めることができる。
この結果、姿勢推定の精度低下を抑制することができる。
【0061】
また、上述の例では、参照部位ベクトルである足ベクトルdfootが示す部位は足であり、基準部位は体幹60であるので、対象者Tの前後方向に可動する可動部位の角度について好適に求めることができる。
【0062】
〔X-Y面上における肩関節の関節角度推定処理〕
次に、処理部6が、関節角度推定処理によって、左肩関節の関節角度θ
shllを求める場合について説明する。関節角度θ
shllは、
図5に示すように、X-Y平面における、対象者Tの体幹60と、左肩関節70を介して体幹60に繋がる左上腕部72と、の間の関節角度である。
つまり、ここでは、体幹60を基準部位、左上腕部72を可動部位としたときの、体幹60と、左上腕部72と、の間の肩関節における関節角度の推定値を処理部6が求める場合について説明する。
【0063】
関節角度θ
shllを求める場合、大腿部と同様、上腕部はX-Y平面に沿って可動範囲を有している。よって、
図5は、上腕部の可動範囲を平面視している。
よって、処理部6は、股関節の関節角度θ
hiplを求めたときに用いた方向基準ベクトルaを、肩関節の関節角度θ
shllを求める場合にも用いることができる。
従って、関節角度θ
shllを求める場合、処理部6は、上述のステップS11、S12と同様の処理を行い、方向基準ベクトルaを求める。
【0064】
次いで、処理部6は、ベクトル間角度を求める(
図4中、ステップS13)。
処理部6は、下記式(10)に基づいて、ベクトル間角度θ
ulを求める。
【0065】
【0066】
ベクトル間角度θ
ulを求めると、処理部6は、関節角度θ
shllを求める(
図4中、ステップS14)。
処理部6は、下記式(11)に示すように、方向基準ベクトルaと、左上腕ベクトル41と、の内積γ
lを求める。
【0067】
【0068】
式(11)中、duarmlは、左上腕ベクトル41である。
内積γlが0以上の場合、方向基準ベクトルaと、左上腕ベクトル41と、の角度は0度から90度の範囲であることが判る。よって、この場合、処理部6は、左上腕ベクトル41の向きがX1方向側(前側)であるか、または、左上腕ベクトル41と体幹ベクトル56とが同一直線上に位置していると特定することができる。
逆に、内積γlが0より小さい場合、方向基準ベクトルaと、左上腕ベクトル41と、の角度は90度から180度の範囲であることが判る。よって、この場合、処理部6は、左上腕ベクトル41の向きがX2方向側(後側)であると特定することができる。
【0069】
次いで、処理部6は、下記式(12)に基づいて、関節角度θshllを求める。
【0070】
【0071】
式(12)では、内積γlが0以上の場合、処理部6は、ベクトル間角度θulをそのまま、関節角度θshllとし、内積γlが0より小さい場合、正負を反転させたベクトル間角度θulを関節角度θshllとする。
つまり、処理部6は、左上腕部72が体幹ベクトル56を基準に対象者TのX1方向側(前側)に位置する場合、ベクトル間角度θulを関節角度θshllとし、左上腕部72が体幹ベクトル56を基準に対象者TのX2方向側(後側)に位置する場合、正負を反転させたベクトル間角度θulを関節角度θshllとする。
【0072】
この場合も、処理部6は、対象者Tの左上腕部72が対象者TのX1方向側(前側)に位置しているのか、X2方向側(後側)に位置しているのか、を把握することができ、関節角度θshllを精度良く求めることができる。
【0073】
また、上述の例では、参照部位ベクトルである左肩ベクトル57が示す部位は肩であり、基準部位は体幹60であるので、対象者Tの左右方向に可動する可動部位の角度について好適に求めることができる。
【0074】
〔Y-Z面上における股関節の関節角度推定処理〕
次に、対象者Tを正面(X1方向)から撮像した画像に基づいて関節角度を求める場合における関節角度推定処理について説明する。
【0075】
図6は、対象者Tを正面から見たときの部位ベクトルの一部を示す図である。
図6は、対象者TをX1方向から撮像したときの画像に基づいて、関節点および部位ベクトルを取得した場合を示している。つまり、
図6では、Y-Z平面における関節点および部位ベクトルを示している。
【0076】
図6では、対象者Tが体幹60を傾斜させて左上腕部72および左大腿部62を上方へ上げた状態で立っているときの体幹ベクトル56、左上腕ベクトル41、左大腿ベクトル45、および左肩ベクトル57を示している。
以下、処理部6が、関節角度推定処理によって、左股関節の関節角度ψ
hiplを求める場合について説明する。関節角度ψ
hiplは、
図6に示すように、Y-Z平面における、対象者Tの体幹60と、股関節61を介して体幹60に繋がる左大腿部62と、の間の関節角度である。
つまり、ここでは、体幹60を基準部位、左大腿部62を可動部位としたときの、体幹60と、左大腿部62と、の間の股関節における関節角度を処理部6が求める場合について説明する。
なお、左大腿部62はY-Z平面に沿って可動範囲を有している。よって、
図6は、左大腿部62の可動範囲を平面視している。
【0077】
まず、処理部6は、Y-Z平面上において、体幹ベクトル56(基準部位ベクトル)に垂直なベクトルnを求める(
図4中、ステップS11)。
ここでのベクトルnは、Y-Z平面上のベクトルである。処理部6は、体幹ベクトル56に垂直なベクトルnを求める。処理部6は、ベクトルnを上述の式(1)に準じて求める。つまり、処理部6は、体幹ベクトル56および左大腿ベクトル45を用いて、ベクトルnを求める。
ベクトルnは、体幹ベクトル56に垂直であるが、Z2方向を向いているのか、Z1方向を向いているのかは不明である。
【0078】
次いで、処理部6は、方向基準ベクトルaを求める(
図4中、ステップS11)。ここでの方向基準ベクトルaは、Y-Z平面上のベクトルである。
処理部6は、ベクトルnと、参照部位ベクトルとに基づいて、方向基準ベクトルaを求める。
関節角度ψ
hiplを求める場合、処理部6は、左肩ベクトル57を参照部位ベクトルとして用いる。
【0079】
左肩ベクトル57は、第1中点52から、左肩関節点21へ向かうベクトルである。左肩ベクトル57は、対象者TのZ2方向側を示している。
このように、参照部位ベクトルである左肩ベクトル57は、左上腕部72の可動範囲を平面視したときにおいて、体幹60の長手方向に対して交差する方向に延びる部位のベクトルである。
【0080】
次いで、処理部6は、下記式(13)に示すように、ベクトルnと、左肩ベクトル57と、の内積αを求める。
【0081】
【0082】
ここで、dshllは、左肩ベクトル57を示しており、対象者TのZ2方向側を示している。また、ベクトルnは、体幹ベクトル56に垂直なベクトルである。
よって、内積αが0以上の場合、ベクトルnと、左肩ベクトル57との角度は0度から90度の範囲であることが判る。よって、この場合、処理部6は、ベクトルnが対象者TのZ2方向側を向いていると判定する。
逆に、内積αが0より小さい場合、ベクトルnと、左肩ベクトル57との角度は90度から180度の範囲とあることが判る。よって、この場合、処理部6は、ベクトルnが対象者TのZ1方向側を向いていると判定することができる。
【0083】
次いで、処理部6は、下記式(14)に示すように、内積αと、ベクトルnと、に基づいて、方向基準ベクトルl
lを求める(
図4中、ステップS12)。
【0084】
【0085】
内積αが0以上である場合(ベクトルnが対象者TのZ2方向側を向いている場合)、処理部6は、ベクトルnをそのまま方向基準ベクトルllとする。
内積αが0より小さい場合(ベクトルnが対象者TのZ1方向側を向いている場合)、処理部6は、ベクトルnを反転させて方向基準ベクトルllを得る。
これにより、方向基準ベクトルllは、左上腕部72の可動範囲を平面視したときにおいて、体幹ベクトル56に垂直かつ対象者TのZ2方向側(左側)を向くベクトルとして得られる。
【0086】
次いで、処理部6は、ベクトル間角度を求める(
図4中、ステップS13)。
処理部6は、下記式(15)に基づいて、ベクトル間角度ψ
lを求める。
【0087】
【0088】
ベクトル間角度ψ
tlを求めると、処理部6は、関節角度ψ
hiplを求める(
図4中、ステップS14)。
処理部6は、まず、下記式(16)に示すように、方向基準ベクトルl
lと、左大腿ベクトル45と、の内積β
lを求める。
【0089】
【0090】
内積βlが0以上の場合、方向基準ベクトルllと、左大腿ベクトル45と、の角度は0度から90度の範囲であることが判る。よって、この場合、処理部6は、左大腿ベクトル45の向きがZ2方向側(左側)であるか、または、左大腿ベクトル45と体幹ベクトル56とが同一直線上に位置していると特定することができる。
逆に、内積βlが0より小さい場合、方向基準ベクトルllと、左大腿ベクトル45と、の角度は90度から180度の範囲であることが判る。よって、この場合、処理部6は、左大腿ベクトル45の向きがZ1方向側(右側)であると特定することができる。
【0091】
なお、左大腿ベクトル45の向きがZ2方向側(左側)である場合とは、左大腿ベクトル45の先端の位置が、体幹ベクトル56に平行かつ左臀部関節点27を通過する仮想直線よりもZ2方向側である場合をいう。また、左大腿ベクトル45の向きがZ1方向側(右側)である場合とは、左大腿ベクトル45の先端の位置が前記仮想直線よりもZ1方向側である場合をいう。
【0092】
次いで、処理部6は、下記式(17)に基づいて、関節角度ψhiplを求める。
【0093】
【0094】
式(17)では、内積βlが0以上の場合、処理部6は、ベクトル間角度ψtlをそのまま、関節角度ψhiplとし、内積βlが0より小さい場合、正負を反転させたベクトル間角度ψtlを関節角度ψhiplとする。
つまり、処理部6は、左大腿部62が体幹ベクトル56を基準に対象者TのZ2方向側(左側)に位置する場合、ベクトル間角度ψtlを関節角度ψhiplとし、左大腿部62が体幹ベクトル56を基準に対象者TのZ1方向側(右側)に位置する場合、正負を反転させたベクトル間角度ψtlを関節角度ψhiplとする。
【0095】
このように、処理部6は、対象者Tの左大腿部62が対象者TのZ2方向側(左側)に位置しているのか、Z1方向側(右側)に位置しているのか、を把握することができ、関節角度ψhiplを精度良く求めることができる。
【0096】
〔Y-Z面上における肩関節の関節角度推定処理〕
次に、処理部6が、関節角度推定処理によって、左肩関節の関節角度ψ
shllを求める場合について説明する。関節角度ψ
shllは、
図6に示すように、Y-Z平面における、対象者Tの体幹60と、左肩関節70を介して体幹60に繋がる左上腕部72と、の間の関節角度である。
つまり、ここでは、体幹60を基準部位、左上腕部72を可動部位としたときの、体幹60と、左上腕部72と、の間の肩関節における関節角度の推定値を処理部6が求める場合について説明する。
【0097】
関節角度ψ
shllを求める場合、大腿部と同様、上腕部はY-Z平面に沿って可動範囲を有している。よって、
図6は、上腕部の可動範囲を平面視している。
よって、処理部6は、股関節の関節角度ψ
hiplを求めたときに用いた方向基準ベクトルaを、肩関節の関節角度ψ
shllを求める場合にも用いることができる。
【0098】
処理部6は、ベクトル間角度を求める(
図4中、ステップS13)。
処理部6は、下記式(18)に基づいて、ベクトル間角度ψ
ulを求める。
【0099】
【0100】
ベクトル間角度ψ
ulを求めると、処理部6は、関節角度ψ
shllを求める(
図4中、ステップS14)。
まず、処理部6は、下記式(19)に示すように、方向基準ベクトルl
lと、左上腕ベクトル41と、の内積γ
lを求める。
【0101】
【0102】
式(19)中、duarmlは、左上腕ベクトル41である。
内積γlが0以上の場合、方向基準ベクトルllと、左上腕ベクトル41と、の角度は0度から90度の範囲であることが判る。よって、この場合、処理部6は、左上腕ベクトル41の向きがZ2方向側(左側)であるか、または、左上腕ベクトル41と体幹ベクトル56とが同一直線上に位置していると特定することができる。
逆に、内積γlが0より小さい場合、方向基準ベクトルllと、左上腕ベクトル41と、の角度は90度から180度の範囲であることが判る。よって、この場合、処理部6は、左上腕ベクトル41の向きがZ1方向側(右側)であると特定することができる。
【0103】
次いで、処理部6は、下記式(20)に基づいて、関節角度ψshllを求める。
【0104】
【0105】
式(20)では、内積γlが0以上の場合、処理部6は、ベクトル間角度ψulをそのまま、関節角度ψshllとし、内積γlが0より小さい場合、正負を反転させたベクトル間角度ψulを関節角度ψshllとする。
つまり、処理部6は、左上腕部72が体幹ベクトル56を基準に対象者TのZ2方向側(左側)に位置する場合、ベクトル間角度ψulを関節角度ψshllとし、左上腕部72が体幹ベクトル56を基準に対象者TのZ1方向側(右側)に位置する場合、正負を反転させたベクトル間角度ψulを関節角度ψshllとする。
【0106】
この場合も、処理部6は、対象者Tの左上腕部72が対象者TのZ2方向側(左側)に位置しているのか、Z1方向側(右側)に位置しているのか、を把握することができ、関節角度ψshllを精度良く求めることができる。
【0107】
なお、Y-Z平面における右股関節の関節角度および右肩関節の関節角度を求める場合、処理部6は、
図6中、方向基準ベクトルl
rを求める。処理部6は、方向基準ベクトルl
rを用いることで、右股関節の関節角度および右肩関節の関節角度を求めることができる。
【0108】
〔その他〕
今回開示した実施形態はすべての点で例示であって制限的なものではない。
上記実施形態では、体幹60に対する左大腿部62および左上腕部72の角度を求めた場合を例示したが、体幹60に対する右大腿部および右上腕部の関節角度も、同様の処理によって求めることができる。
さらに、上腕部と前腕部との間の関節角度や、大腿部と脛部との間の関節角度も、同様の処理によって求めることができる。
【0109】
本発明の権利範囲は、上述の実施形態に限定されるものではなく、特許請求の範囲に記載された構成と均等の範囲内でのすべての変更が含まれる。
【符号の説明】
【0110】
1 姿勢推定システム
6 処理部
T 対象者