dangminh214's picture
Clean initial commit (no large files, no LFS pointers)
b26e93d
from pathlib import Path
import gradio as gr
import spaces
import torch
import os
from PIL import Image
import subprocess
import tempfile
zero = torch.Tensor([0]).cuda()
print(zero.device) # <-- 'cpu' πŸ€”
CHECKPOINT="./D-FINE/weight/dfine-n.pth"
@spaces.GPU
def inference(image):
temp_input = tempfile.NamedTemporaryFile(suffix=".jpg", delete=False)
image.save(temp_input.name)
temp_input.close()
subprocess.run([
"python", "D-FINE/tools/inference/torch_inf.py",
"-c", "D-FINE/configs/dfine/custom/dfine_hgnetv2_n_custom.yml",
"-r", CHECKPOINT,
"--input", temp_input.name,
"--device", "cuda:0"
], check=True)
output_path = temp_input.name
output_image = Image.open(output_path)
return output_image
def get_default_image_paths(folder_path):
image_extensions = ('.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff')
image_paths = [[os.path.join(folder_path, file)] for file in os.listdir(folder_path)
if file.lower().endswith(image_extensions)]
return image_paths
default_images = get_default_image_paths(Path("examples/"))
# Create Gradio Interface with title and description
iface = gr.Interface(
fn=inference,
inputs=[
gr.Image(label="Upload Image", type="pil"), # File input as PIL Image
],
outputs=gr.Image(type="pil", label="Output (Image)"), # Show output as an image
examples=default_images,
cache_examples=False,
title="Strawberry Disease Detection DFINE S",
description="This application detects diseases in strawberries using a trained D-FINE N model. " \
"Upload an image use your webcam for analysis."
)
iface.launch()
# demo = gr.Interface(fn=greet, inputs=gr.Number(), outputs=gr.Text())
# demo.launch()