Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes. ย
See raw diff
- .gitignore +12 -0
- README.md +5 -6
- START_COMMAND.txt +17 -0
- UPR_BASIC_INFERENCE_SPEED.txt +30 -0
- __pycache__/prepare_extra_training_dataset.cpython-310.pyc +0 -0
- __pycache__/prepare_extra_training_dataset.cpython-37.pyc +0 -0
- __pycache__/vfi_inference.cpython-310.pyc +0 -0
- __pycache__/vfi_inference_triplet.cpython-310.pyc +0 -0
- app.py +408 -0
- cfgs/upr_backward_unimatch_exp1.yaml +75 -0
- cfgs/upr_backward_unimatch_exp2.yaml +76 -0
- cfgs/upr_basic.yaml +72 -0
- cfgs/upr_custom_4090_exp1.yaml +70 -0
- cfgs/upr_custom_4090_exp1_10epoch_test.yaml +70 -0
- cfgs/upr_custom_4090_exp1_extract.yaml +70 -0
- cfgs/upr_custom_4090_exp2.yaml +70 -0
- cfgs/upr_freq003.yaml +88 -0
- cfgs/upr_freq004.yaml +88 -0
- cfgs/upr_freq005.yaml +87 -0
- cfgs/upr_freq006.yaml +83 -0
- cfgs/upr_freq007.yaml +83 -0
- cfgs/upr_freq008.yaml +83 -0
- cfgs/upr_freq_unimatch_exp001.yaml +83 -0
- cfgs/upr_freq_unimatch_exp002.yaml +85 -0
- cfgs/upr_freq_unimatch_exp002_20240111_extratraining1.yaml +86 -0
- cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_2_1.yaml +86 -0
- cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_2_2.yaml +86 -0
- cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_2_3.yaml +86 -0
- cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_2_4.yaml +86 -0
- cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_3_1.yaml +86 -0
- cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_3_2.yaml +86 -0
- cfgs/upr_freq_unimatch_exp002_20240111_extratraining2.yaml +86 -0
- cfgs/upr_freq_unimatch_exp002_20240111_extratraining3.yaml +86 -0
- cfgs/upr_freq_unimatch_exp002_20240111_extratraining4.yaml +86 -0
- cfgs/upr_freq_unimatch_exp002_stopmotion.yaml +86 -0
- cfgs/upr_vimeo_exp45.yaml +76 -0
- check_images.py +39 -0
- datasets/__init__.py +5 -0
- datasets/__pycache__/__init__.cpython-310.pyc +0 -0
- datasets/__pycache__/__init__.cpython-38.pyc +0 -0
- datasets/__pycache__/data_utils.cpython-310.pyc +0 -0
- datasets/__pycache__/data_utils.cpython-38.pyc +0 -0
- datasets/__pycache__/datasets.cpython-310.pyc +0 -0
- datasets/__pycache__/datasets.cpython-38.pyc +0 -0
- datasets/__pycache__/snu_film.cpython-310.pyc +0 -0
- datasets/__pycache__/snu_film.cpython-38.pyc +0 -0
- datasets/__pycache__/ucf101.cpython-310.pyc +0 -0
- datasets/__pycache__/ucf101.cpython-38.pyc +0 -0
- datasets/__pycache__/vimeo.cpython-310.pyc +0 -0
- datasets/__pycache__/vimeo.cpython-38.pyc +0 -0
.gitignore
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.ipynb
|
2 |
+
*.pkl
|
3 |
+
*.pth
|
4 |
+
*.pt
|
5 |
+
*/*.ipynb
|
6 |
+
*/*.pkl
|
7 |
+
*/*.pth
|
8 |
+
*/*.pt
|
9 |
+
*/*/*.ipynb
|
10 |
+
*/*/*.pkl
|
11 |
+
*/*/*.pth
|
12 |
+
*/*/*.pt
|
README.md
CHANGED
@@ -1,12 +1,11 @@
|
|
1 |
---
|
2 |
title: VfiTest
|
3 |
-
emoji:
|
4 |
-
colorFrom:
|
5 |
-
colorTo:
|
6 |
sdk: gradio
|
7 |
sdk_version: 4.19.2
|
8 |
app_file: app.py
|
9 |
pinned: false
|
10 |
-
|
11 |
-
|
12 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
1 |
---
|
2 |
title: VfiTest
|
3 |
+
emoji: ๐
|
4 |
+
colorFrom: yellow
|
5 |
+
colorTo: blue
|
6 |
sdk: gradio
|
7 |
sdk_version: 4.19.2
|
8 |
app_file: app.py
|
9 |
pinned: false
|
10 |
+
license: unknown
|
11 |
+
---
|
|
START_COMMAND.txt
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node 4 main.py --cfg cfgs/upr_freq_unimatch_exp001.yaml
|
2 |
+
CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node 4 main.py --cfg cfgs/upr_freq_unimatch_exp002.yaml
|
3 |
+
CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node 4 main.py --cfg cfgs/upr_freq003.yaml
|
4 |
+
CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node 4 main.py --cfg cfgs/upr_freq004.yaml
|
5 |
+
CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node 4 main.py --cfg cfgs/upr_freq005.yaml
|
6 |
+
CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node 4 main.py --cfg cfgs/upr_freq006.yaml
|
7 |
+
CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node 4 main.py --cfg cfgs/upr_freq007.yaml
|
8 |
+
CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node 4 main.py --cfg cfgs/upr_freq008.yaml
|
9 |
+
|
10 |
+
CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node 4 main.py --cfg cfgs/upr_freq_unimatch_exp002_stopmotion.yaml
|
11 |
+
|
12 |
+
**inference ๊ณ ๋ ค์ฌํญ**
|
13 |
+
class Model์์ ํจ๋ฉ ์์น: normalization -> padding
|
14 |
+
utils.padder.py: constant padding mode
|
15 |
+
pyr_level (Vimeo: 3, UCF: 3, SNU-FILM: 5)
|
16 |
+
trainer.py: train function์์ epoch ๋ค์ด๊ฐ๊ธฐ ์ ์ return
|
17 |
+
yaml: [results.txt, ์ด๋ฏธ์ง๋ค ์ ์ฅํ๊ณ ์ถ์ผ๋ฉด][~~~every ์ ๋ถ 1๋ก ์ค์ ] /// [๊ทธ๋ ์ง ์์ผ๋ฉด][~~~every ์ ๋ถ ๋ง์ง๋ง ์ํญ ์ ๋๋ ๋จ์ด์ง๋ ์๋ก ์ค์ ]
|
UPR_BASIC_INFERENCE_SPEED.txt
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Test: [ 0/237] eta: 0:30:27 psnr: 25.80 ssim: 0.79 time: 7.7092 data: 0.3797 max mem: 12902
|
2 |
+
Test: [ 10/237] eta: 0:04:25 psnr: 25.25 ssim: 0.73 time: 1.1688 data: 0.0348 max mem: 12902
|
3 |
+
Test: [ 20/237] eta: 0:02:57 psnr: 24.94 ssim: 0.71 time: 0.4738 data: 0.0002 max mem: 12902
|
4 |
+
Test: [ 30/237] eta: 0:02:23 psnr: 25.29 ssim: 0.72 time: 0.4329 data: 0.0002 max mem: 12902
|
5 |
+
Test: [ 40/237] eta: 0:02:03 psnr: 25.64 ssim: 0.77 time: 0.4309 data: 0.0002 max mem: 12902
|
6 |
+
Test: [ 50/237] eta: 0:01:50 psnr: 27.04 ssim: 0.80 time: 0.4291 data: 0.0002 max mem: 12902
|
7 |
+
Test: [ 60/237] eta: 0:01:39 psnr: 24.79 ssim: 0.76 time: 0.4310 data: 0.0002 max mem: 12902
|
8 |
+
Test: [ 70/237] eta: 0:01:31 psnr: 25.93 ssim: 0.78 time: 0.4323 data: 0.0002 max mem: 12902
|
9 |
+
Test: [ 80/237] eta: 0:01:23 psnr: 25.98 ssim: 0.76 time: 0.4320 data: 0.0002 max mem: 12902
|
10 |
+
Test: [ 90/237] eta: 0:01:17 psnr: 24.59 ssim: 0.77 time: 0.4666 data: 0.0002 max mem: 12902
|
11 |
+
Test: [100/237] eta: 0:01:11 psnr: 24.06 ssim: 0.72 time: 0.4651 data: 0.0002 max mem: 12902
|
12 |
+
Test: [110/237] eta: 0:01:04 psnr: 24.65 ssim: 0.67 time: 0.4289 data: 0.0002 max mem: 12902
|
13 |
+
Test: [120/237] eta: 0:00:58 psnr: 23.71 ssim: 0.73 time: 0.4287 data: 0.0002 max mem: 12902
|
14 |
+
Test: [130/237] eta: 0:00:53 psnr: 28.94 ssim: 0.87 time: 0.4288 data: 0.0002 max mem: 12902
|
15 |
+
Test: [140/237] eta: 0:00:47 psnr: 26.36 ssim: 0.73 time: 0.4301 data: 0.0002 max mem: 12902
|
16 |
+
Test: [150/237] eta: 0:00:42 psnr: 29.65 ssim: 0.85 time: 0.4299 data: 0.0002 max mem: 12902
|
17 |
+
Test: [160/237] eta: 0:00:37 psnr: 25.18 ssim: 0.74 time: 0.4287 data: 0.0002 max mem: 12902
|
18 |
+
Test: [170/237] eta: 0:00:32 psnr: 25.57 ssim: 0.77 time: 0.4618 data: 0.0002 max mem: 12902
|
19 |
+
Test: [180/237] eta: 0:00:27 psnr: 27.12 ssim: 0.80 time: 0.4618 data: 0.0002 max mem: 12902
|
20 |
+
Test: [190/237] eta: 0:00:22 psnr: 23.36 ssim: 0.59 time: 0.4290 data: 0.0002 max mem: 12902
|
21 |
+
Test: [200/237] eta: 0:00:17 psnr: 25.49 ssim: 0.78 time: 0.4296 data: 0.0002 max mem: 12902
|
22 |
+
Test: [210/237] eta: 0:00:12 psnr: 27.89 ssim: 0.82 time: 0.4322 data: 0.0002 max mem: 12902
|
23 |
+
Test: [220/237] eta: 0:00:08 psnr: 28.20 ssim: 0.81 time: 0.4336 data: 0.0002 max mem: 12902
|
24 |
+
Test: [230/237] eta: 0:00:03 psnr: 26.18 ssim: 0.78 time: 0.4322 data: 0.0002 max mem: 12902
|
25 |
+
Test: [236/237] eta: 0:00:00 psnr: 25.18 ssim: 0.77 time: 0.5410 data: 0.0002 max mem: 12902
|
26 |
+
Test: Total time: 0:01:53 (0.4800 s / it)
|
27 |
+
[12-01 16:11:10] Averaged validate stats:psnr: 25.48485653640427 ssim: 0.7470527462248057
|
28 |
+
[12-01 16:11:10] best performance achieved at epoch -1 with performance of 25.48485653640427
|
29 |
+
|
30 |
+
MEMORY: 6818MB
|
__pycache__/prepare_extra_training_dataset.cpython-310.pyc
ADDED
Binary file (3.08 kB). View file
|
|
__pycache__/prepare_extra_training_dataset.cpython-37.pyc
ADDED
Binary file (3.03 kB). View file
|
|
__pycache__/vfi_inference.cpython-310.pyc
ADDED
Binary file (5.47 kB). View file
|
|
__pycache__/vfi_inference_triplet.cpython-310.pyc
ADDED
Binary file (5.67 kB). View file
|
|
app.py
ADDED
@@ -0,0 +1,408 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
import numpy as np
|
3 |
+
import cv2
|
4 |
+
import os
|
5 |
+
import glob
|
6 |
+
import torch
|
7 |
+
import shutil
|
8 |
+
from PIL import Image
|
9 |
+
from tqdm import tqdm
|
10 |
+
from torch.nn import functional as F
|
11 |
+
from torchvision.transforms import functional as TF
|
12 |
+
from matplotlib import pyplot as plt
|
13 |
+
from modules.components.upr_net_freq import upr_freq as upr_freq002
|
14 |
+
from modules.components.upr_basic import upr as upr_basic
|
15 |
+
import datetime
|
16 |
+
import zipfile
|
17 |
+
|
18 |
+
os.system('python -m pip install --upgrade pip')
|
19 |
+
|
20 |
+
#from scipy.interpolate import make_interp_spline
|
21 |
+
|
22 |
+
# python3 -m vfi_inference_triplet --cuda_index 0 \
|
23 |
+
# --root ../VFI_Inference/thistriplet_notarget --pretrain_path ./pretrained/upr_freq002.pth \
|
24 |
+
# --pyr_level 7 --nr_lvl_skipped 0 --splat_mode average --down_scale 1
|
25 |
+
|
26 |
+
# ์์ด๋, ๋น๋ฐ๋ฒํธ ํํ, ๋ฆฌ์คํธ์ ์ถ๊ฐํ๋ฉด ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
|
27 |
+
# ๋ค๋ฅธ ํ์ผ๋ก ๋ง๋ค์ด ์ฌ์ฉํ๊ธฐ๋ฅผ ๊ถ์ฅํฉ๋๋ค.
|
28 |
+
KEY = [("test", "test"),
|
29 |
+
]
|
30 |
+
|
31 |
+
# ๋ก๊ทธ์ธ ์ ํธ์ถ๋๋ ํจ์์
๋๋ค.
|
32 |
+
#ํน์ ๋ก๊ทธ์ธ์ ๋ํ ์ ๋ณด๋, ๋คip ๋ฑ์ ์ป๊ณ ์ถ์ผ๋ฉด ์ด ๋ถ๋ถ ์์ ๋ฐ๋๋๋ค.
|
33 |
+
def check_valid_login(user_name, password):
|
34 |
+
#client_ip = request.client.host
|
35 |
+
#print(client_ip)
|
36 |
+
flag = (user_name, password) in KEY
|
37 |
+
return flag
|
38 |
+
|
39 |
+
# ๋น๋์ค์์ ์ฒ์ ๋ช ํ๋ ์์ ์๋ฅผ์ง ๋ณ์์
๋๋ค.
|
40 |
+
MAX_FRAME = 24
|
41 |
+
|
42 |
+
#VFI inference ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๊ฐ์ ธ์์ต๋๋ค.
|
43 |
+
DEVICE = 0#"cuda"
|
44 |
+
torch.cuda.set_device(DEVICE)
|
45 |
+
#ROOT = args.root
|
46 |
+
#SAVE_ROOT = f'output'
|
47 |
+
SCALE = 1
|
48 |
+
pyr_level = 7
|
49 |
+
nr_lvl_skipped = 0
|
50 |
+
splat_mode = "average"
|
51 |
+
pretrain_path = "./pretrained/upr_freq002.pth"
|
52 |
+
|
53 |
+
model = upr_freq002.Model(pyr_level=pyr_level,
|
54 |
+
nr_lvl_skipped=nr_lvl_skipped,
|
55 |
+
splat_mode=splat_mode)
|
56 |
+
sd = torch.load(pretrain_path, map_location='cpu')
|
57 |
+
sd = sd['model'] if 'model' in sd.keys() else sd
|
58 |
+
print(model.load_state_dict(sd))
|
59 |
+
model = model.to(DEVICE)
|
60 |
+
|
61 |
+
def get_sorted_img(file_path):
|
62 |
+
return sorted(glob.glob(os.path.join(file_path, f"*.png")), key = lambda x : float(x.split("_")[-1][:-4]))
|
63 |
+
|
64 |
+
def multiple_pad(image, multiple):
|
65 |
+
_,_,H,W = image.size()
|
66 |
+
pad1 = multiple-(H%multiple) if H%multiple!=0 else 0
|
67 |
+
pad2 = multiple-(W%multiple) if W%multiple!=0 else 0
|
68 |
+
return TF.pad(image, (0,0,pad2,pad1))
|
69 |
+
|
70 |
+
#์ด๋ฏธ์ง 1(path1), 2๋ฅผ VFIํ์ฌ ๊ฐ์ด๋ฐ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ํจ์์
๋๋ค.
|
71 |
+
def multiple_VFIx2(path1, path2, output_name):
|
72 |
+
file_list = [path1, path2]
|
73 |
+
img_list = [(torch.from_numpy(cv2.imread(file)[:,:,[2,1,0]])/255).permute(2,0,1).unsqueeze(0).to(DEVICE) for file in file_list]
|
74 |
+
img_list = [multiple_pad(img, SCALE) for k, img in enumerate(img_list)]
|
75 |
+
img_list = [F.interpolate(img, scale_factor=1/SCALE, mode='bicubic') for k, img in enumerate(img_list)]
|
76 |
+
img0,img1 = img_list
|
77 |
+
_,_,Hori,Wori = img0.size()
|
78 |
+
|
79 |
+
with torch.no_grad():
|
80 |
+
result_dict, extra_dict = model(img0, img1, pyr_level=pyr_level, nr_lvl_skipped=nr_lvl_skipped, time_step=0.5)
|
81 |
+
out = F.interpolate(result_dict['imgt_pred'], scale_factor=SCALE, mode='bicubic')[:,:,:Hori,:Wori].clamp(0,1)
|
82 |
+
cv2.imwrite(output_name, (out[0].cpu().permute(1,2,0)*255).numpy().astype(np.uint8)[:,:,[2,1,0]])
|
83 |
+
torch.cuda.empty_cache()
|
84 |
+
|
85 |
+
#1, 2๋ฅผ 3๋ฒ VFIํ์ฌ 3์ฅ์ ๋ง๋๋ ํจ์์
๋๋ค.
|
86 |
+
"""
|
87 |
+
def multiple_VFIx4(path1, path2, name1, name2, name3):
|
88 |
+
multiple_VFIx2(path1, path2, name2)
|
89 |
+
multiple_VFIx2(path1, name2, name1)
|
90 |
+
multiple_VFIx2(name2, path2, name3)
|
91 |
+
"""
|
92 |
+
def multiple_VFIx4(path1, path2):
|
93 |
+
frac = [".25", ".5", ".75"]
|
94 |
+
name1 , name2, name3 = [f"{path1[:-4]}{f}.png" for f in frac]
|
95 |
+
multiple_VFIx2(path1, path2, name2)
|
96 |
+
multiple_VFIx2(path1, name2, name1)
|
97 |
+
multiple_VFIx2(name2, path2, name3)
|
98 |
+
|
99 |
+
#0, 0.125 , 0.25, 0.5, 0.75, 0.875, 1๋ก 5์ฅ ์์ฑ
|
100 |
+
def multiple_VFIx6(path1, path2):
|
101 |
+
frac = [".125", ".25", ".75", ".875"]
|
102 |
+
name_inf1 , name1, name2, name_inf2 = [f"{path1[:-4]}{f}.png" for f in frac]
|
103 |
+
multiple_VFIx4(path1, path2)
|
104 |
+
multiple_VFIx2(path1, name1, name_inf1)
|
105 |
+
multiple_VFIx2(name2, path2, name_inf2)
|
106 |
+
|
107 |
+
#๋น๋์ค์์ fix๋ฅผ ํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋์ฒดํ์ฌ ์ถ๋ ฅํ๋ ํจ์์
๋๋ค.
|
108 |
+
def fix_img(idx, fixed_list, input_dir = "input", output_dir = "output"):
|
109 |
+
idx = int(idx)
|
110 |
+
#์ฌ๋ฐ๋ฅด์ง ์๊ฑฐ๋, ์ด๋ฏธ fix ํ๋ค๋ฉด ๋ณํ x
|
111 |
+
if idx < 1 or idx > MAX_FRAME - 2 or fixed_list[idx] == 1:
|
112 |
+
return {
|
113 |
+
fix_result_gallery : gr.Gallery(),
|
114 |
+
fix_result_group : gr.Group(),
|
115 |
+
fixed_frame : gr.Text()
|
116 |
+
}
|
117 |
+
now_time = os.path.basename(input_dir)
|
118 |
+
output_dir = os.path.join(output_dir, f"fix_{now_time}")
|
119 |
+
os.makedirs(output_dir, exist_ok = True)
|
120 |
+
output_name = os.path.join(output_dir, f"img_{idx:03d}.png")
|
121 |
+
|
122 |
+
multiple_VFIx2(os.path.join(input_dir, f"img_{idx - 1:03d}.png"),
|
123 |
+
os.path.join(input_dir, f"img_{idx + 1:03d}.png"),
|
124 |
+
output_name)
|
125 |
+
fixed_list[idx] = 1
|
126 |
+
|
127 |
+
fixed_frame_string = ""
|
128 |
+
result_list = []
|
129 |
+
name_list = []
|
130 |
+
#์์ฐจ์ ์ผ๋ก ๊ฒฐ๊ณผ ๊ฐค๋ฌ๋ฆฌ ๊ฐฑ์
|
131 |
+
for i in range(MAX_FRAME):
|
132 |
+
if fixed_list[i] == 1:
|
133 |
+
name_list.append(f"(fixed) frame {i}")
|
134 |
+
result_list.append(os.path.join(output_dir, f"img_{i:03d}.png"))
|
135 |
+
fixed_frame_string += f"{i}, "
|
136 |
+
else:
|
137 |
+
name_list.append(f"frame {i}")
|
138 |
+
result_list.append(os.path.join(input_dir, f"img_{i:03d}.png"))
|
139 |
+
return {
|
140 |
+
fix_result_gallery : gr.Gallery(value = [(img, name) for img, name in zip(result_list, name_list)], selected_index = idx),
|
141 |
+
fix_result_group : gr.Group(visible=True),
|
142 |
+
fixed_frame : gr.Text(visible=True, value = fixed_frame_string[:-2]),
|
143 |
+
}
|
144 |
+
|
145 |
+
#์ฃผ์ด์ง ease_val ๋ฆฌ์คํธ์ ๊ฐ ๋ฐํ์ผ๋ก ease๋ฅผ ์คํ์ํค๋ ํจ์์
๋๋ค.
|
146 |
+
def ease_frames(ease_val, input_dir = "input", output_dir = "output", progress=gr.Progress(track_tqdm=False)):
|
147 |
+
#now = os.path.basename(input_dir)
|
148 |
+
now = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
|
149 |
+
output_dir = os.path.join(output_dir, f"ease_{now}")
|
150 |
+
os.makedirs(output_dir, exist_ok = True)
|
151 |
+
out_frame_list = [os.path.join(output_dir, f"img_{i:03d}.png") for i in range(MAX_FRAME)]
|
152 |
+
for i, f in enumerate([os.path.join(input_dir, f"img_{i:03d}.png") for i in range(MAX_FRAME)]):
|
153 |
+
shutil.copyfile(f, out_frame_list[i])
|
154 |
+
img_name = []
|
155 |
+
for i in progress.tqdm(range(MAX_FRAME - 1), desc = "VFI frames..."):
|
156 |
+
img_name.append(f"frame {i}")
|
157 |
+
if ease_val[i] == 1: pass
|
158 |
+
#x1๋ ์๋ฌด๊ฒ๋, x2๋ ํ ์ฅ, x4๋ 3์ฅ
|
159 |
+
# ์๋ ๊ธ์ ์ถ๊ฐ ๋ถ๋ถ์ ์๋ก์ด ์ด๋ฏธ์ง์ ์ ๋ชฉ ๋ฐ๊พธ๋ ๋ถ๋ถ์
๋๋ค.
|
160 |
+
elif ease_val[i] == 2:
|
161 |
+
multiple_VFIx2(out_frame_list[i], out_frame_list[i + 1]
|
162 |
+
, os.path.join(output_dir, f"img_{i:03d}.5.png"))
|
163 |
+
img_name.append(f"(new) frame {i + 0.5}")
|
164 |
+
elif ease_val[i] == 3:
|
165 |
+
multiple_VFIx4(out_frame_list[i], out_frame_list[i + 1])
|
166 |
+
img_name.append(f"(new) frame {i + 0.25}")
|
167 |
+
img_name.append(f"(new) frame {i + 0.5}")
|
168 |
+
img_name.append(f"(new) frame {i + 0.75}")
|
169 |
+
img_name.append(f"frame {MAX_FRAME - 1}")
|
170 |
+
files = get_sorted_img(output_dir)
|
171 |
+
|
172 |
+
#๋ค์ด๋ก๋์ฉ zip ํ์ผ
|
173 |
+
zip_name = os.path.join(output_dir,"frame_list.zip")
|
174 |
+
with zipfile.ZipFile(zip_name, 'w', compression=zipfile.ZIP_DEFLATED) as new_zip:
|
175 |
+
for x in progress.tqdm(files, desc ="compress file..."):
|
176 |
+
new_zip.write(x, os.path.basename(x))
|
177 |
+
|
178 |
+
return {
|
179 |
+
ease_result_gallery : [(file, name) for file, name in zip(files, img_name)],
|
180 |
+
ease_make_video : gr.Accordion(visible = True),
|
181 |
+
last_ease_dir : output_dir,
|
182 |
+
ease_zip : gr.File(value = zip_name)
|
183 |
+
}
|
184 |
+
# ์ด๋ฏธ์ง ๋ ์ฅ์ ๋ฐ์ VFI๋ฅผ ์ํํ๋ ํจ์์
๋๋ค.
|
185 |
+
def VFI_two(l, r, flag ,output_dir = "output"):
|
186 |
+
now = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
|
187 |
+
output_dir = os.path.join(output_dir, f"fix_img_{now}")
|
188 |
+
os.makedirs(output_dir, exist_ok = True)
|
189 |
+
l = Image.fromarray(l)
|
190 |
+
r = Image.fromarray(r)
|
191 |
+
#๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๋ฅผ ๋ง๊ธฐ ์ํด ์ ๋นํ ํฌ๊ธฐ ํฝ์
์ดํ๊ฐ ๋๋๋ก ๊ด๋ฆฌ
|
192 |
+
W, H = l.size
|
193 |
+
#1920 * 1080 * 1.2 * 1.2 ๊ฐ ๋์ถฉ 3e6๋ผ ๊ทธ๊ฑธ ๊ธฐ์ค์ผ๋ก ์ก์์ต๋๋ค.
|
194 |
+
mul = ((3e6) / (W * H)) ** (1/2)
|
195 |
+
H, W = int(H * mul), int(W * mul)
|
196 |
+
#์ด๋ฏธ์ง๊ฐ ์ปค์ ์ค์ฌ์ผ ํ๋ค๋ฉด ๊ฐ์, ์๋ ๊ทธ๋ฅ ์
๋ ฅ
|
197 |
+
if mul < 1:
|
198 |
+
l = l.resize((W, H))
|
199 |
+
r = r.resize((W, H))
|
200 |
+
l_name, r_name = f"{output_dir}/img_000.png", f"{output_dir}/img_001.png"
|
201 |
+
l.save(l_name)
|
202 |
+
r.save(r_name)
|
203 |
+
|
204 |
+
if flag == "x4":
|
205 |
+
multiple_VFIx4(l_name, r_name)
|
206 |
+
elif flag == "x2":
|
207 |
+
output_name = f"{output_dir}/img_000.5.png"
|
208 |
+
multiple_VFIx2(l_name, r_name, output_name)
|
209 |
+
else:
|
210 |
+
multiple_VFIx6(l_name, r_name)
|
211 |
+
|
212 |
+
return {
|
213 |
+
frame_gen_result_gallery : gr.Gallery(visible=True, value=get_sorted_img(output_dir))
|
214 |
+
}
|
215 |
+
#๋ค๋ฅธ ์ด๋ฏธ์ง ์
๋ ฅ์ ์ํด ์
๋ ฅ๋ ์ด๋ฏธ์ง๋ฅผ ๋ ๋ฆฌ๋ ํฉ์์
๋๋ค.
|
216 |
+
def clear_fix():
|
217 |
+
return{
|
218 |
+
img_0 : gr.Image(label="start image", sources =["upload"], value = None),
|
219 |
+
img_1 : gr.Image(label="end image", sources =["upload"], value = None),
|
220 |
+
frame_gen_result_gallery : gr.Gallery(visible=True, value=None)
|
221 |
+
}
|
222 |
+
|
223 |
+
with gr.Blocks(theme=gr.themes.Default(), title = "Inshorts Animator V. 0.5") as demo:
|
224 |
+
def info(request: gr.Request):
|
225 |
+
#ip๋ฅผ ์ป๋ ๋ถ๋ถ์
๋๋ค.
|
226 |
+
#์ถํ ํน์ ip ํ์ฉ, ์ฐจ๋จ ๋ฑ์ด ํ์ํ๋ฉด ์ด์ชฝ ์ฐธ๊ณ ํด ์ฃผ์ธ์
|
227 |
+
headers = request.headers
|
228 |
+
print(headers["x-forwarded-for"].split(","))
|
229 |
+
demo.load(info, None)
|
230 |
+
gr.Markdown(f"""# Inshorts Animator V. 0.5 WebUI (Permitted User Only)""")
|
231 |
+
with gr.Tab("Mid Frame Generator"):
|
232 |
+
with gr.Column():
|
233 |
+
|
234 |
+
with gr.Row():
|
235 |
+
img_0 = gr.Image(label="start image", sources =["upload"])
|
236 |
+
img_1 = gr.Image(label="end image", sources =["upload"])
|
237 |
+
with gr.Row():
|
238 |
+
VFI_flag = gr.Radio(["x2", "x4", "x6(side ease)"], label="VFI ratio", value = "x2", interactive = True)
|
239 |
+
image_button = gr.Button("Run model")
|
240 |
+
frame_gen_result_gallery = gr.Gallery(visible=True,
|
241 |
+
label="result", columns=[5], rows=[1], object_fit="contain", height="auto", preview = True,
|
242 |
+
interactive = False)
|
243 |
+
image_button.click(VFI_two, inputs=[img_0, img_1, VFI_flag],
|
244 |
+
outputs=[frame_gen_result_gallery])
|
245 |
+
clear_button = gr.Button("Clear images")
|
246 |
+
clear_button.click(clear_fix, inputs=[],
|
247 |
+
outputs=[img_0, img_1, frame_gen_result_gallery])
|
248 |
+
with gr.Tab("Video"):
|
249 |
+
with gr.Group(visible=True) as video_input_group:
|
250 |
+
gr.Markdown(f"""#### only can handle {MAX_FRAME} frames""")
|
251 |
+
with gr.Column():
|
252 |
+
input_dir = gr.State("")
|
253 |
+
fps = gr.Number(visible=False)
|
254 |
+
video_input = gr.Video(label="Input Video", interactive=True, sources=['upload'])
|
255 |
+
gr.Markdown(f"""If video frame size is big, it will be resized""")
|
256 |
+
upload_button = gr.Button("upload video")
|
257 |
+
with gr.Group(visible=False) as image_edit_group:
|
258 |
+
with gr.Row():
|
259 |
+
with gr.Column():
|
260 |
+
with gr.Tab("Original Frame (for Monitoring)"):
|
261 |
+
fixed_list = gr.State([0] * (MAX_FRAME))
|
262 |
+
selected = gr.Number(visible=False, label = "selected frame", interactive = False)
|
263 |
+
image_gallery = gr.Gallery(
|
264 |
+
label="inputs", columns=[MAX_FRAME], rows=[1], object_fit="contain", height="auto", preview = True,
|
265 |
+
show_download_button=False)
|
266 |
+
clear_video = gr.Button("clear video")
|
267 |
+
with gr.Tab("Frame Fixer"):
|
268 |
+
with gr.Column():
|
269 |
+
#with gr.Row():
|
270 |
+
#with gr.Row():
|
271 |
+
with gr.Group(visible=True) as fix_result_group:
|
272 |
+
fix_result_gallery = gr.Gallery(
|
273 |
+
label="result", columns=[MAX_FRAME], rows=[1], object_fit="contain", height="auto", preview = True,
|
274 |
+
interactive = False)
|
275 |
+
fix_button = gr.Button(visible = True)
|
276 |
+
with gr.Row():
|
277 |
+
fixed_frame = gr.Text(visible=False, label = "fixed frame", interactive = False)
|
278 |
+
fix_button.click(fix_img, inputs=[selected, fixed_list, input_dir],
|
279 |
+
outputs=[fix_result_gallery, fix_result_group, fixed_frame])
|
280 |
+
def update_fix_button_visible(evt: gr.SelectData):
|
281 |
+
flag = 0 < evt.index < MAX_FRAME - 1
|
282 |
+
msg = f"fix frame {evt.index}" if flag else f"can only fix 1 ~ {MAX_FRAME - 2}"
|
283 |
+
return {
|
284 |
+
fix_button:gr.Button(msg, visible=True),
|
285 |
+
selected : evt.index,
|
286 |
+
fix_result_gallery : gr.Gallery(selected_index = evt.index)
|
287 |
+
}
|
288 |
+
image_gallery.select(update_fix_button_visible, None, [fix_button, selected, fix_result_gallery])
|
289 |
+
with gr.Tab("Motion easer"):
|
290 |
+
with gr.Column():
|
291 |
+
with gr.Column():
|
292 |
+
#with gr.Row():
|
293 |
+
with gr.Group(visible=True) as ease_result_group:
|
294 |
+
last_ease_dir = gr.State("")
|
295 |
+
ease_result_gallery = gr.Gallery(
|
296 |
+
label="result", columns=[MAX_FRAME], rows=[4], object_fit="contain", height="auto", preview = True,
|
297 |
+
interactive = False)
|
298 |
+
ease_button = gr.Button("ease", visible = True)
|
299 |
+
plt_data = gr.State([1] * (MAX_FRAME - 1))
|
300 |
+
VFI_x = gr.Radio([("x1", 1), ("x2", 2), ("x4", 3)], value = 1, label="Slow ratio", info="adjust Slow ratio", interactive = True)
|
301 |
+
with gr.Row():
|
302 |
+
edit_one_button = gr.Button("edit one scale", visible = True)
|
303 |
+
edit_all_button = gr.Button("edit all scale", visible = True)
|
304 |
+
now_frame = gr.Slider(0, MAX_FRAME - 1 - 1, step=1, label="Start frame", info="Choose Start frame to make slow. Interpolation will apply to (frame ~ frame + 1)")
|
305 |
+
|
306 |
+
def plt_edit(data):
|
307 |
+
fig = plt.figure()
|
308 |
+
x = np.arange(0, MAX_FRAME - 1) + 0.5
|
309 |
+
y = np.array(data)
|
310 |
+
plt.plot(x , y, color = 'black', marker = "o", linewidth = "2.5")
|
311 |
+
plt.xticks(np.arange(0, MAX_FRAME))
|
312 |
+
plt.yticks([1, 2, 3], ["x1", "x2\nslow", "x4\nslow"])
|
313 |
+
plt.gca().invert_yaxis()
|
314 |
+
plt.grid(True)
|
315 |
+
plt.rcParams['xtick.bottom'] = plt.rcParams['xtick.labelbottom'] = False
|
316 |
+
plt.rcParams['xtick.top'] = plt.rcParams['xtick.labeltop'] = True
|
317 |
+
return fig
|
318 |
+
ease_plot = gr.Plot(value = plt_edit(plt_data.value), show_label=False)
|
319 |
+
with gr.Accordion("get result", visible = False) as ease_make_video:
|
320 |
+
ease_zip = gr.File(label = "Download all image frames in Zip", interactive = False)
|
321 |
+
make_video_button = gr.Button("make video")
|
322 |
+
result_video = gr.Video(interactive = False)
|
323 |
+
def make_video(frame_dir, fps):
|
324 |
+
t = os.path.basename(frame_dir)
|
325 |
+
output_name = f"{frame_dir}/{t}.mp4"
|
326 |
+
if os.path.exists(output_name):
|
327 |
+
os.remove(output_name)
|
328 |
+
frame_list = get_sorted_img(frame_dir)
|
329 |
+
with open(f"{frame_dir}/input.txt", "w") as f:
|
330 |
+
for line in frame_list:
|
331 |
+
f.write(f"file '{os.path.basename(line)}'\n")
|
332 |
+
cmd = f'ffmpeg -r {fps} -f concat -safe 0 -i {frame_dir}/input.txt -c:v libx264 -preset veryslow -crf 10 {output_name}'
|
333 |
+
os.system(cmd)
|
334 |
+
return output_name
|
335 |
+
make_video_button.click(make_video, inputs = [last_ease_dir, fps], outputs = [result_video])
|
336 |
+
ease_button.click(ease_frames, inputs=[plt_data, input_dir], outputs=[ease_result_gallery, ease_make_video, last_ease_dir, ease_zip])
|
337 |
+
|
338 |
+
def edit_one_scale(data, idx, x):
|
339 |
+
if idx < MAX_FRAME - 1:
|
340 |
+
data[idx] = x if x else 1
|
341 |
+
return plt_edit(data)
|
342 |
+
edit_one_button.click(edit_one_scale, inputs=[plt_data, now_frame, VFI_x] , outputs=[ease_plot])
|
343 |
+
def edit_all_scale(data, x):
|
344 |
+
for i in range(len(data)): data[i] = x if x else 1
|
345 |
+
return plt_edit(data)
|
346 |
+
edit_all_button.click(edit_all_scale, inputs=[plt_data, VFI_x], outputs=[ease_plot])
|
347 |
+
def clear_vd(plt_data, fixed_list):
|
348 |
+
for i in range(len(plt_data)): plt_data[i] = 1
|
349 |
+
for i in range(len(fixed_list)): fixed_list[i] = 0
|
350 |
+
return {video_input:gr.Video(label="Input Video", interactive=True, sources=['upload'], value = None),
|
351 |
+
ease_result_gallery : gr.Gallery(
|
352 |
+
label="result", columns=[MAX_FRAME], rows=[4], object_fit="contain", height="auto", preview = True,
|
353 |
+
interactive = False, value = None),
|
354 |
+
fix_result_gallery : gr.Gallery(
|
355 |
+
label="result", columns=[MAX_FRAME], rows=[1], object_fit="contain", height="auto", preview = True,
|
356 |
+
interactive = False, value = None),
|
357 |
+
fixed_frame : gr.Text(visible=False, label = "fixed frame", interactive = False, value = None),
|
358 |
+
ease_make_video : gr.Accordion(visible = True),
|
359 |
+
video_input_group:gr.Group(visible=True),
|
360 |
+
image_edit_group:gr.Group(visible=False),
|
361 |
+
ease_plot : gr.Plot(value = plt_edit(plt_data))}
|
362 |
+
clear_video.click(clear_vd, inputs=[plt_data, fixed_list],outputs=[video_input, ease_result_gallery, fix_result_gallery, fixed_frame, ease_make_video, video_input_group, image_edit_group, ease_plot])
|
363 |
+
def update_video_visible(video):
|
364 |
+
if not video:
|
365 |
+
return {video_input_group:gr.Group(visible=True),
|
366 |
+
image_edit_group:gr.Group(visible=False),
|
367 |
+
image_gallery:[],
|
368 |
+
input_dir : "",
|
369 |
+
fps : 0
|
370 |
+
}
|
371 |
+
now = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
|
372 |
+
input_now = os.path.join("input", now)
|
373 |
+
os.makedirs(input_now, exist_ok = True)
|
374 |
+
cap = cv2.VideoCapture(video)
|
375 |
+
frame_count = 0
|
376 |
+
video_fps = cap.get(cv2.CAP_PROP_FPS)
|
377 |
+
#print('video fps:', video_fps)
|
378 |
+
|
379 |
+
H = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
|
380 |
+
W = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
|
381 |
+
mul = ((3e6) / (W * H)) ** (1/2)
|
382 |
+
H, W = int(H * mul), int(W * mul)
|
383 |
+
|
384 |
+
frame_name_list = []
|
385 |
+
while cap.isOpened():
|
386 |
+
ret, frame = cap.read()
|
387 |
+
if not ret:
|
388 |
+
break
|
389 |
+
img_name = os.path.join(input_now, f"img_{frame_count:03d}.png")
|
390 |
+
if mul < 1:
|
391 |
+
frame = cv2.resize(frame, (W, H), interpolation=cv2.INTER_CUBIC)
|
392 |
+
cv2.imwrite(img_name, frame)
|
393 |
+
frame_name_list.append((img_name, f"frame {frame_count}"))
|
394 |
+
frame_count += 1
|
395 |
+
if frame_count >= MAX_FRAME: break
|
396 |
+
cap.release()
|
397 |
+
return {video_input_group:gr.Group(visible=False),
|
398 |
+
image_edit_group:gr.Group(visible=True),
|
399 |
+
image_gallery:frame_name_list,
|
400 |
+
input_dir : input_now,
|
401 |
+
fps : video_fps
|
402 |
+
}
|
403 |
+
upload_button.click(update_video_visible,
|
404 |
+
[video_input],
|
405 |
+
[video_input_group, image_edit_group, image_gallery, input_dir, fps])
|
406 |
+
|
407 |
+
if __name__ == '__main__':
|
408 |
+
demo.launch(allowed_paths=["./input", "./output"], auth = check_valid_login, auth_message = "Inshorts Animator V. 0.5 WebUI (Permitted User Only)", share = True)
|
cfgs/upr_backward_unimatch_exp1.yaml
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: backwarp_resize
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/upr_backward
|
9 |
+
split: train
|
10 |
+
patch_size: 256
|
11 |
+
flow: none
|
12 |
+
loader:
|
13 |
+
batch_size: 32
|
14 |
+
num_workers: 8
|
15 |
+
|
16 |
+
test_dataset:
|
17 |
+
name: vimeo
|
18 |
+
args:
|
19 |
+
root_path: ../datasets/Vimeo90K
|
20 |
+
split: val
|
21 |
+
loader:
|
22 |
+
batch_size: 32
|
23 |
+
num_workers: 8
|
24 |
+
|
25 |
+
demo_dataset:
|
26 |
+
name: demo
|
27 |
+
args:
|
28 |
+
root_path: ../data/animation
|
29 |
+
split: animation
|
30 |
+
|
31 |
+
model:
|
32 |
+
name: upr_net_mod
|
33 |
+
args:
|
34 |
+
pyr_level: 3
|
35 |
+
nr_lvl_skipped: 0
|
36 |
+
splat_mode: average
|
37 |
+
|
38 |
+
|
39 |
+
optimizer:
|
40 |
+
name: adamW
|
41 |
+
args: {lr: 0.00015, weight_decay: 1.e-4}
|
42 |
+
|
43 |
+
lr_scheduler:
|
44 |
+
name: one_cycle_lr
|
45 |
+
args:
|
46 |
+
max_lr: 0.00015
|
47 |
+
pct_start: 0.01
|
48 |
+
cycle_momentum: False
|
49 |
+
anneal_strategy: cos
|
50 |
+
|
51 |
+
loss:
|
52 |
+
- {
|
53 |
+
name: multiple_flow,
|
54 |
+
args: { weight: 0.005 }
|
55 |
+
}
|
56 |
+
- {
|
57 |
+
name: charbonnier,
|
58 |
+
args: { weight: 1 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: ternary,
|
62 |
+
args: { weight: 1 }
|
63 |
+
}
|
64 |
+
|
65 |
+
max_epoch: 838
|
66 |
+
|
67 |
+
validate_every: 5
|
68 |
+
save_every: 10
|
69 |
+
vis_every: 40
|
70 |
+
|
71 |
+
seed: 1234
|
72 |
+
|
73 |
+
dist_url: env://
|
74 |
+
resume: ./save/upr_backward_unimatch_exp1_backwarp_resize/checkpoints/model_200.pth
|
75 |
+
# pretrained: ./pretrained/upr_backwarp_corr_resize_model.pth
|
cfgs/upr_backward_unimatch_exp2.yaml
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: backwarp_resize
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/Vimeo90Kx2
|
9 |
+
flow_root: ../datasets/unimatch_flow
|
10 |
+
split: train
|
11 |
+
patch_size: 512
|
12 |
+
flow: t0
|
13 |
+
loader:
|
14 |
+
batch_size: 16
|
15 |
+
num_workers: 16
|
16 |
+
|
17 |
+
test_dataset:
|
18 |
+
name: vimeo
|
19 |
+
args:
|
20 |
+
root_path: ../datasets/Vimeo90K
|
21 |
+
split: val
|
22 |
+
loader:
|
23 |
+
batch_size: 32
|
24 |
+
num_workers: 8
|
25 |
+
|
26 |
+
demo_dataset:
|
27 |
+
name: demo
|
28 |
+
args:
|
29 |
+
root_path: ../data/animation
|
30 |
+
split: animation
|
31 |
+
|
32 |
+
model:
|
33 |
+
name: upr_net_mod
|
34 |
+
args:
|
35 |
+
pyr_level: 3
|
36 |
+
nr_lvl_skipped: 0
|
37 |
+
splat_mode: average
|
38 |
+
|
39 |
+
|
40 |
+
optimizer:
|
41 |
+
name: adamW
|
42 |
+
args: {lr: 0.00015, weight_decay: 1.e-4}
|
43 |
+
|
44 |
+
lr_scheduler:
|
45 |
+
name: one_cycle_lr
|
46 |
+
args:
|
47 |
+
max_lr: 0.00015
|
48 |
+
pct_start: 0.01
|
49 |
+
cycle_momentum: False
|
50 |
+
anneal_strategy: cos
|
51 |
+
|
52 |
+
loss:
|
53 |
+
- {
|
54 |
+
name: multiple_flow,
|
55 |
+
args: { weight: 0.005 }
|
56 |
+
}
|
57 |
+
- {
|
58 |
+
name: charbonnier,
|
59 |
+
args: { weight: 1 }
|
60 |
+
}
|
61 |
+
- {
|
62 |
+
name: ternary,
|
63 |
+
args: { weight: 1 }
|
64 |
+
}
|
65 |
+
|
66 |
+
max_epoch: 250
|
67 |
+
|
68 |
+
validate_every: 5
|
69 |
+
save_every: 10
|
70 |
+
vis_every: 40
|
71 |
+
|
72 |
+
seed: 1234
|
73 |
+
|
74 |
+
dist_url: env://
|
75 |
+
resume: ./save/upr_backward_unimatch_exp2_backwarp_resize/checkpoints/model_30.pth
|
76 |
+
# pretrained: ./pretrained/upr_backwarp_corr_resize_model.pth
|
cfgs/upr_basic.yaml
ADDED
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: UPR_basic
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/Vimeo90K
|
9 |
+
flow_root: ../datasets/unimatch_flow
|
10 |
+
split: train
|
11 |
+
patch_size: 256
|
12 |
+
flow: none
|
13 |
+
use_distance: False
|
14 |
+
loader:
|
15 |
+
batch_size: 32
|
16 |
+
num_workers: 8
|
17 |
+
|
18 |
+
test_dataset:
|
19 |
+
name: vimeo
|
20 |
+
args:
|
21 |
+
root_path: ../datasets/Vimeo90K
|
22 |
+
split: val
|
23 |
+
use_distance: False
|
24 |
+
loader:
|
25 |
+
batch_size: 16
|
26 |
+
num_workers: 4
|
27 |
+
save_imgs: False
|
28 |
+
|
29 |
+
demo_dataset:
|
30 |
+
name: demo
|
31 |
+
args:
|
32 |
+
root_path: ../data/animation
|
33 |
+
split: animation
|
34 |
+
|
35 |
+
model:
|
36 |
+
name: upr_basic
|
37 |
+
args:
|
38 |
+
pyr_level: 3
|
39 |
+
nr_lvl_skipped: 0
|
40 |
+
|
41 |
+
optimizer:
|
42 |
+
name: adamW
|
43 |
+
args: {lr: 1.5e-4, weight_decay: 1.e-4}
|
44 |
+
|
45 |
+
lr_scheduler:
|
46 |
+
name: one_cycle_lr
|
47 |
+
args:
|
48 |
+
max_lr: 1.5e-4
|
49 |
+
pct_start: 0.01
|
50 |
+
cycle_momentum: False
|
51 |
+
anneal_strategy: cos
|
52 |
+
|
53 |
+
loss:
|
54 |
+
- {
|
55 |
+
name: charbonnier,
|
56 |
+
args: { weight: 1 }
|
57 |
+
}
|
58 |
+
- {
|
59 |
+
name: ternary,
|
60 |
+
args: { weight: 1 }
|
61 |
+
}
|
62 |
+
|
63 |
+
|
64 |
+
max_epoch: 540
|
65 |
+
|
66 |
+
validate_every: 10
|
67 |
+
save_every: 10
|
68 |
+
vis_every: 20
|
69 |
+
|
70 |
+
seed: 1234
|
71 |
+
|
72 |
+
dist_url: env://
|
cfgs/upr_custom_4090_exp1.yaml
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: backwarp_resize
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: /mnt/nas/512_new
|
9 |
+
split: train
|
10 |
+
patch_size: 512
|
11 |
+
flow: none
|
12 |
+
loader:
|
13 |
+
batch_size: 16
|
14 |
+
num_workers: 8
|
15 |
+
|
16 |
+
test_dataset:
|
17 |
+
name: vimeo
|
18 |
+
args:
|
19 |
+
root_path: /mnt/nas/vimeo_triplet
|
20 |
+
split: val
|
21 |
+
loader:
|
22 |
+
batch_size: 16
|
23 |
+
num_workers: 8
|
24 |
+
|
25 |
+
demo_dataset:
|
26 |
+
name: demo
|
27 |
+
args:
|
28 |
+
root_path: ../data/animation
|
29 |
+
split: animation
|
30 |
+
|
31 |
+
model:
|
32 |
+
name: upr_net_mod
|
33 |
+
args:
|
34 |
+
pyr_level: 5
|
35 |
+
nr_lvl_skipped: 0
|
36 |
+
splat_mode: average
|
37 |
+
|
38 |
+
|
39 |
+
optimizer:
|
40 |
+
name: adamW
|
41 |
+
args: {lr: 0.000075, weight_decay: 1.e-4}
|
42 |
+
|
43 |
+
lr_scheduler:
|
44 |
+
name: one_cycle_lr
|
45 |
+
args:
|
46 |
+
max_lr: 0.000075
|
47 |
+
pct_start: 0.01
|
48 |
+
cycle_momentum: False
|
49 |
+
anneal_strategy: cos
|
50 |
+
|
51 |
+
loss:
|
52 |
+
- {
|
53 |
+
name: charbonnier,
|
54 |
+
args: { weight: 1 }
|
55 |
+
}
|
56 |
+
- {
|
57 |
+
name: ternary,
|
58 |
+
args: { weight: 1 }
|
59 |
+
}
|
60 |
+
|
61 |
+
max_epoch: 533
|
62 |
+
|
63 |
+
validate_every: 1
|
64 |
+
save_every: 10
|
65 |
+
vis_every: 20
|
66 |
+
|
67 |
+
seed: 1234
|
68 |
+
|
69 |
+
dist_url: env://
|
70 |
+
pretrained: ./pretrained/upr_backwarp_corr_resize_model.pth
|
cfgs/upr_custom_4090_exp1_10epoch_test.yaml
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: backwarp_resize
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: /mnt/nas/512_new
|
9 |
+
split: train
|
10 |
+
patch_size: 512
|
11 |
+
flow: none
|
12 |
+
loader:
|
13 |
+
batch_size: 16
|
14 |
+
num_workers: 8
|
15 |
+
|
16 |
+
test_dataset:
|
17 |
+
name: vimeo
|
18 |
+
args:
|
19 |
+
root_path: /mnt/nas/vimeo_triplet
|
20 |
+
split: val
|
21 |
+
loader:
|
22 |
+
batch_size: 16
|
23 |
+
num_workers: 8
|
24 |
+
|
25 |
+
demo_dataset:
|
26 |
+
name: demo
|
27 |
+
args:
|
28 |
+
root_path: ../data/animation
|
29 |
+
split: animation
|
30 |
+
|
31 |
+
model:
|
32 |
+
name: upr_net_mod
|
33 |
+
args:
|
34 |
+
pyr_level: 5
|
35 |
+
nr_lvl_skipped: 0
|
36 |
+
splat_mode: average
|
37 |
+
|
38 |
+
|
39 |
+
optimizer:
|
40 |
+
name: adamW
|
41 |
+
args: {lr: 0.000075, weight_decay: 1.e-4}
|
42 |
+
|
43 |
+
lr_scheduler:
|
44 |
+
name: one_cycle_lr
|
45 |
+
args:
|
46 |
+
max_lr: 0.000075
|
47 |
+
pct_start: 0.01
|
48 |
+
cycle_momentum: False
|
49 |
+
anneal_strategy: cos
|
50 |
+
|
51 |
+
loss:
|
52 |
+
- {
|
53 |
+
name: charbonnier,
|
54 |
+
args: { weight: 1 }
|
55 |
+
}
|
56 |
+
- {
|
57 |
+
name: ternary,
|
58 |
+
args: { weight: 1 }
|
59 |
+
}
|
60 |
+
|
61 |
+
max_epoch: 533
|
62 |
+
|
63 |
+
validate_every: 1
|
64 |
+
save_every: 10
|
65 |
+
vis_every: 20
|
66 |
+
|
67 |
+
seed: 1234
|
68 |
+
|
69 |
+
dist_url: env://
|
70 |
+
pretrained: ./pretrained/upr_backwarp_corr_resize_model.pth
|
cfgs/upr_custom_4090_exp1_extract.yaml
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: backwarp_resize
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: /mnt/nas/512_new
|
9 |
+
split: train
|
10 |
+
patch_size: 512
|
11 |
+
flow: none
|
12 |
+
loader:
|
13 |
+
batch_size: 16
|
14 |
+
num_workers: 8
|
15 |
+
|
16 |
+
test_dataset:
|
17 |
+
name: vimeo
|
18 |
+
args:
|
19 |
+
root_path: ../datasets/Vimeo90K
|
20 |
+
split: val
|
21 |
+
loader:
|
22 |
+
batch_size: 4
|
23 |
+
num_workers: 8
|
24 |
+
|
25 |
+
demo_dataset:
|
26 |
+
name: demo
|
27 |
+
args:
|
28 |
+
root_path: ../data/animation
|
29 |
+
split: animation
|
30 |
+
|
31 |
+
model:
|
32 |
+
name: upr_net_mod
|
33 |
+
args:
|
34 |
+
pyr_level: 5
|
35 |
+
nr_lvl_skipped: 0
|
36 |
+
splat_mode: average
|
37 |
+
|
38 |
+
|
39 |
+
optimizer:
|
40 |
+
name: adamW
|
41 |
+
args: {lr: 0.000075, weight_decay: 1.e-4}
|
42 |
+
|
43 |
+
lr_scheduler:
|
44 |
+
name: one_cycle_lr
|
45 |
+
args:
|
46 |
+
max_lr: 0.000075
|
47 |
+
pct_start: 0.01
|
48 |
+
cycle_momentum: False
|
49 |
+
anneal_strategy: cos
|
50 |
+
|
51 |
+
loss:
|
52 |
+
- {
|
53 |
+
name: charbonnier,
|
54 |
+
args: { weight: 1 }
|
55 |
+
}
|
56 |
+
- {
|
57 |
+
name: ternary,
|
58 |
+
args: { weight: 1 }
|
59 |
+
}
|
60 |
+
|
61 |
+
max_epoch: 533
|
62 |
+
|
63 |
+
validate_every: 1
|
64 |
+
save_every: 10
|
65 |
+
vis_every: 20
|
66 |
+
|
67 |
+
seed: 1234
|
68 |
+
|
69 |
+
dist_url: env://
|
70 |
+
pretrained: ./pretrained/upr_backwarp_corr_resize_model.pth
|
cfgs/upr_custom_4090_exp2.yaml
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: backwarp_resize
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/upr_backward
|
9 |
+
split: train
|
10 |
+
patch_size: 256
|
11 |
+
flow: none
|
12 |
+
loader:
|
13 |
+
batch_size: 32
|
14 |
+
num_workers: 8
|
15 |
+
|
16 |
+
test_dataset:
|
17 |
+
name: vimeo
|
18 |
+
args:
|
19 |
+
root_path: ../datasets/Vimeo90K
|
20 |
+
split: val
|
21 |
+
loader:
|
22 |
+
batch_size: 32
|
23 |
+
num_workers: 8
|
24 |
+
|
25 |
+
demo_dataset:
|
26 |
+
name: demo
|
27 |
+
args:
|
28 |
+
root_path: ../data/animation
|
29 |
+
split: animation
|
30 |
+
|
31 |
+
model:
|
32 |
+
name: upr_net_mod
|
33 |
+
args:
|
34 |
+
pyr_level: 5
|
35 |
+
nr_lvl_skipped: 0
|
36 |
+
splat_mode: average
|
37 |
+
|
38 |
+
|
39 |
+
optimizer:
|
40 |
+
name: adamW
|
41 |
+
args: {lr: 0.00015, weight_decay: 1.e-4}
|
42 |
+
|
43 |
+
lr_scheduler:
|
44 |
+
name: one_cycle_lr
|
45 |
+
args:
|
46 |
+
max_lr: 0.00015
|
47 |
+
pct_start: 0.01
|
48 |
+
cycle_momentum: False
|
49 |
+
anneal_strategy: cos
|
50 |
+
|
51 |
+
loss:
|
52 |
+
- {
|
53 |
+
name: charbonnier,
|
54 |
+
args: { weight: 1 }
|
55 |
+
}
|
56 |
+
- {
|
57 |
+
name: ternary,
|
58 |
+
args: { weight: 1 }
|
59 |
+
}
|
60 |
+
|
61 |
+
max_epoch: 533
|
62 |
+
|
63 |
+
validate_every: 1
|
64 |
+
save_every: 10
|
65 |
+
vis_every: 20
|
66 |
+
|
67 |
+
seed: 1234
|
68 |
+
|
69 |
+
dist_url: env://
|
70 |
+
pretrained: ./pretrained/upr_backwarp_corr_resize_model.pth
|
cfgs/upr_freq003.yaml
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFreqLoss_Distance
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/Vimeo90K
|
9 |
+
flow_root: ../datasets/unimatch_flow
|
10 |
+
split: train
|
11 |
+
patch_size: 256
|
12 |
+
flow: 't0'
|
13 |
+
use_distance: True
|
14 |
+
distance_root: ../datasets/distance_map
|
15 |
+
loader:
|
16 |
+
batch_size: 32
|
17 |
+
num_workers: 8
|
18 |
+
|
19 |
+
test_dataset:
|
20 |
+
name: vimeo
|
21 |
+
args:
|
22 |
+
root_path: ../datasets/Vimeo90K
|
23 |
+
split: val
|
24 |
+
use_distance: True
|
25 |
+
loader:
|
26 |
+
batch_size: 16
|
27 |
+
num_workers: 4
|
28 |
+
save_imgs: False
|
29 |
+
|
30 |
+
demo_dataset:
|
31 |
+
name: demo
|
32 |
+
args:
|
33 |
+
root_path: ../data/animation
|
34 |
+
split: animation
|
35 |
+
|
36 |
+
model:
|
37 |
+
name: upr_net_freq
|
38 |
+
args:
|
39 |
+
pyr_level: 3
|
40 |
+
nr_lvl_skipped: 0
|
41 |
+
splat_mode: average
|
42 |
+
fftshift: False
|
43 |
+
|
44 |
+
|
45 |
+
optimizer:
|
46 |
+
name: adamW
|
47 |
+
args: {lr: 1.5e-4, weight_decay: 1.e-4}
|
48 |
+
|
49 |
+
lr_scheduler:
|
50 |
+
name: one_cycle_lr
|
51 |
+
args:
|
52 |
+
max_lr: 1.5e-4
|
53 |
+
pct_start: 0.01
|
54 |
+
cycle_momentum: False
|
55 |
+
anneal_strategy: cos
|
56 |
+
|
57 |
+
loss:
|
58 |
+
- {
|
59 |
+
name: frequency,
|
60 |
+
args: { weight: 0.01 }
|
61 |
+
}
|
62 |
+
- {
|
63 |
+
name: bi_frequency,
|
64 |
+
args: { weight: 0.01 }
|
65 |
+
}
|
66 |
+
- {
|
67 |
+
name: multiple_flow,
|
68 |
+
args: { weight: 0.005 }
|
69 |
+
}
|
70 |
+
- {
|
71 |
+
name: charbonnier,
|
72 |
+
args: { weight: 1 }
|
73 |
+
}
|
74 |
+
- {
|
75 |
+
name: ternary,
|
76 |
+
args: { weight: 1 }
|
77 |
+
}
|
78 |
+
|
79 |
+
|
80 |
+
max_epoch: 540
|
81 |
+
|
82 |
+
validate_every: 10
|
83 |
+
save_every: 10
|
84 |
+
vis_every: 20
|
85 |
+
|
86 |
+
seed: 1234
|
87 |
+
|
88 |
+
dist_url: env://
|
cfgs/upr_freq004.yaml
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFreqLoss_Distance
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/Vimeo90K
|
9 |
+
flow_root: ../datasets/unimatch_flow
|
10 |
+
split: train
|
11 |
+
patch_size: 256
|
12 |
+
flow: 't0'
|
13 |
+
use_distance: True
|
14 |
+
distance_root: ../datasets/distance_map
|
15 |
+
loader:
|
16 |
+
batch_size: 32
|
17 |
+
num_workers: 8
|
18 |
+
|
19 |
+
test_dataset:
|
20 |
+
name: vimeo
|
21 |
+
args:
|
22 |
+
root_path: ../datasets/Vimeo90K
|
23 |
+
split: val
|
24 |
+
use_distance: True
|
25 |
+
loader:
|
26 |
+
batch_size: 16
|
27 |
+
num_workers: 4
|
28 |
+
save_imgs: False
|
29 |
+
|
30 |
+
demo_dataset:
|
31 |
+
name: demo
|
32 |
+
args:
|
33 |
+
root_path: ../data/animation
|
34 |
+
split: animation
|
35 |
+
|
36 |
+
model:
|
37 |
+
name: upr_net_freq
|
38 |
+
args:
|
39 |
+
pyr_level: 3
|
40 |
+
nr_lvl_skipped: 0
|
41 |
+
splat_mode: average
|
42 |
+
fftshift: False
|
43 |
+
|
44 |
+
|
45 |
+
optimizer:
|
46 |
+
name: adamW
|
47 |
+
args: {lr: 1.5e-4, weight_decay: 1.e-4}
|
48 |
+
|
49 |
+
lr_scheduler:
|
50 |
+
name: one_cycle_lr
|
51 |
+
args:
|
52 |
+
max_lr: 1.5e-4
|
53 |
+
pct_start: 0.01
|
54 |
+
cycle_momentum: False
|
55 |
+
anneal_strategy: cos
|
56 |
+
|
57 |
+
loss:
|
58 |
+
- {
|
59 |
+
name: frequency,
|
60 |
+
args: { weight: 0.01 }
|
61 |
+
}
|
62 |
+
- {
|
63 |
+
name: bi_frequency,
|
64 |
+
args: { weight: 0.01 }
|
65 |
+
}
|
66 |
+
- {
|
67 |
+
name: multiple_flow,
|
68 |
+
args: { weight: 0.005 }
|
69 |
+
}
|
70 |
+
- {
|
71 |
+
name: charbonnier,
|
72 |
+
args: { weight: 1 }
|
73 |
+
}
|
74 |
+
- {
|
75 |
+
name: ternary,
|
76 |
+
args: { weight: 1 }
|
77 |
+
}
|
78 |
+
|
79 |
+
|
80 |
+
max_epoch: 540
|
81 |
+
|
82 |
+
validate_every: 10
|
83 |
+
save_every: 10
|
84 |
+
vis_every: 20
|
85 |
+
|
86 |
+
seed: 1234
|
87 |
+
|
88 |
+
dist_url: env://
|
cfgs/upr_freq005.yaml
ADDED
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_EncFreqs_AsymFreqDec
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/Vimeo90K
|
9 |
+
flow_root: ../datasets/unimatch_flow
|
10 |
+
split: train
|
11 |
+
patch_size: 256
|
12 |
+
flow: 't0'
|
13 |
+
use_distance: False
|
14 |
+
loader:
|
15 |
+
batch_size: 32
|
16 |
+
num_workers: 8
|
17 |
+
|
18 |
+
test_dataset:
|
19 |
+
name: vimeo
|
20 |
+
args:
|
21 |
+
root_path: ../datasets/Vimeo90K
|
22 |
+
split: val
|
23 |
+
use_distance: False
|
24 |
+
loader:
|
25 |
+
batch_size: 16
|
26 |
+
num_workers: 4
|
27 |
+
save_imgs: False
|
28 |
+
|
29 |
+
demo_dataset:
|
30 |
+
name: demo
|
31 |
+
args:
|
32 |
+
root_path: ../data/animation
|
33 |
+
split: animation
|
34 |
+
|
35 |
+
model:
|
36 |
+
name: upr_net_freq
|
37 |
+
args:
|
38 |
+
pyr_level: 3
|
39 |
+
nr_lvl_skipped: 0
|
40 |
+
splat_mode: average
|
41 |
+
fftshift: False
|
42 |
+
|
43 |
+
|
44 |
+
optimizer:
|
45 |
+
name: adamW
|
46 |
+
args: {lr: 1.5e-4, weight_decay: 1.e-4}
|
47 |
+
|
48 |
+
lr_scheduler:
|
49 |
+
name: one_cycle_lr
|
50 |
+
args:
|
51 |
+
max_lr: 1.5e-4
|
52 |
+
pct_start: 0.01
|
53 |
+
cycle_momentum: False
|
54 |
+
anneal_strategy: cos
|
55 |
+
|
56 |
+
loss:
|
57 |
+
- {
|
58 |
+
name: frequency,
|
59 |
+
args: { weight: 0.01 }
|
60 |
+
}
|
61 |
+
- {
|
62 |
+
name: bi_frequency,
|
63 |
+
args: { weight: 0.01 }
|
64 |
+
}
|
65 |
+
- {
|
66 |
+
name: multiple_flow,
|
67 |
+
args: { weight: 0.005 }
|
68 |
+
}
|
69 |
+
- {
|
70 |
+
name: charbonnier,
|
71 |
+
args: { weight: 1 }
|
72 |
+
}
|
73 |
+
- {
|
74 |
+
name: ternary,
|
75 |
+
args: { weight: 1 }
|
76 |
+
}
|
77 |
+
|
78 |
+
|
79 |
+
max_epoch: 540
|
80 |
+
|
81 |
+
validate_every: 10
|
82 |
+
save_every: 10
|
83 |
+
vis_every: 20
|
84 |
+
|
85 |
+
seed: 1234
|
86 |
+
|
87 |
+
dist_url: env://
|
cfgs/upr_freq006.yaml
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_Basic_ChangeFreqCNN
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/Vimeo90K
|
9 |
+
flow_root: ../datasets/unimatch_flow
|
10 |
+
split: train
|
11 |
+
patch_size: 256
|
12 |
+
flow: none
|
13 |
+
use_distance: False
|
14 |
+
loader:
|
15 |
+
batch_size: 32
|
16 |
+
num_workers: 8
|
17 |
+
|
18 |
+
test_dataset:
|
19 |
+
name: vimeo
|
20 |
+
args:
|
21 |
+
root_path: ../datasets/Vimeo90K
|
22 |
+
split: val
|
23 |
+
use_distance: False
|
24 |
+
loader:
|
25 |
+
batch_size: 16
|
26 |
+
num_workers: 4
|
27 |
+
save_imgs: False
|
28 |
+
|
29 |
+
demo_dataset:
|
30 |
+
name: demo
|
31 |
+
args:
|
32 |
+
root_path: ../data/animation
|
33 |
+
split: animation
|
34 |
+
|
35 |
+
model:
|
36 |
+
name: upr_net_freq2
|
37 |
+
args:
|
38 |
+
pyr_level: 3
|
39 |
+
nr_lvl_skipped: 0
|
40 |
+
splat_mode: average
|
41 |
+
fftshift: True
|
42 |
+
|
43 |
+
|
44 |
+
optimizer:
|
45 |
+
name: adamW
|
46 |
+
args: {lr: 1.5e-4, weight_decay: 1.e-4}
|
47 |
+
|
48 |
+
lr_scheduler:
|
49 |
+
name: one_cycle_lr
|
50 |
+
args:
|
51 |
+
max_lr: 1.5e-4
|
52 |
+
pct_start: 0.01
|
53 |
+
cycle_momentum: False
|
54 |
+
anneal_strategy: cos
|
55 |
+
|
56 |
+
loss:
|
57 |
+
- {
|
58 |
+
name: frequency,
|
59 |
+
args: { weight: 0.01 }
|
60 |
+
}
|
61 |
+
- {
|
62 |
+
name: bi_frequency,
|
63 |
+
args: { weight: 0.01 }
|
64 |
+
}
|
65 |
+
- {
|
66 |
+
name: charbonnier,
|
67 |
+
args: { weight: 1 }
|
68 |
+
}
|
69 |
+
- {
|
70 |
+
name: ternary,
|
71 |
+
args: { weight: 1 }
|
72 |
+
}
|
73 |
+
|
74 |
+
|
75 |
+
max_epoch: 540
|
76 |
+
|
77 |
+
validate_every: 10
|
78 |
+
save_every: 10
|
79 |
+
vis_every: 20
|
80 |
+
|
81 |
+
seed: 1234
|
82 |
+
|
83 |
+
dist_url: env://
|
cfgs/upr_freq007.yaml
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_FETAmpPhaResid
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/Vimeo90K
|
9 |
+
flow_root: ../datasets/unimatch_flow
|
10 |
+
split: train
|
11 |
+
patch_size: 256
|
12 |
+
flow: none
|
13 |
+
use_distance: False
|
14 |
+
loader:
|
15 |
+
batch_size: 32
|
16 |
+
num_workers: 8
|
17 |
+
|
18 |
+
test_dataset:
|
19 |
+
name: vimeo
|
20 |
+
args:
|
21 |
+
root_path: ../datasets/Vimeo90K
|
22 |
+
split: val
|
23 |
+
use_distance: False
|
24 |
+
loader:
|
25 |
+
batch_size: 16
|
26 |
+
num_workers: 4
|
27 |
+
save_imgs: False
|
28 |
+
|
29 |
+
demo_dataset:
|
30 |
+
name: demo
|
31 |
+
args:
|
32 |
+
root_path: ../data/animation
|
33 |
+
split: animation
|
34 |
+
|
35 |
+
model:
|
36 |
+
name: upr_net_freq2
|
37 |
+
args:
|
38 |
+
pyr_level: 3
|
39 |
+
nr_lvl_skipped: 0
|
40 |
+
splat_mode: average
|
41 |
+
fftshift: True
|
42 |
+
|
43 |
+
|
44 |
+
optimizer:
|
45 |
+
name: adamW
|
46 |
+
args: {lr: 1.5e-4, weight_decay: 1.e-4}
|
47 |
+
|
48 |
+
lr_scheduler:
|
49 |
+
name: one_cycle_lr
|
50 |
+
args:
|
51 |
+
max_lr: 1.5e-4
|
52 |
+
pct_start: 0.01
|
53 |
+
cycle_momentum: False
|
54 |
+
anneal_strategy: cos
|
55 |
+
|
56 |
+
loss:
|
57 |
+
- {
|
58 |
+
name: frequency,
|
59 |
+
args: { weight: 0.01 }
|
60 |
+
}
|
61 |
+
- {
|
62 |
+
name: bi_frequency,
|
63 |
+
args: { weight: 0.01 }
|
64 |
+
}
|
65 |
+
- {
|
66 |
+
name: charbonnier,
|
67 |
+
args: { weight: 1 }
|
68 |
+
}
|
69 |
+
- {
|
70 |
+
name: ternary,
|
71 |
+
args: { weight: 1 }
|
72 |
+
}
|
73 |
+
|
74 |
+
|
75 |
+
max_epoch: 540
|
76 |
+
|
77 |
+
validate_every: 10
|
78 |
+
save_every: 10
|
79 |
+
vis_every: 20
|
80 |
+
|
81 |
+
seed: 1234
|
82 |
+
|
83 |
+
dist_url: env://
|
cfgs/upr_freq008.yaml
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_FETAmpPhaResid
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/Vimeo90K
|
9 |
+
flow_root: ../datasets/unimatch_flow
|
10 |
+
split: train
|
11 |
+
patch_size: 256
|
12 |
+
flow: none
|
13 |
+
use_distance: False
|
14 |
+
loader:
|
15 |
+
batch_size: 32
|
16 |
+
num_workers: 8
|
17 |
+
|
18 |
+
test_dataset:
|
19 |
+
name: vimeo
|
20 |
+
args:
|
21 |
+
root_path: ../datasets/Vimeo90K
|
22 |
+
split: val
|
23 |
+
use_distance: False
|
24 |
+
loader:
|
25 |
+
batch_size: 16
|
26 |
+
num_workers: 4
|
27 |
+
save_imgs: False
|
28 |
+
|
29 |
+
demo_dataset:
|
30 |
+
name: demo
|
31 |
+
args:
|
32 |
+
root_path: ../data/animation
|
33 |
+
split: animation
|
34 |
+
|
35 |
+
model:
|
36 |
+
name: upr_net_freq2
|
37 |
+
args:
|
38 |
+
pyr_level: 3
|
39 |
+
nr_lvl_skipped: 0
|
40 |
+
splat_mode: average
|
41 |
+
fftshift: False
|
42 |
+
|
43 |
+
|
44 |
+
optimizer:
|
45 |
+
name: adamW
|
46 |
+
args: {lr: 1.5e-4, weight_decay: 1.e-4}
|
47 |
+
|
48 |
+
lr_scheduler:
|
49 |
+
name: one_cycle_lr
|
50 |
+
args:
|
51 |
+
max_lr: 1.5e-4
|
52 |
+
pct_start: 0.01
|
53 |
+
cycle_momentum: False
|
54 |
+
anneal_strategy: cos
|
55 |
+
|
56 |
+
loss:
|
57 |
+
- {
|
58 |
+
name: frequency,
|
59 |
+
args: { weight: 0.01 }
|
60 |
+
}
|
61 |
+
- {
|
62 |
+
name: bi_frequency,
|
63 |
+
args: { weight: 0.01 }
|
64 |
+
}
|
65 |
+
- {
|
66 |
+
name: charbonnier,
|
67 |
+
args: { weight: 1 }
|
68 |
+
}
|
69 |
+
- {
|
70 |
+
name: ternary,
|
71 |
+
args: { weight: 1 }
|
72 |
+
}
|
73 |
+
|
74 |
+
|
75 |
+
max_epoch: 540
|
76 |
+
|
77 |
+
validate_every: 10
|
78 |
+
save_every: 10
|
79 |
+
vis_every: 20
|
80 |
+
|
81 |
+
seed: 1234
|
82 |
+
|
83 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp001.yaml
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FreqeuncyEnhancementTransformer
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/Vimeo90K
|
9 |
+
flow_root: ../datasets/unimatch_flow
|
10 |
+
split: train
|
11 |
+
patch_size: 256
|
12 |
+
flow: 't0'
|
13 |
+
loader:
|
14 |
+
batch_size: 32
|
15 |
+
num_workers: 8
|
16 |
+
|
17 |
+
test_dataset:
|
18 |
+
name: vimeo
|
19 |
+
args:
|
20 |
+
root_path: ../datasets/Vimeo90K
|
21 |
+
split: val
|
22 |
+
loader:
|
23 |
+
batch_size: 16
|
24 |
+
num_workers: 4
|
25 |
+
save_imgs: False
|
26 |
+
|
27 |
+
demo_dataset:
|
28 |
+
name: demo
|
29 |
+
args:
|
30 |
+
root_path: ../data/animation
|
31 |
+
split: animation
|
32 |
+
|
33 |
+
model:
|
34 |
+
name: upr_net_freq
|
35 |
+
args:
|
36 |
+
pyr_level: 3
|
37 |
+
nr_lvl_skipped: 0
|
38 |
+
splat_mode: average
|
39 |
+
fftshift: False
|
40 |
+
|
41 |
+
|
42 |
+
optimizer:
|
43 |
+
name: adamW
|
44 |
+
args: {lr: 1.5e-4, weight_decay: 1.e-4}
|
45 |
+
|
46 |
+
lr_scheduler:
|
47 |
+
name: one_cycle_lr
|
48 |
+
args:
|
49 |
+
max_lr: 1.5e-4
|
50 |
+
pct_start: 0.01
|
51 |
+
cycle_momentum: False
|
52 |
+
anneal_strategy: cos
|
53 |
+
|
54 |
+
loss:
|
55 |
+
- {
|
56 |
+
name: frequency,
|
57 |
+
args: { weight: 0.01 }
|
58 |
+
}
|
59 |
+
- {
|
60 |
+
name: multiple_flow,
|
61 |
+
args: { weight: 0.005 }
|
62 |
+
}
|
63 |
+
- {
|
64 |
+
name: charbonnier,
|
65 |
+
args: { weight: 1 }
|
66 |
+
}
|
67 |
+
- {
|
68 |
+
name: ternary,
|
69 |
+
args: { weight: 1 }
|
70 |
+
}
|
71 |
+
|
72 |
+
|
73 |
+
max_epoch: 540
|
74 |
+
|
75 |
+
validate_every: 10
|
76 |
+
save_every: 10
|
77 |
+
vis_every: 20
|
78 |
+
|
79 |
+
seed: 1234
|
80 |
+
|
81 |
+
dist_url: env://
|
82 |
+
|
83 |
+
resume: ./save/upr_freq_unimatch_exp001_FreqeuncyEnhancementTransformer/checkpoints/model_420.pth
|
cfgs/upr_freq_unimatch_exp002.yaml
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/Vimeo90K
|
9 |
+
flow_root: ../datasets/unimatch_flow
|
10 |
+
split: train
|
11 |
+
patch_size: 256
|
12 |
+
flow: 't0'
|
13 |
+
loader:
|
14 |
+
batch_size: 32
|
15 |
+
num_workers: 8
|
16 |
+
|
17 |
+
test_dataset:
|
18 |
+
name: vimeo
|
19 |
+
args:
|
20 |
+
root_path: ../datasets/Vimeo90K
|
21 |
+
split: val
|
22 |
+
loader:
|
23 |
+
batch_size: 16
|
24 |
+
num_workers: 4
|
25 |
+
save_imgs: False
|
26 |
+
|
27 |
+
demo_dataset:
|
28 |
+
name: demo
|
29 |
+
args:
|
30 |
+
root_path: ../data/animation
|
31 |
+
split: animation
|
32 |
+
|
33 |
+
model:
|
34 |
+
name: upr_net_freq
|
35 |
+
args:
|
36 |
+
pyr_level: 3
|
37 |
+
nr_lvl_skipped: 0
|
38 |
+
splat_mode: average
|
39 |
+
fftshift: False
|
40 |
+
|
41 |
+
|
42 |
+
optimizer:
|
43 |
+
name: adamW
|
44 |
+
args: {lr: 1.5e-4, weight_decay: 1.e-4}
|
45 |
+
|
46 |
+
lr_scheduler:
|
47 |
+
name: one_cycle_lr
|
48 |
+
args:
|
49 |
+
max_lr: 1.5e-4
|
50 |
+
pct_start: 0.01
|
51 |
+
cycle_momentum: False
|
52 |
+
anneal_strategy: cos
|
53 |
+
|
54 |
+
loss:
|
55 |
+
- {
|
56 |
+
name: frequency,
|
57 |
+
args: { weight: 0.01 }
|
58 |
+
}
|
59 |
+
- {
|
60 |
+
name: bi_frequency,
|
61 |
+
args: { weight: 0.01 }
|
62 |
+
}
|
63 |
+
- {
|
64 |
+
name: multiple_flow,
|
65 |
+
args: { weight: 0.005 }
|
66 |
+
}
|
67 |
+
- {
|
68 |
+
name: charbonnier,
|
69 |
+
args: { weight: 1 }
|
70 |
+
}
|
71 |
+
- {
|
72 |
+
name: ternary,
|
73 |
+
args: { weight: 1 }
|
74 |
+
}
|
75 |
+
|
76 |
+
|
77 |
+
max_epoch: 540
|
78 |
+
|
79 |
+
validate_every: 10
|
80 |
+
save_every: 10
|
81 |
+
vis_every: 20
|
82 |
+
|
83 |
+
seed: 1234
|
84 |
+
|
85 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp002_20240111_extratraining1.yaml
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/frames1_triplet
|
9 |
+
flow_root: ../datasets/frames1_unimatch_flow
|
10 |
+
tri_trainlist: tri_trainlist.txt
|
11 |
+
split: train
|
12 |
+
patch_size: 256
|
13 |
+
flow: 't0'
|
14 |
+
loader:
|
15 |
+
batch_size: 16
|
16 |
+
num_workers: 4
|
17 |
+
|
18 |
+
# test_dataset:
|
19 |
+
# name: vimeo
|
20 |
+
# args:
|
21 |
+
# root_path: ../datasets/Vimeo90K
|
22 |
+
# split: val
|
23 |
+
# loader:
|
24 |
+
# batch_size: 16
|
25 |
+
# num_workers: 4
|
26 |
+
# save_imgs: False
|
27 |
+
|
28 |
+
# demo_dataset:
|
29 |
+
# name: demo
|
30 |
+
# args:
|
31 |
+
# root_path: ../data/animation
|
32 |
+
# split: animation
|
33 |
+
|
34 |
+
model:
|
35 |
+
name: upr_net_freq
|
36 |
+
args:
|
37 |
+
pyr_level: 3
|
38 |
+
nr_lvl_skipped: 0
|
39 |
+
splat_mode: average
|
40 |
+
fftshift: False
|
41 |
+
|
42 |
+
|
43 |
+
optimizer:
|
44 |
+
name: adamW
|
45 |
+
args: {lr: 4.e-6, weight_decay: 1.e-4}
|
46 |
+
|
47 |
+
lr_scheduler:
|
48 |
+
name: one_cycle_lr
|
49 |
+
args:
|
50 |
+
max_lr: 4.e-6
|
51 |
+
pct_start: 0.01
|
52 |
+
cycle_momentum: False
|
53 |
+
anneal_strategy: cos
|
54 |
+
|
55 |
+
loss:
|
56 |
+
- {
|
57 |
+
name: frequency,
|
58 |
+
args: { weight: 0.01 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: bi_frequency,
|
62 |
+
args: { weight: 0.01 }
|
63 |
+
}
|
64 |
+
- {
|
65 |
+
name: multiple_flow,
|
66 |
+
args: { weight: 0.005 }
|
67 |
+
}
|
68 |
+
- {
|
69 |
+
name: charbonnier,
|
70 |
+
args: { weight: 1 }
|
71 |
+
}
|
72 |
+
- {
|
73 |
+
name: ternary,
|
74 |
+
args: { weight: 1 }
|
75 |
+
}
|
76 |
+
|
77 |
+
pretrained: ./pretrained/upr_freq002.pth
|
78 |
+
max_epoch: 300
|
79 |
+
|
80 |
+
validate_every: 10
|
81 |
+
save_every: 10
|
82 |
+
vis_every: 20
|
83 |
+
|
84 |
+
seed: 1234
|
85 |
+
|
86 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_2_1.yaml
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/frames2_triplet
|
9 |
+
flow_root: ../datasets/frames2_unimatch_flow
|
10 |
+
tri_trainlist: tri_trainlist.txt
|
11 |
+
split: train
|
12 |
+
patch_size: 256
|
13 |
+
flow: 't0'
|
14 |
+
loader:
|
15 |
+
batch_size: 16
|
16 |
+
num_workers: 4
|
17 |
+
|
18 |
+
# test_dataset:
|
19 |
+
# name: vimeo
|
20 |
+
# args:
|
21 |
+
# root_path: ../datasets/Vimeo90K
|
22 |
+
# split: val
|
23 |
+
# loader:
|
24 |
+
# batch_size: 16
|
25 |
+
# num_workers: 4
|
26 |
+
# save_imgs: False
|
27 |
+
|
28 |
+
# demo_dataset:
|
29 |
+
# name: demo
|
30 |
+
# args:
|
31 |
+
# root_path: ../data/animation
|
32 |
+
# split: animation
|
33 |
+
|
34 |
+
model:
|
35 |
+
name: upr_net_freq
|
36 |
+
args:
|
37 |
+
pyr_level: 3
|
38 |
+
nr_lvl_skipped: 0
|
39 |
+
splat_mode: average
|
40 |
+
fftshift: False
|
41 |
+
|
42 |
+
|
43 |
+
optimizer:
|
44 |
+
name: adamW
|
45 |
+
args: {lr: 7.5e-6, weight_decay: 1.e-4}
|
46 |
+
|
47 |
+
lr_scheduler:
|
48 |
+
name: one_cycle_lr
|
49 |
+
args:
|
50 |
+
max_lr: 7.5e-6
|
51 |
+
pct_start: 0.01
|
52 |
+
cycle_momentum: False
|
53 |
+
anneal_strategy: cos
|
54 |
+
|
55 |
+
loss:
|
56 |
+
- {
|
57 |
+
name: frequency,
|
58 |
+
args: { weight: 0.01 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: bi_frequency,
|
62 |
+
args: { weight: 0.01 }
|
63 |
+
}
|
64 |
+
- {
|
65 |
+
name: multiple_flow,
|
66 |
+
args: { weight: 0.005 }
|
67 |
+
}
|
68 |
+
- {
|
69 |
+
name: charbonnier,
|
70 |
+
args: { weight: 1 }
|
71 |
+
}
|
72 |
+
- {
|
73 |
+
name: ternary,
|
74 |
+
args: { weight: 1 }
|
75 |
+
}
|
76 |
+
|
77 |
+
pretrained: ./pretrained/upr_freq002.pth
|
78 |
+
max_epoch: 1000
|
79 |
+
|
80 |
+
validate_every: 10
|
81 |
+
save_every: 10
|
82 |
+
vis_every: 20
|
83 |
+
|
84 |
+
seed: 1234
|
85 |
+
|
86 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_2_2.yaml
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/frames2_triplet
|
9 |
+
flow_root: ../datasets/frames2_unimatch_flow
|
10 |
+
tri_trainlist: tri_trainlist.txt
|
11 |
+
split: train
|
12 |
+
patch_size: 256
|
13 |
+
flow: 't0'
|
14 |
+
loader:
|
15 |
+
batch_size: 16
|
16 |
+
num_workers: 4
|
17 |
+
|
18 |
+
# test_dataset:
|
19 |
+
# name: vimeo
|
20 |
+
# args:
|
21 |
+
# root_path: ../datasets/Vimeo90K
|
22 |
+
# split: val
|
23 |
+
# loader:
|
24 |
+
# batch_size: 16
|
25 |
+
# num_workers: 4
|
26 |
+
# save_imgs: False
|
27 |
+
|
28 |
+
# demo_dataset:
|
29 |
+
# name: demo
|
30 |
+
# args:
|
31 |
+
# root_path: ../data/animation
|
32 |
+
# split: animation
|
33 |
+
|
34 |
+
model:
|
35 |
+
name: upr_net_freq
|
36 |
+
args:
|
37 |
+
pyr_level: 3
|
38 |
+
nr_lvl_skipped: 0
|
39 |
+
splat_mode: average
|
40 |
+
fftshift: False
|
41 |
+
|
42 |
+
|
43 |
+
optimizer:
|
44 |
+
name: adamW
|
45 |
+
args: {lr: 4.e-6, weight_decay: 1.e-4}
|
46 |
+
|
47 |
+
lr_scheduler:
|
48 |
+
name: one_cycle_lr
|
49 |
+
args:
|
50 |
+
max_lr: 4.e-6
|
51 |
+
pct_start: 0.01
|
52 |
+
cycle_momentum: False
|
53 |
+
anneal_strategy: cos
|
54 |
+
|
55 |
+
loss:
|
56 |
+
- {
|
57 |
+
name: frequency,
|
58 |
+
args: { weight: 0.01 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: bi_frequency,
|
62 |
+
args: { weight: 0.01 }
|
63 |
+
}
|
64 |
+
- {
|
65 |
+
name: multiple_flow,
|
66 |
+
args: { weight: 0.005 }
|
67 |
+
}
|
68 |
+
- {
|
69 |
+
name: charbonnier,
|
70 |
+
args: { weight: 1 }
|
71 |
+
}
|
72 |
+
- {
|
73 |
+
name: ternary,
|
74 |
+
args: { weight: 1 }
|
75 |
+
}
|
76 |
+
|
77 |
+
pretrained: ./pretrained/upr_freq002.pth
|
78 |
+
max_epoch: 1000
|
79 |
+
|
80 |
+
validate_every: 10
|
81 |
+
save_every: 10
|
82 |
+
vis_every: 20
|
83 |
+
|
84 |
+
seed: 1234
|
85 |
+
|
86 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_2_3.yaml
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/frames2_triplet
|
9 |
+
flow_root: ../datasets/frames2_unimatch_flow
|
10 |
+
tri_trainlist: tri_trainlist.txt
|
11 |
+
split: train
|
12 |
+
patch_size: 256
|
13 |
+
flow: 't0'
|
14 |
+
loader:
|
15 |
+
batch_size: 16
|
16 |
+
num_workers: 4
|
17 |
+
|
18 |
+
# test_dataset:
|
19 |
+
# name: vimeo
|
20 |
+
# args:
|
21 |
+
# root_path: ../datasets/Vimeo90K
|
22 |
+
# split: val
|
23 |
+
# loader:
|
24 |
+
# batch_size: 16
|
25 |
+
# num_workers: 4
|
26 |
+
# save_imgs: False
|
27 |
+
|
28 |
+
# demo_dataset:
|
29 |
+
# name: demo
|
30 |
+
# args:
|
31 |
+
# root_path: ../data/animation
|
32 |
+
# split: animation
|
33 |
+
|
34 |
+
model:
|
35 |
+
name: upr_net_freq
|
36 |
+
args:
|
37 |
+
pyr_level: 3
|
38 |
+
nr_lvl_skipped: 0
|
39 |
+
splat_mode: average
|
40 |
+
fftshift: False
|
41 |
+
|
42 |
+
|
43 |
+
optimizer:
|
44 |
+
name: adamW
|
45 |
+
args: {lr: 1.e-6, weight_decay: 1.e-4}
|
46 |
+
|
47 |
+
lr_scheduler:
|
48 |
+
name: one_cycle_lr
|
49 |
+
args:
|
50 |
+
max_lr: 1.e-6
|
51 |
+
pct_start: 0.01
|
52 |
+
cycle_momentum: False
|
53 |
+
anneal_strategy: cos
|
54 |
+
|
55 |
+
loss:
|
56 |
+
- {
|
57 |
+
name: frequency,
|
58 |
+
args: { weight: 0.01 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: bi_frequency,
|
62 |
+
args: { weight: 0.01 }
|
63 |
+
}
|
64 |
+
- {
|
65 |
+
name: multiple_flow,
|
66 |
+
args: { weight: 0.005 }
|
67 |
+
}
|
68 |
+
- {
|
69 |
+
name: charbonnier,
|
70 |
+
args: { weight: 1 }
|
71 |
+
}
|
72 |
+
- {
|
73 |
+
name: ternary,
|
74 |
+
args: { weight: 1 }
|
75 |
+
}
|
76 |
+
|
77 |
+
pretrained: ./pretrained/upr_freq002.pth
|
78 |
+
max_epoch: 10000
|
79 |
+
|
80 |
+
validate_every: 1000
|
81 |
+
save_every: 1000
|
82 |
+
vis_every: 2000
|
83 |
+
|
84 |
+
seed: 1234
|
85 |
+
|
86 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_2_4.yaml
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/frames2_triplet
|
9 |
+
flow_root: ../datasets/frames2_unimatch_flow
|
10 |
+
tri_trainlist: tri_trainlist.txt
|
11 |
+
split: train
|
12 |
+
patch_size: 256
|
13 |
+
flow: 't0'
|
14 |
+
loader:
|
15 |
+
batch_size: 16
|
16 |
+
num_workers: 4
|
17 |
+
|
18 |
+
# test_dataset:
|
19 |
+
# name: vimeo
|
20 |
+
# args:
|
21 |
+
# root_path: ../datasets/Vimeo90K
|
22 |
+
# split: val
|
23 |
+
# loader:
|
24 |
+
# batch_size: 16
|
25 |
+
# num_workers: 4
|
26 |
+
# save_imgs: False
|
27 |
+
|
28 |
+
# demo_dataset:
|
29 |
+
# name: demo
|
30 |
+
# args:
|
31 |
+
# root_path: ../data/animation
|
32 |
+
# split: animation
|
33 |
+
|
34 |
+
model:
|
35 |
+
name: upr_net_freq
|
36 |
+
args:
|
37 |
+
pyr_level: 3
|
38 |
+
nr_lvl_skipped: 0
|
39 |
+
splat_mode: average
|
40 |
+
fftshift: False
|
41 |
+
|
42 |
+
|
43 |
+
optimizer:
|
44 |
+
name: adamW
|
45 |
+
args: {lr: 4.e-6, weight_decay: 1.e-4}
|
46 |
+
|
47 |
+
lr_scheduler:
|
48 |
+
name: one_cycle_lr
|
49 |
+
args:
|
50 |
+
max_lr: 4.e-6
|
51 |
+
pct_start: 0.01
|
52 |
+
cycle_momentum: False
|
53 |
+
anneal_strategy: cos
|
54 |
+
|
55 |
+
loss:
|
56 |
+
- {
|
57 |
+
name: frequency,
|
58 |
+
args: { weight: 0.01 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: bi_frequency,
|
62 |
+
args: { weight: 0.01 }
|
63 |
+
}
|
64 |
+
- {
|
65 |
+
name: multiple_flow,
|
66 |
+
args: { weight: 0.005 }
|
67 |
+
}
|
68 |
+
- {
|
69 |
+
name: charbonnier,
|
70 |
+
args: { weight: 1 }
|
71 |
+
}
|
72 |
+
- {
|
73 |
+
name: ternary,
|
74 |
+
args: { weight: 1 }
|
75 |
+
}
|
76 |
+
|
77 |
+
pretrained: ./pretrained/upr_freq002.pth
|
78 |
+
max_epoch: 10000
|
79 |
+
|
80 |
+
validate_every: 1000
|
81 |
+
save_every: 1000
|
82 |
+
vis_every: 2000
|
83 |
+
|
84 |
+
seed: 1234
|
85 |
+
|
86 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_3_1.yaml
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/frames3_triplet
|
9 |
+
flow_root: ../datasets/frames3_unimatch_flow
|
10 |
+
tri_trainlist: tri_trainlist.txt
|
11 |
+
split: train
|
12 |
+
patch_size: 256
|
13 |
+
flow: 't0'
|
14 |
+
loader:
|
15 |
+
batch_size: 16
|
16 |
+
num_workers: 4
|
17 |
+
|
18 |
+
# test_dataset:
|
19 |
+
# name: vimeo
|
20 |
+
# args:
|
21 |
+
# root_path: ../datasets/Vimeo90K
|
22 |
+
# split: val
|
23 |
+
# loader:
|
24 |
+
# batch_size: 16
|
25 |
+
# num_workers: 4
|
26 |
+
# save_imgs: False
|
27 |
+
|
28 |
+
# demo_dataset:
|
29 |
+
# name: demo
|
30 |
+
# args:
|
31 |
+
# root_path: ../data/animation
|
32 |
+
# split: animation
|
33 |
+
|
34 |
+
model:
|
35 |
+
name: upr_net_freq
|
36 |
+
args:
|
37 |
+
pyr_level: 3
|
38 |
+
nr_lvl_skipped: 0
|
39 |
+
splat_mode: average
|
40 |
+
fftshift: False
|
41 |
+
|
42 |
+
|
43 |
+
optimizer:
|
44 |
+
name: adamW
|
45 |
+
args: {lr: 7.5e-6, weight_decay: 1.e-4}
|
46 |
+
|
47 |
+
lr_scheduler:
|
48 |
+
name: one_cycle_lr
|
49 |
+
args:
|
50 |
+
max_lr: 7.5e-6
|
51 |
+
pct_start: 0.01
|
52 |
+
cycle_momentum: False
|
53 |
+
anneal_strategy: cos
|
54 |
+
|
55 |
+
loss:
|
56 |
+
- {
|
57 |
+
name: frequency,
|
58 |
+
args: { weight: 0.01 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: bi_frequency,
|
62 |
+
args: { weight: 0.01 }
|
63 |
+
}
|
64 |
+
- {
|
65 |
+
name: multiple_flow,
|
66 |
+
args: { weight: 0.005 }
|
67 |
+
}
|
68 |
+
- {
|
69 |
+
name: charbonnier,
|
70 |
+
args: { weight: 1 }
|
71 |
+
}
|
72 |
+
- {
|
73 |
+
name: ternary,
|
74 |
+
args: { weight: 1 }
|
75 |
+
}
|
76 |
+
|
77 |
+
pretrained: ./pretrained/upr_freq002.pth
|
78 |
+
max_epoch: 1000
|
79 |
+
|
80 |
+
validate_every: 10
|
81 |
+
save_every: 10
|
82 |
+
vis_every: 20
|
83 |
+
|
84 |
+
seed: 1234
|
85 |
+
|
86 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp002_20240111_extratraining1000_3_2.yaml
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/frames3_triplet
|
9 |
+
flow_root: ../datasets/frames3_unimatch_flow
|
10 |
+
tri_trainlist: tri_trainlist.txt
|
11 |
+
split: train
|
12 |
+
patch_size: 256
|
13 |
+
flow: 't0'
|
14 |
+
loader:
|
15 |
+
batch_size: 16
|
16 |
+
num_workers: 4
|
17 |
+
|
18 |
+
# test_dataset:
|
19 |
+
# name: vimeo
|
20 |
+
# args:
|
21 |
+
# root_path: ../datasets/Vimeo90K
|
22 |
+
# split: val
|
23 |
+
# loader:
|
24 |
+
# batch_size: 16
|
25 |
+
# num_workers: 4
|
26 |
+
# save_imgs: False
|
27 |
+
|
28 |
+
# demo_dataset:
|
29 |
+
# name: demo
|
30 |
+
# args:
|
31 |
+
# root_path: ../data/animation
|
32 |
+
# split: animation
|
33 |
+
|
34 |
+
model:
|
35 |
+
name: upr_net_freq
|
36 |
+
args:
|
37 |
+
pyr_level: 3
|
38 |
+
nr_lvl_skipped: 0
|
39 |
+
splat_mode: average
|
40 |
+
fftshift: False
|
41 |
+
|
42 |
+
|
43 |
+
optimizer:
|
44 |
+
name: adamW
|
45 |
+
args: {lr: 4.e-6, weight_decay: 1.e-4}
|
46 |
+
|
47 |
+
lr_scheduler:
|
48 |
+
name: one_cycle_lr
|
49 |
+
args:
|
50 |
+
max_lr: 4.e-6
|
51 |
+
pct_start: 0.01
|
52 |
+
cycle_momentum: False
|
53 |
+
anneal_strategy: cos
|
54 |
+
|
55 |
+
loss:
|
56 |
+
- {
|
57 |
+
name: frequency,
|
58 |
+
args: { weight: 0.01 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: bi_frequency,
|
62 |
+
args: { weight: 0.01 }
|
63 |
+
}
|
64 |
+
- {
|
65 |
+
name: multiple_flow,
|
66 |
+
args: { weight: 0.005 }
|
67 |
+
}
|
68 |
+
- {
|
69 |
+
name: charbonnier,
|
70 |
+
args: { weight: 1 }
|
71 |
+
}
|
72 |
+
- {
|
73 |
+
name: ternary,
|
74 |
+
args: { weight: 1 }
|
75 |
+
}
|
76 |
+
|
77 |
+
pretrained: ./pretrained/upr_freq002.pth
|
78 |
+
max_epoch: 1000
|
79 |
+
|
80 |
+
validate_every: 10
|
81 |
+
save_every: 10
|
82 |
+
vis_every: 20
|
83 |
+
|
84 |
+
seed: 1234
|
85 |
+
|
86 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp002_20240111_extratraining2.yaml
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/frames2_triplet
|
9 |
+
flow_root: ../datasets/frames2_unimatch_flow
|
10 |
+
tri_trainlist: tri_trainlist.txt
|
11 |
+
split: train
|
12 |
+
patch_size: 256
|
13 |
+
flow: 't0'
|
14 |
+
loader:
|
15 |
+
batch_size: 16
|
16 |
+
num_workers: 4
|
17 |
+
|
18 |
+
# test_dataset:
|
19 |
+
# name: vimeo
|
20 |
+
# args:
|
21 |
+
# root_path: ../datasets/Vimeo90K
|
22 |
+
# split: val
|
23 |
+
# loader:
|
24 |
+
# batch_size: 16
|
25 |
+
# num_workers: 4
|
26 |
+
# save_imgs: False
|
27 |
+
|
28 |
+
# demo_dataset:
|
29 |
+
# name: demo
|
30 |
+
# args:
|
31 |
+
# root_path: ../data/animation
|
32 |
+
# split: animation
|
33 |
+
|
34 |
+
model:
|
35 |
+
name: upr_net_freq
|
36 |
+
args:
|
37 |
+
pyr_level: 3
|
38 |
+
nr_lvl_skipped: 0
|
39 |
+
splat_mode: average
|
40 |
+
fftshift: False
|
41 |
+
|
42 |
+
|
43 |
+
optimizer:
|
44 |
+
name: adamW
|
45 |
+
args: {lr: 4.e-6, weight_decay: 1.e-4}
|
46 |
+
|
47 |
+
lr_scheduler:
|
48 |
+
name: one_cycle_lr
|
49 |
+
args:
|
50 |
+
max_lr: 4.e-6
|
51 |
+
pct_start: 0.01
|
52 |
+
cycle_momentum: False
|
53 |
+
anneal_strategy: cos
|
54 |
+
|
55 |
+
loss:
|
56 |
+
- {
|
57 |
+
name: frequency,
|
58 |
+
args: { weight: 0.01 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: bi_frequency,
|
62 |
+
args: { weight: 0.01 }
|
63 |
+
}
|
64 |
+
- {
|
65 |
+
name: multiple_flow,
|
66 |
+
args: { weight: 0.005 }
|
67 |
+
}
|
68 |
+
- {
|
69 |
+
name: charbonnier,
|
70 |
+
args: { weight: 1 }
|
71 |
+
}
|
72 |
+
- {
|
73 |
+
name: ternary,
|
74 |
+
args: { weight: 1 }
|
75 |
+
}
|
76 |
+
|
77 |
+
pretrained: ./pretrained/upr_freq002.pth
|
78 |
+
max_epoch: 300
|
79 |
+
|
80 |
+
validate_every: 10
|
81 |
+
save_every: 10
|
82 |
+
vis_every: 20
|
83 |
+
|
84 |
+
seed: 1234
|
85 |
+
|
86 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp002_20240111_extratraining3.yaml
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/frames3_triplet
|
9 |
+
flow_root: ../datasets/frames3_unimatch_flow
|
10 |
+
tri_trainlist: tri_trainlist.txt
|
11 |
+
split: train
|
12 |
+
patch_size: 256
|
13 |
+
flow: 't0'
|
14 |
+
loader:
|
15 |
+
batch_size: 16
|
16 |
+
num_workers: 4
|
17 |
+
|
18 |
+
# test_dataset:
|
19 |
+
# name: vimeo
|
20 |
+
# args:
|
21 |
+
# root_path: ../datasets/Vimeo90K
|
22 |
+
# split: val
|
23 |
+
# loader:
|
24 |
+
# batch_size: 16
|
25 |
+
# num_workers: 4
|
26 |
+
# save_imgs: False
|
27 |
+
|
28 |
+
# demo_dataset:
|
29 |
+
# name: demo
|
30 |
+
# args:
|
31 |
+
# root_path: ../data/animation
|
32 |
+
# split: animation
|
33 |
+
|
34 |
+
model:
|
35 |
+
name: upr_net_freq
|
36 |
+
args:
|
37 |
+
pyr_level: 3
|
38 |
+
nr_lvl_skipped: 0
|
39 |
+
splat_mode: average
|
40 |
+
fftshift: False
|
41 |
+
|
42 |
+
|
43 |
+
optimizer:
|
44 |
+
name: adamW
|
45 |
+
args: {lr: 4.e-6, weight_decay: 1.e-4}
|
46 |
+
|
47 |
+
lr_scheduler:
|
48 |
+
name: one_cycle_lr
|
49 |
+
args:
|
50 |
+
max_lr: 4.e-6
|
51 |
+
pct_start: 0.01
|
52 |
+
cycle_momentum: False
|
53 |
+
anneal_strategy: cos
|
54 |
+
|
55 |
+
loss:
|
56 |
+
- {
|
57 |
+
name: frequency,
|
58 |
+
args: { weight: 0.01 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: bi_frequency,
|
62 |
+
args: { weight: 0.01 }
|
63 |
+
}
|
64 |
+
- {
|
65 |
+
name: multiple_flow,
|
66 |
+
args: { weight: 0.005 }
|
67 |
+
}
|
68 |
+
- {
|
69 |
+
name: charbonnier,
|
70 |
+
args: { weight: 1 }
|
71 |
+
}
|
72 |
+
- {
|
73 |
+
name: ternary,
|
74 |
+
args: { weight: 1 }
|
75 |
+
}
|
76 |
+
|
77 |
+
pretrained: ./pretrained/upr_freq002.pth
|
78 |
+
max_epoch: 300
|
79 |
+
|
80 |
+
validate_every: 10
|
81 |
+
save_every: 10
|
82 |
+
vis_every: 20
|
83 |
+
|
84 |
+
seed: 1234
|
85 |
+
|
86 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp002_20240111_extratraining4.yaml
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/frames4_triplet
|
9 |
+
flow_root: ../datasets/frames4_unimatch_flow
|
10 |
+
tri_trainlist: tri_trainlist.txt
|
11 |
+
split: train
|
12 |
+
patch_size: 256
|
13 |
+
flow: 't0'
|
14 |
+
loader:
|
15 |
+
batch_size: 4
|
16 |
+
num_workers: 4
|
17 |
+
|
18 |
+
# test_dataset:
|
19 |
+
# name: vimeo
|
20 |
+
# args:
|
21 |
+
# root_path: ../datasets/Vimeo90K
|
22 |
+
# split: val
|
23 |
+
# loader:
|
24 |
+
# batch_size: 16
|
25 |
+
# num_workers: 4
|
26 |
+
# save_imgs: False
|
27 |
+
|
28 |
+
# demo_dataset:
|
29 |
+
# name: demo
|
30 |
+
# args:
|
31 |
+
# root_path: ../data/animation
|
32 |
+
# split: animation
|
33 |
+
|
34 |
+
model:
|
35 |
+
name: upr_net_freq
|
36 |
+
args:
|
37 |
+
pyr_level: 3
|
38 |
+
nr_lvl_skipped: 0
|
39 |
+
splat_mode: average
|
40 |
+
fftshift: False
|
41 |
+
|
42 |
+
|
43 |
+
optimizer:
|
44 |
+
name: adamW
|
45 |
+
args: {lr: 1.e-6, weight_decay: 1.e-4}
|
46 |
+
|
47 |
+
lr_scheduler:
|
48 |
+
name: one_cycle_lr
|
49 |
+
args:
|
50 |
+
max_lr: 1.e-6
|
51 |
+
pct_start: 0.01
|
52 |
+
cycle_momentum: False
|
53 |
+
anneal_strategy: cos
|
54 |
+
|
55 |
+
loss:
|
56 |
+
- {
|
57 |
+
name: frequency,
|
58 |
+
args: { weight: 0.01 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: bi_frequency,
|
62 |
+
args: { weight: 0.01 }
|
63 |
+
}
|
64 |
+
- {
|
65 |
+
name: multiple_flow,
|
66 |
+
args: { weight: 0.005 }
|
67 |
+
}
|
68 |
+
- {
|
69 |
+
name: charbonnier,
|
70 |
+
args: { weight: 1 }
|
71 |
+
}
|
72 |
+
- {
|
73 |
+
name: ternary,
|
74 |
+
args: { weight: 1 }
|
75 |
+
}
|
76 |
+
|
77 |
+
pretrained: ./pretrained/upr_freq002.pth
|
78 |
+
max_epoch: 300
|
79 |
+
|
80 |
+
validate_every: 10
|
81 |
+
save_every: 10
|
82 |
+
vis_every: 20
|
83 |
+
|
84 |
+
seed: 1234
|
85 |
+
|
86 |
+
dist_url: env://
|
cfgs/upr_freq_unimatch_exp002_stopmotion.yaml
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: FET-VFI_BiFrequencyLoss
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../datasets/256_new
|
9 |
+
flow_root: ../datasets/256_new_unimatch_flow
|
10 |
+
tri_trainlist: tri_trainlist_011.txt
|
11 |
+
split: train
|
12 |
+
patch_size: 256
|
13 |
+
flow: 't0'
|
14 |
+
loader:
|
15 |
+
batch_size: 32
|
16 |
+
num_workers: 8
|
17 |
+
|
18 |
+
test_dataset:
|
19 |
+
name: vimeo
|
20 |
+
args:
|
21 |
+
root_path: ../datasets/Vimeo90K
|
22 |
+
split: val
|
23 |
+
loader:
|
24 |
+
batch_size: 16
|
25 |
+
num_workers: 4
|
26 |
+
save_imgs: False
|
27 |
+
|
28 |
+
demo_dataset:
|
29 |
+
name: demo
|
30 |
+
args:
|
31 |
+
root_path: ../data/animation
|
32 |
+
split: animation
|
33 |
+
|
34 |
+
model:
|
35 |
+
name: upr_net_freq
|
36 |
+
args:
|
37 |
+
pyr_level: 3
|
38 |
+
nr_lvl_skipped: 0
|
39 |
+
splat_mode: average
|
40 |
+
fftshift: False
|
41 |
+
|
42 |
+
|
43 |
+
optimizer:
|
44 |
+
name: adamW
|
45 |
+
args: {lr: 4.e-6, weight_decay: 1.e-4}
|
46 |
+
|
47 |
+
lr_scheduler:
|
48 |
+
name: one_cycle_lr
|
49 |
+
args:
|
50 |
+
max_lr: 4.e-6
|
51 |
+
pct_start: 0.01
|
52 |
+
cycle_momentum: False
|
53 |
+
anneal_strategy: cos
|
54 |
+
|
55 |
+
loss:
|
56 |
+
- {
|
57 |
+
name: frequency,
|
58 |
+
args: { weight: 0.01 }
|
59 |
+
}
|
60 |
+
- {
|
61 |
+
name: bi_frequency,
|
62 |
+
args: { weight: 0.01 }
|
63 |
+
}
|
64 |
+
- {
|
65 |
+
name: multiple_flow,
|
66 |
+
args: { weight: 0.005 }
|
67 |
+
}
|
68 |
+
- {
|
69 |
+
name: charbonnier,
|
70 |
+
args: { weight: 1 }
|
71 |
+
}
|
72 |
+
- {
|
73 |
+
name: ternary,
|
74 |
+
args: { weight: 1 }
|
75 |
+
}
|
76 |
+
|
77 |
+
pretrained: ./pretrained/upr_freq002.pth
|
78 |
+
max_epoch: 300
|
79 |
+
|
80 |
+
validate_every: 10
|
81 |
+
save_every: 10
|
82 |
+
vis_every: 20
|
83 |
+
|
84 |
+
seed: 1234
|
85 |
+
|
86 |
+
dist_url: env://
|
cfgs/upr_vimeo_exp45.yaml
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
exp_name: upsample_guided_filter_v2
|
2 |
+
|
3 |
+
mode: train
|
4 |
+
|
5 |
+
train_dataset:
|
6 |
+
name: vimeo
|
7 |
+
args:
|
8 |
+
root_path: ../data/vimeo_triplet
|
9 |
+
split: train
|
10 |
+
patch_size: 256
|
11 |
+
flow: 't0'
|
12 |
+
seg: False
|
13 |
+
loader:
|
14 |
+
batch_size: 32
|
15 |
+
num_workers: 8
|
16 |
+
|
17 |
+
test_dataset:
|
18 |
+
name: vimeo
|
19 |
+
args:
|
20 |
+
root_path: ../data/vimeo_triplet
|
21 |
+
split: val
|
22 |
+
loader:
|
23 |
+
batch_size: 16
|
24 |
+
num_workers: 8
|
25 |
+
save_imgs: False
|
26 |
+
|
27 |
+
demo_dataset:
|
28 |
+
name: demo
|
29 |
+
args:
|
30 |
+
root_path: ../data/animation
|
31 |
+
split: animation
|
32 |
+
|
33 |
+
model:
|
34 |
+
name: upr_net_mod2
|
35 |
+
args:
|
36 |
+
pyr_level: 3
|
37 |
+
nr_lvl_skipped: 0
|
38 |
+
splat_mode: average
|
39 |
+
|
40 |
+
|
41 |
+
optimizer:
|
42 |
+
name: adamW
|
43 |
+
args: {lr: 1.5e-4, weight_decay: 1.e-4}
|
44 |
+
|
45 |
+
lr_scheduler:
|
46 |
+
name: one_cycle_lr
|
47 |
+
args:
|
48 |
+
max_lr: 1.5e-4
|
49 |
+
pct_start: 0.01
|
50 |
+
cycle_momentum: False
|
51 |
+
anneal_strategy: cos
|
52 |
+
|
53 |
+
loss:
|
54 |
+
- {
|
55 |
+
name: multiple_flow,
|
56 |
+
args: { weight: 0.005 }
|
57 |
+
}
|
58 |
+
- {
|
59 |
+
name: charbonnier,
|
60 |
+
args: { weight: 1 }
|
61 |
+
}
|
62 |
+
- {
|
63 |
+
name: ternary,
|
64 |
+
args: { weight: 1 }
|
65 |
+
}
|
66 |
+
|
67 |
+
|
68 |
+
max_epoch: 540
|
69 |
+
|
70 |
+
validate_every: 10
|
71 |
+
save_every: 10
|
72 |
+
vis_every: 20
|
73 |
+
|
74 |
+
seed: 1234
|
75 |
+
|
76 |
+
dist_url: env://
|
check_images.py
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import cv2
|
3 |
+
|
4 |
+
def process_directory(directory, output_file):
|
5 |
+
for root, dirs, files in os.walk(directory):
|
6 |
+
if not dirs:
|
7 |
+
# ๋ ์ด์ ํ์ ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ
|
8 |
+
print("Directory:", root)
|
9 |
+
|
10 |
+
# ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก ๊ฒ์ฌ
|
11 |
+
image_found = False
|
12 |
+
for filename in files:
|
13 |
+
if filename in ["im1.png","im1.jpg"]:
|
14 |
+
image_found = True
|
15 |
+
image_path = os.path.join(root, filename)
|
16 |
+
|
17 |
+
# ์ด๋ฏธ์ง ์ฝ๊ธฐ
|
18 |
+
image = cv2.imread(image_path)[:, :, ::-1]
|
19 |
+
if image is not None:
|
20 |
+
print("Image:", image_path)
|
21 |
+
|
22 |
+
# ์ด๋ฏธ์ง๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ ๊ฒฝ๋ก๋ฅผ ํ์ผ์ ์ฐ๊ธฐ
|
23 |
+
if not image_found:
|
24 |
+
with open(output_file, "a") as f:
|
25 |
+
f.write(root + "\n")
|
26 |
+
|
27 |
+
if __name__ == "__main__":
|
28 |
+
# ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก ์ง์
|
29 |
+
start_directory = "../../ins4/Triplet_250p_new/sequences"
|
30 |
+
|
31 |
+
# ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ํ
์คํธ ํ์ผ ๊ฒฝ๋ก ์ง์
|
32 |
+
output_file = "missing_images.txt"
|
33 |
+
|
34 |
+
# ํ
์คํธ ํ์ผ ์ด๊ธฐํ
|
35 |
+
open(output_file, "w").close()
|
36 |
+
|
37 |
+
# ์์ ๋๋ ํ ๋ฆฌ์์ ์ํ ์์
|
38 |
+
process_directory(start_directory, output_file)
|
39 |
+
|
datasets/__init__.py
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from .datasets import *
|
2 |
+
from .vimeo import *
|
3 |
+
from .snu_film import *
|
4 |
+
from .xiph import *
|
5 |
+
from .ucf101 import *
|
datasets/__pycache__/__init__.cpython-310.pyc
ADDED
Binary file (241 Bytes). View file
|
|
datasets/__pycache__/__init__.cpython-38.pyc
ADDED
Binary file (238 Bytes). View file
|
|
datasets/__pycache__/data_utils.cpython-310.pyc
ADDED
Binary file (4.06 kB). View file
|
|
datasets/__pycache__/data_utils.cpython-38.pyc
ADDED
Binary file (4.09 kB). View file
|
|
datasets/__pycache__/datasets.cpython-310.pyc
ADDED
Binary file (691 Bytes). View file
|
|
datasets/__pycache__/datasets.cpython-38.pyc
ADDED
Binary file (677 Bytes). View file
|
|
datasets/__pycache__/snu_film.cpython-310.pyc
ADDED
Binary file (3.26 kB). View file
|
|
datasets/__pycache__/snu_film.cpython-38.pyc
ADDED
Binary file (3.18 kB). View file
|
|
datasets/__pycache__/ucf101.cpython-310.pyc
ADDED
Binary file (1.84 kB). View file
|
|
datasets/__pycache__/ucf101.cpython-38.pyc
ADDED
Binary file (1.85 kB). View file
|
|
datasets/__pycache__/vimeo.cpython-310.pyc
ADDED
Binary file (5 kB). View file
|
|
datasets/__pycache__/vimeo.cpython-38.pyc
ADDED
Binary file (5.02 kB). View file
|
|