「PSGAN」をGoogle Colaboratoryの無料GPUでトライした話。

PSGANとは、第三者の化粧を自分に転写できるバーチャルメイクのこと。

PSGANの説明

「PSGAN」は、北京航空航天大学、中国科学院、シンガポール国立大学、シンガポールYITU Technologyによる研究チームが開発したものです。ディープラーニングを用いて画像に写る人の顔の化粧を別の画像内の顔へ転写する。すごい、GAN(敵対的生成ネットワーク)、AI技術です。

画像2

PSGANがすごいのは、なんと!! 表情やポーズがそれぞれ違っても化粧だけを転写できのです。さらに、すごいのが、静止画像だけでなく、動画にも適応した実験も行い、良好な結果を達成したらしい(動画での転写例)。

ではここから、Google Colaboratoryの無料GPUで、このPSGANを試す方法を紹介します。Google Colaboratoryを利用するには、前提として、Googleアカウントが必要ですので、お持ちでない方は、事前に作成してください。

トライのアジェンダ

1. GitHubからPSGANのソースコードをダウンロードする。

2. Google Colaboratoryにアクセスし、GPUモードにする。

3. ダウンロードしたPSGANのソースコード(.zipファイル)をアップロード。

4. 必要なライブラリーをインストールする。

5.転写したい顔の写真をアップロードする。

6. 転写トライ用のPythonコードを実行する。

7. 転写した写真をローカルPCにダウンロード、以上完了。

1. GitHubからPSGANのソースコードをダウンロード

まず、こちらのページにアクセスする。

画像2

赤丸のDownload ZIPをクリックしてダウンロードしてください。あとで、Google Colaboratoryにアップロードします。

2. Google Colaboratoryにアクセス、GPUモードにする。

2. Googleで、 Colaboratoryと検索します。 そして、Colaboratoryにアクセスします。そうすると、Colaboratoryへようこそというページがでます。そこで、左上のファイルをクリックして、赤丸のノートブックを新規作成をクリックします。

画像3

次に、GPUモードに変更します。この作業を忘れると、転写のdemoコードが動かずに、全て最初からやり直しに、なるので、必ずGPUモードに変更してください。GPUモードに変更方法は、まず、編集のタブをおして、次にノートブックの設定をクリックしてください。

画像4

次に、下記画像のようにNoneからGPUをクリックして、保存をおします。

画像5

次に、以下の画面になりますが、そのまま、保存ボタンをおしてください。

画像6

このノートブックを保存する際にコードセルの出力を除外する。が気になる方は、こちらをご覧ください。Google Colaboratoryは一回12時間使用可能ですが、操作しないと90分で落ちてしまいますが、それを防ぐ方法に関係しています。今回のトライでは、必要ないので、読み飛ばしてください。

念のために、GPUモードになったかを確認しましょう。以下のコードを入力して、ShiftとEnterを同時に押してください。GoogleColaboratoryでは、コードの冒頭に!が必要ですので、お忘れずに。以下の画像のようにGPUと記載があれば成功です。

!nvidia-smi​
GoogleColaboratoryのGPUはランダムで、Tesla K80か、T4が割り当てられるようです。詳しくはこちらをご覧ください。

画像7

3. ダウンロードしたPSGANのソースコード(.zipファイル)をアップロード。

以下の画面の赤色の四角をクリックしてください。

ここから続きは、有料となります。トライしたい方は、ぜひ応援をお願いいたします。

価格は、私とカフェでコーヒーを飲みながら、トライ方法をレクチャーしたという設定でコーヒー一杯100円にしました。ご検討をよろしくお願いします。

画像8

以下の画面の赤色の四角をクリックしてください。そして、ローカルにダウンロードした PSGAN-master.zip をクリックしてアップロードしてください。アップロードに約15分くらい、かかります。

GoogleColaboratoryは、PCがスリープモード等になると、最初からやり直しになるので、パソコンは自動スリープしない設定にすることをオススメします。私も何度か、やってしまったことがあり、あーっというため息が・・。

画像9

なかなかアップロードされないなと思ったら、以下画像の赤文字のようにオレンジ色のゲージが一周するまでお待ちください。

画像10

以下画像のように、無事に、アップロードされると、PSGAN-master.zipというファイルが表示されます。いよいよ、次に、これを解凍して、必要なAIのライブラリーをインストールします。

画像11

4. 必要なライブラリーをインストールする。

以下のコードを入れて、lsで現在地を確認した後に、PSGAN-master.zipを解凍します。

!ls
!unzip PSGAN-master.zip

画像12

解凍したPSGAN-masterファイルにcdで移動します。なぜかは知りませんが、移動する時は、!をつけると移動できませんので、ご注意してください。

cd PSGAN-master

画像13

次に、demo.pyを実行します。そうすると、ModuleNotFoundError: No module named 'torchgpipe'とエラーが出ます。これは、torchgpipeというライブラリーが足りませんというメッセージエラーです。なので、'torchgpipe'等をインストールする必要があります。

!python demo.py
!pip install torchgpipe

画像14

また、demo.pyを実行します。そうすると、今度は、ModuleNotFoundError: No module named 'fvcore'とエラーが出ます。なので、先ほど同じように、fvcoreをインストールします。​

!python demo.py
!pip install fvcore

また、demo.pyを実行します。そうすると、今度は、ModuleNotFoundError: No module named 'fire'とエラーが出ます。なので、先ほど同じように、fireをインストールします。​

!python demo.py
!pip install fire

また、demo.pyを実行します。そうすると、エラーが出なくなりました。これで必要なライブラリーのインストールは終了です。いよいよ、次は、変換したい元写真をアップロードしましょう。

画像15

5.転写したい顔の写真をアップロードする。

左のフォルダの、PSGAN-masterフォルダをクリックして、次に、assets、image、non-makeupと順番にフォルダをクリックします。そして、xfsy_0106.pngをクリックします。そうすると、以下画面のように、右側にメイクアップ前の画像が出てきます。この画像を、任意の好きな画像に変更できます。まずは、この画像を削除しましょう。

画像16

以下画像の縦・・・をクリックして、ファイルを削除をクリックしてください、そうするとファイルが削除されます。

画像17

また、メイクアップを転写する元の参照画像は、makeupのフォルダに入っています。今回は、やりませんが、参照画像を変更したい時は、ここの画像を削除して、画像ファイルを変更してください。

画像18

続いて、転写される好きな画像をアップロードします。non-makeupのフォルダの縦・・・をクリックして、アップロードをクリックしてください、そして、任意の画像をxfsy_0106.pngに名称を変更してから、ここでアップロードしてください。拡張子も必ずpngにしてください。jpgだとエラーになります。

画像19

今回は、ドラマ半沢直樹2で大活躍中の香川さんを元画像にしました。

画像20

6. 転写トライ用のPythonコードを実行する。

いよいよ佳境へ突入です、準備が整いしたので、もう一度、!python demo.pyを実行します。

!python demo.py

demo.pyで転写した画像は、transferred_image.pngという名称でPSGAN-masterフォルダ以下に保存されますので、クリックしてみましょう。そうすると、メイクアップを転写されたドラマ半沢直樹2で大活躍中の香川照之さんが完成しました。

画像21

7. 転写した写真をローカルPCにダウンロード

最後に、PSGANで転写した画像をローカルPCにダウンロードしましょう。

transferred_image.pngの右側の縦・・・をクリックして、ダウンロードを押してください。無事にこれで完了です。

noteをお買い上げいただきまして、誠にありがとうございました。

画像22


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