przepływ tensorowy:: ops:: PróbkaDistortedBoundingBoxV2
#include <image_ops.h>
Wygeneruj pojedynczą, losowo zniekształconą ramkę ograniczającą obraz.
Streszczenie
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 [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 obejmują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.
Argumenty:
- zakres: Obiekt Scope
- image_size: 1-D, zawierający
[height, width, channels]
. - bounding_boxes: 3-D z kształtem
[batch, N, 4]
opisującym N ramek ograniczających skojarzonych z obrazem. - min_object_covered: 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.
Opcjonalne atrybuty (patrz Attrs
):
- ziarno: Jeśli
seed
lubseed2
są ustawione na wartość różną od zera, generator liczb losowych jest zaszczepiany danymseed
. W przeciwnym razie jest on zaszczepiany losowo. - nasiono2: Drugie ziarno, aby uniknąć kolizji nasion.
- aspekt_ratio_range: Przycięty obszar obrazu musi mieć współczynnik kształtu = 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. Po niepowodzeniach
max_attempts
zwróć cały obraz. - use_image_if_no_bounding_boxes: 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.
Zwroty:
- Początek
Output
: 1-D, zawierający[offset_height, offset_width, 0]
. Podaj jako dane wejściowe dotf.slice
. - Rozmiar
Output
: 1-D, zawierający[target_height, target_width, -1]
. Podaj jako dane wejściowe dotf.slice
. -
Output
bboxy: 3-D z kształtem[1, 1, 4]
zawierającym zniekształconą ramkę ograniczającą. Podaj jako dane wejściowe dotf.image.draw_bounding_boxes
.
Konstruktory i destruktory | |
---|---|
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:: Atrybuty | Opcjonalne moduły ustawiające atrybuty dla SampleDistortedBoundingBoxV2 . |
Atrybuty publiczne
bboxy
::tensorflow::Output bboxes
zaczynać
::tensorflow::Output begin
działanie
Operation operation
rozmiar
::tensorflow::Output size
Funkcje publiczne
PróbkaDistortedBoundingBoxV2
SampleDistortedBoundingBoxV2( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, ::tensorflow::Input min_object_covered )
PróbkaDistortedBoundingBoxV2
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
ObszarZakres
Attrs AreaRange( const gtl::ArraySlice< float > & x )
Zakres proporcji
Attrs AspectRatioRange( const gtl::ArraySlice< float > & x )
Maksymalna liczba prób
Attrs MaxAttempts( int64 x )
Nasienie
Attrs Seed( int64 x )
Nasienie2
Attrs Seed2( int64 x )
UżyjImageIfNoBoundingBoxes
Attrs UseImageIfNoBoundingBoxes( bool x )