Spaces:
Runtime error
Runtime error
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| def highlight_score_plot(basename: str, model_scores: dict, num_frames: int, directory=None): | |
| fig = plt.gcf() | |
| fig.set_size_inches(20, 10) | |
| n_clips = len(list(model_scores.values())[0]) | |
| x = np.arange(n_clips) | |
| x_labels = [f'{frame_id}~{frame_id + num_frames - 1}' for frame_id in range(n_clips)] | |
| for model, scores in model_scores.items(): | |
| plt.plot(x, scores, 'o-', linewidth=4.0, markersize=10.0, label = model) | |
| plt.legend() | |
| plt.title(basename) | |
| plt.xticks(x, x_labels, rotation=90) | |
| plt.xlabel('Duration') | |
| plt.ylabel('Score') | |
| if directory!= None: | |
| plt.savefig(f'{directory}/highlight_score.jpg', dpi=100) | |
| else: | |
| plt.show() | |
| plt.close() | |
| def plot_loss(train_loss, val_loss, exp_name: str, directory=None): | |
| fig = plt.gcf() | |
| fig.set_size_inches(20, 10) | |
| x = np.arange(len(train_loss)) | |
| x_labels = x | |
| plt.plot(x, train_loss, 'o-', linewidth=4.0, markersize=10.0, label = f'{exp_name}_train') | |
| plt.plot(x, val_loss, 'o-', linewidth=4.0, markersize=10.0, label = f'{exp_name}_val') | |
| plt.legend() | |
| plt.title(f'{exp_name} training/validation loss') | |
| plt.xticks(x, x_labels) | |
| plt.xlabel('Epochs') | |
| plt.ylabel('Loss') | |
| if directory!= None: | |
| plt.savefig(f'{directory}/loss.jpg', dpi=100) | |
| else: | |
| plt.show() | |
| plt.close() | |
| def plot_scores(scores, title=None, directory=None): | |
| import matplotlib.pyplot as plt | |
| import numpy as np | |
| fig = plt.gcf() | |
| fig.set_size_inches(20, 10) | |
| x = np.arange(len(scores)) | |
| x_labels = [f'{x[i]}~{x[i]+2}' for i in range(len(x))] | |
| plt.plot(x, scores, 'o-', linewidth=4.0, markersize=10.0) | |
| plt.grid() | |
| if not title: | |
| plt.title(f'scores') | |
| else: | |
| plt.title(title) | |
| plt.xticks(x, x_labels, rotation=90) | |
| plt.xlabel('time') | |
| plt.ylabel('scores') | |
| if directory!= None: | |
| if not title: | |
| plt.savefig(f'{directory}/scores.jpg', dpi=100) | |
| else: | |
| plt.savefig(f'{directory}/{title}.jpg', dpi=100) | |
| else: | |
| plt.show() | |
| plt.close() | |
| def extract_clips(video_path, intervals, path='../test.mp4'): | |
| from moviepy.editor import VideoFileClip, concatenate_videoclips | |
| video = VideoFileClip(video_path) | |
| clips = [video.subclip(start_sec, end_sec) if end_sec < video.duration else video.subclip(start_sec, video.duration) for start_sec, end_sec in intervals] | |
| highlight = concatenate_videoclips(clips) | |
| highlight = highlight.set_audio(highlight.audio) | |
| highlight.write_videofile(path,audio=True, audio_codec='aac', fps=30, logger=None) | |
| return highlight |