StatelessSampleDistortedBoundingBox

genel son sınıf StatelessSampleDistortedBoundingBox

Bir görüntü için deterministik olarak rastgele bozulmuş bir sınırlayıcı kutu oluşturun.

Sınırlayıcı kutu açıklamaları genellikle görüntü tanıma veya nesne konumlandırma görevlerinde temel doğruluk etiketlerine ek olarak sağlanır. Böyle bir sistemi eğitmek için yaygın bir teknik, bir görüntünün içeriğini korurken rastgele bir şekilde çarpıtılmasıdır, yani veri büyütme . Aynı "tohum" verildiğinde bu Op, deterministik olarak bir nesnenin, yani bir "görüntü_boyutu", "sınırlayıcı_kutular" ve bir dizi kısıtlama verildiğinde sınırlayıcı kutunun rastgele bozulmuş lokalizasyonunu üretir.

Bu Op'un çı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. İkincisi, sınırlayıcı kutunun neye benzediğini görselleştirmek için tf.image.draw_bounding_boxes dosyasına sağlanabilir.

Sınırlayıcı kutular "[y_min, x_min, y_max, x_max]" olarak sağlanır ve döndürülür. Sınırlayıcı kutu koordinatları, alttaki görüntünün genişliğine ve yüksekliğine göre "[0.0, 1.0]" cinsinden kayar.

Bu Op'un çıktısının, aynı "seed" verildiğinde aynı olacağı garanti edilir ve fonksiyonun kaç kez çağrıldığından bağımsızdır ve global çekirdek ayarlarından (örn. tf.random.set_seed ) bağımsızdır.

Örnek kullanım:

>>> görüntü = np.array([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9] ]]) >>> bbox = tf.constant( ... [0.0, 0.0, 1.0, 1.0], dtype=tf.float32, şekil=[1, 1, 4]) >>> tohum = (1, 2 ) >>> # Tek bir bozuk sınırlayıcı kutu oluşturun. >>> bbox_begin, bbox_size, bbox_draw = ( ... tf.image.stateless_sample_distorted_bounding_box( ... tf.shape(image), bordering_boxes=bbox, tohum=seed)) >>> # Görüntüyü bozmak için sınırlayıcı kutuyu kullanın . >>> tf.slice(resim, bbox_begin, bbox_size) >>> # Görüntü özetinde sınırlayıcı kutuyu çizin. >>> renkler = np.array([[1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) >>> tf.image.draw_bounding_boxes( ... tf.expand_dims(tf.cast(görüntü, tf) .float32),0), bbox_draw, renkler)

Hiçbir sınırlayıcı kutu bilgisi mevcut değilse, `use_image_if_no_bounding_boxes = true` ayarının tüm görüntüyü kaplayan tek bir örtülü sınırlayıcı kutu olduğunu varsayacağını unutmayın. "use_image_if_no_bounding_boxes" yanlışsa ve hiçbir sınırlayıcı kutu sağlanmazsa bir hata ortaya çıkar.

İç İçe Sınıflar

sınıf DurumsuzÖrnekDistortedBoundingBox.Options StatelessSampleDistortedBoundingBox için isteğe bağlı özellikler

Sabitler

Sicim OP_NAME Bu operasyonun TensorFlow çekirdek motoru tarafından bilinen adı

Genel Yöntemler

statik Durum BilgisizSampleDistortedBoundingBox.Options
fieldRange (Liste<Float> fieldRange)
statik Durum BilgisizSampleDistortedBoundingBox.Options
en boyRatioRange (Liste<Float> en boyRatioRange)
Çıkış < TFloat32 >
b kutuları ()
Bozulmuş sınırlayıcı kutuyu içeren "[1, 1, 4]" şeklindeki 3 boyutlu.
Çıkış <T>
başlamak ()
1-D, "[offset_height, offset_width, 0]" içerir.
static <T , TNumber'ı genişletir > StatelessSampleDistortedBoundingBox <T>
create ( Kapsam kapsamı, İşlenen <T> imageSize, İşlenen < TFloat32 > borderingBoxes, İşlenen < TFloat32 > minObjectCovered, İşlenen <? extends TNumber > tohum, Seçenekler... seçenekler)
Yeni bir StatelessSampleDistortedBoundingBox işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.
statik Durum BilgisizSampleDistortedBoundingBox.Options
maxAttempts (Uzun maxAttempts)
Çıkış <T>
boyut ()
1-D, "[hedef_yükseklik, hedef_genişlik, -1]" içerir.
statik Durum BilgisizSampleDistortedBoundingBox.Options
useImageIfNoBoundingBoxes (Boolean useImageIfNoBoundingBoxes)

