吴恩达机器学习—应用实例:图片文字识别(15)

1. 问题描述和流程图

有一张图片,要求识别图片中的所有字符
工作流程是:
1)文本检测(将图片扫描一遍):获得包含了文本的文本框
吴恩达机器学习—应用实例:图片文字识别(15)_第1张图片
2)字符分割:从文本框中分割出各个字符
在这里插入图片描述3)字符分类(识别):字符分割中得到的只是一个个字符图形,在字符分类阶段,才能真正知道该字符类别。
吴恩达机器学习—应用实例:图片文字识别(15)_第2张图片步骤:
1.文字侦测(Text detection)——将图片上的文字与其他环境对象分离开来
2.字符切分(Character segmentation)——将文字分割成一个个单一的字符
3.字符分类(Character classification)——确定每一个字符是什么 可以用任务流程图来表达这个问题,每一项任务可以由一个单独的小队来负责解决:
在这里插入图片描述

2. 滑动窗口

滑动窗口是一项用来从图像中抽取对象的技术,是检测图像中目标对象的最常用手段。

1)检测阶段

首先定义正、负样本,正样本图像描述了含有字符的图像,负样本描述了不含字符的图像。在原图像沿行、列滑动定义好的窗口,并让窗口内图像与正负样本进行比较。一旦完成字符识别,将识别得出的区域进行扩展,然后将重叠的区域进行合并。接着以宽高比作为过滤条件,过滤掉高度比宽度更大的区域
(认为单词的长度通常比高度要大)。

2)分割阶段

训练一个模型来完成将文字分割成一个个字符的任务,需要的训练集由单个字符的图片和两个相连字符之间的图片来训练模型。
吴恩达机器学习—应用实例:图片文字识别(15)_第3张图片在这里插入图片描述
模型训练完后,仍然是使用滑动窗口技术来进行字符识别。

3)字符分类阶段

利用神经网络、支持向量机或者逻辑回归算法训练一个分类器即可。

3. 人工合成数据

在字符识别阶段,为了更好的完成分类识别任务,需要给系统提供尽可能多的训练图像,如果我们手头上拥有的图像不多,就需要人工合成更多的数据。例如,收集不同的字体,并为每种字体的每个字符加上随机背景,这样就可以人工扩展大量的字符图像。
另一种方法是,利用已有的数据,然后对其进行修改,例如将已有的字符图片进行一些扭曲、旋转、模糊处理。只要我们认为实际数据有可能和经过这样处理后的数据类似,便可以用这样的方法来创造大量的数据。
有关获得更多数据的几种方法:人工数据合成;手动收集、标记数据;众包

4. 上限分析

在机器学习的应用中,通常需要通过几个步骤才能进行最终的预测,在哪一部分最值得花时间和精力去改善,需要通过上限分析来得到。
文字识别应用中的流程图如下:在这里插入图片描述流程图中每一部分的输出都是下一部分的输入,上限分析中,假定某个组件及其前面组件的精度都达到了 100%,即该组件完美地完成了任务,达到了上限,那么此时整个系统的精度能提升多少 。通过提升的多少,决定在哪部分分配足够的时间和精力。
吴恩达机器学习—应用实例:图片文字识别(15)_第4张图片
如上图情况,在“Text detection”和“Character recognition”部分投入时间优化,能提升最终结果,而在“Character segmentation”部分投入大量优化也不能很好的提升最终结果。这样就可以指导我们的优化方向。

你可能感兴趣的:(机器学习--吴恩达,吴恩达机器学习,图片文字识别)