机器学习实例:图像文本识别【Coursera 斯坦福 机器学习】

本文基于Coursera 斯坦福吴恩达机器学习课程

谢绝任何不标记出处的转载

如有问题请联系作者


1. Machine Learning Pipeline

对于一个具体的机器学习问题,我们可能会通过将任务分为不同阶段,使用不同的机器学习方法来完成。Photo OCR (

Photo Optical Character Recognition
 图像文字识别)就是其中一种。其pipeline如下图所示。首先获取图像,然后对图像中的文本进行抓取,对文本内容进行分割、识别。在这个过程之后,可能还有更具体的操作,比如有道词典的屏幕取词(我猜的,具体有道怎么做的我没研究过。。)等等。

机器学习实例:图像文本识别【Coursera 斯坦福 机器学习】_第1张图片


下面是一个人脸识别的例子(在现实操作中,过程远比这个复杂)。

机器学习实例:图像文本识别【Coursera 斯坦福 机器学习】_第2张图片

有点好奇在实际操作中,工程师们是如何分工的。


2. 滑动窗口Sliding Windows

2.1 Text Detection

滑动窗口通过遍历图片来抓取文本。如下图例子所示。我们想抓取图片中所有的行人,首先需要两组图片,一组全部为行人(y=1),一组全部没有行人(y=0)。然后,我们使用固定长*高的矩形窗口,以固定的step size从左到右/从上到下进行滑动,来探查行人。

机器学习实例:图像文本识别【Coursera 斯坦福 机器学习】_第3张图片

在探查的过程中,机器学习算法的流程如下图所示。首先将所有怀疑是文本(估计值为1)的位置标白,其余估计值为0的位置标黑,我们会得到如下图第二行左图所示图像。然后我们对白色的点进行“expansion”,即根据实际情况合理扩大白色区域范围,包括可能遗漏的文字信息。可以看到,店铺名称那一行明显被扩大了。之后,我们可以对标白的地方做一些处理,比如第二行右图画叉的几个地方,就是因为长高比不合理,怀疑那里没有文字,所以被去掉了。这种方法也有误差,比如说第一行实景图画圈的地方并没有被识别出来,因为那个地方的文字是附在玻璃上的,所以识别有困难。

机器学习实例:图像文本识别【Coursera 斯坦福 机器学习】_第4张图片


2.2 Character Segmentation

对于字符分割,我们依然可以使用滑动窗口。这里的主要问题就是滑动窗口的位置是否合适。如下图所示,在滑动时很可能不能准确定位到字符,而是滑到了两个字符之间。这里我们使用一个额外的算法(分类器)来确定是否滑到的是两个字符之间,如果是,y=1, 否则y=0. 然后使用y=0的结果进行下一步操作。

机器学习实例:图像文本识别【Coursera 斯坦福 机器学习】_第5张图片


3. 人造数据

我们可以从互联网的开源资源中下载,也可以自己做,如下图所示,利用图像失真将一个A变成四个不同的样本。要注意的是,我们放四个同样的A是不利于模型训练的。这里很好理解,模型的好坏取决于对noise的处理,bias要小。我们利用失真是给数据增加了不同的noise,而加四个一模一样的数据它还是一个noise,甚至我们得到的结果可能都不会改变,只是耗费了更多时间。

机器学习实例:图像文本识别【Coursera 斯坦福 机器学习】_第6张图片

在做人造数据时,我们需要注意到,人造数据只是一个锦上添花的东西,根本还是在于模型的好坏。我们需要思考:

(1)在当下模型下,有没有必要再去扩大样本量;

(2)将样本扩大十倍的成本如何?——一般不会太困难,因为互联网资源什么的都很丰富,会比我们想象的简单。

(3)如何扩大样本?人造数据还是收集数据,提到了“crowd sourcing”的概念,例如Amazon Mechanical Turk,帮你label收集到的数据,就是比较贵。


4. 天花板分析Ceiling Analysis

对于工程师来说,时间是最宝贵的资源之一,那么在一个机器学习pipeline里,我们有着不同的分工,如何确定该把主要精力放在哪一部分呢?——可以使用ceiling analysis. 

天花板分析顾名思义就是对能力上限进行分析。对于上述的Photo OCR, 假设系统准确率范围为0-100%,目前为72%。我们将其pipeline每一环节能达到100%准确率时的系统准确率列表,如下图所示。我们可以得出结论如果将text detection做到100%准确率, 系统准确率可以提高17%。如果text detection准确率已经达到了100%,那么再将character segementation做到100%,整个系统也只能提高1%——不值得。注意photo OCR pipleline的准确率是一个迭代递进过程,而不是并行的。现实中也有并行的例子,比如上面的人脸识别,但是列出的如下图所示的表格,理论上它依然是一个迭代过程(这样也比较好想)。

机器学习实例:图像文本识别【Coursera 斯坦福 机器学习】_第7张图片


你可能感兴趣的:(machine,learning)