训练验证码之ddddocr一个图文视频教学

2024-03-10 00:12

本文主要是介绍训练验证码之ddddocr一个图文视频教学,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

      • 一、推荐文章视频
      • 一、ddddocr环境配置
      • 二、字符集验证码训练
      • 三、ocr_api_server服务搭建

一、推荐文章视频

  • 文章原文来自这里:训练验证码-4、ddddocr训练字符验证码 , 原文文章末尾有视频介绍
  • 更多内容见训练验证码合集

一、ddddocr环境配置

1.打开ddddocr项目 https://github.com/sml2h3/dddd_trainer 进行下载压缩包并解压,文章末尾是视频介绍,如果文字有些不清楚,可以看视频操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

fire
loguru
pyyaml
tqdm
numpy
pillow==9.5.0
onnx
ddddocr-py311

5.创建ddddocr训练专属的虚拟环境,注意这里我安装的pytorch版本对应,请看上面文章找自己cuda对应的torch版本安装(该篇文章 深度学习环境安装 目录三),依次执行如下命令

  • conda create -n dd python=3.11
  • conda activate dd
  • pip install -r requirements.txt
  • N卡gpu训练:conda install pytorch2.0.1 torchvision0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c nvidia
  • 只cpu训练:conda install pytorch2.0.1 torchvision0.15.2 torchaudio==2.0.2 cpuonly
    在这里插入图片描述
    6.可以训练字母/数字/汉字/定长/不定长/大小写/乘号加减号等,报错解决推荐文章 https://blog.csdn.net/weixin_68123638/article/details/131463026

二、字符集验证码训练

1.创建训练项目:python app.py create charprj , 如图这时候在dddd_trainer/projects下会自动生成一个charprj的文件夹,并且包含三个空文件夹cache、checkpoints、models 和一个config.yaml配置文件
在这里插入图片描述
2.准备数据集:听说至少需要1200张图片(不确定), 如图我在D:\Yzmtrain\images_char 目录下面放了一些数据集,这些数据集的命名,名称_随机hash值
在这里插入图片描述
3.如果是单个汉字的话,python app.py create charprj --single , 如果想要创建一个CNN的项目,则可以加上–single参数,CNN项目识别比如图片类是什么分类的情况,比如图片上只有一个字,识别这张图是什么字(图上有多个字的不要用CNN模式),又比如分辨图片里是狮子还是兔子用CNN模式比较合适,大多数OCR需求请不要使用–single
在这里插入图片描述
3.缓存数据配置:python app.py cache charprj D:\Yzmtrain\images_char ,dddd_trainer/cache文件夹下会生成两个文件cache.train.tmp和cache.val.tmp,里面记录的就是images文件夹下面的图片信息
在这里插入图片描述

Model:CharSet: []     # 字符集,不要动,会自动生成ImageChannel: 1 # 图片通道数,如果你想以灰度图进行训练,则设置为1,彩图,则设置为3。如果设置为1,数据集是彩图,项目会在训练的过程中自动在内存中将读取到的彩图转为灰度图,并不需要提前自己修改并且该设置不会修改本地图片ImageHeight: 64 # 图片自动缩放后的高度,单位为px,高度必须为16的倍数,会自动缩放图像ImageWidth: -1  # 图片自动缩放后的宽度,单位为px,本项若设置为-1,将自动根据情况调整Word: false     # 是否为CNN模型,这里在创建项目的时候通过参数控制,不要自己修改
System:Allow_Ext: [jpg, jpeg, png, bmp]  # 支持的图片后缀,不满足的图片将会被自动忽略GPU: true                         # 是否启用GPU去训练,使用GPU训练需要参考步骤一安装好环境GPU_ID: 0                         # GPU设备号,0为第一张显卡Path: ''                          # 数据集根目录,在缓存图片步骤会自动生成,不需要自己改,除非数据集地址改了Project: test                     # 项目名称 也就是{project_name}Val: 0.03                         # 验证集的数据量比例,0.03就是3%,在缓存数据时,会自动选则3%的图片用作训练过程中的数据验证,修改本值之后需要重新缓存数据
Train:BATCH_SIZE: 32                                    # 训练时每一个batch_size的大小,主要取决于你的显存或内存大小,可以根据自己的情况,多测试,一般为16的倍数,如16,32,64,128CNN: {NAME: ddddocr}                              # 特征提取的模型,目前支持的值为ddddocr,effnetv2_l,effnetv2_m,effnetv2_xl,effnetv2_s,mobilenetv2,mobilenetv3_s,mobilenetv3_lDROPOUT: 0.3                                      # 非专业人员不要动LR: 0.01                                          # 初始学习率OPTIMIZER: SGD                                    # 优化器,不要动SAVE_CHECKPOINTS_STEP: 2000                       # 每多少step保存一次模型TARGET: {Accuracy: 0.97, Cost: 0.05, Epoch: 20}   # 训练结束的目标,同时满足时自动结束训练并保存onnx模型,Accuracy为需要满足的最小准确率,Cost为需要满足的最小损失,Epoch为需要满足的最小训练轮数TEST_BATCH_SIZE: 32                               # 测试时每一个batch_size的大小,主要取决于你的显存或内存大小,可以根据自己的情况,多测试,一般为16的倍数,如16,32,64,128TEST_STEP: 1000                                   # 每多少step进行一次测试

4.训练或者恢复训练:python app.py train charprj
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import ddddocrocr = ddddocr.DdddOcr(det=False, ocr=False, show_ad=False, import_onnx_path="charprj_1.0_23_6000_2023-10-26-23-47-08.onnx", charsets_path="charsets.json")with open(r"D:\Yzmtrain\img_other\1CBH_1578451419953.png", 'rb') as f:image_bytes = f.read()print(ocr.classification(image_bytes))

三、ocr_api_server服务搭建

1.服务搭建详细内容看这个吧,本文不介绍https://github.com/sml2h3/ocr_api_server
2、更多内容见训练验证码合集
在这里插入图片描述
在这里插入图片描述

这篇关于训练验证码之ddddocr一个图文视频教学的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/792406

相关文章

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

IDEA接入Deepseek的图文教程

《IDEA接入Deepseek的图文教程》在本篇文章中,我们将详细介绍如何在JetBrainsIDEA中使用Continue插件接入DeepSeek,让你的AI编程助手更智能,提高开发效率,感兴趣的小... 目录一、前置准备二、安装 Continue 插件三、配置 Continue 连接 DeepSeek四

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

JAVA集成本地部署的DeepSeek的图文教程

《JAVA集成本地部署的DeepSeek的图文教程》本文主要介绍了JAVA集成本地部署的DeepSeek的图文教程,包含配置环境变量及下载DeepSeek-R1模型并启动,具有一定的参考价值,感兴趣的... 目录一、下载部署DeepSeek1.下载ollama2.下载DeepSeek-R1模型并启动 二、J

Python自动化处理手机验证码

《Python自动化处理手机验证码》手机验证码是一种常见的身份验证手段,广泛应用于用户注册、登录、交易确认等场景,下面我们来看看如何使用Python自动化处理手机验证码吧... 目录一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开