Spaces:
Sleeping
Sleeping
File size: 2,479 Bytes
486cf4b 5ed03fa 486cf4b 5ed03fa 486cf4b 12d808d 3040f21 12d808d 3040f21 12d808d 3040f21 eb8b644 987b27d eb8b644 3040f21 12d808d 258cf12 4d7986a 486cf4b 5ed03fa 595de22 4d7986a d9882d4 3dad993 d9882d4 258cf12 595de22 b9ab66b 60a38c2 595de22 3040f21 595de22 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
#import os
#import streamlit as st
# Fix permission error for Hugging Face Spaces
#os.environ["STREAMLIT_HOME"] = "./safe_streamlit_home"
#os.environ["STREAMLIT_BROWSER_GATHER_USAGE_STATS"] = "false"
#os.makedirs(os.environ["STREAMLIT_HOME"], exist_ok=True)
# Your other imports...
import os
# β
Tell Streamlit NOT to collect usage data or write config files
os.environ["STREAMLIT_BROWSER_GATHER_USAGE_STATS"] = "false"
os.environ["XDG_CONFIG_HOME"] = "/tmp"
import streamlit as st
#hf_token = os.getenv("HF_token") # Match the exact name you set in the Secrets tab
# Example usage with requests
#headers = {
# "Authorization": f"Bearer {hf_token}"
#}
# Example: Access a private file or API on Hugging Face
#import requests
#response = requests.get("https://huggingface.co/api/whoami-v2", headers=headers)
#print(response.json())
import os
token = os.getenv("app") # secure
from huggingface_hub import hf_hub_download
#hf_hub_download(
#repo_id="muskan19/Violence_Detector",
#filename="violence_model.h5",
#use_auth_token=token
#)
import sys
import os
sys.path.append(os.path.join(os.path.dirname(__file__), 'src'))
# Streamlit app will be generated here
import streamlit as st
import cv2
import numpy as np
from preprocess import preprocess_frame
#from predict import run_prediction
from predict import run_prediction, load_trained_model
#from src.preprocess import preprocess_frame
#from src.predict import load_trained_model, predict_violence
import tempfile
st.set_page_config(layout="wide")
st.title("π Violence Detection in Video")
st.markdown("Upload a video and let the model detect violent scenes in real-time.")
uploaded_file = st.file_uploader("Upload a video", type=["mp4", "avi","mpeg","mov","mpg"])
model = load_trained_model()
if uploaded_file is not None:
tfile = tempfile.NamedTemporaryFile(delete=False)
tfile.write(uploaded_file.read())
cap = cv2.VideoCapture(tfile.name)
stframe = st.empty()
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
processed = preprocess_frame(frame)
pred = run_prediction(model, processed)
label = "Violent" if pred <= 0.5 else "Non-Violent"
color = (0, 0, 255) if label == "Violent" else (0, 255, 0)
cv2.putText(frame, f'{label} ({pred:.2f})', (10, 30),
cv2.FONT_HERSHEY_SIMPLEX, 1, color, 2)
stframe.image(frame, channels="BGR")
cap.release()
|