tensorflow:: ops:: SampleDistortedBoundingBox

#include <image_ops.h>

צור תיבה תוחמת אחת מעוותת באופן אקראי עבור תמונה.

תַקצִיר

הערות של תיבה תוחמת מסופקות לעיתים קרובות בנוסף לתוויות ground-truth במשימות זיהוי תמונה או לוקליזציה של אובייקטים. טכניקה נפוצה לאימון מערכת כזו היא לעוות תמונה באופן אקראי תוך שמירה על תוכנה, כלומר הגדלת נתונים . אופציה זו מפיקה לוקליזציה מעוותת באופן אקראי של אובייקט, כלומר תיבה תוחמת, בהינתן image_size , bounding_boxes וסדרה של אילוצים.

הפלט של אופציה זו הוא תיבת גבול אחת שניתן להשתמש בה לחיתוך התמונה המקורית. הפלט מוחזר כ-3 טנזורים: begin , size ו- bboxes . ניתן להזין את שני הטנזורים הראשונים ישירות לתוך tf.slice כדי לחתוך את התמונה. ניתן לספק את האחרונים לתוך tf.image.draw_bounding_boxes כדי להמחיש כיצד נראית תיבת הגבול.

תיבות גבול מסופקות ומוחזרות כ- [y_min, x_min, y_max, x_max] . קואורדינטות התיבה התוחמת הן מספרים צפים ב- [0.0, 1.0] יחסית לרוחב ולגובה של התמונה הבסיסית.

לְדוּגמָה,

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

שים לב שאם אין מידע זמין על תיבה תוחמת, הגדרת use_image_if_no_bounding_boxes = true תניח שיש תיבה תוחמת מרומזת אחת המכסה את כל התמונה. אם use_image_if_no_bounding_boxes הוא false ולא מסופקות תיבות תוחמות, תופקע שגיאה.

טיעונים:

  • היקף: אובייקט היקף
  • גודל_תמונה: חד-ממדי, המכיל [height, width, channels] .
  • תיבות_תוחמות: תלת-ממד עם צורה [batch, N, 4] המתארת ​​את N תיבות הגבול המשויכות לתמונה.

מאפיינים אופציונליים (ראה Attrs ):

  • seed: אם seed או seed2 מוגדרים כלא אפס, מחולל המספרים האקראיים נזרע על ידי ה- seed הנתון. אחרת, הוא נזרע על ידי seed אקראי.
  • seed2: זרע שני כדי למנוע התנגשות זרעים.
  • min_object_covered: האזור החתוך של התמונה חייב להכיל לפחות חלק זה של כל תיבה תוחמת שסופקה. ערך הפרמטר הזה צריך להיות לא שלילי. במקרה של 0, האזור החתוך אינו צריך לחפוף אף אחת מתיבות התוחמות שסופקו.
  • aspect_ratio_range: יחס גובה-רוחב של האזור החתוך בתמונה חייב להיות בטווח זה = רוחב / גובה.
  • area_range: האזור החתוך של התמונה חייב להכיל חלק מהתמונה שסופקה בטווח זה.
  • max_attempts: מספר הניסיונות ליצירת אזור חתוך של התמונה תחת האילוצים שצוינו. לאחר כישלונות max_attempts , החזרת התמונה כולה.
  • use_image_if_no_bounding_boxes: שולט בהתנהגות אם לא סופקו תיבות גבול. אם true, נניח תיבה גבולית מרומזת המכסה את כל הקלט. אם false, גורם שגיאה.

החזרות:

  • תחילת Output : חד-ממדי, המכיל [offset_height, offset_width, 0] . ספק כקלט ל- tf.slice .
  • גודל Output : חד-ממדי, המכיל [target_height, target_width, -1] . ספק כקלט ל- tf.slice .
  • Output : תלת-ממדיות עם צורה [1, 1, 4] המכילה את תיבת הגבול המעוותת. ספקו כקלט ל- tf.image.draw_bounding_boxes .

בנאים והורסים

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)

מאפיינים ציבוריים

bboxes
begin
operation
size

פונקציות סטטיות ציבוריות

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)

מבנים

tensorflow:: ops:: SampleDistortedBoundingBox:: Attrs

קובעי מאפיינים אופציונליים עבור SampleDistortedBoundingBox .

מאפיינים ציבוריים

תיבות

::tensorflow::Output bboxes

לְהַתְחִיל

::tensorflow::Output begin

מִבצָע

Operation operation

גוֹדֶל

::tensorflow::Output size

תפקידים ציבוריים

תיבה תוחמת מעוותת לדוגמא

 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
)

פונקציות סטטיות ציבוריות

טווח שטח

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

טווח יחס גובה-רוחב

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

ניסיונות מקסימליים

Attrs MaxAttempts(
  int64 x
)

אובייקט מיני מכוסה

Attrs MinObjectCovered(
  float x
)

זֶרַע

Attrs Seed(
  int64 x
)

זרע2

Attrs Seed2(
  int64 x
)

השתמש בתמונה אם אין תיבות גבול

Attrs UseImageIfNoBoundingBoxes(
  bool x
)