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:
parent
42bbe979b1
commit
6b62f67d44
@ -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"/>
|
||||
|
195
docs/ops/detection/ExperimentalDetectronDetectionOutput_6.md
Normal file
195
docs/ops/detection/ExperimentalDetectronDetectionOutput_6.md
Normal 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>
|
||||
```
|
@ -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>
|
||||
```
|
117
docs/ops/detection/ExperimentalDetectronPriorGridGenerator_6.md
Normal file
117
docs/ops/detection/ExperimentalDetectronPriorGridGenerator_6.md
Normal 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>
|
||||
```
|
139
docs/ops/detection/ExperimentalDetectronROIFeatureExtractor_6.md
Normal file
139
docs/ops/detection/ExperimentalDetectronROIFeatureExtractor_6.md
Normal 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>
|
||||
```
|
@ -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)
|
||||
|
@ -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)
|
||||
|
61
docs/ops/sort/ExperimentalDetectronTopKROIs_6.md
Normal file
61
docs/ops/sort/ExperimentalDetectronTopKROIs_6.md
Normal 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>
|
||||
```
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user