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

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

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

<>
  • 特開-動作解析装置 図1
  • 特開-動作解析装置 図2
  • 特開-動作解析装置 図3
  • 特開-動作解析装置 図4
  • 特開-動作解析装置 図5
  • 特開-動作解析装置 図6
  • 特開-動作解析装置 図7
  • 特開-動作解析装置 図8
  • 特開-動作解析装置 図9
  • 特開-動作解析装置 図10
  • 特開-動作解析装置 図11
  • 特開-動作解析装置 図12
  • 特開-動作解析装置 図13
  • 特開-動作解析装置 図14
  • 特開-動作解析装置 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024063332
(43)【公開日】2024-05-13
(54)【発明の名称】動作解析装置
(51)【国際特許分類】
   G06V 10/82 20220101AFI20240502BHJP
   G06T 7/00 20170101ALI20240502BHJP
【FI】
G06V10/82
G06T7/00 350C
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022171177
(22)【出願日】2022-10-26
(71)【出願人】
【識別番号】000183233
【氏名又は名称】住友ゴム工業株式会社
(71)【出願人】
【識別番号】593006630
【氏名又は名称】学校法人立命館
(74)【代理人】
【識別番号】100104134
【弁理士】
【氏名又は名称】住友 慎太郎
(74)【代理人】
【識別番号】100156225
【弁理士】
【氏名又は名称】浦 重剛
(74)【代理人】
【識別番号】100168549
【弁理士】
【氏名又は名称】苗村 潤
(74)【代理人】
【識別番号】100200403
【弁理士】
【氏名又は名称】石原 幸信
(74)【代理人】
【識別番号】100206586
【弁理士】
【氏名又は名称】市田 哲
(72)【発明者】
【氏名】永野 祐樹
(72)【発明者】
【氏名】植田 勝彦
(72)【発明者】
【氏名】島田 伸敬
(72)【発明者】
【氏名】白井 良明
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA09
5L096CA04
5L096FA64
5L096FA66
5L096FA69
5L096HA02
5L096HA11
5L096KA04
5L096KA15
(57)【要約】
【課題】 物体の動作を定量的に表す動作値を、高い精度で出力することが可能な動作解析装置を提供する。
【解決手段】 物体の動作を解析するための動作解析装置などである。この動作解析装置は、物体の動作が距離画像センサによって撮影された少なくとも1枚の深度画像21を取得する取得部と、深度画像21を入力することにより、物体の動作を定量的に表す動作値を出力可能な導出部とを含む。導出部は、物体の位置データについての第1損失関数、及び、物体の部位の長さデータについての第2損失関数を含む損失関数の値が小さくなるように機械学習されたニューラルネットワーク31を含む。
【選択図】図7
【特許請求の範囲】
【請求項1】
物体の動作を解析するための動作解析装置であって、
前記物体の動作が距離画像センサによって撮影された少なくとも1枚の深度画像を取得する取得部と、
前記深度画像を入力することにより、前記物体の動作を定量的に表す動作値を出力可能な導出部とを含み、
前記導出部は、前記物体の位置データについての第1損失関数、及び、前記物体の部位の長さデータについての第2損失関数を含む損失関数の値が小さくなるように機械学習されたニューラルネットワークを含む、
動作解析装置。
【請求項2】
前記ニューラルネットワークは、前記物体の動作を撮影又は再現した複数の画像と、前記複数の画像それぞれの前記位置データ及び前記長さデータとを含む教師データに基づいて学習されている、請求項1に記載の動作解析装置。
【請求項3】
前記物体は、一対のリンクと、これを繋ぐ関節を有する移動体であり、
前記位置データは、前記関節の位置データを含み、
前記第1損失関数は、前記複数の画像から選択される少なくとも1枚の画像について、前記ニューラルネットワークから出力された前記関節の位置データの導出値と、前記教師データの前記関節の位置データの真値との差分に基づいて定義される、請求項2に記載の動作解析装置。
【請求項4】
前記移動体は、人体である、請求項3に記載の動作解析装置。
【請求項5】
前記第1損失関数は、下記の式(1)で定義される、請求項3又は4に記載の動作解析装置。
【数1】
ここで、
coordinate:第1損失関数
kx:関節のX座標の導出値
ky:関節のY座標の導出値
kz:関節のZ座標の導出値
kx:関節のX座標の真値
ky:関節のY座標の真値
kz:関節のZ座標の真値
k:関節を特定するための添字
c:関節の合計数
【請求項6】
前記物体は、一対のリンクと、これを繋ぐ関節を有する移動体であり、
前記長さデータは、前記一対のリンクの少なくとも一方のリンクの長さデータを含み、
前記第2損失関数は、前記複数の画像から選択された第1画像及び第2画像について、前記ニューラルネットワークから出力された前記第1画像の前記少なくとも一方のリンクの長さの導出値、及び、前記第2画像の前記少なくとも一方のリンクの長さの導出値との差分に基づいて定義される、請求項2又は3に記載の動作解析装置。
【請求項7】
前記第2損失関数は、下記の式(2)で定義される、請求項6に記載の動作解析装置。
【数2】
ここで、
constraint:第2損失関数
j1:第1画像のリンクの長さの導出値
j2:第2画像のリンクの長さの導出値
j:リンクを特定するための添字
μ:許容率
b:リンクの合計数
【請求項8】
前記物体は、一対のリンクと、これを繋ぐ関節を有する移動体であり、
前記長さデータは、前記一対のリンクの少なくとも一方のリンクの長さデータを含み、
前記第2損失関数は、前記複数の画像から選択された第1画像について、前記ニューラルネットワークから出力された前記少なくとも一方のリンクの長さの導出値、及び、前記第1画像の前記少なくとも一方のリンクの長さの真値との差分に基づいて定義される、請求項2又は3に記載の動作解析装置。
【請求項9】
前記第2損失関数は、下記の式(3)で定義される、請求項8に記載の動作解析装置。
【数3】
ここで、
constraint:第2損失関数
j1:第1画像のリンクの長さの導出値
j3:第1画像のリンクの長さの真値
j:リンクを特定するための添字
μ:許容率
b:リンクの合計数
【請求項10】
前記ニューラルネットワークを機械学習させる学習部をさらに備える、請求項1又は2に記載の動作解析装置。
【請求項11】
前記物体は、ゴルフクラブを把持したゴルファである、請求項1又は2に記載の動作解析装置。
【請求項12】
前記動作は、ゴルフスイングである、請求項11に記載の動作解析装置。
【請求項13】
物体の動作を解析するための学習モデルの生成方法であって、
教師データを用いてニューラルネットワークを学習させる工程を含み、
前記工程は、前記物体の動作を撮影又は再現した複数の画像と、前記複数の画像それぞれの前記物体の位置データ及び前記物体の部位の長さデータとを含む前記教師データを準備する工程と、
前記教師データに基づいて、前記物体の位置データについての第1損失関数、及び、前記物体の部位の長さデータについての第2損失関数を含む損失関数の値が小さくなるように、前記ニューラルネットワークを機械学習させる工程とを含む、
学習モデルの生成方法。
【請求項14】
物体の動作を解析するための方法であって、
前記物体の動作が距離画像センサによって撮影された少なくとも1枚の深度画像を取得する工程と、
前記深度画像をニューラルネットワークに入力することにより、前記物体の動作を定量的に表す動作値を出力する工程とを含み、
前記ニューラルネットワークは、前記物体の位置データについての第1損失関数、及び、前記物体の部位の長さデータについての第2損失関数を含む損失関数の値が小さくなるように機械学習されている、
動作解析方法。
【請求項15】
物体の動作を解析するためのコンピュータプログラムであって、
コンピュータを、
前記物体の動作が距離画像センサによって撮影された少なくとも1枚の深度画像を取得する手段と、
前記深度画像をニューラルネットワークに入力することにより、前記物体の動作を定量的に表す動作値を出力する手段として機能させ、
前記ニューラルネットワークは、前記物体の位置データについての第1損失関数、及び、前記物体の部位の長さデータについての第2損失関数を含む損失関数の値が小さくなるように機械学習されている、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動作解析装置などに関する。
【背景技術】
【0002】
下記特許文献1には、動作解析装置が記載されている。この装置は、物体の動作を距離画像センサにより撮影した深度画像を取得する取得部と、物体の動作を定量的に表す動作値を出力とするニューラルネットワークに、取得部により取得された深度画像を入力することにより、動作値を導出する導出部とを備えている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018-026131号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の装置は、物体の動作を撮影した深度画像から、その物体の動作値を出力するにあたり、出力精度のさらなる向上が求められている。
【0005】
本発明は、以上のような実状に鑑み案出されたもので、物体の動作を定量的に表す動作値を、高い精度で出力することが可能な動作解析装置を提供することを主たる目的としている。
【課題を解決するための手段】
【0006】
本発明は、物体の動作を解析するための動作解析装置であって、前記物体の動作が距離画像センサによって撮影された少なくとも1枚の深度画像を取得する取得部と、前記深度画像を入力することにより、前記物体の動作を定量的に表す動作値を出力可能な導出部とを含み、前記導出部は、前記物体の位置データについての第1損失関数、及び、前記物体の部位の長さデータについての第2損失関数を含む損失関数の値が小さくなるように機械学習されたニューラルネットワークを含む、動作解析装置である。
【発明の効果】
【0007】
本発明の動作解析装置は、上記の構成を採用することにより、物体の動作を定量的に表す動作値を、高い精度で出力することが可能となる。
【図面の簡単な説明】
【0008】
図1】本実施形態の動作解析装置を含む動作解析システムを概念的に示す構成図である。
図2】本実施形態の動作解析装置を示すブロック図である。
図3】本実施形態の動作解析方法の処理手順を示すフローチャートである。
図4】複数の深度画像を含む深度画像群を示す図である。
図5】(a)は正規化される前の深度画像、(b)は正規化された深度画像である。
図6】人体の関節及び部位等の位置データの説明図である。
図7】学習モデルの概念図である。
図8】深度画像の動作値を示す図である。
図9】左手の位置データと時間との関係を示すグラフである。(a)は、奥行方向(X軸方向)の位置データ、(b)は、飛球線方向(Y軸方向)の位置データ、及び、(c)は、高さ方向(Z軸方向)の位置データを示している。
図10】本実施形態の学習モデルの生成方法の処理手順の一例を示すフローチャートである。
図11】本実施形態の学習工程の処理手順を示すフローチャートである。
図12】複数の画像からなる画像群を示す図である。
図13】位置データ群(ボーンデータ群)を示す図である。
図14】物体モデルを示す図である。
図15】ニューラルネットワークに入力される画像と、ニューラルネットワークから導出された関節の位置データの導出値とを示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態が図面に基づき説明される。図面は、発明の内容の理解を助けるために、誇張表現や、実際の構造の寸法比とは異なる表現が含まれることが理解されなければならない。また、各実施形態を通して、同一又は共通する要素については同一の符号が付されており、重複する説明が省略される。さらに、実施形態及び図面に表された具体的な構成は、本発明の内容理解のためのものであって、本発明は、図示されている具体的な構成に限定されるものではない。
【0010】
[動作解析システム]
本実施形態の動作解析装置(動作解析システム)は、物体の動作の解析に用いられる。図1は、本実施形態の動作解析装置2を含む動作解析システム1を概念的に示す構成図である。
【0011】
物体3は、動作するものであれば、特に限定されない。本実施形態の物体3は、一対のリンク(図示省略)と、これを繋ぐ関節(図示省略)を有する移動体4である場合が例示される。移動体4は、リンクと関節とを有するものであれば、特に限定されない。移動体4の一例には、人体、生体(人体を除く)、及び、機械等が挙げられる。生体には、例えば、哺乳類、鳥類、爬虫類、両生類、魚類、及び、昆虫等の生体が含まれる。機械には、例えば、ロボット等が含まれる。本実施形態の移動体4は、人体である場合が例示される。したがって、本実施形態のリンクは、関節に繋がる骨によって構成される。
【0012】
動作は、物体3による動きであれば、特に限定されない。動作の一例には、スポーツや作業等をしている人体の動き等が挙げられる。スポーツの一例には、ゴルフ、テニス、バドミントン、卓球、野球、バレーボール及び剣道等が挙げられる。
【0013】
本実施形態では、物体3(移動体4)がゴルフクラブを把持したゴルファ5であり、動作がゴルファ5によるゴルフスイング(例えば、ゴルフクラブを用いたボールの打撃等)である場合が例示される。したがって、本実施形態の動作解析装置2は、ゴルファ5によるゴルフスイングの解析に好適に用いられ得る。解析結果は、例えば、ゴルフクラブのフィッティング、ゴルフスイングの改善、及び、ゴルフ用品の開発等に利用され得る。なお、物体がゴルファ5に限定されるわけではなく、また、動作がゴルファ5によるゴルフスイングに限定されるわけではない。物体及び動作は、上述の態様に変更ないし適用可能なことはいうまでもない。
【0014】
本実施形態の動作解析システム1は、動作解析装置2と、距離画像センサ6とを含んで構成される。動作解析システム1(動作解析装置2)は、後述の動作解析方法や、学習モデルの生成方法の実行に用いられる。
【0015】
[距離画像センサ]
距離画像センサ6は、ゴルファ5の動作を撮影するためのものである。本実施形態の距離画像センサ6は、ゴルファ5の前方に設置されている。これにより、距離画像センサ6は、ゴルファ5によるゴルフスイングを正面側から撮影することができる。
【0016】
本実施形態の距離画像センサ6は、三次元計測カメラである。このような距離画像センサ6は、ゴルファ5がゴルフスイングする様子を二次元画像として撮影し、ゴルファ5を含む被写体までの距離を測定する測距機能を有している。したがって、本実施形態の距離画像センサ6は、二次元画像と、深度画像とを出力することができる。
【0017】
二次元画像とは、撮影空間の像をカメラの光軸に直交する平面内へ投影した画像である。深度画像とは、二次元画像と略同じ撮像範囲内の画素に、カメラの光軸方向の被写体の奥行きのデータ(深度データ)を割り当てた画像である。
【0018】
本実施形態の距離画像センサ6では、二次元画像が、赤外線画像として撮影される。深度画像は、赤外線を用いたタイムオブフライト方式やドットパターン投影方式等により取得される。このような距離画像センサ6には、例えば、特許文献1の距離画像センサと同一のものが用いられうる。本実施形態の距離画像センサ6には、例えば、マイクロソフト社製のKinect(登録商標)が用いられうる。
【0019】
本実施形態の距離画像センサ6は、通信線(有線又は無線)7を介して、動作解析装置2と通信可能に接続されている。これにより、距離画像センサ6で撮影された深度画像が、動作解析装置2に送信されうる。なお、深度画像の送信は、このような通信線7に限定されるわけではなく、例えば、通信ネットワーク(WAN(Wide Area Network)やLAN(Local Area Network)等)を介して、距離画像センサ6と、動作解析装置2とが接続されてもよい。また、距離画像センサ6と動作解析装置2とが接続されない場合には、例えば、フラッシュメモリ等の記憶メディア(図示省略)等を介して、距離画像センサ6で撮影された深度画像が、動作解析装置2に入力されてもよい。
【0020】
[動作解析装置]
動作解析装置2は、例えば、コンピュータ8によって構成される。コンピュータ8の一例には、デスクトップ型コンピュータ、ノート型コンピュータ、タブレットコンピュータ、スマートフォン、及び、クラウドサーバ等が挙げられる。本実施形態のコンピュータ8には、デスクトップ型コンピュータが採用される。図2は、本実施形態の動作解析装置2を示すブロック図である。
【0021】
本実施形態の動作解析装置2は、例えば、入力装置11と、出力装置12と、通信装置13と、演算処理装置14とを含んで構成されている。
【0022】
[入力装置・出力装置]
入力装置11には、例えば、図1に示したキーボード11aやマウス11b等が用いられる。出力装置12には、例えば、図1に示したディスプレイ12aやプリンタ(図示省略)等が用いられる。
【0023】
[通信装置]
本実施形態の通信装置13には、通信線7(図1に示す)が接続される。これにより、通信装置13(動作解析装置2)は、距離画像センサ6(図1に示す)によって撮影された深度画像を、通信線7を介して取得(受信)することが可能となる。また、本実施形態の通信装置13(動作解析装置2)は、例えば、距離画像センサ6を制御するための信号を、通信線7を介して距離画像センサ6に送信しうる。
【0024】
[演算処理装置]
本実施形態の演算処理装置14は、例えば、各種の演算を行う演算部(CPU)15、データやプログラム等が記憶される記憶部16、及び、作業用メモリ17を含んで構成されている。
【0025】
[記憶部]
記憶部16は、例えば、磁気ディスク、光ディスク又はSSD等からなる不揮発性の情報記憶装置である。本実施形態の記憶部16には、データ部18及びプログラム部19が含まれる。
【0026】
[データ部]
データ部18は、物体の動作の解析に必要なデータ(情報)や、解析結果等を記憶するためのものである。本実施形態のデータ部18には、深度画像入力部18a、動作値入力部18b、及び、教師データ入力部18cが含まれる。なお、データ部18は、このような態様に限定されるわけではなく、これらの一部が省略されてもよいし、その他のデータが記憶されるデータ部が含まれてもよい。これらのデータ部18に入力されるデータの詳細は、後述される。
【0027】
[プログラム部]
プログラム部19は、物体の動作の解析に必要なプログラム(コンピュータプログラム)である。プログラム部(プログラム)19は、演算部15によって実行されることにより、コンピュータ8を、特定の手段として機能させることができる。
【0028】
本実施形態のプログラム部19には、取得部19a、導出部19b、出力部19c及び学習部19dが含まれる。なお、プログラム部19は、このような態様に限定されるわけではなく、これらの一部が省略されてもよいし、その他の機能を有するプログラム部が含まれてもよい。例えば、導出部19bに、学習済みのニューラルネットワークが含まれている場合には、ニューラルネットワークを機械学習する必要がないため、学習部19dが省略されてもよい。これらのプログラム部19の機能の詳細は、後述される。
【0029】
[動作解析方法]
次に、物体の動作を解析するための動作解析方法が説明される。本実施形態の動作解析方法では、図1に示したゴルファ5によるゴルフスイングが解析される。図3は、本実施形態の動作解析方法の処理手順を示すフローチャートである。本実施形態の動作解析方法の各工程は、図1及び図2に示した動作解析装置2(コンピュータ8)によって実行される。
【0030】
[複数の深度画像を取得]
本実施形態の動作解析方法は、先ず、少なくとも1枚の深度画像を取得する(工程S1)。深度画像は、図1に示したゴルファ5によるゴルフスイングを、距離画像センサ6によって撮影することで取得されうる。
【0031】
本実施形態の工程S1では、先ず、図2に示したプログラム部19に含まれる取得部19aが、作業用メモリ17に読み込まれる。取得部19aは、ゴルファ5によるゴルフスイングが距離画像センサ6によって撮影された少なくとも1枚の深度画像を取得するためのプログラムである。この取得部19aが、演算部15によって実行されることで、コンピュータ8を、少なくとも1枚の深度画像を取得する手段として機能させることができる。
【0032】
本実施形態の工程S1では、先ず、図1に示されるように、ゴルファ5にゴルフスイングさせて、そのゴルフスイングが、距離画像センサ6によって撮影される。撮影は、オペレータ等が行ってもよいし、動作解析装置2(コンピュータ8)が行ってもよい。
【0033】
本実施形態では、ゴルファ5によるゴルフスイングが、動画として撮影される。これにより、ゴルフスイングが、時系列で連続的に撮影された複数の深度画像を含む深度画像群として取得されうる。図4は、複数の深度画像21を含む深度画像群22を示す図である。図4では、深度画像群22に含まれる複数の深度画像21のうち、一部の深度画像21のみが示されており、他の深度画像が省略(「…」で表示)されている。
【0034】
本実施形態の深度画像群22には、ゴルファ5によるゴルフスイングの開始から終了までを、時系列で連続的に撮影された複数の深度画像21が含まれる。より具体的には、本実施形態の深度画像群22は、ゴルファ5のアドレスからインパクトを経てフィニッシュまでの動作が記録された複数の深度画像21を含む。これらの深度画像21は、予め定められた第1時間間隔T1で撮影される。第1時間間隔T1は、特に限定されるわけではなく、例えば、図1に示した距離画像センサ6の仕様等に基づいて設定される。本実施形態の第1時間間隔T1は、33msである。
【0035】
距離画像センサ6は、一般的なカメラとは異なり、ゴルファ5によるゴルフスイングが左右反転した状態で撮影(ミラー処理)される場合がある。この場合、複数の深度画像21に、左右を反転(再反転)させる画像処理がそれぞれ行われるのが好ましい。
【0036】
複数の深度画像21は、それぞれ正規化されているのが好ましい。ここで、正規化とは、ゴルファ5を含む被写体の深度に合わせて、深度フレームの階調のスケール変換を行う処理である。このような正規化は、上記特許文献1の段落「0053」~「0055」に記載の手順に基づいて行われる。正規化の一例として、図5(a)は、正規化される前の深度画像21を示し、図5(b)は、図5(a)の深度画像21を正規化した深度画像21を示す。
【0037】
本実施形態では、図5(a)に示した深度画像21が正規化されることで、図5(b)に示されるように、主としてゴルファ5以外を捉えた領域(背景領域)に、画素値「0」(黒色)が与えられる。これにより、解析対象のゴルファ5が鮮明化され、ゴルファ5を容易に特定(抽出)することが可能となる。
【0038】
正規化された複数の深度画像21において、ゴルファ5の近傍が、それぞれトリミング(切り抜き)されるのが好ましい。本実施形態では、正規化された各深度画像21について、例えば、ゴルファ5が全て含まれるようにトリミングされる。より具体的には、ゴルファ5の代表点(例えば、ゴルファ5の重心)を中心として、飛球線方向、及び、高さ方向に予め定められた大きさの領域が切り取られる。これにより、ゴルファ5の近傍がトリミングされた深度画像21が取得される。図4には、トリミングされた複数の深度画像21が示されている。
【0039】
本実施形態では、正規化された深度画像21がトリミングされることにより、深度画像21中のゴルファ5が占める領域(割合)が大きくなる。このような深度画像21は、後述のニューラルネットワークに入力されることで、ゴルファ5によるゴルフスイングを定量的に表す動作値を、高い精度で導出(出力)するのに役立つ。なお、トリミングされる領域の大きさは、例えば、ニューラルネットワークの学習に用いられる教師データ(教師データに用いられる画像の大きさ)に基づいて設定されうる。本実施形態の領域の大きさは、例えば、300pixel×300pixelに設定される。図4に示した複数の深度画像21(深度画像群22)は、深度画像入力部18a(図2に示す)に記憶される。
【0040】
[物体の動作を表す動作値の導出]
次に、本実施形態の動作解析方法は、深度画像21をニューラルネットワークに入力することにより、物体3の動作を定量的に表す動作値を出力する(工程S2)。本実施形態の動作値は、ゴルファ5によるゴルフスイングを定量的に表す値である。
【0041】
本実施形態の工程S2では、先ず、図2に示されるように、深度画像入力部18aに入力された少なくとも1枚の深度画像21(図4に示した深度画像群22)が、作業用メモリ17に読み込まれる。さらに、工程S2では、プログラム部19に含まれる導出部19bが、作業用メモリ17に読み込まれる。導出部19bは、深度画像21が入力されることで、動作値を出力可能なプログラムであり、機械学習済みのニューラルネットワークが含まれている。この導出部19bが、演算部15によって実行されることで、深度画像21をニューラルネットワークに入力して動作値を出力する手段として、コンピュータ8を機能させることができる。
【0042】
ニューラルネットワークに入力される深度画像21は、図4に示した深度画像群22から、適宜選択されうる。本実施形態では、深度画像群22に含まれる全ての深度画像21が、ニューラルネットワークにそれぞれ入力される。なお、解析の目的に応じて、一部の深度画像21のみが、ニューラルネットワークに入力されてもよい。
【0043】
動作値は、図1に示したゴルファ5のゴルフスイングを定量的に表すことができれば、特に限定されない。本実施形態の動作値は、ゴルファ5の任意の位置を示す位置データが含まれる。本実施形態では、好ましい位置データとして、物体3の動きをより詳細に把握するために、物体3の少なくとも1枚の関節(図示省略)の位置データが採用される。動作値として、関節の位置に代えて、又は、関節の位置とともに、物体の特定の部位(例えば、リンク(図示省略))の位置データが採用されても良い。
【0044】
図6は、人体の関節25及び部位等の位置データの説明図である。この図6では、複数の関節(ジョイント)25と、これらの関節25を繋ぐ骨(リンク)26とを含むボーンデータ27が示されている。本実施形態の関節25や部位等の位置データは、人体の関節25や部位等の位置を、三次元の座標値で表したものである。本実施形態の位置データは、図1に示した物体3の正面視において、奥行方向(X軸方向)、飛球線方向(Y軸方向)及び高さ方向(Z軸方向)の座標値で示される。本実施形態において、三次元の各方向(奥行方向、飛球線方向、及び、高さ方向)のゼロの位置(基準位置)は、例えば、図1に示したゴルフボール28(図1に示す)の位置が設定される。
【0045】
関節25及び部位等(以下、単に「関節25等」ということがある。)は、例えば、図1に示したゴルファ5のゴルフスイングに応じて、適宜設定される。本実施形態の関節25等は、頭25a、喉25b、腹25c、右腰25d、左腰25e、右膝25f、左膝25g、右足首25h、左足首25i、右足先25j、左足先25k、右踵25l、左踵25m、右肩25n及び左肩25oが含まれる。さらに、関節25は、右肘外側25p、左肘外側25q、右肘内側25r、左肘内側25s、右手首外側25t、左手首外側25u、右手首内側25v、左手首内側25w、右手25x、及び、左手25yが含まれる。なお、関節25等は、このような態様に限定されるわけではなく、例えば、解析の目的に応じて、これらの一部が省略されてもよいし、他の関節や部位等がさらに含まれてもよい。また、リンク26は、上記の関節25、25を繋ぐ複数のリンク26a、26b、26c…が含まれる。
【0046】
図2に示したプログラム部19の導出部19bは、ニューラルネットワークを予め機械学習させた学習モデルを含む。図7は、学習モデル30の概念図である。本実施形態の学習モデル30は、ニューラルネットワーク31を含んでいる。ニューラルネットワーク31は、脳の神経回路網を模した数理モデルである。このようなニューラルネットワーク31に、人工知能(AI:Artificial Intelligence)を用いたディープラーニング(深層学習)をさせることで、学習モデル30が生成される。本実施形態のニューラルネットワーク31には、特許文献(特開2021-099666号公報)に記載のニューラルネットワークと同様に、畳み込みニューラルネットワークであるResNet50が採用される。なお、ニューラルネットワーク31は、このような態様に限定されるわけではなく、他のモデルが採用されても良い。
【0047】
本実施形態の学習モデル30は、動作解析方法の実施に先立って生成される。本実施形態の学習モデル30は、図4に示した少なくとも1枚の深度画像21から、図6に示したゴルファ5によるゴルフスイングを定量的に表す動作値(関節25等の位置データ)を出力可能に生成される。
【0048】
本実施形態のニューラルネットワーク31は、畳み込み層32、バッチノーマライゼーション層33、及び、プーリング層34を経た後、3つの畳み込み層のセット35を16回繰り返す、計50層(バッチノーマライゼーション層を除く)の層構成を有している。図7において、各畳み込み層(セット35)に記載の「数値×数値」は、カーネルのサイズである。複数のユニットからなる結合層36は、出力層37(本例では、関節の個数(25個)と座標軸の個数(3個)とを乗じた75個の値を出力)に結合され、最終的に、動作値(図6に示した関節25等の位置データ)が出力される。
【0049】
本実施形態のニューラルネットワーク31は、適宜生成(学習)される。本実施形態のニューラルネットワーク31は、第1損失関数及び第2損失関数を含む損失関数の値が小さくなるように機械学習されている。損失関数は、ニューラルネットワーク31から導出された導出値と、正解値とのズレの大きさを計算するための関数である。正解値の一例には、教師データの真値等が挙げられる。
【0050】
第1損失関数は、ゴルファ5の位置データについての損失関数である。上述したように、本実施形態の位置データには、図6に示したゴルファ5の関節25等の位置データが含まれる。
【0051】
第2損失関数は、ゴルファ5の部位の長さデータについての損失関数である。長さデータは、ゴルファ5の部位から特定可能な長さであれば、特に限定されない。本実施形態の長さデータは、関節25を繋ぐ一対のリンク(骨)26、26の少なくとも一方のリンク(骨)26の長さデータを含んでいる。
【0052】
リンク26の長さは、その両端に繋がる一対の関節25、25間の距離として定まる。このため、第2損失関数に含まれるリンク26の長さデータは、第1損失関数に含まれる関節25等の位置データとの関連性が高い。一方、長さデータは、関節25等の位置データとは異なり、ゴルファ5のゴルフスイングに応じて変化しない。このため、第2損失関数に含まれるリンク26の長さデータは、第1損失関数に含まれる関節25等の位置データの制約条件として扱われ得る。
【0053】
本実施形態のニューラルネットワーク31(図7に示す)は、第2損失関数に含まれるリンク26の長さデータの制約条件の下、第1損失関数に含まれる関節25等の位置データが学習されている。したがって、ニューラルネットワーク31(学習モデル30)は、関節25等の位置データを高い精度で導出しうる。このような学習モデル30は、後述の学習モデルの生成方法に基づいて生成される。また、第1損失関数及び第2損失関数の具体例は、後述される。
【0054】
本実施形態の工程S2では、図7に示されるように、ニューラルネットワーク31に、少なくとも1枚(本例では、1枚)の深度画像21が入力される。これにより、工程S2では、深度画像21に撮影されたゴルファ5によるゴルフスイングを定量的に表す動作値(関節25等の位置データ)が導出される。図8は、深度画像21aの動作値を示す図である。本実施形態の動作値には、ゴルファ5の関節25(頭25a~左手25y)等の位置データが含まれる。
【0055】
このように、本実施形態の動作解析装置2及び動作解析方法では、第1損失関数及び第2損失関数を含む損失関数の値が小さくなるように機械学習されたニューラルネットワーク31に、深度画像21が入力される。上述したように、ニューラルネットワーク31は、図6に示したリンク26の長さデータの制約条件の下、関節25等の位置データが学習されている。したがって、本実施形態の動作解析装置2及び動作解析方法では、図7及び図8に示されるように、ゴルファ5によるゴルフスイングを定量的に表す動作値(関節25等の位置データ)が、高い精度で導出され得る。
【0056】
本実施形態では、図4に示した深度画像群22に含まれる全ての深度画像21が、ニューラルネットワーク31にそれぞれ入力される。これにより、これらの全ての深度画像21の動作値が、時系列で取得されうる。そして、これらの出力された動作値は、動作値入力部18b(図2に示す)に記憶される。
【0057】
なお、本実施形態の動作値として取得される関節25等の位置データ(図8に示す)は、例えば、距離画像センサ(例えば、Kinect(登録商標))によって、簡易的に取得ないし推定することができる。しかしながら、例えば、ゴルフスイング中において、手首などの体の一部が隠れた状態で撮影されると、その隠れた部分の関節25等の位置データが取得されないことがある。本実施形態では、このような課題に対処すべく、ニューラルネットワーク31として、図6及び図8に示した全ての動作値を含む教師データを用いて機械学習させたモデルが用いられている。これにより、図4に示した複数の深度画像21の撮影時に隠れた部分が含まれていたとしても、全ての関節25等の位置データを推論することができる。
【0058】
[動作値の出力]
次に、本実施形態の動作解析方法は、図7に示したニューラルネットワーク31から導出された動作値(図8に示す)を、出力装置12(図1及び図2に示す)に出力する(工程S3)。
【0059】
本実施形態の工程S3では、先ず、図2に示した動作値入力部18bに入力された動作値、及び、プログラム部19に含まれる出力部19cが、作業用メモリ17に読み込まれる。出力部19cは、学習モデル30(ニューラルネットワーク31)から導出された動作値を出力するためのプログラムである。この出力部19cが、演算部15によって実行されることで、コンピュータ8を、動作値を出力するための手段として機能させることができる。
【0060】
本実施形態の工程S3では、工程S2で導出されたゴルファ5の関節25等の三次元座標値からなる位置データ(図8に示す)が、図1及び図2に示した出力装置12に出力(表示)される。出力値は、数値データである。数値データは、図8に示されるようなボーンモデル(ボーンデータ27)として加工されても良い。以上により、図1に示したゴルファ5によるゴルフスイングの動作が詳細に把握されうる。このような動作値は、例えば、ゴルフクラブのフィッティング、ゴルフスイングの改善、及び、ゴルフ用品の開発等に利用されうる。
【0061】
動作値としての図8に示した関節25等の位置データは、時系列に出力されてもよい。これにより、動作中の関節25等の位置の変化が、動画として出力されうる。
【0062】
工程S3では、関節25等の位置データと、時間との関係を示すグラフが出力されてもよい。図9は、左手25y(図6に示す)の位置データと、時間との関係を示すグラフである。図9(a)は、奥行方向(X軸方向)の位置データを示している。図9(b)は、飛球線方向(Y軸方向)の位置データを示している。図9(c)は、高さ方向(Z軸方向)の位置データを示している。
【0063】
関節25等の位置データは、例えば、移動平均等によって平滑化され、スプライン補間が行われるのが好ましい。本実施形態のスプライン補間では、図4に示した第1時間間隔T1(33ms)の位置データが、第1時間間隔T1よりも小さい時間間隔(例えば1ms)の位置データに変換されている。これにより、図9(a)~(c)に示されるように、平滑化及び補間された滑らかな時系列の位置データが取得されうる。このようなグラフは、全ての関節25等の位置データについて出力されてもよい。
【0064】
[学習モデルの生成方法]
次に、本実施形態の学習モデルの生成方法(以下、単に「生成方法」ということがある。)が説明される。ここでも、図1に示したように、物体3がゴルファ5であり、物体3の動作がゴルファ5によるゴルフスイングである場合を例にとり説明する。すなわち、本実施形態の生成方法では、ゴルファ5のゴルフスイングを解析するための学習モデル30(図7に示す)が生成される。
【0065】
本実施形態の生成方法では、図2に示されるように、先ず、プログラム部19に含まれる学習部19dが、作業用メモリ17に読み込まれる。学習部19dは、後述の教師データに基づいて、ニューラルネットワーク31(図7に示す)を機械学習させるためのプログラムである。この学習部19dが、演算部15によって実行されることで、コンピュータ8を、ニューラルネットワーク31を機械学習させるための手段として機能させることができる。図10は、本実施形態の学習モデルの生成方法の処理手順の一例を示すフローチャートである。
【0066】
[ニューラルネットワークの学習(学習工程)]
本実施形態の生成方法は、先ず、教師データを用いて、ニューラルネットワーク31を学習させる(学習工程S4)。図11は、本実施形態の学習工程S4の処理手順を示すフローチャートである。
【0067】
[教師データを準備]
本実施形態の学習工程S4は、先ず、教師データを準備する(工程S41)。教師データは、図7に示したニューラルネットワーク31を機械学習させることができれば、適宜準備され得る。本実施形態の教師データは、ゴルファ5によるゴルフスイングを撮影又は再現した複数の画像と、複数の画像それぞれのゴルファ5の関節25等の位置データとを含んでいる。なお、ゴルファ5のリンク26の長さデータは、教師データに含まれなくてもよい。これは、リンク26の長さが、ゴルフスイングによって変化しないため、例えば、時間が異なる2つの画像についてリンク26の長さデータをそれぞれ計算し、これらの差が小さくなるように機械学習することで、ニューラルネットワーク31を精度よく生成できるためである。なお、機械学習の手順に応じて、リンク26の長さデータが、教師データに含まれていてもよい。
【0068】
複数の画像は、ニューラルネットワーク31の学習に用いることができれば、特に限定されない。複数の画像には、例えば、複数のゴルファ5によるゴルフスイングをそれぞれ撮影した複数の深度画像(例えば、図4に示す)が用いられてもよい。また、複数の画像には、複数のゴルファ5によるゴルフスイングをコンピュータグラフィックスで擬似的に再現した複数の画像(CG画像)が用いられてもよい。これらのCG画像は、図4及び図5(b)に示した複数の深度画像(正規化された深度画像)21と近似させるのが好ましい。
【0069】
図12には、教師データの一例として、複数の画像41からなる画像群42が示されている。図12では、第1時間間隔T1(例えば、33ms)で取得された一部の画像41が代表して示されており、それらの間の画像41が省略(「…」で表示)されている。
【0070】
個々の画像41は、ゴルファ5(図1に示す)によるゴルフスイングの瞬間を模擬した画像データであり、例えば、コンピュータグラフィックス(CG)の画像である。画像群42は、時系列かつ連続的に再現された複数の画像41からなる。
【0071】
本実施形態の画像群42は、例えば、ゴルフスイングのアドレスからインパクトを経てフィニッシュまでを、時系列で再現した複数の画像41を含む。したがって、各画像41は、ニューラルネットワーク31に入力される深度画像21(図4に示す)に対応している。
【0072】
本実施形態の教師データは、図12に示した画像群42に含まれる複数の画像41から適宜選択される。本実施形態では、画像群42に含まれる全ての画像41が、教師データに用いられるが、必要に応じて、画像群42に含まれる一部の画像41が省略されてもよい。
【0073】
本実施形態では、コンピュータグラフィックスで再現した複数の画像41を取得するために、様々なゴルファ5のゴルフスイングが、モーションキャプチャシステム(図示省略)で撮影される。モーションキャプチャシステムには、例えば、特許文献(特開2021-099666号公報)に記載のものが用いられる。
【0074】
本実施形態では、例えば、ハンディキャップ、年齢、性別及び/又は体型等が異なる複数のゴルファ5のゴルフスイングが撮影されるのが好ましい。また、各ゴルファ5について、ティーショットや、アプローチショットなどの様々なゴルフスイングが撮影されるのが好ましい。これにより、様々なゴルファ5や様々なゴルフスイングを再現した教師データが取得され、動作値を高い精度で導出可能な学習モデル30(ニューラルネットワーク31)の生成が可能となる。
【0075】
各ゴルファ5には、特許文献(特開2021-099666号公報)と同様に、光反射性の球体のマーカー(図示省略)が、複数取り付けられるのが好ましい。複数のマーカーは、ゴルファ5の各関節25等(例えば、図6に示した頭25a~左手25yに対応する関節等)にそれぞれ取り付けられる。これらのマーカーが取り付けられたゴルファ5のゴルフスイングが、モーションキャプチャシステムで撮影されることにより、ゴルファ5の各関節25等の位置データ(三次元座標値)が、時系列で連続的に取得され得る。
【0076】
本実施形態では、ゴルファ5のゴルフスイングについて、アドレスからインパクトを経てフィニッシュまでの関節25等の時系列の位置データがそれぞれ取得される。これにより、ゴルファ5のゴルフスイングについて、関節25等の時系列の位置データを含む位置データ群がそれぞれ取得される。
【0077】
図13には、位置データ群46がボーンデータ群47として示されている。図13では、第1時間間隔T1(例えば、33ms)で取得された一部の位置データ(ボーンデータ27)が代表して示されており、第1時間間隔T1内に取得された複数の位置データが省略(「…」で表示)されている。
【0078】
本実施形態において、位置データ群46に含まれる複数の位置データは、図4に示した深度画像群22が取得された第1時間間隔T1(例えば、33ms)よりも小さい第2時間間隔(例えば、2ms)で、時系列に取得される。これにより、多くの教師データが取得され得る。
【0079】
次に、本実施形態の工程S41では、各ゴルファ5によるゴルフスイングについて、位置データ群46に含まれる各関節25等の位置データから、ボーンデータ27がそれぞれ取得される。ボーンデータ27は、複数の関節(ジョイント)25と、これらの関節25を連結する骨(リンク)26とを含んで構成される。これにより、複数のゴルファ5によるゴルフスイングについて、時系列に取得された複数のボーンデータ27を含むボーンデータ群47がそれぞれ取得されうる。
【0080】
次に、本実施形態の工程S41では、ゴルファ5によるゴルフスイングについて、ボーンデータ群47に含まれる各ボーンデータ27から、図12に示した複数の画像41を含む画像群42がそれぞれ取得される。図12に示されるように、複数の画像41は、ゴルファ5(図1に示す)をモデリングした物体モデル48を含み、ゴルファ5によるゴルフスイングがコンピュータグラフィックスで再現される。図14は、物体モデル48を示す図である。
【0081】
本実施形態では、図14に示されるように、予め定められた体型を規定する体型データに基づいて、図13に示した各ボーンデータ27が肉付けされる。肉付けは、特許文献(特開2021-099666号公報)と同様の手順によって行われる。これにより、図14に示されるように、ゴルファ5(図1に示す)が再現された物体モデル48がそれぞれ作成される。これらの物体モデル48により、複数のゴルファ5によるゴルフスイングを、時系列で連続的に再現した複数の画像41を含む画像群42(図12に示す)が、それぞれ取得されうる。
【0082】
本実施形態では、一人のゴルファ5から取得されたボーンデータ27(図13に示す)に対して、体型が異なる複数の物体モデル48が作成されるのが好ましい。体型には、例えば、「普通体型」、「痩身体型」及び「肥満体型」等が挙げられる。図12及び図14には、普通体型の物体モデル48が示されている。これにより、一人のゴルファ5から、体型が異なる複数のゴルファ5を模擬した物体モデル48が作成され、画像群42(図12に示す)の種類数が増加する。したがって、少ない労力でより多くの教師データを用意することができる。これは、物体3の動作値を高い精度で導出しうる学習モデル30(図7に示す)の生成に役立つ。
【0083】
本実施形態では、一人のゴルファ5から取得された物体モデル48(図14に示す)について、奥行方向(X軸方向)の立ち位置が異なる複数の物体モデル48が作成されるのが好ましい。この場合、立ち位置は、例えば、奥行方向の基準位置を0cmとしたときに、そこから前後に+3cmや-3cmで変化させることができる。
【0084】
さらに、本実施形態では、一人のゴルファ5から取得された物体モデル48(図14に示す)について、飛球線方向(Y軸方向)の立ち位置が異なる複数の物体モデル48が作成されるのが好ましい。この場合、立ち位置は、例えば、飛球線方向の基準位置を0cmとしたときに、そこから左右に+10cmや-10cmで変化させることができる。
【0085】
このように、一人のゴルファ5から、立ち位置が異なる複数のゴルファ5をモデリングした物体モデル48が作成されるため、画像群42の種類数がさらに増加する。これは、物体3の動作値を高い精度で導出しうる学習モデル30の生成に役立つ。
【0086】
図12に示された本実施形態の画像群42は、図13に示されたボーンデータ群47(位置データ群46)から取得されるため、時間軸の前後で隣接する画像41の時間間隔が、第2時間間隔(例えば、2ms)に設定されている。この第2時間間隔は、図4に示した深度画像群22の第1時間間隔T1(例えば、33ms)よりも小さい。これにより、画像群42は、第1時間間隔T1内に、多くの画像41を含むことから、スイング速度に左右されることなく、ゴルファ5によるスイングを詳細に捉えた教師データが取得され得る。複数の画像41(画像群42)は、教師データ入力部18c(図2に示す)に記憶される。
【0087】
本実施形態の教師データを構成する位置データは、ゴルファ5の関節25等の位置データを含んでいる。このような関節25等の位置データは、図13及び図14に示した位置データ群46(ボーンデータ群47)に含まれる複数の関節(ジョイント)25等の位置データから容易に取得されうる。これらの位置データは、教師データの真値(正解値)51として扱われる。
【0088】
本実施形態の教師データに長さデータが含まれる場合、その長さデータは、ゴルファ5の一対のリンク26、26の少なくとも一方のリンク26の長さデータを含む。このようなリンク26の長さデータは、例えば、図13に示した位置データ群46(ボーンデータ群47)に含まれるリンク(骨)26について、リンク26の両端に繋がる関節25等の位置データから容易に取得されうる。
【0089】
位置データ及び長さデータは、図12に示した各画像群42に含まれる複数の画像41毎に取得される。位置データ及び長さデータは、教師データの真値として、教師データ入力部18c(図2に示す)に記憶される。なお、上述のように、時間が異なる2つの画像についてリンク26の長さデータをそれぞれ計算し、これらの差が小さくなるように機械学習がされる場合、教師データには、長さデータが不要となる。この場合、教師データ入力部18cへの長さデータの記憶が省略される。
【0090】
[ニューラルネットワークの機械学習]
次に、本実施形態の学習工程S4は、図12図14に示した教師データに基づいて、ニューラルネットワーク31(図7に示す)の機械学習させる(工程S42)。本実施形態の工程S42では、第1損失関数及び第2損失関数を含む損失関数の値が小さくなるように、ニューラルネットワーク31の機械学習が行われる。図15は、ニューラルネットワーク31に入力される画像41と、ニューラルネットワーク31から導出された関節25の位置データの導出値50とが示されている。図15では、図7に示したニューラルネットワーク31(学習モデル30)が省略されている。また、図15では、複数の画像41(図12に示す)から選択された第1画像41A及び第2画像41Bの画像セット43について、これらの導出値50A、50Bが示されている。
【0091】
先ず、第1損失関数が説明される。上述したように、第1損失関数は、物体3の位置データについての損失関数である。この第1損失関数は、適宜定義されうる。本実施形態の第1損失関数は、複数の画像41から選択される少なくとも1枚の画像41について、ニューラルネットワーク31から導出された関節25の位置データの導出値50と、図13に示した教師データの関節25の位置データの真値(正解値)51との差分に基づいて定義される。画像41は、図12に示した画像群42に含まれる複数の画像41から適宜選択される。第1損失関数Lcoordinateは、例えば、下記の式(1)で定義される。
【0092】
【数1】

