SampleDistortedBoundingBox

classe finale publique SampleDistortedBoundingBox

Générez un seul cadre de délimitation déformé de manière aléatoire pour une image.

Les annotations du cadre de délimitation sont souvent fournies en plus des étiquettes de vérité terrain dans les tâches de reconnaissance d'images ou de localisation d'objets. Une technique courante pour entraîner un tel système consiste à déformer aléatoirement une image tout en préservant son contenu, c'est-à-dire l'augmentation des données . Cette opération génère une localisation déformée de manière aléatoire d'un objet, c'est-à-dire une boîte englobante, étant donné une « taille_image », des « boîtes_limites » et une série de contraintes.

La sortie de cette opération est une seule boîte englobante qui peut être utilisée pour recadrer l'image originale. La sortie est renvoyée sous forme de 3 tenseurs : `begin`, `size` et `bboxes`. Les 2 premiers tenseurs peuvent être introduits directement dans tf.slice pour recadrer l'image. Ce dernier peut être fourni à tf.image.draw_bounding_boxes pour visualiser à quoi ressemble le cadre de délimitation.

Les boîtes englobantes sont fournies et renvoyées sous la forme `[y_min, x_min, y_max, x_max]`. Les coordonnées du cadre de délimitation sont des flotteurs dans « [0.0, 1.0] » par rapport à la largeur et à la hauteur de l'image sous-jacente.

Par exemple,

# Generate a single distorted bounding box.
     begin, size, bbox_for_draw = tf.image.sample_distorted_bounding_box(
         tf.shape(image),
         bounding_boxes=bounding_boxes)
 
     # Draw the bounding box in an image summary.
     image_with_box = tf.image.draw_bounding_boxes(tf.expand_dims(image, 0),
                                                   bbox_for_draw)
     tf.summary.image('images_with_box', image_with_box)
 
     # Employ the bounding box to distort the image.
     distorted_image = tf.slice(image, begin, size)
 
Notez que si aucune information sur le cadre de délimitation n'est disponible, la définition de « use_image_if_no_bounding_boxes = true » supposera qu'il existe un seul cadre de délimitation implicite couvrant toute l'image. Si `use_image_if_no_bounding_boxes` est faux et qu'aucun cadre de délimitation n'est fourni, une erreur est générée.

Classes imbriquées

classe SampleDistortedBoundingBox.Options Attributs facultatifs pour SampleDistortedBoundingBox

Constantes

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

Méthodes publiques

statique SampleDistortedBoundingBox.Options
AreaRange (Liste<Float> AreaRange)
statique SampleDistortedBoundingBox.Options
aspectRatioRange (Liste<Float> aspectRatioRange)
Sortie < TFloat32 >
bboxes ()
3D avec la forme « [1, 1, 4] » contenant le cadre de délimitation déformé.
Sortie <T>
commencer ()
1-D, contenant `[offset_height, offset_width, 0]`.
statique <T étend TNumber > SampleDistortedBoundingBox <T>
créer ( Scope scope, Operand <T> imageSize, Operand < TFloat32 >boundingBoxes, Operand < TFloat32 > minObjectCovered, Options... options)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération SampleDistortedBoundingBox.
statique SampleDistortedBoundingBox.Options
maxAttempts (Long maxAttempts)
statique SampleDistortedBoundingBox.Options
graine (graine longue)
statique SampleDistortedBoundingBox.Options
graine2 (graine longue2)
Sortie <T>
taille ()
1-D, contenant `[target_height, target_width, -1]`.
statique SampleDistortedBoundingBox.Options
useImageIfNoBoundingBoxes (booléen useImageIfNoBoundingBoxes)

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 : "SampleDistortedBoundingBoxV2"

Méthodes publiques

public static SampleDistortedBoundingBox.Options AreaRange (List<Float> AreaRange)

Paramètres
zonePlage La zone recadrée de l'image doit contenir une fraction de l'image fournie dans cette plage.

public static SampleDistortedBoundingBox.Options aspectRatioRange (List<Float> aspectRatioRange)

Paramètres
aspectRatioRange La zone recadrée de l'image doit avoir un rapport hauteur/largeur = largeur/hauteur compris dans cette plage.

Sortie publique < TFloat32 > bboxes ()

3D avec la forme « [1, 1, 4] » contenant le cadre de délimitation déformé. Fournissez en entrée à tf.image.draw_bounding_boxes .

sortie publique <T> start ()

1-D, contenant `[offset_height, offset_width, 0]`. Fournir en entrée à tf.slice .

public static SampleDistortedBoundingBox <T> créer ( Scope scope, Operand <T> imageSize, Operand < TFloat32 >boundingBoxes, Operand < TFloat32 > minObjectCovered, Options... options)

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

Paramètres
portée portée actuelle
Taille de l'image 1-D, contenant « [hauteur, largeur, canaux] ».
boîtes de délimitation 3-D avec la forme `[lot, N, 4]` décrivant les N cadres englobants associés à l'image.
minObjectCouvert La zone recadrée de l'image doit contenir au moins cette fraction de tout cadre de délimitation fourni. La valeur de ce paramètre doit être non négative. Dans le cas de 0, la zone recadrée n'a pas besoin de chevaucher l'un des cadres de délimitation fournis.
choix porte des valeurs d'attributs facultatifs
Retours
  • une nouvelle instance de SampleDistortedBoundingBox

public static SampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)

Paramètres
tentatives maximales Nombre de tentatives de génération d'une région recadrée de l'image des contraintes spécifiées. Après l'échec de `max_attempts`, renvoyez l'image entière.

graine public static SampleDistortedBoundingBox.Options (graine longue)

Paramètres
graine Si « seed » ou « seed2 » sont définis sur une valeur différente de zéro, le générateur de nombres aléatoires est amorcé par la « seed » donnée. Sinon, il est ensemencé par une graine aléatoire.

public static SampleDistortedBoundingBox.Options seed2 (Long seed2)

Paramètres
graine2 Une deuxième graine pour éviter la collision des graines.

taille de sortie publique <T> ()

1-D, contenant `[target_height, target_width, -1]`. Fournir en entrée à tf.slice .

public static SampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (booléen useImageIfNoBoundingBoxes)

Paramètres
useImageIfNoBoundingBoxes Contrôle le comportement si aucun cadre de délimitation n'est fourni. Si c'est vrai, supposez une boîte englobante implicite couvrant l'intégralité de l'entrée. Si faux, génère une erreur.