最后一章内容,主要是OCR的实例,很多都是和经验或者实际应用有关;看完了,总之,善始善终,继续加油!!

一、图像识别(店名识别)的步骤:

  图像文字识别应用所作的事是,从一张给定的图片中识别文字。这比从一份扫描文档中
识别文字要复杂的多。

  为了完成这样的工作,需要采取如下步骤:
  1.文字侦测(Text detection)——将图片上的文字与其他环境对象分离开来
  2.字符切分(Character segmentation)——将文字分割成一个个单一的字符
  3.字符分类(Character classification)——确定每一个字符是什么

可以用任务流程图来表达这个问题,每一项任务可以由一个单独的小队来负责解决:

二、滑动窗口

  滑动窗口是一项用来从图像中抽取对象的技术。假使我们需要在一张图片中识别行人,
首先要做的是用许多固定尺寸的图片来训练一个能够准确识别行人的模型。然后我们用之前
训练识别行人的模型时所采用的图片尺寸在我们要进行行人识别的图片上进行剪裁,然后将
剪裁得到的切片交给模型,让模型判断是否为行人,然后在图片上滑动剪裁区域重新进行剪
裁,将新剪裁的切片也交给模型进行判断,如此循环直至将图片全部检测完。

  一旦完成后,我们按比例放大剪裁的区域,再以新的尺寸对图片进行剪裁,将新剪裁的
切片按比例缩小至模型所采纳的尺寸,交给模型进行判断,如此循环。

  滑动窗口技术也被用于文字识别,首先训练模型能够区分字符与非字符,然后,运用滑
动窗口技术识别字符,一旦完成了字符的识别,我们将识别得出的区域进行一些扩展,然后
将重叠的区域进行合并。接着我们以宽高比作为过滤条件,过滤掉高度比宽度更大的区域
(认为单词的长度通常比高度要大)。下图中绿色的区域是经过这些步骤后被认为是文字的区域,而红色的区域是被忽略的。

  以上便是文字侦测阶段。 下一步是训练一个模型来完成将文字分割成一个个字符的任
务,需要的训练集由单个字符的图片和两个相连字符之间的图片来训练模型。

  模型训练完后,我们仍然是使用滑动窗口技术来进行字符识别。
  以上便是字符切分阶段。 最后一个阶段是字符分类阶段,利用神经网络、支持向量机
或者逻辑回归算法训练一个分类器即可。

三、获取大量数据和人工合成数据集(这里主要指字母识别中的数据集)的两种方法:

  1、没有已有样本:通常有很多字体库,我们可以采集同一个字符的不同种类字体,然后将这些字符加上不同的随机背景。

  2、少量已有样本:使用已有的样本,选取一个真实的样本,然后添加将此样本扭曲、旋转(人工变形)的数据,以此来扩大数据集。

  注:在决定扩大数据集之前需要考虑的问题:

    ① 需要先有一个低偏差的分类器,如果没有,可以通过增大特征数或者在神经网络中增大隐藏层单元数来解决

    ② 首先估计增加样本需要的工作量

  有关获得更多数据的几种方法:
    1.人工数据合成
    2.手动收集、标记数据
    3.众包

四、上限分析

  回到我们的文字识别应用中,我们的流程图如下:

  流程图中每一部分的输出都是下一部分的输入,上限分析中,我们选取一部分,手工提
供100%正确的输出结果,然后看应用的整体效果提升了多少。

  总结一下上面的意思,即通过人工干预,使某一个component的准确率人工达到100%,再使用这些数据训练,如果这一component的变化导致整体系统的系统变得很好,那么说明这个component值得花时间优化。

  反之,我们将某一component达到100%,系统性能仍没有提升很多,则说明这一component不值得我们花费精力改进。

