YuqianFu commited on
Commit
944cdc2
·
verified ·
1 Parent(s): ec2a9ab

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +4 -0
  2. .gitignore +2 -0
  3. 1.log +3 -0
  4. 2.log +3 -0
  5. 3.log +56 -0
  6. 8.log +110 -0
  7. 81917.error +0 -0
  8. 81917.log +0 -0
  9. 82889.log +7 -0
  10. 83062.log +441 -0
  11. 83501.log +0 -0
  12. 9.log +530 -0
  13. README.md +14 -0
  14. correspondence/README.md +17 -0
  15. correspondence/SegSwap/README.md +89 -0
  16. correspondence/SegSwap/data/correspondence_takes.txt +1334 -0
  17. correspondence/SegSwap/data/create_pairs.py +75 -0
  18. correspondence/SegSwap/data/download_uids.sh +1 -0
  19. correspondence/SegSwap/data/input2.mp4 +3 -0
  20. correspondence/SegSwap/data/only_extract_frames.py +177 -0
  21. correspondence/SegSwap/data/only_extract_frames_optimized.py +284 -0
  22. correspondence/SegSwap/data/optimization_summary.py +83 -0
  23. correspondence/SegSwap/data/process_data.py +177 -0
  24. correspondence/SegSwap/data/process_data2.py +175 -0
  25. correspondence/SegSwap/data/process_data_batch.py +271 -0
  26. correspondence/SegSwap/data/process_data_new.py +176 -0
  27. correspondence/SegSwap/data/process_data_new_chunk.py +198 -0
  28. correspondence/SegSwap/data/split.json +1 -0
  29. correspondence/SegSwap/data/video2img.py +54 -0
  30. correspondence/SegSwap/data/video_extract.sh +16 -0
  31. correspondence/SegSwap/environment.yml +145 -0
  32. correspondence/SegSwap/eval_handal.py +252 -0
  33. correspondence/SegSwap/eval_segswap.py +287 -0
  34. correspondence/SegSwap/eval_segswap_new.py +292 -0
  35. correspondence/SegSwap/input.mp4 +3 -0
  36. correspondence/SegSwap/model/=12 +0 -0
  37. correspondence/SegSwap/model/convert_torchvision.py +25 -0
  38. correspondence/SegSwap/model/download_model.sh +6 -0
  39. correspondence/SegSwap/model/environment.yml +145 -0
  40. correspondence/SegSwap/model/moco_v2_800ep_pretrain_torchvision.pth.tar +3 -0
  41. correspondence/SegSwap/model/model.pth +3 -0
  42. correspondence/SegSwap/model/transformer.py +355 -0
  43. correspondence/SegSwap/process_data.sh +24 -0
  44. correspondence/SegSwap/process_test_data_20250507.log +3 -0
  45. correspondence/SegSwap/process_test_data_20250508_new.log +3 -0
  46. correspondence/SegSwap/process_test_data_20250508_new666.log +3 -0
  47. correspondence/SegSwap/process_test_data_20250508_new888.log +6 -0
  48. correspondence/SegSwap/process_test_data_20250508_new999.log +3 -0
  49. correspondence/SegSwap/process_test_data_20250511_new.log +3 -0
  50. correspondence/SegSwap/process_test_data_20250512.log +795 -0
.gitattributes CHANGED
@@ -33,3 +33,7 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ correspondence/SegSwap/data/input2.mp4 filter=lfs diff=lfs merge=lfs -text
37
+ correspondence/SegSwap/input.mp4 filter=lfs diff=lfs merge=lfs -text
38
+ correspondence/XMem/PSALM/images/teaser.png filter=lfs diff=lfs merge=lfs -text
39
+ seg_dis_new.log filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ .vim-arsync
2
+ *.pyc
1.log ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 820
2
+ 65
3
+ ['f2f93854-2634-449c-b68e-aebf4743ac9f', '7d59164c-e0bc-4ae0-95c9-733e4c8b0d6a', 'cace80a1-42df-4cf4-a1ec-80647638a443', '8fa671be-2624-4783-8572-5f4b7722b6c0', 'ca1434ea-b787-44ad-a9da-e0f7d5167a35', 'cfd2c825-45d1-4e59-b33f-b6dff8c174c8', '39d48b6a-66e8-4bbb-a596-4461b601cabc', 'f4dead01-fa3d-4aa5-8b59-13a0d9186dd2', '4cf43506-d0a6-4c42-9136-adb2ecd57411', '89815623-8ece-4e3c-8879-f1f32b299527', '5fd383f1-c8bb-42d7-b98b-7418d99d9bb4', 'b1b794e8-7839-46ab-b05f-f4b1c16d5420', 'b7dbb47c-d850-4853-b434-7b20519ea9e5', '636eaa0b-d65d-4b25-bbdd-1065f84ef89e', 'd2b0ee95-2a76-4b69-aebf-3c7e553f8e2b', 'cea1b20b-6e18-4bb6-87e0-164a2b8c3dc0', 'fba2c124-99ec-40ed-8d6a-46808afe6d98', '549e5b97-f93a-4500-8f02-5be13017dce5', '6cbfa460-72a7-4038-b6af-4305a1cc05dd', '319a9983-f70c-4224-a3a7-33338c8a9f35', 'bcfb6839-3c09-4d42-9d9c-59042f6ab721', '3ca2798d-cfe3-46c6-a8bc-cc4689bd6d75', 'aa40670e-4487-4f60-a27b-26f7372ef8e7', '389cfa3f-3a4c-4b8f-9535-d7c95ffd594c', '214bdc0d-fa50-4a84-b771-c0a7bdeafadc', '08504348-4f72-477e-a08f-1050204ae55e', 'd35a162e-c38e-4017-94d1-539f26651115', '925ebe22-f97a-4e79-aed3-9873cf461c3c', 'c0b7d130-2004-4450-ad94-ea3167bd9fab', 'f1ce9be1-b623-4ce4-84e2-37e9f88eea86', 'c288cb15-81c7-4463-814f-959c12740499', 'b69de073-c157-4cff-8eba-97bfc7baa012', '289c4873-5bf9-41b9-b784-aba52b54cd4d', '0bcb8b46-cc45-4bcb-a627-85633e54e060', '819780c3-97c0-4ac6-b37f-8c66abf8167d', '9512a137-40b6-49c6-a03d-a3340b9dd277', '393e9b60-504c-4cc7-a90b-eb78dd62d5ff', 'fb09baec-1a5a-40b4-8d72-e581c93fbd77', '3042b472-99cc-4407-a79e-f76916b95737', '4939903a-2c73-4633-ae15-618be39990e7', 'ced0e340-b958-4505-badc-c8c2f256c145', 'e53ae33b-61b6-4c3e-8be0-5696f961704b', '759aa03c-c8e1-4fcb-8817-85948100ed33', '31df8578-1fd0-4406-9008-900a88f7990a', '9506c70a-1639-42ea-bbfc-2b9c0f8c9394', 'e46f9a53-7625-4827-8b92-79c958d3524e', '3125dca7-b99e-4b2b-8844-2d912619b353', 'b65a60e0-f224-4b3d-bf78-ba44e12c4ac1', 'c53daadd-09f0-485b-a51c-1d5679f5fb09', 'b378d186-0587-40ed-afdf-875e6dfb5876', '8000dfb2-accb-4bb8-abfb-cc2d677d0b2f', 'ff93ae48-0daa-418c-9d5c-b5b0b6d23efb', '6d0a7c80-ae8c-4673-8f70-c09fd6fbebe8', 'f0cd03a5-9cd8-4510-87c1-a5c493197b75', 'c16175f5-f990-48a1-9dcc-6a385f108687', '816dd81e-93b1-433c-83ff-264ae404a3bf', 'f8bed5fe-3e09-4885-9539-edb4d5b2279a', '601c9c61-fc2b-4ac2-b3c4-dda557c2563b', '56c35d79-acb1-47a1-8590-7e5cb2585ee5', 'd5193bae-a7f5-4e8a-9c96-09f557c7ea9d', '8d7646a3-ce7b-425d-b16e-9a63a1166576', '0b89efcd-59bf-4f0b-a81a-50dee0b79982', '9681b4c6-9713-4bb3-aa9a-7df7daa4e74d', '69fac17f-6527-493d-8dac-cd3bb61ce23e', '5ee00a17-171f-46a4-927b-3aa9d0fe176e']
2.log ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 201
2
+ 0
3
+ []
3.log ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
0
  0%| | 0/1000 [00:00<?, ?it/s]
1
  0%| | 0/1000 [00:07<?, ?it/s]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2024-09-02 06:43:53,395 INFO Namespace(n_epoch=250, lr_schedule=[50], lr=0.0002, gpu='0', out_dir='/data/work-gcp-europe-west4-a/yuqian_fu/Ego/checkpoints/egoexo_v2_480x480', train_dir=['/data/work-gcp-europe-west4-a/yuqian_fu/Ego/data_segswap'], prob_dir=[0.5, 0.5], batch_pos=32, batch_neg=15, feat_pth='../evalBrueghel/Moco_resnet50_feat_1Scale_640p.pkl', warp_mask=False, warmUpIter=1000, resume_pth=None, resume_epoch=0, mode='small', pos_weight=0.1, feat_weight=1, dropout=0.1, activation='relu', prob_style=0.5, layer_type=['I', 'C', 'I', 'C', 'I', 'N'], drop_feat=0.1, tps_grid=[4, 6], eta_corr=8, iter_epoch=1000, iter_epoch_val=100, weight_decay=0, reverse=False)
2
+ 2024-09-02 06:43:53,396 INFO Load MocoV2 pre-trained ResNet-50 feature...
3
+ LOADING: train_egoexo_pairs.json
4
+ LOADING: val_egoexo_pairs.json
5
+
6
  0%| | 0/1000 [00:00<?, ?it/s]
7
  0%| | 0/1000 [00:07<?, ?it/s]
8
+ Traceback (most recent call last):
9
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/train/Main.py", line 188, in <module>
10
+ backbone, netEncoder, optimizer, history = Train.trainEpoch(trainLoader, backbone, netEncoder, optimizer, history, Loss, ClsLoss, args.batch_pos, args.batch_neg, args.warp_mask, logger, args.eta_corr, args.warmUpIter, 0, args.lr, writer, warmup=True)
11
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
12
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/train/Train.py", line 80, in trainEpoch
13
+ O1, O2, O3 = netEncoder(X, Y, FMTX, RS, RT)
14
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15
+ File "/scratch/yuqian_fu/micromamba/envs/auto-zap7rdp2jlp7/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
16
+ return forward_call(*args, **kwargs)
17
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
18
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model/transformer.py", line 342, in forward
19
+ outx, outy, out_cls = self.net(x, y, fmask, x_mask, y_mask)
20
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21
+ File "/scratch/yuqian_fu/micromamba/envs/auto-zap7rdp2jlp7/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
22
+ return forward_call(*args, **kwargs)
23
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
24
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model/transformer.py", line 291, in forward
25
+ featx, featy, x_mask, y_mask = self.encoder_blocks[i](featx, featy, featmask, x_mask, y_mask)
26
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
27
+ File "/scratch/yuqian_fu/micromamba/envs/auto-zap7rdp2jlp7/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
28
+ return forward_call(*args, **kwargs)
29
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
30
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model/transformer.py", line 205, in forward
31
+ featx, featy, x_mask, y_mask = self.layer1(featx, featy, featmask, x_mask, y_mask)
32
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
33
+ File "/scratch/yuqian_fu/micromamba/envs/auto-zap7rdp2jlp7/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
34
+ return forward_call(*args, **kwargs)
35
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
36
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model/transformer.py", line 105, in forward
37
+ output = self.inner_encoder_layer(output, src_mask=src_mask, src_key_padding_mask=src_key_padding_mask)
38
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
39
+ File "/scratch/yuqian_fu/micromamba/envs/auto-zap7rdp2jlp7/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
40
+ return forward_call(*args, **kwargs)
41
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
42
+ File "/scratch/yuqian_fu/micromamba/envs/auto-zap7rdp2jlp7/lib/python3.11/site-packages/torch/nn/modules/transformer.py", line 591, in forward
43
+ x = self.norm1(x + self._sa_block(x, src_mask, src_key_padding_mask, is_causal=is_causal))
44
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
45
+ File "/scratch/yuqian_fu/micromamba/envs/auto-zap7rdp2jlp7/lib/python3.11/site-packages/torch/nn/modules/transformer.py", line 599, in _sa_block
46
+ x = self.self_attn(x, x, x,
47
+ ^^^^^^^^^^^^^^^^^^^^^^^
48
+ File "/scratch/yuqian_fu/micromamba/envs/auto-zap7rdp2jlp7/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
49
+ return forward_call(*args, **kwargs)
50
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
51
+ File "/scratch/yuqian_fu/micromamba/envs/auto-zap7rdp2jlp7/lib/python3.11/site-packages/torch/nn/modules/activation.py", line 1205, in forward
52
+ attn_output, attn_output_weights = F.multi_head_attention_forward(
53
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
54
+ File "/scratch/yuqian_fu/micromamba/envs/auto-zap7rdp2jlp7/lib/python3.11/site-packages/torch/nn/functional.py", line 5373, in multi_head_attention_forward
55
+ attn_output = scaled_dot_product_attention(q, k, v, attn_mask, dropout_p, is_causal)
56
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
57
+ torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 792.00 MiB (GPU 0; 21.95 GiB total capacity; 20.03 GiB already allocated; 790.12 MiB free; 20.94 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
58
+ srun: error: gcpl4-eu-0: task 0: Exited with exit code 1
8.log ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WARNING:torch.distributed.run:
2
+ *****************************************
3
+ Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.
4
+ *****************************************
5
+ WARNING:torch.distributed.run:
6
+ *****************************************
7
+ Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.
8
+ *****************************************
9
+ [W socket.cpp:426] [c10d] The server socket has failed to bind to [::]:12345 (errno: 98 - Address already in use).
10
+ [W socket.cpp:426] [c10d] The server socket has failed to bind to 0.0.0.0:12345 (errno: 98 - Address already in use).
11
+ [E socket.cpp:462] [c10d] The server socket has failed to listen on any local network address.
12
+ Traceback (most recent call last):
13
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/bin/torchrun", line 8, in <module>
14
+ sys.exit(main())
15
+ ^^^^^^
16
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/elastic/multiprocessing/errors/__init__.py", line 346, in wrapper
17
+ return f(*args, **kwargs)
18
+ ^^^^^^^^^^^^^^^^^^
19
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/run.py", line 794, in main
20
+ run(args)
21
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/run.py", line 785, in run
22
+ elastic_launch(
23
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/launcher/api.py", line 134, in __call__
24
+ return launch_agent(self._config, self._entrypoint, list(args))
25
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
26
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/launcher/api.py", line 241, in launch_agent
27
+ result = agent.run()
28
+ ^^^^^^^^^^^
29
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/elastic/metrics/api.py", line 129, in wrapper
30
+ result = f(*args, **kwargs)
31
+ ^^^^^^^^^^^^^^^^^^
32
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/elastic/agent/server/api.py", line 723, in run
33
+ result = self._invoke_run(role)
34
+ ^^^^^^^^^^^^^^^^^^^^^^
35
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/elastic/agent/server/api.py", line 858, in _invoke_run
36
+ self._initialize_workers(self._worker_group)
37
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/elastic/metrics/api.py", line 129, in wrapper
38
+ result = f(*args, **kwargs)
39
+ ^^^^^^^^^^^^^^^^^^
40
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/elastic/agent/server/api.py", line 692, in _initialize_workers
41
+ self._rendezvous(worker_group)
42
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/elastic/metrics/api.py", line 129, in wrapper
43
+ result = f(*args, **kwargs)
44
+ ^^^^^^^^^^^^^^^^^^
45
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/elastic/agent/server/api.py", line 546, in _rendezvous
46
+ store, group_rank, group_world_size = spec.rdzv_handler.next_rendezvous()
47
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
48
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/elastic/rendezvous/static_tcp_rendezvous.py", line 55, in next_rendezvous
49
+ self._store = TCPStore( # type: ignore[call-arg]
50
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
51
+ RuntimeError: The server socket has failed to listen on any local network address. The server socket has failed to bind to [::]:12345 (errno: 98 - Address already in use). The server socket has failed to bind to 0.0.0.0:12345 (errno: 98 - Address already in use).
52
+ srun: error: gcpl4-eu-0: task 0: Exited with exit code 1
53
+ 2024-09-04 08:00:56,890 INFO Namespace(n_epoch=250, lr_schedule=[50], lr=0.0002, gpu='0', out_dir='/data/work-gcp-europe-west4-a/yuqian_fu/Ego/checkpoints/egoexo_v2_480x480', train_dir=['/data/work-gcp-europe-west4-a/yuqian_fu/Ego/data_segswap'], prob_dir=[0.5, 0.5], batch_pos=32, batch_neg=15, feat_pth='../evalBrueghel/Moco_resnet50_feat_1Scale_640p.pkl', warp_mask=False, warmUpIter=1000, resume_pth='/data/work-gcp-europe-west4-a/yuqian_fu/Ego/checkpoints/egoexo_v2_480x480/netLast.pth', resume_epoch=0, mode='small', pos_weight=0.1, feat_weight=1, dropout=0.1, activation='relu', prob_style=0.5, layer_type=['I', 'C', 'I', 'C', 'I', 'N'], drop_feat=0.1, tps_grid=[4, 6], eta_corr=8, iter_epoch=1000, iter_epoch_val=100, weight_decay=0, reverse=False)
54
+ 2024-09-04 08:00:56,890 INFO Load MocoV2 pre-trained ResNet-50 feature...
55
+ 2024-09-04 08:00:56,892 INFO Namespace(n_epoch=250, lr_schedule=[50], lr=0.0002, gpu='0', out_dir='/data/work-gcp-europe-west4-a/yuqian_fu/Ego/checkpoints/egoexo_v2_480x480', train_dir=['/data/work-gcp-europe-west4-a/yuqian_fu/Ego/data_segswap'], prob_dir=[0.5, 0.5], batch_pos=32, batch_neg=15, feat_pth='../evalBrueghel/Moco_resnet50_feat_1Scale_640p.pkl', warp_mask=False, warmUpIter=1000, resume_pth='/data/work-gcp-europe-west4-a/yuqian_fu/Ego/checkpoints/egoexo_v2_480x480/netLast.pth', resume_epoch=0, mode='small', pos_weight=0.1, feat_weight=1, dropout=0.1, activation='relu', prob_style=0.5, layer_type=['I', 'C', 'I', 'C', 'I', 'N'], drop_feat=0.1, tps_grid=[4, 6], eta_corr=8, iter_epoch=1000, iter_epoch_val=100, weight_decay=0, reverse=False)
56
+ 2024-09-04 08:00:56,892 INFO Load MocoV2 pre-trained ResNet-50 feature...
57
+ LOADING: train_egoexo_pairs.json
58
+ LOADING: train_egoexo_pairs.json
59
+ LOADING: LOADING: val_egoexo_pairs.jsonval_egoexo_pairs.json
60
+
61
+ Traceback (most recent call last):
62
+ Traceback (most recent call last):
63
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/train/Main_dis.py", line 186, in <module>
64
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/train/Main_dis.py", line 186, in <module>
65
+ trainLoader.sampler = DistributedSampler(trainLoader.dataset, num_replicas=world_size, rank=rank)
66
+ ^^^^^^^^^^^^^^^^^^
67
+ NameError: name 'DistributedSampler' is not defined
68
+ trainLoader.sampler = DistributedSampler(trainLoader.dataset, num_replicas=world_size, rank=rank)
69
+ ^^^^^^^^^^^^^^^^^^
70
+ NameError: name 'DistributedSampler' is not defined
71
+ ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 766624) of binary: /scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/bin/python3.11
72
+ Traceback (most recent call last):
73
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/bin/torchrun", line 8, in <module>
74
+ sys.exit(main())
75
+ ^^^^^^
76
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/elastic/multiprocessing/errors/__init__.py", line 346, in wrapper
77
+ return f(*args, **kwargs)
78
+ ^^^^^^^^^^^^^^^^^^
79
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/run.py", line 794, in main
80
+ run(args)
81
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/run.py", line 785, in run
82
+ elastic_launch(
83
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/launcher/api.py", line 134, in __call__
84
+ return launch_agent(self._config, self._entrypoint, list(args))
85
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
86
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/distributed/launcher/api.py", line 250, in launch_agent
87
+ raise ChildFailedError(
88
+ torch.distributed.elastic.multiprocessing.errors.ChildFailedError:
89
+ ============================================================
90
+ /home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/train/Main_dis.py FAILED
91
+ ------------------------------------------------------------
92
+ Failures:
93
+ [1]:
94
+ time : 2024-09-04_08:02:09
95
+ host : gcpl4-eu-0.slurm.insait.ai
96
+ rank : 1 (local_rank: 1)
97
+ exitcode : 1 (pid: 766625)
98
+ error_file: <N/A>
99
+ traceback : To enable traceback see: https://pytorch.org/docs/stable/elastic/errors.html
100
+ ------------------------------------------------------------
101
+ Root Cause (first observed failure):
102
+ [0]:
103
+ time : 2024-09-04_08:02:09
104
+ host : gcpl4-eu-0.slurm.insait.ai
105
+ rank : 0 (local_rank: 0)
106
+ exitcode : 1 (pid: 766624)
107
+ error_file: <N/A>
108
+ traceback : To enable traceback see: https://pytorch.org/docs/stable/elastic/errors.html
109
+ ============================================================
110
+ srun: error: gcpl4-eu-0: task 1: Exited with exit code 1
81917.error ADDED
The diff for this file is too large to render. See raw diff
 
81917.log ADDED
The diff for this file is too large to render. See raw diff
 
82889.log ADDED
@@ -0,0 +1,7 @@
 
0
  0%| | 0/201 [00:00<?, ?it/s]
1
  0%| | 1/201 [01:06<3:41:53, 66.57s/it]
2
  1%| | 2/201 [02:21<3:57:05, 71.48s/it]
3
  1%|▏ | 3/201 [02:24<2:12:16, 40.08s/it]
4
  2%|▏ | 4/201 [02:26<1:22:10, 25.03s/it]
5
  2%|▏ | 5/201 [02:39<1:07:30, 20.66s/it]
6
  3%|▎ | 6/201 [02:39<45:10, 13.90s/it]
7
  3%|▎ | 7/201 [02:41<31:51, 9.85s/it]
8
  4%|▍ | 8/201 [02:44<24:19, 7.56s/it]
9
  4%|▍ | 9/201 [02:51<24:27, 7.64s/it]
10
  5%|▍ | 10/201 [02:54<19:20, 6.07s/it]
11
  5%|▌ | 11/201 [03:50<1:07:21, 21.27s/it]
12
  6%|▌ | 12/201 [03:50<47:12, 14.99s/it]
13
  6%|▋ | 13/201 [04:29<1:09:40, 22.24s/it]
14
  7%|▋ | 14/201 [04:31<50:22, 16.16s/it]
15
  7%|▋ | 15/201 [04:34<37:50, 12.21s/it]
16
  8%|▊ | 16/201 [04:49<40:20, 13.08s/it]
17
  8%|▊ | 17/201 [05:27<1:02:56, 20.52s/it]
18
  9%|▉ | 18/201 [05:56<1:10:29, 23.11s/it]
19
  9%|▉ | 19/201 [06:58<1:44:51, 34.57s/it]
20
  10%|▉ | 20/201 [07:48<1:58:38, 39.33s/it]
21
  10%|█ | 21/201 [07:50<1:23:58, 27.99s/it]
22
  11%|█ | 22/201 [07:51<59:12, 19.85s/it]
23
  11%|█▏ | 23/201 [08:16<1:03:56, 21.56s/it]
24
  12%|█▏ | 24/201 [08:17<45:19, 15.36s/it]
25
  12%|█▏ | 25/201 [08:18<32:23, 11.04s/it]
26
  13%|█▎ | 26/201 [08:44<45:28, 15.59s/it]
27
  13%|█▎ | 27/201 [09:01<46:39, 16.09s/it]
28
  14%|█▍ | 28/201 [09:52<1:16:36, 26.57s/it]
29
  14%|█▍ | 29/201 [10:45<1:38:21, 34.31s/it]
30
  15%|█▍ | 30/201 [10:47<1:10:01, 24.57s/it]
31
  15%|█▌ | 31/201 [10:50<51:46, 18.27s/it]
32
  16%|█▌ | 32/201 [11:22<1:02:49, 22.31s/it]
33
  16%|█▋ | 33/201 [11:43<1:01:24, 21.93s/it]
34
  17%|█▋ | 34/201 [12:28<1:20:32, 28.94s/it]
35
  17%|█▋ | 35/201 [12:30<57:05, 20.63s/it]
36
  18%|█▊ | 36/201 [12:30<40:16, 14.65s/it]
37
  18%|█▊ | 37/201 [12:44<39:09, 14.33s/it]
38
  19%|█▉ | 38/201 [12:46<29:20, 10.80s/it]
39
  19%|█▉ | 39/201 [12:58<29:55, 11.08s/it]/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/evaluation/metrics.py:36: RuntimeWarning: invalid value encountered in scalar divide
 
 
40
  20%|█▉ | 40/201 [14:28<1:33:18, 34.78s/it]
41
  20%|██ | 41/201 [15:52<2:11:40, 49.38s/it]
42
  21%|██ | 42/201 [17:02<2:27:23, 55.62s/it]
43
  21%|██▏ | 43/201 [17:05<1:45:23, 40.02s/it]
44
  22%|██▏ | 44/201 [17:10<1:16:36, 29.28s/it]
45
  22%|██▏ | 45/201 [17:11<54:36, 21.00s/it]
46
  23%|██▎ | 46/201 [17:17<42:34, 16.48s/it]
47
  23%|██▎ | 47/201 [17:47<52:22, 20.41s/it]
48
  24%|██▍ | 48/201 [17:50<38:54, 15.26s/it]
49
  24%|██▍ | 49/201 [18:24<52:52, 20.87s/it]
50
  25%|██▍ | 50/201 [18:33<43:55, 17.45s/it]
51
  25%|██▌ | 51/201 [18:45<39:31, 15.81s/it]
52
  26%|██▌ | 52/201 [19:52<1:17:08, 31.06s/it]
53
  26%|██▋ | 53/201 [19:58<58:01, 23.52s/it]
54
  27%|██▋ | 54/201 [20:21<57:02, 23.29s/it]
55
  27%|██▋ | 55/201 [21:00<1:08:07, 27.99s/it]
56
  28%|██▊ | 56/201 [21:02<49:19, 20.41s/it]
57
  28%|██▊ | 57/201 [21:15<43:32, 18.14s/it]
58
  29%|██▉ | 58/201 [21:19<33:06, 13.89s/it]
59
  29%|██▉ | 59/201 [21:34<33:10, 14.02s/it]
60
  30%|██▉ | 60/201 [21:44<30:39, 13.05s/it]
61
  30%|███ | 61/201 [21:45<21:58, 9.42s/it]
62
  31%|███ | 62/201 [21:59<24:25, 10.54s/it]
63
  31%|███▏ | 63/201 [22:01<18:41, 8.12s/it]
64
  32%|███▏ | 64/201 [22:02<13:55, 6.10s/it]
65
  32%|███▏ | 65/201 [22:16<19:14, 8.49s/it]
66
  33%|███▎ | 66/201 [24:15<1:33:19, 41.48s/it]
67
  33%|███▎ | 67/201 [24:34<1:17:26, 34.67s/it]
68
  34%|███▍ | 68/201 [24:49<1:04:01, 28.89s/it]
69
  34%|███▍ | 69/201 [24:54<47:37, 21.65s/it]
70
  35%|███▍ | 70/201 [25:39<1:02:34, 28.66s/it]
71
  35%|███▌ | 71/201 [25:40<44:29, 20.53s/it]
72
  36%|███▌ | 72/201 [26:16<53:58, 25.10s/it]
73
  36%|███▋ | 73/201 [26:25<43:17, 20.29s/it]
74
  37%|███▋ | 74/201 [26:29<32:26, 15.33s/it]
75
  37%|███▋ | 75/201 [26:33<25:04, 11.94s/it]
76
  38%|███▊ | 76/201 [27:21<47:11, 22.65s/it]
77
  38%|███▊ | 77/201 [27:22<33:50, 16.38s/it]
78
  39%|███▉ | 78/201 [27:25<25:00, 12.20s/it]
79
  39%|███▉ | 79/201 [27:47<30:54, 15.20s/it]
80
  40%|███▉ | 80/201 [27:49<22:49, 11.32s/it]
81
  40%|████ | 81/201 [27:57<20:19, 10.16s/it]
82
  41%|████ | 82/201 [28:09<21:08, 10.66s/it]
83
  41%|████▏ | 83/201 [28:16<18:55, 9.62s/it]
84
  42%|████▏ | 84/201 [28:26<19:14, 9.86s/it]
85
  42%|████▏ | 85/201 [28:38<20:04, 10.39s/it]
86
  43%|████▎ | 86/201 [28:40<15:04, 7.87s/it]
87
  43%|████▎ | 87/201 [29:36<42:11, 22.21s/it]
88
  44%|████▍ | 88/201 [29:37<30:12, 16.04s/it]
89
  44%|████▍ | 89/201 [30:06<37:07, 19.89s/it]
90
  45%|████▍ | 90/201 [30:25<36:12, 19.57s/it]
91
  45%|████▌ | 91/201 [30:38<32:09, 17.54s/it]
92
  46%|████▌ | 92/201 [31:04<36:56, 20.33s/it]
93
  46%|████▋ | 93/201 [31:06<26:15, 14.59s/it]
94
  47%|████▋ | 94/201 [31:58<45:57, 25.77s/it]
95
  47%|████▋ | 95/201 [31:58<32:13, 18.24s/it]
96
  48%|████▊ | 96/201 [32:01<23:37, 13.50s/it]
97
  48%|████▊ | 97/201 [32:02<16:58, 9.79s/it]
98
  49%|████▉ | 98/201 [32:40<31:20, 18.26s/it]
99
  49%|████▉ | 99/201 [32:41<22:17, 13.11s/it]
100
  50%|████▉ | 100/201 [32:45<17:36, 10.46s/it]
101
  50%|█████ | 101/201 [32:49<14:04, 8.45s/it]
102
  51%|█████ | 102/201 [32:52<11:12, 6.80s/it]
103
  51%|█████ | 103/201 [32:54<08:51, 5.42s/it]
104
  52%|█████▏ | 104/201 [34:37<56:07, 34.72s/it]
105
  52%|█████▏ | 105/201 [34:55<47:29, 29.68s/it]
106
  53%|█████▎ | 106/201 [35:05<37:48, 23.88s/it]
107
  53%|█████▎ | 107/201 [35:07<27:00, 17.24s/it]
108
  54%|█████▎ | 108/201 [35:09<19:27, 12.56s/it]
109
  54%|█████▍ | 109/201 [35:14<15:46, 10.29s/it]
110
  55%|█████▍ | 110/201 [35:15<11:17, 7.45s/it]
111
  55%|█████▌ | 111/201 [35:17<08:40, 5.79s/it]
112
  56%|█████▌ | 112/201 [35:48<19:49, 13.36s/it]
113
  56%|█████▌ | 113/201 [36:00<19:04, 13.01s/it]
114
  57%|█████▋ | 114/201 [36:01<13:55, 9.61s/it]
115
  57%|█████▋ | 115/201 [36:04<10:38, 7.42s/it]
116
  58%|█████▊ | 116/201 [36:04<07:32, 5.32s/it]
117
  58%|█████▊ | 117/201 [36:07<06:26, 4.60s/it]
118
  59%|█████▊ | 118/201 [36:16<08:06, 5.86s/it]
119
  59%|█████▉ | 119/201 [36:18<06:24, 4.69s/it]
120
  60%|█████▉ | 120/201 [36:27<08:02, 5.96s/it]
121
  60%|██████ | 121/201 [36:29<06:19, 4.74s/it]
122
  61%|██████ | 122/201 [36:48<12:04, 9.16s/it]
123
  61%|██████ | 123/201 [37:02<13:52, 10.67s/it]
124
  62%|██████▏ | 124/201 [37:38<23:17, 18.15s/it]
125
  62%|██████▏ | 125/201 [37:40<16:56, 13.37s/it]
126
  63%|██████▎ | 126/201 [37:46<14:00, 11.21s/it]
127
  63%|██████▎ | 127/201 [38:41<29:48, 24.16s/it]
128
  64%|██████▎ | 128/201 [40:40<1:04:08, 52.72s/it]
129
  64%|██████▍ | 129/201 [41:00<51:20, 42.79s/it]
130
  65%|██████▍ | 130/201 [41:01<35:48, 30.26s/it]
131
  65%|██████▌ | 131/201 [41:38<37:39, 32.28s/it]
132
  66%|██████▌ | 132/201 [41:51<30:27, 26.49s/it]
133
  66%|██████▌ | 133/201 [41:54<22:00, 19.42s/it]
134
  67%|██████▋ | 134/201 [42:02<18:02, 16.16s/it]
135
  67%|██████▋ | 135/201 [42:04<12:55, 11.76s/it]
136
  68%|██████▊ | 136/201 [42:06<09:32, 8.80s/it]
137
  68%|██████▊ | 137/201 [42:14<09:21, 8.77s/it]
138
  69%|██████▊ | 138/201 [42:39<14:18, 13.63s/it]
139
  69%|██████▉ | 139/201 [43:40<28:49, 27.89s/it]
140
  70%|██████▉ | 140/201 [43:45<21:07, 20.78s/it]
141
  70%|███████ | 141/201 [44:29<28:01, 28.02s/it]
142
  71%|███████ | 142/201 [45:00<28:16, 28.75s/it]
143
  71%|███████ | 143/201 [45:27<27:25, 28.37s/it]
144
  72%|███████▏ | 144/201 [45:59<27:50, 29.31s/it]
145
  72%|███████▏ | 145/201 [46:01<19:36, 21.00s/it]
146
  73%|███████▎ | 146/201 [46:04<14:28, 15.79s/it]
147
  73%|███████▎ | 147/201 [46:14<12:38, 14.05s/it]
148
  74%|███████▎ | 148/201 [46:20<10:14, 11.59s/it]
149
  74%|███████▍ | 149/201 [47:17<21:46, 25.12s/it]
150
  75%|███████▍ | 150/201 [47:18<15:21, 18.06s/it]
151
  75%|███████▌ | 151/201 [47:36<14:57, 17.95s/it]
152
  76%|███████▌ | 152/201 [47:39<10:55, 13.38s/it]
153
  76%|███████▌ | 153/201 [47:45<09:03, 11.33s/it]
154
  77%|███████▋ | 154/201 [48:33<17:26, 22.27s/it]
155
  77%|███████▋ | 155/201 [48:36<12:44, 16.62s/it]
156
  78%|███████▊ | 156/201 [48:41<09:49, 13.10s/it]
157
  78%|███████▊ | 157/201 [49:33<18:07, 24.70s/it]
158
  79%|███████▊ | 158/201 [49:36<12:55, 18.03s/it]
159
  79%|███████▉ | 159/201 [50:40<22:26, 32.06s/it]
160
  80%|███████▉ | 160/201 [50:42<15:35, 22.81s/it]
161
  80%|████████ | 161/201 [51:17<17:46, 26.67s/it]
162
  81%|████████ | 162/201 [51:21<12:52, 19.81s/it]
163
  81%|████████ | 163/201 [52:29<21:36, 34.12s/it]
164
  82%|████████▏ | 164/201 [52:50<18:40, 30.28s/it]
165
  82%|████████▏ | 165/201 [52:51<12:58, 21.63s/it]
166
  83%|████████▎ | 166/201 [52:54<09:18, 15.95s/it]
167
  83%|████████▎ | 167/201 [52:58<07:01, 12.41s/it]
168
  84%|████████▎ | 168/201 [55:09<26:22, 47.94s/it]
169
  84%|████████▍ | 169/201 [55:16<18:56, 35.51s/it]
170
  85%|███████���▍ | 170/201 [55:18<13:11, 25.52s/it]
171
  85%|████████▌ | 171/201 [55:25<10:03, 20.10s/it]
172
  86%|████████▌ | 172/201 [56:30<16:09, 33.43s/it]
173
  86%|████████▌ | 173/201 [56:36<11:43, 25.14s/it]
174
  87%|████████▋ | 174/201 [56:37<08:03, 17.91s/it]
175
  87%|████████▋ | 175/201 [56:47<06:48, 15.72s/it]
176
  88%|████████▊ | 176/201 [56:50<04:53, 11.72s/it]
177
  88%|████████▊ | 177/201 [57:13<06:04, 15.19s/it]
178
  89%|████████▊ | 178/201 [57:15<04:22, 11.40s/it]
179
  89%|████████▉ | 179/201 [57:39<05:31, 15.05s/it]
180
  90%|████████▉ | 180/201 [58:00<05:54, 16.90s/it]
181
  90%|█████████ | 181/201 [59:28<12:42, 38.12s/it]
182
  91%|█████████ | 182/201 [1:01:19<19:01, 60.07s/it]
183
  91%|█████████ | 183/201 [1:01:45<14:57, 49.86s/it]
184
  92%|█████████▏| 184/201 [1:02:28<13:31, 47.73s/it]
185
  92%|█████████▏| 185/201 [1:02:30<09:04, 34.04s/it]
186
  93%|█████████▎| 186/201 [1:02:35<06:17, 25.20s/it]
187
  93%|█████████▎| 187/201 [1:02:43<04:41, 20.08s/it]
188
  94%|█████████▎| 188/201 [1:02:47<03:18, 15.28s/it]
189
  94%|█████████▍| 189/201 [1:03:21<04:11, 20.97s/it]
190
  95%|█████████▍| 190/201 [1:03:59<04:47, 26.13s/it]
191
  95%|█████████▌| 191/201 [1:04:47<05:26, 32.61s/it]
192
  96%|█████████▌| 192/201 [1:04:48<03:28, 23.20s/it]
193
  96%|█████████▌| 193/201 [1:05:06<02:52, 21.60s/it]
194
  97%|█████████▋| 194/201 [1:05:15<02:05, 17.89s/it]
195
  97%|█████████▋| 195/201 [1:05:49<02:14, 22.48s/it]
196
  98%|█████████▊| 196/201 [1:05:50<01:20, 16.04s/it]
197
  98%|█████████▊| 197/201 [1:06:14<01:14, 18.55s/it]
198
  99%|█████████▊| 198/201 [1:06:41<01:03, 21.24s/it]
199
  99%|█████████▉| 199/201 [1:07:16<00:50, 25.11s/it]
 
 
 
 
 
1
+
2
  0%| | 0/201 [00:00<?, ?it/s]
3
  0%| | 1/201 [01:06<3:41:53, 66.57s/it]
4
  1%| | 2/201 [02:21<3:57:05, 71.48s/it]
5
  1%|▏ | 3/201 [02:24<2:12:16, 40.08s/it]
6
  2%|▏ | 4/201 [02:26<1:22:10, 25.03s/it]
7
  2%|▏ | 5/201 [02:39<1:07:30, 20.66s/it]
8
  3%|▎ | 6/201 [02:39<45:10, 13.90s/it]
9
  3%|▎ | 7/201 [02:41<31:51, 9.85s/it]
10
  4%|▍ | 8/201 [02:44<24:19, 7.56s/it]
11
  4%|▍ | 9/201 [02:51<24:27, 7.64s/it]
12
  5%|▍ | 10/201 [02:54<19:20, 6.07s/it]
13
  5%|▌ | 11/201 [03:50<1:07:21, 21.27s/it]
14
  6%|▌ | 12/201 [03:50<47:12, 14.99s/it]
15
  6%|▋ | 13/201 [04:29<1:09:40, 22.24s/it]
16
  7%|▋ | 14/201 [04:31<50:22, 16.16s/it]
17
  7%|▋ | 15/201 [04:34<37:50, 12.21s/it]
18
  8%|▊ | 16/201 [04:49<40:20, 13.08s/it]
19
  8%|▊ | 17/201 [05:27<1:02:56, 20.52s/it]
20
  9%|▉ | 18/201 [05:56<1:10:29, 23.11s/it]
21
  9%|▉ | 19/201 [06:58<1:44:51, 34.57s/it]
22
  10%|▉ | 20/201 [07:48<1:58:38, 39.33s/it]
23
  10%|█ | 21/201 [07:50<1:23:58, 27.99s/it]
24
  11%|█ | 22/201 [07:51<59:12, 19.85s/it]
25
  11%|█▏ | 23/201 [08:16<1:03:56, 21.56s/it]
26
  12%|█▏ | 24/201 [08:17<45:19, 15.36s/it]
27
  12%|█▏ | 25/201 [08:18<32:23, 11.04s/it]
28
  13%|█▎ | 26/201 [08:44<45:28, 15.59s/it]
29
  13%|█▎ | 27/201 [09:01<46:39, 16.09s/it]
30
  14%|█▍ | 28/201 [09:52<1:16:36, 26.57s/it]
31
  14%|█▍ | 29/201 [10:45<1:38:21, 34.31s/it]
32
  15%|█▍ | 30/201 [10:47<1:10:01, 24.57s/it]
33
  15%|█▌ | 31/201 [10:50<51:46, 18.27s/it]
34
  16%|█▌ | 32/201 [11:22<1:02:49, 22.31s/it]
35
  16%|█▋ | 33/201 [11:43<1:01:24, 21.93s/it]
36
  17%|█▋ | 34/201 [12:28<1:20:32, 28.94s/it]
37
  17%|█▋ | 35/201 [12:30<57:05, 20.63s/it]
38
  18%|█▊ | 36/201 [12:30<40:16, 14.65s/it]
39
  18%|█▊ | 37/201 [12:44<39:09, 14.33s/it]
40
  19%|█▉ | 38/201 [12:46<29:20, 10.80s/it]
41
  19%|█▉ | 39/201 [12:58<29:55, 11.08s/it]/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/evaluation/metrics.py:36: RuntimeWarning: invalid value encountered in scalar divide
42
+ j = inters / union
43
+
44
  20%|█▉ | 40/201 [14:28<1:33:18, 34.78s/it]
45
  20%|██ | 41/201 [15:52<2:11:40, 49.38s/it]
46
  21%|██ | 42/201 [17:02<2:27:23, 55.62s/it]
47
  21%|██▏ | 43/201 [17:05<1:45:23, 40.02s/it]
48
  22%|██▏ | 44/201 [17:10<1:16:36, 29.28s/it]
49
  22%|██▏ | 45/201 [17:11<54:36, 21.00s/it]
50
  23%|██▎ | 46/201 [17:17<42:34, 16.48s/it]
51
  23%|██▎ | 47/201 [17:47<52:22, 20.41s/it]
52
  24%|██▍ | 48/201 [17:50<38:54, 15.26s/it]
53
  24%|██▍ | 49/201 [18:24<52:52, 20.87s/it]
54
  25%|██▍ | 50/201 [18:33<43:55, 17.45s/it]
55
  25%|██▌ | 51/201 [18:45<39:31, 15.81s/it]
56
  26%|██▌ | 52/201 [19:52<1:17:08, 31.06s/it]
57
  26%|██▋ | 53/201 [19:58<58:01, 23.52s/it]
58
  27%|██▋ | 54/201 [20:21<57:02, 23.29s/it]
59
  27%|██▋ | 55/201 [21:00<1:08:07, 27.99s/it]
60
  28%|██▊ | 56/201 [21:02<49:19, 20.41s/it]
61
  28%|██▊ | 57/201 [21:15<43:32, 18.14s/it]
62
  29%|██▉ | 58/201 [21:19<33:06, 13.89s/it]
63
  29%|██▉ | 59/201 [21:34<33:10, 14.02s/it]
64
  30%|██▉ | 60/201 [21:44<30:39, 13.05s/it]
65
  30%|███ | 61/201 [21:45<21:58, 9.42s/it]
66
  31%|███ | 62/201 [21:59<24:25, 10.54s/it]
67
  31%|███▏ | 63/201 [22:01<18:41, 8.12s/it]
68
  32%|███▏ | 64/201 [22:02<13:55, 6.10s/it]
69
  32%|███▏ | 65/201 [22:16<19:14, 8.49s/it]
70
  33%|███▎ | 66/201 [24:15<1:33:19, 41.48s/it]
71
  33%|███▎ | 67/201 [24:34<1:17:26, 34.67s/it]
72
  34%|███▍ | 68/201 [24:49<1:04:01, 28.89s/it]
73
  34%|███▍ | 69/201 [24:54<47:37, 21.65s/it]
74
  35%|███▍ | 70/201 [25:39<1:02:34, 28.66s/it]
75
  35%|███▌ | 71/201 [25:40<44:29, 20.53s/it]
76
  36%|███▌ | 72/201 [26:16<53:58, 25.10s/it]
77
  36%|███▋ | 73/201 [26:25<43:17, 20.29s/it]
78
  37%|███▋ | 74/201 [26:29<32:26, 15.33s/it]
79
  37%|███▋ | 75/201 [26:33<25:04, 11.94s/it]
80
  38%|███▊ | 76/201 [27:21<47:11, 22.65s/it]
81
  38%|███▊ | 77/201 [27:22<33:50, 16.38s/it]
82
  39%|███▉ | 78/201 [27:25<25:00, 12.20s/it]
83
  39%|███▉ | 79/201 [27:47<30:54, 15.20s/it]
84
  40%|███▉ | 80/201 [27:49<22:49, 11.32s/it]
85
  40%|████ | 81/201 [27:57<20:19, 10.16s/it]
86
  41%|████ | 82/201 [28:09<21:08, 10.66s/it]
87
  41%|████▏ | 83/201 [28:16<18:55, 9.62s/it]
88
  42%|████▏ | 84/201 [28:26<19:14, 9.86s/it]
89
  42%|████▏ | 85/201 [28:38<20:04, 10.39s/it]
90
  43%|████▎ | 86/201 [28:40<15:04, 7.87s/it]
91
  43%|████▎ | 87/201 [29:36<42:11, 22.21s/it]
92
  44%|████▍ | 88/201 [29:37<30:12, 16.04s/it]
93
  44%|████▍ | 89/201 [30:06<37:07, 19.89s/it]
94
  45%|████▍ | 90/201 [30:25<36:12, 19.57s/it]
95
  45%|████▌ | 91/201 [30:38<32:09, 17.54s/it]
96
  46%|████▌ | 92/201 [31:04<36:56, 20.33s/it]
97
  46%|████▋ | 93/201 [31:06<26:15, 14.59s/it]
98
  47%|████▋ | 94/201 [31:58<45:57, 25.77s/it]
99
  47%|████▋ | 95/201 [31:58<32:13, 18.24s/it]
100
  48%|████▊ | 96/201 [32:01<23:37, 13.50s/it]
101
  48%|████▊ | 97/201 [32:02<16:58, 9.79s/it]
102
  49%|████▉ | 98/201 [32:40<31:20, 18.26s/it]
103
  49%|████▉ | 99/201 [32:41<22:17, 13.11s/it]
104
  50%|████▉ | 100/201 [32:45<17:36, 10.46s/it]
105
  50%|█████ | 101/201 [32:49<14:04, 8.45s/it]
106
  51%|█████ | 102/201 [32:52<11:12, 6.80s/it]
107
  51%|█████ | 103/201 [32:54<08:51, 5.42s/it]
108
  52%|█████▏ | 104/201 [34:37<56:07, 34.72s/it]
109
  52%|█████▏ | 105/201 [34:55<47:29, 29.68s/it]
110
  53%|█████▎ | 106/201 [35:05<37:48, 23.88s/it]
111
  53%|█████▎ | 107/201 [35:07<27:00, 17.24s/it]
112
  54%|█████▎ | 108/201 [35:09<19:27, 12.56s/it]
113
  54%|█████▍ | 109/201 [35:14<15:46, 10.29s/it]
114
  55%|█████▍ | 110/201 [35:15<11:17, 7.45s/it]
115
  55%|█████▌ | 111/201 [35:17<08:40, 5.79s/it]
116
  56%|█████▌ | 112/201 [35:48<19:49, 13.36s/it]
117
  56%|█████▌ | 113/201 [36:00<19:04, 13.01s/it]
118
  57%|█████▋ | 114/201 [36:01<13:55, 9.61s/it]
119
  57%|█████▋ | 115/201 [36:04<10:38, 7.42s/it]
120
  58%|█████▊ | 116/201 [36:04<07:32, 5.32s/it]
121
  58%|█████▊ | 117/201 [36:07<06:26, 4.60s/it]
122
  59%|█████▊ | 118/201 [36:16<08:06, 5.86s/it]
123
  59%|█████▉ | 119/201 [36:18<06:24, 4.69s/it]
124
  60%|█████▉ | 120/201 [36:27<08:02, 5.96s/it]
125
  60%|██████ | 121/201 [36:29<06:19, 4.74s/it]
126
  61%|██████ | 122/201 [36:48<12:04, 9.16s/it]
127
  61%|██████ | 123/201 [37:02<13:52, 10.67s/it]
128
  62%|██████▏ | 124/201 [37:38<23:17, 18.15s/it]
129
  62%|██████▏ | 125/201 [37:40<16:56, 13.37s/it]
130
  63%|██████▎ | 126/201 [37:46<14:00, 11.21s/it]
131
  63%|██████▎ | 127/201 [38:41<29:48, 24.16s/it]
132
  64%|██████▎ | 128/201 [40:40<1:04:08, 52.72s/it]
133
  64%|██████▍ | 129/201 [41:00<51:20, 42.79s/it]
134
  65%|██████▍ | 130/201 [41:01<35:48, 30.26s/it]
135
  65%|██████▌ | 131/201 [41:38<37:39, 32.28s/it]
136
  66%|██████▌ | 132/201 [41:51<30:27, 26.49s/it]
137
  66%|██████▌ | 133/201 [41:54<22:00, 19.42s/it]
138
  67%|██████▋ | 134/201 [42:02<18:02, 16.16s/it]
139
  67%|██████▋ | 135/201 [42:04<12:55, 11.76s/it]
140
  68%|██████▊ | 136/201 [42:06<09:32, 8.80s/it]
141
  68%|██████▊ | 137/201 [42:14<09:21, 8.77s/it]
142
  69%|██████▊ | 138/201 [42:39<14:18, 13.63s/it]
143
  69%|██████▉ | 139/201 [43:40<28:49, 27.89s/it]
144
  70%|██████▉ | 140/201 [43:45<21:07, 20.78s/it]
145
  70%|███████ | 141/201 [44:29<28:01, 28.02s/it]
146
  71%|███████ | 142/201 [45:00<28:16, 28.75s/it]
147
  71%|███████ | 143/201 [45:27<27:25, 28.37s/it]
148
  72%|███████▏ | 144/201 [45:59<27:50, 29.31s/it]
149
  72%|███████▏ | 145/201 [46:01<19:36, 21.00s/it]
150
  73%|███████▎ | 146/201 [46:04<14:28, 15.79s/it]
151
  73%|███████▎ | 147/201 [46:14<12:38, 14.05s/it]
152
  74%|███████▎ | 148/201 [46:20<10:14, 11.59s/it]
153
  74%|███████▍ | 149/201 [47:17<21:46, 25.12s/it]
154
  75%|███████▍ | 150/201 [47:18<15:21, 18.06s/it]
155
  75%|███████▌ | 151/201 [47:36<14:57, 17.95s/it]
156
  76%|███████▌ | 152/201 [47:39<10:55, 13.38s/it]
157
  76%|███████▌ | 153/201 [47:45<09:03, 11.33s/it]
158
  77%|███████▋ | 154/201 [48:33<17:26, 22.27s/it]
159
  77%|███████▋ | 155/201 [48:36<12:44, 16.62s/it]
160
  78%|███████▊ | 156/201 [48:41<09:49, 13.10s/it]
161
  78%|███████▊ | 157/201 [49:33<18:07, 24.70s/it]
162
  79%|███████▊ | 158/201 [49:36<12:55, 18.03s/it]
163
  79%|███████▉ | 159/201 [50:40<22:26, 32.06s/it]
164
  80%|███████▉ | 160/201 [50:42<15:35, 22.81s/it]
165
  80%|████████ | 161/201 [51:17<17:46, 26.67s/it]
166
  81%|████████ | 162/201 [51:21<12:52, 19.81s/it]
167
  81%|████████ | 163/201 [52:29<21:36, 34.12s/it]
168
  82%|████████▏ | 164/201 [52:50<18:40, 30.28s/it]
169
  82%|████████▏ | 165/201 [52:51<12:58, 21.63s/it]
170
  83%|████████▎ | 166/201 [52:54<09:18, 15.95s/it]
171
  83%|████████▎ | 167/201 [52:58<07:01, 12.41s/it]
172
  84%|████████▎ | 168/201 [55:09<26:22, 47.94s/it]
173
  84%|████████▍ | 169/201 [55:16<18:56, 35.51s/it]
174
  85%|███████���▍ | 170/201 [55:18<13:11, 25.52s/it]
175
  85%|████████▌ | 171/201 [55:25<10:03, 20.10s/it]
176
  86%|████████▌ | 172/201 [56:30<16:09, 33.43s/it]
177
  86%|████████▌ | 173/201 [56:36<11:43, 25.14s/it]
178
  87%|████████▋ | 174/201 [56:37<08:03, 17.91s/it]
179
  87%|████████▋ | 175/201 [56:47<06:48, 15.72s/it]
180
  88%|████████▊ | 176/201 [56:50<04:53, 11.72s/it]
181
  88%|████████▊ | 177/201 [57:13<06:04, 15.19s/it]
182
  89%|████████▊ | 178/201 [57:15<04:22, 11.40s/it]
183
  89%|████████▉ | 179/201 [57:39<05:31, 15.05s/it]
184
  90%|████████▉ | 180/201 [58:00<05:54, 16.90s/it]
185
  90%|█████████ | 181/201 [59:28<12:42, 38.12s/it]
186
  91%|█████████ | 182/201 [1:01:19<19:01, 60.07s/it]
187
  91%|█████████ | 183/201 [1:01:45<14:57, 49.86s/it]
188
  92%|█████████▏| 184/201 [1:02:28<13:31, 47.73s/it]
189
  92%|█████████▏| 185/201 [1:02:30<09:04, 34.04s/it]
190
  93%|█████████▎| 186/201 [1:02:35<06:17, 25.20s/it]
191
  93%|█████████▎| 187/201 [1:02:43<04:41, 20.08s/it]
192
  94%|█████████▎| 188/201 [1:02:47<03:18, 15.28s/it]
193
  94%|█████████▍| 189/201 [1:03:21<04:11, 20.97s/it]
194
  95%|█████████▍| 190/201 [1:03:59<04:47, 26.13s/it]
195
  95%|█████████▌| 191/201 [1:04:47<05:26, 32.61s/it]
196
  96%|█████████▌| 192/201 [1:04:48<03:28, 23.20s/it]
197
  96%|█████████▌| 193/201 [1:05:06<02:52, 21.60s/it]
198
  97%|█████████▋| 194/201 [1:05:15<02:05, 17.89s/it]
199
  97%|█████████▋| 195/201 [1:05:49<02:14, 22.48s/it]
200
  98%|█████████▊| 196/201 [1:05:50<01:20, 16.04s/it]
201
  98%|█████████▊| 197/201 [1:06:14<01:14, 18.55s/it]
202
  99%|█████████▊| 198/201 [1:06:41<01:03, 21.24s/it]
203
  99%|█████████▉| 199/201 [1:07:16<00:50, 25.11s/it]
204
+ TOTAL EXISTENCE BALANCED ACC: 0.6156669615094792
205
+ TOTAL IOU: 0.05312182000938763
206
+ TOTAL LOCATION SCORE: 0.11091002580370038
207
+ TOTAL SHAPE ACC: 0.1461757670000539
83062.log ADDED
@@ -0,0 +1,441 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Solving dependencies
2
+ Installing conda packages
3
+ Empty environment created at prefix: /scratch/yuqian_fu/micromamba/envs/auto-z4wmiwft6kwh
4
+ Transaction
5
+
6
+ Prefix: /scratch/yuqian_fu/micromamba/envs/auto-z4wmiwft6kwh
7
+
8
+
9
+
10
+ No specs added or removed.
11
+
12
+ Package Version Build Channel Size
13
+ ─────────────────────────────────────────────────────────────────────────────────────────────
14
+ Install:
15
+ ─────────────────────────────────────────────────────────────────────────────────────────────
16
+
17
+ + _libgcc_mutex 0.1 conda_forge conda-forge
18
+ + _openmp_mutex 4.5 2_gnu conda-forge
19
+ + bzip2 1.0.8 h4bc722e_7 conda-forge
20
+ + ca-certificates 2024.8.30 hbcca054_0 conda-forge
21
+ + ld_impl_linux-64 2.40 hf3520f5_7 conda-forge
22
+ + libexpat 2.6.3 h5888daf_0 conda-forge
23
+ + libffi 3.4.2 h7f98852_5 conda-forge
24
+ + libgcc 14.1.0 h77fa898_1 conda-forge
25
+ + libgcc-ng 14.1.0 h69a702a_1 conda-forge
26
+ + libgomp 14.1.0 h77fa898_1 conda-forge
27
+ + libnsl 2.0.1 hd590300_0 conda-forge
28
+ + libsqlite 3.46.1 hadc24fc_0 conda-forge
29
+ + libuuid 2.38.1 h0b41bf4_0 conda-forge
30
+ + libxcrypt 4.4.36 hd590300_1 conda-forge
31
+ + libzlib 1.3.1 h4ab18f5_1 conda-forge
32
+ + ncurses 6.5 he02047a_1 conda-forge
33
+ + openssl 3.3.2 hb9d3cd8_0 conda-forge
34
+ + pip 24.2 pyh8b19718_1 conda-forge
35
+ + python 3.11.10 hc5c86c4_0_cpython conda-forge
36
+ + readline 8.2 h8228510_1 conda-forge
37
+ + setuptools 73.0.1 pyhd8ed1ab_0 conda-forge
38
+ + tk 8.6.13 noxft_h4845f30_101 /work/conda/cache/conda-forge
39
+ + tzdata 2024a h8827d51_1 conda-forge
40
+ + wheel 0.44.0 pyhd8ed1ab_0 conda-forge
41
+ + xz 5.2.6 h166bdaf_0 conda-forge
42
+
43
+ Summary:
44
+
45
+ Install: 25 packages
46
+
47
+ Total download: 0 B
48
+
49
+ ─────────────────────────────────────────────────────────────────────────────────────────────
50
+
51
+
52
+
53
+ Transaction starting
54
+ Linking _libgcc_mutex-0.1-conda_forge
55
+ Linking ld_impl_linux-64-2.40-hf3520f5_7
56
+ Linking ca-certificates-2024.8.30-hbcca054_0
57
+ Linking libgomp-14.1.0-h77fa898_1
58
+ Linking _openmp_mutex-4.5-2_gnu
59
+ Linking libgcc-14.1.0-h77fa898_1
60
+ Linking libgcc-ng-14.1.0-h69a702a_1
61
+ Linking openssl-3.3.2-hb9d3cd8_0
62
+ Linking libexpat-2.6.3-h5888daf_0
63
+ Linking libffi-3.4.2-h7f98852_5
64
+ Linking libzlib-1.3.1-h4ab18f5_1
65
+ Linking libxcrypt-4.4.36-hd590300_1
66
+ Linking bzip2-1.0.8-h4bc722e_7
67
+ Linking ncurses-6.5-he02047a_1
68
+ Linking xz-5.2.6-h166bdaf_0
69
+ Linking libuuid-2.38.1-h0b41bf4_0
70
+ Linking libnsl-2.0.1-hd590300_0
71
+ Linking tk-8.6.13-noxft_h4845f30_101
72
+ Linking libsqlite-3.46.1-hadc24fc_0
73
+ Linking readline-8.2-h8228510_1
74
+ Linking tzdata-2024a-h8827d51_1
75
+ Linking python-3.11.10-hc5c86c4_0_cpython
76
+ Linking pip-24.2-pyh8b19718_1
77
+ Linking setuptools-73.0.1-pyhd8ed1ab_0
78
+ Linking wheel-0.44.0-pyhd8ed1ab_0
79
+
80
+ Transaction finished
81
+
82
+ To activate this environment, use:
83
+
84
+ mamba activate auto-z4wmiwft6kwh
85
+
86
+ Or to execute a single command in this environment, use:
87
+
88
+ mamba run -n auto-z4wmiwft6kwh mycommand
89
+
90
+ Installing pip packages
91
+ Collecting git+https://github.com/cheind/py-thin-plate-spline
92
+ Cloning https://github.com/cheind/py-thin-plate-spline to /tmp/pip-req-build-a_rro282
93
+ Running command git clone --filter=blob:none --quiet https://github.com/cheind/py-thin-plate-spline /tmp/pip-req-build-a_rro282
94
+ Resolved https://github.com/cheind/py-thin-plate-spline to commit f6995795397118b7d0ac01aecd3f39ffbfad9dee
95
+ Preparing metadata (setup.py): started
96
+ Preparing metadata (setup.py): finished with status 'done'
97
+ Collecting absl-py==1.4.0
98
+ Using cached absl_py-1.4.0-py3-none-any.whl.metadata (2.3 kB)
99
+ Collecting appdirs==1.4.4
100
+ Using cached appdirs-1.4.4-py2.py3-none-any.whl.metadata (9.0 kB)
101
+ Collecting cachetools==5.3.1
102
+ Using cached cachetools-5.3.1-py3-none-any.whl.metadata (5.2 kB)
103
+ Collecting certifi==2023.5.7
104
+ Using cached certifi-2023.5.7-py3-none-any.whl.metadata (2.2 kB)
105
+ Collecting charset-normalizer==3.1.0
106
+ Using cached charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (30 kB)
107
+ Collecting click==8.1.4
108
+ Using cached click-8.1.4-py3-none-any.whl.metadata (3.0 kB)
109
+ Collecting cmake==3.26.4
110
+ Using cached cmake-3.26.4-py2.py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (6.7 kB)
111
+ Collecting contourpy==1.1.0
112
+ Using cached contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.7 kB)
113
+ Collecting cycler==0.11.0
114
+ Using cached cycler-0.11.0-py3-none-any.whl.metadata (785 bytes)
115
+ Collecting debugpy==1.5.1
116
+ Using cached debugpy-1.5.1-py2.py3-none-any.whl.metadata (1.2 kB)
117
+ Collecting decord==0.6.0
118
+ Using cached decord-0.6.0-py3-none-manylinux2010_x86_64.whl.metadata (422 bytes)
119
+ Collecting docker-pycreds==0.4.0
120
+ Using cached docker_pycreds-0.4.0-py2.py3-none-any.whl.metadata (1.8 kB)
121
+ Collecting filelock==3.12.2
122
+ Using cached filelock-3.12.2-py3-none-any.whl.metadata (2.7 kB)
123
+ Collecting fonttools==4.40.0
124
+ Using cached fonttools-4.40.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (148 kB)
125
+ Collecting gdown
126
+ Downloading gdown-5.2.0-py3-none-any.whl.metadata (5.8 kB)
127
+ Collecting gitdb==4.0.10
128
+ Using cached gitdb-4.0.10-py3-none-any.whl.metadata (1.1 kB)
129
+ Collecting gitpython==3.1.31
130
+ Using cached GitPython-3.1.31-py3-none-any.whl.metadata (1.3 kB)
131
+ Collecting google-auth-oauthlib==1.0.0
132
+ Using cached google_auth_oauthlib-1.0.0-py2.py3-none-any.whl.metadata (2.7 kB)
133
+ Collecting google-auth==2.22.0
134
+ Using cached google_auth-2.22.0-py2.py3-none-any.whl.metadata (4.2 kB)
135
+ Collecting grpcio==1.56.2
136
+ Using cached grpcio-1.56.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)
137
+ Collecting hickle
138
+ Downloading hickle-5.0.3-py3-none-any.whl.metadata (22 kB)
139
+ Collecting idna==3.4
140
+ Using cached idna-3.4-py3-none-any.whl.metadata (9.8 kB)
141
+ Collecting imageio==2.31.5
142
+ Using cached imageio-2.31.5-py3-none-any.whl.metadata (4.6 kB)
143
+ Collecting jinja2==3.1.2
144
+ Using cached Jinja2-3.1.2-py3-none-any.whl.metadata (3.5 kB)
145
+ Collecting joblib==1.2.0
146
+ Using cached joblib-1.2.0-py3-none-any.whl.metadata (5.3 kB)
147
+ Collecting jupyter-core==5.3.1
148
+ Using cached jupyter_core-5.3.1-py3-none-any.whl.metadata (3.4 kB)
149
+ Collecting kiwisolver==1.4.4
150
+ Using cached kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.3 kB)
151
+ Collecting kornia==0.6.12
152
+ Using cached kornia-0.6.12-py2.py3-none-any.whl.metadata (12 kB)
153
+ Collecting lazy-loader==0.3
154
+ Using cached lazy_loader-0.3-py3-none-any.whl.metadata (4.3 kB)
155
+ Collecting lit==16.0.6
156
+ Using cached lit-16.0.6-py3-none-any.whl
157
+ Collecting lzstring
158
+ Using cached lzstring-1.0.4-py2.py3-none-any.whl
159
+ Collecting markdown==3.4.3
160
+ Using cached Markdown-3.4.3-py3-none-any.whl.metadata (6.7 kB)
161
+ Collecting markupsafe==2.1.3
162
+ Using cached MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)
163
+ Collecting matplotlib==3.7.1
164
+ Using cached matplotlib-3.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.6 kB)
165
+ Collecting mpmath==1.3.0
166
+ Using cached mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)
167
+ Collecting natsort==8.4.0
168
+ Using cached natsort-8.4.0-py3-none-any.whl.metadata (21 kB)
169
+ Collecting networkx==3.1
170
+ Using cached networkx-3.1-py3-none-any.whl.metadata (5.3 kB)
171
+ Collecting numpy==1.25.0
172
+ Using cached numpy-1.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.6 kB)
173
+ Collecting nvidia-cublas-cu11==11.10.3.66
174
+ Using cached nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
175
+ Collecting nvidia-cuda-cupti-cu11==11.7.101
176
+ Using cached nvidia_cuda_cupti_cu11-11.7.101-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
177
+ Collecting nvidia-cuda-nvrtc-cu11==11.7.99
178
+ Using cached nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)
179
+ Collecting nvidia-cuda-runtime-cu11==11.7.99
180
+ Using cached nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
181
+ Collecting nvidia-cudnn-cu11==8.5.0.96
182
+ Using cached nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
183
+ Collecting nvidia-cufft-cu11==10.9.0.58
184
+ Using cached nvidia_cufft_cu11-10.9.0.58-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
185
+ Collecting nvidia-curand-cu11==10.2.10.91
186
+ Using cached nvidia_curand_cu11-10.2.10.91-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
187
+ Collecting nvidia-cusolver-cu11==11.4.0.1
188
+ Using cached nvidia_cusolver_cu11-11.4.0.1-2-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
189
+ Collecting nvidia-cusparse-cu11==11.7.4.91
190
+ Using cached nvidia_cusparse_cu11-11.7.4.91-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
191
+ Collecting nvidia-nccl-cu11==2.14.3
192
+ Using cached nvidia_nccl_cu11-2.14.3-py3-none-manylinux1_x86_64.whl.metadata (1.8 kB)
193
+ Collecting nvidia-nvtx-cu11==11.7.91
194
+ Using cached nvidia_nvtx_cu11-11.7.91-py3-none-manylinux1_x86_64.whl.metadata (1.7 kB)
195
+ Collecting oauthlib==3.2.2
196
+ Using cached oauthlib-3.2.2-py3-none-any.whl.metadata (7.5 kB)
197
+ Collecting opencv-python-headless
198
+ Downloading opencv_python_headless-4.10.0.84-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (20 kB)
199
+ Collecting opencv-python==4.7.0.72
200
+ Using cached opencv_python-4.7.0.72-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (18 kB)
201
+ Collecting pandas==2.0.3
202
+ Using cached pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (18 kB)
203
+ Collecting pathtools==0.1.2
204
+ Using cached pathtools-0.1.2-py3-none-any.whl
205
+ Collecting pillow==9.5.0
206
+ Using cached Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (9.5 kB)
207
+ Collecting pip==23.1.2
208
+ Using cached pip-23.1.2-py3-none-any.whl.metadata (4.1 kB)
209
+ Collecting progressbar2
210
+ Downloading progressbar2-4.5.0-py3-none-any.whl.metadata (16 kB)
211
+ Collecting protobuf==4.23.4
212
+ Using cached protobuf-4.23.4-cp37-abi3-manylinux2014_x86_64.whl.metadata (540 bytes)
213
+ Collecting psutil==5.9.0
214
+ Using cached psutil-5.9.0-cp311-cp311-linux_x86_64.whl
215
+ Collecting pyasn1-modules==0.3.0
216
+ Using cached pyasn1_modules-0.3.0-py2.py3-none-any.whl.metadata (3.6 kB)
217
+ Collecting pyasn1==0.5.0
218
+ Using cached pyasn1-0.5.0-py2.py3-none-any.whl.metadata (8.5 kB)
219
+ Collecting pycocotools==2.0.6
220
+ Using cached pycocotools-2.0.6-cp311-cp311-linux_x86_64.whl
221
+ Collecting pyparsing==3.1.0
222
+ Using cached pyparsing-3.1.0-py3-none-any.whl.metadata (4.9 kB)
223
+ Collecting pytz==2023.3
224
+ Using cached pytz-2023.3-py2.py3-none-any.whl.metadata (22 kB)
225
+ Collecting pyyaml==6.0
226
+ Using cached PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
227
+ Collecting pyzmq==25.1.0
228
+ Using cached pyzmq-25.1.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (4.8 kB)
229
+ Collecting requests-oauthlib==1.3.1
230
+ Using cached requests_oauthlib-1.3.1-py2.py3-none-any.whl.metadata (10 kB)
231
+ Collecting requests==2.31.0
232
+ Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
233
+ Collecting rsa==4.9
234
+ Using cached rsa-4.9-py3-none-any.whl.metadata (4.2 kB)
235
+ Collecting scikit-image==0.22.0
236
+ Using cached scikit_image-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (13 kB)
237
+ Collecting scikit-learn==1.2.2
238
+ Using cached scikit_learn-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
239
+ Collecting scipy==1.11.0
240
+ Using cached scipy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (59 kB)
241
+ Collecting sentry-sdk==1.27.1
242
+ Using cached sentry_sdk-1.27.1-py2.py3-none-any.whl.metadata (8.8 kB)
243
+ Collecting setproctitle==1.3.2
244
+ Using cached setproctitle-1.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.8 kB)
245
+ Collecting setuptools==67.8.0
246
+ Using cached setuptools-67.8.0-py3-none-any.whl.metadata (6.2 kB)
247
+ Collecting smmap==5.0.0
248
+ Using cached smmap-5.0.0-py3-none-any.whl.metadata (4.2 kB)
249
+ Collecting sympy==1.12
250
+ Using cached sympy-1.12-py3-none-any.whl.metadata (12 kB)
251
+ Collecting tensorboard-data-server==0.7.1
252
+ Using cached tensorboard_data_server-0.7.1-py3-none-manylinux2014_x86_64.whl.metadata (1.1 kB)
253
+ Collecting tensorboard==2.13.0
254
+ Using cached tensorboard-2.13.0-py3-none-any.whl.metadata (1.8 kB)
255
+ Collecting tensorboardx==2.6.1
256
+ Using cached tensorboardX-2.6.1-py2.py3-none-any.whl.metadata (5.6 kB)
257
+ Collecting threadpoolctl==3.1.0
258
+ Using cached threadpoolctl-3.1.0-py3-none-any.whl.metadata (9.2 kB)
259
+ Collecting tifffile==2023.9.26
260
+ Using cached tifffile-2023.9.26-py3-none-any.whl.metadata (30 kB)
261
+ Collecting torch==2.0.1
262
+ Using cached torch-2.0.1-cp311-cp311-manylinux1_x86_64.whl.metadata (24 kB)
263
+ Collecting torchvision==0.15.2
264
+ Using cached torchvision-0.15.2-cp311-cp311-manylinux1_x86_64.whl.metadata (11 kB)
265
+ Collecting tornado==6.1
266
+ Using cached tornado-6.1-cp311-cp311-linux_x86_64.whl
267
+ Collecting tqdm==4.65.0
268
+ Using cached tqdm-4.65.0-py3-none-any.whl.metadata (56 kB)
269
+ Collecting triton==2.0.0
270
+ Using cached triton-2.0.0-1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.0 kB)
271
+ Collecting tzdata==2023.3
272
+ Using cached tzdata-2023.3-py2.py3-none-any.whl.metadata (1.4 kB)
273
+ Collecting urllib3==1.26.16
274
+ Using cached urllib3-1.26.16-py2.py3-none-any.whl.metadata (48 kB)
275
+ Collecting wandb==0.15.5
276
+ Using cached wandb-0.15.5-py3-none-any.whl.metadata (8.2 kB)
277
+ Collecting werkzeug==2.3.6
278
+ Using cached Werkzeug-2.3.6-py3-none-any.whl.metadata (4.1 kB)
279
+ Collecting wheel==0.38.4
280
+ Using cached wheel-0.38.4-py3-none-any.whl.metadata (2.1 kB)
281
+ Collecting six>=1.4.0 (from docker-pycreds==0.4.0)
282
+ Using cached six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
283
+ Collecting platformdirs>=2.5 (from jupyter-core==5.3.1)
284
+ Using cached platformdirs-4.3.2-py3-none-any.whl.metadata (11 kB)
285
+ Collecting traitlets>=5.3 (from jupyter-core==5.3.1)
286
+ Using cached traitlets-5.14.3-py3-none-any.whl.metadata (10 kB)
287
+ Collecting packaging (from kornia==0.6.12)
288
+ Using cached packaging-24.1-py3-none-any.whl.metadata (3.2 kB)
289
+ Collecting python-dateutil>=2.7 (from matplotlib==3.7.1)
290
+ Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
291
+ Collecting typing-extensions (from torch==2.0.1)
292
+ Using cached typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
293
+ Collecting beautifulsoup4 (from gdown)
294
+ Downloading beautifulsoup4-4.12.3-py3-none-any.whl.metadata (3.8 kB)
295
+ Collecting h5py>=2.10.0 (from hickle)
296
+ Downloading h5py-3.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.5 kB)
297
+ Collecting future>=0.14.0 (from lzstring)
298
+ Using cached future-1.0.0-py3-none-any.whl.metadata (4.0 kB)
299
+ Collecting python-utils>=3.8.1 (from progressbar2)
300
+ Downloading python_utils-3.8.2-py2.py3-none-any.whl.metadata (9.7 kB)
301
+ Collecting soupsieve>1.2 (from beautifulsoup4->gdown)
302
+ Downloading soupsieve-2.6-py3-none-any.whl.metadata (4.6 kB)
303
+ Collecting PySocks!=1.5.7,>=1.5.6 (from requests[socks]->gdown)
304
+ Downloading PySocks-1.7.1-py3-none-any.whl.metadata (13 kB)
305
+ WARNING: The candidate selected for download or install is a yanked version: 'scipy' candidate (version 1.11.0 at https://files.pythonhosted.org/packages/27/10/985c0902929a424c8e0483f16ee54f92fc5e4fa07fbd83a36f3aa469b3fe/scipy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (from https://pypi.org/simple/scipy/) (requires-python:<3.13,>=3.9))
306
+ Reason for being yanked: License Violation
307
+ Using cached absl_py-1.4.0-py3-none-any.whl (126 kB)
308
+ Using cached appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
309
+ Using cached cachetools-5.3.1-py3-none-any.whl (9.3 kB)
310
+ Using cached certifi-2023.5.7-py3-none-any.whl (156 kB)
311
+ Using cached charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (197 kB)
312
+ Using cached click-8.1.4-py3-none-any.whl (98 kB)
313
+ Using cached cmake-3.26.4-py2.py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (24.0 MB)
314
+ Using cached contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (300 kB)
315
+ Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)
316
+ Using cached debugpy-1.5.1-py2.py3-none-any.whl (4.1 MB)
317
+ Using cached decord-0.6.0-py3-none-manylinux2010_x86_64.whl (13.6 MB)
318
+ Using cached docker_pycreds-0.4.0-py2.py3-none-any.whl (9.0 kB)
319
+ Using cached filelock-3.12.2-py3-none-any.whl (10 kB)
320
+ Using cached fonttools-4.40.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB)
321
+ Using cached gitdb-4.0.10-py3-none-any.whl (62 kB)
322
+ Using cached GitPython-3.1.31-py3-none-any.whl (184 kB)
323
+ Using cached google_auth_oauthlib-1.0.0-py2.py3-none-any.whl (18 kB)
324
+ Using cached google_auth-2.22.0-py2.py3-none-any.whl (181 kB)
325
+ Using cached grpcio-1.56.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.2 MB)
326
+ Using cached idna-3.4-py3-none-any.whl (61 kB)
327
+ Using cached imageio-2.31.5-py3-none-any.whl (313 kB)
328
+ Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
329
+ Using cached joblib-1.2.0-py3-none-any.whl (297 kB)
330
+ Using cached jupyter_core-5.3.1-py3-none-any.whl (93 kB)
331
+ Using cached kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB)
332
+ Using cached kornia-0.6.12-py2.py3-none-any.whl (653 kB)
333
+ Using cached lazy_loader-0.3-py3-none-any.whl (9.1 kB)
334
+ Using cached Markdown-3.4.3-py3-none-any.whl (93 kB)
335
+ Using cached MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
336
+ Using cached matplotlib-3.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)
337
+ Using cached mpmath-1.3.0-py3-none-any.whl (536 kB)
338
+ Using cached natsort-8.4.0-py3-none-any.whl (38 kB)
339
+ Using cached networkx-3.1-py3-none-any.whl (2.1 MB)
340
+ Using cached numpy-1.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.6 MB)
341
+ Using cached nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl (317.1 MB)
342
+ Using cached nvidia_cuda_cupti_cu11-11.7.101-py3-none-manylinux1_x86_64.whl (11.8 MB)
343
+ Using cached nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl (21.0 MB)
344
+ Using cached nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl (849 kB)
345
+ Using cached nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl (557.1 MB)
346
+ Using cached nvidia_cufft_cu11-10.9.0.58-py3-none-manylinux2014_x86_64.whl (168.4 MB)
347
+ Using cached nvidia_curand_cu11-10.2.10.91-py3-none-manylinux1_x86_64.whl (54.6 MB)
348
+ Using cached nvidia_cusolver_cu11-11.4.0.1-2-py3-none-manylinux1_x86_64.whl (102.6 MB)
349
+ Using cached nvidia_cusparse_cu11-11.7.4.91-py3-none-manylinux1_x86_64.whl (173.2 MB)
350
+ Using cached nvidia_nccl_cu11-2.14.3-py3-none-manylinux1_x86_64.whl (177.1 MB)
351
+ Using cached nvidia_nvtx_cu11-11.7.91-py3-none-manylinux1_x86_64.whl (98 kB)
352
+ Using cached oauthlib-3.2.2-py3-none-any.whl (151 kB)
353
+ Using cached opencv_python-4.7.0.72-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (61.8 MB)
354
+ Using cached pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.2 MB)
355
+ Using cached Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl (3.4 MB)
356
+ Using cached pip-23.1.2-py3-none-any.whl (2.1 MB)
357
+ Using cached protobuf-4.23.4-cp37-abi3-manylinux2014_x86_64.whl (304 kB)
358
+ Using cached pyasn1_modules-0.3.0-py2.py3-none-any.whl (181 kB)
359
+ Using cached pyasn1-0.5.0-py2.py3-none-any.whl (83 kB)
360
+ Using cached pyparsing-3.1.0-py3-none-any.whl (102 kB)
361
+ Using cached pytz-2023.3-py2.py3-none-any.whl (502 kB)
362
+ Using cached PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (757 kB)
363
+ Using cached pyzmq-25.1.0-cp311-cp311-manylinux_2_28_x86_64.whl (1.1 MB)
364
+ Using cached requests_oauthlib-1.3.1-py2.py3-none-any.whl (23 kB)
365
+ Using cached requests-2.31.0-py3-none-any.whl (62 kB)
366
+ Using cached rsa-4.9-py3-none-any.whl (34 kB)
367
+ Using cached scikit_image-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.7 MB)
368
+ Using cached scikit_learn-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB)
369
+ Using cached scipy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (36.2 MB)
370
+ Using cached sentry_sdk-1.27.1-py2.py3-none-any.whl (211 kB)
371
+ Using cached setproctitle-1.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (31 kB)
372
+ Using cached setuptools-67.8.0-py3-none-any.whl (1.1 MB)
373
+ Using cached smmap-5.0.0-py3-none-any.whl (24 kB)
374
+ Using cached sympy-1.12-py3-none-any.whl (5.7 MB)
375
+ Using cached tensorboard_data_server-0.7.1-py3-none-manylinux2014_x86_64.whl (6.6 MB)
376
+ Using cached tensorboard-2.13.0-py3-none-any.whl (5.6 MB)
377
+ Using cached tensorboardX-2.6.1-py2.py3-none-any.whl (101 kB)
378
+ Using cached threadpoolctl-3.1.0-py3-none-any.whl (14 kB)
379
+ Using cached tifffile-2023.9.26-py3-none-any.whl (222 kB)
380
+ Using cached torch-2.0.1-cp311-cp311-manylinux1_x86_64.whl (619.9 MB)
381
+ Using cached torchvision-0.15.2-cp311-cp311-manylinux1_x86_64.whl (6.0 MB)
382
+ Using cached tqdm-4.65.0-py3-none-any.whl (77 kB)
383
+ Using cached triton-2.0.0-1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (63.3 MB)
384
+ Using cached tzdata-2023.3-py2.py3-none-any.whl (341 kB)
385
+ Using cached urllib3-1.26.16-py2.py3-none-any.whl (143 kB)
386
+ Using cached wandb-0.15.5-py3-none-any.whl (2.1 MB)
387
+ Using cached Werkzeug-2.3.6-py3-none-any.whl (242 kB)
388
+ Using cached wheel-0.38.4-py3-none-any.whl (36 kB)
389
+ Downloading gdown-5.2.0-py3-none-any.whl (18 kB)
390
+ Downloading hickle-5.0.3-py3-none-any.whl (107 kB)
391
+ Downloading opencv_python_headless-4.10.0.84-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.9 MB)
392
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 49.9/49.9 MB 188.3 MB/s eta 0:00:00
393
+ Downloading progressbar2-4.5.0-py3-none-any.whl (57 kB)
394
+ Using cached future-1.0.0-py3-none-any.whl (491 kB)
395
+ Downloading h5py-3.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB)
396
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.4/5.4 MB 185.1 MB/s eta 0:00:00
397
+ Using cached packaging-24.1-py3-none-any.whl (53 kB)
398
+ Using cached platformdirs-4.3.2-py3-none-any.whl (18 kB)
399
+ Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
400
+ Downloading python_utils-3.8.2-py2.py3-none-any.whl (27 kB)
401
+ Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
402
+ Using cached traitlets-5.14.3-py3-none-any.whl (85 kB)
403
+ Using cached typing_extensions-4.12.2-py3-none-any.whl (37 kB)
404
+ Downloading beautifulsoup4-4.12.3-py3-none-any.whl (147 kB)
405
+ Downloading PySocks-1.7.1-py3-none-any.whl (16 kB)
406
+ Downloading soupsieve-2.6-py3-none-any.whl (36 kB)
407
+ Building wheels for collected packages: thinplate
408
+ Building wheel for thinplate (setup.py): started
409
+ Building wheel for thinplate (setup.py): finished with status 'done'
410
+ Created wheel for thinplate: filename=thinplate-1.0.0-py3-none-any.whl size=6699 sha256=d4ffda8c168d40baa5ef3b0079bb50fbb08378232c5c286c1cfe14228a4fadb8
411
+ Stored in directory: /tmp/pip-ephem-wheel-cache-9hm560_h/wheels/8d/a9/10/26074e234ee6057094ebcf080ff2f898ab16f418672fab12ad
412
+ Successfully built thinplate
413
+ Installing collected packages: pytz, pathtools, mpmath, lit, cmake, appdirs, wheel, urllib3, tzdata, typing-extensions, traitlets, tqdm, tornado, threadpoolctl, tensorboard-data-server, sympy, soupsieve, smmap, six, setuptools, setproctitle, pyzmq, pyyaml, PySocks, pyparsing, pyasn1, psutil, protobuf, platformdirs, pip, pillow, packaging, oauthlib, nvidia-nccl-cu11, nvidia-cufft-cu11, nvidia-cuda-nvrtc-cu11, numpy, networkx, natsort, markupsafe, markdown, lazy-loader, kiwisolver, joblib, idna, grpcio, future, fonttools, filelock, debugpy, cycler, click, charset-normalizer, certifi, cachetools, absl-py, werkzeug, tifffile, tensorboardx, sentry-sdk, scipy, rsa, requests, python-utils, python-dateutil, pyasn1-modules, opencv-python-headless, opencv-python, nvidia-nvtx-cu11, nvidia-cusparse-cu11, nvidia-curand-cu11, nvidia-cuda-runtime-cu11, nvidia-cuda-cupti-cu11, nvidia-cublas-cu11, lzstring, jupyter-core, jinja2, imageio, h5py, gitdb, docker-pycreds, decord, contourpy, beautifulsoup4, scikit-learn, scikit-image, requests-oauthlib, progressbar2, pandas, nvidia-cusolver-cu11, nvidia-cudnn-cu11, matplotlib, hickle, google-auth, gitpython, wandb, pycocotools, google-auth-oauthlib, gdown, tensorboard, triton, torch, torchvision, thinplate, kornia
414
+ Attempting uninstall: wheel
415
+ Found existing installation: wheel 0.44.0
416
+ Uninstalling wheel-0.44.0:
417
+ Successfully uninstalled wheel-0.44.0
418
+ Attempting uninstall: setuptools
419
+ Found existing installation: setuptools 73.0.1
420
+ Uninstalling setuptools-73.0.1:
421
+ Successfully uninstalled setuptools-73.0.1
422
+ Attempting uninstall: pip
423
+ Found existing installation: pip 24.2
424
+ Uninstalling pip-24.2:
425
+ Successfully uninstalled pip-24.2
426
+ Successfully installed PySocks-1.7.1 absl-py-1.4.0 appdirs-1.4.4 beautifulsoup4-4.12.3 cachetools-5.3.1 certifi-2023.5.7 charset-normalizer-3.1.0 click-8.1.4 cmake-3.26.4 contourpy-1.1.0 cycler-0.11.0 debugpy-1.5.1 decord-0.6.0 docker-pycreds-0.4.0 filelock-3.12.2 fonttools-4.40.0 future-1.0.0 gdown-5.2.0 gitdb-4.0.10 gitpython-3.1.31 google-auth-2.22.0 google-auth-oauthlib-1.0.0 grpcio-1.56.2 h5py-3.11.0 hickle-5.0.3 idna-3.4 imageio-2.31.5 jinja2-3.1.2 joblib-1.2.0 jupyter-core-5.3.1 kiwisolver-1.4.4 kornia-0.6.12 lazy-loader-0.3 lit-16.0.6 lzstring-1.0.4 markdown-3.4.3 markupsafe-2.1.3 matplotlib-3.7.1 mpmath-1.3.0 natsort-8.4.0 networkx-3.1 numpy-1.25.0 nvidia-cublas-cu11-11.10.3.66 nvidia-cuda-cupti-cu11-11.7.101 nvidia-cuda-nvrtc-cu11-11.7.99 nvidia-cuda-runtime-cu11-11.7.99 nvidia-cudnn-cu11-8.5.0.96 nvidia-cufft-cu11-10.9.0.58 nvidia-curand-cu11-10.2.10.91 nvidia-cusolver-cu11-11.4.0.1 nvidia-cusparse-cu11-11.7.4.91 nvidia-nccl-cu11-2.14.3 nvidia-nvtx-cu11-11.7.91 oauthlib-3.2.2 opencv-python-4.7.0.72 opencv-python-headless-4.10.0.84 packaging-24.1 pandas-2.0.3 pathtools-0.1.2 pillow-9.5.0 pip-23.1.2 platformdirs-4.3.2 progressbar2-4.5.0 protobuf-4.23.4 psutil-5.9.0 pyasn1-0.5.0 pyasn1-modules-0.3.0 pycocotools-2.0.6 pyparsing-3.1.0 python-dateutil-2.9.0.post0 python-utils-3.8.2 pytz-2023.3 pyyaml-6.0 pyzmq-25.1.0 requests-2.31.0 requests-oauthlib-1.3.1 rsa-4.9 scikit-image-0.22.0 scikit-learn-1.2.2 scipy-1.11.0 sentry-sdk-1.27.1 setproctitle-1.3.2 setuptools-67.8.0 six-1.16.0 smmap-5.0.0 soupsieve-2.6 sympy-1.12 tensorboard-2.13.0 tensorboard-data-server-0.7.1 tensorboardx-2.6.1 thinplate-1.0.0 threadpoolctl-3.1.0 tifffile-2023.9.26 torch-2.0.1 torchvision-0.15.2 tornado-6.1 tqdm-4.65.0 traitlets-5.14.3 triton-2.0.0 typing-extensions-4.12.2 tzdata-2023.3 urllib3-1.26.16 wandb-0.15.5 werkzeug-2.3.6 wheel-0.38.4
427
+
428
+ [notice] A new release of pip is available: 23.1.2 -> 24.2
429
+ [notice] To update, run: pip install --upgrade pip
430
+ Traceback (most recent call last):
431
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/XMem/eval.py", line 147, in <module>
432
+ network = XMem(config, args.model, enable_segswap=args.enable_segswap).cuda().eval()
433
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
434
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/XMem/model/network.py", line 25, in __init__
435
+ model_weights = self.init_hyperparameters(config, model_path, map_location)
436
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
437
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/XMem/model/network.py", line 231, in init_hyperparameters
438
+ self.key_dim = model_weights["key_proj.key_proj.weight"].shape[0]
439
+ ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
440
+ KeyError: 'key_proj.key_proj.weight'
441
+ srun: error: gcp-us-1: task 0: Exited with exit code 1
83501.log ADDED
The diff for this file is too large to render. See raw diff
 
9.log ADDED
@@ -0,0 +1,530 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0
  0%| | 0/1000 [00:00<?, ?it/s]
1
  0%| | 0/1000 [00:07<?, ?it/s]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Solving dependencies
2
+ Installing conda packages
3
+ Empty environment created at prefix: /scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd
4
+ error libmamba Could not lock non-existing path '/scratch/yuqian_fu/micromamba/pkgs'
5
+ Transaction
6
+
7
+ Prefix: /scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd
8
+
9
+
10
+
11
+ No specs added or removed.
12
+
13
+ Package Version Build Channel Size
14
+ ─────────────────────────────────────────────────────────────────────────────────────────────
15
+ Install:
16
+ ─────────────────────────────────────────────────────────────────────────────────────────────
17
+
18
+ + _libgcc_mutex 0.1 conda_forge conda-forge
19
+ + _openmp_mutex 4.5 2_gnu conda-forge
20
+ + bzip2 1.0.8 h4bc722e_7 conda-forge
21
+ + ca-certificates 2024.8.30 hbcca054_0 conda-forge
22
+ + ld_impl_linux-64 2.40 hf3520f5_7 conda-forge
23
+ + libexpat 2.6.2 h59595ed_0 conda-forge
24
+ + libffi 3.4.2 h7f98852_5 conda-forge
25
+ + libgcc 14.1.0 h77fa898_1 conda-forge
26
+ + libgcc-ng 14.1.0 h69a702a_1 conda-forge
27
+ + libgomp 14.1.0 h77fa898_1 conda-forge
28
+ + libnsl 2.0.1 hd590300_0 conda-forge
29
+ + libsqlite 3.46.1 hadc24fc_0 conda-forge
30
+ + libuuid 2.38.1 h0b41bf4_0 conda-forge
31
+ + libxcrypt 4.4.36 hd590300_1 conda-forge
32
+ + libzlib 1.3.1 h4ab18f5_1 conda-forge
33
+ + ncurses 6.5 he02047a_1 conda-forge
34
+ + openssl 3.3.2 hb9d3cd8_0 conda-forge
35
+ + pip 24.2 pyh8b19718_1 conda-forge
36
+ + python 3.11.9 hb806964_0_cpython /work/conda/cache/conda-forge
37
+ + readline 8.2 h8228510_1 conda-forge
38
+ + setuptools 73.0.1 pyhd8ed1ab_0 conda-forge
39
+ + tk 8.6.13 noxft_h4845f30_101 /work/conda/cache/conda-forge
40
+ + tzdata 2024a h8827d51_1 conda-forge
41
+ + wheel 0.44.0 pyhd8ed1ab_0 conda-forge
42
+ + xz 5.2.6 h166bdaf_0 conda-forge
43
+
44
+ Summary:
45
+
46
+ Install: 25 packages
47
+
48
+ Total download: 0 B
49
+
50
+ ─────────────────────────────────────────────────────────────────────────────────────────────
51
+
52
+
53
+
54
+ Transaction starting
55
+ Linking _libgcc_mutex-0.1-conda_forge
56
+ Linking ld_impl_linux-64-2.40-hf3520f5_7
57
+ Linking ca-certificates-2024.8.30-hbcca054_0
58
+ Linking libgomp-14.1.0-h77fa898_1
59
+ Linking _openmp_mutex-4.5-2_gnu
60
+ Linking libgcc-14.1.0-h77fa898_1
61
+ Linking openssl-3.3.2-hb9d3cd8_0
62
+ Linking libgcc-ng-14.1.0-h69a702a_1
63
+ Linking libffi-3.4.2-h7f98852_5
64
+ Linking libzlib-1.3.1-h4ab18f5_1
65
+ Linking libxcrypt-4.4.36-hd590300_1
66
+ Linking bzip2-1.0.8-h4bc722e_7
67
+ Linking ncurses-6.5-he02047a_1
68
+ Linking xz-5.2.6-h166bdaf_0
69
+ Linking libuuid-2.38.1-h0b41bf4_0
70
+ Linking libnsl-2.0.1-hd590300_0
71
+ Linking libexpat-2.6.2-h59595ed_0
72
+ Linking tk-8.6.13-noxft_h4845f30_101
73
+ Linking libsqlite-3.46.1-hadc24fc_0
74
+ Linking readline-8.2-h8228510_1
75
+ Linking tzdata-2024a-h8827d51_1
76
+ Linking python-3.11.9-hb806964_0_cpython
77
+ Linking pip-24.2-pyh8b19718_1
78
+ Linking setuptools-73.0.1-pyhd8ed1ab_0
79
+ Linking wheel-0.44.0-pyhd8ed1ab_0
80
+
81
+ Transaction finished
82
+
83
+ To activate this environment, use:
84
+
85
+ mamba activate auto-gfmiyxa3evbd
86
+
87
+ Or to execute a single command in this environment, use:
88
+
89
+ mamba run -n auto-gfmiyxa3evbd mycommand
90
+
91
+ Installing pip packages
92
+ Collecting absl-py==1.4.0
93
+ Downloading absl_py-1.4.0-py3-none-any.whl.metadata (2.3 kB)
94
+ Collecting appdirs==1.4.4
95
+ Downloading appdirs-1.4.4-py2.py3-none-any.whl.metadata (9.0 kB)
96
+ Collecting cachetools==5.3.1
97
+ Downloading cachetools-5.3.1-py3-none-any.whl.metadata (5.2 kB)
98
+ Collecting certifi==2023.5.7
99
+ Downloading certifi-2023.5.7-py3-none-any.whl.metadata (2.2 kB)
100
+ Collecting charset-normalizer==3.1.0
101
+ Downloading charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (30 kB)
102
+ Collecting click==8.1.4
103
+ Downloading click-8.1.4-py3-none-any.whl.metadata (3.0 kB)
104
+ Collecting cmake==3.26.4
105
+ Downloading cmake-3.26.4-py2.py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (6.7 kB)
106
+ Collecting contourpy==1.1.0
107
+ Downloading contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.7 kB)
108
+ Collecting cycler==0.11.0
109
+ Downloading cycler-0.11.0-py3-none-any.whl.metadata (785 bytes)
110
+ Collecting debugpy==1.5.1
111
+ Downloading debugpy-1.5.1-py2.py3-none-any.whl.metadata (1.2 kB)
112
+ Collecting decord==0.6.0
113
+ Downloading decord-0.6.0-py3-none-manylinux2010_x86_64.whl.metadata (422 bytes)
114
+ Collecting docker-pycreds==0.4.0
115
+ Downloading docker_pycreds-0.4.0-py2.py3-none-any.whl.metadata (1.8 kB)
116
+ Collecting filelock==3.12.2
117
+ Downloading filelock-3.12.2-py3-none-any.whl.metadata (2.7 kB)
118
+ Collecting fonttools==4.40.0
119
+ Downloading fonttools-4.40.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (148 kB)
120
+ Collecting gitdb==4.0.10
121
+ Downloading gitdb-4.0.10-py3-none-any.whl.metadata (1.1 kB)
122
+ Collecting gitpython==3.1.31
123
+ Downloading GitPython-3.1.31-py3-none-any.whl.metadata (1.3 kB)
124
+ Collecting google-auth-oauthlib==1.0.0
125
+ Downloading google_auth_oauthlib-1.0.0-py2.py3-none-any.whl.metadata (2.7 kB)
126
+ Collecting google-auth==2.22.0
127
+ Downloading google_auth-2.22.0-py2.py3-none-any.whl.metadata (4.2 kB)
128
+ Collecting grpcio==1.56.2
129
+ Downloading grpcio-1.56.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)
130
+ Collecting idna==3.4
131
+ Downloading idna-3.4-py3-none-any.whl.metadata (9.8 kB)
132
+ Collecting imageio==2.31.5
133
+ Downloading imageio-2.31.5-py3-none-any.whl.metadata (4.6 kB)
134
+ Collecting jinja2==3.1.2
135
+ Downloading Jinja2-3.1.2-py3-none-any.whl.metadata (3.5 kB)
136
+ Collecting joblib==1.2.0
137
+ Downloading joblib-1.2.0-py3-none-any.whl.metadata (5.3 kB)
138
+ Collecting jupyter-core==5.3.1
139
+ Downloading jupyter_core-5.3.1-py3-none-any.whl.metadata (3.4 kB)
140
+ Collecting kiwisolver==1.4.4
141
+ Downloading kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.3 kB)
142
+ Collecting kornia==0.6.12
143
+ Downloading kornia-0.6.12-py2.py3-none-any.whl.metadata (12 kB)
144
+ Collecting lazy-loader==0.3
145
+ Downloading lazy_loader-0.3-py3-none-any.whl.metadata (4.3 kB)
146
+ Collecting lit==16.0.6
147
+ Downloading lit-16.0.6.tar.gz (153 kB)
148
+ Installing build dependencies: started
149
+ Installing build dependencies: finished with status 'done'
150
+ Getting requirements to build wheel: started
151
+ Getting requirements to build wheel: finished with status 'done'
152
+ Preparing metadata (pyproject.toml): started
153
+ Preparing metadata (pyproject.toml): finished with status 'done'
154
+ Collecting lzstring
155
+ Downloading lzstring-1.0.4.tar.gz (4.3 kB)
156
+ Preparing metadata (setup.py): started
157
+ Preparing metadata (setup.py): finished with status 'done'
158
+ Collecting markdown==3.4.3
159
+ Downloading Markdown-3.4.3-py3-none-any.whl.metadata (6.7 kB)
160
+ Collecting markupsafe==2.1.3
161
+ Downloading MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)
162
+ Collecting matplotlib==3.7.1
163
+ Downloading matplotlib-3.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.6 kB)
164
+ Collecting mpmath==1.3.0
165
+ Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)
166
+ Collecting natsort==8.4.0
167
+ Downloading natsort-8.4.0-py3-none-any.whl.metadata (21 kB)
168
+ Collecting networkx==3.1
169
+ Downloading networkx-3.1-py3-none-any.whl.metadata (5.3 kB)
170
+ Collecting numpy==1.25.0
171
+ Downloading numpy-1.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.6 kB)
172
+ Collecting nvidia-cublas-cu11==11.10.3.66
173
+ Downloading nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
174
+ Collecting nvidia-cuda-cupti-cu11==11.7.101
175
+ Downloading nvidia_cuda_cupti_cu11-11.7.101-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
176
+ Collecting nvidia-cuda-nvrtc-cu11==11.7.99
177
+ Downloading nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)
178
+ Collecting nvidia-cuda-runtime-cu11==11.7.99
179
+ Downloading nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
180
+ Collecting nvidia-cudnn-cu11==8.5.0.96
181
+ Downloading nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
182
+ Collecting nvidia-cufft-cu11==10.9.0.58
183
+ Downloading nvidia_cufft_cu11-10.9.0.58-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
184
+ Collecting nvidia-curand-cu11==10.2.10.91
185
+ Downloading nvidia_curand_cu11-10.2.10.91-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
186
+ Collecting nvidia-cusolver-cu11==11.4.0.1
187
+ Downloading nvidia_cusolver_cu11-11.4.0.1-2-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
188
+ Collecting nvidia-cusparse-cu11==11.7.4.91
189
+ Downloading nvidia_cusparse_cu11-11.7.4.91-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
190
+ Collecting nvidia-nccl-cu11==2.14.3
191
+ Downloading nvidia_nccl_cu11-2.14.3-py3-none-manylinux1_x86_64.whl.metadata (1.8 kB)
192
+ Collecting nvidia-nvtx-cu11==11.7.91
193
+ Downloading nvidia_nvtx_cu11-11.7.91-py3-none-manylinux1_x86_64.whl.metadata (1.7 kB)
194
+ Collecting oauthlib==3.2.2
195
+ Downloading oauthlib-3.2.2-py3-none-any.whl.metadata (7.5 kB)
196
+ Collecting opencv-python==4.7.0.72
197
+ Downloading opencv_python-4.7.0.72-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (18 kB)
198
+ Collecting pandas==2.0.3
199
+ Downloading pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (18 kB)
200
+ Collecting pathtools==0.1.2
201
+ Downloading pathtools-0.1.2.tar.gz (11 kB)
202
+ Preparing metadata (setup.py): started
203
+ Preparing metadata (setup.py): finished with status 'done'
204
+ Collecting pillow==9.5.0
205
+ Downloading Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (9.5 kB)
206
+ Collecting pip==23.1.2
207
+ Downloading pip-23.1.2-py3-none-any.whl.metadata (4.1 kB)
208
+ Collecting protobuf==4.23.4
209
+ Downloading protobuf-4.23.4-cp37-abi3-manylinux2014_x86_64.whl.metadata (540 bytes)
210
+ Collecting psutil==5.9.0
211
+ Downloading psutil-5.9.0.tar.gz (478 kB)
212
+ Preparing metadata (setup.py): started
213
+ Preparing metadata (setup.py): finished with status 'done'
214
+ Collecting pyasn1-modules==0.3.0
215
+ Downloading pyasn1_modules-0.3.0-py2.py3-none-any.whl.metadata (3.6 kB)
216
+ Collecting pyasn1==0.5.0
217
+ Downloading pyasn1-0.5.0-py2.py3-none-any.whl.metadata (8.5 kB)
218
+ Collecting pycocotools==2.0.6
219
+ Downloading pycocotools-2.0.6.tar.gz (24 kB)
220
+ Installing build dependencies: started
221
+ Installing build dependencies: finished with status 'done'
222
+ Getting requirements to build wheel: started
223
+ Getting requirements to build wheel: finished with status 'done'
224
+ Preparing metadata (pyproject.toml): started
225
+ Preparing metadata (pyproject.toml): finished with status 'done'
226
+ Collecting pyparsing==3.1.0
227
+ Downloading pyparsing-3.1.0-py3-none-any.whl.metadata (4.9 kB)
228
+ Collecting pytz==2023.3
229
+ Downloading pytz-2023.3-py2.py3-none-any.whl.metadata (22 kB)
230
+ Collecting pyyaml==6.0
231
+ Downloading PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
232
+ Collecting pyzmq==25.1.0
233
+ Downloading pyzmq-25.1.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (4.8 kB)
234
+ Collecting requests-oauthlib==1.3.1
235
+ Downloading requests_oauthlib-1.3.1-py2.py3-none-any.whl.metadata (10 kB)
236
+ Collecting requests==2.31.0
237
+ Downloading requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
238
+ Collecting rsa==4.9
239
+ Downloading rsa-4.9-py3-none-any.whl.metadata (4.2 kB)
240
+ Collecting scikit-image==0.22.0
241
+ Downloading scikit_image-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (13 kB)
242
+ Collecting scikit-learn==1.2.2
243
+ Downloading scikit_learn-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
244
+ Collecting scipy==1.11.0
245
+ Downloading scipy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (59 kB)
246
+ Collecting sentry-sdk==1.27.1
247
+ Downloading sentry_sdk-1.27.1-py2.py3-none-any.whl.metadata (8.8 kB)
248
+ Collecting setproctitle==1.3.2
249
+ Downloading setproctitle-1.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.8 kB)
250
+ Collecting setuptools==67.8.0
251
+ Downloading setuptools-67.8.0-py3-none-any.whl.metadata (6.2 kB)
252
+ Collecting smmap==5.0.0
253
+ Downloading smmap-5.0.0-py3-none-any.whl.metadata (4.2 kB)
254
+ Collecting sympy==1.12
255
+ Downloading sympy-1.12-py3-none-any.whl.metadata (12 kB)
256
+ Collecting tensorboard-data-server==0.7.1
257
+ Downloading tensorboard_data_server-0.7.1-py3-none-manylinux2014_x86_64.whl.metadata (1.1 kB)
258
+ Collecting tensorboard==2.13.0
259
+ Downloading tensorboard-2.13.0-py3-none-any.whl.metadata (1.8 kB)
260
+ Collecting tensorboardx==2.6.1
261
+ Downloading tensorboardX-2.6.1-py2.py3-none-any.whl.metadata (5.6 kB)
262
+ Collecting threadpoolctl==3.1.0
263
+ Downloading threadpoolctl-3.1.0-py3-none-any.whl.metadata (9.2 kB)
264
+ Collecting tifffile==2023.9.26
265
+ Downloading tifffile-2023.9.26-py3-none-any.whl.metadata (30 kB)
266
+ Collecting torch==2.0.1
267
+ Downloading torch-2.0.1-cp311-cp311-manylinux1_x86_64.whl.metadata (24 kB)
268
+ Collecting torchvision==0.15.2
269
+ Downloading torchvision-0.15.2-cp311-cp311-manylinux1_x86_64.whl.metadata (11 kB)
270
+ Collecting tornado==6.1
271
+ Downloading tornado-6.1.tar.gz (497 kB)
272
+ Preparing metadata (setup.py): started
273
+ Preparing metadata (setup.py): finished with status 'done'
274
+ Collecting tqdm==4.65.0
275
+ Downloading tqdm-4.65.0-py3-none-any.whl.metadata (56 kB)
276
+ Collecting triton==2.0.0
277
+ Downloading triton-2.0.0-1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.0 kB)
278
+ Collecting tzdata==2023.3
279
+ Downloading tzdata-2023.3-py2.py3-none-any.whl.metadata (1.4 kB)
280
+ Collecting urllib3==1.26.16
281
+ Downloading urllib3-1.26.16-py2.py3-none-any.whl.metadata (48 kB)
282
+ Collecting wandb==0.15.5
283
+ Downloading wandb-0.15.5-py3-none-any.whl.metadata (8.2 kB)
284
+ Collecting werkzeug==2.3.6
285
+ Downloading Werkzeug-2.3.6-py3-none-any.whl.metadata (4.1 kB)
286
+ Collecting wheel==0.38.4
287
+ Downloading wheel-0.38.4-py3-none-any.whl.metadata (2.1 kB)
288
+ Collecting six>=1.4.0 (from docker-pycreds==0.4.0)
289
+ Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
290
+ Collecting platformdirs>=2.5 (from jupyter-core==5.3.1)
291
+ Downloading platformdirs-4.2.2-py3-none-any.whl.metadata (11 kB)
292
+ Collecting traitlets>=5.3 (from jupyter-core==5.3.1)
293
+ Downloading traitlets-5.14.3-py3-none-any.whl.metadata (10 kB)
294
+ Collecting packaging (from kornia==0.6.12)
295
+ Downloading packaging-24.1-py3-none-any.whl.metadata (3.2 kB)
296
+ Collecting python-dateutil>=2.7 (from matplotlib==3.7.1)
297
+ Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
298
+ Collecting typing-extensions (from torch==2.0.1)
299
+ Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
300
+ Collecting future>=0.14.0 (from lzstring)
301
+ Downloading future-1.0.0-py3-none-any.whl.metadata (4.0 kB)
302
+ WARNING: The candidate selected for download or install is a yanked version: 'scipy' candidate (version 1.11.0 at https://files.pythonhosted.org/packages/27/10/985c0902929a424c8e0483f16ee54f92fc5e4fa07fbd83a36f3aa469b3fe/scipy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (from https://pypi.org/simple/scipy/) (requires-python:<3.13,>=3.9))
303
+ Reason for being yanked: License Violation
304
+ Downloading absl_py-1.4.0-py3-none-any.whl (126 kB)
305
+ Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
306
+ Downloading cachetools-5.3.1-py3-none-any.whl (9.3 kB)
307
+ Downloading certifi-2023.5.7-py3-none-any.whl (156 kB)
308
+ Downloading charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (197 kB)
309
+ Downloading click-8.1.4-py3-none-any.whl (98 kB)
310
+ Downloading cmake-3.26.4-py2.py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (24.0 MB)
311
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.0/24.0 MB 201.3 MB/s eta 0:00:00
312
+ Downloading contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (300 kB)
313
+ Downloading cycler-0.11.0-py3-none-any.whl (6.4 kB)
314
+ Downloading debugpy-1.5.1-py2.py3-none-any.whl (4.1 MB)
315
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.1/4.1 MB 223.4 MB/s eta 0:00:00
316
+ Downloading decord-0.6.0-py3-none-manylinux2010_x86_64.whl (13.6 MB)
317
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.6/13.6 MB 298.9 MB/s eta 0:00:00
318
+ Downloading docker_pycreds-0.4.0-py2.py3-none-any.whl (9.0 kB)
319
+ Downloading filelock-3.12.2-py3-none-any.whl (10 kB)
320
+ Downloading fonttools-4.40.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB)
321
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 MB 11.5 MB/s eta 0:00:00
322
+ Downloading gitdb-4.0.10-py3-none-any.whl (62 kB)
323
+ Downloading GitPython-3.1.31-py3-none-any.whl (184 kB)
324
+ Downloading google_auth_oauthlib-1.0.0-py2.py3-none-any.whl (18 kB)
325
+ Downloading google_auth-2.22.0-py2.py3-none-any.whl (181 kB)
326
+ Downloading grpcio-1.56.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.2 MB)
327
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 44.5 MB/s eta 0:00:00
328
+ Downloading idna-3.4-py3-none-any.whl (61 kB)
329
+ Downloading imageio-2.31.5-py3-none-any.whl (313 kB)
330
+ Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB)
331
+ Downloading joblib-1.2.0-py3-none-any.whl (297 kB)
332
+ Downloading jupyter_core-5.3.1-py3-none-any.whl (93 kB)
333
+ Downloading kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB)
334
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 172.0 MB/s eta 0:00:00
335
+ Downloading kornia-0.6.12-py2.py3-none-any.whl (653 kB)
336
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 653.4/653.4 kB 62.5 MB/s eta 0:00:00
337
+ Downloading lazy_loader-0.3-py3-none-any.whl (9.1 kB)
338
+ Downloading Markdown-3.4.3-py3-none-any.whl (93 kB)
339
+ Downloading MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
340
+ Downloading matplotlib-3.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)
341
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.6/11.6 MB 104.5 MB/s eta 0:00:00
342
+ Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)
343
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 100.7 MB/s eta 0:00:00
344
+ Downloading natsort-8.4.0-py3-none-any.whl (38 kB)
345
+ Downloading networkx-3.1-py3-none-any.whl (2.1 MB)
346
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 199.2 MB/s eta 0:00:00
347
+ Downloading numpy-1.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.6 MB)
348
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.6/17.6 MB 106.4 MB/s eta 0:00:00
349
+ Downloading nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl (317.1 MB)
350
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 317.1/317.1 MB 160.2 MB/s eta 0:00:00
351
+ Downloading nvidia_cuda_cupti_cu11-11.7.101-py3-none-manylinux1_x86_64.whl (11.8 MB)
352
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.8/11.8 MB 70.9 MB/s eta 0:00:00
353
+ Downloading nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl (21.0 MB)
354
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.0/21.0 MB 269.9 MB/s eta 0:00:00
355
+ Downloading nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl (849 kB)
356
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 849.3/849.3 kB 156.8 MB/s eta 0:00:00
357
+ Downloading nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl (557.1 MB)
358
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 557.1/557.1 MB 117.8 MB/s eta 0:00:00
359
+ Downloading nvidia_cufft_cu11-10.9.0.58-py3-none-manylinux2014_x86_64.whl (168.4 MB)
360
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 168.4/168.4 MB 152.6 MB/s eta 0:00:00
361
+ Downloading nvidia_curand_cu11-10.2.10.91-py3-none-manylinux1_x86_64.whl (54.6 MB)
362
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.6/54.6 MB 278.2 MB/s eta 0:00:00
363
+ Downloading nvidia_cusolver_cu11-11.4.0.1-2-py3-none-manylinux1_x86_64.whl (102.6 MB)
364
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 102.6/102.6 MB 144.2 MB/s eta 0:00:00
365
+ Downloading nvidia_cusparse_cu11-11.7.4.91-py3-none-manylinux1_x86_64.whl (173.2 MB)
366
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 173.2/173.2 MB 167.0 MB/s eta 0:00:00
367
+ Downloading nvidia_nccl_cu11-2.14.3-py3-none-manylinux1_x86_64.whl (177.1 MB)
368
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 177.1/177.1 MB 278.1 MB/s eta 0:00:00
369
+ Downloading nvidia_nvtx_cu11-11.7.91-py3-none-manylinux1_x86_64.whl (98 kB)
370
+ Downloading oauthlib-3.2.2-py3-none-any.whl (151 kB)
371
+ Downloading opencv_python-4.7.0.72-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (61.8 MB)
372
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.8/61.8 MB 137.4 MB/s eta 0:00:00
373
+ Downloading pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.2 MB)
374
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.2/12.2 MB 299.1 MB/s eta 0:00:00
375
+ Downloading Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl (3.4 MB)
376
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 188.0 MB/s eta 0:00:00
377
+ Downloading pip-23.1.2-py3-none-any.whl (2.1 MB)
378
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 184.7 MB/s eta 0:00:00
379
+ Downloading protobuf-4.23.4-cp37-abi3-manylinux2014_x86_64.whl (304 kB)
380
+ Downloading pyasn1_modules-0.3.0-py2.py3-none-any.whl (181 kB)
381
+ Downloading pyasn1-0.5.0-py2.py3-none-any.whl (83 kB)
382
+ Downloading pyparsing-3.1.0-py3-none-any.whl (102 kB)
383
+ Downloading pytz-2023.3-py2.py3-none-any.whl (502 kB)
384
+ Downloading PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (757 kB)
385
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 757.9/757.9 kB 152.1 MB/s eta 0:00:00
386
+ Downloading pyzmq-25.1.0-cp311-cp311-manylinux_2_28_x86_64.whl (1.1 MB)
387
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 180.9 MB/s eta 0:00:00
388
+ Downloading requests_oauthlib-1.3.1-py2.py3-none-any.whl (23 kB)
389
+ Downloading requests-2.31.0-py3-none-any.whl (62 kB)
390
+ Downloading rsa-4.9-py3-none-any.whl (34 kB)
391
+ Downloading scikit_image-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.7 MB)
392
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.7/14.7 MB 282.4 MB/s eta 0:00:00
393
+ Downloading scikit_learn-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB)
394
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.6/9.6 MB 96.8 MB/s eta 0:00:00
395
+ Downloading scipy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (36.2 MB)
396
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 36.2/36.2 MB 24.4 MB/s eta 0:00:00
397
+ Downloading sentry_sdk-1.27.1-py2.py3-none-any.whl (211 kB)
398
+ Downloading setproctitle-1.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (31 kB)
399
+ Downloading setuptools-67.8.0-py3-none-any.whl (1.1 MB)
400
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 152.8 MB/s eta 0:00:00
401
+ Downloading smmap-5.0.0-py3-none-any.whl (24 kB)
402
+ Downloading sympy-1.12-py3-none-any.whl (5.7 MB)
403
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7/5.7 MB 126.3 MB/s eta 0:00:00
404
+ Downloading tensorboard_data_server-0.7.1-py3-none-manylinux2014_x86_64.whl (6.6 MB)
405
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.6/6.6 MB 282.9 MB/s eta 0:00:00
406
+ Downloading tensorboard-2.13.0-py3-none-any.whl (5.6 MB)
407
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.6/5.6 MB 211.9 MB/s eta 0:00:00
408
+ Downloading tensorboardX-2.6.1-py2.py3-none-any.whl (101 kB)
409
+ Downloading threadpoolctl-3.1.0-py3-none-any.whl (14 kB)
410
+ Downloading tifffile-2023.9.26-py3-none-any.whl (222 kB)
411
+ Downloading torch-2.0.1-cp311-cp311-manylinux1_x86_64.whl (619.9 MB)
412
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 619.9/619.9 MB 60.2 MB/s eta 0:00:00
413
+ Downloading torchvision-0.15.2-cp311-cp311-manylinux1_x86_64.whl (6.0 MB)
414
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.0/6.0 MB 65.2 MB/s eta 0:00:00
415
+ Downloading tqdm-4.65.0-py3-none-any.whl (77 kB)
416
+ Downloading triton-2.0.0-1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (63.3 MB)
417
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.3/63.3 MB 104.8 MB/s eta 0:00:00
418
+ Downloading tzdata-2023.3-py2.py3-none-any.whl (341 kB)
419
+ Downloading urllib3-1.26.16-py2.py3-none-any.whl (143 kB)
420
+ Downloading wandb-0.15.5-py3-none-any.whl (2.1 MB)
421
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 265.9 MB/s eta 0:00:00
422
+ Downloading Werkzeug-2.3.6-py3-none-any.whl (242 kB)
423
+ Downloading wheel-0.38.4-py3-none-any.whl (36 kB)
424
+ Downloading future-1.0.0-py3-none-any.whl (491 kB)
425
+ Downloading packaging-24.1-py3-none-any.whl (53 kB)
426
+ Downloading platformdirs-4.2.2-py3-none-any.whl (18 kB)
427
+ Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
428
+ Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
429
+ Downloading traitlets-5.14.3-py3-none-any.whl (85 kB)
430
+ Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
431
+ Building wheels for collected packages: lit, pathtools, psutil, pycocotools, tornado, lzstring
432
+ Building wheel for lit (pyproject.toml): started
433
+ Building wheel for lit (pyproject.toml): finished with status 'done'
434
+ Created wheel for lit: filename=lit-16.0.6-py3-none-any.whl size=93586 sha256=2fc0f4da9619296241c3540c311e37bbc1817c9a3733bf3a6a0fef272f60939a
435
+ Stored in directory: /scratch/yuqian_fu/.cache/pip/wheels/ab/84/e4/5af8c76af9e5bee472e825f1451c18bb3b261d80a7b3ec7f8a
436
+ Building wheel for pathtools (setup.py): started
437
+ Building wheel for pathtools (setup.py): finished with status 'done'
438
+ Created wheel for pathtools: filename=pathtools-0.1.2-py3-none-any.whl size=8791 sha256=c159257a6daf4d9c9a17d19386e0faaa5dc7753be7c0ef36e1434f17b0957fe7
439
+ Stored in directory: /scratch/yuqian_fu/.cache/pip/wheels/ea/b7/8b/84e94095ea418b9442f5abeba4ca7b0ad52d3fe7b69d6238a6
440
+ Building wheel for psutil (setup.py): started
441
+ Building wheel for psutil (setup.py): finished with status 'done'
442
+ Created wheel for psutil: filename=psutil-5.9.0-cp311-cp311-linux_x86_64.whl size=230265 sha256=b88ee6fba7b6d6be83ff34993629c84da6c6611417aa3214429079a872287eed
443
+ Stored in directory: /scratch/yuqian_fu/.cache/pip/wheels/b7/3f/a5/6da60cf045cc7d875f3f6746c27e9afa159642fc5acaa5ae08
444
+ Building wheel for pycocotools (pyproject.toml): started
445
+ Building wheel for pycocotools (pyproject.toml): finished with status 'done'
446
+ Created wheel for pycocotools: filename=pycocotools-2.0.6-cp311-cp311-linux_x86_64.whl size=104816 sha256=72aac5487d6718737633f38298519705c39e716d4efff67132801dcd2dd1159a
447
+ Stored in directory: /scratch/yuqian_fu/.cache/pip/wheels/ad/ca/ea/fb115e04c841c3f71fd369b7d9805a43a5193f4f9251bed0ec
448
+ Building wheel for tornado (setup.py): started
449
+ Building wheel for tornado (setup.py): finished with status 'done'
450
+ Created wheel for tornado: filename=tornado-6.1-cp311-cp311-linux_x86_64.whl size=416969 sha256=3d6b1c8473d83655df9c18572a71fc93230c8907cd00a1a497dcb690e7e4ed6c
451
+ Stored in directory: /scratch/yuqian_fu/.cache/pip/wheels/f2/59/06/a9c85c7b17ec0fc9b1e2ae0c59e3d39255d5c0a38492e33fea
452
+ Building wheel for lzstring (setup.py): started
453
+ Building wheel for lzstring (setup.py): finished with status 'done'
454
+ Created wheel for lzstring: filename=lzstring-1.0.4-py2.py3-none-any.whl size=4568 sha256=6055ffda849cd05b517aeff466d1110f2cc7133b4267a764ba2685fed07b971f
455
+ Stored in directory: /scratch/yuqian_fu/.cache/pip/wheels/a2/68/ae/ab2520f1ce001476a22df0405a1066359d6c4f14aad5f6aae1
456
+ Successfully built lit pathtools psutil pycocotools tornado lzstring
457
+ Installing collected packages: pytz, pathtools, mpmath, lit, cmake, appdirs, wheel, urllib3, tzdata, typing-extensions, traitlets, tqdm, tornado, threadpoolctl, tensorboard-data-server, sympy, smmap, six, setuptools, setproctitle, pyzmq, pyyaml, pyparsing, pyasn1, psutil, protobuf, platformdirs, pip, pillow, packaging, oauthlib, nvidia-nccl-cu11, nvidia-cufft-cu11, nvidia-cuda-nvrtc-cu11, numpy, networkx, natsort, markupsafe, markdown, lazy-loader, kiwisolver, joblib, idna, grpcio, future, fonttools, filelock, debugpy, cycler, click, charset-normalizer, certifi, cachetools, absl-py, werkzeug, tifffile, tensorboardx, sentry-sdk, scipy, rsa, requests, python-dateutil, pyasn1-modules, opencv-python, nvidia-nvtx-cu11, nvidia-cusparse-cu11, nvidia-curand-cu11, nvidia-cuda-runtime-cu11, nvidia-cuda-cupti-cu11, nvidia-cublas-cu11, lzstring, jupyter-core, jinja2, imageio, gitdb, docker-pycreds, decord, contourpy, scikit-learn, scikit-image, requests-oauthlib, pandas, nvidia-cusolver-cu11, nvidia-cudnn-cu11, matplotlib, google-auth, gitpython, wandb, pycocotools, google-auth-oauthlib, tensorboard, triton, torch, torchvision, kornia
458
+ Attempting uninstall: wheel
459
+ Found existing installation: wheel 0.44.0
460
+ Uninstalling wheel-0.44.0:
461
+ Successfully uninstalled wheel-0.44.0
462
+ Attempting uninstall: setuptools
463
+ Found existing installation: setuptools 73.0.1
464
+ Uninstalling setuptools-73.0.1:
465
+ Successfully uninstalled setuptools-73.0.1
466
+ Attempting uninstall: pip
467
+ Found existing installation: pip 24.2
468
+ Uninstalling pip-24.2:
469
+ Successfully uninstalled pip-24.2
470
+ Successfully installed absl-py-1.4.0 appdirs-1.4.4 cachetools-5.3.1 certifi-2023.5.7 charset-normalizer-3.1.0 click-8.1.4 cmake-3.26.4 contourpy-1.1.0 cycler-0.11.0 debugpy-1.5.1 decord-0.6.0 docker-pycreds-0.4.0 filelock-3.12.2 fonttools-4.40.0 future-1.0.0 gitdb-4.0.10 gitpython-3.1.31 google-auth-2.22.0 google-auth-oauthlib-1.0.0 grpcio-1.56.2 idna-3.4 imageio-2.31.5 jinja2-3.1.2 joblib-1.2.0 jupyter-core-5.3.1 kiwisolver-1.4.4 kornia-0.6.12 lazy-loader-0.3 lit-16.0.6 lzstring-1.0.4 markdown-3.4.3 markupsafe-2.1.3 matplotlib-3.7.1 mpmath-1.3.0 natsort-8.4.0 networkx-3.1 numpy-1.25.0 nvidia-cublas-cu11-11.10.3.66 nvidia-cuda-cupti-cu11-11.7.101 nvidia-cuda-nvrtc-cu11-11.7.99 nvidia-cuda-runtime-cu11-11.7.99 nvidia-cudnn-cu11-8.5.0.96 nvidia-cufft-cu11-10.9.0.58 nvidia-curand-cu11-10.2.10.91 nvidia-cusolver-cu11-11.4.0.1 nvidia-cusparse-cu11-11.7.4.91 nvidia-nccl-cu11-2.14.3 nvidia-nvtx-cu11-11.7.91 oauthlib-3.2.2 opencv-python-4.7.0.72 packaging-24.1 pandas-2.0.3 pathtools-0.1.2 pillow-9.5.0 pip-23.1.2 platformdirs-4.2.2 protobuf-4.23.4 psutil-5.9.0 pyasn1-0.5.0 pyasn1-modules-0.3.0 pycocotools-2.0.6 pyparsing-3.1.0 python-dateutil-2.9.0.post0 pytz-2023.3 pyyaml-6.0 pyzmq-25.1.0 requests-2.31.0 requests-oauthlib-1.3.1 rsa-4.9 scikit-image-0.22.0 scikit-learn-1.2.2 scipy-1.11.0 sentry-sdk-1.27.1 setproctitle-1.3.2 setuptools-67.8.0 six-1.16.0 smmap-5.0.0 sympy-1.12 tensorboard-2.13.0 tensorboard-data-server-0.7.1 tensorboardx-2.6.1 threadpoolctl-3.1.0 tifffile-2023.9.26 torch-2.0.1 torchvision-0.15.2 tornado-6.1 tqdm-4.65.0 traitlets-5.14.3 triton-2.0.0 typing-extensions-4.12.2 tzdata-2023.3 urllib3-1.26.16 wandb-0.15.5 werkzeug-2.3.6 wheel-0.38.4
471
+
472
+ [notice] A new release of pip is available: 23.1.2 -> 24.2
473
+ [notice] To update, run: pip install --upgrade pip
474
+ 2024-09-04 01:49:17,020 INFO Namespace(n_epoch=250, lr_schedule=[50], lr=0.0002, out_dir='/data/work-gcp-europe-west4-a/yuqian_fu/Ego/checkpoints/egoexo_v2_480x480', train_dir=['/data/work-gcp-europe-west4-a/yuqian_fu/Ego/data_segswap'], prob_dir=[0.5, 0.5], batch_pos=32, batch_neg=15, feat_pth='../evalBrueghel/Moco_resnet50_feat_1Scale_640p.pkl', warp_mask=False, warmUpIter=1000, resume_pth=None, resume_epoch=0, mode='small', pos_weight=0.1, feat_weight=1, dropout=0.1, activation='relu', prob_style=0.5, layer_type=['I', 'C', 'I', 'C', 'I', 'N'], drop_feat=0.1, tps_grid=[4, 6], eta_corr=8, iter_epoch=1000, iter_epoch_val=100, weight_decay=0, reverse=False)
475
+ 2024-09-04 01:49:17,021 INFO Load MocoV2 pre-trained ResNet-50 feature...
476
+ LOADING: train_egoexo_pairs.json
477
+ LOADING: val_egoexo_pairs.json
478
+
479
  0%| | 0/1000 [00:00<?, ?it/s]
480
  0%| | 0/1000 [00:07<?, ?it/s]
481
+ Traceback (most recent call last):
482
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/train/Main.py", line 195, in <module>
483
+ backbone, netEncoder, optimizer, history = Train.trainEpoch(trainLoader, backbone, netEncoder, optimizer, history,
484
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
485
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/train/Train.py", line 80, in trainEpoch
486
+ O1, O2, O3 = netEncoder(X, Y, FMTX, RS, RT)
487
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
488
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
489
+ return forward_call(*args, **kwargs)
490
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
491
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model/transformer.py", line 342, in forward
492
+ outx, outy, out_cls = self.net(x, y, fmask, x_mask, y_mask)
493
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
494
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
495
+ return forward_call(*args, **kwargs)
496
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
497
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model/transformer.py", line 291, in forward
498
+ featx, featy, x_mask, y_mask = self.encoder_blocks[i](featx, featy, featmask, x_mask, y_mask)
499
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
500
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
501
+ return forward_call(*args, **kwargs)
502
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
503
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model/transformer.py", line 205, in forward
504
+ featx, featy, x_mask, y_mask = self.layer1(featx, featy, featmask, x_mask, y_mask)
505
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
506
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
507
+ return forward_call(*args, **kwargs)
508
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
509
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model/transformer.py", line 105, in forward
510
+ output = self.inner_encoder_layer(output, src_mask=src_mask, src_key_padding_mask=src_key_padding_mask)
511
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
512
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
513
+ return forward_call(*args, **kwargs)
514
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
515
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/nn/modules/transformer.py", line 591, in forward
516
+ x = self.norm1(x + self._sa_block(x, src_mask, src_key_padding_mask, is_causal=is_causal))
517
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
518
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/nn/modules/transformer.py", line 599, in _sa_block
519
+ x = self.self_attn(x, x, x,
520
+ ^^^^^^^^^^^^^^^^^^^^^^^
521
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
522
+ return forward_call(*args, **kwargs)
523
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
524
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/nn/modules/activation.py", line 1205, in forward
525
+ attn_output, attn_output_weights = F.multi_head_attention_forward(
526
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
527
+ File "/scratch/yuqian_fu/micromamba/envs/auto-gfmiyxa3evbd/lib/python3.11/site-packages/torch/nn/functional.py", line 5373, in multi_head_attention_forward
528
+ attn_output = scaled_dot_product_attention(q, k, v, attn_mask, dropout_p, is_causal)
529
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
530
+ torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 792.00 MiB (GPU 0; 21.95 GiB total capacity; 20.03 GiB already allocated; 790.12 MiB free; 20.94 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
531
+ sh: 3: --resume_path: not found
532
+ srun: error: gcpl4-eu-3: task 0: Exited with exit code 127
README.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Ego-Exo4D Relation Benchmark
2
+
3
+ The goal of the Ego-Exo4D relation benchmark is to relate the video content between ego and exo views. Check the [Ego-Exo4D paper](https://arxiv.org/abs/2311.18259) for further information.
4
+
5
+ ## [Correspondence](https://github.com/EGO4D/ego-exo4d-relation/tree/main/correspondence)
6
+ In this task, we aim at establishing object-level correspondences across ego and exo viewpoints.
7
+
8
+ - [Annotations](https://docs.ego-exo4d-data.org/annotations/relations/)
9
+ - [Task description](https://docs.ego-exo4d-data.org/benchmarks/relations/correspondence/)
10
+ - [Baseline Code](correspondence/)
11
+ - [Challenge (Evaluation Server)](https://eval.ai/web/challenges/challenge-page/2288/overview)
12
+
13
+ ## [Translation](https://github.com/EGO4D/ego-exo4d-relation/tree/main/translation)
14
+ ### Coming Soon
correspondence/README.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ego-Exo4D Correspondence Baselines
2
+
3
+ This repo includes implementation of two baselines for the Correspondence task.
4
+
5
+ ### [XSegTx](SegSwap/)
6
+
7
+ A SegSwap based "spatial" (frame-level) baseline.
8
+
9
+ - [Data preparation & Baseline code](SegSwap/)
10
+
11
+ ### [XMem](XMem/)
12
+
13
+ An XMem based "spatio-temporal" (video-level) baseline.
14
+
15
+ - [Data preparation & Baseline code](XMem/)
16
+
17
+ For evaluation code and protocol, check the [evaluation](evaluation/) directory.
correspondence/SegSwap/README.md ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ego-Exo4D Correspondence (xSeg-Tx) Baseline Model
2
+
3
+ Implementation of a correspondence baseline model in [Ego-Exo4D](https://ego-exo4d-data.org/) based on [SegSwap](https://github.com/XiSHEN0220/SegSwap).
4
+
5
+ ## 1. Installation
6
+
7
+ ```
8
+ conda env create -f environment.yaml
9
+ ```
10
+
11
+ ### 1.2. Pre-trained MocoV2-resnet50 + cross-transformer (~300M) from SegSwap
12
+
13
+ Quick download :
14
+
15
+ ``` Bash
16
+ cd model/pretrained
17
+ bash download_model.sh
18
+ ```
19
+
20
+
21
+ ## 2. Data preparation
22
+
23
+ Follow the instructions to first install the [Ego-Exo4D CLI Downloader](https://github.com/facebookresearch/Ego4d/blob/main/ego4d/egoexo/download/README.md).
24
+
25
+ Download the takes and annotations for the correspondence benchmark.
26
+
27
+ ```
28
+ egoexo -o /path/to/data/dir/ --parts annotations
29
+
30
+ egoexo -o /path/to/data/dir/ --parts takes --benchmarks correspondence -y
31
+ ```
32
+
33
+ You may also use this [script](data/download_uids.sh) to download only the takes for version v2 of data used in the paper.
34
+
35
+ Once the data has been downloaded, use the following command to pre-process the data for each train, val and test splits,
36
+ ```
37
+ python data/process_data.py --takepath /path/to/data/dir/takes/ --annotationpath /path/to/data/dir/annotations/relations_{split}.json --split_path data/split.json --split {split} --outputpath /path/to/output/dir/
38
+ ```
39
+
40
+ Since, SegSwap based baseline (XSeg-Tx) is trained on pairs of ego->exo / exo->ego images, use the [create_pairs.py](data/create_pairs.py) script to generate the pairs.
41
+ ```
42
+ python data/create_pairs.py --data_dir /path/to/output/dir/
43
+ ```
44
+
45
+ If not already present, also copy the [split.json](data/split.json) to the data directory.
46
+
47
+ ## 3. Training
48
+
49
+ We provide the scripts to train both ego->exo and exo->ego models,
50
+
51
+ ``` Bash
52
+ cd train
53
+ bash run_ego.sh
54
+ ```
55
+
56
+ ``` Bash
57
+ cd train
58
+ bash run_exo.sh
59
+ ```
60
+
61
+ ## 4. Inference
62
+
63
+ We can then run inference on a specific split as follows,
64
+
65
+ for ego->exo,
66
+ ```
67
+ python eval_segswap.py --ckpt_path /path/to/checkpoint.pth --data_path /path/to/data --splits_path /path/to/data/split.json --split test --out_path /path/to/output/ --setting ego-exo
68
+ ```
69
+
70
+ for exo->ego,
71
+ ```
72
+ python eval_segswap.py --ckpt_path /path/to/checkpoint.pth --data_path /path/to/data --splits_path /path/to/data/split.json --split test --out_path /path/to/output/ --setting exo-ego
73
+ ```
74
+
75
+ the above command with produce a `ego-exo_test_results.json`/`exo-ego_test_results.json` file which can be then be used to run evaluation as described [here](../final_evaluation/).
76
+
77
+ ## 5. Acknowledgement
78
+
79
+ If you use the code base, consider citing
80
+ ```
81
+ @article{grauman2023ego,
82
+ title={Ego-exo4d: Understanding skilled human activity from first-and third-person perspectives},
83
+ author={Grauman, Kristen and Westbury, Andrew and Torresani, Lorenzo and Kitani, Kris and Malik, Jitendra and Afouras, Triantafyllos and Ashutosh, Kumar and Baiyya, Vijay and Bansal, Siddhant and Boote, Bikram and others},
84
+ journal={arXiv preprint arXiv:2311.18259},
85
+ year={2023}
86
+ }
87
+ ```
88
+
89
+ The code in this repo is heavily based on [SegSwap](https://github.com/XiSHEN0220/SegSwap).
correspondence/SegSwap/data/correspondence_takes.txt ADDED
@@ -0,0 +1,1334 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 7d6fa5c7-a206-4b36-889b-44bed72b0cc8
2
+ f9dbdf83-0135-4fdd-973a-f207c79b3453
3
+ 2941605e-7cfb-441f-92b7-b4ee187edeb6
4
+ 1f56f60f-9b36-493f-902f-a3bba0fb1b84
5
+ f1c3d2f5-e6bf-4899-a40d-12489d1ebb11
6
+ b054a313-c2e5-495f-add2-d3c265a030e8
7
+ 9a6dd2f3-8c46-44da-b424-cb3442be0f00
8
+ 9759968e-f72c-43b4-950e-3f715fdcd4ee
9
+ 095f8e44-e72c-41b1-b8b7-e967bb389f82
10
+ dd0539a4-6c12-4ae9-987b-d41351d874a9
11
+ 66fbbbae-c740-40d1-ab71-1f882453f2c5
12
+ 819523fa-f601-4ed3-aa1f-b1df5f0482bf
13
+ ce914bec-f8c1-46ef-ae28-f1ff030801d1
14
+ 45dd51ae-9049-4cf0-9366-8d0094791f0b
15
+ 2d146c0f-88df-483d-8a26-efb052b9a8ac
16
+ bafe400a-8433-4f69-8989-fabd82276b15
17
+ 8bb19b57-b9bf-4287-beaf-6a6d625712b6
18
+ 27eb4f84-28e8-46f7-9263-ff15fa9b894f
19
+ ded8219c-999b-4fb3-9d62-448d0e4ed0e0
20
+ 1c9a978e-3921-44e5-8eab-f9e5401822cf
21
+ f2f93854-2634-449c-b68e-aebf4743ac9f
22
+ 99820fc1-ce50-41ea-bc8d-37b563f9743b
23
+ f85ff6cc-b530-49fe-89e4-ae8533a4d47e
24
+ 1f34bb6a-70ba-4e7c-ae19-b5086fc1176a
25
+ 15a055d2-a5e1-4ba9-9e2b-5a6282fc7f32
26
+ 57dee964-b77f-430b-8f37-fa4e5ba5c6a3
27
+ 0eac0520-a5d8-4a45-bf08-112f5f472850
28
+ abcd9473-0885-43cc-9e4e-f632f36871d2
29
+ d8967e18-31e6-49ec-b00b-00250320ee18
30
+ 27cf1b12-9114-46b5-b1fb-66fcef4294f6
31
+ 9c0fe0eb-064b-4393-bd60-55be9d0de7b0
32
+ 8a0ea233-beeb-42cf-84b8-d25bda4ad967
33
+ 975b64c9-60e8-426e-9d55-2323a2505b12
34
+ eccc2a61-a64b-4a53-af79-e432406d9062
35
+ fa984bda-fd07-4de9-9720-f4f0af8c5f96
36
+ 4af687ac-9602-48b9-acaf-c0085bc2fe53
37
+ 1e0d9cb9-849f-4ca7-beeb-b13a5d4c6668
38
+ 424d48e3-b2cc-4558-b9e8-f954f3a61f7a
39
+ 72fa7531-64a3-45fe-8e50-80906ffeb40a
40
+ c79a0feb-6eb8-4eef-82c0-08f0d672cc79
41
+ f69df63c-9cd3-442f-bc9b-5ba64b988da4
42
+ 4641c429-4150-415c-a824-bf42a22d1dbf
43
+ 7d59164c-e0bc-4ae0-95c9-733e4c8b0d6a
44
+ cace80a1-42df-4cf4-a1ec-80647638a443
45
+ 1e15d070-a035-41a4-b37a-d82da76cd915
46
+ 2fbd4068-86e0-4893-b9c6-10c88fa8275c
47
+ fa0e1a71-2174-43ef-a694-a4af360573a4
48
+ a127cf90-51bf-46af-b0ee-ec932ed0b110
49
+ a1471bf1-1727-49e9-9fd6-58a35da6e367
50
+ c11735ca-6d22-4d16-972b-f55f8271f373
51
+ 3f6a08d0-b2fe-4625-9cb1-531622f76128
52
+ 6023b80a-a1af-405b-ae86-6613452a1512
53
+ 8ee798db-d02b-46ab-86f9-2091da1fb85e
54
+ c922cd8a-192b-4b1c-b574-7a6bc1b89383
55
+ 0b05324a-47a2-456a-9f7a-1c36519d86e0
56
+ d430ec80-4f9e-4ee8-82ba-b66f4a794289
57
+ 03bfe7f8-23b1-440a-bab5-45eed703d08d
58
+ 8fa671be-2624-4783-8572-5f4b7722b6c0
59
+ 2336980a-6599-4f18-8a4c-6f2aa92ed536
60
+ cc0a8c8c-f9c6-4173-ad44-f04e7b8f2f46
61
+ a91ef958-df79-4905-8469-37c552c11441
62
+ 98f58f0f-53d6-4e41-bf41-d8d74ccbc37c
63
+ ca5b4327-9454-49db-b37b-7bf8b13784dd
64
+ 42214e49-7e6b-4164-9fd1-315e3ac8fe40
65
+ de9efe94-a548-4e07-8a37-7a60abb40dac
66
+ 09ca3310-232c-4f3f-b201-3632ea8c6b75
67
+ ca1434ea-b787-44ad-a9da-e0f7d5167a35
68
+ 3566c03b-5c4d-4fb8-b73c-0117a95cafb5
69
+ 127941e8-52d5-494f-901b-af3521a67ae3
70
+ 93a6cc04-f932-4555-93de-bf55a089ac80
71
+ 49127749-c922-40a0-8eb8-a689a11a68cf
72
+ 3690fee2-48d4-48f5-9985-9bf771ac3975
73
+ 629a4ed5-9d3f-4a61-b699-99e77a03b449
74
+ 648ae12c-91f5-4a72-b6a3-d233b83ef654
75
+ 0872b2cd-933d-4a0d-8561-9b3d60361203
76
+ a993f2d4-bed8-47aa-8ce2-7a08b9785b24
77
+ 8ee393cb-d4b3-47ae-a3d0-0e9f8bb912d1
78
+ 8634c58a-95ee-4aed-aa80-9392073815cf
79
+ bbc13004-11f9-4a73-ab06-3fa3836d518f
80
+ a2fc6bb5-ad56-460e-a8ae-64db8080d5ae
81
+ 1ec1409c-a3fd-46ab-8698-99f9317e9f13
82
+ 505d3491-c597-4622-96cf-123a30dfb2db
83
+ cfd2c825-45d1-4e59-b33f-b6dff8c174c8
84
+ a261cc1d-7a45-479f-81a9-7c73eb379e6c
85
+ b63da48d-f6a2-4b94-a9af-3e694ca549f2
86
+ de438b6d-8692-44ea-a6a3-0fbcc459a525
87
+ 126eb2a4-4d4f-4d35-b390-7d9550b54c60
88
+ 1c73aa9f-c23a-479f-9980-3cba6792f27c
89
+ a4b63d2e-e149-4256-b951-eb9947420030
90
+ d03179da-1fd6-40f1-9ed2-8c2681ca2a0c
91
+ 853d087c-f00d-4659-8d63-f5052fb465a6
92
+ 44e3a281-953f-439b-aa58-01a5a362a31f
93
+ b4298585-d4af-48ef-b59b-8e878f66bff3
94
+ 39d48b6a-66e8-4bbb-a596-4461b601cabc
95
+ 6ba1dc31-7a08-4e92-aaad-5954bce6a7da
96
+ 8ad67099-9fd2-40aa-868c-3c458d238dbb
97
+ b09efa75-5692-4490-bdf1-b3b2c0fed141
98
+ c9230a3e-6f26-4f2f-bbfa-9daedb658568
99
+ 9a7c75f7-c02a-441e-ad6d-e9d413bb5861
100
+ 29f2335b-f53d-4329-ad26-25f2ae7d4e6e
101
+ 794b3bd3-eac9-4d0d-9789-bd068bff3944
102
+ 87531064-1b80-40c5-896c-344cb3200d5a
103
+ 38246505-8781-46e8-bbe6-838a3d7df20c
104
+ 45199fd8-dfda-446d-b1c3-f5e4deadc441
105
+ 16b05645-80cd-45e6-ad95-c9a9cc035d6d
106
+ f4dead01-fa3d-4aa5-8b59-13a0d9186dd2
107
+ 86771809-b5aa-49dd-8c94-16d145f4819e
108
+ 717a56dc-5151-4ad9-88fd-8ac4aa3589a9
109
+ a8d04142-fc0b-4ad4-acaa-8c17424411ff
110
+ 519a22f6-92df-4b85-b0cf-3c19bb311a1a
111
+ b9519252-bc68-4d3f-9781-81426234e671
112
+ 74a85d9d-234c-40f8-b15d-03f222a4db19
113
+ ab52c59f-e6ee-4f3f-92ac-5a6db630f8fd
114
+ 478b347f-98de-4953-bf9f-56b2ec386f81
115
+ 114984e0-4de8-4db7-afc8-0c66926f65f4
116
+ 4cf43506-d0a6-4c42-9136-adb2ecd57411
117
+ d47c1c99-2df4-4ea4-8259-4952960d5129
118
+ aef3aa96-9883-4119-9ae8-c8b921a98918
119
+ 2e10a473-32d3-4b73-99f9-d35717ccab91
120
+ 89815623-8ece-4e3c-8879-f1f32b299527
121
+ b199d52d-4fc7-4ac3-b9c4-b5c84014dc1b
122
+ e6bbb6dc-94c1-4e80-9e46-2b25f40e0c1c
123
+ 2a160c63-2acd-463a-8431-3dbf77d6de8e
124
+ 410ccf87-4217-4d87-836b-4af20b355d87
125
+ b9bad7dc-c6f5-4488-b9d0-b787625b674f
126
+ 5df0a1b2-0240-4ddb-a6a8-2c48c80d7427
127
+ 4c08e855-f8ad-4c27-8ae7-116eb13f1309
128
+ 23ad5c7b-7413-4614-846a-976c120d8bcd
129
+ b68f9254-913a-4aee-9ae8-29d1121dd892
130
+ 5fd383f1-c8bb-42d7-b98b-7418d99d9bb4
131
+ 407f60e4-68b2-42df-84a9-3160398aaf10
132
+ 46018fc1-21a0-4c62-b009-ad420b731686
133
+ b1b794e8-7839-46ab-b05f-f4b1c16d5420
134
+ 525cad2c-6c31-4a4a-aca2-a46279e51bc4
135
+ a5b0f86c-5449-4c10-8366-e9d74662faf3
136
+ 58004f8a-fd60-4db6-8145-5125a4cd346f
137
+ 896b4340-c573-4454-a26f-b0a7159da732
138
+ 0583b07f-6e72-456c-8934-397927455be9
139
+ fce7bb0b-b284-4a7d-869a-3c9cae440679
140
+ cc27074c-f97d-486d-9d70-20c8a0df2f8a
141
+ d9e1f18e-63a8-4923-8b91-8d992cf76776
142
+ 515ec288-a236-4a94-9b3d-449667088c82
143
+ a4988227-0d23-4ee5-b106-981690dcfad3
144
+ da227d63-a07c-471e-9130-07a8a492d654
145
+ ca6bb6c4-1bf4-4253-926c-803881a165be
146
+ 3c56b1ee-b11f-4aeb-a6ab-359fc1bbea3b
147
+ f6c800a6-e14c-472f-ba06-e4bf0f187e5e
148
+ 01c31ac7-3885-46ff-9af5-9e1d0910dce5
149
+ 823affad-e570-4091-a85f-da7aed524500
150
+ 20557049-ca20-4539-9e34-76031fce30e8
151
+ 54d00238-c1e4-4b2b-8870-2cbd442cd81f
152
+ d9ce9305-d24f-4127-9d6d-e4d89e43f44b
153
+ 4fc454d5-6acb-4197-8014-a5216ee7ba80
154
+ b7dbb47c-d850-4853-b434-7b20519ea9e5
155
+ 636eaa0b-d65d-4b25-bbdd-1065f84ef89e
156
+ 13786d88-76d1-4ecb-b74b-4600727c9ada
157
+ 4bb9382b-ca84-4635-9626-f4aa949747f5
158
+ 82e854f5-b603-409b-821d-3e4f19b030b0
159
+ b4b83178-90f5-4ca8-9862-224d5044b0c4
160
+ f702f8fd-a664-40f9-b71e-5fd647fa226e
161
+ a69a5919-7b9d-4724-9b26-46dea6fa0c87
162
+ b418cefc-12f5-4800-b9f0-a90541c4bea0
163
+ f01b21c4-8023-4800-b3b2-3326a3c164f2
164
+ c112d4da-5120-47d7-9b05-a4ef68baa226
165
+ 554bdf0b-2239-4c83-ae2c-38907ca0bfc3
166
+ bd409a14-0392-447c-87ce-e7d44d0cf3c8
167
+ d2b0ee95-2a76-4b69-aebf-3c7e553f8e2b
168
+ 6dd93969-2dff-4546-bac6-a435698eb14a
169
+ d07f8138-ccbc-4c09-b9b7-05918088bfed
170
+ 30e473a6-4746-4fc6-8b2a-37f179eaae53
171
+ dcc39981-04fc-4dfc-9bc4-53699496af39
172
+ 9275d1b4-7238-43fd-ad7d-1d1ee60de569
173
+ 7130970c-73d9-413d-964e-167696280422
174
+ 04a3ba43-44b0-4fd8-8a23-82d235085599
175
+ 9da3d7c3-42aa-447a-9080-98c703d49c25
176
+ 734c53c6-a781-41b4-ac79-22a196353fde
177
+ f6cd28c0-570f-4048-a684-bb4f0b055adb
178
+ e24f2e2d-bc8f-4039-b617-b48bc45659bb
179
+ b8b06b02-51fd-4a0f-9d64-9257be8c7df2
180
+ a58f7f81-1ca2-4f98-bae4-2afce688c685
181
+ fe9c727d-dac3-4efe-9906-b268991547cf
182
+ ee2c4d41-d7f7-4b85-9f4f-cc1da654cd40
183
+ d1888843-9fb6-4a0b-a732-978d03786ae6
184
+ e8cf53f3-a9e3-45b6-a313-10765ae183e2
185
+ d6ab4bdc-52c8-4398-ac3a-aff30f66260c
186
+ 2cc1db50-e1ca-4bc5-9066-4adc98b27df4
187
+ 3d41b047-b3c7-43b0-8663-daddc3e7d32c
188
+ 145bc22e-b966-4778-a082-8ec5f94e3626
189
+ 37365e38-41ce-423a-b9d8-05d946535768
190
+ 3eaf67f2-6d43-4b99-99a9-d591796fc73b
191
+ 103fc8a3-0e82-43a3-adf8-96bc8b3ac4ef
192
+ d2a578c6-c2e8-4a03-a809-ecb29e0c8859
193
+ 4862eb13-2289-4745-a908-e6aa7f6ab829
194
+ aa445893-9c9f-402a-a646-a8dacc34ebc1
195
+ 4a3c1bbe-b22a-41b0-b02b-23c1de785ea4
196
+ cea1b20b-6e18-4bb6-87e0-164a2b8c3dc0
197
+ 5dc6b68f-c360-4519-8b45-1d9ba21dbeed
198
+ 062ed386-05a4-4ff5-a8ff-2235045349d7
199
+ 1789c39f-b302-48b4-9fa5-8716cfbfd43f
200
+ cef2f19f-ec48-410c-8205-4572cc8706d9
201
+ c69ac66e-fe72-4923-bccf-5674bded8f89
202
+ 783ea71f-5f82-41da-986f-b69025680e27
203
+ 9105418d-9a1b-445b-a77e-108d22530a8c
204
+ fba2c124-99ec-40ed-8d6a-46808afe6d98
205
+ 7b138731-a8f3-4938-be1b-22599df07d39
206
+ 8dbcefd0-a7af-44f2-ab5b-49b5c11b0e56
207
+ b5793959-4dbe-4d2c-b036-47e4be38743a
208
+ 2de0896b-df6d-4687-bbff-f700d675e385
209
+ 9ae1d6ae-8175-43ed-b5b0-afacabeddbd1
210
+ e929ea2f-f2a6-4823-a201-5810f976c963
211
+ 8f3668cf-d6c8-4e50-bcaf-f5d994ee62cf
212
+ 46deacb7-2d19-4b18-b440-170f9ea7f28a
213
+ 99969e76-0172-4a07-b890-73848b97e0fe
214
+ cac56c11-1de1-476f-a05d-f43c0cf99893
215
+ c65220c8-1e12-4f2f-a87e-4d217eacca9c
216
+ 4be6b7e6-b07b-405a-b384-ccf8dc9391f2
217
+ 952ca52f-91d7-40a8-b254-affcc831112a
218
+ 1c504968-4f68-48dc-bee3-159fa197af65
219
+ 18e1e279-78e1-4c10-97a7-42dace59267b
220
+ a548b784-dfd2-458f-8131-b36020906d32
221
+ 3467af8b-50c5-486e-8ff8-6a1401849bb9
222
+ 7b078956-9843-49dd-be3c-39591bde70fe
223
+ dd77aa6d-cbf6-4883-9bc5-bd6d7e0dcf91
224
+ 6a3376a7-949e-4385-b16e-076dfb8c3f5a
225
+ 0d7dc221-d9dd-401a-acb8-b6e76e458300
226
+ 549e5b97-f93a-4500-8f02-5be13017dce5
227
+ 91317e63-1393-4776-a201-d5158cb2d9bd
228
+ db0dab21-696f-42ac-befa-0a7af0dfa4b2
229
+ 0efd9fc1-0f49-403d-9252-93f119a3ea3c
230
+ 5f8792b1-0ab2-4484-a591-962fa3c93881
231
+ 3b345db3-d57e-4b6e-a4da-13bea50631e0
232
+ 699dde3f-cd23-4674-939e-42438faeb0da
233
+ 6cbfa460-72a7-4038-b6af-4305a1cc05dd
234
+ f2ed808f-dd7b-4be9-ab72-dc6c9e0853e5
235
+ edfd7e49-1765-43e5-ac74-00e1d36b54ad
236
+ c97bfa47-1ca4-40f6-a463-b4f25c8b127d
237
+ c7c5fe65-f694-4ff1-b51d-ee8059143f51
238
+ f982aad4-3315-4c23-80fa-eb91fc5cb686
239
+ bf1126a4-6276-4cc8-bec1-4879a2562ce5
240
+ ce9bec98-3ec5-4189-8f9d-03e3ff3cddda
241
+ 7ab371e9-704d-42d0-a130-217260e169ec
242
+ 99c10780-e9a9-431a-af53-fda0b4fae201
243
+ 22f0fe6e-c298-4478-a15a-1541ba2434b4
244
+ e3e33fdf-d781-4bac-9d7b-4545975d48fa
245
+ 769c8fe5-3f64-4b55-894b-8e6b7e8aa683
246
+ cdb39869-48e6-43fc-b036-a4c22d14cdb2
247
+ efacaa24-2dd2-45f2-a316-414f2e2cddc6
248
+ a5e81f20-ea35-4f63-a908-11d89fc1294c
249
+ 6e252fac-4cec-4abe-bc4c-72b56b44fbcb
250
+ f206f522-f635-49c6-8dc4-563199704bb8
251
+ bb09460a-19d5-4dcb-867f-3d670d06bcfa
252
+ 4794b8f9-75b7-4eec-81b4-da8c5177ecb7
253
+ 783505c4-4ca5-4bee-a572-9e214115e035
254
+ be266e24-9627-4b79-84cb-1606b5743f0b
255
+ c7f81b64-f398-4b75-ad96-de62f2a31ec6
256
+ 3cf6545b-6476-41f4-a526-6d1da55588e3
257
+ 75f558ea-bd55-4882-9142-edbeab8d94bb
258
+ cf7eede9-1550-44fd-a1b7-b25a02ba1d9a
259
+ 319a9983-f70c-4224-a3a7-33338c8a9f35
260
+ b4544164-6ead-4efa-a629-7fdf472f91f4
261
+ aa461c0c-d577-4667-b3df-157207b11063
262
+ 05db9b5f-6904-43d2-99f8-62e6d3353afb
263
+ 2f61dd27-2ad2-4029-b36d-19a02ae8feec
264
+ 5f4f823c-082e-487d-acac-1e6ef80a9857
265
+ 87adac1b-2895-4cc0-9ebd-218bc9d1e8ff
266
+ ef3879f9-2159-41d8-bef2-e7b746e6673a
267
+ 42e4f58c-bdc8-4294-966a-240a6367428a
268
+ 281b1c72-71be-4745-9a21-3a24a02e3c6f
269
+ cb4dce4d-001f-4c5c-adcb-fd882ec09517
270
+ f54df2fb-065d-4c1c-874d-ae06e7837c8f
271
+ e5beffc8-2cc5-4cc5-9e0e-b22b843aaa4c
272
+ 38bb5f61-707d-4cf3-b1d1-a8260b7dfadc
273
+ 1b8601c0-ca65-4b4a-9ed4-0248d9539257
274
+ 5c322676-611b-424f-b00b-e825807dd1fc
275
+ bcfb6839-3c09-4d42-9d9c-59042f6ab721
276
+ cbc1a7bf-ba96-41d2-a6ec-42f9db7852f0
277
+ 831704c0-37fc-47aa-9ac0-3681ee652690
278
+ d44116b4-c888-4be4-b5dc-b5bd628cea95
279
+ 66a58e88-a8a3-49c8-94db-949274cb5be0
280
+ 6790fe08-7a63-4925-a60f-dd78bf9944ff
281
+ 50bf0d2d-3bf3-4369-b72a-935561926195
282
+ a0748518-35d6-459a-a7b6-5dbe88147d7b
283
+ 5d98d741-a4b9-42ac-8ffe-0960260a9f57
284
+ 71892035-0e6d-49a0-ae65-c30a76b0af79
285
+ 3ca2798d-cfe3-46c6-a8bc-cc4689bd6d75
286
+ eaa6d996-c634-4488-9f7b-fe5487202f63
287
+ 097e886c-442e-4426-a19b-798d09e8e0f2
288
+ 4099f58d-1cc7-4368-990d-dcff3f5aa220
289
+ aa40670e-4487-4f60-a27b-26f7372ef8e7
290
+ 961375e7-69e7-4bac-b61c-9dfd6a80c197
291
+ 9de1e91d-4331-43ac-813a-318b02732d7f
292
+ bde0f2f1-a83e-4c29-b182-502ce6d94e21
293
+ b07855a6-9582-44d2-be98-47daadda043a
294
+ 4ad70302-a794-40ae-ba8f-248296fb2809
295
+ 389cfa3f-3a4c-4b8f-9535-d7c95ffd594c
296
+ 658a6c36-f169-4d0c-9811-cbbc76393e07
297
+ cb327cb5-3ad5-4f47-9cfa-29b4e7cc2836
298
+ 214bdc0d-fa50-4a84-b771-c0a7bdeafadc
299
+ f1f1c625-48c9-4e7f-b3b8-f384f5cf2442
300
+ c2374b84-5d13-4bcb-a320-b375851245e4
301
+ e6f04a5d-0da7-42c9-8b27-4e240319047e
302
+ 08504348-4f72-477e-a08f-1050204ae55e
303
+ 708eb73a-1e98-419f-823c-2e6e96e8d81b
304
+ 76311964-abcc-4d73-b84b-241e9c782850
305
+ d35a162e-c38e-4017-94d1-539f26651115
306
+ e102ad52-d3a9-405b-a5a2-9a77a1a9922d
307
+ e846fd07-a298-4313-a591-04292b5c5097
308
+ 23d1dc00-55f7-454e-b388-264ee6240527
309
+ ffe64b82-6751-400a-9d64-5f4952017234
310
+ 1bd5a43c-9476-4491-b82e-6b02aeee2231
311
+ 20bc64ed-0612-4f59-9822-7ef409c7fdd4
312
+ 8dec5000-77af-4a40-b180-858057fff7e8
313
+ 4d6e4368-543b-4b69-a261-e8c01401ee8c
314
+ cc93caa4-3f2e-48fb-95d6-fdfc0e45db01
315
+ 21141700-c64c-4fd7-9b36-c69e30fea1ad
316
+ 989ffb65-7466-49fd-94cb-6d3d4d528a8b
317
+ ea17b93e-a687-4aae-8514-657f4bcae20d
318
+ 925ebe22-f97a-4e79-aed3-9873cf461c3c
319
+ c0b7d130-2004-4450-ad94-ea3167bd9fab
320
+ 8c917b9b-6eb4-46e0-864a-364656907738
321
+ b2db39d4-cc06-4821-8545-e22c3ab67eab
322
+ 024a7ee5-df4d-4dd0-a890-b13adc8ed431
323
+ 6e0bfa70-e88e-487d-9698-d16afbdb3e56
324
+ 96de3c01-236e-4fd5-b81a-76e9c5456a15
325
+ 090c8638-3464-45f9-a76a-a45432c2faa7
326
+ afcff62a-3615-4afd-a08b-7bb6ade86a2e
327
+ 7ec750d7-fc17-41dc-b627-be30b2682c7a
328
+ 2c17b3a3-aecf-4a18-82f4-4094b7ac166c
329
+ 661178ca-8174-4469-bf18-ca8d40c4d7b9
330
+ 79450571-16f3-463b-a0b5-a5ede1d3966b
331
+ 55c665d1-8310-40b2-92d3-0e6b7a47ce22
332
+ c8a70210-89d2-4b7e-bea7-5a79712fe631
333
+ 3540ae4e-89f8-4f61-8606-3492031c35fe
334
+ 3b6e9197-fbe8-48cf-891f-16ca9ebbc6aa
335
+ f1ce9be1-b623-4ce4-84e2-37e9f88eea86
336
+ e9bceaa5-6e5a-4dd6-b206-079fdfce0d74
337
+ 988baaa6-a361-4b33-8fa5-1eecf2ebaa22
338
+ b1494499-048c-4be5-9595-7d664956a02d
339
+ b8fa25b5-6185-474f-a092-e14d494901ad
340
+ dc8cdafd-9424-49b5-a78c-a88ae6d2cd54
341
+ aef08b40-a12b-42e8-b69a-9ba14c270b7c
342
+ dcca4382-3494-4bb2-b79a-0e514513895e
343
+ 01d7a29d-f1a2-44d6-8871-178f26233d32
344
+ 0f9842a7-512f-4c04-9254-b810129f52b3
345
+ ea0b620a-6077-4e53-911b-34aa55ca6eeb
346
+ c09185f6-a5d6-43ce-950f-be3cd7ba7d2f
347
+ a9c72abf-f710-4854-8d9a-9ef98950eb24
348
+ 1f22e560-2372-43b2-83c4-e452c3287fc1
349
+ 68e393fc-d1e9-411c-898b-6d2f2f495249
350
+ 7c0a813b-dce3-4ba0-92cc-a8e0a6f87581
351
+ c9506871-9f9c-4e84-90f6-be2df27e9c14
352
+ 173f3262-9a30-4c0b-95ce-c9ab11b4068d
353
+ 38422f88-2862-4202-8d4c-9fe0ef1e021f
354
+ 8c6578a1-4f98-4bdb-861e-64b321b32c9f
355
+ ed83020f-c9cd-4d9d-8420-c69c74b1643e
356
+ fb5c9f40-538f-4301-856a-ff89eab592e4
357
+ 39feb026-bcf8-4a61-89ad-9f5566c2c7bf
358
+ 44896f15-3bb6-4358-a042-2c59140dc7a6
359
+ e68d09a0-fe18-483c-8a7d-24b32f9baa9e
360
+ f7d3a129-4548-41d6-b675-0e85c4d4e324
361
+ 0254b6c0-4d78-471e-b3cf-07bb1e133f96
362
+ c4dbfed6-f922-4213-a574-da37c7afd61c
363
+ 52b94833-ab64-4cfd-86fd-77ece1ece3ea
364
+ 448f59b5-2f28-4013-a96a-6f3fa5bb2252
365
+ 63156ba0-fabc-49e2-bb93-a8a0c5028ad0
366
+ 0bc47e29-e086-4726-b874-f89671366f06
367
+ b0b09c9e-014c-4674-a86c-1b2af2175573
368
+ 83167883-277a-4720-accb-4aeb0253e60e
369
+ 52ca795f-e4d5-4b02-a9e9-8a3d964154f4
370
+ 919b7ecf-b37e-4dd2-9fac-4f04b80fbeb8
371
+ 327a76ce-f777-4ea8-b5c1-1108ca87c14f
372
+ 5e4d0439-eaea-463b-963b-e6ae2459f874
373
+ b0e040f9-a84d-47cb-b6aa-64a85607b698
374
+ 9bd3f0f1-531c-47e1-be1c-2b4eae001bd5
375
+ 7c308b3c-8637-4e8c-b7a6-daf487c26f2d
376
+ 7aa2e880-6e88-4ed4-809a-48535714252f
377
+ 462c11bc-8dd2-440f-acbe-95ca177187c2
378
+ 72cfc694-5d6f-42cc-918a-eb1ec0086896
379
+ c288cb15-81c7-4463-814f-959c12740499
380
+ 976e486c-0292-4ee1-bed4-05a3e5b0d6cd
381
+ 7f57b437-75b9-4cff-a260-28dba2ffaacd
382
+ 71fbd6f0-2df6-4823-9d73-b3fdd3e824e8
383
+ f70d0d3c-3591-4328-bc27-776da2dd55fd
384
+ a50dba7f-0df5-48b9-bbd7-071ffef04953
385
+ 62d59872-7198-4df5-a1e8-56b1136f6952
386
+ a9902d89-3aab-4bce-aa07-720cf12523f6
387
+ 18e2cf60-65f4-4715-91e0-3917deb5daa8
388
+ 3ac49447-8437-4e1a-b772-06f4c79afe96
389
+ e14d5116-b488-4a4f-acb9-d8cb6c1b5853
390
+ eba56e4f-7ec8-4d47-9380-e69928323e94
391
+ 4c3ee253-c4a5-4d56-b990-600b132e0b43
392
+ 95f2d2b4-c5de-4620-9d6a-3dd6e1cb7264
393
+ 664e91a2-642d-47c2-9e89-44090af6af92
394
+ 5f153be3-ed11-470c-b032-e779d7a88180
395
+ f72deca0-a765-46d3-abcd-9e4a0f7575d9
396
+ e7ea8821-753a-4723-9ac3-a5aeb7b1f373
397
+ b69de073-c157-4cff-8eba-97bfc7baa012
398
+ 289c4873-5bf9-41b9-b784-aba52b54cd4d
399
+ f7011ab9-4260-4fd3-a218-36263fabb1f0
400
+ dcce3d79-a8b7-4a0d-8614-94dee726663f
401
+ 804258d5-2fb7-4816-a09f-2becaed7e9a5
402
+ 0bcb8b46-cc45-4bcb-a627-85633e54e060
403
+ b6cb97cf-d85c-4e1e-916c-869c39f7d52b
404
+ d7b30d31-1614-4089-a26a-7e9557265ab4
405
+ 5ab8958c-7f0f-4580-8de4-edd20a839c49
406
+ 48c5e2ce-5249-402e-b198-35240beefb88
407
+ 819780c3-97c0-4ac6-b37f-8c66abf8167d
408
+ 375f6d12-23dd-4ad1-b02a-9fd9f7a8c991
409
+ ff29aa81-555c-4eb2-a79f-10e27e7f09c7
410
+ 7fb68600-a998-46ae-b2b0-72fd1978b8fd
411
+ 656e26d7-ef8f-4f98-b7bf-1058e0c287bf
412
+ 63ab82bb-2d28-440f-814c-1fc0d06b89d0
413
+ e1475f87-0c9d-4884-b932-140c2a0de3c3
414
+ 0e4c18eb-22d9-4c41-a4b1-e02e574be20d
415
+ 43b6b938-dc04-4e86-9165-e4f011aa7344
416
+ b918c9ce-f1ad-4fb2-9569-3726685517ee
417
+ 87a63705-c609-49cd-9605-0117ad0b0526
418
+ 90e697a5-2cff-4ecc-a580-f4c230a5488c
419
+ c9322347-29d7-4ab8-ae9f-5f0acdc095c9
420
+ 712a77c1-6a02-4bfd-bbdb-06fa8b1e8b1e
421
+ 1964ed60-addc-4452-89fc-d1a696540345
422
+ 6a90f588-8a69-4d1c-b071-85527fc98042
423
+ 7d33f6b7-46c0-4087-97e5-100c369ffe45
424
+ 55a996a2-cdf3-4976-b475-a7c4c6a008a8
425
+ 83d9f439-642d-47b8-bc95-1a9442a0f4f6
426
+ 9512a137-40b6-49c6-a03d-a3340b9dd277
427
+ 5ad8e62d-726c-430a-9849-6f5d3ba3704c
428
+ 642c0099-f952-4be6-83b8-cb8bfd94f7bb
429
+ 96816348-c93b-4b46-b4e9-2f53d96f9f88
430
+ 726a93e4-ec22-4373-8cac-c333e459abd5
431
+ d6706cac-3a65-411f-b9e2-cf7245305fbe
432
+ 02417aaf-e818-4ec9-8731-abddcd9ac466
433
+ bf74fe65-12af-4d4e-a7a6-7885c854ae49
434
+ d1eb9ed3-c414-4e5e-aa70-37e73dde1802
435
+ 77cd56fc-6b68-4c7f-814b-81545484dd2d
436
+ ff22eeaa-b5e4-48f7-8a48-50bb368ec289
437
+ 7014a547-6f84-48cb-bc91-28012c4cce06
438
+ 73251f3a-238e-4dd8-8297-6fe9893239e0
439
+ a3fc32b8-24d8-4d77-bc3c-8dbd70284a5c
440
+ fd053d4b-ae66-4b8d-880a-bdf1cebc7257
441
+ 51fc36b3-e769-4617-b087-3826b280cad3
442
+ 393e9b60-504c-4cc7-a90b-eb78dd62d5ff
443
+ e43a918c-4518-4c49-b57a-ca9b259a85eb
444
+ 55b40961-8713-45e2-8c5e-30857a723c4a
445
+ 4da9f6d7-08e8-4c2a-9224-0f2cece08780
446
+ a3214a2b-be14-44fe-b4b4-791beb788b77
447
+ 9ed23abc-0a73-4f1a-b1be-3d94cf71b8d8
448
+ 528408d0-3098-4ab8-840c-7ee95869880b
449
+ 5d4abe32-590d-470d-8fd1-4585833afaad
450
+ 072f6ab6-a3c2-4e86-84ef-0b32d60d5555
451
+ 581de43e-f659-498b-a8e5-25647be63f41
452
+ a875caeb-6b2d-4499-9d7e-74252b8f877c
453
+ 70fb86ec-39ef-418f-8f9e-c95e6aab3255
454
+ fb09baec-1a5a-40b4-8d72-e581c93fbd77
455
+ 9d436b0e-2839-4519-a41d-189e1b1a4816
456
+ 8a81ba3d-61f4-4b6b-a0a3-e1463a226985
457
+ 4a628bb6-49fa-4cfa-ae74-2b3beac2b095
458
+ 54da69f2-4e4d-4b65-820c-46fdcb38d097
459
+ 3042b472-99cc-4407-a79e-f76916b95737
460
+ adb82b37-8e0c-423a-9016-4a17ae673b75
461
+ 0b771d9f-7bab-4023-ac08-e56c06505946
462
+ 2558806a-cf6c-42dd-8323-ab80e7b7dc75
463
+ 4939903a-2c73-4633-ae15-618be39990e7
464
+ 644022d7-8e50-4bb2-bab8-f7ffbfdc7d17
465
+ 971bf500-87fe-41a1-8ede-5b2eb1e87711
466
+ cda6c810-63a5-455e-b92c-f288e26c72e1
467
+ 705d49e6-20f4-4c32-ae7d-dfa50abfe7fc
468
+ ced0e340-b958-4505-badc-c8c2f256c145
469
+ 9bc33576-bcb6-42a5-b040-3220456f268f
470
+ 44b51e21-176a-4f20-a61c-1117696ca084
471
+ ccec2129-83b1-47cc-b179-fc165ac12f25
472
+ e53ae33b-61b6-4c3e-8be0-5696f961704b
473
+ dd23d126-e63d-4df0-ba1e-2c0c137d5bb2
474
+ 4d250ada-e17a-4385-a08c-88b645cfe872
475
+ 60475f06-2613-4496-939a-5381e7807349
476
+ 2429d435-c4fd-4e57-a25c-d2badd786e60
477
+ 35e4a30c-bd1b-4b46-aab2-2b49adcc4b7c
478
+ d2e07def-3ea4-4c31-b20c-5f5a7ed52fb9
479
+ 9abb07b4-f708-4571-8a82-d5baf748980d
480
+ 2423c2ff-c85d-4998-afab-29de8d26d263
481
+ 97584eeb-d107-40e6-9a14-767ca29b22b1
482
+ fb626925-969e-48ea-aeda-ef99300fb8f7
483
+ 0be9bbb7-ab8c-4134-8886-178e31ab34be
484
+ 64636876-638e-4f1d-9301-3bb4cb9b391a
485
+ 7683f1f1-f84d-4ecd-ae0a-7ba6ee2f8cdb
486
+ a6c76788-37ca-4005-9e7e-cf5ecb00d8cf
487
+ 8e40c272-9469-4077-bece-0268040b79ad
488
+ 4ff4e3e6-53ff-4827-ad51-b35594910af9
489
+ f3bfdad9-5ed0-49a0-b70c-aa1ee79a3bbf
490
+ cadd4f9c-0957-4404-980b-2c5718734a3f
491
+ 4f1a4a10-b34c-41a3-9544-86622f7881ab
492
+ ad758298-5b6a-4e49-bda3-5d254a5f54c7
493
+ 2059dde7-ecdd-4bfe-90ca-5f482b44fe47
494
+ a1b56b36-68f6-4238-b5bf-a830dc8758bf
495
+ 08abcbb4-9277-4154-94d8-9e36b750fed8
496
+ ecb9c4c1-214c-4bfa-a9f3-371b85267113
497
+ a2526805-27bd-4d17-9325-d3bd1e291f91
498
+ d8f1f126-5984-43c3-8774-45c6d6ac447c
499
+ 8e5d6ad7-f48c-40e8-bf02-05ac74c2d844
500
+ f717f240-edd7-42ad-901f-d3dbc465140f
501
+ e246e05c-cc49-4d05-98ba-de2542e42c3f
502
+ 8abc5f81-9c0f-4174-9b3b-c5d7dba53efa
503
+ 75c8af15-2c63-4024-ab24-db3ec0569207
504
+ 1e457d17-85cd-44b2-9c60-84304b07282d
505
+ eac4b49b-cf4f-4925-bdbe-5ab98d0bae74
506
+ 40cc96d8-a05c-451c-aca8-442f39e1c14b
507
+ a0179553-bc47-441f-a83e-ae6e021032e0
508
+ bee03368-c65a-4b24-a572-5e799a8baa2c
509
+ f7203ed6-eb12-4aeb-ba99-f60e700b5412
510
+ 3655a8a0-38fc-4be9-ab20-32448b48abb1
511
+ 3817cb6b-8b20-4f6f-a8a1-d0943d491656
512
+ ea9149f5-4953-4f44-9712-e45ccb976568
513
+ e354f40c-75e9-4064-a911-850988e9ab9a
514
+ 696b1917-383c-4fb9-a954-aff632d35d4e
515
+ 0aed7ffd-224d-4f50-94eb-9d54fd4a1521
516
+ f8142a51-7b40-4852-97d5-62b307ddb7e7
517
+ f132578d-b65b-43d0-8a78-870c3638d029
518
+ 15b70076-fe8e-4e72-a2cf-0004798c7280
519
+ ef31e3a5-a004-4fc8-8d05-8475afa2602a
520
+ 05e5f359-526d-4914-a86b-5a56cfcc0274
521
+ 6835b48d-ce8e-474d-b589-86d023628792
522
+ 11b8d7e3-9c5e-4652-84ef-91504a07f332
523
+ aceb9ba2-bcd0-4249-baaf-12cd03e14aaa
524
+ d0109704-c19c-444a-890f-5796742434a8
525
+ a268acaf-1493-43ed-b368-346aa9a0f09f
526
+ 207ae687-de62-4b01-b26f-fb66fd167884
527
+ 876aae71-1ed8-4648-bd13-bce01b18698d
528
+ 759aa03c-c8e1-4fcb-8817-85948100ed33
529
+ e52bd93e-021f-4208-aa02-ad1e64c03399
530
+ bd58f048-87aa-4b40-97ee-17bdb2dd947e
531
+ c65b2012-329e-4c9c-8847-0c80b86f23bd
532
+ 287c0ec5-8e84-4a21-8b18-a1e34f336187
533
+ 6d571173-653c-400f-99cc-14111f8657aa
534
+ 31df8578-1fd0-4406-9008-900a88f7990a
535
+ cf11c037-3a43-43a8-b9ca-b3c457d31535
536
+ 404cf466-ff98-41e4-b73a-6829f6d29005
537
+ ed064e3d-b2e1-4103-b955-3d720460d89b
538
+ a94c3d1b-69c5-4c8f-8840-ec5c37630965
539
+ 29a96621-394a-4411-8404-cae4400df95e
540
+ 10114022-4de6-43cd-af19-b3bc5cbeae31
541
+ b0844d48-90da-4073-9e03-fb8aef700f40
542
+ 81342757-adb9-4df2-af73-6ac28136f4ad
543
+ 01d41c37-4de8-4a56-94a2-df57a1bc5c95
544
+ 17fc7017-4b64-4adb-b55f-10ca76476366
545
+ 36821f68-75ce-4784-930d-d341e340e9bd
546
+ 655b89a8-9725-4756-9fc0-db01a580d88a
547
+ 02715c86-e30c-4791-92b7-38b488e51aba
548
+ 354f076e-079f-440d-bd38-97ddfcd19002
549
+ 12513260-bc8d-4cc5-a14b-c7a9012bf7d5
550
+ 76de6c17-2b61-494b-ab32-39e97e1b40ed
551
+ 5d45ec21-c866-4f24-b037-9fa5d25c78ee
552
+ fb733912-4a66-4821-9313-344628fd1154
553
+ 9fe91f54-5d6c-43ba-aed0-cd8b1aae5d98
554
+ 08e08417-f43b-4870-8a26-3f3350bb6197
555
+ 1a3108ed-4c32-4ee4-9506-80d26589d4ea
556
+ c339d326-2e69-40f9-88f3-caa5c80ff3be
557
+ 3db860b7-a23a-4d9b-a988-4b656a608122
558
+ d6817560-492c-4de8-93e9-56df0c3b4ddc
559
+ de3728ca-fdeb-4591-80ab-cb2b32182a50
560
+ 34ad059f-5b0c-41e0-8aaf-096d3f4482b8
561
+ 77d985cb-eff9-43ca-b5e2-e2d1433d0d4b
562
+ c3bb6a9f-fa27-4be2-a368-9fd694fc4231
563
+ 9ff58052-a000-4423-bed0-43ed44f2ce74
564
+ 35823fca-da54-49a2-8d4c-365046031e2c
565
+ 2a6617b5-ce8f-4234-a128-829b639df186
566
+ 91bb7bcf-7498-4611-a3bd-41869be84ef8
567
+ 70b452ff-ae15-4177-98ee-9cb8389e8f79
568
+ 21e09276-debf-49dc-8e6b-da8660308766
569
+ 06c44d8c-98e6-4204-bb90-edfa26f8ab33
570
+ 1032ae70-ce9b-4e6e-8b59-52a19b1f5b52
571
+ 80f65504-a37a-4c84-8a19-df3bba123326
572
+ 6b17a7d8-6454-44f4-aa50-32256f4cce73
573
+ faf039a2-d360-4e8c-b5fc-a5f80e24c819
574
+ f8412ce8-fd3e-4aa9-94b5-a625293dc8a3
575
+ 9506c70a-1639-42ea-bbfc-2b9c0f8c9394
576
+ be3ba254-9db0-4fa9-91ed-c9e7117f8d83
577
+ 49944f64-4fc9-44b8-bba2-7d6720c3186f
578
+ 181c0eb5-22da-4a00-ad59-37b67622012e
579
+ 4535b913-a861-4a1a-b75f-5718ad3a5361
580
+ dd09ac20-b7ae-48e0-a0c1-69f49f541ac4
581
+ f7919017-3bd3-4c92-8f7f-ce9b33f07353
582
+ c95ba288-2cca-46f2-b606-f4e4d145d40e
583
+ 9f3efff7-1aee-4a53-93cd-8b4ab0360d0a
584
+ 5b4fcf58-6bdc-41e4-b7e0-739abc35e7e8
585
+ dc3e63c1-5b14-46f3-8230-5c93249e9469
586
+ e46f9a53-7625-4827-8b92-79c958d3524e
587
+ 9d1b7889-ffd2-4bf6-962c-10b4cce60c6c
588
+ b7c782b1-9688-4b19-8f88-003fed1d0e61
589
+ aa079c80-4193-457d-86c0-80f13d2f94c0
590
+ 109db476-2edd-4968-b2da-6abec1a199da
591
+ ae8c1f26-ae3c-4df9-841c-ee364f0e4fc6
592
+ f55771c6-9192-4a78-a48f-16c926c44023
593
+ 93693881-02eb-404e-b42c-74aeed11e46b
594
+ 828f456b-54af-4a84-aea5-a8071fd1cae8
595
+ a46d15b2-5c90-4938-bdca-40b87f51bec1
596
+ 93dee400-712b-4491-9d4a-7b4bf21f4f92
597
+ 9365a457-db04-4e11-981f-92a95cda4ce4
598
+ ac259bd8-f9a1-4456-99b3-610f80351c06
599
+ ede28f52-3ab0-4da8-808e-33ba5a1fae28
600
+ aca145aa-6d73-4bc7-81bb-2d303e3a6199
601
+ 084fe4d0-b55d-4de4-a26d-32d7735e9621
602
+ 2182758f-49b8-4a13-b691-b9671ef20c4d
603
+ 3125dca7-b99e-4b2b-8844-2d912619b353
604
+ e3b4afb7-d65c-4185-a038-9b9235caf342
605
+ 101a2de8-7c4a-46c8-aa4a-25ff4c7bddc0
606
+ 6abf4872-3bc1-4e63-8fb6-90f796505e31
607
+ b65a60e0-f224-4b3d-bf78-ba44e12c4ac1
608
+ 10fbe798-2bdb-4d5b-8bbd-00a5f49fd391
609
+ 88c1166a-2e6b-43de-ac57-b2d736c41946
610
+ 9d6dd55f-1735-4d5f-8cac-92e04c9c896f
611
+ 1856e7d9-d45a-4909-9206-a3d6921ec6bd
612
+ 9a8dc147-818a-4f38-97c0-12b924033ba5
613
+ bd0f3e9d-185d-43c2-96c2-34b8eb11e6a9
614
+ 6ec6a770-8e10-4cae-a06b-328852838ec6
615
+ aaea78b8-f839-42af-af65-0cc3f7fb2897
616
+ 445a97bd-eccb-43e2-9fc0-2468cf0b2954
617
+ b24dbfff-1a6f-4649-b60b-35ae8c7aec80
618
+ ca01f52d-5afb-49a6-9b5f-ed0770fdf84b
619
+ 74f5cad4-2391-4ca2-adab-659f54c1a61f
620
+ 11bf68ee-12f0-435d-98eb-925c158ac705
621
+ c9f0ec0e-2c5f-4350-a2f2-27877b56225f
622
+ f7b3e85b-7681-48b3-97cb-6b0a5705022e
623
+ 8acb2112-465c-4088-b502-65fd9704dd77
624
+ b069e23f-1a22-4920-879a-80616b098e60
625
+ 3c99493b-a76f-4934-b444-c8dcb68b17d3
626
+ 82587f1a-a75d-4462-8971-b62b5c3a633e
627
+ 3f477d02-124d-436c-b77a-f5ad63c21289
628
+ 811ad284-702f-4d38-af99-a2c4006fa298
629
+ a6500813-e923-44e8-9876-b8f6f2fc15b2
630
+ 2cb8af8a-952e-40b7-ba48-b56f875d8826
631
+ 829fdfa1-1192-4611-977b-2736d7123f5e
632
+ 2e53bfbb-2476-48c8-8dbb-668071453cc2
633
+ 5ff5bfd3-3c44-4af2-a500-65cb13be7c3d
634
+ 3866da3e-e88b-4c69-9534-d097b315efc2
635
+ 87b87124-24b7-4098-9c28-21545a981768
636
+ ae67738a-b251-4d6a-993e-4750a43cfc1c
637
+ 62bbef54-0ba2-4990-a9e3-3dea114fa9cd
638
+ c53daadd-09f0-485b-a51c-1d5679f5fb09
639
+ 0c604e7f-1f5d-46ee-8e92-509411b10def
640
+ b378d186-0587-40ed-afdf-875e6dfb5876
641
+ 77521486-6690-4374-abc2-0d9bc491af0c
642
+ 9fb66dfd-8e79-4cc8-83f2-bf9384b80fe2
643
+ df02e9d2-edcd-4015-829a-81cb6067d6fa
644
+ eec66a33-ddbf-4eac-9024-fddc99ef5fdd
645
+ ce509e21-ca1a-45a9-b150-3263640c9c47
646
+ 0ccfd492-8880-4ef2-90f5-e9f54f2cd080
647
+ 32d54e67-68d7-4b94-a953-fc3b56a1eb94
648
+ d13960ea-0503-4cfb-b700-8bd006544dd5
649
+ 03167c74-f240-488c-bc6c-39ea803ec943
650
+ 6497079c-6ac3-4c80-9d4c-f7c37a196f11
651
+ 98c6b563-61dd-46fd-a66e-351664092e4c
652
+ aab43780-401b-4673-b2c2-fc3521e98bea
653
+ 1215d140-b34c-43f3-82dc-c3f102bbf1e4
654
+ 24647f6e-29ca-4d93-99bb-2df97043c4fc
655
+ 6e3f9f1d-2942-4de1-b071-bf8a205d28c4
656
+ b008edb1-b0ab-4d8a-a303-5c09a6ecc790
657
+ 23ff1c48-01ea-4d34-a38b-bc96e767b9b9
658
+ 55d2990a-537b-429d-9da9-388283b9555e
659
+ 83b377ef-967a-4380-b3ac-321dbf79f72a
660
+ 5a7bab1e-a30b-4001-a5aa-2e8a6601315b
661
+ 975bbcd5-fbb3-4323-b9a8-a9b476887c18
662
+ 7ec264c5-0029-4b84-81ea-c3b24a059ae4
663
+ 3cbd7070-7c55-4b15-ac31-100ab8c7298a
664
+ e94bf2b2-13f2-4b88-93ca-37da00d7c58e
665
+ 5b4cc5cb-22f0-4814-aa24-8d51ba50000a
666
+ 43d60820-1daa-472f-be4d-6802746df7d8
667
+ dcfbcea7-821d-4f06-9ecd-95f4b99a9b4b
668
+ b64755de-fc1c-4e36-a862-04e4c34a2dfa
669
+ d1563ead-9c4a-443d-8f28-515100c0b909
670
+ ba2086b2-f43f-4096-8b84-e9a3bfc0020b
671
+ 8000dfb2-accb-4bb8-abfb-cc2d677d0b2f
672
+ 0315b91a-b56f-4fc5-87f5-28c33c3fffab
673
+ 7ec74e0a-e711-4955-9e66-b4ea17fd439f
674
+ ff93ae48-0daa-418c-9d5c-b5b0b6d23efb
675
+ 0a715ea3-5aa9-427f-86b3-12190c557905
676
+ 60a5958c-4530-4eba-886a-a3474ab1fc7a
677
+ d6e80361-e429-4491-a08a-ed33c7ceecd5
678
+ adf67490-c9f0-4771-810a-3c6b4007b3c8
679
+ 83783976-189a-460f-9068-7ad5b17dd815
680
+ 3382c19f-4a93-4247-9a7c-11f4f72959a0
681
+ 6d0a7c80-ae8c-4673-8f70-c09fd6fbebe8
682
+ 574adb34-f42d-494b-8ccf-a62922bb5299
683
+ 2bc8abe8-e4d1-46e2-8aa0-134e30674456
684
+ f0cd03a5-9cd8-4510-87c1-a5c493197b75
685
+ b4c2bba9-fd6e-4736-a071-811734d1234c
686
+ 7407b714-f7ec-4472-8e4d-e7eb0f037728
687
+ e353042a-42b6-44fc-b825-3017f274de96
688
+ 6b90b173-de80-4a88-b52c-7eec42fd372b
689
+ c16175f5-f990-48a1-9dcc-6a385f108687
690
+ 30f03e63-10bf-4d6d-8d58-fc944469c66c
691
+ c8749317-8f4c-443a-9f82-6b18edbcac23
692
+ f2628332-1196-47b2-a17a-6670055babb0
693
+ c529c120-c1fb-4504-97c7-52912c2aa3c0
694
+ c9143d68-f3aa-4214-8ce7-f490f88cbacf
695
+ 783c918b-1473-4b72-b106-cb2718c46af8
696
+ d821248a-f894-47f8-9c60-02ca799fef24
697
+ 41e70872-13dc-45e3-82b4-4cbe58d952da
698
+ e4b464a4-45ff-452b-a744-142d22b32ec1
699
+ bbd4bbea-bb25-4a7e-ba2d-3a3e6eb003c9
700
+ 09992555-13bf-4056-a0c8-b5058853b778
701
+ 3eb5e1c2-4c98-4637-9a28-726396ab5005
702
+ 19326fcc-4b0f-403e-a7f5-ffb836449d45
703
+ 77e3b40d-7693-49f1-b480-d33fd798f870
704
+ d246c660-2b59-445e-a618-dd86137c20a5
705
+ e4ddbe51-37d0-4937-816a-2508b20f2b63
706
+ e1df2957-a10c-4bc0-ac91-4014551287f0
707
+ cc5a6be4-d030-4057-9ed5-1f895c6c9274
708
+ b7542f4c-19e9-4061-87be-5a6d3d95de88
709
+ 8fc1c385-7529-47ce-a2de-fc42f6e44303
710
+ 261f6455-c60e-4fe4-8eca-6bb8fbb18ff9
711
+ c2145013-09e6-47a4-8c6f-bf3366b8fad3
712
+ 816dd81e-93b1-433c-83ff-264ae404a3bf
713
+ aaa7e120-2224-4a5b-96ef-4a4b054a6ccd
714
+ 198138f0-ce5d-4d91-9d68-bf3a09d9df74
715
+ f8bed5fe-3e09-4885-9539-edb4d5b2279a
716
+ 29f5c00a-4562-45e4-8365-5f9413cf3e26
717
+ 6ee078a7-6e88-416b-bbff-0b1a5cddd254
718
+ a57a2fd6-18dd-446e-b11c-fe8b127ebb5b
719
+ 601c9c61-fc2b-4ac2-b3c4-dda557c2563b
720
+ 196ecf05-aecd-4f42-8321-67300d8bb6cd
721
+ a3d933a1-26b2-4025-b136-3a9c2d40db4c
722
+ 56c35d79-acb1-47a1-8590-7e5cb2585ee5
723
+ 9fea55ae-307f-43ab-97f6-91ee6d1b25b7
724
+ 0bfb43c8-96d4-4b2e-b8bd-f0db30421823
725
+ 59de58da-2f1a-4ce5-9ccc-ba9e4b114779
726
+ 19653b56-4c16-407d-999b-8bae93fce633
727
+ 373478a3-4b72-44f9-bcda-fea08828c52a
728
+ 020ae1ca-02ad-49c8-9056-87ad6bdcb8bd
729
+ 45cc8340-5101-424d-8530-d93d1e7083ca
730
+ 719fe670-72a7-4da9-be7d-0bd2afb742ae
731
+ 34ba42af-5c77-434e-a8c4-cf745bcaaf0d
732
+ 978cd92e-8766-4c68-9d06-8a1a19ff1dc1
733
+ c608817e-4a3e-4c3c-a87c-7d02e1e601da
734
+ 46988f5c-86df-4bb3-bf4c-aca0e044bce0
735
+ 6bc7a29f-3397-4549-9ee2-d98fa93da873
736
+ 1377b49e-4a24-4e91-9fdb-709911b72f9a
737
+ 01b0a6e3-04ce-4f0d-8df4-b3d3c1508780
738
+ c8501280-9342-4776-b5cf-79e2e02fea1e
739
+ b22e7d54-2198-4ff8-9ba4-bf444bf4a787
740
+ ba46c08b-3b5a-46f2-b77d-4a296f45c042
741
+ d5193bae-a7f5-4e8a-9c96-09f557c7ea9d
742
+ 1ec6c280-a6df-4666-87ef-9da5a57e2925
743
+ 526fb4ce-d45c-40e9-912b-7cc076081d65
744
+ b6dd512b-7800-4cdf-b7ec-d0d784a493c2
745
+ 7bc50150-a73a-4d6a-97a9-ca9f8b4800ef
746
+ 32b43fd9-a01d-4657-899a-7ea2200da27a
747
+ 154d1224-d0c0-45f9-8e89-33f1ffa04606
748
+ 2c9c701c-08f8-4217-88da-f0b46886ee5c
749
+ 9aca257b-e95d-45b1-aa6b-e2abfb400fa4
750
+ eb428228-3267-4f31-bceb-6370d66afcdb
751
+ 609123eb-8e83-41f9-9cd5-524fc01f3ea9
752
+ 64b60273-e935-4161-9300-2879b46f5785
753
+ 6fee2c75-fded-4e56-850f-0c29c809c1ee
754
+ a0bbdb8e-077b-4881-bbec-30331068a3a7
755
+ ff468baf-2313-4b39-8dc3-a1d1b6f71a5d
756
+ c01e470f-b07e-4730-b3ef-6cb8cdfa5b4c
757
+ c01e068d-c018-4a07-9a64-e7004fca335c
758
+ 516e461f-d51a-459f-9cfa-8864bda4c06e
759
+ d4af8cd9-4115-4439-b7e9-77507f553418
760
+ 8d7646a3-ce7b-425d-b16e-9a63a1166576
761
+ be1eb1c1-a45f-4e8b-9ae2-3d8db0af7e59
762
+ d89ee354-ee08-4dd0-bd7b-75db5e3ab7de
763
+ 8623740d-86a1-4b83-82a0-c99923ce6bdb
764
+ afeedc0f-f962-4136-8a66-223a77ebe2e6
765
+ fa1b7aec-f252-42c7-b362-443f11e87fdf
766
+ 847fbeab-dd68-4852-95f3-3a09f754f3b7
767
+ 0b89efcd-59bf-4f0b-a81a-50dee0b79982
768
+ 63062ad7-ac80-40df-b40d-16edfa17bad2
769
+ 014e2850-9927-441a-8c3f-9e58012359e3
770
+ af02982c-8ae9-424c-9f35-6f18763a49e1
771
+ ee8b963a-28a3-4772-a2bb-a68732b603bb
772
+ 027d6141-8cf8-4cd6-b250-6f1ac4f6afcf
773
+ 0c49cda5-7e55-46d8-8f1f-522ed1924a79
774
+ 43dcdaaf-746e-4665-88a3-adbe7351c9b1
775
+ 53ee9e25-ba9b-429e-9cad-70c223a2f881
776
+ 9681b4c6-9713-4bb3-aa9a-7df7daa4e74d
777
+ e3fd2775-90a8-4f9e-bfad-8bfae2519e3b
778
+ d8a7872e-aa42-4296-a4b8-53b72f3c8b19
779
+ f3f87687-6c1d-415f-9fe0-5f0bdb031371
780
+ 46e0152d-45be-46a4-a44a-c1967f89d3aa
781
+ bf53c470-f60b-4f93-bb97-9b2a61a5ab89
782
+ 86578abf-a15e-44f0-9ea8-3019578c8d19
783
+ 2d60dbfc-61dd-468b-b30a-c63b9d29c9bb
784
+ 8671219e-79fe-487b-b62e-0bc080088127
785
+ 69fac17f-6527-493d-8dac-cd3bb61ce23e
786
+ b7b0e245-e49e-432f-bad9-53e4a0bf0019
787
+ ad14de7c-ea6f-4811-a590-1ee8a65275e4
788
+ 4bc2e040-3193-40ad-ae69-d75f9fa4e5a4
789
+ 4edfe85e-b734-4b53-a38a-737e283d102a
790
+ 6a364c3b-2d86-4fd0-ad7f-228438ed6609
791
+ b2a184be-1b3c-4e0e-b297-d2a3a95e3e43
792
+ ab4b4145-563f-42f9-bfb6-97b48bdaa2c7
793
+ 5ee00a17-171f-46a4-927b-3aa9d0fe176e
794
+ e26a1515-2609-42c3-a2d2-68b37cc0b4d6
795
+ ef1aee4b-5b24-454e-8c17-ea886f1dbdeb
796
+ 587eca14-1115-4a97-aff1-664de9e3415f
797
+ 2e3ac19b-c10a-4fc1-a812-ef2cf0956fb9
798
+ d2382b43-4a91-4d6f-ab61-1c23f34d3d16
799
+ 8a3b29d6-b9a0-40a8-88db-f2bd904636a6
800
+ 0015e453-3227-41b0-bd64-03c134abe054
801
+ 24aeba39-9b30-4533-9d28-39b50c6ce3c4
802
+ 975b2d0f-fcf7-4521-b129-7c65a3268609
803
+ abf00ef3-e9f2-491a-9692-114c4885298c
804
+ 20987121-dccd-4bb8-b3f7-8536e639c4a9
805
+ 5f981cb7-60ba-4bdd-92d3-853bbaeff7f8
806
+ 76a7ea80-0a81-4b4f-983e-a7e36fa26685
807
+ beb7196e-c020-4224-b5c4-e431ad9f143e
808
+ ced785aa-d2db-4518-846c-d5b5549c2c49
809
+ 441b84fd-19e9-4413-949a-c3bbb6a3b16e
810
+ bb0cce4d-4433-4e2b-9d73-be77918f2069
811
+ e08db0a4-e257-46e0-8880-640415b05976
812
+ 311b89d8-9dbb-4602-8656-5b4151ad19f1
813
+ 0827f0fc-4f33-4a6e-b7b3-89165585d79f
814
+ 41006de0-560c-4e27-8dab-08e711a9bf7f
815
+ b2c1c748-58cf-4efb-ba53-d79361f2b0f2
816
+ c170d13a-68ab-43be-a31d-70abd821436b
817
+ b19462f1-e7fa-4b90-83da-931b1e9d50e2
818
+ c8b331da-1756-4836-acc5-f3d1c2142339
819
+ a914f836-eb7d-4ebc-a537-e8d7dbb39429
820
+ e02bcacc-92af-4fe0-8c57-e42ff3f74dcf
821
+ 130f8ebc-c88a-4ae2-8e2c-b9935cd3accd
822
+ 39d5e4c4-993f-46ad-979b-3daa146e4d53
823
+ e076b7e5-e67e-4452-8b00-83046dd85c62
824
+ 6ddd7cf1-02f0-4d46-837f-8aaddd1236c7
825
+ a8b81a1a-5ab7-41c0-9189-a808bfb97b6b
826
+ 6bf869e6-32ac-4558-ac54-f78a5ad1e918
827
+ 3059469a-03fc-4ae0-bbf7-b08187d1b290
828
+ 204dea41-2a6d-42d9-ac91-aae4f773ed36
829
+ e257e982-fb75-4d98-9e15-228bd18c33f4
830
+ 6badc0af-4a97-4dd4-b89d-b540f6f34002
831
+ 52bf867c-68c2-40f0-a195-c4795ec13517
832
+ 6743f09b-846b-4d85-95c8-30212fd779cb
833
+ e0b36364-fbdc-4878-8dca-9a448856f79f
834
+ c30c1104-b238-4dcf-891b-1160ede92723
835
+ 9d7d1acd-671f-4662-9c30-6ec10abd219a
836
+ 4a10d608-6712-4f08-aa69-1cfd4541dd6c
837
+ 1b755d8c-7351-4ad3-aff3-affe95fb1737
838
+ b22fea1c-b117-49e1-9d69-470aa8dd3fad
839
+ 3528e260-6a6d-46d7-b97d-b6c029ec7304
840
+ 6eb10b39-5171-4293-afba-4084f5825748
841
+ 79a728ac-d543-4a7a-bf6d-132a676ca685
842
+ 0669b09c-fda3-4fbb-9c41-b9b1fd3ff31e
843
+ 3c744ca5-c64a-4de3-8235-c2f542ac5056
844
+ 1247a29c-9fda-47ac-8b9c-78b1e76e977e
845
+ 4b42679d-718e-4eb9-977e-8922b38ac46f
846
+ 725b6b84-0a79-4053-b581-828a5da77753
847
+ 2e00eb80-4fd0-4ba5-bcbb-5e671d7f3627
848
+ 5f00af1e-d17d-461c-878b-1b3211c95fea
849
+ c8b9dc5b-8467-40d2-ab27-27923abcb054
850
+ 1ba0388f-aeb4-4dc2-8c3c-9c0fe63f282c
851
+ d4c27ee9-443b-4ebf-a3ef-57829e24d991
852
+ bf6cb63d-ff78-4186-b55d-6aaf2e210ab1
853
+ a0f2b3d8-95f9-4ade-81c1-e17fcefa75d6
854
+ 99a39dee-cd6d-4a27-b32e-bc2dee856c02
855
+ 3499e612-8ded-4c5d-a36e-c00111b2f417
856
+ 5c12c6e3-d34e-4e9a-bd7f-74aed58427a7
857
+ 44d647ce-72d2-4312-b80c-99faea2d017d
858
+ e09f97c8-0493-4d0a-98a6-e678d4c7dc00
859
+ f78ad5b9-8960-493e-8c8a-ce19a53c12f7
860
+ 7c341853-eea3-4243-ab99-e11919aefa4c
861
+ c4c0e97d-135b-4dec-b736-e184442bd42e
862
+ 7aaa0ec1-297e-43e6-9381-36d332bb21a5
863
+ f291d174-596d-471f-836b-993315197824
864
+ 8011f715-1132-4cdf-ad47-146bc1759f21
865
+ c692c40e-f2ca-4338-bb9e-1c779a7288a2
866
+ 99052842-9369-415d-b87b-1bf756ab13dd
867
+ 26065a7c-c2dc-475d-acff-6b5b9cb94469
868
+ 524596ee-0f80-4086-8b7a-248258864978
869
+ 6449cb24-e14c-4238-9d57-2e0efc4794ba
870
+ 4356d71a-56a5-413b-a407-14f144112d91
871
+ bbfcc023-558a-4396-8560-d683c2407180
872
+ f1bdf9f3-4f65-4c70-b8ba-b3d4607c0cff
873
+ 0fe5b647-cdd0-43e9-8710-b33a2e0f83ef
874
+ 1bc1334f-2546-4175-a9f4-b4338f46a246
875
+ 96d772ac-01e0-4e53-85e5-4ce45e58b6f1
876
+ 2f53a0ce-246d-4bb3-adea-37db80c45688
877
+ 96e117f2-984a-42fe-ad83-23857e27ae45
878
+ 5b225fd3-e57a-446e-b228-dd452c17a235
879
+ 5670a1c7-d4ac-4d05-bbf0-6c8161f02824
880
+ b5f62731-3deb-4bac-b00c-fe96e57d86b3
881
+ 85b4c3c3-6486-43bd-b5b6-7cae6ffd4c9f
882
+ b63d213f-25ae-41bb-8719-01efd84dbe17
883
+ 01a5aa96-29c3-4f4c-9f03-4404a4a260ef
884
+ 6101e4e5-a889-45c5-ab66-e9125d2138bf
885
+ 526b8408-7edc-4390-a1cc-44512faaa432
886
+ c216e68c-7483-41d3-b862-d7319b90038e
887
+ af277c0a-fa1c-4d8c-9f7a-a6a4d23b1796
888
+ dfe05c45-851b-4a94-9c22-05aca881fda6
889
+ c9e0bbae-4092-4ab1-95cd-16b905709a0e
890
+ 31c74ac0-8c3d-4d5e-b577-4e54f16fb52d
891
+ 2da6c2ce-a88f-4790-9642-8dfa810ae91b
892
+ fcf26143-bd53-49f7-a876-78829e4faf71
893
+ 4d799166-0362-4daa-9f26-72e27a4feb31
894
+ 3a1b3ec6-13fd-43f4-8af6-f943953e01e4
895
+ 350002f0-3d78-477e-9c33-80a2cc16f29e
896
+ 96abbf92-97cf-406b-910d-59d139c9da79
897
+ fea0ace3-1be2-46dd-ae8d-ae35a9f13b77
898
+ 09acf615-b967-4c6b-b48b-53640e7be030
899
+ 411408c0-8f5f-4698-a9c5-5e491ecba021
900
+ 73420725-69c3-4392-81ae-539f7e4112b2
901
+ dd20e1de-2636-44a7-8e8b-a73571c375ef
902
+ 6aaed5b3-1cbf-4cd9-82b0-43f626135641
903
+ 09262ab7-05ea-43d3-8965-c9ebabdbd85c
904
+ 2df948cb-cc89-432c-842f-2419f7cf5fff
905
+ 8caf94c0-835e-48cd-9e7c-fa6bfddc0d5c
906
+ a95f74b8-d2af-496b-b40d-21db0afa2f5d
907
+ c8d61c25-2e15-4fb3-a522-abb11a36d404
908
+ 6ded8a71-6cca-4514-bbe0-6a5f028262c9
909
+ 1b4585b3-3717-4b1c-bacc-a8240ac91926
910
+ cc8bfc86-777e-4537-b207-9c599e9a1f40
911
+ a347a301-3d4f-4e2a-9fab-4f0229e48db7
912
+ 0f43bce7-5cd0-4ff2-8eae-466257d552b6
913
+ f926d185-62b9-4838-9269-d7f4ac776f2a
914
+ eafee432-77a1-4f9c-949e-aea614671b1c
915
+ 4cd84861-928c-4fb2-a261-2db2994959a4
916
+ 0c01e8ef-5dfc-469d-beb9-5ff051c3b384
917
+ 2d042a82-6409-4986-8bfb-af031f5e061e
918
+ 6fcb3904-2aee-41e7-a45f-4f498c8e1e82
919
+ fdee7835-5174-4915-b13a-74ec4f33ad95
920
+ 09e9fcd9-cdd2-4ef3-956c-5a6b96d715d9
921
+ 091d8f3a-27d4-4dd0-8434-5b4d572e48e9
922
+ f8e15a05-f5b1-48e7-8751-6fbeb8acad38
923
+ 168d649c-bb35-4401-9373-225f0731b508
924
+ 053fcb5e-1f33-493f-88c2-f61df147b4e5
925
+ b50aba6e-2a45-4df2-9d07-8aaa993862ae
926
+ 67e74067-407f-4aa9-b8d9-dbac6ea2464f
927
+ af464855-f44f-41ce-9f31-5d579cf00fbd
928
+ a628ce61-dbd9-428e-ad72-106c9aa8af3f
929
+ a89215f1-92fe-4207-9293-62ce108171da
930
+ 87a09132-b107-40bf-aca0-1ae6e5dc46cd
931
+ f7805c2d-d9bf-44ed-9ad3-34145286f2d7
932
+ b511dfed-58f4-4c91-bf0a-f8ce9d47aea9
933
+ 5d25cc61-f04d-47e3-9f0e-dbbf7707f0a0
934
+ 92b2221b-ae92-44f0-bb31-e2d27cb736d6
935
+ c53a1199-5ca1-4aa8-ac4e-38227ff44689
936
+ b26b4d93-0364-4333-8d4d-38ca1a6a4dfa
937
+ b5f8232e-5686-43ba-8e7a-ffeadb232444
938
+ a8f7a36a-28da-4b81-83b1-be21dc4c7f8a
939
+ 645a45ce-c993-4f67-b136-fe8c3bad9b6b
940
+ 058f9a7e-d7e8-415e-9827-272245422543
941
+ 9ebe4ac3-1472-4094-9e73-6014e78e0539
942
+ a56ce926-8c85-4883-9ff5-dd7779d71b64
943
+ 01f3ef42-91ea-4561-a26a-aad776212c98
944
+ 8ad335cf-c9c5-412f-9347-53867db66ee0
945
+ 2fe390a8-1506-4420-9008-74199f92797b
946
+ f5ced826-d8ef-42c6-8e6e-2ba287da99d4
947
+ 2ceb8750-40dc-4639-bf49-e19566df83d4
948
+ d8db054f-b5ee-41c3-ba66-cb84ed2d286e
949
+ 3d4aa037-1253-4641-af4b-7d49dd8986e3
950
+ ede7b9c1-c501-40b3-bc6d-205ea142366c
951
+ 896805f2-f741-40ae-87a0-16e520c12ada
952
+ f2934ab9-bcfd-42fa-a329-7d0fc28818aa
953
+ 95db7d4c-8a4a-43cc-ac59-973e76ed4177
954
+ 1abe2e26-f6fb-4909-a4b0-824fb2f0676a
955
+ 47850a65-9719-4770-92e4-e428953addb3
956
+ 047a4e6e-97a9-4202-918c-9460bf89bdbe
957
+ 066cccd7-d7ca-4ce3-a80e-90ce9013c1ab
958
+ 6264ea0f-2023-4fbf-b898-5f7a13834be1
959
+ b74169ba-77b0-447d-aeff-cb7934ff6711
960
+ 7b819974-3c39-440c-bccd-d74fdd3fc9d1
961
+ 0733d5bc-b1a8-40c3-98de-9585e23eb2d9
962
+ 6f5df748-4371-4fcd-b6c4-f776051b447a
963
+ 2ec7440e-5e29-410b-a5f6-40e3a2e45a31
964
+ 812bb3bb-217a-454c-995c-d3e995576b81
965
+ 7abe1f04-6712-4325-b49d-4bb65bd30eec
966
+ e2b190bb-f8b2-43a7-b2da-b80f3708dcf3
967
+ aa6257e0-001a-422b-9935-2f9c2b5973e6
968
+ 6e5211e1-72d8-4032-ba56-b4095c0f2b36
969
+ 4c075527-7526-4c00-9681-53258fe70881
970
+ 2ca53d8d-0120-4dad-a856-c8f20aaa2cc4
971
+ 6ca51642-c089-4989-b5a3-07977ec927d7
972
+ 76ec56ea-a516-4988-a516-40d04a5b21de
973
+ 6c4e2422-e83b-4ae5-8b9f-7bfdf3f2d3f7
974
+ 936e7e6e-aa06-4aca-b877-8d5f3c59ecc1
975
+ 8e3034fa-7bf6-4716-bfcf-b22a64c08d23
976
+ 47da5a64-aaff-45f4-8ed8-b7ab64b2d851
977
+ d77bb04d-c881-48be-9cc2-d781c69207cd
978
+ caa16834-c43b-44a0-b251-9b465533df5e
979
+ 3ca3a186-a650-4f8b-a9d0-f0bdb19bd860
980
+ 622995a4-01fb-478e-a33d-7eef6e8b370d
981
+ ac5bc1ee-b7d5-4948-90aa-8f418ca4c0fa
982
+ c785b2ec-1efd-4135-9707-d54386109075
983
+ d300ece0-41a7-4707-a08b-2f48aedeb75f
984
+ dc1600e9-dd79-4700-882a-9f53cdd29d20
985
+ 32dfc6fe-c801-4ce5-bb39-8841fca7a075
986
+ c935b13b-462a-4ced-a041-f06592dff0e5
987
+ 360be2ce-99dd-424e-a7c6-a5908c7aa2f3
988
+ ae2207b2-9b33-4f6a-aeb5-e2718a253c3b
989
+ 57efe7a9-0685-40b8-b076-51e59542c5d9
990
+ 1d0f3c10-ed0a-4f60-b0d2-a516690ff1cf
991
+ af96da5b-4005-4aaa-a8d0-e2a97b471090
992
+ 13b85191-0a2c-4d0f-a54c-3118f5a96cbb
993
+ c05e7fd5-d5f1-4949-872b-2dce2fe88c48
994
+ 71b8a896-84d6-4da6-97ab-78cfee6cd5da
995
+ 42e5adb6-6557-4a87-a575-0b84150e573c
996
+ 9feb55a1-b244-4323-b4d9-fa1af2893864
997
+ d0df0e37-f7f3-4b38-8b80-36b4a14af68a
998
+ 58e5920e-e71c-4184-a0ae-a5f1f6ac3294
999
+ 5bd830a8-5752-4aab-bd01-e9fb518864fe
1000
+ 09417ca4-3572-4ba1-a1db-7eaf3bd0b1c8
1001
+ fac6316e-d141-4bbd-b88b-a624491acb30
1002
+ 9273e1ed-05a9-447a-9de4-dc6ac3580c47
1003
+ 9e08e1e7-179a-4dac-bd0e-6e98e47407d2
1004
+ 7a0757f4-8ada-424a-b4fb-81fac89c7259
1005
+ 6effa4db-4cf2-4de5-8295-59366ede9ca4
1006
+ f76f2040-989c-42df-b2fb-e0903165443d
1007
+ 6fbe4821-85ec-4834-80bb-0a214fa80893
1008
+ 4411ea13-81b3-4682-99a1-500a3ed3beef
1009
+ 8711980a-b71f-46d6-86c8-1607a5478dd0
1010
+ 6bd00296-7ae3-41c9-89fd-52ba9410018f
1011
+ 2dc49d13-5347-4d4b-8506-5510f2ae0b84
1012
+ 853cdf8c-e669-40f3-95bf-1ed7cd2bbb75
1013
+ cd3aff9e-a017-4841-b61f-06790d271334
1014
+ d4a8fe94-6f62-42cb-aaaa-c2f9a056620e
1015
+ 8eb9612b-7b52-4f0c-a72f-dd7f3c54bf2e
1016
+ 349a435d-c2ad-4c64-9067-8733e7cd5ec9
1017
+ b60db7b1-c623-4f04-8c63-695c24b4648b
1018
+ f2653b13-757b-456b-9000-67275edadb5f
1019
+ 967fcfb9-76a6-4f09-b218-16558dbbc98b
1020
+ c7d8eaab-dfb5-45ce-a152-d9f79c60fcca
1021
+ e5bfb696-72d8-4005-9a49-442579352db8
1022
+ 140253fd-9258-483a-9bf1-5426d91a05dd
1023
+ 27369696-d356-4d1b-8a22-be8bd4442150
1024
+ e6d8c6ad-31b2-4684-9762-2af1e6709611
1025
+ 7785da94-b19b-491c-94dc-89106e095f79
1026
+ 1c9dae64-e7d0-415b-ae95-99ee78eaae90
1027
+ d494760b-e16d-4e5c-880f-b7ad598056a7
1028
+ e420250d-b67f-4c46-bc40-31b8c9003d7e
1029
+ 517207e4-cbae-4e58-81b4-cc8936dcefdf
1030
+ 627bb538-91da-45fc-80ca-799c4a869858
1031
+ 21aa9035-e825-436f-8021-fa802dda3602
1032
+ 2bb5152e-cab4-46dc-9aa6-e73007f7df8b
1033
+ 35bfade9-8ead-46a4-b2f0-cdcfb86df1d6
1034
+ 454e2413-2b82-4aa2-b37f-b6422a861179
1035
+ f03b7f2c-2ac1-42db-ba61-c0f9c5be9dc3
1036
+ 2041eb29-6086-4e5e-9881-0f14d9e6a8d8
1037
+ d6f0adfc-5c66-4c3e-95b0-902d12d7bb86
1038
+ cda93e67-c411-48cd-83f0-d7aafc6e4b3f
1039
+ 5c3e7989-9b64-42dd-af7c-274ce12619bd
1040
+ b5d293bf-2d0a-43be-8a7b-4b66ba9b6835
1041
+ 849aaee0-866d-4b85-9775-39360e27fa90
1042
+ aa736cb2-7e37-4715-862a-bfc1edefcb06
1043
+ ce536dc7-6296-49d5-86da-49267edb3de8
1044
+ 1dbad365-237b-45e5-acef-e52931b21c07
1045
+ a0f55b7e-5fd7-42cf-8a1b-90afb712a502
1046
+ bfea0427-fae0-452d-9824-16e44dd0be5d
1047
+ 7112613f-9315-4da7-b741-1fb18f07f497
1048
+ 954769e4-29ff-48a6-a870-38866a9cd7ad
1049
+ 3c21c496-e352-4b71-a3fb-307e134e9fdd
1050
+ 8c952699-0c25-453b-92dd-52b0580248db
1051
+ 7bd4e6e0-93a0-4717-9666-266a2c29638d
1052
+ d94171f5-85c1-4dd5-9230-40187d4daab5
1053
+ 989b038e-d46c-4433-b968-87b58a4c7037
1054
+ 4764e94b-9132-4e65-996c-bc2bc67e17a2
1055
+ 071edc40-b64c-4e94-aeed-d523ed4a2794
1056
+ aeec58e3-fbc9-467c-acda-6c92b45de1ab
1057
+ 4fbac7f7-f8f0-40c6-9f73-7279fcc077b1
1058
+ d2218738-2af2-4585-bd1c-af8ad10d7827
1059
+ 245c5620-481a-477c-be6d-07e02073eb4b
1060
+ 2a8f7d15-4821-422b-a34d-e7ff2937f2e2
1061
+ 4767e91a-8687-4992-8d6e-f0ddf0043300
1062
+ c43d0f58-9349-4d92-b358-d1a11070b1d1
1063
+ 3be02e64-5a3b-4022-9643-69c0eaf34ac0
1064
+ 1410e2ce-a62c-4a2c-8453-6eb172a58965
1065
+ acc8a39f-06f5-4792-8387-984ea6ae859c
1066
+ c507b073-7bf9-40db-8537-de599b6f6565
1067
+ 6d1847fe-d2d2-4a11-80fb-1cf5ff6d965a
1068
+ 6b2b8702-0f2a-4dac-bc2f-bfb981b69e28
1069
+ 18b18195-afdb-429e-8250-42d25e882ba9
1070
+ 47e06650-7973-4dd9-a509-a7425fecac19
1071
+ 691b6dff-620e-4aab-8302-3a9045be33da
1072
+ 33b0f445-e852-4533-87a2-daa650113a80
1073
+ 4fd05061-02cd-4bf6-9191-02ff8303ca40
1074
+ 2cba50be-6d39-4f53-b9cc-cb520a588443
1075
+ 04f20e56-c4da-4775-93de-71a8ffd9ab48
1076
+ 46cc2fa4-bfb1-4a4a-beba-e157254be154
1077
+ eaa2ec3e-8c2b-47f5-8b63-8d64c6672d0b
1078
+ 3b213b67-8a20-4447-9c25-9fdbd3a4aed5
1079
+ 3dda64b1-9a7c-47dc-8f64-c29b608addbe
1080
+ 87b2f72d-e899-4700-9b91-61ebe228e2cf
1081
+ 7ba244fc-6b1f-4c4a-abea-bef004a9ea95
1082
+ d2addf5b-75c2-41ef-a68e-738229940a0c
1083
+ e2e24a61-148a-46b4-b9a2-d164359e3554
1084
+ 9cbede95-3edd-40eb-b9ea-483f85aaee5b
1085
+ b5de2666-ed5f-48ef-a278-78016630a53e
1086
+ 678bfebf-6819-4659-8c0f-1bc71438863c
1087
+ 806b80b5-7963-482a-a5b5-82b95bfdd8b3
1088
+ 6e427eaa-66a3-4eb2-8e2a-9f4ec4f012bf
1089
+ ac5041d2-af23-4b3c-9150-247142ade9fe
1090
+ f36be1f1-491e-4d78-9ce6-d00c4590868b
1091
+ 632755de-f080-4057-8626-6c402a6129c9
1092
+ 506a2aab-775c-435c-8006-918d8fdd997a
1093
+ 7d83d5fb-1039-444c-83fb-bcc2f4a7dcf2
1094
+ efa3ae42-f12a-45d6-8c02-93c9b77e9809
1095
+ abfb0e8e-4351-4086-b7ca-f84785d768d0
1096
+ ea6a008f-c171-43e0-97fa-647658352f77
1097
+ 8192f44c-6159-473e-9885-704e7975830c
1098
+ 215844c3-63d3-4c8c-86f7-aeff2cf79764
1099
+ 42b14a01-28c8-42a5-8981-b8a026f8dc18
1100
+ d2d758c8-ca3c-48f3-bebd-cef5e2a6d5b7
1101
+ c083db28-d790-4602-915d-d7e5df588ef6
1102
+ d04754aa-9310-43b2-9a10-07019d498abe
1103
+ decfd1c6-c12d-4b22-adcf-afe640485ec5
1104
+ 667851b8-c0b6-4073-94ae-07efe816234c
1105
+ 0aebd388-55a4-4425-a9ee-f09b64d94a00
1106
+ 7dafc952-ef17-4105-a2b4-e2da46b9d0a4
1107
+ 69cd4cbf-f1f1-4b92-ae7d-85d85e144554
1108
+ bf0a2ea8-b7be-4e55-aab9-4c9e222a4568
1109
+ aa6c180d-b00f-4f23-b800-8c93eade3eec
1110
+ 80523ee9-f498-4102-85fa-362ae8150d70
1111
+ 1c7e5c46-d4cf-4ba5-9b4c-03379881c2a1
1112
+ 0f6bce99-6334-4f0a-b466-59808c1661ba
1113
+ 78727816-4b9b-4616-97ea-46cfe0ecbe7a
1114
+ 7c1e3829-4687-4f8e-b254-1a186fe05ecb
1115
+ ea7225fd-0a63-4f21-aae6-7651e4d7d538
1116
+ ad8ef724-84cd-403a-934d-9690f7cb96b8
1117
+ 6245b4c7-b1e5-4118-ab4f-ee0bbd613592
1118
+ 961e4bc4-8a41-4f0c-ba12-bc198b9b15f2
1119
+ c68f8dd1-3fea-49e6-934b-7ed7a6b12aeb
1120
+ 0a3868ef-fdba-4aba-bc02-5028d1ed26f4
1121
+ 916d656b-c2a0-4147-bd73-bc4050285591
1122
+ 96baac26-c261-4836-81c7-fae46778f91a
1123
+ 5e71014b-9709-4bc0-b0e7-3402be4a1f5a
1124
+ 0df55687-74be-4dbf-aebe-fe0951b17ecf
1125
+ 14216890-51bb-4300-8893-bf29a39b69b9
1126
+ 20161581-ec53-4508-a21c-328ed66b78f9
1127
+ 563d1c9a-a639-4027-939c-7bc6b792b6b2
1128
+ 90c0f824-6970-46fe-bb24-053fed422366
1129
+ 231d228c-352f-45d7-a395-3af1f69899a4
1130
+ cfac1e14-8ed8-4143-b69c-e1399ee06914
1131
+ c24336fd-f974-42c6-82c8-e20e5054ab8f
1132
+ 0bacb5bb-591d-4756-a2cf-ed90793e65bb
1133
+ d8452234-3ca0-483d-9077-9c1ec8a59668
1134
+ 83b0fc4f-9a36-4dd7-9495-a68c9f82defe
1135
+ 8e3c3065-f05d-4ce2-af8e-f6bbd58d4383
1136
+ 86d8d4ac-a4b1-4574-8979-0457af8c34a6
1137
+ 8b1d8ba4-1ce1-41f3-ab9f-483567e05cd8
1138
+ 70f729ca-b1a2-428f-875c-edbbd988a4b5
1139
+ 0b82763e-b9ee-40e5-8dd5-b8da7e862662
1140
+ f06d7f9b-0da8-4406-b3d3-06cd70de0e0f
1141
+ fc9da694-2604-4bd7-a1ac-215ace732e85
1142
+ e287f510-8de4-40d7-b127-4f793e3d46ac
1143
+ 97e4e710-7348-4e79-b80b-244a6b64ebdd
1144
+ 7b839fc9-8b7c-47f1-b55e-2247dfd8eb41
1145
+ cec24cad-0c95-49a2-bdd3-5635e4b88149
1146
+ 3b86adc3-0a22-4d29-82a9-e02c90471f82
1147
+ 56acc1be-a6cc-479c-9ba1-ee49fcf71f8b
1148
+ 069048a8-3eff-4841-9f81-a3422edea6e3
1149
+ 02def476-33eb-4895-a448-a4398d44e16b
1150
+ 661003f4-0223-4cb5-bb3f-d92ca5d8354d
1151
+ 4168725e-870e-4e1c-be99-1e1a6193d094
1152
+ 8cd9020c-eaba-402f-87b5-f7c5422a49b4
1153
+ f3287a55-a424-4011-a38e-c73700829576
1154
+ c792ef5b-1479-4336-b57c-6d4ee1e4d336
1155
+ 2def272d-f803-4feb-95a9-63409b333fd2
1156
+ 4cd8094f-4300-469d-9523-3ee0f43d1259
1157
+ 66824dc1-5e9d-4997-a2d6-482d3c920b5e
1158
+ 2227ff92-8645-479e-a099-bd8025080e62
1159
+ 7c187ae5-b793-42c2-abca-54e1d0822a32
1160
+ 73736c6c-2654-4ef8-939d-9c4a23eed5d7
1161
+ 22568049-4087-4ca2-8857-a834a9fc7f28
1162
+ b0589218-e06e-4767-9bb4-1ef59f935bdc
1163
+ 45450839-a979-4c26-8b35-9111bafa5731
1164
+ 0d172781-f22a-476f-b0c6-6f0ae6b928c9
1165
+ 8f379213-9adf-40d8-9482-3eed6b03b83b
1166
+ 9de15300-fbcb-4838-be91-6b646be2646e
1167
+ 10c9cece-4f33-4fa9-8c1a-5974d16c1c0a
1168
+ 6afade94-d8e7-4b29-be3e-9373d0d2d634
1169
+ 3745bd24-ceb7-4760-98ea-68b54de2141c
1170
+ 66f0c633-292e-44b2-ad78-7ec57a8507e6
1171
+ f0ebc587-3687-494d-a707-2a5d52b64719
1172
+ 36dcdc61-378f-4087-a43f-659e58eb6440
1173
+ 5b982afa-3c1b-49e1-9508-77d0f396c3f6
1174
+ 77f71fa8-7ddc-430a-8f66-4af710903388
1175
+ cada8157-091c-491d-96b8-9da4dbf1c973
1176
+ b1b83ddb-38ca-48d2-9142-dbc8240c2067
1177
+ 92c76cdf-8b91-4a05-806d-121429534d8f
1178
+ 4403cf98-cd76-4233-b92f-585665ccbe7e
1179
+ 00cad7aa-fd92-486d-b309-59d03fa51dfa
1180
+ 1f541cce-f10b-4cd3-814f-8e2d527df8f5
1181
+ 464c4a51-a74f-4ff4-9ece-8d38b9c22bfc
1182
+ a20923c1-a2d6-40ce-b7ce-f23ce249f460
1183
+ 42efe6bf-aeff-4777-a189-d2872be008b5
1184
+ 01ad22c9-6626-46cf-b5e2-a316faacfb99
1185
+ 6f0b44c4-0067-4677-a775-53181d9b0457
1186
+ 40dc3bbc-c8c4-4e6d-a2a5-32a357f3c291
1187
+ b2fea2b1-2404-4cf2-9be3-79879011cba6
1188
+ e71c943b-75c0-4055-92fc-115d1c8f6d8a
1189
+ 073bdef7-e4cb-49ea-b006-b3d6f53f34b3
1190
+ fe0f7a34-97d0-4817-b608-210d2aa0bce9
1191
+ d67e303e-9309-473f-8857-1cc3ad78983b
1192
+ cef7bc84-112c-4133-9fa5-2a046c2b903a
1193
+ 2f820d40-743f-49a8-b289-55276960970e
1194
+ fa08ac41-74ca-42d3-80e6-6728cc3c1854
1195
+ ee1020b8-2dca-4ea2-92de-5f6a56ea332f
1196
+ 97ecbdcf-f044-4d75-9b46-b7ba0f35ef19
1197
+ 262871b5-eee7-4e65-9532-9a219b5aa52b
1198
+ 32805896-b265-4445-8992-ab30e98415f8
1199
+ 5ccd281c-9ede-49d8-9f61-f8f228565472
1200
+ 4773786c-6320-4a24-81e9-d735dbf9476b
1201
+ a3b39b50-809e-45bd-87d9-de565461645b
1202
+ 91d27f06-a756-45d4-9547-673a9ef0a05f
1203
+ 79fb81e5-7025-46c7-9e0c-e9d97658929b
1204
+ afe5310d-200e-4444-ad2d-9fb34fee5230
1205
+ cdd0ce74-4698-4394-aaf2-00e159577d3f
1206
+ 59cb65bb-7d1e-4bd9-9468-a76658b4b50f
1207
+ e83b0f8c-e9e5-4b38-ad3a-3906a3bb296a
1208
+ 92cd0d7e-2465-46fa-be63-30cfadc347e3
1209
+ cfff9bb7-a95c-446f-84f6-27fa997b4ce2
1210
+ 3bc38ebc-8109-4b4d-b43c-aad3bd0dfed2
1211
+ ac651c92-0938-4258-8c22-a8d1e881af61
1212
+ 6a1dac0d-5945-4a81-9259-ce49de3ecf79
1213
+ 00a6dd13-d5b0-4743-b252-ed61e61f1d49
1214
+ cb55bedd-c5ff-4bbb-83a9-b8287d3bb77c
1215
+ 45f15f81-ec4e-4db4-b42d-4121a564d485
1216
+ de5ca2af-8e72-4fa4-92d2-65295781654e
1217
+ 0d26fb16-d4ba-4c47-9c32-5f8f052e7396
1218
+ 77814f97-e0c5-40dc-91ff-3e0fc5003d0d
1219
+ e8a5f8a4-d01c-4599-bc3b-980157bf14ed
1220
+ b9643892-d3dc-4dba-a18f-b9f8e44cbcb4
1221
+ 934c8086-19a8-4aac-aae9-c02a912cbf9e
1222
+ c70e2763-0e1b-4c8b-b056-ecbe28831b22
1223
+ ad9c8e7b-a290-4c64-8c41-972dfc201055
1224
+ f3a8d0f5-ac34-4732-858a-39162f491f4b
1225
+ 8bb82e72-b893-467a-8844-f3a1010548ef
1226
+ 3cbf69e4-1c29-4515-9a03-67c3526e91e1
1227
+ 2bb3f8db-a6b0-49b8-8c0f-686774acf00a
1228
+ 4df80aae-3500-463b-884d-63d034e6414f
1229
+ dde3ddc3-403e-4935-a7f7-eca575e05b99
1230
+ 1bf59cee-8985-4d84-a34f-e7c35e492900
1231
+ 9a533209-1d5e-4382-a2f8-c109605845e3
1232
+ ef2cad65-06b2-4b1a-8956-c387721d2051
1233
+ 0a22a1c1-844c-4f62-8eeb-f16eee62357f
1234
+ 77b1cae6-7e57-47f9-83ae-c68243792d36
1235
+ a4b3be28-cc60-43f9-8158-0e098eb5aa82
1236
+ 9706857d-4232-4f55-9873-871da2906f3a
1237
+ eb151659-2bf2-4682-899b-73f2ba10d179
1238
+ 8162166b-41c8-4b1a-baf2-14df7feddd83
1239
+ ec6885cb-287c-421e-b16d-e63a59c21d80
1240
+ 0e31e520-9d8f-4373-bd95-058d316902ad
1241
+ 04d87074-8116-4f09-b6e5-10670c9e772d
1242
+ a759a24a-3447-4554-99df-9dc1b647eb8d
1243
+ 3054ec91-4ea2-4612-8b0e-8f3ba0c6b981
1244
+ fea8a839-1976-4457-b8c7-c722e63faea9
1245
+ 98895ed3-7fc5-4dc0-ae9b-d808971e9334
1246
+ e469c7e2-bcbd-4cf6-97d7-3f3562e5c1a9
1247
+ 3c3266b2-ecb8-4d81-8693-bc2caa4b1409
1248
+ f7d5c603-29d6-4800-a4fa-768819f52a84
1249
+ 74593ce4-28eb-42e6-8ee0-02f16e704788
1250
+ 3940a14c-f0ae-4636-8f03-52daa071f084
1251
+ 71d1fd0e-6665-4b45-8b2a-3460d36e368a
1252
+ ab1786c9-b44c-40e2-8d59-5f7ddf06dceb
1253
+ b7501cba-7399-4e36-9ee4-38308487395f
1254
+ 9357c6f2-9c17-4259-a4bd-7a715e7331e4
1255
+ 3ce1d69f-2a22-434d-8902-86ff4acb155b
1256
+ 45cb84f9-a925-43f8-aa7e-0fba6e23a86e
1257
+ 0822b710-baa5-4b66-b0da-96b72c15f846
1258
+ 196a6da7-56bc-443c-ad04-d80a0bbf31fa
1259
+ 95fa7feb-562e-4085-bc83-4dd14bd9862b
1260
+ 6b93427f-465c-436b-a841-78424da94581
1261
+ 333e7b03-d350-4bea-b980-f1bd217bd164
1262
+ 561e7156-f761-4509-a714-e8b2b8e754a4
1263
+ 6d766fcc-76f7-4942-bb40-1aa9c8b2020b
1264
+ 4c1ce02e-53fd-4b0d-b895-14f5e2fbc78f
1265
+ f807401e-bd24-4d51-a0e3-40d20fd5e670
1266
+ e3cb859e-73ca-4cef-8c08-296bafdb43cd
1267
+ ba599750-543d-4b8f-bf65-da170082a25e
1268
+ 2f5e3fbf-bd7a-4b11-b75d-ef62aa2f622d
1269
+ 72df40a1-9bf5-4e49-86f5-5db56639de05
1270
+ 2f6dc326-3689-4190-a8f8-674a5e6d688b
1271
+ d744484b-0012-4882-8532-14adc4fc0907
1272
+ 6f408dd3-343d-49cc-846b-103660ab5275
1273
+ 41424c96-9d0a-43b0-895c-7383261e6337
1274
+ c2ebdf8c-3990-4d02-9760-41dc1f131419
1275
+ ce433b23-9913-4265-a1ed-7a0c24e54384
1276
+ 3512c265-1506-47ad-8ade-aa8891f65ced
1277
+ a7ea76ee-1479-4b88-91db-35124d52a989
1278
+ ecf4c73a-1b9d-492a-b18a-6a3276e163b1
1279
+ f8b4b1a2-c85f-4595-8680-67ecf53d3dc4
1280
+ 2eff9418-fd22-4cec-854a-ccc1ba2681bc
1281
+ abc64c60-1cc8-49c1-8489-79592aafdf8a
1282
+ f3566beb-664b-4df0-8a83-140ae9c2952e
1283
+ c9f4c6e1-4fd2-453e-acb8-590e7ba5c8ee
1284
+ 280ab94b-ebd0-4245-85a1-4cacd670588f
1285
+ 23c5bf8a-7781-42d4-b6d8-2ab6025157c7
1286
+ 96bee032-4903-4d47-ade4-6535f0590fe2
1287
+ f4a17391-0f26-448d-831a-7f69e22d3414
1288
+ 32bd2d54-16a9-4b34-aff8-daefce73b626
1289
+ d990a808-367c-415f-8e3a-8eac6c950e72
1290
+ 7f534830-cde5-45ff-87fc-d2072a584cae
1291
+ fd1b1d67-ac78-43a5-9924-b12157d72cb6
1292
+ 8ef56f71-6d85-4ff4-949e-2c386d99a38e
1293
+ 6ede3c7d-44fd-4bc9-85fb-7ccb75d7d731
1294
+ fcb6b025-6e41-4e97-b4b5-d5fdf0ebd3cb
1295
+ 150e45fa-eb77-4a8b-bd60-d4801dff8c9f
1296
+ 30a2a49c-ea8a-4199-a9e2-7b21515d3483
1297
+ 9e3cebb7-8a16-471a-9b32-d9b4e294896e
1298
+ 1c761444-ece6-46c0-8b95-427f2aa8f405
1299
+ b9e252ee-51c4-480d-8dc0-6a0a6022fa0f
1300
+ 7be57a0b-9f5a-4682-a18b-1998d938451e
1301
+ 570b3b00-ff83-4eff-9313-9c0ef967d9b6
1302
+ 1c4c0679-9b40-4624-8e8d-b688a3a69929
1303
+ d39e0bcf-5f2c-4468-abe6-ae18b3c407cb
1304
+ 09950cc3-4936-4385-8fff-48e5c042595b
1305
+ d85733f6-51c4-4046-b51c-73894f5aa621
1306
+ 2f86293e-823d-4e2d-8c54-2f888e2639ed
1307
+ 19c3829d-7af3-4cb6-878c-7d29d565edef
1308
+ 9c50296b-217b-4e84-aaae-9015daee59a9
1309
+ 247cde12-df65-4d59-ac01-449680e83871
1310
+ bd322fcd-9b14-4ce8-999d-d4ef896c8363
1311
+ d1586c7d-29ba-4060-a828-02c162ba812d
1312
+ 61b218b2-52fb-465f-855f-41e5164d7998
1313
+ 901cebcb-d84b-43ed-a80f-719e62561b82
1314
+ 73d9fbc1-b6b3-4b3e-89db-3a4de56b924c
1315
+ 23c5085a-8ead-4f74-be3b-9287e4019e98
1316
+ 8bb95fbe-efa4-416b-9558-a0301b846f25
1317
+ 0099226c-9bec-44aa-ba43-2b90eb7b8379
1318
+ b1ff7a1d-74e0-4bbb-a047-2f70eb1bc568
1319
+ c47b2e19-8a8f-4594-9144-8b7be780ab74
1320
+ a2527385-d99e-4cc8-a407-250da018a3c9
1321
+ edad0957-8423-4647-bdd2-c6f4c1d15f38
1322
+ 602a2ac1-280b-46b6-bf3c-1191cb2fc224
1323
+ 534f433c-14c2-4eb7-851a-a23a8b2ee340
1324
+ 136cd3d8-5eff-44a2-b761-dcd0c190c71b
1325
+ 5e3c697c-9aef-4686-9055-b34185b21a75
1326
+ f4e73920-1679-43d6-a307-4b6672811e46
1327
+ 673f2b3e-413a-4450-aca8-ffbfb56db7be
1328
+ 83decc40-f9da-469a-9ce2-1d173b06e5b3
1329
+ e14c702f-a451-46e6-ab31-c1213ec2f1be
1330
+ 75cc6a20-2451-4922-844b-3e376e095657
1331
+ a50d179d-4dc4-4cf4-afb3-0c43cf86d44c
1332
+ ef2d0ea2-a3aa-45ef-83e3-6d8b0d863dc5
1333
+ af223382-86df-43f7-989b-331fe0436810
1334
+ 1876d795-0c6f-4e0e-8165-e7a0c8a6e77f
correspondence/SegSwap/data/create_pairs.py ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import glob, os
2
+
3
+ import numpy as np
4
+ import json
5
+
6
+ from collections import defaultdict
7
+ import argparse
8
+
9
+ # out = ['f2f93854-2634-449c-b68e-aebf4743ac9f', '7d59164c-e0bc-4ae0-95c9-733e4c8b0d6a', 'cace80a1-42df-4cf4-a1ec-80647638a443', '8fa671be-2624-4783-8572-5f4b7722b6c0', 'ca1434ea-b787-44ad-a9da-e0f7d5167a35', 'cfd2c825-45d1-4e59-b33f-b6dff8c174c8', '39d48b6a-66e8-4bbb-a596-4461b601cabc', 'f4dead01-fa3d-4aa5-8b59-13a0d9186dd2', '4cf43506-d0a6-4c42-9136-adb2ecd57411', '89815623-8ece-4e3c-8879-f1f32b299527', '5fd383f1-c8bb-42d7-b98b-7418d99d9bb4', 'b1b794e8-7839-46ab-b05f-f4b1c16d5420', 'b7dbb47c-d850-4853-b434-7b20519ea9e5', '636eaa0b-d65d-4b25-bbdd-1065f84ef89e', 'd2b0ee95-2a76-4b69-aebf-3c7e553f8e2b', 'cea1b20b-6e18-4bb6-87e0-164a2b8c3dc0', 'fba2c124-99ec-40ed-8d6a-46808afe6d98', '549e5b97-f93a-4500-8f02-5be13017dce5', '6cbfa460-72a7-4038-b6af-4305a1cc05dd', '319a9983-f70c-4224-a3a7-33338c8a9f35', 'bcfb6839-3c09-4d42-9d9c-59042f6ab721', '3ca2798d-cfe3-46c6-a8bc-cc4689bd6d75', 'aa40670e-4487-4f60-a27b-26f7372ef8e7', '389cfa3f-3a4c-4b8f-9535-d7c95ffd594c', '214bdc0d-fa50-4a84-b771-c0a7bdeafadc', '08504348-4f72-477e-a08f-1050204ae55e', 'd35a162e-c38e-4017-94d1-539f26651115', '925ebe22-f97a-4e79-aed3-9873cf461c3c', 'c0b7d130-2004-4450-ad94-ea3167bd9fab', 'f1ce9be1-b623-4ce4-84e2-37e9f88eea86', 'c288cb15-81c7-4463-814f-959c12740499', 'b69de073-c157-4cff-8eba-97bfc7baa012', '289c4873-5bf9-41b9-b784-aba52b54cd4d', '0bcb8b46-cc45-4bcb-a627-85633e54e060', '819780c3-97c0-4ac6-b37f-8c66abf8167d', '9512a137-40b6-49c6-a03d-a3340b9dd277', '393e9b60-504c-4cc7-a90b-eb78dd62d5ff', 'fb09baec-1a5a-40b4-8d72-e581c93fbd77', '3042b472-99cc-4407-a79e-f76916b95737', '4939903a-2c73-4633-ae15-618be39990e7', 'ced0e340-b958-4505-badc-c8c2f256c145', 'e53ae33b-61b6-4c3e-8be0-5696f961704b', '759aa03c-c8e1-4fcb-8817-85948100ed33', '31df8578-1fd0-4406-9008-900a88f7990a', '9506c70a-1639-42ea-bbfc-2b9c0f8c9394', 'e46f9a53-7625-4827-8b92-79c958d3524e', '3125dca7-b99e-4b2b-8844-2d912619b353', 'b65a60e0-f224-4b3d-bf78-ba44e12c4ac1', 'c53daadd-09f0-485b-a51c-1d5679f5fb09', 'b378d186-0587-40ed-afdf-875e6dfb5876', '8000dfb2-accb-4bb8-abfb-cc2d677d0b2f', 'ff93ae48-0daa-418c-9d5c-b5b0b6d23efb', '6d0a7c80-ae8c-4673-8f70-c09fd6fbebe8', 'f0cd03a5-9cd8-4510-87c1-a5c493197b75', 'c16175f5-f990-48a1-9dcc-6a385f108687', '816dd81e-93b1-433c-83ff-264ae404a3bf', 'f8bed5fe-3e09-4885-9539-edb4d5b2279a', '601c9c61-fc2b-4ac2-b3c4-dda557c2563b', '56c35d79-acb1-47a1-8590-7e5cb2585ee5', 'd5193bae-a7f5-4e8a-9c96-09f557c7ea9d', '8d7646a3-ce7b-425d-b16e-9a63a1166576', '0b89efcd-59bf-4f0b-a81a-50dee0b79982', '9681b4c6-9713-4bb3-aa9a-7df7daa4e74d', '69fac17f-6527-493d-8dac-cd3bb61ce23e', '5ee00a17-171f-46a4-927b-3aa9d0fe176e', 'ce914bec-f8c1-46ef-ae28-f1ff030801d1']
10
+ # out = ['5b225fd3-e57a-446e-b228-dd452c17a235', '5670a1c7-d4ac-4d05-bbf0-6c8161f02824', '6fcb3904-2aee-41e7-a45f-4f498c8e1e82', '01f3ef42-91ea-4561-a26a-aad776212c98', '4c075527-7526-4c00-9681-53258fe70881', 'af96da5b-4005-4aaa-a8d0-e2a97b471090']
11
+
12
+ def make_pairs(data_dir, split='train', setting='egoexo'):
13
+
14
+ with open(f'{data_dir}/split.json', 'r') as fp:
15
+ splits = json.load(fp)
16
+
17
+ split_takes = splits[split]
18
+
19
+ pairs = []
20
+ for take in split_takes:
21
+
22
+ # take = take[0]
23
+ # clear missing takes
24
+ # if take in out:
25
+ # continue
26
+
27
+ with open(f'{data_dir}/{take}/annotation.json', 'r') as fp:
28
+ annotation = json.load(fp)
29
+
30
+ for obj_name in annotation['masks']:
31
+
32
+ ego_cam = None
33
+ for cam in annotation['masks'][obj_name]:
34
+ if 'aria' in cam:
35
+ ego_cam = cam
36
+
37
+ if ego_cam is None:
38
+ continue
39
+
40
+ for cam in annotation['masks'][obj_name]:
41
+
42
+ if 'aria' in cam:
43
+ continue
44
+
45
+ if setting == 'egoexo':
46
+ dcam = ego_cam
47
+ elif setting == 'exoego':
48
+ dcam = cam
49
+ else:
50
+ raise Exception(f"Setting {setting} not recognized.")
51
+
52
+ for idx in annotation['masks'][obj_name][dcam]:
53
+ cam_rgb_path = f'{data_dir}//{take}//{cam}//{obj_name}//rgb//{idx}'
54
+ cam_mask_path = f'{data_dir}//{take}//{cam}//{obj_name}//mask//{idx}'
55
+
56
+ aria_rgb_path = f'{data_dir}//{take}//{ego_cam}//{obj_name}//rgb//{idx}'
57
+ aria_mask_path = f'{data_dir}//{take}//{ego_cam}//{obj_name}//mask//{idx}'
58
+
59
+ pairs.append( (aria_rgb_path, aria_mask_path, cam_rgb_path, cam_mask_path) )
60
+
61
+ print(f'{split} - pairs: ', len(pairs))
62
+ with open(f'{data_dir}/{split}_{setting}_pairs.json', 'w') as fp:
63
+ json.dump(pairs, fp)
64
+
65
+
66
+ if __name__ == '__main__':
67
+ parser = argparse.ArgumentParser()
68
+ parser.add_argument('--data_dir', type=str, required=True)
69
+ args = parser.parse_args()
70
+
71
+ # make_pairs(args.data_dir, 'train', 'egoexo')
72
+ make_pairs(args.data_dir, 'val', 'egoexo')
73
+
74
+ # make_pairs(args.data_dir, 'train', 'exoego')
75
+ make_pairs(args.data_dir, 'val', 'exoego')
correspondence/SegSwap/data/download_uids.sh ADDED
@@ -0,0 +1 @@
 
 
1
+ for x in `cat data/correspondence_takes.txt`; do egoexo -o /path/to/data/dir/ --parts takes --uid $x -y; done
correspondence/SegSwap/data/input2.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a1e4ec30776b144371295db7e142e53b94d8f57a3793644bbea0ae01f9b359e4
3
+ size 70657908
correspondence/SegSwap/data/only_extract_frames.py ADDED
@@ -0,0 +1,177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ from lzstring import LZString
4
+ from pycocotools import mask as mask_utils
5
+ import numpy as np
6
+ from PIL import Image
7
+ from decord import VideoReader
8
+ from decord import cpu
9
+ import argparse
10
+ import cv2
11
+ from time import time
12
+
13
+ def save_frames(frames, frame_idxes, output_folder, is_aria=False):
14
+ # resize and save frames
15
+ scale = 4
16
+ if is_aria:
17
+ scale = 2
18
+
19
+ for img, fidx in zip(frames, frame_idxes):
20
+ H, W, C = img.shape
21
+ if H < 1408:
22
+ break
23
+ img2 = cv2.resize(img, (W//scale, H//scale))
24
+ cv2.imwrite(os.path.join(output_folder, f'{fidx}.jpg'), img2)
25
+
26
+ def processVideo(takepath, take_name, ego_cam, exo_cams, outputpath, take_id):
27
+
28
+ if not os.path.exists(f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4"):
29
+ return -1
30
+ print("take_name:", take_name) # debug
31
+
32
+ # Subsample the ego video
33
+ vr = VideoReader(
34
+ f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4", ctx=cpu(0)
35
+ )
36
+ len_video = len(vr)
37
+ # subsampling at 1fps -- none of the videos are annotated at more than 1 fps
38
+ # subsample_idx = np.arange(0, len_video, 1) # debug
39
+ subsample_idx = np.arange(3300, 3901, 1) # debug
40
+
41
+ if not os.path.exists(f"{outputpath}/{take_id}/{ego_cam}"):
42
+ os.makedirs(f"{outputpath}/{take_id}/{ego_cam}")
43
+ frames = vr.get_batch(subsample_idx).asnumpy()[...,::-1]
44
+ save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{ego_cam}", is_aria=True)
45
+
46
+ # Subsample the exo videos
47
+ for exo_cam in exo_cams:
48
+ if not os.path.isfile(f"{outputpath}/{take_id}/{exo_cam}.mp4"):
49
+ try:
50
+ vr = VideoReader(
51
+ f"{takepath}/{take_name}/frame_aligned_videos/{exo_cam}.mp4", ctx=cpu(0)
52
+ )
53
+ except:
54
+ print(f"{exo_cam} not available")
55
+ continue
56
+ os.makedirs(f"{outputpath}/{take_id}/{exo_cam}")
57
+ frames = vr.get_batch(subsample_idx).asnumpy()[...,::-1]
58
+
59
+ save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{exo_cam}", is_aria=False)
60
+
61
+ return subsample_idx.tolist()
62
+
63
+ def decode_mask(width, height, encoded_mask):
64
+ try:
65
+ decomp_string = LZString.decompressFromEncodedURIComponent(encoded_mask)
66
+ except:
67
+ return None
68
+ decomp_encoded = decomp_string.encode()
69
+ rle_obj = {
70
+ "size": [height, width],
71
+ "counts": decomp_encoded,
72
+ }
73
+ rle_obj['counts'] = rle_obj['counts'].decode('ascii')
74
+ return rle_obj
75
+
76
+ def processMask(anno, new_anno):
77
+ for object_id in anno.keys():
78
+ new_anno[object_id] = {}
79
+ for cam_id in anno[object_id].keys():
80
+ new_anno[object_id][cam_id] = {}
81
+ for frame_id in anno[object_id][cam_id]["annotation"].keys():
82
+ width = anno[object_id][cam_id]["annotation"][frame_id]["width"]
83
+ height = anno[object_id][cam_id]["annotation"][frame_id]["height"]
84
+ encoded_mask = anno[object_id][cam_id]["annotation"][frame_id]["encodedMask"]
85
+ coco_mask = decode_mask(width, height, encoded_mask)
86
+ new_anno[object_id][cam_id][frame_id] = coco_mask
87
+
88
+ if __name__ == "__main__":
89
+ parser = argparse.ArgumentParser()
90
+ parser.add_argument(
91
+ "--takepath",
92
+ help="EgoExo take data root",
93
+ required=True
94
+ )
95
+ parser.add_argument(
96
+ "--annotationpath",
97
+ help="Annotations json file path",
98
+ required=True
99
+ )
100
+ parser.add_argument(
101
+ "--split_path",
102
+ help="path to split.json",
103
+ required=True
104
+ )
105
+ parser.add_argument(
106
+ "--split",
107
+ help="train/val/test split to process",
108
+ required=True
109
+ )
110
+ parser.add_argument(
111
+ "--outputpath",
112
+ help="Output data root",
113
+ required=True
114
+ )
115
+ args = parser.parse_args()
116
+
117
+ with open(args.split_path, "r") as fp:
118
+ data_split = json.load(fp)
119
+ # take_list = data_split[args.split]
120
+ take_list = ['b511dfed-58f4-4c91-bf0a-f8ce9d47aea9'] # debug
121
+
122
+ os.makedirs(args.outputpath, exist_ok=True)
123
+ # Read the annotation file
124
+ with open(args.annotationpath, "r") as f:
125
+ annos = json.load(f)
126
+ annos = annos['annotations']
127
+
128
+ start = time()
129
+
130
+ for take_id in take_list:
131
+ if os.path.exists(f"{args.outputpath}/{take_id}"):
132
+ print(f"{take_id} already done!")
133
+ continue
134
+
135
+ # Create the output folder
136
+ os.makedirs(f"{args.outputpath}/{take_id}", exist_ok=True)
137
+ new_anno = {}
138
+ # Get the corresponding take name
139
+ anno = annos[take_id]
140
+ take_name = anno["take_name"]
141
+
142
+ valid_cams = set()
143
+ for x in anno['object_masks'].keys():
144
+ valid_cams.update(set(anno['object_masks'][x].keys()))
145
+
146
+ ego_cams = []
147
+ exo_cams = []
148
+ for vc in valid_cams:
149
+ if 'aria' in vc:
150
+ ego_cams.append(vc)
151
+ else:
152
+ exo_cams.append(vc)
153
+ exo_cams = ["cam01"]
154
+ if len(ego_cams) > 1:
155
+ print(take_id, 'HAS MORE THAN ONE EGO')
156
+ breakpoint()
157
+ print(f"Processing take {take_id} {take_name}")
158
+
159
+ # Process the masks
160
+ print("Start processing masks")
161
+ # new_anno["masks"] = {} # debug
162
+ # processMask(anno['object_masks'], new_anno["masks"])
163
+
164
+ # # Process the videos
165
+ print("Start processing Videos")
166
+ subsample_idx = processVideo(args.takepath, take_name, ego_cam=ego_cams[0], exo_cams=exo_cams, outputpath=args.outputpath, take_id=take_id)
167
+ if subsample_idx == -1:
168
+ print(f"{args.takepath}/{take_name}/frame_aligned_videos/{ego_cams[0]}.mp4 does not exist")
169
+ continue
170
+ # new_anno["subsample_idx"] = subsample_idx # debug
171
+
172
+ # Save the annotation
173
+ # with open(f"{args.outputpath}/{take_id}/annotation.json", "w") as f: # debug
174
+ # json.dump(new_anno, f)
175
+
176
+ end = time()
177
+ print(f"Total time: {end-start} seconds")
correspondence/SegSwap/data/only_extract_frames_optimized.py ADDED
@@ -0,0 +1,284 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ from lzstring import LZString
4
+ from pycocotools import mask as mask_utils
5
+ import numpy as np
6
+ from PIL import Image
7
+ from decord import VideoReader, gpu, cpu
8
+ import argparse
9
+ import cv2
10
+ from time import time
11
+ from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
12
+ from multiprocessing import cpu_count
13
+ import functools
14
+ from pathlib import Path
15
+
16
+ def save_frames_batch(frames, frame_idxes, output_folder, is_aria=False, quality=95):
17
+ """Optimized batch frame saving with reduced resize operations"""
18
+ scale = 2 if is_aria else 4
19
+ os.makedirs(output_folder, exist_ok=True)
20
+
21
+ # Check dimensions once for the entire batch
22
+ if len(frames) > 0:
23
+ H, W, C = frames[0].shape
24
+ if H < 1408:
25
+ return
26
+
27
+ # Batch resize and save
28
+ for img, fidx in zip(frames, frame_idxes):
29
+ # Use INTER_AREA for better quality when downsampling
30
+ img_resized = cv2.resize(img, (W//scale, H//scale), interpolation=cv2.INTER_AREA)
31
+ output_path = os.path.join(output_folder, f'{fidx}.jpg')
32
+ # Use optimized JPEG parameters
33
+ cv2.imwrite(output_path, img_resized, [cv2.IMWRITE_JPEG_QUALITY, quality])
34
+
35
+ def process_single_camera(args_tuple):
36
+ """Process a single camera video - designed for parallel execution"""
37
+ takepath, take_name, cam_id, subsample_idx, outputpath, take_id, is_ego = args_tuple
38
+
39
+ video_path = f"{takepath}/{take_name}/frame_aligned_videos/{cam_id}.mp4"
40
+ output_dir = f"{outputpath}/{take_id}/{cam_id}"
41
+
42
+ # Skip if already processed
43
+ if os.path.exists(output_dir) and len(os.listdir(output_dir)) > 0:
44
+ return f"{cam_id}: Already processed"
45
+
46
+ if not os.path.exists(video_path):
47
+ return f"{cam_id}: Video file not found"
48
+
49
+ try:
50
+ # Try GPU first, fallback to CPU
51
+ try:
52
+ vr = VideoReader(video_path, ctx=gpu(0))
53
+ except:
54
+ vr = VideoReader(video_path, ctx=cpu(0))
55
+
56
+ # Get frames in batch - this is more efficient than individual reads
57
+ frames = vr.get_batch(subsample_idx).asnumpy()
58
+
59
+ # Convert BGR to RGB more efficiently
60
+ frames = frames[..., ::-1]
61
+
62
+ save_frames_batch(
63
+ frames=frames,
64
+ frame_idxes=subsample_idx,
65
+ output_folder=output_dir,
66
+ is_aria=is_ego
67
+ )
68
+
69
+ return f"{cam_id}: Successfully processed {len(frames)} frames"
70
+
71
+ except Exception as e:
72
+ return f"{cam_id}: Error - {str(e)}"
73
+
74
+ def processVideo_parallel(takepath, take_name, ego_cam, exo_cams, outputpath, take_id, max_workers=None):
75
+ """Parallel video processing for all cameras"""
76
+
77
+ ego_video_path = f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4"
78
+ if not os.path.exists(ego_video_path):
79
+ return -1
80
+
81
+ # Get video length from ego camera to determine subsample indices
82
+ try:
83
+ vr = VideoReader(ego_video_path, ctx=cpu(0))
84
+ len_video = len(vr)
85
+ # subsample_idx = np.arange(0, len_video, 1) # Original: every frame
86
+ subsample_idx = np.arange(3510, 4111, 1) # Debug range
87
+ except Exception as e:
88
+ print(f"Error reading ego video: {e}")
89
+ return -1
90
+
91
+ # Prepare arguments for parallel processing
92
+ camera_args = []
93
+
94
+ # Add ego camera
95
+ camera_args.append((
96
+ takepath, take_name, ego_cam, subsample_idx,
97
+ outputpath, take_id, True
98
+ ))
99
+
100
+ # Add exo cameras
101
+ for exo_cam in exo_cams:
102
+ camera_args.append((
103
+ takepath, take_name, exo_cam, subsample_idx,
104
+ outputpath, take_id, False
105
+ ))
106
+
107
+ # Process cameras in parallel
108
+ if max_workers is None:
109
+ max_workers = min(len(camera_args), cpu_count())
110
+
111
+ with ThreadPoolExecutor(max_workers=max_workers) as executor:
112
+ results = list(executor.map(process_single_camera, camera_args))
113
+
114
+ # Print results
115
+ for result in results:
116
+ print(f" {result}")
117
+
118
+ return subsample_idx.tolist()
119
+
120
+ def process_single_take(args_tuple):
121
+ """Process a single take - designed for parallel execution"""
122
+ take_id, annos, takepath, outputpath = args_tuple
123
+
124
+ if os.path.exists(f"{outputpath}/{take_id}"):
125
+ return f"{take_id}: Already done!"
126
+
127
+ try:
128
+ # Create output folder
129
+ os.makedirs(f"{outputpath}/{take_id}", exist_ok=True)
130
+
131
+ # Get annotation info
132
+ anno = annos[take_id]
133
+ take_name = anno["take_name"]
134
+
135
+ # Find valid cameras
136
+ valid_cams = set()
137
+ for x in anno['object_masks'].keys():
138
+ valid_cams.update(set(anno['object_masks'][x].keys()))
139
+
140
+ ego_cams = [vc for vc in valid_cams if 'aria' in vc]
141
+ # exo_cams = [vc for vc in valid_cams if 'aria' not in vc]
142
+ exo_cams = ["cam03"] # debug
143
+
144
+ if len(ego_cams) > 1:
145
+ return f"{take_id}: ERROR - Multiple ego cameras found"
146
+
147
+ if len(ego_cams) == 0:
148
+ return f"{take_id}: ERROR - No ego camera found"
149
+
150
+ print(f"Processing take {take_id} {take_name}")
151
+ print(f" Ego cameras: {ego_cams}")
152
+ print(f" Exo cameras: {exo_cams[:5]}...") # Show first 5 only
153
+
154
+ # Process videos with parallel camera processing
155
+ subsample_idx = processVideo_parallel(
156
+ takepath, take_name, ego_cam=ego_cams[0],
157
+ exo_cams=exo_cams, outputpath=outputpath, take_id=take_id
158
+ )
159
+
160
+ if subsample_idx == -1:
161
+ return f"{take_id}: ERROR - Ego video not found"
162
+
163
+ return f"{take_id}: Successfully processed {len(subsample_idx)} frames across {len(ego_cams) + len(exo_cams)} cameras"
164
+
165
+ except Exception as e:
166
+ return f"{take_id}: ERROR - {str(e)}"
167
+
168
+ def decode_mask(width, height, encoded_mask):
169
+ """Optimized mask decoding with better error handling"""
170
+ try:
171
+ decomp_string = LZString.decompressFromEncodedURIComponent(encoded_mask)
172
+ if decomp_string is None:
173
+ return None
174
+ except:
175
+ return None
176
+
177
+ try:
178
+ decomp_encoded = decomp_string.encode()
179
+ rle_obj = {
180
+ "size": [height, width],
181
+ "counts": decomp_encoded.decode('ascii'),
182
+ }
183
+ return rle_obj
184
+ except:
185
+ return None
186
+
187
+ def processMask(anno, new_anno):
188
+ """Original mask processing function - kept for compatibility"""
189
+ for object_id in anno.keys():
190
+ new_anno[object_id] = {}
191
+ for cam_id in anno[object_id].keys():
192
+ new_anno[object_id][cam_id] = {}
193
+ for frame_id in anno[object_id][cam_id]["annotation"].keys():
194
+ width = anno[object_id][cam_id]["annotation"][frame_id]["width"]
195
+ height = anno[object_id][cam_id]["annotation"][frame_id]["height"]
196
+ encoded_mask = anno[object_id][cam_id]["annotation"][frame_id]["encodedMask"]
197
+ coco_mask = decode_mask(width, height, encoded_mask)
198
+ new_anno[object_id][cam_id][frame_id] = coco_mask
199
+
200
+ if __name__ == "__main__":
201
+ parser = argparse.ArgumentParser()
202
+ parser.add_argument(
203
+ "--takepath",
204
+ help="EgoExo take data root",
205
+ required=True
206
+ )
207
+ parser.add_argument(
208
+ "--annotationpath",
209
+ help="Annotations json file path",
210
+ required=True
211
+ )
212
+ parser.add_argument(
213
+ "--split_path",
214
+ help="path to split.json",
215
+ required=True
216
+ )
217
+ parser.add_argument(
218
+ "--split",
219
+ help="train/val/test split to process",
220
+ required=True
221
+ )
222
+ parser.add_argument(
223
+ "--outputpath",
224
+ help="Output data root",
225
+ required=True
226
+ )
227
+ parser.add_argument(
228
+ "--max_workers",
229
+ help="Maximum number of parallel workers for take processing",
230
+ type=int,
231
+ default=None
232
+ )
233
+ parser.add_argument(
234
+ "--camera_workers",
235
+ help="Maximum number of parallel workers for camera processing within each take",
236
+ type=int,
237
+ default=None
238
+ )
239
+ args = parser.parse_args()
240
+
241
+ # Load data splits
242
+ with open(args.split_path, "r") as fp:
243
+ data_split = json.load(fp)
244
+
245
+ # take_list = data_split[args.split] # Original
246
+ take_list = ['3c744ca5-c64a-4de3-8235-c2f542ac5056'] # Debug
247
+
248
+ os.makedirs(args.outputpath, exist_ok=True)
249
+
250
+ # Load annotations
251
+ print("Loading annotations...")
252
+ with open(args.annotationpath, "r") as f:
253
+ annos = json.load(f)
254
+ annos = annos['annotations']
255
+
256
+ start = time()
257
+
258
+ # Determine optimal number of workers
259
+ if args.max_workers is None:
260
+ max_workers = min(len(take_list), max(1, cpu_count() // 2))
261
+ else:
262
+ max_workers = args.max_workers
263
+
264
+ print(f"Processing {len(take_list)} takes with {max_workers} workers")
265
+
266
+ # Prepare arguments for parallel take processing
267
+ take_args = [(take_id, annos, args.takepath, args.outputpath) for take_id in take_list]
268
+
269
+ if len(take_list) == 1:
270
+ # For single take, don't use process parallelization to avoid overhead
271
+ results = [process_single_take(take_args[0])]
272
+ else:
273
+ # Process takes in parallel
274
+ with ProcessPoolExecutor(max_workers=max_workers) as executor:
275
+ results = list(executor.map(process_single_take, take_args))
276
+
277
+ # Print results
278
+ print("\n=== Processing Results ===")
279
+ for result in results:
280
+ print(result)
281
+
282
+ end = time()
283
+ print(f"\nTotal time: {end-start:.2f} seconds")
284
+ print(f"Average time per take: {(end-start)/len(take_list):.2f} seconds")
correspondence/SegSwap/data/optimization_summary.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ 优化版本的关键改进总结:
4
+
5
+ 1. 并行处理优化 (最重要的性能提升)
6
+ - ProcessPoolExecutor: 并行处理多个take_id
7
+ - ThreadPoolExecutor: 在每个take内并行处理多个相机
8
+ - 可以实现显著的速度提升,特别是在多核CPU上
9
+
10
+ 2. 图片保存优化
11
+ - 批量处理帧而不是逐个处理
12
+ - 使用cv2.INTER_AREA进行更高效的下采样
13
+ - 优化的JPEG压缩参数
14
+ - 减少重复的尺寸检查
15
+
16
+ 3. VideoReader优化
17
+ - 自动尝试GPU加速,失败时回退到CPU
18
+ - 更有效的批量帧读取
19
+ - 减少重复的VideoReader实例创建
20
+
21
+ 4. 文件IO优化
22
+ - 提前检查输出目录是否已存在
23
+ - 减少重复的os.path.exists调用
24
+ - 使用pathlib.Path进行更高效的路径操作
25
+
26
+ 5. 内存和数组操作优化
27
+ - 更高效的BGR到RGB转换
28
+ - 减少不必要的数组复制
29
+ - 优化的错误处理避免异常开销
30
+
31
+ 预期性能提升:
32
+ - 在多核系统上可能有2-8倍的速度提升
33
+ - GPU加速可以进一步提升性能
34
+ - 减少IO等待时间
35
+ - 更好的资源利用率
36
+
37
+ 使用方法:
38
+ python only_extract_frames_optimized.py \\
39
+ --takepath /path/to/takes \\
40
+ --annotationpath /path/to/annotations.json \\
41
+ --split_path /path/to/split.json \\
42
+ --split train \\
43
+ --outputpath /path/to/output \\
44
+ --max_workers 4 \\
45
+ --camera_workers 8
46
+ """
47
+
48
+ # 关键性能对比测试代码
49
+ import time
50
+ import os
51
+
52
+ def benchmark_comparison():
53
+ """简单的性能对比测试"""
54
+ print("性能优化对比:")
55
+ print("=" * 50)
56
+
57
+ # 原始方法模拟
58
+ start = time.time()
59
+ # 模拟串行处理
60
+ for i in range(10):
61
+ time.sleep(0.1) # 模拟IO操作
62
+ original_time = time.time() - start
63
+
64
+ # 优化方法模拟
65
+ from concurrent.futures import ThreadPoolExecutor
66
+ start = time.time()
67
+
68
+ def mock_process(x):
69
+ time.sleep(0.1)
70
+ return x
71
+
72
+ with ThreadPoolExecutor(max_workers=4) as executor:
73
+ results = list(executor.map(mock_process, range(10)))
74
+
75
+ optimized_time = time.time() - start
76
+
77
+ print(f"原始串行方法时间: {original_time:.2f}秒")
78
+ print(f"优化并行方法时间: {optimized_time:.2f}秒")
79
+ print(f"速度提升: {original_time/optimized_time:.1f}倍")
80
+ print("=" * 50)
81
+
82
+ if __name__ == "__main__":
83
+ benchmark_comparison()
correspondence/SegSwap/data/process_data.py ADDED
@@ -0,0 +1,177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ from lzstring import LZString
4
+ from pycocotools import mask as mask_utils
5
+ import numpy as np
6
+ from PIL import Image
7
+ from decord import VideoReader
8
+ from decord import cpu
9
+ import argparse
10
+ import cv2
11
+ from time import time
12
+
13
+ def save_frames(frames, frame_idxes, output_folder, is_aria=False):
14
+ # resize and save frames
15
+ scale = 4
16
+ if is_aria:
17
+ scale = 2
18
+
19
+ for img, fidx in zip(frames, frame_idxes):
20
+ H, W, C = img.shape
21
+ if H < 1408:
22
+ break
23
+ img2 = cv2.resize(img, (W//scale, H//scale))
24
+ cv2.imwrite(os.path.join(output_folder, f'{fidx}.jpg'), img2)
25
+
26
+ def processVideo(takepath, take_name, ego_cam, exo_cams, outputpath, take_id):
27
+
28
+ if not os.path.exists(f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4"):
29
+ return -1
30
+ print("take_name:", take_name) # debug
31
+
32
+ # Subsample the ego video
33
+ vr = VideoReader(
34
+ f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4", ctx=cpu(0)
35
+ )
36
+ len_video = len(vr)
37
+ # subsampling at 1fps -- none of the videos are annotated at more than 1 fps
38
+ # subsample_idx = np.arange(0, len_video, 1) # debug
39
+ subsample_idx = np.arange(1020, 1621, 1) # debug
40
+
41
+ if not os.path.exists(f"{outputpath}/{take_id}/{ego_cam}"):
42
+ os.makedirs(f"{outputpath}/{take_id}/{ego_cam}")
43
+ frames = vr.get_batch(subsample_idx).asnumpy()[...,::-1]
44
+ save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{ego_cam}", is_aria=True)
45
+
46
+ # Subsample the exo videos
47
+ for exo_cam in exo_cams:
48
+ if not os.path.isfile(f"{outputpath}/{take_id}/{exo_cam}.mp4"):
49
+ try:
50
+ vr = VideoReader(
51
+ f"{takepath}/{take_name}/frame_aligned_videos/{exo_cam}.mp4", ctx=cpu(0)
52
+ )
53
+ except:
54
+ print(f"{exo_cam} not available")
55
+ continue
56
+ os.makedirs(f"{outputpath}/{take_id}/{exo_cam}")
57
+ frames = vr.get_batch(subsample_idx).asnumpy()[...,::-1]
58
+
59
+ save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{exo_cam}", is_aria=False)
60
+
61
+ return subsample_idx.tolist()
62
+
63
+ def decode_mask(width, height, encoded_mask):
64
+ try:
65
+ decomp_string = LZString.decompressFromEncodedURIComponent(encoded_mask)
66
+ except:
67
+ return None
68
+ decomp_encoded = decomp_string.encode()
69
+ rle_obj = {
70
+ "size": [height, width],
71
+ "counts": decomp_encoded,
72
+ }
73
+ rle_obj['counts'] = rle_obj['counts'].decode('ascii')
74
+ return rle_obj
75
+
76
+ def processMask(anno, new_anno):
77
+ for object_id in anno.keys():
78
+ new_anno[object_id] = {}
79
+ for cam_id in anno[object_id].keys():
80
+ new_anno[object_id][cam_id] = {}
81
+ for frame_id in anno[object_id][cam_id]["annotation"].keys():
82
+ width = anno[object_id][cam_id]["annotation"][frame_id]["width"]
83
+ height = anno[object_id][cam_id]["annotation"][frame_id]["height"]
84
+ encoded_mask = anno[object_id][cam_id]["annotation"][frame_id]["encodedMask"]
85
+ coco_mask = decode_mask(width, height, encoded_mask)
86
+ new_anno[object_id][cam_id][frame_id] = coco_mask
87
+
88
+ if __name__ == "__main__":
89
+ parser = argparse.ArgumentParser()
90
+ parser.add_argument(
91
+ "--takepath",
92
+ help="EgoExo take data root",
93
+ required=True
94
+ )
95
+ parser.add_argument(
96
+ "--annotationpath",
97
+ help="Annotations json file path",
98
+ required=True
99
+ )
100
+ parser.add_argument(
101
+ "--split_path",
102
+ help="path to split.json",
103
+ required=True
104
+ )
105
+ parser.add_argument(
106
+ "--split",
107
+ help="train/val/test split to process",
108
+ required=True
109
+ )
110
+ parser.add_argument(
111
+ "--outputpath",
112
+ help="Output data root",
113
+ required=True
114
+ )
115
+ args = parser.parse_args()
116
+
117
+ with open(args.split_path, "r") as fp:
118
+ data_split = json.load(fp)
119
+ # take_list = data_split[args.split]
120
+ take_list = ['09417ca4-3572-4ba1-a1db-7eaf3bd0b1c8'] # debug
121
+
122
+ os.makedirs(args.outputpath, exist_ok=True)
123
+ # Read the annotation file
124
+ with open(args.annotationpath, "r") as f:
125
+ annos = json.load(f)
126
+ annos = annos['annotations']
127
+
128
+ start = time()
129
+
130
+ for take_id in take_list:
131
+ if os.path.exists(f"{args.outputpath}/{take_id}"):
132
+ print(f"{take_id} already done!")
133
+ continue
134
+
135
+ # Create the output folder
136
+ os.makedirs(f"{args.outputpath}/{take_id}", exist_ok=True)
137
+ new_anno = {}
138
+ # Get the corresponding take name
139
+ anno = annos[take_id]
140
+ take_name = anno["take_name"]
141
+
142
+ valid_cams = set()
143
+ for x in anno['object_masks'].keys():
144
+ valid_cams.update(set(anno['object_masks'][x].keys()))
145
+
146
+ ego_cams = []
147
+ exo_cams = []
148
+ for vc in valid_cams:
149
+ if 'aria' in vc:
150
+ ego_cams.append(vc)
151
+ else:
152
+ exo_cams.append(vc)
153
+
154
+ if len(ego_cams) > 1:
155
+ print(take_id, 'HAS MORE THAN ONE EGO')
156
+ breakpoint()
157
+ print(f"Processing take {take_id} {take_name}")
158
+
159
+ # Process the masks
160
+ print("Start processing masks")
161
+ # new_anno["masks"] = {} # debug
162
+ # processMask(anno['object_masks'], new_anno["masks"])
163
+
164
+ # # Process the videos
165
+ print("Start processing Videos")
166
+ subsample_idx = processVideo(args.takepath, take_name, ego_cam=ego_cams[0], exo_cams=exo_cams, outputpath=args.outputpath, take_id=take_id)
167
+ if subsample_idx == -1:
168
+ print(f"{args.takepath}/{take_name}/frame_aligned_videos/{ego_cams[0]}.mp4 does not exist")
169
+ continue
170
+ # new_anno["subsample_idx"] = subsample_idx # debug
171
+
172
+ # Save the annotation
173
+ # with open(f"{args.outputpath}/{take_id}/annotation.json", "w") as f: # debug
174
+ # json.dump(new_anno, f)
175
+
176
+ end = time()
177
+ print(f"Total time: {end-start} seconds")
correspondence/SegSwap/data/process_data2.py ADDED
@@ -0,0 +1,175 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ from lzstring import LZString
4
+ from pycocotools import mask as mask_utils
5
+ import numpy as np
6
+ from PIL import Image
7
+ from decord import VideoReader
8
+ from decord import cpu
9
+ import argparse
10
+ import cv2
11
+ from time import time
12
+
13
+ def save_frames(frames, frame_idxes, output_folder, is_aria=False):
14
+ # resize and save frames
15
+ scale = 4
16
+ if is_aria:
17
+ scale = 2
18
+
19
+ for img, fidx in zip(frames, frame_idxes):
20
+ H, W, C = img.shape
21
+ if H < 1408:
22
+ break
23
+ img2 = cv2.resize(img, (W//scale, H//scale))
24
+ cv2.imwrite(os.path.join(output_folder, f'{fidx}.jpg'), img2)
25
+
26
+ def processVideo(takepath, take_name, ego_cam, exo_cams, outputpath, take_id):
27
+
28
+ # if not os.path.exists(f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4"):
29
+ # return -1
30
+ print("take_name:", take_name) # debug
31
+
32
+ # Subsample the ego video
33
+ # vr = VideoReader(
34
+ # f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4", ctx=cpu(0)
35
+ # )
36
+ # len_video = len(vr)
37
+ # subsampling at 1fps -- none of the videos are annotated at more than 1 fps
38
+ # subsample_idx = np.arange(0, len_video, 1) # debug
39
+ subsample_idx = np.arange(3510, 4111, 1) # debug
40
+
41
+ # if not os.path.exists(f"{outputpath}/{take_id}/{ego_cam}"):
42
+ # os.makedirs(f"{outputpath}/{take_id}/{ego_cam}")
43
+ # frames = vr.get_batch(subsample_idx).asnumpy()[...,::-1]
44
+ # save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{ego_cam}", is_aria=True)
45
+
46
+ # Subsample the exo videos
47
+ for exo_cam in ["cam03"]:
48
+ vr = VideoReader(
49
+ f"{takepath}/{take_name}/frame_aligned_videos/{exo_cam}.mp4", ctx=cpu(0)
50
+ )
51
+
52
+ os.makedirs(f"{outputpath}/{take_id}/{exo_cam}", exist_ok=True)
53
+ frames = vr.get_batch(subsample_idx).asnumpy()[...,::-1]
54
+
55
+ save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{exo_cam}", is_aria=False)
56
+
57
+ return subsample_idx.tolist()
58
+
59
+ # def decode_mask(width, height, encoded_mask):
60
+ # try:
61
+ # decomp_string = LZString.decompressFromEncodedURIComponent(encoded_mask)
62
+ # except:
63
+ # return None
64
+ # decomp_encoded = decomp_string.encode()
65
+ # rle_obj = {
66
+ # "size": [height, width],
67
+ # "counts": decomp_encoded,
68
+ # }
69
+ # rle_obj['counts'] = rle_obj['counts'].decode('ascii')
70
+ # return rle_obj
71
+
72
+ # def processMask(anno, new_anno):
73
+ # for object_id in anno.keys():
74
+ # new_anno[object_id] = {}
75
+ # for cam_id in anno[object_id].keys():
76
+ # new_anno[object_id][cam_id] = {}
77
+ # for frame_id in anno[object_id][cam_id]["annotation"].keys():
78
+ # width = anno[object_id][cam_id]["annotation"][frame_id]["width"]
79
+ # height = anno[object_id][cam_id]["annotation"][frame_id]["height"]
80
+ # encoded_mask = anno[object_id][cam_id]["annotation"][frame_id]["encodedMask"]
81
+ # coco_mask = decode_mask(width, height, encoded_mask)
82
+ # new_anno[object_id][cam_id][frame_id] = coco_mask
83
+
84
+ if __name__ == "__main__":
85
+ parser = argparse.ArgumentParser()
86
+ parser.add_argument(
87
+ "--takepath",
88
+ help="EgoExo take data root",
89
+ required=True
90
+ )
91
+ parser.add_argument(
92
+ "--annotationpath",
93
+ help="Annotations json file path",
94
+ required=True
95
+ )
96
+ parser.add_argument(
97
+ "--split_path",
98
+ help="path to split.json",
99
+ required=True
100
+ )
101
+ parser.add_argument(
102
+ "--split",
103
+ help="train/val/test split to process",
104
+ required=True
105
+ )
106
+ parser.add_argument(
107
+ "--outputpath",
108
+ help="Output data root",
109
+ required=True
110
+ )
111
+ args = parser.parse_args()
112
+
113
+ with open(args.split_path, "r") as fp:
114
+ data_split = json.load(fp)
115
+ # take_list = data_split[args.split]
116
+ take_list = ['3c744ca5-c64a-4de3-8235-c2f542ac5056'] # debug
117
+
118
+ os.makedirs(args.outputpath, exist_ok=True)
119
+ # Read the annotation file
120
+ # with open(args.annotationpath, "r") as f:
121
+ # annos = json.load(f)
122
+ # annos = annos['annotations']
123
+
124
+ start = time()
125
+
126
+ for take_id in take_list:
127
+ # if os.path.exists(f"{args.outputpath}/{take_id}"):
128
+ # print(f"{take_id} already done!")
129
+ # continue
130
+
131
+ # Create the output folder
132
+ os.makedirs(f"{args.outputpath}/{take_id}", exist_ok=True)
133
+ new_anno = {}
134
+ # Get the corresponding take name
135
+ # anno = annos[take_id]
136
+ # take_name = anno["take_name"]
137
+ take_name = "sfu_cooking022_2"
138
+
139
+ # valid_cams = set()
140
+ # for x in anno['object_masks'].keys():
141
+ # valid_cams.update(set(anno['object_masks'][x].keys()))
142
+
143
+ # ego_cams = []
144
+ # exo_cams = []
145
+ # for vc in valid_cams:
146
+ # if 'aria' in vc:
147
+ # ego_cams.append(vc)
148
+ # else:
149
+ # exo_cams.append(vc)
150
+ ego_cams = ["aria"]
151
+ exo_cams = ["cam03"] # debug
152
+ # if len(ego_cams) > 1:
153
+ # print(take_id, 'HAS MORE THAN ONE EGO')
154
+ # breakpoint()
155
+ print(f"Processing take {take_id} {take_name}")
156
+
157
+ # Process the masks
158
+ print("Start processing masks")
159
+ # new_anno["masks"] = {} # debug
160
+ # processMask(anno['object_masks'], new_anno["masks"])
161
+
162
+ # # Process the videos
163
+ print("Start processing Videos")
164
+ subsample_idx = processVideo(args.takepath, take_name, ego_cam=ego_cams[0], exo_cams=exo_cams, outputpath=args.outputpath, take_id=take_id)
165
+ if subsample_idx == -1:
166
+ print(f"{args.takepath}/{take_name}/frame_aligned_videos/{ego_cams[0]}.mp4 does not exist")
167
+ continue
168
+ # new_anno["subsample_idx"] = subsample_idx # debug
169
+
170
+ # Save the annotation
171
+ # with open(f"{args.outputpath}/{take_id}/annotation.json", "w") as f: # debug
172
+ # json.dump(new_anno, f)
173
+
174
+ end = time()
175
+ print(f"Total time: {end-start} seconds")
correspondence/SegSwap/data/process_data_batch.py ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ from lzstring import LZString
4
+ from pycocotools import mask as mask_utils
5
+ import numpy as np
6
+ from PIL import Image
7
+ from decord import VideoReader
8
+ from decord import cpu
9
+ import argparse
10
+ import cv2
11
+ from time import time
12
+
13
+ def save_frames(frames, frame_idxes, output_folder, is_aria=False):
14
+ # resize and save frames
15
+ scale = 4
16
+ if is_aria:
17
+ scale = 2
18
+
19
+ for img, fidx in zip(frames, frame_idxes):
20
+ H, W, C = img.shape
21
+ if H < 1408:
22
+ break
23
+ img2 = cv2.resize(img, (W//scale, H//scale))
24
+ cv2.imwrite(os.path.join(output_folder, f'{fidx}.jpg'), img2)
25
+
26
+ def processVideo(takepath, take_name, ego_cam, exo_cams, outputpath, take_id, fps=1, batch_size=1000):
27
+ """
28
+ 处理视频并抽帧
29
+
30
+ Args:
31
+ takepath: 输入视频路径
32
+ take_name: take名称
33
+ ego_cam: ego相机名称
34
+ exo_cams: exo相机列表
35
+ outputpath: 输出路径
36
+ take_id: take ID
37
+ fps: 采样帧率,1表示1fps,30表示30fps(每帧都采样)
38
+ batch_size: 批处理大小,避免内存问题
39
+ """
40
+ if not os.path.exists(f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4"):
41
+ return -1
42
+
43
+ # Subsample the ego video
44
+ vr = VideoReader(
45
+ f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4", ctx=cpu(0)
46
+ )
47
+ len_video = len(vr)
48
+
49
+ # 根据fps设置采样间隔
50
+ if fps == 30:
51
+ # 30fps:每帧都采样
52
+ sample_interval = 1
53
+ elif fps == 1:
54
+ # 1fps:假设原视频是30fps,每30帧采样一次
55
+ sample_interval = 30
56
+ else:
57
+ # 其他fps:计算采样间隔
58
+ sample_interval = max(1, 30 // fps)
59
+
60
+ subsample_idx = np.arange(0, len_video, sample_interval)
61
+ print(f"Video length: {len_video}, Sample interval: {sample_interval}, Total frames to extract: {len(subsample_idx)}")
62
+
63
+ # 处理ego视频
64
+ if not os.path.exists(f"{outputpath}/{take_id}/{ego_cam}"):
65
+ os.makedirs(f"{outputpath}/{take_id}/{ego_cam}")
66
+
67
+ # 分批处理以避免内存问题
68
+ for i in range(0, len(subsample_idx), batch_size):
69
+ batch_idx = subsample_idx[i:i+batch_size]
70
+ print(f"Processing ego cam batch {i//batch_size + 1}/{(len(subsample_idx) + batch_size - 1)//batch_size}")
71
+
72
+ try:
73
+ frames = vr.get_batch(batch_idx).asnumpy()[...,::-1]
74
+ save_frames(frames=frames, frame_idxes=batch_idx,
75
+ output_folder=f"{outputpath}/{take_id}/{ego_cam}", is_aria=True)
76
+ except Exception as e:
77
+ print(f"Error processing ego cam batch: {e}")
78
+ continue
79
+
80
+ # Subsample the exo videos
81
+ for exo_cam in exo_cams:
82
+ if not os.path.isdir(f"{outputpath}/{take_id}/{exo_cam}"):
83
+ try:
84
+ vr_exo = VideoReader(
85
+ f"{takepath}/{take_name}/frame_aligned_videos/{exo_cam}.mp4", ctx=cpu(0)
86
+ )
87
+ except Exception as e:
88
+ print(f"{exo_cam} not available: {e}")
89
+ continue
90
+
91
+ os.makedirs(f"{outputpath}/{take_id}/{exo_cam}")
92
+
93
+ # 分批处理exo视频
94
+ for i in range(0, len(subsample_idx), batch_size):
95
+ batch_idx = subsample_idx[i:i+batch_size]
96
+ print(f"Processing {exo_cam} batch {i//batch_size + 1}/{(len(subsample_idx) + batch_size - 1)//batch_size}")
97
+
98
+ try:
99
+ frames = vr_exo.get_batch(batch_idx).asnumpy()[...,::-1]
100
+ save_frames(frames=frames, frame_idxes=batch_idx,
101
+ output_folder=f"{outputpath}/{take_id}/{exo_cam}", is_aria=False)
102
+ except Exception as e:
103
+ print(f"Error processing {exo_cam} batch: {e}")
104
+ continue
105
+
106
+ return subsample_idx.tolist()
107
+
108
+ def decode_mask(width, height, encoded_mask):
109
+ try:
110
+ decomp_string = LZString.decompressFromEncodedURIComponent(encoded_mask)
111
+ except:
112
+ return None
113
+ decomp_encoded = decomp_string.encode()
114
+ rle_obj = {
115
+ "size": [height, width],
116
+ "counts": decomp_encoded,
117
+ }
118
+ rle_obj['counts'] = rle_obj['counts'].decode('ascii')
119
+ return rle_obj
120
+
121
+ def processMask(anno, new_anno):
122
+ for object_id in anno.keys():
123
+ new_anno[object_id] = {}
124
+ for cam_id in anno[object_id].keys():
125
+ new_anno[object_id][cam_id] = {}
126
+ for frame_id in anno[object_id][cam_id]["annotation"].keys():
127
+ width = anno[object_id][cam_id]["annotation"][frame_id]["width"]
128
+ height = anno[object_id][cam_id]["annotation"][frame_id]["height"]
129
+ encoded_mask = anno[object_id][cam_id]["annotation"][frame_id]["encodedMask"]
130
+ coco_mask = decode_mask(width, height, encoded_mask)
131
+ new_anno[object_id][cam_id][frame_id] = coco_mask
132
+
133
+ if __name__ == "__main__":
134
+ parser = argparse.ArgumentParser()
135
+ parser.add_argument(
136
+ "--takepath",
137
+ help="EgoExo take data root",
138
+ required=True
139
+ )
140
+ parser.add_argument(
141
+ "--annotationpath",
142
+ help="Annotations json file path",
143
+ required=True
144
+ )
145
+ parser.add_argument(
146
+ "--split_path",
147
+ help="path to split.json",
148
+ required=True
149
+ )
150
+ parser.add_argument(
151
+ "--split",
152
+ help="train/val/test split to process",
153
+ required=True
154
+ )
155
+ parser.add_argument(
156
+ "--outputpath",
157
+ help="Output data root",
158
+ required=True
159
+ )
160
+ parser.add_argument(
161
+ "--fps",
162
+ type=int,
163
+ default=1,
164
+ help="Sampling frame rate (1 for 1fps, 30 for 30fps)"
165
+ )
166
+ parser.add_argument(
167
+ "--batch_size",
168
+ type=int,
169
+ default=1000,
170
+ help="Batch size for processing frames to avoid memory issues"
171
+ )
172
+ args = parser.parse_args()
173
+
174
+ with open(args.split_path, "r") as fp:
175
+ data_split = json.load(fp)
176
+
177
+ # 使用指定的split或调试用的单个take
178
+ if args.split in data_split:
179
+ take_list = data_split[args.split]
180
+ else:
181
+ # 调试模式
182
+ take_list = ['6ca51642-c089-4989-b5a3-07977ec927d7']
183
+ print(f"Debug mode: processing only {take_list}")
184
+
185
+ os.makedirs(args.outputpath, exist_ok=True)
186
+
187
+ # Read the annotation file
188
+ with open(args.annotationpath, "r") as f:
189
+ annos = json.load(f)
190
+ annos = annos['annotations']
191
+
192
+ print(f"Processing {len(take_list)} takes at {args.fps}fps with batch size {args.batch_size}")
193
+ start = time()
194
+
195
+ for idx, take_id in enumerate(take_list):
196
+ print(f"\n=== Processing take {idx+1}/{len(take_list)}: {take_id} ===")
197
+
198
+ if os.path.exists(f"{args.outputpath}/{take_id}"):
199
+ print(f"{take_id} already done!")
200
+ continue
201
+
202
+ # Create the output folder
203
+ os.makedirs(f"{args.outputpath}/{take_id}", exist_ok=True)
204
+ new_anno = {}
205
+
206
+ # Get the corresponding take name
207
+ if take_id not in annos:
208
+ print(f"Take {take_id} not found in annotations!")
209
+ continue
210
+
211
+ anno = annos[take_id]
212
+ take_name = anno["take_name"]
213
+
214
+ valid_cams = set()
215
+ for x in anno['object_masks'].keys():
216
+ valid_cams.update(set(anno['object_masks'][x].keys()))
217
+
218
+ ego_cams = []
219
+ exo_cams = []
220
+ for vc in valid_cams:
221
+ if 'aria' in vc:
222
+ ego_cams.append(vc)
223
+ else:
224
+ exo_cams.append(vc)
225
+
226
+ if len(ego_cams) == 0:
227
+ print(f"No ego camera found for take {take_id}")
228
+ continue
229
+
230
+ if len(ego_cams) > 1:
231
+ print(f"{take_id} HAS MORE THAN ONE EGO: {ego_cams}")
232
+ # 使用第一个ego相机
233
+
234
+ print(f"Processing take {take_id} {take_name}")
235
+ print(f"Ego cams: {ego_cams}")
236
+ print(f"Exo cams: {exo_cams}")
237
+
238
+ # Process the masks
239
+ print("Start processing masks")
240
+ new_anno["masks"] = {}
241
+ processMask(anno['object_masks'], new_anno["masks"])
242
+
243
+ # Process the videos
244
+ print("Start processing Videos")
245
+ subsample_idx = processVideo(
246
+ args.takepath,
247
+ take_name,
248
+ ego_cam=ego_cams[0],
249
+ exo_cams=exo_cams,
250
+ outputpath=args.outputpath,
251
+ take_id=take_id,
252
+ fps=args.fps,
253
+ batch_size=args.batch_size
254
+ )
255
+
256
+ if subsample_idx == -1:
257
+ print(f"{args.takepath}/{take_name}/frame_aligned_videos/{ego_cams[0]}.mp4 does not exist")
258
+ continue
259
+
260
+ new_anno["subsample_idx"] = subsample_idx
261
+ new_anno["fps"] = args.fps
262
+
263
+ # Save the annotation
264
+ with open(f"{args.outputpath}/{take_id}/annotation.json", "w") as f:
265
+ json.dump(new_anno, f)
266
+
267
+ print(f"Completed take {take_id}, extracted {len(subsample_idx)} frames")
268
+
269
+ end = time()
270
+ print(f"\nTotal processing time: {end-start:.2f} seconds")
271
+ print(f"Average time per take: {(end-start)/len(take_list):.2f} seconds")
correspondence/SegSwap/data/process_data_new.py ADDED
@@ -0,0 +1,176 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ from lzstring import LZString
4
+ from pycocotools import mask as mask_utils
5
+ import numpy as np
6
+ from PIL import Image
7
+ from decord import VideoReader
8
+ from decord import cpu
9
+ import argparse
10
+ import cv2
11
+ from time import time
12
+ from tqdm import tqdm
13
+
14
+
15
+ def save_frames(frames, frame_idxes, output_folder, is_aria=False):
16
+ # resize and save frames
17
+ scale = 4
18
+ if is_aria:
19
+ scale = 2
20
+
21
+ for img, fidx in zip(frames, frame_idxes):
22
+ H, W, C = img.shape
23
+ if H < 1408:
24
+ break
25
+ img2 = cv2.resize(img, (W//scale, H//scale))
26
+ cv2.imwrite(os.path.join(output_folder, f'{fidx}.jpg'), img2)
27
+
28
+ def processVideo(takepath, take_name, ego_cam, exo_cams, outputpath, take_id):
29
+
30
+ if not os.path.exists(f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4"):
31
+ return -1
32
+
33
+ # Subsample the ego video
34
+ vr = VideoReader(
35
+ f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4", ctx=cpu(0)
36
+ )
37
+ len_video = len(vr)
38
+ # subsampling at 1fps -- none of the videos are annotated at more than 1 fps
39
+ subsample_idx = np.arange(0, len_video, 30)
40
+
41
+ if not os.path.exists(f"{outputpath}/{take_id}/{ego_cam}"):
42
+ os.makedirs(f"{outputpath}/{take_id}/{ego_cam}")
43
+ frames = vr.get_batch(subsample_idx).asnumpy()[...,::-1]
44
+ save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{ego_cam}", is_aria=True)
45
+
46
+ # Subsample the exo videos
47
+ for exo_cam in exo_cams:
48
+ if not os.path.isfile(f"{outputpath}/{take_id}/{exo_cam}.mp4"):
49
+ try:
50
+ vr = VideoReader(
51
+ f"{takepath}/{take_name}/frame_aligned_videos/{exo_cam}.mp4", ctx=cpu(0)
52
+ )
53
+ except:
54
+ print(f"{exo_cam} not available")
55
+ continue
56
+ os.makedirs(f"{outputpath}/{take_id}/{exo_cam}")
57
+ frames = vr.get_batch(subsample_idx).asnumpy()[...,::-1]
58
+
59
+ save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{exo_cam}", is_aria=False)
60
+
61
+ return subsample_idx.tolist()
62
+
63
+ def decode_mask(width, height, encoded_mask):
64
+ try:
65
+ decomp_string = LZString.decompressFromEncodedURIComponent(encoded_mask)
66
+ except:
67
+ return None
68
+ decomp_encoded = decomp_string.encode()
69
+ rle_obj = {
70
+ "size": [height, width],
71
+ "counts": decomp_encoded,
72
+ }
73
+ rle_obj['counts'] = rle_obj['counts'].decode('ascii')
74
+ return rle_obj
75
+
76
+ def processMask(anno, new_anno):
77
+ for object_id in anno.keys():
78
+ new_anno[object_id] = {}
79
+ for cam_id in anno[object_id].keys():
80
+ new_anno[object_id][cam_id] = {}
81
+ for frame_id in anno[object_id][cam_id]["annotation"].keys():
82
+ width = anno[object_id][cam_id]["annotation"][frame_id]["width"]
83
+ height = anno[object_id][cam_id]["annotation"][frame_id]["height"]
84
+ encoded_mask = anno[object_id][cam_id]["annotation"][frame_id]["encodedMask"]
85
+ coco_mask = decode_mask(width, height, encoded_mask)
86
+ new_anno[object_id][cam_id][frame_id] = coco_mask
87
+
88
+ if __name__ == "__main__":
89
+ parser = argparse.ArgumentParser()
90
+ parser.add_argument(
91
+ "--takepath",
92
+ help="EgoExo take data root",
93
+ required=True
94
+ )
95
+ parser.add_argument(
96
+ "--annotationpath",
97
+ help="Annotations json file path",
98
+ required=True
99
+ )
100
+ parser.add_argument(
101
+ "--split_path",
102
+ help="path to split.json",
103
+ required=True
104
+ )
105
+ parser.add_argument(
106
+ "--split",
107
+ help="train/val/test split to process",
108
+ required=True
109
+ )
110
+ parser.add_argument(
111
+ "--outputpath",
112
+ help="Output data root",
113
+ required=True
114
+ )
115
+ args = parser.parse_args()
116
+
117
+ with open(args.split_path, "r") as fp:
118
+ data_split = json.load(fp)
119
+ take_list = data_split[args.split]
120
+
121
+ os.makedirs(args.outputpath, exist_ok=True)
122
+ # Read the annotation file
123
+ with open(args.annotationpath, "r") as f:
124
+ annos = json.load(f)
125
+ annos = annos['annotations']
126
+
127
+ start = time()
128
+
129
+ for take_id in tqdm(take_list):
130
+ if os.path.exists(f"{args.outputpath}/{take_id}"):
131
+ print(f"{take_id} already done!")
132
+ continue
133
+
134
+ # Create the output folder
135
+ os.makedirs(f"{args.outputpath}/{take_id}", exist_ok=True)
136
+ new_anno = {}
137
+ # Get the corresponding take name
138
+ anno = annos[take_id]
139
+ take_name = anno["take_name"]
140
+
141
+ valid_cams = set()
142
+ for x in anno['object_masks'].keys():
143
+ valid_cams.update(set(anno['object_masks'][x].keys()))
144
+
145
+ ego_cams = []
146
+ exo_cams = []
147
+ for vc in valid_cams:
148
+ if 'aria' in vc:
149
+ ego_cams.append(vc)
150
+ else:
151
+ exo_cams.append(vc)
152
+
153
+ if len(ego_cams) > 1:
154
+ print(take_id, 'HAS MORE THAN ONE EGO')
155
+ breakpoint()
156
+ print(f"Processing take {take_id} {take_name}")
157
+
158
+ # Process the masks
159
+ print("Start processing masks")
160
+ new_anno["masks"] = {}
161
+ processMask(anno['object_masks'], new_anno["masks"])
162
+
163
+ # # Process the videos
164
+ print("Start processing Videos")
165
+ subsample_idx = processVideo(args.takepath, take_name, ego_cam=ego_cams[0], exo_cams=exo_cams, outputpath=args.outputpath, take_id=take_id)
166
+ if subsample_idx == -1:
167
+ print(f"{args.takepath}/{take_name}/frame_aligned_videos/{ego_cams[0]}.mp4 does not exist")
168
+ continue
169
+ new_anno["subsample_idx"] = subsample_idx
170
+
171
+ # Save the annotation
172
+ with open(f"{args.outputpath}/{take_id}/annotation.json", "w") as f:
173
+ json.dump(new_anno, f)
174
+
175
+ end = time()
176
+ print(f"Total time: {end-start} seconds")
correspondence/SegSwap/data/process_data_new_chunk.py ADDED
@@ -0,0 +1,198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ from lzstring import LZString
4
+ from pycocotools import mask as mask_utils
5
+ import numpy as np
6
+ from PIL import Image
7
+ from decord import VideoReader
8
+ from decord import cpu
9
+ import argparse
10
+ import cv2
11
+ from time import time
12
+ from tqdm import tqdm
13
+
14
+
15
+ chunk_size = 1000 # 超参数:一次读取的frames数目
16
+
17
+ def save_frames(frames, frame_idxes, output_folder, is_aria=False):
18
+ # resize and save frames
19
+ scale = 4
20
+ if is_aria:
21
+ scale = 2
22
+
23
+ for img, fidx in zip(frames, frame_idxes):
24
+ H, W, C = img.shape
25
+ if H < 1408:
26
+ break
27
+ img2 = cv2.resize(img, (W//scale, H//scale))
28
+ cv2.imwrite(os.path.join(output_folder, f'{fidx}.jpg'), img2)
29
+
30
+ def processVideo(takepath, take_name, ego_cam, exo_cams, outputpath, take_id):
31
+
32
+ if not os.path.exists(f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4"):
33
+ return -1
34
+
35
+ # Subsample the ego video
36
+ vr = VideoReader(
37
+ f"{takepath}/{take_name}/frame_aligned_videos/{ego_cam}.mp4", ctx=cpu(0)
38
+ )
39
+ len_video = len(vr)
40
+ # subsampling at 1fps -- none of the videos are annotated at more than 1 fps
41
+ subsample_idx = np.arange(0, len_video, 30)
42
+
43
+
44
+ if not os.path.exists(f"{outputpath}/{take_id}/{ego_cam}"):
45
+ os.makedirs(f"{outputpath}/{take_id}/{ego_cam}")
46
+ if len(subsample_idx) > chunk_size:
47
+ frames = []
48
+ for i in range(0, len(subsample_idx), chunk_size):
49
+ batch_idx = subsample_idx[i:i+chunk_size]
50
+ batch_frames = vr.get_batch(batch_idx).asnumpy()[..., ::-1]
51
+ frames.extend(batch_frames)
52
+ frames = np.array(frames)
53
+ save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{ego_cam}", is_aria=True)
54
+ else:
55
+ frames = vr.get_batch(subsample_idx).asnumpy()[...,::-1]
56
+ save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{ego_cam}", is_aria=True)
57
+
58
+
59
+
60
+ # Subsample the exo videos
61
+ for exo_cam in exo_cams:
62
+ if not os.path.isfile(f"{outputpath}/{take_id}/{exo_cam}.mp4"):
63
+ try:
64
+ vr = VideoReader(
65
+ f"{takepath}/{take_name}/frame_aligned_videos/{exo_cam}.mp4", ctx=cpu(0)
66
+ )
67
+ except:
68
+ print(f"{exo_cam} not available")
69
+ continue
70
+ os.makedirs(f"{outputpath}/{take_id}/{exo_cam}")
71
+ if len(subsample_idx) > chunk_size:
72
+ frames = []
73
+ for i in range(0, len(subsample_idx), chunk_size):
74
+ batch_idx = subsample_idx[i:i+chunk_size]
75
+ batch_frames = vr.get_batch(batch_idx).asnumpy()[..., ::-1]
76
+ frames.extend(batch_frames)
77
+ frames = np.array(frames)
78
+ save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{exo_cam}", is_aria=False)
79
+ else:
80
+ frames = vr.get_batch(subsample_idx).asnumpy()[...,::-1]
81
+ save_frames(frames=frames, frame_idxes=subsample_idx, output_folder=f"{outputpath}/{take_id}/{exo_cam}", is_aria=False)
82
+
83
+ return subsample_idx.tolist()
84
+
85
+ def decode_mask(width, height, encoded_mask):
86
+ try:
87
+ decomp_string = LZString.decompressFromEncodedURIComponent(encoded_mask)
88
+ except:
89
+ return None
90
+ decomp_encoded = decomp_string.encode()
91
+ rle_obj = {
92
+ "size": [height, width],
93
+ "counts": decomp_encoded,
94
+ }
95
+ rle_obj['counts'] = rle_obj['counts'].decode('ascii')
96
+ return rle_obj
97
+
98
+ def processMask(anno, new_anno):
99
+ for object_id in anno.keys():
100
+ new_anno[object_id] = {}
101
+ for cam_id in anno[object_id].keys():
102
+ new_anno[object_id][cam_id] = {}
103
+ for frame_id in anno[object_id][cam_id]["annotation"].keys():
104
+ width = anno[object_id][cam_id]["annotation"][frame_id]["width"]
105
+ height = anno[object_id][cam_id]["annotation"][frame_id]["height"]
106
+ encoded_mask = anno[object_id][cam_id]["annotation"][frame_id]["encodedMask"]
107
+ coco_mask = decode_mask(width, height, encoded_mask)
108
+ new_anno[object_id][cam_id][frame_id] = coco_mask
109
+
110
+ if __name__ == "__main__":
111
+ parser = argparse.ArgumentParser()
112
+ parser.add_argument(
113
+ "--takepath",
114
+ help="EgoExo take data root",
115
+ required=True
116
+ )
117
+ parser.add_argument(
118
+ "--annotationpath",
119
+ help="Annotations json file path",
120
+ required=True
121
+ )
122
+ parser.add_argument(
123
+ "--split_path",
124
+ help="path to split.json",
125
+ required=True
126
+ )
127
+ parser.add_argument(
128
+ "--split",
129
+ help="train/val/test split to process",
130
+ required=True
131
+ )
132
+ parser.add_argument(
133
+ "--outputpath",
134
+ help="Output data root",
135
+ required=True
136
+ )
137
+ args = parser.parse_args()
138
+
139
+ with open(args.split_path, "r") as fp:
140
+ data_split = json.load(fp)
141
+ take_list = data_split[args.split]
142
+
143
+ os.makedirs(args.outputpath, exist_ok=True)
144
+ # Read the annotation file
145
+ with open(args.annotationpath, "r") as f:
146
+ annos = json.load(f)
147
+ annos = annos['annotations']
148
+
149
+ start = time()
150
+
151
+ for take_id in tqdm(take_list):
152
+ if os.path.exists(f"{args.outputpath}/{take_id}"):
153
+ print(f"{take_id} already done!")
154
+ continue
155
+
156
+ # Create the output folder
157
+ os.makedirs(f"{args.outputpath}/{take_id}", exist_ok=True)
158
+ new_anno = {}
159
+ # Get the corresponding take name
160
+ anno = annos[take_id]
161
+ take_name = anno["take_name"]
162
+
163
+ valid_cams = set()
164
+ for x in anno['object_masks'].keys():
165
+ valid_cams.update(set(anno['object_masks'][x].keys()))
166
+
167
+ ego_cams = []
168
+ exo_cams = []
169
+ for vc in valid_cams:
170
+ if 'aria' in vc:
171
+ ego_cams.append(vc)
172
+ else:
173
+ exo_cams.append(vc)
174
+
175
+ if len(ego_cams) > 1:
176
+ print(take_id, 'HAS MORE THAN ONE EGO')
177
+ breakpoint()
178
+ print(f"Processing take {take_id} {take_name}")
179
+
180
+ # Process the masks
181
+ print("Start processing masks")
182
+ new_anno["masks"] = {}
183
+ processMask(anno['object_masks'], new_anno["masks"])
184
+
185
+ # # Process the videos
186
+ print("Start processing Videos")
187
+ subsample_idx = processVideo(args.takepath, take_name, ego_cam=ego_cams[0], exo_cams=exo_cams, outputpath=args.outputpath, take_id=take_id)
188
+ if subsample_idx == -1:
189
+ print(f"{args.takepath}/{take_name}/frame_aligned_videos/{ego_cams[0]}.mp4 does not exist")
190
+ continue
191
+ new_anno["subsample_idx"] = subsample_idx
192
+
193
+ # Save the annotation
194
+ with open(f"{args.outputpath}/{take_id}/annotation.json", "w") as f:
195
+ json.dump(new_anno, f)
196
+
197
+ end = time()
198
+ print(f"Total time: {end-start} seconds")
correspondence/SegSwap/data/split.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"train": ["7d6fa5c7-a206-4b36-889b-44bed72b0cc8", "f9dbdf83-0135-4fdd-973a-f207c79b3453", "2941605e-7cfb-441f-92b7-b4ee187edeb6", "1f56f60f-9b36-493f-902f-a3bba0fb1b84", "f1c3d2f5-e6bf-4899-a40d-12489d1ebb11", "b054a313-c2e5-495f-add2-d3c265a030e8", "9a6dd2f3-8c46-44da-b424-cb3442be0f00", "9759968e-f72c-43b4-950e-3f715fdcd4ee", "095f8e44-e72c-41b1-b8b7-e967bb389f82", "dd0539a4-6c12-4ae9-987b-d41351d874a9", "66fbbbae-c740-40d1-ab71-1f882453f2c5", "819523fa-f601-4ed3-aa1f-b1df5f0482bf", "45dd51ae-9049-4cf0-9366-8d0094791f0b", "2d146c0f-88df-483d-8a26-efb052b9a8ac", "bafe400a-8433-4f69-8989-fabd82276b15", "8bb19b57-b9bf-4287-beaf-6a6d625712b6", "27eb4f84-28e8-46f7-9263-ff15fa9b894f", "1c9a978e-3921-44e5-8eab-f9e5401822cf", "f2f93854-2634-449c-b68e-aebf4743ac9f", "99820fc1-ce50-41ea-bc8d-37b563f9743b", "f85ff6cc-b530-49fe-89e4-ae8533a4d47e", "1f34bb6a-70ba-4e7c-ae19-b5086fc1176a", "15a055d2-a5e1-4ba9-9e2b-5a6282fc7f32", "57dee964-b77f-430b-8f37-fa4e5ba5c6a3", "0eac0520-a5d8-4a45-bf08-112f5f472850", "abcd9473-0885-43cc-9e4e-f632f36871d2", "d8967e18-31e6-49ec-b00b-00250320ee18", "27cf1b12-9114-46b5-b1fb-66fcef4294f6", "9c0fe0eb-064b-4393-bd60-55be9d0de7b0", "8a0ea233-beeb-42cf-84b8-d25bda4ad967", "975b64c9-60e8-426e-9d55-2323a2505b12", "eccc2a61-a64b-4a53-af79-e432406d9062", "fa984bda-fd07-4de9-9720-f4f0af8c5f96", "4af687ac-9602-48b9-acaf-c0085bc2fe53", "1e0d9cb9-849f-4ca7-beeb-b13a5d4c6668", "424d48e3-b2cc-4558-b9e8-f954f3a61f7a", "72fa7531-64a3-45fe-8e50-80906ffeb40a", "c79a0feb-6eb8-4eef-82c0-08f0d672cc79", "f69df63c-9cd3-442f-bc9b-5ba64b988da4", "4641c429-4150-415c-a824-bf42a22d1dbf", "7d59164c-e0bc-4ae0-95c9-733e4c8b0d6a", "cace80a1-42df-4cf4-a1ec-80647638a443", "1e15d070-a035-41a4-b37a-d82da76cd915", "2fbd4068-86e0-4893-b9c6-10c88fa8275c", "fa0e1a71-2174-43ef-a694-a4af360573a4", "a127cf90-51bf-46af-b0ee-ec932ed0b110", "c11735ca-6d22-4d16-972b-f55f8271f373", "3f6a08d0-b2fe-4625-9cb1-531622f76128", "6023b80a-a1af-405b-ae86-6613452a1512", "8ee798db-d02b-46ab-86f9-2091da1fb85e", "c922cd8a-192b-4b1c-b574-7a6bc1b89383", "0b05324a-47a2-456a-9f7a-1c36519d86e0", "d430ec80-4f9e-4ee8-82ba-b66f4a794289", "03bfe7f8-23b1-440a-bab5-45eed703d08d", "8fa671be-2624-4783-8572-5f4b7722b6c0", "2336980a-6599-4f18-8a4c-6f2aa92ed536", "cc0a8c8c-f9c6-4173-ad44-f04e7b8f2f46", "a91ef958-df79-4905-8469-37c552c11441", "98f58f0f-53d6-4e41-bf41-d8d74ccbc37c", "ca5b4327-9454-49db-b37b-7bf8b13784dd", "42214e49-7e6b-4164-9fd1-315e3ac8fe40", "de9efe94-a548-4e07-8a37-7a60abb40dac", "09ca3310-232c-4f3f-b201-3632ea8c6b75", "ca1434ea-b787-44ad-a9da-e0f7d5167a35", "3566c03b-5c4d-4fb8-b73c-0117a95cafb5", "127941e8-52d5-494f-901b-af3521a67ae3", "93a6cc04-f932-4555-93de-bf55a089ac80", "49127749-c922-40a0-8eb8-a689a11a68cf", "629a4ed5-9d3f-4a61-b699-99e77a03b449", "648ae12c-91f5-4a72-b6a3-d233b83ef654", "0872b2cd-933d-4a0d-8561-9b3d60361203", "a993f2d4-bed8-47aa-8ce2-7a08b9785b24", "8ee393cb-d4b3-47ae-a3d0-0e9f8bb912d1", "8634c58a-95ee-4aed-aa80-9392073815cf", "bbc13004-11f9-4a73-ab06-3fa3836d518f", "a2fc6bb5-ad56-460e-a8ae-64db8080d5ae", "1ec1409c-a3fd-46ab-8698-99f9317e9f13", "505d3491-c597-4622-96cf-123a30dfb2db", "cfd2c825-45d1-4e59-b33f-b6dff8c174c8", "a261cc1d-7a45-479f-81a9-7c73eb379e6c", "b63da48d-f6a2-4b94-a9af-3e694ca549f2", "de438b6d-8692-44ea-a6a3-0fbcc459a525", "126eb2a4-4d4f-4d35-b390-7d9550b54c60", "1c73aa9f-c23a-479f-9980-3cba6792f27c", "a4b63d2e-e149-4256-b951-eb9947420030", "d03179da-1fd6-40f1-9ed2-8c2681ca2a0c", "853d087c-f00d-4659-8d63-f5052fb465a6", "44e3a281-953f-439b-aa58-01a5a362a31f", "b4298585-d4af-48ef-b59b-8e878f66bff3", "39d48b6a-66e8-4bbb-a596-4461b601cabc", "6ba1dc31-7a08-4e92-aaad-5954bce6a7da", "8ad67099-9fd2-40aa-868c-3c458d238dbb", "b09efa75-5692-4490-bdf1-b3b2c0fed141", "c9230a3e-6f26-4f2f-bbfa-9daedb658568", "9a7c75f7-c02a-441e-ad6d-e9d413bb5861", "29f2335b-f53d-4329-ad26-25f2ae7d4e6e", "794b3bd3-eac9-4d0d-9789-bd068bff3944", "87531064-1b80-40c5-896c-344cb3200d5a", "38246505-8781-46e8-bbe6-838a3d7df20c", "45199fd8-dfda-446d-b1c3-f5e4deadc441", "16b05645-80cd-45e6-ad95-c9a9cc035d6d", "f4dead01-fa3d-4aa5-8b59-13a0d9186dd2", "86771809-b5aa-49dd-8c94-16d145f4819e", "717a56dc-5151-4ad9-88fd-8ac4aa3589a9", "a8d04142-fc0b-4ad4-acaa-8c17424411ff", "519a22f6-92df-4b85-b0cf-3c19bb311a1a", "b9519252-bc68-4d3f-9781-81426234e671", "74a85d9d-234c-40f8-b15d-03f222a4db19", "ab52c59f-e6ee-4f3f-92ac-5a6db630f8fd", "478b347f-98de-4953-bf9f-56b2ec386f81", "114984e0-4de8-4db7-afc8-0c66926f65f4", "4cf43506-d0a6-4c42-9136-adb2ecd57411", "d47c1c99-2df4-4ea4-8259-4952960d5129", "aef3aa96-9883-4119-9ae8-c8b921a98918", "2e10a473-32d3-4b73-99f9-d35717ccab91", "89815623-8ece-4e3c-8879-f1f32b299527", "b199d52d-4fc7-4ac3-b9c4-b5c84014dc1b", "e6bbb6dc-94c1-4e80-9e46-2b25f40e0c1c", "2a160c63-2acd-463a-8431-3dbf77d6de8e", "410ccf87-4217-4d87-836b-4af20b355d87", "b9bad7dc-c6f5-4488-b9d0-b787625b674f", "5df0a1b2-0240-4ddb-a6a8-2c48c80d7427", "4c08e855-f8ad-4c27-8ae7-116eb13f1309", "23ad5c7b-7413-4614-846a-976c120d8bcd", "b68f9254-913a-4aee-9ae8-29d1121dd892", "5fd383f1-c8bb-42d7-b98b-7418d99d9bb4", "407f60e4-68b2-42df-84a9-3160398aaf10", "46018fc1-21a0-4c62-b009-ad420b731686", "b1b794e8-7839-46ab-b05f-f4b1c16d5420", "525cad2c-6c31-4a4a-aca2-a46279e51bc4", "a5b0f86c-5449-4c10-8366-e9d74662faf3", "58004f8a-fd60-4db6-8145-5125a4cd346f", "896b4340-c573-4454-a26f-b0a7159da732", "0583b07f-6e72-456c-8934-397927455be9", "fce7bb0b-b284-4a7d-869a-3c9cae440679", "cc27074c-f97d-486d-9d70-20c8a0df2f8a", "d9e1f18e-63a8-4923-8b91-8d992cf76776", "515ec288-a236-4a94-9b3d-449667088c82", "a4988227-0d23-4ee5-b106-981690dcfad3", "da227d63-a07c-471e-9130-07a8a492d654", "ca6bb6c4-1bf4-4253-926c-803881a165be", "3c56b1ee-b11f-4aeb-a6ab-359fc1bbea3b", "f6c800a6-e14c-472f-ba06-e4bf0f187e5e", "01c31ac7-3885-46ff-9af5-9e1d0910dce5", "823affad-e570-4091-a85f-da7aed524500", "20557049-ca20-4539-9e34-76031fce30e8", "54d00238-c1e4-4b2b-8870-2cbd442cd81f", "d9ce9305-d24f-4127-9d6d-e4d89e43f44b", "4fc454d5-6acb-4197-8014-a5216ee7ba80", "b7dbb47c-d850-4853-b434-7b20519ea9e5", "636eaa0b-d65d-4b25-bbdd-1065f84ef89e", "13786d88-76d1-4ecb-b74b-4600727c9ada", "4bb9382b-ca84-4635-9626-f4aa949747f5", "82e854f5-b603-409b-821d-3e4f19b030b0", "b4b83178-90f5-4ca8-9862-224d5044b0c4", "f702f8fd-a664-40f9-b71e-5fd647fa226e", "a69a5919-7b9d-4724-9b26-46dea6fa0c87", "b418cefc-12f5-4800-b9f0-a90541c4bea0", "f01b21c4-8023-4800-b3b2-3326a3c164f2", "c112d4da-5120-47d7-9b05-a4ef68baa226", "554bdf0b-2239-4c83-ae2c-38907ca0bfc3", "bd409a14-0392-447c-87ce-e7d44d0cf3c8", "d2b0ee95-2a76-4b69-aebf-3c7e553f8e2b", "6dd93969-2dff-4546-bac6-a435698eb14a", "d07f8138-ccbc-4c09-b9b7-05918088bfed", "30e473a6-4746-4fc6-8b2a-37f179eaae53", "dcc39981-04fc-4dfc-9bc4-53699496af39", "9275d1b4-7238-43fd-ad7d-1d1ee60de569", "7130970c-73d9-413d-964e-167696280422", "9da3d7c3-42aa-447a-9080-98c703d49c25", "734c53c6-a781-41b4-ac79-22a196353fde", "f6cd28c0-570f-4048-a684-bb4f0b055adb", "e24f2e2d-bc8f-4039-b617-b48bc45659bb", "b8b06b02-51fd-4a0f-9d64-9257be8c7df2", "a58f7f81-1ca2-4f98-bae4-2afce688c685", "fe9c727d-dac3-4efe-9906-b268991547cf", "ee2c4d41-d7f7-4b85-9f4f-cc1da654cd40", "d1888843-9fb6-4a0b-a732-978d03786ae6", "e8cf53f3-a9e3-45b6-a313-10765ae183e2", "d6ab4bdc-52c8-4398-ac3a-aff30f66260c", "2cc1db50-e1ca-4bc5-9066-4adc98b27df4", "3d41b047-b3c7-43b0-8663-daddc3e7d32c", "145bc22e-b966-4778-a082-8ec5f94e3626", "37365e38-41ce-423a-b9d8-05d946535768", "3eaf67f2-6d43-4b99-99a9-d591796fc73b", "103fc8a3-0e82-43a3-adf8-96bc8b3ac4ef", "d2a578c6-c2e8-4a03-a809-ecb29e0c8859", "4862eb13-2289-4745-a908-e6aa7f6ab829", "aa445893-9c9f-402a-a646-a8dacc34ebc1", "4a3c1bbe-b22a-41b0-b02b-23c1de785ea4", "cea1b20b-6e18-4bb6-87e0-164a2b8c3dc0", "5dc6b68f-c360-4519-8b45-1d9ba21dbeed", "062ed386-05a4-4ff5-a8ff-2235045349d7", "1789c39f-b302-48b4-9fa5-8716cfbfd43f", "cef2f19f-ec48-410c-8205-4572cc8706d9", "c69ac66e-fe72-4923-bccf-5674bded8f89", "783ea71f-5f82-41da-986f-b69025680e27", "9105418d-9a1b-445b-a77e-108d22530a8c", "fba2c124-99ec-40ed-8d6a-46808afe6d98", "7b138731-a8f3-4938-be1b-22599df07d39", "8dbcefd0-a7af-44f2-ab5b-49b5c11b0e56", "b5793959-4dbe-4d2c-b036-47e4be38743a", "2de0896b-df6d-4687-bbff-f700d675e385", "9ae1d6ae-8175-43ed-b5b0-afacabeddbd1", "e929ea2f-f2a6-4823-a201-5810f976c963", "8f3668cf-d6c8-4e50-bcaf-f5d994ee62cf", "46deacb7-2d19-4b18-b440-170f9ea7f28a", "99969e76-0172-4a07-b890-73848b97e0fe", "cac56c11-1de1-476f-a05d-f43c0cf99893", "c65220c8-1e12-4f2f-a87e-4d217eacca9c", "4be6b7e6-b07b-405a-b384-ccf8dc9391f2", "952ca52f-91d7-40a8-b254-affcc831112a", "1c504968-4f68-48dc-bee3-159fa197af65", "18e1e279-78e1-4c10-97a7-42dace59267b", "a548b784-dfd2-458f-8131-b36020906d32", "3467af8b-50c5-486e-8ff8-6a1401849bb9", "7b078956-9843-49dd-be3c-39591bde70fe", "dd77aa6d-cbf6-4883-9bc5-bd6d7e0dcf91", "6a3376a7-949e-4385-b16e-076dfb8c3f5a", "0d7dc221-d9dd-401a-acb8-b6e76e458300", "549e5b97-f93a-4500-8f02-5be13017dce5", "91317e63-1393-4776-a201-d5158cb2d9bd", "db0dab21-696f-42ac-befa-0a7af0dfa4b2", "0efd9fc1-0f49-403d-9252-93f119a3ea3c", "5f8792b1-0ab2-4484-a591-962fa3c93881", "699dde3f-cd23-4674-939e-42438faeb0da", "6cbfa460-72a7-4038-b6af-4305a1cc05dd", "edfd7e49-1765-43e5-ac74-00e1d36b54ad", "c97bfa47-1ca4-40f6-a463-b4f25c8b127d", "c7c5fe65-f694-4ff1-b51d-ee8059143f51", "f982aad4-3315-4c23-80fa-eb91fc5cb686", "bf1126a4-6276-4cc8-bec1-4879a2562ce5", "ce9bec98-3ec5-4189-8f9d-03e3ff3cddda", "7ab371e9-704d-42d0-a130-217260e169ec", "99c10780-e9a9-431a-af53-fda0b4fae201", "22f0fe6e-c298-4478-a15a-1541ba2434b4", "e3e33fdf-d781-4bac-9d7b-4545975d48fa", "769c8fe5-3f64-4b55-894b-8e6b7e8aa683", "cdb39869-48e6-43fc-b036-a4c22d14cdb2", "efacaa24-2dd2-45f2-a316-414f2e2cddc6", "a5e81f20-ea35-4f63-a908-11d89fc1294c", "6e252fac-4cec-4abe-bc4c-72b56b44fbcb", "f206f522-f635-49c6-8dc4-563199704bb8", "bb09460a-19d5-4dcb-867f-3d670d06bcfa", "4794b8f9-75b7-4eec-81b4-da8c5177ecb7", "783505c4-4ca5-4bee-a572-9e214115e035", "be266e24-9627-4b79-84cb-1606b5743f0b", "c7f81b64-f398-4b75-ad96-de62f2a31ec6", "3cf6545b-6476-41f4-a526-6d1da55588e3", "75f558ea-bd55-4882-9142-edbeab8d94bb", "cf7eede9-1550-44fd-a1b7-b25a02ba1d9a", "319a9983-f70c-4224-a3a7-33338c8a9f35", "aa461c0c-d577-4667-b3df-157207b11063", "05db9b5f-6904-43d2-99f8-62e6d3353afb", "2f61dd27-2ad2-4029-b36d-19a02ae8feec", "5f4f823c-082e-487d-acac-1e6ef80a9857", "87adac1b-2895-4cc0-9ebd-218bc9d1e8ff", "ef3879f9-2159-41d8-bef2-e7b746e6673a", "42e4f58c-bdc8-4294-966a-240a6367428a", "281b1c72-71be-4745-9a21-3a24a02e3c6f", "cb4dce4d-001f-4c5c-adcb-fd882ec09517", "f54df2fb-065d-4c1c-874d-ae06e7837c8f", "e5beffc8-2cc5-4cc5-9e0e-b22b843aaa4c", "38bb5f61-707d-4cf3-b1d1-a8260b7dfadc", "1b8601c0-ca65-4b4a-9ed4-0248d9539257", "5c322676-611b-424f-b00b-e825807dd1fc", "bcfb6839-3c09-4d42-9d9c-59042f6ab721", "cbc1a7bf-ba96-41d2-a6ec-42f9db7852f0", "831704c0-37fc-47aa-9ac0-3681ee652690", "d44116b4-c888-4be4-b5dc-b5bd628cea95", "66a58e88-a8a3-49c8-94db-949274cb5be0", "6790fe08-7a63-4925-a60f-dd78bf9944ff", "50bf0d2d-3bf3-4369-b72a-935561926195", "a0748518-35d6-459a-a7b6-5dbe88147d7b", "5d98d741-a4b9-42ac-8ffe-0960260a9f57", "71892035-0e6d-49a0-ae65-c30a76b0af79", "3ca2798d-cfe3-46c6-a8bc-cc4689bd6d75", "eaa6d996-c634-4488-9f7b-fe5487202f63", "097e886c-442e-4426-a19b-798d09e8e0f2", "4099f58d-1cc7-4368-990d-dcff3f5aa220", "aa40670e-4487-4f60-a27b-26f7372ef8e7", "961375e7-69e7-4bac-b61c-9dfd6a80c197", "9de1e91d-4331-43ac-813a-318b02732d7f", "bde0f2f1-a83e-4c29-b182-502ce6d94e21", "b07855a6-9582-44d2-be98-47daadda043a", "4ad70302-a794-40ae-ba8f-248296fb2809", "389cfa3f-3a4c-4b8f-9535-d7c95ffd594c", "658a6c36-f169-4d0c-9811-cbbc76393e07", "cb327cb5-3ad5-4f47-9cfa-29b4e7cc2836", "214bdc0d-fa50-4a84-b771-c0a7bdeafadc", "f1f1c625-48c9-4e7f-b3b8-f384f5cf2442", "c2374b84-5d13-4bcb-a320-b375851245e4", "e6f04a5d-0da7-42c9-8b27-4e240319047e", "08504348-4f72-477e-a08f-1050204ae55e", "708eb73a-1e98-419f-823c-2e6e96e8d81b", "76311964-abcc-4d73-b84b-241e9c782850", "d35a162e-c38e-4017-94d1-539f26651115", "e102ad52-d3a9-405b-a5a2-9a77a1a9922d", "e846fd07-a298-4313-a591-04292b5c5097", "23d1dc00-55f7-454e-b388-264ee6240527", "ffe64b82-6751-400a-9d64-5f4952017234", "1bd5a43c-9476-4491-b82e-6b02aeee2231", "20bc64ed-0612-4f59-9822-7ef409c7fdd4", "8dec5000-77af-4a40-b180-858057fff7e8", "4d6e4368-543b-4b69-a261-e8c01401ee8c", "cc93caa4-3f2e-48fb-95d6-fdfc0e45db01", "21141700-c64c-4fd7-9b36-c69e30fea1ad", "989ffb65-7466-49fd-94cb-6d3d4d528a8b", "ea17b93e-a687-4aae-8514-657f4bcae20d", "925ebe22-f97a-4e79-aed3-9873cf461c3c", "c0b7d130-2004-4450-ad94-ea3167bd9fab", "8c917b9b-6eb4-46e0-864a-364656907738", "b2db39d4-cc06-4821-8545-e22c3ab67eab", "024a7ee5-df4d-4dd0-a890-b13adc8ed431", "6e0bfa70-e88e-487d-9698-d16afbdb3e56", "96de3c01-236e-4fd5-b81a-76e9c5456a15", "090c8638-3464-45f9-a76a-a45432c2faa7", "afcff62a-3615-4afd-a08b-7bb6ade86a2e", "7ec750d7-fc17-41dc-b627-be30b2682c7a", "2c17b3a3-aecf-4a18-82f4-4094b7ac166c", "661178ca-8174-4469-bf18-ca8d40c4d7b9", "79450571-16f3-463b-a0b5-a5ede1d3966b", "55c665d1-8310-40b2-92d3-0e6b7a47ce22", "c8a70210-89d2-4b7e-bea7-5a79712fe631", "3540ae4e-89f8-4f61-8606-3492031c35fe", "f1ce9be1-b623-4ce4-84e2-37e9f88eea86", "e9bceaa5-6e5a-4dd6-b206-079fdfce0d74", "988baaa6-a361-4b33-8fa5-1eecf2ebaa22", "b1494499-048c-4be5-9595-7d664956a02d", "b8fa25b5-6185-474f-a092-e14d494901ad", "dc8cdafd-9424-49b5-a78c-a88ae6d2cd54", "aef08b40-a12b-42e8-b69a-9ba14c270b7c", "dcca4382-3494-4bb2-b79a-0e514513895e", "01d7a29d-f1a2-44d6-8871-178f26233d32", "0f9842a7-512f-4c04-9254-b810129f52b3", "ea0b620a-6077-4e53-911b-34aa55ca6eeb", "c09185f6-a5d6-43ce-950f-be3cd7ba7d2f", "a9c72abf-f710-4854-8d9a-9ef98950eb24", "1f22e560-2372-43b2-83c4-e452c3287fc1", "68e393fc-d1e9-411c-898b-6d2f2f495249", "7c0a813b-dce3-4ba0-92cc-a8e0a6f87581", "c9506871-9f9c-4e84-90f6-be2df27e9c14", "173f3262-9a30-4c0b-95ce-c9ab11b4068d", "38422f88-2862-4202-8d4c-9fe0ef1e021f", "8c6578a1-4f98-4bdb-861e-64b321b32c9f", "ed83020f-c9cd-4d9d-8420-c69c74b1643e", "39feb026-bcf8-4a61-89ad-9f5566c2c7bf", "44896f15-3bb6-4358-a042-2c59140dc7a6", "e68d09a0-fe18-483c-8a7d-24b32f9baa9e", "f7d3a129-4548-41d6-b675-0e85c4d4e324", "0254b6c0-4d78-471e-b3cf-07bb1e133f96", "c4dbfed6-f922-4213-a574-da37c7afd61c", "52b94833-ab64-4cfd-86fd-77ece1ece3ea", "448f59b5-2f28-4013-a96a-6f3fa5bb2252", "63156ba0-fabc-49e2-bb93-a8a0c5028ad0", "0bc47e29-e086-4726-b874-f89671366f06", "b0b09c9e-014c-4674-a86c-1b2af2175573", "83167883-277a-4720-accb-4aeb0253e60e", "52ca795f-e4d5-4b02-a9e9-8a3d964154f4", "919b7ecf-b37e-4dd2-9fac-4f04b80fbeb8", "327a76ce-f777-4ea8-b5c1-1108ca87c14f", "5e4d0439-eaea-463b-963b-e6ae2459f874", "b0e040f9-a84d-47cb-b6aa-64a85607b698", "9bd3f0f1-531c-47e1-be1c-2b4eae001bd5", "7c308b3c-8637-4e8c-b7a6-daf487c26f2d", "7aa2e880-6e88-4ed4-809a-48535714252f", "462c11bc-8dd2-440f-acbe-95ca177187c2", "72cfc694-5d6f-42cc-918a-eb1ec0086896", "c288cb15-81c7-4463-814f-959c12740499", "976e486c-0292-4ee1-bed4-05a3e5b0d6cd", "7f57b437-75b9-4cff-a260-28dba2ffaacd", "71fbd6f0-2df6-4823-9d73-b3fdd3e824e8", "f70d0d3c-3591-4328-bc27-776da2dd55fd", "a50dba7f-0df5-48b9-bbd7-071ffef04953", "62d59872-7198-4df5-a1e8-56b1136f6952", "a9902d89-3aab-4bce-aa07-720cf12523f6", "18e2cf60-65f4-4715-91e0-3917deb5daa8", "3ac49447-8437-4e1a-b772-06f4c79afe96", "e14d5116-b488-4a4f-acb9-d8cb6c1b5853", "eba56e4f-7ec8-4d47-9380-e69928323e94", "4c3ee253-c4a5-4d56-b990-600b132e0b43", "95f2d2b4-c5de-4620-9d6a-3dd6e1cb7264", "664e91a2-642d-47c2-9e89-44090af6af92", "5f153be3-ed11-470c-b032-e779d7a88180", "f72deca0-a765-46d3-abcd-9e4a0f7575d9", "e7ea8821-753a-4723-9ac3-a5aeb7b1f373", "b69de073-c157-4cff-8eba-97bfc7baa012", "289c4873-5bf9-41b9-b784-aba52b54cd4d", "f7011ab9-4260-4fd3-a218-36263fabb1f0", "dcce3d79-a8b7-4a0d-8614-94dee726663f", "804258d5-2fb7-4816-a09f-2becaed7e9a5", "0bcb8b46-cc45-4bcb-a627-85633e54e060", "b6cb97cf-d85c-4e1e-916c-869c39f7d52b", "d7b30d31-1614-4089-a26a-7e9557265ab4", "5ab8958c-7f0f-4580-8de4-edd20a839c49", "48c5e2ce-5249-402e-b198-35240beefb88", "819780c3-97c0-4ac6-b37f-8c66abf8167d", "375f6d12-23dd-4ad1-b02a-9fd9f7a8c991", "ff29aa81-555c-4eb2-a79f-10e27e7f09c7", "7fb68600-a998-46ae-b2b0-72fd1978b8fd", "63ab82bb-2d28-440f-814c-1fc0d06b89d0", "e1475f87-0c9d-4884-b932-140c2a0de3c3", "0e4c18eb-22d9-4c41-a4b1-e02e574be20d", "43b6b938-dc04-4e86-9165-e4f011aa7344", "b918c9ce-f1ad-4fb2-9569-3726685517ee", "87a63705-c609-49cd-9605-0117ad0b0526", "90e697a5-2cff-4ecc-a580-f4c230a5488c", "c9322347-29d7-4ab8-ae9f-5f0acdc095c9", "712a77c1-6a02-4bfd-bbdb-06fa8b1e8b1e", "1964ed60-addc-4452-89fc-d1a696540345", "6a90f588-8a69-4d1c-b071-85527fc98042", "7d33f6b7-46c0-4087-97e5-100c369ffe45", "55a996a2-cdf3-4976-b475-a7c4c6a008a8", "83d9f439-642d-47b8-bc95-1a9442a0f4f6", "9512a137-40b6-49c6-a03d-a3340b9dd277", "5ad8e62d-726c-430a-9849-6f5d3ba3704c", "642c0099-f952-4be6-83b8-cb8bfd94f7bb", "96816348-c93b-4b46-b4e9-2f53d96f9f88", "726a93e4-ec22-4373-8cac-c333e459abd5", "d6706cac-3a65-411f-b9e2-cf7245305fbe", "02417aaf-e818-4ec9-8731-abddcd9ac466", "bf74fe65-12af-4d4e-a7a6-7885c854ae49", "d1eb9ed3-c414-4e5e-aa70-37e73dde1802", "77cd56fc-6b68-4c7f-814b-81545484dd2d", "ff22eeaa-b5e4-48f7-8a48-50bb368ec289", "7014a547-6f84-48cb-bc91-28012c4cce06", "73251f3a-238e-4dd8-8297-6fe9893239e0", "a3fc32b8-24d8-4d77-bc3c-8dbd70284a5c", "fd053d4b-ae66-4b8d-880a-bdf1cebc7257", "51fc36b3-e769-4617-b087-3826b280cad3", "393e9b60-504c-4cc7-a90b-eb78dd62d5ff", "e43a918c-4518-4c49-b57a-ca9b259a85eb", "55b40961-8713-45e2-8c5e-30857a723c4a", "4da9f6d7-08e8-4c2a-9224-0f2cece08780", "a3214a2b-be14-44fe-b4b4-791beb788b77", "9ed23abc-0a73-4f1a-b1be-3d94cf71b8d8", "528408d0-3098-4ab8-840c-7ee95869880b", "5d4abe32-590d-470d-8fd1-4585833afaad", "072f6ab6-a3c2-4e86-84ef-0b32d60d5555", "581de43e-f659-498b-a8e5-25647be63f41", "a875caeb-6b2d-4499-9d7e-74252b8f877c", "70fb86ec-39ef-418f-8f9e-c95e6aab3255", "fb09baec-1a5a-40b4-8d72-e581c93fbd77", "9d436b0e-2839-4519-a41d-189e1b1a4816", "8a81ba3d-61f4-4b6b-a0a3-e1463a226985", "4a628bb6-49fa-4cfa-ae74-2b3beac2b095", "54da69f2-4e4d-4b65-820c-46fdcb38d097", "3042b472-99cc-4407-a79e-f76916b95737", "adb82b37-8e0c-423a-9016-4a17ae673b75", "0b771d9f-7bab-4023-ac08-e56c06505946", "2558806a-cf6c-42dd-8323-ab80e7b7dc75", "4939903a-2c73-4633-ae15-618be39990e7", "644022d7-8e50-4bb2-bab8-f7ffbfdc7d17", "971bf500-87fe-41a1-8ede-5b2eb1e87711", "cda6c810-63a5-455e-b92c-f288e26c72e1", "705d49e6-20f4-4c32-ae7d-dfa50abfe7fc", "ced0e340-b958-4505-badc-c8c2f256c145", "9bc33576-bcb6-42a5-b040-3220456f268f", "44b51e21-176a-4f20-a61c-1117696ca084", "ccec2129-83b1-47cc-b179-fc165ac12f25", "e53ae33b-61b6-4c3e-8be0-5696f961704b", "dd23d126-e63d-4df0-ba1e-2c0c137d5bb2", "4d250ada-e17a-4385-a08c-88b645cfe872", "60475f06-2613-4496-939a-5381e7807349", "2429d435-c4fd-4e57-a25c-d2badd786e60", "35e4a30c-bd1b-4b46-aab2-2b49adcc4b7c", "d2e07def-3ea4-4c31-b20c-5f5a7ed52fb9", "9abb07b4-f708-4571-8a82-d5baf748980d", "2423c2ff-c85d-4998-afab-29de8d26d263", "97584eeb-d107-40e6-9a14-767ca29b22b1", "fb626925-969e-48ea-aeda-ef99300fb8f7", "0be9bbb7-ab8c-4134-8886-178e31ab34be", "64636876-638e-4f1d-9301-3bb4cb9b391a", "7683f1f1-f84d-4ecd-ae0a-7ba6ee2f8cdb", "a6c76788-37ca-4005-9e7e-cf5ecb00d8cf", "8e40c272-9469-4077-bece-0268040b79ad", "4ff4e3e6-53ff-4827-ad51-b35594910af9", "f3bfdad9-5ed0-49a0-b70c-aa1ee79a3bbf", "cadd4f9c-0957-4404-980b-2c5718734a3f", "4f1a4a10-b34c-41a3-9544-86622f7881ab", "ad758298-5b6a-4e49-bda3-5d254a5f54c7", "2059dde7-ecdd-4bfe-90ca-5f482b44fe47", "a1b56b36-68f6-4238-b5bf-a830dc8758bf", "08abcbb4-9277-4154-94d8-9e36b750fed8", "ecb9c4c1-214c-4bfa-a9f3-371b85267113", "a2526805-27bd-4d17-9325-d3bd1e291f91", "d8f1f126-5984-43c3-8774-45c6d6ac447c", "8e5d6ad7-f48c-40e8-bf02-05ac74c2d844", "e246e05c-cc49-4d05-98ba-de2542e42c3f", "8abc5f81-9c0f-4174-9b3b-c5d7dba53efa", "75c8af15-2c63-4024-ab24-db3ec0569207", "1e457d17-85cd-44b2-9c60-84304b07282d", "eac4b49b-cf4f-4925-bdbe-5ab98d0bae74", "40cc96d8-a05c-451c-aca8-442f39e1c14b", "a0179553-bc47-441f-a83e-ae6e021032e0", "bee03368-c65a-4b24-a572-5e799a8baa2c", "f7203ed6-eb12-4aeb-ba99-f60e700b5412", "3655a8a0-38fc-4be9-ab20-32448b48abb1", "3817cb6b-8b20-4f6f-a8a1-d0943d491656", "ea9149f5-4953-4f44-9712-e45ccb976568", "e354f40c-75e9-4064-a911-850988e9ab9a", "696b1917-383c-4fb9-a954-aff632d35d4e", "0aed7ffd-224d-4f50-94eb-9d54fd4a1521", "f8142a51-7b40-4852-97d5-62b307ddb7e7", "f132578d-b65b-43d0-8a78-870c3638d029", "15b70076-fe8e-4e72-a2cf-0004798c7280", "ef31e3a5-a004-4fc8-8d05-8475afa2602a", "05e5f359-526d-4914-a86b-5a56cfcc0274", "6835b48d-ce8e-474d-b589-86d023628792", "11b8d7e3-9c5e-4652-84ef-91504a07f332", "aceb9ba2-bcd0-4249-baaf-12cd03e14aaa", "d0109704-c19c-444a-890f-5796742434a8", "a268acaf-1493-43ed-b368-346aa9a0f09f", "207ae687-de62-4b01-b26f-fb66fd167884", "876aae71-1ed8-4648-bd13-bce01b18698d", "759aa03c-c8e1-4fcb-8817-85948100ed33", "e52bd93e-021f-4208-aa02-ad1e64c03399", "bd58f048-87aa-4b40-97ee-17bdb2dd947e", "c65b2012-329e-4c9c-8847-0c80b86f23bd", "287c0ec5-8e84-4a21-8b18-a1e34f336187", "6d571173-653c-400f-99cc-14111f8657aa", "31df8578-1fd0-4406-9008-900a88f7990a", "cf11c037-3a43-43a8-b9ca-b3c457d31535", "404cf466-ff98-41e4-b73a-6829f6d29005", "ed064e3d-b2e1-4103-b955-3d720460d89b", "a94c3d1b-69c5-4c8f-8840-ec5c37630965", "29a96621-394a-4411-8404-cae4400df95e", "10114022-4de6-43cd-af19-b3bc5cbeae31", "b0844d48-90da-4073-9e03-fb8aef700f40", "81342757-adb9-4df2-af73-6ac28136f4ad", "01d41c37-4de8-4a56-94a2-df57a1bc5c95", "17fc7017-4b64-4adb-b55f-10ca76476366", "36821f68-75ce-4784-930d-d341e340e9bd", "655b89a8-9725-4756-9fc0-db01a580d88a", "02715c86-e30c-4791-92b7-38b488e51aba", "354f076e-079f-440d-bd38-97ddfcd19002", "12513260-bc8d-4cc5-a14b-c7a9012bf7d5", "76de6c17-2b61-494b-ab32-39e97e1b40ed", "5d45ec21-c866-4f24-b037-9fa5d25c78ee", "fb733912-4a66-4821-9313-344628fd1154", "9fe91f54-5d6c-43ba-aed0-cd8b1aae5d98", "08e08417-f43b-4870-8a26-3f3350bb6197", "c339d326-2e69-40f9-88f3-caa5c80ff3be", "3db860b7-a23a-4d9b-a988-4b656a608122", "d6817560-492c-4de8-93e9-56df0c3b4ddc", "de3728ca-fdeb-4591-80ab-cb2b32182a50", "34ad059f-5b0c-41e0-8aaf-096d3f4482b8", "77d985cb-eff9-43ca-b5e2-e2d1433d0d4b", "c3bb6a9f-fa27-4be2-a368-9fd694fc4231", "9ff58052-a000-4423-bed0-43ed44f2ce74", "35823fca-da54-49a2-8d4c-365046031e2c", "2a6617b5-ce8f-4234-a128-829b639df186", "91bb7bcf-7498-4611-a3bd-41869be84ef8", "70b452ff-ae15-4177-98ee-9cb8389e8f79", "21e09276-debf-49dc-8e6b-da8660308766", "06c44d8c-98e6-4204-bb90-edfa26f8ab33", "1032ae70-ce9b-4e6e-8b59-52a19b1f5b52", "80f65504-a37a-4c84-8a19-df3bba123326", "6b17a7d8-6454-44f4-aa50-32256f4cce73", "faf039a2-d360-4e8c-b5fc-a5f80e24c819", "f8412ce8-fd3e-4aa9-94b5-a625293dc8a3", "9506c70a-1639-42ea-bbfc-2b9c0f8c9394", "be3ba254-9db0-4fa9-91ed-c9e7117f8d83", "49944f64-4fc9-44b8-bba2-7d6720c3186f", "181c0eb5-22da-4a00-ad59-37b67622012e", "4535b913-a861-4a1a-b75f-5718ad3a5361", "dd09ac20-b7ae-48e0-a0c1-69f49f541ac4", "f7919017-3bd3-4c92-8f7f-ce9b33f07353", "c95ba288-2cca-46f2-b606-f4e4d145d40e", "9f3efff7-1aee-4a53-93cd-8b4ab0360d0a", "5b4fcf58-6bdc-41e4-b7e0-739abc35e7e8", "dc3e63c1-5b14-46f3-8230-5c93249e9469", "e46f9a53-7625-4827-8b92-79c958d3524e", "9d1b7889-ffd2-4bf6-962c-10b4cce60c6c", "b7c782b1-9688-4b19-8f88-003fed1d0e61", "aa079c80-4193-457d-86c0-80f13d2f94c0", "109db476-2edd-4968-b2da-6abec1a199da", "ae8c1f26-ae3c-4df9-841c-ee364f0e4fc6", "f55771c6-9192-4a78-a48f-16c926c44023", "93693881-02eb-404e-b42c-74aeed11e46b", "828f456b-54af-4a84-aea5-a8071fd1cae8", "a46d15b2-5c90-4938-bdca-40b87f51bec1", "93dee400-712b-4491-9d4a-7b4bf21f4f92", "9365a457-db04-4e11-981f-92a95cda4ce4", "ac259bd8-f9a1-4456-99b3-610f80351c06", "ede28f52-3ab0-4da8-808e-33ba5a1fae28", "aca145aa-6d73-4bc7-81bb-2d303e3a6199", "084fe4d0-b55d-4de4-a26d-32d7735e9621", "2182758f-49b8-4a13-b691-b9671ef20c4d", "3125dca7-b99e-4b2b-8844-2d912619b353", "e3b4afb7-d65c-4185-a038-9b9235caf342", "101a2de8-7c4a-46c8-aa4a-25ff4c7bddc0", "6abf4872-3bc1-4e63-8fb6-90f796505e31", "b65a60e0-f224-4b3d-bf78-ba44e12c4ac1", "10fbe798-2bdb-4d5b-8bbd-00a5f49fd391", "88c1166a-2e6b-43de-ac57-b2d736c41946", "9d6dd55f-1735-4d5f-8cac-92e04c9c896f", "1856e7d9-d45a-4909-9206-a3d6921ec6bd", "9a8dc147-818a-4f38-97c0-12b924033ba5", "bd0f3e9d-185d-43c2-96c2-34b8eb11e6a9", "6ec6a770-8e10-4cae-a06b-328852838ec6", "aaea78b8-f839-42af-af65-0cc3f7fb2897", "445a97bd-eccb-43e2-9fc0-2468cf0b2954", "b24dbfff-1a6f-4649-b60b-35ae8c7aec80", "ca01f52d-5afb-49a6-9b5f-ed0770fdf84b", "74f5cad4-2391-4ca2-adab-659f54c1a61f", "11bf68ee-12f0-435d-98eb-925c158ac705", "c9f0ec0e-2c5f-4350-a2f2-27877b56225f", "f7b3e85b-7681-48b3-97cb-6b0a5705022e", "8acb2112-465c-4088-b502-65fd9704dd77", "b069e23f-1a22-4920-879a-80616b098e60", "3c99493b-a76f-4934-b444-c8dcb68b17d3", "82587f1a-a75d-4462-8971-b62b5c3a633e", "3f477d02-124d-436c-b77a-f5ad63c21289", "811ad284-702f-4d38-af99-a2c4006fa298", "a6500813-e923-44e8-9876-b8f6f2fc15b2", "2cb8af8a-952e-40b7-ba48-b56f875d8826", "829fdfa1-1192-4611-977b-2736d7123f5e", "2e53bfbb-2476-48c8-8dbb-668071453cc2", "5ff5bfd3-3c44-4af2-a500-65cb13be7c3d", "3866da3e-e88b-4c69-9534-d097b315efc2", "87b87124-24b7-4098-9c28-21545a981768", "ae67738a-b251-4d6a-993e-4750a43cfc1c", "62bbef54-0ba2-4990-a9e3-3dea114fa9cd", "c53daadd-09f0-485b-a51c-1d5679f5fb09", "0c604e7f-1f5d-46ee-8e92-509411b10def", "b378d186-0587-40ed-afdf-875e6dfb5876", "77521486-6690-4374-abc2-0d9bc491af0c", "9fb66dfd-8e79-4cc8-83f2-bf9384b80fe2", "df02e9d2-edcd-4015-829a-81cb6067d6fa", "eec66a33-ddbf-4eac-9024-fddc99ef5fdd", "ce509e21-ca1a-45a9-b150-3263640c9c47", "0ccfd492-8880-4ef2-90f5-e9f54f2cd080", "32d54e67-68d7-4b94-a953-fc3b56a1eb94", "d13960ea-0503-4cfb-b700-8bd006544dd5", "03167c74-f240-488c-bc6c-39ea803ec943", "6497079c-6ac3-4c80-9d4c-f7c37a196f11", "98c6b563-61dd-46fd-a66e-351664092e4c", "aab43780-401b-4673-b2c2-fc3521e98bea", "1215d140-b34c-43f3-82dc-c3f102bbf1e4", "24647f6e-29ca-4d93-99bb-2df97043c4fc", "6e3f9f1d-2942-4de1-b071-bf8a205d28c4", "b008edb1-b0ab-4d8a-a303-5c09a6ecc790", "23ff1c48-01ea-4d34-a38b-bc96e767b9b9", "55d2990a-537b-429d-9da9-388283b9555e", "83b377ef-967a-4380-b3ac-321dbf79f72a", "5a7bab1e-a30b-4001-a5aa-2e8a6601315b", "975bbcd5-fbb3-4323-b9a8-a9b476887c18", "7ec264c5-0029-4b84-81ea-c3b24a059ae4", "3cbd7070-7c55-4b15-ac31-100ab8c7298a", "e94bf2b2-13f2-4b88-93ca-37da00d7c58e", "5b4cc5cb-22f0-4814-aa24-8d51ba50000a", "43d60820-1daa-472f-be4d-6802746df7d8", "dcfbcea7-821d-4f06-9ecd-95f4b99a9b4b", "b64755de-fc1c-4e36-a862-04e4c34a2dfa", "d1563ead-9c4a-443d-8f28-515100c0b909", "ba2086b2-f43f-4096-8b84-e9a3bfc0020b", "8000dfb2-accb-4bb8-abfb-cc2d677d0b2f", "0315b91a-b56f-4fc5-87f5-28c33c3fffab", "7ec74e0a-e711-4955-9e66-b4ea17fd439f", "ff93ae48-0daa-418c-9d5c-b5b0b6d23efb", "0a715ea3-5aa9-427f-86b3-12190c557905", "60a5958c-4530-4eba-886a-a3474ab1fc7a", "d6e80361-e429-4491-a08a-ed33c7ceecd5", "adf67490-c9f0-4771-810a-3c6b4007b3c8", "83783976-189a-460f-9068-7ad5b17dd815", "3382c19f-4a93-4247-9a7c-11f4f72959a0", "6d0a7c80-ae8c-4673-8f70-c09fd6fbebe8", "574adb34-f42d-494b-8ccf-a62922bb5299", "2bc8abe8-e4d1-46e2-8aa0-134e30674456", "f0cd03a5-9cd8-4510-87c1-a5c493197b75", "b4c2bba9-fd6e-4736-a071-811734d1234c", "7407b714-f7ec-4472-8e4d-e7eb0f037728", "e353042a-42b6-44fc-b825-3017f274de96", "6b90b173-de80-4a88-b52c-7eec42fd372b", "c16175f5-f990-48a1-9dcc-6a385f108687", "30f03e63-10bf-4d6d-8d58-fc944469c66c", "c8749317-8f4c-443a-9f82-6b18edbcac23", "f2628332-1196-47b2-a17a-6670055babb0", "c529c120-c1fb-4504-97c7-52912c2aa3c0", "c9143d68-f3aa-4214-8ce7-f490f88cbacf", "783c918b-1473-4b72-b106-cb2718c46af8", "d821248a-f894-47f8-9c60-02ca799fef24", "41e70872-13dc-45e3-82b4-4cbe58d952da", "e4b464a4-45ff-452b-a744-142d22b32ec1", "bbd4bbea-bb25-4a7e-ba2d-3a3e6eb003c9", "09992555-13bf-4056-a0c8-b5058853b778", "3eb5e1c2-4c98-4637-9a28-726396ab5005", "19326fcc-4b0f-403e-a7f5-ffb836449d45", "77e3b40d-7693-49f1-b480-d33fd798f870", "d246c660-2b59-445e-a618-dd86137c20a5", "e4ddbe51-37d0-4937-816a-2508b20f2b63", "e1df2957-a10c-4bc0-ac91-4014551287f0", "cc5a6be4-d030-4057-9ed5-1f895c6c9274", "b7542f4c-19e9-4061-87be-5a6d3d95de88", "8fc1c385-7529-47ce-a2de-fc42f6e44303", "261f6455-c60e-4fe4-8eca-6bb8fbb18ff9", "c2145013-09e6-47a4-8c6f-bf3366b8fad3", "816dd81e-93b1-433c-83ff-264ae404a3bf", "aaa7e120-2224-4a5b-96ef-4a4b054a6ccd", "f8bed5fe-3e09-4885-9539-edb4d5b2279a", "29f5c00a-4562-45e4-8365-5f9413cf3e26", "6ee078a7-6e88-416b-bbff-0b1a5cddd254", "a57a2fd6-18dd-446e-b11c-fe8b127ebb5b", "601c9c61-fc2b-4ac2-b3c4-dda557c2563b", "196ecf05-aecd-4f42-8321-67300d8bb6cd", "a3d933a1-26b2-4025-b136-3a9c2d40db4c", "56c35d79-acb1-47a1-8590-7e5cb2585ee5", "9fea55ae-307f-43ab-97f6-91ee6d1b25b7", "0bfb43c8-96d4-4b2e-b8bd-f0db30421823", "59de58da-2f1a-4ce5-9ccc-ba9e4b114779", "19653b56-4c16-407d-999b-8bae93fce633", "373478a3-4b72-44f9-bcda-fea08828c52a", "020ae1ca-02ad-49c8-9056-87ad6bdcb8bd", "719fe670-72a7-4da9-be7d-0bd2afb742ae", "34ba42af-5c77-434e-a8c4-cf745bcaaf0d", "978cd92e-8766-4c68-9d06-8a1a19ff1dc1", "c608817e-4a3e-4c3c-a87c-7d02e1e601da", "46988f5c-86df-4bb3-bf4c-aca0e044bce0", "6bc7a29f-3397-4549-9ee2-d98fa93da873", "1377b49e-4a24-4e91-9fdb-709911b72f9a", "01b0a6e3-04ce-4f0d-8df4-b3d3c1508780", "c8501280-9342-4776-b5cf-79e2e02fea1e", "b22e7d54-2198-4ff8-9ba4-bf444bf4a787", "ba46c08b-3b5a-46f2-b77d-4a296f45c042", "d5193bae-a7f5-4e8a-9c96-09f557c7ea9d", "1ec6c280-a6df-4666-87ef-9da5a57e2925", "526fb4ce-d45c-40e9-912b-7cc076081d65", "b6dd512b-7800-4cdf-b7ec-d0d784a493c2", "7bc50150-a73a-4d6a-97a9-ca9f8b4800ef", "32b43fd9-a01d-4657-899a-7ea2200da27a", "154d1224-d0c0-45f9-8e89-33f1ffa04606", "2c9c701c-08f8-4217-88da-f0b46886ee5c", "9aca257b-e95d-45b1-aa6b-e2abfb400fa4", "609123eb-8e83-41f9-9cd5-524fc01f3ea9", "64b60273-e935-4161-9300-2879b46f5785", "6fee2c75-fded-4e56-850f-0c29c809c1ee", "a0bbdb8e-077b-4881-bbec-30331068a3a7", "ff468baf-2313-4b39-8dc3-a1d1b6f71a5d", "c01e470f-b07e-4730-b3ef-6cb8cdfa5b4c", "c01e068d-c018-4a07-9a64-e7004fca335c", "516e461f-d51a-459f-9cfa-8864bda4c06e", "d4af8cd9-4115-4439-b7e9-77507f553418", "8d7646a3-ce7b-425d-b16e-9a63a1166576", "be1eb1c1-a45f-4e8b-9ae2-3d8db0af7e59", "d89ee354-ee08-4dd0-bd7b-75db5e3ab7de", "8623740d-86a1-4b83-82a0-c99923ce6bdb", "afeedc0f-f962-4136-8a66-223a77ebe2e6", "fa1b7aec-f252-42c7-b362-443f11e87fdf", "847fbeab-dd68-4852-95f3-3a09f754f3b7", "0b89efcd-59bf-4f0b-a81a-50dee0b79982", "63062ad7-ac80-40df-b40d-16edfa17bad2", "014e2850-9927-441a-8c3f-9e58012359e3", "af02982c-8ae9-424c-9f35-6f18763a49e1", "ee8b963a-28a3-4772-a2bb-a68732b603bb", "027d6141-8cf8-4cd6-b250-6f1ac4f6afcf", "0c49cda5-7e55-46d8-8f1f-522ed1924a79", "43dcdaaf-746e-4665-88a3-adbe7351c9b1", "53ee9e25-ba9b-429e-9cad-70c223a2f881", "9681b4c6-9713-4bb3-aa9a-7df7daa4e74d", "e3fd2775-90a8-4f9e-bfad-8bfae2519e3b", "d8a7872e-aa42-4296-a4b8-53b72f3c8b19", "f3f87687-6c1d-415f-9fe0-5f0bdb031371", "46e0152d-45be-46a4-a44a-c1967f89d3aa", "bf53c470-f60b-4f93-bb97-9b2a61a5ab89", "86578abf-a15e-44f0-9ea8-3019578c8d19", "2d60dbfc-61dd-468b-b30a-c63b9d29c9bb", "8671219e-79fe-487b-b62e-0bc080088127", "69fac17f-6527-493d-8dac-cd3bb61ce23e", "b7b0e245-e49e-432f-bad9-53e4a0bf0019", "ad14de7c-ea6f-4811-a590-1ee8a65275e4", "4bc2e040-3193-40ad-ae69-d75f9fa4e5a4", "6a364c3b-2d86-4fd0-ad7f-228438ed6609", "b2a184be-1b3c-4e0e-b297-d2a3a95e3e43", "ab4b4145-563f-42f9-bfb6-97b48bdaa2c7", "5ee00a17-171f-46a4-927b-3aa9d0fe176e", "e26a1515-2609-42c3-a2d2-68b37cc0b4d6", "ef1aee4b-5b24-454e-8c17-ea886f1dbdeb", "587eca14-1115-4a97-aff1-664de9e3415f", "2e3ac19b-c10a-4fc1-a812-ef2cf0956fb9", "d2382b43-4a91-4d6f-ab61-1c23f34d3d16", "0015e453-3227-41b0-bd64-03c134abe054", "24aeba39-9b30-4533-9d28-39b50c6ce3c4", "975b2d0f-fcf7-4521-b129-7c65a3268609", "abf00ef3-e9f2-491a-9692-114c4885298c", "20987121-dccd-4bb8-b3f7-8536e639c4a9", "5f981cb7-60ba-4bdd-92d3-853bbaeff7f8", "76a7ea80-0a81-4b4f-983e-a7e36fa26685", "beb7196e-c020-4224-b5c4-e431ad9f143e", "ced785aa-d2db-4518-846c-d5b5549c2c49", "441b84fd-19e9-4413-949a-c3bbb6a3b16e", "bb0cce4d-4433-4e2b-9d73-be77918f2069", "e08db0a4-e257-46e0-8880-640415b05976", "311b89d8-9dbb-4602-8656-5b4151ad19f1", "0827f0fc-4f33-4a6e-b7b3-89165585d79f", "41006de0-560c-4e27-8dab-08e711a9bf7f", "b2c1c748-58cf-4efb-ba53-d79361f2b0f2", "c170d13a-68ab-43be-a31d-70abd821436b", "b19462f1-e7fa-4b90-83da-931b1e9d50e2", "c8b331da-1756-4836-acc5-f3d1c2142339", "a914f836-eb7d-4ebc-a537-e8d7dbb39429", "e02bcacc-92af-4fe0-8c57-e42ff3f74dcf", "130f8ebc-c88a-4ae2-8e2c-b9935cd3accd", "39d5e4c4-993f-46ad-979b-3daa146e4d53", "e076b7e5-e67e-4452-8b00-83046dd85c62", "6ddd7cf1-02f0-4d46-837f-8aaddd1236c7", "a8b81a1a-5ab7-41c0-9189-a808bfb97b6b", "6bf869e6-32ac-4558-ac54-f78a5ad1e918", "3059469a-03fc-4ae0-bbf7-b08187d1b290", "204dea41-2a6d-42d9-ac91-aae4f773ed36", "e257e982-fb75-4d98-9e15-228bd18c33f4", "6badc0af-4a97-4dd4-b89d-b540f6f34002", "52bf867c-68c2-40f0-a195-c4795ec13517", "6743f09b-846b-4d85-95c8-30212fd779cb", "e0b36364-fbdc-4878-8dca-9a448856f79f", "c30c1104-b238-4dcf-891b-1160ede92723", "9d7d1acd-671f-4662-9c30-6ec10abd219a", "4a10d608-6712-4f08-aa69-1cfd4541dd6c", "1b755d8c-7351-4ad3-aff3-affe95fb1737", "b22fea1c-b117-49e1-9d69-470aa8dd3fad"], "val": ["3528e260-6a6d-46d7-b97d-b6c029ec7304", "6eb10b39-5171-4293-afba-4084f5825748", "79a728ac-d543-4a7a-bf6d-132a676ca685", "0669b09c-fda3-4fbb-9c41-b9b1fd3ff31e", "3c744ca5-c64a-4de3-8235-c2f542ac5056", "1247a29c-9fda-47ac-8b9c-78b1e76e977e", "4b42679d-718e-4eb9-977e-8922b38ac46f", "725b6b84-0a79-4053-b581-828a5da77753", "2e00eb80-4fd0-4ba5-bcbb-5e671d7f3627", "5f00af1e-d17d-461c-878b-1b3211c95fea", "c8b9dc5b-8467-40d2-ab27-27923abcb054", "1ba0388f-aeb4-4dc2-8c3c-9c0fe63f282c", "d4c27ee9-443b-4ebf-a3ef-57829e24d991", "bf6cb63d-ff78-4186-b55d-6aaf2e210ab1", "a0f2b3d8-95f9-4ade-81c1-e17fcefa75d6", "99a39dee-cd6d-4a27-b32e-bc2dee856c02", "3499e612-8ded-4c5d-a36e-c00111b2f417", "5c12c6e3-d34e-4e9a-bd7f-74aed58427a7", "44d647ce-72d2-4312-b80c-99faea2d017d", "e09f97c8-0493-4d0a-98a6-e678d4c7dc00", "f78ad5b9-8960-493e-8c8a-ce19a53c12f7", "7c341853-eea3-4243-ab99-e11919aefa4c", "c4c0e97d-135b-4dec-b736-e184442bd42e", "7aaa0ec1-297e-43e6-9381-36d332bb21a5", "f291d174-596d-471f-836b-993315197824", "8011f715-1132-4cdf-ad47-146bc1759f21", "c692c40e-f2ca-4338-bb9e-1c779a7288a2", "99052842-9369-415d-b87b-1bf756ab13dd", "26065a7c-c2dc-475d-acff-6b5b9cb94469", "524596ee-0f80-4086-8b7a-248258864978", "6449cb24-e14c-4238-9d57-2e0efc4794ba", "4356d71a-56a5-413b-a407-14f144112d91", "bbfcc023-558a-4396-8560-d683c2407180", "f1bdf9f3-4f65-4c70-b8ba-b3d4607c0cff", "0fe5b647-cdd0-43e9-8710-b33a2e0f83ef", "1bc1334f-2546-4175-a9f4-b4338f46a246", "96d772ac-01e0-4e53-85e5-4ce45e58b6f1", "2f53a0ce-246d-4bb3-adea-37db80c45688", "96e117f2-984a-42fe-ad83-23857e27ae45", "5b225fd3-e57a-446e-b228-dd452c17a235", "5670a1c7-d4ac-4d05-bbf0-6c8161f02824", "b5f62731-3deb-4bac-b00c-fe96e57d86b3", "85b4c3c3-6486-43bd-b5b6-7cae6ffd4c9f", "b63d213f-25ae-41bb-8719-01efd84dbe17", "01a5aa96-29c3-4f4c-9f03-4404a4a260ef", "6101e4e5-a889-45c5-ab66-e9125d2138bf", "526b8408-7edc-4390-a1cc-44512faaa432", "c216e68c-7483-41d3-b862-d7319b90038e", "af277c0a-fa1c-4d8c-9f7a-a6a4d23b1796", "dfe05c45-851b-4a94-9c22-05aca881fda6", "c9e0bbae-4092-4ab1-95cd-16b905709a0e", "31c74ac0-8c3d-4d5e-b577-4e54f16fb52d", "2da6c2ce-a88f-4790-9642-8dfa810ae91b", "fcf26143-bd53-49f7-a876-78829e4faf71", "4d799166-0362-4daa-9f26-72e27a4feb31", "3a1b3ec6-13fd-43f4-8af6-f943953e01e4", "350002f0-3d78-477e-9c33-80a2cc16f29e", "96abbf92-97cf-406b-910d-59d139c9da79", "fea0ace3-1be2-46dd-ae8d-ae35a9f13b77", "09acf615-b967-4c6b-b48b-53640e7be030", "411408c0-8f5f-4698-a9c5-5e491ecba021", "73420725-69c3-4392-81ae-539f7e4112b2", "dd20e1de-2636-44a7-8e8b-a73571c375ef", "6aaed5b3-1cbf-4cd9-82b0-43f626135641", "09262ab7-05ea-43d3-8965-c9ebabdbd85c", "2df948cb-cc89-432c-842f-2419f7cf5fff", "8caf94c0-835e-48cd-9e7c-fa6bfddc0d5c", "a95f74b8-d2af-496b-b40d-21db0afa2f5d", "c8d61c25-2e15-4fb3-a522-abb11a36d404", "6ded8a71-6cca-4514-bbe0-6a5f028262c9", "1b4585b3-3717-4b1c-bacc-a8240ac91926", "cc8bfc86-777e-4537-b207-9c599e9a1f40", "a347a301-3d4f-4e2a-9fab-4f0229e48db7", "0f43bce7-5cd0-4ff2-8eae-466257d552b6", "f926d185-62b9-4838-9269-d7f4ac776f2a", "eafee432-77a1-4f9c-949e-aea614671b1c", "4cd84861-928c-4fb2-a261-2db2994959a4", "0c01e8ef-5dfc-469d-beb9-5ff051c3b384", "2d042a82-6409-4986-8bfb-af031f5e061e", "6fcb3904-2aee-41e7-a45f-4f498c8e1e82", "fdee7835-5174-4915-b13a-74ec4f33ad95", "09e9fcd9-cdd2-4ef3-956c-5a6b96d715d9", "091d8f3a-27d4-4dd0-8434-5b4d572e48e9", "f8e15a05-f5b1-48e7-8751-6fbeb8acad38", "168d649c-bb35-4401-9373-225f0731b508", "053fcb5e-1f33-493f-88c2-f61df147b4e5", "b50aba6e-2a45-4df2-9d07-8aaa993862ae", "67e74067-407f-4aa9-b8d9-dbac6ea2464f", "af464855-f44f-41ce-9f31-5d579cf00fbd", "a628ce61-dbd9-428e-ad72-106c9aa8af3f", "a89215f1-92fe-4207-9293-62ce108171da", "87a09132-b107-40bf-aca0-1ae6e5dc46cd", "f7805c2d-d9bf-44ed-9ad3-34145286f2d7", "b511dfed-58f4-4c91-bf0a-f8ce9d47aea9", "5d25cc61-f04d-47e3-9f0e-dbbf7707f0a0", "92b2221b-ae92-44f0-bb31-e2d27cb736d6", "c53a1199-5ca1-4aa8-ac4e-38227ff44689", "b26b4d93-0364-4333-8d4d-38ca1a6a4dfa", "b5f8232e-5686-43ba-8e7a-ffeadb232444", "a8f7a36a-28da-4b81-83b1-be21dc4c7f8a", "645a45ce-c993-4f67-b136-fe8c3bad9b6b", "058f9a7e-d7e8-415e-9827-272245422543", "9ebe4ac3-1472-4094-9e73-6014e78e0539", "a56ce926-8c85-4883-9ff5-dd7779d71b64", "01f3ef42-91ea-4561-a26a-aad776212c98", "8ad335cf-c9c5-412f-9347-53867db66ee0", "2fe390a8-1506-4420-9008-74199f92797b", "f5ced826-d8ef-42c6-8e6e-2ba287da99d4", "2ceb8750-40dc-4639-bf49-e19566df83d4", "d8db054f-b5ee-41c3-ba66-cb84ed2d286e", "3d4aa037-1253-4641-af4b-7d49dd8986e3", "ede7b9c1-c501-40b3-bc6d-205ea142366c", "896805f2-f741-40ae-87a0-16e520c12ada", "f2934ab9-bcfd-42fa-a329-7d0fc28818aa", "95db7d4c-8a4a-43cc-ac59-973e76ed4177", "1abe2e26-f6fb-4909-a4b0-824fb2f0676a", "47850a65-9719-4770-92e4-e428953addb3", "047a4e6e-97a9-4202-918c-9460bf89bdbe", "066cccd7-d7ca-4ce3-a80e-90ce9013c1ab", "6264ea0f-2023-4fbf-b898-5f7a13834be1", "b74169ba-77b0-447d-aeff-cb7934ff6711", "7b819974-3c39-440c-bccd-d74fdd3fc9d1", "0733d5bc-b1a8-40c3-98de-9585e23eb2d9", "6f5df748-4371-4fcd-b6c4-f776051b447a", "2ec7440e-5e29-410b-a5f6-40e3a2e45a31", "812bb3bb-217a-454c-995c-d3e995576b81", "7abe1f04-6712-4325-b49d-4bb65bd30eec", "e2b190bb-f8b2-43a7-b2da-b80f3708dcf3", "aa6257e0-001a-422b-9935-2f9c2b5973e6", "6e5211e1-72d8-4032-ba56-b4095c0f2b36", "4c075527-7526-4c00-9681-53258fe70881", "2ca53d8d-0120-4dad-a856-c8f20aaa2cc4", "6ca51642-c089-4989-b5a3-07977ec927d7", "76ec56ea-a516-4988-a516-40d04a5b21de", "6c4e2422-e83b-4ae5-8b9f-7bfdf3f2d3f7", "936e7e6e-aa06-4aca-b877-8d5f3c59ecc1", "8e3034fa-7bf6-4716-bfcf-b22a64c08d23", "47da5a64-aaff-45f4-8ed8-b7ab64b2d851", "d77bb04d-c881-48be-9cc2-d781c69207cd", "caa16834-c43b-44a0-b251-9b465533df5e", "3ca3a186-a650-4f8b-a9d0-f0bdb19bd860", "622995a4-01fb-478e-a33d-7eef6e8b370d", "ac5bc1ee-b7d5-4948-90aa-8f418ca4c0fa", "c785b2ec-1efd-4135-9707-d54386109075", "d300ece0-41a7-4707-a08b-2f48aedeb75f", "dc1600e9-dd79-4700-882a-9f53cdd29d20", "32dfc6fe-c801-4ce5-bb39-8841fca7a075", "c935b13b-462a-4ced-a041-f06592dff0e5", "360be2ce-99dd-424e-a7c6-a5908c7aa2f3", "ae2207b2-9b33-4f6a-aeb5-e2718a253c3b", "57efe7a9-0685-40b8-b076-51e59542c5d9", "1d0f3c10-ed0a-4f60-b0d2-a516690ff1cf", "af96da5b-4005-4aaa-a8d0-e2a97b471090", "13b85191-0a2c-4d0f-a54c-3118f5a96cbb", "c05e7fd5-d5f1-4949-872b-2dce2fe88c48", "71b8a896-84d6-4da6-97ab-78cfee6cd5da", "42e5adb6-6557-4a87-a575-0b84150e573c", "9feb55a1-b244-4323-b4d9-fa1af2893864", "d0df0e37-f7f3-4b38-8b80-36b4a14af68a", "58e5920e-e71c-4184-a0ae-a5f1f6ac3294", "5bd830a8-5752-4aab-bd01-e9fb518864fe", "09417ca4-3572-4ba1-a1db-7eaf3bd0b1c8", "fac6316e-d141-4bbd-b88b-a624491acb30", "9273e1ed-05a9-447a-9de4-dc6ac3580c47", "9e08e1e7-179a-4dac-bd0e-6e98e47407d2", "7a0757f4-8ada-424a-b4fb-81fac89c7259", "6effa4db-4cf2-4de5-8295-59366ede9ca4", "f76f2040-989c-42df-b2fb-e0903165443d", "6fbe4821-85ec-4834-80bb-0a214fa80893", "4411ea13-81b3-4682-99a1-500a3ed3beef", "8711980a-b71f-46d6-86c8-1607a5478dd0", "6bd00296-7ae3-41c9-89fd-52ba9410018f", "2dc49d13-5347-4d4b-8506-5510f2ae0b84", "853cdf8c-e669-40f3-95bf-1ed7cd2bbb75", "cd3aff9e-a017-4841-b61f-06790d271334", "d4a8fe94-6f62-42cb-aaaa-c2f9a056620e", "8eb9612b-7b52-4f0c-a72f-dd7f3c54bf2e", "349a435d-c2ad-4c64-9067-8733e7cd5ec9", "b60db7b1-c623-4f04-8c63-695c24b4648b", "f2653b13-757b-456b-9000-67275edadb5f", "967fcfb9-76a6-4f09-b218-16558dbbc98b", "c7d8eaab-dfb5-45ce-a152-d9f79c60fcca", "e5bfb696-72d8-4005-9a49-442579352db8", "140253fd-9258-483a-9bf1-5426d91a05dd", "27369696-d356-4d1b-8a22-be8bd4442150", "e6d8c6ad-31b2-4684-9762-2af1e6709611", "7785da94-b19b-491c-94dc-89106e095f79", "1c9dae64-e7d0-415b-ae95-99ee78eaae90", "d494760b-e16d-4e5c-880f-b7ad598056a7", "e420250d-b67f-4c46-bc40-31b8c9003d7e", "517207e4-cbae-4e58-81b4-cc8936dcefdf", "627bb538-91da-45fc-80ca-799c4a869858", "21aa9035-e825-436f-8021-fa802dda3602", "2bb5152e-cab4-46dc-9aa6-e73007f7df8b", "35bfade9-8ead-46a4-b2f0-cdcfb86df1d6", "454e2413-2b82-4aa2-b37f-b6422a861179", "f03b7f2c-2ac1-42db-ba61-c0f9c5be9dc3", "2041eb29-6086-4e5e-9881-0f14d9e6a8d8", "d6f0adfc-5c66-4c3e-95b0-902d12d7bb86", "cda93e67-c411-48cd-83f0-d7aafc6e4b3f", "5c3e7989-9b64-42dd-af7c-274ce12619bd"], "test": ["b5d293bf-2d0a-43be-8a7b-4b66ba9b6835", "849aaee0-866d-4b85-9775-39360e27fa90", "aa736cb2-7e37-4715-862a-bfc1edefcb06", "ce536dc7-6296-49d5-86da-49267edb3de8", "1dbad365-237b-45e5-acef-e52931b21c07", "a0f55b7e-5fd7-42cf-8a1b-90afb712a502", "bfea0427-fae0-452d-9824-16e44dd0be5d", "7112613f-9315-4da7-b741-1fb18f07f497", "954769e4-29ff-48a6-a870-38866a9cd7ad", "3c21c496-e352-4b71-a3fb-307e134e9fdd", "8c952699-0c25-453b-92dd-52b0580248db", "7bd4e6e0-93a0-4717-9666-266a2c29638d", "d94171f5-85c1-4dd5-9230-40187d4daab5", "989b038e-d46c-4433-b968-87b58a4c7037", "4764e94b-9132-4e65-996c-bc2bc67e17a2", "071edc40-b64c-4e94-aeed-d523ed4a2794", "aeec58e3-fbc9-467c-acda-6c92b45de1ab", "4fbac7f7-f8f0-40c6-9f73-7279fcc077b1", "d2218738-2af2-4585-bd1c-af8ad10d7827", "245c5620-481a-477c-be6d-07e02073eb4b", "2a8f7d15-4821-422b-a34d-e7ff2937f2e2", "4767e91a-8687-4992-8d6e-f0ddf0043300", "c43d0f58-9349-4d92-b358-d1a11070b1d1", "3be02e64-5a3b-4022-9643-69c0eaf34ac0", "1410e2ce-a62c-4a2c-8453-6eb172a58965", "acc8a39f-06f5-4792-8387-984ea6ae859c", "c507b073-7bf9-40db-8537-de599b6f6565", "6d1847fe-d2d2-4a11-80fb-1cf5ff6d965a", "6b2b8702-0f2a-4dac-bc2f-bfb981b69e28", "18b18195-afdb-429e-8250-42d25e882ba9", "47e06650-7973-4dd9-a509-a7425fecac19", "691b6dff-620e-4aab-8302-3a9045be33da", "33b0f445-e852-4533-87a2-daa650113a80", "4fd05061-02cd-4bf6-9191-02ff8303ca40", "2cba50be-6d39-4f53-b9cc-cb520a588443", "04f20e56-c4da-4775-93de-71a8ffd9ab48", "46cc2fa4-bfb1-4a4a-beba-e157254be154", "eaa2ec3e-8c2b-47f5-8b63-8d64c6672d0b", "3b213b67-8a20-4447-9c25-9fdbd3a4aed5", "3dda64b1-9a7c-47dc-8f64-c29b608addbe", "87b2f72d-e899-4700-9b91-61ebe228e2cf", "7ba244fc-6b1f-4c4a-abea-bef004a9ea95", "d2addf5b-75c2-41ef-a68e-738229940a0c", "e2e24a61-148a-46b4-b9a2-d164359e3554", "9cbede95-3edd-40eb-b9ea-483f85aaee5b", "b5de2666-ed5f-48ef-a278-78016630a53e", "678bfebf-6819-4659-8c0f-1bc71438863c", "806b80b5-7963-482a-a5b5-82b95bfdd8b3", "6e427eaa-66a3-4eb2-8e2a-9f4ec4f012bf", "ac5041d2-af23-4b3c-9150-247142ade9fe", "f36be1f1-491e-4d78-9ce6-d00c4590868b", "632755de-f080-4057-8626-6c402a6129c9", "506a2aab-775c-435c-8006-918d8fdd997a", "7d83d5fb-1039-444c-83fb-bcc2f4a7dcf2", "efa3ae42-f12a-45d6-8c02-93c9b77e9809", "abfb0e8e-4351-4086-b7ca-f84785d768d0", "ea6a008f-c171-43e0-97fa-647658352f77", "8192f44c-6159-473e-9885-704e7975830c", "215844c3-63d3-4c8c-86f7-aeff2cf79764", "42b14a01-28c8-42a5-8981-b8a026f8dc18", "d2d758c8-ca3c-48f3-bebd-cef5e2a6d5b7", "c083db28-d790-4602-915d-d7e5df588ef6", "d04754aa-9310-43b2-9a10-07019d498abe", "decfd1c6-c12d-4b22-adcf-afe640485ec5", "667851b8-c0b6-4073-94ae-07efe816234c", "0aebd388-55a4-4425-a9ee-f09b64d94a00", "7dafc952-ef17-4105-a2b4-e2da46b9d0a4", "69cd4cbf-f1f1-4b92-ae7d-85d85e144554", "bf0a2ea8-b7be-4e55-aab9-4c9e222a4568", "aa6c180d-b00f-4f23-b800-8c93eade3eec", "80523ee9-f498-4102-85fa-362ae8150d70", "1c7e5c46-d4cf-4ba5-9b4c-03379881c2a1", "0f6bce99-6334-4f0a-b466-59808c1661ba", "78727816-4b9b-4616-97ea-46cfe0ecbe7a", "7c1e3829-4687-4f8e-b254-1a186fe05ecb", "ea7225fd-0a63-4f21-aae6-7651e4d7d538", "ad8ef724-84cd-403a-934d-9690f7cb96b8", "6245b4c7-b1e5-4118-ab4f-ee0bbd613592", "961e4bc4-8a41-4f0c-ba12-bc198b9b15f2", "c68f8dd1-3fea-49e6-934b-7ed7a6b12aeb", "0a3868ef-fdba-4aba-bc02-5028d1ed26f4", "916d656b-c2a0-4147-bd73-bc4050285591", "96baac26-c261-4836-81c7-fae46778f91a", "5e71014b-9709-4bc0-b0e7-3402be4a1f5a", "0df55687-74be-4dbf-aebe-fe0951b17ecf", "14216890-51bb-4300-8893-bf29a39b69b9", "20161581-ec53-4508-a21c-328ed66b78f9", "563d1c9a-a639-4027-939c-7bc6b792b6b2", "90c0f824-6970-46fe-bb24-053fed422366", "231d228c-352f-45d7-a395-3af1f69899a4", "cfac1e14-8ed8-4143-b69c-e1399ee06914", "c24336fd-f974-42c6-82c8-e20e5054ab8f", "0bacb5bb-591d-4756-a2cf-ed90793e65bb", "d8452234-3ca0-483d-9077-9c1ec8a59668", "83b0fc4f-9a36-4dd7-9495-a68c9f82defe", "8e3c3065-f05d-4ce2-af8e-f6bbd58d4383", "86d8d4ac-a4b1-4574-8979-0457af8c34a6", "8b1d8ba4-1ce1-41f3-ab9f-483567e05cd8", "70f729ca-b1a2-428f-875c-edbbd988a4b5", "0b82763e-b9ee-40e5-8dd5-b8da7e862662", "f06d7f9b-0da8-4406-b3d3-06cd70de0e0f", "fc9da694-2604-4bd7-a1ac-215ace732e85", "e287f510-8de4-40d7-b127-4f793e3d46ac", "97e4e710-7348-4e79-b80b-244a6b64ebdd", "7b839fc9-8b7c-47f1-b55e-2247dfd8eb41", "cec24cad-0c95-49a2-bdd3-5635e4b88149", "3b86adc3-0a22-4d29-82a9-e02c90471f82", "56acc1be-a6cc-479c-9ba1-ee49fcf71f8b", "069048a8-3eff-4841-9f81-a3422edea6e3", "02def476-33eb-4895-a448-a4398d44e16b", "661003f4-0223-4cb5-bb3f-d92ca5d8354d", "4168725e-870e-4e1c-be99-1e1a6193d094", "8cd9020c-eaba-402f-87b5-f7c5422a49b4", "f3287a55-a424-4011-a38e-c73700829576", "c792ef5b-1479-4336-b57c-6d4ee1e4d336", "2def272d-f803-4feb-95a9-63409b333fd2", "4cd8094f-4300-469d-9523-3ee0f43d1259", "66824dc1-5e9d-4997-a2d6-482d3c920b5e", "2227ff92-8645-479e-a099-bd8025080e62", "7c187ae5-b793-42c2-abca-54e1d0822a32", "73736c6c-2654-4ef8-939d-9c4a23eed5d7", "22568049-4087-4ca2-8857-a834a9fc7f28", "b0589218-e06e-4767-9bb4-1ef59f935bdc", "45450839-a979-4c26-8b35-9111bafa5731", "0d172781-f22a-476f-b0c6-6f0ae6b928c9", "8f379213-9adf-40d8-9482-3eed6b03b83b", "9de15300-fbcb-4838-be91-6b646be2646e", "10c9cece-4f33-4fa9-8c1a-5974d16c1c0a", "6afade94-d8e7-4b29-be3e-9373d0d2d634", "3745bd24-ceb7-4760-98ea-68b54de2141c", "66f0c633-292e-44b2-ad78-7ec57a8507e6", "f0ebc587-3687-494d-a707-2a5d52b64719", "36dcdc61-378f-4087-a43f-659e58eb6440", "5b982afa-3c1b-49e1-9508-77d0f396c3f6", "77f71fa8-7ddc-430a-8f66-4af710903388", "cada8157-091c-491d-96b8-9da4dbf1c973", "b1b83ddb-38ca-48d2-9142-dbc8240c2067", "92c76cdf-8b91-4a05-806d-121429534d8f", "4403cf98-cd76-4233-b92f-585665ccbe7e", "00cad7aa-fd92-486d-b309-59d03fa51dfa", "1f541cce-f10b-4cd3-814f-8e2d527df8f5", "464c4a51-a74f-4ff4-9ece-8d38b9c22bfc", "a20923c1-a2d6-40ce-b7ce-f23ce249f460", "42efe6bf-aeff-4777-a189-d2872be008b5", "01ad22c9-6626-46cf-b5e2-a316faacfb99", "6f0b44c4-0067-4677-a775-53181d9b0457", "40dc3bbc-c8c4-4e6d-a2a5-32a357f3c291", "b2fea2b1-2404-4cf2-9be3-79879011cba6", "e71c943b-75c0-4055-92fc-115d1c8f6d8a", "073bdef7-e4cb-49ea-b006-b3d6f53f34b3", "fe0f7a34-97d0-4817-b608-210d2aa0bce9", "d67e303e-9309-473f-8857-1cc3ad78983b", "cef7bc84-112c-4133-9fa5-2a046c2b903a", "2f820d40-743f-49a8-b289-55276960970e", "fa08ac41-74ca-42d3-80e6-6728cc3c1854", "ee1020b8-2dca-4ea2-92de-5f6a56ea332f", "97ecbdcf-f044-4d75-9b46-b7ba0f35ef19", "262871b5-eee7-4e65-9532-9a219b5aa52b", "32805896-b265-4445-8992-ab30e98415f8", "5ccd281c-9ede-49d8-9f61-f8f228565472", "4773786c-6320-4a24-81e9-d735dbf9476b", "a3b39b50-809e-45bd-87d9-de565461645b", "91d27f06-a756-45d4-9547-673a9ef0a05f", "79fb81e5-7025-46c7-9e0c-e9d97658929b", "afe5310d-200e-4444-ad2d-9fb34fee5230", "cdd0ce74-4698-4394-aaf2-00e159577d3f", "59cb65bb-7d1e-4bd9-9468-a76658b4b50f", "e83b0f8c-e9e5-4b38-ad3a-3906a3bb296a", "92cd0d7e-2465-46fa-be63-30cfadc347e3", "cfff9bb7-a95c-446f-84f6-27fa997b4ce2", "3bc38ebc-8109-4b4d-b43c-aad3bd0dfed2", "ac651c92-0938-4258-8c22-a8d1e881af61", "6a1dac0d-5945-4a81-9259-ce49de3ecf79", "00a6dd13-d5b0-4743-b252-ed61e61f1d49", "cb55bedd-c5ff-4bbb-83a9-b8287d3bb77c", "45f15f81-ec4e-4db4-b42d-4121a564d485", "de5ca2af-8e72-4fa4-92d2-65295781654e", "0d26fb16-d4ba-4c47-9c32-5f8f052e7396", "77814f97-e0c5-40dc-91ff-3e0fc5003d0d", "e8a5f8a4-d01c-4599-bc3b-980157bf14ed", "b9643892-d3dc-4dba-a18f-b9f8e44cbcb4", "934c8086-19a8-4aac-aae9-c02a912cbf9e", "c70e2763-0e1b-4c8b-b056-ecbe28831b22", "ad9c8e7b-a290-4c64-8c41-972dfc201055", "f3a8d0f5-ac34-4732-858a-39162f491f4b", "8bb82e72-b893-467a-8844-f3a1010548ef", "3cbf69e4-1c29-4515-9a03-67c3526e91e1", "2bb3f8db-a6b0-49b8-8c0f-686774acf00a", "4df80aae-3500-463b-884d-63d034e6414f", "dde3ddc3-403e-4935-a7f7-eca575e05b99", "1bf59cee-8985-4d84-a34f-e7c35e492900", "9a533209-1d5e-4382-a2f8-c109605845e3", "ef2cad65-06b2-4b1a-8956-c387721d2051", "0a22a1c1-844c-4f62-8eeb-f16eee62357f", "77b1cae6-7e57-47f9-83ae-c68243792d36", "a4b3be28-cc60-43f9-8158-0e098eb5aa82", "9706857d-4232-4f55-9873-871da2906f3a", "eb151659-2bf2-4682-899b-73f2ba10d179", "8162166b-41c8-4b1a-baf2-14df7feddd83", "ec6885cb-287c-421e-b16d-e63a59c21d80", "0e31e520-9d8f-4373-bd95-058d316902ad", "04d87074-8116-4f09-b6e5-10670c9e772d", "a759a24a-3447-4554-99df-9dc1b647eb8d", "3054ec91-4ea2-4612-8b0e-8f3ba0c6b981", "fea8a839-1976-4457-b8c7-c722e63faea9", "98895ed3-7fc5-4dc0-ae9b-d808971e9334", "e469c7e2-bcbd-4cf6-97d7-3f3562e5c1a9", "3c3266b2-ecb8-4d81-8693-bc2caa4b1409", "f7d5c603-29d6-4800-a4fa-768819f52a84", "74593ce4-28eb-42e6-8ee0-02f16e704788", "3940a14c-f0ae-4636-8f03-52daa071f084", "71d1fd0e-6665-4b45-8b2a-3460d36e368a", "ab1786c9-b44c-40e2-8d59-5f7ddf06dceb", "b7501cba-7399-4e36-9ee4-38308487395f", "9357c6f2-9c17-4259-a4bd-7a715e7331e4", "3ce1d69f-2a22-434d-8902-86ff4acb155b", "45cb84f9-a925-43f8-aa7e-0fba6e23a86e", "0822b710-baa5-4b66-b0da-96b72c15f846", "196a6da7-56bc-443c-ad04-d80a0bbf31fa", "95fa7feb-562e-4085-bc83-4dd14bd9862b", "6b93427f-465c-436b-a841-78424da94581", "333e7b03-d350-4bea-b980-f1bd217bd164", "561e7156-f761-4509-a714-e8b2b8e754a4", "6d766fcc-76f7-4942-bb40-1aa9c8b2020b", "4c1ce02e-53fd-4b0d-b895-14f5e2fbc78f", "f807401e-bd24-4d51-a0e3-40d20fd5e670", "e3cb859e-73ca-4cef-8c08-296bafdb43cd", "ba599750-543d-4b8f-bf65-da170082a25e", "2f5e3fbf-bd7a-4b11-b75d-ef62aa2f622d", "72df40a1-9bf5-4e49-86f5-5db56639de05", "2f6dc326-3689-4190-a8f8-674a5e6d688b", "d744484b-0012-4882-8532-14adc4fc0907", "6f408dd3-343d-49cc-846b-103660ab5275", "41424c96-9d0a-43b0-895c-7383261e6337", "c2ebdf8c-3990-4d02-9760-41dc1f131419", "ce433b23-9913-4265-a1ed-7a0c24e54384", "3512c265-1506-47ad-8ade-aa8891f65ced", "a7ea76ee-1479-4b88-91db-35124d52a989", "ecf4c73a-1b9d-492a-b18a-6a3276e163b1", "f8b4b1a2-c85f-4595-8680-67ecf53d3dc4", "2eff9418-fd22-4cec-854a-ccc1ba2681bc", "abc64c60-1cc8-49c1-8489-79592aafdf8a", "f3566beb-664b-4df0-8a83-140ae9c2952e", "c9f4c6e1-4fd2-453e-acb8-590e7ba5c8ee", "280ab94b-ebd0-4245-85a1-4cacd670588f", "23c5bf8a-7781-42d4-b6d8-2ab6025157c7", "96bee032-4903-4d47-ade4-6535f0590fe2", "f4a17391-0f26-448d-831a-7f69e22d3414", "32bd2d54-16a9-4b34-aff8-daefce73b626", "d990a808-367c-415f-8e3a-8eac6c950e72", "7f534830-cde5-45ff-87fc-d2072a584cae", "fd1b1d67-ac78-43a5-9924-b12157d72cb6", "8ef56f71-6d85-4ff4-949e-2c386d99a38e", "6ede3c7d-44fd-4bc9-85fb-7ccb75d7d731", "fcb6b025-6e41-4e97-b4b5-d5fdf0ebd3cb", "150e45fa-eb77-4a8b-bd60-d4801dff8c9f", "30a2a49c-ea8a-4199-a9e2-7b21515d3483", "9e3cebb7-8a16-471a-9b32-d9b4e294896e", "1c761444-ece6-46c0-8b95-427f2aa8f405", "b9e252ee-51c4-480d-8dc0-6a0a6022fa0f", "7be57a0b-9f5a-4682-a18b-1998d938451e", "570b3b00-ff83-4eff-9313-9c0ef967d9b6", "1c4c0679-9b40-4624-8e8d-b688a3a69929", "d39e0bcf-5f2c-4468-abe6-ae18b3c407cb", "09950cc3-4936-4385-8fff-48e5c042595b", "d85733f6-51c4-4046-b51c-73894f5aa621", "2f86293e-823d-4e2d-8c54-2f888e2639ed", "19c3829d-7af3-4cb6-878c-7d29d565edef", "9c50296b-217b-4e84-aaae-9015daee59a9", "247cde12-df65-4d59-ac01-449680e83871", "bd322fcd-9b14-4ce8-999d-d4ef896c8363", "d1586c7d-29ba-4060-a828-02c162ba812d", "61b218b2-52fb-465f-855f-41e5164d7998", "901cebcb-d84b-43ed-a80f-719e62561b82", "73d9fbc1-b6b3-4b3e-89db-3a4de56b924c", "23c5085a-8ead-4f74-be3b-9287e4019e98", "8bb95fbe-efa4-416b-9558-a0301b846f25", "0099226c-9bec-44aa-ba43-2b90eb7b8379", "b1ff7a1d-74e0-4bbb-a047-2f70eb1bc568", "c47b2e19-8a8f-4594-9144-8b7be780ab74", "a2527385-d99e-4cc8-a407-250da018a3c9", "edad0957-8423-4647-bdd2-c6f4c1d15f38", "602a2ac1-280b-46b6-bf3c-1191cb2fc224", "534f433c-14c2-4eb7-851a-a23a8b2ee340", "136cd3d8-5eff-44a2-b761-dcd0c190c71b", "5e3c697c-9aef-4686-9055-b34185b21a75", "f4e73920-1679-43d6-a307-4b6672811e46", "673f2b3e-413a-4450-aca8-ffbfb56db7be", "83decc40-f9da-469a-9ce2-1d173b06e5b3", "e14c702f-a451-46e6-ab31-c1213ec2f1be", "75cc6a20-2451-4922-844b-3e376e095657", "a50d179d-4dc4-4cf4-afb3-0c43cf86d44c", "ef2d0ea2-a3aa-45ef-83e3-6d8b0d863dc5", "af223382-86df-43f7-989b-331fe0436810", "1876d795-0c6f-4e0e-8165-e7a0c8a6e77f"]}
correspondence/SegSwap/data/video2img.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import cv2
2
+ import os
3
+
4
+ def save_video_frames(video_path, output_dir, prefix="frame", start_frame=0, step=1):
5
+ """
6
+ 将MP4视频逐帧提取并保存为图片。
7
+
8
+ Args:
9
+ video_path (str): 输入视频的路径(MP4格式)。
10
+ output_dir (str): 输出图片文件夹路径。
11
+ prefix (str): 保存图片的文件名前缀。
12
+ start_frame (int): 从第几帧开始提取。
13
+ step (int): 提取帧的间隔(默认为1,即每帧保存)。
14
+ """
15
+ # 检查视频文件是否存在
16
+ if not os.path.isfile(video_path):
17
+ print(f"视频文件 {video_path} 不存在!")
18
+ return
19
+
20
+ # 创建输出目录
21
+ os.makedirs(output_dir, exist_ok=True)
22
+
23
+ # 打开视频文件
24
+ video_capture = cv2.VideoCapture(video_path)
25
+
26
+ # 获取视频的总帧数
27
+ total_frames = int(video_capture.get(cv2.CAP_PROP_FRAME_COUNT))
28
+ print(f"视频总帧数: {total_frames}")
29
+
30
+ # 从指定的起始帧开始读取
31
+ frame_idx = 0
32
+ saved_frame_count = 0
33
+
34
+ while True:
35
+ success, frame = video_capture.read()
36
+ if not success: # 读取失败或到达视频末尾
37
+ break
38
+
39
+ if frame_idx >= start_frame and (frame_idx - start_frame) % step == 0:
40
+ output_filename = os.path.join(output_dir, f"{prefix}_{frame_idx:06d}.jpg")
41
+ cv2.imwrite(output_filename, frame)
42
+ saved_frame_count += 1
43
+ print(f"保存帧 {frame_idx} 到 {output_filename}")
44
+
45
+ frame_idx += 1
46
+
47
+ video_capture.release()
48
+ print(f"完成!共保存 {saved_frame_count} 帧到 {output_dir}")
49
+
50
+
51
+ # 使用示例
52
+ video_path = "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/data/input2.mp4" # 替换为您的MP4视频路径
53
+ output_dir = "/data/work-gcp-europe-west4-a/yuqian_fu/Ego/multi_view_data_2" # 替换为您希望保存图片的文件夹
54
+ save_video_frames(video_path, output_dir, prefix="video_frame", start_frame=0, step=30)
correspondence/SegSwap/data/video_extract.sh ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ # 定义路径变量,方便修改
4
+ TAKE_PATH="/work/yuqian_fu/Ego/egoexo4d_keystep/takes"
5
+ ANNOTATION_PATH="/work/yuqian_fu/Ego/egoexo4d_relations/annotations/relations_val.json"
6
+ SPLIT_PATH="/work/yuqian_fu/Ego/data_segswap/split.json"
7
+ SPLIT="val"
8
+ OUTPUT_PATH="/work/yuqian_fu/Ego/camera_ready_iccv_0923"
9
+
10
+ # 顺序执行三条命令,前一个成功才执行下一个
11
+ python process_data.py --takepath $TAKE_PATH --annotationpath $ANNOTATION_PATH --split_path $SPLIT_PATH --split $SPLIT --outputpath $OUTPUT_PATH && \
12
+ python process_data2.py --takepath $TAKE_PATH --annotationpath $ANNOTATION_PATH --split_path $SPLIT_PATH --split $SPLIT --outputpath $OUTPUT_PATH && \
13
+ python only_extract_frames.py --takepath $TAKE_PATH --annotationpath $ANNOTATION_PATH --split_path $SPLIT_PATH --split $SPLIT --outputpath $OUTPUT_PATH
14
+
15
+ echo "All commands executed successfully."
16
+
correspondence/SegSwap/environment.yml ADDED
@@ -0,0 +1,145 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: segswap
2
+ channels:
3
+ - conda-forge
4
+ - defaults
5
+ dependencies:
6
+ - _libgcc_mutex=0.1
7
+ - _openmp_mutex=5.1
8
+ - asttokens=2.2.1
9
+ - backcall=0.2.0
10
+ - backports=1.0
11
+ - backports.functools_lru_cache=1.6.5
12
+ - bzip2=1.0.8
13
+ - ca-certificates=2023.5.7
14
+ - decorator=5.1.1
15
+ - entrypoints=0.4
16
+ - executing=1.2.0
17
+ - ipykernel=6.15.0
18
+ - ipython=8.14.0
19
+ - jedi=0.18.2
20
+ - jupyter_client=7.3.4
21
+ - jupyter_core=5.3.1
22
+ - ld_impl_linux-64=2.38
23
+ - libffi=3.4.4
24
+ - libgcc-ng=11.2.0
25
+ - libgomp=11.2.0
26
+ - libsodium=1.0.18
27
+ - libstdcxx-ng=11.2.0
28
+ - libuuid=1.41.5
29
+ - matplotlib-inline=0.1.6
30
+ - ncurses=6.4
31
+ - nest-asyncio=1.5.6
32
+ - openssl=3.0.9
33
+ - packaging=23.1
34
+ - parso=0.8.3
35
+ - pexpect=4.8.0
36
+ - pickleshare=0.7.5
37
+ - platformdirs=3.8.0
38
+ - prompt-toolkit=3.0.38
39
+ - prompt_toolkit=3.0.38
40
+ - ptyprocess=0.7.0
41
+ - pure_eval=0.2.2
42
+ - pygments=2.15.1
43
+ - python=3.10.11
44
+ - python-dateutil=2.8.2
45
+ - python_abi=3.10
46
+ - readline=8.2
47
+ - six=1.16.0
48
+ - sqlite=3.41.2
49
+ - stack_data=0.6.2
50
+ - tk=8.6.12
51
+ - traitlets=5.9.0
52
+ - typing-extensions=4.6.3
53
+ - typing_extensions=4.6.3
54
+ - wcwidth=0.2.6
55
+ - xz=5.4.2
56
+ - zeromq=4.3.4
57
+ - zlib=1.2.13
58
+ - pip:
59
+ - absl-py==1.4.0
60
+ - appdirs==1.4.4
61
+ - cachetools==5.3.1
62
+ - certifi==2023.5.7
63
+ - charset-normalizer==3.1.0
64
+ - click==8.1.4
65
+ - cmake==3.26.4
66
+ - contourpy==1.1.0
67
+ - cycler==0.11.0
68
+ - debugpy==1.5.1
69
+ - decord==0.6.0
70
+ - docker-pycreds==0.4.0
71
+ - filelock==3.12.2
72
+ - fonttools==4.40.0
73
+ - gitdb==4.0.10
74
+ - gitpython==3.1.31
75
+ - google-auth==2.22.0
76
+ - google-auth-oauthlib==1.0.0
77
+ - grpcio==1.56.2
78
+ - idna==3.4
79
+ - imageio==2.31.5
80
+ - jinja2==3.1.2
81
+ - joblib==1.2.0
82
+ - jupyter-core==5.3.1
83
+ - kiwisolver==1.4.4
84
+ - kornia==0.6.12
85
+ - lazy-loader==0.3
86
+ - lit==16.0.6
87
+ - markdown==3.4.3
88
+ - markupsafe==2.1.3
89
+ - matplotlib==3.7.1
90
+ - mpmath==1.3.0
91
+ - natsort==8.4.0
92
+ - networkx==3.1
93
+ - numpy==1.25.0
94
+ - nvidia-cublas-cu11==11.10.3.66
95
+ - nvidia-cuda-cupti-cu11==11.7.101
96
+ - nvidia-cuda-nvrtc-cu11==11.7.99
97
+ - nvidia-cuda-runtime-cu11==11.7.99
98
+ - nvidia-cudnn-cu11==8.5.0.96
99
+ - nvidia-cufft-cu11==10.9.0.58
100
+ - nvidia-curand-cu11==10.2.10.91
101
+ - nvidia-cusolver-cu11==11.4.0.1
102
+ - nvidia-cusparse-cu11==11.7.4.91
103
+ - nvidia-nccl-cu11==2.14.3
104
+ - nvidia-nvtx-cu11==11.7.91
105
+ - oauthlib==3.2.2
106
+ - opencv-python==4.7.0.72
107
+ - pandas==2.0.3
108
+ - pathtools==0.1.2
109
+ - pillow==9.5.0
110
+ - pip==23.1.2
111
+ - protobuf==4.23.4
112
+ - psutil==5.9.0
113
+ - pyasn1==0.5.0
114
+ - pyasn1-modules==0.3.0
115
+ - pycocotools==2.0.6
116
+ - pyparsing==3.1.0
117
+ - pytz==2023.3
118
+ - pyyaml==6.0
119
+ - pyzmq==25.1.0
120
+ - requests==2.31.0
121
+ - requests-oauthlib==1.3.1
122
+ - rsa==4.9
123
+ - scikit-image==0.22.0
124
+ - scikit-learn==1.2.2
125
+ - scipy==1.11.0
126
+ - sentry-sdk==1.27.1
127
+ - setproctitle==1.3.2
128
+ - setuptools==67.8.0
129
+ - smmap==5.0.0
130
+ - sympy==1.12
131
+ - tensorboard==2.13.0
132
+ - tensorboard-data-server==0.7.1
133
+ - tensorboardx==2.6.1
134
+ - threadpoolctl==3.1.0
135
+ - tifffile==2023.9.26
136
+ - torch==2.0.1
137
+ - torchvision==0.15.2
138
+ - tornado==6.1
139
+ - tqdm==4.65.0
140
+ - triton==2.0.0
141
+ - tzdata==2023.3
142
+ - urllib3==1.26.16
143
+ - wandb==0.15.5
144
+ - werkzeug==2.3.6
145
+ - wheel==0.38.4
correspondence/SegSwap/eval_handal.py ADDED
@@ -0,0 +1,252 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ import os
3
+ import sys
4
+ sys.path.append('/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model')
5
+ import numpy as np
6
+ from PIL import Image
7
+ import cv2
8
+ import json
9
+ import random
10
+ import torch
11
+ import torch.nn.functional as F
12
+ import torchvision.models as models
13
+ import torchvision.transforms as transforms
14
+
15
+ import transformer # model
16
+
17
+ import tqdm
18
+
19
+ from pycocotools import mask as mask_utils
20
+ from torch.cuda.amp import autocast
21
+
22
+
23
+ MASKThresh = 0.5
24
+ root_path = "/data/work-gcp-europe-west4-a/yuqian_fu/datasets/HANDAL"
25
+ json_path = "/data/work-gcp-europe-west4-a/yuqian_fu/datasets/HANDAL/handal_test_all.json"
26
+ with open(json_path, "r") as fp:
27
+ datas = json.load(fp)
28
+
29
+
30
+ def reshape_img_war(img, size=(480, 480)):
31
+ C = 1
32
+ if len(img.shape) == 2:
33
+ H, W = img.shape
34
+ img = img[..., None]
35
+ else:
36
+ H, W, C = img.shape
37
+
38
+ temp = np.zeros((max(H, W), max(H, W), C), dtype=np.uint8)
39
+
40
+ if H > W:
41
+ L = (H - W) // 2
42
+ temp[:, L:-L] = img
43
+ elif W > H:
44
+ L = (W - H) // 2
45
+ temp[L:-L] = img
46
+ else:
47
+ temp = img
48
+
49
+ temp = cv2.resize(temp, size, interpolation=cv2.INTER_NEAREST)
50
+
51
+ return temp
52
+
53
+ def get_model(model_path):
54
+ ## set gpu
55
+ device = torch.device('cuda')
56
+
57
+ backbone = models.resnet50(pretrained=False)
58
+ resnet_feature_layers = ['conv1','bn1','relu','maxpool','layer1','layer2','layer3']
59
+ resnet_module_list = [getattr(backbone,l) for l in resnet_feature_layers]
60
+ last_layer_idx = resnet_feature_layers.index('layer3')
61
+ backbone = torch.nn.Sequential(*resnet_module_list[:last_layer_idx+1])
62
+
63
+ ## load pre-trained weight
64
+ pos_weight = 0.1
65
+ feat_weight = 1
66
+ dropout = 0.1
67
+ activation = 'relu'
68
+ mode = 'small'
69
+ layer_type = ['I', 'C', 'I', 'C', 'I', 'N']
70
+ drop_feat = 0.1
71
+ feat_dim=1024
72
+
73
+ ## model
74
+ netEncoder = transformer.TransEncoder(feat_dim,
75
+ pos_weight = pos_weight,
76
+ feat_weight = feat_weight,
77
+ dropout = dropout,
78
+ activation = activation,
79
+ mode = mode,
80
+ layer_type = layer_type,
81
+ drop_feat = drop_feat)
82
+
83
+ netEncoder.to(device)
84
+
85
+ print ('Loading net weight from {}'.format(model_path))
86
+ param = torch.load(model_path)
87
+ backbone.load_state_dict(param['backbone'])
88
+ netEncoder.load_state_dict(param['encoder'])
89
+ backbone.eval()
90
+ netEncoder.eval()
91
+ backbone.to(device)
92
+ netEncoder.to(device)
93
+
94
+ return backbone, netEncoder
95
+
96
+ def get_tensors(I1np, I2np, M1np):
97
+
98
+ # masking Image1
99
+ I1np = I1np
100
+
101
+ I1 = I1np
102
+ I2 = I2np
103
+
104
+ norm_mean, norm_std = (0.485, 0.456, 0.406), (0.229, 0.224, 0.225)
105
+ transformINet = transforms.Compose([transforms.ToTensor(),
106
+ transforms.Normalize(norm_mean, norm_std)])
107
+ tensor1 = I1
108
+ tensor2 = I2
109
+ tensor3 = M1np
110
+
111
+
112
+ tensor1 = transformINet(tensor1).unsqueeze(0).cuda()
113
+ tensor2 = transformINet(tensor2).unsqueeze(0).cuda()
114
+ tensor3 = torch.from_numpy(tensor3).unsqueeze(0).type(torch.FloatTensor).cuda()
115
+
116
+ return I1, I2, tensor1, tensor2, tensor3
117
+
118
+ def forward_pass(backbone, netEncoder, tensor1, tensor2, tensor3):
119
+ with torch.no_grad():
120
+ with autocast():
121
+ feat1 = backbone( tensor1 ) ## feature
122
+ feat1 = F.normalize(feat1, dim=1) ## l2 normalization
123
+ feat2 = backbone( tensor2 ) ## features
124
+ feat2 = F.normalize(feat2, dim=1) ## l2 normalization
125
+
126
+ fmask = backbone(tensor3.unsqueeze(0).repeat(1, 3, 1, 1))
127
+ fmask = F.normalize(fmask, dim=1)
128
+
129
+ out1, out2, out3 = netEncoder(feat1, feat2, fmask) ## predictions
130
+ m1_final, m2_final, m3_final = out1[0, 2].cpu().numpy(), out2[0, 2].cpu().numpy(), out3.item()
131
+
132
+ return m1_final, m2_final, m3_final
133
+
134
+
135
+ # ego2exo
136
+ def egoexo(backbone, netEncoder, ego, exo, obj, pred_json):
137
+
138
+ pred_json['masks'][obj][f'{ego}_{exo}'] = {}
139
+ data_list = []
140
+ for data in datas:
141
+ if data["image"].split('/')[0] == obj:
142
+ data_list.append(data)
143
+ for idx, data in enumerate(data_list):
144
+ query_frame_tmp = cv2.imread(os.path.join(root_path, data["first_frame_image"]))[..., ::-1]
145
+ query_frame = Image.fromarray(reshape_img_war(query_frame_tmp))
146
+ ann_query = data["first_frame_anns"][0]
147
+ query_mask = mask_utils.decode(ann_query["segmentation"])
148
+ query_mask = reshape_img_war(query_mask)
149
+
150
+ target_frame_tmp = cv2.imread(os.path.join(root_path, data["image"]))[..., ::-1]
151
+ target_frame = Image.fromarray(reshape_img_war(target_frame_tmp))
152
+
153
+ Ix, Iy, tensor1, tensor2, tensor3 = get_tensors(query_frame, target_frame, query_mask)
154
+ mx, my, confidence = forward_pass(backbone, netEncoder, tensor1, tensor2, tensor3)
155
+
156
+ y_step = (my > MASKThresh)
157
+
158
+ target_pred = mask_utils.encode(np.asfortranarray(y_step.astype(np.uint8)))
159
+ target_pred['counts'] = target_pred['counts'].decode('ascii')
160
+ idx = str(idx)
161
+ pred_json['masks'][obj][f'{ego}_{exo}'][idx] = {'pred_mask': target_pred, 'confidence': confidence}
162
+
163
+
164
+ def evaluate_ours(backbone, netEncoder):
165
+ result_list = []
166
+ for data in tqdm.tqdm(datas):
167
+ query_frame_tmp = cv2.imread(os.path.join(root_path, data["first_frame_image"]))[..., ::-1]
168
+ query_frame = Image.fromarray(reshape_img_war(query_frame_tmp))
169
+ ann_query = data["first_frame_anns"][0]
170
+ query_mask = mask_utils.decode(ann_query["segmentation"])
171
+ query_mask = reshape_img_war(query_mask)
172
+
173
+ target_frame_tmp = cv2.imread(os.path.join(root_path, data["image"]))[..., ::-1]
174
+ target_frame = Image.fromarray(reshape_img_war(target_frame_tmp))
175
+
176
+ Ix, Iy, tensor1, tensor2, tensor3 = get_tensors(query_frame, target_frame, query_mask)
177
+ mx, my, confidence = forward_pass(backbone, netEncoder, tensor1, tensor2, tensor3)
178
+
179
+ y_step = (my > MASKThresh)
180
+
181
+ target_pred = mask_utils.encode(np.asfortranarray(y_step.astype(np.uint8)))
182
+ target_pred['counts'] = target_pred['counts'].decode('ascii')
183
+ sample = {
184
+ 'image': data["image"],
185
+ 'anns': data["anns"],
186
+ 'new_img_id': data["new_img_id"],
187
+ 'pred_mask': target_pred
188
+ }
189
+ result_list.append(sample)
190
+ return result_list
191
+
192
+
193
+
194
+
195
+ def main():
196
+
197
+ resume_path = '/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model/moco_v2_800ep_pretrain_torchvision.pth.tar'
198
+ param = torch.load(resume_path)['model']
199
+ new_param = {}
200
+ for key in param.keys():
201
+ if 'fc' in key:
202
+ continue
203
+ new_param[key] = param[key]
204
+
205
+ backbone = models.resnet50(pretrained=False)
206
+ backbone.load_state_dict(new_param, strict=False)
207
+ resnet_feature_layers = ['conv1', 'bn1', 'relu', 'maxpool', 'layer1', 'layer2', 'layer3']
208
+ resnet_module_list = [getattr(backbone, l) for l in resnet_feature_layers]
209
+ last_layer_idx = resnet_feature_layers.index('layer3')
210
+ backbone = torch.nn.Sequential(*resnet_module_list[:last_layer_idx + 1])
211
+ feat_dim = 1024
212
+ backbone.cuda()
213
+
214
+ ## model
215
+ netEncoder = transformer.TransEncoder(feat_dim,
216
+ pos_weight=0.1,
217
+ feat_weight=1,
218
+ dropout=0.1,
219
+ activation="relu",
220
+ mode="small",
221
+ layer_type=['I', 'C', 'I', 'C', 'I', 'N'],
222
+ drop_feat=0.1)
223
+
224
+ netEncoder.cuda()
225
+
226
+ result_list = evaluate_ours(backbone, netEncoder)
227
+
228
+ return result_list
229
+
230
+ if __name__ == '__main__':
231
+
232
+ import argparse
233
+
234
+ parser = argparse.ArgumentParser()
235
+ parser.add_argument('--out_path', type=str, required=True)
236
+
237
+ args = parser.parse_args()
238
+
239
+ # objs = os.listdir(root_path)
240
+ # objs.remove("vis_rondom_check")
241
+ # objs = [file for file in objs if not file.endswith('.json')]
242
+ # objs = objs[:2]
243
+ # debug
244
+ # print(len(objs))
245
+
246
+ results = main()
247
+ print("data_num:", len(results))
248
+
249
+ os.makedirs(args.out_path, exist_ok=True)
250
+ with open(f"{args.out_path}/segswap_handal_pred_1.json", "w") as fp:
251
+ json.dump(results, fp)
252
+
correspondence/SegSwap/eval_segswap.py ADDED
@@ -0,0 +1,287 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ import os
3
+ import sys
4
+ sys.path.append('/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model')
5
+ import numpy as np
6
+ from PIL import Image
7
+ import cv2
8
+ import json
9
+ import random
10
+ import torch
11
+ import torch.nn.functional as F
12
+ import torchvision.models as models
13
+ import torchvision.transforms as transforms
14
+
15
+ import transformer # model
16
+
17
+ import tqdm
18
+
19
+ from pycocotools import mask as mask_utils
20
+ from torch.cuda.amp import autocast
21
+
22
+
23
+ MASKThresh = 0.5
24
+ #out = ['f2f93854-2634-449c-b68e-aebf4743ac9f', '7d59164c-e0bc-4ae0-95c9-733e4c8b0d6a', 'cace80a1-42df-4cf4-a1ec-80647638a443', '8fa671be-2624-4783-8572-5f4b7722b6c0', 'ca1434ea-b787-44ad-a9da-e0f7d5167a35', 'cfd2c825-45d1-4e59-b33f-b6dff8c174c8', '39d48b6a-66e8-4bbb-a596-4461b601cabc', 'f4dead01-fa3d-4aa5-8b59-13a0d9186dd2', '4cf43506-d0a6-4c42-9136-adb2ecd57411', '89815623-8ece-4e3c-8879-f1f32b299527', '5fd383f1-c8bb-42d7-b98b-7418d99d9bb4', 'b1b794e8-7839-46ab-b05f-f4b1c16d5420', 'b7dbb47c-d850-4853-b434-7b20519ea9e5', '636eaa0b-d65d-4b25-bbdd-1065f84ef89e', 'd2b0ee95-2a76-4b69-aebf-3c7e553f8e2b', 'cea1b20b-6e18-4bb6-87e0-164a2b8c3dc0', 'fba2c124-99ec-40ed-8d6a-46808afe6d98', '549e5b97-f93a-4500-8f02-5be13017dce5', '6cbfa460-72a7-4038-b6af-4305a1cc05dd', '319a9983-f70c-4224-a3a7-33338c8a9f35', 'bcfb6839-3c09-4d42-9d9c-59042f6ab721', '3ca2798d-cfe3-46c6-a8bc-cc4689bd6d75', 'aa40670e-4487-4f60-a27b-26f7372ef8e7', '389cfa3f-3a4c-4b8f-9535-d7c95ffd594c', '214bdc0d-fa50-4a84-b771-c0a7bdeafadc', '08504348-4f72-477e-a08f-1050204ae55e', 'd35a162e-c38e-4017-94d1-539f26651115', '925ebe22-f97a-4e79-aed3-9873cf461c3c', 'c0b7d130-2004-4450-ad94-ea3167bd9fab', 'f1ce9be1-b623-4ce4-84e2-37e9f88eea86', 'c288cb15-81c7-4463-814f-959c12740499', 'b69de073-c157-4cff-8eba-97bfc7baa012', '289c4873-5bf9-41b9-b784-aba52b54cd4d', '0bcb8b46-cc45-4bcb-a627-85633e54e060', '819780c3-97c0-4ac6-b37f-8c66abf8167d', '9512a137-40b6-49c6-a03d-a3340b9dd277', '393e9b60-504c-4cc7-a90b-eb78dd62d5ff', 'fb09baec-1a5a-40b4-8d72-e581c93fbd77', '3042b472-99cc-4407-a79e-f76916b95737', '4939903a-2c73-4633-ae15-618be39990e7', 'ced0e340-b958-4505-badc-c8c2f256c145', 'e53ae33b-61b6-4c3e-8be0-5696f961704b', '759aa03c-c8e1-4fcb-8817-85948100ed33', '31df8578-1fd0-4406-9008-900a88f7990a', '9506c70a-1639-42ea-bbfc-2b9c0f8c9394', 'e46f9a53-7625-4827-8b92-79c958d3524e', '3125dca7-b99e-4b2b-8844-2d912619b353', 'b65a60e0-f224-4b3d-bf78-ba44e12c4ac1', 'c53daadd-09f0-485b-a51c-1d5679f5fb09', 'b378d186-0587-40ed-afdf-875e6dfb5876', '8000dfb2-accb-4bb8-abfb-cc2d677d0b2f', 'ff93ae48-0daa-418c-9d5c-b5b0b6d23efb', '6d0a7c80-ae8c-4673-8f70-c09fd6fbebe8', 'f0cd03a5-9cd8-4510-87c1-a5c493197b75', 'c16175f5-f990-48a1-9dcc-6a385f108687', '816dd81e-93b1-433c-83ff-264ae404a3bf', 'f8bed5fe-3e09-4885-9539-edb4d5b2279a', '601c9c61-fc2b-4ac2-b3c4-dda557c2563b', '56c35d79-acb1-47a1-8590-7e5cb2585ee5', 'd5193bae-a7f5-4e8a-9c96-09f557c7ea9d', '8d7646a3-ce7b-425d-b16e-9a63a1166576', '0b89efcd-59bf-4f0b-a81a-50dee0b79982', '9681b4c6-9713-4bb3-aa9a-7df7daa4e74d', '69fac17f-6527-493d-8dac-cd3bb61ce23e', '5ee00a17-171f-46a4-927b-3aa9d0fe176e']
25
+
26
+
27
+ def reshape_img_war(img, size=(480, 480)):
28
+ C = 1
29
+ if len(img.shape) == 2:
30
+ H, W = img.shape
31
+ img = img[..., None]
32
+ else:
33
+ H, W, C = img.shape
34
+
35
+ temp = np.zeros((max(H, W), max(H, W), C), dtype=np.uint8)
36
+
37
+ if H > W:
38
+ L = (H - W) // 2
39
+ temp[:, L:-L] = img
40
+ elif W > H:
41
+ L = (W - H) // 2
42
+ temp[L:-L] = img
43
+ else:
44
+ temp = img
45
+
46
+ temp = cv2.resize(temp, size, interpolation=cv2.INTER_NEAREST)
47
+
48
+ return temp
49
+
50
+ def get_model(model_path):
51
+ ## set gpu
52
+ device = torch.device('cuda')
53
+
54
+ backbone = models.resnet50(pretrained=False)
55
+ resnet_feature_layers = ['conv1','bn1','relu','maxpool','layer1','layer2','layer3']
56
+ resnet_module_list = [getattr(backbone,l) for l in resnet_feature_layers]
57
+ last_layer_idx = resnet_feature_layers.index('layer3')
58
+ backbone = torch.nn.Sequential(*resnet_module_list[:last_layer_idx+1])
59
+
60
+ ## load pre-trained weight
61
+ pos_weight = 0.1
62
+ feat_weight = 1
63
+ dropout = 0.1
64
+ activation = 'relu'
65
+ mode = 'small'
66
+ layer_type = ['I', 'C', 'I', 'C', 'I', 'N']
67
+ drop_feat = 0.1
68
+ feat_dim=1024
69
+
70
+ ## model
71
+ netEncoder = transformer.TransEncoder(feat_dim,
72
+ pos_weight = pos_weight,
73
+ feat_weight = feat_weight,
74
+ dropout = dropout,
75
+ activation = activation,
76
+ mode = mode,
77
+ layer_type = layer_type,
78
+ drop_feat = drop_feat)
79
+
80
+ netEncoder.to(device)
81
+
82
+ print ('Loading net weight from {}'.format(model_path))
83
+ param = torch.load(model_path)
84
+ backbone.load_state_dict(param['backbone'])
85
+ netEncoder.load_state_dict(param['encoder'])
86
+ backbone.eval()
87
+ netEncoder.eval()
88
+ backbone.to(device)
89
+ netEncoder.to(device)
90
+
91
+ return backbone, netEncoder
92
+
93
+ def get_tensors(I1np, I2np, M1np):
94
+
95
+ # masking Image1
96
+ I1np = I1np
97
+
98
+ I1 = I1np
99
+ I2 = I2np
100
+
101
+ norm_mean, norm_std = (0.485, 0.456, 0.406), (0.229, 0.224, 0.225)
102
+ transformINet = transforms.Compose([transforms.ToTensor(),
103
+ transforms.Normalize(norm_mean, norm_std)])
104
+ tensor1 = I1
105
+ tensor2 = I2
106
+ tensor3 = M1np
107
+
108
+
109
+ tensor1 = transformINet(tensor1).unsqueeze(0).cuda()
110
+ tensor2 = transformINet(tensor2).unsqueeze(0).cuda()
111
+ tensor3 = torch.from_numpy(tensor3).unsqueeze(0).type(torch.FloatTensor).cuda()
112
+
113
+ return I1, I2, tensor1, tensor2, tensor3
114
+
115
+ def forward_pass(backbone, netEncoder, tensor1, tensor2, tensor3):
116
+ with torch.no_grad():
117
+ with autocast():
118
+ feat1 = backbone( tensor1 ) ## feature
119
+ feat1 = F.normalize(feat1, dim=1) ## l2 normalization
120
+ feat2 = backbone( tensor2 ) ## features
121
+ feat2 = F.normalize(feat2, dim=1) ## l2 normalization
122
+
123
+ fmask = backbone(tensor3.unsqueeze(0).repeat(1, 3, 1, 1))
124
+ fmask = F.normalize(fmask, dim=1)
125
+
126
+ out1, out2, out3 = netEncoder(feat1, feat2, fmask) ## predictions
127
+ m1_final, m2_final, m3_final = out1[0, 2].cpu().numpy(), out2[0, 2].cpu().numpy(), out3.item()
128
+
129
+ return m1_final, m2_final, m3_final
130
+
131
+
132
+ def load_frame(path, frame_idx):
133
+ img = cv2.imread(os.path.join(path, f'{frame_idx}.jpg'))[..., ::-1]
134
+ img = Image.fromarray(reshape_img_war(img))
135
+ return img
136
+
137
+ def egoexo(backbone, netEncoder, annotations, ego, exo, obj, take, anno_path, pred_json):
138
+
139
+ pred_json['masks'][obj][f'{ego}_{exo}'] = {}
140
+ for idx in annotations['masks'][obj][ego].keys():
141
+
142
+ ego_frame = load_frame(path=f'{anno_path}/{take}/{ego}/', frame_idx=idx)
143
+ ego_mask = mask_utils.decode(annotations['masks'][obj][ego][idx])
144
+ ego_mask = reshape_img_war(ego_mask)
145
+
146
+ exo_frame = load_frame(path=f'{anno_path}/{take}/{exo}/', frame_idx=idx)
147
+
148
+ Ix, Iy, tensor1, tensor2, tensor3 = get_tensors(ego_frame, exo_frame, ego_mask)
149
+ mx, my, confidence = forward_pass(backbone, netEncoder, tensor1, tensor2, tensor3)
150
+
151
+ y_step = (my > MASKThresh)
152
+
153
+
154
+ exo_pred = mask_utils.encode(np.asfortranarray(y_step.astype(np.uint8)))
155
+ exo_pred['counts'] = exo_pred['counts'].decode('ascii')
156
+ pred_json['masks'][obj][f'{ego}_{exo}'][idx] = {'pred_mask': exo_pred, 'confidence': confidence}
157
+
158
+ def exoego(backbone, netEncoder, annotations, ego, exo, obj, take, anno_path, pred_json):
159
+
160
+ pred_json['masks'][obj][f'{exo}_{ego}'] = {}
161
+ for idx in annotations['masks'][obj][exo].keys():
162
+
163
+ exo_frame = load_frame(path=f'{anno_path}/{take}/{exo}/', frame_idx=idx)
164
+ exo_mask = mask_utils.decode(annotations['masks'][obj][exo][idx])
165
+ exo_mask = reshape_img_war(exo_mask)
166
+
167
+ ego_frame = load_frame(path=f'{anno_path}/{take}/{ego}/', frame_idx=idx)
168
+
169
+ Ix, Iy, tensor1, tensor2, tensor3 = get_tensors(exo_frame, ego_frame, exo_mask)
170
+ mx, my, confidence = forward_pass(backbone, netEncoder, tensor1, tensor2, tensor3)
171
+
172
+ y_step = (my > MASKThresh)
173
+
174
+ ego_pred = mask_utils.encode(np.asfortranarray(y_step.astype(np.uint8)))
175
+ ego_pred['counts'] = ego_pred['counts'].decode('ascii')
176
+ pred_json['masks'][obj][f'{exo}_{ego}'][idx] = {'pred_mask': ego_pred, 'confidence': confidence}
177
+
178
+ def main(model_path, takes, anno_path, out_path, setting='ego-exo', save_inter=False):
179
+
180
+ print('TOTAL TAKES: ', len(takes))
181
+
182
+ resume_path = '/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model/moco_v2_800ep_pretrain_torchvision.pth.tar'
183
+ param = torch.load(resume_path)['model']
184
+ new_param = {}
185
+ for key in param.keys():
186
+ if 'fc' in key:
187
+ continue
188
+ new_param[key] = param[key]
189
+
190
+ backbone = models.resnet50(pretrained=False)
191
+ backbone.load_state_dict(new_param, strict=False)
192
+ resnet_feature_layers = ['conv1', 'bn1', 'relu', 'maxpool', 'layer1', 'layer2', 'layer3']
193
+ resnet_module_list = [getattr(backbone, l) for l in resnet_feature_layers]
194
+ last_layer_idx = resnet_feature_layers.index('layer3')
195
+ backbone = torch.nn.Sequential(*resnet_module_list[:last_layer_idx + 1])
196
+ feat_dim = 1024
197
+ backbone.cuda()
198
+
199
+ ## model
200
+ netEncoder = transformer.TransEncoder(feat_dim,
201
+ pos_weight=0.1,
202
+ feat_weight=1,
203
+ dropout=0.1,
204
+ activation="relu",
205
+ mode="small",
206
+ layer_type=['I', 'C', 'I', 'C', 'I', 'N'],
207
+ drop_feat=0.1)
208
+
209
+ netEncoder.cuda()
210
+
211
+ results = {}
212
+ for take in tqdm.tqdm(takes):
213
+ #修改
214
+ # if take in out:
215
+ # continue
216
+
217
+ #resume机制
218
+ if os.path.exists(f'{out_path}/{take}'):
219
+ print("already done!")
220
+ continue
221
+
222
+ with open(f'{anno_path}/{take}/annotation.json', 'r') as fp:
223
+ annotations = json.load(fp)
224
+
225
+ pred_json = {'masks': {}, 'subsample_idx': annotations['subsample_idx']}
226
+
227
+ for obj in annotations['masks']:
228
+
229
+ pred_json['masks'][obj] = {}
230
+
231
+ cams = annotations['masks'][obj].keys()
232
+
233
+ exo_cams = [x for x in cams if 'aria' not in x]
234
+ ego_cams = [x for x in cams if 'aria' in x]
235
+
236
+ for ego in ego_cams:
237
+ for exo in exo_cams:
238
+ # ego -> exo
239
+ if setting == 'ego-exo':
240
+ egoexo(backbone=backbone, netEncoder=netEncoder, annotations=annotations,
241
+ ego=ego, exo=exo, obj=obj, take=take, anno_path=anno_path, pred_json=pred_json)
242
+ elif setting == 'exo-ego':
243
+ exoego(backbone=backbone, netEncoder=netEncoder, annotations=annotations,
244
+ ego=ego, exo=exo, obj=obj, take=take, anno_path=anno_path, pred_json=pred_json)
245
+ else:
246
+ raise Exception(f"Setting {setting} not recognized.")
247
+
248
+ results[take] = pred_json
249
+
250
+ if save_inter:
251
+ os.makedirs(f'{out_path}/{take}', exist_ok=True)
252
+ with open(f'{out_path}/{take}/pred_annotations.json', 'w') as fp:
253
+ json.dump(pred_json, fp)
254
+
255
+ return results
256
+
257
+ if __name__ == '__main__':
258
+
259
+ import argparse
260
+
261
+ parser = argparse.ArgumentParser()
262
+ parser.add_argument('--ckpt_path', type=str, required=True)
263
+ parser.add_argument('--data_path', type=str, required=True)
264
+ parser.add_argument('--splits_path', type=str, required=True, help="Path to json of take splits")
265
+ parser.add_argument('--split', type=str, required=True, help="Split to evaluate on")
266
+ parser.add_argument('--out_path', type=str, required=True)
267
+ parser.add_argument('--setting', required=True, choices=['ego-exo', 'exo-ego'], help="ego-exo or exo-ego")
268
+ parser.add_argument('--save_inter', action='store_true', help="Store intermediate take wise results")
269
+
270
+ args = parser.parse_args()
271
+
272
+ with open(args.splits_path, "r") as fp:
273
+ splits = json.load(fp)
274
+
275
+ takes = splits[args.split]
276
+ takes = random.sample(takes, 20)
277
+ results = main(args.ckpt_path,
278
+ takes,
279
+ args.data_path,
280
+ args.out_path,
281
+ setting=args.setting,
282
+ save_inter=args.save_inter)
283
+
284
+ os.makedirs(args.out_path, exist_ok=True)
285
+ with open(f"{args.out_path}/{args.setting}_{args.split}_results.json", "w") as fp:
286
+ json.dump({args.setting: {'results': results}}, fp)
287
+
correspondence/SegSwap/eval_segswap_new.py ADDED
@@ -0,0 +1,292 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ import os
3
+ import sys
4
+ sys.path.append('model/')
5
+ import numpy as np
6
+ from PIL import Image
7
+ import cv2
8
+ import json
9
+
10
+ import torch
11
+ import torch.nn.functional as F
12
+ import torchvision.models as models
13
+ import torchvision.transforms as transforms
14
+
15
+ import transformer # model
16
+ import random
17
+
18
+ import tqdm
19
+
20
+ from pycocotools import mask as mask_utils
21
+ import utils_new
22
+
23
+ # json_path = "/home/yuqian_fu/Projects/PSALM/filter_takes_byname_test.json"
24
+ # with open(json_path, "r") as fp:
25
+ # datas = json.load(fp)
26
+ # takes_filter = datas['soccer']
27
+ splits_path = '/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/split.json'
28
+ with open(splits_path, "r") as fp:
29
+ splits = json.load(fp)
30
+ takes_filter = splits['test'] # ['ego-exo', 'exo-ego']
31
+ np.random.seed(0)
32
+ takes_filter = np.random.choice(takes_filter, 20, replace=False) # debug
33
+ print("takes_filter:", takes_filter)
34
+ MASKThresh = 0.5
35
+
36
+ def reshape_img_war(img, size=(480, 480)):
37
+ C = 1
38
+ if len(img.shape) == 2:
39
+ H, W = img.shape
40
+ img = img[..., None]
41
+ else:
42
+ H, W, C = img.shape
43
+
44
+ temp = np.zeros((max(H, W), max(H, W), C), dtype=np.uint8)
45
+
46
+ if H > W:
47
+ L = (H - W) // 2
48
+ temp[:, L:-L] = img
49
+ elif W > H:
50
+ L = (W - H) // 2
51
+ temp[L:-L] = img
52
+ else:
53
+ temp = img
54
+
55
+ temp = cv2.resize(temp, size, interpolation=cv2.INTER_NEAREST)
56
+
57
+ return temp
58
+
59
+ def get_model(model_path):
60
+ ## set gpu
61
+ device = torch.device('cuda')
62
+
63
+ backbone = models.resnet50(pretrained=False)
64
+ resnet_feature_layers = ['conv1','bn1','relu','maxpool','layer1','layer2','layer3']
65
+ resnet_module_list = [getattr(backbone,l) for l in resnet_feature_layers]
66
+ last_layer_idx = resnet_feature_layers.index('layer3')
67
+ backbone = torch.nn.Sequential(*resnet_module_list[:last_layer_idx+1])
68
+
69
+ ## load pre-trained weight
70
+ pos_weight = 0.1
71
+ feat_weight = 1
72
+ dropout = 0.1
73
+ activation = 'relu'
74
+ mode = 'small'
75
+ layer_type = ['I', 'C', 'I', 'C', 'I', 'N']
76
+ drop_feat = 0.1
77
+ feat_dim=1024
78
+
79
+ ## model
80
+ netEncoder = transformer.TransEncoder(feat_dim,
81
+ pos_weight = pos_weight,
82
+ feat_weight = feat_weight,
83
+ dropout = dropout,
84
+ activation = activation,
85
+ mode = mode,
86
+ layer_type = layer_type,
87
+ drop_feat = drop_feat)
88
+
89
+ netEncoder.to(device)
90
+
91
+ print ('Loading net weight from {}'.format(model_path))
92
+ param = torch.load(model_path)
93
+ backbone.load_state_dict(param['backbone'])
94
+ netEncoder.load_state_dict(param['encoder'])
95
+ backbone.eval()
96
+ netEncoder.eval()
97
+ backbone.to(device)
98
+ netEncoder.to(device)
99
+
100
+ return backbone, netEncoder
101
+
102
+ def get_tensors(I1np, I2np, M1np):
103
+
104
+ # masking Image1
105
+ I1np = I1np
106
+
107
+ I1 = I1np
108
+ I2 = I2np
109
+
110
+ norm_mean, norm_std = (0.485, 0.456, 0.406), (0.229, 0.224, 0.225)
111
+ transformINet = transforms.Compose([transforms.ToTensor(),
112
+ transforms.Normalize(norm_mean, norm_std)])
113
+ tensor1 = I1
114
+ tensor2 = I2
115
+ tensor3 = M1np
116
+
117
+
118
+ tensor1 = transformINet(tensor1).unsqueeze(0).cuda()
119
+ tensor2 = transformINet(tensor2).unsqueeze(0).cuda()
120
+ tensor3 = torch.from_numpy(tensor3).unsqueeze(0).type(torch.FloatTensor).cuda()
121
+
122
+ return I1, I2, tensor1, tensor2, tensor3
123
+
124
+ def forward_pass(backbone, netEncoder, tensor1, tensor2, tensor3):
125
+ with torch.no_grad() :
126
+ feat1 = backbone( tensor1 ) ## feature
127
+ feat1 = F.normalize(feat1, dim=1) ## l2 normalization
128
+ feat2 = backbone( tensor2 ) ## features
129
+ feat2 = F.normalize(feat2, dim=1) ## l2 normalization
130
+
131
+ fmask = backbone(tensor3.unsqueeze(0).repeat(1, 3, 1, 1))
132
+ fmask = F.normalize(fmask, dim=1)
133
+
134
+ out1, out2, out3 = netEncoder(feat1, feat2, fmask) ## predictions
135
+ m1_final, m2_final, m3_final = out1[0, 2].cpu().numpy(), out2[0, 2].cpu().numpy(), out3.item()
136
+
137
+ return m1_final, m2_final, m3_final
138
+
139
+
140
+ def load_frame(path, frame_idx, ret_size=False):
141
+ img = cv2.imread(os.path.join(path, f'{frame_idx}.jpg'))[..., ::-1]
142
+ orig_size = img.shape[:-1]
143
+ #print(orig_size)
144
+ img = Image.fromarray(reshape_img_war(img))
145
+ if ret_size:
146
+ return img, orig_size
147
+ return img
148
+
149
+ def egoexo(backbone, netEncoder, annotations, ego, exo, obj, take, anno_path, pred_json):
150
+
151
+ pred_json['masks'][obj][f'{ego}_{exo}'] = {}
152
+ for idx in annotations['masks'][obj][ego].keys():
153
+
154
+ ego_frame = load_frame(path=f'{anno_path}/{take}/{ego}/', frame_idx=idx)
155
+ ego_mask = mask_utils.decode(annotations['masks'][obj][ego][idx])
156
+ ego_mask = reshape_img_war(ego_mask)
157
+
158
+ exo_frame, exo_size = load_frame(path=f'{anno_path}/{take}/{exo}/', frame_idx=idx, ret_size=True)
159
+
160
+ Ix, Iy, tensor1, tensor2, tensor3 = get_tensors(ego_frame, exo_frame, ego_mask)
161
+ mx, my, confidence = forward_pass(backbone, netEncoder, tensor1, tensor2, tensor3)
162
+
163
+ y_step = (my > MASKThresh)
164
+ y_step = utils_new.remove_pad(y_step, orig_size=exo_size)
165
+ #print(y_step.shape)
166
+
167
+ exo_pred = mask_utils.encode(np.asfortranarray(y_step.astype(np.uint8)))
168
+ exo_pred['counts'] = exo_pred['counts'].decode('ascii')
169
+ pred_json['masks'][obj][f'{ego}_{exo}'][idx] = {'pred_mask': exo_pred, 'confidence': confidence}
170
+
171
+ def exoego(backbone, netEncoder, annotations, ego, exo, obj, take, anno_path, pred_json):
172
+
173
+ pred_json['masks'][obj][f'{exo}_{ego}'] = {}
174
+ for idx in annotations['masks'][obj][exo].keys():
175
+
176
+ exo_frame = load_frame(path=f'{anno_path}/{take}/{exo}/', frame_idx=idx)
177
+ exo_mask = mask_utils.decode(annotations['masks'][obj][exo][idx])
178
+ exo_mask = reshape_img_war(exo_mask)
179
+
180
+ ego_frame = load_frame(path=f'{anno_path}/{take}/{ego}/', frame_idx=idx)
181
+ # print(ego_frame.size)
182
+ if ego_frame.size != (480, 480):
183
+ continue
184
+
185
+ Ix, Iy, tensor1, tensor2, tensor3 = get_tensors(exo_frame, ego_frame, exo_mask)
186
+ mx, my, confidence = forward_pass(backbone, netEncoder, tensor1, tensor2, tensor3)
187
+
188
+ y_step = (my > MASKThresh)
189
+
190
+ ego_pred = mask_utils.encode(np.asfortranarray(y_step.astype(np.uint8)))
191
+ ego_pred['counts'] = ego_pred['counts'].decode('ascii')
192
+ pred_json['masks'][obj][f'{exo}_{ego}'][idx] = {'pred_mask': ego_pred, 'confidence': confidence}
193
+
194
+ def main(model_path, takes, anno_path, out_path, setting='ego-exo', save_inter=False):
195
+
196
+ print('TOTAL TAKES: ', len(takes))
197
+
198
+ resume_path = '/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/model/moco_v2_800ep_pretrain_torchvision.pth.tar'
199
+ param = torch.load(resume_path)['model']
200
+ new_param = {}
201
+ for key in param.keys():
202
+ if 'fc' in key:
203
+ continue
204
+ new_param[key] = param[key]
205
+
206
+ backbone = models.resnet50(pretrained=False)
207
+ backbone.load_state_dict(new_param, strict=False)
208
+ resnet_feature_layers = ['conv1', 'bn1', 'relu', 'maxpool', 'layer1', 'layer2', 'layer3']
209
+ resnet_module_list = [getattr(backbone, l) for l in resnet_feature_layers]
210
+ last_layer_idx = resnet_feature_layers.index('layer3')
211
+ backbone = torch.nn.Sequential(*resnet_module_list[:last_layer_idx + 1])
212
+ feat_dim = 1024
213
+ backbone.cuda()
214
+
215
+ ## model
216
+ netEncoder = transformer.TransEncoder(feat_dim,
217
+ pos_weight=0.1,
218
+ feat_weight=1,
219
+ dropout=0.1,
220
+ activation="relu",
221
+ mode="small",
222
+ layer_type=['I', 'C', 'I', 'C', 'I', 'N'],
223
+ drop_feat=0.1)
224
+
225
+ netEncoder.cuda()
226
+
227
+ results = {}
228
+ for take in tqdm.tqdm(takes_filter):
229
+
230
+ with open(f'{anno_path}/{take}/annotation.json', 'r') as fp:
231
+ annotations = json.load(fp)
232
+
233
+ pred_json = {'masks': {}, 'subsample_idx': annotations['subsample_idx']}
234
+
235
+ for obj in annotations['masks']:
236
+
237
+ pred_json['masks'][obj] = {}
238
+
239
+ cams = annotations['masks'][obj].keys()
240
+
241
+ exo_cams = [x for x in cams if 'aria' not in x]
242
+ ego_cams = [x for x in cams if 'aria' in x]
243
+
244
+ for ego in ego_cams:
245
+ for exo in exo_cams:
246
+ # ego -> exo
247
+ if setting == 'ego-exo':
248
+ egoexo(backbone=backbone, netEncoder=netEncoder, annotations=annotations,
249
+ ego=ego, exo=exo, obj=obj, take=take, anno_path=anno_path, pred_json=pred_json)
250
+ elif setting == 'exo-ego':
251
+ exoego(backbone=backbone, netEncoder=netEncoder, annotations=annotations,
252
+ ego=ego, exo=exo, obj=obj, take=take, anno_path=anno_path, pred_json=pred_json)
253
+ else:
254
+ raise Exception(f"Setting {setting} not recognized.")
255
+
256
+ results[take] = pred_json
257
+
258
+ if save_inter:
259
+ os.makedirs(f'{out_path}/{take}', exist_ok=True)
260
+ with open(f'{out_path}/{take}/pred_annotations.json', 'w') as fp:
261
+ json.dump(pred_json, fp)
262
+
263
+ return results
264
+
265
+ if __name__ == '__main__':
266
+
267
+ import argparse
268
+
269
+ parser = argparse.ArgumentParser()
270
+ parser.add_argument('--ckpt_path', type=str, required=True)
271
+ parser.add_argument('--data_path', type=str, required=True)
272
+ parser.add_argument('--splits_path', type=str, required=True, help="Path to json of take splits")
273
+ parser.add_argument('--split', type=str, required=True, help="Split to evaluate on")
274
+ parser.add_argument('--out_path', type=str, required=True)
275
+ parser.add_argument('--setting', required=True, choices=['ego-exo', 'exo-ego'], help="ego-exo or exo-ego")
276
+ parser.add_argument('--save_inter', action='store_true', help="Store intermediate take wise results")
277
+
278
+ args = parser.parse_args()
279
+
280
+ with open(args.splits_path, "r") as fp:
281
+ splits = json.load(fp)
282
+
283
+ results = main(args.ckpt_path,
284
+ splits[args.split],
285
+ args.data_path,
286
+ args.out_path,
287
+ setting=args.setting,
288
+ save_inter=args.save_inter)
289
+
290
+ os.makedirs(args.out_path, exist_ok=True)
291
+ with open(f"{args.out_path}/{args.setting}_{args.split}_results.json", "w") as fp:
292
+ json.dump({args.setting: {'results': results}}, fp)
correspondence/SegSwap/input.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:009a7db960194af52e44f75b7812baf1525386628acd763adbefa980d1937070
3
+ size 75670357
correspondence/SegSwap/model/=12 ADDED
File without changes
correspondence/SegSwap/model/convert_torchvision.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sys
2
+ import torch
3
+ if __name__ == "__main__":
4
+ input = sys.argv[1]
5
+ output = sys.argv[2]
6
+ obj = torch.load(input, map_location="cpu")
7
+ obj = obj["state_dict"]
8
+ newmodel = {}
9
+ for k, v in obj.items():
10
+ if not k.startswith("module.encoder_q."):
11
+ continue
12
+ old_k = k
13
+ k = k.replace("module.encoder_q.", "")
14
+ # if "layer" not in k:
15
+ # k = "stem." + k
16
+ # for t in [1, 2, 3, 4]:
17
+ # k = k.replace("layer{}".format(t), "res{}".format(t + 1))
18
+ # for t in [1, 2, 3]:
19
+ # k = k.replace("bn{}".format(t), "conv{}.norm".format(t))
20
+ # k = k.replace("downsample.0", "shortcut")
21
+ # k = k.replace("downsample.1", "shortcut.norm")
22
+ print(old_k, "->", k)
23
+ newmodel[k] = v
24
+ state = {"model": newmodel, "__author__": "MOCO"}
25
+ torch.save(state, output)
correspondence/SegSwap/model/download_model.sh ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ wget https://dl.fbaipublicfiles.com/moco/moco_checkpoints/moco_v2_800ep/moco_v2_800ep_pretrain.pth.tar
2
+
3
+ python convert_torchvision.py moco_v2_800ep_pretrain.pth.tar moco_v2_800ep_pretrain_torchvision.pth.tar
4
+
5
+ rm moco_v2_800ep_pretrain.pth.tar
6
+
correspondence/SegSwap/model/environment.yml ADDED
@@ -0,0 +1,145 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: segswap
2
+ channels:
3
+ - conda-forge
4
+ - defaults
5
+ dependencies:
6
+ - _libgcc_mutex=0.1
7
+ - _openmp_mutex=5.1
8
+ - asttokens=2.2.1
9
+ - backcall=0.2.0
10
+ - backports=1.0
11
+ - backports.functools_lru_cache=1.6.5
12
+ - bzip2=1.0.8
13
+ - ca-certificates=2023.5.7
14
+ - decorator=5.1.1
15
+ - entrypoints=0.4
16
+ - executing=1.2.0
17
+ - ipykernel=6.15.0
18
+ - ipython=8.14.0
19
+ - jedi=0.18.2
20
+ - jupyter_client=7.3.4
21
+ - jupyter_core=5.3.1
22
+ - ld_impl_linux-64=2.38
23
+ - libffi=3.4.4
24
+ - libgcc-ng=11.2.0
25
+ - libgomp=11.2.0
26
+ - libsodium=1.0.18
27
+ - libstdcxx-ng=11.2.0
28
+ - libuuid=1.41.5
29
+ - matplotlib-inline=0.1.6
30
+ - ncurses=6.4
31
+ - nest-asyncio=1.5.6
32
+ - openssl=3.0.9
33
+ - packaging=23.1
34
+ - parso=0.8.3
35
+ - pexpect=4.8.0
36
+ - pickleshare=0.7.5
37
+ - platformdirs=3.8.0
38
+ - prompt-toolkit=3.0.38
39
+ - prompt_toolkit=3.0.38
40
+ - ptyprocess=0.7.0
41
+ - pure_eval=0.2.2
42
+ - pygments=2.15.1
43
+ - python=3.10.11
44
+ - python-dateutil=2.8.2
45
+ - python_abi=3.10
46
+ - readline=8.2
47
+ - six=1.16.0
48
+ - sqlite=3.41.2
49
+ - stack_data=0.6.2
50
+ - tk=8.6.12
51
+ - traitlets=5.9.0
52
+ - typing-extensions=4.6.3
53
+ - typing_extensions=4.6.3
54
+ - wcwidth=0.2.6
55
+ - xz=5.4.2
56
+ - zeromq=4.3.4
57
+ - zlib=1.2.13
58
+ - pip:
59
+ - absl-py==1.4.0
60
+ - appdirs==1.4.4
61
+ - cachetools==5.3.1
62
+ - certifi==2023.5.7
63
+ - charset-normalizer==3.1.0
64
+ - click==8.1.4
65
+ - cmake==3.26.4
66
+ - contourpy==1.1.0
67
+ - cycler==0.11.0
68
+ - debugpy==1.5.1
69
+ - decord==0.6.0
70
+ - docker-pycreds==0.4.0
71
+ - filelock==3.12.2
72
+ - fonttools==4.40.0
73
+ - gitdb==4.0.10
74
+ - gitpython==3.1.31
75
+ - google-auth==2.22.0
76
+ - google-auth-oauthlib==1.0.0
77
+ - grpcio==1.56.2
78
+ - idna==3.4
79
+ - imageio==2.31.5
80
+ - jinja2==3.1.2
81
+ - joblib==1.2.0
82
+ - jupyter-core==5.3.1
83
+ - kiwisolver==1.4.4
84
+ - kornia==0.6.12
85
+ - lazy-loader==0.3
86
+ - lit==16.0.6
87
+ - markdown==3.4.3
88
+ - markupsafe==2.1.3
89
+ - matplotlib==3.7.1
90
+ - mpmath==1.3.0
91
+ - natsort==8.4.0
92
+ - networkx==3.1
93
+ - numpy==1.25.0
94
+ - nvidia-cublas-cu11==11.10.3.66
95
+ - nvidia-cuda-cupti-cu11==11.7.101
96
+ - nvidia-cuda-nvrtc-cu11==11.7.99
97
+ - nvidia-cuda-runtime-cu11==11.7.99
98
+ - nvidia-cudnn-cu11==8.5.0.96
99
+ - nvidia-cufft-cu11==10.9.0.58
100
+ - nvidia-curand-cu11==10.2.10.91
101
+ - nvidia-cusolver-cu11==11.4.0.1
102
+ - nvidia-cusparse-cu11==11.7.4.91
103
+ - nvidia-nccl-cu11==2.14.3
104
+ - nvidia-nvtx-cu11==11.7.91
105
+ - oauthlib==3.2.2
106
+ - opencv-python==4.7.0.72
107
+ - pandas==2.0.3
108
+ - pathtools==0.1.2
109
+ - pillow==9.5.0
110
+ - pip==23.1.2
111
+ - protobuf==4.23.4
112
+ - psutil==5.9.0
113
+ - pyasn1==0.5.0
114
+ - pyasn1-modules==0.3.0
115
+ - pycocotools==2.0.6
116
+ - pyparsing==3.1.0
117
+ - pytz==2023.3
118
+ - pyyaml==6.0
119
+ - pyzmq==25.1.0
120
+ - requests==2.31.0
121
+ - requests-oauthlib==1.3.1
122
+ - rsa==4.9
123
+ - scikit-image==0.22.0
124
+ - scikit-learn==1.2.2
125
+ - scipy==1.11.0
126
+ - sentry-sdk==1.27.1
127
+ - setproctitle==1.3.2
128
+ - setuptools==67.8.0
129
+ - smmap==5.0.0
130
+ - sympy==1.12
131
+ - tensorboard==2.13.0
132
+ - tensorboard-data-server==0.7.1
133
+ - tensorboardx==2.6.1
134
+ - threadpoolctl==3.1.0
135
+ - tifffile==2023.9.26
136
+ - torch==2.0.1
137
+ - torchvision==0.15.2
138
+ - tornado==6.1
139
+ - tqdm==4.65.0
140
+ - triton==2.0.0
141
+ - tzdata==2023.3
142
+ - urllib3==1.26.16
143
+ - wandb==0.15.5
144
+ - werkzeug==2.3.6
145
+ - wheel==0.38.4
correspondence/SegSwap/model/moco_v2_800ep_pretrain_torchvision.pth.tar ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d0a05442306e2a62f5dd0a00cf7cf8ed18121de291c89e255820c5f55f0c94d7
3
+ size 112184505
correspondence/SegSwap/model/model.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:299e98583ff885764bdeebb388f8402736a0d552c7e0997a57012dcced3c6e11
3
+ size 77583173
correspondence/SegSwap/model/transformer.py ADDED
@@ -0,0 +1,355 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from torch import nn
3
+ import torch.nn.functional as F
4
+ import math
5
+
6
+ ### --- Positional encoding--- ###
7
+ ### --- Borrowed from Detr--- ###
8
+ class PositionEncodingSine2D(nn.Module):
9
+ """
10
+ This is a more standard version of the position embedding, very similar to the one
11
+ used by the Attention is all you need paper, generalized to work on images.
12
+ """
13
+ def __init__(self, num_pos_feats=64, temperature=10000, normalize=True, scale=None):
14
+ super(PositionEncodingSine2D, self).__init__()
15
+ self.num_pos_feats = num_pos_feats
16
+ self.temperature = temperature
17
+ self.normalize = normalize
18
+ if scale is not None and normalize is False:
19
+ raise ValueError("normalize should be True if scale is passed")
20
+ if scale is None:
21
+ scale = 2 * math.pi
22
+ self.scale = scale
23
+
24
+ def forward(self, x, isTarget = False):
25
+ '''
26
+ input x: B, C, H, W
27
+ return pos: B, C, H, W
28
+
29
+ '''
30
+ not_mask = torch.ones(x.size()[0], x.size()[2], x.size()[3]).to(x.device)
31
+ y_embed = not_mask.cumsum(1, dtype=torch.float32)
32
+ x_embed = not_mask.cumsum(2, dtype=torch.float32)
33
+
34
+ if self.normalize:
35
+ eps = 1e-6
36
+ ## no diff between source and target
37
+ y_embed = y_embed / (y_embed[:, -1:, :] + eps) * self.scale
38
+ x_embed = x_embed / (x_embed[:, :, -1:] + eps) * self.scale
39
+
40
+ dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
41
+ dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
42
+
43
+ pos_x = x_embed[:, :, :, None] / dim_t
44
+ pos_y = y_embed[:, :, :, None] / dim_t
45
+ pos_x = torch.stack((pos_x[:, :, :, 0::2].sin(), pos_x[:, :, :, 1::2].cos()), dim=4).flatten(3)
46
+ pos_y = torch.stack((pos_y[:, :, :, 0::2].sin(), pos_y[:, :, :, 1::2].cos()), dim=4).flatten(3)
47
+ pos = torch.cat((pos_y, pos_x), dim=3).permute(0, 3, 1, 2)
48
+ return pos
49
+
50
+ class EncoderLayerInnerAttention(nn.Module):
51
+ """
52
+ Transformer encoder with all paramters
53
+ """
54
+ def __init__(self, d_model, nhead, dim_feedforward, dropout, activation, pos_weight, feat_weight):
55
+ super(EncoderLayerInnerAttention, self).__init__()
56
+
57
+
58
+ self.pos_weight = pos_weight
59
+ self.feat_weight = feat_weight
60
+ self.inner_encoder_layer = nn.TransformerEncoderLayer(d_model=d_model, nhead=nhead, dim_feedforward=dim_feedforward, dropout=dropout, activation = activation)
61
+ self.posEncoder = PositionEncodingSine2D(d_model // 2)
62
+
63
+ self.cross_encoder_layer = EncoderLayerCrossAttention(d_model=d_model, nhead=nhead, dim_feedforward=dim_feedforward,
64
+ dropout=dropout, activation=activation)
65
+
66
+ def forward(self, x, y, featmask, x_mask = None, y_mask = None):
67
+ '''
68
+ input x: B, C, H, W
69
+ input y: B, C, H, W
70
+ input x_mask: B, 1, H, W, mask == True will be ignored
71
+ input y_mask: B, 1, H, W, mask == True will be ignored
72
+ '''
73
+
74
+ # do cross attention on x and featmask
75
+ x = self.cross_encoder_layer(x, featmask, None)[0]
76
+
77
+ bx, cx, hx, wx = x.size()
78
+
79
+ by, cy, hy, wy = y.size()
80
+
81
+ posx = self.posEncoder(x)
82
+ posy = self.posEncoder(y)
83
+
84
+
85
+ featx = self.feat_weight * x + self.pos_weight * posx
86
+ featy = self.feat_weight * y + self.pos_weight * posy
87
+
88
+
89
+ ## input of transformer should be : seq_len * batch_size * feat_dim
90
+ featx = featx.flatten(2).permute(2, 0, 1)
91
+ featy = featy.flatten(2).permute(2, 0, 1)
92
+ x_mask = x_mask.flatten(2).squeeze(1) if x_mask is not None else torch.cuda.BoolTensor(bx, hx * wx).fill_(False)
93
+ y_mask = y_mask.flatten(2).squeeze(1) if y_mask is not None else torch.cuda.BoolTensor(by, hy * wy).fill_(False)
94
+
95
+ ## input of transformer: (seq_len*2) * batch_size * feat_dim
96
+ len_seq_x, len_seq_y = featx.size()[0], featy.size()[0]
97
+
98
+ output = torch.cat([featx, featy], dim=0)
99
+ src_key_padding_mask = torch.cat((x_mask, y_mask), dim=1)
100
+ with torch.no_grad() :
101
+ src_mask = torch.cuda.BoolTensor(hx * wx + hy * wy, hx * wx + hy * wy).fill_(True)
102
+ src_mask[:hx * wx, :hx * wx] = False
103
+ src_mask[hx * wx :, hx * wx:] = False
104
+
105
+ output = self.inner_encoder_layer(output, src_mask=src_mask, src_key_padding_mask=src_key_padding_mask)
106
+
107
+ outx, outy = output.narrow(0, 0, len_seq_x), output.narrow(0, len_seq_x, len_seq_y)
108
+ outx, outy = outx.permute(1, 2, 0).view(bx, cx, hx, wx), outy.permute(1, 2, 0).view(by, cy, hy, wy)
109
+ x_mask, y_mask = x_mask.view(bx, 1, hx, wx), y_mask.view(bx, 1, hy, wy)
110
+
111
+ return outx, outy, x_mask, y_mask
112
+
113
+ class EncoderLayerCrossAttention(nn.Module):
114
+ """
115
+ Transformer encoder with all paramters
116
+ """
117
+ def __init__(self, d_model, nhead, dim_feedforward, dropout, activation):
118
+ super(EncoderLayerCrossAttention, self).__init__()
119
+
120
+ self.cross_encoder_layer = nn.TransformerEncoderLayer(d_model=d_model, nhead=nhead, dim_feedforward=dim_feedforward, dropout=dropout, activation = activation)
121
+
122
+ def forward(self, featx, featy, featmask, x_mask = None, y_mask = None):
123
+ '''
124
+ input x: B, C, H, W
125
+ input y: B, C, H, W
126
+ input x_mask: B, 1, H, W, mask == True will be ignored
127
+ input y_mask: B, 1, H, W, mask == True will be ignored
128
+ '''
129
+
130
+ bx, cx, hx, wx = featx.size()
131
+ by, cy, hy, wy = featy.size()
132
+
133
+ ## input of transformer should be : seq_len * batch_size * feat_dim
134
+ featx = featx.flatten(2).permute(2, 0, 1)
135
+ featy = featy.flatten(2).permute(2, 0, 1)
136
+ x_mask = x_mask.flatten(2).squeeze(1) if x_mask is not None else torch.cuda.BoolTensor(bx, hx * wx).fill_(False)
137
+ y_mask = y_mask.flatten(2).squeeze(1) if y_mask is not None else torch.cuda.BoolTensor(by, hy * wy).fill_(False)
138
+
139
+ ## input of transformer: (seq_len*2) * batch_size * feat_dim
140
+ len_seq_x, len_seq_y = featx.size()[0], featy.size()[0]
141
+
142
+ output = torch.cat([featx, featy], dim=0)
143
+ src_key_padding_mask = torch.cat((x_mask, y_mask), dim=1)
144
+ with torch.no_grad() :
145
+ src_mask = torch.cuda.BoolTensor(hx * wx + hy * wy, hx * wx + hy * wy).fill_(False)
146
+ src_mask[:hx * wx, :hx * wx] = True
147
+ src_mask[hx * wx :, hx * wx:] = True
148
+
149
+ output = self.cross_encoder_layer(output, src_mask=src_mask, src_key_padding_mask=src_key_padding_mask)
150
+
151
+ outx, outy = output.narrow(0, 0, len_seq_x), output.narrow(0, len_seq_x, len_seq_y)
152
+ outx, outy = outx.permute(1, 2, 0).view(bx, cx, hx, wx), outy.permute(1, 2, 0).view(by, cy, hy, wy)
153
+ x_mask, y_mask = x_mask.view(bx, 1, hx, wx), y_mask.view(bx, 1, hy, wy)
154
+
155
+ return outx, outy, x_mask, y_mask
156
+
157
+ class EncoderLayerEmpty(nn.Module):
158
+ """
159
+ Transformer encoder with all paramters
160
+ """
161
+ def __init__(self):
162
+ super(EncoderLayerEmpty, self).__init__()
163
+
164
+ def forward(self, featx, featy, featmask, x_mask = None, y_mask = None):
165
+ '''
166
+ input x: B, C, H, W
167
+ input y: B, C, H, W
168
+ input x_mask: B, 1, H, W, mask == True will be ignored
169
+ input y_mask: B, 1, H, W, mask == True will be ignored
170
+ '''
171
+ return featx, featy, x_mask, y_mask
172
+
173
+ class EncoderLayerBlock(nn.Module):
174
+ """
175
+ Transformer encoder with all paramters
176
+ """
177
+ def __init__(self, d_model, nhead, dim_feedforward, dropout, activation, pos_weight, feat_weight, layer_type) :
178
+ super(EncoderLayerBlock, self).__init__()
179
+
180
+ cross_encoder_layer = EncoderLayerCrossAttention(d_model, nhead, dim_feedforward, dropout, activation)
181
+ att_encoder_layer = EncoderLayerInnerAttention(d_model, nhead, dim_feedforward, dropout, activation, pos_weight, feat_weight)
182
+
183
+ if layer_type[0] == 'C' :
184
+ self.layer1 = cross_encoder_layer
185
+ elif layer_type[0] == 'I' :
186
+ self.layer1 = att_encoder_layer
187
+ elif layer_type[0] == 'N' :
188
+ self.layer1 = EncoderLayerEmpty()
189
+
190
+ if layer_type[1] == 'C' :
191
+ self.layer2 = cross_encoder_layer
192
+ elif layer_type[1] == 'I' :
193
+ self.layer2 = att_encoder_layer
194
+ elif layer_type[1] == 'N' :
195
+ self.layer2 = EncoderLayerEmpty()
196
+
197
+ def forward(self, featx, featy, featmask, x_mask = None, y_mask = None):
198
+ '''
199
+ input x: B, C, H, W
200
+ input y: B, C, H, W
201
+ input x_mask: B, 1, H, W, mask == True will be ignored
202
+ input y_mask: B, 1, H, W, mask == True will be ignored
203
+ '''
204
+
205
+ featx, featy, x_mask, y_mask = self.layer1(featx, featy, featmask, x_mask, y_mask)
206
+ featx, featy, x_mask, y_mask = self.layer2(featx, featy, featmask, x_mask, y_mask)
207
+
208
+ return featx, featy, x_mask, y_mask
209
+
210
+ ### --- Transformer Encoder --- ###
211
+ class Decoder(nn.Module):
212
+
213
+ def __init__(self, in_channels=256, out_channels=3):
214
+ super(Decoder, self).__init__()
215
+
216
+ self.deconv1 = nn.ConvTranspose2d(in_channels, 128, 2, stride=2) # 60
217
+ self.relu1 = nn.ReLU()
218
+
219
+ self.deconv2 = nn.ConvTranspose2d(128, out_channels, 2, stride=2) # 120
220
+
221
+ def forward(self, x):
222
+
223
+ x = self.deconv1(x)
224
+ x = self.relu1(x)
225
+
226
+ x = self.deconv2(x)
227
+
228
+ x = F.interpolate(x, scale_factor=4, mode='bilinear', align_corners=False)
229
+
230
+ return x
231
+
232
+ class ClsBranch(nn.Module):
233
+ # branch to predict if the object exists or not.
234
+ def __init__(self, in_dim):
235
+ super(ClsBranch, self).__init__()
236
+
237
+ self.conv = nn.Conv2d(in_dim, 1, 3)
238
+ self.relu = nn.ReLU()
239
+
240
+ self.mlp = nn.Sequential(*[nn.Linear(28*28, 32),
241
+ nn.ReLU(),
242
+ nn.Linear(32, 1),
243
+ nn.Sigmoid()])
244
+
245
+ def forward(self, x):
246
+
247
+ x = self.conv(x)
248
+ x = self.relu(x)
249
+ x = torch.flatten(x, start_dim=1)
250
+ x = self.mlp(x)
251
+ return x
252
+
253
+ class Encoder(nn.Module):
254
+ """
255
+ Transformer encoder with all paramters
256
+ """
257
+ def __init__(self, feat_dim, pos_weight = 0.1, feat_weight=1, d_model=512, nhead=8, num_layers=6, dim_feedforward=2048, dropout=0.1, activation='relu', layer_type = ['I', 'C', 'I', 'C', 'I', 'C'], drop_feat = 0.1):
258
+ super(Encoder, self).__init__()
259
+
260
+ self.num_layers = num_layers
261
+ self.feat_proj = nn.Conv2d(feat_dim, d_model, kernel_size=1)
262
+ self.drop_feat = nn.Dropout2d(p=drop_feat)
263
+ self.encoder_blocks = nn.ModuleList([EncoderLayerBlock(d_model, nhead, dim_feedforward, dropout, activation, pos_weight, feat_weight, layer_type[i * 2 : i * 2 + 2]) for i in range(num_layers)])
264
+
265
+ self.decoder = Decoder(d_model, 3)
266
+ self.cls_branch = ClsBranch(in_dim=256)
267
+ self.sigmoid = nn.Sigmoid()
268
+ self.eps = 1e-7
269
+
270
+
271
+ def forward(self, x, y, fmask, x_mask = None, y_mask = None):
272
+ '''
273
+ input x: B, C, H, W
274
+ input y: B, C, H, W
275
+ input x_mask: B, 1, H, W, mask == True will be ignored
276
+ input y_mask: B, 1, H, W, mask == True will be ignored
277
+ '''
278
+ featx = self.feat_proj (x)
279
+ featx = self.drop_feat(featx)
280
+
281
+ bx, cx, hx, wx = featx.size()
282
+
283
+ featy = self.feat_proj (y)
284
+ featy = self.drop_feat(featy)
285
+
286
+ by, cy, hy, wy = featy.size()
287
+
288
+ featmask = self.feat_proj(fmask)
289
+
290
+ for i in range(self.num_layers) :
291
+ featx, featy, x_mask, y_mask = self.encoder_blocks[i](featx, featy, featmask, x_mask, y_mask)
292
+
293
+ out_cls = self.cls_branch(featy)
294
+ outx = self.sigmoid(self.decoder(featx))
295
+ outy = self.sigmoid(self.decoder(featy))
296
+
297
+ outx = torch.clamp(outx, min=self.eps, max=1-self.eps)
298
+ outy = torch.clamp(outy, min=self.eps, max=1-self.eps)
299
+
300
+ return outx, outy, out_cls
301
+
302
+ ### --- Transformer Encoder --- ###
303
+ class TransEncoder(nn.Module):
304
+ """
305
+ Transformer encoder: small and large variants
306
+ """
307
+ def __init__(self, feat_dim=1024, pos_weight = 0.1, feat_weight = 1, dropout=0.1, activation='relu', mode='small', layer_type=['I', 'C', 'I', 'C', 'I', 'N'], drop_feat=0.1):
308
+ super(TransEncoder, self).__init__()
309
+
310
+ if mode == 'tiny' :
311
+ d_model=128
312
+ nhead=2
313
+ num_layers=3
314
+ dim_feedforward=256
315
+
316
+ elif mode == 'small' :
317
+ d_model=256
318
+ nhead=2
319
+ num_layers=3
320
+ dim_feedforward=256
321
+
322
+ elif mode == 'base' :
323
+ d_model=512
324
+ nhead=8
325
+ num_layers=3
326
+ dim_feedforward=2048
327
+
328
+ elif mode == 'large' :
329
+ d_model=512
330
+ nhead=8
331
+ num_layers=6
332
+ dim_feedforward=2048
333
+
334
+ self.net = Encoder(feat_dim, pos_weight, feat_weight, d_model, nhead, num_layers, dim_feedforward, dropout, activation, layer_type, drop_feat)
335
+
336
+ def forward(self, x, y, fmask, x_mask = None, y_mask = None):
337
+ '''
338
+ input x: B, C, H, W
339
+ input y: B, C, H, W
340
+
341
+ '''
342
+ outx, outy, out_cls = self.net(x, y, fmask, x_mask, y_mask)
343
+
344
+ return outx, outy, out_cls
345
+
346
+ if __name__ == '__main__' :
347
+
348
+ feat_dim = 256
349
+ mode = 'small'
350
+ x = torch.cuda.FloatTensor(2, feat_dim, 10, 10)
351
+ x_mask = torch.cuda.BoolTensor(2, 1, 10, 10)
352
+
353
+ net = TransEncoder()
354
+
355
+ print (net)
correspondence/SegSwap/process_data.sh ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ #SBATCH --job-name=process_data13 # Job name
3
+ #SBATCH --nodes=1 # Request 1 node
4
+ #SBATCH --ntasks-per-node=1
5
+ #SBATCH --cpus-per-task=16
6
+ #SBATCH --mem-per-cpu=8G
7
+ #SBATCH --time=24:00:00 # Job timeout
8
+ #SBATCH --output=process_test_data_20250512_check.log # Redirect stdout to a log file
9
+ #SBATCH --nodelist=gcpcpu-eu-1
10
+
11
+
12
+
13
+ cd /home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap
14
+
15
+ srun --nodes "$SLURM_NNODES" --ntasks-per-node 1 -- \
16
+ mkenv -f /home/yuqian_fu/environment.yml -- \
17
+ sh -c "
18
+
19
+ python data/process_data_new.py --takepath /work/yuqian_fu/Ego/egoexo4d_keystep/takes --annotationpath /work/yuqian_fu/Ego/New_annotations/annotations/relations_test.json --split_path /home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/split.json --split test --outputpath /work/yuqian_fu/Ego/data_segswap_test_20250512
20
+
21
+ "
22
+
23
+
24
+
correspondence/SegSwap/process_test_data_20250507.log ADDED
@@ -0,0 +1,3 @@
 
0
  0%| | 0/295 [00:00<?, ?it/s]
1
  0%| | 1/295 [02:02<10:01:18, 122.72s/it]Killed
 
 
 
1
+
2
  0%| | 0/295 [00:00<?, ?it/s]
3
  0%| | 1/295 [02:02<10:01:18, 122.72s/it]Killed
4
+ slurmstepd: error: Detected 1 oom_kill event in StepId=221267.0. Some of the step tasks have been OOM Killed.
5
+ srun: error: gcpl4-eu-0: task 0: Out Of Memory
correspondence/SegSwap/process_test_data_20250508_new.log ADDED
@@ -0,0 +1,3 @@
 
0
  0%| | 0/295 [00:00<?, ?it/s]
1
  0%| | 1/295 [01:23<6:49:06, 83.49s/it]
2
  1%| | 2/295 [05:30<14:37:59, 179.79s/it]
3
  1%| | 3/295 [06:07<9:16:38, 114.38s/it]
4
  1%|▏ | 4/295 [06:19<5:59:30, 74.12s/it]
5
  2%|▏ | 5/295 [06:32<4:11:20, 52.00s/it]
6
  2%|▏ | 6/295 [07:56<5:03:31, 63.02s/it]
7
  2%|▏ | 7/295 [23:20<27:32:50, 344.34s/it]
8
  3%|▎ | 8/295 [27:08<24:29:52, 307.29s/it]
9
  3%|▎ | 9/295 [27:39<17:33:31, 221.02s/it]
10
  3%|▎ | 10/295 [29:27<14:43:17, 185.96s/it]
11
  4%|▎ | 11/295 [30:21<11:29:21, 145.64s/it]
12
  4%|▍ | 12/295 [30:40<8:25:56, 107.27s/it]
13
  4%|▍ | 13/295 [31:15<6:40:31, 85.22s/it]
14
  5%|▍ | 14/295 [35:09<10:09:43, 130.19s/it]
15
  5%|▌ | 15/295 [37:33<10:27:48, 134.53s/it]
16
  5%|▌ | 16/295 [46:20<19:33:39, 252.40s/it]
17
  6%|▌ | 17/295 [48:44<16:59:06, 219.95s/it]
18
  6%|▌ | 18/295 [49:08<12:22:51, 160.91s/it]
19
  6%|▋ slurmstepd: error: *** JOB 221511 ON gcpl4-eu-0 CANCELLED AT 2025-05-08T09:51:37 ***
 
20
  7%|▋ | 20/295 [52:44<9:50:48, 128.90s/it]
21
  7%|▋ | 21/295 [53:12<7:31:08, 98.79s/it]
22
  7%|▋ | 22/295 [53:40<5:52:30, 77.48s/it]
23
  8%|▊ | 23/295 [55:02<5:57:20, 78.82s/it]
24
  8%|▊ | 24/295 [1:00:08<11:03:51, 146.98s/it]
25
  8%|▊ | 25/295 [1:00:17<7:56:00, 105.78s/it]
26
  9%|▉ | 26/295 [1:04:41<11:26:12, 153.06s/it]
27
  9%|▉ | 27/295 [1:06:26<10:18:58, 138.58s/it]slurmstepd: error: *** STEP 221511.0 ON gcpl4-eu-0 CANCELLED AT 2025-05-08T09:51:37 ***
 
 
1
+
2
  0%| | 0/295 [00:00<?, ?it/s]
3
  0%| | 1/295 [01:23<6:49:06, 83.49s/it]
4
  1%| | 2/295 [05:30<14:37:59, 179.79s/it]
5
  1%| | 3/295 [06:07<9:16:38, 114.38s/it]
6
  1%|▏ | 4/295 [06:19<5:59:30, 74.12s/it]
7
  2%|▏ | 5/295 [06:32<4:11:20, 52.00s/it]
8
  2%|▏ | 6/295 [07:56<5:03:31, 63.02s/it]
9
  2%|▏ | 7/295 [23:20<27:32:50, 344.34s/it]
10
  3%|▎ | 8/295 [27:08<24:29:52, 307.29s/it]
11
  3%|▎ | 9/295 [27:39<17:33:31, 221.02s/it]
12
  3%|▎ | 10/295 [29:27<14:43:17, 185.96s/it]
13
  4%|▎ | 11/295 [30:21<11:29:21, 145.64s/it]
14
  4%|▍ | 12/295 [30:40<8:25:56, 107.27s/it]
15
  4%|▍ | 13/295 [31:15<6:40:31, 85.22s/it]
16
  5%|▍ | 14/295 [35:09<10:09:43, 130.19s/it]
17
  5%|▌ | 15/295 [37:33<10:27:48, 134.53s/it]
18
  5%|▌ | 16/295 [46:20<19:33:39, 252.40s/it]
19
  6%|▌ | 17/295 [48:44<16:59:06, 219.95s/it]
20
  6%|▌ | 18/295 [49:08<12:22:51, 160.91s/it]
21
  6%|▋ slurmstepd: error: *** JOB 221511 ON gcpl4-eu-0 CANCELLED AT 2025-05-08T09:51:37 ***
22
+ | 19/295 [51:51<12:23:35, 161.65s/it]
23
  7%|▋ | 20/295 [52:44<9:50:48, 128.90s/it]
24
  7%|▋ | 21/295 [53:12<7:31:08, 98.79s/it]
25
  7%|▋ | 22/295 [53:40<5:52:30, 77.48s/it]
26
  8%|▊ | 23/295 [55:02<5:57:20, 78.82s/it]
27
  8%|▊ | 24/295 [1:00:08<11:03:51, 146.98s/it]
28
  8%|▊ | 25/295 [1:00:17<7:56:00, 105.78s/it]
29
  9%|▉ | 26/295 [1:04:41<11:26:12, 153.06s/it]
30
  9%|▉ | 27/295 [1:06:26<10:18:58, 138.58s/it]slurmstepd: error: *** STEP 221511.0 ON gcpl4-eu-0 CANCELLED AT 2025-05-08T09:51:37 ***
31
+ srun: Job step aborted: Waiting up to 32 seconds for job step to finish.
correspondence/SegSwap/process_test_data_20250508_new666.log ADDED
@@ -0,0 +1,3 @@
 
0
  0%| | 0/295 [00:00<?, ?it/s]
1
  0%| | 1/295 [01:24<6:53:06, 84.31s/it]
2
  1%| | 2/295 [05:25<14:20:59, 176.31s/it]
3
  1%| | 3/295 [06:01<9:06:54, 112.38s/it]
4
  1%|▏ | 4/295 [06:13<5:53:22, 72.86s/it]
5
  2%|▏ | 5/295 [06:26<4:07:12, 51.15s/it]
6
  2%|▏ | 6/295 [07:50<5:00:56, 62.48s/it]
7
  2%|▏ | 7/295 [23:31<27:58:14, 349.63s/it]
8
  3%|▎ | 8/295 [27:15<24:40:31, 309.52s/it]
9
  3%|▎ | 9/295 [27:46<17:41:18, 222.65s/it]
10
  3%|▎ | 10/295 [29:33<14:47:38, 186.87s/it]
11
  4%|▎ | 11/295 [30:27<11:31:47, 146.15s/it]
12
  4%|▍ | 12/295 [30:46<8:27:29, 107.59s/it]
13
  4%|▍ | 13/295 [31:20<6:40:50, 85.29s/it]
14
  5%|▍ | 14/295 [35:15<10:10:33, 130.37s/it]
15
  5%|▌ | 15/295 [37:40<10:29:53, 134.98s/it]
16
  5%|▌ | 16/295 [46:29<19:39:09, 253.58s/it]
17
  6%|▌ | 17/295 [48:53<17:01:34, 220.48s/it]
18
  6%|▌ | 18/295 [49:16<12:24:03, 161.17s/it]
19
  6%|▋ slurmstepd: error: *** JOB 221542 ON gcpl4-eu-0 CANCELLED AT 2025-05-08T12:04:17 ***
 
20
  7%|▋ | 20/295 [52:51<9:50:17, 128.79s/it]
21
  7%|▋ | 21/295 [53:19<7:30:31, 98.66s/it]
22
  7%|▋ | 22/295 [53:47<5:51:41, 77.29s/it]
23
  8%|▊ | 23/295 [55:09<5:56:37, 78.67s/it]
24
  8%|▊ | 24/295 [1:00:15<11:03:42, 146.95s/it]
25
  8%|▊ | 25/295 [1:00:25<7:55:41, 105.71s/it] slurmstepd: error: *** STEP 221542.0 ON gcpl4-eu-0 CANCELLED AT 2025-05-08T12:04:17 ***
 
 
1
+
2
  0%| | 0/295 [00:00<?, ?it/s]
3
  0%| | 1/295 [01:24<6:53:06, 84.31s/it]
4
  1%| | 2/295 [05:25<14:20:59, 176.31s/it]
5
  1%| | 3/295 [06:01<9:06:54, 112.38s/it]
6
  1%|▏ | 4/295 [06:13<5:53:22, 72.86s/it]
7
  2%|▏ | 5/295 [06:26<4:07:12, 51.15s/it]
8
  2%|▏ | 6/295 [07:50<5:00:56, 62.48s/it]
9
  2%|▏ | 7/295 [23:31<27:58:14, 349.63s/it]
10
  3%|▎ | 8/295 [27:15<24:40:31, 309.52s/it]
11
  3%|▎ | 9/295 [27:46<17:41:18, 222.65s/it]
12
  3%|▎ | 10/295 [29:33<14:47:38, 186.87s/it]
13
  4%|▎ | 11/295 [30:27<11:31:47, 146.15s/it]
14
  4%|▍ | 12/295 [30:46<8:27:29, 107.59s/it]
15
  4%|▍ | 13/295 [31:20<6:40:50, 85.29s/it]
16
  5%|▍ | 14/295 [35:15<10:10:33, 130.37s/it]
17
  5%|▌ | 15/295 [37:40<10:29:53, 134.98s/it]
18
  5%|▌ | 16/295 [46:29<19:39:09, 253.58s/it]
19
  6%|▌ | 17/295 [48:53<17:01:34, 220.48s/it]
20
  6%|▌ | 18/295 [49:16<12:24:03, 161.17s/it]
21
  6%|▋ slurmstepd: error: *** JOB 221542 ON gcpl4-eu-0 CANCELLED AT 2025-05-08T12:04:17 ***
22
+ | 19/295 [51:59<12:23:46, 161.69s/it]
23
  7%|▋ | 20/295 [52:51<9:50:17, 128.79s/it]
24
  7%|▋ | 21/295 [53:19<7:30:31, 98.66s/it]
25
  7%|▋ | 22/295 [53:47<5:51:41, 77.29s/it]
26
  8%|▊ | 23/295 [55:09<5:56:37, 78.67s/it]
27
  8%|▊ | 24/295 [1:00:15<11:03:42, 146.95s/it]
28
  8%|▊ | 25/295 [1:00:25<7:55:41, 105.71s/it] slurmstepd: error: *** STEP 221542.0 ON gcpl4-eu-0 CANCELLED AT 2025-05-08T12:04:17 ***
29
+ srun: Job step aborted: Waiting up to 32 seconds for job step to finish.
correspondence/SegSwap/process_test_data_20250508_new888.log ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Traceback (most recent call last):
2
+ File "/home/yuqian_fu/Projects/ego-exo4d-relation/correspondence/SegSwap/data/process_data_new.py", line 123, in <module>
3
+ with open(args.annotationpath, "r") as f:
4
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5
+ FileNotFoundError: [Errno 2] No such file or directory: '/work/yuqian_fu/Ego/New_annotations/annotations/relations_test.json'
6
+ srun: error: msp3-1: task 0: Exited with exit code 1
correspondence/SegSwap/process_test_data_20250508_new999.log ADDED
@@ -0,0 +1,3 @@
 
0
  0%| | 0/295 [00:00<?, ?it/s]
1
  0%| | 1/295 [01:18<6:25:37, 78.70s/it]
2
  1%| | 2/295 [05:22<14:17:58, 175.70s/it]
3
  1%| | 3/295 [05:57<9:02:29, 111.47s/it]
4
  1%|▏ | 4/295 [06:09<5:49:56, 72.15s/it]
5
  2%|▏ | 5/295 [06:21<4:04:52, 50.66s/it]
6
  2%|▏ | 6/295 [07:45<4:57:35, 61.78s/it]
7
  2%|▏ | 7/295 [22:26<26:23:20, 329.86s/it]
8
  3%|▎ | 8/295 [26:06<23:30:18, 294.84s/it]
9
  3%|▎ | 9/295 [26:37<16:52:04, 212.32s/it]
10
  3%|▎ | 10/295 [28:22<14:10:32, 179.06s/it]
11
  4%|▎ | 11/295 [29:15<11:05:45, 140.65s/it]
12
  4%|▍ | 12/295 [29:35<8:09:13, 103.72s/it]
13
  4%|▍ | 13/295 [30:08<6:27:08, 82.37s/it]
14
  5%|▍ | 14/295 [33:47<9:38:40, 123.56s/it]
15
  5%|▌ | 15/295 [36:10<10:04:22, 129.51s/it]
16
  5%|▌ | 16/295 [44:35<18:48:26, 242.67s/it]
17
  6%|▌ | 17/295 [46:51<16:15:51, 210.62s/it]
18
  6%|▌ | 18/295 [47:14<11:51:50, 154.19s/it]
19
  6%|▋ | 19/295 [49:49<11:50:26, 154.45s/it]
20
  7%|▋ | 20/295 [50:41<9:26:04, 123.51s/it]
21
  7%|▋ | 21/295 [51:09<7:13:14, 94.87s/it]
22
  7%|▋ | 22/295 [51:36<5:38:38, 74.43s/it]
23
  8%|▊ | 23/295 [52:55<5:43:37, 75.80s/it]
24
  8%|▊ | 24/295 [57:44<10:32:30, 140.04s/it]
25
  8%|▊ | 25/295 [57:54<7:33:50, 100.85s/it]
26
  9%|▉ | 26/295 [1:02:09<10:59:39, 147.14s/it]
27
  9%|▉ | 27/295 [1:03:48<9:52:42, 132.70s/it] slurmstepd: error: *** STEP 221704.0 ON gcpl4-eu-0 CANCELLED AT 2025-05-08T14:25:01 ***
 
 
 
1
+
2
  0%| | 0/295 [00:00<?, ?it/s]
3
  0%| | 1/295 [01:18<6:25:37, 78.70s/it]
4
  1%| | 2/295 [05:22<14:17:58, 175.70s/it]
5
  1%| | 3/295 [05:57<9:02:29, 111.47s/it]
6
  1%|▏ | 4/295 [06:09<5:49:56, 72.15s/it]
7
  2%|▏ | 5/295 [06:21<4:04:52, 50.66s/it]
8
  2%|▏ | 6/295 [07:45<4:57:35, 61.78s/it]
9
  2%|▏ | 7/295 [22:26<26:23:20, 329.86s/it]
10
  3%|▎ | 8/295 [26:06<23:30:18, 294.84s/it]
11
  3%|▎ | 9/295 [26:37<16:52:04, 212.32s/it]
12
  3%|▎ | 10/295 [28:22<14:10:32, 179.06s/it]
13
  4%|▎ | 11/295 [29:15<11:05:45, 140.65s/it]
14
  4%|▍ | 12/295 [29:35<8:09:13, 103.72s/it]
15
  4%|▍ | 13/295 [30:08<6:27:08, 82.37s/it]
16
  5%|▍ | 14/295 [33:47<9:38:40, 123.56s/it]
17
  5%|▌ | 15/295 [36:10<10:04:22, 129.51s/it]
18
  5%|▌ | 16/295 [44:35<18:48:26, 242.67s/it]
19
  6%|▌ | 17/295 [46:51<16:15:51, 210.62s/it]
20
  6%|▌ | 18/295 [47:14<11:51:50, 154.19s/it]
21
  6%|▋ | 19/295 [49:49<11:50:26, 154.45s/it]
22
  7%|▋ | 20/295 [50:41<9:26:04, 123.51s/it]
23
  7%|▋ | 21/295 [51:09<7:13:14, 94.87s/it]
24
  7%|▋ | 22/295 [51:36<5:38:38, 74.43s/it]
25
  8%|▊ | 23/295 [52:55<5:43:37, 75.80s/it]
26
  8%|▊ | 24/295 [57:44<10:32:30, 140.04s/it]
27
  8%|▊ | 25/295 [57:54<7:33:50, 100.85s/it]
28
  9%|▉ | 26/295 [1:02:09<10:59:39, 147.14s/it]
29
  9%|▉ | 27/295 [1:03:48<9:52:42, 132.70s/it] slurmstepd: error: *** STEP 221704.0 ON gcpl4-eu-0 CANCELLED AT 2025-05-08T14:25:01 ***
30
+ slurmstepd: error: *** JOB 221704 ON gcpl4-eu-0 CANCELLED AT 2025-05-08T14:25:01 ***
31
+ srun: Job step aborted: Waiting up to 32 seconds for job step to finish.
correspondence/SegSwap/process_test_data_20250511_new.log ADDED
@@ -0,0 +1,3 @@
 
0
  0%| | 0/295 [00:00<?, ?it/s]
1
  9%|▉ | 28/295 [05:41<54:16, 12.20s/it]
2
  10%|▉ | 29/295 [06:04<56:17, 12.70s/it]
3
  10%|█ | 30/295 [06:21<57:32, 13.03s/it]
4
  11%|█ | 31/295 [06:55<1:04:58, 14.77s/it]
5
  11%|█ | 32/295 [07:11<1:05:12, 14.88s/it]
6
  11%|█ | 33/295 [07:23<1:03:29, 14.54s/it]
7
  12%|█▏ | 34/295 [14:42<5:59:29, 82.64s/it]
8
  12%|█▏ | 35/295 [39:31<24:53:50, 344.73s/it]
9
  12%|█▏ | 36/295 [40:32<20:30:13, 285.00s/it]
10
  13%|█▎ | 37/295 [42:49<17:58:38, 250.85s/it]
11
  13%|█▎ | 38/295 [52:40<23:56:35, 335.39s/it]
12
  13%|█▎ | 39/295 [52:54<17:52:18, 251.32s/it]
13
  14%|█▎ | 40/295 [57:27<18:12:54, 257.15s/it]
14
  14%|█▍ | 41/295 [57:54<13:35:57, 192.75s/it]
15
  14%|█▍ | 42/295 [58:16<10:06:45, 143.90s/it]
16
  15%|█▍ | 43/295 [59:59<9:15:00, 132.14s/it]
17
  15%|█▍ | 44/295 [1:02:34<9:40:32, 138.78s/it]
18
  15%|█▌ | 45/295 [1:03:00<7:19:50,slurmstepd: error: *** JOB 227599 ON gcp-eu-1 CANCELLED AT 2025-05-11T16:37:21 ***
 
19
  16%|█▌ | 46/295 [1:03:21<5:33:59, 80.48s/it]
20
  16%|█▌ | 47/295 [1:03:41<4:18:35, 62.56s/it]slurmstepd: error: *** STEP 227599.0 ON gcp-eu-1 CANCELLED AT 2025-05-11T16:37:21 ***
 
 
1
+
2
  0%| | 0/295 [00:00<?, ?it/s]
3
  9%|▉ | 28/295 [05:41<54:16, 12.20s/it]
4
  10%|▉ | 29/295 [06:04<56:17, 12.70s/it]
5
  10%|█ | 30/295 [06:21<57:32, 13.03s/it]
6
  11%|█ | 31/295 [06:55<1:04:58, 14.77s/it]
7
  11%|█ | 32/295 [07:11<1:05:12, 14.88s/it]
8
  11%|█ | 33/295 [07:23<1:03:29, 14.54s/it]
9
  12%|█▏ | 34/295 [14:42<5:59:29, 82.64s/it]
10
  12%|█▏ | 35/295 [39:31<24:53:50, 344.73s/it]
11
  12%|█▏ | 36/295 [40:32<20:30:13, 285.00s/it]
12
  13%|█▎ | 37/295 [42:49<17:58:38, 250.85s/it]
13
  13%|█▎ | 38/295 [52:40<23:56:35, 335.39s/it]
14
  13%|█▎ | 39/295 [52:54<17:52:18, 251.32s/it]
15
  14%|█▎ | 40/295 [57:27<18:12:54, 257.15s/it]
16
  14%|█▍ | 41/295 [57:54<13:35:57, 192.75s/it]
17
  14%|█▍ | 42/295 [58:16<10:06:45, 143.90s/it]
18
  15%|█▍ | 43/295 [59:59<9:15:00, 132.14s/it]
19
  15%|█▍ | 44/295 [1:02:34<9:40:32, 138.78s/it]
20
  15%|█▌ | 45/295 [1:03:00<7:19:50,slurmstepd: error: *** JOB 227599 ON gcp-eu-1 CANCELLED AT 2025-05-11T16:37:21 ***
21
+ 105.56s/it]
22
  16%|█▌ | 46/295 [1:03:21<5:33:59, 80.48s/it]
23
  16%|█▌ | 47/295 [1:03:41<4:18:35, 62.56s/it]slurmstepd: error: *** STEP 227599.0 ON gcp-eu-1 CANCELLED AT 2025-05-11T16:37:21 ***
24
+ srun: Job step aborted: Waiting up to 32 seconds for job step to finish.
correspondence/SegSwap/process_test_data_20250512.log ADDED
@@ -0,0 +1,795 @@
 
0
  0%| | 0/295 [00:00<?, ?it/s]
1
  16%|█▌ | 47/295 [00:20<01:49, 2.27it/s]
2
  16%|█▋ | 48/295 [01:13<08:12, 1.99s/it]
3
  17%|█▋ | 49/295 [01:32<10:52, 2.65s/it]
4
  17%|█▋ | 50/295 [06:04<1:11:02, 17.40s/it]
5
  17%|█▋ | 51/295 [06:13<1:08:07, 16.75s/it]
6
  18%|█▊ | 52/295 [11:04<2:52:01, 42.48s/it]
7
  18%|█▊ | 53/295 [11:16<2:37:00, 38.93s/it]
8
  18%|█▊ | 54/295 [11:36<2:25:23, 36.20s/it]
9
  19%|█▊ | 55/295 [11:55<2:12:53, 33.22s/it]
10
  19%|█▉ | 56/295 [13:39<3:07:25, 47.05s/it]
11
  19%|█▉ | 57/295 [13:51<2:36:08, 39.36s/it]
12
  20%|█▉ | 58/295 [18:23<6:14:53, 94.91s/it]
13
  20%|██ | 59/295 [18:51<5:06:26, 77.91s/it]
14
  20%|██ | 60/295 [20:54<5:51:36, 89.77s/it]
15
  21%|██ | 61/295 [21:20<4:41:51, 72.27s/it]
16
  21%|██ | 62/295 [30:01<12:52:50, 199.01s/it]
17
  21%|██▏ | 63/295 [32:29<11:52:43, 184.33s/it]
18
  22%|██▏ | 64/295 [44:37<21:59:24, 342.71s/it]
19
  22%|██▏ | 65/295 [45:08<16:02:54, 251.20s/it]
20
  22%|██▏ | 66/295 [48:53<15:28:10, 243.19s/it]
21
  23%|██▎ | 67/295 [51:36<13:54:08, 219.51s/it]
22
  23%|██▎ | 68/295 [54:03<12:28:37, 197.87s/it]
23
  23%|██▎ | 69/295 [54:26<9:08:19, 145.57s/it]
24
  24%|██▎ | 70/295 [54:49<6:48:35, 108.96s/it]
25
  24%|██▍ | 71/295 [55:02<5:00:13, 80.42s/it]
26
  24%|██▍ | 72/295 [56:23<4:59:01, 80.46s/it]
27
  25%|██▍ | 73/295 [58:07<5:23:35, 87.46s/it]
28
  25%|██▌ | 74/295 [58:30<4:11:50, 68.37s/it]
29
  25%|██▌ | 75/295 [59:04<3:32:20, 57.91s/it]
30
  26%|██▌ | 76/295 [59:26<2:51:58, 47.12s/it]
31
  26%|██▌ | 77/295 [1:02:37<5:28:07, 90.31s/it]
32
  26%|██▋ | 78/295 [1:03:12<4:26:53, 73.79s/it]
33
  27%|██▋ | 79/295 [1:03:28<3:23:01, 56.40s/it]
34
  27%|██▋ | 80/295 [1:04:16<3:13:32, 54.01s/it]
35
  27%|██▋ | 81/295 [1:05:02<3:04:09, 51.64s/it]
36
  28%|██▊ |b5d293bf-2d0a-43be-8a7b-4b66ba9b6835 already done!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  28%|██▊ | 83/295 [1:17:27<11:02:40, 187.55s/it]
38
  28%|██▊ | 84/295 [1:17:45<8:00:17, 136.58s/it]
39
  29%|██▉ | 85/295 [1:19:15<7:09:07, 122.61s/it]
40
  29%|██▉ | 86/295 [1:20:35<6:23:19, 110.04s/it]
41
  29%|██▉ | 87/295 [1:21:13<5:06:20, 88.37s/it]
42
  30%|██▉ | 88/295 [1:21:31<3:52:23, 67.36s/it]
43
  30%|███ | 89/295 [1:22:04<3:15:47, 57.03s/it]
44
  31%|███ | 90/295 [1:22:34<2:47:04, 48.90s/it]
45
  31%|███ | 91/295 [1:23:11<2:33:26, 45.13s/it]
46
  31%|███ | 92/295 [1:24:15<2:52:23, 50.95s/it]
47
  32%|███▏ | 93/295 [1:26:24<4:10:28, 74.40s/it]
48
  32%|███▏ | 94/295 [1:26:36<3:06:40, 55.72s/it]
49
  32%|███▏ | 95/295 [1:27:46<3:19:58, 59.99s/it]
50
  33%|███▎ | 96/295 [1:30:08<4:40:09, 84.47s/it]
51
  33%|███▎ | 97/295 [1:34:04<7:08:41, 129.91s/it]
52
  33%|███▎ | 98/295 [1:34:23<5:17:24, 96.67s/it]
53
  34%|███▎ | 99/295 [1:37:51<7:05:15, 130.18s/it]
54
  34%|███▍ | 100/295 [1:46:21<13:13:17, 244.09s/it]
55
  34%|███▍ | 101/295 [1:49:12<11:57:51, 222.02s/it]
56
  35%|███▍ | 102/295 [1:49:25<8:32:38, 159.37s/it]
57
  35%|███▍ | 103/295 [1:49:33<6:04:40, 113.96s/it]
58
  35%|███▌ | 104/295 [1:57:29<11:48:26, 222.55s/it]
59
  36%|███▌ | 105/295 [1:58:16<8:58:20, 170.00s/it]
60
  36%|███▌ | 106/295 [1:58:52<6:48:40, 129.74s/it]
61
  36%|███▋ | 107/295 [1:59:27<5:17:50, 101.44s/it]
62
  37%|███▋ | 108/295 [1:59:50<4:02:46, 77.89s/it]
63
  37%|███▋ | 109/295 [2:01:13<4:05:58, 79.35s/it]
64
  37%|███▋ | 110/295 [2:01:32<3:08:42, 61.20s/it]
65
  38%|███▊ | 111/295 [2:04:41<5:05:31, 99.63s/it]
66
  38%|███▊ | 112/295 [2:04:56<3:46:28, 74.25s/it]
67
  38%|███▊ | 113/295 [2:08:51<6:10:51, 122.26s/it]
68
  39%|███▊ | 114/295 [2:09:42<5:04:37, 100.98s/it]
69
  39%|███▉ | 115/295 [2:11:31<5:10:34, 103.52s/it]
70
  39%|███▉ | 116/295 [2:11:41<3:44:49, 75.36s/it]
71
  40%|███▉ | 117/295 [2:13:06<3:51:53, 78.17s/it]
72
  40%|████ | 118/295 [2:13:22<2:55:22, 59.45s/it]
73
  40%|████ | 119/295 [2:13:57<2:33:26, 52.31s/it]
74
  41%|████ | 120/295 [2:15:57<3:31:54, 72.65s/it]
75
  41%|████ | 121/295 [2:17:01<3:23:06, 70.04s/it]
76
  41%|████▏ | 122/295 [2:19:37<4:35:38, 95.60s/it]
77
  42%|████▏ | 123/295 [2:23:44<6:44:49, 141.22s/it]
78
  42%|████▏ | 124/295 [2:30:53<10:48:13, 227.45s/it]
79
  42%|████▏ | 125/295 [2:31:22<7:55:37, 167.87s/it]
80
  43%|████▎ | 126/295 [2:32:56<6:50:40, 145.80s/it]
81
  43%|████▎ | 127/295 [2:33:01<4:50:20, 103.69s/it]
82
  43%|████▎ | 128/295 [2:33:39<3:53:10, 83.78s/it]
83
  44%|████▎ | 129/295 [2:38:51<7:01:41, 152.42s/it]
84
  44%|████▍ | 130/295 [2:52:27<16:06:16, 351.38s/it]
85
  44%|████▍ | 131/295 [2:53:42<12:13:28, 268.34s/it]
86
  45%|████▍ | 132/295 [2:54:50<9:25:51, 208.29s/it]
87
  45%|████▌ | 133/295 [3:00:00<10:45:10, 238.95s/it]
88
  45%|████▌ | 134/295 [3:00:31<7:54:01, 176.65s/it]
89
  46%|████▌ | 135/295 [3:02:25<7:00:29, 157.68s/it]
90
  46%|████▌ | 136/295 [3:04:34<6:35:13, 149.14s/it]
91
  46%|████▋ | 137/295 [3:05:09<5:02:35, 114.91s/it]
92
  47%|████▋ | 138/295 [3:05:40<3:54:45, 89.71s/it]
93
  47%|████▋ | 139/295 [3:06:06<3:03:37, 70.63s/it]
94
  47%|████▋ | 140/295 [3:06:45<2:37:49, 61.09s/it]
95
  48%|████▊ | 141/295 [3:08:49<3:25:19, 80.00s/it]
96
  48%|████▊ | 142/295 [3:09:48<3:07:53, 73.68s/it]
97
  48%|████▊ | 143/295 [3:10:09<2:26:54, 57.99s/it]
98
  49%|████▉ | 144/295 [3:14:17<4:48:46, 114.74s/it]
99
  49%|████▉ | 145/295 [3:16:20<4:53:24, 117.36s/it]
100
  49%|████▉ | 146/295 [3:16:31<3:31:50, 85.31s/it]
101
  50%|████▉ Start processing Videos
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
  50%|█████ | 148/295 [3:24:08<7:07:26, 174.47s/it]
103
  51%|█████ | 149/295 [3:26:53<6:57:55, 171.75s/it]
104
  51%|█████ | 150/295 [3:27:41<5:25:39, 134.76s/it]
105
  51%|█████ | 151/295 [3:27:51<3:52:56, 97.06s/it]
106
  52%|█████▏ | 152/295 [3:34:38<7:33:11, 190.15s/it]
107
  52%|█████▏ | 153/295 [3:42:20<10:43:08, 271.75s/it]
108
  52%|█████▏ | 154/295 [3:46:57<10:42:08, 273.25s/it]
109
  53%|█████▎ | 155/295 [3:47:21<7:43:16, 198.55s/it]
110
  53%|█████▎ | 156/295 [3:53:28<9:37:08, 249.13s/it]
111
  53%|█████▎ | 157/295 [3:54:20<7:16:30, 189.78s/it]
112
  54%|█████▎ | 158/295 [3:55:51<6:05:59, 160.29s/it]
113
  54%|█████▍ | 159/295 [4:11:54<15:08:54, 400.99s/it]
114
  54%|█████▍ | 160/295 [4:13:22<11:30:59, 307.10s/it]
115
  55%|█████▍ | 161/295 [4:16:59<10:25:47, 280.21s/it]
116
  55%|█████▍ | 162/295 [4:17:47<7:46:19, 210.38s/it]
117
  55%|█████▌ | 163/295 [4:20:06<6:56:15, 189.21s/it]
118
  56%|█████▌ | 164/295 [4:21:34<5:46:15, 158.60s/it]
119
  56%|█████▌ | 165/295 [4:21:58<4:16:19, 118.31s/it]
120
  56%|█████▋ | 166/295 [4:22:20<3:12:33, 89.56s/it]
121
  57%|█████▋ | 167/295 [4:22:34<2:22:48, 66.94s/it]
122
  57%|█████▋ | 168/295 [4:27:10<4:34:24, 129.64s/it]
123
  57%|█████▋ | 169/295 [4:29:21<4:33:08, 130.07s/it]
124
  58%|█████▊ | 170/295 [4:32:24<5:03:38, 145.75s/it]
125
  58%|█████▊ | 171/295 [4:33:47<4:22:23, 126.96s/it]
126
  58%|█████▊ | 172/295 [4:35:11<3:54:00, 114.15s/it]
127
  59%|█████▊ | 173/295 [4:39:49<5:32:01, 163.29s/it]
128
  59%|█████▉ | 174/295 [4:43:05<5:49:15, 173.18s/it]
129
  59%|█████▉ | 175/295 [4:45:57<5:45:34, 172.79s/it]
130
  60%|█████▉ | 176/295 [4:46:11<4:07:53, 124.99s/it]
131
  60%|██████ | 177/295 [4:46:21<2:57:50, 90.43s/it]
132
  60%|██████ | 178/295 [5:00:30<10:20:31, 318.22s/it]
133
  61%|██████ | 179/295 [5:00:38<7:14:58, 224.99s/it]
134
  61%|██████ | 180/295 [5:03:41<6:47:07, 212.41s/it]
135
  61%|██████▏ | 181/295 [5:03:57<4:52:01, 153.70s/it]
136
  62%|██████▏ | 182/295 [5:05:09<4:03:00, 129.03s/it]
137
  62%|██████▏ | 183/295 [5:05:16<2:52:23, 92.35s/it]
138
  62%|██████▏ | 184/295 [5:05:22<2:03:21, 66.68s/it]
139
  63%|██████▎ | 185/295 [5:09:10<3:30:42, 114.93s/it]
140
  63%|██████▎ | 186/295 [5:10:23<3:05:53, 102.32s/it]
141
  63%|██████▎ | 187/295 [5:10:49<2:23:13, 79.57s/it]
142
  64%|██████▎ | 188/295 [5:14:11<3:27:03, 116.11s/it]
143
  64%|██████▍ | 189/295 [5:14:24<2:30:41, 85.30s/it]
144
  64%|██████▍ | 190/295 [5:15:25<2:16:31, 78.01s/it]
145
  65%|██████▍ | 191/295 [5:15:33<1:38:33, 56.86s/it]
146
  65%|██████▌ | 192/295 [5:15:40<1:12:02, 41.96s/it]
147
  65%|██████▌ | 193/295 [5:15:45<52:40, 30.99s/it]
148
  66%|██████▌ | 194/295 [5:16:03<45:16, 26.89s/it]
149
  66%|██████▌ | 195/295 [5:16:30<44:54, 26.94s/it]
150
  66%|██████▋ | 196/295 [5:17:12<52:17, 31.69s/it]
151
  67%|██████▋ | 197/295 [5:19:22<1:39:47, 61.10s/it]
152
  67%|██████▋ | 198/295 [5:20:16<1:35:27, 59.04s/it]
153
  67%|██████▋ | 199/295 [5:20:24<1:09:44, 43.59s/it]
154
  68%|██████▊ | 200/295 [5:20:32<51:57, 32.81s/it]
155
  68%|██████▊ | 201/295 [5:20:38<38:56, 24.86s/it]
156
  68%|██████▊ | 202/295 [5:20:57<35:43, 23.05s/it]
157
  69%|██████▉ | 203/295 [5:21:48<48:12, 31.44s/it]
158
  69%|██████▉ | 204/295 [5:23:02<1:07:20, 44.40s/it]
159
  69%|██████▉ | 205/295 [5:23:11<50:43, 33.81s/it]
160
  70%|██████▉ | 206/295 [5:23:17<37:44, 25.44s/it]
161
  70%|███████ | 207/295 [5:25:38<1:27:51, 59.90s/it]
162
  71%|███████ | 208/295 [5:26:19<1:18:45, 54.32s/it]
163
  71%|███████ | 209/295 [5:27:40<1:29:24, 62.38s/it]
164
  71%|███████ | 210/295 [5:27:50<1:05:57, 46.55s/it]
165
  72%|███████▏ | 211/295 [5:34:22<3:30:10, 150.12s/it]
166
  72%|███████▏ | 212/295 [5:35:47<3:00:59, 130.84s/it]
167
  72%|███████▏ | 213/295 [5:36:51<2:31:05, 110.56s/it]
168
  73%|███████▎ | 214/295 [5:41:41<3:42:12, 164.60s/it]
169
  73%|███████▎ | 215/295 [5:41:59<2:40:35, 120.44s/it]
170
  73%|███████▎ | 216/295 [5:42:29<2:03:07, 93.51s/it]
171
  74%|███████▎ | 217/295 [5:43:28<1:47:56, 83.03s/it]
172
  74%|███████▍ | 218/295 [5:44:18<1:33:59, 73.25s/it]
173
  74%|███████▍ | 219/295 [5:44:37<1:12:02, 56.88s/it]
174
  75%|███████▍ | 220/295 [5:44:57<57:04, 45.66s/it]
175
  75%|███████▍ | 221/295 [5:45:39<55:04, 44.66s/it]
176
  75%|███████▌ | 222/295 [5:45:56<44:17, 36Start processing masks
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  76%|███████▌ | 223/295 [5:48:12<1:19:31, 66.27s/it]
178
  76%|███████▌ | 224/295 [5:48:28<1:00:43, 51.31s/it]
179
  76%|███████▋ | 225/295 [5:49:28<1:02:51, 53.88s/it]
180
  77%|███████▋ | 226/295 [5:49:54<52:04, 45.29s/it]
181
  77%|███████▋ | 227/295 [5:50:50<55:13, 48.73s/it]
182
  77%|███████▋ | 228/295 [5:52:21<1:08:36, 61.44s/it]
183
  78%|███████▊ | 229/295 [5:55:38<1:52:20, 102.13s/it]
184
  78%|███████▊ | 230/295 [5:57:21<1:50:41, 102.17s/it]
185
  78%|███████▊ | 231/295 [5:59:02<1:48:38, 101.85s/it]
186
  79%|███████▊ | 232/295 [5:59:16<1:19:20, 75.56s/it]
187
  79%|███████▉ | 233/295 [5:59:35<1:00:28, 58.52s/it]
188
  79%|███████▉ | 234/295 [6:02:36<1:36:47, 95.20s/it]
189
  80%|███████▉ | 235/295 [6:03:09<1:16:37, 76.62s/it]
190
  80%|████████ | 236/295 [6:04:37<1:18:43, 80.06s/it]
191
  80%|████████ | 237/295 [6:05:28<1:09:04, 71.46s/it]
192
  81%|████████ | 238/295 [6:05:50<53:43, 56.55s/it]
193
  81%|████████ | 239/295 [6:05:58<39:11, 42.00s/it]
194
  81%|████████▏ | 240/295 [6:06:35<37:07, 40.50s/it]
195
  82%|████████▏ | 241/295 [6:07:08<34:21, 38.18s/it]
196
  82%|████████▏ | 242/295 [6:08:27<44:40, 50.57s/it]
197
  82%|████████▏ | 243/295 [6:15:44<2:24:16, 166.47s/it]
198
  83%|████████▎ | 244/295 [6:16:07<1:44:54, 123.42s/it]
199
  83%|████████▎ | 245/295 [6:31:04<4:56:12, 355.45s/it]
200
  83%|████████▎ | 246/295 [6:31:37<3:31:18, 258.74s/it]
201
  84%|████████▎ | 247/295 [6:31:47<2:27:19, 184.15s/it]
202
  84%|████████▍ | 248/295 [6:49:57<5:57:04, 455.85s/it]
203
  84%|████████▍ | 249/295 [6:51:41<4:28:27, 350.16s/it]
204
  85%|████████▍ | 250/295 [6:52:56<3:20:47, 267.73s/it]
205
  85%|████████▌ | 251/295 [6:56:17<3:01:40, 247.74s/it]
206
  85%|████████▌ | 252/295 [7:00:14<2:55:14, 244.53s/it]
207
  86%|████████▌ | 253/295 [7:03:13<2:37:23, 224.85s/it]
208
  86%|████████▌ | 254/295 [7:03:28<1:50:38, 161.92s/it]
209
  86%|████████▋ | 255/295 [7:03:41<1:18:09, 117.25s/it]
210
  87%|████████▋ | 256/295 [7:07:22<1:36:24, 148.33s/it]
211
  87%|████████▋ | 257/295 [7:07:46<1:10:12, 110.86s/it]
212
  87%|████████▋ | 258/295 [7:08:40<57:55, 93.94s/it]
213
  88%|████████▊ | 259/295 [7:08:45<40:25, 67.37s/it]
214
  88%|████████▊ | 260/295 [7:11:59<1:01:21, 105.19s/it]
215
  88%|████████▊ | 261/295 [7:14:28<1:07:05, 118.39s/it]
216
  89%|████████▉ | 262/295 [7:20:04<1:41:06, 183.83s/it]
217
  89%|████████▉ | 263/295 [7:23:14<1:39:01, 185.66s/it]
218
  89%|████████▉ | 264/295 [7:24:05<1:14:55, 145.01s/it]
219
  90%|████████▉ | 265/295 [7:24:22<53:22, 106.77s/it]
220
  90%|█████████ | 266/295 [7:25:27<45:33, 94.25s/it]
221
  91%|█████████ | 267/295 [7:25:36<32:03, 68.71s/it]
222
  91%|█████████ | 268/295 [7:27:18<35:20, 78.55s/it]
223
  91%|█████████ | 269/295 [7:27:53<28:20, 65.40s/it]
224
  92%|█████████▏| 270/295 [7:40:17<1:52:07, 269.12s/it]
225
  92%|█████████▏| 271/295 [7:40:43<1:18:28, 196.18s/it]
226
  92%|█████████▏| 272/295 [7:45:05<1:22:46, 215.92s/it]
227
  93%|█████████▎| 273/295 [7:46:15<1:03:04, 172.04s/it]
228
  93%|█████████▎| 274/295 [7:46:29<43:41, 124.82s/it]
229
  93%|█████████▎| 275/295 [7:46:39<30:07, 90.38s/it]
230
  94%|█████████▎| 276/295 [7:46:49<20:56, 66.13s/it]
231
  94%|█████████▍| 277/295 [7:47:58<20:09, 67.17s/it]
232
  94%|█████████▍| 278/295 [7:48:38<16:40, 58.85s/it]
233
  95%|█████████▍| 279/295 [7:57:07<51:43, 193.95s/it]
234
  95%|█████████▍| 280/295 [8:05:08<1:10:02, 280.13s/it]
235
  95%|█████████▌| 281/295 [8:05:29<47:13, 202.36s/it]
236
  96%|█████████▌| 282/295 [8:14:03<1:04:06, 295.91s/it]
237
  96%|█████████▌| 283/295 [8:22:58<1:13:30, 367.52s/it]
238
  96%|█████████▋| 284/295 [8:23:22<48:30, 264.61s/it]
239
  97%|████████��▋| 285/295 [8:23:37<31:37, 189.74s/it]
240
  97%|█████████▋| 286/295 [8:23:50<20:29, 136.59s/it]
241
  97%|█████████▋| 287/295 [8:26:05<18:08, 136.04s/it]
242
  98%|█████████▊| 288/295 [8:26:51<12:43, 109.08s/it]
243
  98%|█████████▊| 289/295 [8:28:15<10:09, 101.64s/it]
244
  98%|█████████▊| 290/295 [8:33:37<13:57, 167.53s/it]
245
  99%|█████████▊| 291/295 [8:37:29<12:27, 186.97s/it]
246
  99%|█████████▉| 292/295 [8:37:59<06:59, 139.95s/it]
247
  99%|█████████▉| 293/295 [8:51:48<11:33, 346.77s/it]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
  0%| | 0/295 [00:00<?, ?it/s]
3
  16%|█▌ | 47/295 [00:20<01:49, 2.27it/s]
4
  16%|█▋ | 48/295 [01:13<08:12, 1.99s/it]
5
  17%|█▋ | 49/295 [01:32<10:52, 2.65s/it]
6
  17%|█▋ | 50/295 [06:04<1:11:02, 17.40s/it]
7
  17%|█▋ | 51/295 [06:13<1:08:07, 16.75s/it]
8
  18%|█▊ | 52/295 [11:04<2:52:01, 42.48s/it]
9
  18%|█▊ | 53/295 [11:16<2:37:00, 38.93s/it]
10
  18%|█▊ | 54/295 [11:36<2:25:23, 36.20s/it]
11
  19%|█▊ | 55/295 [11:55<2:12:53, 33.22s/it]
12
  19%|█▉ | 56/295 [13:39<3:07:25, 47.05s/it]
13
  19%|█▉ | 57/295 [13:51<2:36:08, 39.36s/it]
14
  20%|█▉ | 58/295 [18:23<6:14:53, 94.91s/it]
15
  20%|██ | 59/295 [18:51<5:06:26, 77.91s/it]
16
  20%|██ | 60/295 [20:54<5:51:36, 89.77s/it]
17
  21%|██ | 61/295 [21:20<4:41:51, 72.27s/it]
18
  21%|██ | 62/295 [30:01<12:52:50, 199.01s/it]
19
  21%|██▏ | 63/295 [32:29<11:52:43, 184.33s/it]
20
  22%|██▏ | 64/295 [44:37<21:59:24, 342.71s/it]
21
  22%|██▏ | 65/295 [45:08<16:02:54, 251.20s/it]
22
  22%|██▏ | 66/295 [48:53<15:28:10, 243.19s/it]
23
  23%|██▎ | 67/295 [51:36<13:54:08, 219.51s/it]
24
  23%|██▎ | 68/295 [54:03<12:28:37, 197.87s/it]
25
  23%|██▎ | 69/295 [54:26<9:08:19, 145.57s/it]
26
  24%|██▎ | 70/295 [54:49<6:48:35, 108.96s/it]
27
  24%|██▍ | 71/295 [55:02<5:00:13, 80.42s/it]
28
  24%|██▍ | 72/295 [56:23<4:59:01, 80.46s/it]
29
  25%|██▍ | 73/295 [58:07<5:23:35, 87.46s/it]
30
  25%|██▌ | 74/295 [58:30<4:11:50, 68.37s/it]
31
  25%|██▌ | 75/295 [59:04<3:32:20, 57.91s/it]
32
  26%|██▌ | 76/295 [59:26<2:51:58, 47.12s/it]
33
  26%|██▌ | 77/295 [1:02:37<5:28:07, 90.31s/it]
34
  26%|██▋ | 78/295 [1:03:12<4:26:53, 73.79s/it]
35
  27%|██▋ | 79/295 [1:03:28<3:23:01, 56.40s/it]
36
  27%|██▋ | 80/295 [1:04:16<3:13:32, 54.01s/it]
37
  27%|██▋ | 81/295 [1:05:02<3:04:09, 51.64s/it]
38
  28%|██▊ |b5d293bf-2d0a-43be-8a7b-4b66ba9b6835 already done!
39
+ 849aaee0-866d-4b85-9775-39360e27fa90 already done!
40
+ aa736cb2-7e37-4715-862a-bfc1edefcb06 already done!
41
+ ce536dc7-6296-49d5-86da-49267edb3de8 already done!
42
+ 1dbad365-237b-45e5-acef-e52931b21c07 already done!
43
+ a0f55b7e-5fd7-42cf-8a1b-90afb712a502 already done!
44
+ bfea0427-fae0-452d-9824-16e44dd0be5d already done!
45
+ 7112613f-9315-4da7-b741-1fb18f07f497 already done!
46
+ 954769e4-29ff-48a6-a870-38866a9cd7ad already done!
47
+ 3c21c496-e352-4b71-a3fb-307e134e9fdd already done!
48
+ 8c952699-0c25-453b-92dd-52b0580248db already done!
49
+ 7bd4e6e0-93a0-4717-9666-266a2c29638d already done!
50
+ d94171f5-85c1-4dd5-9230-40187d4daab5 already done!
51
+ 989b038e-d46c-4433-b968-87b58a4c7037 already done!
52
+ 4764e94b-9132-4e65-996c-bc2bc67e17a2 already done!
53
+ 071edc40-b64c-4e94-aeed-d523ed4a2794 already done!
54
+ aeec58e3-fbc9-467c-acda-6c92b45de1ab already done!
55
+ 4fbac7f7-f8f0-40c6-9f73-7279fcc077b1 already done!
56
+ d2218738-2af2-4585-bd1c-af8ad10d7827 already done!
57
+ 245c5620-481a-477c-be6d-07e02073eb4b already done!
58
+ 2a8f7d15-4821-422b-a34d-e7ff2937f2e2 already done!
59
+ 4767e91a-8687-4992-8d6e-f0ddf0043300 already done!
60
+ c43d0f58-9349-4d92-b358-d1a11070b1d1 already done!
61
+ 3be02e64-5a3b-4022-9643-69c0eaf34ac0 already done!
62
+ 1410e2ce-a62c-4a2c-8453-6eb172a58965 already done!
63
+ acc8a39f-06f5-4792-8387-984ea6ae859c already done!
64
+ c507b073-7bf9-40db-8537-de599b6f6565 already done!
65
+ 6d1847fe-d2d2-4a11-80fb-1cf5ff6d965a already done!
66
+ 6b2b8702-0f2a-4dac-bc2f-bfb981b69e28 already done!
67
+ 18b18195-afdb-429e-8250-42d25e882ba9 already done!
68
+ 47e06650-7973-4dd9-a509-a7425fecac19 already done!
69
+ 691b6dff-620e-4aab-8302-3a9045be33da already done!
70
+ 33b0f445-e852-4533-87a2-daa650113a80 already done!
71
+ 4fd05061-02cd-4bf6-9191-02ff8303ca40 already done!
72
+ 2cba50be-6d39-4f53-b9cc-cb520a588443 already done!
73
+ 04f20e56-c4da-4775-93de-71a8ffd9ab48 already done!
74
+ 46cc2fa4-bfb1-4a4a-beba-e157254be154 already done!
75
+ eaa2ec3e-8c2b-47f5-8b63-8d64c6672d0b already done!
76
+ 3b213b67-8a20-4447-9c25-9fdbd3a4aed5 already done!
77
+ 3dda64b1-9a7c-47dc-8f64-c29b608addbe already done!
78
+ 87b2f72d-e899-4700-9b91-61ebe228e2cf already done!
79
+ 7ba244fc-6b1f-4c4a-abea-bef004a9ea95 already done!
80
+ d2addf5b-75c2-41ef-a68e-738229940a0c already done!
81
+ e2e24a61-148a-46b4-b9a2-d164359e3554 already done!
82
+ 9cbede95-3edd-40eb-b9ea-483f85aaee5b already done!
83
+ b5de2666-ed5f-48ef-a278-78016630a53e already done!
84
+ Processing take 678bfebf-6819-4659-8c0f-1bc71438863c unc_basketball_02-24-23_02_7
85
+ Start processing masks
86
+ Start processing Videos
87
+ Processing take 806b80b5-7963-482a-a5b5-82b95bfdd8b3 indiana_bike_01_1
88
+ Start processing masks
89
+ Start processing Videos
90
+ Processing take 6e427eaa-66a3-4eb2-8e2a-9f4ec4f012bf unc_basketball_03-31-23_01_34
91
+ Start processing masks
92
+ Start processing Videos
93
+ Processing take ac5041d2-af23-4b3c-9150-247142ade9fe georgiatech_cooking_03_01_4
94
+ Start processing masks
95
+ Start processing Videos
96
+ Processing take f36be1f1-491e-4d78-9ce6-d00c4590868b sfu_basketball_01_16
97
+ Start processing masks
98
+ Start processing Videos
99
+ Processing take 632755de-f080-4057-8626-6c402a6129c9 indiana_cooking_07_2
100
+ Start processing masks
101
+ Start processing Videos
102
+ Processing take 506a2aab-775c-435c-8006-918d8fdd997a sfu_basketball_01_19
103
+ Start processing masks
104
+ Start processing Videos
105
+ Processing take 7d83d5fb-1039-444c-83fb-bcc2f4a7dcf2 sfu_basketball_01_4
106
+ Start processing masks
107
+ Start processing Videos
108
+ Processing take efa3ae42-f12a-45d6-8c02-93c9b77e9809 uniandes_basketball_003_53
109
+ Start processing masks
110
+ Start processing Videos
111
+ Processing take abfb0e8e-4351-4086-b7ca-f84785d768d0 georgiatech_covid_17_2
112
+ Start processing masks
113
+ Start processing Videos
114
+ Processing take ea6a008f-c171-43e0-97fa-647658352f77 uniandes_basketball_001_19
115
+ Start processing masks
116
+ Start processing Videos
117
+ Processing take 8192f44c-6159-473e-9885-704e7975830c upenn_0711_Cooking_5_5
118
+ Start processing masks
119
+ Start processing Videos
120
+ Processing take 215844c3-63d3-4c8c-86f7-aeff2cf79764 uniandes_basketball_001_17
121
+ Start processing masks
122
+ Start processing Videos
123
+ Processing take 42b14a01-28c8-42a5-8981-b8a026f8dc18 iiith_cooking_36_1
124
+ Start processing masks
125
+ Start processing Videos
126
+ Processing take d2d758c8-ca3c-48f3-bebd-cef5e2a6d5b7 nus_cpr_01_1
127
+ Start processing masks
128
+ Start processing Videos
129
+ Processing take c083db28-d790-4602-915d-d7e5df588ef6 indiana_cooking_17_4
130
+ Start processing masks
131
+ Start processing Videos
132
+ Processing take d04754aa-9310-43b2-9a10-07019d498abe fair_cooking_09_4
133
+ Start processing masks
134
+ Start processing Videos
135
+ Processing take decfd1c6-c12d-4b22-adcf-afe640485ec5 minnesota_cooking_040_4
136
+ Start processing masks
137
+ Start processing Videos
138
+ Processing take 667851b8-c0b6-4073-94ae-07efe816234c indiana_bike_11_13
139
+ Start processing masks
140
+ Start processing Videos
141
+ Processing take 0aebd388-55a4-4425-a9ee-f09b64d94a00 uniandes_cooking_004_4
142
+ Start processing masks
143
+ Start processing Videos
144
+ Processing take 7dafc952-ef17-4105-a2b4-e2da46b9d0a4 upenn_0710_Violin_1_2
145
+ Start processing masks
146
+ Start processing Videos
147
+ Processing take 69cd4cbf-f1f1-4b92-ae7d-85d85e144554 georgiatech_covid_11_9
148
+ Start processing masks
149
+ Start processing Videos
150
+ Processing take bf0a2ea8-b7be-4e55-aab9-4c9e222a4568 iiith_cooking_63_6
151
+ Start processing masks
152
+ Start processing Videos
153
+ Processing take aa6c180d-b00f-4f23-b800-8c93eade3eec iiith_cooking_68_4
154
+ Start processing masks
155
+ Start processing Videos
156
+ Processing take 80523ee9-f498-4102-85fa-362ae8150d70 sfu_basketball_10_7
157
+ Start processing masks
158
+ Start processing Videos
159
+ Processing take 1c7e5c46-d4cf-4ba5-9b4c-03379881c2a1 nus_cooking_09_3
160
+ Start processing masks
161
+ Start processing Videos
162
+ Processing take 0f6bce99-6334-4f0a-b466-59808c1661ba iiith_cooking_53_2
163
+ Start processing masks
164
+ Start processing Videos
165
+ Processing take 78727816-4b9b-4616-97ea-46cfe0ecbe7a unc_basketball_02-24-23_02_8
166
+ Start processing masks
167
+ Start processing Videos
168
+ Processing take 7c1e3829-4687-4f8e-b254-1a186fe05ecb iiith_cooking_54_2
169
+ Start processing masks
170
+ Start processing Videos
171
+ Processing take ea7225fd-0a63-4f21-aae6-7651e4d7d538 unc_basketball_03-16-23_01_2
172
+ Start processing masks
173
+ Start processing Videos
174
+ Processing take ad8ef724-84cd-403a-934d-9690f7cb96b8 indiana_bike_08_3
175
+ Start processing masks
176
+ Start processing Videos
177
+ Processing take 6245b4c7-b1e5-4118-ab4f-ee0bbd613592 indiana_bike_11_3
178
+ Start processing masks
179
+ Start processing Videos
180
+ Processing take 961e4bc4-8a41-4f0c-ba12-bc198b9b15f2 iiith_cooking_67_4
181
+ Start processing masks
182
+ Start processing Videos
183
+ Processing take c68f8dd1-3fea-49e6-934b-7ed7a6b12aeb iiith_cooking_39_3
184
+ Start processing masks
185
+ Start processing Videos
186
+ Processing take 0a3868ef-fdba-4aba-bc02-5028d1ed26f4 cmu_bike10_4
187
+ Start processing masks
188
+ Start processing Videos
189
+ Processing take 916d656b-c2a0-4147-bd73-bc4050285591 georgiatech_cooking_03_05_4
190
+ Start processing masks
191
+ Start processing Videos
192
+ Processing take 96baac26-c261-4836-81c7-fae46778f91a iiith_cooking_129_2
193
+ Start processing masks
194
+ Start processing Videos
195
+ Processing take 5e71014b-9709-4bc0-b0e7-3402be4a1f5a uniandes_basketball_004_20
196
+ Start processing masks
197
+ Start processing Videos
198
+ Processing take 0df55687-74be-4dbf-aebe-fe0951b17ecf upenn_0710_Guitar_1_6
199
+ Start processing masks
200
+ Start processing Videos
201
+ Processing take 14216890-51bb-4300-8893-bf29a39b69b9 iiith_soccer_008_5
202
+ Start processing masks
203
+ Start processing Videos
204
+ Processing take 20161581-ec53-4508-a21c-328ed66b78f9 indiana_bike_08_8
205
+ Start processing masks
206
+ Start processing Videos
207
+ Processing take 563d1c9a-a639-4027-939c-7bc6b792b6b2 unc_basketball_02-24-23_01_31
208
+ Start processing masks
209
+ Start processing Videos
210
+ Processing take 90c0f824-6970-46fe-bb24-053fed422366 utokyo_cpr_2005_24_2
211
+ Start processing masks
212
+ Start processing Videos
213
+ Processing take 231d228c-352f-45d7-a395-3af1f69899a4 unc_basketball_03-31-23_01_25
214
+ Start processing masks
215
+ Start processing Videos
216
+ Processing take cfac1e14-8ed8-4143-b69c-e1399ee06914 iiith_cooking_63_4
217
+ Start processing masks
218
+ Start processing Videos
219
+ Processing take c24336fd-f974-42c6-82c8-e20e5054ab8f georgiatech_covid_15_4
220
+ Start processing masks
221
+ Start processing Videos
222
+ Processing take 0bacb5bb-591d-4756-a2cf-ed90793e65bb iiith_cooking_48_2
223
+ Start processing masks
224
+ Start processing Videos
225
+ Processing take d8452234-3ca0-483d-9077-9c1ec8a59668 unc_basketball_03-31-23_01_24
226
+ Start processing masks
227
+ 82/295 [1:16:21<14:11:13, 239.78s/it]
228
  28%|██▊ | 83/295 [1:17:27<11:02:40, 187.55s/it]
229
  28%|██▊ | 84/295 [1:17:45<8:00:17, 136.58s/it]
230
  29%|██▉ | 85/295 [1:19:15<7:09:07, 122.61s/it]
231
  29%|██▉ | 86/295 [1:20:35<6:23:19, 110.04s/it]
232
  29%|██▉ | 87/295 [1:21:13<5:06:20, 88.37s/it]
233
  30%|██▉ | 88/295 [1:21:31<3:52:23, 67.36s/it]
234
  30%|███ | 89/295 [1:22:04<3:15:47, 57.03s/it]
235
  31%|███ | 90/295 [1:22:34<2:47:04, 48.90s/it]
236
  31%|███ | 91/295 [1:23:11<2:33:26, 45.13s/it]
237
  31%|███ | 92/295 [1:24:15<2:52:23, 50.95s/it]
238
  32%|███▏ | 93/295 [1:26:24<4:10:28, 74.40s/it]
239
  32%|███▏ | 94/295 [1:26:36<3:06:40, 55.72s/it]
240
  32%|███▏ | 95/295 [1:27:46<3:19:58, 59.99s/it]
241
  33%|███▎ | 96/295 [1:30:08<4:40:09, 84.47s/it]
242
  33%|███▎ | 97/295 [1:34:04<7:08:41, 129.91s/it]
243
  33%|███▎ | 98/295 [1:34:23<5:17:24, 96.67s/it]
244
  34%|███▎ | 99/295 [1:37:51<7:05:15, 130.18s/it]
245
  34%|███▍ | 100/295 [1:46:21<13:13:17, 244.09s/it]
246
  34%|███▍ | 101/295 [1:49:12<11:57:51, 222.02s/it]
247
  35%|███▍ | 102/295 [1:49:25<8:32:38, 159.37s/it]
248
  35%|███▍ | 103/295 [1:49:33<6:04:40, 113.96s/it]
249
  35%|███▌ | 104/295 [1:57:29<11:48:26, 222.55s/it]
250
  36%|███▌ | 105/295 [1:58:16<8:58:20, 170.00s/it]
251
  36%|███▌ | 106/295 [1:58:52<6:48:40, 129.74s/it]
252
  36%|███▋ | 107/295 [1:59:27<5:17:50, 101.44s/it]
253
  37%|███▋ | 108/295 [1:59:50<4:02:46, 77.89s/it]
254
  37%|███▋ | 109/295 [2:01:13<4:05:58, 79.35s/it]
255
  37%|███▋ | 110/295 [2:01:32<3:08:42, 61.20s/it]
256
  38%|███▊ | 111/295 [2:04:41<5:05:31, 99.63s/it]
257
  38%|███▊ | 112/295 [2:04:56<3:46:28, 74.25s/it]
258
  38%|███▊ | 113/295 [2:08:51<6:10:51, 122.26s/it]
259
  39%|███▊ | 114/295 [2:09:42<5:04:37, 100.98s/it]
260
  39%|███▉ | 115/295 [2:11:31<5:10:34, 103.52s/it]
261
  39%|███▉ | 116/295 [2:11:41<3:44:49, 75.36s/it]
262
  40%|███▉ | 117/295 [2:13:06<3:51:53, 78.17s/it]
263
  40%|████ | 118/295 [2:13:22<2:55:22, 59.45s/it]
264
  40%|████ | 119/295 [2:13:57<2:33:26, 52.31s/it]
265
  41%|████ | 120/295 [2:15:57<3:31:54, 72.65s/it]
266
  41%|████ | 121/295 [2:17:01<3:23:06, 70.04s/it]
267
  41%|████▏ | 122/295 [2:19:37<4:35:38, 95.60s/it]
268
  42%|████▏ | 123/295 [2:23:44<6:44:49, 141.22s/it]
269
  42%|████▏ | 124/295 [2:30:53<10:48:13, 227.45s/it]
270
  42%|████▏ | 125/295 [2:31:22<7:55:37, 167.87s/it]
271
  43%|████▎ | 126/295 [2:32:56<6:50:40, 145.80s/it]
272
  43%|████▎ | 127/295 [2:33:01<4:50:20, 103.69s/it]
273
  43%|████▎ | 128/295 [2:33:39<3:53:10, 83.78s/it]
274
  44%|████▎ | 129/295 [2:38:51<7:01:41, 152.42s/it]
275
  44%|████▍ | 130/295 [2:52:27<16:06:16, 351.38s/it]
276
  44%|████▍ | 131/295 [2:53:42<12:13:28, 268.34s/it]
277
  45%|████▍ | 132/295 [2:54:50<9:25:51, 208.29s/it]
278
  45%|████▌ | 133/295 [3:00:00<10:45:10, 238.95s/it]
279
  45%|████▌ | 134/295 [3:00:31<7:54:01, 176.65s/it]
280
  46%|████▌ | 135/295 [3:02:25<7:00:29, 157.68s/it]
281
  46%|████▌ | 136/295 [3:04:34<6:35:13, 149.14s/it]
282
  46%|████▋ | 137/295 [3:05:09<5:02:35, 114.91s/it]
283
  47%|████▋ | 138/295 [3:05:40<3:54:45, 89.71s/it]
284
  47%|████▋ | 139/295 [3:06:06<3:03:37, 70.63s/it]
285
  47%|████▋ | 140/295 [3:06:45<2:37:49, 61.09s/it]
286
  48%|████▊ | 141/295 [3:08:49<3:25:19, 80.00s/it]
287
  48%|████▊ | 142/295 [3:09:48<3:07:53, 73.68s/it]
288
  48%|████▊ | 143/295 [3:10:09<2:26:54, 57.99s/it]
289
  49%|████▉ | 144/295 [3:14:17<4:48:46, 114.74s/it]
290
  49%|████▉ | 145/295 [3:16:20<4:53:24, 117.36s/it]
291
  49%|████▉ | 146/295 [3:16:31<3:31:50, 85.31s/it]
292
  50%|████▉ Start processing Videos
293
+ Processing take 83b0fc4f-9a36-4dd7-9495-a68c9f82defe unc_basketball_02-24-23_01_33
294
+ Start processing masks
295
+ Start processing Videos
296
+ Processing take 8e3c3065-f05d-4ce2-af8e-f6bbd58d4383 georgiatech_covid_08_10
297
+ Start processing masks
298
+ Start processing Videos
299
+ Processing take 86d8d4ac-a4b1-4574-8979-0457af8c34a6 nus_cooking_15_3
300
+ Start processing masks
301
+ Start processing Videos
302
+ Processing take 8b1d8ba4-1ce1-41f3-ab9f-483567e05cd8 unc_basketball_03-31-23_01_37
303
+ Start processing masks
304
+ Start processing Videos
305
+ Processing take 70f729ca-b1a2-428f-875c-edbbd988a4b5 upenn_0722_Guitar_2_4
306
+ Start processing masks
307
+ Start processing Videos
308
+ Processing take 0b82763e-b9ee-40e5-8dd5-b8da7e862662 georgiatech_cooking_03_03_4
309
+ Start processing masks
310
+ Start processing Videos
311
+ Processing take f06d7f9b-0da8-4406-b3d3-06cd70de0e0f nus_cooking_12_4
312
+ Start processing masks
313
+ Start processing Videos
314
+ Processing take fc9da694-2604-4bd7-a1ac-215ace732e85 unc_basketball_03-31-23_01_32
315
+ Start processing masks
316
+ Start processing Videos
317
+ Processing take e287f510-8de4-40d7-b127-4f793e3d46ac uniandes_basketball_004_19
318
+ Start processing masks
319
+ Start processing Videos
320
+ Processing take 97e4e710-7348-4e79-b80b-244a6b64ebdd georgiatech_cooking_03_02_4
321
+ Start processing masks
322
+ Start processing Videos
323
+ Processing take 7b839fc9-8b7c-47f1-b55e-2247dfd8eb41 nus_covidtest_24_2
324
+ Start processing masks
325
+ Start processing Videos
326
+ Processing take cec24cad-0c95-49a2-bdd3-5635e4b88149 iiith_cooking_67_6
327
+ Start processing masks
328
+ Start processing Videos
329
+ Processing take 3b86adc3-0a22-4d29-82a9-e02c90471f82 uniandes_basketball_004_34
330
+ Start processing masks
331
+ Start processing Videos
332
+ Processing take 56acc1be-a6cc-479c-9ba1-ee49fcf71f8b nus_cpr_23_2
333
+ Start processing masks
334
+ Start processing Videos
335
+ Processing take 069048a8-3eff-4841-9f81-a3422edea6e3 upenn_0701_Piano_1_7
336
+ Start processing masks
337
+ Start processing Videos
338
+ Processing take 02def476-33eb-4895-a448-a4398d44e16b iiith_cooking_54_4
339
+ Start processing masks
340
+ Start processing Videos
341
+ Processing take 661003f4-0223-4cb5-bb3f-d92ca5d8354d upenn_0719_Piano_1_4
342
+ Start processing masks
343
+ Start processing Videos
344
+ Processing take 4168725e-870e-4e1c-be99-1e1a6193d094 uniandes_basketball_001_40
345
+ Start processing masks
346
+ Start processing Videos
347
+ Processing take 8cd9020c-eaba-402f-87b5-f7c5422a49b4 iiith_cooking_46_2
348
+ Start processing masks
349
+ Start processing Videos
350
+ Processing take f3287a55-a424-4011-a38e-c73700829576 iiith_cooking_35_1
351
+ Start processing masks
352
+ Start processing Videos
353
+ Processing take c792ef5b-1479-4336-b57c-6d4ee1e4d336 iiith_cooking_38_1
354
+ Start processing masks
355
+ Start processing Videos
356
+ Processing take 2def272d-f803-4feb-95a9-63409b333fd2 sfu_basketball_01_20
357
+ Start processing masks
358
+ Start processing Videos
359
+ Processing take 4cd8094f-4300-469d-9523-3ee0f43d1259 upenn_0719_Piano_1_3
360
+ Start processing masks
361
+ Start processing Videos
362
+ Processing take 66824dc1-5e9d-4997-a2d6-482d3c920b5e nus_cpr_06_2
363
+ Start processing masks
364
+ Start processing Videos
365
+ Processing take 2227ff92-8645-479e-a099-bd8025080e62 unc_basketball_02-24-23_01_15
366
+ Start processing masks
367
+ Start processing Videos
368
+ Processing take 7c187ae5-b793-42c2-abca-54e1d0822a32 indiana_bike_11_7
369
+ Start processing masks
370
+ Start processing Videos
371
+ Processing take 73736c6c-2654-4ef8-939d-9c4a23eed5d7 upenn_0715_Piano_1_2
372
+ Start processing masks
373
+ Start processing Videos
374
+ Processing take 22568049-4087-4ca2-8857-a834a9fc7f28 upenn_0710_Violin_1_5
375
+ Start processing masks
376
+ Start processing Videos
377
+ Processing take b0589218-e06e-4767-9bb4-1ef59f935bdc indiana_cooking_24_2
378
+ Start processing masks
379
+ Start processing Videos
380
+ Processing take 45450839-a979-4c26-8b35-9111bafa5731 georgiatech_cooking_03_05_2
381
+ Start processing masks
382
+ Start processing Videos
383
+ Processing take 0d172781-f22a-476f-b0c6-6f0ae6b928c9 unc_basketball_03-16-23_01_3
384
+ Start processing masks
385
+ Start processing Videos
386
+ Processing take 8f379213-9adf-40d8-9482-3eed6b03b83b georgiatech_covid_08_4
387
+ Start processing masks
388
+ Start processing Videos
389
+ Processing take 9de15300-fbcb-4838-be91-6b646be2646e sfu_basketball_01_8
390
+ Start processing masks
391
+ Start processing Videos
392
+ Processing take 10c9cece-4f33-4fa9-8c1a-5974d16c1c0a indiana_bike_11_9
393
+ Start processing masks
394
+ Start processing Videos
395
+ Processing take 6afade94-d8e7-4b29-be3e-9373d0d2d634 indiana_cooking_25_3
396
+ Start processing masks
397
+ Start processing Videos
398
+ Processing take 3745bd24-ceb7-4760-98ea-68b54de2141c upenn_0713_Cooking_2_2
399
+ Start processing masks
400
+ Start processing Videos
401
+ Processing take 66f0c633-292e-44b2-ad78-7ec57a8507e6 indiana_bike_14_8
402
+ Start processing masks
403
+ Start processing Videos
404
+ Processing take f0ebc587-3687-494d-a707-2a5d52b64719 upenn_0717_Piano_2_2
405
+ Start processing masks
406
+ Start processing Videos
407
+ Processing take 36dcdc61-378f-4087-a43f-659e58eb6440 georgiatech_cooking_05_01_2
408
+ Start processing masks
409
+ Start processing Videos
410
+ Processing take 5b982afa-3c1b-49e1-9508-77d0f396c3f6 uniandes_basketball_001_18
411
+ Start processing masks
412
+ Start processing Videos
413
+ Processing take 77f71fa8-7ddc-430a-8f66-4af710903388 upenn_0717_Piano_2_5
414
+ Start processing masks
415
+ Start processing Videos
416
+ Processing take cada8157-091c-491d-96b8-9da4dbf1c973 upenn_0701_Piano_1_4
417
+ Start processing masks
418
+ Start processing Videos
419
+ Processing take b1b83ddb-38ca-48d2-9142-dbc8240c2067 nus_cpr_23_1
420
+ Start processing masks
421
+ Start processing Videos
422
+ Processing take 92c76cdf-8b91-4a05-806d-121429534d8f uniandes_basketball_001_42
423
+ Start processing masks
424
+ Start processing Videos
425
+ Processing take 4403cf98-cd76-4233-b92f-585665ccbe7e unc_basketball_03-31-23_01_28
426
+ Start processing masks
427
+ Start processing Videos
428
+ Processing take 00cad7aa-fd92-486d-b309-59d03fa51dfa georgiatech_covid_15_10
429
+ Start processing masks
430
+ Start processing Videos
431
+ Processing take 1f541cce-f10b-4cd3-814f-8e2d527df8f5 iiith_cooking_33_1
432
+ Start processing masks
433
+ Start processing Videos
434
+ Processing take 464c4a51-a74f-4ff4-9ece-8d38b9c22bfc upenn_0722_Guitar_2_3
435
+ Start processing masks
436
+ Start processing Videos
437
+ Processing take a20923c1-a2d6-40ce-b7ce-f23ce249f460 unc_basketball_03-16-23_01_4
438
+ Start processing masks
439
+ Start processing Videos
440
+ Processing take 42efe6bf-aeff-4777-a189-d2872be008b5 sfu_cooking_012_1
441
+ Start processing masks
442
+ Start processing Videos
443
+ Processing take 01ad22c9-6626-46cf-b5e2-a316faacfb99 georgiatech_covid_08_12
444
+ Start processing masks
445
+ Start processing Videos
446
+ Processing take 6f0b44c4-0067-4677-a775-53181d9b0457 uniandes_basketball_004_10
447
+ Start processing masks
448
+ Start processing Videos
449
+ Processing take 40dc3bbc-c8c4-4e6d-a2a5-32a357f3c291 nus_covidtest_23_2
450
+ Start processing masks
451
+ Start processing Videos
452
+ Processing take b2fea2b1-2404-4cf2-9be3-79879011cba6 sfu_cooking_004_1
453
+ Start processing masks
454
+ Start processing Videos
455
+ Processing take e71c943b-75c0-4055-92fc-115d1c8f6d8a georgiatech_bike_12_10
456
+ Start processing masks
457
+ Start processing Videos
458
+ Processing take 073bdef7-e4cb-49ea-b006-b3d6f53f34b3 iiith_cooking_68_6
459
+ Start processing masks
460
+ Start processing Videos
461
+ Processing take fe0f7a34-97d0-4817-b608-210d2aa0bce9 unc_basketball_03-31-23_01_21
462
+ Start processing masks
463
+ Start processing Videos
464
+ Processing take d67e303e-9309-473f-8857-1cc3ad78983b indiana_cooking_06_2
465
+ Start processing masks
466
+ Start processing Videos
467
+ Processing take cef7bc84-112c-4133-9fa5-2a046c2b903a georgiatech_cooking_03_04_2
468
+ Start processing masks
469
+ Start processing Videos
470
+ Processing take 2f820d40-743f-49a8-b289-55276960970e georgiatech_cooking_03_01_2
471
+ Start processing masks
472
+ Start processing Videos
473
+ Processing take fa08ac41-74ca-42d3-80e6-6728cc3c1854 uniandes_basketball_004_29
474
+ Start processing masks
475
+ Start processing Videos
476
+ Processing take ee1020b8-2dca-4ea2-92de-5f6a56ea332f upenn_0630_Cooking_2_2
477
+ Start processing masks
478
+ Start processing Videos
479
+ Processing take 97ecbdcf-f044-4d75-9b46-b7ba0f35ef19 iiith_cooking_37_1
480
+ Start processing masks
481
+ Start processing Videos
482
+ Processing take 262871b5-eee7-4e65-9532-9a219b5aa52b iiith_cooking_34_1
483
+ Start processing masks
484
+ Start processing Videos
485
+ Processing take 32805896-b265-4445-8992-ab30e98415f8 indiana_cooking_18_3
486
+ Start processing masks
487
+ Start processing Videos
488
+ Processing take 5ccd281c-9ede-49d8-9f61-f8f228565472 georgiatech_covid_11_13
489
+ Start processing masks
490
+ Start processing Videos
491
+ Processing take 4773786c-6320-4a24-81e9-d735dbf9476b minnesota_cooking_040_6
492
+ | 147/295 [3:17:20<3:03:44, 74.49s/it]
493
  50%|█████ | 148/295 [3:24:08<7:07:26, 174.47s/it]
494
  51%|█████ | 149/295 [3:26:53<6:57:55, 171.75s/it]
495
  51%|█████ | 150/295 [3:27:41<5:25:39, 134.76s/it]
496
  51%|█████ | 151/295 [3:27:51<3:52:56, 97.06s/it]
497
  52%|█████▏ | 152/295 [3:34:38<7:33:11, 190.15s/it]
498
  52%|█████▏ | 153/295 [3:42:20<10:43:08, 271.75s/it]
499
  52%|█████▏ | 154/295 [3:46:57<10:42:08, 273.25s/it]
500
  53%|█████▎ | 155/295 [3:47:21<7:43:16, 198.55s/it]
501
  53%|█████▎ | 156/295 [3:53:28<9:37:08, 249.13s/it]
502
  53%|█████▎ | 157/295 [3:54:20<7:16:30, 189.78s/it]
503
  54%|█████▎ | 158/295 [3:55:51<6:05:59, 160.29s/it]
504
  54%|█████▍ | 159/295 [4:11:54<15:08:54, 400.99s/it]
505
  54%|█████▍ | 160/295 [4:13:22<11:30:59, 307.10s/it]
506
  55%|█████▍ | 161/295 [4:16:59<10:25:47, 280.21s/it]
507
  55%|█████▍ | 162/295 [4:17:47<7:46:19, 210.38s/it]
508
  55%|█████▌ | 163/295 [4:20:06<6:56:15, 189.21s/it]
509
  56%|█████▌ | 164/295 [4:21:34<5:46:15, 158.60s/it]
510
  56%|█████▌ | 165/295 [4:21:58<4:16:19, 118.31s/it]
511
  56%|█████▋ | 166/295 [4:22:20<3:12:33, 89.56s/it]
512
  57%|█████▋ | 167/295 [4:22:34<2:22:48, 66.94s/it]
513
  57%|█████▋ | 168/295 [4:27:10<4:34:24, 129.64s/it]
514
  57%|█████▋ | 169/295 [4:29:21<4:33:08, 130.07s/it]
515
  58%|█████▊ | 170/295 [4:32:24<5:03:38, 145.75s/it]
516
  58%|█████▊ | 171/295 [4:33:47<4:22:23, 126.96s/it]
517
  58%|█████▊ | 172/295 [4:35:11<3:54:00, 114.15s/it]
518
  59%|█████▊ | 173/295 [4:39:49<5:32:01, 163.29s/it]
519
  59%|█████▉ | 174/295 [4:43:05<5:49:15, 173.18s/it]
520
  59%|█████▉ | 175/295 [4:45:57<5:45:34, 172.79s/it]
521
  60%|█████▉ | 176/295 [4:46:11<4:07:53, 124.99s/it]
522
  60%|██████ | 177/295 [4:46:21<2:57:50, 90.43s/it]
523
  60%|██████ | 178/295 [5:00:30<10:20:31, 318.22s/it]
524
  61%|██████ | 179/295 [5:00:38<7:14:58, 224.99s/it]
525
  61%|██████ | 180/295 [5:03:41<6:47:07, 212.41s/it]
526
  61%|██████▏ | 181/295 [5:03:57<4:52:01, 153.70s/it]
527
  62%|██████▏ | 182/295 [5:05:09<4:03:00, 129.03s/it]
528
  62%|██████▏ | 183/295 [5:05:16<2:52:23, 92.35s/it]
529
  62%|██████▏ | 184/295 [5:05:22<2:03:21, 66.68s/it]
530
  63%|██████▎ | 185/295 [5:09:10<3:30:42, 114.93s/it]
531
  63%|██████▎ | 186/295 [5:10:23<3:05:53, 102.32s/it]
532
  63%|██████▎ | 187/295 [5:10:49<2:23:13, 79.57s/it]
533
  64%|██████▎ | 188/295 [5:14:11<3:27:03, 116.11s/it]
534
  64%|██████▍ | 189/295 [5:14:24<2:30:41, 85.30s/it]
535
  64%|██████▍ | 190/295 [5:15:25<2:16:31, 78.01s/it]
536
  65%|██████▍ | 191/295 [5:15:33<1:38:33, 56.86s/it]
537
  65%|██████▌ | 192/295 [5:15:40<1:12:02, 41.96s/it]
538
  65%|██████▌ | 193/295 [5:15:45<52:40, 30.99s/it]
539
  66%|██████▌ | 194/295 [5:16:03<45:16, 26.89s/it]
540
  66%|██████▌ | 195/295 [5:16:30<44:54, 26.94s/it]
541
  66%|██████▋ | 196/295 [5:17:12<52:17, 31.69s/it]
542
  67%|██████▋ | 197/295 [5:19:22<1:39:47, 61.10s/it]
543
  67%|██████▋ | 198/295 [5:20:16<1:35:27, 59.04s/it]
544
  67%|██████▋ | 199/295 [5:20:24<1:09:44, 43.59s/it]
545
  68%|██████▊ | 200/295 [5:20:32<51:57, 32.81s/it]
546
  68%|██████▊ | 201/295 [5:20:38<38:56, 24.86s/it]
547
  68%|██████▊ | 202/295 [5:20:57<35:43, 23.05s/it]
548
  69%|██████▉ | 203/295 [5:21:48<48:12, 31.44s/it]
549
  69%|██████▉ | 204/295 [5:23:02<1:07:20, 44.40s/it]
550
  69%|██████▉ | 205/295 [5:23:11<50:43, 33.81s/it]
551
  70%|██████▉ | 206/295 [5:23:17<37:44, 25.44s/it]
552
  70%|███████ | 207/295 [5:25:38<1:27:51, 59.90s/it]
553
  71%|███████ | 208/295 [5:26:19<1:18:45, 54.32s/it]
554
  71%|███████ | 209/295 [5:27:40<1:29:24, 62.38s/it]
555
  71%|███████ | 210/295 [5:27:50<1:05:57, 46.55s/it]
556
  72%|███████▏ | 211/295 [5:34:22<3:30:10, 150.12s/it]
557
  72%|███████▏ | 212/295 [5:35:47<3:00:59, 130.84s/it]
558
  72%|███████▏ | 213/295 [5:36:51<2:31:05, 110.56s/it]
559
  73%|███████▎ | 214/295 [5:41:41<3:42:12, 164.60s/it]
560
  73%|███████▎ | 215/295 [5:41:59<2:40:35, 120.44s/it]
561
  73%|███████▎ | 216/295 [5:42:29<2:03:07, 93.51s/it]
562
  74%|███████▎ | 217/295 [5:43:28<1:47:56, 83.03s/it]
563
  74%|███████▍ | 218/295 [5:44:18<1:33:59, 73.25s/it]
564
  74%|███████▍ | 219/295 [5:44:37<1:12:02, 56.88s/it]
565
  75%|███████▍ | 220/295 [5:44:57<57:04, 45.66s/it]
566
  75%|███████▍ | 221/295 [5:45:39<55:04, 44.66s/it]
567
  75%|███████▌ | 222/295 [5:45:56<44:17, 36Start processing masks
568
+ Start processing Videos
569
+ Processing take a3b39b50-809e-45bd-87d9-de565461645b iiith_cooking_69_2
570
+ Start processing masks
571
+ Start processing Videos
572
+ Processing take 91d27f06-a756-45d4-9547-673a9ef0a05f fair_cooking_09_6
573
+ Start processing masks
574
+ Start processing Videos
575
+ Processing take 79fb81e5-7025-46c7-9e0c-e9d97658929b iiith_cooking_39_1
576
+ Start processing masks
577
+ Start processing Videos
578
+ Processing take afe5310d-200e-4444-ad2d-9fb34fee5230 unc_basketball_03-16-23_01_8
579
+ Start processing masks
580
+ Start processing Videos
581
+ Processing take cdd0ce74-4698-4394-aaf2-00e159577d3f unc_basketball_02-24-23_01_13
582
+ Start processing masks
583
+ Start processing Videos
584
+ Processing take 59cb65bb-7d1e-4bd9-9468-a76658b4b50f unc_basketball_03-31-23_01_35
585
+ Start processing masks
586
+ Start processing Videos
587
+ Processing take e83b0f8c-e9e5-4b38-ad3a-3906a3bb296a indiana_cooking_19_2
588
+ Start processing masks
589
+ Start processing Videos
590
+ Processing take 92cd0d7e-2465-46fa-be63-30cfadc347e3 upenn_0630_Cooking_4_3
591
+ Start processing masks
592
+ Start processing Videos
593
+ Processing take cfff9bb7-a95c-446f-84f6-27fa997b4ce2 upenn_0722_Guitar_2_6
594
+ Start processing masks
595
+ Start processing Videos
596
+ Processing take 3bc38ebc-8109-4b4d-b43c-aad3bd0dfed2 iiith_soccer_008_2
597
+ Start processing masks
598
+ Start processing Videos
599
+ Processing take ac651c92-0938-4258-8c22-a8d1e881af61 iiith_cooking_113_2
600
+ Start processing masks
601
+ Start processing Videos
602
+ Processing take 6a1dac0d-5945-4a81-9259-ce49de3ecf79 upenn_0630_Cooking_4_4
603
+ Start processing masks
604
+ Start processing Videos
605
+ Processing take 00a6dd13-d5b0-4743-b252-ed61e61f1d49 georgiatech_cooking_08_01_4
606
+ Start processing masks
607
+ Start processing Videos
608
+ Processing take cb55bedd-c5ff-4bbb-83a9-b8287d3bb77c indiana_cooking_17_2
609
+ Start processing masks
610
+ Start processing Videos
611
+ Processing take 45f15f81-ec4e-4db4-b42d-4121a564d485 indiana_bike_11_2
612
+ Start processing masks
613
+ Start processing Videos
614
+ Processing take de5ca2af-8e72-4fa4-92d2-65295781654e uniandes_basketball_003_55
615
+ Start processing masks
616
+ Start processing Videos
617
+ Processing take 0d26fb16-d4ba-4c47-9c32-5f8f052e7396 upenn_0711_Cooking_5_2
618
+ Start processing masks
619
+ Start processing Videos
620
+ Processing take 77814f97-e0c5-40dc-91ff-3e0fc5003d0d unc_basketball_03-31-23_01_27
621
+ Start processing masks
622
+ Start processing Videos
623
+ Processing take e8a5f8a4-d01c-4599-bc3b-980157bf14ed minnesota_cooking_040_2
624
+ Start processing masks
625
+ Start processing Videos
626
+ Processing take b9643892-d3dc-4dba-a18f-b9f8e44cbcb4 sfu_cooking027_2
627
+ Start processing masks
628
+ Start processing Videos
629
+ Processing take 934c8086-19a8-4aac-aae9-c02a912cbf9e nus_cooking_15_5
630
+ Start processing masks
631
+ Start processing Videos
632
+ Processing take c70e2763-0e1b-4c8b-b056-ecbe28831b22 unc_basketball_03-31-23_01_33
633
+ Start processing masks
634
+ Start processing Videos
635
+ Processing take ad9c8e7b-a290-4c64-8c41-972dfc201055 unc_basketball_03-31-23_01_36
636
+ Start processing masks
637
+ Start processing Videos
638
+ Processing take f3a8d0f5-ac34-4732-858a-39162f491f4b uniandes_cooking_003_2
639
+ Start processing masks
640
+ Start processing Videos
641
+ Processing take 8bb82e72-b893-467a-8844-f3a1010548ef upenn_0715_Piano_1_3
642
+ Start processing masks
643
+ Start processing Videos
644
+ Processing take 3cbf69e4-1c29-4515-9a03-67c3526e91e1 georgiatech_covid_08_2
645
+ Start processing masks
646
+ Start processing Videos
647
+ Processing take 2bb3f8db-a6b0-49b8-8c0f-686774acf00a upenn_0710_Violin_1_3
648
+ Start processing masks
649
+ Start processing Videos
650
+ Processing take 4df80aae-3500-463b-884d-63d034e6414f georgiatech_bike_12_8
651
+ Start processing masks
652
+ Start processing Videos
653
+ Processing take dde3ddc3-403e-4935-a7f7-eca575e05b99 upenn_0720_Piano_1_6
654
+ Start processing masks
655
+ Start processing Videos
656
+ Processing take 1bf59cee-8985-4d84-a34f-e7c35e492900 sfu_basketball_10_9
657
+ Start processing masks
658
+ Start processing Videos
659
+ Processing take 9a533209-1d5e-4382-a2f8-c109605845e3 sfu_basketball_10_20
660
+ Start processing masks
661
+ Start processing Videos
662
+ Processing take ef2cad65-06b2-4b1a-8956-c387721d2051 sfu_basketball_01_18
663
+ Start processing masks
664
+ Start processing Videos
665
+ Processing take 0a22a1c1-844c-4f62-8eeb-f16eee62357f nus_cpr_03_1
666
+ Start processing masks
667
+ Start processing Videos
668
+ Processing take 77b1cae6-7e57-47f9-83ae-c68243792d36 utokyo_cpr_2005_27_2
669
+ Start processing masks
670
+ Start processing Videos
671
+ Processing take a4b3be28-cc60-43f9-8158-0e098eb5aa82 indiana_bike_08_5
672
+ Start processing masks
673
+ Start processing Videos
674
+ Processing take 9706857d-4232-4f55-9873-871da2906f3a nus_cooking_12_3
675
+ Start processing masks
676
+ Start processing Videos
677
+ Processing take eb151659-2bf2-4682-899b-73f2ba10d179 upenn_0701_Piano_1_2
678
+ Start processing masks
679
+ Start processing Videos
680
+ Processing take 8162166b-41c8-4b1a-baf2-14df7feddd83 cmu_bike09_2
681
+ Start processing masks
682
+ Start processing Videos
683
+ Processing take ec6885cb-287c-421e-b16d-e63a59c21d80 georgiatech_covid_17_12
684
+ Start processing masks
685
+ Start processing Videos
686
+ Processing take 0e31e520-9d8f-4373-bd95-058d316902ad uniandes_basketball_004_52
687
+ Start processing masks
688
+ Start processing Videos
689
+ Processing take 04d87074-8116-4f09-b6e5-10670c9e772d nus_cpr_03_2
690
+ Start processing masks
691
+ Start processing Videos
692
+ Processing take a759a24a-3447-4554-99df-9dc1b647eb8d nus_cooking_12_5
693
+ Start processing masks
694
+ Start processing Videos
695
+ Processing take 3054ec91-4ea2-4612-8b0e-8f3ba0c6b981 iiith_cooking_37_3
696
+ Start processing masks
697
+ Start processing Videos
698
+ Processing take fea8a839-1976-4457-b8c7-c722e63faea9 sfu_basketball_01_2
699
+ Start processing masks
700
+ Start processing Videos
701
+ Processing take 98895ed3-7fc5-4dc0-ae9b-d808971e9334 sfu_basketball_01_22
702
+ Start processing masks
703
+ Start processing Videos
704
+ Processing take e469c7e2-bcbd-4cf6-97d7-3f3562e5c1a9 georgiatech_covid_11_7
705
+ Start processing masks
706
+ Start processing Videos
707
+ Processing take 3c3266b2-ecb8-4d81-8693-bc2caa4b1409 iiith_cooking_67_2
708
+ Start processing masks
709
+ Start processing Videos
710
+ Processing take f7d5c603-29d6-4800-a4fa-768819f52a84 georgiatech_bike_12_4
711
+ Start processing masks
712
+ Start processing Videos
713
+ Processing take 74593ce4-28eb-42e6-8ee0-02f16e704788 sfu_basketball_01_11
714
+ Start processing masks
715
+ Start processing Videos
716
+ Processing take 3940a14c-f0ae-4636-8f03-52daa071f084 upenn_0710_Guitar_1_5
717
+ Start processing masks
718
+ Start processing Videos
719
+ Processing take 71d1fd0e-6665-4b45-8b2a-3460d36e368a georgiatech_covid_08_8
720
+ Start processing masks
721
+ Start processing Videos
722
+ Processing take ab1786c9-b44c-40e2-8d59-5f7ddf06dceb iiith_cooking_50_4
723
+ Start processing masks
724
+ Start processing Videos
725
+ Processing take b7501cba-7399-4e36-9ee4-38308487395f georgiatech_cooking_12_01_4
726
+ Start processing masks
727
+ Start processing Videos
728
+ Processing take 9357c6f2-9c17-4259-a4bd-7a715e7331e4 sfu_basketball_01_14
729
+ Start processing masks
730
+ Start processing Videos
731
+ Processing take 3ce1d69f-2a22-434d-8902-86ff4acb155b nus_cooking_09_5
732
+ Start processing masks
733
+ Start processing Videos
734
+ Processing take 45cb84f9-a925-43f8-aa7e-0fba6e23a86e nus_covidtest_04_2
735
+ Start processing masks
736
+ Start processing Videos
737
+ Processing take 0822b710-baa5-4b66-b0da-96b72c15f846 iiith_cooking_63_2
738
+ Start processing masks
739
+ Start processing Videos
740
+ Processing take 196a6da7-56bc-443c-ad04-d80a0bbf31fa uniandes_basketball_004_12
741
+ Start processing masks
742
+ Start processing Videos
743
+ Processing take 95fa7feb-562e-4085-bc83-4dd14bd9862b georgiatech_bike_12_2
744
+ Start processing masks
745
+ Start processing Videos
746
+ Processing take 6b93427f-465c-436b-a841-78424da94581 indiana_bike_08_2
747
+ Start processing masks
748
+ Start processing Videos
749
+ Processing take 333e7b03-d350-4bea-b980-f1bd217bd164 indiana_bike_11_11
750
+ Start processing masks
751
+ Start processing Videos
752
+ Processing take 561e7156-f761-4509-a714-e8b2b8e754a4 nus_cooking_09_4
753
+ Start processing masks
754
+ Start processing Videos
755
+ Processing take 6d766fcc-76f7-4942-bb40-1aa9c8b2020b unc_basketball_03-31-23_01_29
756
+ Start processing masks
757
+ Start processing Videos
758
+ Processing take 4c1ce02e-53fd-4b0d-b895-14f5e2fbc78f indiana_bike_14_4
759
+ Start processing masks
760
+ Start processing Videos
761
+ Processing take f807401e-bd24-4d51-a0e3-40d20fd5e670 uniandes_basketball_001_39
762
+ Start processing masks
763
+ Start processing Videos
764
+ Processing take e3cb859e-73ca-4cef-8c08-296bafdb43cd upenn_0710_Guitar_1_3
765
+ Start processing masks
766
+ Start processing Videos
767
+ Processing take ba599750-543d-4b8f-bf65-da170082a25e georgiatech_covid_08_6
768
+ Start processing masks
769
+ Start processing Videos
770
+ .41s/it]
771
  76%|███████▌ | 223/295 [5:48:12<1:19:31, 66.27s/it]
772
  76%|███████▌ | 224/295 [5:48:28<1:00:43, 51.31s/it]
773
  76%|███████▋ | 225/295 [5:49:28<1:02:51, 53.88s/it]
774
  77%|███████▋ | 226/295 [5:49:54<52:04, 45.29s/it]
775
  77%|███████▋ | 227/295 [5:50:50<55:13, 48.73s/it]
776
  77%|███████▋ | 228/295 [5:52:21<1:08:36, 61.44s/it]
777
  78%|███████▊ | 229/295 [5:55:38<1:52:20, 102.13s/it]
778
  78%|███████▊ | 230/295 [5:57:21<1:50:41, 102.17s/it]
779
  78%|███████▊ | 231/295 [5:59:02<1:48:38, 101.85s/it]
780
  79%|███████▊ | 232/295 [5:59:16<1:19:20, 75.56s/it]
781
  79%|███████▉ | 233/295 [5:59:35<1:00:28, 58.52s/it]
782
  79%|███████▉ | 234/295 [6:02:36<1:36:47, 95.20s/it]
783
  80%|███████▉ | 235/295 [6:03:09<1:16:37, 76.62s/it]
784
  80%|████████ | 236/295 [6:04:37<1:18:43, 80.06s/it]
785
  80%|████████ | 237/295 [6:05:28<1:09:04, 71.46s/it]
786
  81%|████████ | 238/295 [6:05:50<53:43, 56.55s/it]
787
  81%|████████ | 239/295 [6:05:58<39:11, 42.00s/it]
788
  81%|████████▏ | 240/295 [6:06:35<37:07, 40.50s/it]
789
  82%|████████▏ | 241/295 [6:07:08<34:21, 38.18s/it]
790
  82%|████████▏ | 242/295 [6:08:27<44:40, 50.57s/it]
791
  82%|████████▏ | 243/295 [6:15:44<2:24:16, 166.47s/it]
792
  83%|████████▎ | 244/295 [6:16:07<1:44:54, 123.42s/it]
793
  83%|████████▎ | 245/295 [6:31:04<4:56:12, 355.45s/it]
794
  83%|████████▎ | 246/295 [6:31:37<3:31:18, 258.74s/it]
795
  84%|████████▎ | 247/295 [6:31:47<2:27:19, 184.15s/it]
796
  84%|████████▍ | 248/295 [6:49:57<5:57:04, 455.85s/it]
797
  84%|████████▍ | 249/295 [6:51:41<4:28:27, 350.16s/it]
798
  85%|████████▍ | 250/295 [6:52:56<3:20:47, 267.73s/it]
799
  85%|████████▌ | 251/295 [6:56:17<3:01:40, 247.74s/it]
800
  85%|████████▌ | 252/295 [7:00:14<2:55:14, 244.53s/it]
801
  86%|████████▌ | 253/295 [7:03:13<2:37:23, 224.85s/it]
802
  86%|████████▌ | 254/295 [7:03:28<1:50:38, 161.92s/it]
803
  86%|████████▋ | 255/295 [7:03:41<1:18:09, 117.25s/it]
804
  87%|████████▋ | 256/295 [7:07:22<1:36:24, 148.33s/it]
805
  87%|████████▋ | 257/295 [7:07:46<1:10:12, 110.86s/it]
806
  87%|████████▋ | 258/295 [7:08:40<57:55, 93.94s/it]
807
  88%|████████▊ | 259/295 [7:08:45<40:25, 67.37s/it]
808
  88%|████████▊ | 260/295 [7:11:59<1:01:21, 105.19s/it]
809
  88%|████████▊ | 261/295 [7:14:28<1:07:05, 118.39s/it]
810
  89%|████████▉ | 262/295 [7:20:04<1:41:06, 183.83s/it]
811
  89%|████████▉ | 263/295 [7:23:14<1:39:01, 185.66s/it]
812
  89%|████████▉ | 264/295 [7:24:05<1:14:55, 145.01s/it]
813
  90%|████████▉ | 265/295 [7:24:22<53:22, 106.77s/it]
814
  90%|█████████ | 266/295 [7:25:27<45:33, 94.25s/it]
815
  91%|█████████ | 267/295 [7:25:36<32:03, 68.71s/it]
816
  91%|█████████ | 268/295 [7:27:18<35:20, 78.55s/it]
817
  91%|█████████ | 269/295 [7:27:53<28:20, 65.40s/it]
818
  92%|█████████▏| 270/295 [7:40:17<1:52:07, 269.12s/it]
819
  92%|█████████▏| 271/295 [7:40:43<1:18:28, 196.18s/it]
820
  92%|█████████▏| 272/295 [7:45:05<1:22:46, 215.92s/it]
821
  93%|█████████▎| 273/295 [7:46:15<1:03:04, 172.04s/it]
822
  93%|█████████▎| 274/295 [7:46:29<43:41, 124.82s/it]
823
  93%|█████████▎| 275/295 [7:46:39<30:07, 90.38s/it]
824
  94%|█████████▎| 276/295 [7:46:49<20:56, 66.13s/it]
825
  94%|█████████▍| 277/295 [7:47:58<20:09, 67.17s/it]
826
  94%|█████████▍| 278/295 [7:48:38<16:40, 58.85s/it]
827
  95%|█████████▍| 279/295 [7:57:07<51:43, 193.95s/it]
828
  95%|█████████▍| 280/295 [8:05:08<1:10:02, 280.13s/it]
829
  95%|█████████▌| 281/295 [8:05:29<47:13, 202.36s/it]
830
  96%|█████████▌| 282/295 [8:14:03<1:04:06, 295.91s/it]
831
  96%|█████████▌| 283/295 [8:22:58<1:13:30, 367.52s/it]
832
  96%|█████████▋| 284/295 [8:23:22<48:30, 264.61s/it]
833
  97%|████████��▋| 285/295 [8:23:37<31:37, 189.74s/it]
834
  97%|█████████▋| 286/295 [8:23:50<20:29, 136.59s/it]
835
  97%|█████████▋| 287/295 [8:26:05<18:08, 136.04s/it]
836
  98%|█████████▊| 288/295 [8:26:51<12:43, 109.08s/it]
837
  98%|█████████▊| 289/295 [8:28:15<10:09, 101.64s/it]
838
  98%|█████████▊| 290/295 [8:33:37<13:57, 167.53s/it]
839
  99%|█████████▊| 291/295 [8:37:29<12:27, 186.97s/it]
840
  99%|█████████▉| 292/295 [8:37:59<06:59, 139.95s/it]
841
  99%|█████████▉| 293/295 [8:51:48<11:33, 346.77s/it]
842
+ Processing take 2f5e3fbf-bd7a-4b11-b75d-ef62aa2f622d georgiatech_cooking_03_01_6
843
+ Start processing masks
844
+ Start processing Videos
845
+ Processing take 72df40a1-9bf5-4e49-86f5-5db56639de05 upenn_0715_Piano_1_5
846
+ Start processing masks
847
+ Start processing Videos
848
+ Processing take 2f6dc326-3689-4190-a8f8-674a5e6d688b upenn_0719_Piano_1_5
849
+ Start processing masks
850
+ Start processing Videos
851
+ Processing take d744484b-0012-4882-8532-14adc4fc0907 uniandes_basketball_001_16
852
+ Start processing masks
853
+ Start processing Videos
854
+ Processing take 6f408dd3-343d-49cc-846b-103660ab5275 georgiatech_bike_12_6
855
+ Start processing masks
856
+ Start processing Videos
857
+ Processing take 41424c96-9d0a-43b0-895c-7383261e6337 upenn_0717_Piano_2_4
858
+ Start processing masks
859
+ Start processing Videos
860
+ Processing take c2ebdf8c-3990-4d02-9760-41dc1f131419 indiana_bike_11_8
861
+ Start processing masks
862
+ Start processing Videos
863
+ Processing take ce433b23-9913-4265-a1ed-7a0c24e54384 sfu_cooking_012_3
864
+ Start processing masks
865
+ Start processing Videos
866
+ Processing take 3512c265-1506-47ad-8ade-aa8891f65ced nus_cooking_09_2
867
+ Start processing masks
868
+ Start processing Videos
869
+ Processing take a7ea76ee-1479-4b88-91db-35124d52a989 uniandes_basketball_001_20
870
+ Start processing masks
871
+ Start processing Videos
872
+ Processing take ecf4c73a-1b9d-492a-b18a-6a3276e163b1 uniandes_basketball_004_27
873
+ Start processing masks
874
+ Start processing Videos
875
+ Processing take f8b4b1a2-c85f-4595-8680-67ecf53d3dc4 indiana_bike_12_6
876
+ Start processing masks
877
+ Start processing Videos
878
+ Processing take 2eff9418-fd22-4cec-854a-ccc1ba2681bc iiith_cooking_70_6
879
+ Start processing masks
880
+ Start processing Videos
881
+ Processing take abc64c60-1cc8-49c1-8489-79592aafdf8a indiana_bike_01_2
882
+ Start processing masks
883
+ Start processing Videos
884
+ Processing take f3566beb-664b-4df0-8a83-140ae9c2952e uniandes_cooking_003_4
885
+ Start processing masks
886
+ Start processing Videos
887
+ Processing take c9f4c6e1-4fd2-453e-acb8-590e7ba5c8ee uniandes_basketball_004_21
888
+ Start processing masks
889
+ Start processing Videos
890
+ Processing take 280ab94b-ebd0-4245-85a1-4cacd670588f upenn_0713_Cooking_1_3
891
+ Start processing masks
892
+ Start processing Videos
893
+ Processing take 23c5bf8a-7781-42d4-b6d8-2ab6025157c7 georgiatech_covid_15_6
894
+ Start processing masks
895
+ Start processing Videos
896
+ Processing take 96bee032-4903-4d47-ade4-6535f0590fe2 sfu_basketball_01_10
897
+ Start processing masks
898
+ Start processing Videos
899
+ Processing take f4a17391-0f26-448d-831a-7f69e22d3414 sfu_cooking_012_5
900
+ Start processing masks
901
+ Start processing Videos
902
+ Processing take 32bd2d54-16a9-4b34-aff8-daefce73b626 sfu_cooking_004_3
903
+ Start processing masks
904
+ Start processing Videos
905
+ Processing take d990a808-367c-415f-8e3a-8eac6c950e72 upenn_0701_Piano_1_3
906
+ Start processing masks
907
+ Start processing Videos
908
+ Processing take 7f534830-cde5-45ff-87fc-d2072a584cae georgiatech_covid_11_4
909
+ Start processing masks
910
+ Start processing Videos
911
+ Processing take fd1b1d67-ac78-43a5-9924-b12157d72cb6 indiana_cooking_19_3
912
+ Start processing masks
913
+ Start processing Videos
914
+ Processing take 8ef56f71-6d85-4ff4-949e-2c386d99a38e uniandes_cooking_002_2
915
+ Start processing masks
916
+ Start processing Videos
917
+ Processing take 6ede3c7d-44fd-4bc9-85fb-7ccb75d7d731 unc_basketball_03-31-23_01_31
918
+ Start processing masks
919
+ Start processing Videos
920
+ Processing take fcb6b025-6e41-4e97-b4b5-d5fdf0ebd3cb unc_basketball_03-31-23_01_26
921
+ Start processing masks
922
+ Start processing Videos
923
+ Processing take 150e45fa-eb77-4a8b-bd60-d4801dff8c9f uniandes_cooking_004_2
924
+ Start processing masks
925
+ Start processing Videos
926
+ Processing take 30a2a49c-ea8a-4199-a9e2-7b21515d3483 cmu_bike10_2
927
+ Start processing masks
928
+ Start processing Videos
929
+ Processing take 9e3cebb7-8a16-471a-9b32-d9b4e294896e georgiatech_covid_11_11
930
+ Start processing masks
931
+ Start processing Videos
932
+ Processing take 1c761444-ece6-46c0-8b95-427f2aa8f405 sfu_basketball_01_13
933
+ Start processing masks
934
+ Start processing Videos
935
+ Processing take b9e252ee-51c4-480d-8dc0-6a0a6022fa0f indiana_cooking_17_5
936
+ Start processing masks
937
+ Start processing Videos
938
+ Processing take 7be57a0b-9f5a-4682-a18b-1998d938451e nus_cooking_15_2
939
+ Start processing masks
940
+ Start processing Videos
941
+ Processing take 570b3b00-ff83-4eff-9313-9c0ef967d9b6 georgiatech_cooking_12_02_2
942
+ Start processing masks
943
+ Start processing Videos
944
+ Processing take 1c4c0679-9b40-4624-8e8d-b688a3a69929 indiana_cooking_07_3
945
+ Start processing masks
946
+ Start processing Videos
947
+ Processing take d39e0bcf-5f2c-4468-abe6-ae18b3c407cb iiith_cooking_70_2
948
+ Start processing masks
949
+ Start processing Videos
950
+ Processing take 09950cc3-4936-4385-8fff-48e5c042595b uniandes_basketball_003_56
951
+ Start processing masks
952
+ Start processing Videos
953
+ Processing take d85733f6-51c4-4046-b51c-73894f5aa621 iiith_soccer_008_7
954
+ Start processing masks
955
+ Start processing Videos
956
+ Processing take 2f86293e-823d-4e2d-8c54-2f888e2639ed uniandes_basketball_001_37
957
+ Start processing masks
958
+ Start processing Videos
959
+ Processing take 19c3829d-7af3-4cb6-878c-7d29d565edef fair_cooking_09_8
960
+ Start processing masks
961
+ Start processing Videos
962
+ Processing take 9c50296b-217b-4e84-aaae-9015daee59a9 indiana_bike_11_14
963
+ Start processing masks
964
+ Start processing Videos
965
+ Processing take 247cde12-df65-4d59-ac01-449680e83871 upenn_0712_Cooking_2_3
966
+ Start processing masks
967
+ Start processing Videos
968
+ Processing take bd322fcd-9b14-4ce8-999d-d4ef896c8363 nus_cpr_01_2
969
+ Start processing masks
970
+ Start processing Videos
971
+ Processing take d1586c7d-29ba-4060-a828-02c162ba812d upenn_0713_Cooking_2_3
972
+ Start processing masks
973
+ Start processing Videos
974
+ Processing take 61b218b2-52fb-465f-855f-41e5164d7998 indiana_bike_11_12
975
+ Start processing masks
976
+ Start processing Videos
977
+ Processing take 901cebcb-d84b-43ed-a80f-719e62561b82 unc_basketball_03-31-23_01_23
978
+ Start processing masks
979
+ Start processing Videos
980
+ Processing take 73d9fbc1-b6b3-4b3e-89db-3a4de56b924c sfu_basketball_01_27
981
+ Start processing masks
982
+ Start processing Videos
983
+ Processing take 23c5085a-8ead-4f74-be3b-9287e4019e98 georgiatech_covid_17_6
984
+ Start processing masks
985
+ Start processing Videos
986
+ Processing take 8bb95fbe-efa4-416b-9558-a0301b846f25 georgiatech_covid_15_8
987
+ Start processing masks
988
+ Start processing Videos
989
+ Processing take 0099226c-9bec-44aa-ba43-2b90eb7b8379 iiith_cooking_50_2
990
+ Start processing masks
991
+ Start processing Videos
992
+ Processing take b1ff7a1d-74e0-4bbb-a047-2f70eb1bc568 indiana_cooking_11_3
993
+ Start processing masks
994
+ Start processing Videos
995
+ Processing take c47b2e19-8a8f-4594-9144-8b7be780ab74 upenn_0722_Guitar_2_5
996
+ Start processing masks
997
+ Start processing Videos
998
+ Processing take a2527385-d99e-4cc8-a407-250da018a3c9 iiith_cooking_70_4
999
+ Start processing masks
1000
+ Start processing Videos
1001
+ Processing take edad0957-8423-4647-bdd2-c6f4c1d15f38 indiana_cooking_24_3
1002
+ Start processing masks
1003
+ Start processing Videos
1004
+ Processing take 602a2ac1-280b-46b6-bf3c-1191cb2fc224 georgiatech_cooking_03_02_2
1005
+ Start processing masks
1006
+ Start processing Videos
1007
+ Processing take 534f433c-14c2-4eb7-851a-a23a8b2ee340 cmu_bike06_2
1008
+ Start processing masks
1009
+ Start processing Videos
1010
+ Processing take 136cd3d8-5eff-44a2-b761-dcd0c190c71b nus_cpr_06_1
1011
+ Start processing masks
1012
+ Start processing Videos
1013
+ Processing take 5e3c697c-9aef-4686-9055-b34185b21a75 sfu_basketball_10_21
1014
+ Start processing masks
1015
+ Start processing Videos
1016
+ Processing take f4e73920-1679-43d6-a307-4b6672811e46 indiana_cooking_17_3
1017
+ Start processing masks
1018
+ Start processing Videos
1019
+ Processing take 673f2b3e-413a-4450-aca8-ffbfb56db7be cmu_bike09_4
1020
+ Start processing masks
1021
+ Start processing Videos
1022
+ Processing take 83decc40-f9da-469a-9ce2-1d173b06e5b3 indiana_bike_14_6
1023
+ Start processing masks
1024
+ Start processing Videos
1025
+ Processing take e14c702f-a451-46e6-ab31-c1213ec2f1be indiana_cooking_25_2
1026
+ Start processing masks
1027
+ Start processing Videos
1028
+ Processing take 75cc6a20-2451-4922-844b-3e376e095657 indiana_cooking_11_2
1029
+ Start processing masks
1030
+ Start processing Videos
1031
+ Processing take a50d179d-4dc4-4cf4-afb3-0c43cf86d44c uniandes_basketball_004_30
1032
+ Start processing masks
1033
+ Start processing Videos
1034
+ Processing take ef2d0ea2-a3aa-45ef-83e3-6d8b0d863dc5 indiana_cooking_11_4
1035
+ Start processing masks
1036
+ Start processing Videos
1037
+ Processing take af223382-86df-43f7-989b-331fe0436810 sfu_basketball_01_26
1038
+ Start processing masks
1039
+ Start processing Videos
1040
+ Processing take 1876d795-0c6f-4e0e-8165-e7a0c8a6e77f sfu_basketball_10_11
1041
+ Start processing masks
1042
+ Start processing Videos
1043
+ Total time: 31935.866154909134 seconds