Spaces:
Sleeping
Sleeping
File size: 1,700 Bytes
780389c 8b2cbe6 1e8e71b 9740995 8b2cbe6 9740995 ccc35d4 1e8e71b 9740995 082831f 9740995 082831f 9740995 cbc2dd6 9740995 385e56e 8b2cbe6 9740995 ccc35d4 8b2cbe6 9740995 ccc35d4 8b2cbe6 9740995 8b2cbe6 9740995 8b2cbe6 9740995 8b2cbe6 9740995 790227b 9740995 66947f7 1ded52c 66947f7 9740995 cbc2dd6 9740995 ccc35d4 |
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import spaces
import gradio as gr
import cv2
import tempfile
from ultralytics import YOLOv10
model = YOLOv10.from_pretrained(f'jameslahm/yolov10n')
@spaces.GPU
def yolov10_inference(image, conf_threshold):
width, _ = image.size
import time
start = time.time()
results = model.predict(source=image, imgsz=width, conf=conf_threshold)
end = time.time()
annotated_image = results[0].plot()
print("time", end - start)
return annotated_image[:, :, ::-1]
css=""".my-group {max-width: 600px !important; max-height: 600 !important;}
.my-column {display: flex !important; justify-content: center !important; align-items: center !important};"""
with gr.Blocks(css=css) as app:
gr.HTML(
"""
<h1 style='text-align: center'>
YOLOv10 Webcam Stream
</h1>
""")
gr.HTML(
"""
<h3 style='text-align: center'>
<a href='https://arxiv.org/abs/2405.14458' target='_blank'>arXiv</a> | <a href='https://github.com/THU-MIG/yolov10' target='_blank'>github</a>
</h3>
""")
with gr.Column(elem_classes=["my-column"]):
with gr.Group(elem_classes=["my-group"]):
image = gr.Image(type="pil", label="Image", sources="webcam")
conf_threshold = gr.Slider(
label="Confidence Threshold",
minimum=0.0,
maximum=1.0,
step=0.05,
value=0.30,
)
image.stream(
fn=yolov10_inference,
inputs=[image, conf_threshold],
outputs=[image],
stream_every=0.1,
time_limit=30
)
if __name__ == '__main__':
app.launch()
|