ここで、
coordinate:第1損失関数
kx:関節のX座標の導出値
ky:関節のY座標の導出値
kz:関節のZ座標の導出値
kx:関節のX座標の真値
ky:関節のY座標の真値
kz:関節のZ座標の真値
k:関節を特定するための添字
c:関節の合計数
【0093】
上記の式(1)において、添字kは、関節25等(頭25a~左手25y)を一意に特定するためのものである。合計数ncは、関節25等の合計数である。本実施形態の合計数ncは、25である。
【0094】
上記の式(1)では、1枚の画像41を対象とする第1損失関数Lcoordinateが示されている。この式(1)では、各関節25等(頭25a~左手25y)のX座標値、Y座標値及びZ座標値について、ニューラルネットワーク31からの導出値50(図15に示す)と、教師データの真値51(図13に示す)との差分の二乗和がそれぞれ求められる。そして、これらの二乗和の合計値が求められ、この二乗和の合計値が、関節25等の合計数nc(本例では、「25」)と座標値の種類数(本例では、「3」)とを乗じた値で割られる。これにより、第1損失関数Lcoordinateは、全ての関節25等の座標値(X座標値、Y座標値及びZ座標値)を対象とする平均二乗誤差として求められる。この平均二乗誤差が小さいほど、各関節25等の位置データの導出値50と、教師データの真値(正解値)51とのズレが小さく、位置データを精度良く導出できている。
【0095】
次に、第2損失関数が説明される。上述したように、第2損失関数は、物体3の部位の長さデータについての損失関数である。この第2損失関数は、適宜定義されうる。本実施形態の第2損失関数は、複数の画像41(図12に示す)から選択された第1画像41A及び第2画像41B(図15に示す)について、ニューラルネットワーク31から導出された第1画像41Aのリンク26の長さの導出値lj1、及び、第2画像41Bのリンク26の長さの導出値lj2との差分に基づいて定義される。
【0096】
第1画像41A及び第2画像41Bを含む画像セット43は、互いに異なる画像41であれば、図12に示した画像群42に含まれる複数の画像41から適宜選択されうる。本実施形態において、第1画像41A及び第2画像41Bは、画像群42からランダムに選択される。なお、第1画像41A及び第2画像41Bは、時系列で連続していてもよいし、連続していなくてもよい。第2損失関数は、例えば、下記の式(2)で定義される。
【0097】
【数2】

