File size: 1,563 Bytes
28ec634
6f436ba
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cd5b7fe
 
 
 
 
 
 
 
 
 
6f436ba
 
 
e824274
6f436ba
cd5b7fe
6f436ba
 
 
28ec634
 
 
 
 
6f436ba
 
 
 
 
 
 
 
 
 
28ec634
 
 
 
 
 
 
6f436ba
28ec634
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"""Frontend metadata for the Motion Transfer task."""
from __future__ import annotations

from typing import Any, Dict

from src.tasks.base import TaskPlugin

def validate_scene(_scene_dir: str) -> None:
    return None


def evaluate_scene(_scene_dir: str, _gt_scene: Any) -> Dict[str, float]:
    return {"psnr": 0.0, "ssim": 0.0, "lpips": 0.0, "pmf": 0.0}


def load_gt_scene(scene_id: str, gt_dir: str) -> Any:
    return {"scene_id": scene_id, "gt_dir": gt_dir}

TUTORIAL_URL = (
    "https://github.com/vLAR-group/PhysInOne/tree/main/"
    "baselines/Motion_Transfer/README.md"
)

DESC = (
    "Transfer motion dynamics from a source video to a target image while preserving "
    "the target's visual appearance.\n"
    f"Please refer to the [tutorial]({TUTORIAL_URL}) for detailed instructions."
)

TASK = TaskPlugin(
    name="motionTransfer",
    track_id="motionTransfer",
    display_name="Motion Transfer",
    description=DESC,
    expected_scene_layout=(
        "```\n"
        "<scene_id>.zip\n"
        "`-- CineCamera_n/\n"
        "    `-- rgb/\n"
        "        |-- 0000.jpg\n"
        "        |-- ...\n"
        "        `-- <last_frame>.jpg\n"
        "```"
    ),
    validate_scene_fn=validate_scene,
    evaluate_scene_fn=evaluate_scene,
    load_gt_scene_fn=load_gt_scene,
    primary_metric="pmf",
    higher_is_better=True,
    leaderboard_columns=["psnr", "ssim", "lpips", "pmf"],
)

TASK.column_display_names = {
    "psnr": "PSNR",
    "ssim": "SSIM",
    "lpips": "LPIPS",
    "pmf": "PMF",
}

TASKS = {
    TASK.name: TASK,
}