StatelessSampleDistortedBoundingBox

StatelessSampleDistortedBoundingBox classe final pública

Gere uma caixa delimitadora distorcida aleatoriamente para uma imagem de forma determinística.

As anotações da caixa delimitadora costumam ser fornecidas em adição aos rótulos verdadeiros em tarefas de reconhecimento de imagem ou localização de objetos. Uma técnica comum para a formação de um tal sistema é distorcer aleatoriamente uma imagem, preservando seu conteúdo, ou seja, aumento de dados. Este Op, dado o mesmo `seed`, deterministicamente produz uma localização distorcida aleatoriamente de um objeto, ou seja, caixa delimitadora, dado um` image_size`, `bounding_boxes` e uma série de restrições.

A saída deste Op é uma única caixa delimitadora que pode ser usada para cortar a imagem original. A saída é retornada como 3 tensores: `begin`,` size` e `bboxes`. Os primeiros 2 tensores podem ser alimentados diretamente em `tf.slice` para cortar a imagem. O último pode ser fornecido a `tf.image.draw_bounding_boxes` para visualizar a aparência da caixa delimitadora.

Caixas delimitadoras são fornecidas e retornadas como `[y_min, x_min, y_max, x_max]`. As coordenadas da caixa delimitadora são flutuantes em `[0.0, 1.0]` em relação à largura e à altura da imagem subjacente.

A saída deste Op é garantidamente a mesma dado o mesmo `seed` e é independente de quantas vezes a função é chamada, e independente das configurações globais de seed (por exemplo,` tf.random.set_seed`).

Exemplo de uso:

>>> imagem = 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, forma = [1, 1, 4]) >>> seed = (1, 2 ) >>> # Gere uma única caixa delimitadora distorcida. >>> bbox_begin, bbox_size, bbox_draw = (... tf.image.stateless_sample_distorted_bounding_box (... tf.shape (imagem), bounding_boxes = bbox, seed = seed)) >>> # Use a caixa delimitadora para distorcer a imagem . >>> tf.slice (imagem, bbox_begin, bbox_size) >>> # Desenhe a caixa delimitadora em um resumo de imagem. >>> cores = np.array ([[1,0, 0,0, 0,0], [0,0, 0,0, 1,0]]) >>> tf.image.draw_bounding_boxes (... tf.expand_dims (tf.cast (imagem, tf .float32), 0), bbox_draw, cores)

Observe que, se nenhuma informação de caixa delimitadora estiver disponível, definir `use_image_if_no_bounding_boxes = true` assumirá que há uma única caixa delimitadora implícita cobrindo toda a imagem. Se `use_image_if_no_bounding_boxes` for falso e nenhuma caixa delimitadora for fornecida, um erro será gerado.

Classes aninhadas

classe StatelessSampleDistortedBoundingBox.Options Atributos opcionais para StatelessSampleDistortedBoundingBox

Métodos Públicos

estáticos StatelessSampleDistortedBoundingBox.Options
areaRange (List <float> areaRange)
estáticos StatelessSampleDistortedBoundingBox.Options
aspectRatioRange (List <float> aspectRatioRange)
Output <float>
bboxes ()
3-D com a forma `[1, 1, 4]` contendo a caixa delimitadora distorcida.
Output <T>
começar ()
1-D, contendo `[offset_height, offset_width, 0]`.
estática <T estende Número, U estende Number> StatelessSampleDistortedBoundingBox <T>
criar ( Scope escopo, Operando <T> imageSize, Operando <float> boundingBoxes, Operando <float> minObjectCovered, Operando <U> semente, Options ... Opções)
Método de fábrica para criar uma classe que envolve uma nova operação StatelessSampleDistortedBoundingBox.
estáticos StatelessSampleDistortedBoundingBox.Options
maxAttempts (Long maxAttempts)
Output <T>
tamanho ()
1-D, contendo `[target_height, target_width, -1]`.
estáticos StatelessSampleDistortedBoundingBox.Options
useImageIfNoBoundingBoxes (booleano useImageIfNoBoundingBoxes)

Métodos herdados

Métodos Públicos

public static StatelessSampleDistortedBoundingBox.Options areaRange (List <float> areaRange)

Parâmetros
areaRange A área recortada da imagem deve conter uma fração da imagem fornecida dentro deste intervalo.

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

Parâmetros
aspectRatioRange A área recortada da imagem deve ter uma proporção = largura / altura dentro deste intervalo.

pública Output <float> bboxes ()

3-D com a forma `[1, 1, 4]` contendo a caixa delimitadora distorcida. Forneça como entrada para `tf.image.draw_bounding_boxes`.

pública Output <T> begin ()

1-D, contendo `[offset_height, offset_width, 0]`. Fornece como entrada para `tf.slice`.

public static StatelessSampleDistortedBoundingBox <T> create ( Scope escopo, Operando <T> imageSize, Operando <float> boundingBoxes, Operando <float> minObjectCovered, Operando <U> semente, Options ... Opções)

Método de fábrica para criar uma classe que envolve uma nova operação StatelessSampleDistortedBoundingBox.

Parâmetros
alcance escopo atual
tamanho da imagem 1-D, contendo `[altura, largura, canais]`.
boundingBoxes 3-D com a forma `[lote, N, 4]` descrevendo as N caixas delimitadoras associadas à imagem.
minObjectCovered A área recortada da imagem deve conter pelo menos esta fração de qualquer caixa delimitadora fornecida. O valor deste parâmetro não deve ser negativo. No caso de 0, a área cortada não precisa se sobrepor a nenhuma das caixas delimitadoras fornecidas.
semente 1-D com forma `[2]`. A semente para o gerador de números aleatórios. Deve ter dtype `int32` ou` int64`. (Ao usar o XLA, apenas `int32` é permitido.)
opções carrega valores de atributos opcionais
Devoluções
  • uma nova instância de StatelessSampleDistortedBoundingBox

public static StatelessSampleDistortedBoundingBox.Options maxAttempts (maxAttempts Long)

Parâmetros
maxAttempts Número de tentativas de gerar uma região recortada da imagem das restrições especificadas. Após falhas de `max_attempts`, retorna a imagem inteira.

pública Output <T> size ()

1-D, contendo `[target_height, target_width, -1]`. Fornece como entrada para `tf.slice`.

public static StatelessSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (Boolean useImageIfNoBoundingBoxes)

Parâmetros
useImageIfNoBoundingBoxes Controla o comportamento se nenhuma caixa delimitadora for fornecida. Se verdadeiro, assume uma caixa delimitadora implícita cobrindo toda a entrada. Se for falso, gera um erro.