diff --git a/osi_common.proto b/osi_common.proto index dc9de96bd..01fb932f2 100644 --- a/osi_common.proto +++ b/osi_common.proto @@ -551,6 +551,7 @@ message StatePoint // optional Orientation3d orientation = 3; } + // // \brief Detailed WavelengthRange message. // @@ -611,3 +612,195 @@ message SpatialSignalStrength // optional double signal_strength = 3; } + +// +// \brief The description of a color within available color spaces. +// +// ColorDescription represents the visual, non-semantic appearance of an object, structure or feature within various available color spaces. +// +// Depending on the context, this may define the color of an object or structure a priori (e.g. GroundTruth objects) +// or describe a perceived color (e.g. CameraDetections). +// +message ColorDescription +{ + // Greyscale color model + // + optional ColorGrey grey = 1; + + // RGB (Red, Green, Blue) color model + // + optional ColorRGB rgb = 2; + + // RGBIR (Red, Green, Blue, Infrared) color model + // + optional ColorRGBIR rgbir = 3; + + // HSV (Hue, Saturation, Value) color model + // + optional ColorHSV hsv = 4; + + // LUV (Luminance, U-coordinate, V-coordinate) color model + // + optional ColorLUV luv = 5; + + // CMYK (Cyan, Magenta, Yellow, Key) color model + // + optional ColorCMYK cmyk = 6; +} + +// +// \brief Greyscale color model +// +// ColorGrey defines a greyscale. +// +message ColorGrey +{ + // Definition of a greyscale + // + // Range: [0,1] + // + optional double grey = 1; +} + +// +// \brief RGB color model +// +// ColorRGB provides values for red, green and blue. +// +message ColorRGB +{ + // Red ratio + // + // Range: [0,1] + // + optional double red = 1; + + // Green ratio + // + // Range: [0,1] + // + optional double green = 2; + + // Blue ratio + // + // Range: [0,1] + // + optional double blue = 3; +} + +// +// \brief RGBIR color model +// +// ColorRGBIR provides values for red, green, blue and infrared. +// +message ColorRGBIR +{ + // Red ratio + // + // Range: [0,1] + // + optional double red = 1; + + // Green ratio + // + // Range: [0,1] + // + optional double green = 2; + + // Blue ratio + // + // Range: [0,1] + // + optional double blue = 3; + + // Infrared + // + // Range: [0,1] + // + optional double infrared = 4; +} + +// +// \brief HSV color model +// +// ColorHSV provides values for hue, saturation and value/brightness. +// +message ColorHSV +{ + // Hue + // + // Unit: deg + // Range: [0,360[ + // + optional double hue = 1; + + // Saturation + // + // Range: [0,1] + // + optional double saturation = 2; + + // Value + // + // Range: [0,1] + // + optional double value = 3; +} + +// +// \brief LUV color model +// +// ColorLUV provides values for luminance, U- and V-coordinate. +// +message ColorLUV +{ + // Luminance + // + // Range: [0,1] + // + optional double luminance = 1; + + // U-coordinate + // + // Range: [0,1] + // + optional double u = 2; + + // V-Coordinate + // + // Range: [0,1] + // + optional double v = 3; +} + +// +// \brief CMYK colors model +// +// ColorCMYK provides values for cyan, magenta, yellow and key/black. +// +message ColorCMYK +{ + // Cyan ratio + // + // Range: [0,1] + // + optional double cyan = 1; + + // Magenta ratio + // + // Range: [0,1] + // + optional double magenta = 2; + + // Yellow ratio + // + // Range: [0,1] + // + optional double yellow = 3; + + // Black ratio + // + // Range: [0,1] + // + optional double key = 4; +} diff --git a/osi_detectedlane.proto b/osi_detectedlane.proto index b1e541914..34cf5e0b2 100644 --- a/osi_detectedlane.proto +++ b/osi_detectedlane.proto @@ -4,6 +4,7 @@ option optimize_for = SPEED; import "osi_lane.proto"; import "osi_detectedobject.proto"; +import "osi_common.proto"; package osi3; @@ -104,6 +105,14 @@ message DetectedLaneBoundary // repeated double boundary_line_confidences = 5; + // The visual color of the material of the lane boundary. + // + // \note This does not represent the semantic classification but the visual + // appearance. For semantic classification of the lane boundary use the color + // field in \c CandidateLaneBoundary::classification. + // + optional ColorDescription color_description = 6; + // // \brief A candidate for a detected lane boundary as estimated by the // sensor. diff --git a/osi_detectedobject.proto b/osi_detectedobject.proto index 83a9ab598..078ee7e00 100644 --- a/osi_detectedobject.proto +++ b/osi_detectedobject.proto @@ -120,6 +120,10 @@ message DetectedStationaryObject // repeated CandidateStationaryObject candidate = 4; + // The dominating color of the material of the structure. + // + optional ColorDescription color_description = 5; + // // \brief A candidate for a detected stationary object as estimated // by the sensor. @@ -221,6 +225,10 @@ message DetectedMovingObject // repeated CandidateMovingObject candidate = 8; + // The dominating color of the material of the moving object. + // + optional ColorDescription color_description = 9; + // Additional data that is specific to radar sensors. // // \note Field needs not to be set if simulated sensor is not a radar diff --git a/osi_detectedroadmarking.proto b/osi_detectedroadmarking.proto index efd5b578d..f142a9449 100644 --- a/osi_detectedroadmarking.proto +++ b/osi_detectedroadmarking.proto @@ -59,6 +59,14 @@ message DetectedRoadMarking // repeated CandidateRoadMarking candidate = 4; + // The visual color of the material of the road marking. + // + // \note This does not represent the semantic classification but the visual + // appearance. For semantic classification of the road marking use the color + // field in \c CandidateRoadMarking::classification. + // + optional ColorDescription color_description = 5; + // // \brief A candidate for a detected road marking as estimated by the // sensor. diff --git a/osi_detectedtrafficlight.proto b/osi_detectedtrafficlight.proto index 16e27f452..acaa425a1 100644 --- a/osi_detectedtrafficlight.proto +++ b/osi_detectedtrafficlight.proto @@ -43,6 +43,14 @@ message DetectedTrafficLight // repeated CandidateTrafficLight candidate = 4; + // The visual color of the traffic light. + // + // \note This does not represent the semantic classification but the visual + // appearance. For semantic classification of the traffic light use the color + // field in \c CandidateTrafficLight::classification. + // + optional ColorDescription color_description = 5; + // // \brief A candidate for a detected traffic light as estimated by // the sensor. diff --git a/osi_featuredata.proto b/osi_featuredata.proto index 0c9adafae..328030657 100644 --- a/osi_featuredata.proto +++ b/osi_featuredata.proto @@ -853,6 +853,10 @@ message CameraDetection // The dominant color of the shape. // + // \attention DEPRECATED: This color enum will be removed in version + // 4.0.0. Use the field \c #color_description (\c ColorDescription) + // instead. + // optional Color color = 28; // The probability of the shape's color. @@ -885,8 +889,16 @@ message CameraDetection // optional uint32 number_of_points = 32; + // + // The dominant color of the shape. + // + optional ColorDescription color_description = 33; + // Definition of shape dominant color. // + // \attention DEPRECATED: This color enum will be removed in version + // 4.0.0. Use \c ColorDescription instead. + // enum Color { // Color of the shape is unknown (must not be used in ground diff --git a/osi_lane.proto b/osi_lane.proto index 05e4bbcdf..5369ea69b 100644 --- a/osi_lane.proto +++ b/osi_lane.proto @@ -763,6 +763,14 @@ message LaneBoundary // repeated ExternalReference source_reference = 4; + // The visual color of the material of the lane boundary. + // + // \note This does not represent the semantic classification but the visual + // appearance. For semantic classification of the lane boundary use the color + // field in \c Classification. + // + optional ColorDescription color_description = 5; + // // \brief A single point of a lane boundary. // @@ -905,7 +913,10 @@ message LaneBoundary // optional Type type = 1; - // The color of the lane boundary in case of lane markings. + // The semantic color of the lane boundary in case of lane markings. + // + // \note The color types represent the semantic classification of + // lane markings only. They do not represent an actual visual appearance. // optional Color color = 2; @@ -987,10 +998,13 @@ message LaneBoundary TYPE_STRUCTURE = 13; } - // The color of the lane boundary in case of a lane markings. + // The semantic color of the lane boundary in case of a lane markings. // Lane markings that alternate in color must be represented by // individual \c LaneBoundary segments. // + // \note The color types represent the semantic color classification of + // lane markings only. They do not represent an actual visual appearance. + // enum Color { // Color of marking is unknown. Value must not be used in ground diff --git a/osi_object.proto b/osi_object.proto index af2d9a232..3030a3311 100644 --- a/osi_object.proto +++ b/osi_object.proto @@ -75,6 +75,10 @@ message StationaryObject // repeated ExternalReference source_reference = 5; + // The dominating color of the material of the structure. + // + optional ColorDescription color_description = 6; + // // \brief Classification data for a stationary object. // @@ -94,6 +98,10 @@ message StationaryObject // The dominating color of the material of the structure. // + // \attention DEPRECATED: This color enum will be removed in version + // 4.0.0. Use the field \c #color_description (\c ColorDescription) of + // \c StationaryObject instead. + // optional Color color = 4; // The attributes of the emitting structure if stationary object is classified as such. @@ -266,6 +274,10 @@ message StationaryObject // Definition of colors for structures. // + // \attention DEPRECATED: This color enum will be removed in version + // 4.0.0. Use \c ColorDescription instead. + // + // enum Color { // Color is unknown (must not be used in ground truth). @@ -451,6 +463,10 @@ message MovingObject // repeated ExternalReference source_reference = 10; + // The dominating color of the material of the moving object. + // + optional ColorDescription color_description = 11; + // Definition of object types. // enum Type @@ -665,6 +681,7 @@ message MovingObject // \note OSI uses singular instead of plural for repeated field names. // repeated double assigned_lane_percentage = 2; + } // diff --git a/osi_roadmarking.proto b/osi_roadmarking.proto index 694aadefc..0b9ce9a95 100644 --- a/osi_roadmarking.proto +++ b/osi_roadmarking.proto @@ -82,6 +82,14 @@ message RoadMarking // repeated ExternalReference source_reference = 4; + // The visual color of the material of the road marking. + // + // \note This does not represent the semantic classification but the visual + // appearance. For semantic classification of the road marking use the color + // field in \c Classification. + // + optional ColorDescription color_description = 5; + // // \brief \c Classification data for a road surface marking. // @@ -113,7 +121,11 @@ message RoadMarking // optional TrafficSign.MainSign.Classification.Type traffic_main_sign_type = 2; - // The monochrome color of the road marking. + // The semantic monochrome color of the road marking. + // + // \note The color types represent the semantic color classification of + // road markings only. They do not represent an actual visual appearance. + // \note Field need not be set (or set to \c #COLOR_OTHER) // if road marking type does not require it (e.g. for \c #type == // \c #TYPE_PAINTED_TRAFFIC_SIGN). @@ -286,7 +298,10 @@ message RoadMarking TYPE_GENERIC_TEXT = 7; } - // Definition of road marking colors + // Definition of semantic road marking colors + // + // \note The color types represent the semantic classification of + // road markings only. They do not represent an actual visual appearance. // enum Color { diff --git a/osi_trafficlight.proto b/osi_trafficlight.proto index d88528cf7..ace90bccd 100644 --- a/osi_trafficlight.proto +++ b/osi_trafficlight.proto @@ -63,12 +63,23 @@ message TrafficLight // repeated ExternalReference source_reference = 5; + // The visual color of the traffic light. + // + // \note This does not represent the semantic classification but the visual + // appearance. For semantic classification of the traffic light use the color + // field in \c Classification. + // + optional ColorDescription color_description = 6; + // // \brief \c Classification data for a traffic light. // message Classification { - // The color of the traffic light. + // The semantic color of the traffic light. + // + // \note The color types represent the semantic color classification of a + // traffic light only. They do not represent an actual visual appearance. // // \note If the color of the traffic light is known (from history or // geometrical arrangement) and the state \c #mode is @@ -116,7 +127,10 @@ message TrafficLight // optional bool is_out_of_service = 6; - // Definition of colors for traffic lights. + // Definition of semantic colors for traffic lights. + // + // \note The color types represent the semantic classification of a traffic light + // only. They do not represent an actual visual appearance. // enum Color {