训练验证码之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

相关文章

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实现多路视频播放功能服务端开

Python实现视频转换为音频的方法详解

《Python实现视频转换为音频的方法详解》这篇文章主要为大家详细Python如何将视频转换为音频并将音频文件保存到特定文件夹下,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5. 注意事项

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对