Spaces:
Build error
Build error
onipot
commited on
Commit
•
13f24b5
1
Parent(s):
bd1ea7f
pil image as input
Browse files
app.py
CHANGED
@@ -2,7 +2,7 @@ import gradio as gr
|
|
2 |
from PIL import Image,ImageDraw, ImageFont, ImageOps
|
3 |
import sys
|
4 |
import torch
|
5 |
-
from util import Detection
|
6 |
import os
|
7 |
|
8 |
if os.environ.get('FACE_MODEL') is not None:
|
@@ -17,16 +17,17 @@ sys.path.append("./yolov5")
|
|
17 |
|
18 |
from yolov5.detect import predict, load_yolo_model
|
19 |
|
|
|
20 |
# Load Models
|
21 |
model, stride, names, pt, jit, onnx, engine = load_yolo_model("face_model.pt", imgsz=[320,320])
|
22 |
age_model_ts = torch.jit.load("age_model.pt")
|
23 |
|
24 |
-
roboto_font =
|
25 |
|
26 |
-
def run_yolo(
|
27 |
|
28 |
-
img_path = img
|
29 |
-
img0 = Image.open(img_path).convert("RGB")
|
30 |
|
31 |
img0 = ImageOps.contain(img0, (720,720))
|
32 |
img0 = ImageOps.exif_transpose(img0)
|
@@ -55,15 +56,16 @@ def run_yolo(img):
|
|
55 |
|
56 |
detections.append(det)
|
57 |
draw.rectangle(((det.xmin, det.ymin), (det.xmax, det.ymax)), fill=None, outline=(255,255,255))
|
58 |
-
draw.rectangle(((det.xmin, det.ymin -
|
59 |
-
draw.text((det.xmin, det.ymin -
|
60 |
|
|
|
61 |
return img0
|
62 |
|
63 |
|
64 |
-
#
|
65 |
-
|
66 |
-
inputs = gr.inputs.Image(type='
|
67 |
outputs = gr.outputs.Image(type="pil", label="Output Image")
|
68 |
|
69 |
title = "AgeGuesser"
|
|
|
2 |
from PIL import Image,ImageDraw, ImageFont, ImageOps
|
3 |
import sys
|
4 |
import torch
|
5 |
+
from util import Detection, load_font
|
6 |
import os
|
7 |
|
8 |
if os.environ.get('FACE_MODEL') is not None:
|
|
|
17 |
|
18 |
from yolov5.detect import predict, load_yolo_model
|
19 |
|
20 |
+
|
21 |
# Load Models
|
22 |
model, stride, names, pt, jit, onnx, engine = load_yolo_model("face_model.pt", imgsz=[320,320])
|
23 |
age_model_ts = torch.jit.load("age_model.pt")
|
24 |
|
25 |
+
roboto_font = load_font(height_px=18)
|
26 |
|
27 |
+
def run_yolo(img0):
|
28 |
|
29 |
+
#img_path = img
|
30 |
+
#img0 = Image.open(img_path).convert("RGB")
|
31 |
|
32 |
img0 = ImageOps.contain(img0, (720,720))
|
33 |
img0 = ImageOps.exif_transpose(img0)
|
|
|
56 |
|
57 |
detections.append(det)
|
58 |
draw.rectangle(((det.xmin, det.ymin), (det.xmax, det.ymax)), fill=None, outline=(255,255,255))
|
59 |
+
draw.rectangle(((det.xmin, det.ymin - 20), (det.xmax, det.ymin)), fill=(255,255,255))
|
60 |
+
draw.text((det.xmin, det.ymin - 20), det.class_name, fill=(0,0,0), font=roboto_font)
|
61 |
|
62 |
+
# img0.save("img.jpg")
|
63 |
return img0
|
64 |
|
65 |
|
66 |
+
#run_yolo("D:\\Download\\IMG_20220803_153335c.jpg")
|
67 |
+
#sys.exit(1)
|
68 |
+
inputs = gr.inputs.Image(type='pil', label="Input Image")
|
69 |
outputs = gr.outputs.Image(type="pil", label="Output Image")
|
70 |
|
71 |
title = "AgeGuesser"
|
util.py
CHANGED
@@ -1,5 +1,7 @@
|
|
1 |
-
|
|
|
2 |
|
|
|
3 |
|
4 |
def __init__(self, id: int, xmin: int, ymin: int, xmax:int, ymax:int, conf: float, class_id:int, class_name:str, orig_img_sz: "tuple[int]") -> None:
|
5 |
|
@@ -79,4 +81,17 @@ class Detection(object):
|
|
79 |
return iou
|
80 |
|
81 |
def __str__(self) -> str:
|
82 |
-
return f"[{self.xmin}, {self.ymin}, {self.xmax}, {self.ymax}]"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from PIL import Image,ImageDraw, ImageFont, ImageOps
|
2 |
+
|
3 |
|
4 |
+
class Detection(object):
|
5 |
|
6 |
def __init__(self, id: int, xmin: int, ymin: int, xmax:int, ymax:int, conf: float, class_id:int, class_name:str, orig_img_sz: "tuple[int]") -> None:
|
7 |
|
|
|
81 |
return iou
|
82 |
|
83 |
def __str__(self) -> str:
|
84 |
+
return f"[{self.xmin}, {self.ymin}, {self.xmax}, {self.ymax}]"
|
85 |
+
|
86 |
+
|
87 |
+
def load_font(height_px = 20):
|
88 |
+
|
89 |
+
init_size = 12
|
90 |
+
roboto_font = ImageFont.truetype("Roboto-Regular.ttf", size=init_size)
|
91 |
+
|
92 |
+
while roboto_font.getsize("20")[1] < height_px:
|
93 |
+
|
94 |
+
init_size += 1
|
95 |
+
roboto_font = ImageFont.truetype("Roboto-Regular.ttf", size=init_size)
|
96 |
+
|
97 |
+
return roboto_font
|