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

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

▶ 住友ゴム工業株式会社の特許一覧 ▶ 学校法人立命館の特許一覧

<>
  • 特許-学習モデルの生成方法 図1
  • 特許-学習モデルの生成方法 図2
  • 特許-学習モデルの生成方法 図3
  • 特許-学習モデルの生成方法 図4
  • 特許-学習モデルの生成方法 図5
  • 特許-学習モデルの生成方法 図6
  • 特許-学習モデルの生成方法 図7
  • 特許-学習モデルの生成方法 図8
  • 特許-学習モデルの生成方法 図9
  • 特許-学習モデルの生成方法 図10
  • 特許-学習モデルの生成方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-02
(45)【発行日】2024-05-14
(54)【発明の名称】学習モデルの生成方法
(51)【国際特許分類】
   G06T 7/20 20170101AFI20240507BHJP
   A63B 69/36 20060101ALI20240507BHJP
   G06T 7/00 20170101ALI20240507BHJP
【FI】
G06T7/20 300Z
A63B69/36 541W
A63B69/36 541P
G06T7/00 350C
【請求項の数】 9
(21)【出願番号】P 2019231158
(22)【出願日】2019-12-23
(65)【公開番号】P2021099666
(43)【公開日】2021-07-01
【審査請求日】2022-08-03
(73)【特許権者】
【識別番号】000183233
【氏名又は名称】住友ゴム工業株式会社
(73)【特許権者】
【識別番号】593006630
【氏名又は名称】学校法人立命館
(74)【代理人】
【識別番号】100124039
【弁理士】
【氏名又は名称】立花 顕治
(74)【代理人】
【識別番号】100179213
【弁理士】
【氏名又は名称】山下 未知子
(74)【代理人】
【識別番号】100170542
【弁理士】
【氏名又は名称】桝田 剛
(72)【発明者】
【氏名】植田 勝彦
(72)【発明者】
【氏名】永野 祐樹
(72)【発明者】
【氏名】白井 良明
(72)【発明者】
【氏名】島田 伸敬
【審査官】小池 正彦
(56)【参考文献】
【文献】特開2018-067294(JP,A)
【文献】特開2018-026131(JP,A)
【文献】国際公開第2018/207351(WO,A1)
【文献】特開2011-078753(JP,A)
【文献】特開2015-116308(JP,A)
【文献】上原 和加貴,深層学習を用いた3次元CG歩行モデルにおける運動モーション識別の研究 A Study on Motion Recognition by Using 3D-CG Pedestrian Model and Alternative Learning,電気学会研究会資料 The Papers of Technical Meeting on "Innovative Industrial System",IEE Japan,日本,電気学会,2018年09月03日,P25-28
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/20
A63B 69/36
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
物体の動作を解析するための学習モデルの生成方法であって、
前記物体の骨格を表すボーンデータを取得することと、
前記ボーンデータに基づいて、前記物体の体型を表す三次元コンピュータ・グラフィックス(CG)データを作成することと、
前記三次元CGデータに基づいて、前記物体の多数の深度画像を作成することと、
前記多数の深度画像にそれぞれ対応する、前記物体における1又は複数の所定の部位の動作を表す多数の動作値を取得することと、
前記三次元CGデータに基づく前記深度画像及びこれに対応する前記動作値の多数のデータセットを教師データとして、距離画像センサにより撮影される前記物体の深度画像を入力とし、前記動作値を出力とするニューラルネットワークを学習させることと
を含み、
前記多数の深度画像を作成することは、同じ1つのシーンにおける前記三次元CGデータに基づいて、視点の異なる複数の深度画像を作成することを含む、
学習モデルの生成方法。
【請求項2】
前記多数の動作値を取得することは、前記ボーンデータ及び前記三次元CGデータの少なくとも一方に基づいて、前記多数の動作値を導出することを含む、
請求項1に記載の学習モデルの生成方法。
【請求項3】
前記三次元CGデータを作成することは、同じ1つの骨格に対し異なる態様で肉付けし、異なる体型を表す前記三次元CGデータを作成することを含む、
請求項1又は2に記載の学習モデルの生成方法。
【請求項4】
前記距離画像センサにより撮影された前記物体の多数の深度画像を取得することと、
前記距離画像センサにより撮影された前記多数の深度画像にそれぞれ対応する、多数の前記動作値を取得することと、
前記三次元CGデータに基づく前記深度画像及びこれに対応する前記動作値の前記多数のデータセットを教師データとして、前記ニューラルネットワークを学習させた後に、前記距離画像センサにより撮影された前記深度画像及びこれに対応する前記動作値の多数のデータセットを教師データとして、前記ニューラルネットワークを学習させることと
をさらに含む、
請求項1からのいずれかに記載の学習モデルの生成方法。
【請求項5】
前記ボーンデータは、ゴルフスイング中のゴルファーの骨格を表すデータである、
請求項1からのいずれかに記載の学習モデルの生成方法。
【請求項6】
物体の動作を解析するための学習モデルの生成装置であって、
前記物体の骨格を表すボーンデータを取得する第1取得部と、
前記ボーンデータに基づいて、前記物体の体型を表す三次元コンピュータ・グラフィックス(CG)データを作成するCG作成部と、
前記三次元CGデータに基づいて、前記物体の多数の深度画像を作成する画像作成部と、
前記多数の深度画像にそれぞれ対応する、前記物体における1又は複数の所定の部位の動作を表す多数の動作値を取得する第2取得部と、
前記三次元CGデータに基づく前記深度画像及びこれに対応する前記動作値の多数のデータセットを教師データとして、距離画像センサにより撮影される前記物体の深度画像を入力とし、前記動作値を出力とするニューラルネットワークを学習させる学習部と
を備え、
前記画像作成部は、同じ1つのシーンにおける前記三次元CGデータに基づいて、視点の異なる複数の深度画像を作成する、
学習モデルの生成装置。
【請求項7】
物体の動作を解析する動作解析装置であって、
前記物体の動作を距離画像センサにより撮影した深度画像を取得する取得部と、
前記取得された深度画像を、請求項1からのいずれかに記載の生成方法を用いて生成された前記ニューラルネットワークに入力することにより、前記動作値を導出する導出部と
を備える、
動作解析装置。
【請求項8】
物体の動作を解析する動作解析方法であって、
前記物体の動作を距離画像センサにより撮影した深度画像を取得することと、
前記取得された深度画像を、請求項1からのいずれかに記載の生成方法を用いて生成された前記ニューラルネットワークに入力することにより、前記動作値を導出することと
を含む、
動作解析方法。
【請求項9】
物体の動作を解析する動作解析プログラムであって、
前記物体の動作を距離画像センサにより撮影した深度画像を取得することと、
前記取得された深度画像を、請求項1からのいずれかに記載の生成方法を用いて生成された前記ニューラルネットワークに入力することにより、前記動作値を導出することと
をコンピュータに実行させる、
動作解析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体の動作を解析するための学習モデルの生成方法及び装置、並びに、同学習モデルを用いて物体の動作を解析する動作解析装置、方法及びプログラムに関する。
【背景技術】
【0002】
従来より、ゴルフスイングをカメラで撮影し、このときの画像に基づいてゴルフスイングを解析する装置が公知である(特許文献1等)。解析の結果は、ゴルファーに適したゴルフクラブのフィッティングや、ゴルファーのフォームの改善、ゴルフ用品の開発等、様々な用途で利用される。また、近年では、深度画像を計測可能な距離画像センサが普及している。特許文献1は、距離画像センサにより撮影された深度画像を、ニューラルネットワークで構成される学習モデルに入力し、同学習モデルから物体の動作を表す動作値を導出することが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-26131号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のように、学習モデルにより解析を行う場合、その解析の精度は、精度のよい学習モデルを構築できるかに依存する。さらに、精度のよい学習モデルを構築できるかは、学習に使用される教師データに依存する。すなわち、教師データの量が少なかったり、あるいは、質的に不十分な教師データしか集められなければ、精度のよい学習モデルを得ることができない。なお、このことは、冒頭に例示したゴルフスイングの解析の場面だけでなく、物体の動作を解析する場面全般に当てはまる。
【0005】
本発明は、精度のよい学習モデルを容易に生成するための方法及び装置、並びに、同学習モデルを用いて物体の動作を解析する動作解析装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
第1観点に係る学習モデルの生成方法は、物体の動作を解析するための学習モデルの生成方法であって、以下の(1)~(5)を含む。
(1)前記物体の骨格を表すボーンデータを取得すること
(2)前記ボーンデータに基づいて、前記物体の体型を表す三次元コンピュータ・グラフィックス(CG)データを作成すること
(3)前記三次元CGデータに基づいて、前記物体の多数の深度画像を作成すること
(4)前記多数の深度画像にそれぞれ対応する、前記物体における1又は複数の所定の部位の動作を表す多数の動作値を取得すること
(5)前記三次元CGデータに基づく前記深度画像及びこれに対応する前記動作値の多数のデータセットを教師データとして、距離画像センサにより撮影される前記物体の深度画像を入力とし、前記動作値を出力とするニューラルネットワークを学習させること
【0007】
第2観点に係る学習モデルの生成方法は、第1観点に係る学習モデルの生成方法であって、(4)は、前記ボーンデータ及び前記三次元CGデータの少なくとも一方に基づいて、前記多数の動作値を導出することを含む。
【0008】
第3観点に係る学習モデルの生成方法は、第1観点又は第2観点に係る学習モデルの生成方法であって、(2)は、同じ1つの骨格に対し異なる態様で肉付けし、異なる体型を表す前記三次元CGデータを作成することを含む。
【0009】
第4観点に係る学習モデルの生成方法は、第1観点から第3観点のいずれかに係る学習モデルの生成方法であって、(3)は、同じ1つのシーンにおける前記三次元CGデータに基づいて、視点の異なる複数の深度画像を作成することを含む。
【0010】
第5観点に係る学習モデルの生成方法は、第1観点から第4観点のいずれかに係る学習モデルの生成方法であって、以下の(6)~(8)をさらに含む。
(6)前記距離画像センサにより撮影された前記物体の多数の深度画像を取得すること
(7)前記距離画像センサにより撮影された前記多数の深度画像にそれぞれ対応する、多数の前記動作値を取得すること
(8)前記三次元CGデータに基づく前記深度画像及びこれに対応する前記動作値の前記多数のデータセットを教師データとして、前記ニューラルネットワークを学習させた後に、前記距離画像センサにより撮影された前記深度画像及びこれに対応する前記動作値の多数のデータセットを教師データとして、前記ニューラルネットワークを学習させること
【0011】
第6観点に係る学習モデルの生成方法は、第1観点から第5観点のいずれかに係る学習モデルの生成方法であって、前記ボーンデータは、ゴルフスイング中のゴルファーの骨格を表すデータである。
【0012】
第7観点に係る学習モデルの生成装置は、物体の動作を解析するための学習モデルの生成装置であって、前記物体の骨格を表すボーンデータを取得する第1取得部と、前記ボーンデータに基づいて、前記物体の体型を表す三次元コンピュータ・グラフィックス(CG)データを作成するCG作成部と、前記三次元CGデータに基づいて、前記物体の多数の深度画像を作成する画像作成部と、前記多数の深度画像にそれぞれ対応する、前記物体における1又は複数の所定の部位の動作を表す多数の動作値を取得する第2取得部と、前記三次元CGデータに基づく前記深度画像及びこれに対応する前記動作値の多数のデータセットを教師データとして、距離画像センサにより撮影される前記物体の深度画像を入力とし、前記動作値を出力とするニューラルネットワークを学習させる学習部とを備える。
【0013】
第8観点に係る動作解析装置は、物体の動作を解析する動作解析装置であって、前記物体の動作を距離画像センサにより撮影した深度画像を取得する取得部と、前記取得された深度画像を、第1観点から第7観点のいずれかに係る生成方法を用いて生成された前記ニューラルネットワークに入力することにより、前記動作値を導出する導出部とを備える。
【0014】
第9観点に係る動作解析方法は、物体の動作を解析する動作解析方法であって、以下のことを含む。また、第10観点に係る動作解析プログラムは、以下のことをコンピュータに実行させる。
(2-1)前記物体の動作を距離画像センサにより撮影した深度画像を取得すること
(2-2)前記取得された深度画像を、第1観点から第7観点のいずれかに係る生成方法を用いて生成された前記ニューラルネットワークに入力することにより、前記動作値を導出すること
【発明の効果】
【0015】
第1観点によれば、物体の骨格を表すボーンデータに基づいて、物体の体型を表す三次元CGデータが作成され、このような三次元CGデータに基づいて、物体の多数の深度画像が作成される。そして、このような多数の深度画像を含む教師データに基づいて、ニューラルネットワークが学習される。以上により、精度のよい学習モデルを容易に生成することが可能になる。
【図面の簡単な説明】
【0016】
図1】本発明の一実施形態に係る学習モデルの学習装置及び動作解析装置(コンピュータ)を含む動作解析システムの全体構成を示す図。
図2】動作解析システムの機能ブロック図。
図3】ゴルファーの身体に取り付けられたマーカーの位置を示す図。
図4】ニューラルネットワークのモデル構成を示す図。
図5】ニューラルネットワークに基づく動作解析処理の流れを示すフローチャート。
図6】正規化された深度画像の例を示す図。
図7】ニューラルネットワークに基づく腰の回転角度の推定値のグラフ。
図8】ニューラルネットワークの学習処理の流れを示すフローチャート。
図9】ボーンデータの例を示す図。
図10】三次元CGデータの例を示す図。
図11】腰の回転角度の導出方法を説明する図。
【発明を実施するための形態】
【0017】
以下、図面を参照しつつ、本発明の一実施形態に係る学習モデルの生成方法及び装置、並びに、動作解析装置、方法及びプログラムについて説明する。以下の実施形態は、ゴルフスイングを解析する場面を例に説明される。
【0018】
<1.動作解析システムの概要>
図1及び図2に、本実施形態に係る動作解析装置であるコンピュータ1を含む動作解析システム100の全体構成図を示す。動作解析システム100は、ゴルファー7によるゴルフクラブ5のスイング動作を深度画像として撮影し、当該深度画像に基づいてスイング動作を解析するためのシステムである。以上の撮影は、距離画像センサ2により行われる。コンピュータ1は、距離画像センサ2とともに動作解析システム100を構成し、距離画像センサ2により取得される深度画像を解析することにより、スイング動作を解析する。コンピュータ1による解析の結果は、ゴルファー7に適したゴルフクラブ5のフィッティングや、ゴルファー7のフォームの改善、ゴルフ用品の開発等、様々な用途で利用される。
【0019】
スイング動作の解析は、深度画像を入力とするニューラルネットワーク8に基づいて行われる。ニューラルネットワーク8は、スイング動作を解析するための学習モデルであり、スイング動作を表す動作値W1を出力する。ニューラルネットワーク8は、事前学習により構築される。
【0020】
以下では、ニューラルネットワーク8に基づく動作の解析だけでなく、ニューラルネットワーク8の学習(学習モデルの生成)についても、動作解析システム100が行うものとする。すなわち、本実施形態に係る動作解析装置として機能するコンピュータ1は、本実施形態に係る学習モデルの生成装置としても機能する。しかしながら、このような動作解析処理と事前の学習処理とは、別々のハードウェアシステムにより実行されてもよい。図1及び図2では、学習処理でのみ使用されるハードウェア構成、具体的には、モーションキャプチャシステム3及び角速度センサ4が、点線で示されている(図1では、モーションキャプチャシステム3は省略されている)。よって、ニューラルネットワーク8が学習され、記憶部13内に保存された後においては、これらの計測装置3及び4は、動作解析システム100から省略することができる。
【0021】
以下、動作解析システム100の各部の詳細について述べた後、ニューラルネットワーク8のモデル構成、ニューラルネットワーク8に基づく動作解析処理、及びニューラルネットワーク8の学習処理について順に説明する。
【0022】
<2.各部の詳細>
<2-1.距離画像センサ>
距離画像センサ2は、測距機能を有するカメラであり、ゴルフクラブ5を試打するゴルファー7までの距離を測定する。従って、距離画像センサ2は、深度画像を出力することができる。深度画像とは、カメラの光軸方向の被写体の奥行きのデータ(深度データ)を、カメラの光軸に直交する撮像範囲内の画素に割り当てた画像である。
【0023】
これに限定されないが、本実施形態で使用される距離画像センサ2では、赤外線を用いたタイムオブフライト方式やドットパターン投影方式等の方式が採用される。従って、図1に示すように、距離画像センサ2は、赤外線を前方に向けて発光するIR発光部21と、IR発光部21から照射され、被写体に反射して戻ってきた赤外線を受光するIR受光部22とを有する。IR受光部22は、光学系及び撮像素子等を有するカメラである。ドットパターン投影方式では、IR発光部21から照射された赤外線のドットパターンをIR受光部22で読み取り、距離画像センサ2内部での画像処理によりドットパターンを検出し、これに基づいて奥行きが計算される。本実施形態では、IR発光部21及びIR受光部22は、同じ筐体20内に収容され、筐体20の前方に配置されている。本実施形態では、距離画像センサ2は、ゴルファー7を正面側から撮影すべく、ゴルファー7の前方に設置され、IR発光部21及びIR受光部22がゴルファー7に向けられている。
【0024】
距離画像センサ2には、距離画像センサ2の動作全体を制御するCPU23の他、撮影された画像データを少なくとも一時的に記憶するメモリ24が内蔵されている。距離画像センサ2の動作を制御する制御プログラムは、メモリ24内に格納されている。また、距離画像センサ2には、通信部25も内蔵されており、通信部25は、撮影された画像データを有線又は無線の通信線17を介して、コンピュータ1等の外部のデバイスへと出力する。本実施形態では、CPU23及びメモリ24も、IR発光部21及びIR受光部22とともに、筐体20内に収納されている。
【0025】
<2-2.コンピュータ>
図2を参照しつつ、コンピュータ1の構成について説明する。コンピュータ1は、ハードウェアとしては汎用のコンピュータであり、例えば、デスクトップ型コンピュータ、ラップトップ型コンピュータ、タブレットコンピュータ、スマートフォンとして実現される。コンピュータ1は、CD-ROM、USBメモリ等のコンピュータで読み取り可能な記録媒体から、或いはインターネット等のネットワークを介して、プログラム6を汎用のコンピュータにインストールすることにより製造される。プログラム6は、距離画像センサ2から送られてくる画像データに基づいてゴルフスイングを解析するためのソフトウェアであり、コンピュータ1に後述する動作を実行させる。また、プログラム6には、コンピュータ1に後述する学習処理を実行させるためのプログラムモジュールも含まれる。
【0026】
コンピュータ1は、表示部11、入力部12、記憶部13、制御部14及び通信部15を備える。これらの部11~15は、互いにバス線16を介して接続されており、相互に通信可能である。表示部11は、液晶ディスプレイ等で構成することができ、ゴルフスイングの解析の結果等をユーザに対し表示する。なお、ここでいうユーザとは、ゴルファー7自身やそのインストラクター、ゴルフ用品の開発者等、ゴルフスイングの解析の結果を必要とする者の総称である。入力部12は、マウス、キーボード、タッチパネル等で構成することができ、コンピュータ1に対するユーザからの操作を受け付ける。
【0027】
記憶部13は、ハードディスク等で構成することができる。記憶部13内には、プログラム6が格納されている。また、記憶部13内には、後述する学習処理で学習され、後述する動作解析処理で使用されるニューラルネットワーク8を定義する情報が格納される。制御部14は、CPU、ROMおよびRAM等から構成することができる。制御部14は、記憶部13内のプログラム6を読み出して実行することにより、仮想的に第1取得部14a、第2取得部14b、第3取得部14c、第4取得部14d、CG作成部14e、画像作成部14f、学習部14g、第5取得部14h、導出部14i及び表示制御部14jとして動作する。各部14a~14jの動作の詳細については、後述する。通信部15は、距離画像センサ2やモーションキャプチャシステム3、角速度センサ4等の外部のデバイスから通信線17を介してデータを受信する通信インターフェースとして機能する。
【0028】
<2-3.モーションキャプチャシステム>
本実施形態では、学習過程で使用される教師データを作成するために、モーションキャプチャシステム3が使用される。モーションキャプチャシステム3は、学習過程でのみ使用される。モーションキャプチャシステム3は、複数台のカメラ31,31,・・・を備える。複数台のカメラ31,31,・・・は、ゴルファー7によるスイング動作の三次元計測が可能なように、ゴルファー7がゴルフクラブ5をスイングする様子を様々な方向から撮影することができる位置に配置される。モーションキャプチャシステム3としては、例えば、VICON社製の三次元動作分析システムを好ましく使用することができる。
【0029】
本実施形態では、カメラ31,31,・・・によりゴルファー7の身体の挙動を捉え易いように、身体における複数の所定の部位にマーカーが取り付けられる。より具体的には、図3に示すように、ゴルファー7の頭、手首、手の指先、肘、肩、腰、膝、踝、脚の指先等の所定の部位に、光反射性の球体のマーカー30,30,・・・が取り付けられる。この例では、マーカー30,30,・・・は、ゴルファー7が着用するボディスーツに取り付けられる。
【0030】
カメラ31,31,・・・は、ゴルファー7がゴルフクラブ5を使用してスイング動作を行う間、その様子を所定のサンプリング周波数で連続撮影する。サンプリング周波数は、例えば、500Hzとすることができる。本実施形態では、少なくともアドレスから、トップ、インパクトを順に経て、フィニッシュまでの時系列の画像データが撮影される。カメラ31,31,・・・による撮影は、同期が取られており、同じ時刻に様々な方向から見たゴルフスイングが撮影される。
【0031】
特に図示されないが、モーションキャプチャシステム3には、カメラ31,31,・・・の他、カメラ31,31,・・・により撮影された画像データを画像処理し、画像データに捉えられた複数のマーカーの位置情報(三次元座標)を算出するコンピュータも搭載されている。また、モーションキャプチャシステム3には、算出された位置情報を、通信線17を介して外部のデバイスであるコンピュータ1に送信するための通信装置も搭載されている。通信装置は、スイング動作の妨げにならないように無線式とすることもできるし、ケーブルを介して有線式にコンピュータ1に接続することもできる。モーションキャプチャシステム3により計測された位置情報は、通信装置を介してリアルタイムにコンピュータ1に送信される。
【0032】
<2-4.角速度センサ>
本実施形態では、学習過程で使用される教師データを作成するために、モーションキャプチャシステム3の他、角速度センサ4も使用される。角速度センサ4も、学習過程でのみ使用される。詳細は後述するが、本実施形態では、動作解析処理において、スイング動作中のゴルファー7の腰の回転動作が解析される。そのため、角速度センサ4は、ゴルファー7の腰に取り付けられ、腰の回転角度の真値を表す教師信号として、角速度データを計測する。角速度センサ4は、三軸角速度センサであり、ここでの角速度データには、三次元直交座標系における角速度の値が含まれる。
【0033】
角速度センサ4は、ゴルファー7がゴルフクラブ5を使用してスイング動作を行う間、その様子を所定のサンプリング周波数で連続計測する。サンプリング周波数は、例えば、1000Hzとすることができる。本実施形態では、角速度センサ4は、少なくともアドレスからフィニッシュまでの時系列の角速度データを計測する。
【0034】
特に図示されないが、角速度センサ4には、通信線17を介して外部のデバイスであるコンピュータ1に角速度データを送信するための通信装置も搭載されている。通信装置は、スイング動作の妨げにならないように無線式とすることもできるし、ケーブルを介して有線式にコンピュータ1に接続することもできる。角速度センサ4により計測された時系列の角速度データは、通信装置を介してリアルタイムにコンピュータ1へ出力される。
【0035】
<3.ニューラルネットワークのモデル構成>
図4は、ニューラルネットワーク8のモデル構成を示す。ニューラルネットワーク8は、上述したとおり、深度画像を入力とし、スイング動作を表す動作値W1を出力とするネットワークである。本実施形態では、ニューラルネットワーク8により、スイング動作中のゴルファー7の腰の回転動作が解析され、より具体的には、腰の回転角度が動作値W1として定量的に導出される。
【0036】
ニューラルネットワーク8のモデル構成は、様々に設計することができ、特に限定されないが、本実施形態では、図4に示す通り、以下のように設計される。ニューラルネットワーク8は、ResNet50と呼ばれるニューラルネットワークであり、畳み込み(図4中、COVと表される)層、バッチノーマライゼーション(図4中、バッチNORMと表される)層、及びプーリング層を経た後、3つの畳み込み層のセットを16回繰り返す、計50層(バッチノーマライゼーション層を除く)の層構成を有する。なお、図4中、各畳み込み層に付されている「数値×数値」は、カーネルのサイズを意味している。また、ResNet50で学習されるデータは、入力と出力との差である残差になるため、3つの畳み込み層を含む各セットの最後では、入力(図4中、x:スキップコネクションで示される)と残差(図4中、F(x)で示される)とが足し合わされる。ResNet50の最終層である、2048個のユニットから構成される全結合層は、1つの出力層に結合され、最終的に、1次元の動作値W1が出力される。
【0037】
<4.ニューラルネットワークに基づく動作解析処理>
以下、図5を参照しつつ、ゴルフスイングの動作解析処理について説明する。既に述べたとおり、本実施形態では、ニューラルネットワーク8に基づいて、スイング動作中のゴルファー7の腰の回転角度を定量的に表す動作値W1が導出される。なお、解析の対象となる深度画像は、動画として時系列に取得される。従って、以下、深度画像を、深度フレームということがあり、単にフレームということもある。
【0038】
まず、ステップS1において、ゴルファー7にゴルフクラブ5を試打させ、このときのスイング動作の様子を距離画像センサ2により動画として撮影する。これにより取得された時系列の深度フレームは、距離画像センサ2からコンピュータ1に送信される。コンピュータ1側では、第5取得部14hが、この深度フレームを取得し、記憶部13内に格納する。
【0039】
続いて、導出部14iは、スイング動作中の各タイミングでの深度フレームを正規化する(ステップS2)。ここでいう正規化とは、ゴルファー7を含む被写体の深度に合わせて、深度フレームの階調のスケール変換を行う処理である。具体的には、導出部14iは、記憶部13内に格納されている時系列の深度フレームを読み出す。このとき、深度フレームの画素値である深度データは、距離画像センサ2の規格に従う階調を有しており、本実施形態では、1画素に16ビットが割り当てられ、各画素は、0~65535の画素値をとる。また、距離画像センサ2の奥行き方向の撮像範囲も、距離画像センサ2の規格により定められている。一方で、ゴルファー7の腰の回転角度を推定するために、ゴルファー7以外の深度データは特に必要とされない。そのため、深度フレームの中からゴルファー7を捉えた領域(以下、人物領域という)に含まれる画素値が、0~65535の範囲内の値をとるように、深度フレームの階調をスケール変換する。
【0040】
距離画像センサ2の設置位置及びゴルファー7の立ち位置は、凡そ固定されている。従って、人物領域において深度データが取り得る値の範囲(以下、人物深度範囲という)を、予め設定することができる。本実施形態では、導出部14iは、深度フレーム内の各画素の画素値(深度データ)を下式に従って、スケール変換する。ただし、人物深度範囲をminz~maxzとし、右辺のzを深度フレーム内の各画素の画素値とする。左辺のzは、変換後の画素値である。
【数1】
【0041】
以上のスケール変換は、深度フレームから人物深度範囲内の画素値を有する領域を抽出する処理である。図6は、以上のスケール変換後のある特定のタイミングでの深度フレームである。同図から分かるように、スケール変換後の深度フレーム内では、主としてゴルファー7以外を捉えた領域、すなわち、背景領域には、画素値「0」(黒色)が与えられる。その結果、以上のスケール変換により、人物領域が抽出される。
【0042】
続いて、導出部14iは、ステップS2で正規化された深度フレームから、スイング動作中の各タイミングでのゴルファー7の腰の近傍の領域(以下、腰領域)を抽出する(ステップS3)。具体的には、導出部14iは、ステップS2で正規化された所定のサイズ(本実施形態では、512×424ピクセル)の深度フレームから、人物領域に外接する矩形領域を抽出し、矩形領域内の所定の位置における所定のサイズ(本実施形態では、128×64ピクセル)の領域を、腰領域として切り出す。スイング動作中の人体を所定の角度から捉えたとき、人体全体の中で腰が占める範囲は概ね定まるため、このような範囲内の領域が腰領域として切り出される。
【0043】
注目される腰の動きと、肩や足、腕等の他の部位の動きとは独立的である。従って、人体全体が写っている画像に基づいてニューラルネットワーク8を学習すると、腰の見え方に対応した特徴の検出の精度が低下する虞がある。また、画像のサイズが大き過ぎると、ニューラルネットワーク8による解析が困難になり得る。ステップS3は、ニューラルネットワーク8に基づいて腰の動作の特徴を精度よく検出できるように、解析の対象となる深度フレームから、腰領域を抽出している。
【0044】
続くステップS4では、導出部14iは、ステップS3で抽出されたスイング動作中の時系列の腰領域の画像を、順次、ニューラルネットワーク8に入力する。これにより、ニューラルネットワーク8の出力層からは、順次、スイング動作を定量的に表す動作値W1、本実施形態では、ゴルファー7の腰の回転角度W1が出力される。なお、本実施形態では、ステップS3までで取得された所定サイズ(本実施形態では、128×64ピクセル)の画像は、所定のサイズ(本実施形態では、64×32ピクセル)まで圧縮された後、ニューラルネットワーク8へ入力される。
【0045】
続いて、導出部14iは、ステップS4で導出された回転角度W1の時系列データの平滑化及び補間を行う(ステップS5)。図7は、5点の移動平均により平滑化し、33ms間隔のデータを1ms間隔のデータに変換するスプライン補間を行った例を示している。これにより、平滑化及び補間された滑らかな回転角度W1の時系列データが取得される。
【0046】
その後、表示制御部14jは、ステップS4及びS5で導出されたスイング動作中の時系列の平滑化及び補完の前後の回転角度W1及びその時系列変化、並びに図7に示すようなこれらのグラフを表示部11上に表示させる(ステップS6)。これにより、ユーザは、ゴルファー7の腰の回転の動作を把握することができる。
【0047】
<5.ニューラルネットワークの学習処理>
次に、図8を参照しつつ、ニューラルネットワーク8の学習処理について説明する。この学習処理では、教師データの作成と、これに基づく学習とが行われる。本実施形態では、転移学習のため、教師データとして、2種類の学習用データセットが作成され、それぞれに基づく学習が行われる。以下、区別のため、ステップS11~S14で取得される学習用データセットを、第1学習用データセットと呼び、これとは別にステップS16及びS17で取得される学習用データセットを、第2学習用データセットと呼ぶことがある。すなわち、本実施形態では、転移学習が行われ、まず、第1学習用データセットに基づきニューラルネットワーク8のパラメータが学習され(ステップS15)、その後、ここで学習されたパラメータを初期値として、第2学習用データセットに基づくさらなる学習(ステップS18)が行われる。
【0048】
具体的には、まず、ゴルファー7にゴルフクラブ5を試打させる。ステップS11では、このときのスイング動作の様子が、モーションキャプチャシステム3により計測され、ゴルファー7の身体に取り付けられた複数のマーカー30の時系列の位置情報が取得される。ここでは、モーションキャプチャシステム3に含まれる複数台のカメラ31,31,・・・により同時に異なる視点から撮影が行われ、位置情報として三次元座標が取得される。以上の通りに計測された複数のマーカー30の時系列の位置情報は、モーションキャプチャシステム3からコンピュータ1に送信される。コンピュータ1側では、第1取得部14aが、この位置情報を取得し、記憶部13内に格納する。
【0049】
第1取得部14aは、記憶部13内に格納された複数のマーカー30の時系列の位置情報を順次処理することにより、ゴルフスイング中のゴルファー7の身体の骨格を表す時系列のボーンデータD1を取得する。ボーンデータD1とは、典型的には、図9に示す通り、複数のジョイント(関節)とこれらを連結するボーン(骨)とを組み合わせたデータであり、全体として物体の骨格を表し、スケルトンデータと呼ばれることもある。第1取得部14aは、ゴルファー7の身体においてマーカー30が取り付けられた複数の所定の部位の三次元座標を適宜連結することにより、ボーンデータD1を作成する。
【0050】
続くステップS12では、CG作成部14eは、時系列のボーンデータD1を順次、最適化することにより、ゴルフスイング中のゴルファー7の体型を表す時系列の三次元コンピュータ・グラフィックス(CG)データD2(図10参照)を作成する。より具体的には、CG作成部14eは、予め用意されている体型を規定する体型データをボーンデータD1に適用し、ボーンデータD1により表される骨格を肉付けすることにより、ゴルファー7の体型を再現する。ここでは、同じ1つの骨格に対し異なる態様で肉付けが行われ、同じ1つの骨格を表すボーンデータD1から、異なる体型を表す三次元CGデータD2が作成される。例えば、同じ1つの骨格を表すボーンデータD1から、「太っている」「普通」及び「痩せている」タイプ等、複数の体型に対応する三次元CGデータD2が作成される。
【0051】
続くステップS13では、画像作成部14fは、時系列の三次元CGデータD2に基づいて、ゴルフスイング中のゴルファー7の身体の多数の深度画像を作成する。より具体的には、三次元CGデータD2により表されるゴルファー7の身体を、所定の方向から視たときの深度画像が作成される。ここでいう所定の方向とは、典型的には、動作解析処理において距離画像センサ2がゴルファー7のスイング動作を撮影するときの方向である。
【0052】
本実施形態では、同じ1つのシーン(タイミング)における三次元CGデータD2から、視点の異なる複数の深度画像が作成される。例えば、同じ1つのシーンを表す三次元CGデータD2から、ゴルファー7に対する方向は同じであるが、ゴルファー7までの距離が異なる複数の視点にそれぞれ対応する複数の深度画像が作成される。また、同じ1つのシーン(タイミング)を表す三次元CGデータD2から、上述した所定の方向からやや左右にずれた複数の視点にそれぞれ対応する複数の深度画像が作成される。
【0053】
本実施形態では、以上の通りに作成された各深度画像を、動作解析処理に含まれるステップS2及びS3と同様に正規化し、腰領域の画像を抽出する。すなわち、動作解析処理においてニューラルネットワーク8に入力される深度画像と同様の深度画像を用意する。以下、ここで正規化され、取得された腰領域の画像も、単に深度画像と呼ぶことがある。
【0054】
続くステップS14では、第2取得部14bは、ステップS13で作成された多数の深度画像(正規化された腰領域の画像)にそれぞれ対応する、多数の動作値W1を取得する。ここでいう動作値W1とは、上記の通り、ゴルフスイング中のゴルファー7の腰の回転角度である。本実施形態では、ここでの動作値W1は、ボーンデータD1及び/又は三次元CGデータD2に基づいて導出される。より具体的には、ボーンデータD1及び/又は三次元CGデータD2から、左股関節及び右股関節(図9及び図10において実線の丸印で示される)の三次元座標を取得し、図11に示すように、平面視においてこれらを結ぶ直線の基準線に対する傾きθを導出し、これを腰の回転角度W1とする。第2取得部14bは、ステップS11で取得された時系列のボーンデータD1及び/又はステップS12で作成された時系列の三次元CGデータD2から順次、動作値W1を導出し、各動作値W1を、ステップS13で同じデータD1及び/又はD2から作成された深度画像に関連付ける。これにより、三次元CGデータD2に基づく深度画像と、これに対応する動作値W1との組み合わせである第1学習用データセットが多数用意される。
【0055】
続くステップS15では、学習部14gは、多数の第1学習用データセットを教師データとして、ニューラルネットワーク8を学習させる。より具体的には、学習部14gは、第1学習用データセットに含まれる深度画像(正規化された腰領域の画像)を現在のニューラルネットワーク8に入力し、出力値として動作値W1を取得し、この動作値W1と、同じ第1学習用データセットに含まれる動作値W1との誤差を最小化するように、ニューラルネットワーク8のパラメータを更新する。そして、ステップS11~S14で作成された多数の第1学習用データセットを次々と適用しながら、ニューラルネットワーク8を最適化してゆく。
【0056】
続くステップS16では、第3取得部14cは、ゴルファー7によるゴルフスイング中に距離画像センサ2により撮影された多数の深度画像を取得する。具体的には、ステップS11と同様に、ゴルファー7にゴルフクラブ5を試打させる。ステップS16では、このときのスイング動作の様子が、距離画像センサ2により動画として撮影される。以上の通りに計測された時系列の深度フレームは、距離画像センサ2からコンピュータ1に送信される。コンピュータ1側では、第3取得部14cが、この画像データを取得し、記憶部13内に格納する。なお、ステップS16における距離画像センサ2による計測は、ステップS11における計測と同時に、同じゴルファー7によるゴルフスイングに対し実行されてもよい。
【0057】
本実施形態では、以上の通りに取得された各深度画像を、動作解析処理に含まれるステップS2及びS3と同様に正規化し、腰領域の画像を抽出する。すなわち、動作解析処理においてニューラルネットワーク8に入力される深度画像と同様の深度画像を用意する。以下、ここで正規化され、取得された腰領域の画像も、単に深度画像と呼ぶことがある。
【0058】
続くステップS17では、第4取得部14dは、ステップS16で取得された多数の深度画像(正規化された腰領域の画像)にそれぞれ対応する、多数の動作値W1を取得する。ここでいう動作値W1とは、上記の通り、ゴルフスイング中のゴルファー7の腰の回転角度である。本実施形態では、ここでの動作値W1は、角速度センサ4により計測された時系列の角速度データに基づいて取得される。より具体的には、ステップS16において距離画像センサ2によりゴルフスイングが撮影される間、角速度センサ4による計測も行われる。このとき、角速度センサ4は、ゴルフスイング中のゴルファー7の腰の回転角度を表す角速度データを連続的に計測する。こうして計測された時系列の角速度データは、角速度センサ4からコンピュータ1に送信される。コンピュータ1側では、第4取得部14dが、この角速度データを取得し、記憶部13内に格納する。
【0059】
第4取得部14dは、ステップS16で取得された各深度画像(正規化された腰領域の画像)に対し、同深度画像が距離画像センサ2により撮影されたタイミングで取得された角速度データを関連付ける。これにより、距離画像センサ2により撮影された深度画像と、これに対応する動作値W1との組み合わせである第2学習用データセットが多数用意される。
【0060】
続くステップS18では、ステップS15と同様に、学習部14gは、多数の第2学習用データセットを教師データとして、ニューラルネットワーク8を学習させる。より具体的には、学習部14gは、第2学習用データセットに含まれる深度画像(正規化された腰領域の画像)を現在のニューラルネットワーク8に入力し、出力値として動作値W1を取得し、この動作値W1と、同じ第2学習用データセットに含まれる動作値W1との誤差を最小化するように、ニューラルネットワーク8のパラメータを更新する。そして、ステップS16及びS17で作成された多数の第2学習用データセットを次々と適用しながら、ニューラルネットワーク8を最適化してゆく。以上により、学習処理が終了する。
【0061】
<6.変形例>
以上、本発明のいくつかの実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて、種々の変更が可能である。例えば、以下の変更が可能である。また、以下の変形例の要旨は、適宜組み合わせることができる。
【0062】
<6-1>
上記実施形態では、ゴルフスイングが解析されたが、解析の対象はこれに限られず、同様の方法で、テニスや野球等の打具のスイング動作を解析することもできる。また、スイング動作に含まれる人体の動作に代えて又は加えて、スイング動作に含まれる打具の動作を解析の対象とすることができる。また、解析の対象は、スポーツの動作でなくても、人体の動作でなくてもよく、任意の物体の任意の動作を解析の対象とすることができる。
【0063】
<6-2>
ニューラルネットワーク8から出力される動作値W1は、注目部位の回転角度に限られず、注目部位の位置(座標)、回転速度、回転加速度、速度及び加速度等であってもよい。また、注目部位も、ゴルファー7の腰に限られず、ゴルファー7の肩、腕、頭、重心等であってもよい。また、ニューラルネットワーク8の出力として、複数の部位の動作値W1が導出されてもよい。例えば、身体の多数の所定の部位の位置情報(座標)のセットが導出されてもよいし、身体における多数の関節の位置情報(座標)を含むボーンデータが導出されてもよい。
【0064】
例えば、動作値W1として、肩の回転角度を導出する場合を考える。この場合、動作解析処理では、ステップS3で、深度フレームから肩の近傍の領域(肩領域)の画像を抽出し、ステップS4で、これをニューラルネットワーク8に入力すればよい。また、これに先立つ学習処理では、ステップS13で、肩領域の深度画像を用意し、ステップS14で、これに対応する動作値W1として、ボーンデータD1及び/又は三次元CGデータD2から肩の回転角度を導出すればよい。このとき、ボーンデータD1及び/又は三次元CGデータD2から左肩及び右肩の三次元座標を取得し、平面視においてこれらを結ぶ直線の基準線に対する傾きθを導出し、これを肩の回転角度W1とすることができる。さらに、ステップS16でも、肩領域の深度画像を用意し、ステップS17で、これに対応する動作値W1として、肩の回転角度を取得すればよい。ここでの肩の回転角度は、例えば、角速度センサ4をゴルファー7の腰から肩に付け替えておくことにより、角速度センサ4から取得することができる。
【0065】
以上の例のように、動作解析処理で動作値W1として、身体における多数の関節の位置情報(二次元又は三次元座標)が導出される場合、これらの位置情報は、身体の重心の位置情報(二次元又は三次元座標)を導出することに利用することができる。この場合、動作解析処理では、ステップS3で、深度フレームから主としてゴルファーの占める領域(人物領域)の画像を抽出し、ステップS4で、これをニューラルネットワーク8に入力すればよい。また、これに先立つ学習処理では、ステップS13で、人物領域の深度画像を用意し、ステップS14で、これに対応する動作値W1として、ボーンデータD1及び/又は三次元CGデータD2から身体における多数の関節の位置情報を導出すればよい。さらに、ステップS16でも、人物領域の深度画像を用意し、ステップS17で、これに対応する動作値W1として、例えば距離画像センサ2による計測と同時に行ったモーションキャプチャシステム3による計測の結果に基づいて、身体における多数の関節の位置情報を取得すればよい。
【0066】
そして、動作解析処理で動作値W1として導出された多数の関節の位置情報に基づいて、身体の重心の位置情報が導出される。このとき、例えば、身体を頭部、胴部、左右の上腕、左右の前腕、左右の手、左右の大腿、左右の下腿、及び左右の足の14個の部位(以下、分割部位という)に仮想的に分ける。そして、予め、男女別に、身体全体に対する各部位の質量比と、各部位において重心が存在する位置を規定する割合である重心位置比とを定めておく。そして、これらの質量比及び重心位置比と、動作解析処理で導出された動作値W1とから、身体の重心の位置情報(座標)を導出することができる。より具体的には、例えば、頭部の重心位置比が46%とする。この場合、頭部の重心位置のx座標は、(頭部の頂点のx座標)+0.46×(頭部の頂点のx座標-首のx座標)として導出され、頭部の重心位置のy及びz座標についても、同様に導出される。頭部の頂点及び首のx,y及びz座標は、動作値W1に含まれる。同様にして、14個の分割部位の重心の三次元座標を算出する。ここで、14個の分割部位の質量比をそれぞれ、m1,m2,・・・,m14とする。また、14個の分割部位の重心の三次元座標をそれぞれ、(x1,y1,z1),(x2,y2,z2),・・・,(x14,y14,z14)とする。このとき、身体の重心の三次元座標は、以下の通り算出される。
【数2】
【0067】
<6-3>
上記実施形態では、ボーンデータは、モーションキャプチャシステム3により取得された位置情報から取得されたが、例えば、距離画像センサの1つであるKinect(登録商標)は、深度フレームからスケルトンデータを導出し、これを深度フレームとともに出力する機能を有している。よって、このようなスケルトンデータを、上記のボーンデータとして使用することもできる。
【0068】
<6-4>
上記実施形態では、ニューラルネットワーク8に入力される画像は、1枚の深度画像であった。しかしながら、時系列の複数枚の深度画像をセットとしてニューラルネットワーク8に入力するようにしてもよい。例えば、連続的に撮影された3枚の深度画像を、RGBのように1つのセットにすることができる。この場合、動作値W1の時間変化も考慮に入れて、ニューラルネットワーク8を学習させることができ、動作値W1の予測精度が向上する。
【符号の説明】
【0069】
1 コンピュータ(学習モデルの生成装置、動作解析装置)
14a 第1取得部
14b 第2取得部
14c 第3取得部
14d 第4取得部
14e CG作成部
14f 画像作成部
14g 学習部
14h 第5取得部(取得部)
14i 導出部
14j 表示制御部
2 距離画像センサ
3 モーションキャプチャシステム
4 角速度センサ
5 ゴルフクラブ
6 プログラム(動作解析プログラム)
7 ゴルファー(物体)
8 ニューラルネットワーク
100 動作解析システム
D1 ボーンデータ
D2 三次元CGデータ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11