cerfixscan / src /streamlit_app.py
rakharaditya's picture
Update src/streamlit_app.py
78472dd verified
Raw
History Blame Contribute Delete
1.02 kB
import streamlit as st
import cv2
from ultralytics import YOLO
import torch
# Konfigurasi
CONFIDENCE_THRESHOLD = 0.80
model = YOLO("best.pt")
st.title("🧫 CerfixScan - Real-time Cervix Detection")
st.markdown("Deteksi serviks secara real-time langsung dari webcam menggunakan YOLOv8.")
run = st.checkbox('Mulai Kamera')
FRAME_WINDOW = st.image([])
camera = cv2.VideoCapture(0)
while run:
ret, frame = camera.read()
if not ret:
st.warning("Tidak bisa mengakses webcam.")
break
# Deteksi pakai YOLO
results = model(frame)[0]
# Filter hasil berdasarkan threshold
filtered_boxes = []
for box in results.boxes:
if box.conf.item() >= CONFIDENCE_THRESHOLD:
filtered_boxes.append(box)
if filtered_boxes:
results.boxes = type(results.boxes)(torch.stack([b.data for b in filtered_boxes]))
annotated_frame = results.plot()
else:
annotated_frame = frame
FRAME_WINDOW.image(annotated_frame, channels="BGR")
camera.release()