图片OCR(Optical Character Recognition)

Photo OCR问题描述

随着网络上的图片的数量愈来愈多,读取图片上的文字成为了一个日益加强的需求。网络

这里写图片描述

这里写图片描述

按照photo ocr问题的各个处理流程,咱们能够大体为不一样的环节分配不一样数量的人去进行。机器学习

这里写图片描述

滑动窗口(Sliding Windows)

文字检测和行人检测的差异:ide

行人因为其矩形的长宽比例(ratio)大体比较固定(根据距离远近不一样产生差异),所以可能较为容易检测。而文字则可能有各类各样的形状,相对比较难以确认其所在的区域。性能

这里写图片描述

若是要创建一个行人检测的系统,咱们须要一些形状/像素相同的照片,分别是有行人的正例,和没有行人的反例。学习

这里写图片描述

  • 滑动窗口检测

用一个固定比例的小矩形(patch)做为检测器,在目标图片上逐渐平移,每次平移距离称为step-size/stride。用这个小矩形在整个图片上完成一次完整的扫描,而后再用稍微大一点的矩形,重复操做。最后,记录下全部用小矩形检测到的行人。字体

这里写图片描述

  • 应用于文字检测

与行人检测相似,咱们用像素相同的正例和反例来作训练。component

这里写图片描述

在训练好检测器模型后,咱们就能够用模型来作检测工做。图片

这里写图片描述

如上图,首先咱们会用一个小滑动窗口完成一次扫描,而后标注出模型认为可能有文字的部分为白色小块,而后咱们将这些白色小块部分作一个扩张(expansion)(左图->右图)。以后没咱们能够用针对扩张后的,有较大面积,连续的和有规则轮廓的白色块,咱们将它们用矩形窗口框起来,再使用模型去尝试确认这些框起来的区域是否有文字。ip

这里写图片描述

  • 文字分割(Text Segmentation)

这是在文字检测后的下一个步骤。

以下图,一样,咱们用正例和反例训练出能够检测文字边界的检测器模型。

这里写图片描述

而后,咱们用滑动窗口扫描目标图像,并在每一个模型认为是文字边界的地方作标记。

  • Photo OCR pipeline

Photo OCR问题的处理流程:

这里写图片描述

得到大量数据和人工数据(Getting Logs of Data and Artificial Data)

机器学习模型的训练中,咱们每每须要大量的数据。而这些数据从哪里来呢?咱们能够用Artificial Data Synthesis(人工数据合成)。

以下图,假设咱们收集了一个文字识别的数据集(图像+字母标记),咱们如何将它”扩大“呢?

这里写图片描述

首先,字母能够变换成不少不一样的字体,而且给字母能够赋予不一样的背景样式。对真实数据(左图)进行一番变化后,咱们就能够得到合成数据(右图)。

另外,咱们还能够对数据图像引入必定程度的扭曲(以下图)。

这里写图片描述

相似的作法在语音识别(speech recognition)里面也有(为原始纯净的语音添加不一样的干扰音和背景音【噪音】)。

这里写图片描述

要注意的是,所添加的噪音/扭曲必须是在对应类型的数据集中比较有表明性的噪音/扭曲。

得到更多数据的注意事项:

  • 确认使用的是low bias的分类器(经过画学习曲线来判别)(若是是high bias的分类器,增长样本数量对提高模型性能已经不太有用了【见前面】,这时要增长训练特征数目,好比在神经网络里能够增长隐藏层的神经元数目)

  • 注意得到更多数据的投入成本。考虑到所付出的工做和模型可能从更多的数据中得到的性能改善,做出权衡。(不一样的三种途径:人工合成,本身搜集,众筹)

瓶颈分析:须要攻克的环节(Ceiling Analysis:What Part of the Pipeline to Work on Next)

咱们但愿在改善机器学习系统的性能时,把更多的精力投入到性价比比较高的部分,即改善的努力最有可能获得回报的部分,那么,咱们就须要首先找出当前是系统的哪一个部分对系统的性能限制最大。

以下图,回到文字识别问题,咱们对识别系统的不一样组件(component)的准确度进行对比:

这里写图片描述

按照流程的顺序,咱们会不断地将每一个涉及到模型性能的流程作一些调整,使得当前流程的模型表现“完美”,即经过调整,使某个流程的模型在某个数据集上表现100%准确(手工标记正确标签(ground-truth labels),而后将彻底正确处理过的数据再输入到下一个模型中)。这时,再测量系统的准确率如何,这个准确率也就是当前流程模型表现“完美”时的系统瓶颈(ceiling)性能。

得到了全部流程中的模型的表现完美的状况下,系统的瓶颈性能后,咱们就能够开始抉择,在哪些模型的改进上下功夫。固然是在可以使得瓶颈性能得到最大程度的改进的模型上!(上图中,是文字检测模型,由于能够得到最大72%->89%的大幅度改善。至于文字识别的100%识别率对于系统改进是没有太大参考意义的,由于其属于模型的最后输出判断结果的部分,它的改善在实际状况下会被前面的流程限制。)

以下图,另外一个瓶颈分析的例子:人脸识别。

这里写图片描述

这里写图片描述

相关文章
相关标签/搜索