Google Colabで”一枚の静止画”と”一つの動画”だけで動画の人に合わせて静止画の人を動かしてみた

スポンサーリンク
Python

週末なので、少し遊びもかねてGoogle Colabで静止画の画像を機械学習で動かす・踊らせるという事を試してみました。

実際に作成た動画を紹介しておきます。トランプさんにラジオ体操第二をしていただきました。

DeepFake(ディープフェイク:ディープラーニング技術を活用して作成された合成メディア)という可能性もあるので、あまり悪用という事もよろしくないのですが、”技術的には”可能なんだな、もしくは現在の技術の進歩というすごいな、ということを改めて感じました。

試してみた理由

週の中ごろに以下のようなTweetを拝見して、お手軽にできるんだな、、という事で少し週末に勉強してみようと思った次第です。

詳細について

Liquid Warping GAN with Attentionという技術を使っていますが、”一枚の画像”と”もとになる動画”があれば、その画像のデータを動かす事ができるようです。例として挙がっている西郷さん踊っているし、凄すぎでしょ!というのが正直な感想で、そんなに簡単にできるならやってみようというのが動機という事になます。

技術的な側面

私はこのあたり詳しくないので、詳細は上記ブログなどにでている2020年11月に論文発表(https://arxiv.org/abs/2011.09055)などを見ていただくのが良いと思いますが、以前のような体感の骨格モデルから体の動きを作るのではなくSMPLと呼ばれる簡易3次元モデルを使用してのモデルのようです。

”自分の古い知識”的には以下のような関節の位置を想定して、、というものから全然進化してなかったので、現代の画像認識、学習内容、CPU(GPU)のスピードも含めて驚きの一言でした。

https://dspace.jaist.ac.jp/dspace/bitstream/10119/15832/5/paper.pdf

準備したファイルと実際の操作

実は、今回はトランプさんの画像をアップロードさせていただきましたが、本当はゲームキャラクターのピクミンを自分の思い通りに動かしたいと思っていました。

自分が好きなゲームのキャラクターでもあり可愛いので、単純に思い通りに動かしてみたいなと思っていました。

教師データとか学習用データという表現になるかと思いますが、参考にさせる動画についてはYouTubeで”ラジオ体操第二”で検索して、その中の20秒程度を切り出して利用させていただきました。

実際に準備したものは上記”ピクミンの画像”と”ラジオ体操第二の動画(20秒)”の2つになります。

”ピクミンの画像”を a.png とし、

”ラジオ体操第二の動画(20秒)”を b.mp4

とした場合、その二つの動画をアップロードしたのち、以下のコマンドで既存の物を置き換えて実行させればよいという事になります。

!cp /content/a.png /content/iPERCore/assets/samples/sources/donald_trump_2/00000.PNG
!cp /content/b.mp4 /content/iPERCore/assets/samples/references/akun_1.mp4

できたこと・できなかったこと

結果から言いますと、ピクミンの画像では作りたかった動画は作成できませんでした。理由は、ピクミンがアニメキャラ的に”体に対して頭があまりに大きい”状態なので、使用している人の形状として認識する重みなどの学習ライブラリがピグミンを正しく”人間”として認識しなかったものと思われます。

次の案として、同じくピクミンブルームで使用しているアバターで同じように画像を差し替えて行ったのですが、これもピクミン同様、頭の比率が大きすぎるようで、正しく動画を作成することができませんでした。

もう少し、このデモの内容、簡易3次元モデル作成に詳しければいろいろ修正やパラメータ値の入力などできるのかもしれませんが、残念ながら私はそこまで詳しくないので、”一枚の画像”についてはデモ用に準備されていたトランプさんの画像で、参考にする動画を自分が準備した”ラジオ体操第二の動画”という事にしました。

実はTVアニメ『SPY×FAMILY』のロイド・フォージャー(Loid Forger)やTVアニメ『呪術廻戦』五条悟、ガンダムでもちょっと作ったりもしました。最初の画像さえちゃんと準備できればある程度結構綺麗に動きます。

https://spy-family.net/
アニメ『SPY×FAMILY』
原作:遠藤達哉(集英社「少年ジャンプ+」連載中)のアニメ『SPY×FAMILY』公式サイト。Season 3 制作決定 Season 1・Season 2 各プラットフォームにて配信中

より、正面を向いている方が良いという事や、ズボンの黒いところや手が胴体と離れている方が綺麗に動くという知見を得ました。

https://jujutsukaisen.jp/
TVアニメ「呪術廻戦」公式サイト
TVアニメ『呪術廻戦』TVシリーズ第2期 7月6日から毎週木曜夜11時56分~MBS/TBS系列全国28局にて放送開始!

これも手が胴体と離れている画像があれば、その方が良いです。胸の前で組んだ手が、服の柄として認識されてしまいました。

また、最近ではVTuberをリアルタイムで合成できたりという事もありますので、ますます進化していくのだな、、と思った次第です。

バーチャルYouTuber:Wiki

バーチャルYouTuber - Wikipedia

今すぐVTuberになれる! お手軽ツール37選を徹底紹介

今すぐVTuberになれる! お手軽ツール37選を徹底紹介
【MoguLiveのVTuber情報はこちら】・「VTuberになりたい」と思ったら何をすべき? ・VTuberの最新情報を知りたい・バーチャルYouTuber 関連記事一覧【VTuberビジネスのご相談はこちら】・リサ

VTuber「にじさんじ」が上場、時価総額1600億円に達したワケ

VTuber「にじさんじ」が上場、時価総額1600億円に達したワケ
仮想世界で活躍する著名タレントを擁する、バーチャルYouTuber(VTuber)事務所「にじさんじ」を運営する「ANYCOLOR」が6月8日に上場した。初日は制限値幅一杯でも値段がつかず、当初の想定時価総額450億円から、9日時点の時価総額は1600億円にまで達した。

記事中にもありますが、コロナ禍でのリアルイベントの自粛の中、「バーチャルYoutuber」の検索ボリュームは「欅坂46」を上回っており、その差は徐々に広がっているそうです。

https://image.itmedia.co.jp/business/articles/2206/10/ksvt1.png

ANYCOLORの上場といい、非常に注目されている業態、成長している分野なのだと思いました。

ANYCOLOR(エニーカラー)【5032】株の基本情報|株探(かぶたん)
ANYCOLOR(エニーカラー)【5032】の基本情報。株価四本値、出来高、売買代金、VWAP、約定回数、時価総額などの株価情報、会社概要、ヒストリカルPER、過去3年平均PER、株価トレンド、移動平均からのカイリ率、信用取引残高、業績推移の早見表、業種、投資テーマを記載しています。
https://kabutan.jp/stock/?code=5032

壱百満天原(ひゃくまんてんばら)サロメ氏が、デビューから14日で100万登録を達成

壱百満天原サロメ / Hyakumantenbara Salome
いつか100満点のお嬢様になりたい一般人ですわ。 皆様方に100満点の笑顔をお届けしたいですわ~~! 💯🦂twitterですわ🦂💯 ぜひフォローしてほしいですわ! 💯わたくしとのゴージャスなお約束💯 ✦わたくしとの楽しい時間は、わたくしと過ごしている時だけ大事にしてくださりますよう、  よろしくお願いいたしますわ...

らしいですわ。。コメントも含め、中毒性の高い「ですわ」の魔力ですわ。。文字だけ見ると、関西のおっさん言葉にしか見えませんわ。(自動変換)

技術面ではあまり目新しいコメントなどできませんが、Google Colaboratoryで簡単に動かせるようになっていますので、興味ある方はShift+Enterで動かしてみるといいかもしれません。

iPERCore/impersonator_demo.ipynb at main · cedro3/iPERCore
Liquid Warping GAN with Attention: A Unified Framework for Human Image Synthesis - cedro3/iPERCore

のサイトの「Open in Colab」からGoogleアカウントをお持ちであれば実行できると思います。

参考にさせていただいたブログ

以下のサイトなどを参考にさせていただきました。

[iPERCore] 機械学習で写真を踊らせてみる [Python]
本記事では、Liquid Warping GAN with Attention: A Unified Framework for Human Image Synthesisと呼ばれる機械学習手法を使って、写真に写る人を踊らせる方法をご紹介しています。

Pythonに関する記事をご紹介します。

Python高速化! for文は遅いので、”これ”を使うと30倍早いですよ!【Google ColabのPython:コピペで動く!】
【コピペで動く!】Pythonで1.5GBのcsvファイル読み込み高速化:1分5秒⇒4秒程度 DASK , pickle (Pythonコードあり)
【コピペで動く!】日本株、米国株で個別銘柄ベータ値(β値)を簡単に調べる方法 Python 米国株 Webサービス&コード 【Google Colabで違いをみつけろ!】
【コピペで動く!】Google ColabでPython を用いての 効率的フロンティア と ポートフォリオの最適化 Efficient Frontier & Portfolio Optimization with Python [Part 2/2]
【コピペで動く!】20行で資産運用モデル作成 Google ColabのPythonで 米国株の株価を取得し、グラフ・チャートを表示
過去50年間のS&P500の季節性の値動きから負けにくいポジション構築はできるのか考える・大統領選挙のアノマリー対応!【コピペで動く!】Google ColabのPythonで自分で調べてみよう!
曜日による米国株指数(S&P500)のパフォーマンスに違いはあるのか?有利なポジション取りはできるのか?【Google ColabのPython:コピペで動く!】Twitterで出てくる知見は本当か自分で調べてみよう。
【解決】スクレイピングでHTTP Error 403: Forbiddenでアクセスできないときに試すべき方法【コピペで動く!】【Google Colab:Python:pd.read_html,selenium】
【解決】Google ColabのPythonでエクセル(Excel)ファイルやCSVファイルに出力・入力する方法【コピペで動く!】
【コピペで動く!】IB証券(インタラクティブ・ブローカーズ証券 )へのPythonでのAPI接続 ib_insync [自分が使っているPythonコード]
米国株のティッカー(Symbol)のスクレイピングによる取得、APIによるヒストリカルデータやファンダメンタルズデータ取得について【コピペで動く!】Python,Quandl,無料枠あり
Google ColabでYouTube動画を開始・終了の時間を指定してPythonでダウンロード(音声・動画両方対応)【コピペで動く!】
Pythonを使ってTwitterに自動投稿。APIの設定など。(Twitter API v2とAPI v1.1の併用)
ボラティリティ クラスタリング(Volatility Clustering)について:Google ColabのPythonでの相場環境分析
TradingViewを使ってポートフォリオ運用(複数銘柄運用・配当込み) 日本株 2019年末に約1000万円投資していたらどうなった?【コピペで動く!】Google ColabのPythonで自分で調べてみよう!

コメント