Spaces:
Runtime error
Runtime error
jonathanagustin
commited on
Commit
·
e42b13d
1
Parent(s):
eed2323
save
Browse files- app.py +12 -22
- requirements.txt +2 -1
app.py
CHANGED
|
@@ -52,7 +52,7 @@ try:
|
|
| 52 |
import numpy as np
|
| 53 |
import streamlink
|
| 54 |
from PIL import Image
|
| 55 |
-
from
|
| 56 |
except ImportError:
|
| 57 |
install_requirements()
|
| 58 |
import cv2
|
|
@@ -61,7 +61,7 @@ except ImportError:
|
|
| 61 |
import numpy as np
|
| 62 |
import streamlink
|
| 63 |
from PIL import Image
|
| 64 |
-
from
|
| 65 |
|
| 66 |
|
| 67 |
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
|
|
@@ -252,16 +252,7 @@ class LiveYouTubeObjectDetector:
|
|
| 252 |
def __init__(self):
|
| 253 |
"""Initializes the LiveYouTubeObjectDetector with YOLO model and UI components."""
|
| 254 |
logging.getLogger().setLevel(logging.DEBUG)
|
| 255 |
-
|
| 256 |
-
local_model_path = "yolov8x-coco.pt"
|
| 257 |
-
response = requests.get(model_url)
|
| 258 |
-
if response.status_code == 200:
|
| 259 |
-
with open(local_model_path, "wb") as f:
|
| 260 |
-
f.write(response.content)
|
| 261 |
-
print("Model downloaded successfully.")
|
| 262 |
-
else:
|
| 263 |
-
raise Exception(f"Failed to download model: Status code {response.status_code}")
|
| 264 |
-
self.model = YOLO(local_model_path)
|
| 265 |
self.streams = INITIAL_STREAMS
|
| 266 |
|
| 267 |
# Gradio UI
|
|
@@ -327,16 +318,15 @@ class LiveYouTubeObjectDetector:
|
|
| 327 |
:rtype: Tuple[Image.Image, List[Tuple[Tuple[int, int, int, int], str]]]
|
| 328 |
"""
|
| 329 |
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
|
| 330 |
-
|
| 331 |
annotations = []
|
| 332 |
-
|
| 333 |
-
|
| 334 |
-
|
| 335 |
-
|
| 336 |
-
|
| 337 |
-
|
| 338 |
-
|
| 339 |
-
annotations.append((bbox_coords, class_name))
|
| 340 |
|
| 341 |
return Image.fromarray(frame_rgb), annotations
|
| 342 |
|
|
@@ -416,7 +406,7 @@ class LiveYouTubeObjectDetector:
|
|
| 416 |
def detect_objects_from_url(url):
|
| 417 |
return self.detect_objects(url)
|
| 418 |
|
| 419 |
-
return app.queue().launch(show_api=False)
|
| 420 |
|
| 421 |
|
| 422 |
if __name__ == "__main__":
|
|
|
|
| 52 |
import numpy as np
|
| 53 |
import streamlink
|
| 54 |
from PIL import Image
|
| 55 |
+
from super_gradients.training import models
|
| 56 |
except ImportError:
|
| 57 |
install_requirements()
|
| 58 |
import cv2
|
|
|
|
| 61 |
import numpy as np
|
| 62 |
import streamlink
|
| 63 |
from PIL import Image
|
| 64 |
+
from super_gradients.training import models
|
| 65 |
|
| 66 |
|
| 67 |
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
|
|
|
|
| 252 |
def __init__(self):
|
| 253 |
"""Initializes the LiveYouTubeObjectDetector with YOLO model and UI components."""
|
| 254 |
logging.getLogger().setLevel(logging.DEBUG)
|
| 255 |
+
self.model = models.get("yolo_nas_l", pretrained_weights="coco")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 256 |
self.streams = INITIAL_STREAMS
|
| 257 |
|
| 258 |
# Gradio UI
|
|
|
|
| 318 |
:rtype: Tuple[Image.Image, List[Tuple[Tuple[int, int, int, int], str]]]
|
| 319 |
"""
|
| 320 |
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
|
| 321 |
+
predictions = self.model.predict(frame_rgb)
|
| 322 |
annotations = []
|
| 323 |
+
result = predictions._images_prediction_lst[0]
|
| 324 |
+
|
| 325 |
+
for bbox, label in zip(result.prediction.bboxes_xyxy, result.prediction.labels):
|
| 326 |
+
x1, y1, x2, y2 = bbox
|
| 327 |
+
class_name = result.class_names[int(label)]
|
| 328 |
+
bbox_coords = (int(x1), int(y1), int(x2), int(y2))
|
| 329 |
+
annotations.append((bbox_coords, class_name))
|
|
|
|
| 330 |
|
| 331 |
return Image.fromarray(frame_rgb), annotations
|
| 332 |
|
|
|
|
| 406 |
def detect_objects_from_url(url):
|
| 407 |
return self.detect_objects(url)
|
| 408 |
|
| 409 |
+
return app.queue().launch(show_api=False, debug=True)
|
| 410 |
|
| 411 |
|
| 412 |
if __name__ == "__main__":
|
requirements.txt
CHANGED
|
@@ -3,6 +3,7 @@ innertube
|
|
| 3 |
opencv-python
|
| 4 |
pillow
|
| 5 |
streamlink
|
|
|
|
| 6 |
tiktoken
|
| 7 |
typing-extensions
|
| 8 |
-
ultralytics
|
|
|
|
| 3 |
opencv-python
|
| 4 |
pillow
|
| 5 |
streamlink
|
| 6 |
+
super-gradients
|
| 7 |
tiktoken
|
| 8 |
typing-extensions
|
| 9 |
+
ultralytics
|