tensorflow:: ops:: SampleDistortedBoundingBox
#include <image_ops.h>Wygeneruj pojedynczy, losowo zniekształcony prostokąt ograniczający obraz.
Streszczenie
Adnotacje w postaci prostokątów ograniczających są często dostarczane oprócz etykiet referencyjnych w zadaniach rozpoznawania obrazu lub lokalizacji obiektów. Powszechną techniką trenowania takiego systemu jest losowe zniekształcanie obrazu z zachowaniem jego zawartości, czyli augmentacja danych . Ta operacja generuje losowo zniekształconą lokalizację obiektu, czyli prostokąt ograniczający, na podstawie parametrów image_size , bounding_boxes i serii ograniczeń.
Wynikiem tej operacji jest pojedynczy prostokąt ograniczający, który można wykorzystać do przycięcia oryginalnego obrazu. Wynik jest zwracany w postaci 3 tensorów: begin , size i bboxes . Pierwsze 2 tensory można przekazać bezpośrednio do tf.slice w celu przycięcia obrazu. Ten ostatni można przekazać do tf.image.draw_bounding_boxes , aby zwizualizować wygląd prostokąta ograniczającego.
Pola ograniczające są dostarczane i zwracane jako [y_min, x_min, y_max, x_max] . Współrzędne pola ograniczającego są liczbami zmiennoprzecinkowymi w zakresie [0.0, 1.0] względem 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 polu ograniczającym, ustawienie use_image_if_no_bounding_boxes = true spowoduje założenie, że istnieje pojedyncze, niejawne pole ograniczające obejmujące cały obraz. Jeśli use_image_if_no_bounding_boxes ma wartość false i nie podano żadnych pól ograniczających, zgłaszany jest błąd.
Argumenty:
- zakres: obiekt zakresu
- image_size: 1-D, zawierający
[height, width, channels]. - bounding_boxes: 3-D o kształcie
[batch, N, 4]opisującym N pól ograniczających powiązanych z obrazem.
Atrybuty opcjonalne (patrz Attrs ):
- seed: Jeśli albo
seed, alboseed2są ustawione na wartość różną od zera, generator liczb losowych jest zasiewany na podstawie podanegoseed. W przeciwnym razie, zasiewany jest na podstawie ziarna losowego. - seed2: Drugie nasiono zapobiegające kolizji nasion.
- min_object_covered: Przycięty obszar obrazu musi zawierać co najmniej taką część dowolnego podanego pola ograniczającego. Wartość tego parametru powinna być nieujemna. W przypadku wartości 0, przycięty obszar nie musi nachodzić na żadne z podanych pól ograniczających.
- aspect_ratio_range: Przycięty obszar obrazu musi mieć współczynnik proporcji = szerokość / wysokość mieszczący się w tym zakresie.
- area_range: Przycięty obszar obrazu musi zawierać część dostarczonego obrazu w tym zakresie.
- max_attempts: Liczba prób wygenerowania przyciętego obszaru obrazu z określonymi ograniczeniami. W przypadku nieudanych
max_attempts, zwróć cały obraz. - use_image_if_no_bounding_boxes: Kontroluje zachowanie, jeśli nie podano żadnych pól ograniczających. Jeśli wartość to true, zakłada się, że pole ograniczające obejmuje całe dane wejściowe. Jeśli wartość to false, zgłaszany jest błąd.
Zwroty:
- Początek
Output: 1-D, zawierający[offset_height, offset_width, 0]. Przekaż jako dane wejściowe dotf.slice. - Rozmiar
Output: 1-D, zawierający[target_height, target_width, -1]. Podaj jako dane wejściowe dotf.slice. -
Outputpola bbox: 3-D o kształcie[1, 1, 4]zawierające zniekształcony blok ograniczający. Podaj jako dane wejściowe dotf.image.draw_bounding_boxes.
Konstruktory i destruktory | |
|---|---|
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) |
Atrybuty publiczne | |
|---|---|
bboxes | |
begin | |
operation | |
size | |
Publiczne funkcje statyczne | |
|---|---|
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) | |
Struktury | |
|---|---|
| tensorflow:: ops:: SampleDistortedBoundingBox:: Attrs | Opcjonalne settery atrybutów dla SampleDistortedBoundingBox . |
Atrybuty publiczne
pudełka
::tensorflow::Output bboxes
zaczynać
::tensorflow::Output begin
działanie
Operation operation
rozmiar
::tensorflow::Output size
Funkcje publiczne
PróbkaZniekształconaOgraniczającaBox
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes )
PróbkaZniekształconaOgraniczającaBox
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::Attrs & attrs )
Publiczne funkcje statyczne
Zakres obszaru
Attrs AreaRange( const gtl::ArraySlice< float > & x )
Zakres proporcji
Attrs AspectRatioRange( const gtl::ArraySlice< float > & x )
Maksymalna liczba prób
Attrs MaxAttempts( int64 x )
MinObjectCovered
Attrs MinObjectCovered( float x )
Nasienie
Attrs Seed( int64 x )
Seed2
Attrs Seed2( int64 x )
Użyj obrazu, jeśli nie ma pól ograniczających
Attrs UseImageIfNoBoundingBoxes( bool x )