解决问题:
- 图片传输方式,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)