ここで、
constraint:第2損失関数
j1:第1画像のリンクの長さの導出値
j2:第2画像のリンクの長さの導出値
j:リンクを特定するための添字
μ:許容率
b:リンクの合計数
【0098】
上記の式(2)おいて、添字jは、図13図15に示したリンク26を一意に特定するためのものである。合計数nbは、リンク26の合計数である。本実施形態の合計数nbは、31である。
【0099】
上記の式(2)では、図15に示した第1画像41A及び第2画像41Bを含む画像セット43を対象とする第2損失関数Lconstraintが示されている。この式(2)では、各リンク26(26a、26b、…)の長さについて、ニューラルネットワーク31から導出された第1画像41Aの導出値lj1と、第2画像41Bの導出値lj2との差の絶対値(|lj1-lj2|)がそれぞれ求められる。各リンク26の長さは、ゴルファ5(図1に示す)によるゴルフスイングに応じて変化しない。このため、第1画像41Aの導出値lj1と第2画像41Bの導出値lj2とは同一の値となるのが好ましく、絶対値(|lj1-lj2|)がゼロになるのが好ましい。
【0100】
次に、上記の式(2)では、各リンク26(26a、26b、…)について、第1画像41Aのリンク26の長さの導出値lj1と、許容率μと乗じた許容値(μ・lj1)がそれぞれ求められる。この許容率μは、第1画像41Aのリンク26の長さの導出値lj1を、第2画像41Bのリンク26の長さの導出値lj2に対する正解値としたときに、絶対値(|lj1-lj2|)を許容できる割合を示している。このような許容率μは、ニューラルネットワーク31に求められる導出精度に応じて適宜設定される。本実施形態の許容率μには、例えば、0.1が設定される。
【0101】
各リンク26(26a、26b、…)について、各許容値(μ・lj1)は、絶対値(|lj1-lj2|)の許容範囲をそれぞれ示している。したがって、絶対値(|lj1-lj2|)が、許容値(μ・lj1)以下であれば、第2画像41Bのリンク26の長さの導出値lj2が、正解値である第1画像41Aのリンク26の長さの導出値lj1とのズレが小さい。
【0102】
上記の式(2)では、各リンク26(26a、26b、…)の長さについて、第1画像41Aの導出値及び第2画像41Bの導出値の差の絶対値(|lj1-lj2|)から、許容値(μ・lj1)を減じた値が、Relu関数(ランプ関数)にそれぞれ入力される。
【0103】
Relu関数は、ゼロ以下の値が入力されると、ゼロの値を出力する。したがって、絶対値(|lj1-lj2|)が、許容値(μ・lj1)以下となる場合、Relu関数からゼロが出力される。一方、Relu関数は、ゼロよりも大きい値が入力されると、その値を出力する。したがって、絶対値(|lj1-lj2|)が、許容値(μ・lj1)よりも大きくなる場合、Relu関数から、それらを減じた値が出力される。この出力値が大きくなるほど、絶対値(|lj1-lj2|)が、許容値(μ・lj1)から大きく乖離していることを示している。
【0104】
上記の式(2)では、各リンク26(26a、26b、…)のRelu関数の出力値を合計し、リンク26の合計数nbで割られることで、全てのリンク26を対象としたRelu関数の平均出力値が求められる。この平均出力値が小さいほど、全てのリンク26について、第2画像41Bの導出値と、正解値である第1画像41Aの導出値とのズレが小さくなり、各リンク26の長さを精度良く導出することができている。上述したように、各リンク26の長さは、各関節25等の位置データに関連しているため、各リンク26の長さが精度良く導出されることで、各関節25等の位置データも、精度良く導出することができる。したがって、第2損失関数Lconstraintは、第1損失関数Lcoordinateの制約条件として扱われ得る。
【0105】
第1損失関数Lcoordinate及び第2損失関数Lconstraintを含む損失関数(以下、単に「第3損失関数」ということがある。)は、適宜設定されうる。本実施形態の第3損失関数は、例えば、下記の式(4)で定義される。
【0106】
【数4】

