SampleDistortedBoundingBox

publiczna klasa końcowa SampleDistortedBoundingBox

Wygeneruj pojedynczą, losowo zniekształconą ramkę ograniczającą obraz.

Adnotacje dotyczące obwiedni są często dostarczane jako dodatek do etykiet podstawowych w zadaniach rozpoznawania obrazu lub lokalizacji obiektów. Powszechną techniką uczenia takiego systemu jest losowe zniekształcanie obrazu przy jednoczesnym zachowaniu jego zawartości, czyli powiększanie danych . Ta operacja generuje losowo zniekształconą lokalizację obiektu, tj. obwiednię, biorąc pod uwagę `image_size`, `bounding_boxes` i serię ograniczeń.

Wynikiem tej operacji jest pojedyncza ramka ograniczająca, której można użyć do przycięcia oryginalnego obrazu. Dane wyjściowe są zwracane jako 3 tensory: `begin`, `size` i `bboxes`. Pierwsze 2 tensory można wprowadzić bezpośrednio do tf.slice w celu przycięcia obrazu. Te ostatnie można dostarczyć do tf.image.draw_bounding_boxes w celu wizualizacji wyglądu ramki ograniczającej.

Ramki ograniczające są dostarczane i zwracane jako `[y_min, x_min, y_max, x_max]`. Współrzędne ramki ograniczającej są zmiennoprzecinkowe w zakresie „[0,0, 1,0]” w stosunku do szerokości i wysokości obrazu bazowego.

Na przykład

# 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)
 
Należy pamiętać, że jeśli nie są dostępne żadne informacje o ramce ograniczającej, ustawienie `use_image_if_no_bounding_boxes = true` zakłada, że ​​istnieje jedna niejawna ramka ograniczająca pokrywająca cały obraz. Jeśli `use_image_if_no_bounding_boxes` ma wartość false i nie podano żadnych ramek ograniczających, zgłaszany jest błąd.

Klasy zagnieżdżone

klasa PróbkaDistortedBoundingBox.Opcje Opcjonalne atrybuty dla SampleDistortedBoundingBox

Stałe

Strunowy OP_NAME Nazwa tej operacji znana silnikowi rdzenia TensorFlow

Metody publiczne

statyczny SampleDistortedBoundingBox.Options
areaRange (Lista<Float> areaRange)
statyczny SampleDistortedBoundingBox.Options
aspektRatioRange (List<Float> aspektRatioRange)
Dane wyjściowe <TFloat32>
bboxy ()
Trójwymiarowy kształt „[1, 1, 4]” zawierający zniekształconą ramkę ograniczającą.
Wyjście <T>
zaczynać ()
1-D, zawierający `[wysokość_przesunięcia, szerokość_przesunięcia, 0]`.
statyczny <T rozszerza numer TNumber > SampleDistortedBoundingBox <T>
utwórz ( Zakres zasięgu , Operand <T> imageSize, Operand < TFloat32 >boundingBoxes, Operand < TFloat32 > minObjectCovered, Opcje... opcje)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację SampleDistortedBoundingBox.
statyczny SampleDistortedBoundingBox.Options
maxAttempts (Długie maxAttempts)
statyczny SampleDistortedBoundingBox.Options
nasiona (długie nasiona)
statyczny SampleDistortedBoundingBox.Options
nasiona 2 (Długie nasiona 2)
Wyjście <T>
rozmiar ()
1-D, zawierający `[wysokość_docelowa, szerokość_docelowa, -1]`.
statyczny SampleDistortedBoundingBox.Options
useImageIfNoBoundingBoxes (wartość logiczna useImageIfNoBoundingBoxes)

Metody dziedziczone

Stałe

publiczny statyczny końcowy ciąg znaków OP_NAME

Nazwa tej operacji znana silnikowi rdzenia TensorFlow

Wartość stała: „SampleDistortedBoundingBoxV2”

Metody publiczne

publiczny statyczny SampleDistortedBoundingBox.Options areaRange (List<Float> areaRange)

Parametry
obszarZakres Przycięty obszar obrazu musi zawierać część dostarczonego obrazu w tym zakresie.

publiczny statyczny SampleDistortedBoundingBox.Options aspektRatioRange (List<Float> aspektRatioRange)

Parametry
aspektRatioRange Przycięty obszar obrazu musi mieć współczynnik kształtu = szerokość / wysokość mieszczący się w tym zakresie.

publiczne wyjście < TFloat32 > bboxes ()

Trójwymiarowy kształt „[1, 1, 4]” zawierający zniekształconą ramkę ograniczającą. Podaj jako dane wejściowe do tf.image.draw_bounding_boxes .

publiczne wyjście <T> rozpocząć ()

1-D, zawierający `[wysokość_przesunięcia, szerokość_przesunięcia, 0]`. Podaj jako dane wejściowe do tf.slice .

public static SampleDistortedBoundingBox <T> create ( Zakres zakresu, Operand <T> imageSize, Operand < TFloat32 >boundingBoxes, Operand < TFloat32 > minObjectCovered, Opcje... opcje)

Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację SampleDistortedBoundingBox.

Parametry
zakres aktualny zakres
rozmiar obrazu 1-D, zawierający `[wysokość, szerokość, kanały]`.
ograniczające Trójwymiarowy kształt „[partia, N, 4]” opisujący N ramek ograniczających skojarzonych z obrazem.
minObjectCovered Przycięty obszar obrazu musi zawierać co najmniej tę część dowolnej dostarczonej ramki ograniczającej. Wartość tego parametru powinna być nieujemna. W przypadku wartości 0 przycięty obszar nie musi zachodzić na żadną z dostarczonych ramek ograniczających.
opcje przenosi opcjonalne wartości atrybutów
Zwroty
  • nowa instancja SampleDistortedBoundingBox

public static SampleDistortedBoundingBox.Options maxAttempts (Długie maxAttempts)

Parametry
maxPróby Liczba prób wygenerowania przyciętego obszaru obrazu z określonymi ograniczeniami. Po niepowodzeniach `max_attempts` zwróć cały obraz.

public static SampleDistortedBoundingBox.Options ziarno (długie ziarno)

Parametry
nasionko Jeśli „ziarno” lub „ziarno2” jest ustawione na wartość różną od zera, generator liczb losowych jest inicjowany przez dane „ziarno”. W przeciwnym razie jest on zaszczepiany losowo.

public static SampleDistortedBoundingBox.Options nasiono 2 (długie ziarno 2)

Parametry
ziarno2 Drugie ziarno, aby uniknąć kolizji nasion.

publiczny Rozmiar wyjścia <T> ()

1-D, zawierający `[wysokość_docelowa, szerokość_docelowa, -1]`. Podaj jako dane wejściowe do tf.slice .

publiczny statyczny SampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (boolean useImageIfNoBoundingBoxes)

Parametry
użyjImageIfNoBoundingBoxes Kontroluje zachowanie, jeśli nie podano ramek ograniczających. Jeśli to prawda, załóż niejawną ramkę ograniczającą obejmującą całe wejście. Jeśli fałszywe, zgłoś błąd.