import gradio as gr import subprocess import os def crowd_counting(image): # Save the uploaded image image_path = "test/uploaded.jpg" image.save(image_path) # Run the crowd counting model using subprocess command = "python3 detect.py --weights weights/crowdhuman_yolov5m.pt --source {} --head --project runs/output --exist-ok".format(image_path) subprocess.run(command, shell=True) # Read the total_boxes from the file total_boxes_path = "runs/output/output.txt" with open(total_boxes_path, "r") as f: total_boxes = f.read() # Get the output image output_image = "runs/output/output.jpg" # Return the output image and total_boxes return output_image, total_boxes # Define the input and output interfaces inputs = gr.inputs.Image(type="pil", label="Input Image") outputs = [gr.outputs.Image(type="pil", label="Output Image"), gr.outputs.Textbox(label="Total (Head) Count")] # Define the title and description title = "Crowd Counting" description = "
This is a crowd counting application that uses a deep learning model to count the number of heads in an image.
Made by HTX (Q3)
" # Create the Gradio interface without the flag button gradio_interface = gr.Interface(fn=crowd_counting, inputs=inputs, outputs=outputs, title=title, description=description, allow_flagging="never") # Run the Gradio interface gradio_interface.launch()