tensorflow::ops::SampleDistortedBoundingBox

#include <image_ops.h>

Menghasilkan satu kotak pembatas yang terdistorsi secara acak untuk sebuah gambar.

Ringkasan

Anotasi bounding box sering diberikan sebagai tambahan label ground-truth dalam tugas pengenalan gambar atau lokalisasi objek. Teknik umum untuk melatih sistem tersebut adalah dengan mendistorsi gambar secara acak sambil mempertahankan kontennya, yaitu augmentasi data . Op ini menghasilkan lokalisasi objek yang terdistorsi secara acak, yaitu bounding box, dengan mempertimbangkan image_size , bounding_boxes , dan serangkaian batasan.

Output dari operasi ini adalah sebuah kotak pembatas tunggal yang dapat digunakan untuk memotong gambar asli. Output dikembalikan sebagai 3 tensor: begin , size , dan bboxes . Dua tensor pertama dapat langsung dimasukkan ke tf.slice untuk memotong gambar. Tensor terakhir dapat diberikan ke tf.image.draw_bounding_boxes untuk memvisualisasikan tampilan kotak pembatas tersebut.

Kotak pembatas diberikan dan dikembalikan sebagai [y_min, x_min, y_max, x_max] . Koordinat kotak pembatas adalah angka desimal dalam rentang [0.0, 1.0] relatif terhadap lebar dan tinggi gambar yang mendasarinya.

Misalnya,

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

Perhatikan bahwa jika tidak ada informasi bounding box yang tersedia, pengaturan use_image_if_no_bounding_boxes = true akan mengasumsikan ada satu bounding box implisit yang mencakup seluruh gambar. Jika use_image_if_no_bounding_boxes bernilai false dan tidak ada bounding box yang diberikan, maka akan muncul kesalahan.

Argumen:

  • Cakupan: Objek Cakupan
  • Ukuran gambar: 1-D, berisi [height, width, channels] .
  • bounding_boxes: 3-D dengan bentuk [batch, N, 4] yang menjelaskan N kotak pembatas yang terkait dengan gambar.

Atribut opsional (lihat Attrs ):

  • seed: Jika seed atau seed2 diatur ke nilai bukan nol, generator angka acak akan diinisialisasi dengan seed yang diberikan. Jika tidak, generator akan diinisialisasi dengan seed acak.
  • seed2: Benih kedua untuk menghindari benturan benih.
  • min_object_covered: Area yang dipotong dari gambar harus mengandung setidaknya sebagian kecil dari kotak pembatas yang diberikan. Nilai parameter ini harus non-negatif. Jika nilainya 0, area yang dipotong tidak perlu tumpang tindih dengan kotak pembatas yang diberikan.
  • aspect_ratio_range: Area gambar yang dipotong harus memiliki rasio aspek = lebar / tinggi dalam rentang ini.
  • area_range: Area yang dipotong dari gambar harus berisi sebagian kecil dari gambar yang diberikan dalam rentang ini.
  • max_attempts: Jumlah percobaan untuk menghasilkan bagian gambar yang dipotong sesuai batasan yang ditentukan. Setelah max_attempts kegagalan, kembalikan seluruh gambar.
  • use_image_if_no_bounding_boxes: Mengontrol perilaku jika tidak ada kotak pembatas yang diberikan. Jika benar, anggap ada kotak pembatas implisit yang mencakup seluruh input. Jika salah, timbulkan kesalahan.

Mengembalikan:

  • Output dimulai: 1-D, berisi [offset_height, offset_width, 0] . Berikan sebagai input ke tf.slice .
  • Ukuran Output : 1-D, berisi [target_height, target_width, -1] . Berikan sebagai masukan ke tf.slice .
  • Output bboxes: 3-D dengan bentuk [1, 1, 4] yang berisi bounding box yang terdistorsi. Berikan sebagai input ke tf.image.draw_bounding_boxes .

Konstruktor dan Destruktor

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)

Atribut publik

bboxes
begin
operation
size

Fungsi statis publik

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)

Struktur

tensorflow::ops::SampleDistortedBoundingBox::Attrs

Pengaturan atribut opsional untuk SampleDistortedBoundingBox .

Atribut publik

kotak b

::tensorflow::Output bboxes

mulai

::tensorflow::Output begin

operasi

Operation operation

ukuran

::tensorflow::Output size

Fungsi publik

Kotak Pembatas Terdistorsi Sampel

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

Kotak Pembatas Terdistorsi Sampel

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

Fungsi statis publik

Rentang Area

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

AspectRatioRange

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

Jumlah Percobaan Maksimum

Attrs MaxAttempts(
  int64 x
)

Objek Minimum Tercakup

Attrs MinObjectCovered(
  float x
)

Benih

Attrs Seed(
  int64 x
)

Benih 2

Attrs Seed2(
  int64 x
)

GunakanGambarJikaTidakAdaKotakPembatas

Attrs UseImageIfNoBoundingBoxes(
  bool x
)