# tensorflow::ops::NonMaxSuppressionV2

`#include <image_ops.h>`

Greedily selects a subset of bounding boxes in descending order of score,.

## Summary

pruning away boxes that have high intersection-over-union (IOU) overlap with previously selected boxes. Bounding boxes are supplied as [y1, x1, y2, x2], where (y1, x1) and (y2, x2) are the coordinates of any diagonal pair of box corners and the coordinates can be provided as normalized (i.e., lying in the interval [0, 1]) or absolute. Note that this algorithm is agnostic to where the origin is in the coordinate system. Note that this algorithm is invariant to orthogonal transformations and translations of the coordinate system; thus translating or reflections of the coordinate system result in the same boxes being selected by the algorithm.

The output of this operation is a set of integers indexing into the input collection of bounding boxes representing the selected boxes. The bounding box coordinates corresponding to the selected indices can then be obtained using the `tf.gather operation`. For example:

selected_indices = tf.image.non_max_suppression_v2( boxes, scores, max_output_size, iou_threshold) selected_boxes = tf.gather(boxes, selected_indices)

Arguments:

• scope: A Scope object
• boxes: A 2-D float tensor of shape `[num_boxes, 4]`.
• scores: A 1-D float tensor of shape `[num_boxes]` representing a single score corresponding to each box (each row of boxes).
• max_output_size: A scalar integer tensor representing the maximum number of boxes to be selected by non max suppression.
• iou_threshold: A 0-D float tensor representing the threshold for deciding whether boxes overlap too much with respect to IOU.

Returns:

• `Output`: A 1-D integer tensor of shape `[M]` representing the selected indices from the boxes tensor, where `M <= max_output_size`.

### Constructors and Destructors

`NonMaxSuppressionV2(const ::tensorflow::Scope & scope, ::tensorflow::Input boxes, ::tensorflow::Input scores, ::tensorflow::Input max_output_size, ::tensorflow::Input iou_threshold)`

### Public attributes

`operation`
`Operation`
`selected_indices`
`::tensorflow::Output`

### Public functions

`node() const `
`::tensorflow::Node *`
`operator::tensorflow::Input() const `
``` ```
``` ```
`operator::tensorflow::Output() const `
``` ```
``` ```

## Public attributes

### operation

`Operation operation`

### selected_indices

`::tensorflow::Output selected_indices`

## Public functions

### NonMaxSuppressionV2

``` NonMaxSuppressionV2(
const ::tensorflow::Scope & scope,
::tensorflow::Input boxes,
::tensorflow::Input scores,
::tensorflow::Input max_output_size,
::tensorflow::Input iou_threshold
)```

### node

`::tensorflow::Node * node() const `

### operator::tensorflow::Input

` operator::tensorflow::Input() const `

### operator::tensorflow::Output

` operator::tensorflow::Output() const `
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]