Skip to content

Commit 6c03677

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 6c03677

File tree

2 files changed

+677
-16
lines changed

2 files changed

+677
-16
lines changed

dgp/proto/annotations.proto

Lines changed: 87 additions & 1 deletion
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
@@ -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
233304
message BoundingBox2DAnnotations {
234305
repeated BoundingBox2DAnnotation annotations = 1;
235306
}
@@ -258,3 +329,18 @@ message Polygon2DAnnotations {
258329
message 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

Comments
 (0)