|
from typing import Dict, Tuple, Optional, NamedTuple, Union |
|
from PIL.Image import Image as pil_image |
|
from torch import Tensor |
|
|
|
try: |
|
from typing import Literal |
|
except ImportError: |
|
from typing_extensions import Literal |
|
|
|
Image = Union[Tensor, pil_image] |
|
BoundingBox = Tuple[float, float, float, float] |
|
CropMethodType = Literal['none', 'random', 'center', 'random-2d'] |
|
SplitType = Literal['train', 'validation', 'test'] |
|
|
|
|
|
class ImageDescription(NamedTuple): |
|
id: int |
|
file_name: str |
|
original_size: Tuple[int, int] |
|
url: Optional[str] = None |
|
license: Optional[int] = None |
|
coco_url: Optional[str] = None |
|
date_captured: Optional[str] = None |
|
flickr_url: Optional[str] = None |
|
flickr_id: Optional[str] = None |
|
coco_id: Optional[str] = None |
|
|
|
|
|
class Category(NamedTuple): |
|
id: str |
|
super_category: Optional[str] |
|
name: str |
|
|
|
|
|
class Annotation(NamedTuple): |
|
area: float |
|
image_id: str |
|
bbox: BoundingBox |
|
category_no: int |
|
category_id: str |
|
id: Optional[int] = None |
|
source: Optional[str] = None |
|
confidence: Optional[float] = None |
|
is_group_of: Optional[bool] = None |
|
is_truncated: Optional[bool] = None |
|
is_occluded: Optional[bool] = None |
|
is_depiction: Optional[bool] = None |
|
is_inside: Optional[bool] = None |
|
segmentation: Optional[Dict] = None |
|
|