aliran tensor:: operasi:: ContohDistortedBoundingBoxV2

#include <image_ops.h>

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

Ringkasan

Anotasi kotak pembatas sering kali diberikan selain label kebenaran dasar dalam tugas pengenalan gambar atau pelokalan objek. Teknik umum untuk melatih sistem seperti itu adalah dengan mendistorsi gambar secara acak sambil mempertahankan kontennya, yaitu augmentasi data . Operasi ini menghasilkan lokalisasi objek yang terdistorsi secara acak, yaitu kotak pembatas, dengan image_size , bounding_boxes dan serangkaian batasan.

Keluaran dari Operasi ini adalah kotak pembatas tunggal yang dapat digunakan untuk memotong gambar asli. Outputnya dikembalikan sebagai 3 tensor: begin , size dan bboxes . 2 tensor pertama dapat dimasukkan langsung ke tf.slice untuk memotong gambar. Yang terakhir mungkin diberikan ke tf.image.draw_bounding_boxes untuk memvisualisasikan seperti apa kotak pembatas itu.

Kotak pembatas disediakan dan dikembalikan sebagai [y_min, x_min, y_max, x_max] . Koordinat kotak pembatas adalah float dalam [0.0, 1.0] relatif terhadap lebar dan tinggi gambar di bawahnya.

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 kotak pembatas yang tersedia, pengaturan use_image_if_no_bounding_boxes = true akan mengasumsikan ada satu kotak pembatas implisit yang menutupi keseluruhan gambar. Jika use_image_if_no_bounding_boxes salah dan tidak ada kotak pembatas yang disediakan, kesalahan akan muncul.

Argumen:

  • ruang lingkup: Objek Lingkup
  • image_size: 1-D, berisi [height, width, channels] .
  • pembatas_kotak: 3-D dengan bentuk [batch, N, 4] yang mendeskripsikan N kotak pembatas yang terkait dengan gambar.
  • min_object_covered: Area gambar yang dipotong harus berisi setidaknya sebagian kecil dari kotak pembatas yang disediakan. Nilai parameter ini tidak boleh negatif. Dalam kasus 0, area yang dipotong tidak perlu tumpang tindih dengan kotak pembatas mana pun yang disediakan.

Atribut opsional (lihat Attrs ):

  • seed: Jika salah satu seed atau seed2 disetel ke bukan nol, pembuat nomor acak akan diunggulkan oleh seed yang diberikan. Jika tidak, ia akan diunggulkan dengan benih acak.
  • seed2: Seed kedua untuk menghindari tabrakan seed.
  • aspek_rasio_rentang: Area gambar yang dipotong harus memiliki rasio aspek = lebar/tinggi dalam rentang ini.
  • area_range: Area gambar yang dipotong harus berisi sebagian kecil dari gambar yang disediakan dalam rentang ini.
  • max_attempts: Jumlah upaya menghasilkan wilayah gambar yang dipotong dengan batasan yang ditentukan. Setelah max_attempts gagal, kembalikan seluruh gambar.
  • use_image_if_no_bounding_boxes: Mengontrol perilaku jika tidak ada kotak pembatas yang disediakan. Jika benar, asumsikan kotak pembatas implisit mencakup seluruh masukan. Jika salah, buatlah kesalahan.

Pengembalian:

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

Konstruktor dan Destruktor

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)

Atribut publik

bboxes
begin
operation
size

Fungsi statis publik

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

Struktur

tensorflow:: ops:: SampleDistortedBoundingBoxV2:: Attrs

Penyetel atribut opsional untuk SampleDistortedBoundingBoxV2 .

Atribut publik

bbox

::tensorflow::Output bboxes

mulai

::tensorflow::Output begin

operasi

Operation operation

ukuran

::tensorflow::Output size

Fungsi publik

ContohDistortedBoundingBoxV2

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

ContohDistortedBoundingBoxV2

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

Fungsi statis publik

Rentang Area

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

Rentang Rasio Aspek

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

Upaya Maks

Attrs MaxAttempts(
  int64 x
)

Benih

Attrs Seed(
  int64 x
)

Benih2

Attrs Seed2(
  int64 x
)

GunakanImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)