DNN / app.py
hyunjunian's picture
to streaming
a0a091e
raw
history blame
2.59 kB
import gradio as gr
import requests
# def abnormal(image):
# if (image is None) or (image == ''):
# return {'이미지가 제공되지 않았습니다.': 1.0}
# try:
# with open(image, 'rb') as f:
# r = requests.post(
# 'https://6a051cv20250210-prediction.cognitiveservices.azure.com/customvision/v3.0/Prediction/29f565b7-4710-47a5-8a47-723048ff7ec9/classify/iterations/Iteration2/image',
# headers={
# 'Prediction-Key': '8uyKSiqRNbG2JLdMjI8AeOzADtORP3jRh5klqQr0JsJrBBt7x7iPJQQJ99BBACYeBjFXJ3w3AAAIACOGHg4K',
# 'Content-Type': 'application/octet-stream',
# },
# data=f.read(),
# )
# if r.status_code != 200:
# return {'확인불가': 1.0}
# output_dict = {}
# for item in r.json()['predictions']:
# tag_name = item['tagName']
# probability = item['probability']
# output_dict[tag_name] = probability
# return output_dict
# except Exception as e:
# return {[str(e)]: 1.0}
# demo = gr.Interface(abnormal, gr.Image(label="Input Image Component", type="filepath", sources=["webcam"]), "label")
def abnormal_stream(image):
if (image is None) or (image == ''):
return {'이미지가 제공되지 않았습니다.': 1.0}
try:
with open(image, 'rb') as f:
r = requests.post(
'https://6a051cv20250210-prediction.cognitiveservices.azure.com/customvision/v3.0/Prediction/29f565b7-4710-47a5-8a47-723048ff7ec9/classify/iterations/Iteration2/image',
headers={
'Prediction-Key': '8uyKSiqRNbG2JLdMjI8AeOzADtORP3jRh5klqQr0JsJrBBt7x7iPJQQJ99BBACYeBjFXJ3w3AAAIACOGHg4K',
'Content-Type': 'application/octet-stream',
},
data=f.read(),
)
if r.status_code != 200:
return {'확인불가': 1.0}
output_dict = {}
for item in r.json()['predictions']:
tag_name = item['tagName']
probability = item['probability']
output_dict[tag_name] = probability
return output_dict
except Exception as e:
return {[str(e)]: 1.0}
with gr.Blocks() as demo:
with gr.Row():
with gr.Column():
input_img = gr.Image(sources=["webcam"], type="filepath")
with gr.Column():
output_img = gr.Label()
dep = input_img.stream(abnormal_stream, [input_img], [output_img], every=1)
demo.launch()