• Stars
    star
    199
  • Rank 196,105 (Top 4 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 4 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

基于MobileNetV2/EfficientNet-b0/... + LSTM + CTC的不定长图像识别训练pytorch框架

captcha_trainer_pytorch

项目介绍

不定长验证码识别训练工具,基于Pytorch 1.6开发,神经网络结构为: CNN + LSTM + CTC。

本项目主要用于不定长验证码的训练,包含有模型预测推理的demo.

支持CPU/GPU训练,CPU训练速度缓慢,GPU训练速度约为CPU的50倍.

训练完成后部署可使用CPU,可无需使用GPU,CPU识别速度约为10-25ms.

项目参考: https://github.com/ghosthamlet/captcha_trainer .

使用提醒:使用本项目默认认为您已经具备了必要pytorch安装知识,python基础开发能力或有一定辨别错误类型或调试的能力。

项目使用手册

1. 初始化项目目录

python main.py init <project_name>

example:
    python main.py init test_framework

本条命令中<project_name>为您的项目名称,如您的项目名称为test_framework,则运行上面example中的命令

其中<project_name>为必填参数.

2. 导入数据集

python main.py data <project_name> <images_path> <scale=0.97> <words=False>

example:
    python main.py data test_framework D:\images
    python main.py data test_framework /mnt/images

本命令背后的支持模块仅支持 jpg、png、jpeg和bmp格式的图片数据,且统一存放在<images_path>目录下,样本需要按照abcd_xx.jpg的格式存放,abcd为您图像的具体标签,xx为任意随机值,用于区分同一标签的不同图像。

运行本命令后,工具会自动按照参数scale的值进行比例切割样本集为训练集和测试集,并在过程中检测图像的合法性,结果将被导出为两个包含有图像路径的json文件中。

scale参数应当小于1且大于0,数值代表的是训练集数目占全体样本数目的比例.

words参数为是否保留标签为一个单词整体,如abcd_xx.jpg命名的样本,默认words为False时标签将会被看作["a", "b", "c", "d"],如words为True时,标签将被视为["abcd"]

参数中project_name和images_path为必填,scale和words非必填

3. 训练项目

python main.py train <project_name>

example:
    python main.py train test_framework

这里就没啥好说的了~~~

训练过程中会在projects中对应项目名称的文件夹中的models文件夹生成pkl文件,用于训练中断后的恢复以及保存训练状态。

训练完成后会在graphs目录下生成onnx模型,在下一步中提供了调用onnx模型进行预测推理的demo,也可以自行研究移植到其他平台下调用。

4. 推理预测

修改server.py

python server.py

5. 配置项讲解

经过第1步,在projects目录下会生成对应项目名称的文件夹,其中会生成一个config.yaml文件。

Model:
  CharSet: '["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d",
    "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
    "u", "v", "w", "x", "y", "z"]' # 默认字符集,无需修改,在导入样本后会自动更新此项
  ImageChannel: 1 # 训练时期待的图像通道数,1为黑白,3为彩图
  ImageHeight: 50 # 原始图片的高度,其实改不改这里无所谓,暂时用不上
  ImageWidth: 150 # 原始图片的宽度,其实改不改这里无所谓,暂时用不上
  RESIZE: # 图像尺寸归一化
  - 150 # RESIZE 宽度
  - 50  # RESIZE 高度
  Word: false # 标签切割方式,配置里的这个暂时用不上
System:
  GPU: true # 是否启用GPU进行训练
  GPU_ID: 0 # 机器有多卡时指定用于训练的GPU的ID,默认从0开始
  Project: test_framework # 项目名称
