def test_captcha(): captcha = generate_captcha.generateCaptcha(width=100, height=30, characters=string.digits) width, height, char_num, characters, classes = captcha.get_parameter() x = tf.placeholder(tf.float32, [None, height, width, 1]) y_ = tf.placeholder(tf.float32, [None, char_num * classes]) keep_prob = tf.placeholder(tf.float32) model = captcha_model.captchaModel(width, height, char_num, classes) y_conv = model.create_model(x, keep_prob) saver = tf.train.Saver() with tf.Session() as sess: # sess.run(tf.global_variables_initializer()) saver.restore(sess, tf.train.latest_checkpoint("./ckpt")) # batch_x, batch_y = captcha.gen_test_captcha() batch_x, batch_y = captcha.gen_api_captcha() loss = sess.run([y_conv], feed_dict={ x: batch_x, y_: batch_y, keep_prob: 0.75 }) print("real == %s, predict = %s, result = %s" % (captcha.decode_captcha(batch_y), captcha.decode_captcha(loss), "Match" if captcha.decode_captcha(batch_y) == captcha.decode_captcha(loss) else "Not Match")) return True if captcha.decode_captcha(batch_y) == captcha.decode_captcha( loss) else False
def test_captcha(file_path): captcha = generate_captcha.generateCaptcha(width=100, height=30, characters=string.digits) width, height, char_num, characters, classes = captcha.get_parameter() x = tf.placeholder(tf.float32, [None, height, width, 1]) y_ = tf.placeholder(tf.float32, [None, char_num * classes]) keep_prob = tf.placeholder(tf.float32) model = captcha_model.captchaModel(width, height, char_num, classes) y_conv = model.create_model(x, keep_prob) saver = tf.train.Saver() with tf.Session() as sess: saver.restore(sess, tf.train.latest_checkpoint("./ckpt")) batch_x, batch_y = captcha.gen_local_captcha(file_path) loss = sess.run([y_conv], feed_dict={x: batch_x, y_: batch_y, keep_prob: 0.75}) return captcha.decode_captcha(loss)
#!/usr/bin/python from PIL import Image, ImageFilter import tensorflow as tf import numpy as np import string import sys import generate_captcha import captcha_model if __name__ == '__main__': captcha = generate_captcha.generateCaptcha() width, height, char_num, characters, classes = captcha.get_parameter() gray_image = Image.open(sys.argv[1]).convert('L') img = np.array(gray_image.getdata()) test_x = np.reshape(img, [height, width, 1]) / 255.0 x = tf.placeholder(tf.float32, [None, height, width, 1]) keep_prob = tf.placeholder(tf.float32) model = captcha_model.captchaModel(width, height, char_num, classes) y_conv = model.create_model(x, keep_prob) predict = tf.argmax(tf.reshape(y_conv, [-1, char_num, classes]), 2) init_op = tf.global_variables_initializer() saver = tf.train.Saver() gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.95) with tf.Session(config=tf.ConfigProto(log_device_placement=False, gpu_options=gpu_options)) as sess: sess.run(init_op) saver.restore(sess, "capcha_model.ckpt") pre_list = sess.run(predict, feed_dict={x: [test_x], keep_prob: 1})
# -*- coding:utf-8 -*- import string import tensorflow as tf import generate_captcha import captcha_model if __name__ == '__main__': captcha = generate_captcha.generateCaptcha(width=100, height=30, characters=string.digits) width, height, char_num, characters, classes = captcha.get_parameter() x = tf.placeholder(tf.float32, [None, height, width, 1]) y_ = tf.placeholder(tf.float32, [None, char_num * classes]) keep_prob = tf.placeholder(tf.float32) model = captcha_model.captchaModel(width, height, char_num, classes) y_conv = model.create_model(x, keep_prob) cross_entropy = tf.reduce_mean( tf.nn.sigmoid_cross_entropy_with_logits(labels=y_, logits=y_conv)) train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy) predict = tf.reshape(y_conv, [-1, char_num, classes]) real = tf.reshape(y_, [-1, char_num, classes]) correct_prediction = tf.equal(tf.argmax(predict, 2), tf.argmax(real, 2)) correct_prediction = tf.cast(correct_prediction, tf.float32) accuracy = tf.reduce_mean(correct_prediction) saver = tf.train.Saver() with tf.Session() as sess:
#coding=utf-8 # File : generate_testing_set.py # Desc : # Author : jianhuChen # license : Copyright(C), USTC # Time : 2018/10/31 10:44 from generate_captcha import generateCaptcha captcha = generateCaptcha() for i in range(100): captcha.gen_test_captcha('TestingSet') print("Complete.........")