Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog

Blog


【インターンレポート】詳細な説明文からの人間同士のインタラクション動作生成

詳細な説明文からの人間同士のインタラクション動作生成

東京大学情報理工学系研究科修士2年の馬上凌です。8月21日から9月29日の6週間、LINE DSC(データサイエンスセンター)のComputer Vision Lab (CVL) Virtual Human Lab (VHL)チームにてインターンシップに参加させていただきました。本記事では今回私が取り組んだ、詳細な説明文からの人間同士のインタラクション動作生成についてご紹介します。

背景

人間の動作生成は、アニメーションの生成や仮想空間内のアバター制御などにおいて重大な要素であり、ますます需要が高まっています。特に、文章を入力とした動作生成は人間にとって扱いやすいため、近年盛んに研究されています。動作生成における既存研究は、人間同士のインタラクションを含む動作の生成が困難だという課題を抱えています。これは、自身の動作生成時に、他者の動作を時間的・空間的に理解する必要があることに起因しています。例えば、握手する動作を生成したい場合、相手が手を出すタイミングに合わせて自分も手を出し、相手が近づいてくるのに合わせて自分も適切な速度で移動する必要があります。そこで本インターンシップでは、文章を入力として、二人の人間がインタラクトする設定での動作生成に取り組みました。


図1: 仮想空間内のアバターの例(https://linecorp.com/ja/pr/news/ja/2023/4554)

関連研究

Role-aware Interaction Generation from Textual Description (Tanaka & Fujiwara, ICCV2023) [1]

Role-aware Interaction Generation from Textual Descriptionは、action labelを入力として二人の動作を生成するdiffusion-basedな手法です。この研究では、action labelをActorとReceiverの二人分の動作説明文に分解することで、各人の動作の役割を正確に反映した動作生成を実現します。手法の概要およびパイプラインは図2の通りです。図2左にあるように、"push"というaction labelが与えられる場合、Actor側の説明文として"A person is pushing the other person."を、Receiver側の説明文として"A person is pushed by the other person."を付与し、この説明文をもとに動作生成を行います。これにより、どちらが押す側なのかわからない、というような事態を避け、action labelに沿った動作を生成することができます。説明文はCLIP[2]により特徴量に変換され、diffusion modelへと入力されます。人間同士のインタラクションは、diffusion modelの内部においてcross-attention mechanismを用いることで獲得されます。この論文では、NTU-RGB+D 120[3]データセットのうち、人間同士のインタラクションを含む26個のaction labelのデータが用いられました。


図2: Role-aware Interaction Generationの概要(左)およびパイプライン(右)

InterGen: Diffusion-based Multi-human Motion Generation under Complex Interactions (Liang et al., 2023) [4]

InterGenは文章を入力として二人の動作を生成するdiffusion-basedな手法です。図3のパイプラインを見て分かる通り、Role-aware Interaction Generation from Textual Description[1]と似た構造をしています。相違点としては、入力がaction labelではなく動作説明文であること、動作説明文は二人とも同じものを使用すること、などがあります。さらにこの論文では、動作説明文と二人の人間の動作のペアを7000個以上含む、InterHumanというデータセットが提案され、publicに公開されています(project page)。

図3: InterGenのパイプライン

行ったこと

関連研究で紹介したRole-aware Interaction Generation from Textual Description[1]は、各人の役割を考慮した動作生成が可能になるという一方で、action labelを人手でActorとReceiverの説明文に変換する必要があり、コストが高いという問題がありました。他方でInterGen[4]は、文章からの柔軟な動作生成ができるという利点がある一方で、各々の役割を考慮した動作生成を行うことができません。そこでこれらの二手法の利点を両方取り入れて、文章を入力として各人の役割を考慮した動作生成を行うことを考えました。

モデルのベースとしては、Role-aware Interaction Generation from Textual Description[1]を用いました。[1]の論文中では、action labelごとの学習可能な重みなどが導入されていましたが、今回の設定では各データには独立した説明文が与えられるため、説明文のCLIP特徴量からモデルを学習しました。

データセットは、[4]で提案されたInterHumanを用いました。InterHumanは、動作説明文とSMPL[5]の動作データのペアからなります。適切に前処理を行うことで、各時刻のSMPLパラメータを、各関節の座標・速度・各速度・回転などからなる263次元の特徴量に変換することで、[1]を適用できるようにしました。さらに、動作説明文を、各人の動作説明文に分解するために、大規模言語モデルの一つであるLlama 2[6]を用いました。例えば、"one person tosses the tape to the other person, and the other person successfully grabs the tape."という説明文が与えられた場合、Llama 2に図4のようにpromptを与えることで、各人の動作に分解された説明文"A person tosses the tape to the other person."と"A person successfully grabs the tape from the other person."を獲得することができます。

図4: Llama 2による説明文の分解(https://www.llama2.ai/の画面のスクリーンショット). 実際には、Hugging FaceのAPIを用いることで自動的に行いました.

結果

動作説明文分解の効果検証

大規模言語モデルによる動作説明文の分解が有効なのかを検証します。両者ともにオリジナルの説明文をそのまま入力する場合と、Llama 2によって分解された説明文を入力する場合で比較します。学習データとして5550個、テストデータとして563個のデータを用います。

まず定量的な評価として、生成された動作の多様性を表す評価指標である、Diversityを比較します。この指標は[4]でも用いられており、高いほど生成された動作が多様であることを表します。結果は以下の表の通りであり、Diversityにほとんど差は見られませんでした。ここで、sameがオリジナルの説明文を両者に使う場合を、differentが分解された説明文を各々に用いる場合を表します。

model
Diversity
same 2.411
different 2.410

次に、生成された動作を可視化します。以下の例におけるもとの説明文は、"one person firmly grasps the other person's neck with both hands and forcefully throws the other person to the ground"(一方がもう一方の首を掴んで地面に投げる)、というものです。両者共にこの説明文を使った場合(same)に生成された動作は以下の図の通りです。首を掴みに行っている側が地面に倒れ込んでおり、どちらがどちらの役割なのかを生成動作に正しく反映できていません。

一方で同じ説明文を個々の説明文に分解した場合、分解後の説明文は"A person firmly grasps the other person's neck with both hands and forcefully throws the other person to the ground."と"A person is forcefully thrown to the ground by the other person, who firmly grasps their neck with both hands."であり、正しく分解が行われています。その結果、生成された動作は以下の図の通りであり、動作に不安定さはあるものの首を掴んで投げる人と、投げられる人の動作が生成されていることがわかります。

失敗例として、もとの説明文では二人同じ動きをしているはずなのに、異なる動きに分解されてしまう、というものがあります。たとえば、以下の図のもとの説明文は"the two persons lift their right hands upwards three times and then bend their knees." (二人が右手を三回挙げて膝を曲げる)というものですが、分解するときに一方が手を挙げる人で、もう一方が膝を曲げる人、というようになってしまっています。これとは逆に、分解されるべきものが分解されていない、という失敗も見られました。

また、以下の図のように個々の動きとしては概ね正しいものの、お互いの位置関係を見誤っており二人の動きとしてみると意味をなさない、というものもありました。

動作説明文を増やすことの効果検証

InterHumanデータセットにおいては、一つの動作に対して異なる三人がannotationを行なっており、三種類の動作説明文が付与されていました。ただし、前セクションの動作説明文分解の効果検証では一つ目の動作説明文のみを用いました。本セクションでは、モデルの学習時に特定の説明文のみを用いる場合と、そのデータで学習するたびにランダムに三種類から一種類を選ぶ場合で性能に差が現れるのか検証します。この実験では簡易的に、学習データを500個、テストデータを50個用いて実験を行います。

定量評価として、前セクションと同じくDiversityを比較します。結果は以下の表のようになりました。ただし、same / differentについては前セクションと同じ定義であり、fixedは特定の説明文のみを用いる場合を、randomが三種類の中からランダムに説明文を選択する場合を表します。表から、特定の説明文を用いる場合においては説明文を分解する方が多様性が高く、一方でランダムな説明文を用いる場合においては説明文を分解する方がやや多様性が低い、ということがわかります。ここで、ランダムな説明文を用いるということは、特定の説明文を用いる場合より、使える説明文の個数が多いということを踏まえて、これと前セクションの結果を合わせると、データが限られた状況においては説明文を分解することによって生成される動作の多様性が向上するのではないか、と予想できます。この理由として、説明文の分解自体が多様性向上に貢献するということのほかに、分解時に用いた大規模言語モデルがもともと持っている知識が、分解された説明文に付与されるから、ということも考えられます。

fixed
random
same 2.284 2.424
different 2.496 2.398

まとめ・感想

今回のインターンシップでは、詳細な説明文からの人間同士のインタラクション動作生成に取り組みました。
説明文の分解によって役割を考慮した動作生成が可能となる例もあった一方で、正しい分解がなされなかったりお互いの位置を考慮できなかったりすることもある、というような課題も見つかりました。

動作生成の研究に取り組むのは今回が初めてで、テーマが明確に定まらないまま時が経ち焦りもありましたが、なんとか形になってよかったです。ただ、もう少し最初の数週間で無駄を省いて立ち回れたら、もっと色々なことができたかもしれないと思うと悔しいです。

メンターの藤原さんをはじめ、田中さん、郁さん、CVL VHLチームの皆様には大変お世話になりました。企業での研究インターンは今回が初めてでしたが、VHLチームはおおまかに決まった研究テーマの方向性の中で、各々が好きな研究を楽しく行なっている印象で、とても居心地が良かったです!

また、研究以外にもランチ会などの、社員の方々や他のインターン生との交流機会もあり、貴重な体験をすることができました。
6週間ありがとうございました!

参考文献

[1] Tanaka and Fujiwara. Role-aware Interaction Generation from Textual Description. In ICCV, 2023.

[2] Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, et al. Learning transferable visual models from natural language supervision. In ICML, 2021.

[3] Jun Liu, Amir Shahroudy, Mauricio Perez, Gang Wang, Ling-Yu Duan, and Alex C. Kot. Ntu rgb+d 120: A largescale benchmark for 3d human activity understanding. In TPAMI, 2020.

[4] Liang, Han and Zhang, Wenqian and Li, Wenxuan and Yu, Jingyi and Xu, Lan. InterGen: Diffusion-based Multi-human Motion Generation under Complex Interactions. arXiv preprint arXiv:2304.05684. 

[5] Matthew Loper, Naureen Mahmood, Javier Romero, Gerard Pons-Moll, and Michael J. Black. Smpl: A skinned multiperson linear model. In ACM Transactions on Graphics (TOG), 2015.

[6] Hugo Touvron, Louis Martin, Kevin Stone, Peter Albert, Amjad Almahairi, Yasmine Babaei, Nikolay Bashlykov, Soumya Batra, Prajjwal Bhargava, Shruti Bhosale, Dan Bikel, Lukas Blecher, Cristian Canton Ferrer, Moya Chen, Guillem Cucurull, David Esiobu, Jude Fernandes, Jeremy Fu, Wenyin Fu, Brian Fuller, Cynthia Gao, Vedanuj Goswami, Naman Goyal, Anthony Hartshorn, Saghar Hosseini, Rui Hou, Hakan Inan, Marcin Kardas, Viktor Kerkez, Madian Khabsa, Isabel Kloumann, Artem Korenev, Punit Singh Koura, Marie-Anne Lachaux, Thibaut Lavril, Jenya Lee, Diana Liskovich, Yinghai Lu, Yuning Mao, Xavier Martinet, Todor Mihaylov, Pushkar Mishra, Igor Molybog, Yixin Nie, Andrew Poulton, Jeremy Reizenstein, Rashi Rungta, Kalyan Saladi, Alan Schelten, Ruan Silva, Eric Michael Smith, Ranjan Subramanian, Xiaoqing Ellen Tan, Binh Tang, Ross Taylor, Adina Williams, Jian Xiang Kuan, Puxin Xu, Zheng Yan, Iliyan Zarov, Yuchen Zhang, Angela Fan, Melanie Kambadur, Sharan Narang, Aurelien Rodriguez, Robert Stojnic, Sergey Edunov, Thomas Scialom. Llama 2: Open Foundation and Fine-Tuned Chat Models. arXiv preprint arXiv:2307.09288.