tensorflow::ops::SampleDistortedBoundingBox
#include <image_ops.h>Gere uma única caixa delimitadora distorcida aleatoriamente para uma imagem.
Resumo
Em tarefas de reconhecimento de imagem ou localização de objetos, as anotações de caixas delimitadoras são frequentemente fornecidas em conjunto com os rótulos de verdade fundamental. Uma técnica comum para treinar um sistema desse tipo é distorcer aleatoriamente uma imagem, preservando seu conteúdo ( aumento de dados ). Esta operação gera uma localização distorcida aleatoriamente de um objeto, ou seja, uma caixa delimitadora, dados um image_size , bounding_boxes e uma série de restrições.
O resultado desta operação é uma única caixa delimitadora que pode ser usada para recortar a imagem original. O resultado é retornado como 3 tensores: ` begin , size e bboxes . Os dois primeiros tensores podem ser usados diretamente em tf.slice para recortar a imagem. O último pode ser usado em 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 números de ponto flutuante no intervalo [0.0, 1.0] relativos à 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 de caixa delimitadora estiver disponível, definir use_image_if_no_bounding_boxes = true assumirá que existe uma única caixa delimitadora implícita que cobre 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 de escopo
- image_size: 1-D, contendo
[height, width, channels]. - bounding_boxes: 3-D com formato
[batch, N, 4]descrevendo as N caixas delimitadoras associadas à imagem.
Atributos opcionais (ver Attrs ):
- seed: Se
seedouseed2forem definidos com valores diferentes de zero, o gerador de números aleatórios será inicializado com aseedfornecida. Caso contrário, será inicializado com uma semente aleatória. - seed2: Uma segunda semente para evitar colisão de sementes.
- min_object_covered: A área recortada da imagem deve conter pelo menos essa fração de qualquer caixa delimitadora fornecida. O valor desse parâmetro deve ser não negativo. Caso seja 0, a área recortada não precisa sobrepor nenhuma das caixas delimitadoras fornecidas.
- 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 para gerar uma região recortada da imagem de acordo com as restrições especificadas. Após
max_attemptsfalhas, retorna a imagem inteira. - use_image_if_no_bounding_boxes: Controla o comportamento caso nenhuma caixa delimitadora seja fornecida. Se verdadeiro, assume uma caixa delimitadora implícita que cobre toda a entrada. Se falso, gera um erro.
Devoluções:
- Início
Output: 1-D, contendo[offset_height, offset_width, 0]. Forneça como entrada paratf.slice. - Tamanho
Output: 1-D, contendo[target_height, target_width, -1]. Forneça como entrada paratf.slice. - Caixas delimitadoras
Output: 3D com formato[1, 1, 4]contendo a caixa delimitadora distorcida. Forneça como entrada paratf.image.draw_bounding_boxes.
Construtores e Destrutores | |
|---|---|
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 | |
Funções 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) | |
Estruturas | |
|---|---|
| tensorflow::ops::SampleDistortedBoundingBox::Attrs | Definidores de atributos opcionais para SampleDistortedBoundingBox . |
Atributos públicos
caixas-pretas
::tensorflow::Output bboxes
começar
::tensorflow::Output begin
operação
Operation operation
tamanho
::tensorflow::Output size
Funções públicas
Caixa delimitadora distorcida de amostra
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes )
Caixa delimitadora distorcida de amostra
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::Attrs & attrs )
Funções estáticas públicas
ÁreaIntervalo
Attrs AreaRange( const gtl::ArraySlice< float > & x )
Intervalo de proporção de aspecto
Attrs AspectRatioRange( const gtl::ArraySlice< float > & x )
TentativasMáximas
Attrs MaxAttempts( int64 x )
MinObjectCoberto
Attrs MinObjectCovered( float x )
Semente
Attrs Seed( int64 x )
Semente2
Attrs Seed2( int64 x )
UsarImagemSeNãoHouverCaixasDelimitadoras
Attrs UseImageIfNoBoundingBoxes( bool x )