ご注文は進捗ですか?

気になったことを結論が出ないまま置いたりしています。ときどき進捗も置く。

姿勢推定とDeep learning

ゐゑ―――――ゐ!
こんばんは。モチベがわかず時間を無為に溶かしている今日この頃です。自分の機嫌をどうやって取ればいいのかわからなくなっています。

さて、今回は姿勢推定とdeep learningのお話です。まあ最近の流行りネタといった感じですね。
deep learning界隈の一部ではロンブー淳のAI発言やPerfumeディープラーニング発言を見てバブル崩壊も近いのでは?という意見が…

前回、Perfume尽くしで年末年始を過ごしていた話を垂れ流しました。普段にも増してまとまりのない文章を電子の海に投棄したわけですが、その中でこんなことを書きました。

ただ、deep learningについては公式発表を待ちたいと思います。何をどう使ったのかというのは結構気になりますし、deep learning畑にいる人の間でもプチ議論になっていました。今のところ、前例のあるGoogleの技術説が有力です。

make-a-progress.hatenadiary.jp

紅白のときに、のっちが演出にdeep learningをつかったものがあるという趣旨の発言をし、界隈の一部でプチ議論になっていました。
いったい何の技術を使ったのかという話ですが、公式等から何らアナウンスがないので、様々な推測を呼んでいます。*1
その中で「姿勢推定」を主たる技術として用いたのではないかという話を見かけまして、中の人も納得したので、少しご紹介します。
先に断っておきますが、専門ではなく基礎知識もないので、ドドド素人の理解の範疇にとどまります。

姿勢推定って何よ。

姿勢推定はざっくり言うと「人間の部位を検出して姿勢を再現する技術」です。特徴点と言われる姿勢を検出する基準となる箇所を人体の部位(顔、肩、手、足…)に設定します。*2
Googleの技術PoseNetの紹介記事の映像が分かりやすいです。
shiropen.com
これらの基準点を検出することで検出時点の人間の姿勢が推定可能になります。星座が動いていて、その動きから星座の姿勢を推定しているという感じでしょうか。どうやらかつては特徴点の検出にマーカの装着が必要だったようですが、最近ではマーカなしで検出可能になったようです。技術の進歩はすごいですね。

Deep learningとの絡みは何よ。

いわゆるモーションキャプチャではマーカを装着しないと動きを検出できないという弱点がありましたが、深層学習を使うことでこの弱点を克服しました。つまり、深層学習でマーカなしに動きを検出できるということです。
カーネギーメロン大学Zhe Caoらによる論文*3によれば、深層学習を用いて複数人であってもリアルタイムに高精度で検出可能だそうです。

The architecture encodes global context, allowing a greedy bottom-up parsing step that maintains high accuracy while achieving realtime performance, irrespective of the number of people in the image.

OpenPoseというライブラリでこの論文の技術が実装されており、使えるようになっているらしいです。OpenPoseでは、関節18点と顔70点の特徴点を使います。与えられた映像からまずは関節の位置を推定します。ここに深層学習が使われています。人間が一人であれば各関節点は一意に決まり、繋がり方も一意です。(例えば、左肩が2つある人間は存在しないし、左肘と左肩を二組もつ人間も存在しないということです。)複数人が写っている場合、各関節点に対して関節点を検出(例えば、右手→右肘→右肩…のように検出するということ。)したのちにそれらを繋げます。ここで問題になるのが、「関節の繋がり方が複数存在している」ということです。この問題を克服してくれるのがPart Affinity Fields (PAFs)という手法です。この手法により関節間の繋がりを方向ベクトルのマッピングとして予測します。
例えば、二人の人間A,Bが写っていたとして、この場合、左手と左肘、そして左肩の特徴点は手(hand)が(Ah,Bh)、肘(elbow)が(Ae,Be)、肩(shoulder)が(As,Bs)とそれぞれ2組ずつ存在します。そうすると、腕を構成する手・肘・肩の3点のつながり方は8通り存在します(例えば、Ah-Be-As)。これらの候補から最も適切な繋がり方を推定するために用いられる手法がPAFsというわけです。この手法で関節の組合せを方向ベクトルマップとして予測していきます。*4
中の人にはよく分かりませんがこのような技術があるらしい。

Perfumeのliveでは。

以下はTwitter上でそうさん(@sosanPerfume)がおっしゃっていたことを基にまとめたものです。

  1. エレワの際に3人の姿勢をリアルタイムで検出する←deep learningを使用
  2. 検出した動きをCGの3人に入力→生身の3人と同じ動きをCGで再現
  3. CGの3人と生身の3人を入れ替え/背景との合成→CGと現実を行き来するアクロバティックな演出が可能

こんな感じらしいです。バーチャルyoutuber版の3人とリアルタイムで入れ替えていたという感じでしょうかね。投稿された停止画により、生身3人の後ろのスクリーンのドットが合成背景に若干写っている様子が確認できるカットや、CGの3人がポリゴンCG(立体を多面体で構成するCG)であることが分かるようなカットが見られます。
紅白にこの演出をぶつけてくるチームPerfume(というか真鍋さん)に敬意を表します。

終わり!

完全に余談ですが、今回の紅白におけるPerfumeの演出には批判的な意見も(中の人の観測範囲では)それなりにあり、エレワは「やりすぎ」という意見が多かったです。批判的意見は「『一般視聴者』はついていけず、置いてきぼり」というものでした。
一理あると思います。中の人はファンなので演出に映像技術を多用することに肯定的で、というよりPerfumeの演出を映像技術の「激しさ」を前提に楽しんでおり、実際にエレワが流れたときは飛び跳ねて喜んでいましたが、ファンではない人からすれば他のアーティストとの差があまりに大きく困惑したかもしれません。
テクノポップユニットですからね、まぁしゃーないということで。今年も様々な技術とコラボして活躍してほしいですね。

*1:この場合「憶測を呼ぶ」というべきなのでしょうが、「憶測」は「いい加減な想像・当てずっぽう」というイメージが中の人にはあるので、あえて「推測」とします。

*2:姿勢推定 | モルフォ

*3:arxiv.org

*4:news.mynavi.jp