吴恩达机器学习18-应用实例:图片文字识别

1.问题描述

图像文字识别应用所作的事是,从一张给定的图片中识别文字。

为了完成这样的工作,需要采取如下步骤:


1.文字定位(Text detection)——将图片上的文字与其他环境对象分离开来
2.字符分割(Character segmentation)——将文字分割成一个个单一的字符
3.字符分类识别(Character classification)——确定每一个字符是什么 可以用任务流程图来表达这个问题,每一项任务可以由一个单独的小队来负责解决:

2.滑动窗口

滑动窗口是一项用来从图像中抽取对象的技术。以行人检测为例:

假使我们需要在一张图片中识别行人,首先要做的是用许多固定尺寸的图片来训练一个能够准确识别行人的模型:

然后我们用之前训练识别行人的模型时所采用的图片尺寸在我们要进行行人识别的图片上进行剪裁,然后将剪裁得到的切片交给模型,让模型判断是否为行人,然后在图片上滑动剪裁区域重新进行剪裁,将新剪裁的切片也交给模型进行判断,如此循环直至将图片全部检测完。

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

滑动窗口技术也被用于文字识别,首先训练模型能够区分字符与非字符:

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

通过文字定位之后,下一步是训练一个模型来完成将文字分割成一个个字符的任务,需要的训练集由单个字符的图片和两个相连字符之间的图片来训练模型。

模型训练完后,我们仍然是使用滑动窗口技术来进行字符识别。

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

如果我们的模型是低方差的,那么获得更多的数据用于训练模型,是能够有更好的效果的。

以我们的文字识别应用为例,我们可以字体网站下载各种字体,然后利用这些不同的字体配上各种不同的随机背景图片创造出一些用于训练的实例,这让我们能够获得一个无限大的训练集。这是从零开始创造实例。

另一种方法是,利用已有的数据,然后对其进行修改,例如将已有的字符图片进行一些扭曲、旋转、模糊处理。只要我们认为实际数据有可能和经过这样处理后的数据类似,我们便可以用这样的方法来创造大量的数据。

有关获得更多数据的几种方法:

1.人工数据合成
2.手动收集、标记数据
3.众包

在获取大量数据之前思考两个问题:

1.模型是否是低方差
2.获取大量数据需要耗费的精力

4 上限分析

在机器学习的应用中,我们通常需要通过几个步骤才能进行最终的预测,我们如何能够知道哪一部分最值得我们花时间和精力去改善呢?这个问题可以通过上限分析来回答。

文字识别应用中的流程图如下:

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

假使我们的例子中总体效果 72%的正确率。

如果我们令文字定位部分输出的结果 100%正确,发现系统的总体效果从 72%提高到了89%。这意味着我们很可能会希望投入时间精力来提高我们的文字侦测部分。

接着我们手动选择数据,让字符切分输出的结果 100%正确,发现系统的总体效果只提升了 1%,这意味着,我们的字符切分部分可能已经足够好了。

最后我们手工选择数据,让字符分类输出的结果 100%正确,系统的总体效果又提升了10%,这意味着我们可能也会应该投入更多的时间和精力来提高应用的总体表现。

所以精力应该放在文字定位和字符分类中。这就是上限分析的作用。

