Avidamente seleciona um subconjunto de caixas delimitadoras em ordem decrescente de pontuação,
podar caixas que têm alta sobreposição de intersecção-sobre-união (IOU) com caixas previamente selecionadas. Caixas delimitadoras com pontuação inferior a `score_threshold` são removidas. As caixas delimitadoras são fornecidas como [y1, x1, y2, x2], onde (y1, x1) e (y2, x2) são as coordenadas de qualquer par diagonal de cantos da caixa e as coordenadas podem ser fornecidas como normalizadas (ou seja, situadas em o intervalo [0, 1]) ou absoluto. Observe que este algoritmo é agnóstico em relação a onde a origem está no sistema de coordenadas e, mais geralmente, é invariante para transformações ortogonais e traduções do sistema de coordenadas; assim, a tradução ou reflexos do sistema de coordenadas resulta nas mesmas caixas sendo selecionadas pelo algoritmo. A saída dessa operação é um conjunto de números inteiros indexados na coleção de entrada de caixas delimitadoras que representam as caixas selecionadas. As coordenadas da caixa delimitadora correspondentes aos índices selecionados podem então ser obtidas usando a `operação tf.gather`. Por exemplo: selected_indices = tf.image.non_max_suppression_v2 (caixas, pontuações, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather (boxes, selected_indices) Este op também suporta um modo Soft-NMS (com ponderação gaussiana) (cf Bodla et al , https://arxiv.org/abs/1704.04503) em que as caixas reduzem a pontuação de outras caixas sobrepostas, em vez de causar diretamente a poda delas. Para habilitar este modo Soft-NMS, defina o parâmetro `soft_nms_sigma` para ser maior que 0.
Classes aninhadas
classe | NonMaxSuppression.Options | Atributos opcionais para NonMaxSuppression |
Constantes
Fragmento | OP_NAME | O nome desta operação, conforme conhecido pelo motor principal TensorFlow |
Métodos Públicos
estática <T estende TNumber > NonMaxSuppression <T> | |
estáticos NonMaxSuppression.Options | padToMaxOutputSize (booleano padToMaxOutputSize) |
Output < TInt32 > | selectedIndices () Um tensor inteiro 1-D de forma `[M]` representando os índices selecionados do tensor de caixas, onde `M <= max_output_size`. |
Output <T> | selectedScores () Um tensor flutuante 1-D de forma `[M]` representando as pontuações correspondentes para cada caixa selecionada, onde `M <= max_output_size`. |
Output < TInt32 > | validOutputs () Um tensor inteiro 0-D que representa o número de elementos válidos em `selected_indices`, com os elementos válidos aparecendo primeiro. |
Métodos herdados
Constantes
nome_op final String public static
O nome desta operação, conforme conhecido pelo motor principal TensorFlow
Métodos Públicos
public static NonMaxSuppression <T> create ( Scope escopo, Operando <T> caixas, Operando <T> pontuação, Operando < TInt32 > maxOutputSize, Operando <T> iouThreshold, Operando <T> scoreThreshold, Operando <T> softNmsSigma, Opções .. . opções)
Método de fábrica para criar uma classe envolvendo uma nova operação NonMaxSuppression.
Parâmetros
alcance | escopo atual |
---|---|
caixas | Um tensor flutuante 2-D de formato `[num_boxes, 4]`. |
pontuações | Um tensor flutuante 1-D de forma `[num_boxes]` representando uma única pontuação correspondente a cada caixa (cada linha de caixas). |
maxOutputSize | Um tensor escalar inteiro que representa o número máximo de caixas a serem selecionadas por supressão não máxima. |
iouThreshold | Um tensor flutuante 0-D que representa o limite para decidir se as caixas se sobrepõem demais em relação ao IOU. |
scoreThreshold | Um tensor flutuante 0-D que representa o limite para decidir quando remover as caixas com base na pontuação. |
softNmsSigma | Um tensor flutuante 0-D que representa o parâmetro sigma para Soft NMS; consulte Bodla et al (cf https://arxiv.org/abs/1704.04503). Quando `soft_nms_sigma = 0.0` (que é o padrão), voltamos ao NMS padrão (rígido). |
opções | carrega valores de atributos opcionais |
Devoluções
- uma nova instância de NonMaxSuppression
public static NonMaxSuppression.Options padToMaxOutputSize (Boolean padToMaxOutputSize)
Parâmetros
padToMaxOutputSize | Se verdadeiro, a saída `selected_indices` é preenchida para ter o comprimento` max_output_size`. O padrão é falso. |
---|
pública Output < TInt32 > selectedIndices ()
Um tensor inteiro 1-D de forma `[M]` representando os índices selecionados do tensor de caixas, onde `M <= max_output_size`.
pública Output <T> selectedScores ()
Um tensor flutuante 1-D de forma `[M]` representando as pontuações correspondentes para cada caixa selecionada, onde `M <= max_output_size`. As pontuações diferem apenas das pontuações de entrada correspondentes ao usar Soft NMS (ou seja, quando `soft_nms_sigma> 0`)