// These protos contain the calibration parameters necessary for transforming // a model's original detection scores or logits. The parameters result from // fitting a calibration function on the model's outputs. syntax = "proto2"; package object_detection.protos; // Message wrapper for various calibration configurations. message CalibrationConfig { oneof calibrator { // Class-agnostic calibration via linear interpolation (usually output from // isotonic regression). FunctionApproximation function_approximation = 1; // Per-class calibration via linear interpolation. ClassIdFunctionApproximations class_id_function_approximations = 2; // Class-agnostic sigmoid calibration. SigmoidCalibration sigmoid_calibration = 3; // Per-class sigmoid calibration. ClassIdSigmoidCalibrations class_id_sigmoid_calibrations = 4; // Temperature scaling calibration. TemperatureScalingCalibration temperature_scaling_calibration = 5; } } // Message for class-agnostic domain/range mapping for function // approximations. message FunctionApproximation { // Message mapping class labels to indices optional XYPairs x_y_pairs = 1; } // Message for class-specific domain/range mapping for function // approximations. message ClassIdFunctionApproximations { // Message mapping class ids to indices. map class_id_xy_pairs_map = 1; } // Message for class-agnostic Sigmoid Calibration. message SigmoidCalibration { // Message mapping class index to Sigmoid Parameters optional SigmoidParameters sigmoid_parameters = 1; } // Message for class-specific Sigmoid Calibration. message ClassIdSigmoidCalibrations { // Message mapping class index to Sigmoid Parameters. map class_id_sigmoid_parameters_map = 1; } // Message for Temperature Scaling Calibration. message TemperatureScalingCalibration { optional float scaler = 1; } // Description of data used to fit the calibration model. CLASS_SPECIFIC // indicates that the calibration parameters are derived from detections // pertaining to a single class. ALL_CLASSES indicates that parameters were // obtained by fitting a model on detections from all classes (including the // background class). enum TrainingDataType { DATA_TYPE_UNKNOWN = 0; ALL_CLASSES = 1; CLASS_SPECIFIC = 2; } // Message to store a domain/range pair for function to be approximated. message XYPairs { message XYPair { optional float x = 1; optional float y = 2; } // Sequence of x/y pairs for function approximation. repeated XYPair x_y_pair = 1; // Description of data used to fit the calibration model. optional TrainingDataType training_data_type = 2; } // Message defining parameters for sigmoid calibration. message SigmoidParameters { optional float a = 1 [default = -1.0]; optional float b = 2 [default = 0.0]; }