Stanford Cars数据集的下载与使用

本篇博客主要介绍Stanford Cars数据集的下载与使用

Stanford Cars数据集主要用于细粒度分类任务。数据集中一共包含16185张不同型号的汽车图片,其中8144张为训练集,8041张为测试集。

官网下载链接:
http://ai.stanford.edu/~jkrause/cars/car_dataset.html
在这里插入图片描述
官网中有两个版本的数据集,在旧版本中没有测试集的标注,我们要下载的是新版本(Update那一行)的图片和标注。
数据集大小大概为2G。如果是在linux系统下下载,建议使用axel多线程下载工具,不仅速度有所提升,而且支持断点下载(下载过程中断后,可以重新执行命令继续从中断位置下载)。axel的下载使用可以参考这条博客
在安装好axel工具后,若下载该汽车数据集,请执行以下命令。
下载图片:

axel -n 10 http://imagenet.stanford.edu/internal/car196/car_ims.tgz

下载标签

axel -n 10 http://imagenet.stanford.edu/internal/car196/cars_annos.mat

标签是用matlab格式保存的,名为:cars_annos.mat,需要自行提取其中的信息。

1)提取类别名:

import scipy.io
 
data = scipy.io.loadmat('cars_annos.mat')
class_names = data['class_names']
f_class = open('./label_map.txt','w')
 
num = 1
for j in range(class_names.shape[1]):
    class_name = str(class_names[0,j][0]).replace(' ','_')
    print(num,class_name)
    f_class.write( str(num) + ' ' + class_name + '\n')
    num = num + 1
f_class.close()

得到的结果为以下样式:
在这里插入图片描述

2)提取 序号, 图片名, 类别, 属于测试集还是训练集(0,1表示)

import scipy.io
 
data = scipy.io.loadmat('cars_annos.mat')
annotations = data['annotations']
f_train = open('./mat2txt.txt','w')

num = 1
for i in range(annotations.shape[1]):
    name = str(annotations[0,i][0])[2:-2]
    test  = int(annotations[0,i][6])
    clas = int(annotations[0,i][5])

    name = str(name)
    clas = str(clas)
    test = str(test)
    f_train.write(str(num) + ' ' + name + ' ' + clas + ' ' + test+'\n')
    num = num + 1
 
f_train.close()

得到的结果为以下样式
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41735859/article/details/102986026
今日推荐