בוחר בתאוותנות קבוצת משנה של תיבות תוחמות בסדר יורד של הניקוד,
גיזום תיבות בעלות חפיפה גבוהה של צומת-על-איחוד (IOU) עם תיבות שנבחרו בעבר. תיבות תוחמות עם ציון נמוך מ'סף_ציון' מוסרות. תיבות תוחמות מסופקות בתור [y1, x1, y2, x2], כאשר (y1, x1) ו-(y2, x2) הן הקואורדינטות של כל זוג אלכסוני של פינות תיבה וניתן לספק את הקואורדינטות כמנורמלות (כלומר, שוכבות בתוך המרווח [0, 1]) או מוחלט. שימו לב שאלגוריתם זה הוא אגנוסטי למקום שבו המקור נמצא במערכת הקואורדינטות, ובאופן כללי יותר אינו משתנה לתמורות אורתוגונליות ותרגומים של מערכת הקואורדינטות; לפיכך, תרגום או השתקפויות של מערכת הקואורדינטות מביאים לכך שאותן תיבות נבחרות על ידי האלגוריתם. הפלט של פעולה זו הוא קבוצה של מספרים שלמים המופיעים באינדקס לאוסף הקלט של תיבות תוחמות המייצגות את התיבות שנבחרו. לאחר מכן ניתן לקבל את הקואורדינטות של התיבה התוחמת המתאימות למדדים שנבחרו באמצעות `פעולת tf.gather`. לדוגמה: selected_indices = tf.image.non_max_suppression_v2( boxes, scores, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather(boxes, selected_indexes) אופציה זו תומכת גם במצב Soft-NMS (עם שקלול גאוסי וכו') (cf , https://arxiv.org/abs/1704.04503) שבהם תיבות מפחיתות את הניקוד של תיבות חופפות אחרות במקום לגרום ישירות לחיתוך שלהן. כדי להפעיל מצב Soft-NMS זה, הגדר את הפרמטר `soft_nms_sigma` להיות גדול מ-0.
כיתות מקוננות
מעמד | NonMaxSuppression.Options | תכונות אופציונליות עבור NonMaxSuppression |
קבועים
חוּט | OP_NAME | השם של המבצע הזה, כפי שידוע על ידי מנוע הליבה של TensorFlow |
שיטות ציבוריות
סטטי <T מרחיב את TNummer > NonMaxSuppression <T> | |
סטטי NonMaxSuppression.Options | padToMaxOutputSize (בוליאני padToMaxOutputSize) |
פלט < TInt32 > | מדדים נבחרים () טנסור שלם 1-ממדי בצורת '[M]' המייצג את המדדים שנבחרו מטנסור התיבות, כאשר 'M <= max_output_size'. |
פלט <T> | תוצאות נבחרות () טנזור צף 1-D בצורת '[M]' המייצג את הציונים המתאימים לכל תיבה שנבחרה, כאשר 'M <= max_output_size'. |
פלט < TInt32 > | validoutputs () טנזור שלם 0-D המייצג את מספר האלמנטים החוקיים ב-'selected_indexes', כאשר האלמנטים החוקיים מופיעים ראשונים. |
שיטות בירושה
קבועים
מחרוזת סופית סטטית ציבורית OP_NAME
השם של המבצע הזה, כפי שידוע על ידי מנוע הליבה של TensorFlow
שיטות ציבוריות
public static NonMaxSuppression <T> create ( Scope scope, Operand <T> boxes, Operand <T> scores, Operand < TInt32 > maxOutputSize, Operand <T> iouThreshold, Operand <T> scoreThreshold, Operand <T> softNmsSigma, Options.. . אפשרויות)
שיטת מפעל ליצירת מחלקה העוטפת פעולת NonMaxSuppression חדשה.
פרמטרים
תְחוּם | ההיקף הנוכחי |
---|---|
קופסאות | טנזור צף דו-ממדי בצורת '[num_boxes, 4]'. |
ציונים | טנזור צף 1-D בצורת `[num_boxes]` המייצג ניקוד בודד המתאים לכל תיבה (כל שורה של תיבות). |
maxOutputSize | טנזור שלם סקלרי המייצג את המספר המרבי של תיבות שייבחרו על ידי דיכוי לא מקסימלי. |
iouThreshold | טנזור צף 0-D המייצג את הסף להחלטה האם תיבות חופפות יותר מדי ביחס ל-IOU. |
ציון סף | טנזור צף 0-D המייצג את הסף להחלטה מתי להסיר תיבות על סמך ניקוד. |
softNmsSigma | טנזור צף 0-D המייצג את פרמטר הסיגמא עבור Soft NMS; ראה Bodla et al (cf https://arxiv.org/abs/1704.04503). כאשר `soft_nms_sigma=0.0` (שהוא ברירת המחדל), אנו חוזרים ל-NMS סטנדרטי (קשה). |
אפשרויות | נושא ערכי תכונות אופציונליות |
החזרות
- מופע חדש של NonMaxSuppression
ציבורי סטטי NonMaxSuppression.Options padToMaxOutputSize (בוליאני padToMaxOutputSize)
פרמטרים
padToMaxOutputSize | אם זה נכון, הפלט `selected_indexes` מרופד באורך `max_output_size`. ברירת המחדל ל-false. |
---|
פלט ציבורי < TInt32 > נבחרים מדדים ()
טנסור שלם 1-ממדי בצורת '[M]' המייצג את המדדים שנבחרו מטנסור התיבות, כאשר 'M <= max_output_size'.
פלט ציבורי <T> נבחרציונים ()
טנזור צף 1-D בצורת '[M]' המייצג את הציונים המתאימים לכל תיבה שנבחרה, כאשר 'M <= max_output_size'. הציונים שונים רק מציוני הקלט המקבילים בעת שימוש ב-Soft NMS (כלומר כאשר `soft_nms_sigma>0`)