用TensorFlow训练卷积神经网络——识别验证码

需要用到的包:numpy、tensorflow、captcha、matplotlib、PIL、random

import numpy as np  
import tensorflow as tf  # 深度学习库
from captcha.image import ImageCaptcha  # 用来生成验证码
import matplotlib.pyplot as plt  # 用来将验证码可视化出来
from PIL import Image  # 将验证码存为图片
import random  # 为了生成随机验证码

第一步:先生成可以用来训练的验证码数据:

# 使用下面定义好的函数,去生成验证码,然后将验证码转为图片,再将图片转为文本向量
def random_captcha_text(char_set=number, captcha_size=4):
    pass
def gen_captcha_text_and_image():
    pass
def convert2gray(img):
    pass
def text2vec(text):
    pass
def vec2text(vec):
    pass

第二步:生成训练batch,即生成等等要喂入卷积神经网络的输入参数batch_x,batch_y。

def get_next_batch(batch_size=128):
    pass

第三步:创建卷积神经网络,使用3层隐藏层和一层全连接层

def crack_captcha_cnn(w_alpha=0.01, b_alpha=0.1):
    pass

第四步:训练卷积神经网络模型

def train_crack_captcha_cnn(): 
    pass

第五步:测试模型准确率

def crack_captcha(captcha_image):
    pass

完整代码如下,可以修改准确率要求在自己电脑上跑跑,注意:

train = 0 为训练模型

train = 1 为测试模型

在测试模型时,别忘了修改训练模型,将模型(crack_capcha.model-1810)替换为自己训练好模型,在同级目录下的model目录中(crack_capcha.model-XXXX)

import numpy as np  
import tensorflow as tf
from captcha.image import ImageCaptcha
import matplotlib.pyplot as plt  
from PIL import Image  
import random   

number = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# alphabet = ['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']
# ALPHABET = ['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']

# def random_captcha_text(char_set=number+alphabet+ALPHABET
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值