IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7419969生成方法、生成プログラムおよび情報処理装置
<>
  • 特許-生成方法、生成プログラムおよび情報処理装置 図1
  • 特許-生成方法、生成プログラムおよび情報処理装置 図2
  • 特許-生成方法、生成プログラムおよび情報処理装置 図3
  • 特許-生成方法、生成プログラムおよび情報処理装置 図4
  • 特許-生成方法、生成プログラムおよび情報処理装置 図5
  • 特許-生成方法、生成プログラムおよび情報処理装置 図6
  • 特許-生成方法、生成プログラムおよび情報処理装置 図7
  • 特許-生成方法、生成プログラムおよび情報処理装置 図8
  • 特許-生成方法、生成プログラムおよび情報処理装置 図9
  • 特許-生成方法、生成プログラムおよび情報処理装置 図10
  • 特許-生成方法、生成プログラムおよび情報処理装置 図11
  • 特許-生成方法、生成プログラムおよび情報処理装置 図12
  • 特許-生成方法、生成プログラムおよび情報処理装置 図13
  • 特許-生成方法、生成プログラムおよび情報処理装置 図14
  • 特許-生成方法、生成プログラムおよび情報処理装置 図15
  • 特許-生成方法、生成プログラムおよび情報処理装置 図16
  • 特許-生成方法、生成プログラムおよび情報処理装置 図17
  • 特許-生成方法、生成プログラムおよび情報処理装置 図18
  • 特許-生成方法、生成プログラムおよび情報処理装置 図19
  • 特許-生成方法、生成プログラムおよび情報処理装置 図20
  • 特許-生成方法、生成プログラムおよび情報処理装置 図21
  • 特許-生成方法、生成プログラムおよび情報処理装置 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-15
(45)【発行日】2024-01-23
(54)【発明の名称】生成方法、生成プログラムおよび情報処理装置
(51)【国際特許分類】
   G06T 7/20 20170101AFI20240116BHJP
   A63B 69/00 20060101ALI20240116BHJP
