File size: 1,417 Bytes
7e64245
 
b9bed43
3c8a367
7e64245
 
 
 
 
 
b9bed43
 
 
7e64245
 
 
 
 
 
b2c4549
b9bed43
 
 
 
 
3c8a367
b9bed43
3c8a367
9c03caa
6747f40
 
4bf0e8f
 
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
import gradio as gr
import torch
import cv2
import time
from PIL import Image
# Images
torch.hub.download_url_to_file('https://cdn.pixabay.com/photo/2016/06/15/01/11/soccer-1457988_1280.jpg', 'soccer.jpg')
torch.hub.download_url_to_file('https://cdn.pixabay.com/photo/2016/11/21/14/31/vw-bus-1845719_1280.jpg', 'bus.jpg')
# Model
model = torch.hub.load('ultralytics/yolov3', 'yolov3')  # or yolov3-spp, yolov3-tiny, custom

cam = cv2.VideoCapture(0)

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")
title = "Определение элементов"
description = "Находит на картинке элементы"
article = "тест"
examples = [['soccer.jpg'], ['bus.jpg']]

while True:
    #inputs=gr.inputs.Image(type="pil",source="webcam")
    outputs = gr.outputs.Image(type="pil", label="Output Image")
    #ret, inputs = cam.read()
    img = cv2.imread("soccer.jpg")
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    inputs = Image.fromarray(img)
    gr.Interface(yolo, inputs, outputs, title=title, description=description, article=article, examples=examples, theme="huggingface").launch(debug=True)