最新AI論文をキャッチアップ

GAN Inversionで髪型変換!「LOHO」

GAN Inversionで髪型変換!「LOHO」

GAN(敵対的生成ネットワーク)

3つの要点
✔️ GAN Inversionを用いた最適化ベースの髪型変換手法 Latent Optimization of Hairstyles via Orthogonalization(LOHO)を提案
✔️ 2段階で最適化を行うことで結果画像の品質向上
✔️ 既存の髪型変換手法よりも高いFIDスコアを実現

LOHO: Latent Optimization of Hairstyles via Orthogonalization
written bRohit Saha,Brendan Duke,Florian Shkurti,Graham W. Taylor,Parham Aarabi
(Submitted on 5 Mar 2021 (v1), last revised 10 Mar 2021 (this version, v2))
Comments: Accepted by 
CVPR 2021

Subjects: Computer Vision and Pattern Recognition (cs.CV); Machine Learning (cs.LG)

code:  

本記事で使用している画像は論文中のもの、またはそれを参考に作成したものを使用しております。 

はじめに

これまでも深層学習を用いた髪型変換手法はいくつも研究されてきましたが、変換元の髪と変換先の髪の構造が異なると結果画像の写実性が低下するという問題がありました。

今回紹介するLatent Optimization of Hairstyles via Orthogonalization(LOHO)では、GAN Inversionの最適化アプローチを用いることで自然な画像を生成しています。

GAN Inversion

GAN Inversionとは潜在変数から画像を生成するのとは逆に、画像を事前学習されたGANのモデルの潜在空間に埋め込む技術のことです。これができると、GANの潜在空間内での様々な操作が任意の画像で行えるようになり、画像の編集が簡単にできるようになります。また、事前学習されているGANを用いるため、結果画像として高品質な画像が得られるのもこの技術の利点です。潜在空間に埋め込む方法として、エンコーダを用いたアプローチと最適化のアプローチがありますが、本手法では最適化のアプローチを用いています。以下の画像は論文に掲載されている結果画像です。

一番左の画像が元の画像であり、髪型を変換した画像が右に並んでいます。

変換後の画像の左に並んでいる小さい画像は上から髪型の外観とスタイルの参照画像、構造の参照画像、形状のマスク画像(構造の参照画像の人物と同じ人物)です。結果の画像を見るとそれらの属性が反映され、尚且つ自然な画像になっていることがわかります。

提案手法

以下の図は全体の概要を示しています。

手法の概要

I1の画像にI2の髪型の形状と構造、I3の髪型の外観とスタイルを反映させた画像を生成されるように最適化を行っていきます。

次にそれぞれの損失関数について見ていきます。

損失関数

上記はアイデンティティの再構成のため損失関数です。LPIPSは人の類似性の判断に基づいた評価指標のため、アイデンティティの再構成に適しています。

次は髪型の形状と構造を再構成するための損失関数です。髪型の形状のマスクをそのまま使うと変換元と変換先の髪型の形状が大きく異なったときに画像が崩れてしまうため、少し侵食させたマスクを使用している。

髪型の外観を移すための損失関数です。外観とは髪の色のことであり、VGGの最も浅い層の特徴量を用いることで外観を表現しています。Aの詳しい解説は論文を参照してください。

髪型のスタイル変換のための損失関数です。スタイルとはうねりや髪の毛の濃淡などのことを指しています。スタイル変換でよく用いられるグラム行列を使った損失関数となっています。

最後に、ノイズマップの正則化のための損失関数です。ノイズの情報を最適化しないようにするために導入されています。

2段階の最適化

先程見てきた損失関数を用いて最適化を行いますが、すべてを同時に最適化するとI2I3の髪型の情報が競合してしまいうまく合成ができません。そこで、2段階に分けて最適化を行いました。1段階目ではアイデンティティ及び髪型の形状と構造だけを再構築します。その後、2段階目で髪型の外観とスタイルについての損失関数も加えて再構成します。ここで1段階目での情報が維持されるように、1段階目で用いた損失関数も2段階目で用いています。

勾配の直行化

Lrでは形状と構造だけでなく、髪のすべての属性をとらえるようになっています。そのため、2段階目の最適化の際に外観とスタイルの情報がI3の情報と競合してしまいます。これを避けるために、Lrの形状と構造の勾配を外観とスタイルの勾配に直交するベクトル部分空間に投影することで、2段階目でI2の外観とスタイルの情報を反映させないようにしています。

上の図は、2段階の最適化及び勾配の直交化を行わなかった場合(右から2列目)と行った場合(右から1列目)の比較です。最適化の工夫を行うことで髪の属性が正確に反映されつつ、自然な画像に合成されていることがわかります。 

既存手法との比較

本手法を髪型変換手法のSOTAモデルであるMichiGANとFIDスコアで比較した結果が以下の通りです。

MichiGANよりも低いFIDスコアを達成していることがわかります。また、LOHO-HFは髪と顔の部分だけをマスクで取り出した画像での結果です。さらに低いスコアとなっていることから、髪と顔の領域の合成品質が高いことがわかります。下の図はMichiGANとLOHOの出力画像を比較しています。(右から2列目がMichiGAN、1列目がLOHO)

この結果を見るとLOHOは髪の形状の変形にうまく対応していることがわかります。

もう一つ大事な指標として、アイデンティティの再構成の品質があります。本手法をPSNR及びSSIMのスコアで、最新の2つの画像埋め込み手法と比較した結果が以下の通りです。

上記の結果より、Image2StyleGAN++(I2S++)よりも高品質なアイデンティティの再構成ができていることがわかります。

また、I2Sでは最適化された潜在変数と平均的な顔の潜在変数との間で計算される距離が合成画像の品質にどう関係するかを示しています。I2Sでは、有効な人の顔の潜在変数同士の距離は[30.6, 40.5]であり、LOHOはその範囲内であることが示されています。 

まとめ

今回はICCV2021に採択された髪型変換手法LOHOを紹介しました。

この手法では、変換元の髪型の形状と変換先の髪型の形状が異なる場合でもうまく変換できるように様々な工夫がされており、高品質な結果が得られていました。しかし、大きくずれている髪型の変換の際は不自然な画像となってしまう場合があります。また、LOHOは最適化手法のため、推論時に時間がかかってしまうことも欠点と言えます。

これらの欠点をどう解決していくのか、今後の研究に期待されます。

記事の内容等について改善箇所などございましたら、
お問い合わせフォームよりAI-SCHOLAR編集部の方にご連絡を頂けますと幸いです。
どうぞよろしくお願いします。

お問い合わせする