GANモデルで、ポートレート写真を線画にする

1.はじめに

 今回ご紹介するのは、ポートレートを色々な線画にする Quality Metric Guided Portrait Line Drawing Generation from Unpaired Training Data(対になっていないトレーニングデータからの品質メトリックガイド付きポートレート線画の生成)というGANモデルです。

*この論文は、2022.2に提出されました。

2.今回のモデルについて

 今回のGANモデルの概要図が下記です。基本的に、対になっていないトレーニングデータを使用するために、CycleGANの様な構造をしています。しかし、ポートレイト写真と線画では持っている情報量が大きく異なるため、CycleGANをそのまま使用することが出来ません。そこで、主に4つの工夫を加えています。

 1つ目は、下段の Strict cycle-consistency loss(厳密なサイクル一貫性損失)に対して上段を Relaxed cycle-consistency loss(緩いサイクル一貫性損失) と非対称にしていることです。これは、上段で線画から写真に戻すときの情報量の差が大きいためです。

 2つ目は、Quality Metric Model (品質メトリックモデル)を使用して線画の品質を担保したことです。これは、線画と官能評価の数値のペアを学習させることによって、線画の品質数値を回帰で求めるモデルです。

 3つ目は、Nose Discrim、Eye Discrim、Lip Discrim(鼻・目・口の弁別器)を設け顔を構成する重要なパーツの欠落を防いだことです。

 4つ目は、Style feature(スタイル特徴)というコンセプトを導入し、1つのモデルで色々なスタイルの線画が生成できる様にしたことです。具体的には、GeneratorStyle feature の条件を与え、Style loss を設定することで実現しています。

3.コード

 コードはGoogle Colabで動かす形にしてGithubに上げてありますので、それに沿って説明して行きます。自分で動かしてみたい方は、この「リンク」をクリックし表示されたノートブックの先頭にある「Colab on Web」ボタンをクリックすると動かせます。

 まず、セットアップを行います。

 

 最初に、examples フォルダに格納されているサンプル画像を確認しておきましょう。自分の画像を使いたい場合は、このフォルダに画像(align処理をしたもの)をアップロードして下さい。

 *align処理については、このブログをご参照下さい。

 

 test_seq_style3.py を使って、3つのスタイルの線画を作成します。数分程度かかりますので、ゆっくりお待ちください。

 

 それでは作成された3つのスタイルの線画を見てみましょう。

 1つのモデルで、3種類の線画が作成できるのは面白いアイディアですね。

 では、また。

(オリジナルgithub)https://github.com/yiranran/QMUPD

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUTこの記事をかいた人

アバター

ディープラーニング・エンジニアを趣味でやってます。E資格ホルダー。 好きなものは、膨大な凡ショットから生まれる奇跡の1枚、右肩上がりのワクワク感、暑い国の新たな価値観、何もしない南の島、コード通りに動くチップ、完璧なハーモニー、仲間とのバンド演奏、数えきれない流れ星。