LukasKunt
app changed
db5952a
from PIL import Image, ImageFont, ImageDraw, ImageEnhance
import gradio as gr
from copy import deepcopy
from pathlib import Path
import torch
from mt.inference import Inference
ckpt = 'yolo_small.ckpt'
inference = Inference()
inference.load_yolov5(ckpt=ckpt)
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
def predict(img):
inference.predict(img, nms_iou_threshold=0.3)
d = inference.draw_img()
d.save('foo.png', format='png')
return d
def change_model(model_name):
if model_name == 'Fast':
inference.load_yolov5(ckpt='yolo_small.ckpt', backbone='small_p6')
if model_name == 'Normal':
inference.load_yolov5(ckpt='yolo_medium.ckpt', backbone='medium_p6')
if model_name == 'Slow':
inference.load_yolov5(ckpt=ckpt, backbone='large_p6')
inference.model.to(device)
def change_confidence(confidence):
return inference.set_confidence(confidence, redraw=True)
with gr.Blocks() as app:
with gr.Row():
inputs = gr.Image(type='pil', label='Input bitewing image')
outputs = gr.Image(type='pil', label='Processed bitewing image')
examples = gr.Examples(
# [['samples/1.png'],['samples/2.png'],['samples/3.png'],['samples/4.png'],
# ['samples/5.png'], ['samples/6.png'], ['samples/7.png'], ['samples/8.png']],
[['35.png'], ['2.png'], ['3.png'], ['4.png'],
['17.png'], ['27.png'], ['30.png'], ['1.png']],
# 'samples/9.png','samples/10.png', 'samples/11.png', ['samples/12.png']],
inputs=inputs, outputs=outputs, label='Gallery of examples')
inputs.change(predict, inputs, outputs)
slider_input = gr.Slider(minimum=0.05, maximum=1, value=0.1, label='Prediction Threshold')
slider_input.change(change_confidence, inputs=slider_input, outputs=outputs)
dropdown = gr.Dropdown(['Fast', 'Normal'], value='Normal', label='Choose a model type')
dropdown.change(change_model, inputs=dropdown, outputs=outputs)
if __name__ == '__main__':
app.launch()