Update visualization.py
Browse files- visualization.py +4 -14
visualization.py
CHANGED
@@ -217,8 +217,8 @@ def plot_posture(df, posture_scores, color='blue', anomaly_threshold=3):
|
|
217 |
return fig
|
218 |
|
219 |
|
220 |
-
def create_heatmap(t, mse_embeddings, mse_posture, mse_voice):
|
221 |
-
frame_count = int(t *
|
222 |
|
223 |
# Normalize MSE values
|
224 |
mse_embeddings_norm = (mse_embeddings - np.min(mse_embeddings)) / (np.max(mse_embeddings) - np.min(mse_embeddings))
|
@@ -245,7 +245,6 @@ def create_heatmap(t, mse_embeddings, mse_posture, mse_voice):
|
|
245 |
plt.close(fig)
|
246 |
return heatmap_img
|
247 |
|
248 |
-
# Function to create video with heatmap
|
249 |
def create_video_with_heatmap(video_path, df, mse_embeddings, mse_posture, mse_voice, output_folder, desired_fps, largest_cluster):
|
250 |
print(f"Creating heatmap video. Output folder: {output_folder}")
|
251 |
|
@@ -271,20 +270,11 @@ def create_video_with_heatmap(video_path, df, mse_embeddings, mse_posture, mse_v
|
|
271 |
mse_voice = np.interp(np.linspace(0, len(mse_voice) - 1, total_frames),
|
272 |
np.arange(len(mse_voice)), mse_voice)
|
273 |
|
274 |
-
mse_embeddings_norm = (mse_embeddings - np.min(mse_embeddings)) / (np.max(mse_embeddings) - np.min(mse_embeddings))
|
275 |
-
mse_posture_norm = (mse_posture - np.min(mse_posture)) / (np.max(mse_posture) - np.min(mse_posture))
|
276 |
-
mse_voice_norm = (mse_voice - np.min(mse_voice)) / (np.max(mse_voice) - np.min(mse_voice))
|
277 |
-
|
278 |
-
combined_mse = np.zeros((3, total_frames))
|
279 |
-
combined_mse[0] = mse_embeddings_norm
|
280 |
-
combined_mse[1] = mse_posture_norm
|
281 |
-
combined_mse[2] = mse_voice_norm
|
282 |
-
|
283 |
def combine_video_and_heatmap(t):
|
284 |
video_frame = video.get_frame(t)
|
285 |
-
heatmap_frame = create_heatmap(t, mse_embeddings, mse_posture, mse_voice)
|
286 |
combined_frame = np.vstack((video_frame, heatmap_frame))
|
287 |
-
return
|
288 |
|
289 |
final_clip = VideoClip(combine_video_and_heatmap, duration=video.duration)
|
290 |
final_clip = final_clip.set_audio(video.audio)
|
|
|
217 |
return fig
|
218 |
|
219 |
|
220 |
+
def create_heatmap(t, mse_embeddings, mse_posture, mse_voice, video_fps, total_frames):
|
221 |
+
frame_count = int(t * video_fps)
|
222 |
|
223 |
# Normalize MSE values
|
224 |
mse_embeddings_norm = (mse_embeddings - np.min(mse_embeddings)) / (np.max(mse_embeddings) - np.min(mse_embeddings))
|
|
|
245 |
plt.close(fig)
|
246 |
return heatmap_img
|
247 |
|
|
|
248 |
def create_video_with_heatmap(video_path, df, mse_embeddings, mse_posture, mse_voice, output_folder, desired_fps, largest_cluster):
|
249 |
print(f"Creating heatmap video. Output folder: {output_folder}")
|
250 |
|
|
|
270 |
mse_voice = np.interp(np.linspace(0, len(mse_voice) - 1, total_frames),
|
271 |
np.arange(len(mse_voice)), mse_voice)
|
272 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
def combine_video_and_heatmap(t):
|
274 |
video_frame = video.get_frame(t)
|
275 |
+
heatmap_frame = create_heatmap(t, mse_embeddings, mse_posture, mse_voice, video.fps, total_frames)
|
276 |
combined_frame = np.vstack((video_frame, heatmap_frame))
|
277 |
+
return combined_frame
|
278 |
|
279 |
final_clip = VideoClip(combine_video_and_heatmap, duration=video.duration)
|
280 |
final_clip = final_clip.set_audio(video.audio)
|