見出し画像

Latent Surfing(第3回 AI なんでもLT 会の振り返り)

 こんにちはこんばんは、teftef です。2024 年 3月 10 日に開催された LT 会で話したことについてのまとめと振り返りです。「Latent Surfing 」という題目で、 GAN や Diffusion Models を用いたモーフィングについて話しました。その内容についてまとめます。

 私もまだ初学者であり、説明が間違っていたり勘違いがある可能性が 0 ではないということをご了承ください。ぜひコメントなどをいただけたら幸いです。また、この記事を作成するにあたり、GPT-4 による校正、修正が含まれています。

画像、動画編集


 近年、映画やアニメなどがネット配信サービスで見られるようになったり、テレビで映画を放送するといった需要が多く増えています。しかし、映画というのは 24fps で作成されたものが多くそれを 60fps 以上のモニターで見てみたかったり、スローモーションの動画をもっとスムーズにつなげたりするといった需要が増えています。
 また、一枚の写真の中で、横を向いているを人を前に向かせたい、観光地で自分たち以外の映り込みを消したい、もう少し下を向いてほしい、目をつむらせたい、など、一枚の画像からその一部を編集したいことがあります。   
 このような画像編集、動画編集はその画像または動画のフレーム間が破綻なくつながっている必要があります。現在ある情報から、ないものを予測する必要があります。

画像編集の例

少し前の技術


 これらの技術は 2000 年代の頭から探求されており、例えば動画では、2つのフレームに映っている物体の変化を「動きベクトル」として取り、その動きベクトルの中間をとってあげることにより中間のフレームを予測していました。[1-2]

 しかしこれらを使って生成された画像には見てもわかるようなジャギーが残っていたり、物体がゆがんでしまっていることがわかります。

機械学習を使う


 近年ではディープラーニングの発展により、画像、動画の特徴量での解釈ができるようになりつつあります。潜在空間でその特徴量ををうまく操作することでその画像の「意味」を損なうことなく編集することが可能になり、フレーム補間や画像の編集がスムーズに違和感なく行うことができるかもしれません。[3-5]

StyleGAN

 まずは画像編集の一例として StyleGAN [6] の潜在空間について見てい行きます。 StyleGAN については詳しくはこちらをご覧ください。

 StyleGAN の Mapping Networks で抽出された特徴量を編集することで、2つの画像間をスムーズに繋げます。最初にGAN Inversion を使って、ある顔画像を潜在空間にマッピングします。(もちろん正確にマッピングできるわけではないのでそこは勘弁) 続いてその画像の特徴量にある一定の方向のベクトルを少しずつ (線形に) 足していき 、それぞれ画像を出力してあげます。
するとこのように画像が滑らかに推移していくことがわかります。画像の編集を滑らかにすることができるとわかりました。

DisentangleMent

 少し疑問が残るのは、「なぜ線形に動かしただけで、滑らかに画像を編集できるか?」です。
潜在空間内で、画像のある属性を変化させたときに、その変化につられて他の属性が大きく変化してしまうことがあります。これを 「Entanglement」 、「もつれ」といいます。このもつれは (b) のような状態であり、例えば赤矢印の点間を移動したいときに、(b) では横軸を少し変化させたときに縦軸が大きく変化してしまっていることがわかります。対して、 (c) ではStyleGAN の潜在空間になっていて、赤矢印をまっすぐ結んでも、縦横の変化 (基底の変化) が同じくらいであることがわかります。
 StyleGAN のマッピングネットワークを見てみると、 複数の FC 層と活性化層で構成されていることがわかります。これにより潜在空間が線形ではなく、複雑な関数で表現できるようになり、それによって Entanglement が解消することができます。これを Disentanglement といい、このような Disentanglement な空間においては、特徴量をある特定の方向に線形移動させると特定の属性のみを変化させることができるようになります。 [7]


属性の編集

 今回は特定の属性として「表情」を例にしてみます。まずは、2つの差分画像 I_s , I_g を作成します。それらを GAN Inversion [8] を使って 潜在空間にマッピングします。この特徴量を w_s , w_g とします。

 この2点間の単位ベクトル v に沿って他の特徴量を動かしていきます。
今回は女性の画像である w_0 を起点に動かしていきます。

 するとこのように女性の画像の口が徐々に笑っている表情に変わっていくことがわかります。また口以外の変化が非常に少ない(横人らべ手も気づかないくらい小さい)ことがわかります。こうすることで画像間の特定の属性を変化させることができます。

Diffusion Model ではできるのか?

 続いて Diffusion Model 見ていきます。Diffusion Model として今回は Stable diffusion (LDMs)を用います。Diffusion Model で画像を編集するとなると、 2 つの手法が考えられます。一つは Prompt の Embedding を編集してあげることともう一つは VAE Encoder から得られた Latent を編集することです。
両方やってみましょう。


Embedding を編集

Latentを編集

 両方とも編集はできるのですが、動画や GIF で見てみるとやはり不自然な編集を行っていることがわかります。
