fluxo tensor:: ops:: AmostraDistortedBoundingBoxV2

#include <image_ops.h>

Gere uma única caixa delimitadora distorcida aleatoriamente para uma imagem.

Resumo

Anotações de caixa delimitadora são frequentemente fornecidas além de rótulos verdadeiros em tarefas de reconhecimento de imagem ou localização de objetos. Uma técnica comum para treinar tal sistema é distorcer aleatoriamente uma imagem enquanto preserva seu conteúdo, ou seja, aumento de dados . Este Op gera uma localização distorcida aleatoriamente de um objeto, ou seja, uma 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 no tf.slice para cortar a imagem. Este último pode ser fornecido a tf.image.draw_bounding_boxes para visualizar a aparência da caixa delimitadora.

As 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.

Por exemplo,

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

Observe que se nenhuma informação da caixa delimitadora estiver disponível, a configuração 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.

Argumentos:

  • escopo: um objeto Escopo
  • image_size: 1-D, contendo [height, width, channels] .
  • bounding_boxes: 3-D com forma [batch, N, 4] descrevendo as N caixas delimitadoras associadas à imagem.
  • min_object_covered: 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 recortada não precisa se sobrepor a nenhuma das caixas delimitadoras fornecidas.

Atributos opcionais (veja Attrs ):

  • seed: se seed ou seed2 forem definidos como diferentes de zero, o gerador de números aleatórios será propagado pelo seed fornecido. Caso contrário, é semeado por uma semente aleatória.
  • seed2: Uma segunda semente para evitar colisão de sementes.
  • Aspect_ratio_range: A área recortada da imagem deve ter uma proporção = largura/altura dentro deste intervalo.
  • area_range: A área recortada da imagem deve conter uma fração da imagem fornecida dentro deste intervalo.
  • max_attempts: Número de tentativas de geração de uma região recortada da imagem das restrições especificadas. Após falhas max_attempts , retorne a imagem inteira.
  • use_image_if_no_bounding_boxes: Controla o comportamento se nenhuma caixa delimitadora for fornecida. Se for verdade, assuma uma caixa delimitadora implícita cobrindo toda a entrada. Se for falso, gera um erro.

Retorna:

  • Início Output : 1-D, contendo [offset_height, offset_width, 0] . Forneça como entrada para tf.slice .
  • Tamanho Output : 1-D, contendo [target_height, target_width, -1] . Forneça como entrada para tf.slice .
  • Bboxes Output : 3-D com forma [1, 1, 4] contendo a caixa delimitadora distorcida. Forneça como entrada para tf.image.draw_bounding_boxes .

Construtores e Destruidores

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)

Atributos públicos

bboxes
begin
operation
size

Funções estáticas públicas

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

Estruturas

tensorflow:: ops:: SampleDistortedBoundingBoxV2:: Attrs

Configuradores de atributos opcionais para SampleDistortedBoundingBoxV2 .

Atributos públicos

bboxes

::tensorflow::Output bboxes

começar

::tensorflow::Output begin

operação

Operation operation

tamanho

::tensorflow::Output size

Funções públicas

AmostraDistortedBoundingBoxV2

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

AmostraDistortedBoundingBoxV2

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

Funções estáticas públicas

Faixa de área

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

Faixa de proporção de aspecto

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

MaxTentativas

Attrs MaxAttempts(
  int64 x
)

Semente

Attrs Seed(
  int64 x
)

Semente2

Attrs Seed2(
  int64 x
)

UseImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)