AIで顔を向けると微笑み返してくれるポートレート! – 作成編 –

5月 1, 2021

複数記事に分けて解説しています.

AIで顔を向けると微笑み返してくれるポートレート! – 機能とセットアップ編 –
AIで顔を向けると微笑み返してくれるポートレート! – 作成編 –
AIで顔を向けると微笑み返してくれるポートレート! – 検証編 –

カスタマイズされた肖像画の生成

個人で用意した画像を用いてカスタマイズされた肖像画の生成を行います.

まずは無表情と笑顔の画像の用意です. パブリックドメインの画像を探します.

次に用意した画像を顔の領域だけ切り取ります.

# trimming images
python align_images.py datasets/my-images/ datasets/my-custom-images/

最後に潜在変数という肖像画生成の元となるnpy形式のデータを作成します.

# generate latent representations of your own images
python encode_images.py datasets/my-custom-images/ datasets/generated_images/ datasets/latent_representations/

npy形式のデータを作成することができたら, stylegan2/samples内のsmile.npyとbase.npyにrenameして, reactiveportraits.pyを実行してみてください. カスタマイズされた肖像画が表示されれば成功です.

ディスプレイの設定

肖像画を表示するディスプレイを設定します.

タブレットの場合

Chrome Remote Desktopを利用してPC画面をタブレットに表示しました.

HDMI接続の場合

HDMIケーブルでPCとディスプレイを繋げてください.

カメラの設定

接続したWEBカメラのデバイスIDを確認します.

# find web camera
ls -la /dev/video*
# crw-rw----+ 1 root video 81, 0  4月 25 09:50 /dev/video0
# crw-rw----+ 1 root video 81, 1  4月 25 09:50 /dev/video1

上記の結果だと, /dev/video0にアクセスできることを示しています.

この結果に合わせてdockercommands.bashの–device, /dev/video0を対応させて, 編集してください.

docker run -it \
             --gpus all \
             --privileged \
             --env="DISPLAY=$DISPLAY" \
             --env="QT_X11_NO_MITSHM=1" \
             --device /dev/video0:/dev/video0:mwr \
             --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
             --name="stylegan2" \
             dockerfile:latest

ここまで来ると, カスタマイズされた肖像画を表示できていると思います.

AIで顔を向けると微笑み返してくれるポートレート! – 機能とセットアップ編 –
AIで顔を向けると微笑み返してくれるポートレート! – 作成編 –
AIで顔を向けると微笑み返してくれるポートレート! – 検証編 –