Search

CIFAR-10:物体カラー写真(乗り物や動物など)の画像データセット - @IT

「AI・機械学習のデータセット辞典」のインデックス

連載目次

データセット解説

 CIFAR-10データセット(Canadian Institute For Advanced Research)(以下、CIFAR-10)は、

  • ラベル「0」: airplane(飛行機)
  • ラベル「1」: automobile(自動車)
  • ラベル「2」: bird(鳥)
  • ラベル「3」: cat(猫)
  • ラベル「4」: deer(鹿)
  • ラベル「5」: dog(犬)
  • ラベル「6」: frog(カエル)
  • ラベル「7」: horse(馬)
  • ラベル「8」: ship(船)
  • ラベル「9」: truck(トラック)

という10種類の「物体カラー写真」(乗り物や動物など)の画像データセットである(図1、Alex Krizhevsky氏/Vinod Nair氏/Geoffrey Hinton氏によって、オブジェクト認識用画像データセット「80 Million Tiny Images」から収集されて作成されたサブセットである)。基本的に自由に使用できる(ライセンスは指定されていない。著作権は放棄していないものと考えられる)。

図1 CIFAR-10に含まれる「乗り物や動物などの画像」の例 図1 CIFAR-10に含まれる「乗り物や動物などの画像」の例
データセットの配布元: 「CIFAR-10 and CIFAR-100 datasets」。ライセンス指定なし。

 CIFAR-10は、主に画像認識を目的としたディープラーニング/機械学習の研究や初心者向けチュートリアルで使われている。CIFAR-10は上記の通り10クラス(種類)となっており手軽に扱えるが、より複雑な内容として100クラス版であるCIFAR-100(後日解説)も提供されている。

 CIFAR-10データセット全体は、

  • 5万枚の訓練データ用(画像とラベル)
  • 1万枚のテストデータ用(画像とラベル)
  • 合計6万枚

で構成される(「ラベル」=正解を示す教師データ)。また、図2にも示すように、各画像のフォーマットは、

  • 24bit RGBフルカラー画像: RGB(赤色/緑色/青色)3色の組み合わせで、それぞれ「0」〜「255」の256段階
  • 32×高さ32ピクセル: 1つ分のデータが基本的に(3, 32, 32)もしくは(32, 32, 3)(=計3072要素)という多次元配列の形状となっており、最初もしくは最後の次元にある3要素がRGB値

となっている(「ピクセル」=画素のこと。RGB形式であるため、簡単に画像化できる)。

図2 CIFAR-10に含まれる画像データの内容(32行×32列にRGBの3要素が入っている例) 図2 CIFAR-10に含まれる画像データの内容(32行×32列にRGBの3要素が入っている例)

利用方法

 実際にCIFAR-10を使うには、scikit-learn/Keras/TensorFlow/PyTorchといった各ライブラリが提供する機能を利用することをお勧めする。ムダな作業を省いて、効率的に使えるため。

 以下に、それぞれのライブラリで「どのようなコードを書くとCIFAR-10が使えるか」の典型的なコードを簡単に示しておく(コードの詳細は解説しない)。基本的に各ライブラリは、CIFAR-10データセットを自動的にダウンロードして使いやすい形にロードしてくれる機能を提供している。

scikit-learn

# !pip install scikit-learn  # ライブラリ「scikit-learn」をインストール

from sklearn.datasets import fetch_openml

cifar10 = fetch_openml('CIFAR_10')

リスト1 scikit-learnでCIFAR-10を利用する基本的なコード


 sklearn.datasets.fetch_openml()関数(EXPERIMENTAL、つまり実験段階のAPI)を呼び出せばよい。この関数は、OpenML.orgからデータセットをフェッチ(=取得)するためのもので、リスト1では「OpenML CIFAR_10」をフェッチしている。

TensorFlow(tf.keras)/Keras

# !pip install tensorflow  # ライブラリ「TensorFlow」をインストール
# !pip install keras  # tf.kerasの場合は不要だが、Kerasを使う場合はライブラリ「Keras」をインストール

from tensorflow.keras.datasets import cifar10  # tf.kerasを使う場合(通常)
#from keras.datasets import cifar10  # tf.kerasではなく、Kerasを使う必要がある場合はこちらを有効にする

(train_images, train_labels), (test_images, test_labels) = cifar10.load_data()

リスト2 TensorFlow(tf.keras)/KerasでCIFAR-10を利用する基本的なコード


 tf.keras.datasets.cifar10.load_data()関数を呼び出せばよい。

TensorFlow Datasets

# !pip install tensorflow-datasets  # ライブラリ「TensorFlow Datasets」をインストール

import tensorflow_datasets as tfds

cifar10_train = tfds.load(name="cifar10", split="train")

リスト3 TensorFlow DatasetsでCIFAR-10を利用する基本的なコード


 TensorFlow Datasetsで使用できるデータセットは、こちらのページにまとめられており、tensorflow_datasetsモジュール(=tfds)のtfds.load()関数から利用できる。

PyTorch

# !pip install torch torchvision  # ライブラリ「PyTorch」をインストール

import torch
import torchvision

cifar10_data = torchvision.datasets. CIFAR10(
    './cifar-10', train=True, download=True,
    transform=torchvision.transforms.ToTensor())

data_loader = torch.utils.data.DataLoader(cifar10_data,  batch_size=4,  shuffle=True)

リスト4 PyTorchでCIFAR-10を利用する基本的なコード


 torchvision.datasetsクラスのコンストラクター(厳密には__init__関数)でデータセットのオブジェクトを生成してデータをダウンロードし、torch.utils.data.DataLoaderクラスのコンストラクターでデータローダーのオブジェクトを生成してデータをロードする。

ライブラリ機能を活用しない場合

 上記のようなライブラリを使わずに手動でCIFAR-10データセットを利用する場合は、CIFAR-10の公式ページ上にある、

  • CIFAR-10 Pythonバージョン
  • CIFAR-10 MATLABバージョン
  • CIFAR-10 バイナリバージョン(Cプログラムに最適)

という3つのファイルから、目的に合致するものをダウンロードすればよい。各ファイルの仕様やデータのロード方法については、公式ページを確認してほしい。

「AI・機械学習のデータセット辞典」のインデックス

AI・機械学習のデータセット辞典

Copyright© Digital Advantage Corp. All Rights Reserved.

Let's block ads! (Why?)



"乗り物" - Google ニュース
June 10, 2020 at 03:00AM
https://ift.tt/3cMwUgX

CIFAR-10:物体カラー写真(乗り物や動物など)の画像データセット - @IT
"乗り物" - Google ニュース
https://ift.tt/389cQng
Shoes Man Tutorial
Pos News Update
Meme Update
Korean Entertainment News
Japan News Update

Bagikan Berita Ini

0 Response to "CIFAR-10:物体カラー写真(乗り物や動物など)の画像データセット - @IT"

Post a Comment

Powered by Blogger.