• Stars
    star
    103
  • Rank 333,046 (Top 7 %)
  • Language
    Python
  • License
    MIT License
  • Created about 5 years ago
  • Updated over 1 year ago

Reviews

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

Repository Details

基于torch进行验证码识别,识别率达94%

深度学习识别验证码

基于: https://github.com/dee1024/pytorch-captcha-recognition 进行修改

本项目致力于使用神经网络来识别各种验证码。

在这个库的基础上,进行了改动,添加了很多trick来增强识别效果,如attention机制,dual pooling, ibn模块,bnneck,center loss等。

链接为:https://github.com/pprp/captcha.Pytorch

改动

  • 添加了更多torchvision中支持的模型
  • 改了一下文件的名称
  • 支持了GPU,当然cpu也可以
  • 添加了以下功能:训练完成一个epoch之后进行测试,(需要保证test和train中的模型一致)
  • 添加了以下功能:将每次得到的测试结果写入results.txt文件,运行torch_util.py得到results.png可视化准确率。
  • RES152为基础网络进行训练,混合数字和大写字符只能达到94%,还达不到原作者的识别率,希望得到赐教

特性

  • 端到端,不需要做更多的图片预处理(比如图片字符切割、图片尺寸归一化、图片字符标记、字符图片特征提取)
  • 验证码包括数字、大写字母、小写
  • 采用自己生成的验证码来作为神经网络的训练集合、测试集合、预测集合
  • 纯四位数字,验证码识别率高达 99.9999 %
  • 四位数字 + 大写字符,验证码识别率约 96 %
  • 深度学习框架pytorch + 验证码生成器ImageCaptcha

原理

  • 训练集合生成

    使用常用的 Python 验证码生成库 ImageCaptcha,生成 10w 个验证码,并且都自动标记好; 如果需要识别其他的验证码也同样的道理,寻找对应的验证码生成算法自动生成已经标记好的训练集合或者手动对标记,需要上万级别的数量,纯手工需要一定的时间,再或者可以借助一些网络的打码平台进行标记

  • 训练卷积神经网络 构建一个多层的卷积网络,进行多标签分类模型的训练 标记的每个字符都做 one-hot 编码 批量输入图片集合和标记数据,大概15个Epoch后,准确率已经达到 96% 以上

验证码识别率展示

快速开始

  • 步骤一:10分钟环境安装

    Python3.6+ 、ImageCaptcha库(pip install captcha)、 Pytorch(参考官网http://pytorch.org)

  • 步骤二:生成验证码

    python captchaGenerator.py

    执行以上命令,会在目录 dataset/train/ 下生成多张验证码图片,图片已经标注好,数量可以是 1w、5w、10w,通过 captchaGenerator.py 内的 count 参数设定

  • 步骤三:训练模型

    python train.py

    使用步骤一生成的验证码图集合用CNN模型(在 models 中定义)进行训练,训练完成会生成文件保存在weights文件夹中,最好的结果保存为cnn_best.pt

  • 步骤四:测试模型

    python test.py

    可以在控制台,看到模型的准确率(如 95%) ,如果准确率较低,回到步骤一,生成更多的图片集合再次训练

  • 步骤五:使用模型做预测

    python predict.py

    可以在控制台,看到预测输出的结果

可视化

results_res101

贡献

我们期待你的 pull requests !

有问题欢迎提出issue

作者

声明

本项目仅用于交流学习

More Repositories

1

SimpleCVReproduction

Replication of simple CV Projects including attention, classification, detection, keypoint detection, etc.
Jupyter Notebook
1,199
star
2

awesome-attention-mechanism-in-cv

Awesome List of Attention Modules and Plug&Play Modules in Computer Vision
Python
1,032
star
3

SimpleCVPaperReading

😄博客论文列表:分系列整理
JavaScript
391
star
4

voc2007_for_yolo_torch

👊 Prepare VOC format datasets for ultralytics/yolov3 & yolov5
Python
194
star
5

captcha.Pytorch

验证码识别比赛code,针对数字,大小写字母能达到97-99%的准确率
Python
127
star
6

landmark_annotation

👊 Keypoint/Landmark Annotation Software 关键点标注软件
TeX
121
star
7

Awesome-LLM-Prune

Awesome list for LLM pruning.
117
star
8

Awesome-LLM-Quantization

Awesome list for LLM quantization
Python
73
star
9

PyTorch-CIFAR-Model-Hub

Implementation of Conv-based and Vit-based networks designed for CIFAR.
Python
67
star
10

Pruner-Zero

Pruner-Zero: Evolving Symbolic Pruning Metric from scratch for LLMs
Python
63
star
11

datawhale_cv_competition

布匹缺陷识别练习赛
Python
45
star
12

GoodsRecognition.MindSpore

基于MindSpore AI框架实现零售商品识别 top1方案
Python
32
star
13

reid_for_deepsort

simple reid for deep sort
Python
23
star
14

CVPR2022-NAS-competition-Track1-3th-solution

Implementation of PGONAS for CVPR22W and RD-NAS for ICASSP23
Jupyter Notebook
23
star
15

QPainter

CPP intern,Sotfware,Painter
C++
22
star
16

Vision-Mamba-CIFAR10

Python
21
star
17

faster-rcnn.Supernova

基于faster-rcnn.pytorch改进,超新星识别比赛code
Python
15
star
18

darknet-loss-Drawer

This repository is developed on the basis of pyqt5, mainly through the log files generated during the running of Darknet, and then draw loss files.
Python
15
star
19

PicoNAS

Modularized NAS Framework
Python
8
star
20

yolo_deep_sort_pytorch

attention, cbam, se
Jupyter Notebook
7
star
21

yolov3.keras

yolov3.keras for VOC2007
Python
6
star
22

CUDA_NMS

Use cuda to speed up the implementation of nms algorithm
Cuda
5
star
23

ofa-cifar

⭐ Make Once for All support CIFAR10 dataset.
Python
4
star
24

mixed_precision_imagenet_benchmark

ResNet50在ImageNet上混合精度
Python
4
star
25

lightllm-gradio

Based on LightLLM, we provide interface using Gradio. Feel free to use!
Python
4
star
26

AutoRF

AutoRF: Learning Receptive Fields with Spatial Pooling
Python
3
star
27

52RL

Reforcement Learning in DataWhale
Python
3
star
28

simple_deep_sort

deep sort with yolov3. Modify darknet based yolov3 to pytorch based yolov3.
Python
3
star
29

Mnc-javacc

Implementing the Minic compiler with javacc
Java
3
star
30

ClipLLM

Clipboard-Centric LLM conversation tools
Python
3
star
31

chessProblem

棋盘问题,可视化求解
Python
2
star
32

MutableNAS

Channel Search for ResNet20; cvpr21 NAS workshop 16th
Python
2
star
33

ArchVizD3

zero-cost proxy visualization on NAS-Bench-201 using d3.js
HTML
2
star
34

AlgorithmPractice

大学期间编程练习题目
C++
1
star
35

classify.fastai

Classifier based on fastai
Jupyter Notebook
1
star
36

webAppTemplate

An example for Android webview
HTML
1
star
37

skills-code-with-codespaces

My clone repository
HTML
1
star
38

pprp

1
star
39

NAS-Bench-201-refactor

Original version of NAS-Bench-201 from AngleNAS
Python
1
star
40

ClipLLM_Mac

Swift
1
star
41

CleanStream

Local version of dclm
Python
1
star