吴恩达机器学习笔记61-应用实例:图片文字识别(Application Example: Photo OCR)【完结】的更多相关文章

  1. [C13] 应用实例:图片文字识别(Application Example: Photo OCR)

    应用实例:图片文字识别(Application Example: Photo OCR) 问题描述和流程图(Problem Description and Pipeline) 图像文字识别应用所作的事是 ...

  2. 斯坦福第十八课:应用实例:图片文字识别(Application Example: Photo OCR)

    18.1  问题描述和流程图 18.2  滑动窗口 18.3  获取大量数据和人工数据 18.4  上限分析:哪部分管道的接下去做 18.1  问题描述和流程图

  3. Ng第十八课:应用实例:图片文字识别(Application Example: Photo OCR)

    18.1  问题描述和流程图 18.2  滑动窗口 18.3  获取大量数据和人工数据 18.4  上限分析:哪部分管道的接下去做 18.1  问题描述和流程图 图像文字识别应用所作的事是,从一张给定 ...

  4. 吴恩达机器学习笔记(六) —— 支持向量机SVM

    主要内容: 一.损失函数 二.决策边界 三.Kernel 四.使用SVM (有关SVM数学解释:机器学习笔记(八)震惊!支持向量机(SVM)居然是这种机) 一.损失函数 二.决策边界 对于: 当C非常 ...

  5. 吴恩达机器学习笔记 —— 19 应用举例:照片OCR(光学字符识别)

    http://www.cnblogs.com/xing901022/p/9374258.html 本章讲述的是一个复杂的机器学习系统,通过它可以看到机器学习的系统是如何组装起来的:另外也说明了一个复杂 ...

  6. [吴恩达机器学习笔记]12支持向量机5SVM参数细节

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.5 SVM参数细节 标记点选取 标记点(landma ...

  7. [吴恩达机器学习笔记]11机器学习系统设计3-4/查全率/查准率/F1分数

    11. 机器学习系统的设计 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 11.3 偏斜类的误差度量 Error Metr ...

  8. 吴恩达机器学习笔记39-误差分析与类偏斜的误差度量(Error Analysis and Error Metrics for Skewed Classes)

    如果你准备研究机器学习的东西,或者构造机器学习应用程序,最好的实践方法不是建立一个非常复杂的系统,拥有多么复杂的变量:而是构建一个简单的算法,这样你可以很快地实现它. 构建一个学习算法的推荐方法为:1 ...

  9. [吴恩达机器学习笔记]12支持向量机3SVM大间距分类的数学解释

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.3 大间距分类背后的数学原理- Mathematic ...

随机推荐

  1. 错误 C2280 Union : 尝试引用已删除的函数 以及 警告 C4624 “Grade”: 已将析构函数隐式定义为“已删除”的一种解决方法

    Union 是C/C++语言中的一种结构类型,用于定义可共享内存的数据变量的一种方式,初次使用Union联合体时可能会遇到以下问题: 错误 C2280 Union : 尝试引用已删除的函数 警告 C4 ...

  2. 豆瓣API

    Api V2 索引 图书Api V2 电影Api V2 音乐Api V2 同城Api V2 广播Api V2 用户Api V2 日记Api V2 相册Api V2 线上活动Api V2 论坛Api V ...

  3. 基于 WebRTC 创建一款多人联机游戏

    本项目的目标旨在尽可能少用服务器资源的前提下研发一款在线多人游戏,同时期望在一个用户的浏览器上运行游戏,同时让另一个玩家来连接.此外还希望程序尽可能简单以便于在博客中分析. 运用的技术 在我刚接触 P ...

  4. go语言nsq源码解读六 tcp.go、tcp_server.go

    本篇讲nsqlookupd中tcp.go.tcp_server.go tcp_server.go位于util目录下. 12345678910111213141516171819202122232425 ...

  5. VUE+webpack+npm项目中的RSA加解密

    一.安装jsencrypt npm i jsencrypt node_modules文件夹中出现jsencrypt 二.引入jsencrypt 在main.js中import: import JsEn ...

  6. Mysql8.0命令

    1.创建用户 create user 'username'@'localhost' identified by 'pwd' 2.修改访问权限 在mysql数据下修改user表用户host为'%' up ...

  7. appium+python+eclipse 自动化测试框架构建!

    经过几天的慢慢研究,现将所需用的自动化框架进行了构建,在后期的代码编写中,直接在框架中套用编写对应的module.case等即可,以此来简化测试方式,提高代码的编写效率与规范 基本的架构设计流程图,如 ...

  8. 使用ESMap的地图平台开发三维地图

      本文简单的介绍使用ESmap的SDK开发(DIY自己地图的)一个地图的过程.若有不足,欢迎指正. 一.创建地图 只需四步,从无到有,在浏览器中创建一个自己的三维地图,炫酷到爆! 第一步:引入ESM ...

  9. 《HelloGitHub》第 32 期

    公告 新加入了 2 位机器学期的小伙伴负责机器学习专栏.项目的首页增加合作组织一栏,如有开源组织有意合作可以点击联系我. 我们还在路上,不停地前行. <HelloGitHub>第 32 期 ...

  10. ConcurrentDictionary并发字典知多少?

    背景 在上一篇文章你真的了解字典吗?一文中我介绍了Hash Function和字典的工作的基本原理. 有网友在文章底部评论,说我的Remove和Add方法没有考虑线程安全问题. https://doc ...