objectDetector_Yolo_traffic/includes/nvdsinferserver_plugin.proto
2022-09-09 09:02:57 +07:00

127 lines
4.1 KiB
Protocol Buffer

/**
* Copyright (c) 2019-2020, NVIDIA CORPORATION. All rights reserved.
*
* NVIDIA Corporation and its licensors retain all intellectual property
* and proprietary rights in and to this software, related documentation
* and any modifications thereto. Any use, reproduction, disclosure or
* distribution of this software and related documentation without an express
* license agreement from NVIDIA Corporation is strictly prohibited.
*/
syntax = "proto3";
package nvdsinferserver.config;
import "nvdsinferserver_config.proto";
/** Plugin Control settings for input / inference / output */
message PluginControl {
/** Color values for Red/Green/Blue/Alpha, all values are in range [0, 1] */
message Color {
/** Red color value */
float r = 1;
/** Green color value */
float g = 2;
/** Blue color value */
float b = 3;
/** Alpha color value */
float a = 4;
}
/** Boudingbox filter */
message BBoxFilter {
/** Boudingbox minimum width */
uint32 min_width = 1;
/** Boudingbox minimum height */
uint32 min_height = 2;
/** Boudingbox maximum width */
uint32 max_width = 3;
/** Boudingbox maximum height */
uint32 max_height = 4;
}
/** Detection of classes filter */
message DetectClassFilter {
/** Detection Bounding box filter */
BBoxFilter bbox_filter = 1;
/** Offset of the RoI from the top of the frame. Only objects within the
* RoI are output */
uint32 roi_top_offset = 2;
/** Offset of the RoI from the bottom of the frame. Only objects within the
* RoI are output */
uint32 roi_bottom_offset = 3;
/** Specify border color for detection bounding boxes */
Color border_color = 4;
/** Specify background color for detection bounding boxes */
Color bg_color = 5;
}
/** Output detection results control */
message OutputDetectionControl {
/** Default detection classes filter */
DetectClassFilter default_filter = 1;
/** specifies detection filters per class instead of default filter */
map<uint32, DetectClassFilter> specific_class_filters = 2;
}
/** Input objects control */
message InputObjectControl {
/** Input bounding box of objects filter */
BBoxFilter bbox_filter = 1;
}
/** Processing Mode */
enum ProcessMode {
/** Processing Default Mode */
PROCESS_MODE_DEFAULT = 0;
/** Processing Full Frame Mode */
PROCESS_MODE_FULL_FRAME = 1;
/** Processing Object Clipping Mode */
PROCESS_MODE_CLIP_OBJECTS = 2;
}
/** Plugin input data control policy */
message InputControl {
/** Processing mode setting, optional */
ProcessMode process_mode = 1;
/** Unique ID of the GIE on whose metadata (bounding boxes) this GIE is to
* operate on. It is used for secondary GIE only. */
int32 operate_on_gie_id = 2;
/** Class IDs of the parent GIE on which this GIE is to operate on.
* It is used for secondary GIE only. */
repeated int32 operate_on_class_ids = 3;
/** Specifies the number of consecutive, batches to be skipped for
* inference. Default is 0. */
uint32 interval = 4;
/** Enables inference on detected objects and asynchronous metadata
* attachments. Works only when tracker-id is valid. It's used for
* classifier with secondary GIE only. */
bool async_mode = 5;
/** Input object filter policy */
oneof object_filter {
/** input object control settings */
InputObjectControl object_control = 6;
}
}
/** Plugin output data control policy */
message OutputControl {
/* Enable attaching inference output tensor metadata */
bool output_tensor_meta = 1;
/* Postprocessing control policy */
oneof postprocess_control {
/* Detection results filter */
OutputDetectionControl detect_control = 2;
}
}
/** Low-level libnvds_infer_server inference configuration settings */
InferenceConfig infer_config =1;
/** Control plugin input buffers, object filter before inference */
InputControl input_control = 2;
/** Control plugin output meta data after inference */
OutputControl output_control = 3;
}