また、このように編集途中の画像に意図しない不自然なものが出てきてしまったり、 Prompt の指示に的確にこたえることができないといった問題もあります。
 そもそも Diffusion Model の潜在空間の Entangle は解明されていないということがありますが、そもそも GAN とは違って、Diffusion Model の学習が Time Step で独立したものであり、連続性を維持できないといった問題もあります。

編集途中の画像に意図しない不自然なもの
Prompt の指示に的確にこたえることができない

Smooth Diffusion

 この問題に対処するために、Smooth Diffusion [9]というものがあります。これは、Diffusion Model の学習時に Latent の平滑性を保証した学習を行います。詳しく書くと長くなるので、こういうものがあるんだよ程度に見ていただければと思います。簡単に言うと、学習時に正則化項を目的関数に導入し、潜在空間での移動 (ノイズ変化) と出力の移動を比例させる処理をします。

結果

 するとこのようにスムーズな編集を行うことができ、画像の破損や Prompt の意図に沿わない編集もなくなります。

まとめ


 今回は潜在空間 (Latent Space) で特徴量 (Latent) を編集することで画像を編集するということを GAN と Diffusion Models で試すということをしました。潜在空間 (Latent Space)には画像のセマンティックな情報から私たち人間にはとらえられないような画素間の情報を多く持っています。(というかCNN がそのように作られた) しかし、現在、潜在空間の解釈を完全に達成するのは困難です。潜在空間は高次元、複雑、非線形である可能性があり機械学習モデルのブラックボックスの性質により、潜在空間は直感的でないことがあります。未知の潜在空間 (Latent Space) を航海する (Surfing) ことで何か新しい特定の方向性や意味を持つベクトルを発見し、それを利用して画像の特定の特徴を調整し、意のままに画像を操ることができるようになるかもしれません。[10-14]

 Latent Surfing の真髄は、ただ美しい画像を生み出すことだけではありません。このプロセスを通じて、我々は機械学習モデルがどのように世界を理解しているか、そしてそれが人間の認識とどのように異なるのかを探求します。未知の潜在空間を探索することで、生成モデルが見せる世界の新しいビジョンに触れることができるかもしれません。潜在空間を解き明かし、未来の創造に新たな道を開く冒険であり、我々は発見と創造の波を追い求めることで、新たな表現の形態を発見し、創造の可能性を広げることができるのかもしれません。

謝辞


 生成 AI なんでも LT 会を開催していただいた、抹茶もなか様 (https://twitter.com/GianMattya)、みけたこ様 (https://twitter.com/miketako3) をはじめとする運営様一同に感謝を申し上げます。

参考文献


[1] 武久泰夫 等., “動画像系列の高精度フレーム補間に関する基礎検討,” 2006.
[2] 原浩児 等., “サブピクセル動き推定とMAP推定を用いたフレーム補間に関する検討,” 映像情報メディア学会, 2007.
[3] K. Zhang, et al., “Beyond a gaussian denoiser: Residual learning of deep cnn for image denoising,” IEEE transactions on image processing, 2017.
[4] I. Goodfellow, et al., “Generative Adversarial Nets,” Advances in neural information processing systems, 2014.
[5] R. Rombach et al., “High-Resolution Image Synthesis with Latent Diffusion Models,” Proc. CVPR, 2022.
[6] T. Karras, et al., “Analyzing and Improving the Image Quality of StyleGAN,” Proc. CVPR, 2020.
[7] Z. Wu, et al., “StyleSpace Analysis: Disentangled Controls for StyleGAN Image Generation,” Proc. CVPR, 2021.
[8] Z. Wu, et al., “GAN Inversion,” CoRR, 2021.
[9] j. Guo, et al., “Smooth Diffusion: Crafting Smooth Latent Spaces in Diffusion Models,” Proc. CVPR, 2024.
[10] X. Pan, et al., “Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Manifold,” Proc. ACM SIGGRAPH, 2023
[11] E.J. Hu, et al., “LoRA: Low-Rank Adaptation of Large Language Models,” CoRR, 2021
[12] Y. Shi, et al., “DragDiffusion: Harnessing Diffusion Models for Interactive Point-based Image Editing,” Proc. CVPR, 2024.
[13] M. Mirza, et al., “Conditional Generative Adversarial Nets,” CoRR, 2014.
[14] A. Brock, et al., “Large Scale GAN Training for High Fidelity Natural Image Synthesis,” CoRR, 2019.

最後に

 最後に少し宣伝です。主のteftefが運営を行っているdiscordサーバーを載せます。このサーバーでは Midjourney やStable Diffusionのプロンプトを共有したり、研究したりしています。ぜひ参加して、お絵描きAIを探ってみてはいかがでしょう。(5,500 字,teftef)

↓↓ よろしければ他のも読んでいただけるとありがたいです。↓↓


この記事が気に入ったらサポートをしてみませんか?