muskan19 commited on
Commit
0c439da
·
verified ·
1 Parent(s): ec16727

Upload app.py

Browse files
Files changed (1) hide show
  1. src/app.py +37 -0
src/app.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Streamlit app will be generated here
2
+ import streamlit as st
3
+ import cv2
4
+ import numpy as np
5
+ from src.preprocess import preprocess_frame
6
+ from src.predict import load_trained_model, predict_violence
7
+ import tempfile
8
+
9
+ st.set_page_config(layout="wide")
10
+ st.title("🔍 Violence Detection in Video")
11
+ st.markdown("Upload a video and let the model detect violent scenes in real-time.")
12
+
13
+ uploaded_file = st.file_uploader("Upload a video", type=["mp4", "avi"])
14
+ model = load_trained_model("models/violence_model.h5")
15
+
16
+ if uploaded_file is not None:
17
+ tfile = tempfile.NamedTemporaryFile(delete=False)
18
+ tfile.write(uploaded_file.read())
19
+ cap = cv2.VideoCapture(tfile.name)
20
+ stframe = st.empty()
21
+
22
+ while cap.isOpened():
23
+ ret, frame = cap.read()
24
+ if not ret:
25
+ break
26
+
27
+ processed = preprocess_frame(frame)
28
+ pred = predict_violence(model, processed)
29
+ label = "Violent" if pred <= 0.5 else "Non-Violent"
30
+ color = (0, 0, 255) if label == "Violent" else (0, 255, 0)
31
+
32
+ cv2.putText(frame, f'{label} ({pred:.2f})', (10, 30),
33
+ cv2.FONT_HERSHEY_SIMPLEX, 1, color, 2)
34
+ stframe.image(frame, channels="BGR")
35
+
36
+ cap.release()
37
+