Liq’s blog

単身赴任中のしがないサラリーマンの日記

Anaconda設定とデータ集め

  Anaconda Navigator に新しい環境を追加した。
・tensorflow
   GPU機能を使わない tensorflow をインストール
・tensorflow-GPU
   GPU機能付きのtensorflow をインストール

f:id:Liq:20190210175555p:plain

  続いて、公開されている以下のデータを収集。

1) 101料理データ
   https://www.vision.ee.ethz.ch/datasets_extra/food-101/

2) 犬猫データ
   https://www.kaggle.com/c/dogs-vs-cats/data/ (kaggleサイトでユーザ登録が必要)

3) 102花データ
   http://www.robots.ox.ac.uk/~vgg/data/bicos/

  1)、2) は種類ごとにフォルダ分けが簡単にできたが、3)は少々やっかいだった。カテゴリ名(花の名前)と枚数の情報は以下にあるが、実際の画像ファイルは、1フォルダの中に全カテゴリを通じて images_0XXXX.jpg の連番で配置されている状態。ファイル名とカテゴリ名の関係が分からず、フォルダ分けが無理っぽい。色々調べると、ダウンロードした一式の中にあるMATLABファイル imagelabels.mat にラベル情報が入っているらしい。 

  http://www.robots.ox.ac.uk/~vgg/data/flowers/102/categories.html

  また、ラベル情報と花の名前の関係・順番は、以下と推測した。

  https://github.com/Arsey/keras-transfer-learning-for-oxford102/blob/master/class_labels.py

targets=[
    'pink_primrose', // ラベル番号 0
    'hard-leaved_pocket_orchid', // ラベル番号 1
    'canterbury_bells', // ラベル番号 2
    'sweet_pea', // ラベル番号 3
    'english_marigold', // ラベル番号 4
...
} ;

  imagelabels.mat を以下のような csvファイルに変換し、それと上の構造体をもとにフォルダ分けを実施。一寸面倒くさかった。

0,image_00001.jpg,77 // 77がラベル番号
1,image_00002.jpg,77 // 77がラベル番号
2,image_00003.jpg,77 // 77がラベル番号
...
500,image_00501.jpg,88 // 88がラベル番号
...

  これで、3つのデータベースについてフォルダ分けが完了。それぞれ以下のように配置した。詳細は、実際の学習、検証する際に記述する。 

1) 101料理データ
¥20190201_foods
   ¥train
   ¥valid
2) 犬猫データ
¥20190201_dogcat
   ¥train
   ¥valid
3) 102花データ
¥20190201_flowers
   ¥train
   ¥valid


※参考サイト(感謝いたします)
https://blog.hayashikun.com/entry/2018/05/12/131711