weijiang2024's picture
Upload folder using huggingface_hub
36c8601 verified
raw
history blame
3.56 kB
import gradio as gr
from eval_fashion_person import *
from name_entity_recognition import *
from utils.operate_json import *
def eval_image(input_image, progress=gr.Progress()):
if input_image is None:
raise gr.Error("未上传图片,请先上传图片")
progress((0, 3), desc="上传图片中")
img_name = get_one_name()
input_image = output_to_binary(input_image)
save_tx(file_data=input_image,
file_name=img_name)
progress((1, 3), desc="评估分数中")
data = eval_fashion_person_tx_url(img_name)
progress((2, 3), desc="识别类型中")
reason = data['fashion_eval_reason']
score = data['fashion_score_predict']
score = ("未识别出" if score == -1 else score)
data = {}
while not data:
text = name_entity_recognition(reason)
data = text_to_json(text)
keys_to_check = [
'type',
'upper_garment',
'lower_garment',
'headgear',
'sock',
'shoe',
'accessory',
'backpack',
'action',
'countenance'
]
data = {k: ("未识别出" if data.get(k) is None else data[k]) for k in keys_to_check}
data = {k: ("未识别出" if v == "None" else v) for k, v in data.items()}
result = [reason,
score,
data['type'],
data['upper_garment'],
data['lower_garment'],
data['headgear'],
data['sock'],
data['shoe'],
data['accessory'],
data['backpack'],
data['action'],
data['countenance']]
return result
with gr.Blocks() as demo:
with gr.Row():
with gr.Column():
Image_input = gr.Image(label="请上传图片",
height=640,
width=640,
show_share_button=False)
with gr.Row():
run_button = gr.Button(value="开始评估")
score = gr.Textbox(label="评分")
with gr.Column():
with gr.Group():
with gr.Row():
with gr.Column():
type = gr.Textbox(label="人物类型")
headgear = gr.Textbox(label="帽子类型")
shoe = gr.Textbox(label="鞋子类型")
backpack = gr.Textbox(label="背包类型")
countenance = gr.Textbox(label="表情类型")
with gr.Column():
upper_garment = gr.Textbox(label="上衣类型")
lower_garment = gr.Textbox(label="下衣类型")
sock = gr.Textbox(label="袜子类型")
accessory = gr.Textbox(label="配饰类型")
action = gr.Textbox(label="动作类型")
text_output = gr.Textbox(label="时尚买手小玲评估结果")
run_button.click(eval_image,
inputs=Image_input,
outputs=[text_output,
score,
type,
upper_garment,
lower_garment,
headgear,
sock,
shoe,
accessory,
backpack,
action,
countenance])
demo.queue().launch()