tensorflow :: ops :: SampleDistortedBoundingBox
#include <image_ops.h>
Wygeneruj pojedynczą, losowo zniekształconą obwiednię dla obrazu.
streszczenie
Adnotacje z obwiednią są często dostarczane jako uzupełnienie do etykiet rzeczywistych w zadaniach rozpoznawania obrazu lub lokalizacji 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.
Atrybuty opcjonalne (patrz Attrs
):
- seed: Jeśli
seed
lubseed2
są ustawione na wartość niezerową, generator liczb losowych jest inicjowany przez daneseed
. W przeciwnym razie jest wysiewany przez losowe ziarno. - seed2: drugie ziarno, aby uniknąć kolizji nasion.
- 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.
- 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 dotf.slice
. - Rozmiar
Output
: 1-D, zawierający[target_height, target_width, -1]
. Podaj jako dane wejściowe dotf.slice
. -
Output
ramki: 3-W z kształtem[1, 1, 4]
zawierające zniekształconą obwiednię. Podaj jako dane wejściowe dotf.image.draw_bounding_boxes
.
Konstruktorzy i niszczyciele | |
---|---|
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 metody ustawiające atrybuty dla SampleDistortedBoundingBox . |
Atrybuty publiczne
bboxy
::tensorflow::Output bboxes
zaczynać
::tensorflow::Output begin
operacja
Operation operation
rozmiar
::tensorflow::Output size
Funkcje publiczne
SampleDistortedBoundingBox
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes )
SampleDistortedBoundingBox
SampleDistortedBoundingBox( const ::tensorflow::Scope & scope, ::tensorflow::Input image_size, ::tensorflow::Input bounding_boxes, const SampleDistortedBoundingBox::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 )
MinObjectCovered
Attrs MinObjectCovered( float x )
Nasionko
Attrs Seed( int64 x )
Seed2
Attrs Seed2( int64 x )
UseImageIfNoBoundingBoxes
Attrs UseImageIfNoBoundingBoxes( bool x )