图像文字识别的任务是从一张给定的图片中识别文字。不同于文档的文字识别,图像文字识别首先要发现图像中哪个地方有文字。然后在进行文字识别。
完成这个任务的流水线如下:
1. 文字侦测(Text Detection)—— 确定图片中的文字在哪里
2. 字符切分(Character Segmentation)—— 把文字分割成单一的字符
3. 字符分类(Character Classification)—— 确定每个字符是什么
滑动窗口(Sliding windows)
滑动窗口用来从图像中抽取对象。
假设要在图片中寻找行人。下图中的绿框就是滑动窗口,它首先从左上角开始。
然后调用模型,判断滑动窗口内的内容是不是行人。然后,按照一定的规则移动滑动窗口,一直检测完整个图片
还可以改变窗口大小,然后重新监测整张图片。最终结果是这样的
滑动窗口的思路也被用于文字识别中的文字探测。这时模型可以区分字符和非字符。找到图片中的字符后,把相邻的字符结合起来作为文字区域即可。单个的字符可能被舍弃。
获得大量人工数据
当我们的模型高偏差时,获得更多训练模型会提高性能。有时可以把已有的数据进行一些处理,获得更多的数据。
例如:对已有的训练集中的文字进行扭曲和旋转,获得新的数据。
上限分析(Geiling Analysis)
文字识别中的流水线,如何判断提高流水线的哪一段对性能影响最大呢?
流水线中,上一部分的输出就是下一步的输入。我们可以手动设置100%正确的输出结果,然后看最终结果提升了多少。
假设我们的模型正确率72%,如果令文字侦探部分的结果100%正确,总体正确率提升到89%。这意味着我们很可能会希望投入时间精力来提高我们的文字侦测部分。
我们再让字符切分输出的结果100%正确,系统的总体效果只提升了1%,这意味着,字符切分部分可能已经足够好了。
文章《Andrew Ng机器学习课程笔记11——图像文字识别》共有1条评论: