Stanford Cars数据集的下载与使用

本文详细介绍StanfordCars数据集的下载与使用方法,包括如何通过官网或百度网盘获取数据集,使用axel工具进行高效下载,以及如何解析matlab格式的标签文件,提取类别名、图片名等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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()

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

Stanford Cars数据集转换为YOLO格式需要进行以下步骤: 1. 下载数据集:首先,您需要从Stanford Cars数据集的官方网站下载图像和标注文件。您可以在[这里](https://ai.stanford.edu/~jkrause/cars/car_dataset.html)找到该数据集。 2. 解压文件:将下载的文件解压到一个文件夹中。 3. 创建目录结构:在解压后的文件夹中,创建以下目录结构: - images:用于存放原始图像 - labels:用于存放YOLO格式的标签文件(每个图像对应一个标签文件) 4. 转换标注:打开标注文件(例如devkit/cars_train_annos.mat)并读取其中的标注信息。对于每个图像,提取其边界框的坐标、类别和颜色信息。 5. 转换为YOLO格式:将提取的边界框坐标和类别转换为YOLO格式。YOLO格式的标签文件应包含以下信息: - 第一列:类别索引(从0开始) - 第二列:边界框中心点的x坐标(相对于图像宽度) - 第三列:边界框中心点的y坐标(相对于图像高度) - 第四列:边界框的宽度(相对于图像宽度) - 第五列:边界框的高度(相对于图像高度) 6. 保存标签文件:将转换后的标签信息保存为图像文件对应的同名txt文件,并将其放入labels目录中。 完成上述步骤后,您就可以使用YOLO框架来训练和测试转换后的数据集了。请注意,这只是一种将Stanford Cars数据集转换为YOLO格式的方法,您可能需要根据具体情况进行适当的修改。
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值