0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

你需要知道的11个Torchvision计算机视觉数据集

新机器视觉 来源:新机器视觉 2023-04-10 16:31 次阅读

计算机视觉是一个显著增长的领域,有许多实际应用,从自动驾驶汽车到面部识别系统。该领域的主要挑战之一是获得高质量的数据集来训练机器学习模型。

Torchvision作为Pytorch的图形库,一直服务于PyTorch深度学习框架,主要用于构建计算机视觉模型。

为了解决这一挑战,Torchvision提供了访问预先构建的数据集、模型和专门为计算机视觉任务设计的转换。此外,Torchvision还支持CPUGPU的加速,使其成为开发计算机视觉应用程序的灵活且强大的工具。

什么是“Torchvision数据集”?

Torchvision数据集是计算机视觉中常用的用于开发和测试机器学习模型的流行数据集集合。运用Torchvision数据集,开发人员可以在一系列任务上训练和测试他们的机器学习模型,例如,图像分类、对象检测和分割。数据集还经过预处理、标记并组织成易于加载和使用的格式。

据了解,Torchvision包由流行的数据集、模型体系结构和通用的计算机视觉图像转换组成。简单地说就是“常用数据集+常见模型+常见图像增强”方法。

Torchvision中的数据集共有11种:MNIST、CIFAR-10等,下面具体说说。

Torchvision中的11种数据集

MNIST手写数字数据库

这个Torchvision数据集在机器学习和计算机视觉领域中非常流行和广泛应用。它由7万张手写数字0-9的灰度图像组成。其中,6万张用于训练,1万张用于测试。每张图像的大小为28×28像素,并有相应的标签表示它所代表的数字。

要访问此数据集,您可以直接从Kaggle下载或使用torchvision加载数据集:

importtorchvision.datasetsasdatasets#Loadthetrainingdataset
train_dataset=datasets.MNIST(root='data/',train=True,transform=None,download=True)#Loadthetestingdataset
test_dataset=datasets.MNIST(root='data/',train=False,transform=None,download=True)


左右滑动查看完整代码

CIFAR-10(广泛使用的标准数据集)

CIFAR-10数据集由6万张32×32彩色图像组成,分为10个类别,每个类别有6000张图像,总共有5万张训练图像和1万张测试图像。这些图像又分为5个训练批次和一个测试批次,每个批次有1万张图像。数据集可以从Kaggle下载。

importtorchimporttorchvisionimporttorchvision.transformsastransforms

transform=transforms.Compose(
[transforms.ToTensor(),
transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))])

trainset=torchvision.datasets.CIFAR10(root='./data',train=True,
download=True,transform=transform)
testset=torchvision.datasets.CIFAR10(root='./data',train=False,
download=True,transform=transform)

trainloader=torch.utils.data.DataLoader(trainset,batch_size=4,
shuffle=True,num_workers=2)
testloader=torch.utils.data.DataLoader(testset,batch_size=4,
shuffle=False,num_workers=2)
左右滑动查看完整代码

在此提醒一句,您可以根据需要调整数据加载器的批处理大小和工作进程的数量。

CIFAR-100(广泛使用的标准数据集)

CIFAR-100数据集在100个类中有60,000张(50,000张训练图像和10,000张测试图像)32×32的彩色图像。每个类有600张图像。这100个类被分成20个超类,用一个细标签表示它的类,另一个粗标签表示它所属的超类。

importtorchimporttorchvisionimporttorchvision.transformsastransforms

importtorchvision.datasetsasdatasetsimporttorchvision.transformsastransforms#Definetransformtonormalizedata
transform=transforms.Compose([
transforms.ToTensor(),
transforms.Normalize(mean=[0.5,0.5,0.5],std=[0.5,0.5,0.5])])
#LoadCIFAR-100trainandtestdatasets
trainset=datasets.CIFAR100(root='./data',train=True,download=True,transform=transform)
testset=datasets.CIFAR100(root='./data',train=False,download=True,transform=transform)
#Createdataloadersfortrainandtestdatasets
trainloader=torch.utils.data.DataLoader(trainset,batch_size=64,shuffle=True)
testloader=torch.utils.data.DataLoader(testset,batch_size=64,shuffle=False)
左右滑动查看完整代码

