TensorFlow で CNN AutoEncoder – Oxford 17 Flowers –
先に MNIST と CIFAR-10 を題材に Convolutional AutoEncoder を実装して視覚化してみましたが、より現実的な画像サイズである Oxford 17 Flowers にトライしてみます。というか、ここからが本番です。
Convolutional AutoEncoder に使用したモデルは手始めに CIFAR-10 と同じものを使いました。
つまり Encoder として (畳込み層 + MaxPooling 層) x 3 の単純なもので、そして decode された画像を元画像と比較し、encode された画像、特徴マップを可視化します。
最初にテスト・サンプル画像をカテゴリー毎に1 枚選んで 17 枚をまとめて、decode した画像群をトレーニング epochs 毎にリスト表示します :
【元サンプル画像】
【1 epoch】
1 epoch だと RGB の 3 チャネルが復元できていません :
【10 epochs】
ある程度の復元はできていますが、細部はまだ再現されていません :
【50 epochs】
復元度は高くなりましたがまだ十分だとは言えません。
トレーニング不足かもしれませんが、このあたりが限界かもしれません :
次に個別のサンプル画像を適当に選択して epochs 別に decoded 画像を比較してみます :
元サンプル画像 | 1 epoch |
---|---|
![]() | ![]() |
10 epochs | 50 epochs |
![]() | ![]() |
別例をもう一つ :
元サンプル画像 | 1 epoch |
---|---|
![]() | ![]() |
10 epochs | 50 epochs |
![]() | ![]() |
ついでこのサンプル画像をエンコードした出力マップを epochs 別に表示します :
【Encoded 画像 : 1 epoch】
【Encoded 画像 : 10 epochs】
【Encoded 画像 : 50 epochs】
別例を幾つか掲示しておきます。
それぞれ、サンプル画像、50 epochs 後の decoded 画像、そして encoded 画像群です :
![]() | ![]() | |
![]() | ![]() | |
![]() | ![]() | |
以上