39 lines
659 B
Python
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
|