flujo tensor:: operaciones:: MuestraDistorsionadaBoundingBox

#include <image_ops.h>

Genere un único cuadro delimitador distorsionado aleatoriamente para una imagen.

Resumen

Las anotaciones del cuadro delimitador a menudo se proporcionan además de las etiquetas de verdad sobre el terreno en tareas de reconocimiento de imágenes o localización de objetos. Una técnica común para entrenar un sistema de este tipo es distorsionar aleatoriamente una imagen preservando su contenido, es decir, aumento de datos . Esta operación genera una localización distorsionada aleatoriamente de un objeto, es decir, un cuadro delimitador, dado un image_size , bounding_boxes y una serie de restricciones.

El resultado de esta operación es un cuadro delimitador único que se puede utilizar para recortar la imagen original. La salida se devuelve como 3 tensores: begin , size y bboxes . Los primeros 2 tensores se pueden introducir directamente en tf.slice para recortar la imagen. Este último se puede proporcionar a tf.image.draw_bounding_boxes para visualizar cómo se ve el cuadro delimitador.

Los cuadros delimitadores se suministran y devuelven como [y_min, x_min, y_max, x_max] . Las coordenadas del cuadro delimitador son flotantes en [0.0, 1.0] en relación con el ancho y el alto de la imagen subyacente.

Por ejemplo,

    # 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)

Tenga en cuenta que si no hay información del cuadro delimitador disponible, configurar use_image_if_no_bounding_boxes = true asumirá que hay un único cuadro delimitador implícito que cubre toda la imagen. Si use_image_if_no_bounding_boxes es falso y no se proporcionan cuadros delimitadores, se genera un error.

Argumentos:

  • alcance: un objeto de alcance
  • image_size: 1-D, que contiene [height, width, channels] .
  • bordering_boxes: 3-D con forma [batch, N, 4] que describe los N cuadros delimitadores asociados con la imagen.

Atributos opcionales (ver Attrs ):

  • semilla: si seed o seed2 se establecen en un valor distinto de cero, el generador de números aleatorios se siembra con la seed dada. De lo contrario, se siembra con una semilla aleatoria.
  • semilla2: una segunda semilla para evitar la colisión de semillas.
  • min_object_covered: el área recortada de la imagen debe contener al menos esta fracción de cualquier cuadro delimitador proporcionado. El valor de este parámetro no debe ser negativo. En el caso de 0, no es necesario que el área recortada se superponga a ninguno de los cuadros delimitadores suministrados.
  • aspecto_ratio_range: el área recortada de la imagen debe tener una relación de aspecto = ancho/alto dentro de este rango.
  • area_range: el área recortada de la imagen debe contener una fracción de la imagen proporcionada dentro de este rango.
  • max_attempts: número de intentos de generar una región recortada de la imagen de las restricciones especificadas. Después de que max_attempts falle, devuelva la imagen completa.
  • use_image_if_no_bounding_boxes: controla el comportamiento si no se proporcionan cuadros delimitadores. Si es verdadero, suponga un cuadro delimitador implícito que cubre toda la entrada. Si es falso, genera un error.

Devoluciones:

  • Inicio Output : 1-D, que contiene [offset_height, offset_width, 0] . Proporcione como entrada a tf.slice .
  • Tamaño Output : 1-D, que contiene [target_height, target_width, -1] . Proporcione como entrada a tf.slice .
  • Cuadros b Output : 3-D con forma [1, 1, 4] que contiene el cuadro delimitador distorsionado. Proporcione como entrada a tf.image.draw_bounding_boxes .

Constructores y destructores

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)

Atributos públicos

bboxes
begin
operation
size

Funciones estáticas públicas

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)

estructuras

tensorflow:: operaciones:: SampleDistortedBoundingBox:: Atributos

Configuradores de atributos opcionales para SampleDistortedBoundingBox .

Atributos públicos

cajas b

::tensorflow::Output bboxes

comenzar

::tensorflow::Output begin

operación

Operation operation

tamaño

::tensorflow::Output size

Funciones públicas

MuestraDistorsionadaBoundingBox

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

MuestraDistorsionadaBoundingBox

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

Funciones estáticas públicas

ÁreaRango

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

Rango de relación de aspecto

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

Intentos máximos

Attrs MaxAttempts(
  int64 x
)

MinObjectCubierto

Attrs MinObjectCovered(
  float x
)

Semilla

Attrs Seed(
  int64 x
)

Semilla2

Attrs Seed2(
  int64 x
)

UseImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)