深度学习有哪些经典数据集?

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达8ffdc1c8c93f72bb26ae8e62e28c70bf.png

     很多朋友在学习了神经网络和深度学习之后,早已迫不及待要开始动手实战了。第一个遇到的问题通常就是数据。作为个人学习和实验来说,很难获得像工业界那样较高质量的贴近实际应用的大量数据集,这时候一些公开数据集往往就成了大家通往AI路上的反复摩擦的对象。

     深度学习(CV方向)的经典数据集包括MNIST手写数字数据集、Fashion MNIST数据集、CIFAR-10和CIFAR-100数据集、ILSVRC竞赛的ImageNet数据集、用于检测和分割的PASCAL VOC和COCO数据集等等。本节就分别对这些经典数据集进行一个概述。

MNIST

     MNIST(Mixed National Institute of Standards and Technology database)数据集大家可以说是耳熟能详。可以说是每个入门深度学习的人都会使用MNIST进行实验。作为领域内最早的一个大型数据集,MNIST于1998年由Yann LeCun等人设计构建。MNIST数据集包括60000个示例的训练集以及10000个示例的测试集,每个手写数字的大小均为28*28。

     MNIST数据集官网地址:

http://yann.lecun.com/exdb/mnist/

     MNIST在TensorFlow中可以直接导入使用。在TensorFlow2.0中使用示例如下:

from tensorflow.keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
print(x_train.shape, y_train.shape, x_test.shape, y_test.shape)
(60000, 28, 28) (60000,) (10000, 28, 28) (10000,)

     可视化展示0-9十个数字:

import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(12,8))


for i in range(10):
    plt.subplot(2,5,i+1)
    plt.xticks([])
    plt.yticks([])
    img = x_train[y_train == i][0].reshape(28, 28)
    plt.imshow(img, cmap=plt.cm.binary)

Fashion MNIST

     可能是见MNIST太烂大街了,德国的一家名为Zalando的时尚科技公司提供了Fashion-MNIST来作为MNIST数据集的替代数据集。Fashion MNIST包含了10种类别70000个不同时尚穿戴品的图像,整体数据结构上跟MNIST完全一致。每张图像的尺寸同样是28*28。

     Fashion MNIST数据集地址:

https://research.zalando.com/welcome/mission/research-projects/fashion-mnist/

     Fashion MNIST同样也可以在TensorFlow中直接导入。

from tensorflow.keras.datasets import fashion_mnist
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()
print(x_train.shape, y_train.shape, x_test.shape, y_test.shape)
(60000, 28, 28) (60000,) (10000, 28, 28) (10000,)

     可视化展示10种类别:

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
plt.figure(figsize=(12,8))


