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.
Per 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)
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> | |
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
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
ambito | ambito attuale |
---|---|
dimensioneimmagine | 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 |
Ritorni
- 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. |
---|