2024年8月号…2章「進化の過程を実体験!歴代の画像生成AI」サポートページ

本稿のサンプル・コード(本誌ダウンロードサービスからダウンロードください)はThe Oxford-IIIT Pet Dataset(CC BY-SA 4.0 2024.6/25現在)を使い,各種生成ディープ・ラーニング・モデルの動作確認や検証を行うものです.順に実行することで,各種ディープ・ラーニング・モデルの動作を体験することができます.

 

● 実行環境準備

本サンプル・コードはPython3.11およびPyTorch2.2にて動作確認を行っています.Python3が動作する環境であればOSに制限はありません. (Windows,Ubuntu等)
PyTorchは実行環境 (OSやGPUの有無) によってインストールコマンドが異なります.環境を確認の上,PyTorch公式サイト (https://pytorch.org/) よりインストールコマンドを確認して実行してください.
また,PyTorch以外の依存ライブラリとしてpillow (PIL)・numpy・tqdmを用いています.Pythonのパッケージ管理ツールpipを使う等して予めインストールしてください.

 

● データ準備

本サンプル・コードにはデータセットは付属していません.事前に取得する必要があります.
The Oxford-IIIT Pet Datasetのサイト (https://www.robots.ox.ac.uk/~vgg/data/pets/) からimages.tar.gzおよびannotations.tar.gzをダウンロードし,tar.gzの解凍を行った上でoxford-petsディレクトリに配置します.詳しい配置位置はサンプル・コードのREADME.mdを参照してください.

 

各種ディープ・ラーニング・モデルのコードでは,ペットの正面を向いた顔画像の学習を行い,更に生成を行います.取得したデータセットは犬猫の全身が写っているため,顔画像だけを切り取る必要があります.サンプル・コードの00_get_face_images.pyを実行することでアノテーション情報 (annotations) の顔の矩形情報から画像を切り取ります.

ここまで実行することでデータの準備が完了しました.以降はここで作成したデータセットを用いて各種ディープ・ラーニング・モデルの学習及び生成処理を行います.

 

● 学習およびデータ生成処理

以下の各種スクリプトで,本稿で紹介した各種ディープ・ラーニング・モデルの学習及び生成処理を実行することができます.

実行方法及び設定についてはコード内のREADME.mdもしくは各種コード内の定数を参照してください.

Convolutional Auto Encoder
学習 (11_cae.py)
生成 (12_cae_generate.py)
スタイル変換 (Style transfer)
スタイル変換 (21_style_transfer.py)
DCGAN = Deep Convolutional Generative Adversarial Network
学習 (31_gan.py)
生成 (32_gan_generate.py)
Convolutional VAE = Convolutional Variational Auto Encoder
学習 (41_vae.py)
生成 (42_vae_generate.py,43_vae_generate_a_to_b.py)
Diffusion
学習 (51_diffusion.py)
生成 (52_diffusion_generate.py)