ここで、
sum:第3損失関数
coordinate1:第1画像の第1損失関数
coordinate2:第2画像の第1損失関数
constraint:第2損失関数
λ:重み付けパラメータ
【0107】
上記の式(4)の第3損失関数Lsumは、第1画像41A及び第2画像41Bの画像セット43について、第1損失関数Lcoordinate及び第2損失関数Lconstraintの双方を考慮したものである。本実施形態では、第1損失関数Lcoordinate(第1画像41Aについての第1損失関数Lcoordinate1、第2画像41Bについての第1損失関数Lcoordinate2)と、第2損失関数Lconstraint(第1画像41A及び第2画像41Bについての第2損失関数Lconstraint)とを足し合わせることで、第3損失関数Lsumが定義される。なお、第3損失関数は、第1損失関数Lcoordinate1、Lcoordinate2と、第2損失関数Lconstraintとが乗じられることで定義されてもよい。
【0108】
上記の式(3)において、第2損失関数Lconstraintには、重み付けパラメータλが乗じられている。このような重み付けパラメータλにより、第3損失関数Lsumにおいて、第2損失関数Lconstraintの重みを調整することができ、過学習による導出精度の低下が抑制される。重み付けパラメータλの値は、ニューラルネットワーク31に求められる導出精度等に応じて、適宜設定されうる。重み付けパラメータλは、例えば、11.8に設定される。
【0109】
次に、第3損失関数Lsumに基づくニューラルネットワーク31の機械学習が説明される。本実施形態の工程S42では、教師データとして設定された画像群42に含まれる全ての画像41(図12に示す)から、第1画像41A及び第2画像41Bを含む画像セット43(図15に示す)が、ランダムに複数設定される。なお、画像セット43のそれぞれは、同一の物体モデル48(ゴルファ5)からなる第1画像41A及び第2画像41Bで構成されている。これらの複数の画像セット43が、図15に示されるように、ニューラルネットワーク31にそれぞれ入力されることで、第1画像41A及び第2画像41B毎に、各関節25等の位置データ(座標値)がそれぞれ導出される。さらに、第1画像41Aのリンク26の長さの導出値lj1と、第2画像41Bのリンク26の長さの導出値lj2とがそれぞれ導出される。
【0110】
次に、上述の導出値に基づいて、第3損失関数Lsumでは、第1画像41A及び第2画像41Bについて、各関節25等の位置データの導出値50と、教師データの位置データの真値51(図13に示す)との差分(第1損失関数Lcoordinate1、Lcoordinate2の値)がそれぞれ求められる。さらに、第3損失関数Lsumでは、第1画像41Aのリンク26の長さの導出値lj1、及び、第2画像41Bのリンク26の長さの導出値lj2との差分(第2損失関数Lconstraintの値)が求められる。
【0111】
そして、本実施形態では、第1損失関数Lcoordinate1、Lcoordinate2の値と、第2損失関数Lconstraintの値とを足し合わせた第3損失関数Lsumの値が小さくなるように、ニューラルネットワーク31(図7に示す)のパラメータが更新される。これにより、機械学習(誤差逆伝搬法( Backpropagation ))が行われ、学習モデル30が生成される。ニューラルネットワーク31(学習モデル30)は、ニューラルネットワーク入力部18d(図2に示す)に記憶される。
【0112】
このように、本実施形態の生成方法では、第3損失関数Lsumの値が小さくなるように、図7に示したニューラルネットワーク31が機械学習されることで、第1画像41A及び第2画像41Bの各リンク26の長さデータの制約条件の下、これらの第1画像41A及び第2画像41Bの関節25等の位置データを関連付けて機械学習される。したがって、本実施形態の生成方法は、物体3の動作を定量的に表す動作値として、関節25等の位置データを、高い精度で導出可能な学習モデル30を生成しうる。
【0113】
[学習モデルの精度の評価]
次に、本実施形態の生成方法は、図7に示した学習モデル30(ニューラルネットワーク31)から出力される動作値(図8及び図15に示す)の導出精度を評価する(工程S5)。導出精度の評価は、適宜実施することができ、例えば、公知のブラインドテストが実施されうる。この場合、例えば、深度画像21(図4に示す)や画像41(図12に示す)の教師データを含むテストデータに基づいて、学習モデル30から、テストデータの動作値が出力される。そして、出力されたテストデータの動作値と、実際の動作値(図示省略)との相関係数が許容範囲内である場合、導出精度が良好であると評価される。
【0114】
工程S5において、学習モデル30の出力精度が良好であると判断された場合(工程S7で「Yes」)、生成方法の一連の処理が終了する。一方、学習モデル30の導出精度が良好ではないと判断された場合(工程S5で「No」)、学習工程S4及び工程S5が再度実施される。再度実施される学習工程S4では、導出精度を高めるために、新たな教師データが追加されてもよい。第3損失関数Lsumの重み付けパラメータλが調整されてもよい。
【0115】
本実施形態の生成方法では、学習モデル30の導出精度が良好となるまで、ニューラルネットワーク31を繰り返し学習させるため、動作値を高い精度で導出可能な学習モデル30(ニューラルネットワーク31)を確実に生成することができる。
【0116】
[第3損失関数(第2実施形態)]
これまでの実施形態では、上記の式(4)に示されるように、第3損失関数の第1損失関数Lcoordinateとして第1画像41Aについての第1損失関数Lcoordinate1、及び、第2画像41Bについての第1損失関数Lcoordinate2が用いられたが、このような態様に限定されない。第1損失関数Lcoordinateには、第1画像41Aについての第1損失関数Lcoordinate1のみが用いられてもよい。この実施形態の第3損失関数は、例えば、下記の式(5)で定義される。
【0117】
【数5】

