mice-pose-gpu / app.py
Hakureirm's picture
Migrate to ZeroGPU and update requirements for compatibility
3368f4c
raw
history blame
1.08 kB
import gradio as gr
from ultralytics import YOLO
from fastapi import FastAPI
from PIL import Image
import torch
import spaces
# 初始化 FastAPI 和模型
app = FastAPI()
# 检查 GPU 是否可用,并选择设备
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model = YOLO('NailongKiller.yolo11n.pt').to(device)
@spaces.GPU
def predict(img):
# 使用 PIL 直接转换为 PyTorch 张量
img_resized = Image.fromarray(img).resize((640, 640))
img_tensor = torch.tensor(img_resized, dtype=torch.float32).permute(2, 0, 1).unsqueeze(0).to(device)
results = model.predict(img_tensor)
return results[0].plot()
# Gradio 界面
demo = gr.Interface(
fn=predict,
inputs=gr.Image(label="输入图片"),
outputs=gr.Image(label="检测结果", type="numpy"),
title="🐉 奶龙杀手 (NailongKiller)",
description="上传图片来检测奶龙 | Upload an image to detect Nailong",
examples=[["example1.jpg"]],
cache_examples=True
)
# 启动应用
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860)