/** * 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 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; }