Spaces:
Running
on
T4
Running
on
T4
global variables are set to gradio state
Browse files
app.py
CHANGED
@@ -41,19 +41,6 @@ siammask = Custom(anchors=cfg['anchors'])
|
|
41 |
siammask = load_pretrain(siammask, pretrained_path1)
|
42 |
siammask = siammask.eval().to(device)
|
43 |
|
44 |
-
# datetime object containing current date and time
|
45 |
-
now = datetime.now()
|
46 |
-
|
47 |
-
dt_string = now.strftime("%d_%m_%Y_%H_%M_%S")
|
48 |
-
print("date and time =", dt_string)
|
49 |
-
# constants
|
50 |
-
object_x = 0
|
51 |
-
object_y = 0
|
52 |
-
object_width = 0
|
53 |
-
object_height = 0
|
54 |
-
in_fps = 24
|
55 |
-
|
56 |
-
|
57 |
parser = argparse.ArgumentParser()
|
58 |
# parser.add_argument('--opt', default='configs/object_removal.yaml',
|
59 |
# help='Please select your config file for inference')
|
@@ -69,7 +56,7 @@ parser.add_argument(
|
|
69 |
parser.add_argument(
|
70 |
'--outroot', default=os.path.abspath(project_name), help="output directory")
|
71 |
parser.add_argument(
|
72 |
-
'--outfilename', default=
|
73 |
parser.add_argument('--consistencyThres', dest='consistencyThres', default=5, type=float,
|
74 |
help='flow consistency error threshold')
|
75 |
parser.add_argument('--alpha', dest='alpha', default=0.1, type=float)
|
@@ -144,7 +131,7 @@ def getBoundaries(mask):
|
|
144 |
return x1, y1, (x2-x1), (y2-y1)
|
145 |
|
146 |
|
147 |
-
def track_and_mask(vid, masked_frame, original_list, mask_list):
|
148 |
x, y, w, h = getBoundaries(masked_frame)
|
149 |
f = 0
|
150 |
|
@@ -197,19 +184,23 @@ def track_and_mask(vid, masked_frame, original_list, mask_list):
|
|
197 |
else:
|
198 |
print("can't open the given input video file!")
|
199 |
|
|
|
200 |
print('Original Frame Count: ',len(original_list))
|
201 |
print('Mask Frame Count: ',len(mask_list))
|
202 |
-
return {out_video_inpaint:
|
203 |
original_frame_list: original_list,
|
204 |
-
mask_list: mask_list
|
|
|
205 |
|
206 |
|
207 |
def inpaint_video(original_frame_list, mask_list):
|
|
|
208 |
args.out_fps = in_fps
|
|
|
209 |
video_inpainting(args, original_frame_list, mask_list)
|
210 |
original_frame_list = []
|
211 |
mask_list = []
|
212 |
-
return {out_video_inpaint:
|
213 |
original_frame_list: original_frame_list,
|
214 |
mask_list: mask_list}
|
215 |
|
@@ -250,6 +241,9 @@ def getStartEndPoints(mask):
|
|
250 |
with gr.Blocks() as demo:
|
251 |
original_frame_list = gr.State([])
|
252 |
mask_list = gr.State([])
|
|
|
|
|
|
|
253 |
with gr.Row():
|
254 |
with gr.Column(scale=2):
|
255 |
with gr.Row():
|
@@ -274,7 +268,7 @@ with gr.Blocks() as demo:
|
|
274 |
approve_mask.click(lambda x: [x['image'], x['mask']], first_frame, [
|
275 |
original_image, masked_image])
|
276 |
track_mask.click(fn=track_and_mask, inputs=[
|
277 |
-
in_video, masked_image, original_frame_list, mask_list], outputs=[out_video, original_frame_list, mask_list])
|
278 |
inpaint.click(fn=inpaint_video, outputs=[out_video_inpaint, original_frame_list, mask_list])
|
279 |
|
280 |
|
|
|
41 |
siammask = load_pretrain(siammask, pretrained_path1)
|
42 |
siammask = siammask.eval().to(device)
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
parser = argparse.ArgumentParser()
|
45 |
# parser.add_argument('--opt', default='configs/object_removal.yaml',
|
46 |
# help='Please select your config file for inference')
|
|
|
56 |
parser.add_argument(
|
57 |
'--outroot', default=os.path.abspath(project_name), help="output directory")
|
58 |
parser.add_argument(
|
59 |
+
'--outfilename', default="result.mp4", help="output filename")
|
60 |
parser.add_argument('--consistencyThres', dest='consistencyThres', default=5, type=float,
|
61 |
help='flow consistency error threshold')
|
62 |
parser.add_argument('--alpha', dest='alpha', default=0.1, type=float)
|
|
|
131 |
return x1, y1, (x2-x1), (y2-y1)
|
132 |
|
133 |
|
134 |
+
def track_and_mask(vid, masked_frame, original_list, mask_list, in_fps, dt_string):
|
135 |
x, y, w, h = getBoundaries(masked_frame)
|
136 |
f = 0
|
137 |
|
|
|
184 |
else:
|
185 |
print("can't open the given input video file!")
|
186 |
|
187 |
+
outname = (dt_string+"_output.avi")
|
188 |
print('Original Frame Count: ',len(original_list))
|
189 |
print('Mask Frame Count: ',len(mask_list))
|
190 |
+
return {out_video_inpaint:outname,
|
191 |
original_frame_list: original_list,
|
192 |
+
mask_list: mask_list,
|
193 |
+
in_fps: in_fps}
|
194 |
|
195 |
|
196 |
def inpaint_video(original_frame_list, mask_list):
|
197 |
+
outname = (dt_string+"_result.mp4")
|
198 |
args.out_fps = in_fps
|
199 |
+
args.outfilename = outname
|
200 |
video_inpainting(args, original_frame_list, mask_list)
|
201 |
original_frame_list = []
|
202 |
mask_list = []
|
203 |
+
return {out_video_inpaint:outname,
|
204 |
original_frame_list: original_frame_list,
|
205 |
mask_list: mask_list}
|
206 |
|
|
|
241 |
with gr.Blocks() as demo:
|
242 |
original_frame_list = gr.State([])
|
243 |
mask_list = gr.State([])
|
244 |
+
# constants
|
245 |
+
in_fps = gr.State(24)
|
246 |
+
dt_string = gr.State(datetime.now().strftime("%d_%m_%Y_%H_%M_%S"))
|
247 |
with gr.Row():
|
248 |
with gr.Column(scale=2):
|
249 |
with gr.Row():
|
|
|
268 |
approve_mask.click(lambda x: [x['image'], x['mask']], first_frame, [
|
269 |
original_image, masked_image])
|
270 |
track_mask.click(fn=track_and_mask, inputs=[
|
271 |
+
in_video, masked_image, original_frame_list, mask_list, in_fps, dt_string], outputs=[out_video, original_frame_list, mask_list, in_fps])
|
272 |
inpaint.click(fn=inpaint_video, outputs=[out_video_inpaint, original_frame_list, mask_list])
|
273 |
|
274 |
|