Add specifications for ExperimentalDetectron* operations (#4584)

* Add specification for ExperimentalDetectronROIFeatureExtractor-6 operation

* Add specification for ExperimentalDetectronROIFeatureExtractor-6 operation

* Delete template added by mistake

* Add specification for ExperimentalDetectronTopKROIs_6 operation

* Update specification

* Update specification

* Add specification for ExperimentalDetectronDetectionOutput_6 operation

* Add specifaication for ExperimentalDetectronGenerateProposalsSingleImage_6 operation

* Add specification for ExperimentalDetectronPriorGridGenerator_6 operation

* Allign attr? add more detailed information

* Provide detailed description for ExperimentalDetectronTopKROIs_6 operation

* Minor style updates

* Update specifications

* Add more details to operation specification

* Update operations categories

* Move operations specifications to detection folder

* Update specifications

* Add operations to appopriate lists

* Update specs

* Update operations list

* Add more detailed decsriptions to operations specification

* Add more details to operations descriptions

* Apply review comments

* Apply review comments

* Update specifications

* Delete outdated comments in experimental operations headers

* Update specifications

* Apply review feedback

* Move back comments in operations headers

* Apply review comments

* Fix typo

* Fix codestyle

* Fix typo
This commit is contained in:
Anton Chetverikov 2021-03-26 06:49:37 +03:00 committed by GitHub
parent 42bbe979b1
commit 6b62f67d44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 650 additions and 14 deletions

View File

@ -137,6 +137,11 @@ limitations under the License.
<tab type="user" title="Equal-1" url="@ref openvino_docs_ops_comparison_Equal_1"/>
<tab type="user" title="Erf-1" url="@ref openvino_docs_ops_arithmetic_Erf_1"/>
<tab type="user" title="Exp-1" url="@ref openvino_docs_ops_activation_Exp_1"/>
<tab type="user" title="ExperimentalDetectronDetectionOutput-6" url="@ref openvino_docs_ops_detection_ExperimentalDetectronDetectionOutput_6"/>
<tab type="user" title="ExperimentalDetectronGenerateProposalsSingleImage-6" url="@ref openvino_docs_ops_detection_ExperimentalDetectronGenerateProposalsSingleImage_6"/>
<tab type="user" title="ExperimentalDetectronPriorGridGenerator-6" url="@ref openvino_docs_ops_detection_ExperimentalDetectronPriorGridGenerator_6"/>
<tab type="user" title="ExperimentalDetectronROIFeatureExtractor-6" url="@ref openvino_docs_ops_detection_ExperimentalDetectronROIFeatureExtractor_6"/>
<tab type="user" title="ExperimentalDetectronTopKROIs-6" url="@ref openvino_docs_ops_sort_ExperimentalDetectronTopKROIs_6"/>
<tab type="user" title="ExtractImagePatches-3" url="@ref openvino_docs_ops_movement_ExtractImagePatches_3"/>
<tab type="user" title="FakeQuantize-1" url="@ref openvino_docs_ops_quantization_FakeQuantize_1"/>
<tab type="user" title="FloorMod-1" url="@ref openvino_docs_ops_arithmetic_FloorMod_1"/>

View File

@ -0,0 +1,195 @@
## ExperimentalDetectronDetectionOutput <a name="ExperimentalDetectronDetectionOutput"></a> {#openvino_docs_ops_detection_ExperimentalDetectronDetectionOutput_6}
**Versioned name**: *ExperimentalDetectronDetectionOutput-6*
**Category**: Object detection
**Short description**: An operation *ExperimentalDetectronDetectionOutput* performs non-maximum suppression to generate
the detection output using information on location and score predictions.
**Detailed description**: Operation doing next steps:
1. Applies deltas to boxes sizes [x<sub>1</sub>, y<sub>1</sub>, x<sub>2</sub>, y<sub>2</sub>] and takes coordinates of
refined boxes according to formulas:
`x1_new = ctr_x + (dx - 0.5 * exp(min(d_log_w, max_delta_log_wh))) * box_w`
`y0_new = ctr_y + (dy - 0.5 * exp(min(d_log_h, max_delta_log_wh))) * box_h`
`x1_new = ctr_x + (dx + 0.5 * exp(min(d_log_w, max_delta_log_wh))) * box_w - 1.0`
`y1_new = ctr_y + (dy + 0.5 * exp(min(d_log_h, max_delta_log_wh))) * box_h - 1.0`
* `box_w` and `box_h` are width and height of box:
`box_w = x1 - x0 + 1.0`
`box_h = y1 - y0 + 1.0`
* `ctr_x` and `ctr_y` are center location of box:
`ctr_x = x0 + 0.5f * box_w`
`ctr_y = y0 + 0.5f * box_h`
* `dx`, `dy`, `d_log_w` and `d_log_h` are deltas calculated according to next formulas and `deltas_tensor` is second
input:
`dx = deltas_tensor[roi_idx, 4 * class_idx + 0] / deltas_weights[0]`
`dy = deltas_tensor[roi_idx, 4 * class_idx + 1] / deltas_weights[1]`
`d_log_w = deltas_tensor[roi_idx, 4 * class_idx + 2] / deltas_weights[2]`
`d_log_h = deltas_tensor[roi_idx, 4 * class_idx + 3] / deltas_weights[3]`
2. If *class_agnostic_box_regression* is `true` then operation removes predictions for background classes;
3. Clips boxes to image;
4. Applies *score_threshold* on detection scores;
5. Applies non-maximum suppression class-wise with *nms_threshold* and returns *post_nms_count* or less detections per
class;
6. Operation returns *max_detections_per_image* detections if total number of detections is more than it, otherwise
returns total number of detections and the output tensor is filled with undefined values for rest output tensor
elements.
**Attributes**:
* *score_threshold*
* **Description**: *score_threshold* attribute specifies threshold to consider only detections whose score are
larger than a threshold.
* **Range of values**: non-negative floating point number
* **Type**: float
* **Default value**: None
* **Required**: *yes*
* *nms_threshold*
* **Description**: *nms_threshold* attribute specifies threshold to be used in the NMS stage.
* **Range of values**: non-negative floating point number
* **Type**: float
* **Default value**: None
* **Required**: *yes*
* *num_classes*
* **Description**: *num_classes* attribute specifies number of detected classes.
* **Range of values**: non-negative integer number
* **Type**: int
* **Default value**: None
* **Required**: *yes*
* *post_nms_count*
* **Description**: *post_nms_count* attribute specifies the maximal number of detections per class.
* **Range of values**: non-negative integer number
* **Type**: int
* **Default value**: None
* **Required**: *yes*
* *max_detections_per_image*
* **Description**: *max_detections_per_image* attribute specifies maximal number of detections per image.
* **Range of values**: non-negative integer number
* **Type**: int
* **Default value**: None
* **Required**: *yes*
* *class_agnostic_box_regression*
* **Description**: *class_agnostic_box_regression* attribute ia a flag specifies whether to delete background
classes or not.
* **Range of values**:
* `true` means background classes should be deleted
* `false` means background classes shouldn't be deleted
* **Type**: boolean
* **Default value**: false
* **Required**: *no*
* *max_delta_log_wh*
* **Description**: *max_delta_log_wh* attribute specifies maximal delta of logarithms for width and height.
* **Range of values**: floating point number
* **Type**: float
* **Default value**: None
* **Required**: *yes*
* *deltas_weights*
* **Description**: *deltas_weights* attribute specifies weights for bounding boxes sizes deltas.
* **Range of values**: a list of non-negative floating point numbers
* **Type**: float[]
* **Default value**: None
* **Required**: *yes*
**Inputs**
* **1**: A 2D tensor of type *T* with input ROIs, with shape `[number_of_ROIs, 4]` describing the ROIs as 4-tuples:
[x<sub>1</sub>, y<sub>1</sub>, x<sub>2</sub>, y<sub>2</sub>]. The batch dimension of first, second and third inputs
should be the same. **Required.**
* **2**: A 2D tensor of type *T* with shape `[number_of_ROIs, num_classes * 4]` describing deltas for input boxes.
**Required.**
* **3**: A 2D tensor of type *T* with shape `[number_of_ROIs, num_classes]` describing detections scores. **Required.**
* **4**: A 2D tensor of type *T* with shape `[1, 3]` contains 3 elements
`[image_height, image_width, scale_height_and_width]` describing input image size info. **Required.**
**Outputs**
* **1**: A 2D tensor of type *T* with shape `[max_detections_per_image, 4]` describing boxes indices.
* **2**: A 1D tensor of type *T_IND* with shape `[max_detections_per_image]` describing classes indices.
* **3**: A 1D tensor of type *T* with shape `[max_detections_per_image]` describing scores indices.
* **4**: A 1D tensor of type *T_IND* with shape `[max_detections_per_image]` describing batches indices.
**Types**
* *T*: any supported floating point type.
* *T_IND*: `int64` or `int32`.
**Example**
```xml
<layer ... type="ExperimentalDetectronDetectionOutput" version="opset6">
<data class_agnostic_box_regression="false" deltas_weights="10.0,10.0,5.0,5.0" max_delta_log_wh="4.135166645050049" max_detections_per_image="100" nms_threshold="0.5" num_classes="81" post_nms_count="2000" score_threshold="0.05000000074505806"/>
<input>
<port id="0">
<dim>1000</dim>
<dim>4</dim>
</port>
<port id="1">
<dim>1000</dim>
<dim>324</dim>
</port>
<port id="2">
<dim>1000</dim>
<dim>81</dim>
</port>
<port id="3">
<dim>1</dim>
<dim>3</dim>
</port>
</input>
<output>
<port id="4" precision="FP32">
<dim>100</dim>
<dim>4</dim>
</port>
<port id="5" precision="I32">
<dim>100</dim>
</port>
<port id="6" precision="FP32">
<dim>100</dim>
</port>
<port id="7" precision="I32">
<dim>100</dim>
</port>
</output>
</layer>
```

View File

@ -0,0 +1,113 @@
## ExperimentalDetectronGenerateProposalsSingleImage <a name="ExperimentalDetectronGenerateProposalsSingleImage"></a> {#openvino_docs_ops_detection_ExperimentalDetectronGenerateProposalsSingleImage_6}
**Versioned name**: *ExperimentalDetectronGenerateProposalsSingleImage-6*
**Category**: Object detection
**Short description**: An operation *ExperimentalDetectronGenerateProposalsSingleImage* computes ROIs and their scores
based on input data.
**Detailed description**: Operation doing next steps:
1. Transposes and reshape predicted bounding boxes deltas and scores to get them into the same order as the anchors;
2. Transforms anchors into proposals using deltas and clips proposals to image;
3. Removes predicted boxes with either height or width < *min_size*;
4. Sorts all `(proposal, score)` pairs by score from highest to lowest, order of pairs with equal scores is undefined;
5. Takes top *pre_nms_count* proposals, if total number of proposals is less than *pre_nms_count* then operation takes
all proposals;
6. Applies non-maximum suppression with *nms_threshold*;
7. Takes top *post_nms_count* proposals and return these top proposals and their scores. If total number of proposals
is less than *post_nms_count* then operation returns output tensors filled by zeroes.
**Attributes**:
* *min_size*
* **Description**: *min_size* attribute specifies minimum box width and height.
* **Range of values**: non-negative floating point number
* **Type**: float
* **Default value**: None
* **Required**: *yes*
* *nms_threshold*
* **Description**: *nms_threshold* attribute specifies threshold to be used in the NMS stage.
* **Range of values**: non-negative floating point number
* **Type**: float
* **Default value**: None
* **Required**: *yes*
* *pre_nms_count*
* **Description**: *pre_nms_count* attribute specifies number of top-n proposals before NMS.
* **Range of values**: non-negative integer number
* **Type**: int
* **Default value**: None
* **Required**: *yes*
* *post_nms_count*
* **Description**: *post_nms_count* attribute specifies number of top-n proposals after NMS.
* **Range of values**: non-negative integer number
* **Type**: int
* **Default value**: None
* **Required**: *yes*
**Inputs**
* **1**: A 1D tensor of type *T* with 3 elements `[image_height, image_width, scale_height_and_width]` describing input
image size info. **Required.**
* **2**: A 2D tensor of type *T* with shape `[height * width * number_of_channels, 4]` describing anchors. **Required.**
* **3**: A 3D tensor of type *T* with shape `[number_of_channels * 4, height, width]` describing deltas for anchors.
Height and width for third and fourth inputs should be equal. **Required.**
* **4**: A 3D tensor of type *T* with shape `[number_of_channels, height, width]` describing proposals scores.
**Required.**
**Outputs**
* **1**: A 2D tensor of type *T* with shape `[post_nms_count, 4]` describing ROIs.
* **2**: A 1D tensor of type *T* with shape `[post_nms_count]` describing ROIs scores.
**Types**
* *T*: any supported floating point type.
**Example**
```xml
<layer ... type="ExperimentalDetectronGenerateProposalsSingleImage" version="opset6">
<data min_size="0.0" nms_threshold="0.699999988079071" post_nms_count="1000" pre_nms_count="1000"/>
<input>
<port id="0">
<dim>3</dim>
</port>
<port id="1">
<dim>12600</dim>
<dim>4</dim>
</port>
<port id="2">
<dim>12</dim>
<dim>50</dim>
<dim>84</dim>
</port>
<port id="3">
<dim>3</dim>
<dim>50</dim>
<dim>84</dim>
</port>
</input>
<output>
<port id="4" precision="FP32">
<dim>1000</dim>
<dim>4</dim>
</port>
<port id="5" precision="FP32">
<dim>1000</dim>
</port>
</output>
</layer>
```

View File

@ -0,0 +1,117 @@
## ExperimentalDetectronPriorGridGenerator <a name="ExperimentalDetectronPriorGridGenerator"></a> {#openvino_docs_ops_detection_ExperimentalDetectronPriorGridGenerator_6}
**Versioned name**: *ExperimentalDetectronPriorGridGenerator-6*
**Category**: Object detection
**Short description**: An operation *ExperimentalDetectronPriorGridGenerator* generates prior grids of
specified sizes.
**Detailed description**: Operation takes coordinates of centres of boxes and add strides with offset `0.5` to them to
calculate coordinates of prior grids.
Numbers of generated cells is `featmap_height` and `featmap_width` if *h* and *w* are zeroes, otherwise *h* and *w*
respectively. Steps of generated grid are `image_height` / `layer_height` and `image_width` / `layer_width` if
*stride_h* and *stride_w* are zeroes, otherwise *stride_h* and *stride_w* respectively.
`featmap_height`, `featmap_width`, `image_height` and `image_width` are spatial dimensions values from second and third
inputs respectively.
**Attributes**:
* *flatten*
* **Description**: *flatten* attribute specifies whether the output tensor should be 2D or 4D.
* **Range of values**:
* `true` - the output tensor should be 2D tensor
* `false` - the output tensor should be 4D tensor
* **Type**: boolean
* **Default value**: true
* **Required**: *no*
* *h*
* **Description**: *h* attribute specifies number of cells of the generated grid with respect to height.
* **Range of values**: non-negative integer number less or equal than `featmap_height`
* **Type**: int
* **Default value**: 0
* **Required**: *no*
* *w*
* **Description**: *w* attribute specifies number of cells of the generated grid with respect to width.
* **Range of values**: non-negative integer number less or equal than `featmap_width`
* **Type**: int
* **Default value**: 0
* **Required**: *no*
* *stride_x*
* **Description**: *stride_x* attribute specifies the step of generated grid with respect to x coordinate.
* **Range of values**: non-negative float number
* **Type**: float
* **Default value**: 0.0
* **Required**: *no*
* *stride_y*
* **Description**: *stride_y* attribute specifies the step of generated grid with respect to y coordinate.
* **Range of values**: non-negative float number
* **Type**: float
* **Default value**: 0.0
* **Required**: *no*
**Inputs**
* **1**: A 2D tensor of type *T* with shape `[number_of_priors, 4]` contains priors. **Required.**
* **2**: A 4D tensor of type *T* with input feature map `[1, number_of_channels, featmap_height, featmap_width]`. This
operation uses only sizes of this input tensor, not its data.**Required.**
* **3**: A 4D tensor of type *T* with input image `[1, number_of_channels, image_height, image_width]`. The number of
channels of both feature map and input image tensors must match. This operation uses only sizes of this input tensor,
not its data. **Required.**
**Outputs**
* **1**: A tensor of type *T* with priors grid with shape `[featmap_height * featmap_width * number_of_priors, 4]`
if flatten is `true` or `[featmap_height, featmap_width, number_of_priors, 4]` otherwise.
In case then 0 < *h* < `featmap_height` and/or 0 < *w* < `featmap_width` the output data size is less than
`featmap_height` * `featmap_width` * `number_of_priors` * 4 and the output tensor is filled with undefined values for
rest output tensor elements.
**Types**
* *T*: any supported floating point type.
**Example**
```xml
<layer ... type="ExperimentalDetectronPriorGridGenerator" version="opset6">
<data flatten="true" h="0" stride_x="32.0" stride_y="32.0" w="0"/>
<input>
<port id="0">
<dim>3</dim>
<dim>4</dim>
</port>
<port id="1">
<dim>1</dim>
<dim>256</dim>
<dim>25</dim>
<dim>42</dim>
</port>
<port id="2">
<dim>1</dim>
<dim>3</dim>
<dim>800</dim>
<dim>1344</dim>
</port>
</input>
<output>
<port id="3" precision="FP32">
<dim>3150</dim>
<dim>4</dim>
</port>
</output>
</layer>
```

View File

@ -0,0 +1,139 @@
## ExperimentalDetectronROIFeatureExtractor <a name="ExperimentalDetectronROIFeatureExtractor"></a> {#openvino_docs_ops_detection_ExperimentalDetectronROIFeatureExtractor_6}
**Versioned name**: *ExperimentalDetectronROIFeatureExtractor-6*
**Category**: Object detection
**Short description**: *ExperimentalDetectronROIFeatureExtractor* is the [ROIAlign](ROIAlign_3.md) operation applied
over a feature pyramid.
**Detailed description**: *ExperimentalDetectronROIFeatureExtractor* maps input ROIs to the levels of the pyramid
depending on the sizes of ROIs and parameters of the operation, and then extracts features via ROIAlign from
corresponding pyramid levels.
Operation applies the *ROIAlign* algorithm to the pyramid layers:
`output[i, :, :, :] = ROIAlign(inputPyramid[j], rois[i])`
`j = PyramidLevelMapper(rois[i])`
PyramidLevelMapper maps the ROI to the pyramid level using the following formula:
`j = floor(2 + log2(sqrt(w * h) / 224)`
Here 224 is the canonical ImageNet pre-training size, 2 is the pyramid starting level, and `w`, `h` are the ROI width and height.
For more details please see the following source:
[Feature Pyramid Networks for Object Detection](https://arxiv.org/pdf/1612.03144.pdf).
**Attributes**:
* *output_size*
* **Description**: *output_size* attribute specifies the width and height of the output tensor.
* **Range of values**: a positive integer number
* **Type**: int
* **Default value**: None
* **Required**: *yes*
* *sampling_ratio*
* **Description**: *sampling_ratio* attribute specifies the number of sampling points per the output value. If 0,
then use adaptive number computed as `ceil(roi_width / output_width)`, and likewise for height.
* **Range of values**: a non-negative integer number
* **Type**: int
* **Default value**: None
* **Required**: *yes*
* *pyramid_scales*
* **Description**: *pyramid_scales* enlists `image_size / layer_size[l]` ratios for pyramid layers `l=1,...,L`,
where `L` is the number of pyramid layers, and `image_size` refers to network's input image. Note that pyramid's
largest layer may have smaller size than input image, e.g. `image_size` is `800 x 1344` in the XML example below.
* **Range of values**: a list of positive integer numbers
* **Type**: int[]
* **Default value**: None
* **Required**: *yes*
* *aligned*
* **Description**: *aligned* attribute specifies add offset (`-0.5`) to ROIs sizes or not.
* **Range of values**:
* `true` - add offset to ROIs sizes
* `false` - do not add offset to ROIs sizes
* **Type**: boolean
* **Default value**: false
* **Required**: *no*
**Inputs**:
* **1**: 2D input tensor of type *T* with shape `[number_of_ROIs, 4]` describing the ROIs as 4-tuples:
[x<sub>1</sub>, y<sub>1</sub>, x<sub>2</sub>, y<sub>2</sub>]. Coordinates *x* and *y* are refer to the network's input
*image_size*. **Required**.
* **2**, ..., **L**: Pyramid of 4D input tensors with feature maps. Shape must be
`[1, number_of_channels, layer_size[l], layer_size[l]]`. The number of channels must be the same for all layers of the
pyramid. The layer width and height must equal to the `layer_size[l] = image_size / pyramid_scales[l]`. **Required**.
**Outputs**:
* **1**: 4D output tensor of type *T* with ROIs features. Shape must be
`[number_of_ROIs, number_of_channels, output_size, output_size]`. Channels number is the same as for all images in the
input pyramid.
* **2**: 2D output tensor of type *T* with reordered ROIs according to their mapping to the pyramid levels. Shape
must be the same as for 1 input: `[number_of_ROIs, 4]`.
**Types**
* *T*: any supported floating point type.
**Example**
```xml
<layer ... type="ExperimentalDetectronROIFeatureExtractor" version="opset6">
<data aligned="false" output_size="7" pyramid_scales="4,8,16,32,64" sampling_ratio="2"/>
<input>
<port id="0">
<dim>1000</dim>
<dim>4</dim>
</port>
<port id="1">
<dim>1</dim>
<dim>256</dim>
<dim>200</dim>
<dim>336</dim>
</port>
<port id="2">
<dim>1</dim>
<dim>256</dim>
<dim>100</dim>
<dim>168</dim>
</port>
<port id="3">
<dim>1</dim>
<dim>256</dim>
<dim>50</dim>
<dim>84</dim>
</port>
<port id="4">
<dim>1</dim>
<dim>256</dim>
<dim>25</dim>
<dim>42</dim>
</port>
</input>
<output>
<port id="5" precision="FP32">
<dim>1000</dim>
<dim>256</dim>
<dim>7</dim>
<dim>7</dim>
</port>
<port id="6" precision="FP32">
<dim>1000</dim>
<dim>4</dim>
</port>
</output>
</layer>
```

View File

@ -50,6 +50,11 @@ declared in `namespace opset6`.
* [Equal](comparison/Equal_1.md)
* [Erf](arithmetic/Erf_1.md)
* [Exp](activation/Exp_1.md)
* [ExperimentalDetectronDetectionOutput_6](detection/ExperimentalDetectronDetectionOutput_6.md)
* [ExperimentalDetectronGenerateProposalsSingleImage_6](detection/ExperimentalDetectronGenerateProposalsSingleImage_6.md)
* [ExperimentalDetectronPriorGridGenerator_6](detection/ExperimentalDetectronPriorGridGenerator_6.md)
* [ExperimentalDetectronROIFeatureExtractor_6](detection/ExperimentalDetectronROIFeatureExtractor_6.md)
* [ExperimentalDetectronTopKROIs_6](sort/ExperimentalDetectronTopKROIs_6.md)
* [ExtractImagePatches](movement/ExtractImagePatches_3.md)
* [FakeQuantize](quantization/FakeQuantize_1.md)
* [Floor](arithmetic/Floor_1.md)

View File

@ -51,6 +51,11 @@ declared in `namespace opset7`.
* [Equal](comparison/Equal_1.md)
* [Erf](arithmetic/Erf_1.md)
* [Exp](activation/Exp_1.md)
* [ExperimentalDetectronDetectionOutput_6](detection/ExperimentalDetectronDetectionOutput_6.md)
* [ExperimentalDetectronGenerateProposalsSingleImage_6](detection/ExperimentalDetectronGenerateProposalsSingleImage_6.md)
* [ExperimentalDetectronPriorGridGenerator_6](detection/ExperimentalDetectronPriorGridGenerator_6.md)
* [ExperimentalDetectronROIFeatureExtractor_6](detection/ExperimentalDetectronROIFeatureExtractor_6.md)
* [ExperimentalDetectronTopKROIs_6](sort/ExperimentalDetectronTopKROIs_6.md)
* [ExtractImagePatches](movement/ExtractImagePatches_3.md)
* [FakeQuantize](quantization/FakeQuantize_1.md)
* [Floor](arithmetic/Floor_1.md)

View File

@ -0,0 +1,61 @@
## ExperimentalDetectronTopKROIs <a name="ExperimentalDetectronTopKROIs"></a> {#openvino_docs_ops_sort_ExperimentalDetectronTopKROIs_6}
**Versioned name**: *ExperimentalDetectronTopKROIs-6*
**Category**: Sort
**Short description**: An operation *ExperimentalDetectronTopKROIs* is TopK operation applied to probabilities of input
ROIs.
**Detailed description**: Operation performs probabilities descending sorting for input ROIs and returns *max_rois*
number of ROIs. Order of sorted ROIs with equal probabilities is undefined. If number of ROIs is less than *max_rois*
then operation returns all ROIs descended sorted and the output tensor is filled with undefined values for rest output
tensor elements.
**Attributes**:
* *max_rois*
* **Description**: *max_rois* attribute specifies maximal numbers of output ROIs.
* **Range of values**: non-negative integer number
* **Type**: int
* **Default value**: 0
* **Required**: *no*
**Inputs**
* **1**: A 2D tensor of type *T* with shape `[number_of_ROIs, 4]` describing the ROIs as 4-tuples:
[x<sub>1</sub>, y<sub>1</sub>, x<sub>2</sub>, y<sub>2</sub>]. **Required.**
* **2**: A 1D tensor of type *T* with shape `[number_of_input_ROIs]` contains probabilities for input ROIs. **Required.**
**Outputs**
* **1**: A 2D tensor of type *T* with shape `[max_rois, 4]` describing *max_rois* ROIs with highest probabilities.
**Types**
* *T*: any supported floating point type.
**Example**
```xml
<layer ... type="ExperimentalDetectronTopKROIs" version="opset6">
<data max_rois="1000"/>
<input>
<port id="0">
<dim>5000</dim>
<dim>4</dim>
</port>
<port id="1">
<dim>5000</dim>
</port>
</input>
<output>
<port id="2" precision="FP32">
<dim>1000</dim>
<dim>4</dim>
</port>
</output>
</layer>
```

View File

@ -16,9 +16,9 @@ namespace ngraph
{
namespace v6
{
/// \brief An operation ExperimentalDetectronDetectionOutput, according to
/// the repository https://github.com/openvinotoolkit/training_extensions
/// (see pytorch_toolkit/instance_segmentation/segmentoly/rcnn/detection_output.py).
/// \brief An operation ExperimentalDetectronDetectionOutput performs
/// non-maximum suppression to generate the detection output using
/// information on location and score predictions.
class NGRAPH_API ExperimentalDetectronDetectionOutput : public Op
{
public:

View File

@ -16,9 +16,8 @@ namespace ngraph
{
namespace v6
{
/// \brief An operation ExperimentalDetectronGenerateProposalsSingleImage, according to
/// the repository https://github.com/openvinotoolkit/training_extensions
/// (see pytorch_toolkit/instance_segmentation/segmentoly/rcnn/proposal.py).
/// \brief An operation ExperimentalDetectronGenerateProposalsSingleImage
/// computes ROIs and their scores based on input data.
class NGRAPH_API ExperimentalDetectronGenerateProposalsSingleImage : public Op
{
public:

View File

@ -16,9 +16,8 @@ namespace ngraph
{
namespace v6
{
/// \brief An operation ExperimentalDetectronPriorGridGenerator, according to
/// the repository https://github.com/openvinotoolkit/training_extensions
/// (see pytorch_toolkit/instance_segmentation/segmentoly/rcnn/prior_box.py).
/// \brief An operation ExperimentalDetectronPriorGridGenerator generates prior
/// grids of specified sizes.
class NGRAPH_API ExperimentalDetectronPriorGridGenerator : public Op
{
public:

View File

@ -17,9 +17,8 @@ namespace ngraph
{
namespace v6
{
/// \brief An operation ExperimentalDetectronROIFeatureExtractor, according to
/// the repository https://github.com/openvinotoolkit/training_extensions (see the file
/// pytorch_toolkit/instance_segmentation/segmentoly/rcnn/roi_feature_extractor.py).
/// \brief An operation ExperimentalDetectronROIFeatureExtractor
/// is the ROIAlign operation applied over a feature pyramid.
class NGRAPH_API ExperimentalDetectronROIFeatureExtractor : public Op
{
public:

View File

@ -17,8 +17,7 @@ namespace ngraph
namespace v6
{
/// \brief An operation ExperimentalDetectronTopKROIs, according to the repository
/// https://github.com/openvinotoolkit/training_extensions (see
/// pytorch_toolkit/instance_segmentation/segmentoly/rcnn/roi_feature_extractor.py).
/// is TopK operation applied to probabilities of input ROIs.
class NGRAPH_API ExperimentalDetectronTopKROIs : public Op
{
public: