1.はじめに
GANモデルは顔画像の生成が一番ポピュラーですが、今回ご紹介するのは、アラベスク模様を生成するGANモデルです。
2.アラベスク模様とは?
アラベスク模様は、モスクの壁面装飾などに見られるイスラム美術の一様式で、3つの要素から構成されています。
1つ目は「幾何学」です。数学的に美しい形が無限の続くパターンを構成し、世界の秩序を支配する原理を表しています。
2つ目は「植物」です。生命および生命を生み出す女性を表現しています。
3つ目は「文字」です。アラビア文字のカリグラフィーは美しく、その他の模様に自然に溶け込みます。
さて、今回は zaidalyafeai さんが作成した StyleGAN2 の学習済み重みを拝借して、アラベスク模様の世界を覗いてみたいと思います。
3.コード
コードはGoogle Colabで動かす形にしてGithubに上げてありますので、それに沿って説明して行きます。自分で動かしてみたい方は、この「リンク」をクリックし表示されたノートブックの先頭にある「Colab on Web」ボタンをクリックすると動かせます。
まず、セットアップを行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#@title install cuda10.0 # download data !wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb !sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb !rm /etc/apt/sources.list.d/cuda.list !sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub !sudo apt-get update !wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb !sudo apt install -y ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb !sudo apt-get update # install NVIDIA driver !sudo apt-get -y installnvidia-driver-418 # install cuda10.0 !sudo apt-get install -y \ cuda-10-0 \ libcudnn7=7.6.2.24-1+cuda10.0 \ libcudnn7-dev=7.6.2.24-1+cuda10.0 # install TensorRT !sudo apt-get install -y libnvinfer5=5.1.5-1+cuda10.0 \ libnvinfer-dev=5.1.5-1+cuda10.0 !apt --fix-broken install |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
!pip install tensorflow==1.15.0 import tensorflow as tf import gdown # 学習済み重みのダウンロード !gdown https://drive.google.com/uc?id=1JX5gS6HZHAr31jPIgmb8vQJC4jC5VyLe # githubからコードをコピー !git clone https://github.com/cedro3/gan-mosaics.git %cd gan-mosaics # 関数定義と TensorFlow plugin のセッティング from mosaic import Mosaic model = Mosaic('../model.pkl') |
それでは、seedを指定して1枚画像を生成してみます。seedは整数をリスト形式で1つ指定します。
1 2 3 |
# 1枚画像生成 seed = [425] model.generate_manual(seed) |
次に、3×3で9枚をグリッドで表示してみます。seedは整数をリスト形式で9つ指定します。
1 2 3 |
# 9枚指定し、3×3で画像生成 seeds = [2, 8, 18, 35, 51, 75, 36, 77, 78] model.generate_grid_manual(seeds) |
生成した画像の間をトランジションする動画を作ってみましょう。seedは整数をリスト形式で任意の数を指定します。
1 2 3 |
# 指定した画像を生成しトランジション seeds = [2, 34, 18, 60, 8, 58, 51, 35, 64, 77, 78, 79] model.generate_animation_manual(seeds, steps = 20) |
アラベスク模様、中々魅力的です。
Google Colabのノートブックの後半には、Colabがシード設定を自動的に行ってくれるオート操作バージョンがあり、ポチポチするだけで色々なパターンがどんどん見れますので、試してみて下さい。
では、また。
(オリジナル Github)https://github.com/zaidalyafeai/gan-mosaics
コメントを残す