Spaces:
Runtime error
Runtime error
duration
Browse files
app.py
CHANGED
@@ -30,6 +30,30 @@ print("[INFO]: Imported modules!")
|
|
30 |
track_model = YOLO('yolov8n.pt') # Load an official Detect model
|
31 |
print("[INFO]: Downloaded models!")
|
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
def tracking(video, model, boxes=True):
|
34 |
print("[INFO] Is cuda available? ", torch.cuda.is_available())
|
35 |
print(device)
|
@@ -45,17 +69,12 @@ def tracking(video, model, boxes=True):
|
|
45 |
return annotated_frame
|
46 |
|
47 |
def show_tracking(video_content):
|
|
|
|
|
48 |
|
49 |
# https://docs.ultralytics.com/datasets/detect/coco/
|
50 |
video = cv2.VideoCapture(video_content)
|
51 |
|
52 |
-
fps = video.get(cv2.CAP_PROP_FPS) # OpenCV v2.x used "CV_CAP_PROP_FPS"
|
53 |
-
frame_count = int(video.get(cv2.CAP_PROP_FRAME_COUNT))
|
54 |
-
duration = frame_count/fps
|
55 |
-
|
56 |
-
if duration > 10:
|
57 |
-
raise gr.Error("Please provide or record a video shorter than 10 seconds...")
|
58 |
-
|
59 |
# Track
|
60 |
video_track = tracking(video_content, track_model.track)
|
61 |
|
|
|
30 |
track_model = YOLO('yolov8n.pt') # Load an official Detect model
|
31 |
print("[INFO]: Downloaded models!")
|
32 |
|
33 |
+
|
34 |
+
|
35 |
+
def check_extension(video):
|
36 |
+
|
37 |
+
clip = moviepy.VideoFileClip(video)
|
38 |
+
|
39 |
+
if clip.duration > 10:
|
40 |
+
raise gr.Error("Please provide or record a video shorter than 10 seconds...")
|
41 |
+
|
42 |
+
split_tup = os.path.splitext(video)
|
43 |
+
|
44 |
+
# extract the file name and extension
|
45 |
+
file_name = split_tup[0]
|
46 |
+
file_extension = split_tup[1]
|
47 |
+
|
48 |
+
if file_extension != ".mp4":
|
49 |
+
print("Converting to mp4")
|
50 |
+
|
51 |
+
video = file_name+".mp4"
|
52 |
+
clip.write_videofile(video, threads = 8)
|
53 |
+
|
54 |
+
return video
|
55 |
+
|
56 |
+
|
57 |
def tracking(video, model, boxes=True):
|
58 |
print("[INFO] Is cuda available? ", torch.cuda.is_available())
|
59 |
print(device)
|
|
|
69 |
return annotated_frame
|
70 |
|
71 |
def show_tracking(video_content):
|
72 |
+
|
73 |
+
video = check_extension(video_content)
|
74 |
|
75 |
# https://docs.ultralytics.com/datasets/detect/coco/
|
76 |
video = cv2.VideoCapture(video_content)
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
# Track
|
79 |
video_track = tracking(video_content, track_model.track)
|
80 |
|