在这里插入图片描述
我机器学习-训练了一个快速识别身份证正面关键信息的模型
采用正常的cpu识别效率稳定达到100ms左右识别一张
采用python开发,模型小于10M
识别精度高,提出来给大家试用

from os import environ
from flask import Flask
from flask import render_template,request

import os
os.environ["CPU_NUM"] = '2'
from time import *
import paddlex as pdx
import datetime
import json
import math
from datetime import datetime

app = Flask(__name__)
app.jinja_env.variable_start_string = '{['
app.jinja_env.variable_end_string = ']}'

model = None
classify_map = None

@app.route('/', methods=("GET", "POST"))
def hello_world():
	global model,classify_map
	url = ''
	url2 = ''
	result = ''
	lasttime = ""
	deleteImg()
	if request.method == "POST":
		tupian = request.files.get('myFiles')
		if tupian != None:
			print(tupian.filename)
			times = datetime.now().strftime('%Y%m%d%H%M%S%f') + '.' + tupian.filename.split('.')[-1]
			url = 'static/images/' + times
			tupian.save(url)
			print(url)
			startTime = datetime.now()
			result2 = model.predict(url)
			pdx.det.visualize(url, result2, threshold=0.3, save_dir='static/images/')
			url2 = 'static/images/visualize_' + times
			endTime = datetime.now()
			durTime = (endTime - startTime).seconds * 1000 + (endTime - startTime).microseconds / 1000
			lasttime = "本次识别耗时:" + str(durTime) + "毫秒"
	print(result)
	return render_template('index.html',
		 title = url ,
		 resUrl= url2,
		 result= result,
		 lasttime=lasttime)


@app.route('/Classify', methods=("GET", "POST"))
def fileClassify():
	global model
	result = ''
	lasttime = ""
	try:
		deleteImg()
		if request.method == "POST":
			tupian = request.files.get('ClassifyFile')
			if tupian != None:
				print(tupian.filename)
				times = datetime.now().strftime('%Y%m%d%H%M%S%f') + '.' + tupian.filename.split('.')[-1]
				url = 'static/images/' + times
				tupian.save(url)
				startTime = datetime.now()
				result2 = model.predict(url)
				endTime = datetime.now()
				durTime = (endTime - startTime).seconds * 1000 + (endTime - startTime).microseconds / 1000
				lasttime = "本次识别耗时:" + str(durTime) + "毫秒"
				result = str(result2)
				return {"code":0,"msg":"success","content":result,"usetime":str(durTime)}
			else:
				return {"code":-1,"msg":"picture error","content":None,"usetime":None}
		else:
			return {"code":-1,"msg":"please use post","content":None,"usetime":None}
	except Exception as e:
		return {"code":-1,"msg":str(e),"content":None,"usetime":None}


def deleteImg():
	global logger
	try:
		baseUrl = 'static/images/'
		list = os.listdir(baseUrl)
		for i in range(0, len(list)):
			path = baseUrl + list[i]
			os.remove(path)
	except Exception as e:
		print('deleteImgs出现异常:' + str(e))
		return None


def main():
	global model
	print("Loading model...")
	print(os.getcwd())
	model = pdx.deploy.Predictor('./inference_model', use_gpu=False)
	print("Model loaded.")


if __name__ == '__main__':
    main()

    HOST = environ.get('SERVER_HOST', '0.0.0.0')
    try:
        PORT = int(environ.get('SERVER_PORT', '5888'))
    except ValueError:
        PORT = 5999
    app.run(HOST, PORT)

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