NonMaxSuppression

classe finale publique NonMaxSuppression

Sélectionne goulûment un sous-ensemble de boîtes englobantes par ordre décroissant de score,

élaguer les cases qui ont un chevauchement élevé d'intersection sur union (IOU) avec les cases précédemment sélectionnées. Les cadres de délimitation avec un score inférieur à « score_threshold » sont supprimés. Les boîtes englobantes sont fournies sous la forme [y1, x1, y2, x2], où (y1, x1) et (y2, x2) sont les coordonnées de toute paire diagonale de coins de boîte et les coordonnées peuvent être fournies sous forme normalisée (c'est-à-dire situées dans l'intervalle [0, 1]) ou absolu. Notez que cet algorithme est indépendant de l'endroit où se trouve l'origine dans le système de coordonnées et est plus généralement invariant aux transformations orthogonales et aux traductions du système de coordonnées ; ainsi, la traduction ou les réflexions du système de coordonnées entraînent la sélection des mêmes cases par l'algorithme. Le résultat de cette opération est un ensemble d’entiers indexés dans la collection d’entrée de cadres englobants représentant les cadres sélectionnés. Les coordonnées de la boîte englobante correspondant aux indices sélectionnés peuvent ensuite être obtenues à l'aide de l'opération « tf.gather ». Par exemple : selected_indices = tf.image.non_max_suppression_v2( boxes, scores, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather(boxes, selected_indices) Cette opération supporte également un mode Soft-NMS (avec pondération gaussienne) (cf Bodla et al , https://arxiv.org/abs/1704.04503) où les cases réduisent le score des autres cases qui se chevauchent au lieu de provoquer directement leur élagage. Pour activer ce mode Soft-NMS, définissez le paramètre `soft_nms_sigma` sur une valeur supérieure à 0.

Classes imbriquées

classe NonMaxSuppression.Options Attributs facultatifs pour NonMaxSuppression

Constantes

Chaîne OP_NAME Le nom de cette opération, tel que connu par le moteur principal TensorFlow

Méthodes publiques

statique <T étend TNumber > NonMaxSuppression <T>
créer ( Scope scope, Opérande <T> cases, Opérande <T> scores, Opérande < TInt32 > maxOutputSize, Opérande <T> iouThreshold, Opérande <T> scoreThreshold, Opérande <T> softNmsSigma, Options... options)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération NonMaxSuppression.
statique NonMaxSuppression.Options
padToMaxOutputSize (padToMaxOutputSize booléen)
Sortie < TInt32 >
Indices sélectionnés ()
Un tenseur entier 1-D de forme `[M]` représentant les indices sélectionnés à partir du tenseur des boîtes, où `M <= max_output_size`.
Sortie <T>
scores sélectionnés ()
Un tenseur flottant 1-D de forme `[M]` représentant les scores correspondants pour chaque case sélectionnée, où `M <= max_output_size`.
Sortie < TInt32 >
sorties valides ()
Un tenseur entier 0-D représentant le nombre d'éléments valides dans `selected_indices`, les éléments valides apparaissant en premier.

Méthodes héritées

Constantes

chaîne finale statique publique OP_NAME

Le nom de cette opération, tel que connu par le moteur principal TensorFlow

Valeur constante : "NonMaxSuppressionV5"

Méthodes publiques

public static NonMaxSuppression <T> créer (Portée de la portée , Zones de l'opérande <T>, Scores de l'opérande <T>, Opérande <TInt32> maxOutputSize, Opérande <T> iouThreshold, Opérande <T> scoreThreshold, Opérande <T> softNmsSigma, Options. .options )

Méthode d'usine pour créer une classe encapsulant une nouvelle opération NonMaxSuppression.

Paramètres
portée portée actuelle
des boites Un tenseur flottant 2D de forme `[num_boxes, 4]`.
partitions Un tenseur flottant 1-D de forme `[num_boxes]` représentant un score unique correspondant à chaque case (chaque rangée de cases).
maxOutputSize Un tenseur entier scalaire représentant le nombre maximum de cases à sélectionner par suppression non maximale.
iouSeuil Un tenseur flottant 0-D représentant le seuil permettant de décider si les boîtes se chevauchent trop par rapport à l'IOU.
scoreSeuil Un tenseur flottant 0-D représentant le seuil permettant de décider quand supprimer des cases en fonction du score.
softNmsSigma Un tenseur flottant 0-D représentant le paramètre sigma pour Soft NMS ; voir Bodla et al (cf https://arxiv.org/abs/1704.04503). Lorsque `soft_nms_sigma=0.0` (ce qui est par défaut), nous revenons au NMS standard (dur).
choix porte des valeurs d'attributs facultatifs
Retour
  • une nouvelle instance de NonMaxSuppression

public statique NonMaxSuppression.Options padToMaxOutputSize (booléen padToMaxOutputSize)

Paramètres
padToMaxOutputSize Si c'est vrai, la sortie `selected_indices` est complétée pour avoir une longueur `max_output_size`. La valeur par défaut est false.

Sortie publique < TInt32 > selectedIndices ()

Un tenseur entier 1-D de forme `[M]` représentant les indices sélectionnés à partir du tenseur des boîtes, où `M <= max_output_size`.

Sortie publique <T> selectedScores ()

Un tenseur flottant 1-D de forme `[M]` représentant les scores correspondants pour chaque case sélectionnée, où `M <= max_output_size`. Les scores ne diffèrent des scores d'entrée correspondants que lors de l'utilisation de Soft NMS (c'est-à-dire lorsque `soft_nms_sigma>0`)

Sortie publique < TInt32 > validOutputs ()

Un tenseur entier 0-D représentant le nombre d'éléments valides dans `selected_indices`, les éléments valides apparaissant en premier.