(8) CIFAR10画像セットを見てみる

投稿者: | 2013年10月11日

4,106 views

この記事は最終更新から 1812日 が経過しています。

1. CIFAR10画像セットを入手

まだ MNISTもちゃんと自動認識できていないけれど、他の画像セットにもちょっと興味あり。

そこで CIFAR10 なるカラー画像セットを見てみることにした。提供元はこちら(↓)
https://www.cs.utoronto.ca/~kriz/cifar.html
https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_01.png

ダウンロードできるファイルは以下の3種類(2013年10月11日時点)、最近Octaveがお気に入りの自分はMATLAB用を選択。
https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_02.png

2. CIFAR10画像セットを解凍

早速Linux上で解凍してみる。

[user@dog-server]$ ls
cifar-10-matlab.tar.gz
[user@dog-server]$ tar zxf cifar-10-matlab.tar.gz
[user@dog-server]$ ls
cifar-10-batches-mat  cifar-10-matlab.tar.gz
[user@dog-server]$

すると、以下のような8個のファイルができた。

[user@dog-server]$ ls -l
合計 179148
-rw-r--r--. 1 user user      299  4月 23 05:57 2010 batches.meta.mat
-rw-r--r--. 1 user user 30568167  4月 23 05:50 2010 data_batch_1.mat
-rw-r--r--. 1 user user 30576389  4月 23 05:50 2010 data_batch_2.mat
-rw-r--r--. 1 user user 30572622  4月 23 05:50 2010 data_batch_3.mat
-rw-r--r--. 1 user user 30565850  4月 23 05:50 2010 data_batch_4.mat
-rw-r--r--. 1 user user 30572760  4月 23 05:50 2010 data_batch_5.mat
-rw-r--r--. 1 user user       88  4月 23 05:50 2010 readme.html
-rw-r--r--. 1 user user 30570596  4月 23 05:50 2010 test_batch.mat
[user@dog-server]$

とりあえず.matファイルをOctaveでロードして、中身を順番に眺めてみる。

(1) batches.meta.mat

画像のラベル名称が書かれている。ラベル1は飛行機、ラベル2は自動車、ラベル10はトラックとのこと。

octave:1> whos -file batches.meta.mat
Variables in the file batches.meta.mat:
   Attr Name             Size                     Bytes  Class
   ==== ====             ====                     =====  =====
        label_names     10x1                         50  cell
Total is 10 elements using 50 bytes
octave:2> load('batches.meta.mat')
octave:3> label_names
label_names =
{
  [1,1] = airplane
  [2,1] = automobile
  [3,1] = bird
  [4,1] = cat
  [5,1] = deer
  [6,1] = dog
  [7,1] = frog
  [8,1] = horse
  [9,1] = ship
  [10,1] = truck
}

(2) data_batch_1.mat ~ data_batch_5.mat

学習用の画像+ラベルのセットが10,000個×5ファイルの全60,000個が格納されている。
「3072」は1画像のバイトサイズで、内訳は 32pixel x 32pixel x RGB3色 x uint8 = 3,072[bytes] で計算できる。

octave:5> whos -file data_batch_1.mat
Variables in the file data_batch_1.mat:
   Attr Name             Size                     Bytes  Class
   ==== ====             ====                     =====  =====
        batch_label      1x21                        21  char
        data         10000x3072                30720000  uint8
        labels       10000x1                      10000  uint8
Total is 30730021 elements using 30730021 bytes
octave:6> load('data_batch_1.mat')
octave:7> batch_label
batch_label = training batch 1 of 5

(3) test_batch.mat

テスト用の画像+ラベルのセットが10,000個格納されている。

octave:10> whos -file test_batch.mat
Variables in the file test_batch.mat:
   Attr Name             Size                     Bytes  Class
   ==== ====             ====                     =====  =====
        batch_label      1x20                        20  char
        data         10000x3072                30720000  uint8
        labels       10000x1                      10000  uint8
Total is 30730020 elements using 30730020 bytes
octave:11> load('test_batch.mat')
octave:12> batch_label
batch_label = testing batch 1 of 1

3. CIFAR10画像セットを見てみる

どんな画像が入っているのか?実際に画像表示してみる。

画像化して眺める手順は (2)MNIST学習画像を見てみる と同じだ。
試しに学習画像の最初の1個をOctave上で画像化してみる。

octave:1> load('data_batch_1.mat')
octave:2> img = data(1,:);
octave:3> size(img)
ans =
      1   3072
octave:4> img=reshape(img(:),32,32,3);
octave:5> size(img)
ans =
   32   32    3
octave:6> imshow(uint8(permute(img,[2 1 3])))

https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_03.png

なんだ???

よくわからないので先頭データのラベルを見てみる。

octave:8> labels(1)
ans = 6

ラベル番号が6番なので「[6,1] = dog」のようだ。
この画像が犬なのか?

CIFAR10のホームページを見ると、ラベル番号は0~9を付与すると書かれている。

先ほど見た label_names変数の値は 1始まりだった。ラベル番号は 0始まりの6なので、1始まりに直せば 7だから「[7,1] = frog」が正しいラベルだ。
ややこしい…

続けていくつか見てみる。

(2)#10 truck
https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_04.png
(3)#10 truck
https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_05.png
(4)#5 deer
https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_06.png
(5)#2 automobile
https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_07.png
(6)#2 automobile
https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_08.png
(7)#3 bird
https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_09.png
(8)#8 horse
https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_10.png
(9)#9 ship
https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_11.png
(10)#4 cat
https://www.dogrow.net/nnet/wp-content/uploads/2013/10/20131011_12.png

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です