playreel/backend/models/detect.py

39 lines
659 B
Python

from dataclasses import dataclass
from PIL import Image
from pydantic import BaseModel
class Box(BaseModel):
"""포스터 기준 정규화 박스(0~1)."""
x0: float
y0: float
x1: float
y1: float
cx: float
cy: float
text: str | None = None
class Focal(BaseModel):
name: str
cx: float
cy: float
class Regions(BaseModel):
festival_name: str | None
title_style: str | None
recommended_mode: str
poster_size: tuple[int, int]
regions: dict[str, Box]
focal_points: list[Focal]
vlm_raw: dict
@dataclass
class DetectResult:
data: Regions
grid: Image.Image
check: Image.Image