|
@@ -1,115 +0,0 @@
|
|
|
-#!/usr/bin/python3
|
|
|
-# -*- coding: utf-8 -*-
|
|
|
-# @Author : bidikeji
|
|
|
-# @Time : 2019/11/21 0021 15:55
|
|
|
-
|
|
|
-from predict_model import *
|
|
|
-from flask import request, Flask, jsonify
|
|
|
-from PIL import Image
|
|
|
-from io import BytesIO
|
|
|
-import base64
|
|
|
-import time
|
|
|
-
|
|
|
-total_num = 0
|
|
|
-neg_num = 0
|
|
|
-
|
|
|
-app = Flask(__name__)
|
|
|
-
|
|
|
-@app.route("/getlog", methods=["POST"])
|
|
|
-def get_acc():
|
|
|
- global total_num
|
|
|
- global neg_num
|
|
|
- data = {'total_num':total_num, 'neg_numative':neg_num}
|
|
|
- clear = request.form.get('clear_log', 'no')
|
|
|
- if clear == 'yes':
|
|
|
- with open('upload_num_log.txt', 'a', encoding='utf=8') as f:
|
|
|
- f.write('total_number:%d,\t error_number:%d\n'%(total_num, neg_num))
|
|
|
- total_num = 0
|
|
|
- neg_num = 0
|
|
|
- return jsonify(data)
|
|
|
-
|
|
|
-@app.route("/errorlog", methods=["POST"])
|
|
|
-def save_error():
|
|
|
- """receive not success image and save """
|
|
|
- global total_num
|
|
|
- global neg_num
|
|
|
- code_type = request.form.get('code', 'unknow')
|
|
|
- base64pic = request.form.get('base64pic')
|
|
|
- file_obj = request.files.get("pic")
|
|
|
- data = {'save_success':False}
|
|
|
- if base64pic is not None:
|
|
|
- try:
|
|
|
- src = base64.b64decode(base64pic.split(',')[-1])
|
|
|
- img = Image.open(BytesIO(src))
|
|
|
- time_tr = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
|
|
|
- img.save('pic/'+str(code_type)+'_'+time_tr+'.jpg')
|
|
|
- data['save_success'] = True
|
|
|
- neg_num += 1
|
|
|
- return jsonify(data)
|
|
|
- except:
|
|
|
- return jsonify(data)
|
|
|
- if file_obj is not None:
|
|
|
- try:
|
|
|
- img = Image.open(file_obj)
|
|
|
- time_tr = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
|
|
|
- img.save('pic/'+str(code_type)+'_'+time_tr+'.jpg')
|
|
|
- data['save_success'] = True
|
|
|
- neg_num += 1
|
|
|
- return jsonify(data)
|
|
|
- except:
|
|
|
- return jsonify(data)
|
|
|
-
|
|
|
-@app.route("/upload", methods=["POST"])
|
|
|
-def upload():
|
|
|
- global total_num
|
|
|
- global neg_num
|
|
|
- """receive image and predict """
|
|
|
- code_type = request.form.get('code')
|
|
|
- base64pic = request.form.get('base64pic')
|
|
|
- file_obj = request.files.get("pic")
|
|
|
- data = {'success':False}
|
|
|
- print(type(code_type))
|
|
|
- if code_type is None or str(code_type) not in ['shuzi', 'suanshu','yingwen','hanzi']:
|
|
|
- data = {'errorinfo':'please check you param:code, code must be in shuzi/suanshu/yingwen/hanzi'}
|
|
|
- return jsonify(data)
|
|
|
- if base64pic is not None:
|
|
|
- try:
|
|
|
- src = base64.b64decode(base64pic.split(',')[-1])
|
|
|
- img = Image.open(BytesIO(src))
|
|
|
- if img.mode != "RGB":
|
|
|
- img = img.convert("RGB")
|
|
|
- if code_type == 'shuzi':
|
|
|
- pre = predict_digit(img)
|
|
|
- elif code_type == 'suanshu':
|
|
|
- pre = predict_arith(img)
|
|
|
- pre = str(eval(pre))
|
|
|
- data['predict'] = pre
|
|
|
- data['success'] = True
|
|
|
- total_num += 1
|
|
|
- return jsonify(data)
|
|
|
- except:
|
|
|
- return jsonify(data)
|
|
|
- if file_obj is not None:
|
|
|
- try:
|
|
|
- img = Image.open(file_obj)
|
|
|
- if img.mode != "RGB":
|
|
|
- img = img.convert("RGB")
|
|
|
- if code_type == 'shuzi':
|
|
|
- pre = predict_digit(img)
|
|
|
- elif code_type == 'suanshu':
|
|
|
- pre = predict_arith(img)
|
|
|
- print(pre)
|
|
|
- pre = str(eval(pre))
|
|
|
- data['success'] = True
|
|
|
- data['predict'] = pre
|
|
|
- total_num += 1
|
|
|
- return jsonify(data)
|
|
|
- except:
|
|
|
- return jsonify(data)
|
|
|
-
|
|
|
- return 'please check you post '
|
|
|
-
|
|
|
-
|
|
|
-if __name__ == '__main__':
|
|
|
- app.run("192.168.2.101", port=5025, debug=False)
|
|
|
-
|