function nonMaxSuppression_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY) {
    const $boxes = (0, _tensorUtilEnv.convertToTensor)(boxes, "boxes", "nonMaxSuppression", "float32");
    const $scores = (0, _tensorUtilEnv.convertToTensor)(scores, "scores", "nonMaxSuppression", "float32");
    const inputs = (0, _nonmaxUtil.nonMaxSuppSanityCheck)($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold);
    maxOutputSize = inputs.maxOutputSize;
    iouThreshold = inputs.iouThreshold;
    scoreThreshold = inputs.scoreThreshold;
    const attrs = {
        maxOutputSize,
        iouThreshold,
        scoreThreshold
    };
    return (0, _engine.ENGINE).runKernel((0, _kernelNames.NonMaxSuppressionV3), {
        boxes: $boxes,
        scores: $scores
    }, attrs);
}
Performs non maximum suppression of bounding boxes based on
iou (intersection over union).

@param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
    `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
    the bounding box.
@param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
@param maxOutputSize The maximum number of boxes to be selected.
@param iouThreshold A float representing the threshold for deciding whether
    boxes overlap too much with respect to IOU. Must be between [0, 1].
    Defaults to 0.5 (50% box overlap).
@param scoreThreshold A threshold for deciding when to remove boxes based
    on score. Defaults to -inf, which means any score is accepted.
@return A 1D tensor with the selected box indices.

@doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}