SampleDistortedBoundingBox

classe finale pubblica SampleDistortedBoundingBox

Genera un singolo 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 . Questa operazione produce una localizzazione distorta in modo casuale di un oggetto, ovvero un riquadro di delimitazione, data una `dimensione_immagine`, ``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 l'aspetto del 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.

Ad esempio,

# 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)
 
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 SampleDistortedBoundingBox.Options Attributi facoltativi per SampleDistortedBoundingBox

Costanti

Corda OP_NAME Il nome di questa operazione, come noto al motore principale di TensorFlow

Metodi pubblici

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

Metodi ereditati

Costanti

Stringa finale statica pubblica OP_NAME

Il nome di questa operazione, come noto al motore principale di TensorFlow

Valore costante: "SampleDistortedBoundingBoxV2"

Metodi pubblici

public static SampleDistortedBoundingBox.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 SampleDistortedBoundingBox.Options aspettoRatioRange (List<Float> aspettoRatioRange)

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

Output pubblico < TFloat32 > bboxes ()

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

Uscita pubblica <T> inizio ()

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

public static SampleDistortedBoundingBox <T> create ( Scope scope, Operando <T> imageSize, Operando < TFloat32 > boundingBoxes, Operando < TFloat32 > minObjectCovered, Opzioni... opzioni)

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

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.
opzioni trasporta valori di attributi opzionali
ritorna
  • una nuova istanza di SampleDistortedBoundingBox

public static SampleDistortedBoundingBox.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.

seme pubblico statico SampleDistortedBoundingBox.Options (seme lungo)

Parametri
seme Se "seed" o "seed2" sono impostati su un valore diverso da zero, il generatore di numeri casuali viene seminato dal "seed" specificato. Altrimenti, viene seminato da un seme casuale.

public static SampleDistortedBoundingBox.Options seed2 (Seed lungo2)

Parametri
seme2 Un secondo seme per evitare la collisione dei semi.

dimensione pubblica dell'output <T> ()

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

public static SampleDistortedBoundingBox.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.