Tensorflow应用之简单验证码识别

本文介绍了使用TensorFlow 1.12.0版本搭建的验证码识别模型,通过两千步的训练(约2分钟),在手工创建的训练集上达到一定识别效果。提供主要的神经网络代码`main.py`,并附带了训练集和测试集的百度云下载链接。
摘要由CSDN通过智能技术生成

1.Tensorflow的安装方式:

这个项目中 采用了tensorflow 1.12.0版本(任意TF版本都能使用)
安装方式
pip install tensorflow

2.训练集训练集以及测试及如下(纯手工打造,所以数量不多):

这里写图片描述
这里写图片描述

3.实现代码


无论cpu版本 还是gpu都能用, 两千步训练(2分钟左右)就能训练完成


main.py(主要的神经网络代码)
import tensorflow as tf
import numpy as np
from PIL import Image
import os
import random

train_data_dir = r'd:\img\train' # 根据实际情况替换
test_data_dir = r'/Users/hupeng/Downloads/img/test'


def gen_train_data(batch_size=32):
    '''
    生成训练数据
    :param batch_size: 每次训练载入的图片得数目,默认为32
    :return: x_data:图片数据,shape=(batch_size, 24, 60),y_data:标签信息, shape=(batch_size, 4)
    '''
    train_file_name_list = os.listdir(train_data_dir)
    selected_train_file_name_list = random.sample(train_file_name_list, batch_size)
    x_data = []
    y_data = []
    for selected_train_file_name in selected_train_file_name_list:
        if selected_train_file_name.endswith('.gif'):
            captcha_image = Image.open(os.path.join(train_data_dir, selected_train_file_name))
            captcha_image_np = np.array(captcha_image)
            assert captcha_image_np.shape == (24, 60)
            captcha_image_np = np.expand_dims(captcha_image_np, 2)
            x_data.append(captcha_image_np)
            y_data.append(np.array(list(selected_train_file_name.split('.')[0])).astype(np.int32))
    x_data = np.array(x_data).astype(np.float)
    y_data = np.array(y_data)
    return x_data, y_data

X = tf.placeholder(tf.float32, name="input")
Y = tf.placeholder(tf.int32)
keep_prob = tf.placeholder(tf.float32)
y_one_hot = tf.one_hot(Y, 10, 1, 0)
y_one_hot = tf.cast(y_one_hot, tf.float32)

# keep_prob = 1.0
def net(w_alpha=0.01, b_alpha=0.1):
    '''
    网络部分,三层卷积层,一个全连接层
    :param w_alpha:
    :param b_alpha:
    :return: 网络输出,Tensor格式
    '''
    x_reshape = tf.reshape(X, (
评论 72
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值