File size: 1,450 Bytes
7b36907
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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()