File size: 2,602 Bytes
844db40
 
 
 
 
 
 
 
 
321c8b8
85c5390
844db40
 
 
cbf460a
844db40
85c5390
844db40
 
 
 
 
 
 
 
 
 
 
 
 
b6df197
844db40
200ff85
844db40
dc4a6c3
844db40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Marsupial Demo
import gradio as gr
import torch
import torchvision
import numpy as np
from PIL import Image

# Load Marsupial model
# TODO: Allow user selectable model?

model = torch.hub.load('ultralytics/yolov5:v6.2', 'custom', "model_weights/marsupial_72s_lures.pt", trust_repo=True)

def yolo(im, size=640):
    g = (size / max(im.size))  # gain
    im = im.resize((int(x * g) for x in im.size))  # resize
    
    # model = torch.hub.load('ultralytics/yolov5:v6.2', 'custom', "model_weights/marsupial_72s_lures.pt")
    
    results = model(im)  # inference
    results.render()  # updates results.imgs with boxes and labels
    return Image.fromarray(results.imgs[0])

#image = gr.inputs.Image(type="pil", label="Input Image")
#chosen_model = gr.inputs.Dropdown(choices = models, value = "model_weights/md_v5a.0.0.pt",type = "value", label="Model Weight")
#size = 640

#inputs = [image, chosen_model, size]
inputs = gr.inputs.Image(type="pil", label="Input Image")
outputs = gr.outputs.Image(type="pil", label="Output Image")

title = "Marsupial.ai"
description = "Detect and identify 72 different species of Australian wildlife using Marsupial's most detailed model"
article = "<p style='text-align: center'>The <a href='http://marsupial.ai/'>marsupial app</a> makes predictions using a YOLOv5s model that was trained to detect and identify 72 different species of animals found in Australia in camera trap images; find out more about the project on <a href='https://github.com/Sydney-Informatics-Hub/marsupial'>GitHub</a>. This app was built by Dr Henry Lydecker and Dr Gordon McDonald at the <a href='https://sydney.edu.au/sydney-informatics-hub'>Sydney Informatics Hub</a>, a Core Research Facility at the University of Sydney. Find out more about the YOLO model from the original creator, <a href='https://pjreddie.com/darknet/yolo/'>Joseph Redmon</a>. YOLOv5 is a family of compound-scaled object detection models trained on the COCO dataset and developed by Ultralytics, and includes simple functionality for Test Time Augmentation (TTA), model ensembling, hyperparameter evolution, and export to ONNX, CoreML and TFLite. <a href='https://github.com/ultralytics/yolov5'>Source code</a> | <a href='https://pytorch.org/hub/ultralytics_yolov5'>PyTorch Hub</a></p>"

examples = [['data/eastern_grey_kangaroo.jpg'],['data/red_fox.jpg'],['data/brushtail_possum.jpg'],['data/koala2.jpg'],['data/cat1.jpg'],['data/australian_magpie.jpg']]
gr.Interface(yolo, inputs, outputs, title=title, description=description, article=article, examples=examples, theme="huggingface").launch(enable_queue=True)