斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术


公开课地址:https://class.coursera.org/ml-003/class/index 
授课老师:Andrew Ng

1、problem description and pipeline(问题描述和流水线)

OCRoptical character recognition的缩写,翻译过来就是光学字符辨识。照片中的OCR技术其实就是识别中照片中存在的字符,例如下面这幅图:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第1张图片

关于过程,主要有以下几个步骤:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第2张图片

首先是检测文字,找到文字出现的区域,然后是对文字进行划分变成一个个单一的字母,最后是对字母进行识别,附加功能是对识别出来的字母进行拼接,对得到的单词进行拼写检查纠错。也可以用流水线的方式表示:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第3张图片

2、sliding windows(滑动窗口)

滑动窗口是一种从图像中提取出特定物体的技术,上面的文本检测使用的就是滑动窗口技术,这里换一个例子,从图片中检测出行人:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第4张图片

为了检测出行人,首先需要训练一个模型来判断什么是行人,为此可以把标记好的行人的图片和非行人的图片放在一起训练:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第5张图片


训练好了模型,然后再用滑动窗口在图像上面扫描,判断每个扫描区域内是否包含行人:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第6张图片

扫描时需要先指定窗口的大小,一般来说是先指定一个较小的窗口,在图上扫描一遍之后再换一个较大的窗口进行扫描。最终就能把所有的行人扫描出来:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第7张图片

回到最早提出的文本检测,通过滑动窗口扫描后的结果如下:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第8张图片

图中白色区域就是有文字的地方,找出这些区域后,对区域中的文字进行分割,这时依然是采用滑动窗口的方法,只不过这里不再是把字母当成正样本,而是把分割区域当成正样本:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第9张图片

3、getting lots of data:artificial data synthesis(获取大量数据-人工数据合成)

在上一讲中我们知道如果模型的偏差值较小,训练样本越多意味着模型效果越好。不过有时弄到数据不是那么简单的,尤其是大量的数据。如果没有足够的数据来训练,那么就该人工创造出一些数据,例如我们可以把原来正常的图片进行扭曲,就能得到新的数据,如果对于音频,可以增加背景噪声:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第10张图片

要注意的是如果加入无意义的噪声和变换,那对于增加数据是没有帮助的:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第11张图片

下面是关于获取数据一些讨论,例如必须要在偏差较小的前提下,在走入死胡同时可以问问自己如何获得10倍数据,也许会豁然开朗:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第12张图片

4、ceiling analysis:what part of the pipeline to work on next(上限分析)

可以说,机器学习的过程就像一个流水线一样由很多部分组成,显然每个部分都具有一定的误差,为了提高准确率,我们需要知道该对哪个部分进行进一步完善,这时就要用到上限分析方法,该方法依次假设流水线上的某个部分达到完美状态,这样输出的数据将会是完美数据,那下一个部分获取的是没有误差的完美数据,计算这个时候整个系统的准确率:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第13张图片

如上图所示,文本识别中有四个部分组成,我们现在求出针对每个部分优化后的系统准确率,现在的问题是如何提高整个系统的准确率?从表中可以看到,假设我们优化了文本检测这个部分,那么准确率将会从72%增加到89%,如果我们优化字符分割这个部分,准确率只不过从89%提高到90%而已,如果优化了字符识别,准确率从90%提高到100%,相比之下,优化文本检测带来的提升最大,其次是字符识别。这样分析得到的结果就是应该对文本检测和字符识别进行优化。再举一个人脸识别的例子:

斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术_第14张图片

可以看到,优化预处理(移去背景)带来的准度率提升最高。

-------------------------------------弱弱的分割线---------------------------------------

这一讲介绍了机器学习在日常生活中的应用-OCR技术,这个技术现在已经很常见了,很多路口识别车辆牌照的系统就是采用这个技术。作为机器学习十周课程的最后一讲,很高兴看到这里回到了具体应用的层面,我觉得这才是机器学习的魅力所在,期待机器学习更美好的未来。感谢Andrew Ng教授,感谢Coursera。

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