Kalıtsal Yöntemler

Sabitler

genel statik son Dize OP_NAME

Bu operasyonun TensorFlow çekirdek motoru tarafından bilinen adı

Sabit Değer: "StatelessSampleDistortedBoundingBox"

Genel Yöntemler

public static StatelessSampleDistortedBoundingBox.Options fieldRange (List<Float> fieldRange)

Parametreler
alan Aralığı Görüntünün kırpılan alanı, bu aralık dahilinde sağlanan görüntünün bir kısmını içermelidir.

public static StatelessSampleDistortedBoundingBox.Options featureRatioRange (List<Float> featureRatioRange)

Parametreler
en boy Oranı Aralığı Görüntünün kırpılan alanının en boy oranı = genişlik / yükseklik bu aralıkta olmalıdır.

genel Çıkış < TFloat32 > bbox'lar ()

Bozulmuş sınırlayıcı kutuyu içeren "[1, 1, 4]" şeklindeki 3 boyutlu. tf.image.draw_bounding_boxes girdi olarak sağlayın.

genel Çıkış <T> begin ()

1-D, "[offset_height, offset_width, 0]" içerir. tf.slice girdi olarak sağlayın.

public static StatelessSampleDistortedBoundingBox <T> create ( Kapsam kapsamı, İşlenen <T> imageSize, İşlenen < TFloat32 > borderingBoxes, İşlenen < TFloat32 > minObjectCovered, İşlenen <? extends TNumber > tohum, Seçenekler... seçenekler)

Yeni bir StatelessSampleDistortedBoundingBox işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.

Parametreler
kapsam mevcut kapsam
Görüntü boyutu 1-D, "[yükseklik, genişlik, kanallar]"ı içerir.
sınırlayıcıkutular Görüntüyle ilişkili N sınırlayıcı kutuyu tanımlayan "[toplu iş, N, 4]" şeklinde 3 boyutlu.
minObjectCovered Görüntünün kırpılan alanı, sağlanan herhangi bir sınırlayıcı kutunun en azından bu kısmını içermelidir. Bu parametrenin değeri negatif olmamalıdır. 0 durumunda kırpılan alanın sağlanan sınırlayıcı kutulardan herhangi biriyle örtüşmesi gerekmez.
tohum '[2]' şeklinde 1-D. Rastgele sayı üretecinin tohumu. 'int32' veya 'int64' tipinde olmalıdır. (XLA kullanırken yalnızca 'int32'ye izin verilir.)
seçenekler isteğe bağlı nitelik değerlerini taşır
İadeler
  • yeni bir StatelessSampleDistortedBoundingBox örneği

public static StatelessSampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)

Parametreler
maksimum deneme sayısı Belirtilen kısıtlamalara ait görüntünün kırpılmış bir bölgesini oluşturmaya yönelik deneme sayısı. 'max_attempts' başarısızlıklarından sonra görüntünün tamamını döndürün.

genel Çıkış <T> boyutu ()

1-D, "[hedef_yükseklik, hedef_genişlik, -1]" içerir. tf.slice girdi olarak sağlayın.

public static DurumsuzSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (Boolean useImageIfNoBoundingBoxes)

Parametreler
ImageIfNoBoundingBoxes'ı kullanın Hiçbir sınırlayıcı kutu sağlanmadığında davranışı kontrol eder. Doğruysa, tüm girişi kapsayan örtülü bir sınırlayıcı kutu olduğunu varsayalım. Yanlışsa, bir hata bildirin.