Spaces:
No application file
No application file
| import streamlit as st | |
| import tempfile | |
| import os | |
| from utils.video_processing import process_video | |
| st.set_page_config(page_title="Solar Panel Fault Detection - Drone Video", layout="wide") | |
| st.title("πΉ Solar Panel Fault Detection from Drone Video") | |
| uploaded_video = st.file_uploader("Upload Drone Video (.mp4)", type=["mp4", "avi", "mov"]) | |
| if uploaded_video: | |
| # Save to temp file | |
| tfile = tempfile.NamedTemporaryFile(delete=False) | |
| tfile.write(uploaded_video.read()) | |
| video_path = tfile.name | |
| st.video(video_path) | |
| with st.spinner("Processing video..."): | |
| annotated_video_path, report = process_video(video_path) | |
| st.subheader("π Fault Summary Report") | |
| for entry in report: | |
| st.markdown(f"- **{entry['type']}** at `{entry['location']}` (Frame: {entry['frame']}) | Confidence: {entry['confidence']:.2f}") | |
| st.subheader("ποΈ Annotated Video") | |
| st.video(annotated_video_path) | |