LoginSignup
6
2

More than 5 years have passed since last update.

pix2pixでAKB総選挙ランキング上位者を線画画像から再現する

Last updated at Posted at 2018-02-15

有名なpix2pixの検証

GANの一種 Keras で pix2pix を実装する。【 cGAN 考慮】by トミーさんの結果検証をAKB総選挙ランキング上位者の画像を使って実施してみました。

コードは以下に置きました
MuAuan/pix2pix

やったこと

①img2h5.pyが画像の入ったフォルダからh5pyファイルを生成

最初、yahooから収集した画像はいろいろなサイズのものがあり、読み込みで失敗。Canny関数を勘違いしてサイズ変更しているものと考えていました。一度サイズ変更してやればやれましたが、同じ手間なのでトミーさんのimg2h5.pyを書き換えて入力画像の大きさに依存しないようにしました。
実行は以下のとおりです。
まず、images/にカテゴリ毎にディレクトリを作成して画像を配置しています。
以下を実行すればdatasetimages.hdf5ファイルが作成されます。
python img2h5.py -i images/ -o datasetimages -t canny

使い方は以下のサイトを参照してください。
tommyfms2/pix2pix-keras-byt

※画像はカテゴリ毎に読み込みと合わせて配置してください。   
※画像サイズはバラバラでも対応しています、サイズ変更されてしまうので、  元画像を保存したい場合はあらかじめコピーするか、別途ディレクトリを決めてそこに保存・取得するように変更してください。

②Trainingは以下で実行

python pix2pix.py -d datasetimages.hdf5
オプションがあるみたいですが、使いませんでした。 上記サイトを参照願います。
出力は時々刻々変化するので、出力ファイルに番号付けました。そして、Weight再利用できるように、出力できるようにしました。

結果

③出力はTrainigとValidationの二つがでます

あまり記載されてませんが、このGANは収束がとても速いです。
様子を示すと、以下のとおりです。
因みに約1000個の画像データ(128x128)に対して1epoch 72secです。
 上段が元画像をCannyした線画
 中段がGenerateされた画像
 下段が元画像 です。
【epoch 0 Training】なんとなく人の絵??
current_batch_training0.png
【epoch 2 Training】ほんとに見えてきました!
current_batch_training3.png
【epoch 3 Training】もはやそれぞれの似顔絵?
current_batch_training5.png
【epoch 5 Training】絶対カンニングしてるよ?
current_batch_training10.png
【epoch 20 Training】。。。
current_batch_training40.png
【epoch 50 Training】カンニングしても描けない。。
current_batch_training100.png
【epoch 180 Training】元画像に近づいてきた
current_batch_training361.png
【epoch 180 Validation】苦手はあるんだな、でもTestデータ!
current_batch_validation361.png
【epoch 400 Validation】つまり400回回した最後のTest。。
current_batch_validation799.png

感想とこれから。。

最後、Testデータに対しては、苦手な画像がはっきりしていて、少し安心。でもこれだけ、きれいな絵が得られると、これ使って何やろうかな??

たとえば、
①普通の風景とか動画からフレームごとの連続シーン入力にして再度動画再作成とか。。そのあと線郭まんがからリアル動画できるね??
②セルフィッシュ画像を入力にして、似顔絵?返信サービスとか

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2