(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-04-11
(45)【発行日】2023-04-19
(54)【発明の名称】情報処理装置、方法、プログラム、およびシステム
(51)【国際特許分類】
A61B 5/107 20060101AFI20230412BHJP
G06T 11/80 20060101ALI20230412BHJP
G06T 7/00 20170101ALI20230412BHJP
G06T 7/70 20170101ALI20230412BHJP
【FI】
A61B5/107 300
G06T11/80 A
G06T7/00 660B
G06T7/70 Z
A61B5/107 ZDM
A61B5/107 200
(21)【出願番号】P 2022150834
(22)【出願日】2022-09-22
【審査請求日】2022-09-22
【早期審査対象出願】
(73)【特許権者】
【識別番号】507212768
【氏名又は名称】三菱ケミカルグループ株式会社
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】山岸 祥子
(72)【発明者】
【氏名】小林 謙次郎
【審査官】北島 拓馬
(56)【参考文献】
【文献】特開2007-066094(JP,A)
【文献】特表2004-501432(JP,A)
【文献】国際公開第2022/054366(WO,A1)
【文献】登録実用新案第3207832(JP,U)
【文献】国際公開第2017/141958(WO,A1)
【文献】国際公開第02/040941(WO,A1)
【文献】中国特許出願公開第108230455(CN,A)
【文献】米国特許出願公開第2007/0135737(US,A1)
【文献】米国特許出願公開第2013/0069936(US,A1)
【文献】特開平05-266149(JP,A)
【文献】国際公開第2020/026677(WO,A1)
【文献】国際公開第2022/034771(WO,A1)
【文献】中国特許第101958007(CN,B)
【文献】中国特許出願公開第107292948(CN,A)
【文献】特開2012-059082(JP,A)
【文献】特開2008-032489(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A41H 1/00 - 1/10
A61B 5/00 - 5/398
(57)【特許請求の範囲】
【請求項1】
コンピュータを、
対象者の身体表面をセンシングした結果に基づき、当該対象者の身体の関節に対応する複数の関節点を推定する手段、
前記対象者の身体表面を表現する2次元のベース画像において、前記
推定する手段によって推定された複数の関節点のうち少なくとも1つについて、当該関節点を通る第1種線分を設定する手段、
前記ベース画像において、前記
設定する手段によって設定された第1種線分と前記対象者の身体表面とが交差する交差点を特定する手段、
として機能させるプログラム。
【請求項2】
前記コンピュータを、前記ベース画像において、
前記推定する手段によって推定された前記複数の関節点の間に1以上の補完点を設定する手段、として機能させ、
前記第1種線分を設定する手段は、前記1以上の補完点のそれぞれについて、当該補完点と、当該補完点と隣接する他の補完点または関節点のいずれかとの間を接続する第2種線分に対して所定の角度をなし、かつ当該補完点を通る第1種線分をさらに設定し、
前記特定する手段は、前記ベース画像において、前記補完点を通る前記第1種線分と前記対象者の身体表面とが交差する交差点をさらに特定する、
請求項1に記載のプログラム。
【請求項3】
前記コンピュータを、特定された前記交差点に基づいて前記対象者の姿勢の評価を行う手段、としてさらに機能させる、
請求項2に記載のプログラム。
【請求項4】
前記特定する手段は、
前記設定する手段によって設定された複数の前記第1種線分に対して複数の前記交差点を特定し、
前記姿勢の評価を行う手段は、前記複数の交差点同士を接続する第3種線分を特定し、当該第3種線分がなす角度を算出する、
請求項3に記載のプログラム。
【請求項5】
前記コンピュータを、前記特定された交差点を可視化する手段、としてさらに機能させる、請求項2に記載のプログラム。
【請求項6】
前記可視化する手段は、前記対象者の身体表面をセンシングした結果、または当該結果に基づいて生成され前記対象者の身体表面を表現する2次元または3次元の画像に対して、前記交差点を重畳する、
請求項5に記載のプログラム。
【請求項7】
前記特定する手段は、
前記設定する手段によって設定された複数の前記第1種線分に対して複数の前記交差点を特定し、
前記コンピュータを、前記複数の交差点同士を接続する第3種線分を特定する手段、としてさらに機能させ、
前記可視化する手段は、前記対象者の身体表面をセンシングした結果、または当該結果に基づいて生成され前記対象者の身体表面を表現する2次元または3次元の画像に対して、前記複数の交差点と当該複数の交差点同士を接続する第3種線分とを重畳する、
請求項6に記載のプログラム。
【請求項8】
前記コンピュータを、ユーザ指示に応じて、人間の身体の第1部位に関連付けられる複数の関節点の間で設定される補完点の数を制御するパラメータを決定する手段、
前記補完点を設定する手段は、決定された前記パラメータに従って、前記第1部位に関連付けられる複数の関節点の間に1以上の補完点を設定する、
請求項2に記載のプログラム。
【請求項9】
前記所定の角度は、90度である、
請求項2に記載のプログラム。
【請求項10】
前記
設定する手段は、前記ベース画像において、前記推定する手段によって推定された複数の関節点のうち少なくとも1つについて、当該関節点を通り、かつ向きの異なる複数の第1種線分を設定し、
前記特定する手段は、前記ベース画像において、前記複数の関節点の各々に
前記設定する手段によって設定された全ての前記第1種線分に対して前記交差点を特定する、
請求項1に記載のプログラム。
【請求項11】
前記コンピュータを、人間の身体の少なくとも1つの部位に対して1以上の前記交差点を関連付ける手段、としてさらに機能させる、
請求項1に記載のプログラム。
【請求項12】
前記対象者の身体表面をセンシングした結果は、撮影方向の異なる複数の点群データであり、
前記ベース画像は、前記複数の点群データを3次元位置合わせした結果に基づいて生成される、
請求項1に記載のプログラム。
【請求項13】
コンピュータによって実行される方法であって、
対象者の身体表面をセンシングした結果に基づき、当該対象者の身体の関節に対応する複数の関節点を推定するステップと、
前記対象者の身体表面を表現する2次元のベース画像において、前記
推定するステップにおいて推定された複数の関節点のうち少なくとも1つについて、当該関節点を通る第1種線分を設定するステップと、
前記ベース画像において、前記
設定するステップにおいて設定された第1種線分と前記対象者の身体表面とが交差する交差点を特定するステップと
を具備する方法。
【請求項14】
対象者の身体表面をセンシングした結果に基づき、当該対象者の身体の関節に対応する複数の関節点を推定する手段と、
前記対象者の身体表面を表現する2次元のベース画像において、前記
推定する手段によって推定された複数の関節点のうち少なくとも1つについて、当該関節点を通る第1種線分を設定する手段と、
前記ベース画像において、前記
設定する手段によって設定された第1種線分と前記対象者の身体表面とが交差する交差点を特定する手段と
を具備する情報処理装置。
【請求項15】
第1コンピュータおよび第2コンピュータを具備するシステムであって、
前記第1コンピュータは、
前記第2コンピュータから対象者の身体表面をセンシングした結果を取得する手段、
前記対象者の身体表面をセンシングした結果に基づき、当該対象者の身体の関節に対応する複数の関節点を推定する手段、
前記対象者の身体表面を表現する2次元のベース画像において、前記
推定する手段によって推定された複数の関節点のうち少なくとも1つについて、当該関節点を通る第1種線分を設定する手段、
前記ベース画像において、前記
設定する手段によって設定された第1種線分と前記対象者の身体表面とが交差する交差点を特定する手段、
を備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、方法、プログラム、およびシステムに関する。
【背景技術】
【0002】
人を健康状態に導くための様々なサービス(例えば、トレーナーによる指導、整体、など)において、対象者の身体の曲がり具合や姿勢などの情報は有用である。人体の点群データまたは画像から関節の位置を推定する技術が知られている。しかしながら、関節の位置の推定結果のみからは、例えば身体が丸まっていないかなどを判別することは困難であり、身体表面の状態(例えば、形状または位置)を把握可能な技術が望まれる。
【0003】
特許文献1には、過去の基礎モデル(人の骨格相当)の変形ノード(基礎モデルの変形を制御するためのノード)位置に基づき参照表面(人の場合、関節位置に対する体表面に相当)を構成することが開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の技術は、3Dモデルを対象として参照表面を構成する処理を行うため、計算量が大きくなる。
【0006】
本開示の目的は、身体表面の状態を効率的に分析するための技術を提供することである。
【課題を解決するための手段】
【0007】
本開示の一態様のプログラムは、コンピュータを、対象者の身体表面をセンシングした結果に基づき、当該対象者の身体の関節に対応する複数の関節点を推定する手段、対象者の身体表面を表現する2次元のベース画像において、複数の関節点のうち少なくとも1つについて、当該関節点を通る第1種線分を設定する手段、ベース画像において、第1種線分と対象者の身体表面とが交差する交差点を特定する手段、として機能させる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態の情報処理システムの構成を示すブロック図である。
【
図2】本実施形態のクライアント装置の構成を示すブロック図である。
【
図3】本実施形態のサーバの構成を示すブロック図である。
【
図5】本実施形態の情報処理の全体フローを示す図である。
【
図11】
図6のボディラインの特定の説明図である。
【発明を実施するための形態】
【0009】
以下、本発明の一実施形態について、図面に基づいて詳細に説明する。なお、実施形態を説明するための図面において、同一の構成要素には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0010】
(1)情報処理システムの構成
情報処理システムの構成について説明する。
図1は、本実施形態の情報処理システムの構成を示すブロック図である。
【0011】
図1に示すように、情報処理システム1は、クライアント装置10と、サーバ30とを備える。
クライアント装置10及びサーバ30は、ネットワーク(例えば、インターネット又はイントラネット)NWを介して接続される。
【0012】
クライアント装置10は、サーバ30にリクエストを送信する情報処理装置の一例である。クライアント装置10は、例えば、スマートフォン、タブレット端末、又は、パーソナルコンピュータである。クライアント装置10のユーザは、後述する身体表面のセンシングが行われる対象者と同一人物であってもよいし、異なる人物であってもよい。例えば、ユーザは、対象者に対して健康増進のためのサービスを提供する者(例えば、トレーナー、整体師、医療関係者、など)であってもよい。
【0013】
サーバ30は、クライアント装置10から送信されたリクエストに応じたレスポンスをクライアント装置10に提供する情報処理装置の一例である。サーバ30は、例えば、サーバコンピュータである。
【0014】
(1-1)クライアント装置の構成
クライアント装置の構成について説明する。
図2は、本実施形態のクライアント装置の構成を示すブロック図である。
【0015】
図2に示すように、クライアント装置10は、記憶装置11と、プロセッサ12と、入出力インタフェース13と、通信インタフェース14とを備える。クライアント装置10は、ディスプレイ21と、センサ22とに接続される。
【0016】
記憶装置11は、プログラム及びデータを記憶するように構成される。記憶装置11は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、及び、ストレージ(例えば、フラッシュメモリ又はハードディスク)の組合せである。
【0017】
プログラムは、例えば、以下のプログラムを含む。
・OS(Operating System)のプログラム
・情報処理を実行するアプリケーション(例えば、ウェブブラウザ、または身体表面の状態を分析するためのアプリケーション)のプログラム
【0018】
データは、例えば、以下のデータを含む。
・情報処理において参照されるデータベース
・情報処理を実行することによって得られるデータ(つまり、情報処理の実行結果)
【0019】
プロセッサ12は、記憶装置11に記憶されたプログラムを起動することによって、クライアント装置10の機能を実現するコンピュータである。プロセッサ12は、例えば、以下の少なくとも1つである。
・CPU(Central Processing Unit)
・GPU(Graphic Processing Unit)
・ASIC(Application Specific Integrated Circuit)
・FPGA(Field Programmable Array)
【0020】
入出力インタフェース13は、クライアント装置10に接続される入力デバイスから情報(例えば、ユーザの指示、またはセンシング結果)を取得し、かつ、クライアント装置10に接続される出力デバイスに情報(例えば画像)を出力するように構成される。
入力デバイスは、例えば、センサ22、キーボード、ポインティングデバイス、タッチパネル、又は、それらの組合せである。
出力デバイスは、例えば、ディスプレイ21、スピーカ、又は、それらの組合せである。
【0021】
通信インタフェース14は、クライアント装置10と外部装置(例えばサーバ30)との間の通信を制御するように構成される。
【0022】
ディスプレイ21は、画像(静止画、または動画)を表示するように構成される。ディスプレイ21は、例えば、液晶ディスプレイ、または有機ELディスプレイである。
【0023】
センサ22は、対象者の身体表面をセンシングする。センサ22は、典型的には光(レーザを含み得る)を用いて2次元または3次元のセンシングを行う光学センサに相当するが、光学センサには限られない。センサ22は、センシング結果をクライアント装置10へ送信する。
【0024】
一例として、センサ22は、深度センサ(例えば、LiDAR(light detection and ranging))を含む。この場合に、センサ22は、センシングを行うことで点群データを生成する。以降の説明において、画像とは点群データを含むこととする。
【0025】
別の例として、センサ22は、1つのRGBカメラを含む。この場合に、センサ22は、センシングを行うことで2次元画像を生成する。
【0026】
さらなる別の例として、センサ22は、複数のRGBカメラを含む。この場合に、センサ22は、センシングを行うことで、複数の(視点の異なる)2次元画像を生成する。なお、ステレオマッチング技術によれば、複数の2次元画像の間で対応する点について、深度を計算することが可能である。
【0027】
(1-2)サーバの構成
サーバの構成について説明する。
図3は、本実施形態のサーバの構成を示すブロック図である。
【0028】
図3に示すように、サーバ30は、記憶装置31と、プロセッサ32と、入出力インタフェース33と、通信インタフェース34とを備える。
【0029】
記憶装置31は、プログラム及びデータを記憶するように構成される。記憶装置31は、例えば、ROM、RAM、及び、ストレージ(例えば、フラッシュメモリ又はハードディスク)の組合せである。
【0030】
プログラムは、例えば、以下のプログラムを含む。
・OSのプログラム
・情報処理を実行するアプリケーションのプログラム
【0031】
データは、例えば、以下のデータを含む。
・情報処理において参照されるデータベース
・情報処理の実行結果
【0032】
プロセッサ32は、記憶装置31に記憶されたプログラムを起動することによって、サーバ30の機能を実現するコンピュータである。プロセッサ32は、例えば、以下の少なくとも1つである。
・CPU
・GPU
・ASIC
・FPGA
【0033】
入出力インタフェース33は、サーバ30に接続される入力デバイスから情報(例えばユーザの指示)を取得し、かつ、サーバ30に接続される出力デバイスに情報(例えば画像)を出力するように構成される。
入力デバイスは、例えば、キーボード、ポインティングデバイス、タッチパネル、又は、それらの組合せである。
出力デバイスは、例えば、ディスプレイである。
【0034】
通信インタフェース34は、サーバ30と外部装置(例えばクライアント装置10)との間の通信を制御するように構成される。
【0035】
(2)実施形態の一態様
本実施形態の一態様について説明する。
図4は、本実施形態の一態様の説明図である。
【0036】
以降の説明では、サーバ30が情報処理(特に分析処理)の大部分を行う例を示すが、以下に説明する情報処理の全部または一部をクライアント装置10が行ってもよい。つまり、クライアント装置10が、対象者のセンシング結果の分析を行い、分析結果を対象者本人に提示してもよい。或いは、第1のクライアント装置10が、対象者のセンシング結果の分析を行い、サーバ30が分析結果を取得(および必要に応じて蓄積)し、対象者とは異なるユーザ(例えばトレーナ)に第2のクライアント装置10を介して提示してもよい。
【0037】
図4に示すように、センサ22は、対象者TR10の身体表面のセンシングを行う。クライアント装置10は、センサ22からセンシング結果SR11を取得し、サーバ30へ送信する。
【0038】
サーバ30は、センシング結果SR11に基づいて、対象者TR10の関節に対応する複数の関節点(具体的には、各関節の位置)を推定する。
【0039】
サーバ30は、対象者TR10の身体表面を表現する2次元のベース画像を取得する。ベース画像は、センシング結果SR11に基づいて生成されてもよいし、センシング結果SR11そのものであってもよい。例えばセンシング結果SR11が点群データに相当する場合に、かかる点群データを任意の視点から見た2次元画像が生成されてよい。視点は、予め定められていてもよいし、ユーザが選択できるようにしてもよい。ベース画像は、クライアント装置10、サーバ30、または図示しない他の装置によって生成されてよい。或いは、センシング結果SR11がRGB画像に相当する場合に、当該RGB画像を、ベース画像として用いることができる。
【0040】
サーバ30は、推定した複数の関節点のうち少なくとも1つについて、ベース画像において、当該関節点を通る補助線(「第1種線分」の一例)を設定する。
【0041】
サーバ30は、設定した補助線と、ベース画像に表現された対象者TR10の身体表面とが交差する交差点を特定する。サーバ30は、当該交差点の特定結果、または当該特定結果に基づくさらなる演算を行った結果を、対象者TR10の身体表面の状態の分析結果AR12として、クライアント装置10へ送信する。
【0042】
クライアント装置10は、分析結果AR12に基づく画面をディスプレイ21に表示する。ユーザは、かかる画面をリアルタイムで、または振り返りとして確認することで、対象者TR10の身体表面の状態を把握できる。サーバ30は、2次元のベース画像上で各種の処理を行うことで、対象者TR10の身体表面の状態を効率的に分析することができる。
【0043】
(3)情報処理
本実施形態の情報処理について説明する。
図5は、本実施形態の情報処理の全体フローを示す図である。
図6は、
図5の分析処理のフローチャートである。
図7は、
図6の関節点の推定の説明図である。
図8は、
図6の補完点の設定の説明図である。
図9は、
図6の補助線の設定の説明図である。
図10は、
図6の交差点の特定の説明図である。
図11は、
図6のボディラインの特定の説明図である。
【0044】
本実施形態の情報処理は、例えばユーザまたは対象者が、当該情報処理を呼び出すための操作をクライアント装置10に対して行うことで開始し得る。
【0045】
図5に示すように、クライアント装置10は、身体表面のセンシング(S110)を実行する。
具体的には、クライアント装置10は、センサ22に、対象者の身体表面をセンシングさせる。クライアント装置10は、センシング結果を取得する。
【0046】
クライアント装置10は、センシング条件(例えば、センサ22の位置もしくは姿勢(向き)(例えば外部パラメータ)、センサ22の内部パラメータ、対象者の位置もしくは姿勢(向き)、またはセンシング日時)に関する情報をさらに取得してもよい。
【0047】
また、クライアント装置10は、対象者を特定可能な情報(例えば、ID)をさらに取得してもよい。これにより、分析結果を対象者に関連付けることができるので、例えば対象者の身体表面の分析結果を長期間に亘って蓄積し、経時的な比較を行うことができる。
【0048】
ステップS110において、センサ22は、1時点におけるセンシングを行ってもよいし、複数時点に亘るセンシングを行ってもよい。例えば、センサ22は、所定期間内(例えば5秒間)に複数回のセンシングを行い、これらのセンシング結果をクライアント装置10へ送信してもよい。或いは、センサ22は、所定の運動単位(例えば1レップ、または1セットの運動)が行われている間に複数回のセンシングを行い、これらのセンシング結果をクライアント装置10へ送信してもよい。
【0049】
ステップS110の後に、クライアント装置10は、分析要求(S110)を実行する。
具体的には、クライアント装置10は、ステップS110において取得したセンシング結果を含む分析要求を生成し、サーバ30へ送信する。分析要求は、さらに以下の少なくとも1つを含むこともできる。
・センシング条件に関する情報
・ベース画像に対応する視点(例えば、正面、背面、左面、右面、上面、下面またはそれらの組み合わせ)
・対象者を特定可能な情報
・分析の内容を特定可能な情報
【0050】
ステップS111の後に、サーバ30は、分析(S130)を実行する。
具体的には、サーバ30は、ステップS110において送信された分析要求を受信する。クライアント装置10は、分析要求に応じて、対象者の身体表面の状態に関する分析を行う。
【0051】
以下、サーバ30が行う分析処理の一例について詳細に説明する。なお、前述のとおり、分析処理の一部または全部はクライアント装置10によって実行され得る。
図6に示すように、サーバ30は、関節点の推定(S1301)を実行する。
具体的には、サーバ30は、クライアント装置10から取得した分析要求に含まれるセンシング結果に基づいて、対象者の身体の関節に対応する複数の関節点を推定する。
ステップS1301の第1例として、サーバ30は、センシング結果としての点群データにおいて、各関節に対応する点を特定し、特定した点の位置(3次元座標)を取得することで、関節点を推定する。
【0052】
ステップS1301の第2例として、サーバ30は、センシング結果としてのRGB画像に基づく入力データに、学習済みモデルを適用することで、関節点を推定する。学習済みモデルは、入力データに基づいて、関節の位置の推論を行う。学習済みモデルは、学習用のRGB画像に基づく入力データと、当該画像における関節の位置を示す正解ラベルとを含む学習データを用いた教師あり学習によって構築可能である。
【0053】
例えば
図7に示すように、サーバ30は、対象者の身体表面BI21を含む2次元画像(ベース画像)IM20に基づく入力データに、学習済みモデルを適用することで関節点を推定する。これにより、サーバ30は、複数の関節点JP22を決定する。
図7~
図11において、推定された関節点JP22は、二重丸のシンボルでプロットされている。
【0054】
ステップS1301の後に、サーバ30は、ベース画像の取得(S1302)を実行する。
具体的には、サーバ30は、クライアント装置10から取得した分析要求に対応するベース画像を取得する。
【0055】
ステップS1302の第1例として、サーバ30は、分析要求に含まれるセンシング結果(例えば点群データ)に基づいてベース画像を生成する。例えば、サーバ30は、点群データを任意の視点から見た場合の2次元画像としてレンダリングすることで、対象者の身体表面を表現するベース画像を生成する。さらに、ベース画像を生成することで、ステップS1301における関節点の推定結果(つまり、関節点の3次元位置)に対応する、ベース画像における関節点(つまり、関節点の2次元座標)が特定される。
【0056】
ステップS1302の第2例として、サーバ30は、分析要求に含まれるセンシング結果(例えばRGB画像)をベース画像として取得する。この場合に、サーバ30は、ステップS1301における関節点の推定結果を、ベース画像における関節点の推定結果として用いる。
【0057】
ステップS1302の後に、サーバ30は、補完点の設定(S1303)を実行する。
具体的には、サーバ30は、ステップS1302において取得したベース画像上において、ステップS1301において推定された複数の関節点の間に1以上の補完点を設定する。一例として、サーバ30は、人体の構造(骨格構造)において互いに隣接する(つまり、骨を介して接続されている)2つの関節点の間を線分で接続し、当該線分の途中に補完点を設定する。補完点は、各線分上に所定の間隔で設定されてもよいし、各線分に対して割り当てられた数に従って設定されてもよい。
【0058】
なお、分析要求に含まれるセンシング結果が例えば点群データである場合に、補完点は3次元空間で設定されてもよい。この場合に、補完点の設定(S1303)は、ベース画像の取得(S1302)に先立って行われる。そして、ステップS1302においてベース画像を生成することで、ステップS1303において設定された補完点に対応する、ベース画像における補完点(つまり、補完点の2次元座標)が特定される。
【0059】
例えば
図8に示すように、サーバ30は、ベース画像IM20において、隣接する2つの関節点JP22の間をそれぞれ線分で接続し、当該線分上に等間隔で補完点IP23を設定する。
図8~
図11において、設定された補完点IP24は、白丸のシンボルでプロットされている。
【0060】
ステップS1303の後に、サーバ30は、補助線の設定(S1304)を実行する。
具体的には、サーバ30は、ステップS1302において取得したベース画像において、ステップS1301において推定された関節点、またはステップS1303において設定した補完点のうち少なくとも1つの点について、当該点を通る補助線を設定する。補助線の向きは、当該補助線の通る点と人体の構造において隣接する他の点(関節点または補完点)とを接続する線分(「第2種線分」の一例)に対して所定の角度をなすように定められる。所定の角度は例えば90度であるがこれに限られない。
【0061】
例えば
図9に示すように、サーバ30は、ベース画像IM20において、関節点JP22および補完点IP23のそれぞれについて、当該点と人体の構造において隣接する他の点とを結ぶ線分に対して90度をなす補助線SL24を設定する。
図9~
図11において、補助線SL24は、破線で描かれている。
【0062】
ステップS1304の後に、サーバ30は、交差点の特定(S1305)を実行する。
具体的には、サーバ30は、ステップS1302において取得したベース画像において、ステップS1304において設定した補助線が、ベース画像に表現された対象者の身体表面(つまり、対象者の身体と外界との境界)と交差する交差点を特定する。
【0063】
例えば
図10に示すように、サーバ30は、ベース画像IM20において、補助線SL24が対象者の身体表面と交差する交差点SP25を特定する。
図10~
図11において、特定された交差点SP25は、黒丸のシンボルでプロットされている。
【0064】
ステップS1305の後に、サーバ30は、ボディラインの特定(S1306)を実行する。
具体的には、サーバ30は、ステップS1305において特定した複数の交差点同士を接続する線分を対象者のボディライン(「第3種線分」の一例)として特定する。
【0065】
例えば
図11に示すように、サーバ30は、ベース画像IM20において、複数の交差点SP25同士を接続する線分を対象者のボディラインBL26として特定する。なお、ボディラインBL26は、折れ線に限られず曲線によって表現されてもよい。例えば複数の交差点SP25、またはその付近を通る曲線(例えばスプライン曲線)をボディラインBL26として特定可能である。
【0066】
ステップS1306の後に、サーバ30は、姿勢の評価(S1307)を実行する。
具体的には、サーバ30は、ステップS1306におけるボディラインの特定結果に基づいて、対象者の姿勢を評価する。ステップS1307の第1例として、サーバ30は、ボディラインを構成する2つの連続する線分がなす角度を算出する。さらに、サーバ30は、算出した角度を閾値と比較してもよい。ステップS1307の第2例として、サーバ30は、ボディラインを構成する線分が基準線に対してなす角度を算出する。基準線は、例えば対象者が行った運動の種目に応じて決定され得る。さらに、サーバ30は、算出した角度を閾値と比較してもよい。
【0067】
サーバ30は、ステップS1307における姿勢の評価結果(加えて、必要に応じて各ステップの実行結果)を、対象者の身体表面の状態の分析結果として扱い、ステップS130の処理を終了する。
なお、分析処理の第1変形例として、サーバ30は、ステップS1307の実行を省略してもよい。この場合に、サーバ30は、ステップS1306におけるボディラインの特定結果(加えて、必要に応じて各ステップの実行結果)を、対象者の身体表面の状態の分析結果として扱い、ステップS130の処理を終了することができる。
分析処理の第2変形例として、サーバ30は、ステップS1306~S1307の実行を省略してもよい。この場合に、サーバ30は、ステップS1305における交差点の特定結果(加えて、必要に応じて各ステップの実行結果)を、対象者の身体表面の状態の分析結果として扱い、ステップS130の処理を終了することができる。
【0068】
ステップS130の後に、サーバ30は、分析応答(S131)を実行する。
具体的には、サーバ30は、ステップS130における分析結果を含む分析応答を生成し、クライアント装置10へ送信する。これにより、サーバ30は、ステップS130における分析結果を可視化することができる。
【0069】
ステップS131の後に、クライアント装置10は、画面表示(S112)を実行する。
具体的には、クライアント装置10は、ステップS131において送信された分析応答を受信する。クライアント装置10は、分析応答に基づく画面をディスプレイ21に表示する。
【0070】
ステップS112の第1例として、クライアント装置10は、ステップS1305における交差点の特定結果を含む画面をディスプレイ21に表示する。クライアント装置10は、例えばベース画像に交差点が重畳された画面をディスプレイ21に表示する。
【0071】
ステップS112の第2例として、クライアント装置10は、ステップS1306におけるボディラインの特定結果を含む画面をディスプレイ21に表示する。クライアント装置10は、例えばベース画像にボディラインが重畳された画面をディスプレイ21に表示する。
【0072】
ステップS112の第3例として、クライアント装置10は、ステップS1307における姿勢の評価結果を含む画面をディスプレイ21に表示する。クライアント装置10は、例えば姿勢の評価結果を視覚的に(例えば、数字、テキスト、アイコンなどを用いて)表現する画面をディスプレイ21に表示する。或いは、クライアント装置10は、ベース画像に重畳されたボディラインと対応付けて評価結果を視覚的に表現する画面をディスプレイ21に表示してもよい。
【0073】
ステップS112の第1例~第3例は組み合わせ可能である。例えば、ベース画像に、交差点およびボディラインの両方が重畳されてもよい。さらに、関節点、補完点、または補助線の少なくとも1つがベース画像に重畳されてもよい。また、ベース画像の代わりにセンシング結果(例えば点群データ)、または当該センシング結果に基づいて生成され対象者の身体表面を表現する3次元の画像(例えばアバター)に対して、上記各種の情報が重畳されてもよい。
【0074】
ステップS112の後に、クライアント装置10は、身体表面のセンシング(S110)を再実行してもよいし、本実施形態の情報処理を終了してもよい。ステップS110~S112を繰り返すことで、ユーザは対象者の身体表面の状態の分析結果をリアルタイムに確認することができる。
【0075】
(4)小括
以上説明したように、本実施形態のサーバ30は、対象者の身体表面をセンシングした結果に基づき、当該対象者の身体の関節に対応する複数の関節点を推定する。サーバ30は、対象者の身体表面を表現する2次元のベース画像において、推定した複数の関節点のうち少なくとも1つについて、当該関節点を通る補助線を設定し、ベース画像において補助線と対象者の身体表面とが交差する交差点を特定する。つまり、2次元のベース画像の処理により対象者の身体表面の状態を分析するので、分析に必要な計算量を抑制することができる。
【0076】
サーバ30は、ベース画像において、推定された複数の関節点の間に1以上の補完点を設定してもよい。サーバ30は、設定した1以上の補完点のそれぞれについて、当該補完点と、当該補完点と隣接する他の補完点または関節点のいずれかとの間を接続する線分に対して所定の角度をなし、かつ当該補完点を通る補助線をさらに設定してもよい。サーバ30は、ベース画像において、補完点を通る補助線と対象者の身体表面とが交差する交差点をさらに特定してもよい。これにより、特定可能な交差点の数を増やし、対象者の身体表面の状態をより詳細に分析することができる。
【0077】
サーバ30は、特定された交差点に基づいて対象者の姿勢の評価を行ってもよい。これにより、ユーザは、対象者の身体表面の状態を適切に把握できる。
【0078】
サーバ30は、設定された複数の補助線に対して複数の交差点を特定し、当該複数の交差点同士を接続するボディラインを特定し、当該ボディラインがなす角度を算出してもよい。これにより、ユーザは、対象者の身体表面の形状(傾き、曲がり具合、など)を定量的に把握できる。
【0079】
サーバ30は、特定された交差点を可視化してもよい。これにより、ユーザは、対象者の身体表面の形状を視覚的に把握することができる。
【0080】
サーバ30は、対象者の身体表面をセンシングした結果、または当該結果に基づいて生成され対象者の身体表面を表現する2次元または3次元の画像に対して交差点を重畳してもよい。これにより、ユーザは、各交差点と対象者の身体の部位との対応関係、および対象者の身体表面の形状を視覚的に把握することができる。
【0081】
サーバ30は、対象者の身体表面をセンシングした結果、または当該結果に基づいて生成され対象者の身体表面を表現する2次元または3次元の画像に対して複数の交差点と当該複数の交差点同士を接続するボディラインとを重畳してもよい。これにより、ユーザは、各交差点およびボディラインと対象者の身体の部位との対応関係、および対象者の身体表面の形状を視覚的に把握することができる。
【0082】
所定の角度は90度であってよい。これにより、関節点または補完点に対して妥当な交差点を特定することができる。
【0083】
(5)変形例
本実施形態の変形例について説明する。
【0084】
(5-1)変形例1
変形例1について説明する。変形例1は、補完点を設定する代わりに、各関節点に対して複数の補助線を設定する例である。
【0085】
具体的には、サーバ30は、
図6と同様にステップS1301~S1302を実行する。
ステップS1302の後に、サーバ30は、補助線の設定(S1304)を実行する(つまり、補完点の設定(S1303)をスキップする)。
具体的には、サーバ30は、ステップS1302において取得したベース画像において、ステップS1301において推定された関節点のうち少なくとも1つの点について、当該関節点を通り、かつ互いの向きの異なる複数の補助線を設定する。各補助線の向きは、当該補助線の通る点と人体の構造において隣接する他の関節点とを結ぶ線分に対して所定の角度をなすように定められる。所定の角度は例えば90度を含むが、これに限られない。一例として、所定の角度は、90度と、90度に対して所定の角度(例えば1度)ずつ増減させた角度とを含み得る。補助線の数、および補助線間の角度差はユーザによって指定されてもよい。
【0086】
ステップS1304の後に、サーバ30は、
図6と同様にステップS1305~S1307を実行する。
【0087】
変形例1によれば、補完点を設定せずとも、1つの関節点に対して複数の交差点を得ることができる。つまり、計算量を抑制しながら、対象者の関節に対応する身体表面の状態を効率的に分析することができる。
【0088】
なお、変形例1は、本実施形態と組み合わせ可能である。つまり、サーバ30は、補完点の設定と、複数の補助線の設定との双方を行うことができる。この場合に、サーバ30は、補完点に対して複数の補助線を設定してもよい。
【0089】
(5-2)変形例2
変形例2について説明する。変形例2は、交差点を、身体のいずれの部位、または部位間に関連付ける例である。
【0090】
具体的には、本実施形態の情報処理では、交差点の特定(S1305)後に、ボディラインの特定(S1306)および姿勢の評価(S1307)を実行する。本変形例2の情報処理では、これらの処理に代えて、またはこれらの処理に加えて、サーバ30は、ステップS1305に特定した交差点のうち1つまたは複数を、人間の身体のいずれかの部位、または部位間(人体の構造において互いに隣接する部位間)に対して関連付ける。
【0091】
具体的には、サーバ30は、ステップS1301において推定した各関節点に対応する部位を特定する。関節点に対応する部位は予め定義されている。例えば、部位は、以下のいずれかであってよい。
・頭
・肩中央
・右(左)肩
・右(左)肘
・右(左)手首
・胸腰
・骨盤中央
・右(左)骨盤
・右(左)膝
・右(左)足首
・右(左)足
・右(左)つま先
また、部位間として、例えば肩中央-右肩間、胸腰-骨盤中央間、などの組み合わせがあり得る。
【0092】
サーバ30は、交差点が補助線によっていずれかの関節点に接続されている場合に、当該交差点を、当該関節点に対応する部位に関連付ける。
【0093】
サーバ30は、交差点が補助線によっていずれかの補完点に接続されていて、かつ当該補完点が同一の部位に対応する関節点の間に設定されている場合に、当該交差点を、当該部位に関連付ける。
【0094】
サーバ30は、交差点が補助線によっていずれかの補完点に接続されていて、かつ当該補完点が第1部位と第2部位との間の関節点に設定されている場合に、当該交差点を、第1部位、第2部位、または第1部位と第2部位との間、のいずれかに関連付ける。第1例として、サーバ30は、かかる交差点を、当該交差点から各関節点までの距離に応じて、第1部位、または第2部位のいずれかを選択して関連付けてもよい。第2例として、サーバ30は、かかる交差点を、当該交差点から各関節点までの距離に応じて、第1部位、第2部位、または第1部位と第2部位との間のいずれかに固定的に関連付けてもよい。
【0095】
このようにして、サーバ30は、身体の部位、または部位間に1以上の交差点を関連付ける。
サーバ30は、任意の部位または部位間(以下、「関心部位」という)に対応する交差点(および当該交差点同士を接続するボディライン)を、他の交差点(および他のボディライン)と異なる態様(例えば、色、透明度、またはシンボルの形状もしくはサイズ)で表示(例えば強調表示)してもよい。これにより、対象者の身体のうち関心部位の状態の視認性を高めることができる。関心部位は、ユーザまたは対象者によって指定されてもよいし、対象者が行う運動の種目に応じて予め定められてもよい。
【0096】
また、サーバ30は、例えば、肩(肩中央、右肩、左肩、またはこれらの部位間の少なくとも1つ)に関連付けられる交差点間のボディラインの角度を、例えば「肩のまがり」のように関連する部位を表す情報とともに、ユーザに提示してもよい。これにより、ユーザは、提示された分析結果がどの部位に関する情報であるかを容易に把握することができる。
【0097】
(6)その他の変形例
記憶装置11は、ネットワークNWを介して、クライアント装置10と接続されてもよい。ディスプレイ21は、クライアント装置10に内蔵されてもよい。記憶装置31は、ネットワークNWを介して、サーバ30と接続されてもよい。
【0098】
上記説明では、各処理において各ステップを特定の順序で実行する例を示したが、各ステップの実行順序は、依存関係がない限りは説明した例に制限されない。上記の情報処理の各ステップは、クライアント装置10及びサーバ30の何れでも実行可能である。例えば、いずれかの装置によって行われるとして説明された処理が別の装置によって行われたり、複数の装置のやり取りによって行われるとして説明された処理が単一の装置(例えばクライアント装置10)によって行われたりしてもよい。
【0099】
上記説明では、ステップS1303において関節点同士の間にどのように補完点を設定するか(つまり、関節点同士を接続する各線分における設定間隔または設定数)が予め定められている例を述べた。しかしながら、補完点をどのように設定するか(例えば粗く設定するか密に設定するか)はユーザ指示に応じて決定されてよい。具体的には、ユーザは、補完点の設定を制御する対象となる部位(以下、「第1部位」)と、その制御内容とをクライアント装置10に対して指示する。かかるユーザ指示は、例えば補間点の設定の粗密を直感的に調整しやすいスライドバーなどのオブジェクトによって受け付けられてよい。クライアント装置10は、ユーザ指示をサーバ30へ送信する。ユーザ指示は、分析要求に含められてもよい。サーバ30は、ユーザ指示に応じて第1部位を特定し、当該第1部位に人体の構造に基づいて予め関連付けられている複数の関節点の間で設定される補完点の数を制御するパラメータ(例えば、関節点同士を接続する線分に対する補完点の設定間隔または設定数)を決定する。そして、サーバ30は、ステップS1303において、決定されたパラメータに従って、第1部位に関連付けられる複数の関節点の間に1以上の補完点を設定する。これにより、例えば、ユーザは、関心のある部位に設定される補完点を増やすことで詳細な分析結果を得ることができる。或いは、ユーザは、関心のない部位に設定される補完点を減らすことで分析(S130)の計算量を抑え、身体形状のセンシング(S110)~画面表示(S112)までのディレイを減らすことができる。なお、ユーザが様々な補完点の設定を試せるように、サーバ30は同一のセンシング結果に対して繰り返し分析(S130)を行ってもよい。
【0100】
上記説明では、センシング結果としての点群データに基づいてベース画像を生成する例を述べた。しかしながら、センシング結果は、撮影方向の異なる複数の点群データであってもよい。この場合に、ベース画像は、これら複数の点群データを3次元位置合わせした結果(以下、「合成点群データ」という)に基づいて生成され得る。つまり、一例として、サーバ30は、合成点群データを任意の視点から見た場合の2次元画像としてレンダリングすることで、対象者の身体表面を表現するベース画像を生成してもよい。これにより、第1の点群データの死角を第2の点群データによって補い、様々な視点に対して十分な数の点を確保できるので、例えば対象者の正面方向のベース画像に加えて、対象者の側面方向のベース画像、対象者の上面方向のベース画像、またはこれらの組み合わせを生成し、多視点から対象者の身体表面の状態を効率的に分析することができる。
【0101】
(7)付記
実施形態および変形例で説明した事項を、以下に付記する。
【0102】
(付記1)
コンピュータ(30)を、
対象者の身体表面をセンシングした結果に基づき、当該対象者の身体の関節に対応する複数の関節点を推定する手段(S1301)、
対象者の身体表面を表現する2次元のベース画像において、複数の関節点のうち少なくとも1つについて、当該関節点を通る第1種線分を設定する手段(S1304)、
ベース画像において、第1種線分と対象者の身体表面とが交差する交差点を特定する手段(S1305)、
として機能させるプログラム。
【0103】
(付記2)
コンピュータを、ベース画像において、推定された複数の関節点の間に1以上の補完点を設定する手段(S1303)、として機能させ、
第1種線分を設定する手段は、1以上の補完点のそれぞれについて、当該補完点と、当該補完点と隣接する他の補完点または関節点のいずれかとの間を接続する第2種線分に対して所定の角度をなし、かつ当該補完点を通る第1種線分をさらに設定し、
特定する手段は、ベース画像において、補完点を通る第1種線分と対象者の身体表面とが交差する交差点をさらに特定する、
付記1に記載のプログラム。
【0104】
(付記3)
コンピュータを、特定された交差点に基づいて対象者の姿勢の評価を行う手段(S1307)、としてさらに機能させる、
付記2に記載のプログラム。
【0105】
(付記4)
特定する手段は、設定された複数の第1種線分に対して複数の交差点を特定し、
姿勢の評価を行う手段は、複数の交差点同士を接続する第3種線分を特定し、当該第3種線分がなす角度を算出する、
付記3に記載のプログラム。
【0106】
(付記5)
コンピュータを、特定された交差点を可視化する手段(S131)、としてさらに機能させる、付記2に記載のプログラム。
【0107】
(付記6)
可視化する手段は、対象者の身体表面をセンシングした結果、または当該結果に基づいて生成され対象者の身体表面を表現する2次元または3次元の画像に対して、交差点を重畳する、
付記5に記載のプログラム。
【0108】
(付記7)
特定する手段は、設定された複数の第1種線分に対して複数の交差点を特定し、
コンピュータを、複数の交差点同士を接続する第3種線分を特定する手段(S1306)、としてさらに機能させ、
可視化する手段は、対象者の身体表面をセンシングした結果、または当該結果に基づいて生成され対象者の身体表面を表現する2次元または3次元の画像に対して、複数の交差点と当該複数の交差点同士を接続する第3種線分とを重畳する、
付記6に記載のプログラム。
【0109】
(付記8)
コンピュータを、ユーザ指示に応じて、人間の身体の第1部位に関連付けられる複数の関節点の間で設定される補完点の数を制御するパラメータを決定する手段、
補完点を設定する手段は、決定されたパラメータに従って、第1部位に関連付けられる複数の関節点の間に1以上の補完点を設定する、
付記2に記載のプログラム。
【0110】
(付記9)
所定の角度は、90度である、
付記2に記載のプログラム。
【0111】
(付記10)
複数の関節点のうち少なくとも1つについて、当該関節点を通り、かつ向きの異なる複数の第1種線分を設定し、
特定する手段は、ベース画像において、複数の関節点の各々に設定された全ての第1種線分に対して交差点を特定する、
付記1に記載のプログラム。
【0112】
(付記11)
コンピュータを、人間の身体の少なくとも1つの部位に対して1以上の交差点を関連付ける手段、としてさらに機能させる、
付記1に記載のプログラム。
【0113】
(付記12)
対象者の身体表面をセンシングした結果は、撮影方向の異なる複数の点群データであり、
ベース画像は、複数の点群データを3次元位置合わせした結果に基づいて生成される、
付記1に記載のプログラム。
【0114】
(付記13)
コンピュータ(30)によって実行される方法であって、
対象者の身体表面をセンシングした結果に基づき、当該対象者の身体の関節に対応する複数の関節点を推定するステップ(S1301)と、
対象者の身体表面を表現する2次元のベース画像において、複数の関節点のうち少なくとも1つについて、当該関節点を通る第1種線分を設定するステップ(S1304)と、
ベース画像において、第1種線分と対象者の身体表面とが交差する交差点を特定するステップ(S1305)と
を具備する方法。
【0115】
(付記14)
対象者の身体表面をセンシングした結果に基づき、当該対象者の身体の関節に対応する複数の関節点を推定する手段(S1301)と、
対象者の身体表面を表現する2次元のベース画像において、複数の関節点のうち少なくとも1つについて、当該関節点を通る第1種線分を設定する手段(S1304)と、
ベース画像において、第1種線分と対象者の身体表面とが交差する交差点を特定する手段(S1305)と
を具備する情報処理装置(30)。
【0116】
(付記15)
第1コンピュータ(30)および第2コンピュータ(10)を具備するシステム(1)であって、
第1コンピュータは、
第2コンピュータから対象者の身体表面をセンシングした結果を取得する手段(S130)、
対象者の身体表面をセンシングした結果に基づき、当該対象者の身体の関節に対応する複数の関節点を推定する手段(S1301)、
対象者の身体表面を表現する2次元のベース画像において、複数の関節点のうち少なくとも1つについて、当該関節点を通る第1種線分を設定する手段(S1304)、
ベース画像において、第1種線分と対象者の身体表面とが交差する交差点を特定する手段(S1305)、
を備える、システム。
【0117】
以上、本発明の実施形態について詳細に説明したが、本発明の範囲は上記の実施形態に限定されない。また、上記の実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更が可能である。また、上記の実施形態及び変形例は、組合せ可能である。
【符号の説明】
【0118】
1 :情報処理システム
10 :クライアント装置
11 :記憶装置
12 :プロセッサ
13 :入出力インタフェース
14 :通信インタフェース
21 :ディスプレイ
22 :センサ
30 :サーバ
31 :記憶装置
32 :プロセッサ
33 :入出力インタフェース
34 :通信インタフェース
【要約】
【課題】身体表面の情報を効率的に分析するための技術を提供する。
【解決手段】本開示の一態様のプログラムは、コンピュータを、対象者の身体表面をセンシングした結果に基づき、当該対象者の身体の関節に対応する複数の関節点を推定する手段、対象者の身体表面を表現する2次元のベース画像において、複数の関節点のうち少なくとも1つについて、当該関節点を通る第1種線分を設定する手段、ベース画像において、第1種線分と対象者の身体表面とが交差する交差点を特定する手段、として機能させる。
【選択図】
図4