当前位置: 首页 > 编程日记 > 正文

第5章 图像分类的数据集

5图像分类的数据集

在我们实际进入到代码编写阶段来构建分类器之前,我们首先回顾下在本书中用到的数据集。一些数据集可理想的获得大于95%的准确率,另一些则还在开放研究阶段,还有一些是图像分类竞赛的部分数据集。

现在就对这些数据集进行回顾是很重要的,这样我们就可以在以后的章节中对我们在使用这些数据时可能遇到的挑战有一个高级的理解。

1         MNIST

图1 MNIST数据集的一个样例

MNIST数据集是计算机视觉和机器学习文献中最受研究的数据集之一。这个数据集的目标是正确的分类手写数字0-9。在许多例子中,这个数据集是作为基准(benchmark),用于机器学习排名的基准。实际上,MNIST数据集用在深度学习的训练神经网络模型和其它语言中的“Hello World”示例是一样的。

MNIST本身包含60000张训练图片和10000张测试图片。每张图片是784维的特征向量,即对应于图像的28*28的灰阶像素强度。这个像素值是[0, 255]之间的无符号整数。所有数字放置在前景白色背景黑色的区域。

我们主要在Starter Bundle的早期章节中使用这个数据集用于进入神经网络的学习。

2         Animals:Dogs, Cats, Pandas

图2 三分类动物集的例子

这个数据集的目的是正确的分类包含猫、狗、大熊猫的图像。每个类别包含1000张图片,总共3000张图片,这个数据集是另一个“入门”数据集,可以在CPU或GPU上快速的训练深度学习模型且获得好的精确度。其中,猫和狗图像来自Kaggle的Cats vs.Dogs竞赛,大熊猫图像节选自ImageNet数据集。

在第10章我们用这个数据集来示例说明,使用图像的像素作为特征向量是如何不能获得高质量的机器学习模型的,除非我们利用CNN。

这个数据集仅用在Starter Bundle中。

3         CIFAR-10

图3 来自10类CIFAR-10数据集的例子

就像MNIST,CIFAR-10是在计算机视觉和机器学习文献中的另一个标准的基准数据集。CIFAR-10包含60000张特征向量维数为3072的32*32*3(RGB)的图像。

如图3所示,CIFAR-10数据集包含图示中的10个类别。当我们很容易的在MNIST上获得大于97%的分类正确率,但在CIFAR-10上会有些难度(在CIFAR-100上难度更大)。挑战主要来自对象出现方式的显示差异。

尽管是个小的数据集,但是CIFAR-10仍然是新的CNN架构的基准测试集。我们将在Starter Bundle和Practitioner Bundle中使用CIFAR-10。

4         SMILES

图4 SMILES数据集的例子

SIMILES数据集包含要么笑要么不笑的人脸图像,数据集中总共有13165张灰阶图像,大小为32*32。

图像是围绕人脸的32*32大小,即让我们设计出只专注于微笑识别的机器学习算法。计算机视觉预处理与机器学习(尤其是在基准数据集中)脱钩是一大常见趋势,当我们回顾常见的基准数据集时将看到。在一些例子中,假设一个机器学习研究者在应用他们自己的机器学习算法之前,有足够的计算机视觉知识来正确的对一组图像数据集进行预处理,是不公平的。

但是,这种趋势正在快速改变,任何有兴趣将机器学习应用于计算机视觉问题的从业者都被认为至少拥有计算机视觉方面的基本背景。这一趋势在未来还会继续,所以如果你打算在计算机视觉的深度学习方面更加深入的学习,一定要用一点计算机视觉来补充你的教育,即使这只是基础知识。

如果要提高计算机视觉知识,见文档《Adrian Rosebrock - Practical Python and OpenCV, 3rd Edition + Case studies》。

5         Kaggle:Dags vs. Cats

图5 来自猫狗Kaggle竞赛的例子

这个数据集是Kaggle竞赛的一部分,专门用于正确的分类包含猫和狗的图像。总共25000张具有不同分辨率的图像提供给算法使用。

如何决定预先处理你的图像会导致不同的性能水平,再次证明计算机视觉和图像处理基础的背景将会在学习深度学习中发挥很大的作用。

