tensorflow :: ops :: SampleDistortedBoundingBoxV2
#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. - 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.
Atribut opsional (lihat Attrs
):
- benih: Jika salah satu
seed
atauseed2
diatur ke bukan nol, generator nomor acak disemai olehseed
diberikan. Jika tidak, itu diunggulkan dengan benih acak. - seed2: Benih kedua untuk menghindari tumbukan benih.
- 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 ketf.slice
. - Ukuran
Output
: 1-D, berisi[target_height, target_width, -1]
. Berikan sebagai masukan ketf.slice
. -
Output
bboxes: 3-D dengan bentuk[1, 1, 4]
berisi kotak pembatas terdistorsi. Berikan sebagai masukan ketf.image.draw_bounding_boxes
.
Pembuat dan Penghancur | |
---|---|
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) |
Structs | |
---|---|
tensorflow :: ops :: SampleDistortedBoundingBoxV2 :: Attrs | Penyetel atribut opsional untuk SampleDistortedBoundingBoxV2 . |
Atribut publik
bboxes
::tensorflow::Output bboxes
mulai
::tensorflow::Output begin
operasi
Operation operation
ukuran
::tensorflow::Output size
Fungsi publik
SampleDistortedBoundingBoxV2
SampleDistortedBoundingBoxV2( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, ::tensorflow::Input min_object_covered )
SampleDistortedBoundingBoxV2
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
AreaRange
Attrs AreaRange( const gtl::ArraySlice< float > & x )
AspectRatioRange
Attrs AspectRatioRange( const gtl::ArraySlice< float > & x )
MaxAttempts
Attrs MaxAttempts( int64 x )
Benih
Attrs Seed( int64 x )
Benih2
Attrs Seed2( int64 x )
UseImageIfNoBoundingBoxes
Attrs UseImageIfNoBoundingBoxes( bool x )