Problem description and pipelinewindows
图像文字识别应用所做的事是,从一张给定的图片中识别文字。这比从一份扫描文档中识别文字要复杂的多。机器学习
为了完成这样的工做,须要采起以下步骤:
1. 文字侦测(Text detection)——将图片上的文字与其余环境对象分离开来
2. 字符切分(Character segmentation)——将文字分割成一个个单一的字符
3. 字符分类(Character classification)——肯定每个字符是什么 能够用任务流程图来表学习
达这个问题,每一项任务能够由一个单独的小队来负责解决:
字体
滑动窗口是一项用来从图像中抽取对象的技术。假使咱们须要在一张图片中识别行人,首先要作的是用许多固定尺寸的图片来训练一个可以准确识别行人的模型。而后咱们用以前训练识别行人的模型时所采用的图片尺寸在咱们要进行行 人识别的图片上进行剪裁,而后将剪裁获得的切片交给模型,让模型判断是否为行人,而后在图片上滑动剪裁区域从新进行剪裁,将新剪裁的切片也交给模型进行判断,如此循环直至将图片所有检测完。
一旦完成后,咱们按比例放大剪裁的区域,再以新的尺寸对图片进行剪裁,将新剪裁的切片按比例缩小至模型所采纳的尺寸,交给模型进行判断,如此循环。网站
以上即是文字侦测阶段。 下一步是训练一个模型来完成将文字分割成一个个字符的任务,须要的训练集由单个字符的图片和两个相连字符之间的图片来训练模型。spa
以咱们的文字识别应用为例,咱们能够字体网站下载各类字体,而后利用这些不一样的字体配上各类不一样的随机背景图片创造出一些用于训练的实例,这让咱们可以得到一个无限大的训练集。这是从零开始创造实例。
另外一种方法是,利用已有的数据,而后对其进行修改,例如将已有的字符图片进行一些扭曲、旋转、模糊处理。只要咱们认为实际数据有可能和通过这样处理后的数据相似,咱们即可以用这样的方法来创造大量的数据。对象
有关得到更多数据的几种方法:
1. 人工数据合成
2. 手动收集、标记数据
3. 众包 图片
在机器学习的应用中,咱们一般须要经过几个步骤才能进行最终的预测,咱们如何可以知道哪一部分最值得咱们花时间和精力去改善呢?这个问题能够经过上限分析来回答。回到咱们的文字识别应用中,咱们的流程图以下: ip
流程图中每一部分的输出都是下一部分的输入,上限分析中,咱们选取一部分,手工提供 100%正确的输出结果,而后看应用的总体效果提高了多少。假使咱们的例子中整体效果为 72%的正确率。
若是咱们令文字侦测部分输出的结果 100%正确,发现系统的整体效果从 72%提升到了 89%。这意味着咱们极可能会但愿投入时间精力来提升咱们的文字侦测部分。
接着咱们手动选择数据,让字符切分输出的结果 100%正确,发现系统的整体效果只提高了 1%,这意味着,咱们的字符切分部分可能已经足够好了。
最后咱们手工选择数据,让字符分类输出的结果 100%正确,系统的整体效果又提高了 10%,这意味着咱们可能也会应该投入更多的时间和精力来提升应用的整体表现。
ci