حریصانه زیرمجموعه ای از جعبه های مرزی را به ترتیب امتیاز نزولی انتخاب می کند،
هرس کردن جعبه هایی که دارای تقاطع بالای اتحاد (IOU) هستند با جعبه های انتخاب شده قبلی همپوشانی دارند. کادرهای محدودکننده با امتیاز کمتر از «امتیاز_آستانه» حذف میشوند. جعبه های مرزی به صورت [y1، x1، y2، x2] عرضه می شوند، که در آن (y1، x1) و (y2، x2) مختصات هر جفت مورب گوشه های جعبه هستند و مختصات را می توان به صورت نرمال ارائه کرد (یعنی خوابیده در فاصله [0، 1]) یا مطلق. توجه داشته باشید که این الگوریتم نسبت به جایی که مبدأ در سیستم مختصات است آگنوستیک است و به طور کلی نسبت به تبدیلهای متعامد و ترجمههای سیستم مختصات تغییر نمیکند. بنابراین ترجمه یا بازتاب سیستم مختصات منجر به انتخاب کادرهای مشابه توسط الگوریتم می شود. خروجی این عملیات مجموعه ای از اعداد صحیح است که در مجموعه ورودی جعبه های مرزی نمایانگر جعبه های انتخاب شده اند. سپس مختصات جعبه مرزی مربوط به شاخص های انتخاب شده را می توان با استفاده از «عملیات tf.gather» به دست آورد. به عنوان مثال: selected_indices = tf.image.non_max_suppression_v2 ( کادرها، امتیازات، حداکثر_اندازه_output_size، iou_threshold، score_threshold) selected_boxes = tf.gather(boxes, selected_indices) این عملیات همچنین از یک Soft-NMS (با حالت Bossianfed) پشتیبانی می کند. ، https://arxiv.org/abs/1704.04503) که در آن جعبه ها به جای اینکه مستقیماً باعث هرس شدن جعبه های دیگر شوند، امتیاز سایر جعبه های همپوشانی را کاهش می دهند. برای فعال کردن این حالت Soft-NMS، پارامتر "soft_nms_sigma" را بزرگتر از 0 تنظیم کنید.
کلاس های تو در تو
کلاس | NonMaxSuppression.Options | ویژگی های اختیاری برای NonMaxSuppression |
ثابت ها
رشته | OP_NAME | نام این عملیات، همانطور که توسط موتور هسته TensorFlow شناخته می شود |
روش های عمومی
static <T TNumber > NonMaxSuppression <T> را گسترش می دهد | |
استاتیک NonMaxSuppression.Options | padToMaxOutputSize (بولی padToMaxOutputSize) |
خروجی < TINT32 > | شاخص های انتخاب شده () یک تانسور عدد صحیح یک بعدی از شکل «[M]» که نمایانگر شاخصهای انتخاب شده از تانسور جعبهها است، جایی که «M <= max_output_size». |
خروجی <T> | امتیازات انتخاب شده () یک تانسور شناور 1 بعدی به شکل «[M]» که نمرات مربوطه را برای هر کادر انتخابی نشان میدهد، جایی که «M <= max_output_size». |
خروجی < TINT32 > | خروجی های معتبر () یک تانسور عدد صحیح 0-D که تعداد عناصر معتبر را در «شاخص های_انتخابی» نشان می دهد و عناصر معتبر ابتدا ظاهر می شوند. |
روش های ارثی
ثابت ها
رشته نهایی ثابت عمومی OP_NAME
نام این عملیات، همانطور که توسط موتور هسته TensorFlow شناخته می شود
روش های عمومی
عمومی استاتیک NonMaxSuppression <T> ایجاد ( محدوده دامنه ، کادرهای عملوند <T>، امتیازهای عملوند <T>، عملوند < TINT32 > maxOutputSize، عملوند <T> iouThreshold، عملوند <T> scoreThreshold، عملوند <T> softNmsSigma، گزینه ها. . گزینه ها)
روش کارخانه برای ایجاد کلاسی که یک عملیات NonMaxSuppression جدید را بسته بندی می کند.
مولفه های
محدوده | محدوده فعلی |
---|---|
جعبه ها | یک تانسور شناور دو بعدی به شکل «[تعداد_جعبهها، 4]». |
امتیازات | یک تانسور شناور 1 بعدی به شکل «[تعداد_جعبه]» که نشان دهنده یک امتیاز منفرد مربوط به هر کادر (هر ردیف از کادرها) است. |
maxOutputSize | یک تانسور عدد صحیح اسکالر که نشان دهنده حداکثر تعداد کادرهایی است که باید با سرکوب غیر حداکثر انتخاب شوند. |
iouThreshold | یک تانسور شناور 0-D که آستانه ای را برای تصمیم گیری در مورد همپوشانی بیش از حد جعبه ها نسبت به IOU نشان می دهد. |
آستانه امتیاز | یک تانسور شناور 0-D که آستانه تصمیم گیری برای حذف جعبه ها بر اساس امتیاز را نشان می دهد. |
softNmsSigma | یک تانسور شناور 0-D که پارامتر سیگما را برای NMS نرم نشان می دهد. به Bodla و همکاران (رجوع کنید به https://arxiv.org/abs/1704.04503) مراجعه کنید. وقتی «soft_nms_sigma=0.0» (که پیشفرض است)، به NMS استاندارد (سخت) برمیگردیم. |
گزینه ها | مقادیر ویژگی های اختیاری را حمل می کند |
برمی گرداند
- یک نمونه جدید از NonMaxSuppression
عمومی استاتیک NonMaxSuppression. Options padToMaxOutputSize (بولی padToMaxOutputSize)
مولفه های
padToMaxOutputSize | اگر درست باشد، «شاخص_های_انتخابی» خروجی به طول «حداکثر_اندازه_خروجی» اضافه می شود. پیش فرض به نادرست. |
---|
خروجی عمومی < TINT32 > فهرست های انتخاب شده ()
یک تانسور عدد صحیح یک بعدی از شکل «[M]» که نمایانگر شاخصهای انتخاب شده از تانسور جعبهها است، جایی که «M <= max_output_size».
خروجی عمومی <T> امتیازات انتخاب شده ()
یک تانسور شناور 1 بعدی به شکل «[M]» که نمرات مربوطه را برای هر کادر انتخابی نشان میدهد، جایی که «M <= max_output_size». امتیازها فقط با نمرات ورودی متناظر هنگام استفاده از Soft NMS متفاوت است (یعنی زمانی که "soft_nms_sigma>0")