(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024117861
(43)【公開日】2024-08-30
(54)【発明の名称】動作データ生成装置、動作データ生成方法、およびプログラム
(51)【国際特許分類】
G06T 7/20 20170101AFI20240823BHJP
G06N 3/04 20230101ALI20240823BHJP
G06N 3/0464 20230101ALI20240823BHJP
G06T 7/00 20170101ALI20240823BHJP
G06F 16/906 20190101ALI20240823BHJP
【FI】
G06T7/20 300A
G06N3/04 100
G06N3/0464
G06T7/00 350C
G06F16/906
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023023919
(22)【出願日】2023-02-20
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】野崎 善喬
(72)【発明者】
【氏名】福司 謙一郎
(72)【発明者】
【氏名】西原 康介
(72)【発明者】
【氏名】中原 謙太郎
【テーマコード(参考)】
5B175
5L096
【Fターム(参考)】
5B175FA03
5B175HB03
5L096FA10
5L096FA12
5L096FA13
5L096FA67
5L096FA69
5L096HA02
5L096HA07
5L096HA11
5L096JA03
5L096JA11
5L096KA04
5L096KA15
5L096MA07
(57)【要約】
【課題】時間軸方向にデータ拡張された動作データを生成できる動作データ生成装置等を提供する。
【解決手段】データ変換対象である複数の動作データを取得する取得部と、データ拡張の対象動作である動作クラスごとに、複数の動作データをグループ化する変換データ選定部と、動作クラスごとにグループ化された動作データのうち少なくとも1つを基準データに設定し、グループ化された動作データのうち基準データとは異なる少なくとも1つの動作データを変換対象データに設定し、基準データの動作タイミングを基準として変換対象データを同期させた拡張動作データを生成するデータ変換部と、生成された拡張動作データを出力する出力部と、を備える動作データ生成装置とする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
データ変換対象である複数の動作データを取得する取得部と、
データ拡張の対象動作である動作クラスごとに、複数の前記動作データをグループ化する変換データ選定部と、
前記動作クラスごとにグループ化された前記動作データのうち少なくとも1つを基準データに設定し、グループ化された前記動作データのうち前記基準データとは異なる少なくとも1つの前記動作データを変換対象データに設定し、前記基準データの動作タイミングを基準として前記変換対象データを同期させた拡張動作データを生成するデータ変換部と、
生成された前記拡張動作データを出力する出力部と、を備える動作データ生成装置。
【請求項2】
前記データ変換部は、
前記動作クラスごとにグループ化された前記動作データの全てを前記基準データに設定し、
グループ化された前記動作データのうち前記基準データとは異なる全ての前記動作データを前記変換対象データに設定し、
全ての前記基準データの動作タイミングを基準として、前記基準データに対して設定された全ての前記変換対象データを同期させた前記拡張動作データを生成する請求項1に記載の動作データ生成装置。
【請求項3】
予め設定された数のサンプルを複数の前記動作データから抽出し、抽出された前記サンプルに関してサンプル間の関係を表す指標値を計算する指標値計算部を備え、
前記変換データ選定部は、
前記指標値計算部によって算出された前記指標値に応じて、変換対象の前記動作データをペアリングし、
前記データ変換部は、
ペアリングされた前記動作データを互いに同期させた前記拡張動作データを生成する請求項1に記載の動作データ生成装置。
【請求項4】
前記指標値計算部は、
前記指標値として、サンプル間の類似度を計算し、
前記変換データ選定部は、
予め設定された類似度閾値よりも類似度が小さい2つの前記動作データをペアリングする請求項3に記載の動作データ生成装置。
【請求項5】
前記指標値計算部は、
前記指標値として、サンプル間の距離を計算し、
前記変換データ選定部は、
予め設定された距離閾値よりも距離が大きい2つの前記動作データをペアリングする請求項3に記載の動作データ生成装置。
【請求項6】
所定のクラスタリング法よって、複数の前記動作データを複数のクラスタにグループ分けするクラスタリング部と、
前記クラスタに含まれる前記動作データの数に応じて、グループ分けされた複数の前記クラスタに含まれる2つの前記クラスタをペアリングするペア選択部と、を備え、
前記変換データ選定部は、
ペアリングされた2つの前記クラスタからの各々から少なくとも1つずつの前記動作データをランダムに抽出し、
2つの前記クラスタからの各々から抽出された前記動作データをペアリングし、
前記データ変換部は、
ペアリングされた前記動作データを互いに同期させた前記拡張動作データを生成する請求項1に記載の動作データ生成装置。
【請求項7】
前記ペア選択部は、
複数の前記クラスタに含まれる前記動作データの数の割合から逆比を計算し、
算出された逆比の値が最大である前記クラスタと、逆比の値が最大ではないいずれかの前記クラスタとをペアリングする請求項6に記載の動作データ生成装置。
【請求項8】
前記データ変換部は、
グラフ畳み込みネットワークを含むエンコーダを有し、対象動作を含む動作データを構成するフレームごとに推定された姿勢データを角度表現に正規化し、角度表現に正規化された前記姿勢データを前記エンコーダに入力して埋め込み空間における特徴量を計算する特徴量計算部と、
前記基準データを構成するフレームごとに算出された特徴量と、同期対象データを構成するフレームごとに算出された特徴量との距離を計算する距離計算部と、
算出された距離に基づいてフレームごとの最適経路を計算し、前記最適経路で結ばれたフレームのタイミングを揃えることによって、前記同期対象データを前記基準データに同期させる同期処理部と、を有し、
前記エンコーダは、
角度表現に正規化された前記姿勢データをグラフ畳み込みによって畳み込み、
埋め込み空間における埋め込みを特徴量として出力し、
前記距離計算部は、
前記基準データを構成するフレームに関する特徴量と、前記同期対象データを構成するフレームに関する特徴量との間の距離を総当たりで計算する請求項1乃至7のいずれか一項に記載の動作データ生成装置。
【請求項9】
コンピュータが、
データ変換対象である複数の動作データを取得し、
データ拡張の対象動作である動作クラスごとに、複数の前記動作データをグループ化し、
前記動作クラスごとにグループ化された前記動作データのうち少なくとも1つを基準データに設定し、
グループ化された前記動作データのうち前記基準データとは異なる少なくとも1つの前記動作データを変換対象データに設定し、
前記基準データの動作タイミングを基準として前記変換対象データを同期させた拡張動作データを生成し、
生成された前記拡張動作データを出力する動作データ生成方法。
【請求項10】
データ変換対象である複数の動作データを取得する処理と、
データ拡張の対象動作である動作クラスごとに、複数の前記動作データをグループ化する処理と、
前記動作クラスごとにグループ化された前記動作データのうち少なくとも1つを基準データに設定する処理と、
グループ化された前記動作データのうち前記基準データとは異なる少なくとも1つの前記動作データを変換対象データに設定する処理と、
前記基準データの動作タイミングを基準として前記変換対象データを同期させた拡張動作データを生成する処理と、
生成された前記拡張動作データを出力する処理と、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、動作データを生成する動作データ生成装置等に関する。
【背景技術】
【0002】
人間の動作に関するデジタルツインの技術を用いて動作データを拡張すれば、一般的な学習よりも少量の実測データで、大量のデータを用いた場合と同等以上の精度の動作認識モデルを構築できる。データ拡張で用いられる敵対的生成モデル(GAN:Generative Adversarial Network)の学習を安定させるためには、データを効果的に正規化することが重要である。例えば、動作データに含まれる共通の動作を、異なる動作データとの間で正規化できれば、敵対的生成モデルの学習を安定化できる。すなわち、異なる動作データの間で、動作データに含まれる共通の動作を同期できれば、敵対的生成モデルの学習を安定化できる。
【0003】
非特許文献1には、映像間の時間的整合のタスクに基づく自己教師あり表現学習手法について開示されている。非特許文献1の手法では、時間的サイクル整合性(TCC:Temporal Cycle-Consistency)を用いて、ネットワークを訓練する。非特許文献1の手法では、学習された埋め込み空間における最近傍のフレームを対応付けることによって、異なる動画に含まれる共通の動作を同期させる。
【0004】
非特許文献2には、スケルトンベースのアクション認識問題に対する画像分類ベースのアプローチが開示されている。非特許文献2は、データセットに依存しない変換スケールの不変画像マッピング法を開示している。非特許文献2の不変画像マッピング法では、スケルトン画像と呼ばれるスケルトンビデオをカラー画像に変換する。また、非特許文献2は、マルチスケールの深層畳み込みニューラルネットワークCNN(Convolutional Neural Network)アーキテクチャを開示している。非特許文献2の手法では、データ拡張において、以下の3つを活用している。1つ目は、3次元座標のランダムな回転である。2つ目は、ガウシアンノイズの付加である。3つ目は、一連の動作シーケンスのランダムな位置でのクロップである。
【0005】
特許文献1には、利用者が使用する利用者端末と、この利用者端末に対し通信ネットワークを介して接続可能な運動支援装置と、を具備する運動支援システムについて開示されている。特許文献1には、利用者の運動画像データと、指導者の運動画像データとを時間的に同期させて、ディスプレイに表示させる例が開示されている。
【先行技術文献】
【特許文献】
【0006】
【非特許文献】
【0007】
【非特許文献1】D. Dwibedi, et al., “Temporal Cycle-Consistency Learning”, IEEE Conf. on Computer Vision and Pattern Recognition (2019).
【非特許文献2】Bo Li, Mingyi He, Xuelian Cheng, Yucheng Chen, Yuchao Dai, “Skeleton Based Action Recognition Using Translation-Scale Invariant Image Mapping And Multi-Scale Deep CNN”, 2017 IEEE International Conference on Multimedia & Expo Workshops (ICMEW), 2017, pp.601-604.
【発明の概要】
【発明が解決しようとする課題】
【0008】
非特許文献1の手法では、動画データに対してエンコーダモデルを学習し、埋め込み空間における最近傍のフレームを対応付けることによって、2つの動画データを同期する。非特許文献1の手法では、2つの動画データを同期する際に、動画に含まれる背景の影響が及ぶ。そのため、非特許文献1の手法では、異なる動画において背景が大きく異なる場合、同期の精度が低下することがあった。また、非特許文献1の手法は、動画形式ではないデータに対しては、適用できなかった。
【0009】
非特許文献2の手法では、座標回転やガウシアンノイズ付与、ランダムクロップなどの空間的なアプローチによって、データを拡張する。このようなアプローチによれば、ノイズやデータ取得環境に左右されにくいモデルの学習を実現できる。しかし、非特許文献2の手法は、時間的なアプローチを含まないため、動作のタイミングや速度が異なるデータの拡張には適用できなかった。特に、非特許文献2の手法は、学習データが数10個程度と少ない場合、多様なテストデータに対応するためのデータ拡張にはなりえなかった。
【0010】
特許文献1の手法では、利用者の運動画像データと、指導者の運動画像データとを時間的に同期させる。特許文献1の手法は、運動画像データの同期には適用できるが、運動画像データの拡張には適用できなかった。
【0011】
本開示の目的は、時間軸方向にデータ拡張された動作データを生成できる動作データ生成装置等を提供することにある。
【課題を解決するための手段】
【0012】
本開示の一態様の動作データ生成装置は、データ変換対象である複数の動作データを取得する取得部と、データ拡張の対象動作である動作クラスごとに、複数の動作データをグループ化する変換データ選定部と、動作クラスごとにグループ化された動作データのうち少なくとも1つを基準データに設定し、グループ化された動作データのうち基準データとは異なる少なくとも1つの動作データを変換対象データに設定し、基準データの動作タイミングを基準として変換対象データを同期させた拡張動作データを生成するデータ変換部と、生成された拡張動作データを出力する出力部と、を備える。
【0013】
本開示の一態様の動作データ生成方法においては、データ変換対象である複数の動作データを取得し、データ拡張の対象動作である動作クラスごとに、複数の動作データをグループ化し、動作クラスごとにグループ化された動作データのうち少なくとも1つを基準データに設定し、グループ化された動作データのうち基準データとは異なる少なくとも1つの動作データを変換対象データに設定し、基準データの動作タイミングを基準として変換対象データを同期させた拡張動作データを生成し、生成された拡張動作データを出力する。
【0014】
本開示の一態様のプログラムは、データ変換対象である複数の動作データを取得する処理と、データ拡張の対象動作である動作クラスごとに、複数の動作データをグループ化する処理と、動作クラスごとにグループ化された動作データのうち少なくとも1つを基準データに設定する処理と、グループ化された動作データのうち基準データとは異なる少なくとも1つの動作データを変換対象データに設定する処理と、基準データの動作タイミングを基準として変換対象データを同期させた拡張動作データを生成する処理と、生成された拡張動作データを出力する処理と、をコンピュータに実行させる。
【発明の効果】
【0015】
本開示によれば、時間軸方向にデータ拡張された動作データを生成できる動作データ生成装置等を提供できる。
【図面の簡単な説明】
【0016】
【
図1】第1の実施形態に係る動作データ生成装置の構成の一例を示すブロック図である。
【
図2】第1の実施形態に係る動作データ生成装置による同期対象データの選定方法について説明するための概念図である。
【
図3】第1の実施形態に係る動作データ生成装置が備えるデータ変換部の構成の一例を示すブロック図である。
【
図4】第1の実施形態に係る動作データ生成装置による変換対象である動作データについて説明するための概念図である。
【
図5】第1の実施形態に係る動作データ生成装置によって変換された姿勢データについて説明するための概念図である。
【
図6】第1の実施形態に係る動作データ生成装置による姿勢データの角度表現への正規化の一例について説明するための概念図である。
【
図7】第1の実施形態に係る動作データ生成装置によって算出された基準データおよび同期対象データの各々を構成するフレームごとの特徴量の最適経路を対応付けたマップの一例を示す概念図である。
【
図8】第1の実施形態に係る動作データ生成装置によって算出された基準データおよび同期対象データの各々を構成するフレームの最適経路が対応付けられた状態を示すグラフである。
【
図9】第1の実施形態に係る動作データ生成装置によって算出された基準データおよび同期対象データの各々を構成するフレームの最適経路のタイミングが揃えられた状態を示すグラフである。
【
図10】第1の実施形態に係る動作データ生成装置によって同期されていない動作データについて説明するための概念図である。
【
図11】第1の実施形態に係る動作データ生成装置によって同期された動作データについて説明するための概念図である。
【
図12】第1の実施形態に係る動作データ生成装置の動作の一例について説明するためのフローチャートである。
【
図13】第1の実施形態に係る動作データ生成装置によるデータ変換処理の一例について説明するためのフローチャートである。
【
図14】第1の実施形態に係る動作データ生成装置による同期処理の一例について説明するためのフローチャートである。
【
図15】第2の実施形態に係る動作データ生成装置の構成の一例を示すブロック図である。
【
図16】第2の実施形態に係る動作データ生成装置によるデータ選定方法について説明するための概念図である。
【
図17】第2の実施形態に係る動作データ生成装置の動作の一例について説明するためのフローチャートである。
【
図18】第2の実施形態に係る動作データ生成装置によるデータ変換処理の一例について説明するためのフローチャートである。
【
図19】第3の実施形態に係る動作データ生成装置の構成の一例を示すブロック図である。
【
図20】第3の実施形態に係る動作データ生成装置によるデータ選定方法について説明するための概念図である。
【
図21】第3の実施形態に係る動作データ生成装置の動作の一例について説明するためのフローチャートである。
【
図22】第3の実施形態に係る動作データ生成装置によるデータ変換処理の一例について説明するためのフローチャートである。
【
図23】第4の実施形態に係る学習装置の構成の一例を示すブロック図である。
【
図24】第4の実施形態に係る学習装置の動作の一例について説明するためのフローチャートである。
【
図25】第5の実施形態に係る動作データ生成装置の構成の一例を示すブロック図である。
【
図26】各実施形態に係る処理や制御を実行するハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0017】
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお、以下の実施形態の説明に用いる全図においては、特に理由がない限り、同様箇所には同一符号を付す。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。
【0018】
(第1の実施形態)
まず、第1の実施形態に係る動作データ生成装置について図面を参照しながら説明する。本実施形態の動作データ生成装置は、後述する第4の実施形態の手法によって訓練されたエンコーダを用いて、動作データを同期させる。
【0019】
本実施形態は、非特許文献1に開示された手法に基づいて説明する箇所を含む(非特許文献1:D. Dwibedi, et al., “Temporal Cycle-Consistency Learning”, IEEE Conf. on Computer Vision and Pattern Recognition (2019).)。
【0020】
(構成)
図1は、本実施形態に係る動作データ生成装置10の構成の一例を示すブロック図である。動作データ生成装置10は、取得部11、変換データ選定部15、データ変換部16、および出力部17を備える。動作データ生成装置10は、複数の動作データ110を取得する。動作データ生成装置10は、複数の動作データを用いて動作データを拡張する。動作データ生成装置10は、拡張された動作データ(拡張動作データ170)を出力する。
【0021】
取得部11(取得手段)は、データ変換対象である動作データ110を取得する。動作データ110は、データ拡張の対象動作を行う人物の動作を示すデータである。動作データ110は、データ拡張の対象動作を行う人物の像を含む動画データを構成するフレームから抽出される。例えば、データ拡張の対象動作には、背伸びや跳躍、歩行、走行、ストレッチなどの動作が含まれる。背伸びや跳躍、歩行、走行、ストレッチなどの対象動作のグループを動作クラスと呼ぶ。対象動作の動作クラスについては、特に限定を加えない。例えば、個々の動作データ110には、動作クラスを示すフラグが付されてもよい。動作クラスを示すフラグが付されていれば、そのフラグを用いて、動作クラスごとに動作データを分類できる。
【0022】
例えば、取得部11は、動画データから抽出された人物の姿勢データを取得してもよい。姿勢データは、人物の代表的な部位の位置に関する位置座標のデータセットである。言い換えると、姿勢データは、動作データ110から抽出された人物の姿勢に関するデータである。例えば、人物の代表的な部位は、関節や末端などである。例えば、取得部11は、モーションキャプチャを用いて計測された姿勢データを取得してもよい。取得部11が姿勢データを直接取得する場合、データ変換部16に含まれる姿勢推定部(後述)を省略できる。
【0023】
例えば、取得部11(取得手段)は、データ拡張の対象動作を行う人物の像を含む動画データを取得してもよい。その場合、動画データを構成するフレームから人物を抽出し、抽出された人物の姿勢データを推定するように、データ変換部16に含まれる姿勢推定部(後述)が構成されればよい。
【0024】
変換データ選定部15(変換データ選定手段)は、取得部11によって取得された複数の動作データ110を、データ拡張の対象動作である動作クラスごとにグループ化する。変換データ選定部15は、動作クラスごとにグループ化された動作データ110をデータ変換部16に出力する。
【0025】
データ変換部16(データ変換手段)は、動作クラスごとにグループ化された動作データ110を、変換データ選定部15から取得する。データ変換部16は、グループ化された動作データ110のうち1つを基準データに設定する。また、データ変換部16は、グループ化された動作データ110のうち、基準データとは異なる全ての動作データ110を変換対象データに設定する。データ変換部16は、基準データの動作タイミングを基準として、全ての変換対象データを同期させる。動作タイミングは、動作クラスに対応した動作に含まれる特徴的な姿勢が表れるタイミングである。動作タイミングは、動作の基準となる姿勢が表れるタイミングであれば、特に限定しない。
【0026】
データ変換部16は、全ての変換対象データを基準データに対して同期させると、その基準データとは異なる動作データ110を、新たな基準データとして選択する。データ変換部16は、グループ化された動作データ110のうち、新たな基準データとは異なる全ての動作データ110を変換対象データに設定する。データ変換部16は、新たな基準データの動作タイミングを基準として、全ての変換対象データを同期させる。
【0027】
このようにして、データ変換部16は、グループ化された動作データ110の全てを基準データに設定する。データ変換部16は、グループ化された動作データ110のうち、基準データとは異なる全ての動作データ110を変換対象データに設定する。データ変換部16は、基準データの動作タイミングを基準として、全ての変換対象データを同期させる。
【0028】
図2は、データ変換部16によるデータ変換処理によって同期される動作データ110の組み合わせについて説明するための概念図である。図の1マスは、1つの動作データ110を示す。
図2は、データID(Identifier)が付されたN個の動作データが総当たりで組み合わせられた様子を示す(Nは自然数)。データIDが同じ組み合わせのマスは、実測された動作データ110を示す。データIDが異なる動作データは、拡張動作データ170を示す。データ変換部16は、N個の全ての動作データ110を基準データとして、基準データとは異なるN-1個の動作データ110の動作タイミングを同期させる。その結果、データ変換部16は、実測された動作データ110を含めて、N
2個の拡張動作データ170を生成する。
【0029】
データ変換部16は、複数の動作データ110を基準データに設定せずに、一部の動作データ110を基準データに設定してもよい。例えば、予め設定された所定数の動作データ110を基準データに設定するように、データ変換部16が構成されてもよい。例えば、予め設定された所定数の基準データを設定するように、データ変換部16が構成されてもよい。データ変換部16によって基準データに設定される動作データ110の数については、特に限定されない。
【0030】
出力部17(出力手段)は、データ変換部16によって同期された動作データ(拡張動作データ170)を出力する。拡張動作データ170は、対象動作の学習に用いられる。拡張動作データ170は、動作データ110の数に応じて生成される。すなわち、動作データ生成装置10は、動作データ110を用いて拡張動作データ170を生成することによって、対象動作に関する動作データを拡張する。
【0031】
出力部17から出力された拡張動作データ170の用途は、学習対象動作の拡張に限定されない。拡張動作データ170は、同期対象動作を検証するユーザによって閲覧可能な端末装置の画面に表示されてもよい。例えば、拡張動作データ170は、同じ動作クラスに属する動作データ110や拡張動作データ170を並べて、端末装置の画面に表示させる。例えば、拡張動作データ170は、同一人物に関する異なる動作クラスに属する動作データ110や拡張動作データ170を並べて、端末装置の画面に表示させる。
【0032】
〔データ変換部〕
次に、データ変換部16の詳細構成について図面を参照しながら説明する。
図3は、データ変換部16の構成の一例を示すブロック図である。データ変換部16は、姿勢推定部161、特徴量計算部162、距離計算部165、および同期処理部166を備える。特徴量計算部162は、正規化部163およびエンコーダ164を含む。
【0033】
姿勢推定部161(姿勢推定手段)は、動作データ110から姿勢データを抽出する。姿勢データは、動作データ110から抽出された人物の姿勢を示すデータである。例えば、姿勢推定部161は、人物の代表的な部位(関節)の位置を示すデータセットを、姿勢データとして抽出する。例えば、姿勢推定部161は、深層学習モデルを用いて、動作データ110から姿勢データを推定する。
【0034】
図4は、データ変換部16が取得する動作データの一例(動作データ110A)を示す概念図である。
図4は、データ変換の対象動作を行う人物を含む動作データ110Aの一例を示す。
図4は、動作データ110Aを構成するフレームの一部を示す。
【0035】
図5は、動作データ110Aから抽出された姿勢データの一例(姿勢データ120A)を示す概念図である。姿勢推定部161は、動作データ110Aを構成するフレームから、人物の代表的な部位(関節)の位置を、姿勢データ120Aとして推定する。各フレームにおいては、人物の代表的な部位(関節)の位置を示す円が、接続線で連結されている。例えば、姿勢推定部161は、肩や肘、手首、首、胸、腰、股、膝、足首などの関節の位置座標を、姿勢データとして推定する。例えば、姿勢推定部161は、頭や指先、足先などの末端の位置座標を、姿勢データとして推定する。例えば、姿勢推定部161は、関節や末端の間に相当する部位の位置座標を、姿勢データとして推定する。以下においては、人物の代表的な部位の位置を関節と表現する。
【0036】
姿勢推定部161は、動画データから姿勢データを抽出するように、構成されてもよい。その場合、姿勢推定部161は、動画データに含まれるフレームから、人物を抽出する。姿勢推定部161は、抽出された人物の姿勢データを推定する。例えば、姿勢推定部161は、深層学習モデルを用いて、動画データから抽出された人物の姿勢データを推定する。姿勢推定部161は、動画データから抽出された人物に関して、代表的な部位の空間的な位置を姿勢データとして推定する。
【0037】
特徴量計算部162(特徴量計算手段)は、正規化部163およびエンコーダ164を含む。特徴量計算部162は、正規化部163を用いて、姿勢データを角度表現に正規化する。特徴量計算部162は、エンコーダ164を用いて、角度表現に正規化された姿勢データから、データ変換の対象動作に関する特徴量を抽出する。
【0038】
正規化部163(正規化手段)は、姿勢データを角度表現に正規化する。姿勢データには、その姿勢データの取得元である人物の腕や脚の長さなどの体格に関する属性が含まれる。それに対し、角度表現に正規化された姿勢データには、その姿勢データの取得元である人物の体格に関する属性が含まれない。正規化部163は、人物の関節を接続する接続線の成す角を、関節ごとに計算することによって、姿勢データを角度表現に正規化する。
【0039】
図6は、角度表現に正規化された姿勢データの一例について説明するための概念図である。正規化部163は、フレームごとに推定された姿勢データから、人物の姿勢を検証するための関節J
mを抽出する(mは自然数)。正規化部163は、複数の関節J
mに関して、それらの関節J
mによって連結された2つの接続線の成す3次元的関節角度(オイラー角θ
m)を計算する。すなわち、正規化部163は、各フレームから抽出された人物に関して、関節ごとのオイラー角のデータセット(関節角データセット)を計算する。
【0040】
エンコーダ164は、グラフ畳み込みネットワークGCN(Graph Convolutional Network)を含む。エンコーダ164は、動作データ110に含まれるフレームに対して、一意の埋め込み表現を学習する。例えば、エンコーダ164は、非特許文献1に開示された時間的サイクル整合性(TCC:Temporal Cycle-Consistency)の手法を用いた学習によって、特徴抽出を行う。TCC学習は、自己教師あり学習である。TCC学習によれば、同じ動作を含む動作データ110が複数あれば、それらの対応関係を探す損失関数(Cycle-back Loss)を計算することによって、ラベル無しで特徴抽出器を訓練できる。
【0041】
エンコーダ164には、正規化部163によって算出された関節角データセットが入力される。エンコーダ164は、入力された関節角データセットに関して、グラフ畳み込みネットワークによって特徴量を計算する。エンコーダ164は、3次元空間の座標系で表現された関節角データセットを、埋め込み表現に変換する。このように、エンコーダ164は、スケルトン形式で表現された隣接する関節を、グラフ構造と見なしてグラフ畳み込みを実行する。エンコーダ164は、動作データ110の背景が含まれないスケルトン形式の関節角データセットに対して、グラフ畳み込みネットワークを用いる。そのため、エンコーダ164を用いて抽出された特徴量には、動作データ110の背景の影響が含まれない。
【0042】
例えば、エンコーダ164は、隣接した複数のフレームを結合させたコンテクストの入力に応じて、特徴量を出力するように構成されてもよい。その場合、エンコーダ164には、ST(Spatio-Temporal)-GCNが用いられる。例えば、フレーム番号が1~5の連続した5つのフレームに関して、フレーム番号1~3のフレーム、フレーム番号2~4のフレーム、フレーム番号3~5のフレームの各々が結合されて、コンテクストとして選択される。このように、互いに連続するコンテクストは、同じフレーム番号のフレームを共有することが好ましい。
【0043】
距離計算部165(距離計算手段)は、基準データに関する第1特徴量と、同期対象データに関する第2特徴量との距離を計算する。すなわち、距離計算部165は、基準データを構成するフレームごとに算出された特徴量と、同期対象データを構成するフレームごとに算出された特徴量との距離を計算する。距離計算部165は、埋め込み空間における距離を計算する。距離計算部165は、基準データに関する第1特徴量と、同期対象データに関する第2特徴量との距離(誤差の絶対値)を総当たりで計算する。例えば、距離計算部165は、L2ノルムなどの手法を用いて、特徴量間の距離を算出する。この手法によれば、時系列データの長さや周期が違っても、距離(類似度)を導出できる。
【0044】
例えば、距離計算部165は、DTW(Dynamic Time Warping)などの手法を用いて、最適経路を計算してもよい。DTWでは、2つの時系列データを構成する各点の距離(誤差の絶対値)が総当たりで計算される。各特徴量に関して算出された全ての距離のうち、最も短い経路が最適経路に相当する。DTWによれば、基準データと同期対象データのフレーム長や周期が異なっても、それらを構成するフレームの類似度を計算できる。
【0045】
同期処理部166(同期処理手段)は、距離計算部165により算出された距離に基づいてフレームごとの最適経路を計算する。同期処理部166は、最適経路で結ばれたフレームのタイミングを揃えることによって、同期対象データを基準データに同期させる。同期処理部166は、基準データに含まれる対象動作を基準として、同期対象データを基準データに同期させる。その結果、基準データおよび同期対象データに含まれる最も類似した動作が対応付けられる。そして、同期処理部166は、対応付けられた動作を含むフレームのタイミングを揃えて、基準データおよび同期対象データに含まれる動作を同期させる。
【0046】
図7は、基準データおよび同期対象データを構成するフレームの最適経路を対応付けたマップの一例を示す概念図である。基準データを構成するフレームごとの特徴量の時系列データ(実線)をF1と表記する。同期対象データを構成するフレームごとの特徴量の時系列データ(破線)をF2と表記する。
図7は、アレイ状に配列されたマス目に最適経路がドットで示される。基準データを構成するフレームと、同期対象データを構成するフレームとは、最適経路(ドット)のタイミングで対応付けられる。
【0047】
図8は、基準データおよび同期対象データを構成するフレームの最適経路を対応付けたグラフである。
図8は、フレームごとの最適経路が線分で対応付けられた様子を示す。例えば、基準データに関する時系列データS
1(実線)の時刻i+2と、同期対象データに関する時系列データS
2(破線)における時刻iとが、最適経路で結ばれる。
【0048】
図9は、基準データに関する時系列データS
1(実線)と、基準データを基準として同期された拡張動作データ170を構成するフレームごとの特徴量の時系列データSS
2(破線)とを対応付けたグラフである。
図9のように、最適経路として対応付けられたフレームのタイミングを揃えることによって、同期対象データが基準データに同期される。
【0049】
図10は、複数の被験者が行った特定の動作に関する動作データを比較した概念図である。
図10の動作データは、時間軸方向に正規化されていない。
図10には、3つの動作データ(動作データs
1、動作データs
2、動作データs
3)を示す。
図10には、3つの動作データを構成する複数のフレームのうち5つ(フレームF
1、フレームF
2、フレームF
3、フレームF
4、フレームF
5)を示す。
図10の動作では、手を下ろした状態(フレームF
1)から頭上に向けて手をあげて、頭上の位置から手を下ろして、肩の側方の位置で手を止めた状態(フレームF
5)に至る動作である。
図10の場合、フレームF
2やフレームF
5などで動作がずれている。
【0050】
図11は、複数の被験者が行った特定の動作に関して、動作データs
1を基準データとして正規化された動作データ(動作データS
2、動作データS
3)を比較した概念図である。
図11には、3つの動作データを構成する複数のフレームから5つの動作タイミング(動作タイミングT
1、動作タイミングT
2、動作タイミングT
3、動作タイミングT
4、動作タイミングT
5)を示す。5つの動作タイミングT
1~T
5は、基準データの動作データs
1に関するフレームF
1~F
5に対応する。
図11の場合、個人差があるものの、
図10と比べると動作が揃っている。データ変換部16は、動作データs
1のみならず、動作データS
2および動作データS
3を基準データとして、他の動作データを正規化する。
【0051】
図11のように、動作データ生成装置10は、全ての動作データを基準データとして、時間軸方向に正規化された拡張動作データを生成する。そのため、動作データ生成装置10は、元の動作データの数が少なくても、時間軸方向に正規化された拡張動作データを大量に生成できる。すなわち、動作データ生成装置10は、少量の動作データを用いて、時間軸方向にデータ拡張された動作データを大量に生成できる。
【0052】
(動作)
次に、動作データ生成装置10の動作について図面を参照しながら説明する。
図12は、動作データ生成装置10の動作の一例について説明するためのフローチャートである。
図12のフローチャートに沿った説明においては、動作データ生成装置10を動作主体として説明する。
【0053】
図12において、まず、動作データ生成装置10は、変換対象の動作データを取得する(ステップS11)。
【0054】
次に、動作データ生成装置10は、動作クラスごとに動作データをグループ化する(ステップS12)。
【0055】
次に、動作データ生成装置10は、変換対象の動作データ群に含まれる全ての動作データを選定する(ステップS13)。
【0056】
次に、動作データ生成装置10は、データ変換処理を実行する(ステップS14)。ステップS14のデータ変換処理において、動作データ生成装置10は、角度表現に正規化された姿勢データを用いて、同期対象データを基準データに同期させる。動作データ生成装置10は、全ての動作データを基準データに設定して、同期対象データを基準データに同期させる。ステップS14のデータ変換処理の詳細については、後述する。
【0057】
次に、動作データ生成装置10は、同期処理によって同期された拡張動作データ170を出力する(ステップS15)。例えば、出力された拡張動作データ170は、対象動作の学習に用いられる。例えば、動作データ生成装置10は、拡張動作データ170を画面に表示させてもよい。
【0058】
全ての動作クラスに関してデータ変換が完了していない場合(ステップS16でNo)、ステップS13に戻る。動作データ生成装置10は、データ変換が完了していない動作クラスに関して、データ変換処理を継続する。全ての動作クラスに関してデータ変換が完了した場合(ステップS16でYes)、
図12のフローチャートに沿った処理は終了である。動作データ生成装置10は、全ての動作クラスに関するデータ変換が完了してから、拡張動作データ170を出力するように、構成されてもよい。
【0059】
〔データ変換処理〕
次に、動作データ生成装置10によるデータ変換処理(
図12のフローチャートのステップS14)について図面を参照しながら説明する。
図13は、動作データ生成装置10によるデータ変換処理の一例について説明するためのフローチャートである。
図13のフローチャートの例では、動作データ110の総数がN個の場合を例示する。
図13のフローチャートに沿った説明においては、動作データ生成装置10に含まれるデータ変換部16を動作主体として説明する。
【0060】
図13において、まず、データ変換部16は、基準データとして選定される動作データ番号iに1を設定する(ステップS141)。動作データ番号は、複数の動作データの各々に関して固有の番号である。
図13の例では、N個の動作データの各々に対して、1~Nの動作データ番号が付される。
【0061】
次に、データ変換部16は、基準データとして、動作データ番号iの動作データを選定する(ステップS142)。選定された動作データ番号iの動作データは、基準データRiとして用いられる(1≦i≦N)。
【0062】
次に、データ変換部16は、同期対象データとして選定される動作データ番号kに1を設定する(ステップS143)。
【0063】
次に、データ変換部16は、同期対象データとして、動作データ番号kの動作データを選定する(ステップS144)。選定された動作データ番号kの動作データは、同期対象データTkとして用いられる(1≦k≦N)。
【0064】
次に、データ変換部16は、同期処理を実行する(ステップS145)。同期処理において、データ変換部16は、基準データRiに同期対象データTkを同期させる。同期処理の詳細については後述する。
【0065】
次に、データ変換部16は、同期対象データTkの選定に用いられる動作データ番号kをインクリメントする(ステップS146)。
【0066】
動作データ番号kが動作データの総数Nを越えていない場合(ステップS147でNo)、ステップS144に戻る。動作データ番号kが動作データの総数Nを越えた場合(ステップS147でYes)、データ変換部16は、基準データとして選定される動作データ番号iをインクリメントする(ステップS148)。
【0067】
動作データ番号iが動作データの総数Nを越えていない場合(ステップS149でNo)、ステップS142に戻る。動作データ番号iが動作データの総数Nを越えた場合(ステップS149でYes)、
図12のフローチャートのステップS15に進む。この段階で、N個の動作データを含めて、N
2通りの拡張動作データが生成される。
【0068】
〔同期処理〕
次に、動作データ生成装置10による同期処理(
図13のステップS145)の一例について図面を参照しながら説明する。
図14は、同期処理について説明するためのフローチャートである。
図14のフローチャートに沿った説明においては、動作データ生成装置10に含まれるデータ変換部16を動作主体として説明する。
【0069】
図14において、まず、データ変換部16は、基準データおよび同期対象データを構成するフレームごとに姿勢データを推定する(ステップS151)。
【0070】
次に、データ変換部16は、基準データおよび同期対象データを構成するフレームごとに、姿勢データを角度表現に正規化する(ステップS152)。
【0071】
次に、データ変換部16は、同期対象データおよび基準データを構成するフレームごとの角度表現を用いて、グラフ畳み込みネットワークにより特徴量を計算する(ステップS153)。
【0072】
次に、データ変換部16は、同期対象データおよび基準データに関して、特徴量の距離を計算する(ステップS154)。
【0073】
次に、データ変換部16は、算出された距離を用いて、フレーム間の最適経路を計算する(ステップS155)。
【0074】
次に、データ変換部16は、算出された最適経路のタイミングを揃えて、同期対象データを基準データに同期させる(ステップS156)。ステップS156の次は、
図13のステップS146に進む。
【0075】
以上のように、本実施形態の動作データ生成装置は、取得部、変換データ選定部、データ変換部、および出力部を備える。取得部は、データ変換対象である複数の動作データを取得する。変換データ選定部は、データ拡張の対象動作である動作クラスごとに、複数の動作データをグループ化する。データ変換部は、動作クラスごとにグループ化された動作データのうち少なくとも1つを基準データに設定する。データ変換部は、グループ化された動作データのうち基準データとは異なる少なくとも1つの動作データを変換対象データに設定する。データ変換部は、基準データの動作タイミングを基準として変換対象データを同期させた拡張動作データを生成する。出力部は、生成された拡張動作データを出力する。
【0076】
本実施形態の動作データ生成装置は、動作クラスごとにグループ化された動作データのうち少なくとも1つを基準データとして、その基準データとは異なる少なくとも1つの動作データを変換対象データに設定する。本実施形態の動作データ生成装置は、基準データの動作タイミングを基準として、変換対象データを同期させた拡張動作データを生成する。本実施形態の動作データ生成装置は、そのため、本実施形態によれば、時間軸方向にデータ拡張された動作データを生成できる。
【0077】
本実施形態の一態様において、データ変換部は、動作クラスごとにグループ化された動作データの全てを基準データに設定する。データ変換部は、グループ化された動作データのうち基準データとは異なる全ての動作データを変換対象データに設定する。データ変換部は、全ての基準データの動作タイミングを基準として、基準データに対して設定された全ての変換対象データを同期させた拡張動作データを生成する。本態様においては、動作データの全てを基準データに設定して、他の動作データを変換対象データとして総当たりで同期させる。そのため、本態様によれば、少量の動作データであっても、時間軸方向にデータ拡張された動作データを大量に生成できる。
【0078】
本実施形態の一態様において、データ変換部は、特徴量計算部、距離計算部、および同期処理部を有する。特徴量計算部は、グラフ畳み込みネットワークを含むエンコーダを有する。特徴量計算部は、対象動作を含む動作データを構成するフレームごとに推定された姿勢データを角度表現に正規化する。特徴量計算部は、角度表現に正規化された姿勢データをエンコーダに入力して埋め込み空間における特徴量を計算する。エンコーダは、角度表現に正規化された姿勢データをグラフ畳み込みによって畳み込み、埋め込み空間における埋め込みを特徴量として出力する。距離計算部は、基準データを構成するフレームごとに算出された特徴量と、同期対象データを構成するフレームごとに算出された特徴量との距離を計算する。距離計算部は、基準データを構成するフレームに関する特徴量と、同期対象データを構成するフレームに関する特徴量との間の距離を総当たりで計算する。同期処理部は、算出された距離に基づいてフレームごとの最適経路を計算し、最適経路で結ばれたフレームのタイミングを揃えることによって、同期対象データを基準データに同期させる。
【0079】
本態様のデータ変換部は、動作データを構成するフレームごとに推定された姿勢データの特徴に基づいて、同期対象データを基準データに同期させる。そのため、同期対象データは、背景の影響を受けずに、基準データに含まれる対象動作を基準として同期される。また、本態様のデータ変換部は、角度表現に正規化された姿勢データの特徴に基づいて、同期対象データを基準データに同期させる。そのため、同期対象データは、基準データに含まれる対象動作を基準として高精度に同期される。すなわち、本実施形態によれば、背景の影響を受けずに、複数の動作データの各々に含まれる同期対象動作を高精度で同期できる。
【0080】
一般に、動作データを構成するフレームに含まれる画像に基づいて、2つの動作データの各々に含まれる対象動作を同期させることは難しい。本態様では、動作データを構成するフレームを、埋め込みされた埋め込み空間に落とし込む。埋め込み空間では、特徴量の間の距離を計算できる。本態様では、埋め込み空間における距離を用いて、同じ動作を関連付ける。本態様では、フレーム単位で抽出された特徴量に基づき、DTWの手法を用いて同期を取る。そのため、本態様によれば、角度表現に変換された姿勢データを直接用いて同期を取るよりも、2つの動作データに含まれる対象動作を高精度に同期させることができる。
【0081】
本態様の手法では、基準データに含まれる対象動作のタイミングに、同期対象データに含まれる対象動作のタイミングを合わせて、時間軸方向に同期させる。そのため、基準データに含まれる対象動作と、同期対象データに含まれる対象動作とは、時間軸方向において正規化される。そのため、本態様によれば、タグやメタデータなどのアノテーションがなくても、動作データを拡張できる。本態様によれば、多様な人間の動作データの動作タイミングや速さが揃った動作を含む動作データを拡張できる。
【0082】
(第2の実施形態)
次に、第2の実施形態に係る動作データ生成装置について図面を参照しながら説明する。本実施形態の動作データ生成装置は、動作データの関係を表す指標値に応じて選定された動作データを用いて、拡張動作データを生成する。
【0083】
(構成)
図15は、本実施形態に係る動作データ生成装置20の構成の一例を示すブロック図である。動作データ生成装置20は、取得部21、指標値計算部22、変換データ選定部25、データ変換部26、および出力部27を備える。
【0084】
取得部21(取得手段)は、第1の実施形態の取得部11と同様の構成である。取得部21は、データ変換対象である複数の動作データ210を取得する。動作データ210は、第1の実施形態の動作データ110と同様のデータである。動作データ210は、データ拡張の対象動作を行う人物の動作を示すデータである。動作データ210は、データ拡張の対象動作を行う人物の像を含む動画データを構成するフレームから抽出される。
【0085】
指標値計算部22(指標値計算手段)は、複数の動作データ210から予め設定された数のサンプルを抽出する。例えば、指標値計算部22は、複数の動作データ210から予め設定された数のサンプルをランダムに抽出する。指標値計算部22は、予め設定された規則に基づいて、複数の動作データ210からサンプルを抽出してもよい。
【0086】
指標値計算部22は、抽出された動作データ210に関して、サンプル間の関係を表す指標値を計算する。例えば、指標値計算部22は、サンプル間の関係を表す指標値として、サンプル間における類似度を計算する。例えば、指標値計算部22は、コサイン類似度などの類似度を計算する。
【0087】
例えば、指標値計算部22は、以下の式1を用いて、類似度Dsを計算する。
【0088】
【数1】
上記の式1は、動作データAと動作データBとのコサイン類似度を算出する数式の一例である。指標値計算部22は、上記の式1とは異なる算出方法で、動作データAと動作データBとの類似度を算出してもよい。
【0089】
例えば、指標値計算部22は、サンプル間の関係を表す指標値として、サンプル間の距離を計算してもよい。例えば、指標値計算部22は、ユークリッド距離を計算する。
【0090】
変換データ選定部25(変換データ選定手段)は、算出された指標値に応じて、変換対象の動作データ210をペアリングする。例えば、変換データ選定部25は、サンプル間の類似度に応じて、変換対象の動作データ210をペアリングする。サンプル間の類似度が小さいほど、2つの動作データ210の動作タイミングがずれている。そのため、サンプル間の類似度が小さい動作データ210のペアを同期させた方が、時間軸方向において動作タイミングが揃った同期データを生成できる。例えば、変換データ選定部25は、類似度が小さい順に、所定数の動作データ210の組み合わせを選定する。例えば、変換データ選定部25は、予め設定された類似度閾値を下回った類似度の動作データ210の組み合わせを選定する。
【0091】
変換データ選定部25は、サンプル間の距離に応じて、変換対象の動作データ210をペアリングしてもよい。サンプル間の距離が大きいほど、2つの動作データ210の動作タイミングがずれている。そのため、サンプル間の距離が大きい動作データ210のペアを同期させた方が、時間軸方向において動作タイミングが揃った同期データを生成できる。例えば、変換データ選定部25は、距離が大きい順に、所定数の動作データ210の組み合わせを選定する。例えば、変換データ選定部25は、予め設定された距離閾値を上回った距離の動作データ210の組み合わせを選定する。
【0092】
図16は、変換データ選定部25による動作データ210のペアリングについて説明するための概念図である。図の1マスは、1つの動作データ210を示す。
図16の例においては、データIDが1~3の動作データ210が抽出されている。
図16には、データID(Identifier)が付された動作データ210のうち、一部のペア間における類似度を示す。データIDが同じ組み合わせのマスの数字は、実測された同じ動作データ210の類似度(1.0)である。
図16においては、類似度の最大値が1.0である。
図16の例の場合、所定の類似度の閾値(類似度閾値)が0.8に設定されているものとする。
図16の例の場合、変換データ選定部25は、閾値(0.8)を下回る類似度のペアを選定する。具体的には、変換データ選定部25は、データIDが1と3である動作データのペアと、データIDが2と3である動作データのペアとを選定する。
【0093】
データ変換部26(データ変換手段)は、第1の実施形態のデータ変換部16と同様の構成である。データ変換部26は、サンプル間の関係を表す指標値に応じてペアリングされた動作データ210を変換データ選定部25から取得する。データ変換部26は、ペアリングされた動作データ210のうち1つを基準データに設定する。また、データ変換部26は、ペアリングされた動作データ210のうち、基準データとは異なる方の動作データ210を変換対象データに設定する。データ変換部26は、基準データの動作タイミングを基準として、変換対象データを同期させる。
【0094】
データ変換部26は、変換対象データを基準データに対して同期させると、その基準データとは異なる動作データ210を、新たな基準データとして設定する。データ変換部26は、ペアリングされた動作データ210のうち、初めに基準データに設定された動作データ210を変換対象データに設定する。データ変換部26は、新たな基準データの動作タイミングを基準として、変換対象データを同期させる。
【0095】
データ変換部26は、サンプル間の関係を表す指標値に応じてペアリングされた全ての動作データ210のペアを同期させる。
【0096】
出力部27(出力手段)は、第1の実施形態の出力部17と同様の構成である。出力部27は、データ変換部26によって同期された動作データ(拡張動作データ270)を出力する。拡張動作データ270は、対象動作の学習に用いられる。拡張動作データ270は、サンプル間の関係を表す指標値に応じて選定された動作データ210のペアの数に応じて生成される。すなわち、動作データ生成装置20は、サンプル間の関係を表す指標値に応じて選定された動作データ210のペアを用いて拡張動作データ270を生成することによって、対象動作に関する動作データを効率的に拡張する。
【0097】
(動作)
次に、動作データ生成装置20の動作について図面を参照しながら説明する。
図17は、動作データ生成装置20の動作の一例について説明するためのフローチャートである。
図17のフローチャートに沿った説明においては、動作データ生成装置20を動作主体として説明する。
【0098】
図17において、まず、動作データ生成装置20は、変換対象の動作データ210を取得する(ステップS21)。
【0099】
次に、動作データ生成装置20は、動作クラスごとに動作データ210をグループ化する(ステップS22)。
【0100】
次に、動作データ生成装置20は、変換対象の動作データ群から、所定数のサンプルをランダムに抽出する(ステップS23)。動作データ生成装置20は、変換対象の動作データ群から、予め設定された基準に基づいて、所定数のサンプルを抽出してもよい。
【0101】
次に、動作データ生成装置20は、抽出されたサンプルから、サンプル間の関係を表す指標値に応じて、動作データ210のペアを選定する(ステップS24)。例えば、動作データ生成装置20は、サンプル間の関係を表す指標値として、類似度や距離を用いる。
【0102】
次に、動作データ生成装置20は、データ変換処理を実行する(ステップS25)。ステップS25のデータ変換処理において、動作データ生成装置20は、角度表現に正規化された姿勢データを用いて、同期対象データを基準データに同期させる。動作データ生成装置20は、抽出された全ての動作データのペアを同期させる。ステップS25のデータ変換処理の詳細については、後述する。
【0103】
次に、動作データ生成装置20は、同期処理によって同期された拡張動作データ270を出力する(ステップS26)。例えば、出力された拡張動作データ270は、対象動作の学習に用いられる。例えば、動作データ生成装置20は、拡張動作データ270を画面に表示させてもよい。
【0104】
全ての動作クラスに関してデータ変換が完了していない場合(ステップS27でNo)、ステップS23に戻る。動作データ生成装置20は、データ変換が完了していない動作クラスに関して、データ変換処理を継続する。全ての動作クラスに関してデータ変換が完了した場合(ステップS27でYes)、
図17のフローチャートに沿った処理は終了である。動作データ生成装置20は、全ての動作クラスに関するデータ変換が完了してから、拡張動作データ270を出力するように、構成されてもよい。
【0105】
〔データ変換処理〕
次に、動作データ生成装置20によるデータ変換処理(
図17のフローチャートのステップS25)について図面を参照しながら説明する。
図18は、動作データ生成装置20によるデータ変換処理の一例について説明するためのフローチャートである。
図18のフローチャートの例では、サンプル間の関係を表す指標値に応じて選定された動作データ210のペアを同期させる。
図18のフローチャートに沿った説明においては、動作データ生成装置20に含まれるデータ変換部26を動作主体として説明する。
【0106】
図18において、まず、データ変換部26は、同期されていない1組の動作データ210のペアを選択する(ステップS251)。
【0107】
次に、データ変換部26は、選択された動作データ210のペアのうち、一方を基準データに設定し、他方を同期対象データに設定する(ステップS252)。
【0108】
次に、データ変換部26は、第1同期処理を実行する(ステップS253)。第1同期処理は、第1の実施形態における同期処理(
図14)と同様である。第1同期処理において、データ変換部26は、動作データ210のペアのうち、一方の動作データ210である基準データに、他方の動作データ210である同期対象データを同期させる。ステップS253において、動作データ210の他方が一方に同期された1つの拡張動作データ270が生成される。
【0109】
次に、データ変換部26は、選択された動作データ210のペアのうち、他方を基準データに設定し、一方を同期対象データに設定する(ステップS254)。ステップS254は、動作データ210のペアの基準データと同期対象データとを入れ替える処理である。
【0110】
次に、データ変換部26は、第2同期処理を実行する(ステップS255)。第2同期処理は、第1の実施形態における同期処理(
図14)と同様である。第2同期処理において、データ変換部26は、動作データ210のペアのうち、他方の動作データ210である基準データに、一方の動作データ210である同期対象データを同期させる。ステップS253において、動作データ210の一方が他方に同期された1つの拡張動作データ270が生成される。すなわち、ステップS255の段階において、動作データ210のペアが互いに同期された2つの拡張動作データ270が生成される。
【0111】
全ての動作データ210のペアについて同期が完了していない場合(ステップS256でNo)、ステップS251に戻る。全ての動作データ210のペアについて同期が完了した場合(ステップS256でYes)、
図17のフローチャートのステップS26に進む。この段階で、選定された動作データのペアの全てに関して、互いに同期された拡張動作データが生成される。
【0112】
以上のように、本実施形態の動作データ生成装置は、取得部、指標値計算部、変換データ選定部、データ変換部、および出力部を備える。取得部は、データ変換対象である複数の動作データを取得する。指標値計算部は、予め設定された数のサンプルを、複数の動作データから抽出する。指標値計算部は、抽出されたサンプルに関してサンプル間の関係を表す指標値を計算する。変換データ選定部は、データ拡張の対象動作である動作クラスごとに、複数の動作データをグループ化する。変換データ選定部は、指標値計算部によって算出された指標値に応じて、変換対象の動作データをペアリングする。データ変換部は、ペアリングされた動作データを互いに同期させた拡張動作データを生成する。出力部は、生成された拡張動作データを出力する。
【0113】
本実施形態の動作データ生成装置は、予め設定された数のサンプルを複数の動作データから抽出する。また、本実施形態の動作データ生成装置は、指標値に応じてペアリングされた動作データに関して、互いに同期させた拡張動作データを生成する。そのため、本実施形態によれば、予め設定された数の動作データを用いて、時間軸方向にデータ拡張された動作データを必要な数だけ効率的に生成できる。
【0114】
本実施形態の一態様において、指標値計算部は、指標値として、サンプル間の類似度を計算する。変換データ選定部は、予め設定された類似度閾値よりも類似度が小さい2つの動作データをペアリングする。本態様によれば、類似度が小さく、動作タイミングのずれが大きな2つの動作データを互いに同期させることによって、動作タイミングが揃った拡張動作データを生成できる。
【0115】
本実施形態の一態様において、指標値計算部は、指標値として、サンプル間の距離を計算する。変換データ選定部は、予め設定された距離閾値よりも距離が大きい2つの動作データをペアリングする。本態様によれば、距離が大きく、動作タイミングのずれが大きな2つの動作データを互いに同期させることによって、動作タイミングが揃った拡張動作データを生成できる。
【0116】
(第3の実施形態)
次に、第3の実施形態に係る動作データ生成装置について図面を参照しながら説明する。本実施形態の動作データ生成装置は、クラスタリングによって分類されたクラスタのうち選択されたクラスタ間で動作データを同期させて、拡張動作データを生成する。
【0117】
(構成)
図19は、本実施形態に係る動作データ生成装置30の構成の一例を示すブロック図である。動作データ生成装置30は、取得部31、クラスタリング部32、ペア選択部33、変換データ選定部35、データ変換部36、および出力部37を備える。
【0118】
取得部31(取得手段)は、第1の実施形態の取得部11と同様の構成である。取得部31は、データ変換対象である複数の動作データ310を取得する。動作データ310は、第1の実施形態の動作データ110と同様のデータである。動作データ310は、データ拡張の対象動作を行う人物の動作を示すデータである。動作データ310は、データ拡張の対象動作を行う人物の像を含む動画データを構成するフレームから抽出される。
【0119】
クラスタリング部32(クラスタリング手段)は、所定のクラスタリング法によって、複数の動作データ310を複数の集合(クラスタ)にグループ分けする。例えば、クラスタリング部32は、k-means法などの非階層クラスタリングの手法によって、複数の動作データ310をk個のクラスタに分類する(kは自然数)。クラスタリング部32は、k-means法ではない手法を用いて、複数の動作データ310をグループ分けするように構成されてもよい。例えば、クラスタリング部32は、群平均法やウォード法、最短距離法、最長距離法などの階層クラスタリングの手法を用いて、複数の動作データ310をグループ分けするように構成されてもよい。
【0120】
図20は、クラスタリング部32によってk個のクラスタにグループ分けされた動作データ310(黒丸)について説明するための概念図である。
図20には、横軸(x
1)と縦軸(x
2)によって規定された2次元直交座標系に、動作データ(黒丸)マッピングされた例を示す。
図20には、k個のクラスタのうち、クラスタC
i(破線の範囲内)、クラスタC
j(一点鎖線の範囲内)、およびクラスタC
k(点線の範囲内)を示す(i、j、kは自然数)。
【0121】
ペア選択部33(ペア選択手段)は、クラスタに含まれる動作データ310の数に応じて、グループ分けされた複数のクラスタに含まれる2つのクラスタをペアリングする。ペア選択部33は、動作データ310の数が少ないクラスタと、他のクラスタとをペアリングする。例えば、ペア選択部33は、動作データ310の数が最小のクラスタと、他のクラスタとをペアリングする。動作データ310の数が少ないクラスタに含まれる動作データ310は、他のクラスタに含まれる動作データ310に対して、動作タイミングのずれが大きい傾向がある。そのため、ペア選択部33は、サンプル数の少ないクラスタに含まれる動作データ310を重点的に選択して、同期タイミングのずれの小さい拡張動作データが生成されやすい状態にする。
【0122】
例えば、ペア選択部33は、確率的な手法によって、2つのクラスタをペアリングする。例えば、ペア選択部33は、クラスタに含まれる動作データ310の数の割合から、その逆比を計算する。サンプル数が少ないクラスタに含まれる動作データ310は、他のクラスタに含まれる動作データ310とのずれが大きい。そのため、ペア選択部33は、サンプル数が少ないクラスタが選択されやすいように、逆比を計算して、そのクラスタが選択されやすい状態にする。
【0123】
図20の例の場合、クラスタC
i、クラスタC
j、およびクラスタC
kに含まれる動作データ310のサンプル数の割合は5:2:3である。この場合、クラスタC
i、クラスタC
j、およびクラスタC
kに含まれる動作データ310のサンプル数の割合に関する逆比は6:15:10である。ペア選択部33は、逆比の大きなクラスタC
jを選択する。クラスタC
jは、他のクラスタと比べて動作データ310の数が少ない。また、ペア選択部33は、クラスタC
jとは異なるクラスタを選択する。
図20の例の場合、クラスタC
iが選択されている。ペア選択部33は、選択されたクラスタC
jおよびクラスタC
iに含まれる動作データ310を変換対象に設定する。
【0124】
変換データ選定部35(変換データ選定手段)は、ペアリングされた2つのクラスタの各々から、サンプルとなる動作データ310をランダムに抽出する。変換データ選定部35は、抽出された動作データ310をペアリングする。変換データ選定部35は、拡張動作データ370の目標値が満たされるまで、動作データ310をペアリングする。拡張動作データ370の目標値は、任意に設定される。変換データ選定部35は、ペアリングされた動作データ310をデータ変換部36に出力する。
【0125】
データ変換部36(データ変換手段)は、第1の実施形態のデータ変換部16と同様の構成である。データ変換部36は、変換データ選定部35によってペアリングされた動作データ310を変換データ選定部35から取得する。データ変換部36は、ペアリングされた動作データ310のうち1つを基準データに設定する。また、データ変換部36は、ペアリングされた動作データ310のうち、基準データとは異なる方の動作データ310を変換対象データに設定する。データ変換部36は、基準データの動作タイミングを基準として、変換対象データを同期させる。
【0126】
データ変換部36は、変換対象データを基準データに対して同期させると、その基準データとは異なる動作データ310を、新たな基準データとして設定する。データ変換部36は、ペアリングされた動作データ310のうち、初めに基準データに設定された動作データ310を変換対象データに設定する。データ変換部36は、新たな基準データの動作タイミングを基準として、変換対象データを同期させる。
【0127】
データ変換部36は、変換データ選定部35によってペアリングされた全ての動作データ310のペアを同期させる。
【0128】
出力部37(出力手段)は、第1の実施形態の出力部17と同様の構成である。出力部37は、データ変換部36によって同期された動作データ(拡張動作データ370)を出力する。拡張動作データ370は、対象動作の学習に用いられる。拡張動作データ370は、変換データ選定部35によって選定された動作データ310のペアの数に応じて生成される。すなわち、動作データ生成装置30は、変換データ選定部35によって選定された動作データ310のペアを用いて拡張動作データ370を生成することによって、対象動作に関する動作データを効率的に拡張する。
【0129】
(動作)
次に、動作データ生成装置30の動作について図面を参照しながら説明する。
図21は、動作データ生成装置30の動作の一例について説明するためのフローチャートである。
図21のフローチャートに沿った説明においては、動作データ生成装置30を動作主体として説明する。
【0130】
図21において、まず、動作データ生成装置30は、変換対象の動作データ310を取得する(ステップS31)。
【0131】
次に、動作データ生成装置30は、動作クラスごとに動作データ310をグループ化する(ステップS32)。
【0132】
次に、動作データ生成装置30は、クラスタリングによって、変換対象の動作データ群を複数のクラスタにグループ分けする(ステップS33)。例えば、動作データ生成装置30は、k-means法などの手法によって、変換対象の動作データ群を複数のクラスタにグループ分けする。
【0133】
次に、動作データ生成装置30は、クラスタに含まれる動作データ310の数に応じて、2つのクラスタをペアリング(ステップS34)。例えば、動作データ生成装置30は、確率的な手法を用いて、動作データ310の数が少ないクラスタを選択する。動作データ生成装置30は、選択されたクラスタを、他のクラスタとペアリングする。
【0134】
次に、動作データ生成装置30は、ペアリングされた2つのクラスタに含まれる動作データ310をペアリングする(ステップS35)。例えば、動作データ生成装置20は、ペアリングされた2つのクラスタの各々から動作データ310をランダムに抽出し、抽出された2つの動作データ310をペアリングする。
【0135】
次に、動作データ生成装置30は、データ変換処理を実行する(ステップS36)。ステップS36のデータ変換処理において、動作データ生成装置30は、角度表現に正規化された姿勢データを用いて、同期対象データを基準データに同期させる。動作データ生成装置30は、抽出された全ての動作データのペアを同期させる。ステップS36のデータ変換処理の詳細については、後述する。
【0136】
次に、動作データ生成装置30は、同期処理によって同期された拡張動作データ370を出力する(ステップS37)。例えば、出力された拡張動作データ370は、対象動作の学習に用いられる。例えば、動作データ生成装置30は、拡張動作データ370を画面に表示させてもよい。
【0137】
全ての動作クラスに関してデータ変換が完了していない場合(ステップS38でNo)、ステップS33に戻る。動作データ生成装置30は、データ変換が完了していない動作クラスに関して、データ変換処理を継続する。全ての動作クラスに関してデータ変換が完了した場合(ステップS38でYes)、
図21のフローチャートに沿った処理は終了である。動作データ生成装置30は、全ての動作クラスに関するデータ変換が完了してから、拡張動作データ370を出力するように、構成されてもよい。
【0138】
〔データ変換処理〕
次に、動作データ生成装置30によるデータ変換処理(
図21のフローチャートのステップS36)について図面を参照しながら説明する。
図22は、動作データ生成装置30によるデータ変換処理の一例について説明するためのフローチャートである。
図22のフローチャートの例では、動作データ310の数に応じてペアリングされた2つのクラスタの各々から選定された動作データ310のペアを同期させる。
図22のフローチャートに沿った説明においては、動作データ生成装置30に含まれるデータ変換部36を動作主体として説明する。
【0139】
図22において、まず、データ変換部36は、同期されていない1組の動作データ310のペアを選択する(ステップS361)。
【0140】
次に、データ変換部36は、選択された動作データ310のペアのうち、一方を基準データに設定し、他方を同期対象データに設定する(ステップS362)。
【0141】
次に、データ変換部36は、第1同期処理を実行する(ステップS363)。第1同期処理は、第1の実施形態における同期処理(
図14)と同様である。第1同期処理において、データ変換部36は、動作データ310のペアのうち、一方の動作データ310である基準データに、他方の動作データ310である同期対象データを同期させる。ステップS363において、動作データ310の他方が一方に同期された1つの拡張動作データ370が生成される。
【0142】
次に、データ変換部36は、選択された動作データ310のペアのうち、他方を基準データに設定し、一方を同期対象データに設定する(ステップS364)。ステップS364は、動作データ310のペアの基準データと同期対象データとを入れ替える処理である。
【0143】
次に、データ変換部36は、第2同期処理を実行する(ステップS365)。第2同期処理は、第1の実施形態における同期処理(
図14)と同様である。第2同期処理において、データ変換部36は、動作データ310のペアのうち、他方の動作データ310である基準データに、一方の動作データ310である同期対象データを同期させる。ステップS363において、動作データ310の一方が他方に同期された1つの拡張動作データ370が生成される。すなわち、ステップS365の段階において、動作データ310のペアが互いに同期された2つの拡張動作データ370が生成される。
【0144】
全ての動作データ310のペアについて同期が完了していない場合(ステップS366でNo)、ステップS361に戻る。全ての動作データ310のペアについて同期が完了した場合(ステップS366でYes)、
図22のフローチャートのステップS36に進む。この段階で、選定された動作データのペアの全てに関して、互いに同期された拡張動作データが生成される。
【0145】
以上のように、本実施形態の動作データ生成装置は、取得部、クラスタリング部、ペア選択部、変換データ選定部、データ変換部、および出力部を備える。取得部は、データ変換対象である複数の動作データを取得する。クラスタリング部は、所定のクラスタリング法よって、複数の動作データを複数のクラスタにグループ分けする。ペア選択部は、クラスタに含まれる動作データの数に応じて、グループ分けされた複数のクラスタに含まれる2つのクラスタをペアリングする。変換データ選定部は、ペアリングされた2つのクラスタからの各々から少なくとも1つずつの動作データをランダムに抽出する。変換データ選定部は、2つのクラスタからの各々から抽出された動作データをペアリングする。データ変換部は、ペアリングされた動作データを互いに同期させた拡張動作データを生成する。出力部は、生成された拡張動作データを出力する。
【0146】
本実施形態の動作データ生成装置は、クラスタに含まれる動作データの数に応じて、グループ分けされた複数のクラスタに含まれる2つのクラスタをペアリングする。本実施形態の動作データ生成装置は、ペアリングされた2つのクラスタからの各々から少なくとも1つずつの動作データをランダムに抽出し、抽出された動作データをペアリングする。本実施形態の動作データ生成装置は、ペアリングされた動作データに関して、互いに同期させた拡張動作データを生成する。そのため、本実施形態によれば、サンプルの数の少ないクラスタを重点的に同期対象として選定することによって、時間軸方向にデータ拡張された動作データを効率的に生成できる。
【0147】
本実施形態の一態様において、ペア選択部は、複数のクラスタに含まれる動作データの数の割合から逆比を計算する。ペア選択部は、算出された逆比の値が最大であるクラスタと、逆比の値が最大ではないいずれかのクラスタとをペアリングする。本態様によれば、算出された逆比の値に応じて、サンプルの数の少ないクラスタを確率的に選択する。そのため、本態様によれば、サンプルの数の少ないクラスタを確率的に選定することによって、時間軸方向にデータ拡張された動作データを効率的に生成できる。
【0148】
(第4の実施形態)
次に、第4の実施形態に係る学習装置について図面を参照しながら説明する。本実施形態の学習装置は、異なる動画データ(動作データ)から抽出される動作データを同期させるエンコーダを学習させる。動画データは、複数のフレームによって構成される。個々のフレームから抽出される人物の姿勢に関するデータを、姿勢データと呼ぶ。複数の姿勢データが時系列で連結されたデータを、動作データと呼ぶ。以下においては、異なる動画データに含まれる同じ動作を同期させることを、異なる動画データを同期させると表現することがある。本実施形態の学習装置が学習させたエンコーダは、第1~第3の実施形態に係る動作データ生成装置によって用いられる。
【0149】
本実施形態は、非特許文献1に開示された手法に基づいて説明する箇所を含む(非特許文献1:D. Dwibedi, et al., “Temporal Cycle-Consistency Learning”, IEEE Conf. on Computer Vision and Pattern Recognition (2019).)。
【0150】
(構成)
図23は、本実施形態に係る学習装置40の構成の一例を示すブロック図である。学習装置40は、取得部41、姿勢推定部42、特徴量計算部43、損失計算部45、および学習処理部46を備える。
【0151】
取得部41(取得手段)は、動作データ410を取得する。動作データ410は、学習対象動作を行う人物の像を含むデータである。例えば、学習対象動作には、背伸びや跳躍、歩行、走行、ストレッチなどの動作が含まれる。動画データを構成するフレームから抽出できれば、学習対象動作の種類については特に限定を加えない。
【0152】
例えば、取得部41は、動画データから抽出された人物の姿勢データを取得してもよい。姿勢データは、人物の代表的な部位の位置に関する位置座標のデータセットである。例えば、人物の代表的な部位は、関節や末端などである。例えば、取得部41は、モーションキャプチャを用いて計測された姿勢データを取得してもよい。取得部41が姿勢データを直接取得する場合、姿勢推定部42を省略できる。
【0153】
姿勢推定部42(推定手段)は、動作データ410に含まれるフレームから、人物を抽出する。姿勢推定部42は、抽出された人物の姿勢データを推定する。例えば、姿勢推定部42は、深層学習モデルを用いて、動作データ410から抽出された人物の姿勢データを推定する。姿勢推定部42は、動作データ410から抽出された人物に関して、代表的な部位の空間的な位置を姿勢データとして推定する。言い換えると、姿勢データは、動作データ410から抽出された人物の姿勢に関するデータである。
【0154】
特徴量計算部43(特徴量計算手段)は、正規化部431およびエンコーダ433を含む。特徴量計算部43は、正規化部431を用いて、姿勢データを角度表現に正規化する。特徴量計算部43は、エンコーダ433を用いて、角度表現に正規化された姿勢データから、学習対象動作に関する特徴量を抽出する。
【0155】
正規化部431(正規化手段)は、姿勢データを角度表現に正規化する。姿勢データには、その姿勢データの取得元である人物の腕や脚の長さなどの体格に関する属性が含まれる。それに対し、角度表現に正規化された姿勢データには、その姿勢データの取得元である人物の体格に関する属性が含まれない。正規化部431は、人物の関節を接続する接続線の成す角を、関節ごとに計算することによって、姿勢データを角度表現に正規化する。
【0156】
エンコーダ433は、グラフ畳み込みネットワークGCN(Graph Convolutional Network)を含む。エンコーダ433は、動作データ410に含まれるフレームに対して、一意の埋め込み表現を学習する。例えば、エンコーダ433は、非特許文献1に開示された時間的サイクル整合性(TCC:Temporal Cycle-Consistency)の手法を用いた学習によって、特徴抽出を行う。TCC学習は、自己教師あり学習である。TCC学習によれば、同じ動作を含む動作データ410が複数あれば、それらの対応関係を探す損失関数(Cycle-back Loss)を計算することによって、ラベル無しで特徴抽出器を訓練できる。
【0157】
エンコーダ433には、正規化部431によって算出された関節角データセットが入力される。エンコーダ433は、入力された関節角データセットに関して、グラフ畳み込みネットワークによって特徴量を計算する。エンコーダ433は、3次元空間の座標系で表現された関節角データセットを、埋め込み表現に変換する。このように、エンコーダ433は、スケルトン形式で表現された隣接する関節を、グラフ構造と見なしてグラフ畳み込みを実行する。エンコーダ433は、動作データ410の背景が含まれないスケルトン形式の関節角データセットに対して、グラフ畳み込みネットワークを用いる。そのため、エンコーダ433を用いて抽出された特徴量には、動作データ410の背景の影響が含まれない。
【0158】
例えば、エンコーダ433には、隣接した複数のフレームを結合させたコンテクストの入力に応じて、特徴量を出力するように構成されてもよい。その場合、エンコーダ433には、ST(Spatio-Temporal)-GCNが用いられる。例えば、フレーム番号が1~5の連続した5つのフレームに関して、フレーム番号1~3のフレーム、フレーム番号2~4のフレーム、フレーム番号3~5のフレームの各々が結合されて、コンテクストとして選択される。このように、互いに連続するコンテクストは、同じフレーム番号のフレームを共有することが好ましい。
【0159】
損失計算部45(損失計算手段)は、エンコーダ433によって算出された特徴量を用いて、損失を計算する。例えば、損失計算部45は、非特許文献1に開示されたCycle-back Loss法を用いて、損失を計算する。損失計算部45による損出の計算方法については、限定を加えない。
【0160】
非特許文献1の手法を用いる場合、損失計算部45は、同じ動作を含む2つの動作データ410(画像列)に対して、ResNet(Residual Network)をベースとしたエンコーダモデルを適用する。その結果、埋め込み表現のデータ列(埋め込みデータ列)が得られる。例えば、損失計算部45は、50層のConvolutional Neural Network(CNN)を含むResNet50をベースとしたエンコーダモデルを用いて、埋め込みデータ列を得る。例えば、損失計算部45は、2つの動作データ410(基準データおよび同期対象データ)に対してResNet50をベースとしたエンコーダモデルを適用して、埋め込みデータ列を得る。損失計算部45は、基準データの埋め込みデータ列Uのiフレーム目における埋め込みuiに対して、同期対象データの埋め込みデータ列Vに含まれる埋め込みのうち最近傍の埋め込みvを探索する(iは自然数)。損失計算部45は、探索された埋め込みvに対して、基準データの埋め込みデータ列Uの中で最近傍になる埋め込みukを探索する(kは自然数)。損失計算部45は、埋め込みuiおよび埋め込みukを用いて、損失を計算する。例えば、損失計算部45は、iとkの一致に関する交差エントロピー損失を、損失として計算する。例えば、損失計算部45は、iとkとの差に関する回帰ロスを、損失として計算する。
【0161】
学習処理部46(学習処理手段)は、算出された損失の変化量(勾配)を計算する。例えば、学習処理部46は、勾配降下法を用いて勾配を計算する。学習処理部46は、算出された勾配に応じて、機械学習によってエンコーダ433を訓練する。学習処理部46は、予め設定された基準よりも勾配が小さくなるまで、エンコーダ433を訓練する。例えば、学習処理部46は、確率的勾配降下法SGD(Stochastic Gradient Descent)を用いて、エンコーダ433を訓練する。学習処理部46は、確率的勾配降下法SGDではない手法を用いて、エンコーダ433を訓練してもよい。
【0162】
(動作)
次に、学習装置40の動作について図面を参照しながら説明する。
図24は、学習装置40の動作の一例について説明するためのフローチャートである。
図24のフローチャートに沿った説明においては、学習装置40を動作主体として説明する。
【0163】
図24において、まず、学習装置40は、学習対象動作に関する動作データ410を取得する(ステップS41)。
【0164】
次に、学習装置40は、動作データ410を構成するフレームごとに姿勢データを推定する(ステップS42)。
【0165】
次に、学習装置40は、動作データ410に含まれるフレームごとに推定された姿勢データを角度表現に正規化する(ステップS43)。
【0166】
次に、学習装置40は、グラフ畳み込みネットワークによって、角度表現に正規化された姿勢データ(関節角データセット)から、学習対象動作に関する特徴量を計算する(ステップS44)。
【0167】
次に、学習装置40は、算出された特徴量を用いて、損失を計算する(ステップS45)。
【0168】
次に、学習装置40は、算出された損失を用いて勾配を計算して、機械学習によってエンコーダ433を訓練する(ステップS46)。全ての動画データの訓練が完了していない場合(ステップS47でNo)、ステップS41に戻る。全ての動画データの訓練が完了すると(ステップS47でYes)、
図24のフローチャートに沿った処理は終了である。
【0169】
以上のように、本実施形態の学習装置は、取得部、推定部、特徴量計算部、損失計算部、および学習処理部を備える。取得部は、学習対象動作データを取得する。推定部は、学習対象動作データから姿勢データを推定する。特徴量計算部は、グラフ畳み込みネットワークを含むエンコーダを有する。特徴量計算部は、学習対象動作を含む動画データを構成するフレームごとに推定された姿勢データを角度表現に正規化する。特徴量計算部は、角度表現に正規化された姿勢データをエンコーダに入力して埋め込み空間における特徴量を計算する。損失計算部は、エンコーダによって算出された特徴量に応じた損失を計算する。学習処理部は、算出された損失の勾配に基づいてエンコーダを訓練する。
【0170】
本実施形態の学習装置は、学習対象動作データを構成するフレームごとに推定された姿勢データに関する特徴量に応じた損失に基づいて、エンコーダを訓練する。姿勢データは、角度表現に正規化されている。また、特徴量は、埋め込み空間において計算される。そのため、本実施形態によれば、背景の影響を受けずに、学習対象動作データに含まれる動作を高精度で同期できるようにエンコーダを訓練できる。本実施形態の学習装置によって訓練されたエンコーダを用いれば、タグやメタデータなどのアノテーションがなくても、動作データを拡張できる。このエンコーダを用いれば、多様な人間の動作タイミングや速さが揃った動作データを拡張できる。本実施形態の学習装置によって訓練されたエンコーダは、対象動作を含む複数の動作データを同期させるデータ変換に使用できる。
【0171】
(第5の実施形態)
次に、第5の実施形態に係る動作データ生成装置について図面を参照しながら説明する。本実施形態の動作データ生成装置は、第1~第3の実施形態に係る動作データ生成装置を簡略化した構成である。
図25は、本実施形態に係る動作データ生成装置50の構成の一例を示すブロック図である。動作データ生成装置50は、取得部51、変換データ選定部55、データ変換部56、および出力部57を備える。
【0172】
取得部51は、データ変換対象である複数の動作データ510を取得する。変換データ選定部55は、データ拡張の対象動作である動作クラスごとに、複数の動作データ510をグループ化する。データ変換部56は、動作クラスごとにグループ化された動作データ510のうち少なくとも1つを基準データに設定する。データ変換部56は、グループ化された動作データ510のうち基準データとは異なる少なくとも1つの動作データ510を変換対象データに設定する。データ変換部56は、基準データの動作タイミングを基準として変換対象データを同期させた拡張動作データ570を生成する。出力部57は、生成された拡張動作データ570を出力する。
【0173】
本実施形態の動作データ生成装置は、動作クラスごとにグループ化された動作データのうち少なくとも1つを基準データとして、その基準データとは異なる少なくとも1つの動作データを変換対象データに設定する。本実施形態の動作データ生成装置は、基準データの動作タイミングを基準として、変換対象データを同期させた拡張動作データを生成する。本実施形態の動作データ生成装置は、そのため、本実施形態によれば、時間軸方向にデータ拡張された動作データを生成できる。
【0174】
(ハードウェア)
次に、本開示の各実施形態に係る制御や処理を実行するハードウェア構成について、図面を参照しながら説明する。ここでは、そのようなハードウェア構成の一例として、
図26の情報処理装置90(コンピュータ)をあげる。
図26の情報処理装置90は、各実施形態の制御や処理を実行するための構成例であって、本開示の範囲を限定するものではない。
【0175】
図26のように、情報処理装置90は、プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95、および通信インターフェース96を備える。
図26においては、インターフェースをI/F(Interface)と略記する。プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95、および通信インターフェース96は、バス98を介して、互いにデータ通信可能に接続される。また、プロセッサ91、主記憶装置92、補助記憶装置93、および入出力インターフェース95は、通信インターフェース96を介して、インターネットやイントラネットなどのネットワークに接続される。
【0176】
プロセッサ91は、補助記憶装置93等に格納されたプログラム(命令)を、主記憶装置92に展開する。例えば、プログラムは、各実施形態の制御や処理を実行するためのソフトウェアプログラムである。プロセッサ91は、主記憶装置92に展開されたプログラムを実行する。プロセッサ91は、プログラムを実行することによって、各実施形態に係る制御や処理を実行する。
【0177】
主記憶装置92は、プログラムが展開される領域を有する。主記憶装置92には、プロセッサ91によって、補助記憶装置93等に格納されたプログラムが展開される。主記憶装置92は、例えばDRAM(Dynamic Random Access Memory)などの揮発性メモリによって実現される。また、主記憶装置92として、MRAM(Magneto resistive Random Access Memory)などの不揮発性メモリが構成/追加されてもよい。
【0178】
補助記憶装置93は、プログラムなどの種々のデータを記憶する。補助記憶装置93は、ハードディスクやフラッシュメモリなどのローカルディスクによって実現される。なお、種々のデータを主記憶装置92に記憶させる構成とし、補助記憶装置93を省略することも可能である。
【0179】
入出力インターフェース95は、規格や仕様に基づいて、情報処理装置90と周辺機器とを接続するためのインターフェースである。通信インターフェース96は、規格や仕様に基づいて、インターネットやイントラネットなどのネットワークを通じて、外部のシステムや装置に接続するためのインターフェースである。外部機器と接続されるインターフェースとして、入出力インターフェース95と通信インターフェース96とが共通化されてもよい。
【0180】
情報処理装置90には、必要に応じて、キーボードやマウス、タッチパネルなどの入力機器が接続されてもよい。それらの入力機器は、情報や設定の入力に使用される。入力機器としてタッチパネルが用いられる場合、タッチパネルの機能を有する画面がインターフェースになる。プロセッサ91と入力機器とは、入出力インターフェース95を介して接続される。
【0181】
情報処理装置90には、情報を表示するための表示機器が備え付けられてもよい。表示機器が備え付けられる場合、情報処理装置90には、表示機器の表示を制御するための表示制御装置(図示しない)が備えられる。情報処理装置90と表示機器は、入出力インターフェース95を介して接続される。
【0182】
情報処理装置90には、ドライブ装置が備え付けられてもよい。ドライブ装置は、プロセッサ91と記録媒体(プログラム記録媒体)との間で、記録媒体に格納されたデータやプログラムの読み込みや、情報処理装置90の処理結果の記録媒体への書き込みを仲介する。情報処理装置90とドライブ装置は、入出力インターフェース95を介して接続される。
【0183】
以上が、本開示の各実施形態に係る制御や処理を可能とするためのハードウェア構成の一例である。
図26のハードウェア構成は、各実施形態に係る制御や処理を実行するためのハードウェア構成の一例であって、本開示の範囲を限定するものではない。各実施形態に係る制御や処理をコンピュータに実行させるプログラムも、本開示の範囲に含まれる。
【0184】
各実施形態に係るプログラムを記録したプログラム記録媒体も、本開示の範囲に含まれる。記録媒体は、例えば、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光学記録媒体で実現できる。記録媒体は、USB(Universal Serial Bus)メモリやSD(Secure Digital)カードなどの半導体記録媒体によって実現されてもよい。また、記録媒体は、フレキシブルディスクなどの磁気記録媒体、その他の記録媒体によって実現されてもよい。プロセッサが実行するプログラムが記録媒体に記録されている場合、その記録媒体はプログラム記録媒体に相当する。
【0185】
各実施形態の構成要素は、任意に組み合わせられてもよい。各実施形態の構成要素は、ソフトウェアによって実現されてもよい。各実施形態の構成要素は、回路によって実現されてもよい。
【0186】
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0187】
10、20、30、50 動作データ生成装置
11、21、31、51 取得部
15、25、35、55 変換データ選定部
16、26、36、56 データ変換部
17、27、37、57 出力部
22 指標値計算部
32 クラスタリング部
33 ペア選択部
40 学習装置
41 取得部
42 姿勢推定部
43 特徴量計算部
45 損失計算部
46 学習処理部
161 姿勢推定部
162 特徴量計算部
163 正規化部
164 エンコーダ
165 距離計算部
166 同期処理部
431 正規化部
433 エンコーダ