既然是要简单,当然是pip 一下现成库就能用的。
ddddocr 库
Github地址:https://github.com/sml2h3/ddddocr 谐音带带弟弟OCR ,环境要求python >= 3.8 Windows/Linux/Macox..
安装
pip install ddddocr
代码
以下代码识别当前目录的36个jpg验证码文件:
import ddddocr
ocr = ddddocr.DdddOcr()
for i in range(36):
try:
with open(f'./{i}.jpg', 'rb') as f:
img_bytes = f.read()
except IOError as ercode:
print('文件打开错误,错误代码:%s',str(ercode))
else:
print("识别中......")
res = ocr.classification(img_bytes)
print(f'Image{i}识别结果:{res}')
f.close()
muggle-ocr 库(麻瓜OCR)
这个号称轻量级,但是其实它还依赖400M+的tensorflow 。 使用起来也有好几个坑。环境要求Python >=3.6
安装
第1个坑: 由于未知原因(相信我,已经google过了),它已经从官方pip源撤掉了,包括清华,中科大。但是豆瓣/阿里云源镜像仍然可以下载。(我终于看到更新慢的一个优势了…)。然后我顺手在github上做了一个备份simonliu009/muggle-ocr: A backup of muggle-ocr pip package
pip install muggle-ocr -i https://pypi.douban.com/simple/
第2个坑: 安装依赖的tensorfow 的时候可能会提示rehash/pip: line 20: 109037 Killed 。 原因:内存不足。 解决方法:增加虚拟机内存(现在的机器内存不足通常是因为使用了虚拟机而分配的内存不够)。或者使用参数--no-cache-dir 。
第3个坑: 运行的时候提示libGL.so.1: cannot open shared object file: No such file or directory 。 解决方法: Ubuntu下sudo apt install libgl1-mesa-glx 即可。其他环境请自行搜索。
代码
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)
你也可以通过如下仓库使用docker部署muggle-ocr。
- land007/docker_muggle_ocr: docker_muggle_ocr
- 20142995/muggle_ocr_flask
|