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 "seme", produce in modo deterministico 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.
L'output di questo Op è garantito essere lo stesso dato lo stesso `seed` ed è indipendente dal numero di volte in cui viene chiamata la funzione 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) 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 | |
Costanti
| Corda | OP_NAME | Il nome di questa operazione, come noto al motore principale di TensorFlow |
Metodi pubblici
| statico StatelessSampleDistortedBoundingBox.Options | areaRange (Lista<Float> areaRange) |
| statico StatelessSampleDistortedBoundingBox.Options | 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]". |
| static <T estende TNumber > StatelessSampleDistortedBoundingBox <T> | |
| 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
Costanti
Stringa finale statica pubblica OP_NAME
Il nome di questa operazione, come noto al motore principale di TensorFlow
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 < 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 StatelessSampleDistortedBoundingBox <T> create ( Scope scope, Operando <T> imageSize, Operando < TFloat32 > boundingBoxes, Operando < TFloat32 > minObjectCovered, Operando <? extends TNumber > 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]". Fornire 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. |
|---|