本章目标
- OCR库概述
- 处理格式规范的文字
- 读取验证码与训练Tesseract
- 获取验证码提交答案
一、OCR库概述
概述
- 从 Google 的无人驾驶汽车到可以识别假钞的自动售卖机,机器视觉一直都是一个应用广泛且具有深远的影响和雄伟的愿景的领域。 在这一章里,重点介绍机器视觉的一个分支:文字识别,介绍如何用一些 Python 库来识别和使用在线图片中的文字。
场景
- 1.当你不想让自己的文字被网络机器人采集时, 把文字做成图片放在网页上是常用的办法。在一些联系人通讯录里经常可以看到,一个邮箱地址被部分或全部转换成图片。人们可能觉察不出明显的差异, 但是机器人阅读这些图片会非常困难,这种方法可以防止多数垃圾邮件发送器轻易地获取你的邮箱地址。
- 2.利用这种人类用户可以正常读取但是大多数机器人都没法读取的图片, 验证码(CAPTCHA)就出现了。验证码读取的难易程度也大不相同,有些验证码比其他的更加难读,后面我们会介绍这种问题。
- 3.目前, 有很多文档都是简单地扫描后直接放到网上, 它们和互联网上的很多文档一样都没法儿直接使用, 尽管它们都“近在眼前”。如果无法将图像转为文字,要想使用这些文档的内容,就只能人工手敲了——没人愿意花时间干这事儿。
方案
将图像翻译成文字一般被称为光学文字识别( Optical Character Recognition, OCR)。可以实现 OCR 的底层库并不多,目前很多库都是使用共同的几个底层 OC