Merken Sie den Termin vor! Google I / O kehrt vom 18. bis 20. Mai zurück Registrieren Sie sich jetzt
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Tensorflow :: ops :: SampleDistortedBoundingBox

#include <image_ops.h>

Generieren Sie einen einzelnen zufällig verzerrten Begrenzungsrahmen für ein Bild.

Zusammenfassung

Bounding-Box-Annotationen werden häufig zusätzlich zu Ground-Truth-Labels bei Bilderkennungs- oder Objektlokalisierungsaufgaben bereitgestellt. Eine übliche Technik zum Trainieren eines solchen Systems besteht darin, ein Bild zufällig zu verzerren, während sein Inhalt erhalten bleibt, dh Daten zu erweitern . Diese Operation gibt eine zufällig verzerrte Lokalisierung eines Objekts aus, dh einen Begrenzungsrahmen, wenn eine image_size , bounding_boxes und eine Reihe von Einschränkungen gegeben sind.

Die Ausgabe dieses Op ist ein einzelner Begrenzungsrahmen, mit dem das Originalbild zugeschnitten werden kann. Die Ausgabe wird als 3 Tensoren zurückgegeben: begin , size und bboxes . Die ersten 2 Tensoren können direkt in tf.slice eingespeist werden, um das Bild tf.slice . Letzteres kann an tf.image.draw_bounding_boxes , um zu visualisieren, wie der Begrenzungsrahmen aussieht.

Begrenzungsrahmen werden als [y_min, x_min, y_max, x_max] geliefert und zurückgegeben. Die Begrenzungsrahmenkoordinaten sind Gleitkommazahlen in [0.0, 1.0] relativ zur Breite und Höhe des zugrunde liegenden Bildes.

Zum Beispiel,

    # 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)

Wenn keine Informationen zum Begrenzungsrahmen verfügbar sind, wird beim Festlegen von use_image_if_no_bounding_boxes = true davon ausgegangen, dass ein einzelner impliziter Begrenzungsrahmen das gesamte Bild abdeckt. Wenn use_image_if_no_bounding_boxes false ist und keine Bounding Boxes angegeben werden, wird ein Fehler use_image_if_no_bounding_boxes .

Argumente:

  • scope: Ein Scope- Objekt
  • image_size: 1-D, enthält [height, width, channels] .
  • Bounding_boxes: 3-D mit der Form [batch, N, 4] , die die N dem Bild zugeordneten Boundingboxen beschreibt.

Optionale Attribute (siehe Attrs ):

  • Samen: Wenn entweder seed oder seed2 auf nicht-null gesetzt werden, der Zufallszahlengenerator durch das gegebene ausgesät wird seed . Andernfalls wird es durch einen zufälligen Startwert ausgesät.
  • seed2: Ein zweiter Samen, um eine Samenkollision zu vermeiden.
  • min_object_covered: Der zugeschnittene Bereich des Bildes muss mindestens diesen Bruchteil eines mitgelieferten Begrenzungsrahmens enthalten. Der Wert dieses Parameters sollte nicht negativ sein. Im Fall von 0 muss der zugeschnittene Bereich keinen der mitgelieferten Begrenzungsrahmen überlappen.
  • aspect_ratio_range: Der zugeschnittene Bereich des Bildes muss innerhalb dieses Bereichs ein Seitenverhältnis = Breite / Höhe haben.
  • area_range: Der zugeschnittene Bereich des Bildes muss einen Bruchteil des bereitgestellten Bildes innerhalb dieses Bereichs enthalten.
  • max_attempts: Anzahl der Versuche, einen beschnittenen Bereich des Bildes der angegebenen Einschränkungen zu generieren. max_attempts Fehlern bei max_attempts das gesamte Image zurück.
  • use_image_if_no_bounding_boxes: Steuert das Verhalten, wenn keine Begrenzungsrahmen angegeben sind. Wenn dies der Fall ist, nehmen Sie einen impliziten Begrenzungsrahmen an, der die gesamte Eingabe abdeckt. Wenn false, wird ein Fehler ausgegeben.

Kehrt zurück:

  • Output beginnen: 1-D, enthaltend [offset_height, offset_width, 0] . Als Eingabe für tf.slice .
  • Output : 1-D, enthält [target_height, target_width, -1] . Als Eingabe für tf.slice .
  • Output B-Boxen: 3-D mit der Form [1, 1, 4] die den verzerrten Begrenzungsrahmen enthält. Geben Sie als Eingabe für tf.image.draw_bounding_boxes .

Konstruktoren und Destruktoren

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)

Öffentliche Attribute

bboxes
begin
operation
size

Öffentliche statische Funktionen

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)

Strukturen

tensorflow :: ops :: SampleDistortedBoundingBox :: Attrs

Optionale Attributsetzer für SampleDistortedBoundingBox .

Öffentliche Attribute

bboxen

::tensorflow::Output bboxes

Start

::tensorflow::Output begin

Operation

Operation operation

Größe

::tensorflow::Output size

Öffentliche Funktionen

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
)

Öffentliche statische Funktionen

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
)

Samen

Attrs Seed(
  int64 x
)

Seed2

Attrs Seed2(
  int64 x
)

UseImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)