斯坦福机器学习公开课笔记(十五)--[应用]照片OCR技术
2013-06-27 11:29
633 查看
公开课地址:https://class.coursera.org/ml-003/class/index
授课老师:Andrew Ng
关于过程,主要有以下几个步骤:
首先是检测文字,找到文字出现的区域,然后是对文字进行划分变成一个个单一的字母,最后是对字母进行识别,附加功能是对识别出来的字母进行拼接,对得到的单词进行拼写检查纠错。也可以用流水线的方式表示:
为了检测出行人,首先需要训练一个模型来判断什么是行人,为此可以把标记好的行人的图片和非行人的图片放在一起训练:
训练好了模型,然后再用滑动窗口在图像上面扫描,判断每个扫描区域内是否包含行人:
扫描时需要先指定窗口的大小,一般来说是先指定一个较小的窗口,在图上扫描一遍之后再换一个较大的窗口进行扫描。最终就能把所有的行人扫描出来:
回到最早提出的文本检测,通过滑动窗口扫描后的结果如下:
图中白色区域就是有文字的地方,找出这些区域后,对区域中的文字进行分割,这时依然是采用滑动窗口的方法,只不过这里不再是把字母当成正样本,而是把分割区域当成正样本:
要注意的是如果加入无意义的噪声和变换,那对于增加数据是没有帮助的:
下面是关于获取数据一些讨论,例如必须要在偏差较小的前提下,在走入死胡同时可以问问自己如何获得10倍数据,也许会豁然开朗:
如上图所示,文本识别中有四个部分组成,我们现在求出针对每个部分优化后的系统准确率,现在的问题是如何提高整个系统的准确率?从表中可以看到,假设我们优化了文本检测这个部分,那么准确率将会从72%增加到89%,如果我们优化字符分割这个部分,准确率只不过从89%提高到90%而已,如果优化了字符识别,准确率从90%提高到100%,相比之下,优化文本检测带来的提升最大,其次是字符识别。这样分析得到的结果就是应该对文本检测和字符识别进行优化。再举一个人脸识别的例子:
可以看到,优化预处理(移去背景)带来的准度率提升最高。
-------------------------------------弱弱的分割线---------------------------------------
这一讲介绍了机器学习在日常生活中的应用-OCR技术,这个技术现在已经很常见了,很多路口识别车辆牌照的系统就是采用这个技术。作为机器学习十周课程的最后一讲,很高兴看到这里回到了具体应用的层面,我觉得这才是机器学习的魅力所在,期待机器学习更美好的未来。感谢Andrew
Ng教授,感谢Coursera。
授课老师:Andrew Ng
1、problem description and pipeline(问题描述和流水线)
OCR是optical character recognition的缩写,翻译过来就是光学字符辨识。照片中的OCR技术其实就是识别中照片中存在的字符,例如下面这幅图:关于过程,主要有以下几个步骤:
首先是检测文字,找到文字出现的区域,然后是对文字进行划分变成一个个单一的字母,最后是对字母进行识别,附加功能是对识别出来的字母进行拼接,对得到的单词进行拼写检查纠错。也可以用流水线的方式表示:
2、sliding windows(滑动窗口)
滑动窗口是一种从图像中提取出特定物体的技术,上面的文本检测使用的就是滑动窗口技术,这里换一个例子,从图片中检测出行人:为了检测出行人,首先需要训练一个模型来判断什么是行人,为此可以把标记好的行人的图片和非行人的图片放在一起训练:
训练好了模型,然后再用滑动窗口在图像上面扫描,判断每个扫描区域内是否包含行人:
扫描时需要先指定窗口的大小,一般来说是先指定一个较小的窗口,在图上扫描一遍之后再换一个较大的窗口进行扫描。最终就能把所有的行人扫描出来:
回到最早提出的文本检测,通过滑动窗口扫描后的结果如下:
图中白色区域就是有文字的地方,找出这些区域后,对区域中的文字进行分割,这时依然是采用滑动窗口的方法,只不过这里不再是把字母当成正样本,而是把分割区域当成正样本:
3、getting lots of data:artificial data synthesis(获取大量数据-人工数据合成)
在上一讲中我们知道如果模型的偏差值较小,训练样本越多意味着模型效果越好。不过有时弄到数据不是那么简单的,尤其是大量的数据。如果没有足够的数据来训练,那么就该人工创造出一些数据,例如我们可以把原来正常的图片进行扭曲,就能得到新的数据,如果对于音频,可以增加背景噪声:要注意的是如果加入无意义的噪声和变换,那对于增加数据是没有帮助的:
下面是关于获取数据一些讨论,例如必须要在偏差较小的前提下,在走入死胡同时可以问问自己如何获得10倍数据,也许会豁然开朗:
4、ceiling analysis:what part of the pipeline to work on next(上限分析)
可以说,机器学习的过程就像一个流水线一样由很多部分组成,显然每个部分都具有一定的误差,为了提高准确率,我们需要知道该对哪个部分进行进一步完善,这时就要用到上限分析方法,该方法依次假设流水线上的某个部分达到完美状态,这样输出的数据将会是完美数据,那下一个部分获取的是没有误差的完美数据,计算这个时候整个系统的准确率:如上图所示,文本识别中有四个部分组成,我们现在求出针对每个部分优化后的系统准确率,现在的问题是如何提高整个系统的准确率?从表中可以看到,假设我们优化了文本检测这个部分,那么准确率将会从72%增加到89%,如果我们优化字符分割这个部分,准确率只不过从89%提高到90%而已,如果优化了字符识别,准确率从90%提高到100%,相比之下,优化文本检测带来的提升最大,其次是字符识别。这样分析得到的结果就是应该对文本检测和字符识别进行优化。再举一个人脸识别的例子:
可以看到,优化预处理(移去背景)带来的准度率提升最高。
-------------------------------------弱弱的分割线---------------------------------------
这一讲介绍了机器学习在日常生活中的应用-OCR技术,这个技术现在已经很常见了,很多路口识别车辆牌照的系统就是采用这个技术。作为机器学习十周课程的最后一讲,很高兴看到这里回到了具体应用的层面,我觉得这才是机器学习的魅力所在,期待机器学习更美好的未来。感谢Andrew
Ng教授,感谢Coursera。
相关文章推荐
- 斯坦福机器学习公开课笔记
- 斯坦福机器学习公开课笔记(八)--机器学习系统设计
- 斯坦福大学公开课 :机器学习课程笔记-[第1集] 机器学习的动机与应用
- 斯坦福机器学习公开课学习笔记(1)—机器学习的动机与应用
- 斯坦福机器学习公开课笔记(二)--多变量线性回归
- 斯坦福机器学习公开课笔记--神经网络的学习
- 国际名校公开课 斯坦福大学公开课 :机器学习课程 机器学习的动机与应用 学习笔记
- 斯坦福大学公开课 :机器学习课程笔记-[第2集] 监督学习应用.梯度下降
- 斯坦福机器学习公开课学习笔记(2)—监督学习 梯度下降
- 斯坦福机器学习公开课笔记(十三)--推荐系统
- NET 应用架构指导 V2 学习笔记(十五) 数据访问层指导 技术、性能、安全、部署、以及设计步骤考虑
- 斯坦福机器学习公开课笔记(十四)--大规模机器学习
- 斯坦福机器学习公开课笔记(一)--单变量线性回归
- 【PDF下载】金融技术峰会之大规模机器学习在蚂蚁+阿里的应用
- 斯坦福机器学习公开课笔记(六)--神经网络的学习
- 2011年冬斯坦福大学公开课 iOS应用开发教程学习笔记(第四课) Views 视图
- SQL Server 2005 技术内幕 TSQL查询学习笔记chapter4之三排名函数Row_number()和分页应用
- 【机器学习-斯坦福】学习笔记1 - 机器学习的动机与应用
- 斯坦福机器学习公开课7-x过拟合欠拟合和解决方法
- 机器学习斯坦福公开课学习笔记