Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -59,12 +59,13 @@ def visualize(image: np.ndarray, bboxes: np.ndarray, vbboxes: np.ndarray) -> np.
|
|
59 |
return res
|
60 |
|
61 |
|
62 |
-
def extract_persons(image: np.ndarray, bboxes: np.ndarray) -> list[
|
63 |
person_images = []
|
64 |
for bbox in bboxes:
|
65 |
x1, y1, x2, y2 = bbox
|
66 |
person_image = image[y1:y2, x1:x2] # Crop the detected person
|
67 |
-
|
|
|
68 |
return person_images
|
69 |
|
70 |
|
@@ -72,12 +73,12 @@ detector = load_model()
|
|
72 |
detector.prepare(-1, nms_thresh=0.5, input_size=(640, 640))
|
73 |
|
74 |
|
75 |
-
def detect(image: np.ndarray) -> tuple[
|
76 |
image = image[:, :, ::-1] # RGB -> BGR
|
77 |
bboxes, vbboxes = detect_person(image, detector)
|
78 |
res = visualize(image, bboxes, vbboxes)
|
79 |
-
person_images = extract_persons(res, bboxes) #
|
80 |
-
return res[:, :, ::-1], person_images # BGR -> RGB
|
81 |
|
82 |
|
83 |
examples = sorted(pathlib.Path("images").glob("*.jpg"))
|
|
|
59 |
return res
|
60 |
|
61 |
|
62 |
+
def extract_persons(image: np.ndarray, bboxes: np.ndarray) -> list[Image.Image]:
|
63 |
person_images = []
|
64 |
for bbox in bboxes:
|
65 |
x1, y1, x2, y2 = bbox
|
66 |
person_image = image[y1:y2, x1:x2] # Crop the detected person
|
67 |
+
person_pil_image = Image.fromarray(person_image)
|
68 |
+
person_images.append(person_pil_image)
|
69 |
return person_images
|
70 |
|
71 |
|
|
|
73 |
detector.prepare(-1, nms_thresh=0.5, input_size=(640, 640))
|
74 |
|
75 |
|
76 |
+
def detect(image: np.ndarray) -> tuple[Image.Image, list[Image.Image]]:
|
77 |
image = image[:, :, ::-1] # RGB -> BGR
|
78 |
bboxes, vbboxes = detect_person(image, detector)
|
79 |
res = visualize(image, bboxes, vbboxes)
|
80 |
+
person_images = extract_persons(res, bboxes) # Convert to PIL images
|
81 |
+
return Image.fromarray(res[:, :, ::-1]), person_images # BGR -> RGB, convert to PIL
|
82 |
|
83 |
|
84 |
examples = sorted(pathlib.Path("images").glob("*.jpg"))
|