DifFaceで、低画質な顔画像を高画質化する

1.はじめに

 今回ご紹介するのは、最近画像生成でよく使われているDiffusion Model を使った、低画質の顔画像を高画質化する DifFace という技術です。

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

2.DifFaceとは?

 下記の様に、高画質と低画質の顔画像のペアをDiffusion Modelに学習させることによって、低画質の顔画像から高画質の顔画像を予測します。

3.コード

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

 最初に、MinicondaというPython環境をインストールします。インストール後、自動的にリセットが掛かるため「セッションがクラッシュしました」と表示されますが問題ありません。

 

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

 

 最初に、inference_difface.py を使用し、引数に –aligned を加えてクロップした顔を高画質化してみます。入力画像は testdata/cropped_facesフォルダに入っているものを使用します。

 最後の3枚のみを表示しています。

 次に、inference_difface.py を使用し、背景も含めて画像全体を高画質化してみます。入力画像は、testdata/whole_imgs フォルダに入っているものを使用します。また、-t -s で、パラメータを指定できます。

 最後の3枚のみ表示しています。

 それでは、オリジナル画像でやってみましょう。pic フォルダに自分の用意した画像をアップロードして下さい。そして、pic にファイル名を1つ指定して実行します。とりあえず、picフォルダには、001.jpg〜005.jpgまでの5枚の画像がサンプルとして入っていますので、このサンプルで動かしてみましょう。

 以下を実行すると高画質化した画像をダウンロードできます。

 もう1つやってみましょうか。今度は、pic=004.jpgで指定して実行します。

 こういったタスクを Blind face Restoration(ブラインドフェイス復元)というのですが、この分野でも Diffusion Model が使われ始めました。今後さらに、この手法が進化して行くと思います。

 では、また。

(オリジナルgithub)https://github.com/zsyOAOA/DifFace

コメントを残す

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

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

ABOUTこの記事をかいた人

アバター

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