Selecciona con avidez un subconjunto de cuadros delimitadores en orden descendente de puntuación,
eliminar las cajas que tienen una alta superposición de intersección sobre unión (IOU) con las cajas seleccionadas previamente. Se eliminan los cuadros delimitadores con una puntuación inferior a "score_threshold". Los cuadros delimitadores se suministran como [y1, x1, y2, x2], donde (y1, x1) y (y2, x2) son las coordenadas de cualquier par diagonal de esquinas del cuadro y las coordenadas se pueden proporcionar normalizadas (es decir, situadas en el intervalo [0, 1]) o absoluto. Tenga en cuenta que este algoritmo es independiente de dónde está el origen en el sistema de coordenadas y, de manera más general, es invariante a las transformaciones y traslaciones ortogonales del sistema de coordenadas; por lo tanto, la traducción o las reflexiones del sistema de coordenadas dan como resultado que el algoritmo seleccione las mismas casillas. El resultado de esta operación es un conjunto de números enteros indexados en la colección de entrada de cuadros delimitadores que representan los cuadros seleccionados. Las coordenadas del cuadro delimitador correspondientes a los índices seleccionados se pueden obtener utilizando la "operación tf.gather". Por ejemplo: selected_indices = tf.image.non_max_suppression_v2( boxes, scorings, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather(boxes, selected_indices) Esta operación también admite un modo Soft-NMS (con ponderación gaussiana) (cf. Bodla et al. , https://arxiv.org/abs/1704.04503) donde los cuadros reducen la puntuación de otros cuadros superpuestos en lugar de provocar directamente su poda. Para habilitar este modo Soft-NMS, configure el parámetro `soft_nms_sigma` para que sea mayor que 0.
Clases anidadas
clase | Opciones de NonMaxSuppression | Atributos opcionales para NonMaxSuppression |
Constantes
Cadena | OP_NOMBRE | El nombre de esta operación, como lo conoce el motor central de TensorFlow. |
Métodos públicos
estático <T extiende TNumber > NonMaxSuppression <T> | crear ( alcance alcance , cuadros de operando <T>, puntuaciones de operando <T>, operando < TInt32 > maxOutputSize, operando <T> iouThreshold, operando <T> scoreThreshold, operando <T> softNmsSigma, opciones... opciones) Método de fábrica para crear una clase que envuelve una nueva operación NonMaxSuppression. |
Opciones estáticas de NonMaxSuppression. | padToMaxOutputSize (padToMaxOutputSize booleano) |
Salida < TInt32 > | índices seleccionados () Un tensor entero 1-D de forma `[M]` que representa los índices seleccionados del tensor de cajas, donde `M <= max_output_size`. |
Salida <T> | puntuaciones seleccionadas () Un tensor flotante 1-D de forma `[M]` que representa las puntuaciones correspondientes para cada cuadro seleccionado, donde `M <= max_output_size`. |
Salida < TInt32 > | Salidas válidas () Un tensor entero 0-D que representa el número de elementos válidos en `selected_indices`, donde los elementos válidos aparecen primero. |
Métodos heredados
Constantes
Cadena final estática pública OP_NAME
El nombre de esta operación, como lo conoce el motor central de TensorFlow.
Métodos públicos
public static NonMaxSuppression <T> crear ( alcance , cuadros de operando <T>, puntuaciones de operando <T>, operando <TInt32> maxOutputSize, operando <T> iouThreshold, operando <T> scoreThreshold, operando <T> softNmsSigma, opciones.. . opciones)
Método de fábrica para crear una clase que envuelve una nueva operación NonMaxSuppression.
Parámetros
alcance | alcance actual |
---|---|
cajas | Un tensor flotante 2-D de forma `[num_boxes, 4]`. |
puntuaciones | Un tensor flotante 1-D de forma `[num_boxes]` que representa una puntuación única correspondiente a cada cuadro (cada fila de cuadros). |
tamaño máximo de salida | Un tensor entero escalar que representa el número máximo de cuadros que se seleccionarán mediante supresión no máxima. |
iouumbral | Un tensor flotante 0-D que representa el umbral para decidir si las cajas se superponen demasiado con respecto al pagaré. |
puntuaciónUmbral | Un tensor flotante 0-D que representa el umbral para decidir cuándo eliminar cuadros según la puntuación. |
suaveNmsSigma | Un tensor flotante 0-D que representa el parámetro sigma para Soft NMS; véase Bodla et al (cf. https://arxiv.org/abs/1704.04503). Cuando `soft_nms_sigma=0.0` (que es el valor predeterminado), volvemos al NMS estándar (duro). |
opciones | lleva valores de atributos opcionales |
Devoluciones
- una nueva instancia de NonMaxSuppression
público estático NonMaxSuppression.Options padToMaxOutputSize (booleano padToMaxOutputSize)
Parámetros
padToMaxOutputSize | Si es verdadero, la salida `selected_indices` se rellena para que tenga una longitud `max_output_size`. El valor predeterminado es falso. |
---|
Salida pública < TInt32 > índices seleccionados ()
Un tensor entero 1-D de forma `[M]` que representa los índices seleccionados del tensor de cajas, donde `M <= max_output_size`.
Salida pública <T> puntuaciones seleccionadas ()
Un tensor flotante 1-D de forma `[M]` que representa las puntuaciones correspondientes para cada cuadro seleccionado, donde `M <= max_output_size`. Las puntuaciones solo difieren de las puntuaciones de entrada correspondientes cuando se utiliza Soft NMS (es decir, cuando `soft_nms_sigma>0`)