ここで、
sum:第3損失関数
coordinate1:第1画像の第1損失関数
constraint:第2損失関数
λ:重み付けパラメータ
【0118】
このように、この実施形態の第3損失関数Lsumでは、上記の式(4)とは異なり、第2画像41Bについての第1損失関数Lcoordinate2が省略されている。このため、この実施形態では、図7に示したニューラルネットワーク31の導出精度を維持しつつ、機械学習に要する時間を短縮することが可能となる。
【0119】
[第2損失関数(第3実施形態)]
これまでの実施形態では、図15に示した第1画像41Aの少なくとも一方のリンクの長さの導出値lj1と、第2画像41Bの少なくとも一方のリンクの長さの導出値lj2との差分に基づいて、第2損失関数Lconstraint(上記の式(2))が定義されたが、このような態様に限定されない。例えば、第2損失関数Lconstraintは、複数の画像41(図12に示す)から選択された第1画像41Aについて、ニューラルネットワーク31から出力された少なくとも一方のリンク26の長さの導出値lj1、及び、第1画像41Aの少なくとも一方のリンク26の長さの真値(教師データ)lj3との差分に基づいて定義されてもよい。第1画像41Aは、画像群42(図12に示す)からランダムに選択されうる。この実施形態の第2損失関数は、下記の式(3)で定義される。
【0120】
【数3】