吴恩达机器学习18-应用实例:图片文字识别相关推荐

  1. 吴恩达机器学习[18]-大规模机器学习

    大规模机器学习 Large scale machine learning 学习大数据集 learning with large datasets 随机梯度下降 Stochastic Gradient ...

  2. 【CV】吴恩达机器学习课程笔记第18章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 18 应用案例:照片OCR 18-1 问题描述与流程(pi ...

  3. 吴恩达机器学习与深度学习作业目录 [图片已修复]

    python3.6 (一) 吴恩达机器学习作业目录 1 吴恩达机器学习作业Python实现(一):线性回归 2 吴恩达机器学习作业Python实现(二):logistic回归 3 吴恩达机器学习作业P ...

  4. 带你少走弯路:五篇文章学完吴恩达机器学习

    本文是吴恩达老师的机器学习课程[1]的笔记和代码复现部分,这门课是经典,没有之一.但是有个问题,就是内容较多,有些内容确实有点过时. 如何在最短时间学完这门课程?作为课程的主要翻译者和笔记作者,我推荐 ...

  5. 下载量过百万的吴恩达机器学习和深度学习笔记更新了!(附PDF下载)

    今天,我把吴恩达机器学习和深度学习课程笔记都更新了,并提供下载,这两本笔记非常适合机器学习和深度学习入门.(作者:黄海广) 0.导语 我和同学将吴恩达老师机器学习和深度学习课程笔记做成了打印版,放在g ...

  6. Github标星24300!吴恩达机器学习课程笔记.pdf

    个人认为:吴恩达老师的机器学习课程,是初学者入门机器学习的最好的课程!我们整理了笔记(336页),复现的Python代码等资源,文末提供下载. 课程简介 课程地址:https://www.course ...

  7. 3. 吴恩达机器学习课程-作业3-多分类和神经网络

    fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 3. ...

  8. 吴恩达机器学习笔记第一周

    第一周 吴恩达机器学习笔记第一周 一. 引言(Introduction) 1.1 欢迎 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学习 二.单变量线性回归(Linear Regress ...

  9. 吴恩达机器学习视频学习笔记

    吴恩达机器学习视频笔记 介绍 Introduction 线性回归 Linear Regression 单变量 One Variable 多变量 Multiple Variables 多项式回归 Pol ...

  10. 吴恩达机器学习笔记整理(Week6-Week11)

    1. Week 6 1.1 应用机器学习的建议(Advice for Applying Machine Learning) 1.1.1 决定下一步做什么 到目前为止,我们已经介绍了许多不同的学习算法, ...

最新文章

  1. [Python]Python操作/管理Mysql学习(一)
  2. 计算机的发展英语600词,急求一份有关计算机“存储器”的英语作文,600词左右可以多加分!...
  3. STM32F4 HAL库开发 -- 独立看门狗(IWDG)
  4. 谈谈利用JavaScript结合相对单位rem实现自适应布局的简单而实用的方法
  5. mysql 的驱动是多少_mysql驱动参数变化
  6. Magento: Beginner’s Guide(书籍推荐)
  7. DyFPN:浙大华为诺亚西湖大学等提出用于目标检测的动态特征金字塔,减少40%的FLOPs!...
  8. mysql集群如何保障数据分布均匀_如何保证数据库集群时候,主从库一致性的问题?...
  9. 北京信息科技大学计算机专业学科评估,北京信息科技大学学科评估结果排名(第四次):最新完整...
  10. java5 64_java8 64位(官方免费版下载2020)
  11. C语言基础之小写字母转大写
  12. 基于JAVA自行车在线租赁管理系统2021计算机毕业设计源码+系统+lw文档+部署
  13. windows启动修复_如何使用Windows启动修复工具修复启动问题
  14. 凸优化第三章凸函数 3.3共轭函数
  15. 为什么 ChatGPT 会引起 Google 的恐慌?
  16. 排查cpu feature 缺少x2apic原因
  17. wps插入visio流程图
  18. 区块链报告会心得体会3000_讲座心得体会3000
  19. 论文阅读:Oriented RepPoints for Aerial Object Detection (CVPR 2022)
  20. 神舟Z7本安装Linux系统,神舟战神z7-kp7s1装系统

热门文章

  1. mysql 错误代码1130_mysql出现错误码1130怎么办
  2. 电子邮件的地址格式是怎样的?请说明各部分的意思。
  3. java毕业设计选题基于JavaWeb实现疫情环境下校园宿舍|寝室管理系统
  4. NS-miracle安装
  5. Flash player 必要的系统组件未能正常运行,请修复Adobe Flash Player
  6. GRUB4DOS(十) 关于grldr.mbr和grldr
  7. 思维万能体系——申论
  8. 9.1练习题3 梦中的统计 题解
  9. matlab output()函数,matlab 函数y=f(input,output)该如何实现?
  10. 命令行帮助文档语法格式详解