for i in range(10):
    plt.subplot(2,5,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    img = x_train[y_train == i][0].reshape(28, 28)
    plt.imshow(x_train[i], cmap=plt.cm.binary)
    plt.xlabel(class_names[y_train[i]])

CIFAR-10

     相较于MNIST和Fashion MNIST的灰度图像,CIFAR-10数据集由10个类的60000个32*32彩色图像组成,每个类有6000个图像。有50000个训练图像和10000个测试图像。

     CIFAR-10是由Hinton的学生Alex Krizhevsky(AlexNet的作者)和Ilya Sutskever 整理的一个用于识别普适物体的彩色图像数据集。一共包含10个类别的RGB彩色图片:飞机( airplane)、汽车(automobile)、鸟类(bird)、猫(cat)、鹿(deer)、狗(dog)、蛙类(frog)、马(horse)、船(ship)和卡车(truck)。

     CIFAR-10的官方地址如下:

https://www.cs.toronto.edu/~kriz/cifar.html

     CIFAR-10在TensorFlow中导入方式如下:

from tensorflow.keras.datasets import cifar10
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
print(x_train.shape, y_train.shape, x_test.shape, y_test.shape)
(50000, 32, 32, 3) (50000, 1) (10000, 32, 32, 3) (10000, 1)

     CIFAR-10的可视化展示如下:

plt.figure(figsize=(12,8))


for i in range(10):
    plt.subplot(2,5,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(x_train[i], cmap=plt.cm.binary)

CIFAR-100

     CIFAR-100可以看作是CIFAR-10的扩大版,CIFAR-100将类别扩大到100个类,每个类包含了600张图像,分别有500张训练图像和100张测试图像。CIFAR-100的100个类被分为20个大类,每个大类又有一定数量的小类,大类和大类之间区分度较高,但小类之间有些图像具有较高的相似度,这对于分类模型来说会更具挑战性。

     CIFAR-100数据集地址:

https://www.cs.toronto.edu/~kriz/cifar.html

     CIFAR-10在TensorFlow中导入方式如下:

from tensorflow.keras.datasets import cifar100
(x_train, y_train), (x_test, y_test) = cifar100.load_data()
print(x_train.shape, y_train.shape, x_test.shape, y_test.shape)
(50000, 32, 32, 3) (50000, 1) (10000, 32, 32, 3) (10000, 1)

     CIFAR-100的可视化展示如下:

plt.figure(figsize=(12,8))


for i in range(100):
    plt.subplot(10,10,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(x_train[i], cmap=plt.cm.binary)

ImageNet

     ImageNet图像数据集是在2009年由斯坦福的李飞飞主导的一个项目形成的一个数据集。李飞飞在CVPR2009上发表了一篇名为《ImageNet: A Large-Scale Hierarchical Image Database》的论文,之后从2010年开始基于ImageNet数据集的7届ILSVRC大赛,这使得ImageNet极大的推动了深度学习和计算机视觉的发展。ILSVRC大赛历届经典网络。

4fd6adb3acc2929150c844c249e8bcf2.png

     目前ImageNet中总共有14197122张图像,分为21841个类别,数据官网地址为:

http://www.image-net.org/

     ImageNet数据集示例:

31af69ed3c9c51e8e542ba1a9cdfd221.png

PASCAL VOC

     PASCAL VOC挑战赛(The PASCAL Visual Object Classes)是一个世界级的计算机视觉挑战赛, 其全称为Pattern Analysis, Statical Modeling and Computational Learning,从2005年开始到2012年结束,PASCAL VOC最初主要用于目标检测,很多经典的目标检测网络都是在PASCAL VOC上训练出来的,比如Fast R-CNN系列的各种网络。后来逐渐增加了分类、分割、动作识别和人体布局等五类比赛。

     目前PASCAL VOC主要分为VOC2007和VOC2012两个版本的数据集。VOC2007和

VOC2012的数据统计对比:

3cf8376972e2463d9f68fe246e8da893.png

     VOC数据集示例:

74b53c5c880b750f057ce4f69b421f54.png

     PASCAL VOC 数据集地址:

http://host.robots.ox.ac.uk/pascal/VOC/

COCO

     COCO数据集是微软在ImageNet和PASCAL VOC数据集标注上的基础上产生的,主要是用于图像分类、检测和分割等任务。COCO全称为Common Objects in Context,2014年微软在ECCV Workshops里发表了Microsoft COCO: Common Objects in Context。文章中说明了COCO数据集以场景理解为目标,主要从复杂的日常场景中截取,图像中的目标通过精确的分割进行位置的标定。COCO包括91个类别目标,其中有82个类别的数据量都超过了5000张。

     COCO数据集主页地址:

http://cocodataset.org/#home

     COCO数据集示例:

7678a9cd1d52f37d5b92536e599e3b85.png


     当然,笔者这里所列的主要都是视觉方向的通用数据集,关于NLP和其他细分领域的一些经典数据集,我们后续内容再做介绍。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

f4d09a2a749c71a6c197f17b54457aa1.png

4d270bb3eb95aab5179d31f633955068.png

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OpenCV是一个开源的计算机视觉库,可以用于图像和视频处理,包括数字识别。而印刷数字数据集是一个包含了大量印刷数字图片和标签的数据集,用于机器学习的训练和测试。 在OpenCV中,有几种方式可以处理印刷数字数据集。首先,可以使用OpenCV的图像处理功能来读取和操作印刷数字图片。通过使用OpenCV的函数,可以加载图像、调整大小、灰度化、二值化以及其他处理,以便进一步使用。 其次,可以使用OpenCV的机器学习模块或深度学习库来训练和测试模型。例如,可以使用OpenCV的K-最近邻算法(K-Nearest Neighbors)来对印刷数字进行分类。首先,需要将印刷数字图片和对应的标签加载到内存中,并对图片进行预处理。然后,可以使用KNN算法进行训练,生成模型。最后,可以使用测试集对模型进行评估和预测。 另外,OpenCV还提供了用于特征提取和匹配的功能,可以将特征提取出来,用于数字识别。例如,可以使用OpenCV的SIFT算法(尺度不变特征变换)来检测和描述印刷数字图片中的特征点,然后使用特征匹配算法找到相似的特征点,并进行数字识别。 总的来说,OpenCV对于印刷数字数据集的处理提供了很多便捷的功能和方法,可以方便地进行数字识别和机器学习训练。它是一个非常强大的计算机视觉库,被广泛应用于图像处理和数字识别领域。 ### 回答2: OpenCV是一个用于计算机视觉和图像处理的开源库。印刷数字数据集是用于训练和测试数字识别模型的数据集。在这个数据集中,包含了大量的印刷数字图片,每张图片上都有一个数字。这些图片是以图像的形式存储,并且每个数字都有一个对应的标签。 OpenCV提供了许多功能和算法,可以用于处理和分析这些印刷数字数据集。首先,OpenCV可以加载和读取图像数据集,使其能够在计算机中进行处理。它还提供了丰富的图像处理函数,可以对图像进行预处理,如图像增强、缩放、旋转、裁剪等,以便提升数字识别模型的性能。 在数字识别任务中,OpenCV还可以用于特征提取和特征选择。特征是用于描述图像中的关键信息的数值或属性。通过提取合适的特征,可以有效地表征数字图像,并用于训练和测试模型。OpenCV提供了各种特征提取算法,如HOG(方向梯度直方图)、LBP(局部二值模式)等。 另外,OpenCV中还包含了机器学习算法和模型,如支持向量机(SVM)、人工神经网络等,可以用于训练和测试数字识别模型。通过使用这些算法和模型,可以根据印刷数字数据集训练一个能够准确识别数字的模型,并且可以对不同的数字进行分类。 总结来说,OpenCV提供了丰富的功能和算法,可以帮助处理和分析印刷数字数据集。它可以用于加载和读取图像数据集,进行图像处理和预处理,特征提取和选择,以及机器学习算法的训练和测试。通过应用OpenCV,可以有效地建立一个功能强大的印刷数字识别系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值