Spaces:
Build error
Build error
| 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() | |