cnn识别不定长英文验证码

该博客通过一个基础的CNN教程,展示了如何识别不定长的英文验证码。内容包括数据处理(生成验证码、图片处理、one-hot编码)、简单CNN模型的搭建以及训练验证过程,强调了训练中可能遇到的问题和解决策略。
摘要由CSDN通过智能技术生成

       本程序作为一个基础版的CNN使用教程,以识别简单的英文验证码作为目标完成一个简单的实例。在这个实例中,我们会涉及到以下三步,并通过这三部曲来带大家体验深度学习的魅力。

仅2分,可直接运行的程序:https://download.csdn.net/download/qq_32791307/10651274

     1. 对数据的基本读取、处理并生成batch 

     2. 搭建简单的CNN模型 

     3. 训练并得出结果

一 .  数据处理

     1. 首先我们需要先生成一批验证码,代码如下,十分简单。生成效果如图。名字为0B73.jpg

我们可以用程序生成大量的验证码作为样本。可以更改代码中for i in range(数字) 的数字来生成不同数量的样本。大小170*80

#coding=utf-8
from captcha.image import ImageCaptcha
import matplotlib.pyplot as plt
import numpy as np
import random
from scipy.misc import imread,imresize,imsave
import string

#用于生成不同长度的训练集(3..6)/验证集
characters=string.digits+string.ascii_uppercase+string.ascii_lowercase
width,height,n_len,n_class=170,80,6,len(characters)

generater=ImageCaptcha(width=width,height=height)
dir=".\\train"
for i in range(8000):
     #生成3,6位
	random_str="".join([random.choice(characters) for j in range(0,random.choice(range(3,6)))])
     #生成4位
#	random_str="".join([random.choice(characters) for j in range(0,4)])
	image=generater.generate_image(random_str)	
	imsave(dir+"/"+random_str+".jpg",image)

          2.  其次有了样本之后,我们需要对样本进行以下的操作。

          第一步:获取图片和图片名称的代码,非常简单,注释如下。

def get_image_name():
     #获得目录下所有图片
     all_image = os.listdir('D:/tensorflow3_captcha/train/')
     #打散训练集
     random_file = random.randint(0,8000) 
     #拓展名获取, eg: 123.txt 分为[0] 123 ,[1] txt
     base = os.path.basename('D:/tensorflow_captcha/train/' + all_image[random_file])
     name = os.path.splitext(base)[0]
     #读取图片并转为灰度图
     image = cv2.imread('D:/tensorflow_cap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值