赞
踩
Stanford Cars数据集主要用于细粒度分类任务。数据集中一共包含16185张不同型号的汽车图片,其中8144张为训练集,8041张为测试集。
官网下载链接:
http://ai.stanford.edu/~jkrause/cars/car_dataset.html
如果链接失效,从百度网盘下载,链接: https://pan.baidu.com/s/1zfCC6jeZpmrsH4cXaZLquQ?pwd=6666 提取码: 6666
官网中有两个版本的数据集,在旧版本中没有测试集的标注,我们要下载的是新版本(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()
得到的结果为以下样式:
第174行中,有个斜杠,如果你要用到标签名文件,将斜杠改为别的符号,比如下划线,不然读取文件可能会报错。
如: 174 Ram_C/V_Cargo_Van_Minivan_2012
改: 174 Ram_C_V_Cargo_Van_Minivan_2012
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()
得到的结果为以下样式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。