Spaces:
Running
Running
| 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 = "<div style='text-align: center;'>This is a crowd counting application that uses a deep learning model to count the number of heads in an image.<br>Made by HTX (Q3) </div>" | |
| # 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() |