ここで、
constraint:第2損失関数
j1:第1画像のリンクの長さの導出値
j3:第1画像のリンクの長さの真値
j:リンクを特定するための添字
μ:許容率
b:リンクの合計数
【0121】
上記の式(3)おいて、添字jは、図13図15に示したリンク26を一意に特定するためのものである。合計数nbは、リンク26の合計数である。本実施形態の合計数nbは、31である。
【0122】
上記の式(4)では、画像群42(図12に示す)から選択された1枚の第1画像41Aを対象とする第2損失関数Lconstraintが示されている。この式(4)では、各リンク26(26a、26b、…)の長さについて、ニューラルネットワーク31から導出された第1画像41Aの真値lj3と、その第1画像41Aの導出値lj1との差の絶対値(|lj3-lj1|)がそれぞれ求められる。上述したように、各リンク26の長さは、ゴルファ5(図1に示す)によるゴルフスイングに応じて変化しない。このため、第1画像41Aの真値lj3と導出値lj1とは同一の値となるのが好ましく、絶対値(|lj3-lj1|)がゼロになるのが好ましい。
【0123】
次に、上記の式(2)では、各リンク26(26a、26b、…)について、第1画像41Aのリンク26の長さの真値lj3と、許容率μと乗じた許容値(μ・lj3)がそれぞれ求められる。この許容率μは、第1画像41Aのリンク26の長さの真値lj3を、第1画像41Aのリンク26の長さの導出値lj1に対する正解値としたときに、絶対値(|lj3-lj1|)を許容できる割合を示している。このような許容率μは、ニューラルネットワーク31に求められる導出精度に応じて適宜設定される。本実施形態の許容率μには、例えば、0.1が設定される。
【0124】
各リンク26(26a、26b、…)について、各許容値(μ・lj3)は、絶対値(|lj3-lj1|)の許容範囲をそれぞれ示している。したがって、絶対値(|lj3-lj1|)が、許容値(μ・lj3)以下であれば、第1画像41Aのリンク26の長さの導出値lj1と、真値lj3とのズレが小さい。
【0125】
上記の式(4)では、各リンク26(26a、26b、…)の長さについて、第1画像41Aの導出値と真値の差の絶対値(|lj3-lj|)から、許容値(μ・lj3)を減じた値が、Relu関数(ランプ関数)にそれぞれ入力される。そして、各リンク26(26a、26b、…)のRelu関数の出力値を合計し、リンク26の合計数nbで割られることで、全てのリンク26を対象としたRelu関数の平均出力値が求められる。
【0126】
Relu関数の平均出力値が小さいほど、全てのリンク26について、第1画像41Aの導出値lj1と真値lj3とのズレが小さくなり、各リンク26の長さを精度良く導出することができている。上述したように、各リンク26の長さは、各関節25等の位置データに関連しているため、各リンク26の長さが精度良く導出されることで、各関節25等の位置データも、精度良く導出することができる。したがって、第2損失関数Lconstraintは、第1損失関数Lcoordinateの制約条件として扱われ得る。
【0127】
この実施形態の第3損失関数には、上記の式(5)が用いられる。上記の式(5)において、第1画像の第1損失関数Lcoordinate1には、上記の式(1)が用いられ、第2損失関数Lconstraintには、上記の式(3)が用いられる。したがって、この実施形態では、第1画像41Aについての第1損失関数Lcoordinateと、第1画像41Aについての第2損失関数Lconstraintを足し合わせることで、第3損失関数Lsumが定義される。なお、この実施形態の第3損失関数は、第1損失関数Lcoordinateと、第2損失関数Lconstraintとが乗じられることで定義されてもよい。重み付けパラメータλの値は、ニューラルネットワーク31に求められる導出精度等に応じて、適宜設定されうる。重み付けパラメータλは、例えば、11.8に設定される。
【0128】
この実施形態の機械学習させる工程S42(図11に示す)では、教師データとして設定された画像群42に含まれる全ての画像41(図12に示す)から、第1画像41Aが、ランダムに複数選択される。これらの第1画像41Aが、ニューラルネットワーク31にそれぞれ入力されることで、第1画像41A毎に、各関節25等の位置データ(座標値)がそれぞれ導出される。さらに、第1画像41Aのリンク26の長さの導出値lj1がそれぞれ導出される。
【0129】
次に、上述の導出値に基づいて、第3損失関数Lsumでは、第1画像41Aについて、各関節25等の位置データの導出値50(図15に示す)と、教師データの位置データの真値51(図13に示す)との差分(第1損失関数Lcoordinateの値)が求められる。さらに、第3損失関数Lsumでは、第1画像41Aのリンク26の長さの導出値lj1と真値lj3との差分(第2損失関数Lconstraintの値)が求められる。
【0130】
そして、この実施形態では、第1損失関数Lcoordinateの値と、第2損失関数Lconstraintの値とを足し合わせた第3損失関数Lsumの値が小さくなるように、ニューラルネットワーク31(図7に示す)のパラメータが更新される。これにより、機械学習(誤差逆伝搬法( Backpropagation ))が行われ、学習モデル30が生成される。ニューラルネットワーク31(学習モデル30)は、ニューラルネットワーク入力部18d(図2に示す)に記憶される。
【0131】
このように、この実施形態の生成方法では、第3損失関数Lsumの値が小さくなるように、図7に示したニューラルネットワーク31が機械学習されることで、第1画像41Aの各リンク26の長さデータの制約条件の下、これらの第1画像41Aの関節25等の位置データを関連付けて機械学習される。したがって、この実施形態の生成方法は、これまでの実施形態と同様に、物体3の動作を定量的に表す動作値として、関節25等の位置データを、高い精度で導出可能な学習モデル30を生成しうる。さらに、この実施形態の第2損失関数Lconstraintでは、第1画像41Aのリンクの長さの真値lj3が用いられているため、より高い精度で導出可能な学習モデル30を生成しうる。
【0132】
以上、本発明の特に好ましい実施形態について詳述したが、本発明は図示の実施形態に限定されることなく、種々の態様に変形して実施しうる。
【実施例0133】
図1及び図2動作解析装置を用いて、物体の動作(ゴルファによるゴルフスイング)が解析された(実施例)。実施例では、先ず、図3に示した処理手順に基づいて、物体の動作が距離画像センサによって撮影され、深度画像が取得された。そして、物体の動作を定量的に表す動作値を出力可能なニューラルネットワークに、1枚の深度画像が入力され、動作値が導出された。
【0134】
実施例で用いられたニューラルネットワークは、図10及び図11に示した処理手順に基づき、物体の動作をコンピュータグラフィックスで再現した複数の画像と、複数の画像のそれぞれの動作値とを含む教師データを用いて学習された。
【0135】
実施例では、複数のゴルファによるゴルフスイングを撮影して得られた物体モデルに基づいて、奥行方向の立ち位置、飛球線方向の立ち位置、及び、体型の種類を異ならせた複数の物体モデルからなる複数の画像(画像群)が設定された。そして、複数の画像と、複数の画像それぞれの位置データ及び長さデータとを含む教師データが準備され、第1損失関数及び第2損失関数を含む第3損失関数の値が小さくなるように、ニューラルネットワークの機械学習が行われた。
【0136】
比較のために、第1損失関数の値が小さくなるように機械学習されたニューラルネットワークに、1枚の深度画像が入力され、動作値が導出された(比較例)。比較例のニューラルネットワークは、第2損失関数が考慮されていない。
【0137】
そして、実施例及び比較例について、1枚の深度画像から導出された25箇所の関節の座標値の二乗平均平方根誤差(RMSE)が求められた。共通仕様は、次のとおりである。
画像群の個数:810個
動作が撮影されたゴルファ:30人
奥行方向の立ち位置の種類:3種類(0cm、+3cm、-3cm)
飛球線方向の立ち位置の種類:3種類(0cm、+10cm、-10cm)
体型の種類:3種類(普通体型、痩身体型及び肥満体型)
第1時間間隔:33ms
第2時間間隔:2ms
重み付けパラメータλ:11.8
【0138】
テストの結果、比較例の二乗平均平方根誤差(RMSE)が4.13cmであったのに対し、実施例の二乗平均平方根誤差(RMSE)が3.40cmであった。したがって、実施例は、比較例に比べて誤差を小さくでき、物体の動作を定量的に表す動作値を、高い精度で導出することができた。
【0139】
[付記]
本発明は以下の態様を含む。
【0140】
[本発明1]
物体の動作を解析するための動作解析装置であって、
前記物体の動作が距離画像センサによって撮影された少なくとも1枚の深度画像を取得する取得部と、
前記深度画像を入力することにより、前記物体の動作を定量的に表す動作値を出力可能な導出部とを含み、
前記導出部は、前記物体の位置データについての第1損失関数、及び、前記物体の部位の長さデータについての第2損失関数を含む損失関数の値が小さくなるように機械学習されたニューラルネットワークを含む、
動作解析装置。
[本発明2]
前記ニューラルネットワークは、前記物体の動作を撮影又は再現した複数の画像と、前記複数の画像それぞれの前記位置データ及び前記長さデータとを含む教師データに基づいて学習されている、本発明1に記載の動作解析装置。
[本発明3]
前記物体は、一対のリンクと、これを繋ぐ関節を有する移動体であり、
前記位置データは、前記関節の位置データを含み、
前記第1損失関数は、前記複数の画像から選択される少なくとも1枚の画像について、前記ニューラルネットワークから出力された前記関節の位置データの導出値と、前記教師データの前記関節の位置データの真値との差分に基づいて定義される、本発明2に記載の動作解析装置。
[本発明4]
前記移動体は、人体である、本発明3に記載の動作解析装置。
[本発明5]
前記第1損失関数は、下記の式(1)で定義される、本発明3又は4に記載の動作解析装置。
【数1】

