机器学习领域有很多现成的数据集,它们由个人或组织制作、整理,且向外界公开下载,比如在字符识别领域有mnist数据集等,数据挖掘领域有Iris,Adult数据集等。这些数据集为相关技术研究者提供了很大的便捷,有了这些资源,研究者就可以把更多的精力放在模型的研究上,可以说这些数据集的制作整理者对推动数据挖掘和机器学习的发展做出了巨大的贡献。

不过,在不少情况下,这些数据集未必能满足我们的需求,这时就要我们自己制作数据集了。不得不说,这次的字符识别项目中制作数据集的经历着实让我感受到了那些数据整理者的伟大。接下来,我把数据集的制作过程写下来,希望能给大家带来帮助和启发。

这次需要识别的字符共110个,其中英文大小写共52个,数字10个,中文46个,标点符号2个。大家都知道,深层神经网络是靠海量数据喂出来的,因此,每个字符都需要大量的样本支撑,为了解决样本数量的问题,我是这样做的:

  • 1、首先将字符依次显示在白色背景上,然后以.jpg格式保存下来。
  • 2、删去字符周围的空白像素,使字符顶格。
  • 3、比较行数和列数,在较小的那个方向上两边均匀填充像素,直至行数和列数相等,这样,字符必然在行或者列的至少一个方向上是顶格的,而且整张图片是一个正方形。然后适当在图像的四周均匀添加背景像素。
  • 4、对每一张图片以其法线为轴做-10°到10°步长为2°的旋转变换,并绕图像平面的x轴、y轴,做-10°到10°步长为1°的透视变换。每个字符可得到112121=4851张样本图片。
  • 5、在这4851张图片中,随机选出147张图片用于验证和测试,剩余4704张用于训练。

大家可能会对第二步和第三步有所疑问,原因其实很简单,在caffe框架中,一个网络只接受一种大小的输入图片,这会带来两个问题:

  • 1、每张图片中的字符处于不同位置,在图片中占的比例也不同,这对训练是不利的,其原因涉及到卷积,我会在后面具体说一下。
  • 2、每张图片的长宽比不同,如果统一分辨率,有些图片会失真。
  • 3、如果图像顶格,边缘的处理可能会有麻烦。这涉及到卷积操作在模型中的具体实现,后面会有详解。

图1 字符‘3’

因此,第二步的作用就是让字符在图片中占的比重最大,之后的文章中我会介绍这样做的好处。第三步则是避免出现图片失真,影响训练效果。

第四步的作用是提高模型的泛化能力,如果大家在看这篇文章之前已经做过功课,应该知道,卷积神经网络对仿射变换是有一定的抗性的。

这样,图片的训练集就做好了,当然,caffe不能直接从图片进行训练,还需要转换成.mdb格式才行。这些资料,网上有很多,这里就不赘述了。

转载于:https://www.cnblogs.com/bugsheep/p/8434435.html

