Seleziona avidamente un sottoinsieme di riquadri di delimitazione in ordine decrescente di punteggio,
eliminazione di scatole che hanno un'elevata sovrapposizione di intersezione su unione (IOU) con scatole precedentemente selezionate. I riquadri di delimitazione con punteggio inferiore a "score_threshold" vengono rimossi. I riquadri di selezione sono forniti come [y1, x1, y2, x2], dove (y1, x1) e (y2, x2) sono le coordinate di qualsiasi coppia diagonale di angoli del riquadro e le coordinate possono essere fornite come normalizzate l'intervallo [0, 1]) o assoluto. Si noti che questo algoritmo è agnostico rispetto al punto in cui l'origine è nel sistema di coordinate e più in generale è invariante alle trasformazioni ortogonali e alle traslazioni del sistema di coordinate; quindi la traduzione o le riflessioni del sistema di coordinate risultano nelle stesse caselle selezionate dall'algoritmo. L'output di questa operazione è un insieme di numeri interi indicizzati nella raccolta di input di riquadri di delimitazione che rappresentano i riquadri selezionati. Le coordinate del riquadro di delimitazione corrispondenti agli indici selezionati possono quindi essere ottenute utilizzando l'operazione `tf.gather`. Ad esempio: selected_indices = tf.image.non_max_suppression_v2 (box, score, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather (box, selected_indices) Questa opzione supporta anche una modalità Soft-NMS (con ponderazione gaussiana) (cfr Bodla et al , https://arxiv.org/abs/1704.04503) dove le scatole riducono il punteggio di altre scatole sovrapposte invece di provocarne l'eliminazione diretta. Per abilitare questa modalità Soft-NMS, impostare il parametro `soft_nms_sigma` su un valore maggiore di 0.
Classi annidate
classe | NonMaxSuppressionV5.Options | Attributi facoltativi per NonMaxSuppressionV5 |
Metodi pubblici
static <T extends Number> NonMaxSuppressionV5 <T> | creare ( Ambito di applicazione portata, operando <T> scatole, operando <T> colonne sonore, operando <Integer> maxOutputSize, operando <T> iouThreshold, operando <T> scoreThreshold, operando <T> softNmsSigma, Opzioni ... Opzioni) Metodo Factory per creare una classe che racchiude una nuova operazione NonMaxSuppressionV5. |
static NonMaxSuppressionV5.Options | padToMaxOutputSize (Boolean padToMaxOutputSize) |
Uscita <Integer> | selectedIndices () Un tensore intero 1-D di forma "[M]" che rappresenta gli indici selezionati dal tensore delle caselle, dove "M <= max_output_size". |
Uscita <T> | selectedScores () Un tensore a virgola mobile 1-D di forma "[M]" che rappresenta i punteggi corrispondenti per ciascuna casella selezionata, dove "M <= max_output_size". |
Uscita <Integer> | validOutputs () Un tensore intero 0-D che rappresenta il numero di elementi validi in "selected_indices", con gli elementi validi che appaiono per primi. |
Metodi ereditati
Metodi pubblici
public static NonMaxSuppressionV5 <T> create ( Scope scope, Operando <T> box, Operand <T> score, Operand <Integer> maxOutputSize, Operand <T> iouThreshold, Operand <T> scoreThreshold, Operand <T> softNmsSigma, Options . opzioni)
Metodo Factory per creare una classe che racchiude una nuova operazione NonMaxSuppressionV5.
Parametri
scopo | ambito attuale |
---|---|
scatole | Un tensore a virgola mobile 2-D di forma `[num_boxes, 4]`. |
punteggi | Un tensore in virgola mobile 1-D di forma "[num_boxes]" che rappresenta un singolo punteggio corrispondente a ciascuna casella (ciascuna riga di caselle). |
maxOutputSize | Un tensore intero scalare che rappresenta il numero massimo di caselle che possono essere selezionate dalla soppressione non massima. |
iouThreshold | Un tensore a virgola mobile 0-D che rappresenta la soglia per decidere se le caselle si sovrappongono troppo rispetto a IOU. |
scoreThreshold | Un tensore a virgola mobile 0-D che rappresenta la soglia per decidere quando rimuovere le caselle in base al punteggio. |
softNmsSigma | Un tensore a virgola mobile 0-D che rappresenta il parametro sigma per Soft NMS; vedere Bodla et al (cfr https://arxiv.org/abs/1704.04503). Quando "soft_nms_sigma = 0.0" (che è l'impostazione predefinita), torniamo allo standard (hard) NMS. |
opzioni | trasporta valori di attributi opzionali |
ritorna
- una nuova istanza di NonMaxSuppressionV5
public static NonMaxSuppressionV5.Options padToMaxOutputSize (Boolean padToMaxOutputSize)
Parametri
padToMaxOutputSize | Se vero, l'output `selected_indices` viene riempito in modo da essere di lunghezza` max_output_size`. Il valore predefinito è false. |
---|
public Output <Integer> selectedIndices ()
Un tensore intero 1-D di forma "[M]" che rappresenta gli indici selezionati dal tensore delle caselle, dove "M <= max_output_size".
output pubblico <T> selectedScores ()
Un tensore a virgola mobile 1-D di forma "[M]" che rappresenta i punteggi corrispondenti per ciascuna casella selezionata, dove "M <= max_output_size". I punteggi differiscono solo dai punteggi di input corrispondenti quando si usa Soft NMS (cioè quando `soft_nms_sigma> 0`)
output pubblico <Integer> validOutputs ()
Un tensore intero 0-D che rappresenta il numero di elementi validi in "selected_indices", con gli elementi validi che appaiono per primi.