StatelessSampleDistortedBoundingBox

classe finale pubblica StatelessSampleDistortedBoundingBox

Genera in modo deterministico un riquadro di delimitazione distorto in modo casuale per un'immagine.

Le annotazioni del riquadro di delimitazione vengono spesso fornite in aggiunta alle etichette vere e proprie nelle attività di riconoscimento delle immagini o di localizzazione degli oggetti. Una tecnica comune per addestrare un tale sistema è quella di distorcere casualmente un'immagine preservandone il contenuto, ovvero l'aumento dei dati . Questo Op, dato lo stesso `seed`, produce in modo deterministico una localizzazione distorta casualmente di un oggetto, ovvero un bounding box, data una `image_size`, `bounding_boxes` e una serie di vincoli.

L'output di questa operazione è un singolo riquadro di delimitazione che può essere utilizzato per ritagliare l'immagine originale. L'output viene restituito come 3 tensori: `begin`, `size` e `bboxes`. I primi 2 tensori possono essere inseriti direttamente in "tf.slice" per ritagliare l'immagine. Quest'ultimo può essere fornito a `tf.image.draw_bounding_boxes` per visualizzare come appare il riquadro di delimitazione.

I riquadri di delimitazione vengono forniti e restituiti come "[y_min, x_min, y_max, x_max]". Le coordinate del riquadro di delimitazione sono float in "[0.0, 1.0]" rispetto alla larghezza e all'altezza dell'immagine sottostante.

L'output di questo Op è garantito essere lo stesso dato lo stesso `seed` ed è indipendente da quante volte la funzione viene chiamata e dalle impostazioni del seed globale (ad esempio `tf.random.set_seed`).

Utilizzo di esempio:

>>> immagine = np.array([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9] ]]) >>> bbox = tf.costante( ... [0.0, 0.0, 1.0, 1.0], dtype=tf.float32, forma=[1, 1, 4]) >>> seme = (1, 2 ) >>> # Genera un singolo riquadro di delimitazione distorto. >>> bbox_begin, bbox_size, bbox_draw = ( ... tf.image.stateless_sample_distorted_bounding_box( ... tf.shape(image), bounding_boxes=bbox, seed=seed)) >>> # Utilizza il riquadro di delimitazione per distorcere l'immagine . >>> tf.slice(immagine, bbox_begin, bbox_size) >>> # Disegna il riquadro di delimitazione in un riepilogo dell'immagine. >>> colori = np.array([[1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) >>> tf.image.draw_bounding_boxes( ... tf.expand_dims(tf.cast(image, tf .float32),0), bbox_draw, colori)

Tieni presente che se non sono disponibili informazioni sul riquadro di delimitazione, l'impostazione `use_image_if_no_bounding_boxes = true` presuppone che esista un singolo riquadro di delimitazione implicito che copre l'intera immagine. Se `use_image_if_no_bounding_boxes` è false e non vengono forniti riquadri di delimitazione, viene generato un errore.

Classi nidificate

classe StatelessSampleDistortedBoundingBox.Options Attributi facoltativi per StatelessSampleDistortedBoundingBox

Metodi pubblici

statico StatelessSampleDistortedBoundingBox.Options
areaRange (Lista<Float> areaRange)
statico StatelessSampleDistortedBoundingBox.Options
aspettoRatioRange (Lista<Float> aspettoRatioRange)
Uscita <Mobile>
bbox ()
3D con forma "[1, 1, 4]" contenente il riquadro di delimitazione distorto.
Uscita <T>
inizio ()
1-D, contenente "[offset_height, offset_width, 0]".
static <T estende il numero, U estende il numero> StatelessSampleDistortedBoundingBox <T>
create ( Scope scope, Operando <T> imageSize, Operando <Float> boundingBoxes, Operando <Float> minObjectCovered, Operando <U> seed, Opzioni... opzioni)
Metodo factory per creare una classe che racchiude una nuova operazione StatelessSampleDistortedBoundingBox.
statico StatelessSampleDistortedBoundingBox.Options
maxAttempts (max tentativi lunghi)
Uscita <T>
misurare ()
1-D, contenente "[altezza_destinazione, larghezza_destinazione, -1]".
statico StatelessSampleDistortedBoundingBox.Options
useImageIfNoBoundingBoxes (uso booleanoImageIfNoBoundingBoxes)

Metodi ereditati

Metodi pubblici

public static StatelessSampleDistortedBoundingBox.Options areaRange (List<Float> areaRange)

Parametri
areaRange L'area ritagliata dell'immagine deve contenere una frazione dell'immagine fornita all'interno di questo intervallo.

pubblico statico StatelessSampleDistortedBoundingBox.Options aspettoRatioRange (List<Float> aspettoRatioRange)

Parametri
aspettoRatioRange L'area ritagliata dell'immagine deve avere proporzioni = larghezza/altezza comprese in questo intervallo.

output pubblico <Float> bboxes ()

3D con forma "[1, 1, 4]" contenente il riquadro di delimitazione distorto. Fornisci come input a `tf.image.draw_bounding_boxes`.

Uscita pubblica <T> inizio ()

1-D, contenente "[offset_height, offset_width, 0]". Fornisci come input a "tf.slice".

public static StatelessSampleDistortedBoundingBox <T> crea ( scope scope, Operando <T> imageSize, Operando <Float> boundingBoxes, Operando <Float> minObjectCovered, Operando <U> seed, Opzioni... opzioni)

Metodo factory per creare una classe che racchiude una nuova operazione StatelessSampleDistortedBoundingBox.

Parametri
scopo ambito attuale
dimensione dell'immagine 1-D, contenente "[altezza, larghezza, canali]".
boundingBoxes 3-D con forma "[batch, N, 4]" che descrive gli N riquadri di delimitazione associati all'immagine.
minObjectCovered L'area ritagliata dell'immagine deve contenere almeno questa frazione di qualsiasi riquadro di delimitazione fornito. Il valore di questo parametro deve essere non negativo. Nel caso di 0, non è necessario che l'area ritagliata si sovrapponga a nessuno dei riquadri di delimitazione forniti.
seme 1-D con forma "[2]". Il seme del generatore di numeri casuali. Deve avere il dtype "int32" o "int64". (Quando si utilizza XLA, è consentito solo "int32".)
opzioni trasporta valori di attributi opzionali
ritorna
  • una nuova istanza di StatelessSampleDistortedBoundingBox

public static StatelessSampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)

Parametri
maxTentativi Numero di tentativi di generazione di una regione ritagliata dell'immagine dei vincoli specificati. Dopo gli errori "max_attempts", restituisce l'intera immagine.

dimensione pubblica dell'output <T> ()

1-D, contenente "[altezza_destinazione, larghezza_destinazione, -1]". Fornisci come input a "tf.slice".

pubblico statico StatelessSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (uso booleanoImageIfNoBoundingBoxes)

Parametri
useImageIfNoBoundingBoxes Controlla il comportamento se non vengono forniti riquadri di delimitazione. Se vero, presupponi un riquadro di delimitazione implicito che copra l'intero input. Se falso, genera un errore.