Selecciona codiciosamente un subconjunto de cuadros delimitadores en orden descendente de puntuación,
las cajas de poda que tienen una alta intersección sobre unión (IOU) se superponen con las cajas seleccionadas previamente. Se eliminan los cuadros delimitadores con una puntuación inferior a "score_threshold". Los cuadros delimitadores se proporcionan como [y1, x1, y2, x2], donde (y1, x1) y (y2, x2) son las coordenadas de cualquier par diagonal de esquinas de cuadro y las coordenadas se pueden proporcionar como 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, en 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 cajas. El resultado de esta operación es un conjunto de números enteros que se indexan 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 usando la `operación tf.gather`. Por ejemplo: selected_indices = tf.image.non_max_suppression_v2 (boxes, scores, 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 hacer que se poden directamente. Para habilitar este modo Soft-NMS, configure el parámetro `soft_nms_sigma` para que sea mayor que 0.
Clases anidadas
clase | NonMaxSuppression.Options | Los atributos opcionales para NonMaxSuppression |
Constantes
Cuerda | OP_NAME | El nombre de esta operación, como lo conoce el motor central de TensorFlow |
Métodos públicos
estática <T se extiende TNumber > NonMaxSuppression <T> | |
estáticas NonMaxSuppression.Options | padToMaxOutputSize (Boolean padToMaxOutputSize) |
Salida < TInt32 > | selectedIndices () Un tensor entero 1-D de forma `[M]` que representa los índices seleccionados del tensor de cajas, donde `M <= max_output_size`. |
Salida <T> | selectedScores () Un tensor flotante 1-D de forma `[M]` que representa las puntuaciones correspondientes para cada cuadro seleccionado, donde `M <= tamaño_de_salida_máx`. |
Salida < TInt32 > | validOutputs () Un tensor de enteros 0-D que representa el número de elementos válidos en `selected_indices`, con los elementos válidos que aparecen primero. |
Métodos heredados
Constantes
OP_NAME pública final static String
El nombre de esta operación, como lo conoce el motor central de TensorFlow
Métodos públicos
public static NonMaxSuppression <T> crear ( Alcance alcance, operando <T> cajas, operando <T> puntajes, operando < TInt32 > maxOutputSize, operando <T> iouThreshold, operando <T> scoreThreshold, operando <T> softNmsSigma, Opciones .. . opciones)
Método de fábrica para crear una clase que envuelva 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). |
maxOutputSize | Un tensor entero escalar que representa el número máximo de casillas que se seleccionarán mediante la supresión no máxima. |
iouThreshold | Un tensor flotante 0-D que representa el umbral para decidir si las cajas se superponen demasiado con respecto a los pagarés. |
scoreThreshold | Un tensor flotante 0-D que representa el umbral para decidir cuándo eliminar cajas según la puntuación. |
softNmsSigma | Un tensor flotante 0-D que representa el parámetro sigma para Soft NMS; véase Bodla et al (véase https://arxiv.org/abs/1704.04503). Cuando `soft_nms_sigma = 0.0` (que es el predeterminado), recurrimos al NMS estándar (duro). |
opciones | lleva valores de atributos opcionales |
Devoluciones
- una nueva instancia de NonMaxSuppression
estáticas pública NonMaxSuppression.Options padToMaxOutputSize (booleano padToMaxOutputSize)
Parámetros
padToMaxOutputSize | Si es verdadero, la salida `selected_indices` se rellena para que tenga la longitud` max_output_size`. El valor predeterminado es falso. |
---|
pública de salida < TInt32 > selectedIndices ()
Un tensor entero 1-D de forma `[M]` que representa los índices seleccionados del tensor de cajas, donde `M <= max_output_size`.
pública de salida <T> selectedScores ()
Un tensor flotante 1-D de forma `[M]` que representa las puntuaciones correspondientes para cada cuadro seleccionado, donde `M <= tamaño_de_salida_máx`. Las puntuaciones solo difieren de las puntuaciones de entrada correspondientes cuando se utiliza Soft NMS (es decir, cuando `soft_nms_sigma> 0`)