ここで、
coordinate:第1損失関数
kx:関節のX座標の導出値
ky:関節のY座標の導出値
kz:関節のZ座標の導出値
kx:関節のX座標の真値
ky:関節のY座標の真値
kz:関節のZ座標の真値
k:関節を特定するための添字
c:関節の合計数
[本発明6]
前記物体は、一対のリンクと、これを繋ぐ関節を有する移動体であり、
前記長さデータは、前記一対のリンクの少なくとも一方のリンクの長さデータを含み、
前記第2損失関数は、前記複数の画像から選択された第1画像及び第2画像について、前記ニューラルネットワークから出力された前記第1画像の前記少なくとも一方のリンクの長さの導出値、及び、前記第2画像の前記少なくとも一方のリンクの長さの導出値との差分に基づいて定義される、本発明2ないし5のいずれかに記載の動作解析装置。
[本発明7]
前記第2損失関数は、下記の式(2)で定義される、本発明6に記載の動作解析装置。
【数2】

ここで、
constraint:第2損失関数
j1:第1画像のリンクの長さの導出値
j2:第2画像のリンクの長さの導出値
j:リンクを特定するための添字
μ:許容率
b:リンクの合計数
[本発明8]
前記物体は、一対のリンクと、これを繋ぐ関節を有する移動体であり、
前記長さデータは、前記一対のリンクの少なくとも一方のリンクの長さデータを含み、
前記第2損失関数は、前記複数の画像から選択された第1画像について、前記ニューラルネットワークから出力された前記少なくとも一方のリンクの長さの導出値、及び、前記第1画像の前記少なくとも一方のリンクの長さの真値との差分に基づいて定義される、本発明2ないし5のいずれかに記載の動作解析装置。
[本発明9]
前記第2損失関数は、下記の式(3)で定義される、本発明8に記載の動作解析装置。
【数3】

