|
import os |
|
import numpy as np |
|
|
|
from helpers import detect_faces_in_video |
|
from helpers import dense_sampling_from_extracted_frames |
|
from helpers import remove_audio |
|
|
|
def remove_audio_from_video(input_file): |
|
return remove_audio(input_file) |
|
|
|
|
|
def extract_face_from_video(video_path, output_dir): |
|
os.makedirs(output_dir, exist_ok=True) |
|
cropped_faces = detect_faces_in_video(video_path, output_dir) |
|
return cropped_faces |
|
|
|
|
|
def sample_frames_from_extracted_frames(output_dir_for_sampled_frames, output_dir_for_extracted_frames): |
|
os.makedirs(output_dir_for_sampled_frames, exist_ok=True) |
|
|
|
if not os.listdir(output_dir_for_extracted_frames): |
|
print("No extracted frames found in the folder.") |
|
raise ValueError("No extracted frames found in the folder.") |
|
|
|
sampled_frames = dense_sampling_from_extracted_frames(output_dir_for_extracted_frames, num_clips=6, frames_per_clip=5) |
|
|
|
for i, clip in enumerate(sampled_frames): |
|
clip_folder = os.path.join(output_dir_for_sampled_frames, f"clip_{i+1}") |
|
os.makedirs(clip_folder, exist_ok=True) |
|
|
|
for j, frame in enumerate(clip): |
|
np.save(os.path.join(clip_folder, f"frame_{j+1}.npy"), frame) |
|
|
|
return np.squeeze(sampled_frames) |
|
|
|
|
|
|