需要用到的包: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