96 lines
4.6 KiB
Markdown
96 lines
4.6 KiB
Markdown
# regionPlugin [DEPRECATED]
|
|
|
|
**This plugin is deprecated since TensorRT 10.12 and will be removed in a future release. No alternatives are planned to be provided.**
|
|
|
|
**Table Of Contents**
|
|
- [Description](#description)
|
|
* [Structure](#structure)
|
|
- [Parameters](#parameters)
|
|
- [Additional resources](#additional-resources)
|
|
- [License](#license)
|
|
- [Changelog](#changelog)
|
|
- [Known issues](#known-issues)
|
|
|
|
## Description
|
|
|
|
The `regionPlugin` is specifically used to generate encoded bounding box predictions, encoded bounding box objectness, and probabilities of bounding box being candidate objects for the YOLOv2 object detection model in TensorRT.
|
|
|
|
|
|
### Structure
|
|
|
|
The `regionPlugin` takes one input and generates one output.
|
|
|
|
The input has a shape of `[N, C, H, W]`, where:
|
|
- `N` is the batch size
|
|
- `C` is the number of channels in the input tensor. For example, `C = num * (coords + 1 + classes)`.
|
|
- `H` is the height of feature map
|
|
- `W` is the width of feature map
|
|
|
|
The information order of the channels are:
|
|
- `[t_x, t_y, t_w, t_h, t_o, d_1, d_2, ..., d_classes] for bbox_1`
|
|
- `[t_x, t_y, t_w, t_h, t_o, d_1, d_2, ..., d_classes] for bbox_2`, and so on
|
|
- `[t_x, t_y, t_w, t_h, t_o, d_1, d_2, ..., d_classes]` for `bbox_num`, totalling `num * (coords + 1 + classes)` channels.
|
|
|
|
Specifically:
|
|
- ` t_x, t_y, t_w, t_h` are the predicted offsets of bounding boxes before sigmoid activation
|
|
- `t_o` is the predicted objectness of the bounding box before sigmoid activation (see [YOLOv2 paper](https://arxiv.org/abs/1612.08242))
|
|
- `d_1, d_2, ..., d_classes` are the digits for each candidate class before the Softmax activation.
|
|
|
|
The output has the same shape as the input, in other words, `[N, C, H, W]`. The information order of the channels are:
|
|
- `[sigmoid(t_x), sigmoid(t_y), t_w, t_h, sigmoid(t_o), p_1, p_2, ..., p_classes]` for `bbox_1`
|
|
- `[sigmoid(t_x), sigmoid(t_y), t_w, t_h, sigmoid(t_o), p_1, p_2, ..., p_classes]` for `bbox_2`, and so on
|
|
- `[sigmoid(t_x), sigmoid(t_y), t_w, t_h, sigmoid(t_o), p_1, p_2, ..., p_classes]` for `bbox_num`, totalling `num * (coords + 1 + classes)` channels
|
|
|
|
Specifically:
|
|
- `sigmoid(t_x), sigmoid(t_y)`, and `sigmoid(t_o)` are sigmoid activated `t_x, t_y`, and `t_o` from the input
|
|
- `p_1, p_2, ..., p_classes` are the probability for each candidate class after the Softmax activation.
|
|
|
|
**Note:** `t_w` and `t_h` from the input remain unchanged.
|
|
|
|
|
|
## Parameters
|
|
|
|
The `regionPlugin` has a plugin creator class `RegionPluginCreator` and plugin class `Region`.
|
|
|
|
The following parameters were used to create the `Region` instance.
|
|
|
|
| Type | Parameter | Description
|
|
|----------|--------------------------|--------------------------------------------------------
|
|
|`int` |`num` |The number of predicted bounding box for each grid cell.
|
|
|`int` |`coords` |The number of coordinates for the bounding box. This value has to be `4`. Other values for `coords` are not supported currently.
|
|
|`int` |`classes` |The number of candidate classes to be predicted.
|
|
|`smTree` |`softmaxTree` |When performing yolo9000, `softmaxTree` is helping to perform Softmax on confidence scores, for example, to get the precise candidate classes through the word-tree structured candidate classes definition. `softmaxTree` is not required for non-hierarchical classification. The definition of `softmaxTree` can be found in [NvInferPlugin.h](https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/c_api/_nv_infer_plugin_8h_source.html) and [here](https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/c_api/structnvinfer1_1_1plugin_1_1softmax_tree.html).
|
|
|`bool` |`hasSoftmaxTree` |If `softmaxTree` is not `nullptr`, it is `true`; else it is `false`.
|
|
|`int` |`C` |The number of channels in the input tensor. `C = num * (coords + 1 + classes)` has to be satisfied.
|
|
|`int` |`H` |The height of the input tensor (feature map).
|
|
|`int` |`W` |The width of the input tensor (feature map).
|
|
|
|
|
|
|
|
## Additional resources
|
|
|
|
The following resources provide a deeper understanding of the `regionPlugin` plugin:
|
|
|
|
**Networks**
|
|
- [YOLOv2 paper](https://arxiv.org/abs/1612.08242)
|
|
|
|
|
|
## License
|
|
|
|
For terms and conditions for use, reproduction, and distribution, see the [TensorRT Software License Agreement](https://docs.nvidia.com/deeplearning/sdk/tensorrt-sla/index.html)
|
|
documentation.
|
|
|
|
|
|
## Changelog
|
|
|
|
May 2025
|
|
Add deprecation note.
|
|
|
|
May 2019
|
|
This is the first release of this `README.md` file.
|
|
|
|
|
|
## Known issues
|
|
|
|
There are no known issues in this plugin.
|