Current schema does only partially support stitched data. The orientation is besides hiveX and hiveY needed.
Suggestion: Put struct Stitched into DetectionsDP and DetectionsTruth. See below for implementation.
I also suggest removing hiveX and hiveY completely.
struct Stitched{
xpos @1 :UInt16; # x coordinate of the grid center wrt. the comb
ypos @2 :UInt16; # y coordinate of the grid center wrt. the comb
zRotation @5 :Float32; # rotation of the grid in z plane
yRotation @6 :Float32; # rotation of the grid in y plane
xRotation @7 :Float32; # rotation of the grid in x plane
}
struct DetectionsDP{
idx @0 :UInt16; # sequential index of the detection, counted from 0 for every frame
# the combination (idx, Frame.id) is a global key
xpos @1 :UInt16; # x coordinate of the grid center wrt. the image
ypos @2 :UInt16; # y coordinate of the grid center wrt. the image
zRotation @5 :Float32; # rotation of the grid in z plane
yRotation @6 :Float32; # rotation of the grid in y plane
xRotation @7 :Float32; # rotation of the grid in x plane
radius @8 :Float32; # radius of the tag
localizerSaliency @9 :Float32; # saliency of the localizer network
decodedId @10 :List(UInt8); # the decoded id, the bit probabilities are discretised to 0-255.
# p(first bit == 1) = decodedId[0] / 255
descriptor @11 :List(UInt8); # visual descriptor of the detection. ordered from most
# significant eight bits to least significant eight bits.
stitched @8 :Stitched; # the stitched data, optional
}
# Corresponds to an image in the video.
struct Frame {
id @0 :UInt64; # global unique id of the frame
dataSourceIdx @1:UInt32; # the frame is from this data source
frameIdx @6 :UInt32; # sequential increasing index for every data source.
timestamp @2 :Float64; # unix time stamp of the frame
timedelta @3 :UInt32; # time difference between this frame and the frame before in microseconds
detectionsUnion : union {
detectionsCVP @4 :List(DetectionCVP); # detections format of the old computer vision pipeline
detectionsDP @5 :List(DetectionDP); # detections format of the new deeppipeline
detectionsTruth @7 :List(DetectionTruth); # detections format of ground truth data
}
}
Current schema does only partially support stitched data. The orientation is besides hiveX and hiveY needed.
Suggestion: Put struct
Stitched
intoDetectionsDP
andDetectionsTruth
. See below for implementation.I also suggest removing hiveX and hiveY completely.
This should be done in conjunction with #15