Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

tensorflow :: ops :: SampleDistortedBoundingBoxV2

#include <image_ops.h>

Genera un unico riquadro di delimitazione distorta in modo casuale per un'immagine.

Sommario

Le annotazioni del riquadro di delimitazione vengono spesso fornite in aggiunta alle etichette di verità fondamentale nel riconoscimento delle immagini o nelle attività di localizzazione degli oggetti. Una tecnica comune per addestrare un tale sistema consiste nel distorcere casualmente un'immagine preservandone il contenuto, ad esempio l'aumento dei dati . Questo Op produce una localizzazione distorta in modo casuale di un oggetto, cioè bounding box, data una image_size , bounding_boxes e una serie di vincoli.

L'output di questo Op è 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 limiti 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)

Nota che se non sono disponibili informazioni sul riquadro di delimitazione, l'impostazione di use_image_if_no_bounding_boxes = true presupporrà che ci sia un singolo riquadro di delimitazione implicito che copre l'intera immagine. Se use_image_if_no_bounding_boxes è falso e non viene fornito alcun use_image_if_no_bounding_boxes 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] descrive gli N bounding box associati all'immagine.
  • min_object_covered: l'area ritagliata dell'immagine deve contenere almeno questa frazione di qualsiasi riquadro di delimitazione fornito. Il valore di questo parametro dovrebbe essere non negativo. In caso di 0, non è necessario che l'area ritagliata si sovrapponga a nessuno dei rettangoli di delimitazione forniti.

Attributi opzionali (vedi Attrs ):

  • seed: se seed o seed2 sono impostati su un valore diverso da zero, il generatore di numeri casuali viene sottoposto a seed dal seed . Altrimenti, viene seminato da un seme casuale.
  • seed2: un secondo seme per evitare la collisione del seme.
  • aspect_ratio_range: l'area ritagliata dell'immagine deve avere un rapporto di aspetto = larghezza / altezza entro 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 generazione di un'area ritagliata dell'immagine dei vincoli specificati. Dopo max_attempts fallimenti, restituisce l'intera immagine.
  • use_image_if_no_bounding_boxes: controlla il comportamento se non viene fornito alcun riquadro di delimitazione. Se vero, si supponga che un riquadro di delimitazione implicito copra l'intero input. Se falso, genera un errore.

Ritorna:

  • Inizio Output : 1-D, contenente [offset_height, offset_width, 0] . Fornisci come input a tf.slice .
  • Dimensione Output : 1-D, contenente [target_height, target_width, -1] . Fornisci come input a tf.slice .
  • Caselle b di Output : 3-D con forma [1, 1, 4] contenente il riquadro di delimitazione distorto. Fornisci come input a tf.image.draw_bounding_boxes .

Costruttori e distruttori

SampleDistortedBoundingBoxV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input image_size, :: tensorflow::Input bounding_boxes, :: tensorflow::Input min_object_covered)
SampleDistortedBoundingBoxV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input image_size, :: tensorflow::Input bounding_boxes, :: tensorflow::Input min_object_covered, const SampleDistortedBoundingBoxV2::Attrs & attrs)

Attributi pubblici

bboxes
begin
operation
size

Funzioni statiche pubbliche

AreaRange (const gtl::ArraySlice< float > & x)
AspectRatioRange (const gtl::ArraySlice< float > & x)
MaxAttempts (int64 x)
Seed (int64 x)
Seed2 (int64 x)
UseImageIfNoBoundingBoxes (bool x)

Structs

tensorflow :: ops :: SampleDistortedBoundingBoxV2 :: Attrs

Setter attributi facoltativi per SampleDistortedBoundingBoxV2 .

Attributi pubblici

bboxes

::tensorflow::Output bboxes

inizio

::tensorflow::Output begin

operazione

Operation operation

taglia

::tensorflow::Output size

Funzioni pubbliche

SampleDistortedBoundingBoxV2

 SampleDistortedBoundingBoxV2(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes,
  ::tensorflow::Input min_object_covered
)

SampleDistortedBoundingBoxV2

 SampleDistortedBoundingBoxV2(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes,
  ::tensorflow::Input min_object_covered,
  const SampleDistortedBoundingBoxV2::Attrs & attrs
)

Funzioni statiche pubbliche

AreaRange

Attrs AreaRange(
  const gtl::ArraySlice< float > & x
)

AspectRatioRange

Attrs AspectRatioRange(
  const gtl::ArraySlice< float > & x
)

MaxAttempts

Attrs MaxAttempts(
  int64 x
)

seme

Attrs Seed(
  int64 x
)

seed2

Attrs Seed2(
  int64 x
)

UseImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)