File size: 2,187 Bytes
d70cad8
 
 
 
 
 
 
 
09a96ae
 
d70cad8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c9d4aba
 
17385b8
d70cad8
f0d0508
76b5eb7
4ef5f6d
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
# Are you wearing a mask?
import gradio as gr
import torch
import torchvision
import numpy as np
from PIL import Image

# Face masks
# TODO: Allow user selectable model?
model = torch.hub.load('ultralytics/yolov5', 'custom', "model_weights/face_masks_v8.pt")




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
    results.render()  # updates results.imgs with boxes and labels
    return Image.fromarray(results.imgs[0])


inputs = gr.inputs.Image(type='pil', label="Original Image")
outputs = gr.outputs.Image(type="pil", label="Output Image")

title = "Are you wearing a mask?"
description = "Detecting masked and unmasked faces with YOLOv5. Take a picture, upload an image, or click an example image to use."
article = "<p style='text-align: center'>This app makes predictions using a YOLOv5s model that was fine tuned on a dataset of people with and without masks. All of the code  for training the model is available on <a href='https://github.com/hlydecker/are-you-wearing-a-mask'>GitHub</a>. This app and the model behind it were created by Henry Lydecker, for a <a href='https://github.com/Sydney-Informatics-Hub/cv-demo'>course</a> he developed for the Sydney Informatics Hub, a Core Research Facility of 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>"

# Example data: should there be more?
examples = [['data/picard.jpg'], ['data/crowd.jpeg'],['data/santa-claus-orig.jpg']]
gr.Interface(yolo, inputs, outputs, title=title, description=description, article=article, examples=examples, theme="huggingface").launch(enable_queue=True)