Face_Detection / app.py
M3ash's picture
Create app.py
791ec16 verified
Raw
History Blame Contribute Delete
1.07 kB
import streamlit as st
import cv2
import numpy as np
from ultralytics import YOLO
from streamlit_webrtc import webrtc_streamer, VideoProcessorBase
import av
st.set_page_config(page_title="Face Detection", layout="wide")
st.title("🎥 Live Face Detection (YOLOv8 + WebRTC)")
@st.cache_resource
def load_model():
return YOLO("best.pt")
model = load_model()
conf_threshold = st.slider(
"Confidence Threshold",
min_value=0.1,
max_value=1.0,
value=0.7,
step=0.05
)
class FaceProcessor(VideoProcessorBase):
def recv(self, frame: av.VideoFrame) -> av.VideoFrame:
img = frame.to_ndarray(format="bgr24")
results = model.predict(
source=img,
conf=conf_threshold,
imgsz=640,
verbose=False
)
annotated = results[0].plot()
return av.VideoFrame.from_ndarray(annotated, format="bgr24")
webrtc_streamer(
key="face-detection",
video_processor_factory=FaceProcessor,
media_stream_constraints={"video": True, "audio": False},
async_processing=True,
)