StatelessSampleDistortedBoundingBox

StatelessSampleDistortedBoundingBox public final class

Genere un cuadro delimitador distorsionado aleatoriamente para una imagen de forma determinista.

Las anotaciones del cuadro delimitador a menudo se proporcionan además de las etiquetas de verdad en el terreno en tareas de reconocimiento de imágenes o localización de objetos. Una técnica común para la formación de un sistema de este tipo es distorsionar al azar una imagen mientras que preserva su contenido, es decir, el aumento de datos. Esta operación, dada la misma "semilla", genera de forma determinista una localización distorsionada aleatoriamente de un objeto, es decir, un cuadro delimitador, dado un "tamaño_imagen", "cuadros_delimitadores" 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 alimentar directamente en `tf.slice` para recortar la imagen. Este último se puede suministrar 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.

Se garantiza que la salida de esta operación será la misma dada la misma `semilla` y es independiente de cuántas veces se llama a la función, e independiente de la configuración de la semilla global (por ejemplo,` tf.random.set_seed`).

Uso de ejemplo:

>>> imagen = np.array ([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9] ]]) >>> bbox = tf.constant (... [0.0, 0.0, 1.0, 1.0], dtype = tf.float32, shape = [1, 1, 4]) >>> semilla = (1, 2 ) >>> # Genera un solo cuadro delimitador distorsionado. >>> bbox_begin, bbox_size, bbox_draw = (... tf.image.stateless_sample_distorted_bounding_box (... tf.shape (image), bounding_boxes = bbox, seed = seed)) >>> # Utilice el cuadro delimitador para distorsionar la imagen . >>> tf.slice (imagen, bbox_begin, bbox_size) >>> # Dibuja el cuadro delimitador en un resumen de imagen. >>> colores = np.array ([[1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) >>> tf.image.draw_bounding_boxes (... tf.expand_dims (tf.cast (imagen, tf .float32), 0), bbox_draw, colores)

Tenga en cuenta que si no hay información del cuadro delimitador disponible, al configurar `use_image_if_no_bounding_boxes = true` se supondrá que hay un solo 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.

Clases anidadas

clase StatelessSampleDistortedBoundingBox.Options Los atributos opcionales para StatelessSampleDistortedBoundingBox

Métodos públicos

estáticas StatelessSampleDistortedBoundingBox.Options
areaRange (List <Float> areaRange)
estáticas StatelessSampleDistortedBoundingBox.Options
aspectRatioRange (List <Float> aspectRatioRange)
Salida <Float>
bboxes ()
3-D con forma `[1, 1, 4]` que contiene el cuadro delimitador distorsionado.
Salida <T>
iniciar ()
1-D, que contiene `[offset_height, offset_width, 0]`.
estática <T se extiende Número, U se extiende Número> StatelessSampleDistortedBoundingBox <T>
crear ( Alcance alcance, operando <T> imageSize, operando <Float> boundingBoxes, operando <Float> minObjectCovered, operando <U> semilla, Opciones ... Opciones)
Método de fábrica para crear una clase que envuelva una nueva operación StatelessSampleDistortedBoundingBox.
estáticas StatelessSampleDistortedBoundingBox.Options
MaxAttempts (Long MaxAttempts)
Salida <T>
tamaño ()
1-D, que contiene `[target_height, target_width, -1]`.
estáticas StatelessSampleDistortedBoundingBox.Options
useImageIfNoBoundingBoxes (Boolean useImageIfNoBoundingBoxes)

Métodos heredados

Métodos públicos

estáticas pública StatelessSampleDistortedBoundingBox.Options areaRange (List <Float> areaRange)

Parámetros
areaRange El área recortada de la imagen debe contener una fracción de la imagen proporcionada dentro de este rango.

public static StatelessSampleDistortedBoundingBox.Options aspectRatioRange (List <Float> aspectRatioRange)

Parámetros
AspectRatioRange El área recortada de la imagen debe tener una relación de aspecto = ancho / alto dentro de este rango.

pública Salida <> Float bboxes ()

3-D con forma `[1, 1, 4]` que contiene el cuadro delimitador distorsionado. Proporcionar como entrada a `tf.image.draw_bounding_boxes`.

pública de salida <T> begin ()

1-D, que contiene `[offset_height, offset_width, 0]`. Proporcionar como entrada a `tf.slice`.

public static StatelessSampleDistortedBoundingBox <T> crear ( Alcance alcance, operando <T> imageSize, operando <Float> boundingBoxes, operando <Float> minObjectCovered, operando <U> semilla, Opciones ... Opciones)

Método de fábrica para crear una clase que envuelva una nueva operación StatelessSampleDistortedBoundingBox.

Parámetros
alcance alcance actual
tamaño de la imagen 1-D, que contiene `[altura, ancho, canales]`.
boundingBoxes 3-D con forma `[lote, N, 4]` que describe los N cuadros delimitadores asociados con la imagen.
minObjectCovered El área recortada de la imagen debe contener al menos esta fracción de cualquier cuadro delimitador suministrado. El valor de este parámetro no debe ser negativo. En el caso de 0, el área recortada no necesita superponerse a ninguno de los cuadros delimitadores suministrados.
semilla 1-D con forma "[2]". La semilla del generador de números aleatorios. Debe tener dtype `int32` o` int64`. (Cuando se usa XLA, solo se permite `int32`).
opciones lleva valores de atributos opcionales
Devoluciones
  • una nueva instancia de StatelessSampleDistortedBoundingBox

estáticas pública StatelessSampleDistortedBoundingBox.Options MaxAttempts (Long MaxAttempts)

Parámetros
maxAttempts Número de intentos de generar una región recortada de la imagen de las restricciones especificadas. Después de fallas de `max_attempts`, devuelve la imagen completa.

pública de salida <T> size ()

1-D, que contiene `[target_height, target_width, -1]`. Proporcionar como entrada a `tf.slice`.

públicas estáticas StatelessSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (booleano useImageIfNoBoundingBoxes)

Parámetros
useImageIfNoBoundingBoxes 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.