tensorflow::ops::SampleDistortedBoundingBox

#include <image_ops.h>

Görüntü için rastgele bozulmuş tek bir sınırlayıcı kutu oluşturun.

Özet

Görüntü tanıma veya nesne konumlandırma görevlerinde, gerçek etiketlere ek olarak genellikle sınırlayıcı kutu açıklamaları da sağlanır. Bu tür bir sistemi eğitmek için yaygın bir teknik, içeriğini korurken görüntüyü rastgele bozmaktır, yani veri artırma . Bu işlem, verilen image_size , bounding_boxes ve bir dizi kısıtlamaya bağlı olarak, bir nesnenin rastgele bozulmuş bir konumlandırmasını, yani sınırlayıcı kutusunu çıktı olarak verir.

Bu işlemin çıktısı, orijinal görüntüyü kırpmak için kullanılabilecek tek bir sınırlayıcı kutudur. Çıktı, 3 tensör olarak döndürülür: begin , size ve bboxes . İlk 2 tensör, görüntüyü kırpmak için doğrudan tf.slice beslenebilir. Sonuncusu ise sınırlayıcı kutunun nasıl göründüğünü görselleştirmek için tf.image.draw_bounding_boxes verilebilir.

Sınır kutuları [y_min, x_min, y_max, x_max] olarak sağlanır ve döndürülür. Sınır kutusu koordinatları, altta yatan görüntünün genişliğine ve yüksekliğine göre [0.0, 1.0] aralığında kayan noktalı sayılardır.

Örneğin,

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

Sınır kutusu bilgisi mevcut değilse, use_image_if_no_bounding_boxes = true ayarı, tüm görüntüyü kapsayan tek bir örtük sınır kutusu olduğunu varsayacaktır. use_image_if_no_bounding_boxes false ise ve sınır kutusu bilgisi sağlanmamışsa, bir hata oluşur.

Argümanlar:

  • kapsam: Bir Kapsam nesnesi
  • Resim boyutu: 1 boyutlu, [height, width, channels] içeriyor.
  • sınırlayıcı kutular: Görüntüyle ilişkili N sınırlayıcı kutuyu tanımlayan [batch, N, 4] şeklinde 3 boyutlu bir yapı.

İsteğe bağlı özellikler (bkz. Attrs ):

  • seed: Eğer seed veya seed2 sıfırdan farklı bir değere ayarlanırsa, rastgele sayı üreteci verilen seed değeriyle başlatılır. Aksi takdirde, rastgele bir seed değeriyle başlatılır.
  • seed2: Tohum çakışmasını önlemek için ikinci bir tohum.
  • min_object_covered: Görüntünün kırpılan alanı, sağlanan sınırlayıcı kutuların en az bu oranını içermelidir. Bu parametrenin değeri negatif olmamalıdır. 0 değeri durumunda, kırpılan alanın sağlanan sınırlayıcı kutulardan herhangi biriyle örtüşmesi gerekmez.
  • aspect_ratio_range: Görüntünün kırpılan alanının en boy oranı = genişlik / yükseklik, bu aralıkta olmalıdır.
  • Alan aralığı: Görüntünün kırpılan alanı, sağlanan görüntünün bu aralık içindeki bir bölümünü içermelidir.
  • max_attempts: Belirtilen kısıtlamalara göre görüntünün kırpılmış bir bölgesini oluşturma girişimlerinin sayısı. max_attempts başarısız olduktan sonra, görüntünün tamamını döndürün.
  • use_image_if_no_bounding_boxes: Sınır kutuları belirtilmediğinde davranışı kontrol eder. Doğruysa, tüm girişi kapsayan örtük bir sınır kutusu varsayılır. Yanlışsa, bir hata oluşturulur.

İadeler:

  • Output başlangıcı: 1 boyutlu, [offset_height, offset_width, 0] içeriyor. tf.slice fonksiyonuna girdi olarak verin.
  • Output boyutu: 1 boyutlu, [target_height, target_width, -1] içerir. tf.slice fonksiyonuna girdi olarak verin.
  • Output sınırlayıcı kutuları: Bozulmuş sınırlayıcı kutuyu içeren [1, 1, 4] şeklinde 3 boyutlu. tf.image.draw_bounding_boxes fonksiyonuna girdi olarak verin.

Yapıcılar ve Yıkıcılar

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)

Genel özellikler

bboxes
begin
operation
size

Herkese açık statik fonksiyonlar

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)

Yapılar

tensorflow::ops::SampleDistortedBoundingBox::Attrs

SampleDistortedBoundingBox için isteğe bağlı öznitelik ayarlayıcıları.

Genel özellikler

bboxes

::tensorflow::Output bboxes

başlamak

::tensorflow::Output begin

operasyon

Operation operation

boyut

::tensorflow::Output size

Kamusal işlevler

ÖrnekBozulmuşSınır Kutusu

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

ÖrnekBozulmuşSınır Kutusu

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

Herkese açık statik fonksiyonlar

AlanAralığı

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

En Boy Oranı Aralığı

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

MaksimumDenemeler

Attrs MaxAttempts(
  int64 x
)

Minimum Nesne Kapsanan

Attrs MinObjectCovered(
  float x
)

Tohum

Attrs Seed(
  int64 x
)

Tohum2

Attrs Seed2(
  int64 x
)

Sınır kutuları yoksa resmi kullan.

Attrs UseImageIfNoBoundingBoxes(
  bool x
)