tensorflow :: ops :: SampleDistortedBoundingBox

#include <image_ops.h>

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

Ringkasan

Anotasi kotak pembatas sering diberikan selain label kebenaran dasar dalam tugas pengenalan gambar atau pelokalan objek. Teknik umum untuk melatih sistem semacam itu adalah dengan mendistorsi gambar secara acak sambil mempertahankan kontennya, yaitu augmentasi data . Op ini output lokalisasi secara acak terdistorsi dari objek, yaitu melompat-lompat kotak, diberi image_size , bounding_boxes dan serangkaian kendala.

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

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

Sebagai contoh,

    # 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 menganggap ada satu kotak pembatas implisit yang menutupi seluruh gambar. Jika use_image_if_no_bounding_boxes salah dan tidak ada kotak pembatas yang diberikan, kesalahan akan muncul.

Argumen:

  • scope: Objek Scope
  • image_size: 1-D, berisi [height, width, channels] .
  • bounding_boxes: 3-D dengan bentuk [batch, N, 4] mendeskripsikan N kotak pembatas yang terkait dengan gambar.

Atribut opsional (lihat Attrs ):

  • benih: Jika salah satu seed atau seed2 diatur ke bukan nol, generator nomor acak disemai oleh seed diberikan. Jika tidak, itu diunggulkan dengan benih acak.
  • seed2: Benih kedua untuk menghindari tumbukan benih.
  • min_object_covered: Area gambar yang dipotong harus berisi setidaknya bagian dari kotak pembatas yang disediakan. Nilai parameter ini tidak boleh negatif. Dalam kasus 0, area yang dipotong tidak perlu tumpang tindih dengan kotak pembatas yang disediakan.
  • aspek_rentang_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 diberikan dalam kisaran ini.
  • max_attempts: Jumlah upaya untuk membuat wilayah gambar yang dipotong dari 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 yang mencakup seluruh input. Jika salah, buat kesalahan.

Pengembalian:

  • Output mulai: 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 .
  • Output bboxes: 3-D dengan bentuk [1, 1, 4] berisi kotak pembatas terdistorsi. Berikan sebagai masukan ke tf.image.draw_bounding_boxes .

Pembuat dan Penghancur

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)

Structs

tensorflow :: ops :: SampleDistortedBoundingBox :: Attrs

Penyetel atribut opsional untuk SampleDistortedBoundingBox .

Atribut publik

bboxes

::tensorflow::Output bboxes

mulai

::tensorflow::Output begin

operasi

Operation operation

ukuran

::tensorflow::Output size

Fungsi publik

SampleDistortedBoundingBox

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

SampleDistortedBoundingBox

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

Fungsi statis publik

AreaRange

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

AspectRatioRange

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

MaxAttempts

Attrs MaxAttempts(
  int64 x
)

MinObjectCovered

Attrs MinObjectCovered(
  float x
)

Benih

Attrs Seed(
  int64 x
)

Benih2

Attrs Seed2(
  int64 x
)

UseImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)