2017年08月02日

Pythonで画像処理 その2

昨日の続きです。とりあえず画像のデータセットを表示してみることにしました。CIFAR-10 and CIFAR-100 dataset[1]を使ってみようということで、Python用のデータをダウンロードしてみました。サイトにはunpickleの方法しか載っていなかったので、ググって[2]のサイトの方法を試させていただきました。サイトはPython 2系のようでしたので、3系にするためにunpickle関数を[1]に載っている3系のものに書き換えました。

ダウンロードしたデータを展開して実行してみると、下記のようなエラーが出ました。
  File "省略", line 26, in get_cifer10
      tr_data = data_dict['data']
  KeyError: 'data'
'data'なんて名前のキーは無いよというエラーのようでしたので、KeyErrorで検索してみると[3]のサイトがでてきました。
  print(data_dict.keys())
  dict_keys([b'batch_label', b'labels', b'data', b'filenames'])
キーを確認するためにdata_dict.keys()を実行してみたところ、上記のようにb'data'と頭にbがついていました。このbは何のbなんでしょうね。

とりあえずキーにすべてbをつけると、実行できました。後はconv_data2imageという関数も準備していただいていましたので、それを使って画像を表示してみました。
  img0 = tr_data10[0]   # 0番目の画像データ
  img1 = conv_data2image(img0)
  from skimage import io
  io.imshow(img1)
  io.show()

実行結果

dl2_figure_5.png

参考サイトと同じ画像が表示されましたので、とりあえず読み込みは成功したようです。

[1] CIFAR-10 and CIFAR-100 dataset
[2] Qiita - [Python]CIFAR-10, CIFAR-100のデータを読み込む方法
[3] stackoverflow - Reading Cifar10 dataset in batches
web拍手 by FC2
posted by シンドラー at 18:03 | Comment(0) | Machine Learning | このブログの読者になる | 更新情報をチェックする