Train:
  BATCH_SIZE: 32 # 训练时一个BATCH中有多少张图
  CNN:
    NAME: MobileNetV2 # 特征提取层的神经网络名称,目前支持有MobileNetV2和EfficientNet-b0
  LR: 0.01 # 学习率
  LSTM:
    DROPOUT: 0.8
    HIDDEN_NUM: 64
  OPTIMIZER: Momentum # 优化器,目前支持有Momentum以及Adam
  RNN:
    NAME: LSTM
  TARGET:
    Accuracy: 0.97 # 训练目标准确率,1为100%正确
    Cost: 0.005 # 目标损失率
    Epoch: 200
  TEST_BATCH_SIZE: 32 # 测试时一个BATCH中有多少张图
  TEST_STEP: 1000 

当前版本目前支持的特征提取层的网络为 MobileNetV2、EfficientNet-b0

qcc_tensorflow_trainer

查企业就上企查查

文安哲

当前版本号: v0.01

交流QQ群:778910502

More Repositories

1

ddddocr

带带弟弟 通用验证码识别OCR pypi版
Python
9,898
star
2

ddddocr-fastapi

使用ddddocr的最简api搭建项目,支持docker
Python
846
star
3

dddd_trainer

ddddocr训练工具
Python
802
star
4

ast_tools

ast基础框架-基于babel
JavaScript
539
star
5

mmewmd_crack_for_wenshu

文书网MmEwMd参数破解,2023.06.25供应文书一手日更数据
JavaScript
476
star
6

captcha_server

一个免费开源一键搭建的通用验证码识别平台,大部分常见的中英数验证码识别都没啥问题。
Python
186
star
7

openlawClawer

openlaw数据爬虫v1.1 更新日期:2017.12.16 解决新版openlaw多种加密问题。引入celery轻松异步分布式,爬取速度再次翻倍!!
Python
58
star
8

DdddOcrLib

DdddOcr的C++静态编译版Lib
C++
38
star
9

luosimao_cracker

螺丝帽点击验证码破解sdk,仅供学习,若擅自使用本人不承担任何责任
JavaScript
30
star
10

stockman

正在开发中的A股量化数据工具,目前支持tushare
Python
25
star
11

OhMyWechat

一款通过Web的方式进行微信个人号社群营销管理系统
JavaScript
23
star
12

HM4hUBT0dDOn80T_for_wenshu

文书网最新解密server
Python
20
star
13

wenshu

法律文书网爬虫
Python
19
star
14

python_collect_domain

python无限爬取URL,渗透必备
Python
16
star
15

proxypool

土豪专用代理池,IP质量高,稳定,快
Python
16
star
16

ddmmocr

带带妹妹ocr
16
star
17

12306SDK

正在写的12306调用SDK,将内置验证码识别工具,提供常用的12306的api
Python
14
star
18

WsSpider

中国裁判文书网全量数据采集工具
Python
13
star
19

ylgy

羊了个羊 uid版获取token(已经失效啦)
Python
12
star
20

onnxruntime-static-lib

onnxruntime的各种静态编译库
8
star
21

opencv2-static-lib

opencv2的静态编译库
4
star
22

laravel-easyali

PHP
4
star
23

python_wechat

python版微信聊天机器人
Python
4
star
24

python_web_Vulnerable_tools

python版的Web漏洞批量扫描器,exp插件模块已抽象化,可实现不修改主体python程序的前提下,加入新的exp模块
Python
4
star
25

python_qq

python开发QQ机器人
Python
3
star
26

csdn

天津工业大学CSDN俱乐部官网
JavaScript
3
star
27

goldedu

服务外包创新大赛,定制化试题服务
JavaScript
2
star
28

Medical_Data_Mining

一个关于医疗方面的数据挖掘的项目,主要包含爬虫,分词,自编码降维,以及决策树实现
Java
2
star
29

ztone

ztone 新一代分布式爬虫框架
Python
1
star
30

openlawSpider

新版openlaw爬虫
Python
1
star
31

python_huatian_active_user_crawer

花田活跃用户抓取
Python
1
star
32

SLSpider

一款分布式爬虫监管与发布平台
1
star
33

sml2h3

1
star
34

ocrhub

1
star