(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-19
(45)【発行日】2023-07-27
(54)【発明の名称】学習装置、学習済みモデルの生成方法および学習プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20230720BHJP
G06T 7/20 20170101ALI20230720BHJP
G06T 7/00 20170101ALI20230720BHJP
【FI】
G06N20/00
G06T7/20 300A
G06T7/00 350C
(21)【出願番号】P 2020117942
(22)【出願日】2020-07-08
【審査請求日】2022-08-08
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504145342
【氏名又は名称】国立大学法人九州大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】松村 誠明
(72)【発明者】
【氏名】草地 良規
(72)【発明者】
【氏名】秋田 健太
(72)【発明者】
【氏名】丸山 哲
(72)【発明者】
【氏名】森本 有紀
(72)【発明者】
【氏名】鶴野 玲治
【審査官】福西 章人
(56)【参考文献】
【文献】特開2019-003615(JP,A)
【文献】特開平5-341826(JP,A)
【文献】特開2015-085437(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06T 7/20
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
所定の時間幅における対象物の変位に係る量の時系列を入力し、前記時間幅の少なくとも一部の時刻における前記対象物の変位に係る量を出力する機械学習モデルを用いて、対象物の変位に係る量の時系列を示す入力サンプルから、前記対象物の変位に係る量の推定値を算出する推論実行部と、
前記推定値を1階以上微分した値と前記入力サンプルに対応する出力サンプルを1階以上微分した値との差分である第2差分を算出する第2差分算出部と、
前記第2差分に対して出力が単調増加する損失関数を用いて、損失値を算出する損失算出部と、
前記損失値に基づいて、前記機械学習モデルのパラメータを更新する更新部と
を備える学習装置。
【請求項2】
前記推定値と前記出力サンプルとの差分である第1差分を算出する第1差分算出部を備え、
前記損失算出部は、前記第1差分および前記第2差分に対して出力が単調増加する損失関数を用いて、損失値を算出する、
請求項1に記載の学習装置。
【請求項3】
前記機械学習モデルは、入力された前記時系列と同じ時間幅に係る変位に係る量の時系列を出力する
請求項1または請求項2に記載の学習装置。
【請求項4】
前記入力サンプルは、前記出力サンプルにランダムノイズまたはスパイクノイズを加えたものである
請求項1から請求項3の何れか1項に記載の学習装置。
【請求項5】
前記対象物の変位に係る量は、前記対象物が有する関節の直交する三軸の回転角である
請求項1から請求項4のいずれか1項に記載の学習装置。
【請求項6】
所定の時間幅における対象物の変位に係る量の時系列を入力し、前記時間幅の少なくとも一部の時刻における前記対象物の変位に係る量を出力する機械学習モデルを用いて、対象物の変位に係る量の時系列を示す入力サンプルから、前記対象物の変位に係る量の推定値を算出するステップと、
前記推定値を1階以上微分した値と前記入力サンプルに対応する出力サンプルを1階以上微分した値との差分である第2差分を算出するステップと、
前記第2差分に対して出力が単調増加する損失関数を用いて、損失値を算出するステップと、
前記損失値に基づいて、前記機械学習モデルのパラメータを更新するステップと、
前記パラメータが更新された前記機械学習モデルを学習済みモデルとして出力するステップと
を有する学習済みモデルの生成方法。
【請求項7】
コンピュータを、請求項1から請求項5の何れか1項に記載の学習装置として機能させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、学習装置、学習済みモデルの生成方法および学習プログラムに関する。
【背景技術】
【0002】
被写体にセンサを取り付けることなく、モーションキャプチャを実現するマーカーレスモーションキャプチャという技術が知られている。マーカーレスモーションキャプチャは、複数地点に設置した時間同期カメラで撮影した映像に基づいて、二次元姿勢推定と三角測量とを用いることで被写体の関節回転角を推定する技術である。
【0003】
一方で、被写体とカメラとの距離が遠い場合など、二次元姿勢推定において推定誤差が大きくなると、三角測量で求める被写体の関節座標がフレームごとに大きく振動し、被写体のモーションにノイズが生じる。非特許文献1、2には、このノイズを除去する技術が開示されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】T. Ohashi, Y. Ikegami, K. Yamamoto, W. Takano and Y. Nakamura, "Video Motion Capture from the Part Confidence Maps of Multi-Camera Images by Spatiotemporal Filtering Using the Human Skeletal Model," 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Madrid, 2018, pp. 4226-4231.
【文献】U Mall, GR Lal, S Chaudhuri, P Chaudhuri, “A deep recurrent framework for cleaning motion capture data”, arXiv preprint arXiv:1712.03380, 2017.
【発明の概要】
【発明が解決しようとする課題】
【0005】
非特許文献1に記載の手法は、関節座標に対してローパスフィルタを適用することでノイズ除去を行うものである。しかしながら、非特許文献1に記載の手法では、ローパスフィルタの強度を強めると、ノイズのみならず、実際の微細な動作まで除去されてしまう可能性がある。
非特許文献2に記載の手法は、ノイズが激しい環境においてもモーションの再現性を高めるために、機械学習技術を用いてノイズを除去するものである。しかしながら、非特許文献2に記載の手法に係る機械学習モデルの出力は被写体の関節ごとの回転角であるため、正解データとの誤差を平均損失として最小化するよう学習すると、学習に膨大な時間を要することとなる。
【0006】
本開示の目的は、対象物の変位に係る量を出力する機械学習モデルの学習に要する時間を短縮することができる学習装置、学習済みモデルの生成方法および学習プログラムを提供することにある。
【課題を解決するための手段】
【0007】
本発明の第1の態様によれば、学習装置は、所定の時間幅における対象物の変位に係る量の時系列を入力し、前記時間幅の少なくとも一部の時刻における前記対象物の変位に係る量を出力する機械学習モデルを用いて、対象物の変位に係る量の時系列を示す入力サンプルから、前記対象物の変位に係る量の推定値を算出する推論実行部と、前記推定値と前記入力サンプルに対応する出力サンプル(正解データ)との差分である第1差分を算出する第1差分算出部と、前記推定値を1階以上微分した値と前記出力サンプルを1階以上微分した値との差分である第2差分を算出する第2差分算出部と、前記第1差分および前記第2差分に対して出力が単調増加する損失関数を用いて、損失値を算出する損失算出部と、前記損失値に基づいて、前記機械学習モデルのパラメータを更新する更新部とを備える。
【0008】
本発明の第2の態様によれば、学習済みモデルの生成方法は、所定の時間幅における対象物の変位に係る量の時系列を入力し、前記時間幅の少なくとも一部の時刻における前記対象物の変位に係る量を出力する機械学習モデルを用いて、対象物の変位に係る量の時系列を示す入力サンプルから、前記対象物の変位に係る量の推定値を算出する推論実行ステップと、前記推定値と前記入力サンプルに対応する出力サンプルとの差分である第1差分を算出する第1差分算出ステップと、前記推定値を1階以上微分した値と前記出力サンプルを1階以上微分した値との差分である第2差分を算出する第2差分算出ステップと、前記第1差分および前記第2差分に対して出力が単調増加する損失関数を用いて、損失値を算出する損失算出ステップと、前記損失値に基づいて、前記機械学習モデルのパラメータを更新する更新ステップと、前記パラメータが更新された前記機械学習モデルを学習済みモデルとして出力する出力ステップとを有する。
【0009】
本発明の第3の態様によれば、学習プログラムは、コンピュータを、上述の学習装置として機能させる。
【発明の効果】
【0010】
上記態様のうち少なくとも1つの態様によれば、対象物の変位に係る量を出力する機械学習モデルの学習に要する時間を短縮することができる。
【図面の簡単な説明】
【0011】
【
図1】モーションキャプチャシステムの構成を示す概略図である。
【
図2】第1の実施形態に係る学習装置の構成を示す概略ブロック図である。
【
図3】第1の実施形態に係る学習装置の動作を示すフローチャートである。
【
図4】学習装置のハードウェア構成を示す概略ブロック図である。
【発明を実施するための形態】
【0012】
〈第1の実施形態〉
《学習済みモデルを用いたマーカーレスモーションキャプチャについて》
以下、図面を参照しながら実施形態について詳しく説明する。
第1の実施形態に係る学習装置10は、マーカーレスモーションキャプチャに用いられる学習済みモデルを生成する。本実施形態において学習済みモデルとは、ニューラルネットワークなどのモデル構造に適用されるパラメータであって、学習用データセットを用いた訓練によって更新されたものである。
【0013】
図1は、モーションキャプチャシステム50の構成を示す概略図である。
マーカーレスモーションキャプチャを実現するモーションキャプチャシステム50について説明する。モーションキャプチャシステム50は、複数の時間同期カメラ51と、演算装置52と、学習装置10とを備える。複数の時間同期カメラ51は、それぞれ異なる方向から対象物Oを撮影するように設置される。複数の時間同期カメラ51は、互いに内部時計の時刻が同期されている。
【0014】
演算装置52は、複数の時間同期カメラ51から映像データを取得し、各映像データのフレームごとに対象物Oの姿勢を推定する。これにより、演算装置52は、各映像データの各フレームに映る対象物Oの関節の位置を推定する。演算装置52は、複数の映像データの同時刻に係るフレームにおける関節の位置と、現実空間における複数の時間同期カメラ51の設置位置および姿勢に基づいて、三角測量により、対象物Oの関節の現実空間における位置を推定する。演算装置52は、例えば非特許文献1に記される骨格構造のフィッティング手法を用いることで、各関節の三軸回転角を推定する。ただし、姿勢推定の誤差により、推定された関節の現実空間における位置にはノイズが重畳されている可能性があるため、各関節の三軸回転角にもノイズが重畳されている可能性がある。そのため、演算装置52は、目的フレームを含む所定数のフレームにおける各関節の三軸回転角の時系列から、ノイズを除去した目的フレームにおける各関節の三軸回転角を算出する。これにより、モーションキャプチャシステム50は、ノイズを除去した対象物Oの関節の三軸回転角の時系列を生成することができる。
このノイズ除去の演算において、学習装置10によって学習された学習済みモデルが用いられる。
【0015】
《学習装置の構成》
図2は、第1の実施形態に係る学習装置10の構成を示す概略ブロック図である。
学習装置10は、構造記憶部101、パラメータ記憶部102、学習用データセット記憶部103、初期値生成部104、サンプル抽出部105、推論実行部106、第1差分算出部107、第2差分算出部108、損失算出部109、損失記憶部110、更新部111、出力部112を備える。
【0016】
構造記憶部101は、機械学習モデルであるノイズ除去モデルの構造データを記憶する。第1の実施形態に係る構造データは、入力層および出力層のノード数を回転軸数3×関節数j×フレーム数nであるDNN(Deep Neural Network)を表す。つまり、ノイズ除去モデルは、ノイズ除去対象の目的フレームを含む連続するn個のフレームに係る対象物Oのj個の関節それぞれの三軸の回転角の時系列を、入力し、また出力する。
パラメータ記憶部102は、機械学習モデルに適用するパラメータを記憶する。パラメータの例としては、ニューロンの重み、活性化関数の係数などが挙げられる。
【0017】
学習用データセット記憶部103は、パラメータの学習に用いる学習用データセットを記憶する。学習用データセットは、ノイズを含む対象物Oの関節の回転角の時系列と、実際の回転角の時系列とを含む。ノイズを含む回転角の時系列は、演算装置52によって演算されたノイズ除去前の回転角の時系列であってよい。また、ノイズを含む回転角の時系列は、実際の回転角の時系列にランダムノイズ、スパイクノイズ、またはオフセットノイズを重畳させたものであってよい。ランダムノイズは、振幅や周波数が不規則に変化するノイズである。スパイクノイズは、間欠的に発生する比較的振幅の大きいノイズである。オフセットノイズは、すべての信号が一律に増加するノイズである。
また、他の実施形態においては、学習用データセット記憶部103は実際の各関節の回転角の時系列のみを記憶し、学習装置10がこれにノイズを重畳させることでノイズを含む各関節の回転角の時系列を生成してもよい。
【0018】
初期値生成部104は、構造記憶部101が記憶する機械学習モデルの構造データに基づいて、当該機械学習モデルのパラメータの初期値を生成する。初期値生成部104は、例えば乱数に基づいてパラメータの初期値を生成する。初期値生成部104は、生成した初期値をパラメータ記憶部102に記録する。
【0019】
サンプル抽出部105は、学習用データセット記憶部103が記憶するノイズを含む回転角の時系列から、連続するnフレーム相当の部分時系列を切り出すことで、入力サンプルを生成する。サンプル抽出部105は、学習用データセット記憶部103が記憶する実際の回転角の時系列から、生成した入力サンプルに対応する部分時系列を切り出すことで、出力サンプルを生成する。
【0020】
推論実行部106は、構造記憶部101が記憶する構造データとパラメータ記憶部102が記憶するパラメータとによって構成される機械学習モデルに、サンプル抽出部105が抽出した入力サンプルを入力することで、回転角の時系列の推定値を得る。
【0021】
第1差分算出部107は、推論実行部106が得た推定値とサンプル抽出部105が抽出した出力サンプルとの差分である第1差分を算出する。差分は、絶対誤差、二乗誤差などによって表される。すなわち、第1差分算出部107は、回転角の差を算出する。
第2差分算出部108は、推論実行部106が得た推定値を1階以上微分した値とサンプル抽出部105が抽出した出力サンプルを1階以上微分した値との差分である第2差分を算出する。例えば、第2差分算出部108は、回転角の1階微分である回転角速度の差分、回転角の2階微分である回転角加速度の差分、回転角の3階微分である回転角躍度の差分などを算出する。
【0022】
損失算出部109は、損失関数に第1差分算出部107が算出した第1差分および第2差分算出部108が算出した第2差分を代入し、平均損失を算出する。第1の実施形態に係る損失関数は、回転角の差分、回転角速度の差分、回転角加速度の差分、および回転角躍度の差分を、説明変数とする。
損失記憶部110は、損失算出部109が算出した平均損失の履歴を記憶する。
【0023】
更新部111は、損失記憶部110が記憶する平均損失に基づいて、平均損失を最小化するように、パラメータ記憶部102が記憶する機械学習モデルのパラメータを更新する。
出力部112は、パラメータ記憶部102が記憶する機械学習モデルのパラメータを学習済みモデルとして演算装置52に出力する。学習済みモデルの出力は、通信によってなされてもよいし、記録媒体を介してなされてもよい。
【0024】
《学習装置の動作》
図3は、第1の実施形態に係る学習装置の動作を示すフローチャートである。
まず、初期値生成部104は、構造記憶部101が記憶する機械学習モデルの構造データに基づいて、当該機械学習モデルのパラメータの初期値を生成する(ステップS1)。初期値生成部104は、生成した初期値をパラメータ記憶部102に記録する。
【0025】
次に、学習装置10は、学習の終了条件を満たすまで、以下のステップS3からステップS11の処理を繰り返し実行する(ステップS2)。終了条件の例としては、更新部111によるパラメータの更新回数が所定回数に達することや、平均損失の勾配が所定値未満となることなどが挙げられる。
【0026】
サンプル抽出部105は、学習用データセット記憶部103から所定数の入力サンプルと出力サンプルのペアを抽出する(ステップS3)。推論実行部106は、構造記憶部101が記憶する構造データとパラメータ記憶部102が記憶するパラメータとによって構成される機械学習モデルに、ステップS3で抽出した複数の入力サンプルを入力することで、回転角の時系列の複数の推定値を得る(ステップS4)。
【0027】
第1差分算出部107は、ステップS4で得られた複数の推定値それぞれと、ステップS3で抽出された当該推定値に対応する出力サンプルとの差分(第1差分)を算出する(ステップS5)。第2差分算出部108は、推論実行部106が得た推定値およびステップS3で抽出された出力サンプルについて、1階微分値、2階微分値、および3階微分値をそれぞれ求める(ステップS6)。第2差分算出部108は、ステップS6で求めた1階微分値、2階微分値、および3階微分値に基づいて、回転角速度の差分、回転角加速度の差分、および回転角躍度の差分(第2差分)を算出する(ステップS7)。
【0028】
損失算出部109は、ステップS5およびステップS7で算出した差分を損失関数に代入することで、平均損失を算出する(ステップS8)。具体的には、損失算出部109は、推定値に係る第1差分および第2差分と、出力サンプルに係る第1差分および第2差分とを、それぞれ対応関係が崩れないようにラスタスキャンし、一次元配列に変換する。そして、損失算出部109は、推定値に係る一次元配列と出力サンプルに係る一次元配列の要素同士の絶対値の総和を、要素数で除算することで、平均損失を算出する。
損失算出部109は、算出した平均損失を損失記憶部110に記録する(ステップS9)。
【0029】
更新部111は、損失記憶部110から直近の所定回数分の平均損失を読み出し、当該平均損失の勾配を求める。更新部111は、平均損失の勾配に基づいて、平均損失を最小化するように、機械学習モデルのパラメータを補正する(ステップS10)。更新部111は、補正したパラメータをパラメータ記憶部102に上書き記録する(ステップS11)。
【0030】
学習装置10が学習の終了条件を満たすと、出力部112は、パラメータ記憶部102が記憶する機械学習モデルのパラメータとを演算装置52に出力する(ステップS12)。
【0031】
《作用・効果》
このように、第1の実施形態に係る学習装置10は、機械学習モデルによって算出された推定値を1階以上微分した値と出力サンプルを1階以上微分した値との差分である第2差分を用いて平均損失を算出し、当該平均損失に基づいて、機械学習モデルのパラメータを更新する。これにより、学習装置10は、ランダムノイズやスパイクノイズなど、時間的に変化するノイズを、時間的な変化を伴わないオフセットノイズと比較して優先的に除去するように学習することができる。
【0032】
マーカーレスモーションキャプチャにおいては、カメラキャリブレーションの誤差や関節座標推定の誤差から、演算結果にランダムノイズやスパイクノイズが重畳しやすい。また、ランダムノイズやスパイクノイズのように急な変化を与えるノイズは、視覚的な違和感を生じやすい。そのため、第1の実施形態に係る学習済みモデルによって補正されたモーションデータは、回転角の差分のみに基づく平均損失を用いて同じ繰返し回数だけ学習されたモデルによって補正されたモーションデータと比較して、視覚的な違和感が少ない。つまり、第1の実施形態に係る学習装置10は、ランダムノイズやスパイクノイズが重畳しやすいというマーカーレスモーションキャプチャの特性に鑑みてこのようなノイズに強く反応する微分値を損失関数に組み込むことで、ノイズの除去に係る学習の効率を向上させたものである。
【0033】
第1の実施形態に係る損失関数は、第2差分および回転角の差分である第1差分の平均損失を求めるものである。これにより、学習装置10は、ランダムノイズやスパイクノイズと比較して優先度は下がるが、オフセットノイズも除去するように機械学習モデルのパラメータを学習することができる。
【0034】
第1の実施形態に係る機械学習モデルは、目標フレームの回転角だけでなく、当該目標フレームを含む所定フレーム数の回転角の時系列を出力する。これにより、学習装置10は、平均損失の算出範囲を目標フレームのみならず、その近傍のフレームにも拡大することで、精度を向上させることができる。なお、第1の実施形態に係る機械学習モデルは、入力された時系列と同じ時間幅に係る時系列を出力するが、これに限られない。他の実施形態に係る機械学習モデルは、入力された時系列の少なくとも一部に係る回転角を出力するものであればよい。
【0035】
第1の実施形態に係る学習装置10は、ランダムノイズおよびスパイクノイズを含む学習用データセットを用いて機械学習モデルのパラメータを学習する。これにより、学習装置10は、マーカーレスモーションキャプチャにおいて発生しやすいランダムノイズやスパイクノイズの影響を、効率的に抑止するように機械学習モデルのパラメータを学習することができる。
【0036】
〈その他の実施形態〉
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。すなわち、他の実施形態においては、上述の処理の順序が適宜変更されてもよい。また、一部の処理が並列に実行されてもよい。
上述した実施形態に係る学習装置10は、単独のコンピュータによって構成されるものであってもよいし、学習装置10の構成を複数のコンピュータに分けて配置し、複数のコンピュータが互いに協働することで学習装置10として機能するものであってもよい。また、学習装置10と演算装置52とが同一のコンピュータによって実現されるものであってもよい。
【0037】
上述した実施形態に係る機械学習モデルは、対象物Oの関節の三軸回転角を補正するためのものであるが、これに限られない。例えば、他の実施形態に係る機械学習モデルは、対象物Oの関節の回転速度などの関節の角度に係る他の量を補正するものであってもよい。また、他の実施形態に係る機械学習モデルは、関節の三次元直交座標系における位置や速度を補正するものなど、関節の変位に係る他の量を補正するものであってもよい。また、他の実施形態に係る機械学習モデルは、対象物の中心の位置や速度を補正するものであってもよい。すなわち、機械学習モデルは、対象物Oの変位に係る量を補正するものであればよい。
【0038】
上述した実施形態に係る損失関数は、平均損失を求めるものであるが、これに限られない。例えば、他の実施形態に係る損失関数は、平均二乗誤差を算出するものなど、第2差分に対して損失値が単調増加する他の関数であってよい。
【0039】
〈コンピュータ構成〉
図4は、学習装置10のハードウェア構成を示す概略ブロック図である。
学習装置10は、バスで接続されたプロセッサ11、メモリ12、ストレージ13、インタフェース14などを備え、学習プログラムを実行することによって、初期値生成部104、サンプル抽出部105、推論実行部106、第1差分算出部107、第2差分算出部108、損失算出部109、損失記憶部110、更新部111、出力部112を備える装置として機能する。すなわち、学習プログラムを実行するプロセッサ11は、初期値生成部104、サンプル抽出部105、推論実行部106、第1差分算出部107、第2差分算出部108、損失算出部109、損失記憶部110、更新部111、出力部112として機能する。そして、学習プログラムを実行するプロセッサ11は、ストレージ13を、構造記憶部101、パラメータ記憶部102、および学習用データセット記憶部103として機能させる。学習装置10は、インタフェース14を介して演算装置52、外部記憶媒体、ネットワークに接続される。
【0040】
プロセッサ11の例としては、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、マイクロプロセッサなどが挙げられる。
学習プログラムは、ストレージ13などのコンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えば磁気ディスク、光磁気ディスク、光ディスク、半導体メモリ等の記憶装置である。学習プログラムは、電気通信回線を介して送信されてもよい。
なお、学習装置10の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)等のカスタムLSI(Large Scale Integrated Circuit)を用いて実現されてもよい。PLDの例としては、PAL(Programmable Array Logic)、GAL(Generic Array Logic)、CPLD(Complex Programmable Logic Device)、FPGA(Field Programmable Gate Array)が挙げられる。このような集積回路も、プロセッサ11の一例に含まれる。
【符号の説明】
【0041】
10 学習装置
101 構造記憶部
102 パラメータ記憶部
103 学習用データセット記憶部
104 初期値生成部
105 サンプル抽出部
106推論実行部
107 第1差分算出部
108 第2差分算出部
109 損失算出部
110 損失記憶部
111 更新部
112 出力部
50 モーションキャプチャシステム
51 時間同期カメラ
52 演算装置
O 対象物