ImageNet数据集

Torchvision中的ImageNet数据集包含大约120万张训练图像,5万张验证图像和10万张测试图像。数据集中的每张图像都被标记为1000个类别中的一个,如“猫”、“狗”、“汽车”、“飞机”等。

importtorchvision.datasetsasdatasetsimporttorchvision.transformsastransforms
#SetthepathtotheImageNetdatasetonyourmachine
data_path="/path/to/imagenet"
#CreatetheImageNetdatasetobjectwithcustomoptions
imagenet_train=datasets.ImageNet(
root=data_path,
split='train',
transform=transforms.Compose([
transforms.Resize(256),
transforms.RandomCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize(
mean=[0.485,0.456,0.406],
std=[0.229,0.224,0.225])
]),
download=False)

imagenet_val=datasets.ImageNet(
root=data_path,
split='val',
transform=transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(
mean=[0.485,0.456,0.406],
std=[0.229,0.224,0.225])
]),
download=False)
#Printthenumberofimagesinthetrainingandvalidationsetsprint("Numberofimagesinthetrainingset:",len(imagenet_train))print("Numberofimagesinthevalidationset:",len(imagenet_val))
左右滑动查看完整代码

MSCoco数据集

Microsoft Common Objects in Context(MS Coco)数据集包含32.8万张日常物体和人类的高质量视觉图像,通常用作实时物体检测中比较算法性能的标准。

Fashion-MNIST数据集

时尚MNIST数据集是由Zalando Research创建的,作为原始MNIST数据集的替代品。Fashion MNIST数据集由70000张服装灰度图像(训练集60000张,测试集10000张)组成。

图片大小为28×28像素,代表10种不同类别的服装,包括:t恤/上衣、裤子、套头衫、连衣裙、外套、凉鞋、衬衫、运动鞋、包和短靴。它类似于原始的MNIST数据集,但由于服装项目的复杂性和多样性,分类任务更具挑战性。这个Torchvision数据集可以从Kaggle下载。

importtorchimporttorchvisionimporttorchvision.transformsastransforms
#Definetransformations
transform=transforms.Compose(
[transforms.ToTensor(),
transforms.Normalize((0.5,),(0.5,))])#Loadthedataset
trainset=torchvision.datasets.FashionMNIST(root='./data',train=True,
download=True,transform=transform)

testset=torchvision.datasets.FashionMNIST(root='./data',train=False,
download=True,transform=transform)
#Createdataloaders
trainloader=torch.utils.data.DataLoader(trainset,batch_size=4,
shuffle=True,num_workers=2)

testloader=torch.utils.data.DataLoader(testset,batch_size=4,
shuffle=False,num_workers=2)
左右滑动查看完整代码

SVHN数据集



SVHN(街景门牌号)数据集是一个来自谷歌街景图像的图像数据集,它由从街道级图像中截取的门牌号的裁剪图像组成。它包含所有门牌号及其包围框的完整格式和仅包含门牌号的裁剪格式。完整格式通常用于对象检测任务,而裁剪格式通常用于分类任务。


SVHN数据集也包含在Torchvision包中,它包含了73,257张用于训练的图像、26,032张用于测试的图像和531,131张用于额外训练数据的额外图像。

importtorchvisionimporttorch
#Loadthetrainandtestsets
train_set=torchvision.datasets.SVHN(root='./data',split='train',download=True,transform=torchvision.transforms.ToTensor())
test_set=torchvision.datasets.SVHN(root='./data',split='test',download=True,transform=torchvision.transforms.ToTensor())
#Createdataloaders
train_loader=torch.utils.data.DataLoader(train_set,batch_size=64,shuffle=True)
test_loader=torch.utils.data.DataLoader(test_set,batch_size=64,shuffle=False)

左右滑动查看完整代码

STL-10数据集


STL-10数据集是一个图像识别数据集,由10个类组成,总共约6000+张图像。STL-10代表“图像识别标准训练和测试集-10类”,数据集中的10个类是:飞机、鸟、汽车、猫、鹿、狗、马、猴子、船、卡车。您可以直接从Kaggle下载数据集。

