lynxeyedの電音鍵盤

MBDとFPGAと車載で使うデバイスの備忘録

MATLABでCIFAR-10のファイル読み込み(だけ)してみる

中身のない内容なんだけれども、いざ使う時に忘れるので覚書きです。
物体認識用のデータ・セットに使われるThe CIFAR-10 datasetをMATLABで表示する方法です。

www.cs.toronto.edu

準備

  1. MATLAB用のデータセット「CIFAR-10 Matlab version」をダウンロードし、展開
  2. cifar-10-batches-matというフォルダが解凍される
  3. フォルダごとMATLAB作業ディレクトリにコピー

中身

  • cifar-10-batches-mat

各データセットは32x32の画像が10000点含まれています。

読み込みと表示

画像を10000点分全て読み込み、ランダムな番号の画像ファイルと紐づく正解ラベルを表示します。

clear;
close all;
tic;
load('./cifar-10-batches-mat/data_batch_1.mat'); % これは1~5,test_batchどれでも良い
load('./cifar-10-batches-mat/batches.meta.mat');
imData = uint8(zeros(10000, 32, 32, 3));
dataColor = uint8(zeros(32, 32, 3));

%% 画像をロードする
for i = 1:10000

    data1 = data(i,:);
    dataColor = reshape(data1, [32, 32, 3]);
    
    imData(i,:,:,:) = dataColor;
end

%% ランダムに画像とタイトルを表示してみる
selectNo = randi(10000);
lab = labels(selectNo);
ti = label_names(lab + 1); % MATLABは1スタートなので+1する
IM1 = reshape(imData(selectNo,:,:,:),[32 32 3]);

figure(1);imshow(imrotate(IM1,270),'InitialMagnification',500);title(ti);

toc;

実行結果


f:id:Lynx-EyED:20210324204145p:plain
なるほど...?
32x32 ピクセルなんで仕方ないですね。

さてCNNのコード書くか〜