Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -63,6 +63,7 @@ def perform_detection(image, interpreter, labels):
|
|
63 |
classes = interpreter.get_tensor(output_details[classes_idx]['index'])[0]
|
64 |
scores = interpreter.get_tensor(output_details[scores_idx]['index'])[0]
|
65 |
|
|
|
66 |
for i in range(len(scores)):
|
67 |
if ((scores[i] > 0.5) and (scores[i] <= 1.0)):
|
68 |
ymin = int(max(1, (boxes[i][0] * imH)))
|
@@ -78,6 +79,7 @@ def perform_detection(image, interpreter, labels):
|
|
78 |
cv2.rectangle(image, (xmin, label_ymin - labelSize[1] - 10), (xmin + labelSize[0], label_ymin + baseLine - 10), (255, 255, 255), cv2.FILLED)
|
79 |
cv2.putText(image, label, (xmin, label_ymin - 7), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 0), 2)
|
80 |
|
|
|
81 |
return image
|
82 |
|
83 |
def resize_image(image, size=640):
|
@@ -85,13 +87,12 @@ def resize_image(image, size=640):
|
|
85 |
|
86 |
def detect_image(input_image):
|
87 |
image = np.array(input_image)
|
88 |
-
resized_image = resize_image(image)
|
89 |
result_image = perform_detection(resized_image, interpreter, labels)
|
90 |
-
|
91 |
-
return Image.fromarray(result_image_resized)
|
92 |
|
93 |
def detect_video(input_video):
|
94 |
-
cap = cv2.VideoCapture(input_video
|
95 |
frames = []
|
96 |
|
97 |
while cap.isOpened():
|
@@ -99,7 +100,8 @@ def detect_video(input_video):
|
|
99 |
if not ret:
|
100 |
break
|
101 |
|
102 |
-
|
|
|
103 |
frames.append(result_frame)
|
104 |
|
105 |
cap.release()
|
@@ -109,7 +111,7 @@ def detect_video(input_video):
|
|
109 |
|
110 |
height, width, layers = frames[0].shape
|
111 |
size = (width, height)
|
112 |
-
output_video_path = "result_" + os.path.basename(input_video
|
113 |
out = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*'mp4v'), 15, size)
|
114 |
|
115 |
for frame in frames:
|
|
|
63 |
classes = interpreter.get_tensor(output_details[classes_idx]['index'])[0]
|
64 |
scores = interpreter.get_tensor(output_details[scores_idx]['index'])[0]
|
65 |
|
66 |
+
detections = []
|
67 |
for i in range(len(scores)):
|
68 |
if ((scores[i] > 0.5) and (scores[i] <= 1.0)):
|
69 |
ymin = int(max(1, (boxes[i][0] * imH)))
|
|
|
79 |
cv2.rectangle(image, (xmin, label_ymin - labelSize[1] - 10), (xmin + labelSize[0], label_ymin + baseLine - 10), (255, 255, 255), cv2.FILLED)
|
80 |
cv2.putText(image, label, (xmin, label_ymin - 7), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 0), 2)
|
81 |
|
82 |
+
detections.append([object_name, scores[i], xmin, ymin, xmax, ymax])
|
83 |
return image
|
84 |
|
85 |
def resize_image(image, size=640):
|
|
|
87 |
|
88 |
def detect_image(input_image):
|
89 |
image = np.array(input_image)
|
90 |
+
resized_image = resize_image(image, size=640) # Resize input image
|
91 |
result_image = perform_detection(resized_image, interpreter, labels)
|
92 |
+
return Image.fromarray(result_image)
|
|
|
93 |
|
94 |
def detect_video(input_video):
|
95 |
+
cap = cv2.VideoCapture(input_video)
|
96 |
frames = []
|
97 |
|
98 |
while cap.isOpened():
|
|
|
100 |
if not ret:
|
101 |
break
|
102 |
|
103 |
+
resized_frame = resize_image(frame, size=640) # Resize each frame
|
104 |
+
result_frame = perform_detection(resized_frame, interpreter, labels)
|
105 |
frames.append(result_frame)
|
106 |
|
107 |
cap.release()
|
|
|
111 |
|
112 |
height, width, layers = frames[0].shape
|
113 |
size = (width, height)
|
114 |
+
output_video_path = "result_" + os.path.basename(input_video)
|
115 |
out = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*'mp4v'), 15, size)
|
116 |
|
117 |
for frame in frames:
|