@@ -70,6 +70,15 @@ enum AnnotationType {
7070 // Classification.
7171 // (i.e. imagenet classification label)
7272 CLASSIFICATION = 15 ; // classification
73+
74+ // 3D Key Point in sensor space
75+ KEY_POINT_3D = 16 ; // key_point_3d
76+
77+ // 3D Key Line in sensor space
78+ KEY_LINE_3D = 17 ; // key_line_3d
79+
80+ // 3D Polygon in sensor space
81+ POLYGON_3D = 18 ; // polygon_3d
7382}
7483
7584// 2D bounding box
@@ -229,7 +238,69 @@ message ClassificationAnnotation{
229238 map <string , string > attributes = 2 ;
230239}
231240
232- // List of BoundingBox2DAnnotation.
241+ // 3D point.
242+ message KeyPoint3D {
243+ // (x, y, z) point (in 3D Cartesian coordinates).
244+ float x = 1 ;
245+ float y = 2 ;
246+ float z = 3 ;
247+ }
248+
249+ // 3D point annotation.
250+ message KeyPoint3DAnnotation {
251+ // Class identifier (should be in [0, num_classes - 1])
252+ uint32 class_id = 1 ;
253+
254+ // 3D point.
255+ KeyPoint3D point = 2 ;
256+
257+ // An associative map stores arbitrary attributes, where the key is attribute name
258+ // and the value is attribute value. Both key_type and value_type are string.
259+ map <string , string > attributes = 3 ;
260+
261+ // An identifier key. Used to link with other annotations.
262+ string key = 4 ;
263+ }
264+
265+ // 3D line annotation.
266+ message KeyLine3DAnnotation {
267+ // Class identifier (should be in [0, num_classes - 1])
268+ uint32 class_id = 1 ;
269+
270+ // 3D line.
271+ repeated KeyPoint3D vertices = 2 ;
272+
273+ // An associative map stores arbitrary attributes, where the key is attribute name
274+ // and the value is attribute value. Both key_type and value_type are string.
275+ map <string , string > attributes = 3 ;
276+
277+ // An identifier key. Used to link with other annotations.
278+ string key = 4 ;
279+ }
280+
281+ message PolygonPoint3D {
282+ // (x, y, z) point (in 3D Cartesian coordinates).
283+ float x = 1 ;
284+ float y = 2 ;
285+ float z = 3 ;
286+ }
287+
288+ // 3D polygon annotation.
289+ message Polygon3DAnnotation {
290+ // Class identifier (should be in [0, num_classes - 1])
291+ uint32 class_id = 1 ;
292+
293+ // 3D polygon.
294+ // Points should be put into this field with counter-clockwise order.
295+ repeated PolygonPoint3D vertices = 2 ;
296+
297+ // An associative map stores arbitrary attributes, where the key is attribute name
298+ // and the value is attribute value. Both key_type and value_type are string.
299+ map <string , string > attributes = 3 ;
300+ }
301+
302+
303+ // List of BoundingBox2DAnnotation
233304message BoundingBox2DAnnotations {
234305 repeated BoundingBox2DAnnotation annotations = 1 ;
235306}
@@ -258,3 +329,18 @@ message Polygon2DAnnotations {
258329message ClassificationAnnotations {
259330 repeated ClassificationAnnotation annotations = 1 ;
260331}
332+
333+ // List of KeyPoint3DAnnotation.
334+ message KeyPoint3DAnnotations {
335+ repeated KeyPoint3DAnnotation annotations = 1 ;
336+ }
337+
338+ // List of KeyLine3DAnnotation.
339+ message KeyLine3DAnnotations {
340+ repeated KeyLine3DAnnotation annotations = 1 ;
341+ }
342+
343+ // List of Polygon3DAnnotation.
344+ message Polygon3DAnnotations {
345+ repeated Polygon3DAnnotation annotations = 1 ;
346+ }
0 commit comments