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

View File

@@ -0,0 +1,39 @@
from pydantic import BaseModel, Field
from typing import List, Optional, Dict, Any
from enum import Enum
class ModelInfo(BaseModel):
id: str
name: str
description: str
classes: List[str]
labels: Dict[str, str]
size: str
type: str
class Detection(BaseModel):
class_name: str
label: str
confidence: float
bbox: List[int]
class DetectionStats(BaseModel):
total_detections: int
avg_confidence: float
processing_time: float
model_used: str
class ImageDetectionResult(BaseModel):
success: bool
message: str
data: Dict[str, Any]
class VideoDetectionRequest(BaseModel):
model_id: str
confidence: float = Field(default=0.5, ge=0.1, le=1.0)
iou: float = Field(default=0.45, ge=0.1, le=0.9)
class DetectionConfig(BaseModel):
model_id: str
confidence: float = Field(default=0.5, ge=0.1, le=1.0)
iou: float = Field(default=0.45, ge=0.1, le=0.9)