def METHOD_NAME(self, boxes, scores, iou_threshold):
    """
    Args:
        box_scores (N, 5): boxes in corner-form and probabilities.
            (Note here 5 == 4 + 1, i.e., 4-dim horizontal box + 1-dim prob)
        iou_threshold: intersection over union threshold.
    Returns:
         picked: a list of indexes of the kept boxes
    """
    picked = []
    _, indexes = scores.sort(descending=True)
    while len(indexes) > 0:
        current = indexes[0]
        picked.append(current.item())
        if len(indexes) == 1:
            break
        current_box = boxes[current, :]
        indexes = indexes[1:]
        rest_boxes = boxes[indexes, :]
        iou = ops.box_iou(rest_boxes, current_box.unsqueeze(0)).squeeze(1)
        indexes = indexes[iou <= iou_threshold]
    return torch.as_tensor(picked)