卷积神经网络学习笔记与心得(2)数据集相关推荐

  1. 卷积神经网络学习笔记与心得(4)池化

    图片经过卷积.激活后的结果一般带有大量原图信息. 上图中卷积核提取的是竖直方向上的连续像素,但是,被增强的像素只占了结果的1/3,对于多层网络,其余重要性较低的信息也被传入了下一层网络,造成了不必要的 ...

  2. 吴恩达 - 卷积神经网络 学习笔记(一)

    转载来源:http://www.cnblogs.com/marsggbo/p/8166487.html DeepLearning.ai学习笔记(四)卷积神经网络 – week1 卷积神经网络基础知识介 ...

  3. 吴恩达卷积神经网络学习笔记(六)|CSDN创作打卡

    3.2 特征点检测 神经网络可以通过输出图片上特征点的(x,y)坐标,来实现对目标特征的识别. 我们来看几个例子,假设你正在构建一个人脸识别应用,出于某种原因,你希望算法可以给出眼角的具体位置,眼角坐 ...

  4. 吴恩达深度学习卷积神经网络学习笔记(2)——经典神经网络

    目录 1.经典网络 1.1 LeNet-5(1998) 1.2 AlexNet 1.3 VGG-16 2 ResNets(残差网络) 2.1残差块(Residual block) 2.2 残差网络为什 ...

  5. 卷积神经网络学习笔记

    一.卷积神经网络结构: 卷积层 conv作用: 卷积层是一个n*n*m的权重矩阵,下图一目了然: channel:一个卷积层的核数,对rgb图像channel = 3 kernel size:卷积核的 ...

  6. 卷积神经网络学习——第二部分:卷积神经网络训练的基本流程

    卷积神经网络学习--第二部分:卷积神经网络训练的基本流程 一.序言 二.训练流程 1.数据集引入 2.构建网络 (1)四层卷积神经网络 (2)两层全连接层网络 3.模型训练 4.模型评估 三.总结 一 ...

  7. 卷积神经网络学习心得

    卷积神经网络学习心得 文章目录 卷积神经网络学习心得 一.卷积神经网络 1.卷积 2.池化 3.激活函数 3.全连接层 3.训练过程 二.传播过程 1.卷积神经网络的前向传播过程 1.1卷积层的前向传 ...

  8. 学习卷积神经网络后的一些心得

    学习卷积神经网络后的一些心得 今年2月份入手机器学习,学习机器学习两个月后开始进入卷积神经网络阶段,并由此对计算机视觉起了较大的兴趣.通过后面这几个月对于卷积神经网络有一些心得,由于是初步了解,可能说 ...

  9. 神经网络学习笔记3——Transformer、VIT与BoTNet网络

    系列文章目录 神经网络学习笔记1--ResNet残差网络.Batch Normalization理解与代码 神经网络学习笔记2--VGGNet神经网络结构与感受野理解与代码 文章目录 系列文章目录 A ...

  10. ​厦大等高校研究人员利用卷积神经网络学习脑电地形图表示进行分类

    脑电图(EEG)地形图表征(Electroencephalography topographical  representation, ETR)可以监测区域大脑活动,是一种可以用于探索皮层机制和联系的 ...

最新文章

  1. 用Python实现坦克大战游戏 | 干货贴
  2. Piercing the dark matter: bioinformatics of long- range sequencing and mapping穿透暗物质:生物信息学的长程测序和绘图
  3. Linux下C高手成长过程----经典书籍推荐
  4. linux第一季运维001
  5. 注解_案例_简单的测试框架
  6. mpvue 从零开始 女友的发带 2 window中设置
  7. 19 Signals and Signal Handling
  8. linux下安装 Sublime Text 3
  9. CentOS通过 liveCD 进入救援模式-重装 grub 修复损坏的
  10. 各种开源协议介绍 BSD、Apache Licence、GPLv2 、v3 、LGPL、MIT
  11. vue-amap详细使用教程
  12. Solr Windows环境安装配置
  13. python3 打包exe 加密_python代码加密之生成exe可执行文件
  14. python算p值_Python sklearn-如何计算p值
  15. sh: warning: setlocale: LC_ALL: cannot change locale (zh_CN.GB18030)
  16. 世界再大,大不过一盘番茄炒蛋
  17. 【一日一logo_day_19】sos
  18. 两对等位基因控制一对相对性状的规律(基因互作)
  19. golang:An operation on a socket could not be performed because the system lacked sufficient buffer s
  20. python自动注册邮箱_163邮箱自动登陆python+selenium

热门文章

  1. vue多语言插件vue-i18n
  2. 排序——选择排序、快速排序
  3. Apache - 403错误
  4. Weka数据挖掘平台
  5. ValueError: No JSON object could be decoded?此种异常的解决方案之一
  6. android studio actionbar,Android Studio环境下ActionBar的使用教程以及如何解决遇到的问题...
  7. python独一无二的路_独一无二的Python基础学习——可用作面试
  8. java版mc植物生长条件_植物生长三大必要条件
  9. java中经典的题目_java经典题目(一)
  10. IEquatable「T」和Equal详解