(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024108340
(43)【公開日】2024-08-13
(54)【発明の名称】情報処理方法、プログラム、情報処理装置
(51)【国際特許分類】
G06T 7/246 20170101AFI20240805BHJP
G06T 7/00 20170101ALI20240805BHJP
G06V 10/422 20220101ALI20240805BHJP
A63B 69/36 20060101ALI20240805BHJP
【FI】
G06T7/246
G06T7/00 660B
G06V10/422
A63B69/36 541W
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2023012650
(22)【出願日】2023-01-31
(71)【出願人】
【識別番号】592014104
【氏名又は名称】ブリヂストンスポーツ株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】高木 啓雄
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096EA35
5L096FA09
5L096FA32
5L096FA69
5L096FA81
5L096HA02
5L096JA03
(57)【要約】
【課題】所定の動作を行う人が映っている動画像から所定の動作に関する所定のイベントの発生のタイミングをより適切に推定することが可能な技術を提供する。
【解決手段】本開示の一実施形態に係る情報処理装置300は、動画像に含まれる複数の画像ごとに、被写体の人のゴルフのスイング動作に関する複数の特徴点を抽出する特徴点抽出部3002と、特徴点抽出部3002により抽出される複数の特徴点に基づき、複数の画像ごとの被写体の動作を表すデータを取得する動作データ取得部3003と、ゴルフのスイング動作における所定のイベントの発生時の人の動作を表す基準のデータを記憶する基準動作データ記憶部3004Xと、複数の画像ごとの動作データ取得部3003により取得される動作データと、基準の動作データとの類似度に基づき、動画像における所定のイベントのタイミングを推定するイベントタイミング推定部3005と、を備える。
【選択図】
図17
【特許請求の範囲】
【請求項1】
情報処理装置が、動画像に含まれる複数の画像ごとに、被写体の人のゴルフのスイング動作に関する複数の特徴点であって、前記被写体の人の身体部位を表す特徴点、及びゴルフクラブの特徴点を含む複数の特徴点を抽出する抽出ステップと、
前記情報処理装置が、前記抽出ステップで抽出される複数の特徴点に基づき、前記複数の画像ごとの前記被写体の人及びゴルフクラブの動作を表すデータであって、前記被写体の人の身体部位とゴルフクラブとの位置及び速度の少なくとも一方に関するデータを含むデータを取得する取得ステップと、
前記情報処理装置が、前記複数の画像ごとの前記取得ステップで取得されるデータと、ゴルフのスイング動作における所定のイベントの発生時の人及びゴルフクラブの動作を表す基準のデータとの類似度に基づき、前記動画像における前記所定のイベントのタイミングを推定する推定ステップと、を含む、
情報処理方法。
【請求項2】
前記複数の特徴点には、ゴルフボールの特徴点の少なくとも一方を含む、
請求項1に記載の情報処理方法。
【請求項3】
前記取得ステップで取得されるデータには、前記被写体の人の複数の身体部位の動作を表すデータが含まれる、
請求項1に記載の情報処理方法。
【請求項4】
前記所定のイベントは、アドレス、テイクバック、バックスイング、トップ、ハーフウェイダウン、インパクト、フォロー、及びフィニッシュのうちの少なくとも1つを含む、
請求項1に記載の情報処理方法。
【請求項5】
前記基準のデータは、ゴルフのスイング動作における前記所定のイベントの発生時の複数の人の平均の動作を表すデータである、
請求項1に記載の情報処理方法。
【請求項6】
前記推定ステップでは、前記動画像における所定のタイミングより前又は後の範囲で、前記所定のイベントのタイミングを推定する、
請求項1に記載の情報処理方法。
【請求項7】
前記所定のイベントは、第1のイベント及び第2のイベントを含み、
前記推定ステップは、前記第1のイベントのタイミングを推定した後に、前記動画像における前記所定のタイミングとしての前記第1のイベントのタイミングより前又は後の範囲で前記第2のイベントのタイミングを推定する、
請求項6に記載の情報処理方法。
【請求項8】
前記所定のタイミングは、ゴルフクラブの速度の最大又は最小のタイミングである、
請求項6に記載の情報処理方法。
【請求項9】
前記所定のタイミングは、前記類似度が最小値を取るタイミングである、
請求項6に記載の情報処理方法。
【請求項10】
前記推定ステップでは、前記類似度が所定の閾値に対して相対的に小さい状態の期間の前又は後に隣接する所定期間内で前記所定のイベントのタイミングを推定する、
請求項1に記載の情報処理方法。
【請求項11】
前記所定のタイミングは、ユーザにより指定されるタイミングである、
請求項6に記載の情報処理方法。
【請求項12】
前記取得ステップでは、前記被写体の人の身長又は身体部位の長さで正規化したデータを取得し、
前記基準のデータは、前記取得ステップと同じ方法で正規化されたデータである、
請求項1に記載の情報処理方法。
【請求項13】
前記取得ステップでは、前記被写体の人の身長に相当する画像上の距離、前記被写体の人の所定の身体部位の長さに相当する画像上の距離、又はゴルフクラブの長さに相当する画像上の距離によって正規化されたデータを取得し、
前記基準のデータは、前記取得ステップと同じ方法で正規化されたデータである、
請求項1に記載の情報処理方法。
【請求項14】
前記取得ステップでは、複数の種類のデータを取得し、
前記推定ステップでは、前記複数の種類のデータの間での相対的な重みづけを考慮して、前記複数の種類のデータと、前記複数の種類のデータに対応する複数の種類の前記基準のデータとの類似度に基づき、前記動画像における前記所定のイベントのタイミングを推定する、
請求項1に記載の情報処理方法。
【請求項15】
前記所定のイベントは、複数あり、
前記複数の種類のデータの間での前記重みづけのパターンは、複数の前記所定のイベントごとに異なる、
請求項14に記載の情報処理方法。
【請求項16】
情報処理装置に、
動画像に含まれる複数の画像ごとに、被写体の人のゴルフのスイング動作に関する複数の特徴点であって、前記被写体の人の身体部位を表す特徴点、及びゴルフクラブの特徴点を含む複数の特徴点を抽出する抽出ステップと、
前記抽出ステップで抽出される複数の特徴点に基づき、前記複数の画像ごとの前記被写体の人及びゴルフクラブの動作を表すデータであって、前記被写体の人の身体部位とゴルフクラブとの位置及び速度の少なくとも一方に関するデータを含むデータを取得する取得ステップと、
前記複数の画像ごとの前記取得ステップで取得されるデータと、ゴルフのスイング動作における所定のイベントの発生時の人及びゴルフクラブの動作を表す基準のデータとの類似度に基づき、前記動画像における前記所定のイベントのタイミングを推定する推定ステップと、を実行させる、
プログラム。
【請求項17】
動画像に含まれる複数の画像ごとに、被写体の人のゴルフのスイング動作に関する複数の特徴点であって、前記被写体の人の身体部位を表す特徴点、及びゴルフクラブの特徴点を含む複数の特徴点を抽出する抽出部と、
前記抽出部により抽出される複数の特徴点に基づき、前記複数の画像ごとの前記被写体の人及びゴルフクラブの動作を表すデータであって、前記被写体の人の身体部位とゴルフクラブとの位置及び速度の少なくとも一方に関するデータを含むデータを取得する取得部と、
ゴルフのスイング動作における所定のイベントの発生時の人及びゴルフクラブの動作を表す基準のデータを記憶する記憶部と、
前記複数の画像ごとの前記取得部により取得されるデータと、前記基準のデータとの類似度に基づき、前記動画像における前記所定のイベントのタイミングを推定する推定部と、を備える、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理方法等に関する。
【背景技術】
【0002】
従来、動画像において、被写体の所定の動作(例えば、ゴルフのスイング動作)における所定のイベント(例えば、アドレス、トップ、インパクト等)のタイミングを推定する技術が開示されている(特許文献1~3参照)。
【0003】
特許文献1では、動画像の被写体の人やその人が所持する道具(例えば、ゴルフクラブ)の特徴点の位置や速度等のデータが特定の条件を満足する画像を抽出することにより、所定のイベントのタイミングを推定する方法が開示されている。
【0004】
特許文献2,3では、動画像を構成する各フレームの画像の特定の領域の画素値の変化に着目して所定のイベントのタイミングに相当する画像を推定する方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第6908312号公報
【特許文献2】特許第5935779号公報
【特許文献3】特許第6683874号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、所定の動作を行う人によって、所定の動作の形態にばらつきが生じうる。そのため、動画像のあるフレームの画像において、所定のイベントが発生しているにも関わらず、所定のイベントに対応する特定の条件を満足しない場合や特定の画像領域に所定の変化が生じないような場合も生じうる。その結果、所定のイベントの発生を適切に推定することができない可能性がある。
【0007】
そこで、上記課題に鑑み、所定の動作を行う人が映っている動画像から所定の動作に関する所定のイベントの発生のタイミングをより適切に推定することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本開示の一実施形態では、
情報処理装置が、動画像に含まれる複数の画像ごとに、被写体の人のゴルフのスイング動作に関する複数の特徴点であって、前記被写体の人の身体部位を表す特徴点、及びゴルフクラブの特徴点を含む複数の特徴点を抽出する抽出ステップと、
前記情報処理装置が、前記抽出ステップで抽出される複数の特徴点に基づき、前記複数の画像ごとの前記被写体の人及びゴルフクラブの動作を表すデータであって、前記被写体の人の身体部位とゴルフクラブの位置及び速度の少なくとも一方に関するデータを含むデータを取得する取得ステップと、
前記情報処理装置が、前記複数の画像ごとの前記取得ステップで取得されるデータと、ゴルフのスイング動作における所定のイベントの発生時の人及びゴルフクラブの動作を表す基準のデータとの類似度に基づき、前記動画像における前記所定のイベントのタイミングを推定する推定ステップと、を含む、
情報処理方法が提供される。
【0009】
また、本開示の他の実施形態では、
情報処理装置に、
動画像に含まれる複数の画像ごとに、被写体の人のゴルフのスイング動作に関する複数の特徴点であって、前記被写体の人の身体部位を表す特徴点、及びゴルフクラブの特徴点を含む複数の特徴点を抽出する抽出ステップと、
前記抽出ステップで抽出される複数の特徴点に基づき、前記複数の画像ごとの前記被写体の人及びゴルフクラブの動作を表すデータであって、前記被写体の人の身体部位とゴルフクラブとの位置及び速度の少なくとも一方に関するデータを含むデータを取得する取得ステップと、
前記複数の画像ごとの前記取得ステップで取得されるデータと、ゴルフのスイング動作における所定のイベントの発生時の人及びゴルフクラブの動作を表す基準のデータとの類似度に基づき、前記動画像における前記所定のイベントのタイミングを推定する推定ステップと、を実行させる、
プログラムが提供される。
【0010】
また、本開示の更に他の実施形態では、
動画像に含まれる複数の画像ごとに、被写体の人のゴルフのスイング動作に関する複数の特徴点であって、前記被写体の人の身体部位を表す特徴点、及びゴルフクラブの特徴点を含む複数の特徴点を抽出する抽出部と、
前記抽出部により抽出される複数の特徴点に基づき、前記複数の画像ごとの前記被写体の人及びゴルフクラブの動作を表すデータであって、前記被写体の人の身体部位とゴルフクラブとの位置及び速度の少なくとも一方に関するデータを含むデータを取得する取得部と、
ゴルフのスイング動作における所定のイベントの発生時の人及びゴルフクラブの動作を表す基準のデータを記憶する記憶部と、
前記複数の画像ごとの前記取得部により取得されるデータと、前記基準のデータとの類似度に基づき、前記動画像における前記所定のイベントのタイミングを推定する推定部と、を備える、
情報処理装置が提供される。
【発明の効果】
【0011】
上述の実施形態によれば、ゴルフのスイング動作を行う人及びゴルフクラブが映っている動画像からゴルフのスイング動作に関する所定のイベントの発生のタイミングをより適切に推定することができる。
【図面の簡単な説明】
【0012】
【
図1】スイング診断システムの一例を示す図である。
【
図2】ユーザ端末のハードウェア構成の一例を示す図である。
【
図3】情報処理装置のハードウェア構成の一例を示す図である。
【
図4】スイング診断システムの機能構成の第1例を示す機能ブロック図である。
【
図5】ユーザによるスイング動作の様子を表す動画像の一例を示す図である。
【
図6】ユーザによるスイング動作の様子を表す動画像に含まれる複数のフレームごとの特徴点を説明する図である。
【
図7】動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第1例を示す図である。
【
図8】動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第2例を示す図である。
【
図9】動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第3例を示す図である。
【
図10】動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第4例を示す図である。
【
図11】動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第5例を示す図である。
【
図12】ユーザによるゴルフのスイング動作におけるトップのタイミングの画像の具体例を示す図である。
【
図13】比較例に係る、動画像上のゴルフのスイング動作における所定のイベントタイミングの推定方法を示す図である。
【
図14】動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第6例を示す図である。
【
図15】ユーザによるゴルフのスイング動作におけるインパクトの直前のタイミング及びインパクトのタイミングの画像の具体例を示す図である。
【
図16】ユーザによるゴルフのスイング動作におけるトップのタイミングの画像の具体例を示す図である。
【
図17】スイング診断システムの動作の第1例を示すシーケンス図である。
【
図18】スイング診断システムの機能構成の第2例を示す機能ブロック図である。
【
図19】スイング診断システムの動作の第2例を示すシーケンス図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して実施形態について説明する。
【0014】
[スイング診断システムの概要]
まず、
図1を参照して、本実施形態に係るスイング診断システム1の概要について説明をする。
【0015】
図1は、スイング診断システム1の一例を示す図である。
【0016】
図1に示すように、スイング診断システム1は、カメラ100と、ユーザ端末200と、情報処理装置300とを含む。
【0017】
スイング診断システム1は、情報処理装置300において、カメラ100で取得される、ユーザによるゴルフのスイング動作の様子が収められた動画像データに基づき、ユーザのゴルフのスイング動作に関する診断(以下、「スイング診断」)を行う。そして、スイング診断システム1は、ユーザ端末200を通じて、スイング診断の診断結果をユーザに提供する。
【0018】
カメラ100は、ユーザによるゴルフのスイング動作を撮像し、スイング動作の様子を表す動画像を取得する。
【0019】
図1では、カメラ100とユーザ端末200とは別に描画されるが、カメラ100は、ユーザ端末200に内蔵されてもよいし、ユーザ端末200と別に設けられてもよい。後者の場合、カメラ100の出力(動画像のデータ)は、通信によりユーザ端末200に取り込まれてもよいし、後述の記録媒体201Aを通じてユーザ端末200に取り込まれてもよい。
【0020】
ユーザ端末200は、スイング診断を受けるユーザが利用する端末装置である。ユーザ端末200は、例えば、ゴルフのレッスン施設やショップ等に配置される端末装置であってもよいし、ユーザが所持する端末装置であってもよい。
【0021】
ユーザ端末200は、例えば、可搬型の端末装置、即ち、携帯端末である。携帯端末は、例えば、スマートフォン、タブレット端末、ラップトップ型のPC(Personal Computer)等である。また、ユーザ端末200は、定置型の端末装置であってもよい。定置型の端末装置は、例えば、デスクトップ型のPCである。
【0022】
ユーザ端末200は、所定の通信回線を通じて、情報処理装置300と通信可能に接続される。所定の通信回線は、例えば、ローカルネットワーク(LAN:Local Area Network)を含む。また、所定の通信回線は、広域ネットワーク(WAN:Wide Area Network)を含んでもよい。広域ネットワークは、例えば、インターネット網を含む。また、広域ネットワークは、基地局を末端とする移動体通信網や通信衛星を利用する衛星通信網を含んでもよい。また、所定の通信回線は、例えば、WiFi、ブルートゥース(登録商標)、ローカル5G(5th Generation)等の所定の無線通信規格を用いる近距離通信回線であってもよい。
【0023】
ユーザ端末200は、ユーザによるゴルフのスイング動作の様子を表す動画像をカメラ100から取り込み、情報処理装置300に送信する。そして、ユーザ端末200は、情報処理装置300から返信されるスイング診断の結果を、後述の表示装置208を通じてユーザに提示する。
【0024】
情報処理装置300は、ユーザ端末200から受信される、ユーザによるゴルフのスイング動作の様子を表す動画像に基づき、スイング診断を行い、スイング診断の結果をユーザ端末200に返信する。
【0025】
情報処理装置300は、例えば、処理能力が比較的高いサーバ装置である。サーバ装置は、クラウドサーバやオンプレミスサーバであってもよいし、エッジサーバであってもよい。また、情報処理装置は、スイング診断のための必要な処理能力によっては、サーバ装置よりも処理能力が低い端末装置であってもよい。端末装置は、定置型の端末装置であってもよいし、可搬型の端末装置(携帯端末)であってもよい。
【0026】
[スイング診断システムのハードウェア構成]
次に、
図1に加えて、
図2、
図3を参照して、スイング診断システム1(ユーザ端末200、情報処理装置300)のハードウェア構成について説明する。
【0027】
<ユーザ端末のハードウェア構成>
図2は、ユーザ端末200のハードウェア構成の一例を示すブロック図である。
【0028】
ユーザ端末200の機能は、任意のハードウェア或いは任意のハードウェア及びソフトウェアの組み合わせ等により実現される。例えば、
図2に示すように、ユーザ端末200は、バスB2で接続される、外部インタフェース201、補助記憶装置202、メモリ装置203、CPU204、通信インタフェース206、入力装置207、表示装置208、及び音出力装置209を含む。また、上述の如く、カメラ100がユーザ端末200に内蔵される場合、カメラ100は、他の構成要素と同様に、バスB2に接続されてよい。
【0029】
外部インタフェース201は、記録媒体201Aからデータの読み取りや記録媒体201Aへのデータの書き込みのためのインタフェースとして機能する。記録媒体201Aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、SDメモリカード、USB(Universal Serial Bus)メモリ等が含まれる。これにより、ユーザ端末200は、記録媒体201Aを通じて、処理で利用する各種データを読み込み、補助記憶装置202に格納したり、各種機能を実現するプログラムをインストールしたりすることができる。
【0030】
尚、ユーザ端末200は、通信インタフェース206を通じて、外部装置から処理で利用する各種データやプログラムを取得してもよい。
【0031】
補助記憶装置202は、インストールされた各種プログラムを格納すると共に、各種処理に必要なファイルやデータ等を格納する。補助記憶装置202は、例えば、HDD(Hard Disc Drive)やSSD(Solid State Disc)やフラッシュメモリ等を含む。
【0032】
メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。メモリ装置203は、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)を含む。
【0033】
CPU204は、補助記憶装置202からメモリ装置203にロードされた各種プログラムを実行し、プログラムに従ってユーザ端末200に関する各種機能を実現する。
【0034】
通信インタフェース206は、外部機器と通信可能に接続するためのインタフェースとして用いられる。これにより、ユーザ端末200は、通信インタフェース206を通じて、カメラ100から動画像のデータを取得することができる。また、ユーザ端末200は、通信インタフェース206を通じて、例えば、情報処理装置300等の外部機器と通信することができる。また、通信インタフェース206は、接続される機器との間の通信方式等によって、複数の種類の通信インタフェースを有してもよい。
【0035】
入力装置207は、ユーザから各種入力を受け付ける。
【0036】
入力装置207は、例えば、ユーザからの機械的な操作入力を受け付ける形態の入力装置(以下、「操作入力装置」)を含む。操作入力装置は、例えば、ボタン、トグル、レバー、表示装置208に実装されるタッチパネル、表示装置208とは別に設けられるタッチパッド、キーボード、マウス等を含む。
【0037】
また、入力装置207は、ユーザからの音声入力を受付可能な音声入力装置を含んでもよい。音声入力装置は、例えば、ユーザの音声を集音可能なマイクロフォンを含む。
【0038】
また、入力装置207は、ユーザからのジェスチャ入力を受付可能なジェスチャ入力装置を含んでもよい。ジェスチャ入力装置は、例えば、ユーザのジェスチャの様子を撮像可能なカメラを含む。
【0039】
また、入力装置207は、ユーザからの生体入力を受付可能な生体入力装置を含んでもよい。生体入力装置は、例えば、ユーザの指紋や虹彩に関する情報を内包する画像データを取得可能なカメラを含む。
【0040】
表示装置208は、ユーザに向けて、情報画面や操作画面を表示する。表示装置208は、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイ等である。
【0041】
音出力装置209は、ユーザ端末200のユーザに向けて、音によって各種情報を伝える。音出力装置209は、例えば、ブザー、アラーム、スピーカ等である。
【0042】
<情報処理装置のハードウェア構成>
図3は、情報処理装置300のハードウェア構成の一例を示すブロック図である。
【0043】
情報処理装置300の機能は、任意のハードウェア或いは任意のハードウェア及びソフトウェアの組み合わせ等により実現される。例えば、
図3に示すように、情報処理装置300は、バスB3で接続される、外部インタフェース301、補助記憶装置302、メモリ装置303、CPU304、高速演算装置305、通信インタフェース306、入力装置307、表示装置308、及び音出力装置309を含む。
【0044】
外部インタフェース301は、記録媒体301Aからデータの読み取りや記録媒体301Aへのデータの書き込みのためのインタフェースとして機能する。記録媒体301Aには、例えば、フレキシブルディスク、CD、DVD、BD、SDメモリカード、USBメモリ等が含まれる。これにより、情報処理装置300は、記録媒体301Aを通じて、処理で利用する各種データを読み込み、補助記憶装置302に格納したり、各種機能を実現するプログラムをインストールしたりすることができる。
【0045】
尚、情報処理装置300は、通信インタフェース306を通じて、外部装置から処理で利用する各種データやプログラムを取得してもよい。
【0046】
補助記憶装置302は、インストールされた各種プログラムを格納すると共に、各種処理に必要なファイルやデータ等を格納する。補助記憶装置302は、例えば、HDDやSSDやフラッシュメモリ等を含む。
【0047】
メモリ装置303は、プログラムの起動指示があった場合に、補助記憶装置302からプログラムを読み出して格納する。メモリ装置303は、例えば、DRAMやSRAMを含む。
【0048】
CPU304は、補助記憶装置302からメモリ装置303にロードされた各種プログラムを実行し、プログラムに従って情報処理装置300に関する各種機能を実現する。
【0049】
高速演算装置305は、CPU304と連動し、CPU304に対して相対的に高い速度で演算処理を行う。高速演算装置305は、例えば、GPU(Graphics Processing Unit)やASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等を含む。
【0050】
尚、高速演算装置305は、必要な演算処理の速度によっては、省略されてもよい。
【0051】
通信インタフェース306は、外部機器と通信可能に接続するためのインタフェースとして用いられる。これにより、情報処理装置300は、通信インタフェース306を通じて、例えば、ユーザ端末200等の外部機器と通信することができる。また、通信インタフェース306は、接続される機器との間の通信方式等によって、複数の種類の通信インタフェースを有してもよい。
【0052】
入力装置307は、ユーザから各種入力を受け付ける。
【0053】
入力装置307は、例えば、ユーザからの機械的な操作入力を受け付ける形態の操作入力装置を含む。操作入力装置は、例えば、ボタン、トグル、レバー、表示装置308に実装されるタッチパネル、表示装置308とは別に設けられるタッチパッド、キーボード、マウス等を含む。
【0054】
また、入力装置307は、例えば、ユーザからの音声入力を受付可能な音声入力装置を含む。音声入力装置は、例えば、ユーザの音声を集音可能なマイクロフォンを含む。
【0055】
また、入力装置307は、例えば、ユーザからのジェスチャ入力を受付可能なジェスチャ入力装置を含む。ジェスチャ入力装置は、例えば、ユーザのジェスチャの様子を撮像可能なカメラを含む。
【0056】
また、入力装置307は、例えば、ユーザからの生体入力を受付可能な生体入力装置を含む。生体入力装置は、例えば、ユーザの指紋や虹彩に関する情報を内包する画像データを取得可能なカメラを含む。
【0057】
表示装置308は、ユーザに向けて、情報画面や操作画面を表示する。表示装置308は、例えば、液晶ディスプレイや有機ELディスプレイ等である。
【0058】
音出力装置309は、情報処理装置300のユーザに向けて、音によって各種情報を伝える。音出力装置309は、例えば、ブザー、アラーム、スピーカ等である。
【0059】
[スイング診断システムの機能構成の第1例]
次に、
図4~
図9を参照して、スイング診断システム1の機能構成の第1例について説明する。
【0060】
図4は、スイング診断システムの機能構成の第1例を示す機能ブロック図である。
図5は、ユーザによるスイング動作の様子を表す動画像の一例(動画像500)を示す図である。
図6は、ユーザによるスイング動作の様子を表す動画像に含まれる複数のフレームごとの特徴点を説明する図である。
図7は、動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第1例を示す図である。
図8は、動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第2例を示す図である。
図9は、動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第3例を示す図である。
図10は、動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第4例を示す図である。
図11は、動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第5例を示す図である。
図12は、ユーザによるゴルフのスイング動作におけるトップのタイミングの画像の具体例を示す図である。
図13は、比較例に係る、動画像上のゴルフのスイング動作における所定のイベントタイミングの推定方法を示す図である。具体的には、
図13は、所定のイベントに対応する基準動作データを表す
図13Aと、ユーザA及びユーザBのそれぞれのゴルフのスイング動作における所定のイベントのタイミングでの動作データを表す
図13B及び
図13Cとを含む。
図14は、動画像上のゴルフのスイング動作における所定のイベントのタイミングの推定方法の第6例を示す図である。具体的には、
図14は、所定のイベントに対応する基準動作データを表す
図14Aと、ユーザA及びユーザBのそれぞれのゴルフのスイング動作における所定のイベントのタイミングでの動作データを表す
図14B及び
図14Cとを含む。
図15は、ユーザによるゴルフのスイング動作におけるインパクトの直前のタイミング及びインパクトのタイミングの画像の具体例である。具体的には、
図15は、ユーザによるゴルフのスイング動作を含む動画像におけるインパクトに対応するタイミングの画像を表す
図15Bと、その1フレーム前の画像を表す
図15Aとを含む。
図16は、ユーザによるゴルフのスイング動作におけるトップのタイミングの画像の具体例を示す図である。
【0061】
図5では、動画像500の全てのフレームのうちのフレーム501~508が抜粋して示される。フレーム501は、ユーザによるゴルフのスイング動作におけるアドレスの状態を表している。フレーム502は、ユーザによるゴルフのスイング動作におけるテイクバックの状態を表している。フレーム503は、ユーザによるゴルフのスイング動作におけるバックスイングの状態を表している。フレーム504は、ユーザによるゴルフのスイング動作におけるトップの状態を表している。フレーム505は、ユーザによるゴルフのスイング動作におけるハーフウェイダウンの状態を表している。フレーム506は、ユーザによるゴルフのスイング動作におけるインパクトの状態を表している。フレーム507は、ユーザによるゴルフのスイング動作におけるフォローの状態を表している。フレーム508は、ユーザによるゴルフのスイング動作におけるフィニッシュの状態を表している。
【0062】
また、
図6では、ユーザによるゴルフのスイング動作を表す動画像の複数のフレームごとの特徴点(図中の黒丸)のデータ600が模式的に視覚化して表されている。
図6では、動画像500の全てのフレームのうちの一部(フレーム501~508)のフレームごとの特徴点のデータ601~608が抜粋して示される。データ601は、ユーザによるゴルフのスイング動作におけるアドレスの状態のフレーム501に対応する特徴点のデータを表す。データ602は、ユーザによるゴルフのスイング動作におけるテイクバックの状態のフレーム502に対応する特徴点のデータを表す。データ603は、ユーザによるゴルフのスイング動作におけるバックスイングの状態のフレーム503に対応する特徴点のデータを表す。データ604は、ユーザによるゴルフのスイング動作におけるトップの状態のフレーム504に対応する特徴点のデータを表す。データ605は、ユーザによるゴルフのスイング動作におけるハーフウェイダウンの状態のフレーム505に対応する特徴点のデータを表す。データ606は、ユーザによるゴルフのスイング動作におけるインパクトの状態のフレーム506に対応する特徴点のデータを表す。データ607は、ユーザによるゴルフのスイング動作におけるフォローの状態のフレーム507に対応する特徴点のデータを表す。データ608は、ユーザによるゴルフのスイング動作におけるフィニッシュの状態のフレーム508に対応する特徴点のデータを表す。
【0063】
図4に示すように、ユーザ端末200は、アプリ画面表示処理部2001と、動画像データ取得部2002と、動画像データ送信部2003と、診断結果データ取得部2004とを含む。これらの機能は、例えば、補助記憶装置202にインストールされるアプリケーションプログラム(以下、便宜的に「スイング診断アプリ」)をメモリ装置203にロードしCPU204で実行することにより実現される。
【0064】
アプリ画面表示処理部2001は、スイング診断アプリに関する画面(以下、「アプリ画面」)を表示装置208に表示させる。
【0065】
動画像データ取得部2002は、カメラ100からユーザによるゴルフのスイング動作の様子を表す動画像のデータを取得する。例えば、動画像データ取得部2002は、入力装置207を用いた所定のアプリ画面上でのユーザからの入力に応じて、カメラ100からユーザによるゴルフのスイング動作の様子を表す動画像のデータを取得する。この際、動画像データ取得部2002は、カメラ100で既に撮像済みの動画像を取得してもよいし、カメラ100により取得される最新の動画像をリアルタイムに取得してもよい。
【0066】
動画像データ送信部2003は、動画像データ取得部2002により取得される、ユーザによるゴルフのスイング動作の様子を表す動画像のデータを、通信インタフェース206を通じて情報処理装置300に送信する。例えば、動画像データ送信部2003は、入力装置207を用いた所定のアプリ画面上でのユーザからの入力に応じて、カメラ100から取得した動画像データを情報処理装置300に送信する。
【0067】
診断結果データ取得部2004は、情報処理装置300から受信される、スイング診断の結果のデータを含む返信データを取得する。スイング診断の結果を含む返信データの内容は、アプリ画面表示処理部2001によって、表示装置208に表示される。これにより、ユーザは、スイング診断の結果を含む返信データの内容を確認することができる。
【0068】
図4に示すように、情報処理装置300は、動画像データ取得部3001と、特徴点抽出部3002と、動作データ取得部3003と、類似度取得部3004と、イベントタイミング推定部3005と、スイング診断部3006とを含む。これらの機能は、例えば、補助記憶装置302にインストールされるプログラムをメモリ装置303にロードしCPU304で実行することにより実現される。また、情報処理装置300は、動画像データ記憶部3001Aと、特徴点データ記憶部3002Aと、動作データ記憶部3003Aと、類似度データ記憶部3004Aと、基準動作データ記憶部3004Xと、イベントタイミングデータ記憶部3005Aとを含む。これらの機能は、例えば、補助記憶装置302やメモリ装置303に規定される記憶領域により実現される。
【0069】
動画像データ取得部3001は、ユーザ端末200から受信される、ユーザによるゴルフのスイング動作の様子を表す動画像のデータを取得する(
図5参照)。動画像データ取得部3001により取得されたデータは、動画像データ記憶部3001Aに格納される。
【0070】
特徴点抽出部3002は、動画像データ取得部3001により取得された動画像のデータを動画像データ記憶部3001Aから読み出し、動画像の全てのフレームごとに、被写体のユーザのスイング動作に関する複数の特徴点を抽出する(
図6参照)。
【0071】
複数の特徴点には、フレームの画像上の被写体のユーザの身体部位を表す特徴点(以下、「身体的特徴点」)が含まれる。例えば、
図6に示すように、身体的特徴点は、ユーザの骨格における関節位置を表し、複数の特徴点に含まれる身体的特徴点には、頭、肩、肘、手首、腰、膝、足首等に対応する画像上の点が含まれる。
【0072】
また、複数の特徴点には、クラブの部位を表す特徴点が含まれる。
図6に示すように、クラブの部位に関する特徴点には、クラブのヘッドに相当する特徴点が含まれる。
【0073】
また、複数の特徴点には、ゴルフボールを表す特徴点が含まれてもよい。
【0074】
特徴点抽出部3002の機能は、例えば、既知のボーン検出技術等の画像認識技術が適用された画像認識エンジンによって実現される。
【0075】
特徴点抽出部3002により抽出された、フレームごとの特徴点に関するデータは、特徴点データ記憶部3002Aに格納される。特徴点に関するデータには、例えば、特徴点ごとの種別を表すデータ、特徴点の画像上の位置を表すデータ等が含まれる。
【0076】
動作データ取得部3003は、特徴点抽出部3002により抽出された、動画像のフレームごとの特徴点に関するデータを特徴点データ記憶部3002Aから読み出し、フレームごとに、被写体のユーザの動作を表すデータ(以下、「動作データ」)を算出し取得する。動作データには、例えば、被写体のユーザ自身の動作を表すデータやユーザが保持するゴルフクラブの動作を表すデータが含まれる。また、動作データには、ゴルフボールの動作を表すデータが含まれてもよい。動作データ取得部3003は、1種類の動作データを取得してもよいし、複数の種類の動作データを取得してもよい。
【0077】
動作データ取得部3003の取得対象の動作データには、ユーザの身体部位の動作を表すデータが含まれる。ユーザの身体部位の動作を表すデータには、例えば、ユーザの対象の身体部位の関節位置を表すデータやユーザの対象の身体部位の関節角度を表すデータが含まれる。また、ユーザの身体部位の動作を表すデータには、ユーザの対象の身体部位の動作速度や動作方向を表すデータが含まれてもよい。対象の身体部位は、1つであってもよいし、複数であってもよい。
【0078】
また、動作データ取得部3003の取得対象の動作データには、ゴルフクラブの動作を表すデータが含まれる。例えば、ゴルフクラブの動作を表すデータには、ゴルフクラブのヘッドの位置を表すデータやゴルフクラブのシャフトの姿勢角度を表すデータが含まれる。また、ゴルフクラブの動作を表すデータには、ゴルフクラブのヘッドの動作速度や動作方向を表すデータが含まれてもよい。
【0079】
また、動作データ取得部3003の取得対象の動作データには、ゴルフボールの位置、動作速度、動作方向等を表すデータが含まれてもよい。
【0080】
動作データ取得部3003は、例えば、画像上の絶対的な位置や姿勢ではなく、複数の特徴点の間での相対的な位置や姿勢に基づき、動作データを算出する。これにより、動画像の画角の違いによって、動作データに大きな違いが生じるような事態を抑制することができる。そのため、例えば、可搬型のユーザ端末200に内蔵されるカメラ100を用いて、ユーザ自身が動画像を撮影する場合のように、動画像の画角に大きなばらつきが生じる状況でも、ゴルフのスイング動作におけるイベントの推定精度をより高めることができる。
【0081】
また、動作データ取得部3003は、動画像の被写体であるユーザの実際の身長や所定の身体部位の長さ等によって正規化した動作データを算出し取得してもよい。所定の身体部位は、例えば、腕や脚等である。また、動作データ取得部3003は、これに代えて或いは加えて、動画像の被写体であるユーザのフレーム画像上での身長に相当する距離や所定の身体部位に相当する距離によって正規化した動作データを算出し取得してもよい。これにより、動画像の被写体のユーザの身体的な大きさの差異によって、動作データに大きな違いが生じるような事態を抑制することができる。そのため、ゴルフのスイング動作におけるイベントの推定精度をより高めることができる。
【0082】
動作データ取得部3003により取得された、動画像のフレームごとの動作データは、動作データ記憶部3003Aに格納される。
【0083】
類似度取得部3004は、動画像のフレームごとに、動作データ取得部3003により取得された動作データと、基準動作データ記憶部3004Xに予め格納される基準動作データとの類似度を算出し取得する。
【0084】
基準動作データは、ゴルフのスイング動作における所定のイベントの発生時の人の動作を表す、基準となる動作データであり、動作データ取得部3003により取得される動作データと同じ種類の動作データである。動作データ取得部3003により取得される動作データが複数の種類である場合、基準動作データは、複数の種類の動作データのそれぞれに対応する複数の種類の基準動作データが予め準備される。ゴルフのスイング動作における所定のイベント(以下、単に「所定のイベント」)は、例えば、アドレス、テイクバック、バックスイング、トップ、ハーフウェイダウン、インパクト、フォロー、及びフィニッシュ等である。基準動作データが予め準備される対象の所定のイベントは、後述のイベントタイミング推定部3005による推定対象の所定のイベントである。イベントタイミング推定部3005による推定対象の所定のイベントは、これら(アドレス、テイクバック、バックスイング、トップ、ハーフウェイダウン、インパクト、フォロー、及びフィニッシュ等)の全部であってもよいし、一部であってもよい。
【0085】
イベントタイミング推定部3005による推定対象の所定のイベントが複数ある場合、類似度取得部3004は、複数の所定のイベントごとに、動画像のフレームのそれぞれにおける類似度を算出する。また、イベントタイミング推定部3005による推定対象の所定のイベントが複数ある場合、類似度取得部3004は、例えば、複数の所定のイベントごとに、同じ種類の動作データを用いて、動作データと基準動作データとの類似度を取得する。また、類似度取得部3004は、複数の所定のイベントのうちの少なくとも一部の間で、異なる種類の動作データを用いて、動作データと基準動作データとの類似度を取得してもよい。複数の種類の動作データが用いられる場合、異なる種類の動作データには、所定のイベントごとに利用される全ての種類の動作データが異なることと、全ての種類の動作データのうちの一部の動作データの種類が異なることとが含まれうる。
【0086】
基準動作データは、例えば、所定の被験者によるゴルフのスイング動作の動画像から抽出された、所定のイベントに相当するフレーム画像に対して、上述の特徴点抽出部3002及び動作データ取得部3003と同様の処理が施されることにより取得される。
【0087】
所定の被験者は、1人であってもよいし、複数人であってもよい。後者の場合、基準動作データは、被験者ごとの動作データの平均であってよい。
【0088】
動作データ取得部3003により取得された動作データと基準動作データとの類似度は、例えば、対象の2つのデータの相関値(相関係数)である。また、動作データ取得部3003により取得された動作データと基準動作データとの類似度は、対象の2つのデータの同じ種類のデータ同士の差分であってもよく、複数の種類の動作データが用いられる場合、その差分の合計値であってもよい。また、複数の種類の動作データが用いられる場合、類似度取得部3004は、複数の種類の動作データの間に相対的な重みづけを設定して、動作データと基準動作データとの類似度を取得してもよい(
図14参照)。この際、複数の種類の基準動作データの間にも同じパターンの相対的な重みづけが設定される(
図14参照)。また、イベントタイミング推定部3005による推定対象の所定のイベントが複数あり、且つ、複数の所定のイベントの間で複数の種類且つ全て同じ種類の動作データが利用される場合、類似度取得部3004は、複数の所定のイベントごとに、複数の種類の動作データの間での相対的な重みづけのパターンを異ならせてもよい。
【0089】
類似度取得部3004により算出された類似度のデータは、類似度データ記憶部3004Aに格納される。
【0090】
イベントタイミング推定部3005は、所定のイベントについて、動画像のフレームごとの類似度に基づき、動画像の最初のフレームから最後のフレームまでの間の時間の中から所定のイベントのタイミングを推定する。例えば、所定のイベントが複数ある場合、イベントタイミング推定部3005は、所定のイベントごとに、動画像のフレームごとの類似度に基づき、動画像の最初のフレームから最後のフレームまでの間の時間の中から所定のイベントのタイミングを推定する。
【0091】
例えば、
図7に示すように、イベントタイミング推定部3005は、類似度が最大値を取る時刻t1を所定のイベントのタイミングと推定する。この際、類似度の最大値とは、時系列での類似度の離散値の中での最大値であってもよいし、時系列での類似度の離散値から近似される曲線おける最大値であってもよい。後者の場合、動画像の隣接する2つのフレームのそれぞれに対応する時刻の間の時刻が所定のイベントのタイミングとして推定される場合がある。
【0092】
また、イベントタイミング推定部3005は、推定対象の所定のイベントが複数ある場合、複数のイベントの間の時間的な前後関係を考慮して、所定のイベントのタイミングを推定してもよい。
【0093】
例えば、
図8に示すように、イベントタイミング推定部3005は、トップのタイミング(図中の破線の時刻)よりも後の範囲で、インパクトに対応する類似度が最大値を取る時刻t22をインパクトのタイミングと推定する。トップのタイミングは、
図7の場合と同様の方法、即ち、動画像の最初のフレームから最後のフレームまでの全範囲を対象として類似度が最大値を取るタイミングを探索する方法によって予め推定される。
【0094】
インパクトのタイミングにおけるユーザの身体部位やゴルフクラブの位置及びシャフトの姿勢状態は、トップより前のアドレスのタイミングにおけるユーザの身体部位やゴルフクラブの位置及びシャフトの姿勢状態と似通っている。そのため、動画像の最初のフレームから最後のフレームまでの全範囲を対象として、インパクトに対応する類似度が最大値を取るタイミングが探索されると、アドレスに対応する時刻t21がインパクトのタイミングと誤って推定される可能性がある。
【0095】
これに対して、本例の場合、イベントタイミング推定部3005は、トップのタイミングよりも後の範囲で、インパクトに対応する類似度が最大値を取るタイミングを探索する。これにより、アドレスのタイミングがインパクトのタイミングと誤って推定される事態の発生を抑制し、インパクトのタイミングの推定精度を向上させることができる。また、類似度の最大値の探索範囲が制限されることから、インパクトのタイミングの推定処理に要する時間を短縮することができる。
【0096】
また、イベントタイミング推定部3005は、トップのタイミングよりも後の範囲で、ハーフウェイダウンやインパクトやフォローやフィニッシュに対応する類似度が最大となるタイミングを探索してもよい。これにより、インパクトのタイミングの場合と同様、ハーフウェイダウンやインパクトやフォローやフィニッシュのタイミングの推定精度を向上させることができる。また、類似度の最大値の探索範囲が制限されることから、ハーフウェイダウンやインパクトやフォローやフィニッシュのタイミングの推定処理に要する時間を短縮することができる。
【0097】
また、イベントタイミング推定部3005は、トップのタイミングより前の範囲で、アドレスやテイクバックやバックスイングに対応する類似度が最大値を取るタイミングを探索してもよい。これにより、トップより後のインパクトやハーフウェイダウンのタイミングがアドレスやテイクバックやバックスイングのタイミングとして誤って推定されるような事態の発生を抑制することができる。そのため、アドレスやテイクバックやバックスイングのタイミングの推定精度を向上させることができる。また、類似度の最大値の探索範囲が制限されることから、アドレスやテイクバックやバックスイングのタイミングの推定処理に要する時間を短縮することができる。
【0098】
このように、イベントタイミング推定部3005は、最初に、動画像の最初のフレームから最後のフレームまでの全範囲でトップに対応する類似度が最大値を取るタイミングを探索することにより、トップのタイミングを推定してよい。そして、イベントタイミング推定部3005は、トップのタイミングより前の範囲で類似度が最大値を取るタイミングを探索することにより、アドレスやテイクバックやバックスイングのタイミングを推定してよい。また、イベントタイミング推定部3005は、トップのタイミングより後の範囲で類似度が最大値を取るタイミングを探索することにより、ハーフウェイダウンやインパクトやフォローやフィニッシュのタイミングを推定してよい。アドレスやテイクバックやバックスイングのタイミングを推定する処理と、ハーフウェイダウンやインパクトやフォローやフィニッシュのタイミングを推定する処理との前後関係は任意であってよく、それぞれが並列して処理されてもよい。
【0099】
また、イベントタイミング推定部3005は、動画像の時間軸での類似度の時系列での変化の傾向を考慮して、所定のイベントのタイミングを推定してもよい。
【0100】
例えば、
図8に示すように、インパクトに対応する類似度は、トップのタイミング(図中の破線の時刻)付近で最小値を取る。そのため、イベントタイミング推定部3005は、インパクトに対応する類似度が最小のタイミングより後の範囲で、インパクトに対応する類似度が最大となるタイミングを探索してもよい。これにより、インパクトのタイミングの推定精度を向上させることができる。また、イベントタイミング推定部3005は、トップのタイミングを推定するのと並行して、インパクトのタイミングを推定することができる。そのため、所定のイベントのタイミングの推定処理に要する時間を短縮することができる。
【0101】
また、例えば、
図9に示すように、アドレスに対応する類似度は、アドレスのタイミング(図中の実線の枠参照)、即ち、クラブがテイクバックへ動き出す直前のタイミングよりもずっと前から相対的に高い状態を維持する場合がある(図中の破線の枠参照)。ユーザは、アドレスよりも前のタイミングからアドレスとほとんど同じ姿勢の状態を維持する可能性が高いからである。そのため、動画像の最初のフレームから最後のフレームまでの全範囲を対象として、アドレスに対応する類似度が最大値を取るタイミングが探索されると、アドレスよりも前のタイミングをアドレスのタイミングと誤って推定する可能性がある。
【0102】
これに対して、本例では、イベントタイミング推定部3005は、アドレスに対応する類似度が所定の閾値S1thに対して相対的に小さくなった時刻t3以前の所定の期間T1の範囲で、アドレスに対応する類似度が最大値を取るタイミングを探索する。閾値S1thに対して相対的に小さくなった状態は、閾値S1th以下になった状態であってもよいし、閾値S1thより小さくなった状態であってもよい。そして、イベントタイミング推定部3005は、その範囲でアドレスに対応する類似度が最大値を取るタイミングをアドレスのタイミングであると推定する。これにより、閾値S1th及び期間T1が適宜設定されることによって、スイング動作が開始される直前のタイミングをアドレスのタイミングとして適切に推定することができる。そのため、アドレスのタイミングの推定精度を向上させることができる。
【0103】
また、例えば、テイクバックに対応する類似度は、アドレスより前の時点で最大値を取る可能性がある。ユーザは、アドレスの前にテイクバックの位置までゴルフのクラブを動かす形の予備動作を行う場合があるからである。そのため、動画像の最初のフレームから最後のフレームまでの全範囲を対象として、テイクバックに対応する類似度が最大値を取るタイミングが探索されると、アドレスよりも前のタイミングがテイクバックのタイミングと誤って推定される可能性がある。
【0104】
これに対して、イベントタイミング推定部3005は、テイクバックに対応する類似度が所定の閾値S2thに対して相対的に小さくなったタイミング以前の所定の期間T2で、テイクバックに対応する類似度が最大値を取るタイミングを探索してよい。そして、イベントタイミング推定部3005は、その範囲でテイクバックに対応する類似度が最大値を取るタイミングをテイクバックのタイミングであると推定する。これにより、閾値S2th及び期間T2が適宜設定されることによって、テイクバックのタイミングを超えて、テイクバックに対応する類似度が大きく低下するタイミングから遡って、テイクバックのタイミングを適切に推定することができる。そのため、テイクバックのタイミングの推定精度を向上させることができる。
【0105】
また、例えば、
図10に示すように、インパクトに対応する類似度は、アドレスのタイミング及びアドレスの直前の期間(図中の破線の枠参照)でも相対的に高い状態を維持する可能性がある。ゴルフのスイング動作において、アドレス及びインパクトは、ユーザの姿勢やゴルフクラブのヘッドの位置及びシャフトの姿勢が似通っているからである。そのため、動画像の最初のフレームから最後のフレームまでの全範囲を対象として、インパクトに対応する類似度が最大値を取るタイミングが探索されると、アドレスやアドレスよりも前のタイミングがインパクトのタイミングと誤って推定される可能性がある。
【0106】
これに対して、本例では、イベントタイミング推定部3005は、インパクトに対応する類似度が所定の閾値S3thに対して相対的に大きくなった時刻t4以降の所定の期間T3で、インパクトに対応する類似度が最大値を取るタイミングを探索する。閾値S3thに対して相対的に大きくなった状態は、閾値S3th以上になった状態であってもよいし、閾値S3thより大きくなった状態であってもよい。そして、イベントタイミング推定部3005は、その範囲でインパクトに対応する類似度が最大値を取るタイミング(図中の実線の枠参照)をインパクトのタイミングであると推定する。これにより、閾値S3th及び期間T3が適宜設定されることによって、アドレスのタイミングを超えて類似度が低下した後に再び類似度が上昇するタイミングを起点にして、インパクトのタイミングを適切に推定することができる。そのため、インパクトのタイミングの推定精度を向上させることができる。
【0107】
また、例えば、
図11に示すように、フィニッシュに対応する類似度は、フィニッシュのタイミング(図中の実線の枠参照)よりも後の期間(図中の破線の枠参照)でも相対的に高い状態を維持する可能性がある。ゴルフのスイング動作において、ユーザは、フィニッシュのタイミングの後も、同じ姿勢状態を維持する場合があるからである。そのため、動画像の最初のフレームから最後のフレームまでの全範囲を対象として、フィニッシュに対応する類似度が最大値を取るタイミングが探索されると、フィニッシュよりも後のタイミングがフィニッシュのタイミングと誤って推定される可能性がある。
【0108】
これに対して、本例では、イベントタイミング推定部3005は、フィニッシュに対応する類似度が所定の閾値S4thに対して相対的に大きくなった時刻t5以降の所定の期間T4の範囲で、フィニッシュに対応する類似度が最大値を取るタイミングを探索する。そして、イベントタイミング推定部3005は、その範囲でフィニッシュに対応する類似度が最大値を取るタイミングをフィニッシュのタイミングであると推定する。これにより、閾値S4th及び期間T4が適宜設定されることによって、スイング動作が停止した直後のタイミングをフィニッシュのタイミングとして適切に推定することができる。そのため、フィニッシュのタイミングの推定精度を向上させることができる。
【0109】
また、イベントタイミング推定部3005は、ゴルフのスイング動作における時系列でのゴルフクラブのヘッドの速度に着目して、所定のイベントのタイミングを推定してもよい。
【0110】
例えば、ゴルフクラブのヘッドの速度は、アドレス、テイクバック、及びバックスイングのタイミングでは、相対的に小さく、トップのタイミングで略ゼロになる。また、ゴルフクラブのヘッドの速度は、トップからハーフウェイダウン及びインパクトにかけて加速し、トップのタイミングの直後に最大値を取る。そして、ゴルフクラブのヘッドの速度は、フォローからフィニッシュのタイミングにかけて大きく減少する。そのため、ゴルフクラブのヘッドの速度が最小となるタイミングを疑似的にトップのタイミングとすることができる。よって、イベントタイミング推定部3005は、ゴルフクラブの動作開始後のヘッドの速度が最小となるタイミングより前の範囲で、アドレスやテイクバックやバックスイングに対応する類似度が最大となるタイミングを探索してよい。同様に、イベントタイミング推定部3005は、ゴルフクラブの動作開始後のヘッドの速度が最小となるタイミングより後の範囲で、ハーフウェイダウンやインパクトやフォローやフィニッシュに対応する類似度が最大となるタイミングを探索してよい。これにより、トップの前後の所定のイベントの推定精度を向上させることができると共に、探索範囲を限定し、所定のイベントの推定に関する処理の時間を短縮することができる。
【0111】
また、ゴルフクラブのヘッドの速度が最大となるタイミングを疑似的にインパクトのタイミングとすることもできる。そのため、イベントタイミング推定部3005は、ゴルフクラブのヘッドの速度が最大となるタイミングより前の範囲で、アドレスやテイクバックやバックスイングやトップやハーフウェイダウンに対応する類似度が最大となるタイミングを探索してもよい。同様に、イベントタイミング推定部3005は、ゴルフクラブのヘッドの速度が最大となるタイミングより後の範囲で、フォローやフィニッシュに対応する類似度が最大となるタイミングを探索してもよい。これにより、インパクトの前後の所定のイベントの推定精度を向上させることができると共に、探索範囲を限定し、所定のイベントの推定に関する処理の時間を短縮することができる。
【0112】
また、上述の如く、複数の種類の動作データが用いられる場合、イベントタイミング推定部3005は、複数の種類の動作データの間で相対的な重みづけが設定されることにより取得された、動作データと基準動作データとの類似度に基づき、所定のイベントのタイミングを推定してもよい。
【0113】
例えば、所定のイベントのタイミングの推定のために利用される動作データには、その種類によって、重要度の大小(高低)が存在する場合がある。例えば、複数の種類の動作データのうちの重要度の大きい(高い)種類の動作データは、対象の所定のイベントのタイミングにおいて、ユーザによって取りうる値の幅が相対的に小さくなる傾向がある、即ち、ユーザ間で相対的に近い値を取る傾向にある種類の動作データである。つまり、複数の種類の動作データのうちの重要度の大きい種類の動作データは、対象の所定のイベントのタイミングにおいて、ユーザによって似通った動きをする傾向にある身体部位やゴルフクラブの部位等の動作を表すデータである。一方、複数の種類の動作データのうちの重要度の小さい(低い)種類の動作データは、対象の所定のイベントのタイミングにおいて、ユーザによって取りうる値の幅が相対的に大きくなる傾向がある、即ち、ユーザ間で相対的に乖離した値を取る傾向にある種類の動作データである。つまり、複数の種類の動作データのうちの重要度の小さい(低い)種類の動作データは、対象の所定のイベントのタイミングにおいて、ユーザによって異なる動きをする傾向にある身体部位やゴルフクラブの部位等の動作を表すデータである。
【0114】
例えば、所定のイベントとしてのトップのタイミングにおいて、ゴルフクラブのヘッドは略停止する。そのため、トップのタイミングが推定される場合、ゴルフクラブのヘッドの速度データは、重要度が大きい(高い)動作データとして規定されてよい。一方、
図12(
図12A,12B)に示すように、所定のイベントとしてのトップのタイミングにおいて、ゴルフクラブのヘッドの位置は、ユーザによって、大きく異なる場合がある(図中の丸枠参照)。そのため、トップのタイミングが推定される場合、ゴルフクラブのヘッドの位置データは、重要度が小さい(低い)動作データとして規定されてよい。
【0115】
例えば、
図13に示すように、比較例では、重要度の大きい2種類の動作データ、及び重要度の小さい2種類の動作データで構成される、4種類の動作データの間に重みづけが設定されず、動作データの値がそのまま利用される。重要度の大きい2種類の動作データは、膝の位置データ、及びゴルフクラブのヘッドの速度データであり、重要度の小さい2種類の動作データは、膝の速度データ、及びゴルフクラブのヘッドの位置データである。
【0116】
図13A,13Bに示すように、ユーザAのゴルフのスイング動作における所定のイベントのタイミングでの動作データは、重要度の大きい2種類の動作データ、及び重要度の小さい2種類の動作データの双方が基準動作データに対して比較的近い値を表している。そのため、比較例に係る類似度取得部は、ユーザAのゴルフのスイング動作における所定のイベントのタイミングでの動作データと基準動作データとの類似度が相対的に大きいと評価している。その結果、比較例に係るイベントタイミング推定部は、ユーザAのゴルフのスイング動作を含む動画像上において、所定のイベントのタイミングを適切に推定することができる。
【0117】
一方、
図13A,13Cに示すように、ユーザBのゴルフのスイング動作における所定のイベントのタイミングでの動作データは、重要度の大きい2種類の動作データが基準動作データに対して比較的近い値を表しているが、重要度の小さい2種類の動作データが基準動作データに対して比較的乖離した値を表している。そのため、比較例に係る類似度取得部は、ユーザBのゴルフのスイング動作における所定のイベントのタイミングでの動作データと基準動作データとの類似度が相対的に小さいと評価してしまっている。その結果、比較例に係るイベントタイミング推定部は、ユーザBのゴルフのスイング動作を含む動画像上において、所定のイベントのタイミングを適切に推定することができない場合が生じうる。
【0118】
これに対して、例えば、
図14に示すように、類似度取得部3004は、4種類の動作データの間の相対的な重みづけを設定して、動作データと基準動作データとの類似度を演算(取得)する。本例では、類似度取得部3004は、4種類の動作データのうちの重要度が小さい2種類の動作データの重みづけを小さくする。具体的には、
図14Cに示すように、類似度取得部3004は、重要度が小さい2種類の動作データに対して1より小さい所定の正数を乗じることにより、重要度の大きい2種類の動作データをそのまま利用する前提で、重要度の小さい2種類の動作データの重みづけを小さくする。また、
図14Aに示すように、重要度が小さい2種類の基準動作データについても、同様に、類似度取得部3004は、同じ正数を乗じることにより、重要度の大きい2種類の基準動作データをそのまま利用する前提で、重要度の小さい2種類の基準動作データの重みづけを小さくする。
【0119】
これにより、
図14A,14Cに示すように、ユーザBのゴルフのスイング動作における所定のイベントのタイミングでの動作データのうちの重要度の小さい2種類の動作データと基準動作データとの差異が比較的小さくなる。そのため、類似度取得部3004は、ユーザBのゴルフのスイング動作における所定のイベントのタイミングでの動作データと基準動作データとの類似度が相対的に大きいと評価することができる。その結果、イベントタイミング推定部3005は、ユーザBのゴルフのスイング動作を含む動画像上において、所定のイベントのタイミングを適切に推定することができる。
【0120】
このように、複数の種類の動作データが用いられる場合、類似度取得部3004は、複数の種類の動作データの相対的な重要度の大小に応じて、複数の種類の動作データの間の重みづけを設定して、動作データと基準動作データとの間の類似度を取得してよい。これにより、イベントタイミング推定部3005は、類似度取得部3004により取得される類似度に基づき、所定のイベントのタイミングをより適切に推定することができる。
【0121】
また、複数の種類の動作データが用いられる場合、類似度取得部3004は、複数の種類の動作データごとのスケールの違いに応じて、複数の種類の動作データの間の重みづけを設定してもよい。スケールとは、ゴルフのスイング動作における動作データの値の変化の幅である。
【0122】
例えば、ゴルフのスイング動作におけるゴルフクラブのヘッドの位置データ及び速度データが用いられることにより、所定のイベントのタイミングが推定される場合を考える。
【0123】
ゴルフのスイング動作におけるゴルフクラブのヘッドの位置は、その相対的な変化の幅が最大でも数メートル程度である。一方、ゴルフのスイング動作におけるゴルフクラブのヘッドの速度は、0m/sから約50m/sまでの範囲で変化する。そのため、ゴルフクラブのヘッドの位置データ及び速度データがそのまま動作データとして用いられる場合、類似度は、スケールが小さい、ヘッドの位置データよりも、スケールが大きい、ヘッドの速度データの影響を大きく受けてしまう可能性がある。その結果、その類似度が用いられることで、所定のイベントのタイミングが適切に推定されない場合が生じうる。
【0124】
これに対して、類似度取得部3004は、相対的にスケールが大きい、ゴルフクラブのヘッドの速度の重みづけを小さく設定して、動作データと基準動作データとの間の類似度を取得してよい。例えば、類似度取得部3004は、ゴルフクラブのヘッドの位置データをそのまま利用する前提で、ゴルフクラブの速度データに1より小さい所定の正数を乗じることにより、ゴルフクラブの速度データの重みづけを小さく設定する。これにより、類似度取得部3004は、動作データと基準動作データとの類似度に対する、スケールが相対的に大きい、ヘッドの速度データの影響を抑制することができる。その結果、イベントタイミング推定部3005は、類似度取得部3004により取得される類似度を用いて、所定のイベントのタイミングを適切に推定することができる。
【0125】
このように、複数の種類の動作データが用いられる場合、類似度取得部3004は、複数の種類の動作データの相対的なスケールの大小に応じて、複数の種類の動作データの間の重みづけを設定して、動作データと基準動作データとの間の類似度を取得してよい。これにより、イベントタイミング推定部3005は、類似度取得部3004により取得される類似度に基づき、所定のイベントのタイミングをより適切に推定することができる。
【0126】
イベントタイミング推定部3005の推定結果のデータは、イベントタイミングデータ記憶部3005Aに格納される。
【0127】
スイング診断部3006は、イベントタイミング推定部3005の推定結果のデータをイベントタイミングデータ記憶部3005Aから読み出し、動画像上でのユーザのスイング動作における所定のイベントの発生時に着目してスイング診断を行う。例えば、スイング診断部3006は、所定のイベントの発生時に対応するフレームの画像やその前後の所定範囲のフレーム画像に基づき、ゴルフのスイング動作に関する診断指標を算出する。ゴルフのスイング動作に関する診断指標には、ヘッドスピード、アタック角、タメ、フェース角、身体重心位置、前傾角度等が含まれる。ヘッドスピードは、ゴルフクラブのヘッドの速度を表す。アタック角は、ゴルフボールとのインパクト時の水平面を基準とするゴルフボールに対するクラブ(ヘッド)の入射角度を表す。タメは、ダウンスイング時における腕の動作とクラブのヘッドの動作とのタイムラグを表す。フェース角は、ゴルフボールとのインパクト時における水平方向でのフェース面の向きを表す。身体重心位置とは、身体の各部位の質量中心の重心位置を表す。前傾角度とは、アドレス時の上半身の前傾角度である。そして、スイング診断部3006は、算出した診断指標に基づき、ユーザによるゴルフのスイング動作に関する診断を行う。例えば、スイング診断部3006は、診断基準の値、即ち、診断指標の基準値と、算出した診断指標の値とを比較することにより、ユーザのスイング動作の診断基準に対する適合度に関する診断を行う。
【0128】
スイング診断部3006は、スイング診断の処理が完了すると、通信インタフェース306を通じて、スイング診断の結果のデータを含む返信データをユーザ端末200に送信する。返信データには、例えば、診断指標のデータや診断指標に基づくアドバイスのデータ等が含まれる。また、返信データには、所定のイベントのタイミングにおけるユーザの複数の身体部位の関節位置のデータやゴルフクラブのヘッド位置のデータ等が含まれてもよい。
【0129】
このように、本例では、情報処理装置300は、ユーザによるゴルフのスイング動作を含む動画像のフレームごとの動作データと、ゴルフのスイング動作における所定のイベントの発生時のユーザの動作を表す基準動作データとの類似度に基づき、動画像における所定のイベントのタイミングを推定する。これにより、情報処理装置300は、動画像に対応する時間軸での相対的な類似度の大小(高低)によって、ゴルフのスイング動作における所定のイベントのタイミングを推定することができる。そのため、所定のイベントに対応する、被写体の人の動作に関する条件や画像上の特定の領域の画素値の変化に関する条件等の絶対条件の不成立によって、所定のイベントのタイミングを推定できないような事態を抑制することができる。よって、情報処理装置300は、ユーザによるゴルフのスイング動作を含む動画像上での所定のイベントのタイミングをより適切に推定することができる。
【0130】
また、本例では、情報処理装置300は、ユーザの身体部位の動作を表す動作データだけでなく、ゴルフクラブの所定の部位(例えば、ヘッド)の動作を表す動作データを用いて、動画像における所定のイベントのタイミングを推定する。
【0131】
例えば、
図15に示すように、ユーザによるゴルフのスイング動作を含む動画像において、インパクトのタイミングの1フレーム前の画像(
図15A)と、インパクトのタイミングの画像(
図15B)とでは、ユーザの身体部位の位置にほとんど変化がない。そのため、仮に、ユーザの身体部位の動作を表す動作データだけが用いられると、インパクトのタイミングではなく、インパクトの前後のタイミングが、所定のイベントとしてのインパクトのタイミングとして誤って推定されてしまう可能性がある。その結果、情報処理装置300は、例えば、アタック角やフェース角等のインパクトのタイミングに対応する診断指標を適切に算出することができず、スイング診断を適切に行うことができない可能性がある。
【0132】
これに対して、情報処理装置300は、例えば、ゴルフクラブのヘッドの位置データを併せて用いることで、インパクトのタイミングをより適切に推定することができる。インパクトのタイミングでのゴルフクラブのヘッドの位置は、ゴルフボールの位置やアドレス時のヘッドの位置から推定されうるからである。その結果、情報処理装置300は、スイング診断をより適切に行うことができる。
【0133】
また、
図16(
図16A,16B)に示すように、ゴルフのスイング動作において、トップのタイミングでのユーザの身体部位の位置、特に、下半身の部位(膝)の位置がユーザによって大きく異なる場合がある(図中の丸枠参照)。そのため、仮に、ユーザの身体部位の動作を表す動作データだけが用いられると、トップのタイミングではなく、例えば、トップの前後のタイミングが、所定のイベントとしてのトップのタイミングとして誤って推定されてしまう可能性がある。その結果、情報処理装置300は、トップのタイミングに対応する診断指標を適切に算出することができず、スイング診断を適切に行うことができない可能性がある。
【0134】
これに対して、情報処理装置300は、例えば、ゴルフクラブのヘッドの速度データを併せて用いることで、トップのタイミングをより適切に推定することができる。トップのタイミングでのゴルフクラブのヘッドの速度は、ユーザに依らず略ゼロになるからである。その結果、情報処理装置300は、スイング診断をより適切に行うことができる。
【0135】
[スイング診断システムの動作の第1例]
次に、
図17を参照して、スイング診断システム1の動作の第1例について説明する。具体的には、
図4の機能構成を前提とするスイング診断システム1の動作の一例について説明する。
【0136】
図17は、スイング診断システム1の動作の第1例を示すシーケンス図である。
【0137】
図17に示すように、ユーザ端末200は、入力装置207を用いたユーザからの所定の入力に応じて、スイング診断アプリを起動させる(ステップS102)。
【0138】
ステップS102の処理の完了後、動画像データ取得部2002は、入力装置207を用いた所定のアプリ画面上でのユーザからの所定の入力に応じて、ユーザによるゴルフのスイング動作の様子を表す動画像データをカメラ100から取得する(ステップS104)。
【0139】
ステップS104の処理の完了後、動画像データ送信部2003は、通信インタフェース206を通じて、動画像データを情報処理装置300に送信する(ステップS106)。
【0140】
動画像データ取得部3001は、ステップS106の処理でユーザ端末200から送信(アップロード)された動画像データを取得する(ステップS107)。
【0141】
ステップS107の処理の完了後、特徴点抽出部3002は、動画像の各フレームについて、被写体のユーザのスイング動作に関する複数の特徴点を抽出する(ステップS108)。
【0142】
ステップS108の処理の完了後、動作データ取得部3003は、動画像の各フレームについて、複数の特徴点に基づき、ユーザによるゴルフのスイング動作に関する動作データを取得する(ステップS110)。
【0143】
ステップS110の処理の完了後、類似度取得部3004は、所定のイベントごとに、動画像の各フレームの動作データと基準動作データとの類似度を算出する(ステップS112)。
【0144】
ステップS112の処理の完了後、イベントタイミング推定部3005は、所定のイベントごとに、各フレームの類似度に基づき、所定のイベントのタイミングを推定する(ステップS114)。
【0145】
ステップS114の処理の完了後、スイング診断部3006は、ステップS114の処理による所定のイベントのタイミングの推定結果に基づき、動画像データのスイング動作に関するスイング診断を行う(ステップS116)。
【0146】
ステップS116の処理の完了後、スイング診断部3006は、スイング診断の結果のデータを含む返信データをユーザ端末200に送信する(ステップS118)。
【0147】
診断結果データ取得部2004は、ステップS118の処理で情報処理装置300から送信された、スイング診断の結果のデータを含む返信データを取得する(ステップS119)。
【0148】
ステップS119の処理の完了後、アプリ画面表示処理部2001は、スイング診断の結果を表示装置208に表示させる(ステップS120)。
【0149】
このように、スイング診断システム1は、ユーザによるゴルフのスイング動作の様子を表す動画像データを取得し、動画像データからスイング動作における所定のイベントのタイミングを推定し、その推定結果に基づき、スイング診断を行うことができる。
【0150】
[スイング診断システムの機能構成の第2例]
次に、
図18を参照して、スイング診断システム1の機能構成の第2例について説明する。
【0151】
以下、上述の第1例と同じ或いは対応する構成には同一の符号を付し、上述の第1例と異なる部分を中心に説明すると共に、上述の第1例と同じ或いは対応する内容の説明を省略或いは簡略化する場合がある。
【0152】
図18は、スイング診断システム1の機能構成の第2例を示す機能ブロック図である。
【0153】
図18に示すように、ユーザ端末200は、上述の第1例と同様、アプリ画面表示処理部2001と、動画像データ取得部2002と、動画像データ送信部2003と、診断結果データ取得部2004とを含む。また、ユーザ端末200は、上述の第1例と異なり、推定結果データ取得部2005と、イベントタイミング編集部2006と、編集結果データ送信部2007とを含む。これらの機能は、例えば、補助記憶装置202にインストールされるスイング診断アプリをメモリ装置203にロードしCPU204で実行することにより実現される。
【0154】
推定結果データ取得部2005は、情報処理装置300から送信される、動画像データでのユーザによるゴルフのスイング動作における所定のイベントのタイミングの推定結果のデータを取得する。
【0155】
推定結果データ取得部2005により取得される推定結果のデータは、アプリ画面表示処理部2001によって、表示装置208のアプリ画面に表示される。
【0156】
推定結果のデータは、例えば、所定のイベントのタイミングに対応するチャプタが指定された動画像データである。これにより、ユーザは、動画像上で自身のゴルフのスイング動作における所定のイベントのタイミングを容易に確認することができる。
【0157】
イベントタイミング編集部2006は、入力装置207を用いたアプリ画面上でのユーザからの所定の入力に応じて、情報処理装置300で推定された所定のイベントのタイミングを編集する。これにより、例えば、所定のイベントのタイミングの推定結果に誤りがある場合に、ユーザは、入力装置207を用いて、所定のイベントのタイミングを編集することができる。
【0158】
編集対象の所定のイベントは、情報処理装置300での推定対象の所定のイベントの全部であってもよいし、一部であってもよい。例えば、編集対象の所定のイベントは、アドレス、トップ、及びインパクトの少なくとも1つである。アドレス、テイクバック、バックスイング、トップ、ハーフウェイダウン、インパクト、フォロー、及びフィニッシュのうち、アドレス、トップ、及びインパクトは、定義が明確であり、動画像からユーザが容易に認識することが可能だからである。
【0159】
編集結果データ送信部2007は、イベントタイミング編集部2006による編集結果のデータを、通信インタフェース206を通じて情報処理装置300に送信する。これにより、所定のイベントのタイミングの編集結果を情報処理装置300でのスイング診断に反映させることができる。編集結果のデータには、編集が実施されなかった場合の編集が実施されなかった旨を表すデータが含まれる。これにより、情報処理装置300に対して、編集がされなかった旨を通知することができる。
【0160】
図18に示すように、情報処理装置300は、上述の第1例と同様、動画像データ取得部3001と、特徴点抽出部3002と、動作データ取得部3003と、類似度取得部3004と、イベントタイミング推定部3005と、スイング診断部3006とを含む。また、情報処理装置300は、上述の第1例と異なり、推定結果データ送信部3007と、編集結果データ取得部3008と、イベントタイミング修正部3009とを含む。これらの機能は、例えば、補助記憶装置302にインストールされるプログラムをメモリ装置303にロードしCPU304で実行することにより実現される。また、情報処理装置300は、上述の第1例と同様、動画像データ記憶部3001Aと、特徴点データ記憶部3002Aと、動作データ記憶部3003Aと、類似度データ記憶部3004Aと、基準動作データ記憶部3004Xと、イベントタイミングデータ記憶部3005Aとを含む。また、情報処理装置300は、上述の第1例と異なり、編集結果データ記憶部3008Aを含む。これらの機能は、例えば、補助記憶装置302やメモリ装置303に規定される記憶領域により実現される。
【0161】
推定結果データ送信部3007は、イベントタイミング推定部3005による推定結果に相当するデータをイベントタイミングデータ記憶部3005Aから読み出し、通信インタフェース206を通じて、ユーザ端末200に送信する。
【0162】
例えば、推定結果データ送信部3007は、動画像データ記憶部3001Aから読み出した動画像データに対して、ゴルフのスイング動作における所定のイベントのタイミングに対応するフレームにチャプタを指定した動画像データを生成する。そして、推定結果データ送信部3007は、ゴルフのスイング動作における所定のイベントのタイミングに対応するチャプタ付きの動画像データを推定結果のデータとしてユーザ端末200に送信する。
【0163】
編集結果データ取得部3008は、ユーザ端末200から送信される所定のイベントのタイミングの編集結果のデータを取得する。編集結果データ取得部3008により取得される編集結果のデータは、編集結果データ記憶部3008Aに格納される。
【0164】
イベントタイミング修正部3009は、編集結果データ記憶部3008Aの編集結果のデータに基づき、イベントタイミングデータ記憶部3005Aに格納される所定のイベントのタイミングのデータを修正する。
【0165】
例えば、イベントタイミング修正部3009は、イベントタイミングデータ記憶部3005Aに格納される、全ての所定のイベントのうちの編集結果のデータで編集されている対象の所定のイベントのタイミングのデータを編集結果のデータの内容に修正する。そして、イベントタイミング修正部3009は、イベントタイミングデータ記憶部3005Aに格納される、全ての所定のイベントのうちの編集結果のデータで未編集の所定のイベントのタイミングを再度推定してよい。例えば、トップのタイミングが編集された場合、イベントタイミング修正部3009は、修正後のトップのタイミングを基準として、それより前のアドレスやテイクバックやバックスイングのタイミングを推定する。同様に、イベントタイミング修正部3009は、修正後のトップのタイミングを基準として、それより後のハーフウェイダウンやインパクトやフォローやフィニッシュのタイミングを推定する。推定方法は、上述と同様であってよい。そして、イベントタイミング修正部3009は、推定結果に基づき、イベントタイミングデータ記憶部3005Aに格納される、全ての所定のイベントのうちの編集結果のデータで未編集の所定のイベントのタイミングのデータを修正する。
【0166】
尚、編集結果のデータが、編集がされなかった旨を表している場合、イベントタイミング修正部3009は、イベントタイミングデータ記憶部3005Aに格納されるデータの修正を行わない。
【0167】
スイング診断部3006は、イベントタイミング修正部3009によりイベントタイミングデータ記憶部3005Aのデータが修正された場合、イベントタイミングデータ記憶部3005Aの修正後のデータに基づき、スイング診断を行う。
【0168】
[スイング診断システムの動作の第2例]
次に、
図19を参照して、スイング診断システム1の動作の第2例について説明する。具体的には、
図18の機能構成を前提とするスイング診断システム1の動作の一例について説明する。
【0169】
図19は、スイング診断システム1の動作の第2例を示すシーケンス図である。
【0170】
図19に示すように、ステップS202,S204,S206,S207,S208,S210,S212,S214は、
図17のステップS102,S104,S106,S107,S108,S110,S112,S114の処理と同じである。そのため、説明を省略する。
【0171】
ステップS214の処理の完了後、推定結果データ送信部3007は、イベントタイミング推定部3005の推定結果のデータを、通信インタフェース306を通じてユーザ端末に送信する(ステップS216)。
【0172】
具体的には、推定結果データは、上述の如く、イベントタイミング推定部3005により推定された、所定のイベントのタイミングに対応するフレームに対してチャプタが指定された動画像のデータであってよい。
【0173】
推定結果データ取得部2005は、ステップS216の処理で情報処理装置300から送信された推定結果のデータを取得する(ステップS217)。
【0174】
ステップS217の処理の完了後、アプリ画面表示処理部2001は、推定結果データ取得部2005により取得された推定結果のデータを表示装置208に表示させる。
【0175】
具体的には、アプリ画面表示処理部2001は、所定のイベントに対応するフレームに対してチャプタが指定された動画像を表示装置208に表示させてよい。これにより、ユーザは、動画像において、入力装置207を用いてチャプタを指定する入力を行うことで、所定のイベントのタイミングに対応するフレームにおけるゴルフのスイング動作の様子を確認し、編集の要否を判断することができる。
【0176】
ステップS218の処理の完了後、イベントタイミング編集部2006は、入力装置207を用いたアプリ画面でのユーザからの入力に応じて、動画像上のゴルフのスイング動作における所定のイベントのタイミングを編集する(ステップS220)。
【0177】
ステップS220の処理の完了後、編集結果データ送信部2007は、ステップS220の処理による編集結果のデータを、通信インタフェース206を通じて情報処理装置300に送信する(ステップS222)。
【0178】
編集結果データ取得部3008は、ステップS222の処理でユーザ端末200から送信された編集結果のデータを取得する(ステップS223)。
【0179】
ステップS223の処理の完了後、イベントタイミング修正部3009は、編集結果のデータに基づき、イベントタイミングデータ記憶部3005Aに格納される所定のイベントのタイミングのデータを修正する(ステップS224)。
【0180】
ステップS224の処理の完了後、スイング診断部3006は、イベントタイミングデータ記憶部3005Aに格納される、ステップS224の処理により修正済みの所定のイベントのタイミングのデータに基づき、スイング診断を行う(ステップS226)。
【0181】
ステップS228~S230は、
図17のステップS118~S120の処理と同じであるため、説明を省略する。
【0182】
このように、本例では、スイング診断システム1は、ユーザによるゴルフのスイング動作の様子を表す動画像データを取得し、その動画像上でのスイング動作における所定のイベントのタイミングをユーザに指定させることができる。
【0183】
[他の実施形態]
次に、他の実施形態について説明する。
【0184】
上述の実施形態には、適宜、変形や変更が加えられてもよい。
【0185】
例えば、上述の実施形態では、ユーザ端末200及び情報処理装置300の機能は、1つの情報処理装置によって実現されてもよいし、3以上の情報処理装置により分散して実現されてもよい。
【0186】
また、上述の実施形態(スイング診断システム1の機能構成の第2例)やその変形・変更の例では、所定のイベントのうちの一部について、最初からユーザに指定させるようにしてもよい。所定のイベントのうちの一部には、例えば、アドレス、トップ、及びインパクトの少なくとも1つのタイミングが含まれる。
【0187】
また、上述の実施形態やその変形・変更の例でのゴルフの動作における所定のイベントのタイミングの推定方法は、動画像上のゴルフの動作とは異なる他の動作における所定のイベントを推定する場合に適用されてもよい。他の動作とは、例えば、テニスのスイング動作である。
【0188】
[作用]
次に、本実施形態に係る情報処理方法、プログラム、及び情報処理装置の作用について説明する。
【0189】
本実施形態では、情報処理方法は、情報処理装置が実行し、抽出ステップと、取得ステップと、推定ステップと、を含む。情報処理装置は、例えば、上述の情報処理装置300である。抽出ステップは、例えば、上述のステップS108,S208である。取得ステップは、例えば、S110,S210である。推定ステップは、例えば、上述のステップS114,S214である。具体的には、抽出ステップでは、情報処理装置が、動画像に含まれる複数の画像ごとに、被写体の人の所定の動作に関する複数の特徴点であって、被写体の人の身体部位を表す特徴点、及び人が保持する所定の道具の特徴点を含む複数の特徴点を抽出する。所定の動作は、例えば、上述のゴルフのスイング動作であり、所定の道具は、例えば、ゴルフクラブである。また、取得ステップでは、情報処理装置が、抽出ステップで抽出される複数の特徴点に基づき、複数の画像ごとの被写体の人及びゴルフクラブの動作を表すデータであって、被写体の人の身体部位とゴルフクラブとの位置及び速度の少なくとも一方に関するデータを含むデータを取得する。そして、推定ステップでは、情報処理装置が、複数の画像ごとの取得ステップで取得されるデータと、所定の動作における所定のイベントの発生時の人及びゴルフクラブの動作を表す基準のデータとの類似度に基づき、動画像における所定のイベントのタイミングを推定する。
【0190】
また、本実施形態では、プログラムは、情報処理装置に、抽出ステップと、取得ステップと、推定ステップとを実行させてもよい。
【0191】
また、本実施形態では、情報処理装置は、抽出部と、取得部と、記憶部と、推定部と、を備えてもよい。抽出部は、例えば、上述の特徴点抽出部3002である。取得部は、例えば、上述の動作データ取得部3003である。記憶部は、例えば、上述の基準動作データ記憶部3004Xである。推定部は、例えば、上述のイベントタイミング推定部3005である。具体的には、抽出部は、動画像に含まれる複数の画像ごとに、被写体の人の所定の動作に関する複数の特徴点であって、被写体の人の身体部位を表す特徴点、及び人が保持する所定の道具の特徴点を含む複数の特徴点を抽出する。また、取得部は、抽出部により抽出される複数の特徴点に基づき、複数の画像ごとの被写体の人及びゴルフクラブの動作を表すデータであって、被写体の人の身体部位とゴルフクラブとの位置及び速度の少なくとも一方に関するデータを含むデータを取得する。また、記憶部には、所定の動作における所定のイベントの発生時の人及びゴルフクラブの動作を表す基準のデータが記憶される。そして、推定部は、複数の画像ごとの取得部により取得されるデータと、基準のデータとの類似度に基づき、動画像における所定のイベントのタイミングを推定する。
【0192】
これにより、情報処理装置は、動画像上の時間軸において、複数の画像ごとの取得部により取得されるデータと、基準のデータとの類似度が最も高いタイミングを所定のイベントのタイミングと推定することができる。そのため、情報処理装置は、例えば、所定のイベントに対応する画像上の被写体の人の動作を表すデータと基準のデータとの差異が相対的に大きい場合であっても、動画像上の時間軸での類似度が最も高いことを以て、所定のイベントのタイミングと推定することができる。その結果、情報処理装置は、例えば、被写体の人の動作に関する条件や画像上の特定の領域の画素値の変化に関する条件等の絶対条件の成否で、所定のイベントのタイミングを推定する場合のように、条件が成立せずに所定のイベントのタイミングを推定できないような事態を回避できる。よって、情報処理装置は、所定の動作を行う人が映っている動画像から所定の動作に関する所定のイベントの発生のタイミングをより適切に推定することができる。また、情報処理装置は、明確な定義がない所定のイベント(例えば、ゴルフのスイング動作のハーフウェイダウン)のように、タイミングを推定する条件の規定が難しい場合でも、所定のタイミングに相当する基準データを準備することでそのタイミングを適切に推定できる。
【0193】
また、本実施形態では、所定の動作は、ゴルフのスイング動作であってもよい。そして、複数の特徴点には、ゴルフボールの特徴点を含んでもよい。
【0194】
これにより、情報処理装置は、ゴルフのスイング動作における所定のイベントのタイミングをより適切に推定することができる。
【0195】
また、本実施形態では、取得ステップで取得されるデータには、被写体の人の複数の身体部位の動作を表すデータが含まれてもよい。
【0196】
これにより、情報処理装置は、複数の身体部位について、動画像上の被写体の人の動作を表すデータと、基準データとの間の類似度を評価することができる。そのため、情報処理装置は、所定の動作における所定のイベントのタイミングをより適切に推定することができる。
【0197】
また、本実施形態では、所定の動作は、ゴルフのスイング動作であってもよい。そして、所定のイベントは、アドレス、テイクバック、バックスイング、トップ、ハーフウェイダウン、インパクト、フォロー、及びフィニッシュのうちの少なくとも1つを含んでもよい。
【0198】
これにより、情報処理装置は、ゴルフのスイング動作における典型的な所定のイベントのタイミングを推定することができる。
【0199】
また、本実施形態では、基準のデータは、所定の動作における所定のイベントの発生時の複数の人の平均の動作を表すデータであってもよい。
【0200】
これにより、所定の動作における所定のイベントの発生時の人の動作のばらつきの中央に近づくように基準のデータが調整されうる。そのため、情報処理装置は、所定の動作における所定のイベントのタイミングをより適切に推定することができる。
【0201】
また、本実施形態では、推定ステップでは、動画像における所定のタイミングより前又は後の範囲で、所定のイベントのタイミングを推定してもよい。
【0202】
これにより、情報処理装置は、動画像上の時間軸で、所定のイベントのタイミングと相関関係のある所定のタイミングを利用することによって、所定のイベントのタイミングをより適切に推定することができる。
【0203】
また、本実施形態では、所定のイベントは、第1のイベント及び第2のイベントを含み、
推定ステップは、第1のイベントのタイミングを推定した後に、動画像における所定のタイミングとしての第1のイベントのタイミングより前又は後の範囲で第2のイベントのタイミングを推定してもよい。
【0204】
これにより、情報処理装置は、第1のイベント及び第2のイベントの予め規定される前後関係に合わせて、推定済みの第1のイベントより前のタイミング、或いは、後のタイミングで第2のイベントを推定することができる。そのため、情報処理装置は、第2のイベントのタイミングをより適切に推定することができる。
【0205】
また、本実施形態では、所定の動作は、ゴルフのスイング動作であってもよい。そして、所定のタイミングは、ゴルフクラブの速度の最大又は最小のタイミングであってもよい。
【0206】
これにより、情報処理装置は、動画像上の時間軸でのゴルフクラブの速度の変化と所定のイベントのタイミングとの既知の関係を用いて、所定のイベントのタイミングを推定することができる。そのため、情報処理装置は、所定のイベントのタイミングをより適切に推定することができる。
【0207】
また、本実施形態では、所定の動作は、ゴルフのスイング動作であってもよい。そして、所定のタイミングは、類似度が最小値を取るタイミングであってもよい。
【0208】
これにより、情報処理装置は、動画像上の時間軸での類似度の変化に関する既知の傾向に合わせて、所定のイベントのタイミングを推定することができる。そのため、情報処理装置は、所定のイベントのタイミングをより適切に推定することができる。
【0209】
また、本実施形態では、推定ステップでは、類似度が所定の閾値に対して相対的に小さい状態の期間の前又は後に隣接する所定期間内で所定のイベントのタイミングを推定してもよい。所定の閾値は、例えば、上述の閾値S1th~S4thである。所定期間は、例えば、上述の期間T1~T4である。
【0210】
これにより、情報処理装置は、例えば、所定の動作の開始前に所定のイベントに対応する似通った人の動作状態が動画像上で出現し、類似度が相対的に大きくなるような場合でも、所定の動作が開始され類似度が低下した時点を基準として所定のタイミングを推定することができる。そのため、情報処理装置は、所定のイベントのタイミングをより適切に推定することができる。
【0211】
また、本実施形態では、所定のタイミングは、ユーザにより指定されるタイミングであってもよい。
【0212】
これにより、情報処理装置は、例えば、動画像を確認したユーザにより指定される、所定のイベントのタイミングと相関を有する所定のタイミングを用いて、所定のイベントのタイミングをより適切に推定することができる。
【0213】
また、本実施形態では、取得ステップでは、被写体の人の身長又は身体部位の長さで正規化したデータを取得してもよい。そして、基準のデータは、取得ステップと同じ方法で正規化されたデータであってもよい。
【0214】
これにより、情報処理装置は、取得ステップで取得される被写体の人の動作を表すデータに対する、被写体の人の身体的な大きさの影響を抑制することができる。そのため、情報処理装置は、所定のイベントのタイミングをより適切に推定することができる。
【0215】
また、本実施形態では、取得ステップでは、被写体の人の身長に相当する画像上の距離、被写体の人の所定の身体部位の長さに相当する画像上の距離、又は所定の動作に使用される道具の長さに相当する画像上の距離によって正規化されたデータであってもよい。そして、基準のデータは、取得ステップと同じ方法で正規化されたデータであってもよい。
【0216】
これにより、情報処理装置は、取得ステップで取得される被写体の人の動作を表すデータに対する、被写体の人の身体的な大きさや画像の中での被写体の人の大きさの影響を抑制することができる。そのため、情報処理装置は、所定のイベントのタイミングをより適切に推定することができる。
【0217】
また、本実施形態では、取得ステップでは、複数の種類のデータを取得してもよい。そして、推定ステップでは、複数の種類のデータの間での相対的な重みづけを考慮して、複数の種類のデータと、複数の種類のデータに対応する複数の種類の基準のデータとの類似度に基づき、動画像における所定のイベントのタイミングを推定してもよい。
【0218】
これにより、情報処理装置は、例えば、複数の種類のデータの間での重要度の大小やスケールの大小に応じて、複数の種類のデータの間での重みづけを設定して、複数の種類のデータと、複数の種類の基準データとの類似度を取得することができる。そのため、情報処理装置は、重要度の小さいデータやスケールの大きいデータの影響を抑制することができ、その結果、動画像における所定のイベントのタイミングをより適切に推定することができる。
【0219】
また、本実施形態では、所定のイベントは、複数あってよい。そして、複数の種類のデータの間での重みづけのパターンは、複数の所定のイベントごとに異なっていてもよい。
【0220】
これにより、例えば、複数の所定のイベントごとに、複数の種類のデータの中での重要度の大小が変化しうるところ、情報処理装置は、複数の所定のイベントごとに、対象のイベントの重要度の大小に応じて、重みづけのパターンを異ならせることができる。そのため、情報処理装置は、複数の所定のイベントのそれぞれのタイミングをより適切に推定することができる。また、情報処理装置は、複数の所定のイベントについて、複数の種類、且つ、全てが同じ種類のデータを用いることができる。そのため、情報処理装置は、例えば、同じ種類のデータを利用する前提の下で、重みづけのパラメータのみを変更することにより、動画像における複数の所定のイベントのそれぞれのタイミングを推定することができる。よって、情報処理装置の処理の複雑化を抑制し、動画像における所定のイベントのタイミングを推定するためのソフトウェア(プログラム)の複数の所定のイベントの間での共通化を図ることができる。
【0221】
以上、実施形態について詳述したが、本開示はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0222】
1 スイング診断システム
100 カメラ
200 ユーザ端末
300 情報処理装置
2001 アプリ画面表示処理部
2002 動画像データ取得部
2003 動画像データ送信部
2004 診断結果データ取得部
2005 推定結果データ取得部
2006 イベントタイミング編集部
2007 編集結果データ送信部
3001 動画像データ取得部
3001A 動画像データ記憶部
3002 特徴点抽出部
3002A 特徴点データ記憶部
3003 動作データ取得部
3003A 動作データ記憶部
3004 類似度取得部
3004A 類似度データ記憶部
3004X 基準動作データ記憶部
3005 イベントタイミング推定部
3005A イベントタイミングデータ記憶部
3006 スイング診断部
3007 推定結果データ送信部
3008 編集結果データ取得部
3008A 編集結果データ記憶部
3009 イベントタイミング修正部