pavement_damage / streamlit_app.py
neng123's picture
Upload 120 files
a681beb verified
raw
history blame contribute delete
No virus
1.84 kB
import subprocess
import streamlit as st
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import subprocess
import os
from PIL import Image
import torch
import sys
#import cv2
def add_logo(logo_path, size=(200, 150)):
logo = Image.open('logoAI.png')
logo = logo.resize(size)
st.image(logo, use_column_width=False)
def run_detection(image_path):
env = os.environ.copy()
env['PYTHONPATH'] = '/mount/src/yolo9tr/'
# Run the detection command
command = [
"python", "detect_dual.py",
"--source", image_path,
"--img", "640",
"--device", "cpu",
"--weights", "models/detect/yolov9tr.pt",
"--name", "yolov9_c_640_detect",
"--exist-ok"
]
subprocess.run(command, check=True, env=os.environ)
# Find the output image
output_dir = "runs/detect/yolov9_c_640_detect"
output_image = os.path.join(output_dir, os.path.basename(image_path))
return output_image
def main():
st.title("YOLO9tr Object Detection")
# Add the research center logo at the top of the app
add_logo("research_center_logo.png")
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
if uploaded_file is not None:
image_path = "temp_image.jpg"
with open(image_path, "wb") as f:
f.write(uploaded_file.getbuffer())
else:
image_path = "United_States_000502.jpg" # Default image
st.image(image_path, caption="Image for Detection", use_column_width=True)
if st.button("Run Detection"):
with st.spinner("Running detection..."):
output_image = run_detection(image_path)
# Display the output image
st.image(output_image, caption="Detection Result", use_column_width=True)
if __name__ == "__main__":
main()