Initial commit: Video detection platform with YOLO models

Features:
- Fire detection (YOLOv10)
- Helmet detection (YOLOv8)
- Crowd detection (YOLOv8)
- Smoking detection (YOLOv8)
- Loitering detection (YOLOv8)

Tech Stack:
- Frontend: Vue 3 + Vite + Element Plus
- Backend: FastAPI + WebSocket
- Monorepo: pnpm workspace + Turbo
- Docker support included
This commit is contained in:
wwh
2026-05-18 10:54:10 +08:00
commit 8fb58c75fe
42 changed files with 6663 additions and 0 deletions

28
apps/server/api/models.py Normal file
View File

@@ -0,0 +1,28 @@
from fastapi import APIRouter
from models.schemas import ModelInfo
router = APIRouter()
@router.get("/models", response_model=list[ModelInfo])
async def get_models():
from main import model_service
models = model_service.get_available_models()
return models
@router.get("/models/{model_id}", response_model=ModelInfo)
async def get_model(model_id: str):
from main import model_service
models = model_service.get_available_models()
for model in models:
if model['id'] == model_id:
return model
return None
@router.post("/models/{model_id}/load")
async def load_model(model_id: str):
from main import model_service
model = await model_service.load_model(model_id)
if model:
return {"success": True, "message": f"模型加载成功: {model_id}"}
else:
return {"success": False, "message": f"模型加载失败: {model_id}"}