Switch to unified view

a b/datasets/OUMVLP/rearrange_OUMVLP_pose.py
1
import argparse
2
import os
3
import shutil
4
from pathlib import Path
5
from typing import Tuple
6
from tqdm import tqdm
7
8
9
TOTAL_SUBJECTS = 10307
10
11
12
def sanitize(name: str) -> Tuple[str, str]:
13
    return name.split('_')
14
15
16
def rearrange(input_path: Path, output_path: Path) -> None:
17
    os.makedirs(output_path, exist_ok=True)
18
    progress = tqdm(total=TOTAL_SUBJECTS)
19
    for folder in input_path.iterdir():
20
        subject = folder.name
21
        for sid in folder.iterdir():
22
            view, seq = sanitize(sid.name)
23
            src = os.path.join(input_path, subject,sid.name)
24
            dst = os.path.join(output_path, subject, seq, view)
25
            os.makedirs(dst, exist_ok=True)
26
            for subfile in os.listdir(src):
27
                if subfile not in os.listdir(dst) and subfile.endswith('.json'):
28
                    os.symlink(os.path.join(src, subfile),
29
                               os.path.join(dst, subfile))
30
        progress.update(1)
31
32
33
if __name__ == '__main__':
34
    parser = argparse.ArgumentParser(description='OUMVLP rearrange tool')
35
    parser.add_argument('-i', '--input_path', required=True, type=str,
36
                        help='Root path of raw dataset.')
37
    parser.add_argument('-o', '--output_path', default='OUMVLP_rearranged', type=str,
38
                        help='Root path for output.')
39
40
    args = parser.parse_args()
41
42
    input_path = Path(args.input_path).resolve()
43
    output_path = Path(args.output_path).resolve()
44
    rearrange(input_path, output_path)