探秘如何使用OCR识别简易验证码

现代互联网中,众多网站为了防止大规模的自动化访问行为,往往采取各种措施来检验操作是否属于人类实际指令,在这种背景下,各类验证码也就应运而生。最初阶段的验证码一般采用几个基本的数字和字母拼接而成,不过随着科学技术的日新月异以及图像识别技术性能的日益提升,验证码的复杂度和实现方法也在逐步改善和升级。

以下内容,我们将会以最为基础的文字图形验证码为例进行详细探讨,深度探索如何运用OCR(Optical Character Recognition)技术准确识别简易验证码。一般的文字图形校验码主要由数字和字母构成,思考到此特性,我们一般选用OCR技术以实现准确的图形识别功能。

探秘如何使用OCR识别简易验证码

OCR技术

准备工作

  1. 安装tesseract软件

这里我们使用tesserocr作为 OCR 识别工具,其是一款 Python 接口的 OCR 识别库,因此在使用之前需要安装 tesseract 的核心功能。下方为下载地址:

# tesseract 下载地址
https://digi.bib.uni-mannheim.de/tesseract/?C=M;O=A

探秘如何使用OCR识别简易验证码

下载列表

这里我们选择最新的版本20231005。

下载完成后即可双击运行安装,需要注意的是,如果需要识别除英文字母和数字外的其他文字内容,需要在安装过程中,点击 Additional language data 选项,然后勾选其他的文字才可以识别

探秘如何使用OCR识别简易验证码

可以选择其他语言安装

  1. 配置环境变量

安装完成后需要配置环境变量,这里需要配置两个路径,一个 Tesseract-OCR 本身的目录,另一个是 tessdata 目录(以自己实际路径为准)。

探秘如何使用OCR识别简易验证码

配置环境变量

  1. 验证是否安装并配置成功

配置完成后在命令行窗口验证是否配置成功。

探秘如何使用OCR识别简易验证码

验证是否成功

  1. 安装tessact Python库

配置完 tesseract 后,还需要下载 Python 支持库,一个是 Pillow 库用于读取图片,一个是 pytesseract 库,用于和安装的 tesseract 连接。

pip install Pillow
pip install pytesseract 
  1. 修改tessact变量

安装完 pytesseract 后,还需要修改一下 pytesseract.py 中的 tesseract_cmd 值,内容是安装的 tesseract.exe 的绝对路径(这里必须要修改,否则运行时会报找不到文件的错误)。

探秘如何使用OCR识别简易验证码

修改tesseract_cmd变量

到此,准备工作就算完成了,下一步就可以开始使用了。

开始使用

这里我们准备一张简单验证码图片,用于识别测试。

探秘如何使用OCR识别简易验证码

简单验证码

import pytesseract
from PIL import Image

# 读取图片
img = Image.open('img.png')
# 图片转字符串
code = pytesseract.image_to_string(img)
print(code)

#M8k2

探秘如何使用OCR识别简易验证码

识别结果

运行代码后可以看到,成功识别出了验证码字符串,而且整个代码超级简单

注意事项

tesseract 可识别的内容需要尽可能的整洁,字符串清晰,因此一些变种的字符串其识别成功率并不高。列如下方的,7364 验证码,就识别成了 1364。

探秘如何使用OCR识别简易验证码

识别错误的情况

探秘如何使用OCR识别简易验证码

2640 错误识别成了2B4D

尽管在识别变形验证码上存在识别不准的情况,但是反过来想,如果一个平整且清晰的文字图片岂不是可以超级规容易的识别吗?有什么好的用处呢?就需要发挥大家的想象了,应用到更多的场景。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
大信整体厨房黄桥店石塑地板的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容