diff --git a/src/superannotate_schemas/__init__.py b/src/superannotate_schemas/__init__.py index 5b60d76..c19b4b6 100644 --- a/src/superannotate_schemas/__init__.py +++ b/src/superannotate_schemas/__init__.py @@ -6,7 +6,7 @@ from superannotate_schemas.validators import AnnotationValidators -__version__ = '1.0.44' +__version__ = '1.0.45dev5' __all__ = [ "__version__", diff --git a/src/superannotate_schemas/schemas/external/vector.py b/src/superannotate_schemas/schemas/external/vector.py index 59734e5..7efd2d9 100644 --- a/src/superannotate_schemas/schemas/external/vector.py +++ b/src/superannotate_schemas/schemas/external/vector.py @@ -9,7 +9,6 @@ from pydantic import conlist from pydantic.error_wrappers import ErrorWrapper -from superannotate_schemas.schemas.base import StrictPointNumber from superannotate_schemas.schemas.base import AxisPoint from superannotate_schemas.schemas.base import BaseAttribute from superannotate_schemas.schemas.base import BaseImageMetadata @@ -21,6 +20,7 @@ from superannotate_schemas.schemas.base import INVALID_DICT_MESSAGE from superannotate_schemas.schemas.base import NotEmptyStr from superannotate_schemas.schemas.base import StrictNumber +from superannotate_schemas.schemas.base import StrictPointNumber from superannotate_schemas.schemas.base import Tag from superannotate_schemas.schemas.enums import VectorAnnotationTypeEnum diff --git a/src/superannotate_schemas/schemas/external/video.py b/src/superannotate_schemas/schemas/external/video.py index d334997..1b45a0d 100644 --- a/src/superannotate_schemas/schemas/external/video.py +++ b/src/superannotate_schemas/schemas/external/video.py @@ -61,6 +61,14 @@ class PointTimeStamp(BaseTimeStamp): y: StrictNumber +class PolylineTimestamp(BaseTimeStamp): + points: conlist(StrictPointNumber, min_items=4) + + +class PolygonTimestamp(BaseTimeStamp): + points: conlist(StrictPointNumber, min_items=6) + + class EventTimeStamp(BaseTimeStamp): pass @@ -116,11 +124,11 @@ class BboxParameter(BaseParameter): class PolygonParameter(BaseParameter): - timestamps: conlist(StrictPointNumber, min_items=3) + timestamps: conlist(PolygonTimestamp, min_items=2) class PolylineParameter(BaseParameter): - timestamps: conlist(StrictPointNumber) + timestamps: conlist(PolylineTimestamp, min_items=2) class PointParameter(BaseParameter): @@ -143,7 +151,7 @@ class PointInstance(BaseModel): class PolygonInstance(BaseModel): meta: PolygonInstanceMetadata - parameters: conlist(PolylineParameter, min_items=1) + parameters: conlist(PolygonParameter, min_items=1) class PolylineInstance(BaseModel): @@ -159,13 +167,15 @@ class EventInstance(BaseModel): ANNOTATION_TYPES = { VideoType.BBOX: BboxInstance, VideoType.EVENT: EventInstance, - VideoType.POINT: PointInstance + VideoType.POINT: PointInstance, + VideoType.POLYGON: PolygonInstance, + VideoType.POLYLINE: PolylineInstance } class AnnotationInstance(BaseModel): __root__: Union[ - BboxInstance, EventInstance, PointInstance + BboxInstance, EventInstance, PointInstance, PolylineInstance, PolygonInstance ] @classmethod