Stanford 机器学习笔记 Week11 Application Example: Photo OCR

Photo OCR

Problem Description and Pipeline

OCR: Optical Character Recognition
步骤:
1.识别包含文字的图片区域
2.将每块图片中的各个文字分隔开
3.对每个文字进行识别

这种算法流程被称为pipeline,前一个模块的输出是下一个模块的输入。

Sliding Windows

本节分别介绍一下上述三个步骤的实现过程:

1.Text Detection:
这里先介绍一个简单的问题:图片中行人的识别。因为现实生活中每个人像的宽高比基本相同,所以这是一个简化版问题。使用机器学习解决,假设所有人像大小都是82*36的,那么训练集为许多张这个大小的图片,一些是人像,一些不是,这是一个监督型问题。
训练得到模型后,给定一张新图片,使用一个82*36大小的窗口依次遍历整张图片,并使用模型判断当前窗口中是否为行人。由于还涉及到近大远小,可以等比例放大窗口再次遍历,之后缩小为82*36来判断。

这个算法也可应用于Test Detection。每个字母的大小基本相同,遍历得到可能是字母的所有区域后,将相邻的区域连接起来视为一块(一个单词),最后把那些仍只有一个字母的区域排除(误判为字母的可能性大)。

2.Character Segmentation:
对于上一步得到的每个单词,使用机器学习做分割。这次的训练集图片不是字母,而是两个字母相邻中间的分割空白(不同字母间的空白基本相同,更适合训练)。

3.使用机器学习对分割完的每个字母做判断。

Getting lots of data: Artificial data synthesis

在寻找更多图像做数据时,我们可以利用已有数据构造,几个简单的方法:
1.给图像中的元素更换背景。
2.扭曲图像
3.旋转图像

想办法使你构造的数据更真实

Ceiling analysis: What part of the pipeline to work on next

单元测试:
假设你的pipeline分为4个部分。测试每个部分提高的潜力的方法:

1.计算当前算法系统整体精确度。
2.手动使该部分精确度为100%(该部分直接按训练集中的label输出),再次计算精确度。
3.计算两精确度之差,这就是该模块的潜力。

应优先优化潜力高的模块。

Summary and Thank You

历时11周,终于跟完了这门课,对ML有了一个入门级的认识,接下来要投入更多的时间进行更深入的学习。

Andrew Ng真是非常nice,一张图:
这里写图片描述

Thank you!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值