Spaces:
Running
Running
from src.dwpose import DWposeDetector | |
import os | |
from pathlib import Path | |
from src.utils.util import get_fps, read_frames, save_videos_from_pil | |
import numpy as np | |
if __name__ == "__main__": | |
import argparse | |
parser = argparse.ArgumentParser() | |
parser.add_argument("--video_path", type=str) | |
args = parser.parse_args() | |
if not os.path.exists(args.video_path): | |
raise ValueError(f"Path: {args.video_path} not exists") | |
dir_path, video_name = ( | |
os.path.dirname(args.video_path), | |
os.path.splitext(os.path.basename(args.video_path))[0], | |
) | |
out_path = os.path.join(dir_path, video_name + "_kps.mp4") | |
detector = DWposeDetector() | |
detector = detector.to(f"cuda") | |
fps = get_fps(args.video_path) | |
frames = read_frames(args.video_path) | |
kps_results = [] | |
for i, frame_pil in enumerate(frames): | |
result, score = detector(frame_pil) | |
score = np.mean(score, axis=-1) | |
kps_results.append(result) | |
print(out_path) | |
save_videos_from_pil(kps_results, out_path, fps=fps) | |