我们将在Practitioner Bundle中的AlexNet网络中使用该数据集作为例子。

6         Flowers-17

Flowers-17数据集是17个种类,每个种类包含80张图像。这个数据集的目标是在给定输入图像时,正确的预测flower的种类。Flowers-17可认为是一个有挑战的数据集,由于缩放、视点角度、背景密集、亮度变化和类内差异等变化因素。此外,每个类只有80张图像,这在训练深度学习模型而避免过拟合也是一个挑战。

图6 三个类别的示例

作为经验法则,建议在训练深度神经网络时,每个类别至少1000-5000张图像。我们将在Practitioner Bundle中研究Flowers-17数据集,利用特征提取(feature extraction)和微调(fine-tuning)等转移学习方法来提高分类性能。

7         CALTECH-101

2004年,李飞飞介绍的CALTECH-101数据集,该数据集作为目标检测的流行的基准数据集。通常用于目标检测(如预测图像中特定对象的包围框的(x,y)坐标),我们也可以用CALTECH-101来研究深度学习。

CALTECH-101具有极大的类别失衡,使得它可以用于类别失衡算法方面的研究。

之前的图像分类方法在CALTECH-101上的精确度在35%-65%之间。但是就像我们在Practitioner Bundle中指出的,我们可以利用深度学习用于图像分类来达到99%的分类正确率。

8         Tiny ImageNet 200

斯坦福大学优秀的cs231n: Convolutional Neural Networks for Visual Recognition class课程为学生组织了一个类似于ImageNet挑战的图像分类挑战,但范围更小。本数据集共有200个图像类,其中500张图像用于训练,50张图像用于验证,50张图像用于每类测试。每张图像被预处理且裁剪成64*64*3像素大小,使学生更容易的关注与深度学习技术而不是计算机视觉预处理功能上。

但是,就像我们在Practitioner Bundle中指出的,这个裁剪使得问题变得更难一些,因为它使得一些重要的、有鉴别能力的信息在预处理任务中被裁剪掉了。也就是说,我将在这个数据集上示例如何训练VGGNet、GooLenet和ResNet且在排行榜中获得较高排名。

9         Adience

图 7 用于年龄和性别预测的Adience数据集的例子

Adience数据集用于促进年龄和性别识别的研究。总共图像26580张年龄分布在0-60之间。这个数据集的目标是正确的预测年龄和性别。我们将在ImageNet Bundle中进一步(构建自己的年龄和性别预测系统)讨论Adience数据集。

10    ImageNet

在计算机视觉和深度学习社区中,你可能对ImageNet是什么或不是什么感到一点混淆。

10.1          ImageNet是什么?

ImageNet实际上是一个项目,旨在根据一组定义的单词和短语,将图像标记并分类到将近2.2万个类别中。

截止到该书此时,项目中有大概1400万张图像。为了管理如此多的数据,采用WordNet层次管理,在WordNet中的每个有意义的单词或短语称为同义词集(synet)。在InageNet中,图像依据这些synet组织,目标是每个synet包含1000+的图像。

10.2          ILSVRC

在计算机视觉和深度学习背景下,当人们谈论ImageNet时,很可能他们谈到的是ImageNet Large Scale Visual Recognition Challenge或者简写的ILSVRC。

在这个挑战中图像分类的目标是训练一个模型,使用大概120万张图像用于训练,50000张用于验证,100000张用于测试,能够将图像分类到1000个不同的类别中。这1000个类别代表了我们日常生活中遇到的目标类别,如不同种类的狗、猫,不同的车辆等等。你可以看到整个目标类别在http://pyimg.co/x1ler。

在图像分类方面,ImageNet挑战是用于计算机视觉分类算法的实际挑战,自2012年以来,这项挑战的排行榜一直被CNNs和深度学习技术占据。

在ImageNet Bundle中,我将在这个著名的数据集上从头演示如何训练重要的网络结构(AlexNet,SqueezeNet,VGGNet,GoogLeNet,ResNet),允许你复制你在相关研究论文中看到的最新的研究成果。

11    Kaggle: Facial Expression Recognition Challenge

图8 Kaggle中FER的例子