importtorchvision.datasetsasdatasetsimporttorchvision.transformsastransforms
#Definethetransformationtoapplytothedata
transform=transforms.Compose([
transforms.ToTensor(),
#ConvertPILimagetoPyTorchtensor
transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))#Normalizethedata])
#LoadtheSTL-10dataset
train_dataset=datasets.STL10(root='./data',split='train',download=True,transform=transform)
test_dataset=datasets.STL10(root='./data',split='test',download=True,transform=transform)

左右滑动查看完整代码

CelebA数据集




这个Torchvision数据集是一个流行的大规模面部属性数据集,包含超过20万张名人图像。2015年,香港中文大学的研究人员首次发布了这一数据。CelebA中的图像包含40个面部属性,如,年龄、头发颜色、面部表情和性别。


此外,这些图片是从互联网上检索到的,涵盖了广泛的面部外观,包括不同的种族、年龄和性别。每个图像中面部位置的边界框注释,以及眼睛、鼻子和嘴巴的5个地标点。

importtorchvision.datasetsasdatasetsimporttorchvision.transformsastransforms
transform=transforms.Compose([
transforms.CenterCrop(178),
transforms.Resize(128),
transforms.ToTensor(),
transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))])
celeba_dataset=datasets.CelebA(root='./data',split='train',transform=transform,download=True)

左右滑动查看完整代码

PASCAL VOC数据集




VOC数据集(视觉对象类)于2005年作为PASCAL VOC挑战的一部分首次引入。该挑战旨在推进视觉识别的最新水平。它由20种不同类别的物体组成,包括:动物、交通工具和常见的家用物品。这些图像中的每一个都标注了图像中物体的位置分类。注释包括边界框和像素级分割掩码。
数据集分为两个主要集:训练集和验证集。

训练集包含大约5000张带有注释的图像,而验证集包含大约5000张没有注释的图像。此外,该数据集还包括一个包含大约10,000张图像的测试集,但该测试集的注释是不可公开的。

importtorchimporttorchvisionfromtorchvisionimporttransforms
#Definetransformationstoapplytotheimages
transform=transforms.Compose([
transforms.Resize((224,224)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485,0.456,0.406],std=[0.229,0.224,0.225])])
#Loadthetrainandvalidationdatasets
train_dataset=torchvision.datasets.VOCDetection(root='./data',year='2007',image_set='train',transform=transform)
val_dataset=torchvision.datasets.VOCDetection(root='./data',year='2007',image_set='val',transform=transform)#Createdataloaders
train_loader=torch.utils.data.DataLoader(train_dataset,batch_size=32,shuffle=True)
val_loader=torch.utils.data.DataLoader(val_dataset,batch_size=32,shuffle=False)

左右滑动查看完整代码

Places365数据集



Places365数据集是一个大型场景识别数据集,拥有超过180万张图像,涵盖365个场景类别。Places365标准数据集包含约180万张图像,而Places365挑战数据集包含5万张额外的验证图像,这些图像对识别模型更具挑战性。

importtorchimporttorchvisionfromtorchvisionimporttransforms
#Definetransformationstoapplytotheimages
transform=transforms.Compose([
transforms.Resize((224,224)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485,0.456,0.406],std=[0.229,0.224,0.225])])
#Loadthetrainandvalidationdatasets
train_dataset=torchvision.datasets.Places365(root='./data',split='train-standard',transform=transform)
val_dataset=torchvision.datasets.Places365(root='./data',split='val',transform=transform)#Createdataloaders
train_loader=torch.utils.data.DataLoader(train_dataset,batch_size=32,shuffle=True)
val_loader=torch.utils.data.DataLoader(val_dataset,batch_size=32,shuffle=False)

左右滑动查看完整代码

总结

总之,Torchvision数据集通常用于训练和评估机器学习模型,如卷积神经网络(CNNs)。这些模型通常用于计算机视觉应用,任何人都可以免费下载和使用。本文的主要图像是通过HackerNoon的AI稳定扩散模型生成的。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    27

    文章

    3808

    浏览量

    125069
  • 计算机
    +关注

    关注

    19

    文章

    6101

    浏览量

    82705
  • 数据库
    +关注

    关注

    7

    文章

    3150

    浏览量

    62827
  • 深度学习
    +关注

    关注

    73

    文章

    4935

    浏览量

    119504
  • pytorch
    +关注

    关注

    2

    文章

    717

    浏览量

    12623