【FI】
G06T7/20 300Z
A63B69/00 A
【請求項の数】 7
(21)【出願番号】P 2020092400
(22)【出願日】2020-05-27
(65)【公開番号】P2021189605
(43)【公開日】2021-12-13
【審査請求日】2023-02-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】松本 剛
(72)【発明者】
【氏名】内藤 宏久
(72)【発明者】
【氏名】川人 亜矢子
(72)【発明者】
【氏名】清水 智
(72)【発明者】
【氏名】久保田 和己
【審査官】片岡 利延
(56)【参考文献】
【文献】特開2022-123843(JP,A)
【文献】特開2015-042241(JP,A)
【文献】特開2020-031406(JP,A)
【文献】特開2012-094130(JP,A)
【文献】特開2008-108008(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/20
A63B 69/00
(57)【特許請求の範囲】
【請求項1】
コンピュータが実行する生成方法であって、
被写体の複数の関節位置を示す時系列の骨格情報を取得し、
前記骨格情報に基づき、基準点の第一の軌跡情報を生成し、
前記複数の関節位置に含まれる第一の関節位置と、前記第一の関節位置と前記基準点に対して左右対称の関係となる第二の関節位置とを、前記被写体の運動方向に基づいて回転させ、
回転させた前記第一の関節位置と前記基準点とのに基づく時系列の乖離の大きさ、および、回転させた前記第二の関節位置と前記基準点とに基づく時系列の乖離の大きさのうち、少なくとも一方の時系列の乖離の大きさを示す第二の軌跡情報を生成し、
前記第一の軌跡情報と、前記第二の軌跡情報とを出力する
処理を実行することを特徴とする生成方法。
【請求項2】
前記回転させる処理は、前記骨格情報の中心線と直角に交わる直線を前記第一の関節位置および前記第二の関節位置に基づいて設定し、前記直線に前記第一の関節位置に対応する第一のマークおよび前記第二の関節位置に対応する第二のマークを設定し、前記被写体の運動方向に合わせて前記中心線を回転させ、前記中心線との角度が直角に交わるように前記直線を回転させることを特徴とする請求項1に記載の生成方法。
【請求項3】
前記第二の軌跡情報を生成する処理は、前記基準点と、前記第一のマークの位置との距離を、前記第一の関節位置と前記基準点との時系列の乖離の大きさとして算出し、前記基準点と、前記第二のマークの位置との距離を、前記第二の関節位置と前記基準点との時系列の乖離の大きさとして算出することを特徴とする請求項2に記載の生成方法。
【請求項4】
前記被写体の映像情報に、前記第一の軌跡情報および前記第二の軌跡情報を重畳した情報を生成する処理を更に実行することを特徴とする請求項1、2または3に記載の生成方法。
【請求項5】
前記生成する処理は、回転させた前記第一の関節位置と前記基準点との時系列の乖離の大きさを示す第三の軌跡情報と、回転させた前記第二の関節位置と前記基準点との時系列の乖離の大きさを示す第四の軌跡情報とを生成し、前記出力する処理は、前記第三の軌跡情報と、前記第四の軌跡情報とを出力することを特徴とする請求項1に記載の生成方法。
【請求項6】
コンピュータに、
被写体の複数の関節位置を示す時系列の骨格情報を取得し、
記骨格情報に基づき、基準点の第一の軌跡情報を生成し、
前記複数の関節位置に含まれる第一の関節位置と、前記第一の関節位置と前記基準点に対して左右対称の関係となる第二の関節位置とを、前記被写体の運動方向に基づいて回転させ、
回転させた前記第一の関節位置と前記基準点とのに基づく時系列の乖離の大きさ、および、回転させた前記第二の関節位置と前記基準点とに基づく時系列の乖離の大きさのうち、少なくとも一方の時系列の乖離の大きさを示す第二の軌跡情報を生成し、
前記第一の軌跡情報と、前記第二の軌跡情報とを出力する
処理を実行させることを特徴とする生成プログラム。
【請求項7】
被写体の複数の関節位置を示す時系列の骨格情報を取得する取得部と、
前記骨格情報に基づき、基準点の第一の軌跡情報を生成し、前記複数の関節位置に含まれる第一の関節位置と、前記第一の関節位置と前記基準点に対して左右対称の関係となる第二の関節位置とを、前記被写体の運動方向に基づいて回転させ、回転させた前記第一の関節位置と前記基準点とに基づく時系列の乖離の大きさ、および、回転させた前記第二の関節位置と前記基準点とに基づく時系列の乖離の大きさのうち、少なくとも一方の時系列の乖離の大きさを示す第二の軌跡情報を生成する生成部と、
前記第一の軌跡情報と、前記第二の軌跡情報とを出力する表示制御部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生成方法等に関する。
【背景技術】
【0002】
距離センサを基にして被写体の表面までの距離を計算し、被写体の姿勢を特定する3次元センシング技術や、映像から被写体の各部位を推定する技術などを用いることで、競技スポーツの分野で、選手の動きをデータ化する取り組みが行われている。
【0003】
競技スポーツには、体操やトランポリン、水泳の高飛び込みなどのように、ひねりを伴う宙返りを行う種目がある。これらの種目では、ひねりの回数や宙返りの回数が増えるほど、高い得点となるため、選手の動きが複雑になっている。競技の専門家は、選手の複雑な動きを見分けることができるが、一般の視聴者にとっては見分けることが難しい。
【0004】
ここで、被写体のある部位を時系列でトレースした軌跡情報を生成し、軌跡情報を被写体の映像に重畳して表示する従来技術がある。かかる従来技術を利用すれば、一般の視聴者であっても、軌跡情報によって、選手の複雑な動きを見分けることが容易になる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2015-042241号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
競技スポーツにおける複雑な運動において、軌跡情報は複雑な曲線を描くことになる。たとえば、ひねりの状態を示すために被写体の左もしくは右を示す部位をトレースした場合、軌跡情報の曲線は、運動のひねりを正しく表現できない場合がある。
【0007】
図22は、従来技術の問題を説明するための図である。例1は、被写体5が、側方倒立回転を行った場合において、被写体5の腰の左右の位置5aおよび位置5bをそれぞれトレースした場合の軌跡情報を示す。被写体5の姿勢は、直立、横向き、倒立、横向き、直立の順に変化しており、ひねりの運動は行っていない。位置5aをトレースした曲線が軌跡情報10aとなり、位置5bをトレースした曲線が軌跡情報10bとなる。例1では、軌跡情報10aと10bとの間隔は、被写体5の体の向きが「横向き」のところで最大となり、「倒立」を経過するところで一旦交差した後、さらに「横向き」で間隔が再び最大となり、「直立」の姿勢で再び交わる。
【0008】
一方、例2では、被写体6が、ロンダート回転(1/2ひねり側方回転)を行った場合において、被写体6の腰の左右の位置6aおよび位置6bをそれぞれトレースした場合の軌跡情報を示す。被写体6の姿勢は、直立(左向き)、横向き、倒立、横向き、直立(右向き)の順に変化している。直立(左向き)から横向きへの変化、横向きから直立(右向き)の変化において、被写体6がひねりの運動を行っている。位置6aをトレースした曲線が軌跡情報11aとなり、位置6bをトレースした曲線が軌跡情報11bとなる。
【0009】
軌跡情報10a,10bは、軌跡情報11a,11bとそれぞれ類似しているため、軌跡情報10a,10bを参照した視聴者は、被写体5が、軌跡情報11の被写体6のように、体を1/2ひねったかのように錯覚してしまう場合がある。
【0010】
図22で説明したように、被写体6の動きが、体の上下が入れ替わる動きを伴う場合には、特定の部位をトレースしただけではひねりの動きを正しく表示することができなくなる。
【0011】
1つの側面では、本発明は、被写体の運動のひねりを正しく表示することができる装置を提供することを目的とする。
【課題を解決するための手段】
【0012】
第1の案では、コンピュータが次の処理を実行する。コンピュータは、被写体の複数の関節位置を示す時系列の骨格情報を取得する。コンピュータは、骨格情報に基づき、基準点の第一の軌跡情報を生成する。コンピュータは、複数の関節位置に含まれる第一の関節位置と、第一の関節位置に対して左右対称の関係となる第二の関節位置とを、被写体の運動方向に基づいて回転させる。コンピュータは、回転させた第一の関節位置と基準点とに基づく時系列の乖離の大きさ、および、回転させた第二の関節位置と基準点とに基づく時系列の乖離の大きさのうち、少なくとも一方の時系列の乖離の大きさを示す第二の軌跡情報を生成する。コンピュータは、第一の軌跡情報と、第二の軌跡情報とを出力する。
【発明の効果】
【0013】
被写体の運動のひねりを正しく表示することができる。
【図面の簡単な説明】
【0014】
図1図1は、本実施例1にかかる情報処理装置の処理を説明するための図である。
図2図2は、第一位置および第二位置を特定する処理を説明するための図である。
図3図3は、本実施例1の情報処理装置が生成する軌跡情報を説明するための図である。
図4図4は、本実施例1にかかるシステムの構成を示す図である。
図5図5は、本実施例1にかかる骨格情報生成装置の構成を示す機能ブロック図である。
図6図6は、本実施例1にかかるセンシングDBのデータ構造の一例を示す図である。
図7図7は、本実施例1にかかる関節定義データのデータ構造の一例を示す図である。
図8図8は、本実施例1にかかる骨格情報DBのデータ構造の一例を示す図である。
図9図9は、本実施例1にかかる3DモデルDBのデータ構造の一例を示す図である。
図10図10は、本実施例1にかかる情報処理装置の構成を示す機能ブロック図である。
図11図11は、本実施例1にかかる軌跡情報テーブルのデータ構造の一例を示す図である。
図12図12は、本実施例1にかかる表示制御部が生成する画面情報の一例を示す図である。
図13図13は、本実施例1にかかる情報処理装置の処理手順を示すフローチャートである。
図14図14は、本実施例2にかかるシステムの構成を示す図である。
図15図15は、本実施例2にかかる骨格情報生成装置の構成を示す機能ブロック図である。
図16図16は、本実施例2にかかる映像DBのデータ構造の一例を示す図である。
図17図17は、本実施例2にかかる骨格情報DBのデータ構造の一例を示す図である。
図18図18は、本実施例2にかかる情報処理装置の構成を示す機能ブロック図である。
図19図19は、本実施例2にかかる軌跡情報テーブルのデータ構造の一例を示す図である。
図20図20は、本実施例2にかかる情報処理装置の処理手順を示すフローチャートである。
図21図21は、実施例の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図22図22は、従来技術の問題を説明するための図である。
【発明を実施するための形態】
【0015】
以下に、本願の開示する生成方法、生成プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0016】
図1は、本実施例1にかかる情報処理装置の処理を説明するための図である。本実施例1では、体操競技を行う選手15を被写体の一例として説明を行う。情報処理装置は、選手15の複数の関節位置を示す時系列の骨格情報を基にして、基準点15aを特定する。基準点は、骨格情報の重心または選手15のへそに対応する。
【0017】
情報処理装置は、複数の関節位置に含まれる第一の関節位置16aと、第一の関節位置16aに対して左右対称の関係となる第二の関節位置16bを、運動方向30に基づいて回転させる。運動方向30は、重心(基準点15a)の移動方向を示す。第一の関節位置16aを回転させた位置を、第一位置17aと表記する。第二の関節位置16bを回転させた位置を、第二位置17bと表記する。
【0018】
たとえば、第一の関節位置16aが、左腰の位置である場合には、第二の関節位置16bは、右腰の位置となる。第一の関節位置16aが、左肩の位置である場合には、第二の関節位置16bは、右肩の位置となる。図1に示す例では、第一の関節位置16aは、左腰の位置に対応し、第二の関節位置16bは、右腰の位置に対応する。
【0019】
情報処理装置は、基準点15aと、第一位置17aとの距離を第一乖離量として算出する。情報処理装置は、基準点15aと、第二位置17bとの距離を第二乖離量として計算する。
【0020】
ここで、第一乖離量および第二乖離量は、選手15のひねりの角度に起因した値となる。たとえば、選手15のひねりの角度をθとすると、第一乖離量および第二乖離量は、角度θの正弦関数に比例する量となる。このため、選手15がひねりの運動を行わない場合には、第一乖離量および第二乖離量は一定の値となる。これに対して、選手15がひねりの運動を行う場合には、ひねりの角度θに応じて、第一乖離量および第二乖離量が変化する。
【0021】
情報処理装置は、骨格情報を基にして、上記の基準点、第一位置、第二位置を特定する処理を時系列で実行し、基準点をトレースした軌跡情報と、第一位置をトレースした軌跡情報と、第二位置をトレースした軌跡情報とを生成する。基準点をトレースした軌跡情報は「第一の軌跡情報」に対応する。第一位置をトレースした軌跡情報、および、第二位置をトレースした軌跡情報の少なくとも一方の軌跡情報が「第二の軌跡情報」に対応する。
【0022】
ここで、情報処理装置が、図1で説明した第一位置および第二位置を特定する処理の一例について説明する。図2は、第一位置および第二位置を特定する処理を説明するための図である。情報処理装置の処理をステップS1~S5の順に説明する。
【0023】
ステップS1について説明する。情報処理装置は、選手15の骨格情報を基にして、基準点15aと、胴体部分の中心線15bと、第一の関節位置16aと、第二の関節位置16bとを特定する。情報処理装置は、前後の時間の骨格情報を基にして、基準点15aの移動方向を、運動方向30として特定する。
【0024】
ステップS2について説明する。情報処理装置は、中心線15bとのなす角度が90度となり、第一の関節位置16aを通る直線15cを設定する。
【0025】
ステップS3aについて説明する。情報処理装置は、第二の関節位置16bを、中心線15bに平行に移動して直線15cに重なる位置に調整する。ステップS3aで説明した図に、基準点15aと、運動方向30とを重畳すると、ステップS3bに示すものとなるステップS3aにおける第一の関節位置16aは「第一のマーク」に対応する。第二の関節位置16bは「第二のマーク」に対応する。
【0026】
ステップS4について説明する。情報処理装置は、運動方向30と重なるように、中心線15bを回転させる。まず、情報処理装置は、中心線15bと直線15cの交点が基準点15aに重なるように第一の間接位置16aおよび第二の間接位置16bを平行に移動させた後、中心線15bにおいて選手15の頭部側が運動方向30と重なるように第一の間接位置16aおよび第二の間接位置16bと共に回転させる。
【0027】
ステップS5について説明する。情報処理装置は、ステップS4の第一の関節位置16aを、第一位置17aとして特定する。情報処理装置は、ステップS4の第二の関節位置16bを、第一位置17bとして特定する。
【0028】
ここで、基準点15aと第一位置17aとの乖離量、および、基準点15aと第二位置17bとの乖離量は、選手15のひねりの角度θの正弦関数に比例する量となる。以下の説明では、基準点15aと第一位置17aとの乖離量、および、基準点15aと第二位置17bとの乖離量を、まとめて、適宜「乖離量」と表記する。
【0029】
ひねりの角度θを一定にして、選手15が運動を行っても、乖離量は一定となる。たとえば、選手15が正面を向いている状態のひねりの角度θを90度とする。角度θが「90度」、または、「270度」の場合には、乖離量が最大の値をとる。角度θが「0度」、または「180度」の場合には、乖離量が最小の値をとる。すなわち、角度θが「0度」、または「180度」の場合には、第一位置17a、第二位置17b、基準点15aの位置が重なる。
【0030】
図3は、本実施例1の情報処理装置が生成する軌跡情報を説明するための図である。例3では、選手15が側方倒立回転を行った場合を示す。情報処理装置は、選手15の腰の左右の位置(第一の関節位置)16aおよび位置(第二の関節位置)16bを基にして算出した第一位置および第二位置をトレースした軌跡情報を生成する。例3において、第一位置をトレースした曲線が軌跡情報20aとなる。第二位置をトレースした曲線が軌跡情報20bとなる。基準点をトレースした曲線を、軌跡情報20cとする。
【0031】
例3において、選手15の姿勢は、直立、横向き、倒立、横向き、直立の順に変化しているが、ひねりの角度が変化していないため、軌跡情報20aと軌跡情報20cとの間隔、軌跡情報20bと軌跡情報20cとの距離は変化していない。
【0032】
例4では、選手15がロンダート回転(1/2ひねり側方回転)を行った場合を示す。情報処理装置は、選手15の腰の左右の位置16aおよび位置16bを基にして算出した第一位置および第二位置をトレースした軌跡情報を生成する。例4において、第一位置をトレースした曲線が軌跡情報21aとなる。第二位置をトレースした曲線が軌跡情報21bとなる。基準点をトレースした曲線を、軌跡情報21cとする。
【0033】
例4において、選手15の姿勢は、直立(左向き)、横向き、倒立、横向き、直立(右向き)の順に変化している。ここで、直立(左向き)から横向きへの変化、横向きから直立(右向き)への変化において、選手15がひねりの運動を行っている。このため、直立(左向き)から横向きへのひねりの角度に応じて、軌跡情報21aと軌跡情報21cとの間隔が広がり、軌跡情報21bと軌跡情報21cとの間隔が広がる。また、横向きから直立(左向き)へのひねりの角度に応じて、軌跡情報21aと軌跡情報21cとの間隔が狭まり、軌跡情報21bと軌跡情報21cとの間隔が狭まる。
【0034】
上記のように、情報処理装置は、選手15の骨格情報から胴体を構成する左右対称関係の関節位置を運動方向に基づき回転させた位置と、基準点との乖離量を時系列に示す軌跡情報を生成して表示する。情報処理装置により生成される各軌跡情報は、選手が体をひねっていない場合には、各軌跡情報の幅が一定となり、選手が体をひねった場合には、ひねりの角度θに応じて、各軌跡情報の幅が変化するので、視聴者は、選手15の体のひねり具合を認識することができる。すなわち、情報処理装置によれば、被写体の運動のひねりを正しく表示することができる。
【0035】
次に、上述した情報処理装置を含むシステムの構成について説明する。図4は、本実施例1にかかるシステムの構成を示す図である。図4に示すように、このシステムは、3Dレーザセンサ50と、骨格情報生成装置60と、情報処理装置100とを有する。
【0036】
3Dレーザセンサ50は、選手15に対して3Dセンシングを行うセンサである。3Dレーザセンサ50は、センシング結果となる3Dセンシングデータを、骨格情報生成装置60に出力する。以下の説明では、3Dセンシングデータを、単に「センシングデータ」と表記する。3Dレーザセンサ50により取得される、各フレームのセンシングデータは、フレーム番号と、選手15上の各点までの距離情報とを含む。各フレームには、フレーム番号が昇順に付与される。3Dレーザセンサ50は、各フレームのセンシングデータを、順次、骨格情報生成装置60に出力してもよいし、複数フレーム分のセンシングデータを、定期的に、骨格情報生成装置60に出力してもよい。
【0037】
骨格情報生成装置60は、3Dレーザセンサ50がセンシングしたセンシングデータを基にして、選手15の複数の関節位置を示す時系列の骨格情報を生成する装置である。骨格情報生成装置60は、骨格情報を、情報処理装置100に出力する。
【0038】
情報処理装置100は、骨格情報生成装置60から骨格情報を取得し、骨格情報を基にして、図1で説明した基準点、第一位置および第二位置を特定し、基準点、第一位置、第二位置をそれぞれ時系列にトレースした各軌跡情報を生成する装置である。
【0039】
図4に示した骨格情報生成装置60の構成の一例について説明する。図5は、本実施例1にかかる骨格情報生成装置の構成を示す機能ブロック図である。図5に示すように、この骨格情報生成装置60は、通信部61と、記憶部62と、制御部63とを有する。
【0040】
通信部61は、3Dレーザセンサ50と、情報処理装置100とのデータ通信を実行する処理部である。たとえば、通信部61は、NIC(Network Interface Card)等によって実現される。通信部61は、通信装置に対応する。
【0041】
記憶部64は、センシングDB64aと、関節定義データ64bと、骨格情報DB64cと、3DモデルDB64dとを有する。記憶部64は、たとえば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0042】
センシングDB64aは、3Dレーザセンサ50から取得するセンシングデータを格納するDBである。図6は、本実施例1にかかるセンシングDBのデータ構造の一例を示す図である。図6に示すように、このセンシングDB64aは、フレーム番号と、センシングフレームとを対応づける。フレーム番号は、センシングフレームを一意に識別する番号である。センシングフレームは、3Dレーザセンサ50にセンシングされたセンシングデータに含まれるフレームである。
【0043】
関節定義データ64bは、選手15の各関節位置を定義するデータである。図7は、本実施例1にかかる関節定義データのデータ構造の一例を示す図である。図7に示すように、関節定義データ64bは、公知の骨格モデルで特定される各関節をナンバリングした情報を記憶する。たとえば、図7に示すように、右肩関節(SHOULDER_RIGHT)にはA7番が付与され、左肘関節(ELBOW_LEFT)にはA5番が付与され、左膝関節(KNEE_LEFT)にはA11番が付与され、右股関節(HIP_RIGHT)にはA14番が付与される。ここで、本実施例1では、A7番の右肩関節のX座標をX7、Y座標をY7、Z座標をZ7と記載する場合がある。なお、点線の数字は、より細かな動きを必要とする際に利用される間接であり、利用目的に応じて骨格情報DBとして適用されるものである。全体の動きを俯瞰して把握する場合には利用されない間接等である。
【0044】
骨格情報DB64cは、時系列の骨格情報を保持するデータベースである。図8は、本実施例1にかかる骨格情報DBのデータ構造の一例を示す図である。図8に示すように、この骨格情報DB64cは、フレーム番号と、「X0、Y0、Z0、・・・、X17、Y17、Z17」を対応づける。
【0045】
図8において、フレーム番号は、同一の演技IDに対応する各センシングフレームを一意に識別する番号である。「X0、Y0、Z0、・・・、X17、Y17、Z17」は、各関節のXYZ座標であり、たとえば「X0、Y0、Z0」は、図7に示すA0番号の関節の3次元座標である。
【0046】
図8は、センシングデータにおける各関節の時系列の変化を示しており、フレーム番号「1」では、各関節の位置が「X0=100、Y0=20、Z0=0、・・・、X17=200、Y17=40、Z17=5」であることを示す。そして、フレーム番号「2」では、各関節の位置が「X0=101、Y0=25、Z0=5、・・・、X17=202、Y17=39、Z17=15」へ移動したことを示す。
【0047】
3DモデルDB64dは、センシングデータを基に生成される選手15の3Dモデルのデータを格納するデータベースである。図9は、本実施例1にかかる3DモデルDBのデータ構造の一例を示す図である。図9に示すように、3DモデルDB64dは、フレーム番号と、3Dモデルデータとを対応づける。3Dモデルデータは、センシングデータから得られる情報と、骨格情報とを基にして推定される選手15の3Dモデルのデータである。フレーム番号に関する説明は、センシングDB64aで行った説明と同様である。
【0048】
図5の説明に戻る。制御部65は、取得部65aと、生成部65bと、送信部65cとを有する。制御部65は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)により実現される。また、制御部65は、例えばASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実行されてもよい。
【0049】
取得部65aは、3Dレーザセンサ50から、センシングデータを取得する処理部である。取得部65aは、取得したセンシングデータを、センシングDB64aに格納する。
【0050】
生成部65bは、センシングDB64aを基にして、時系列の骨格情報を生成する処理部である。生成部65bは、時系列の骨格情報を、骨格情報DB64cに登録する。本実施例1では、生成部65bは、フレーム番号毎の複数の関節位置を、時系列の骨格情報として生成する。
【0051】
生成部65bは、センシングDB64aのセンシングフレームと、関節定義データ64bに定義された各関節の位置関係とを比較して、センシングフレームに含まれる各関節の種別および関節の3次元座標を特定する。生成部65bは、各フレーム番号に対応するセンシングフレームについて、上記処理を繰り返し実行することで、各フレーム番号に対応する骨格情報を生成する。
【0052】
生成部65bは、骨格情報DB64cに格納された各関節の3次元座標を、関節定義データ82bに定義された接続関係を基にしてつなぎ合わせることで、骨格構造データを生成する。また、生成部65bは、推定した骨格構造データを、選手15の体格に合わせた骨格モデルに当てはめることで、3Dモデルデータを生成する。生成部65bは、フレーム番号毎に上記処理を繰り返し実行することで、3DモデルDB64dを生成する。
【0053】
送信部65cは、骨格情報DB64cに登録される時系列の骨格情報、3Dモデルデータを、情報処理装置100に送信する処理部である。上記のように、骨格情報には、フレーム番号と、各関節の位置とを対応付けた情報が含まれる。
【0054】
次に、図4に示した情報処理装置100の構成の一例について説明する。図10は、本実施例1にかかる情報処理装置の構成を示す機能ブロック図である。図10に示すように、この情報処理装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
【0055】
通信部110は、骨格情報生成装置60とのデータ通信を実行する処理部である。たとえば、通信部110は、NIC等によって実現される。通信部110は、通信装置に対応する。
【0056】
入力部120は、各種の情報を、情報処理装置100に入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。
【0057】
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、タッチパネル等に対応する。たとえば、表示部130は、制御部150から出力される軌跡情報等を表示する。
【0058】
記憶部140は、骨格情報DB141と、3DモデルDB142と、軌跡情報テーブル143とを有する。記憶部140は、たとえば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0059】
骨格情報DB141は、選手15の複数の関節位置を示す時系列の骨格情報を保持するデータベースである。骨格情報DB141のデータ構造は、図8で説明した骨格情報DB64cと同様にして、フレーム番号と、各関節の3次元座標とを対応付ける。
【0060】
3DモデルDB142は、骨格情報生成装置60により生成される3Dモデルの情報を保持するデータベースである。3DモデルDB142のデータ構造は、図9で説明した3DモデルDB64dと同様にして、フレーム番号と、3Dモデルデータとを対応付ける。
【0061】
軌跡情報テーブル143は、図3等で説明した各軌跡情報を保持するテーブルである。図11は、本実施例1にかかる軌跡情報テーブルのデータ構造の一例を示す図である。図11に示すように、軌跡情報テーブル143は、基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報を有する。基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報はそれぞれ、各フレーム番号における3次元位置によって示される。
【0062】
図10の説明に戻る。制御部150は、取得部151と、生成部152と、表示制御部153とを有する。制御部150は、たとえば、CPUやMPUにより実現される。また、制御部150は、たとえば、ASICやFPGA等の集積回路により実行されてもよい。
【0063】
取得部151は、骨格情報生成装置60から、時系列の骨格情報を取得し、取得した骨格情報を、骨格情報DB141に格納する。取得部151は、骨格情報生成装置60から、時系列の3Dモデルデータを取得し、取得した3Dモデルデータを、3DモデルDB142に格納する。
【0064】
生成部152は、骨格情報DB141に格納された骨格情報を取得し、時系列の骨格情報を基にして、基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報を生成する処理部である。生成部152は、基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報を、軌跡情報テーブル143に格納する。
【0065】
生成部152が、骨格情報を基にして、基準点の軌跡情報を生成する処理の一例について説明する。生成部152は、骨格情報の各関節の位置を基にして、重心を算出し、算出した重心の位置を、基準点の位置とする。生成部152は、所定の関節の位置を、基準点の位置として特定してもよい。たとえば、図7で説明したA1番の位置を、基準点の位置として特定する。生成部152は、時系列の骨格情報を基にして、上記の基準点の位置を算出する処理を繰り返し実行することで、基準点の軌跡情報を生成する。
【0066】
生成部152は、基準点の位置を算出する場合に、選手15の運動方向を合わせて算出してもよい。たとえば、生成部152は、フレーム番号n-1の骨格情報を基にした基準点の位置から、フレーム番号nの基準点の位置への方向を、フレーム番号nにおける選手15の運動方向として算出する。
【0067】
生成部152が、骨格情報を基にして、第一位置の軌跡情報、第二位置の軌跡情報を生成する処理の一例について説明する。生成部152は、骨格情報に含まれる複数の関節位置のうち、所定の関節位置を、第一の関節位置、第二の関節位置として選択する。たとえば、生成部152は、A14番(右腰)の関節位置を、第一の関節位置として選択する。生成部152は、A10番(左腰)の関節位置を、第二の関節位置として選択する。第一の関節位置、第二の関節位置は、図2で説明した、第一の関節位置16a、第二の関節位置16bに対応する。
【0068】
生成部152は、骨格情報を基にして、中心線を計算する。たとえば、中心線は、A0番、A1番を結ぶ直線となる。かかる中心線は、図2で説明した中心線15bに対応する。
【0069】
生成部152は、図2で説明したステップS1~S5の処理を実行することで、第一位置17aおよび第二位置17bを算出する。なお、運動方向30は、上記のように、基準点を基にして算出される運動方向となる。
【0070】
生成部152は、時系列の骨格情報を基にして、上記の第一位置を算出する処理を繰り返し実行することで、第一位置の軌跡情報を生成する。生成部152は、時系列の骨格情報を基にして、上記の第二位置を算出する処理を繰り返し実行することで、第二位置の軌跡情報を生成する。
【0071】
なお、上記の説明では、生成部152は、基準点の位置、第一位置、第二位置の情報を、軌跡情報として、軌跡情報テーブル143に格納したが、これに限定されるものではない。たとえば、生成部152は、各フレーム番号において、基準点の位置と第一位置との乖離量、基準点の位置と第に位置との乖離量を、それぞれ軌跡情報として算出し、軌跡情報テーブル143に格納してもよい。
【0072】
表示制御部153は、軌跡情報テーブル143に格納された基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報を、表示部130に出力して表示させる処理部である。たとえば、表示制御部153は、各軌跡情報を基にして画面情報を生成し、表示部130に出力して表示させてもよい。
【0073】
図12は、本実施例1にかかる表示制御部が生成する画面情報の一例を示す図である。図12に示すように、画面情報には、グラフG1が含まれる。グラフG1の縦軸は、床からの距離に対応する軸である。グラフG1の横軸は、選手15の移動方向の距離に対応する軸である。図12に示す例では、基準点の軌跡情報70と、第一位置の軌跡情報71と、第二位置の軌跡情報72とがグラフG1に表示されている。軌跡情報70,71,72が1回交差する毎に、選手15は体を1/2回ひねっていることを意味する。
【0074】
表示制御部153は、基準点の軌跡情報70を表示させないで、第一位置の軌跡情報71と、第二位置の軌跡情報72とがグラフG1に表示させてもよい。この場合、第一位置の軌跡情報71は、第三の軌跡情報に対応し、第二位置の軌跡情報72は、第四の軌跡情報に対応する。これによって、ひねりの回数をより認識しやすく表示することができる。
【0075】
また、表示制御部153は、3Dモデルと、基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報を重畳したモデル重畳情報を生成し、表示部130に表示させてもよい。表示制御部153は、フレーム番号を用いて、3Dモデルの動きと、基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報とを同期させる。表示制御部153は、モデル重畳情報を表示させる場合に、予め指定された視点方向を基準として、モデル重畳情報を表示させてもよいし、入力部120を介して指定される視点方向を基準として、モデル重畳情報を表示させてもよい。
【0076】
なお、表示制御部153は、図12に示した画面情報や、モデル重畳情報を、一般試聴用の映像コンテンツとして、TV局のサーバ等に送信してもよい。
【0077】
次に、本実施例1にかかる情報処理装置100の処理手順の一例について説明する。図13は、本実施例1にかかる情報処理装置の処理手順を示すフローチャートである。図13に示すように、情報処理装置100の取得部151は、骨格情報生成装置60から骨格情報を取得し、骨格情報DB141に格納する(ステップS101)。取得部151は、骨格情報生成装置60から3Dモデルデータを取得し、3DモデルDB142に格納する(ステップS102)。
【0078】
情報処理装置100の生成部152は、骨格情報DB141から骨格情報を取得する(ステップS103)。生成部152は、骨格情報を基にして、基準点の位置を算出する(ステップS104)。
【0079】
生成部152は、骨格情報を基にして、第一の関節位置、第二の関節位置を特定する(ステップS105)。生成部152は、基準点の運動方向を基にして、第一の関節位置、第二の関節位置を回転させ、第一位置および第二位置を算出する(ステップS106)。
【0080】
生成部152は、取得した骨格情報のフレーム番号と対応付けて、基準点の位置、第一位置、第二位置を、軌跡情報テーブル143に格納する(ステップS107)。情報処理装置100の表示制御部153は、3Dモデルデータと、各軌跡情報とを重畳した画面情報を生成して表示部130に出力する(ステップS108)。
【0081】
生成部152は、処理を継続する場合には(ステップS109,Yes)、骨格情報DB141から次の骨格情報を取得し(ステップS110)、ステップS104に移行する。一方、生成部152は、処理を継続しない場合には(ステップS109,No)、処理を終了する。
【0082】
次に、本実施例1にかかる情報処理装置100の効果について説明する。情報処理装置100は、骨格情報を基にして、第一の関節位置と第二の関節位置とを特定し、第一の関節位置と第二の関節位置とを選手15の運動方向に基づいて回転させることで、第一位置および第二位置を算出する。情報処理装置100は、基準点の軌跡情報と、第一位置および第二位置の軌跡情報とを出力して表示させる。上記の基準点と第一位置との乖離量および基準点と第二位置との乖離量は、選手15のひねりの角度θの正弦関数に比例する量となる。このため、選手15がひねりの運動を行うことで乖離量は変化し、選手15がひねりの運動を行わないと乖離量は一定の値となる。したがって、上記処理により算出された乖離量の軌跡情報を出力して表示することで、選手15の運動のひねりを正しくかつ視覚的に分かりやすく表示することができる。仮に第一の関節位置と第二の関節位置の間隔が小さいことによって、選手15のひねりに伴う乖離量の変化が小さく、視覚的にひねりの状態が分かりにくい場合、算出工程において基準点から第一位置および第二位置までの乖離量を一定倍率に拡大して第一位置および第二位置を決定してもよい。
【0083】
情報処理装置100は、骨格情報の中心線と直角に交わる直線を第一の関節位置および第二の関節位置に基づいて設定し、直線に第一の関節位置に対応する第一のマークおよび第二の関節位置に対応する第二のマークを設定し、被写体の移動方向に合わせて中心線を回転させ、中心線との角度が直角に交わるように直線を回転させる。情報処理装置100は、基準点と、第一のマークの位置との距離を、第一の関節位置と基準点との時系列の乖離の大きさとして算出し、基準点と、第二のマークの位置との距離を、第二の関節位置と基準点との時系列の乖離の大きさとして算出する。これによって、選手15のひねりに応じた乖離量を適切に算出することができる。
【0084】
情報処理装置100は、基準点の軌跡情報と、第一位置の軌跡情報と、第二位置の軌跡情報とを重畳した情報を生成して、表示部130に表示させる。これによって、選手15による運動の軌跡と、ひねりの状態とを同時に認識させることが可能である。なお、情報処理装置100は、基準点の軌跡情報と、第一位置の軌跡情報とを重畳した情報を生成してもよいし、基準点の軌跡情報と、第二位置の軌跡情報とを重畳した情報を生成してもよい。
【0085】
情報処理装置100に出力される情報を参照するとことで、一般の視聴者は、複雑な運動であってもひねりの回数を把握しやすくなる。また、選手やその指導者にとっては、運動のどこの地点でどのくらいひねっているのかを把握しやすくなる。たとえば、練習で同じ運動を繰り返し行った時の体のこなし方の良否を判断する際の補助情報として役に立つ。また、同一の運動を様々な選手で比較する場合に個人差を把握することが容易にできる。
【実施例2】
【0086】
次に、本実施例2にかかるシステムについて説明する。図14は、本実施例2にかかるシステムの構成を示す図である。図14に示すように、このシステムは、カメラ80と、骨格情報生成装置90と、情報処理装置200とを有する。
【0087】
カメラ80は、選手15の映像を撮影するカメラである。カメラ80は、撮影した映像の情報を、骨格情報生成装置90に出力する。たとえば、カメラ80は、フレームレート60fps(frames per second)によって、時系列の画像フレームを撮影する。画像フレームは、あるタイミングにおける静止画像である。以下の説明では、カメラが撮影した映像の情報を、映像情報とを表記する。映像情報には、時系列の画像フレームが含まれ、各画像フレームには、フレーム番号が付与される。
【0088】
骨格情報生成装置90は、カメラ80が撮影した映像情報を基にして、選手15の複数の関節位置を示す時系列の骨格情報を生成する装置である。骨格情報生成装置90は、骨格情報を、情報処理装置200に出力する。
【0089】
情報処理装置200は、骨格情報生成装置90から骨格情報を取得し、骨格情報を基にして、図1で説明した基準点、第一位置および第二位置を特定し、基準点、第一位置、第二位置をそれぞれ時系列にトレースした各軌跡情報を生成する装置である。
【0090】
図14に示した骨格情報生成装置90の構成の一例について説明する。図15は、本実施例2にかかる骨格情報生成装置の構成を示す機能ブロック図である。図15に示すように、この骨格情報生成装置90は、通信部91と、記憶部92と、制御部93とを有する。
【0091】
通信部91は、カメラ80と、情報処理装置200とのデータ通信を実行する処理部である。たとえば、通信部91は、NIC等によって実現される。通信部91は、通信装置に対応する。
【0092】
記憶部94は、映像DB94aと、関節位置特定モデル94bと、骨格情報DB94cとを有する。記憶部64は、たとえば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0093】
映像DB94aは、カメラ80から取得する映像情報を格納するDBである。図16は、本実施例2にかかる映像DBのデータ構造の一例を示す図である。図16に示すように、この映像DB94aは、フレーム番号と、画像フレームとを対応づける。フレーム番号は、画像フレームを一意に識別する番号である。画像フレームは、カメラ80に撮影された映像情報に含まれる画像フレームである。
【0094】
関節位置特定モデル94bは、画像フレームを入力した際に、選手15の複数の関節位置を出力するモデルデータである。関節位置特定モデル94bは、NN(Neural Network)等によって実現され、事前にパラメータが学習されているものとする。
【0095】
骨格情報DB94cは、時系列の骨格情報を保持するデータベースである。図17は、本実施例2にかかる骨格情報DBのデータ構造の一例を示す図である。図17に示すように、この骨格情報DB94cは、フレーム番号と、「X0、Y0、・・・、X17、Y17」を対応づける。たとえば、本実施例2に係る骨格情報は、各関節位置を2次元によって特定する。
【0096】
図17において、フレーム番号は、画像フレームを一意に識別する番号である。「X0、Y0、・・・、X17、Y17」は、各関節のX、Y座標であり、たとえば「X0、Y0」は、実施例1の図7で説明したA0番号の関節の2次元座標である。図示を省略するが、骨格情報生成装置90は、記憶部94に、図7で説明した関節定義データ64bを有していてもよい。
【0097】
図17は、映像情報における各関節の時系列の変化を示しており、フレーム番号「1」では、各関節の位置が「X0=100、Y0=20、・・・、X17=200、Y17=40」であることを示す。そして、フレーム番号「2」では、各関節の位置が「X0=101、Y0=25、・・・、X17=202、Y17=39」へ移動したことを示す。
【0098】
図15の説明に戻る。制御部95は、取得部95aと、生成部95bと、送信部95cとを有する。制御部95は、例えば、CPUやMPUにより実現される。また、制御部95は、例えばASICやFPGA等の集積回路により実行されてもよい。
【0099】
取得部95aは、カメラ80から、映像情報を取得する処理部である。取得部95aは、取得した映像情報を、映像DB94aに格納する。
【0100】
生成部95bは、映像DB94aを基にして、時系列の骨格情報を生成する処理部である。生成部95bは、時系列の骨格情報を、骨格情報DB94cに登録する。本実施例2では、生成部95bは、フレーム番号毎の複数の関節位置を、時系列の骨格情報として生成する。
【0101】
たとえば、生成部95bは、関節位置特定モデル94bに画像フレームを入力することで、画像フレームに含まれる選手15の各関節位置の情報を算出する。実施例2では、関節位置特定モデル94bを基にして、関節位置を算出する場合について説明したが、他の技術を用いて、画像フレームから、関節位置を算出してもよい。
【0102】
送信部95cは、骨格情報DB94cに登録される時系列の骨格情報、映像情報を、情報処理装置200に送信する処理部である。上記のように、骨格情報には、フレーム番号と、各関節の位置とを対応付けた情報が含まれる。
【0103】
次に、図14に示した情報処理装置200の構成の一例について説明する。図18は、本実施例2にかかる情報処理装置の構成を示す機能ブロック図である。図18に示すように、この情報処理装置200は、通信部210、入力部220、表示部230、記憶部240、制御部250を有する。
【0104】
通信部210は、骨格情報生成装置90とのデータ通信を実行する処理部である。たとえば、通信部210は、NIC等によって実現される。通信部210は、通信装置に対応する。
【0105】
入力部220は、各種の情報を、情報処理装置200に入力する入力装置である。入力部220は、キーボードやマウス、タッチパネル等に対応する。
【0106】
表示部230は、制御部250から出力される情報を表示する表示装置である。表示部230は、液晶ディスプレイ、有機ELディスプレイ、タッチパネル等に対応する。たとえば、表示部230は、制御部150から出力される軌跡情報等を表示する。
【0107】
記憶部240は、骨格情報DB241と、映像DB242と、軌跡情報テーブル243とを有する。記憶部240は、たとえば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0108】
骨格情報DB241は、選手15の複数の関節位置を示す時系列の骨格情報を保持するデータベースである。骨格情報DB241のデータ構造は、図17で説明した骨格情報DB94cと同様にして、フレーム番号と、各関節の2次元座標とを対応付ける。
【0109】
映像DB242は、骨格情報生成装置60により出力される映像情報を保持するデータベースである。映像DB242のデータ構造は、図16で説明した映像DB94aと同様にして、フレーム番号と、画像フレームとを対応付ける。
【0110】
軌跡情報テーブル243は、図3等で説明した各軌跡情報を保持するテーブルである。図19は、本実施例2にかかる軌跡情報テーブルのデータ構造の一例を示す図である。図19に示すように、軌跡情報テーブル243は、基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報を有する。基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報はそれぞれ、各フレーム番号における2次元位置によって示される。
【0111】
図18の説明に戻る。制御部250は、取得部251と、生成部252と、表示制御部253とを有する。制御部250は、たとえば、CPUやMPUにより実現される。また、制御部250は、たとえば、ASICやFPGA等の集積回路により実行されてもよい。
【0112】
取得部251は、骨格情報生成装置90から、時系列の骨格情報を取得し、取得した骨格情報を、骨格情報DB241に格納する。取得部251は、骨格情報生成装置90から、時系列の映像情報を取得し、取得した映像情報を、映像DB242に格納する。
【0113】
生成部252は、骨格情報DB241に格納された骨格情報を取得し、時系列の骨格情報を基にして、基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報を生成する処理部である。生成部252は、基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報を、軌跡情報テーブル243に格納する。
【0114】
生成部252が、骨格情報を基にして、基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報を生成する処理は、取り扱う座標が3次元から2次元に代わる以外は、実施例1で説明した生成部152の処理と同様である。
【0115】
表示制御部253は、軌跡情報テーブル243に格納された基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報を、表示部230に出力して表示させる処理部である。たとえば、表示制御部253は、各軌跡情報を基にして画面情報を生成し、表示部230に出力して表示させてもよい。
【0116】
また、表示制御部253は、映像情報と、基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報を重畳した映像重畳情報を生成し、表示部230に表示させてもよい。表示制御部253は、フレーム番号を用いて、映像情報の各画像フレームと、基準点の軌跡情報、第一位置の軌跡情報、第二位置の軌跡情報とを同期させる。
【0117】
なお、表示制御部253は、生成した画面情報や、映像重畳情報を、一般試聴用の映像コンテンツとして、TV局のサーバ等に送信してもよい。
【0118】
次に、本実施例2にかかる情報処理装置200の処理手順の一例について説明する。図20は、本実施例2にかかる情報処理装置の処理手順を示すフローチャートである。図20に示すように、情報処理装置200の取得部251は、骨格情報生成装置90から骨格情報を取得し、骨格情報DB241に格納する(ステップS201)。取得部251は、骨格情報生成装置90から映像情報を取得し、映像DB242に格納する(ステップS202)。
【0119】
情報処理装置200の生成部252は、骨格情報DB241から骨格情報を取得する(ステップS203)。生成部252は、骨格情報を基にして、基準点の位置を算出する(ステップS204)。
【0120】
生成部252は、骨格情報を基にして、第一の関節位置、第二の関節位置を特定する(ステップS205)。生成部252は、基準点の運動方向を基にして、第一の関節位置、第二の関節位置を回転させ、第一位置および第二位置を算出する(ステップS206)。
【0121】
生成部252は、取得した骨格情報のフレーム番号と対応付けて、基準点の位置、第一位置、第二位置を、軌跡情報テーブル243に格納する(ステップS207)。情報処理装置200の表示制御部253は、映像情報と、各軌跡情報とを重畳した画面情報を生成して表示部230に出力する(ステップS208)。
【0122】
生成部252は、処理を継続する場合には(ステップS209,Yes)、骨格情報DB241から次の骨格情報を取得し(ステップS210)、ステップS204に移行する。一方、生成部252は、処理を継続しない場合には(ステップS209,No)、処理を終了する。
【0123】
次に、本実施例2にかかる情報処理装置200の効果について説明する。情報処理装置200は、骨格情報を基にして、第一の関節位置と第二の関節位置とを特定し、第一の関節位置と第二の関節位置とを選手15の運動方向に基づいて回転させることで、第一位置および第二位置を算出する。情報処理装置200は、基準点の軌跡情報と、第一位置および第二位置の軌跡情報とを出力して表示させる。上記の基準点と第一位置との乖離量および基準点と第二位置との乖離量は、選手15のひねりの角度θの正弦関数に比例する量となる。このため、選手15がひねりの運動を行うことで乖離量は変化し、選手15がひねりの運動を行わないと乖離量は一定の値となる。したがって、上記処理により算出された乖離量の軌跡情報を出力して表示することで、選手15の運動のひねりを正しくかつ視覚的に分かりやすく表示することができる。仮に第一の関節位置と第二の関節位置の間隔が小さいことによって、選手15のひねりに伴う乖離量の変化が小さく、視覚的にひねりの状態が分かりにくい場合、算出工程において基準点から第一位置および第二位置までの乖離量を一定倍率に拡大して第一位置および第二位置を決定してもよい。
【0124】
次に、上記実施例に示した情報処理装置100(200)と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図21は、実施例の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0125】
図21に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、有線または無線ネットワークを介して、骨格情報生成装置60(90)、外部装置等との間でデータの授受を行う通信装置304と、インタフェース装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
【0126】
ハードディスク装置307は、取得プログラム307a、生成プログラム307b、学習モデル表示制御プログラム307cを有する。また、CPU301は、各プログラム307a~307cを読み出してRAM306に展開する。
【0127】
取得プログラム307aは、取得プロセス306aとして機能する。生成プログラム307bは、生成プロセス306bとして機能する。表示制御プログラム307cは、表示制御プロセス306cとして機能する。
【0128】
取得プロセス306aの処理は、取得部151,251の処理に対応する。生成プロセス306bの処理は、生成部152,252の処理に対応する。表示制御プロセス306cの処理は、表示制御部153,253の処理に対応する。
【0129】
なお、各プログラム307a~307cについては、必ずしも最初からハードディスク装置307に記憶させておかなくても良い。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307cを読み出して実行するようにしてもよい。
【0130】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0131】
(付記1)コンピュータが実行する生成方法であって、
被写体の複数の関節位置を示す時系列の骨格情報を取得し、
前記骨格情報に基づき、基準点の第一の軌跡情報を生成し、
前記複数の関節位置に含まれる第一の関節位置と、前記第一の関節位置に対して左右対称の関係となる第二の関節位置とを、前記被写体の運動方向に基づいて回転させ、
回転させた前記第一の関節位置と前記基準点とに基づく時系列の乖離の大きさ、および、回転させた前記第二の関節位置と前記基準点とに基づく時系列の乖離の大きさのうち、少なくとも一方の時系列の乖離の大きさを示す第二の軌跡情報を生成し、
前記第一の軌跡情報と、前記第二の軌跡情報とを出力する
処理を実行することを特徴とする生成方法。
【0132】
(付記2)前記回転させる処理は、前記骨格情報の中心線と直角に交わる直線を前記第一の関節位置および前記第二の関節位置に基づいて設定し、前記直線に前記第一の関節位置に対応する第一のマークおよび前記第二の関節位置に対応する第二のマークを設定し、前記被写体の運動方向に合わせて前記中心線を回転させ、前記中心線との角度が直角に交わるように前記直線を回転させることを特徴とする付記1に記載の生成方法。
【0133】
(付記3)前記第二の軌跡情報を生成する処理は、前記基準点と、前記第一のマークの位置との距離を、前記第一の関節位置と前記基準点との時系列の乖離の大きさとして算出し、前記基準点と、前記第二のマークの位置との距離を、前記第二の関節位置と前記基準点との時系列の乖離の大きさとして算出することを特徴とする付記2に記載の生成方法。
【0134】
(付記4)前記被写体の映像情報に、前記第一の軌跡情報および前記第二の軌跡情報を重畳した情報を生成する処理を更に実行することを特徴とする付記1、2または3に記載の生成方法。
【0135】
(付記5)前記生成する処理は、回転させた前記第一の関節位置と前記基準点との時系列の乖離の大きさを示す第三の軌跡情報と、回転させた前記第二の関節位置と前記基準点との時系列の乖離の大きさを示す第四の軌跡情報とを生成し、前記出力する処理は、前記第三の軌跡情報と、前記第四の軌跡情報とを出力することを特徴とする付記1に記載の生成方法。
【0136】
(付記6)コンピュータに、
被写体の複数の関節位置を示す時系列の骨格情報を取得し、
前記骨格情報に基づき、基準点の第一の軌跡情報を生成し、
前記複数の関節位置に含まれる第一の関節位置と、前記第一の関節位置に対して左右対称の関係となる第二の関節位置とを、前記被写体の運動方向に基づいて回転させ、
回転させた前記第一の関節位置と前記基準点とに基づく時系列の乖離の大きさ、および、回転させた前記第二の関節位置と前記基準点とに基づく時系列の乖離の大きさのうち、少なくとも一方の時系列の乖離の大きさを示す第二の軌跡情報を生成し、
前記第一の軌跡情報と、前記第二の軌跡情報とを出力する
処理を実行させることを特徴とする生成プログラム。
【0137】
(付記7)前記回転させる処理は、前記骨格情報の中心線と直角に交わる直線を前記第一の関節位置および前記第二の関節位置に基づいて設定し、前記直線に前記第一の関節位置に対応する第一のマークおよび前記第二の関節位置に対応する第二のマークを設定し、前記被写体の運動方向に合わせて前記中心線を回転させ、前記中心線との角度が直角に交わるように前記直線を回転させることを特徴とする付記6に記載の生成プログラム。
【0138】
(付記8)前記第二の軌跡情報を生成する処理は、前記基準点と、前記第一のマークの位置との距離を、前記第一の関節位置と前記基準点との時系列の乖離の大きさとして算出し、前記基準点と、前記第二のマークの位置との距離を、前記第二の関節位置と前記基準点との時系列の乖離の大きさとして算出することを特徴とする付記7に記載の生成プログラム。
【0139】
(付記9)前記被写体の映像情報に、前記第一の軌跡情報および前記第二の軌跡情報を重畳した情報を生成する処理を更に実行することを特徴とする付記6、7または8に記載の生成プログラム。
【0140】
(付記10)前記生成する処理は、回転させた前記第一の関節位置と前記基準点との時系列の乖離の大きさを示す第三の軌跡情報と、回転させた前記第二の関節位置と前記基準点との時系列の乖離の大きさを示す第四の軌跡情報とを生成し、前記出力する処理は、前記第三の軌跡情報と、前記第四の軌跡情報とを出力することを特徴とする付記6に記載の生成プログラム。
【0141】
(付記11)被写体の複数の関節位置を示す時系列の骨格情報を取得する取得部と、
前記骨格情報に基づき、基準点の第一の軌跡情報を生成し、前記複数の関節位置に含まれる第一の関節位置と、前記第一の関節位置に対して左右対称の関係となる第二の関節位置とを、前記被写体の運動方向に基づいて回転させ、回転させた前記第一の関節位置と前記基準点とに基づく時系列の乖離の大きさ、および、回転させた前記第二の関節位置と前記基準点とに基づく時系列の乖離の大きさのうち、少なくとも一方の時系列の乖離の大きさを示す第二の軌跡情報を生成する生成部と、
前記第一の軌跡情報と、前記第二の軌跡情報とを出力する表示制御部と
を有することを特徴とする情報処理装置。
【0142】
(付記12)前記生成部は、前記骨格情報の中心線と直角に交わる直線を前記第一の関節位置および前記第二の関節位置に基づいて設定し、前記直線に前記第一の関節位置に対応する第一のマークおよび前記第二の関節位置に対応する第二のマークを設定し、前記被写体の運動方向に合わせて前記中心線を回転させ、前記中心線との角度が直角に交わるように前記直線を回転させることを特徴とする付記11に記載の情報処理装置。
【0143】
(付記13)前記生成部は、前記基準点と、前記第一のマークの位置との距離を、前記第一の関節位置と前記基準点との時系列の乖離の大きさとして算出し、前記基準点と、前記第二のマークの位置との距離を、前記第二の関節位置と前記基準点との時系列の乖離の大きさとして算出することを特徴とする請求項12に記載の情報処理装置。
【0144】
(付記14)表示制御部は、前記被写体の映像情報に、前記第一の軌跡情報および前記第二の軌跡情報を重畳した情報を生成する処理を更に実行することを特徴とする付記11、12または13に記載の情報処理装置。
【0145】
(付記15)前記生成部は、回転させた前記第一の関節位置と前記基準点との時系列の乖離の大きさを示す第三の軌跡情報と、回転させた前記第二の関節位置と前記基準点との時系列の乖離の大きさを示す第四の軌跡情報とを生成し、前記表示制御部は、前記第三の軌跡情報と、前記第四の軌跡情報とを出力することを特徴とする付記11に記載の情報処理装置。
【符号の説明】
【0146】
50 3Dレーザセンサ
60,90 骨格情報生成装置
61,91,110 通信部
64,94,140 記憶部
64a センシングDB
64b 関節定義データ
64c,94c,141,241 骨格情報DB
64d 3DモデルDB
65,95,150 制御部
65a,95a、151,251 取得部
65b,95b,152,252 生成部
65c,95c 送信部
94a,242 映像DB
94b 関節位置特定モデル
100,200 情報処理装置
120,220 入力部
130,230 表示部
142 3DモデルDB
143,243 軌跡情報テーブル
153,253 表示制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22