Kaggle的另一项挑战,Facial Expression Recognition Challenge(FER)(面部表情识别挑战)的目标是仅从他们的面部照片就能正确的识别出一个人正在经历的面部表情。在FER中提供了35888张图像,目标是将给定的面部表情分类到下述的7种类别中:

1. Angry

2. Disgust (sometimes grouped in with “Fear” due to class imbalance)

3. Fear

4. Happy

5. Sad

6. Surprise

7. Neutral

我将在ImageNet Bundle中演示如何使用这个数据集用于表情识别。

12    Indoor CVPR

室内场景识别(Indoor Scene Recognition)数据集,包含大量室内场景,包括商店、房屋、休闲空间、工作场所和公共空间。这个数据集的目标是训练一个正确的能识别每一个场景的模型。但是,代替使用这个数据集的原始作用,我们在ImageNet Bundle中使用它来自动的检测和修正图像方向。

13    Standard Cars

图9 Cars数据集的例子

这个Cars数据集包括196种汽车种类的16185张图像。你可以根据车辆制造、型号、甚至是制造年份,以任何你想要的方式切片和扫描这个数据集。尽管每个类别有较少的图像(具有较高的类别失衡),但是我将演示在标记车辆的制造型号时如何利用CNNs来获得>95%的分类正确率。

转载于:https://www.cnblogs.com/paladinzxl/p/9521602.html

相关文章:

一根烟上热搜,先让AI看看你的肺

作者 | 李翔,国内某互联网大厂AI民工,前携程酒店图像技术负责人,计算机视觉和深度学习重度爱好者,在ICCV和CVPR等会议上发表论文十余篇;马杰超,任职于某医学图像创业公司,医学图像AI领域资深从业…

mongodb主从设置,capped collections等常用命令集合

############### Mongodb 主 <> 从切换的时候要删除 ############## ############### use local ############################### ############## db.sources.remove() ############################### # 主#/data/mongodb-linux-x86_64-2.0.2/bin/mongod --por…

调侃吴恩达,Diss特斯拉,吐槽OpenAI…《AI寒冬将至》作者点评2019“AI小丑秀”...

作者 | Piekniewski编译 | 夕颜出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;导读&#xff1a;去年&#xff0c;一篇《AI寒冬将至》的文章在AI圈爆红&#xff0c;作者观点鲜明地指出AI领域出现泡沫&#xff0c;并预言AI寒冬将会到来&#xff0c;引起巨大争议。一年…

max_semi_space_size 设置值与实际值不一致的原因分析

问题由来 因为业务的需求&#xff0c;某 Node.js 性能平台用户需要调节新生代大小&#xff0c;Node.js 的启动参数里面的max_semi_space_size可以设置新生代堆空间的大小。 node --v8-options | grep max_semi -A 3 -B 2--min_semi_space_size (min size of a semi-space (in M…

【FFmpeg】函数详解(二)

FFmpeg函数详解 9、av_dump_format10、avio_open11、avformat_write_header12、avcodec_send_frame13、avcodec_receive_packet9、av_dump_format 原型: void av_dump_format(AVFormatContext *ic, int index, const char *url, int is_output);说明: 打印输入输出格式的详…

【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

游戏开发笔记二十七 Direct3D 11入门级知识介绍作者&#xff1a;毛星云 邮箱&#xff1a; happylifemxy163.com 期待着与志同道合的朋友们相互交流上一节里我们介绍了在迈入DirectX 11的学习旅程之后第一个demo创建的全过程。但由于知识衔接的需要&#xff0c;我们的第一…

英特尔蚕食AMD和NVIDIA?

作者 | Daniel Newman译者 | 苏本如&#xff0c;责编 | 郭芮转载自CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;【编者按】一个鲜为人知的事实是&#xff0c;英特尔凭借其在集成显卡上的领先地位&#xff0c;持续占据着电脑显卡市场的头把交椅。但是随着过去两年中首席…

使用phpStudy运行伊人集项目

1.首次运行时&#xff0c;需要把system/config/install.look.php以及system/config/database.php&#xff08;后面这个文件可以先不删除&#xff0c;若是安装过程中数据库报错&#xff0c;再来删除它&#xff09;删除2.若只有一个项目版本需要运行的话&#xff0c;可以把项目拷…

【FFmpeg】函数详解(三)

