1.问题描述与 OCR pipeline

图1.图像文字识别流水线

首先是输入图片-》进行文字检测-》字符分割-》字符识别。

这些阶段分别需要1-5人这样子。

2.滑动窗口

主要讲滑动窗口分类器。

图2.滑动窗口检测

对于行人检测来说,矩阵框有长宽相同的比例,虽然具体的数值会变化,但比例不变;但是对于文字检测来说,文字酷块的比例大小是不同的。

对滑动窗口来说,首先有一个窗口从图片左上角开始检测,每滑动到一个地方就将图片切割,并调整为(82*36)并输入进滑动窗口检测器中;

每次移动的距离称为步长;直到将图片扫描完毕为止;

一次扫描完之后,增加矩形框大小,再次进行扫描分类。

图3.文字检测

对图像进行窗口扫描之后,有文字的部分会被标为白色,色度的高低表示是否有文字的置信度。

但图片中也有一些文字未被检测出来。

可将文字部分剪切出来,进行下一步的工作。

图4.一维滑动窗口进行字符分割

对于左边的样本,窗口中能够有一个直线,为正样本,即可以分割;进行有监督学习

对于右边的样本,y=0,不可分割。此时滑动窗口只遍历一行即可,直到将所有的字符分开。

图5.图像OCR流水线

1.首先 进行文字检测;

2.进行字符分割;

3.进行字符识别。

3.获取大量数据和人工数据

图6.人工数据合成

左图中是真实的从图片中获取的数据;右图是通过人工合成的,其中的字体是从网上下载的,并通过仿射等一系列技术形成图片

但是如果合成的不好,那么会对其产生影响。

图7.对数据进行扰乱

左边的A是从真实图片中获取的,可以通过对A进行distortion来获取更多的数据集。

一个很好的例子就是语音识别,对同一个语音,加入嘈杂银、背景音、对音轨进行操作等,以此来扩充数据集,生成额外的标注样本

图8.应该添加什么样的失真

对于可行的添加失真的方法,应该是具有代表性的,有可能在测试集中出现的。

并且给出了一个并不是可行的失真方法,比如对图像加入像素级的噪声,这通常对识别是没有帮助的。

图9.对获取更多数据的一些讨论

1. 首先在扩大数据集之前需要确定分类器是低偏差的,如果是高偏差那么就需要先增加特征数量或者是增加神经网络中隐藏层的单元数量。

2.如果要获得10倍的数据量需要多少工作呢?获取数据量的渠道 :

人工数据合成、自己标记数据、进行众包。

那么在解决机器学习遇到的问题时,重要的两点就是:

1.利用学习曲线判断增加数据量是否有用;

2.如果是需要增加数据量,那么就会想如果增加10倍的数据量需要花多少工作,

4.天花板分析:下一步工作的 pipeline

Andrew Ng-ML-第十九章-应用举例:照片OCR(光学字符识别)的更多相关文章

  1. Python之路【第十九章】:Django进阶

    Django路由规则 1.基于正则的URL 在templates目录下创建index.html.detail.html文件 <!DOCTYPE html> <html lang=&q ...

  2. 第十九章——使用资源调控器管理资源(1)——使用SQLServer Management Studio 配置资源调控器

    原文:第十九章--使用资源调控器管理资源(1)--使用SQLServer Management Studio 配置资源调控器 本系列包含: 1. 使用SQLServer Management Stud ...

  3. 第十九章——使用资源调控器管理资源(2)——使用T-SQL配置资源调控器

    原文:第十九章--使用资源调控器管理资源(2)--使用T-SQL配置资源调控器 前言: 在前一章已经演示了如何使用SSMS来配置资源调控器.但是作为DBA,总有需要写脚本的时候,因为它可以重用及扩展. ...

  4. 第十九章 Django的ORM映射机制

    第十九章 Django的ORM映射机制 第一课 Django获取多个数据以及文件上传 1.获取多选的结果(checkbox,select/option)时: req.POST.getlist('fav ...

  5. Gradle 1.12用户指南翻译——第四十九章. Build Dashboard 插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  6. Gradle 1.12翻译——第十九章. Gradle 守护进程

    有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...

  7. Gradle 1.12用户指南翻译——第二十九章. Checkstyle 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  8. Gradle 1.12用户指南翻译——第三十九章. IDEA 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  9. “全栈2019”Java多线程第二十九章:可重入锁与不可重入锁详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

随机推荐

  1. 浅谈CSS盒子模型

    [摘要]盒子模型是CSS中的一个重要概念,虽然CSS中没有盒子这个单独的属性对象,但它却是CSS中无处不在的一个重要组成部分.掌握盒子模型的原理和使用方法可以极大地丰富HTML元素的表现效果,同时对于 ...

  2. Promise 必知必会的面试题

    Promise 想必大家都十分熟悉,想想就那么几个 api,可是你真的了解 Promise 吗?本文根据 Promise 的一些知识点总结了十道题,看看你能做对几道. 以下 promise 均指代 P ...

  3. Windows平台编译SQLite 3

    由于需要sqlite的x64版本只能自己编译,下载sqlite源代码.sqlite.def.Visual Studio 2013新建一个Visual C++ Empty Project,Configu ...

  4. Unity3D笔记 GUI 一

    要实现的功能: 1.个性化Windows界面 2.减少个性化的背景图片尺寸 3.个性化样式ExitButton和TabButton 4.实现三个选项卡窗口 一.个性化Windows界面 1.1.创建一 ...

  5. [吐槽]我为什么讨厌C++

    最近在改currennt的代码,我擦擦擦,实在是忍不了了 C++最恶心的地方在于指针引用与面向对象混用!!TMD各种不匹配 举例: template <typename TDevice> ...

  6. Win7去掉桌面图标小箭头

    去掉win7的快捷方式的小箭头: 每当我们装完一个软件,在桌面生成快捷方式的时候总会有个小箭头,有些朋友看到觉得很烦,如何去掉这个小箭头呢? 点击开始图标 - 附件 - 命令提示符(有情提示,请右击用 ...

  7. Sublime Text3注册激活和部分配置

    1.  更改hosts文件(参照:sublime text3 破解方法,亲测有效) windows系统的hosts文件在C:\Windows\System32\drivers\etc在hosts文件中 ...

  8. HDU 3507 - Print Article - [斜率DP]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3507 Zero has an old printer that doesn't work well s ...

  9. Linux:file命令显示自定义文件类型

    file 命令可以查看文件类型信息,原理见: 非常Linux-file命令与magic file 修改 /ect/magic 文件后,可用 file 命令显示自定义文件类型信息. man magic ...

  10. Oracle SQL之 序列使用限制

    Restrictions on Sequence Values You cannot use CURRVAL and NEXTVAL in thefollowing constructs:■ A su ...