Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
The edge connecting two keypoints together
Used in:
keypoint id of the edge's source
keypoint id of the edge's sink
Used in:
Unique frame id, corresponds to images.
List of the annotated objects in this frame. Depending on how many object are observable in this frame, we might have non or as much as sequence.objects_size() annotations.
Information about the camera transformation (in the world coordinate) and imaging characteristics for a captured video frame.
The timestamp for the frame.
Plane center and normal in camera frame.
Used in:
,The position of the keypoint in the local coordinate system of the rigid object.
Sphere around the keypoint, indiciating annotator's confidence of the position in meters.
The name of the keypoint (e.g. legs, head, etc.). Does not have to be unique.
Indicates whether the keypoint is hidden or not.
Projection of a 3D point on an image, and its metric depth.
Used in:
x-y position of the 2d keypoint in the image coordinate system. u,v \in [0, 1], where top left corner is (0, 0) and the bottom-right corner is (1, 1).
The depth of the point in the camera coordinate system (in meters).
Used in:
Unique object id through a sequence. There might be multiple objects of the same label in this sequence.
Describes what category an object is. E.g. object class, attribute, instance or person identity. This provides additional context for the object type.
3x3 row-major rotation matrix describing the orientation of the rigid object's frame of reference in the world-coordinate system.
3x1 vector describing the translation of the rigid object's frame of reference in the world-coordinate system in meters.
3x1 vector describing the scale of the rigid object's frame of reference in the world-coordinate system in meters.
List of all the key points associated with this object in the object coordinate system. The first keypoint is always the object's frame of reference, e.g. the centroid of the box. E.g. bounding box with its center as frame of reference, the 9 keypoints : {0., 0., 0.}, {-.5, -.5, -.5}, {-.5, -.5, +.5}, {-.5, +.5, -.5}, {-.5, +.5, +.5}, {+.5, -.5, -.5}, {+.5, -.5, +.5}, {+.5, +.5, -.5}, {+.5, +.5, +.5} To get the bounding box in the world-coordinate system, we first scale the box then transform the scaled box. For example, bounding box in the world coordinate system is rotation * scale * keypoints + translation
Enum to reflect how this object is created.
Used in:
Created by data annotation.
Created by data augmentation.
Used in:
Used in:
Reference to the object identifier in ObjectInstance.
For each objects, list all the annotated keypoints here. E.g. for bounding-boxes, we have 8 keypoints, hands = 21 keypoints, etc. These normalized points are the projection of the Object's 3D keypoint on the current frame's camera poses.
Visibiity of this annotation in a frame.
The 3D point in the camera coordinate system, the scales are in meters.
Used in:
The sequence protocol contains the annotation data for the entire video clip.
List of all the annotated 3D objects in this sequence in the world Coordinate system. Given the camera poses of each frame (also in the world-coordinate) these objects bounding boxes can be projected to each frame to get the per-frame annotation (i.e. image_annotation below).
List of annotated data per each frame in sequence + frame information.
The skeleton template for different objects (e.g. humans, chairs, hands, etc) The annotation tool reads the skeleton template dictionary.
Used in:
The origin keypoint in the object coordinate system. (i.e. Point 0, 0, 0)
The skeleton's category (e.g. human, chair, hand.). Should be unique in the dictionary.
Initialization value for all the keypoints in the skeleton in the object's local coordinate system. Pursuit will transform these points using object's transformation to get the keypoint in the world-cooridnate.
List of edges connecting keypoints
The list of all the modeled skeletons in our library. These models can be objects (chairs, desks, etc), humans (full pose, hands, faces, etc), or box. We can have multiple skeletons in the same file.