Spaces:
Sleeping
Sleeping
import gradio as gr | |
from PIL import Image | |
import numpy as np | |
import requests # For API calls | |
# Define your API endpoint and key | |
API_ENDPOINT = "https://your-api-endpoint.com/predict" # Replace with your actual API endpoint | |
API_KEY = "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" # Replace with your API key | |
def detect_weapons(image): | |
""" | |
Sends the uploaded image to an API for weapon detection. | |
""" | |
try: | |
# Convert the PIL Image to bytes for API upload | |
image_bytes = np.array(image).tobytes() | |
# Prepare headers and payload | |
headers = {"Authorization": f"Bearer {API_KEY}"} | |
files = {"image": image_bytes} | |
# Send the image to the API | |
response = requests.post(API_ENDPOINT, headers=headers, files=files) | |
if response.status_code == 200: | |
# Parse the API response | |
results = response.json() # Assuming the API returns JSON | |
return f"Detected Weapons: {results}" | |
else: | |
return f"API Error: {response.status_code} - {response.text}" | |
except Exception as e: | |
return f"Error during detection: {e}" | |
def process_image(image): | |
""" | |
Function to process the uploaded image for weapon detection. | |
""" | |
results = detect_weapons(image) | |
return results | |
# Create the Gradio Interface | |
interface = gr.Interface( | |
fn=process_image, | |
inputs=gr.Image(type="pil", label="Upload an Image"), | |
outputs=gr.Textbox(label="Detection Results"), | |
title="Weapon Detection App", | |
description="Upload an image to detect weapons like guns or bombs." | |
) | |
# Launch the Gradio app | |
interface.launch(server_name="0.0.0.0", server_port=7860) | |