LoginSignup
1
1

More than 3 years have passed since last update.

VAEによる画像検索システム

Posted at

Fashion-MNISTを利用して、類似画像の検索システムを作成しました。方法としては、VAEにより次元圧縮をして、潜在空間上で距離が近いものを検索結果としました。

ソースコードは以下から触れます。

データについて

Fashion-MNISTは70,000サンプルのファッション商品の写真で、以下のようになっています。
image.png

各ラベルは以下のようになっています。(このラベルは直接的には使いませんが、検索した際に同じラベルのものが出力されたら、有効性を見出せるという意味で使用します。)

ラベル 記述
0 T-shirt/top
1 Trouser
2 Pullover
3 Dress
4 Coat
5 Sandal
6 Shirt
7 Sneaker
8 Bag
9 Ankle boot

※データセットの配布元: GitHub「fashion-mnist/zalandoresearch」。The MIT License (MIT) Copyright © [2017] Zalando SE, https://tech.zalando.com
※出典: Fashion-MNIST: a Novel Image Dataset for Benchmarking Machine Learning Algorithms. Han Xiao, Kashif Rasul, Roland Vollgraf. arXiv:1708.07747

また、ネットワークは以下のようなものを用います。

エンコーダー

image.png

デコーダー

image.png

VAEの結果

作成したVAEモデルは以下のような結果になりました。

  • 訓練結果 image.png

最初はテストデータの誤差が異常に大きくなっていましたが、正常に訓練できています。

  • 再現画像 image.png

上段が訓練データ、下段がテストデータで、隣合う二つが元画像と再現後の画像となっています。
概ね再現できているとみて問題なさそうです。

検索結果

index=15の画像に対して、似た画像を検索しました。distanceが距離(2乗和)です。

    index   distance    label
0   15  0.000000    3
1   4648    0.801960    3
2   15393   1.194853    3
3   16060   1.561346    3
4   10346   1.677270    3
5   13806   1.683182    3
6   1672    2.047508    3
7   1921    2.118745    3
8   13082   2.165989    3
9   2797    2.166618    3
10  4243    2.315314    3
11  15704   2.385199    3
12  15119   2.390874    3
13  13158   2.433088    3
14  7793    2.462667    3
15  4905    2.485209    3
16  7603    2.495291    3
17  11167   2.570958    3
18  11551   2.619137    3
19  5991    2.628919    3

画像で見ると以下のようになっています。

image.png

左上が検索に利用した画像で、似ている画像が順番に上段の左から右、下段の左から右に表示されています。
なお、検索する画像・検索対象の画像はテストデータのものを用いています。

検索結果としては、概ね同じラベルのものが返ってきていますし、実際の画像も似ている雰囲気のものが抽出されているので、似ているものを抽出する機構としてはうまくいっているように感じます。実は最初はCIFAR-10でやろうとしていたのですが、カラー画像だとVAEの学習がどうしてもうまくいかないようだったので、白黒のデータセットであるFashion-MNISTに変更しました。
実用上は(一応グレスケにすれば可能ではありますが)カラー画像でできることが重要だと考えられるので、今後の課題としたいと思います。

ソースコード

参考文献

1
1
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
1
1