NonMaxSuppressionWithOverlaps

public final class NonMaxSuppressionWithOverlaps

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

pruning away boxes that have high overlaps with previously selected boxes. Bounding boxes with score less than `score_threshold` are removed. N-by-n overlap values are supplied as square matrix, which allows for defining a custom overlap criterium (eg. intersection over union, intersection over area, etc.).

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_with_overlaps( overlaps, scores, max_output_size, overlap_threshold, score_threshold) selected_boxes = tf.gather(boxes, selected_indices)

Constants

String OP_NAME The name of this op, as known by TensorFlow core engine

Public Methods

Output < TInt32 >
asOutput ()
Returns the symbolic handle of the tensor.
static NonMaxSuppressionWithOverlaps
create ( Scope scope, Operand < TFloat32 > overlaps, Operand < TFloat32 > scores, Operand < TInt32 > maxOutputSize, Operand < TFloat32 > overlapThreshold, Operand < TFloat32 > scoreThreshold)
Factory method to create a class wrapping a new NonMaxSuppressionWithOverlaps operation.
Output < TInt32 >
selectedIndices ()
A 1-D integer tensor of shape `[M]` representing the selected indices from the boxes tensor, where `M <= max_output_size`.

Inherited Methods

Constants

public static final String OP_NAME

The name of this op, as known by TensorFlow core engine

Constant Value: "NonMaxSuppressionWithOverlaps"

Public Methods

public Output < TInt32 > asOutput ()

Returns the symbolic handle of the tensor.

Inputs to TensorFlow operations are outputs of another TensorFlow operation. This method is used to obtain a symbolic handle that represents the computation of the input.

public static NonMaxSuppressionWithOverlaps create ( Scope scope, Operand < TFloat32 > overlaps, Operand < TFloat32 > scores, Operand < TInt32 > maxOutputSize, Operand < TFloat32 > overlapThreshold, Operand < TFloat32 > scoreThreshold)

Factory method to create a class wrapping a new NonMaxSuppressionWithOverlaps operation.

Parameters
scope current scope
overlaps A 2-D float tensor of shape `[num_boxes, num_boxes]` representing the n-by-n box overlap values.
scores A 1-D float tensor of shape `[num_boxes]` representing a single score corresponding to each box (each row of boxes).
maxOutputSize A scalar integer tensor representing the maximum number of boxes to be selected by non max suppression.
overlapThreshold A 0-D float tensor representing the threshold for deciding whether boxes overlap too.
scoreThreshold A 0-D float tensor representing the threshold for deciding when to remove boxes based on score.
Returns
  • a new instance of NonMaxSuppressionWithOverlaps

public Output < TInt32 > selectedIndices ()

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