יום הקהילה ML הוא 9 בנובמבר! הצטרפו אלינו עדכונים מ- TensorFlow, JAX, ועוד למידע נוסף

זרימת טנסור :: אופ :: SampleDistortedBoundingBoxV2

#include <image_ops.h>

צור תיבת הגבלה מעוותת אקראית אחת לתמונה.

סיכום

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

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

תיבות [y_min, x_min, y_max, x_max] כ- [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 = true מרומזת אחת המכסה את כל התמונה. אם use_image_if_no_bounding_boxes שגוי ואין תיבות use_image_if_no_bounding_boxes מסופקות, שגיאה מופעלת.

טענות:

  • היקף: אובייקט Scope
  • image_size: 1-D, המכיל [height, width, channels] .
  • bounding_boxes: 3-D עם צורה [batch, N, 4] המתארת ​​את תיבות התוחם N המשויכות לתמונה.
  • min_object_covered: האזור החתוך של התמונה חייב להכיל לפחות שבר זה של כל תיבת הגבול המסופקת. הערך של פרמטר זה צריך להיות לא שלילי. במקרה של 0, האזור החתוך אינו צריך לחפוף אף אחת מתיבות התוחם המסופקות.

תכונות אופציונליות (ראה Attrs ):

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

החזרות:

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

קונסטרוקטורים ומשחתנים

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)

תכונות ציבוריות

bboxes
begin
operation
size

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

AreaRange (const gtl::ArraySlice< float > & x)
AspectRatioRange (const gtl::ArraySlice< float > & x)
MaxAttempts (int64 x)
Seed (int64 x)
Seed2 (int64 x)
UseImageIfNoBoundingBoxes (bool x)

סטרוקטורים

tensorflow :: ops :: SampleDistortedBoundingBoxV2 :: Attrs

קובעי תכונות אופציונליים עבור SampleDistortedBoundingBoxV2 .

תכונות ציבוריות

bboxes

::tensorflow::Output bboxes

התחל

::tensorflow::Output begin

מבצע

Operation operation

גודל

::tensorflow::Output size

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

SampleDistortedBoundingBoxV2

 SampleDistortedBoundingBoxV2(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes,
  ::tensorflow::Input min_object_covered
)

SampleDistortedBoundingBoxV2

 SampleDistortedBoundingBoxV2(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input image_size,
  ::tensorflow::Input bounding_boxes,
  ::tensorflow::Input min_object_covered,
  const SampleDistortedBoundingBoxV2::Attrs & attrs
)

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

AreaRange

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

AspectRatioRange

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

מקס נסיונות

Attrs MaxAttempts(
  int64 x
)

זֶרַע

Attrs Seed(
  int64 x
)

זרע 2

Attrs Seed2(
  int64 x
)

UseImageIfNoBoundingBoxes

Attrs UseImageIfNoBoundingBoxes(
  bool x
)