训练验证码-4、ddddocr训练字符验证码

admin 2024年2月1日14:34:08评论75 views字数 3183阅读10分36秒阅读模式
训练验证码-4、ddddocr训练字符验证码

大家好,我是十一姐,b站时一十一姐啦,知识星球时光漫漫

训练验证码-4、ddddocr训练字符验证码
训练验证码-4、ddddocr训练字符验证码
训练验证码-4、ddddocr训练字符验证码
提示!本文章仅供学习交流,严禁用于非法用途,文章如有不当可联系本人删除!
目录
        一、ddddocr环境配置安装
       二、字符集验证码训练
       三、ocr_api_server服务搭建

上一篇:3、深度学习环境安装

下一篇:5、ddddocr识别字符/滑块/点选验证码

训练验证码-4、ddddocr训练字符验证码一、ddddocr环境配置

1.打开ddddocr项目 https://github.com/sml2h3/dddd_trainer 进行下载压缩包并解压,文章末尾是视频介绍,如果文字有些不清楚,可以看视频操作
训练验证码-4、ddddocr训练字符验证码
2.将压缩包解压后,打开如下,切换到ddddocr项目目录下面
训练验证码-4、ddddocr训练字符验证码
3.然后直接在当前目录位置,输入cmd打开cmd窗口
训练验证码-4、ddddocr训练字符验证码
4.修改下requirements.txt文件内容,如图,如果你是python3.11一下,就改成ddddocr-py311的
训练验证码-4、ddddocr训练字符验证码
firelogurupyyamltqdmnumpypillow==9.5.0onnxddddocr-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 pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c nvidia
  • 只cpu训练:conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 cpuonly
训练验证码-4、ddddocr训练字符验证码
训练验证码-4、ddddocr训练字符验证码
训练验证码-4、ddddocr训练字符验证码
6.可以训练字母/数字/汉字/定长/不定长/大小写/乘号加减号等,报错解决推荐文章 https://blog.csdn.net/weixin_68123638/article/details/131463026

训练验证码-4、ddddocr训练字符验证码二、字符集验证码训练

1.创建训练项目:python app.py create charprj  , 如图这时候在dddd_trainer/projects下会自动生成一个charprj的文件夹,并且包含三个空文件夹cache、checkpoints、models 和一个config.yaml配置文件
训练验证码-4、ddddocr训练字符验证码
2.准备数据集:听说至少需要1200张图片(不确定), 如图我在D:Yzmtrainimages_char 目录下面放了一些数据集,这些数据集的命名,名称_随机hash值
训练验证码-4、ddddocr训练字符验证码
3.如果是单个汉字的话,python app.py create charprj --single , 如果想要创建一个CNN的项目,则可以加上--single参数,CNN项目识别比如图片类是什么分类的情况,比如图片上只有一个字,识别这张图是什么字(图上有多个字的不要用CNN模式),又比如分辨图片里是狮子还是兔子用CNN模式比较合适,大多数OCR需求请不要使用--single
训练验证码-4、ddddocr训练字符验证码
3.缓存数据配置:python app.py cache charprjD:Yzmtrainimages_char  ,dddd_trainer/cache文件夹下会生成两个文件cache.train.tmp和cache.val.tmp,里面记录的就是images文件夹下面的图片信息
训练验证码-4、ddddocr训练字符验证码
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,128    CNN: {NAME: ddddocr}                              # 特征提取的模型,目前支持的值为ddddocr,effnetv2_l,effnetv2_m,effnetv2_xl,effnetv2_s,mobilenetv2,mobilenetv3_s,mobilenetv3_l    DROPOUT: 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,128    TEST_STEP: 1000                                   # 每多少step进行一次测试
4.训练或者恢复训练:python app.py train charprj
训练验证码-4、ddddocr训练字符验证码
5.训练成功后会在dddd_trainer/models文件夹下生成两个文件onnx的和json的 ,即识别模型
训练验证码-4、ddddocr训练字符验证码
6.如图我们测试一张没有训练过的验证码,然后进行识别,识别正确,至此训练字符集训练验证码以及识别验证码已入门
训练验证码-4、ddddocr训练字符验证码
训练验证码-4、ddddocr训练字符验证码
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:Yzmtrainimg_other1CBH_1578451419953.png", 'rb') as f: image_bytes = f.read()print(ocr.classification(image_bytes))

训练验证码-4、ddddocr训练字符验证码三、ocr_api_server服务搭建

1.服务搭建详细内容看这个吧,本文不介绍https://github.com/sml2h3/ocr_api_server
2.接下来的每天更新内容大致如下
训练验证码-4、ddddocr训练字符验证码
训练验证码-4、ddddocr训练字符验证码
17min视频介绍ddddocr训练验证码的流程,和文章内容一样
以及一些当时的学习经验笔记

训练验证码-4、ddddocr训练字符验证码

The End~ 更多交流加vx

训练验证码-4、ddddocr训练字符验证码
训练验证码-4、ddddocr训练字符验证码
训练验证码-4、ddddocr训练字符验证码点击下方“阅读原文”推荐看github项目介绍

原文始发于微信公众号(逆向OneByOne):训练验证码-4、ddddocr训练字符验证码

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月1日14:34:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   训练验证码-4、ddddocr训练字符验证码https://cn-sec.com/archives/2453700.html

发表评论

匿名网友 填写信息