IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python简单验证码识别两种方法 -> 正文阅读

[人工智能]python简单验证码识别两种方法

既然是要简单,当然是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
?
# 1. 导入包
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()
?
# 2. 初始化;model_type 可选: [ModelType.OCR, ModelType.Captcha]
sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.OCR)
?
# ModelType.Captcha 可识别光学印刷文本
for i in range(5):
    st = time.time()
    # 3. 调用预测函数
    text = sdk.predict(image_bytes=ocr_bytes)
    print(text, time.time() - st)
?
# ModelType.Captcha 可识别4-6位验证码
sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.Captcha)
for i in range(5):
    st = time.time()
    # 3. 调用预测函数
    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。

  1. land007/docker_muggle_ocr: docker_muggle_ocr
  2. 20142995/muggle_ocr_flask
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:26:47  更:2022-04-24 09:29:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:03:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码