django做tensorflow model 验证码识别的接口

解决问题:

  • 图片传输方式,res.content.decode(‘iso-8859-1’)
  • 模型加载一次

客户端:

res = requests.get('https://abc.jpg')
data = {
    'content': res.content.decode('iso-8859-1')
}
res2 = requests.post(url='http://localhost:8000/', data=data)
print(res2.text)

服务端:

predict_captcha.py

X = tf.placeholder(tf.float32, [None, IMAGE_HEIGHT * IMAGE_WIDTH])
Y = tf.placeholder(tf.float32, [None, MAX_CAPTCHA * CHAR_SET_LEN])
keep_prob = tf.placeholder(tf.float32)  # dropout
sess = tf.Session()
output = crack_captcha_cnn()
saver = tf.train.Saver()
saver.restore(sess, tf.train.latest_checkpoint(model_path))
predict = tf.argmax(tf.reshape(output, [-1, MAX_CAPTCHA, CHAR_SET_LEN]), 2)

def predict_captcha_one(image):
    image=image.encode('iso-8859-1')
    img = Image.open(BytesIO(image))
    img = np.array(img.convert('L').resize((IMAGE_WIDTH, IMAGE_HEIGHT), Image.ANTIALIAS))
    img = np.float32(img)
    image = img.flatten() / 255

    text_list = sess.run(predict, feed_dict={X: [image], keep_prob: 1})

    text = text_list[0].tolist()
    vector = np.zeros(MAX_CAPTCHA * CHAR_SET_LEN)
    i = 0
    for n in text:
        vector[i * CHAR_SET_LEN + n] = 1
        i += 1
    predict_text = vec2text(vector)
    return predict_text

view.py

def code_api_xzcf_jiaotongbu(request):
    content = request.POST['content']
    predict_text=predict_captcha_one(content)
    rlist2 = {"predict_text": predict_text}
    rjson = json.dumps(rlist2)
    return  HttpResponse(rjson)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值