Chciwie wybiera podzbiór obwiedni w malejącej kolejności punktów,
przycinanie skrzynek, które mają wysoki współczynnik przecięcia nad związkiem (IOU), nakładają się na wcześniej wybrane pola. Ramki ograniczające z wynikiem mniejszym niż „próg_wyniku” są usuwane. Ramki ograniczające są dostarczane jako [y1, x1, y2, x2], gdzie (y1, x1) i (y2, x2) są współrzędnymi dowolnej pary przekątnych narożników prostokątów, a współrzędne mogą być podane jako znormalizowane (tzn. leżące w przedział [0, 1]) lub bezwzględny. Należy zauważyć, że ten algorytm jest niezależny od tego, gdzie początek znajduje się w układzie współrzędnych i, bardziej ogólnie, jest niezmienny w stosunku do transformacji ortogonalnych i translacji układu współrzędnych; w ten sposób tłumaczenie lub odbicia układu współrzędnych powodują, że algorytm wybiera te same pola. Wynikiem tej operacji jest zbiór liczb całkowitych indeksowanych w zbiorze wejściowym ramek ograniczających reprezentujących wybrane ramki. Współrzędne ramki ograniczającej odpowiadające wybranym indeksom można następnie uzyskać za pomocą operacji `tf.gather`. Na przykład: wybrane_indices = tf.image.non_max_suppression_v2(boxs, scores, max_output_size, iou_threshold, score_threshold) wybrane_boxes = tf.gather(boxes, wybrane_indices) Ta opcja obsługuje również tryb Soft-NMS (z ważeniem Gaussa) (por. Bodla i in. , https://arxiv.org/abs/1704.04503), gdzie pola zmniejszają punktację innych nakładających się pól, zamiast bezpośrednio powodować ich przycinanie. Aby włączyć ten tryb Soft-NMS, ustaw parametr `soft_nms_sigma` na większy niż 0.
Klasy zagnieżdżone
klasa | Opcje NonMaxSuppression | Opcjonalne atrybuty dla NonMaxSuppression |
Stałe
Strunowy | OP_NAME | Nazwa tej operacji znana silnikowi rdzenia TensorFlow |
Metody publiczne
statyczny <T rozszerza TNumber > NonMaxSuppression <T> | utwórz (zakres zakresu , pola argumentów <T>, wyniki argumentów <T>, argumenty < TInt32 > maxOutputSize, argumenty <T> iouThreshold, argumenty <T> scoreThreshold, argumenty <T> softNmsSigma, opcje... ) Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację NonMaxSuppression. |
statyczne NonMaxSuppression.Options | padToMaxOutputSize (boolowski padToMaxOutputSize) |
Dane wyjściowe <TInt32> | wybraneIndeksy () Jednowymiarowy tensor całkowity o kształcie „[M]” reprezentujący wybrane indeksy z tensora pudełek, gdzie „M <= maksymalny_rozmiar_wyjściowy”. |
Wyjście <T> | wybraneWyniki () Jednowymiarowy tensor zmiennoprzecinkowy o kształcie „[M]” reprezentujący odpowiednie wyniki dla każdego wybranego pola, gdzie „M <= maksymalny_rozmiar_wyjściowy”. |
Dane wyjściowe <TInt32> | ważne wyniki () Tensor liczby całkowitej 0-D reprezentujący liczbę prawidłowych elementów w „wybranych_indices”, przy czym prawidłowe elementy pojawiają się jako pierwsze. |
Metody dziedziczone
Stałe
publiczny statyczny końcowy ciąg znaków OP_NAME
Nazwa tej operacji znana silnikowi rdzenia TensorFlow
Metody publiczne
public static NonMaxSuppression <T> utwórz (zakres zakresu , pola argumentu <T>, wyniki argumentu <T>, argument < TInt32 > maxOutputSize, argument <T> iouThreshold, argument <T> scoreThreshold, argument <T> softNmsSigma, opcje.. .opcje )
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację NonMaxSuppression.
Parametry
zakres | aktualny zakres |
---|---|
pudła | Dwuwymiarowy tensor zmiennoprzecinkowy o kształcie „[num_boxes, 4]”. |
wyniki | Jednowymiarowy tensor zmiennoprzecinkowy o kształcie „[num_boxes]” reprezentujący pojedynczy wynik odpowiadający każdemu prostokątowi (każdemu wierszowi kwadratów). |
maksymalny rozmiar wyjściowy | Skalarny tensor będący liczbą całkowitą reprezentujący maksymalną liczbę pól do wybrania w wyniku tłumienia innego niż maksymalne. |
iuPróg | Tensor zmiennoprzecinkowy 0-D reprezentujący próg decydujący o tym, czy pola nakładają się zbytnio na IOU. |
Próg wyniku | Tensor zmiennoprzecinkowy 0-D reprezentujący próg decydujący o tym, kiedy usunąć pola na podstawie wyniku. |
softNmsSigma | Tensor zmiennoprzecinkowy 0-D reprezentujący parametr sigma dla miękkiego NMS; patrz Bodla i in. (por. https://arxiv.org/abs/1704.04503). Gdy `soft_nms_sigma=0.0` (co jest ustawieniem domyślnym), wracamy do standardowego (twardego) NMS. |
opcje | przenosi opcjonalne wartości atrybutów |
Zwroty
- nowa instancja NonMaxSuppression
public static NonMaxSuppression.Options padToMaxOutputSize (Boolean padToMaxOutputSize)
Parametry
padToMaxOutputSize | Jeśli ma wartość true, dane wyjściowe „wybrane_indices” są dopełniane do długości „max_output_size”. Domyślnie jest to fałsz. |
---|
publiczne wyjście < TInt32 > wybraneIndeksy ()
Jednowymiarowy tensor całkowity o kształcie „[M]” reprezentujący wybrane indeksy z tensora pudełek, gdzie „M <= maksymalny_rozmiar_wyjściowy”.
publiczne wyjście <T> wybraneWyniki ()
Jednowymiarowy tensor zmiennoprzecinkowy o kształcie „[M]” reprezentujący odpowiednie wyniki dla każdego wybranego pola, gdzie „M <= maksymalny_rozmiar_wyjściowy”. Wyniki różnią się od odpowiadających im wyników wejściowych tylko przy użyciu Soft NMS (tzn. gdy `soft_nms_sigma>0`)