Seleciona avidamente um subconjunto de caixas delimitadoras em ordem decrescente de pontuação,
podando caixas que tenham alta sobreposição de interseção sobre união (IOU) com caixas previamente selecionadas. As 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 de caixa e as coordenadas podem ser fornecidas como normalizadas (ou seja, situadas em o intervalo [0, 1]) ou absoluto. Observe que este algoritmo é independente de onde a origem está no sistema de coordenadas e, mais geralmente, é invariante às transformações ortogonais e translações do sistema de coordenadas; assim, a tradução ou reflexão do sistema de coordenadas resulta na seleção das mesmas caixas 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 então ser obtidas usando a `operação tf.gather`. Por exemplo: selected_indices = tf.image.non_max_suppression_v2( boxes, score, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather(boxes, selected_indices) Esta operação também suporta um modo Soft-NMS (com ponderação gaussiana) (cf Bodla et al , https://arxiv.org/abs/1704.04503) onde 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
aula | NonMaxSuppression.Options | Atributos opcionais para NonMaxSuppression |
Constantes
Corda | OP_NAME | O nome desta operação, conforme conhecido pelo mecanismo principal do TensorFlow |
Métodos Públicos
estático <T estende TNumber > NonMaxSuppression <T> | create (Escopo do escopo , caixas do operando <T>, pontuações do operando <T>, 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 que agrupa uma nova operação NonMaxSuppression. |
NonMaxSuppression.Options estático | padToMaxOutputSize (booleano padToMaxOutputSize) |
Saída < TInt32 > | í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 < TInt32 > | saídas válidas () 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
String final estática pública OP_NAME
O nome desta operação, conforme conhecido pelo mecanismo principal do TensorFlow
Métodos Públicos
public static NonMaxSuppression <T> create ( Escopo , Operando <T> caixas, Operando <T> pontuações, 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 que agrupa uma nova operação NonMaxSuppression.
Parâmetros
escopo | 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 que representa o limite para decidir se as caixas se sobrepõem demais em relação ao IOU. |
pontuaçãoLimite | Um tensor flutuante 0-D que representa 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 NonMaxSuppression
public static NonMaxSuppression.Options padToMaxOutputSize (Boolean padToMaxOutputSize)
Parâmetros
padToMaxOutputSize | Se for verdade, a saída `selected_indices` será preenchida para ter o comprimento `max_output_size`. O padrão é falso. |
---|
Saída pública < TInt32 > í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 pública <T> selectScores ()
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`)