Seleziona avidamente un sottoinsieme di riquadri di delimitazione in ordine decrescente di punteggio,
eliminando le caselle che hanno un'elevata sovrapposizione di intersezione su unione (IOU) con le caselle precedentemente selezionate. I riquadri di delimitazione con punteggio inferiore a "score_threshold" vengono rimossi. I riquadri di delimitazione vengono 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 (ovvero, giacenti in l'intervallo [0, 1]) o assoluto. Si noti che questo algoritmo è indipendente dalla posizione dell'origine nel sistema di coordinate e più in generale è invariante rispetto alle trasformazioni ortogonali e alle traslazioni del sistema di coordinate; quindi la traslazione o le riflessioni del sistema di coordinate comportano la selezione delle stesse caselle da parte dell'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(boxes, scores, max_output_size, iou_threshold, score_threshold)selected_boxes = tf.gather(boxes,selected_indices) Questa operazione supporta anche una modalità Soft-NMS (con ponderazione gaussiana) (cfr Bodla et al , https://arxiv.org/abs/1704.04503) dove i riquadri riducono il punteggio di altri riquadri sovrapposti invece di provocarne direttamente la potatura. Per abilitare questa modalità Soft-NMS, imposta il parametro "soft_nms_sigma" su un valore maggiore di 0.
Classi nidificate
classe | NonMaxSuppression.Options | Attributi facoltativi per NonMaxSuppression |
Costanti
Corda | OP_NAME | Il nome di questa operazione, come noto al motore principale di TensorFlow |
Metodi pubblici
statico <T estende TNumber > NonMaxSuppression <T> | |
NonMaxSuppression.Options statiche | padToMaxOutputSize (padToMaxOutputSize booleano) |
Uscita < TInt32 > | indici selezionati () Un tensore intero 1-D di forma "[M]" che rappresenta gli indici selezionati dal tensore delle caselle, dove "M <= max_output_size". |
Uscita <T> | punteggi selezionati () Un tensore float 1-D di forma "[M]" che rappresenta i punteggi corrispondenti per ciascuna casella selezionata, dove "M <= max_output_size". |
Uscita < TInt32 > | output validi () Un tensore intero 0-D che rappresenta il numero di elementi validi in "indice_selezionato", con gli elementi validi che appaiono per primi. |
Metodi ereditati
Costanti
Stringa finale statica pubblica OP_NAME
Il nome di questa operazione, come noto al motore principale di TensorFlow
Metodi pubblici
public static NonMaxSuppression <T> create ( ambito ambito , caselle operando <T>, punteggi operando <T>, operando < TInt32 > maxOutputSize, operando <T> iouThreshold, operando <T> scoreThreshold, operando <T> softNmsSigma, Opzioni.. . opzioni)
Metodo factory per creare una classe che racchiude una nuova operazione NonMaxSuppression.
Parametri
scopo | ambito attuale |
---|---|
scatole | Un tensore float 2D di forma "[num_boxes, 4]". |
punteggi | Un tensore float 1-D di forma "[num_boxes]" che rappresenta un singolo punteggio corrispondente a ciascuna casella (ogni riga di caselle). |
dimensioneuscitamax | Un tensore intero scalare che rappresenta il numero massimo di caselle da selezionare mediante la soppressione non massima. |
iouSoglia | Un tensore float 0-D che rappresenta la soglia per decidere se le scatole si sovrappongono troppo rispetto all'IOU. |
punteggioSoglia | Un tensore float 0-D che rappresenta la soglia per decidere quando rimuovere le caselle in base al punteggio. |
softNmsSigma | Un tensore float 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 all'NMS standard (hard). |
opzioni | trasporta valori di attributi opzionali |
ritorna
- una nuova istanza di NonMaxSuppression
pubblico statico NonMaxSuppression.Options padToMaxOutputSize (booleano padToMaxOutputSize)
Parametri
padToMaxOutputSize | Se vero, l'output "selected_indices" viene riempito per avere la lunghezza "max_output_size". Il valore predefinito è falso. |
---|
output pubblico < TInt32 > selectIndices ()
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> selezionatiScores ()
Un tensore float 1-D di forma "[M]" che rappresenta i punteggi corrispondenti per ciascuna casella selezionata, dove "M <= max_output_size". I punteggi differiscono dai punteggi di input corrispondenti solo quando si utilizza Soft NMS (ovvero quando `soft_nms_sigma>0`)