Spaces:
Running
on
T4
Running
on
T4
Update app.py
Browse files
app.py
CHANGED
@@ -52,7 +52,7 @@ def preprocess_video_in(video_path):
|
|
52 |
cap.release()
|
53 |
|
54 |
# 'image' is the first frame extracted from video_in
|
55 |
-
return first_frame, gr.State([]), gr.State([]), first_frame, first_frame
|
56 |
|
57 |
def get_point(point_type, tracking_points, trackings_input_label, first_frame_path, evt: gr.SelectData):
|
58 |
print(f"You selected {evt.value} at {evt.index} from {evt.target}")
|
@@ -167,7 +167,7 @@ def show_masks(image, masks, scores, point_coords=None, box_coords=None, input_l
|
|
167 |
return combined_images, mask_images
|
168 |
|
169 |
|
170 |
-
def sam_process(input_first_frame_image, checkpoint, tracking_points, trackings_input_label):
|
171 |
# 1. We need to preprocess the video and store frames in the right directory
|
172 |
# — Penser à utiliser un ID unique pour le dossier
|
173 |
|
@@ -190,7 +190,8 @@ def sam_process(input_first_frame_image, checkpoint, tracking_points, trackings_
|
|
190 |
|
191 |
|
192 |
# `video_dir` a directory of JPEG frames with filenames like `<frame_index>.jpg`
|
193 |
-
|
|
|
194 |
|
195 |
# scan all the JPEG frame names in this directory
|
196 |
frame_names = [
|
@@ -279,6 +280,7 @@ with gr.Blocks() as demo:
|
|
279 |
first_frame_path = gr.State()
|
280 |
tracking_points = gr.State([])
|
281 |
trackings_input_label = gr.State([])
|
|
|
282 |
with gr.Column():
|
283 |
gr.Markdown("# SAM2 Video Predictor")
|
284 |
gr.Markdown("This is a simple demo for video segmentation with SAM2.")
|
@@ -317,7 +319,7 @@ with gr.Blocks() as demo:
|
|
317 |
video_in.upload(
|
318 |
fn = preprocess_video_in,
|
319 |
inputs = [video_in],
|
320 |
-
outputs = [first_frame_path, tracking_points, trackings_input_label, input_first_frame_image, points_map],
|
321 |
queue = False
|
322 |
)
|
323 |
|
@@ -330,7 +332,7 @@ with gr.Blocks() as demo:
|
|
330 |
|
331 |
submit_btn.click(
|
332 |
fn = sam_process,
|
333 |
-
inputs = [input_first_frame_image, checkpoint, tracking_points, trackings_input_label],
|
334 |
outputs = [output_result]
|
335 |
)
|
336 |
|
|
|
52 |
cap.release()
|
53 |
|
54 |
# 'image' is the first frame extracted from video_in
|
55 |
+
return first_frame, gr.State([]), gr.State([]), first_frame, first_frame, output_dir
|
56 |
|
57 |
def get_point(point_type, tracking_points, trackings_input_label, first_frame_path, evt: gr.SelectData):
|
58 |
print(f"You selected {evt.value} at {evt.index} from {evt.target}")
|
|
|
167 |
return combined_images, mask_images
|
168 |
|
169 |
|
170 |
+
def sam_process(input_first_frame_image, checkpoint, tracking_points, trackings_input_label, frames_output_dir):
|
171 |
# 1. We need to preprocess the video and store frames in the right directory
|
172 |
# — Penser à utiliser un ID unique pour le dossier
|
173 |
|
|
|
190 |
|
191 |
|
192 |
# `video_dir` a directory of JPEG frames with filenames like `<frame_index>.jpg`
|
193 |
+
print(f"STATE FRAME OUTPUT DIRECTORY: {frames_output_dir.value}")
|
194 |
+
video_dir = frames_output_dir.value
|
195 |
|
196 |
# scan all the JPEG frame names in this directory
|
197 |
frame_names = [
|
|
|
280 |
first_frame_path = gr.State()
|
281 |
tracking_points = gr.State([])
|
282 |
trackings_input_label = gr.State([])
|
283 |
+
frames_output_dir = gr.State()
|
284 |
with gr.Column():
|
285 |
gr.Markdown("# SAM2 Video Predictor")
|
286 |
gr.Markdown("This is a simple demo for video segmentation with SAM2.")
|
|
|
319 |
video_in.upload(
|
320 |
fn = preprocess_video_in,
|
321 |
inputs = [video_in],
|
322 |
+
outputs = [first_frame_path, tracking_points, trackings_input_label, input_first_frame_image, points_map, frames_output_dir],
|
323 |
queue = False
|
324 |
)
|
325 |
|
|
|
332 |
|
333 |
submit_btn.click(
|
334 |
fn = sam_process,
|
335 |
+
inputs = [input_first_frame_image, checkpoint, tracking_points, trackings_input_label, frames_output_dir],
|
336 |
outputs = [output_result]
|
337 |
)
|
338 |
|