Files
wehub-resource-sync c8a779b1bb
Docker Image CI / build-ubuntu2004 (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 13:36:55 +08:00

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.