syntax = "proto2"; package object_detection.protos; import "object_detection/protos/calibration.proto"; // Configuration proto for non-max-suppression operation on a batch of // detections. message BatchNonMaxSuppression { // Scalar threshold for score (low scoring boxes are removed). optional float score_threshold = 1 [default = 0.0]; // Scalar threshold for IOU (boxes that have high IOU overlap // with previously selected boxes are removed). optional float iou_threshold = 2 [default = 0.6]; // Maximum number of detections to retain per class. optional int32 max_detections_per_class = 3 [default = 100]; // Maximum number of detections to retain across all classes. optional int32 max_total_detections = 5 [default = 100]; // Whether to use the implementation of NMS that guarantees static shapes. optional bool use_static_shapes = 6 [default = false]; } // Configuration proto for post-processing predicted boxes and // scores. message PostProcessing { // Non max suppression parameters. optional BatchNonMaxSuppression batch_non_max_suppression = 1; // Enum to specify how to convert the detection scores. enum ScoreConverter { // Input scores equals output scores. IDENTITY = 0; // Applies a sigmoid on input scores. SIGMOID = 1; // Applies a softmax on input scores SOFTMAX = 2; } // Score converter to use. optional ScoreConverter score_converter = 2 [default = IDENTITY]; // Scale logit (input) value before conversion in post-processing step. // Typically used for softmax distillation, though can be used to scale for // other reasons. optional float logit_scale = 3 [default = 1.0]; // Calibrate score outputs. Calibration is applied after score converter // and before non max suppression. optional CalibrationConfig calibration_config = 4; }