Spaces:
Configuration error

englert commited on
Commit
2e633e0
·
1 Parent(s): ba93a7e

update app.py #4

Browse files
Files changed (1) hide show
  1. app.py +63 -2
app.py CHANGED
@@ -22,6 +22,67 @@ model.load_state_dict(torch.load("model.pt"))
22
  model.eval()
23
  avg_pool = torch.nn.AdaptiveAvgPool2d((1, 1))
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
  def predict(input_file, downsample_size):
27
  downsample_size = int(downsample_size)
@@ -32,7 +93,7 @@ def predict(input_file, downsample_size):
32
  shutil.rmtree(selected_directory)
33
  os.mkdir(selected_directory)
34
 
35
- zip_path = os.path.join(input_file.split('/')[-1][:-4] + ".zip")
36
 
37
  mean = np.asarray([0.3156024, 0.33569682, 0.34337464], dtype=np.float32)
38
  std = np.asarray([0.16568947, 0.17827448, 0.18925823], dtype=np.float32)
@@ -90,4 +151,4 @@ demo = gr.Interface(
90
  gr.components.Number(label="Downsample size")],
91
  outputs=gr.components.File(label="Zip"))
92
 
93
- demo.launch(debug = True)
 
22
  model.eval()
23
  avg_pool = torch.nn.AdaptiveAvgPool2d((1, 1))
24
 
25
+ import urllib.request
26
+ urllib.request.urlretrieve("https://media.githubusercontent.com/media/commaai/speedchallenge/master/data/test.mp4", 'video_name.mp4')
27
+ input_file = 'video_name.mp4'
28
+
29
+ downsample_size = int(100)
30
+
31
+ base_directory = os.getcwd()
32
+ selected_directory = os.path.join(base_directory, "selected_images")
33
+ if os.path.isdir(selected_directory):
34
+ shutil.rmtree(selected_directory)
35
+ os.mkdir(selected_directory)
36
+
37
+ zip_path = os.path.join(selected_directory, input_file.split('/')[-1][:-4] + ".zip")
38
+
39
+ mean = np.asarray([0.3156024, 0.33569682, 0.34337464], dtype=np.float32)
40
+ std = np.asarray([0.16568947, 0.17827448, 0.18925823], dtype=np.float32)
41
+
42
+ img_vecs = []
43
+ with torch.no_grad():
44
+ for fp_i, file_path in enumerate([input_file]):
45
+ for i, in_img in enumerate(video_reader(file_path,
46
+ targetFPS=9,
47
+ targetWidth=100,
48
+ to_rgb=True)):
49
+ in_img = (in_img.astype(np.float32) / 255.)
50
+ in_img = (in_img - mean) / std
51
+ in_img = np.expand_dims(in_img, 0)
52
+ in_img = np.transpose(in_img, (0, 3, 1, 2))
53
+ in_img = torch.from_numpy(in_img).float()
54
+ encoded = avg_pool(model(in_img))[0, :, 0, 0].cpu().numpy()
55
+ img_vecs += [encoded]
56
+ img_vecs = np.asarray(img_vecs)
57
+ print("images encoded")
58
+ rv_indices, _ = furthest_neighbours(
59
+ img_vecs,
60
+ downsample_size,
61
+ seed=0)
62
+ indices = np.zeros((img_vecs.shape[0],))
63
+ indices[np.asarray(rv_indices)] = 1
64
+ print("images selected")
65
+
66
+ global_ctr = 0
67
+ for fp_i, file_path in enumerate([input_file]):
68
+ for i, img in enumerate(video_reader(file_path,
69
+ targetFPS=9,
70
+ targetWidth=None,
71
+ to_rgb=False)):
72
+ if indices[global_ctr] == 1:
73
+ cv2.imwrite(join(selected_directory, str(global_ctr) + ".jpg"), img)
74
+ global_ctr += 1
75
+ print("selected images extracted")
76
+
77
+ all_selected_imgs_path = [join(selected_directory, f) for f in os.listdir(selected_directory) if
78
+ isfile(join(selected_directory, f))]
79
+
80
+ zipf = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
81
+ for i, f in enumerate(all_selected_imgs_path):
82
+ zipf.write(f, basename(f))
83
+ zipf.close()
84
+ print("selected images zipped")
85
+
86
 
87
  def predict(input_file, downsample_size):
88
  downsample_size = int(downsample_size)
 
93
  shutil.rmtree(selected_directory)
94
  os.mkdir(selected_directory)
95
 
96
+ zip_path = os.path.join(selected_directory, input_file.split('/')[-1][:-4] + ".zip")
97
 
98
  mean = np.asarray([0.3156024, 0.33569682, 0.34337464], dtype=np.float32)
99
  std = np.asarray([0.16568947, 0.17827448, 0.18925823], dtype=np.float32)
 
151
  gr.components.Number(label="Downsample size")],
152
  outputs=gr.components.File(label="Zip"))
153
 
154
+ demo.launch(debug=True)