tensoreflusso:: ops:: Esempio DistortedBoundingBox
#include <image_ops.h>Genera un singolo riquadro di delimitazione distorto in modo casuale per un'immagine.
Riepilogo
 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 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 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) 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.
Argomenti:
- scope: un oggetto Scope
-  image_size: 1-D, contenente [height, width, channels].
-  bounding_boxes: 3-D con forma [batch, N, 4]che descrive gli N riquadri di delimitazione associati all'immagine.
 Attributi facoltativi (vedi Attrs ):
-  seed: se seedoseed2sono impostati su un valore diverso da zero, il generatore di numeri casuali viene seminato dalseedspecificato. Altrimenti, viene seminato da un seme casuale.
- seed2: un secondo seme per evitare la collisione del seme.
- min_object_covered: 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.
- spect_ratio_range: l'area ritagliata dell'immagine deve avere proporzioni = larghezza/altezza comprese in questo intervallo.
- area_range: l'area ritagliata dell'immagine deve contenere una frazione dell'immagine fornita all'interno di questo intervallo.
-  max_attempts: numero di tentativi di generare una regione ritagliata dell'immagine dei vincoli specificati. Dopo gli errori max_attempts, restituisce l'intera immagine.
- use_image_if_no_bounding_boxes: controlla il comportamento se non viene fornito alcun riquadro di delimitazione. Se vero, presupponi un riquadro di delimitazione implicito che copra l'intero input. Se falso, genera un errore.
Resi:
-  Inizio Output: 1-D, contenente[offset_height, offset_width, 0]. Fornire come input atf.slice.
-  Dimensioni Output: 1-D, contenente[target_height, target_width, -1]. Fornire come input atf.slice.
-  Bbox Output: 3-D con forma[1, 1, 4]contenente il riquadro di delimitazione distorto. Fornire come input atf.image.draw_bounding_boxes.
| Costruttori e distruttori | |
|---|---|
| SampleDistortedBoundingBox (const :: tensorflow::Scope & scope, :: tensorflow::Input image_size, :: tensorflow::Input bounding_boxes) | |
| SampleDistortedBoundingBox (const :: tensorflow::Scope & scope, :: tensorflow::Input image_size, :: tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::Attrs & attrs) | 
| Attributi pubblici | |
|---|---|
| bboxes | |
| begin | |
| operation | |
| size | |
| Funzioni pubbliche statiche | |
|---|---|
| AreaRange (const gtl::ArraySlice< float > & x) | |
| AspectRatioRange (const gtl::ArraySlice< float > & x) | |
| MaxAttempts (int64 x) | |
| MinObjectCovered (float x) | |
| Seed (int64 x) | |
| Seed2 (int64 x) | |
| UseImageIfNoBoundingBoxes (bool x) | |
| Strutture | |
|---|---|
| tensorflow:: ops:: SampleDistortedBoundingBox:: Attrs | Setter di attributi facoltativi per SampleDistortedBoundingBox . | 
Attributi pubblici
bbox
::tensorflow::Output bboxes
inizio
::tensorflow::Output begin
operazione
Operation operation
misurare
::tensorflow::Output size
Funzioni pubbliche
Esempio DistortedBoundingBox
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes )
Esempio DistortedBoundingBox
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::Attrs & attrs )
Funzioni pubbliche statiche
AreaRange
Attrs AreaRange( const gtl::ArraySlice< float > & x )
Intervallo proporzioni
Attrs AspectRatioRange( const gtl::ArraySlice< float > & x )
Tentativi massimi
Attrs MaxAttempts( int64 x )
MinObjectCovered
Attrs MinObjectCovered( float x )
Seme
Attrs Seed( int64 x )
Seme2
Attrs Seed2( int64 x )
UsaImageIfNoBoundingBoxes
Attrs UseImageIfNoBoundingBoxes( bool x )