前提知識
CIFAR-10とは
データセットCIFAR-10(シーファーテン)は、機械学習のうち画像処理に関わるタスクのトレーニングに使用される画像のコレクションです。1カテゴリあたり6,000枚、全部で10カテゴリ合計60,000枚の画像で構成されています。一つ一つの画像データは、サイズが32×32ピクセルで、1つのピクセルはそれぞれRGB3チャンネルの、符号なし8ビット整数値(0~255)データから成ります。
CIFAR-10本家URL:https://www.cs.toronto.edu/~kriz/cifar.html
Kerasとは
Kerasは、プログラミング言語Pythonで書かれた、Googleの深層学習ライブラリTensorFlow上で実行可能なニューラルネットワークのためのライブラリです。
Keras URL : https://keras.io/ja/
Numpyとは
Numpy(ナンパイ)は、Pythonで線形代数(ベクトル、行列、テンソル)を扱うためのライブラリです。今回のコードではCIFAR-10のデータ自体がNumpyの配列になっています。
Numpy : https://numpy.org/
Matplotlibとは
Matplotlib(マットプロットリブ)は、Pythonの描画を司るライブラリです。コードではCIFAR-10の画像を表示するために使っています。
Matplotlib : https://matplotlib.org/stable/index.html
Google Colaboratoryで表示
概要
今回は、コレクションCIFAR-10の中にある画像を自由に表示できるコードを記載します。コードの中のインデックス変数「index」の値を変えると、CIFAR-10の様々な画像を日本語ラベル付きで見ることができるようにしました。今後はこれらの画像データに対して、機械学習の仕組みを使って、様々な処理を加えていこうと思います。
以下のコードはGoogle Colaboratory上での実行を想定しています。
ライブラリのインポートとMatplotlibの日本語化
まずは、Keras、Numpy、Matplotlibのライブラリをそれぞれインポートします。それから、Matplotlibを日本語に対応させます。
# Kerasをインポート
import keras
# Numpyをインポート
import numpy as np
# Matplotlibをインポート
import matplotlib.pyplot as plt
# Matplotlibの日本語化
!pip install japanize-matplotlib
import japanize_matplotlib
以下は、Google Colaboratoryで実行した様子です。
CIFAR-10のロードと日本語のラベル付け
次はCIFAR-10をロードして、その画像に日本語でラベル付けをします。
# CIFAR-10のロード
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
# 日本語でラベル付け
cifar10_labels = np.array(['飛行機','クルマ','トリ','ネコ','シカ','イヌ','カエル','ウマ','船','トラック'])
以下は、Google Colaboratoryで実行した様子です。
画像の表示数と最初の画像番号を指定
以下のコードで画像番号を「index = 0」 として実行すると、CIFAR-10の0番目から画像が表示されます。(Pythonでは、番号は0から始まります!)
# 画像の表示数: rows(行数), cols(列数)
rows = 2
cols = 10
# 画像番号[0〜(49999-n)の値を入れてください]
index = 0
# 画像を表示
plt.figure(figsize=(20, 5))
for i in range(rows*cols):
ax = plt.subplot(rows, cols, i + 1)
plt.imshow(x_train[index+i])
plt.title(cifar10_labels[y_train[index+i][0]])
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
plt.show()
以下は、Google Colaboratoryで実行した様子です。
CIFAR-10の最初の画像はカエルなんですね。
また例えば「index = 100」にすると、以下のように表示されます。
では、色々な番号を入れてみて、CIFAR-10の様々な画像を見てみて下さい!
コメント