Python muggle_ocr 库安装与验证码识别实战
muggle_ocr 是一个轻量级的 Python OCR 识别库,专门针对图片验证码识别优化,对各类验证码的识别率较高。虽然其通用文字提取效果相对普通,但在处理 4-6 位简单英数验证码方面表现优异。本文将详细介绍该库的安装、初始化及具体代码实现。
安装 muggle_ocr 库
首先,需要通过 pip 工具安装 muggle_ocr 库。在终端或命令行中执行以下命令即可完成安装:
pip install muggle_ocr初始化 SDK 与识别模式
安装完成后,在 Python 代码中导入库并初始化 SDK。muggle_ocr 提供了两种主要的工作模式,通过 model_type 参数进行区分:
- ModelType.OCR:用于识别常规的光学印刷文本。
- ModelType.Captcha:专门用于识别 4-6 位的简单英数验证码。
验证码识别代码示例
以下代码展示了如何使用 ModelType.Captcha 模式识别图片中的验证码。核心步骤包括读取图片二进制数据,并调用 sdk.predict() 函数进行识别。
import muggle_ocr
# 初始化 SDK,指定为验证码模式
sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.Captcha)
# 读取验证码图片文件
with open(r"d:\Desktop\四位验证码.png", "rb") as f:
img = f.read()
# 调用预测函数获取识别结果
text = sdk.predict(image_bytes=img)
print(text)常规文本与验证码对比测试
若需同时处理常规文本和验证码,可以分别初始化两个 SDK 实例进行对比测试。以下示例演示了如何读取不同图片并计算识别耗时:
import time
import muggle_ocr
# 1. 读取图片文件
# 打开印刷文本图片
with open(r"test1.png", "rb") as f:
ocr_bytes = f.read()
# 打开验证码图片
with open(r"test2.jpg", "rb") as f:
captcha_bytes = f.read()
# 2. 初始化 OCR 模式 SDK
sdk_ocr = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.OCR)
# 3. 调用预测函数识别印刷文本
for i in range(5):
st = time.time()
text = sdk_ocr.predict(image_bytes=ocr_bytes)
print(f"OCR Result: {text}, Time: {time.time() - st}")
# 初始化验证码模式 SDK
sdk_captcha = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.Captcha)
# 4. 调用预测函数识别验证码
for i in range(5):
st = time.time()
text = sdk_captcha.predict(image_bytes=captcha_bytes)
print(f"Captcha Result: {text}, Time: {time.time() - st}")使用自定义模型
muggle_ocr 支持基于 captcha_trainer 框架训练的自定义模型。若需使用自定义模型,需完成以下步骤:
- 训练完成后,进入导出编译模型的
[out]路径。 - 将
[graph]路径下的.pb模型文件和[model]下的.yaml配置文件放置在同一目录下。 - 在初始化 SDK 时,通过
conf_path参数指定.yaml配置文件的绝对路径或项目相对路径。
自定义模型的使用示例如下:
import muggle_ocr
# 读取待识别图片
with open(r"test3.jpg", "rb") as f:
b = f.read()
# 初始化 SDK,指定自定义配置文件路径
sdk = muggle_ocr.SDK(conf_path="./ocr.yaml")
# 调用预测函数
text = sdk.predict(image_bytes=b)
print(text)以上就是 muggle_ocr 库在 Python 中安装、初始化及识别验证码和常规文本的详细内容,更多关于 Python OCR 库的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