ここで、
constraint:第2損失関数
j1:第1画像のリンクの長さの導出値
j3:第1画像のリンクの長さの真値
j:リンクを特定するための添字
μ:許容率
b:リンクの合計数
[本発明10]
前記ニューラルネットワークを機械学習させる学習部をさらに備える、本発明1ないし9のいずれかに記載の動作解析装置。
[本発明11]
前記物体は、ゴルフクラブを把持したゴルファである、本発明1ないし10のいずれかに記載の動作解析装置。
[本発明12]
前記動作は、ゴルフスイングである、本発明11に記載の動作解析装置。
[本発明13]
物体の動作を解析するための学習モデルの生成方法であって、
教師データを用いてニューラルネットワークを学習させる工程を含み、
前記工程は、前記物体の動作を撮影又は再現した複数の画像と、前記複数の画像それぞれの前記物体の位置データ及び前記物体の部位の長さデータとを含む前記教師データを準備する工程と、
前記教師データに基づいて、前記物体の位置データについての第1損失関数、及び、前記物体の部位の長さデータについての第2損失関数を含む損失関数の値が小さくなるように、前記ニューラルネットワークを機械学習させる工程とを含む、
学習モデルの生成方法。
[本発明14]
物体の動作を解析するための方法であって、
前記物体の動作が距離画像センサによって撮影された少なくとも1枚の深度画像を取得する工程と、
前記深度画像をニューラルネットワークに入力することにより、前記物体の動作を定量的に表す動作値を出力する工程とを含み、
前記ニューラルネットワークは、前記物体の位置データについての第1損失関数、及び、前記物体の部位の長さデータについての第2損失関数を含む損失関数の値が小さくなるように機械学習されている、
動作解析方法。
[本発明15]
物体の動作を解析するためのコンピュータプログラムであって、
コンピュータを、
前記物体の動作が距離画像センサによって撮影された少なくとも1枚の深度画像を取得する手段と、
前記深度画像をニューラルネットワークに入力することにより、前記物体の動作を定量的に表す動作値を出力する手段として機能させ、
前記ニューラルネットワークは、前記物体の位置データについての第1損失関数、及び、前記物体の部位の長さデータについての第2損失関数を含む損失関数の値が小さくなるように機械学習されている、
コンピュータプログラム。
【符号の説明】
【0141】
21 深度画像
31 ニューラルネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15