数据集种类,专业领域图像数据集
第
5
章
图像分类的数据集
在我们真正进入构建分类器的代码编写阶段之前,让我们先回顾一下本书中使用的数据集。有些数据集理想情况下可以达到95%以上的准确率,有些还在开放研究阶段,有些是图像分类竞赛的一部分。
现在回顾这些数据集是很重要的,这样我们就可以对在未来章节中使用这些数据时可能遇到的挑战有一个高层次的理解。
1 MNIST
图1 mnist数据集的一个例子
MNIST数据集是计算机视觉和机器学习文献中研究最多的数据集之一。这个数据集的目标是正确分类手写数字0-9。在许多情况下,这个数据集被用作机器学习排名的基准。实际上,深度学习中使用的MNIST数据集的训练神经网络模型与其他语言中的“Hello World”示例是相同的。
MNIST本身包含60,000张训练图片和10,000张测试图片。每张图片都是一个784维的特征向量,即图像对应的28*28的灰度像素强度。该像素值是一个介于[0,255]之间的无符号整数。所有数字都放置在前景为白色背景和黑色背景的区域中。
我们主要在初学者工具包的前几章中使用这个数据集来学习神经网络。
2种动物:狗、猫、熊猫
图2三个动物分类集合的例子
这个数据集的目的是正确分类猫、狗和大熊猫的图像。每个类别包含1000个图像,总共有3000个图像。这个数据集是另一个“入门”数据集,可以在CPU或GPU上快速训练深度学习模型,获得良好的精度。其中,猫狗图像来自Kaggle的猫与狗比赛,大熊猫图像摘自ImageNet数据集。
在第十章中,我们使用这个数据集来说明使用图像的像素作为特征向量如何无法获得高质量的机器学习模型,除非我们使用CNN。
该数据集仅在Starter Bundle中使用。
3 CIFAR-10
图3来自10种CIFAR-10数据集的示例
就像MNIST一样,CIFAR-10是计算机视觉和机器学习文献中的另一个标准基准数据集。CIFAR-10包含60,000个32*32*3(RGB)图像,特征向量维数为3,072。
如图3所示,CIFAR-10数据集包含图中的10个类别。虽然我们很容易在MNIST上获得97%以上的正确分类率,但在CIFAR-10上有些困难(在CIFAR-100上更困难)。挑战主要来自于物体外观的显示差异。
虽然它是一个小数据集,但CIFAR-10仍然是新CNN架构的基准测试集。我们将在初学者捆绑包和实践者捆绑包中使用CIFAR-10。
四个微笑
图4 Smiles数据集的例子
明喻数据集包含微笑或不微笑的面部图像。数据集中有13165幅灰度图像,大小为32*32。
图像是人脸周围32*32,就是让我们设计一个只专注于ywg识别的机器学习算法。计算机视觉预处理与机器学习解耦(尤其是在基准数据集上)是一个普遍的趋势,当我们回顾常见的基准数据集时就会看到这一点。在某些情况下,假设机器学习研究人员在应用他们自己的机器学习算法之前,有足够的计算机视觉知识来正确地预处理一组图像数据集是不公平的。
然而,这种趋势正在迅速变化,任何有意将机器学习应用于计算机视觉问题的从业者都被认为至少具有计算机视觉的基本背景。这种趋势在未来还会继续,所以如果你打算深入研究计算机视觉,一定要用一点计算机视觉来补充你的教育,哪怕只是基础知识。
如果你想提高你的计算机视觉知识,请参阅文件《Adrian Rosebrock - Practical Python and OpenCV, 3rd Edition + Case studies》。
5 Kaggle:狗对猫
图5是猫和狗追逐比赛的例子。
这个数据集是Kaggle竞赛的一部分,专门用来对猫狗的图像进行正确分类。为该算法提供了总共25,000幅不同分辨率的图像。
如何决定如何预处理您的图像将导致不同的性能水平。再次证明了计算机视觉和图像处理基础的背景在深度学习中会起到很大的作用。
我们将在从业者捆绑包的AlexNet网络中使用这个数据集作为例子。
6花-17花-17数据集是17种,每种包含80幅图像。该数据集的目标是在给定输入图像的情况下正确预测花的种类。Flowers-17可以被视为一个具有挑战性的数据集,因为其缩放比例、视点角度、背景密度、亮度变化和类内差异。此外,每个类只有80个图像,这也是训练深度学习模型以避免过拟合的一个挑战。
图6三个类别的示例
根据经验,建议用每个类别中至少1000-5000个图像来训练深度神经网络。我们将研究从业者捆绑包中的Flowers-17数据集,并使用特征提取和微调等迁移学习方法来提高分类性能。
7 CALTECH-101 2004年,李菲菲推出了CALTECH-101数据集,这是一个流行的目标检测基准数据集。通常用于目标检测(比如预测图像中特定物体的包围盒的(x,y)坐标),我们也可以用CALTECH-101来研究深度学习。
CALTECH-101具有很大的类不平衡,使得研究类不平衡算法成为可能。
CALTECH-101上以前的图像分类方法的准确率在35%到65%之间。但正如我们在《从业者捆绑》中指出的,我们可以利用深度学习进行图像分类,达到99%的分类准确率。
8 Tiny ImageNet 200斯坦福大学优秀的CS 231N:用于视觉识别的对流神经网络类课程为学生组织了一次与ImageNet challenge类似的图像分类挑战赛,但范围更小。该数据集中有200个图像类别,其中500个图像用于训练,50个图像用于验证,50个图像用于每种类型的测试。每幅图像都经过预处理并裁剪为64*64*3像素的大小,这使得学生更容易专注于深度学习技术,而不是计算机视觉预处理功能。
然而,正如我们在实践者包中指出的,这种剪裁使问题变得更加困难,因为它在预处理任务中剪裁掉了一些重要的和有区别的信息。也就是说,我将演示如何在这个数据集上训练VGGNet、GooLenet和ResNet,并在排行榜中获得较高的排名。
9再见
图7年龄和性别预测的年龄数据集示例
Adience数据集用于促进年龄和性别鉴定的研究。共有26,580幅图像分布在0至60岁之间。该数据集的目标是正确预测年龄和性别。我们将进一步讨论ImageNet Bundle中的Adience数据集(以构建我们自己的年龄和性别预测系统)。
1ImageNet在计算机视觉和深度学习社区中,您可能会对ImageNet是什么或不是什么感到有点困惑。
0.1什么是imagenet?ImageNet实际上是一个项目,旨在根据一组定义的单词和短语将图像标记和分类到近22,000个类别中。
到写这本书的时候,这个项目中大约有1400万张图片。为了管理这么多的数据,采用了WordNet分级管理,WordNet中每一个有意义的单词或短语都叫做synet。在InageNet中,图像是根据这些synet组织的,目标是每个synet包含1000个图像。
10.2 ILSVRC在计算机视觉和深度学习的背景下,当人们谈论ImageNet时,很可能是在谈论ImageNet大规模视觉识别挑战或缩写为ILSVRC。
在这个挑战中,图像分类的目标是训练一个模型。大约120万张图像用于训练,5万张用于验证,10万张用于测试,可以将图像分为1000种不同的类别。这1000个类别代表了我们日常生活中遇到的目标类别,比如不同种类的狗、猫、不同的交通工具等等。你可以看到整个目标类别都在http://pyimg.co/x1ler.
在图像分类方面,ImageNet challenge是对计算机视觉分类算法的实际挑战。自2012年以来,这项挑战的排名一直被CNN和深度学习技术占据。
在ImageNet Bundle中,我将从头开始演示如何在这个著名的数据集上训练重要的网络结构(AlexNet、SqueezeNet、VGGNet、GoogLeNet、ResNet),让你复制你在相关研究论文中看到的最新研究成果。
11 Kaggle:面部表情识别挑战
图8中FER的例子
Kaggle的另一项挑战是面部表情识别挑战(FER),旨在仅从面部照片中正确识别一个人正在经历的面部表情。在FER提供了35,888幅图像,目标是将给定的面部表情分类成以下七类:
1.愤怒的
2.厌恶(由于阶级不平衡,有时与“恐惧”归为一类)
3.害怕
4.幸福的
5.悲哀的
6.惊喜
7.中立的
我将演示如何在ImageNet Bundle中使用这个数据集进行表达式识别。
1室内CVPR室内场景识别数据集包含大量的室内场景,包括商店、住宅、休闲空间、工作场所和公共空间。该数据集的目标是训练能够识别每个场景的正确模型。但是,我们没有使用这个数据集的原始函数,而是在ImageNet Bundle中使用它来自动检测和纠正图像方向。
13辆标准汽车
图9汽车数据集示例
该汽车数据集包括196种汽车的16,185幅图像。您可以根据车辆品牌、型号,甚至制造年份,以任何方式分割和扫描该数据集。虽然每个类别中的图像较少(类别不平衡较高),但我将演示如何使用CNN在标记车辆的制造型号时获得95%的分类准确率。