先来看看MuggleOCR简介
(白嫖)这是一个为麻瓜设计的本地OCR模块 只需要简单几步操作即可拥有两大通用识别模块,让你在工作中畅通无阻。
这套模型是基于 https://github.com/kerlomz/captcha_trainer 训练的,对工具核心感兴趣的可以自行了解
官方文档
https://pypi.org/project/muggle-ocr/
使用说明
导入包
pip install muggle-ocr 这里注意下,因为模块使用了tensorflow,而tensorflow只支持python3.7以下,所以需要使用python3.6环境
代码示例
import time
import muggle_ocr
"""
使用预置模型,预置模型包含了[ModelType.OCR, ModelType.Captcha] 两种
其中 ModelType.OCR 用于识别普通印刷文本, ModelType.Captcha 用于识别4-6位简单英数验证码
"""
with open(r
"test1.png", "rb") as f
:
ocr_bytes
= f
.read
()
with open(r
"test2.jpg", "rb") as f
:
captcha_bytes
= f
.read
()
sdk
= muggle_ocr
.SDK
(model_type
=muggle_ocr
.ModelType
.OCR
)
for i
in range(5):
st
= time
.time
()
text
= sdk
.predict
(image_bytes
=ocr_bytes
)
print(text
, time
.time
() - st
)
sdk
= muggle_ocr
.SDK
(model_type
=muggle_ocr
.ModelType
.Captcha
)
for i
in range(5):
st
= time
.time
()
text
= sdk
.predict
(image_bytes
=captcha_bytes
)
print(text
, time
.time
() - st
)
"""
使用自定义模型
支持基于 https://github.com/kerlomz/captcha_trainer 框架训练的模型
训练完成后,进入导出编译模型的[out]路径下, 把[graph]路径下的pb模型和[model]下的yaml配置文件放到同一路径下。
将 conf_path 参数指定为 yaml配置文件 的绝对或项目相对路径即可,其他步骤一致,如下示例:
"""
with open(r
"test3.jpg", "rb") as f
:
b
= f
.read
()
sdk
= muggle_ocr
.SDK
(conf_path
="./ocr.yaml")
text
= sdk
.predict
(image_bytes
=b
)
OCR和验证码识别的速度基本都在10ms左右,低配CPU可能需要15-20ms。本模块仅支持单行识别,如有多行识别需求请自行采用目标检测预裁图片。