import gradio as gr import torch from PIL import Image from story import story_model # Images torch.hub.download_url_to_file('https://github.com/ultralytics/yolov5/raw/master/data/images/zidane.jpg', 'zidane.jpg') torch.hub.download_url_to_file('https://github.com/ultralytics/yolov5/raw/master/data/images/bus.jpg', 'bus.jpg') # Model model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # force_reload=True to update def yolo(im, size=640): g = (size / max(im.size)) # gain im = im.resize((int(x * g) for x in im.size), Image.ANTIALIAS) # resize results = model(im) # inference r= results.pred[0].numpy().T #probs = results.pred[0].numpy().T[-1] res = [(results.names[x].lower(),p) for x,p in zip(r[-1].astype(int),r[-2])] f_res = story_model(res) #results.render() # updates results.imgs with boxes and labels #return Image.fromarray(results.imgs[0]) return ','.join(f_res) inputs = gr.inputs.Image(type='pil', label="Original Image") #outputs = gr.outputs.Image(type="pil", label="Output Image") outputs = gr.outputs.Textbox(type="text", label="Output Story") title = "YOLOv5" description = "YOLOv5 Gradio demo for object detection. Upload an image or click an example image to use." article = "
YOLOv5 is a family of compound-scaled object detection models trained on the COCO dataset, and includes simple functionality for Test Time Augmentation (TTA), model ensembling, hyperparameter evolution, and export to ONNX, CoreML and TFLite. Source code | PyTorch Hub
" examples = [['zidane.jpg'], ['bus.jpg']] iface = gr.Interface(yolo, inputs, outputs, title=title, description=description, article=article, examples=examples, theme="huggingface").launch(cache_examples=True,enable_queue=True) iface.launch()