Spaces:
Sleeping
Sleeping
File size: 1,287 Bytes
279a2eb 8ce1df4 279a2eb 8ce1df4 279a2eb 8ce1df4 279a2eb 8ce1df4 279a2eb 8ce1df4 279a2eb 8ce1df4 279a2eb |
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 |
from transformers import pipeline
from PIL import Image, ImageDraw
from pprint import pprint
detector = pipeline("object-detection", model="hustvl/yolos-base")
source = None
state = None
def draw_bbox(bboxes):
global source
if source is None:
return
draw = ImageDraw.Draw(source)
for bb in bboxes:
draw.rectangle(bb, outline='yellow', width=2)
def detect(img):
global source, result
if img is not None:
source = Image.open(img)
else:
return None
print("processing img...")
objects = detector(source)
persons = [
o for o in objects
if o['label'] == 'person' and o['score'] > 0.83]
bboxes = list(map(lambda p: (p['box']['xmin'], p['box']['ymin'], p['box']['xmax'], p['box']['ymax']), persons))
n = len(persons)
result = f"it's got {n} {'ppl' if n > 1 else 'person'} in the image"
draw_bbox(bboxes)
return source
def set_result(*args):
global result
if result is None:
return f"<h1 id='result' style='display: flex;justify-content: center;'>it counts ppl, upload an image, see how it goes</h1>"
else:
title = f"<h1 id='result' style='display: flex;justify-content: center;'>{result}</h1>"
result = None
return title
|