Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

tensorflow :: ops :: SampleDistortedBoundingBoxV2

#include <image_ops.h>

Wygeneruj pojedynczą, losowo zniekształconą obwiednię dla obrazu.

streszczenie

Adnotacje z obwiednią są często dostarczane jako uzupełnienie etykiet rzeczywistych w zadaniach związanych z rozpoznawaniem obrazu lub lokalizacją obiektów. Powszechną techniką uczenia takiego systemu jest losowe zniekształcanie obrazu przy zachowaniu jego zawartości, czyli powiększanie danych . Ten Op generuje losowo zniekształcone lokalizacji obiektu, tj Obwiednia, podać image_size , bounding_boxes oraz szereg ograniczeń.

Wynikiem tej operacji jest pojedyncza obwiednia, której można użyć do przycięcia oryginalnego obrazu. Wynik jest zwracany jako 3 tensory: begin , size i bboxes . Pierwsze 2 tensory można wprowadzić bezpośrednio do tf.slice celu przycięcia obrazu. Ten ostatni może być dostarczony do tf.image.draw_bounding_boxes aby zwizualizować, jak wygląda obwiednia.

Ramki ograniczające są dostarczane i zwracane jako [y_min, x_min, y_max, x_max] . Współrzędne obwiedni są zmienne w [0.0, 1.0] stosunku do szerokości i wysokości obrazu znajdującego się pod spodem.

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)

Zauważ, że jeśli nie są dostępne żadne informacje o obwiedni, ustawienie use_image_if_no_bounding_boxes = true zakłada, że ​​istnieje jedno niejawne pole ograniczające obejmujące cały obraz. Jeśli use_image_if_no_bounding_boxes ma wartość false i nie podano żadnych obwiedni, zostanie zgłoszony błąd.

Argumenty:

  • zakres: obiekt Scope
  • image_size: 1-D, zawierający [height, width, channels] .
  • bounding_boxes: 3-W z kształtem [batch, N, 4] opisującym N obwiedni skojarzonych z obrazem.
  • min_object_covered: przycięty obszar obrazu musi zawierać co najmniej ten ułamek dowolnego dostarczonego obwiedni. Wartość tego parametru powinna być nieujemna. W przypadku 0, przycięty obszar nie musi zachodzić na żadne z dostarczonych obwiedni.

Atrybuty opcjonalne (patrz Attrs ):

  • seed: Jeśli seed lub seed2 są ustawione na wartość niezerową, generator liczb losowych jest inicjowany przez dane seed . W przeciwnym razie jest wysiewany przez losowe ziarno.
  • seed2: drugie ziarno, aby uniknąć kolizji nasion.
  • aspekt_współczynnika_zakresu: przycięty obszar obrazu musi mieć współczynnik proporcji = szerokość / wysokość mieszczący się w tym zakresie.
  • zakres_obszaru: przycięty obszar obrazu musi zawierać ułamek dostarczonego obrazu z tego zakresu.
  • max_attempts: liczba prób wygenerowania przyciętego obszaru obrazu z określonymi ograniczeniami. Po niepowodzeniach max_attempts zwróć cały obraz.
  • use_image_if_no_bounding_boxes: Kontroluje zachowanie, jeśli nie podano obwiedni. Jeśli prawda, załóż niejawną ramkę ograniczającą obejmującą całe dane wejściowe. Jeśli fałsz, zgłoś błąd.

Zwroty:

  • [offset_height, offset_width, 0] Output : 1-D, zawierający [offset_height, offset_width, 0] . Podaj jako dane wejściowe do tf.slice .
  • Rozmiar Output : 1-D, zawierający [target_height, target_width, -1] . Podaj jako dane wejściowe do tf.slice .
  • Output ramki: 3-W z kształtem [1, 1, 4] zawierające zniekształconą obwiednię. Podaj jako dane wejściowe do tf.image.draw_bounding_boxes .

Konstruktorzy i niszczyciele

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)

Atrybuty publiczne

bboxes
begin
operation
size

Publiczne funkcje statyczne

AreaRange (const gtl::ArraySlice< float > & x)
AspectRatioRange (const gtl::ArraySlice< float > & x)
MaxAttempts (int64 x)
Seed (int64 x)
Seed2 (int64 x)
UseImageIfNoBoundingBoxes (bool x)

Struktury

tensorflow :: ops :: SampleDistortedBoundingBoxV2 :: Attrs

Opcjonalne metody ustawiające atrybuty dla SampleDistortedBoundingBoxV2 .

Atrybuty publiczne

bboxy

::tensorflow::Output bboxes

zaczynać

::tensorflow::Output begin

operacja

Operation operation

rozmiar

::tensorflow::Output size

Funkcje publiczne

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
)

Publiczne funkcje statyczne

AreaRange

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

AspectRatioRange

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

MaxAttempts

Attrs MaxAttempts(
  int64 x
)

Nasionko

Attrs Seed(
  int64 x
)

Seed2

Attrs Seed2(
  int64 x
)

UseImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)