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
seedatauseed2diatur ke nilai bukan nol, generator angka acak akan diinisialisasi denganseedyang 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_attemptskegagalan, 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:
-
Outputdimulai: 1-D, berisi[offset_height, offset_width, 0]. Berikan sebagai input ketf.slice. - Ukuran
Output: 1-D, berisi[target_height, target_width, -1]. Berikan sebagai masukan ketf.slice. -
Outputbboxes: 3-D dengan bentuk[1, 1, 4]yang berisi bounding box yang terdistorsi. Berikan sebagai input ketf.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 )