FFmpeg函数详解 14、av_write_frame15、av_interleaved_write_frame16、av_write_trailer17、avio_close18、av_image_get_buffer_size19、av_image_fill_arrays20、av_rescale_q21、视频格式尺寸转换22、音频重采样:23、将像素格式由索引值转换成字符串24、MD5相关25、avio_h…

php时区问题导致php页面显示不正常

cacti安装成功&#xff0c;但报时区错误&#xff0c;已经做了如下操作&#xff0c;后来发现如上设置还是有此问题 将 /usr/local/php5/php.ini文件内修改如下 date.timezone asia/Chongqing 遂解决之。 转载于:https://blog.51cto.com/itnihao/916148

【FFmpeg】降低转码延迟方法、打印信息详解、refcounted_frames详解

文章目录 1、FFmpeg降低转码延迟方法2、ffmpeg打印信息:源码里打印的这段是这样定义的3、解码时 refcounted_frames 标志的使用3.1 启动该标志3.2 解码后,记得释放3.3 详解1、FFmpeg降低转码延迟方法 关闭sync-lookahead降低rc-lookahead,但别小于10,默认是-1降低threads(比…

速度提升270倍!微软和浙大联合推出全新语音合成系统FastSpeech

作者 | 谭旭转载自微软研究院AI头条&#xff08;ID: MSRAsia&#xff09;【编者按】目前&#xff0c;基于神经网络的端到端文本到语音合成技术发展迅速&#xff0c;但仍面临不少问题——合成速度慢、稳定性差、可控性缺乏等。为此&#xff0c;微软亚洲研究院机器学习组和微软&a…

Linux —— 目录(文件夹)及文件相关处理指令

可参考这篇文章&#xff1a;https://mp.weixin.qq.com/s?__bizMzU4MTU3OTI0Mg&mid2247484269&idx1&sn38869a1df48d8cdb6278518b51601ce0&chksmfd443be8ca33b2fe937531e061c406786f0e587d8ab10ff15594442265658d08cd8271ae52c5&mpshare1&scene23&s…

工业级3G路由器

宏电工业级3G路由器的特点,工业级标准设计,适应零上60度的高温,零下30度的低温,存工业级制造工艺,适应交通,环保,矿山,电力等工业级应用,欢迎来电索取解决方案,沈阳宏电办事处 刘冰 15940556464 024-31296279 限东三省地区.转载于:https://blog.51cto.com/lbing/916441

【FFmpeg】AVOutputFormat/AVInputFormat 成员变量 flags 总结

1、分类 AVOutputFormat中flags允许的值: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS, AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH, AVFMT_TS_NONSTRICT, AVFMT_TS_NEGATIVEAVInputFormat中flags允许的值…

基础必备 | Python处理文件系统的10种方法

作者 | Jeff Hale 译者 | 风车云马&#xff1b;责编 | Jane&#xff0c;Rachel出品 | Python大本营&#xff08;ID&#xff1a;pythonnews&#xff09;【导读】在编写一些Python程序的时候&#xff0c;我们常常需要与文件系统进行交互。在本文中&#xff0c;营长为大家整理了10…

安装Oracle11g先决条件检查失败

体系结构 - 此先决条件将测试系统是否具有认证的体系结构。预期值:?N/A实际值:?N/A?错误列表:?-?PRVF-7536 : 无法在节点 "mywin7" 上执行体系结构检查 ?- Cause:? 无法确定系统体系结构。 ?-Action:? 确保正在使用正确的软件包。 处理 转载于:https://www.…

Windows Forms高级界面组件-使用状态栏控件

状态栏&#xff08;StatusStrip&#xff09;控件通常显示在窗体的底部&#xff0c;向用户提供有关应用程序状态的信息。如Word应用程序使用状态栏提供页码、行数和列数的信息。StatusStrip派生于ToolStrip&#xff0c;通常由ToolStripStatusLabel对象组成&#xff0c;用于显示指…

【Qt】在QtCreator中编译log4cplus

在QtCreator中编译log4cplus 一、在QtCreator中配置cmake二、编译log4cplus1、下载2、编译、安装一、在QtCreator中配置cmake 参见博客:https://blog.csdn.net/u010168781/article/details/107613606 log4cplus使用cmake来编译,因此需要QtCreator支持cmake 二、编译log4cpl…

IEEE“撑不住”了?声明解除对华为评审限制

整理 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;6 月 2 日&#xff0c;IEEE 官方发表声明表示&#xff1a;经美国商务部就出口管制条例在 IEEE 出版活动中的适用性做出的说明&#xff0c;华为及其子公司的员工可以参加 IEEE 出版过程的同行评审和编辑工作…

关于软件产业的两个契机

软件产业是一个产业 &#xff0c; 和其它的产业一样 &#xff0c; 有各种角色分工 。 未来的软件是跨行业的 。 未来 &#xff0c; 软件会将各个行业联系在一起 。 云计算是第一代互联网发展到成熟的标志 。 网格计算是第二代互联网的开始 。 软件产业 在 未来 会 分为 平台&a…

java继承中的一些该注意的问题

关于继承&#xff0c;我想大多数人都知道&#xff0c;它是面向对象语言中的三大特性之一&#xff0c;所以在这里&#xff0c;关于继承的概念等我就不做详细介绍了&#xff0c;我主要就讲一下大家对他的认识中一些比较容易犯的错误吧。 错误认识1、继承&#xff0c;是将父类中所…

【C】printf warning: unknown conversion type character ‘l‘ in format [-Wformat=]

1、问题描述 在使用printf、fprintf打印long long类型时报错 printf warning: unknown conversion type character l in format [-Wformat=]2、原因分析 “%lld” 和 “%llu” 是 linux 下 gcc/g++ 用于 long long int 类型 (64 bits) 输入输出的格式符。 而 “%I64d” 和 “…

史上最强最贵Mac Pro诞生,iPadOS和iOS分家!WWDC19全面总结

作者 | 俞佳兴、胡巍巍转载自CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;图片&视频 | 余佳兴摄自美国圣何塞WWDC现场一年一度的WWDC终于来了&#xff01;43岁的苹果&#xff0c;产品经验位居世界前列。一个迈入中年的公司&#xff0c;该如何持续做出让人惊艳的产品…

Java 抽象类与接口的区别

接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么&#xff1f; 接口和抽象类的概念不一样。接口是对动作的抽象&#xff0c;抽象类是对根源的抽象 抽象类表示的是&#xff0c;这个对象是什么。接口表示的是&#xff0c;这个对象能做什么。比如&#xff0c;男人&…

XMOVE3.0手持终端——软件介绍(五):在2KB内存的单片机上实现的T9中文输入法

编者注&#xff1a; X-MOVE是作者在业余时间于2010年6月份启动的以运动传感开发&#xff0c;算法和应用的平台&#xff0c;目前已经发展了三个版本&#xff0c;第四版的开发接近尾声。发布在博客园仅为交流技术&#xff0c;不存在商业目的&#xff0c;作者保留一切权利。 一. 综…

推荐系统遇上深度学习,9篇阿里推荐论文汇总!

作者 | 石晓文转载自小小挖掘机&#xff08;ID: wAIsjwj&#xff09;业界常用的推荐系统主要分为两个阶段&#xff0c;召回阶段和精排阶段&#xff0c;当然有时候在最后还会接一些打散或者探索的规则&#xff0c;这点咱们就不考虑了。前面九篇文章中&#xff0c;有三篇是召回阶…

ReSharper修改命名风格

默认情况下&#xff0c;ReSharper会建议你全局变量命名使用下划线开头&#xff0c;且第一个字母小写。否则&#xff0c;会给你标记出来&#xff0c;如下&#xff1a; 但我个人不喜欢这种风格&#xff0c;一般使用首字母大写且不带下划线&#xff0c;可以通过配置来调整&#xf…

【Qt】Log4Qt(一)下载、编译

Log4Qt(一)下载、编译 1、下载2、编译2.1 单独编译成库2.2 将源码添加到项目中2.2.1 log4qt.pri分析2.2.2 pro示例如下1、下载 github上星最多的是这个:https://github.com/MEONMedical/Log4Qt 下载log4qt最新(截止2021-12-04)的稳定版本v1.5.1(Qt版本需要Qt5.7.0以上)…

android:退出程序

http://kofi1122.blog.51cto.com/2815761/703751 使用的是定义全局变量的方法