(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023173854
(43)【公開日】2023-12-07
(54)【発明の名称】予測装置、プログラム及び学習方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20231130BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022086371
(22)【出願日】2022-05-26
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】明堂 絵美
(72)【発明者】
【氏名】小森田 賢史
(57)【要約】
【課題】多様な動き予測を精緻且つ柔軟に行うことのできる予測装置を提供する。
【解決手段】過去動作Xから未来動作Yを予測して生成する予測装置10であって、動作デコード部13において前記過去動作と、潜在コードzと、未来時刻の各々について時系列上で設定される動作カテゴリLとをデコードすることで、当該時系列上での動作カテゴリが反映された未来動作を生成する。前記潜在コードを複数に渡って生成し、複数の遷移コードの各々について、対応する時系列上での動作カテゴリの遷移のタイミングを変化させることで、前記未来動作を複数に渡って生成する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
過去動作から未来動作を予測して生成する予測装置であって、
前記過去動作と、潜在コードと、未来時刻の各々について時系列上で設定される動作カテゴリとをデコードすることで、当該時系列上での動作カテゴリが反映された未来動作を生成することを特徴とする予測装置。
【請求項2】
前記潜在コードを複数に渡って生成し、複数の遷移コードの各々について、対応する時系列上での動作カテゴリの遷移のタイミングを変化させることで、前記未来動作を複数に渡って生成することを特徴とする請求項1に記載の予測装置。
【請求項3】
前記動作カテゴリの種類の指定を手動指定として受け付けることを特徴とする請求項1に記載の予測装置。
【請求項4】
前記動作カテゴリの種類の指定を、前記過去動作から推定される未来動作の動作カテゴリとして自動指定することを特徴とする請求項1に記載の予測装置。
【請求項5】
前記過去動作から、当該過去動作を行う動作主体を識別する特徴を抽出し、
前記過去動作、前記潜在コード、前記動作カテゴリ及び前記特徴をデコードすることで、前記未来動作を生成することを特徴とする請求項1に記載の予測装置。
【請求項6】
前記潜在コードを複数に渡って生成し、複数の潜在コードの各々をデコードすることで、前記未来動作を複数に渡って生成し、
当該複数に渡って生成された未来動作の中からユーザによる選択を受け付け、
当該選択された未来動作に対応する潜在コードまたは当該潜在コードの近傍にある潜在コードを用いて再度のデコードを行うことで、未来動作を生成することを特徴とする請求項1に記載の予測装置。
【請求項7】
前記ユーザによる選択を受け付けるためのグラフィカルユーザインタフェースを提供することを特徴とする請求項6に記載の予測装置。
【請求項8】
前記選択された未来動作に対応する潜在コードまたは当該潜在コードの近傍にある潜在コードの指定を受け付けるためのグラフィカルユーザインタフェースを提供することを特徴とする請求項6に記載の予測装置。
【請求項9】
前記潜在コードは高次元空間における値として定義されるものであり、
当該潜在コードを2次元または3次元に次元削減して表示することで、当該次元削減された状態において潜在コードの範囲指定を受け付けるようにすることにより、前記グラフィカルユーザインタフェースを提供することを特徴とする請求項8に記載の予測装置。
【請求項10】
コンピュータを請求項1ないし9のいずれかに記載の予測装置として機能させることを特徴とするプログラム。
【請求項11】
深層学習ネットワークで構成され、過去動作から未来動作を予測して生成する予測装置であって、
前記過去動作と、潜在コードと、未来時刻の各々について時系列上で設定される動作カテゴリとをデコードすることで、当該時系列上での動作カテゴリが反映された未来動作を生成する予測装置における深層学習ネットワークのパラメータの学習方法であって、
学習用のラベル、過去動作及び未来動作をエンコーダに入力して潜在コードを生成し、
当該エンコーダの生成した潜在コードと、学習用のラベル及び過去動作を前記予測装置に入力して未来動作を予測し、
当該予測された未来動作と学習用の未来動作との誤差評価により、前記パラメータを学習することを特徴とする学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、過去動作から未来動作を予測する予測装置と、そのプログラム及び学習方法に関する。
【背景技術】
【0002】
人の未来の動きを予測することは、車やロボットの制御の最適化や危険回避などに有益である。予測のためにはカメラやセンサーなどで人の軌跡をとらえるほか、手や足などの複数の骨格点を捉え、より詳細な動きの予測を行うことも行われている。
【0003】
一つの未来だけでは、可能性を考慮すると十分ではなく、過去の人の動作X1:tに対して、未来の動作Yt+1:Tを複数予測することが行われている。ここで、以下の通り、Xの下付き添え字1:tは時刻k=1,2,…,t-1,tに渡る過去のフレームX(k)(現在時刻tまでのフレーム)を、Yの下付き添え字t+1:Tは時刻k=t+1,t+2,…,T-1,Tに渡る未来のフレームY(k)を示すが、文脈上明らかな場合は省略して過去フレームXや未来フレームY等と表記する場合もある。以下、動作を表すフレームについてこのような表記を用いるものとする。
過去動作フレームX1:t={X(k)|k=1,2,…,t-1,t} (Xと略記する場合あり)
未来動作フレームYt+1:T={Y(k)|k=t+1,t+2,…,T-1,T} (Yと略記する場合あり)
【0004】
複数の動作を予測する手法では、CVAE(conditional variational autoencoder、条件付き変分オートエンコーダ)がしばしば用いられる。
【0005】
非特許文献1および非特許文献2はCVAEを動き予測に用いている。
【0006】
CVAEのベースとなるVAE(変分オートエンコーダ)は、通常のオートエンコーダと同様にエンコーダとデコーダを持ち、潜在空間が連続的になるように正規化している。推論時には潜在空間から潜在コードzをサンプリングし、zをデコードすることができ、距離の近いzは似たようなデコード結果となる。しかしながら、その類似性は距離に対して均等ではなく、またその距離がどれくらい離れればどれくらい異なる動きになるかはモデルや学習時のパラメータなどに大きく依存する。
【0007】
CVAEは、VAEのエンコーダ入力部とデコーダ入力部に条件(Condition)を追加したもので、指定した条件でのデコード結果が得られやすくなる。多様な動作の推論では、条件(Condition)に過去の動作Xを入力し、異なる複数の潜在コードzを選んでデコードすると、過去の動作Xに対して異なる複数の未来の動作Yを予測することが出来る。
【0008】
なお、非特許文献1,2ではCVAEを動き予測に適用しているが、適用用途を限定しない形での一般的なCVAEの詳細は非特許文献3に開示される。
【0009】
特許文献1は、CVAEやVAEは用いていないが、一般的なエンコーダとデコーダを持つRNN(recurrent neural network、再帰型ニューラルネットワーク)を用いて、ビデオからの動作の予測や動作ラベルの予測を行っている。同手法では、過去のビデオから関節位置の推定、過去のビデオからのオプティカルフローを基に運動特性を推定し、それらをエンコードし、潜在的な状態を得る。その状態から現在の動作ラベルを推定する。また、現在の動作ラベルと状態から、未来姿勢と未来の動作ラベルをデコーダにより予測する。
【先行技術文献】
【特許文献】
【0010】
【非特許文献】
【0011】
【非特許文献1】Yuan Ye and Kitani Kris, "Dlow: Diversifying latent flows for diverse human motion prediction", ECCV 2020.
【非特許文献2】Sedegh Aliakbarian, Fatemesh Saleh, Lars Petersson, Stephen Gould Mathieu Salzmann, "Contextually plausible and diverse 3D human motion prediction", ICCV 2021.
【非特許文献3】Diederik P. Kingma, Kingma, Danilo J. Rezende, Shakir Mohamed and Max Welling, "Semi-supervised learning with deep generative models." Advances in Neural Information Processing Systems. 2014.
【発明の概要】
【発明が解決しようとする課題】
【0012】
以上のような従来技術では、多様な動き予測をさらに精緻且つ柔軟に行うようにすることで、多様な動き予測をよりよく活用することに関して課題があった。
【0013】
非特許文献1,2では、CVAEの条件に過去の動きを入力するのみで、予測される動作のカテゴリ、例えば動作の種類・人・属性といったものを指定できない。指定できないため、所望のカテゴリに限って予測したい場合、そのカテゴリ以外の余分な予測が多く出力されてしまう。また、所望のカテゴリの予測が低確率で出力されたとしても、その中で多様であるとは限らない。
【0014】
一方、非特許文献1,2の学習時の条件指定に、過去の動きだけでなく、動作のカテゴリといったラベルを入力することで、動作のカテゴリを指定したデコードも可能になると考えられる。しかし、所望のカテゴリの予測が高確率にできるようになったとしても、その中での多様さを制御できない。
【0015】
また、動作カテゴリを指定できるデコーダを、動作カテゴリを指定しない従来の用途に共通して用いることができない。つまり、デコーダへの入力条件の形が異なる度に、複数のデコーダを学習して別途用意する必要がある。これにより、学習時間の増大、学習済みモデル格納用メモリの増大、異なるデコーダ出力による結果の不統一さなどの問題が生じる。
【0016】
また、特許文献1は1つの未来動作を予測するのみで、多様な予測に対応していない。
【0017】
上記従来技術の課題に鑑み、本発明は、多様な動き予測を精緻且つ柔軟に行うことのできる予測装置を提供することを目的とする。また、対応するプログラム及び学習方法を提供することを目的とする。
【課題を解決するための手段】
【0018】
上記目的を達成するため、本発明は、過去動作から未来動作を予測して生成する予測装置であって、前記過去動作と、潜在コードと、未来時刻の各々について時系列上で設定される動作カテゴリとをデコードすることで、当該時系列上での動作カテゴリが反映された未来動作を生成することを特徴とする。また、本発明は、コンピュータを前記予測装置として機能させるプログラムであることを特徴とする。
【0019】
また、本発明は、深層学習ネットワークで構成され、過去動作から未来動作を予測して生成する予測装置であって、前記過去動作と、潜在コードと、未来時刻の各々について時系列上で設定される動作カテゴリとをデコードすることで、当該時系列上での動作カテゴリが反映された未来動作を生成する予測装置における深層学習ネットワークのパラメータの学習方法であって、学習用のラベル、過去動作及び未来動作をエンコーダに入力して潜在コード を生成し、当該エンコーダの生成した潜在コードと、学習用のラベル及び過去動作を前記予測装置に入力して未来動作を予測し、当該予測された未来動作と学習用の未来動作との誤差評価により、前記パラメータを学習することを特徴とする。
【発明の効果】
【0020】
本発明の予測装置によれば、時系列上で設定される動作カテゴリもデコードすることにより、当該時系列上での動作カテゴリが反映された未来動作を生成することで、精緻に予測を行うことができ、且つ、この際に潜在コードも利用することにより、柔軟に予測を行うことができる。本発明の学習方法によれば予測装置のパラメータを学習することができる。
【図面の簡単な説明】
【0021】
【
図1】一実施形態に係る予測装置の機能ブロック図である。
【
図2】予測装置の深層学習ネットワークの構成を示す図である。
【
図3】ラベル生成部による時間変化ラベルの生成例を示す図である。
【
図4】未来動作ラベルの模式的なイメージ図である。
【
図6】個人特徴抽出部またはこれに最終層を追加する構成で単独に学習する構成を示す図である。
【
図7】ラベル指定するためのGUIの例と前回の予測結果を絞り込んだ予測を行うためのGUIの例とを示す図である。
【
図8】一般的なコンピュータにおけるハードウェア構成の例を示す図である。
【発明を実施するための形態】
【0022】
図1は、一実施形態に係る予測装置10の機能ブロック図であり、予測装置10は、潜在コード抽出部11、ラベル生成部12、ラベル特徴抽出部121、動作デコード部13、行動予測部14及び個人特徴抽出部15を備える。本実施形態の予測装置10は動作予測を行うための最小の構成として、非特許文献1と同様の枠組みに即した潜在コード抽出部11と動作デコード部13に加え、ラベル生成部12を有する構成を取ることができる。
【0023】
ここで、前述したのと同様に、予測装置10へ入力される過去の動作をX1:tとし、予測装置10が出力する未来の予測された動作をY^
t+1:Tとし、その正解をYt+1:Tとし、K個の動作を予測するとする。添え字1:tは過去のフレーム、t+1:Tは未来のフレームを示すが、しばしば省略する。
【0024】
予測装置10は前述の最小の構成に加えてさらに、それぞれをオプション的に追加可能な構成として
図1中で括弧で囲んで示すように、ラベル特徴抽出部121、行動予測部14及び個人特徴抽出部15を有することができる。
【0025】
予測装置10は深層学習ネットワークを用いて構築することができ、
図2は、予測装置10の深層学習ネットワークの構成を示す図である。(すなわち、
図1及び
図2は同一の予測装置10の構成を示すが、
図1は機能ブロック図として簡素化して示し、
図2では
図1の機能ブロックの一部について当該ブロックを実現する深層学習ネットワークの構成を模式的に描いていて示している。)
【0026】
以下、
図1及び
図2に示す予測装置10の各部の詳細について説明する。
【0027】
まず、潜在コード抽出部11で潜在コードzをK個(K≧2)抽出し、このK個の潜在コードzを動作デコード部13へと出力するが、その内部処理について説明する。なお、潜在コードは正確にはK個の各々を区別して「z
k(1≦k≦K)」と表記できるが、その任意の1つを表すものとして適宜「z」として略記する。
図2に示されるように、潜在コード抽出部11は、乱数発生器111及びマッピング部112の第1構成として、または、独立サンプリング部113のみの第2構成のいずれかによって実現することができる。
【0028】
第1構成では、乱数発生器111において以下の式(111)のようにガウス分布に従う乱数としてε(シード値に相当するもの)をサンプルし、マッピング部112において以下の式(112)のようにパラメータをψkとするマッピング関数Tψkにより、K個の潜在コードzkを得る。第2構成では、独立サンプリング部113において以下の式(113)のようにzを事前分布pからK回独立にサンプルしてもよい。
【0029】
【0030】
第1構成との比較において多様性は下がることが想定されるが、第2構成を採用する場合でもそれなりに多様な動作をデコードできる。なお、本実施形態では予測装置10の出力として予測される動きのカテゴリを限定することができるが、第1構成よりも第2構成のサンプリングの方がデコードされるカテゴリが限定されやすい傾向がある。
【0031】
つぎに、ラベル生成部12では、ユーザ指定を受け付けることで、K個の予測動作ごとにデコードしたい所望のカテゴリのラベルL=Lk
t+1:T(1≦k≦K)を動作デコード部13へと出力する。(なお、オプション構成としてのラベル特徴抽出部121を追加利用する場合は、ラベル生成部12の出力ラベルL=Lk
t+1:Tはラベル特徴抽出部121に入力され、ラベル特徴抽出部121で抽出した特徴hl
k
t+1:T(1≦k≦K)を動作デコード部13へと出力する。)
【0032】
ここで、ラベル指定可能な行動種別をカテゴリとして予め定義しておき、例えば行動種別のカテゴリが[歩く,走る,ボクシングする,投げる,会話時の身振り]の5種類あり、ユーザ指定されるデコードしたい所望の未来のカテゴリが「歩く」であった場合、ラベルLに[1, 0, 0, 0, 0]を予測フレーム数分繰り返して時系列ラベルLk
t+1:Tを出力する。K個の未来動作で全て「歩く」を指定した場合は、K個同じ時系列ラベルを用いる。
【0033】
同様に「走る」であればラベルLに[0,1,0,0,0]を、ボクシングするであればラベルに[0,0,1,0,0]を、「投げる」であればラベルに[0,0,0,1,0]を、「会話時の身振り」であればラベルに[0,0,0,0,1]を予測フレーム数分繰り返して出力すればよい。
【0034】
また、ユーザの判断に応じて、所望のラベルは上記のように単一カテゴリで構成されるものとしてもよいし、複数カテゴリの混合(ブレンド)で構成されるものとしてもよい。複数のカテゴリを出力してもよい場合(複数の混合カテゴリの出力をユーザが所望する場合)は、全カテゴリのラベル値を足して1になるように、各カテゴリをブレンドする際の重みとしてラベルのベクトルを指定すればよい。例えば、「歩く」でも「走る」でもよい場合は[0.5,0.5,0,0,0]を、どの行動でも良い場合は [0.2,0.2,0.2,0.2,0.2]を予測フレーム数分繰り返してラベルを生成してもよい。K個の動作をデコードしたい場合は、同じ時系列ラベルをK回与え、Lk
t+1:T (1≦k≦K)とすればよい。
【0035】
さらに、以上の説明は動作予測対象の時刻t+1,t+2,…,Tについて時間変化しないラベルを指定する例であったが、ラベル生成部12では、ユーザ指定に従って予測するフレーム毎に異なるラベルを指定し、時間変化するラベルを生成することもできる。この性質を利用し、予測動作における動作種別の遷移開始タイミングに明示的に多様性を持たせることも可能である。
【0036】
例えば、ラベル生成部121による時間変化ラベルの生成例を
図3に示すように、ラベルLに「走る」を意味する値[0,1,0,0,0]を指定した場合、遷移のタイミングをラベル生成部121で自動的に異ならせて出力するようにしてよい。例えばあるサンプル(例えばk=1)はt+1フレームのタイミングから「走る」のラベルを予測フレーム数分繰り返して指定し、別のサンプル(例えばk=2)ではt+2のタイミングから「走る」のラベルを指定してそれ以前のラベルは「なし(値[0.2,0.2,0.2,0.2,0.2]など)」を指定する。なお、「なし」のラベルは、過去動作が未来に渡っても継続して発生することに対応するラベルとして機能することができる。
【0037】
このように、例えばt+1、t+2、t+4、…など多様な遷移開始タイミングを予め設定しておくことで、ラベル生成部121では時間的に多様な時系列ラベルLk
t+1:T(1≦k≦K)を自動的に生成することができる。
【0038】
以上のように、ラベル生成部121では、ユーザ指定に従って、動作予測対象の時刻t+1,t+2,…,Tに渡って一定値(単一カテゴリまたは混合カテゴリによる一定値)のラベルや、様々な遷移時刻においてユーザ指定される単一カテゴリに遷移する時間変化ラベルを生成し、動作デコード部13へ出力することができる。
【0039】
前述のように、オプション構成としてラベル特徴抽出部121が追加されることで、ラベル生成部121で生成したラベルを特徴量に変換してから動作デコード部13へ出力するようにしてもよい。
【0040】
ラベル特徴抽出部121は、MLP(多層パーセプトロン、Multilayer perceptron)などにより構成することができ、ラベルLから特徴hlを抽出することができる。ラベルLが時間変化しない同一ラベルで構成される場合、同一ラベルのhlをそのフレーム数分だけコピーして、時系列ラベル特徴hl
k
t+1:T(1≦k≦K)を取得できる。時間変化する場合も同様に、時間変化するものとして時系列ラベル特徴hl
k
t+1:T(1≦k≦K)を取得できる。
【0041】
ラベル特徴抽出部121を用いる構成はオプションであるため、省略されることでラベルLk
t+1:Tから特徴を抽出せず、そのままデコーダ(動作デコード部13)に入力することも可能である。その場合は、デコーダ内でLk
t+1:Tの特徴抽出を同時に行うことになる。(すなわち、ラベル特徴抽出部121は、ラベル特徴抽出部121を用いない場合に動作デコード部13で行われる特徴抽出処理を前処理として、動作デコード部13の外部で行う構成に相当する。外部構成とすることで外部構成においてネットワーク構成やパラメータを調整可能となり、より良い特徴抽出を行うことが期待できる。)以後、特徴hl
k
t+1:TはラベルLk
t+1:Tと同様に扱えるため、説明を省く。
【0042】
以上ではラベル生成部12への入力ラベルについて、ユーザが所望のラベルを手動で与える場合を説明したが、別の実施形態として、オプション構成である行動予測部14を利用することで、手動ラベルに代えて行動予測部14が行動予測により自動出力する自動ラベルをラベル生成部12へと入力して用いるようにしてもよい。
【0043】
すなわち、この自動ラベルの内容は、予測装置10へ入力される過去動作X1:tに対する、未来の予測される動作Y^
t+1:Tの動作カテゴリを、予測装置10で実際に動作Y^
t+1:Tを予測して出力する前に、別途の手法により推定したものである。自動ラベルのカテゴリは、手動ラベルのカテゴリと同様のものとして予め設定しておけばよい。例えば、手動ラベルの場合の行動種別のカテゴリが[歩く,走る,ボクシングする,投げる,会話時の身振り]の5種類として設定されていれば、自動ラベルも同じカテゴリで出力するようにすればよい。
【0044】
なお、
図1及び
図2では、ラベル生成部12に対する入力として手動ラベルと自動ラベルの両方を描いているが、実施形態に応じて手動ラベルまたは自動ラベルのいずれかのみを入力とすればよい。
【0045】
行動予測部14では、行動予測の入力として、1:tフレーム(入力動作X1:tまたはこれを通常の映像で表現したもの)に対応する何等かの情報N1:tやその一部の情報を用いてよい。すなわち、過去の動作X1:tでも良いし、同時刻の映像や音声など、別種類の情報でも良い。別種類の情報からの予測は、動作X1:tのみからの予測と異なり、映像からの視線や属性、会話など別の情報も用いることができるため、変化の多い行動でも予測しやすくなることがあると考えられる。特に映像からの行動予測は多くの既存手法があり、行動予測部14では任意の既存手法を用いてよい。
【0046】
行動予測部14で用いることができる行動予測の例をいくつか紹介する。
【0047】
非特許文献4では、映像から未来の行動のキャプショニングを行うことができる。非特許文献5では、映像から推定したバウンディングボックス、映像のコンテクスト、姿勢や車のスピードから、道路への歩行者の飛び出し有無を予測できる。非特許文献6では、映像から行動を予測する。その際、未来が予測可能かどうかも予測する。予測可能性が高い場合はより具体的な予測(下位階層の予測)を、そうでない時は抽象化された予測(上位階層の予測)を自動的に行う。例えば抽象化された予測は「挨拶をする」で、具体的な予測は「握手をする」、「ハイタッチをする」、「おじぎをする」などである。「挨拶をする」が予測結果となった場合は、下の階層の具体化された他の動作「握手をする」、「ハイタッチをする」、「おじぎをする」もあり得そうだと判断できる。
【0048】
[非特許文献4] Mehrdad Hosseinzadeh and Yang Wang, "Video Captioning of Future Frames", WACV, 2021.
[非特許文献5] Kotseruba et al., "Benchmark for Evaluating Pedestrian Action Prediction", WACV, 2021.
[非特許文献6] Didac Suris, Ruoshi Liu and Carl Vondrick, "Learning the Predictability of the Future", CVPR, 2021.
【0049】
なお、行動予測部14による行動予測結果が複数ある場合、ラベル生成部12ではこれら複数の結果を用いてラベル生成を自動的に行うこともできる。例えば、走る予測が40%、も歩く予測が60%で得られ、K=10の場合、4つの時系列ラベルを走る行動から生成し、6つの時系列ラベルを歩く行動から生成してもよい。非特許文献6のような階層的な行動予測では、下位の具体的な行動を複数の予測結果として用いてもよい。
【0050】
行動予測部14の予測結果を受けたラベル生成部12での時系列ラベルの生成は、上述した遷移タイミングを多様にする手法、複数の行動予測結果を用いる手法を組み合わせても良い。そのような組み合わせのラベルで生成された未来動作ラベルの模式的なイメージ図を
図4に示す。なお、この手法は、ラベル生成部12に手動ラベルを入力する場合も同様に利用することができる。すなわち、手動指定される単一カテゴリに対してラベル生成部12では遷移タイミングを様々に自動設定することができ、手動指定される複数カテゴリに対しては、各カテゴリに遷移する場合と、各カテゴリでの遷移タイミングを様々に変化させる場合とを組み合わせて、
図4のようにラベルを生成できる。
【0051】
動作デコード部13では、以上説明した手順で抽出したK個の潜在コードzと過去動作X1:tとK個の時系列ラベルLk
t+1:TをデコーダGθに与え、以下の式(13)のようにK個の動作を予測する。
【0052】
【0053】
ここで、デコーダの内部では過去動作Xから動作特徴を抽出している。例えば、学習済みのゲート付き回帰ユニット(GRU cells)を用いて過去動作X1:tから動作特徴hxを抽出している。hxやzは時系列ラベルLt+1:Tと異なり、未来に変化のある時系列データは持たないため、どの未来のフレームにおいても同じ値を用いる。また、過去の動作特徴hxはK回同じ値を用いる。hxと各々のzkと時系列ラベルLk
t+1:Tを結合して未来動作Y^k
t+1:Tをデコードすることができる。
【0054】
予測装置10は、予めその深層学習ネットワークのパラメータを学習しておくことにより、以上のような多様なラベルのものでの未来動作予測を行うことができる。以下、この学習方法について説明する。なお、予測装置10においてオプション構成の個人特徴抽出部15を利用する場合については後述する。
【0055】
本実施形態では、非特許文献1と同様に、CVAEを用いて動作予測器を学習した後、CVAE等を用いてマッピング関数を学習する。潜在コードの抽出に式(113)の手順を用いる場合、マッピング関数の学習方法は必須ではないため、マッピング関数の学習については説明を省く。(なお、式(111),(112)のマッピング関数を用いる場合も、別途に予め設定しておくマッピング関数を用いるようにしてもよい。)以下では動作予測器の学習について簡潔に説明する。
【0056】
図5は、一実施形態に係る学習装置40の構成図であり、学習装置40は各ネットワークNW21~25を備えるエンコーダ20と、
図1,2の予測装置10と同一構成であるデコーダ10と、各ネットワークNW31~33を備える誤差評価部30とを備え、深層学習における一般的な枠組みと同様に、学習用データを用いて誤差順伝播の方向にエンコーダ20、デコーダ10、誤差評価部30の順番で処理を行うことで入力過去動作Xから予測された未来動作Y^と正解の未来動作Yとの間の誤差等を評価し、この評価誤差により順伝播とは逆方向の誤差逆伝播を行うことにより、デコーダ10(予測装置10)のパラメータを更新することを繰り返し、デコーダ10のパラメータを学習することができる。なお、パラメータ更新を行う機能ブロック構成については、
図5では描くのを省略している。
【0057】
前述の通り、CVAE(Conditional Variational Autoencoder)を用いて動作予測器(デコーダ10、予測装置10)を学習することができる。非特許文献1と同様の枠組みにより、エンコーダ20の条件およびデコーダ10の条件に過去動作X1:tを与える。エンコーダ20への入力を未来動作の正解Yt+1:Tとする。デコーダ10の出力が、予測した未来動作Y^t+1:Tとなる。
【0058】
本実施形態ではさらに、ラベルLをエンコーダ20およびデコーダ10の条件として追加で加える。学習用のデータセットに動作の遷移がある場合は、条件のラベルを時系列ラベルL1:tやLt+1:Tとしてもよいが、動作遷移のないデータセットを用いて学習してもデコーダで遷移のある時系列ラベルLt+1:Tを用いて遷移タイミングをずらすことは可能である。予測時と同様に、エンコーダ20においてラベルLはMLP等のNW21で特徴抽出をしてもよい。
【0059】
すなわち、エンコーダ20では、図示されるように、ラベルLを直接、あるいはMLP等のNW21で特徴抽出をして、MLPのNW25に入力する。また、過去動作X1:tをGRU cellsのNW22及びMLP,RNN等のNW23でそれぞれ処理して特徴hx,hiを得て、これら特徴hx,hiをMLPのNW25に入力する。また、正解Yt+1:TをGRU cellsのNW24で処理して未来特徴hを得て、この未来特徴hをMLPのNW25に入力する。
【0060】
MLPのNW25は以上のラベルL(またはラベルLから特徴抽出したもの)と各特徴hx,hi,hを入力として分布パラメータである平均μ及び分散σを生成し、デコーダ10の潜在コード抽出部11(独立サンプリング部113)へと出力する。なお、エンコーダ20においてMLP,RNN等のNW23はオプション構成であり、デコーダ10において個人特徴抽出部15を利用する場合に、対応するエンコーダ20側の構成として、このMLP,RNN等のNW23が追加利用される。
【0061】
学習時のデコーダ10の処理は、エンコーダ20の出力する分布パラメータである平均μ及び分散σにより独立サンプリング部113の事前分布pを定めて式(113)により潜在コードzを得るようにする(小さな乱数εにより「z=μ+ε*σ」として潜在コードzを得る)こと以外は、学習済みの予測装置10における処理と同様であるため、重複する説明は省略する。デコーダ10側の条件となるラベルLやLt+1:Tは、過去動作X1:tないしはラベルL1:tを入力とする行動予測部14の出力結果を与えてもよい。
【0062】
誤差評価部30では、非特許文献1と同様の枠組みにより、デコーダ10が出力した予測動作Y^と正解YのMSE(平均二乗誤差、Mean Squire Error)等を予測誤差とする。予測誤差とKLD(カルバックライブラーダイバージェンス)の結合誤差を最小化するように、誤差逆伝播を用いて通常のCVAEと同様にエンコーダ20およびデコーダ10を学習することができる。
【0063】
なお、誤差評価部30内の各ネットワークNW31,32,33は、デコーダ10において個人特徴抽出部15を利用する場合のオプション構成である。
【0064】
学習装置40のネットワークアーキテクチャに関して、ラベル生成部12以外は、
図5に示されるような非特許文献1と同様のアーキテクチャを用いることができるが、その限りではない。
【0065】
個人の特徴を明示的に考慮するためのオプション構成として、個人特徴抽出部15を利用してよい。前述のように、個人特徴抽出部15を利用する場合、学習装置40ではさらに、エンコーダ20においてMLP,RNN等のNW23と、誤差評価部30において各ネットワークNW31,32,33を追加利用することができる。
【0066】
この場合、図示されるように、エンコーダ20のNW25やデコーダ10の動作デコード部13内のデコーダ(GRU Cells MLP)に、個人特徴の入力条件hiを追加することができる。個人特徴を考慮せずhxのみを用いた学習では、デコーダ10で予測した動作が入力された過去動作と異なる個人特徴を持ってしまいやすいといった問題が生じうるが、hiとして、個人の動き・角度・姿勢などの特徴を抽出することで、この問題に対処することができる。
【0067】
図示されるように、当該個人に対応するX1:tやYt+1:Tを入力とし、個人を出力する個人識別器の役割を有する個人特徴抽出部15を予め学習させておき、その識別器を用いて抽出した個人の特徴量hiをエンコーダやデコーダに入力するとよい。個人特徴抽出部15はMLP,RNN等で構成することができ、識別器の最終層(一般的には全結合層)を除いた識別器を用いてXやYからhiを算出することで、学習時にない個人についても予測しやすくなる。(なお、仮に識別器の最終層まで含めた状態で個人特徴抽出部15を構成したとすると、個人特徴抽出部15では個人特徴hiではなく、個人の識別結果を出力してしまうこととなる。最終層を除外することで、個人特徴抽出部15は個人特徴hiを出力できる。)
【0068】
また、デコーダ10で予測した動作Y^についても、学習済みの識別器を用いて識別に関わる誤差(一般的にはクロスエントロピー誤差)を求め、誤差逆伝播を行い、個人識別誤差Eiを予測誤差に対して追加してもよい。誤差逆伝播時、識別器の重みパラメータは固定するとよい。例えば、個人識別誤差と予測誤差とKLダイバージェンスとの加重和を最小化して学習したり、(a)個人識別誤差のみの最小化と(b)予測誤差とKLダイバージェンスとの加重和の最小化の(a)(b)を交互に行って学習する。これにより、デコーダで予測した動作が入力された過去動作と同一の個人特徴をさらに持ちやすくなる。
【0069】
最終層のない識別器を用いて、Y^から求めたhiと、Xから求めたhiのMSEを計算してもよい。この時の識別器の重みパラメータは固定せず、更新して学習することで、学習にない人物を予測しやすくなる。
【0070】
なお、識別器(個人特徴抽出部15)の学習は、学習装置40のうち、
図6に示すような個人特徴抽出部15のみまたはこれに最終層のNW32を追加した構成、あるいはさらに、誤差評価部30のNW31,32を追加した構成を用いて、ラベル生成部12等の学習とは別途に行うようにしてもよいし、学習装置40の全体の構成内において、ラベル生成部12等を含むデコーダ10及びエンコーダ20の学習と並行して、交互にパラメータ更新する等により個人特徴抽出部15の学習を行うようにしてもよい。
【0071】
以上、本実施形態の学習装置40により学習した予測装置10により、予測する動作のカテゴリを限定しやすくなる。つまり、所望のカテゴリにほぼ限って予測でき、ノイズとなる出力を大幅に減らすことができる。また、所望のカテゴリ内の予測結果が多様になるように、出力をコントロールできる。以下、種々の補足例、追加例、代替例等について説明する。
【0072】
(1) 本発明の実施形態の予測装置10の応用例として、伝送遅延などが存在しうる遠隔コミュニケーションをアバタ(遠隔ユーザの動きをキャプチャして動作するアバタ)によって行う際に、アバタの未来動作を予測して遅延分の補正を適切に実現したり、あるいは、遠隔ユーザの実際の動きをキャプチャする必要なく、観客等のいわゆるモブに該当するアバタの動作を自然且つ多様に準備し、アバタコミュニケーションを行う仮想空間の臨場感を確保するといったことも可能である。これにより、スムーズな遠隔コミュニケーションを実現するといったことが可能であり、実際にユーザが会議等で遠隔地に赴くことを省略する(遠隔地への移動を必ずしも必須とはしない)ことが可能である。従って、本発明の実施形態のこのような応用例により、ユーザ移動に必要となるエネルギー資源を節約することで二酸化炭素排出量を抑制できることから、国連が主導する持続可能な開発目標(SDGs)の目標13「気候変動とその影響に立ち向かうため、緊急対策を取る」に貢献することが可能となる。
【0073】
(2) 予測装置10に入出力される動作データX,Y等(学習装置40での学習用の動作データも含む)については、人物等の動作を表す任意種類のデータを用いてよく、例えば、骨格を示す複数のキイポイント(関節であることが多い)の2Dか3Dの位置あるいは動きの情報や、その他にもそのフレーム時点で得られる様々な情報を用いるようにしてもよい。従って、この動作データX,Y等おいて定義される関節等の位置を各時刻tのフレーム画像として描画することで動画として再生して表示した場合、人物等の各時刻tおける動きの様子が映像として再現されることとなる。
【0074】
(3) X1:tやYt+1:Tは3D座標、オイラー角、その他の姿勢表現を用いてもよい。hiは複数同時に入力しても良い。例えば、3D座標を入力した場合は姿勢や個人の動き特徴を、オイラー角を入力した場合は個人の角度の特徴を抽出しやすいため、両方の特徴を用いてもよい。また、識別器(個人特徴抽出部15)の出力は、入力と同じ骨格3D座標や角度情報Xとしてもよい。つまり、オートエンコーダの潜在空間がhiとなる。X1:tやYt+1:Tを入力し個人を識別する識別器(個人特徴抽出部15)は、ラベル特徴抽出部121のネットワークアーキテクチャと入力層のみ異なり、他は同じモデルを用いてもよい。
【0075】
(4) 利用例
本実施形態の予測装置10ではラベルを指定するため、所望のカテゴリの動作を効率よく予測することができる。例えば道路へ飛び出すとしたらどのような動作がありえるかを効率よく予測することができる。また、ラベルやタイミングを指定可能なので、CG(コンピュータグラフィックス)アニメの作成用途にも適す。複数提示された中で選ぶことも可能である。また、ラベルの内容に個人識別子を用いた時、指定した人によって異なる動作が予測できる。例えば生徒の過去動作を入力し、生徒の未来動作を出力するとともに、先生だったらどのような未来動作をするかを提示することができるので、技能の学習に用いることも期待できる。また、動作遷移の多い予測においては、行動予測と組み合わせることで、予測精度を向上させることも期待できる。
【0076】
前述の通り、ラベル生成部12ではユーザ指定に対してラベルを自動生成できるが、この自動生成の中からユーザが所望のものを明示的に指定するようにしてもよい。そのGUI(グラフィカルユーザインタフェース)の例を
図7の例Eaに示す。ユーザは入力となる過去の動作の他、予測したい数を指定することもできる。
【0077】
さらに、予測装置10が出力した前回の予測結果も用いて絞り込んだ予測をすることも可能である。
図7の例Ebでは、この絞りこんだ予測を行うためのGUIの例を示す。例えば、CGアニメ作成者であるユーザが、この動作予測器を用いるとする。表示された予測結果に用いたいイメージに近い結果が表れなかったと判断した場合、ユーザがその旨を予測装置10に指示することにより、絞り込み検索をせず、初めの画面である例Eaに切り替えて表示するとよい。
【0078】
一方、表示された予測結果にユーザが用いることを望むイメージに近い予測結果(動作アニメーション映像等の態様で表示する)が現れたものとし、これが例Ebの1つめの結果(結果1)だったとする。予測結果だけでなく、その際に、結果を導出したラベルを表示すると、ユーザが絞り込み検索をしやすくなるため好ましい。
【0079】
その際、例Ebにさらに示されるように、結果1にチェックを入れて遷移開始タイミング範囲をユーザが指定することで、結果1をベースとして遷移開始タイミングを変更した予測をすることができる。その際、結果1の下にさらに示されるように、開始遷移タイミングを絞りこむためのスライダ等のインタフェースを表示することが好ましい。
【0080】
予測装置10はこの条件でのラベルをラベル生成部12で生成することによって、さらに絞りこんで予測することができる。このように、ラベル指定とその動作予測結果の確認とを繰り返すことによって、CGアニメ作成者は絞りこみながら、よりイメージに近い予測を選択することができる。
【0081】
表示された結果の潜在コードをそのまま用いるのではなく、その周辺の潜在コード(絞り込みの種)をユーザが指定してもよい。潜在空間は通常多くの次元をもつが、t-SNE(t分布型確率的近傍埋め込み法)などの次元削減を用いて潜在コードの平均を2次元や3次元に落としてGUIに表示するようにしてよい。(潜在コードの共分散は表示しなくてよい。)ユーザは、好ましい結果の周辺に円(楕円)や線を描いて、種を再サンプリングする範囲を指定できる。例えば、結果1と結果2の中間が好ましいとユーザが感じた場合、結果1と結果2を通る直線をユーザは指定できる。結果1と結果2の間の直線からサンプルされる潜在コードは、結果1と結果2の中間状態をデコードするものが多いからである。予測するボタンがおされたら、潜在コード抽出部11はその範囲内で、zを再サンプリングし、動作をデコードし、結果を表示する。
【0082】
ユーザが指定した範囲は次元削減されたデータであるため、それを元の次元に戻してからデコードする。例えば、直線が指定された場合、z1とz2を通るR次元ベクトル上の直線
t・z1+(1-t)・z2(0≦t≦1)
から再サンプリングすればよい。円が特定の結果(例えば結果1)の周辺に指定された場合、ε'(ε'~p(ε'))の大きさを円に応じて変更し、z=μ1+ε'・σ1で再サンプリングすれば良い。ここで、μ1、σ1は結果1を得た時の平均と共分散を示す。得られた複数の潜在コードzをデコードすることで、絞り込んだ予測をすることができ、それをGUI上に再表示することができる。
【0083】
以上のようなGUIによるユーザ指定を受け、潜在コード抽出部11で指定範囲でzサンプルリングするようにしたうえで、ラベル生成部12での内部処理としては、遷移開始タイミング範囲指定内で、割り当てられたサンプル数で均等に遷移開始タイミングを割り当てて、遷移開始タイミングの異なる時系列ラベルを複数生成すればよい。潜在コードzは結果1を出力したコードzと同じものz 1を用いるようにする。遷移後の指定カテゴリLも結果1と同じものを用いる。
【0084】
前回の予測結果を用いずにカテゴリなどを指定して予測する場合は、前回と異なる潜在コードzk(1≦k≦K)を選択して予測、表示すれば良い。このGUIは、2回目以降の絞り込み予測だけでなく、1回目の予測に用いることももちろん可能である。
【0085】
(5)
図8は、一般的なコンピュータ装置60におけるハードウェア構成の例を示す図である。本実施形態の予測装置10及び学習装置40は、このような構成を有する1台以上のコンピュータ装置60として実現可能である。なお、2台以上のコンピュータ装置60で各装置を実現する場合、ネットワーク経由で処理に必要な情報の送受を行うようにしてよい。コンピュータ装置60は、所定命令を実行するCPU(中央演算装置)61、CPU61の実行命令の一部又は全部をCPU61に代わって又はCPU61と連携して実行する専用プロセッサとしてのGPU(グラフィックス演算装置)62、CPU61(及びGPU62)にワークエリアを提供する主記憶装置としてのRAM63、補助記憶装置としてのROM64、通信インタフェース65、ディスプレイ66、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース67と、これらの間でデータを授受するためのバスBSと、を備える。
【0086】
予測装置10及び学習装置40の各機能部や、この各装置が実行する予測方法や学習方法は、各部や各ステップ等の機能に対応する所定のプログラムをROM64から読み込んで実行するCPU61及び/又はGPU62によって実現することができる。なお、CPU61及びGPU62は共に、演算装置(プロセッサ)の一種である。ここで、表示関連の処理が行われる場合にはさらに、ディスプレイ66が連動して動作し、データ送受信に関する通信関連の処理が行われる場合にはさらに通信インタフェース65が連動して動作する。
【0087】
図7に例示したGUIはディスプレイ66に表示し、ユーザからの指定入力は入力インタフェース67において受け付けるようにすればよい。
【符号の説明】
【0088】
10…予測装置(デコーダ)、11…潜在コード抽出部、12…ラベル生成部、121…ラベル特徴抽出部、13…動作デコード部、14…行動予測部、15…個人特徴抽出部
40…学習装置、20…エンコーダ、30…誤差評価部