cars196数据集按照类别Label进行划分

本文介绍如何将Stanford汽车数据集的16185张图片按类别Label进行归类,利用Python代码读取'cars_annos.mat'文件中的图片名称和类别信息,创建相应目录并移动图片至对应类别下。
部署运行你感兴趣的模型镜像

数据集下载地址:
https://ai.stanford.edu/~jkrause/cars/car_dataset.html
数据集中一共包含16185张不同型号的汽车图片,当用于细分类任务时,训练集中有8144张图片,测试集为8041张图片。当用于度量学习任务时,通常前98类作为训练集,后98类作为测试集。

需求: 将数据集按照类别Label进行归类,方便后续使用。

官网中有两个版本的数据集,旧版本中没有测试集的标注,根据我们的需求,我们要下载的是新版本(Update那一行)的图片和标注。在这里插入图片描述
待移动的图片位于/car_ims/
在这里插入图片描述
图片的label等属性位于cars_annos.mat文件中。

想要实现的效果为根据图片Label对数据集中的图片进行归类:
在这里插入图片描述

代码:

import scipy.io
import os
import re
import shutil

source = './'
target = './cars196/'
data = scipy.io.loadmat('cars_annos.mat')
class_names = data['class_names']
annotations = data['annotations']
#print(annotations)

for i in range(annotations.shape[1]):
    name = str(annotations[0, i][0])[2:-2]#提取出图片名字
    image_path = os.path.join(source, name)
    print(image_path)
    clas = int(annotations[0, i][5])#提取出图片的类别属性
    class_name = str(class_names[0, clas-1][0]).replace(' ', '_')
    class_name = class_name.replace('/', '')#避免路径出错
    target_path = os.path.join(target, class_name)
    if not os.path.isdir(target_path):
        os.mkdir(target_path)
    print(target_path)
    shutil.copy(image_path, target_path)

# print(class_names.shape)
# print(class_names[0, 0][0])
# print(class_names[0, 0])
#
#
# for j in range(class_names.shape[1]):
#     class_name = str(class_names[0, j][0]).replace(' ', '_')
#     print(class_name)

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

用于开发,评估和比较学习方法的数据收集 066c695f141f27ea881df8af5a827c99.jpg 7fe25c5c90c4f447fe3fa10adf4232cd.jpg 6739b35e5a470fdb37862fb2bc5251ef.jpg c1adb1337eba00e584e3704af99d291c.jpg cf042dd7addc3894b78063b90016ec03.jpg 1b9471eefb6f3951f127beb69ef5a584.jpg fb1e25b446c8174cc443c366a1d0e38b.jpg 5bbe28f7cf6ee6453caad79db64ba7c0.jpg 5d7514af404266c3f92efcee8662f640.jpg 9e37ae8bf11600a30afcd592d73a4be1.jpg 63f9f7dc8298317284bf7dbf2074b3ba.jpg 356d8576837338e82cf363d2dc7747c0.jpg 45242c276cd516adb93561503a2f6ed7.jpg a67cad73fd03d2d5cef3a81bf78ed0a3.jpg b2de8a56b1fbbee32afbe72d823f8a5a.jpg eafaa5fd38df370046f8b185488e7fa5.jpg f81a39ee4b311be9eb5aac2ba1cbaffd.jpg 2aeb7856890c8dc0e0b311077d386690.jpg 2b96ccd24db32c2c47581afde8d42722.jpg 7a9027a09a9149fd901f97630a052b29.jpg 395e11b1214a0308f6a6e7834cebc379.jpg 508bc40d51bc31a77507595e528155e9.jpg 7457b846fc17229e61aea790bab3c88a.jpg b9ea06b2cdf8e72dca0f415d1525d7d5.jpg b52fbc88bc83acea1b0d374ccb460178.jpg b62c7d59cd74dc1bc2eaa1b951cfd0a7.jpg f550965cf9cc6f07184923a32d728e94.jpg ff9974e9177a989100fae4b8c505cad5.jpg 7be124ec367694c948c57d1e09181775.jpg 050aab9a8a91dca8ed1e518ebf42ee0d.jpg 253df8c5a6ed19d8dcf26ea58c40094d.jpg 802716d5a05096b02621ad4eabf57812.jpg 62352815acbebb5bc9eebaf534d8f434.jpg a2fec0c55e7c73d27fac134b9074846e.jpg b8ebfa32f6ba5c7c50b63bc1c0108361.jpg b00473a9f517bbfc5923c95288b40ff2.jpg bec04a0e1662c9c23365eb3a9e12a1d7.jpg cd0e83983e36613ec5b154d2d6ddb0d1.jpg d6086634ce334fe82400a173f0028306.jpg e7299b9187f09e190127873fb0725e1c.jpg f4f7ec6332cab9c706e12fa8aaed4a6c.jpg ff1778ed14e5ac5be5217d410841750d.jpg 1fa59ad4144c5f668e92b8ab6a0043f8.jpg 3b6365d6ab144b660c0b477442782fa5.jpg 6f93c871d9b1469bec963639ea58fe82.jpg 84c8aadbabbeb753042593faffa4e376.jpg 90d9a803b25a78b4dc2dcdf4c85a4b70.jpg 386f1418e664eab461ea243e85c19d3c.jpg 627fcb8c133d1e30c067d31a92a79f02.jpg 766f0049a40eea217328d2975312d3e0.jpg 8189cbaa92299ea536be3ad23ddf1d00.jpg 0967287cbb2b14ed9dc1ec6a1a53b21d.jpg 093
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值