Spaces:
Runtime error
Runtime error
| # app.py | |
| import gradio as gr | |
| import cv2, os, pandas as pd | |
| from inference_utils import load_models, process_frame | |
| vehicle_detector, vehicle_classifier, plate_detector, ocr_reader = load_models() | |
| log_path = "vehicle_log.csv" | |
| if not os.path.exists(log_path): | |
| pd.DataFrame(columns=["timestamp", "vehicle_type", "plate_text"]).to_csv(log_path, index=False) | |
| def run_pipeline(video): | |
| cap = cv2.VideoCapture(video) | |
| logs = [] | |
| while cap.isOpened(): | |
| ret, frame = cap.read() | |
| if not ret: break | |
| frame = cv2.resize(frame, (640, 480)) | |
| res = process_frame(frame, vehicle_detector, vehicle_classifier, plate_detector, ocr_reader) | |
| logs.extend(res) | |
| df = pd.DataFrame(logs, columns=["timestamp", "vehicle_type", "plate_text"]) | |
| df.to_csv(log_path, mode='a', header=False, index=False) | |
| return f"Processed {len(logs)} vehicles. Log saved to {log_path}." | |
| iface = gr.Interface(fn=run_pipeline, | |
| inputs=gr.Video(label="Upload Video"), | |
| outputs="text", | |
| title="Vehicle ANPR Pipeline", | |
| description="Uploads a video, detects vehicles, classifies type, reads plate and logs to CSV.") | |
| iface.launch() | |