Avidamente seleciona um subconjunto de caixas delimitadoras em ordem decrescente de pontuação,
poda de caixas que têm alta sobreposição de interseção sobre união (IOU) com caixas selecionadas anteriormente. As caixas delimitadoras com pontuação menor que `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 de caixa e as coordenadas podem ser fornecidas como normalizadas (ou seja, situadas em o intervalo [0, 1]) ou absoluto. Observe que esse algoritmo é agnóstico para onde a origem está no sistema de coordenadas e, mais geralmente, é invariante para transformações ortogonais e translações do sistema de coordenadas; assim a tradução ou reflexões do sistema de coordenadas resultam nas mesmas caixas sendo selecionadas pelo algoritmo. A saída desta operação é um conjunto de 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 ser obtidas usando a `operação tf.gather`. Por exemplo: selected_indices = tf.image.non_max_suppression_v2(boxes, scores, 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 fazer com que sejam podadas diretamente. Para habilitar este modo Soft-NMS, defina o parâmetro `soft_nms_sigma` para ser maior que 0.
Classes aninhadas
classe | NonMaxSuppressionV5.Options | Atributos opcionais para NonMaxSuppressionV5 |
Métodos públicos
estático <T estende Número> NonMaxSuppressionV5 <T> | |
static NonMaxSuppressionV5.Options | padToMaxOutputSize (Booleano padToMaxOutputSize) |
Saída <Inteiro> | índices selecionados () Um tensor inteiro 1-D de forma `[M]` representando os índices selecionados do tensor de caixas, onde `M <= max_output_size`. |
Saída <T> | Pontuações selecionadas () Um tensor flutuante 1-D de forma `[M]` representando as pontuações correspondentes para cada caixa selecionada, onde `M <= max_output_size`. |
Saída <Inteiro> | validSaídas () Um tensor inteiro 0-D representando o número de elementos válidos em `selected_indices`, com os elementos válidos aparecendo primeiro. |
Métodos Herdados
Métodos públicos
public static NonMaxSuppressionV5 <T> create ( Escopo do escopo, Operando <T> caixas, Operando <T> pontuações, Operando <Integer> maxOutputSize, Operando <T> iouThreshold, Operando <T> scoreThreshold, Operando <T> softNmsSigma, Opções.. . opções)
Método de fábrica para criar uma classe que envolve uma nova operação NonMaxSuppressionV5.
Parâmetros
alcance | escopo atual |
---|---|
caixas | Um tensor flutuante 2-D de forma `[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 inteiro escalar 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 representando o limite para decidir se as caixas se sobrepõem demais em relação à IOU. |
limite de pontuação | Um tensor flutuante 0-D representando o limite para decidir quando remover caixas com base na pontuação. |
softNmsSigma | Um tensor flutuante 0-D representando o parâmetro sigma para Soft NMS; veja 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 (hard). |
opções | carrega valores de atributos opcionais |
Devoluções
- uma nova instância de NonMaxSuppressionV5
public static NonMaxSuppressionV5.Options padToMaxOutputSize (Booleano padToMaxOutputSize)
Parâmetros
padToMaxOutputSize | Se true, a saída `selected_indices` é preenchida para ter o tamanho `max_output_size`. O padrão é falso. |
---|
Public Output <Integer> selectedIndices ()
Um tensor inteiro 1-D de forma `[M]` representando os índices selecionados do tensor de caixas, onde `M <= max_output_size`.
Public 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 o Soft NMS (ou seja, quando `soft_nms_sigma>0`)
Public Output <Integer> validOutputs ()
Um tensor inteiro 0-D representando o número de elementos válidos em `selected_indices`, com os elementos válidos aparecendo primeiro.