StatelessSampleDistortedBoundingBox

מחלקה סופית ציבורית StatelessSampleDistortedBoundingBox

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

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

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

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

הפלט של ה-Op הזה מובטח להיות זהה בהינתן אותו 'seed' והוא בלתי תלוי במספר הפעמים שהפונקציה נקראת, ואינו תלוי בהגדרות ה-Seed הגלובליות (למשל tf.random.set_seed ).

שימוש לדוגמה:

>>> image = np.array([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9] ]]) >>> bbox = tf.constant( ... [0.0, 0.0, 1.0, 1.0], dtype=tf.float32, shape=[1, 1, 4]) >>> seed = (1, 2 ) >>> # צור תיבת תוחמת מעוותת אחת. >>> bbox_begin, bbox_size, bbox_draw = ( ... tf.image.stateless_sample_distorted_bounding_box( ... tf.shape(image), bounding_boxes=bbox, seed=seed)) >>> # השתמשו בתיבה התוחמת כדי לעוות את התמונה . >>> tf.slice(image, bbox_begin, bbox_size) >>> # צייר את התיבה התוחמת בסיכום תמונה. >>> colors = np.array([[1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) >>> tf.image.draw_bounding_boxes( ... tf.expand_dims(tf.cast(image, tf) .float32),0), bbox_draw, colors)

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

כיתות מקוננות

מעמד StatelessSampleDistortedBoundingBox.Options תכונות אופציונליות עבור StatelessSampleDistortedBoundingBox

קבועים

חוּט OP_NAME השם של המבצע הזה, כפי שידוע על ידי מנוע הליבה של TensorFlow

שיטות ציבוריות

static StatelessSampleDistortedBoundingBox.Options
areaRange (List<Float> areaRange)
static StatelessSampleDistortedBoundingBox.Options
aspectRatioRange (List<Float> aspectRatioRange)
פלט < TFloat32 >
bboxes ()
תלת מימד עם צורה `[1, 1, 4]` המכילה את התיבה התוחמת המעוותת.
פלט <T>
התחל ()
1-D, המכיל '[offset_height, offset_width, 0]'.
סטטי <T מרחיב TNummer > StatelessSampleDistortedBoundingBox <T>
create ( Scope scope, Operand <T> imageSize, Operand < TFloat32 > boundingBoxes, Operand < TFloat32 > minObjectCovered, Operand <? מרחיב את TNomber > seed, Options... options)
שיטת מפעל ליצירת מחלקה העוטפת פעולת StatelessSampleDistortedBoundingBox חדשה.
static StatelessSampleDistortedBoundingBox.Options
maxAttempts (Long maxAttempts)
פלט <T>
גודל ()
1-D, המכיל '[target_height, target_width, -1]'.
static StatelessSampleDistortedBoundingBox.Options
useImageIfNoBoundingBoxes (בוליאני useImageIfNoBoundingBoxes)

שיטות בירושה

קבועים

מחרוזת סופית סטטית ציבורית OP_NAME

השם של המבצע הזה, כפי שידוע על ידי מנוע הליבה של TensorFlow

ערך קבוע: "StatelessSampleDistortedBoundingBox"

שיטות ציבוריות

public static StatelessSampleDistortedBoundingBox.Options areaRange (List<Float> areaRange)

פרמטרים
טווח שטח האזור החתוך של התמונה חייב להכיל חלק מהתמונה שסופקה בטווח זה.

public static StatelessSampleDistortedBoundingBox.Options aspectRatioRange (List<Float> aspectRatioRange)

פרמטרים
aspectRatioRange השטח החתוך של התמונה חייב להיות בעל יחס גובה-רוחב = רוחב/גובה בטווח זה.

פלט ציבורי < TFloat32 > bboxes ()

תלת מימד עם צורה `[1, 1, 4]` המכילה את התיבה התוחמת המעוותת. ספק כקלט ל- tf.image.draw_bounding_boxes .

פלט ציבורי <T> מתחיל ()

1-D, המכיל '[offset_height, offset_width, 0]'. ספק כקלט ל- tf.slice .

public static StatelessSampleDistortedBoundingBox <T> create ( Scope scope, Operand <T> imageSize, Operand < TFloat32 > boundingBoxes, Operand < TFloat32 > minObjectCovered, Operand <? מרחיב Tnumber > seed, Options... options)

שיטת מפעל ליצירת מחלקה העוטפת פעולת StatelessSampleDistortedBoundingBox חדשה.

פרמטרים
תְחוּם ההיקף הנוכחי
גודל תמונה 1-D, המכיל `[גובה, רוחב, ערוצים]`.
boundingBoxes תלת מימד עם צורה `[אצווה, N, 4]` המתארת ​​את N התיבות התוחמות המשויכות לתמונה.
minObjectCovered האזור החתוך של התמונה חייב להכיל לפחות חלק זה מכל תיבה תוחמת שסופקה. הערך של פרמטר זה צריך להיות לא שלילי. במקרה של 0, השטח החתוך אינו צריך לחפוף אף אחת מהתיבות התוחמות שסופקו.
זֶרַע 1-D עם צורה `[2]`. הזרע למחולל המספרים האקראיים. חייב להיות dtype `int32` או `int64`. (בעת שימוש ב-XLA, רק 'int32' מותר).
אפשרויות נושא ערכי תכונות אופציונליות
החזרות
  • מופע חדש של StatelessSampleDistortedBoundingBox

public static StatelessSampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)

פרמטרים
maxAttempts מספר הניסיונות ליצור אזור חתוך של התמונה של האילוצים שצוינו. לאחר כשלים של `max_attempts`, החזר את התמונה כולה.

גודל פלט ציבורי <T> ()

1-D, המכיל '[target_height, target_width, -1]'. ספק כקלט ל- tf.slice .

public static StatelessSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (Boolian useImageIfNoBoundingBoxes)

פרמטרים
useImageIfNoBoundingBoxes שולט בהתנהגות אם אין תיבות תוחמות. אם זה נכון, נניח שתיבה תוחמת מרומזת המכסה את כל הקלט. אם שקר, העלה שגיאה.