Spaces:
Runtime error
Runtime error
Update video_processing.py
Browse files- video_processing.py +30 -1
video_processing.py
CHANGED
|
@@ -15,7 +15,8 @@ import pandas as pd
|
|
| 15 |
from facenet_pytorch import MTCNN
|
| 16 |
import torch
|
| 17 |
import mediapipe as mp
|
| 18 |
-
|
|
|
|
| 19 |
|
| 20 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| 21 |
mtcnn = MTCNN(keep_all=False, device=device, thresholds=[0.9, 0.9, 0.9], min_face_size=50)
|
|
@@ -160,6 +161,21 @@ def process_video(video_path, anomaly_threshold, desired_fps, progress=None):
|
|
| 160 |
|
| 161 |
mse_embeddings, mse_posture = anomaly_detection(X_embeddings, X_posture)
|
| 162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 163 |
progress(0.95, "Generating plots")
|
| 164 |
mse_plot_embeddings, anomaly_frames_embeddings = plot_mse(df, mse_embeddings, "Facial Features",
|
| 165 |
color=GRAPH_COLORS['facial_embeddings'],
|
|
@@ -179,6 +195,14 @@ def process_video(video_path, anomaly_threshold, desired_fps, progress=None):
|
|
| 179 |
|
| 180 |
mse_heatmap_embeddings = plot_mse_heatmap(mse_embeddings, "Facial Features MSE Heatmap", df)
|
| 181 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 182 |
except Exception as e:
|
| 183 |
print(f"Error details: {str(e)}")
|
| 184 |
import traceback
|
|
@@ -241,6 +265,11 @@ def process_video(video_path, anomaly_threshold, desired_fps, progress=None):
|
|
| 241 |
mse_histogram_posture,
|
| 242 |
mse_heatmap_embeddings,
|
| 243 |
mse_heatmap_posture,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 244 |
face_samples["most_frequent"],
|
| 245 |
anomaly_faces_embeddings,
|
| 246 |
anomaly_frames_posture_images,
|
|
|
|
| 15 |
from facenet_pytorch import MTCNN
|
| 16 |
import torch
|
| 17 |
import mediapipe as mp
|
| 18 |
+
from voice_analysis import process_audio, cluster_voices, get_most_frequent_voice
|
| 19 |
+
from pydub import AudioSegment
|
| 20 |
|
| 21 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| 22 |
mtcnn = MTCNN(keep_all=False, device=device, thresholds=[0.9, 0.9, 0.9], min_face_size=50)
|
|
|
|
| 161 |
|
| 162 |
mse_embeddings, mse_posture = anomaly_detection(X_embeddings, X_posture)
|
| 163 |
|
| 164 |
+
# Extract audio from video
|
| 165 |
+
video = AudioSegment.from_file(video_path, "mp4")
|
| 166 |
+
audio_path = os.path.join(temp_dir, "audio.wav")
|
| 167 |
+
video.export(audio_path, format="wav")
|
| 168 |
+
|
| 169 |
+
# Process audio
|
| 170 |
+
voice_embeddings = process_audio(audio_path)
|
| 171 |
+
voice_clusters = cluster_voices(voice_embeddings)
|
| 172 |
+
most_frequent_voice = get_most_frequent_voice(voice_embeddings, voice_clusters)
|
| 173 |
+
|
| 174 |
+
# Perform anomaly detection on voice
|
| 175 |
+
X_voice = np.array(most_frequent_voice)
|
| 176 |
+
mse_voice = anomaly_detection(X_voice, X_voice) # Using the same function as for facial features
|
| 177 |
+
|
| 178 |
+
|
| 179 |
progress(0.95, "Generating plots")
|
| 180 |
mse_plot_embeddings, anomaly_frames_embeddings = plot_mse(df, mse_embeddings, "Facial Features",
|
| 181 |
color=GRAPH_COLORS['facial_embeddings'],
|
|
|
|
| 195 |
|
| 196 |
mse_heatmap_embeddings = plot_mse_heatmap(mse_embeddings, "Facial Features MSE Heatmap", df)
|
| 197 |
|
| 198 |
+
# Generate plots for voice
|
| 199 |
+
mse_plot_voice, anomaly_segments_voice = plot_mse(df, mse_voice, "Voice",
|
| 200 |
+
color='green',
|
| 201 |
+
anomaly_threshold=anomaly_threshold)
|
| 202 |
+
mse_histogram_voice = plot_mse_histogram(mse_voice, "MSE Distribution: Voice",
|
| 203 |
+
anomaly_threshold, color='green')
|
| 204 |
+
mse_heatmap_voice = plot_mse_heatmap(mse_voice, "Voice MSE Heatmap", df)
|
| 205 |
+
|
| 206 |
except Exception as e:
|
| 207 |
print(f"Error details: {str(e)}")
|
| 208 |
import traceback
|
|
|
|
| 265 |
mse_histogram_posture,
|
| 266 |
mse_heatmap_embeddings,
|
| 267 |
mse_heatmap_posture,
|
| 268 |
+
mse_voice,
|
| 269 |
+
mse_plot_voice,
|
| 270 |
+
mse_histogram_voice,
|
| 271 |
+
mse_heatmap_voice,
|
| 272 |
+
anomaly_segments_voice,
|
| 273 |
face_samples["most_frequent"],
|
| 274 |
anomaly_faces_embeddings,
|
| 275 |
anomaly_frames_posture_images,
|