|
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) |
|
|