File size: 1,393 Bytes
4724018
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
import argparse
import numpy as np
import torch
import torch.nn.functional as F

from .visualizer import Visualizer

def create_white_video(num_frames, target_h=480, target_w=720):
    white_video = torch.ones((1, num_frames, 3, target_h, target_w))
    return white_video

def process_video(tracks_path, output_dir, args):

    video_name = os.path.splitext(os.path.basename(tracks_path))[0].replace('_tracks', '')
    video = create_white_video(args.num_frames)

    combined_data = np.load(tracks_path, allow_pickle=True).item()
    tracks = torch.from_numpy(combined_data['tracks'])
    visibility = torch.from_numpy(combined_data['visibility'])

    vis = Visualizer(
        save_dir=output_dir,
        grayscale=False,
        fps=args.output_fps,
        pad_value=0,
        linewidth=args.point_size,
        tracks_leave_trace=args.len_track
    )
    
    video_vis = vis.visualize(
        video=video,
        tracks=tracks,
        visibility=visibility,
        filename=video_name
    ) 

def visualize_tracks(tracks_dir, output_dir, args):
    
    args.tracks_dir = tracks_dir

    os.makedirs(output_dir, exist_ok=True)
    tracks_files = [f for f in os.listdir(args.tracks_dir) if f.endswith('tracks.npy')]
    for tracks_file in tracks_files:
        tracks_path = os.path.join(args.tracks_dir, tracks_file)
        process_video(tracks_path, output_dir, args)