@@ -61,6 +61,14 @@ class PointTimeStamp(BaseTimeStamp):
6161 y : StrictNumber
6262
6363
64+ class PolylineTimestamp (BaseTimeStamp ):
65+ points : conlist (StrictPointNumber , min_items = 4 )
66+
67+
68+ class PolygonTimestamp (BaseTimeStamp ):
69+ points : conlist (StrictPointNumber , min_items = 6 )
70+
71+
6472class EventTimeStamp (BaseTimeStamp ):
6573 pass
6674
@@ -116,11 +124,11 @@ class BboxParameter(BaseParameter):
116124
117125
118126class PolygonParameter (BaseParameter ):
119- timestamps : conlist (StrictPointNumber , min_items = 3 )
127+ timestamps : conlist (PolygonTimestamp , min_items = 2 )
120128
121129
122130class PolylineParameter (BaseParameter ):
123- timestamps : conlist (StrictPointNumber )
131+ timestamps : conlist (PolylineTimestamp , min_items = 2 )
124132
125133
126134class PointParameter (BaseParameter ):
@@ -143,7 +151,7 @@ class PointInstance(BaseModel):
143151
144152class PolygonInstance (BaseModel ):
145153 meta : PolygonInstanceMetadata
146- parameters : conlist (PolylineParameter , min_items = 1 )
154+ parameters : conlist (PolygonParameter , min_items = 1 )
147155
148156
149157class PolylineInstance (BaseModel ):
@@ -159,13 +167,15 @@ class EventInstance(BaseModel):
159167ANNOTATION_TYPES = {
160168 VideoType .BBOX : BboxInstance ,
161169 VideoType .EVENT : EventInstance ,
162- VideoType .POINT : PointInstance
170+ VideoType .POINT : PointInstance ,
171+ VideoType .POLYGON : PolygonInstance ,
172+ VideoType .POLYLINE : PolylineInstance
163173}
164174
165175
166176class AnnotationInstance (BaseModel ):
167177 __root__ : Union [
168- BboxInstance , EventInstance , PointInstance
178+ BboxInstance , EventInstance , PointInstance , PolylineInstance , PolygonInstance
169179 ]
170180
171181 @classmethod
0 commit comments