Skip to content

Commit 92ca39f

Browse files
Nehal Mamgainpd-nisse
authored andcommitted
schema: add KeyPoint3D, KeyLine3D, Polygon3D
- add 3D equivalents in Cartesian coordinates in sensor space for KeyPoint2D, KeyLine2D and Polygon2D on the image plane respectively. Co-authored-by: Nisse Knudsen <[email protected]>
1 parent db695a2 commit 92ca39f

File tree

2 files changed

+701
-33
lines changed

2 files changed

+701
-33
lines changed

dgp/proto/annotations.proto

Lines changed: 111 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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.
140148
message 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.
168176
message 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.
184192
message 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.
209219
message 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.
223233
message 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
233311
message BoundingBox2DAnnotations {
234312
repeated BoundingBox2DAnnotation annotations = 1;
235313
}
@@ -258,3 +336,18 @@ message Polygon2DAnnotations {
258336
message 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

Comments
 (0)