收藏 人收藏

    评论

    相关推荐

    机器视觉计算机视觉的关系简述

    计算机视觉是一门独立的学科,有着30年左右的历史,图像处理、模式识别、人工智能技术为一体,着重服务于一幅或多幅图像的计算机分析。机器视觉相对于计算机视觉来说,则是一项比较新的新型技术,旨在为制造工业等
    发表于 05-13 14:57

    计算机视觉/深度学习领域常用数据汇总

    数据。与Imagenet数据对应的有一享誉全球的“ImageNet国际计算机视觉挑战赛(ILSVRC)”,以往一般是google、MSRA等大公司夺得冠军,今年(2016)ILSVRC2016中国
    发表于 08-29 10:36

    什么是计算机视觉看了就知道

    发表于 01-11 07:47

    用于计算机视觉训练的图像数据介绍

    计算机视觉训练的图像
    发表于 02-26 07:35

    计算机有哪些功能

    计算机体系结构讲的是计算机有哪些功能(包括指令数据类型、存储器寻址技术、I/O机理等等),是抽象的;计算机组成原理讲的是计算机功能是如何实现的,是具体的。例如:一台机器是否具备乘法
    发表于 07-16 07:45

    深度学习与传统计算机视觉简介

    计算机视觉1.2 性能考量1.3 社区支持2 结论3 参考在计算机视觉领域中,不同的场景不同的应用程序需要不同的解决方案。在本文中,我们将快速回顾可用于在
    发表于 12-23 06:17

    机器学习和计算机视觉的前20图像数据

    计算机视觉使计算机能够理解图像和视频的内容。计算机视觉的目标是使人类视觉系统可以实现任务自动化。计算机视觉任务包括图像采集、图像处理和图像分析。图像数据可以采用不同的形式,例如视频序列,从多个角度的不同的摄像机查看图像或来自医疗扫描仪
    发表于 01-28 07:40 5次下载
    机器学习和<b>计算机</b><b>视觉</b>的前20<b>个</b>图像<b>数据</b><b>集</b>

    介绍深度学习在计算机视觉领域四大基本任务中的应用

    计算机视觉中分类、定位、检测、和分割需要知道的一切。
    的头像 发表于 01-24 16:25 1w次阅读

    计算机视觉与机器视觉区别

    计算机视觉”,是指用计算机实现人的视觉功能,对客观世界的三维场景的感知、识别和理解。计算机视觉是一处于指示前沿的领域。我们认为计算机视觉,或简称为“视觉”,是一项事业,它与研究人类或动物的视觉是不同的
    的头像 发表于 12-08 09:27 1.1w次阅读

    真的了解什么是计算机视觉吗?

    计算机视觉和机器视觉有何区别?
    的头像 发表于 07-10 14:35 9690次阅读
    <b>你</b>真的了解什么是<b>计算机</b><b>视觉</b>吗?

    用于计算机视觉训练的图像数据

    数据。   用于计算机视觉训练的图像数据 Labelme:麻省理工学院计算机科学与人工智能实验室(CSAIL)创建的大型数据,包含187,240张图像、62,197条带注释的图像和658,992张
    的头像 发表于 12-31 09:33 1844次阅读

    浅谈计算机视觉的无人车感知

    数据 (5)路面与车道检测数据 3、计算机视觉能解决的问题: (1)物体的识别与跟踪:识别(深度学习):
    的头像 发表于 03-24 15:23 1428次阅读

    计算机视觉中的专业术语知道哪些?

    计算机视觉中存在很多的专业术语,如先验知识,语义信息,embedding,head,neck等。
    的头像 发表于 06-26 11:22 1917次阅读

    如何区分计算机视觉与其相关领域 计算机视觉运行原理

    计算机视觉算法并非魔法。它们需要数据才能运作,输入数据的质量决定其性能。有多种不同方法和来源可供收集合适数据,这取决于的目标。无论如何,拥有的输入数据越多,计算机视觉模型性能优秀的可能性越大。
    发表于 11-08 10:12 284次阅读