@@ -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
@@ -105,8 +114,7 @@ message BoundingBox2DAnnotation {
105114 // Instance identifier
106115 uint32 instance_id = 5 ;
107116
108- // An associative map stores arbitrary attributes, where the key is attribute name
109- // and the value is attribute value. Both key_type and value_type are string.
117+ // A map of attribute names to their values.
110118 // This can be used to stored `agent_behavior` states (i.e., parked car, pedestrian intent).
111119 map <string , string > attributes = 6 ;
112120}
@@ -138,7 +146,8 @@ message BoundingBox3D {
138146
139147// 3D bounding box annotation.
140148message BoundingBox3DAnnotation {
141- // Class identifier. Should be in range [0, num_classes - 1].
149+ // Class identifier. Should be in range [0, num_classes - 1],
150+ // where num_classes is the total number of classes in your ontology.
142151 uint32 class_id = 1 ;
143152
144153 // 3D box.
@@ -148,8 +157,7 @@ message BoundingBox3DAnnotation {
148157 // This needs to be unique to a scene.
149158 uint32 instance_id = 3 ;
150159
151- // An associative map stores arbitrary attributes, where the key is attribute name
152- // and the value is attribute value. Both key_type and value_type are string.
160+ // A map of attribute names to their values.
153161 map <string , string > attributes = 4 ;
154162
155163 // Number of LIDAR points in the Bounding Box
@@ -166,14 +174,14 @@ message KeyPoint2D {
166174
167175// 2D point annotation.
168176message KeyPoint2DAnnotation {
169- // Class identifier (should be in [0, num_classes - 1])
177+ // Class identifier (should be in [0, num_classes - 1]),
178+ // where num_classes is the total number of classes in your ontology.
170179 uint32 class_id = 1 ;
171180
172181 // 2D point.
173182 KeyPoint2D point = 2 ;
174183
175- // An associative map stores arbitrary attributes, where the key is attribute name
176- // and the value is attribute value. Both key_type and value_type are string.
184+ // A map of attribute names to their values.
177185 map <string , string > attributes = 3 ;
178186
179187 // An identifier key. Used to link with other annotations.
@@ -182,14 +190,16 @@ message KeyPoint2DAnnotation {
182190
183191// 2D line annotation.
184192message KeyLine2DAnnotation {
185- // Class identifier (should be in [0, num_classes - 1])
193+ // Class identifier (should be in [0, num_classes - 1]),
194+ // where num_classes is the total number of classes in your ontology.
186195 uint32 class_id = 1 ;
187196
188197 // 2D line.
189198 repeated KeyPoint2D vertices = 2 ;
190199
191- // An associative map stores arbitrary attributes, where the key is attribute name
192- // and the value is attribute value. Both key_type and value_type are string.
200+ // A map of attribute names to their values.
201+ // Add only key/value pairs that are stored in a project document accessible to
202+ // project contributors.
193203 map <string , string > attributes = 3 ;
194204
195205 // An identifier key. Used to link with other annotations.
@@ -207,29 +217,97 @@ message PolygonPoint2D {
207217
208218// 2D polygon annotation.
209219message Polygon2DAnnotation {
210- // Class identifier (should be in [0, num_classes - 1])
220+ // Class identifier (should be in [0, num_classes - 1]),
221+ // where num_classes is the total number of classes in your ontology.
211222 uint32 class_id = 1 ;
212223
213224 // 2D polygon.
214225 // Points should be put into this field with counter-clockwise order.
215226 repeated PolygonPoint2D vertices = 2 ;
216227
217- // An associative map stores arbitrary attributes, where the key is attribute name
218- // and the value is attribute value. Both key_type and value_type are string.
228+ // A map of attribute names to their values.
219229 map <string , string > attributes = 3 ;
220230}
221231
222232// Classification annotation.
223233message ClassificationAnnotation {
224- // Class identifier (should be in [0, num_classes - 1])
234+ // Class identifier (should be in [0, num_classes - 1]),
235+ // where num_classes is the total number of classes in your ontology.
225236 uint32 class_id = 1 ;
226237
227- // An associative map stores arbitrary attributes, where the key is attribute name
228- // and the value is attribute value. Both key_type and value_type are string.
238+ // A map of attribute names to their values.
229239 map <string , string > attributes = 2 ;
230240}
231241
232- // List of BoundingBox2DAnnotation.
242+ // 3D point.
243+ message KeyPoint3D {
244+ // (x, y, z) point (in 3D Cartesian coordinates).
245+ float x = 1 ;
246+ float y = 2 ;
247+ float z = 3 ;
248+ }
249+
250+ // 3D point annotation.
251+ message KeyPoint3DAnnotation {
252+ // Class identifier (should be in [0, num_classes - 1]),
253+ // where num_classes is the total number of classes in your ontology.
254+ uint32 class_id = 1 ;
255+
256+ // 3D point.
257+ KeyPoint3D point = 2 ;
258+
259+ // A map of attribute names to their values.
260+ // Add only key/value pairs that are stored in a project document accessible to
261+ // project contributors.
262+ map <string , string > attributes = 3 ;
263+
264+ // An identifier key. Used to link with other annotations.
265+ string key = 4 ;
266+ }
267+
268+ // 3D line annotation.
269+ message KeyLine3DAnnotation {
270+ // Class identifier (should be in [0, num_classes - 1]),
271+ // where num_classes is the total number of classes in your ontology.
272+ uint32 class_id = 1 ;
273+
274+ // 3D line.
275+ repeated KeyPoint3D vertices = 2 ;
276+
277+ // A map of attribute names to their values.
278+ // Add only key/value pairs that are stored in a project document accessible to
279+ // project contributors.
280+ map <string , string > attributes = 3 ;
281+
282+ // An identifier key. Used to link with other annotations.
283+ string key = 4 ;
284+ }
285+
286+ message PolygonPoint3D {
287+ // (x, y, z) point (in 3D Cartesian coordinates).
288+ float x = 1 ;
289+ float y = 2 ;
290+ float z = 3 ;
291+ }
292+
293+ // 3D polygon annotation.
294+ message Polygon3DAnnotation {
295+ // Class identifier (should be in [0, num_classes - 1]),
296+ // where num_classes is the total number of classes in your ontology.
297+ uint32 class_id = 1 ;
298+
299+ // 3D polygon.
300+ // Points should be put into this field with counter-clockwise order.
301+ repeated PolygonPoint3D vertices = 2 ;
302+
303+ // A map of attribute names to their values.
304+ // Add only key/value pairs that are stored in a project document accessible to
305+ // project contributors.
306+ map <string , string > attributes = 3 ;
307+ }
308+
309+
310+ // List of BoundingBox2DAnnotation
233311message BoundingBox2DAnnotations {
234312 repeated BoundingBox2DAnnotation annotations = 1 ;
235313}
@@ -258,3 +336,18 @@ message Polygon2DAnnotations {
258336message ClassificationAnnotations {
259337 repeated ClassificationAnnotation annotations = 1 ;
260338}
339+
340+ // List of KeyPoint3DAnnotation.
341+ message KeyPoint3DAnnotations {
342+ repeated KeyPoint3DAnnotation annotations = 1 ;
343+ }
344+
345+ // List of KeyLine3DAnnotation.
346+ message KeyLine3DAnnotations {
347+ repeated KeyLine3DAnnotation annotations = 1 ;
348+ }
349+
350+ // List of Polygon3DAnnotation.
351+ message Polygon3DAnnotations {
352+ repeated Polygon3DAnnotation annotations = 1 ;
353+ }
0 commit comments