Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from open_image_models import LicensePlateDetector | |
| from PIL import Image | |
| import cv2 | |
| import numpy as np | |
| # Define the available models | |
| PlateDetectorModel = ['yolo-v9-t-640-license-plate-end2end', | |
| 'yolo-v9-t-512-license-plate-end2end', | |
| 'yolo-v9-t-384-license-plate-end2end', | |
| 'yolo-v9-t-256-license-plate-end2end'] | |
| # Streamlit interface | |
| st.title("License Plate Detection with Open Image Models") | |
| st.write("Select a model and upload an image to perform license plate detection.") | |
| # Model selection dropdown | |
| selected_model = st.selectbox("Select a License Plate Detection Model", PlateDetectorModel) | |
| # File uploader for images | |
| uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "png", "jpeg", "webp"]) | |
| if uploaded_file is not None: | |
| # Load the image | |
| image = Image.open(uploaded_file) | |
| st.image(image, caption='Uploaded Image', use_column_width=True) | |
| st.write("") | |
| st.write("Detecting license plates...") | |
| # Convert the image to an OpenCV format | |
| image_np = np.array(image) | |
| image_cv2 = cv2.cvtColor(image_np, cv2.COLOR_RGB2BGR) | |
| # Initialize the License Plate Detector | |
| lp_detector = LicensePlateDetector(detection_model=selected_model) | |
| # Perform license plate detection | |
| detections = lp_detector.predict(image_cv2) | |
| # Display the detected plates | |
| st.write(f"Detections: {detections}") | |
| # Annotate and display the image with detected plates | |
| annotated_image = lp_detector.display_predictions(image_cv2) | |
| st.image(annotated_image, caption='Annotated Image with Detections', use_column_width=True) | |