Non-Maximum Suppression (NMS)
تعرف على كيفية القضاء على صناديق الإحاطة المتكررة في كشف الكائنات باستخدام كبت غير الأعظم (NMS). اكتشف كيف يوفر Ultralytics YOLO26 ميزة NMS أصلية متكاملة.
قمع القيم غير القصوى (NMS) هو تقنية معالجة لاحقة تُستخدم في كشف الأجسام لتحسين التنبؤات الأولية التي يصدرها النموذج. عندما يحلل نموذج كشف الأجسام صورة ما، فإنه غالبًا ما يُنشئ عدة مربعات إحاطة متداخلة لجسم واحد، لكل منها درجة ثقة مرتبطة بها. تحدث هذه التنبؤات الزائدة لأن النموذج قد يكتشف نفس الميزة بمقاييس أو مواقع مختلفة قليلًا. تعمل تقنية NMS على تصفية هذه المخرجات من خلال الاحتفاظ فقط بمربع الإحاطة الأكثر دقة لكل جسم واستبعاد المربعات الأخرى، مما يضمن أن المخرجات النهائية نظيفة ودقيقة وخالية من التكرارات.
Link to this sectionكيف يعمل قمع القيم غير القصوى#
تعمل خوارزمية NMS على قائمة من مربعات الإحاطة المرشحة ودرجات الثقة المقابلة لها. الهدف هو اختيار أفضل مربع لجسم ما وقمع (إزالة) أي مربعات أخرى تتداخل معه بشكل كبير، حيث من المرجح أن تكون هذه المربعات عبارة عن اكتشافات متكررة لنفس الجسم. تتبع العملية عادةً الخطوات التالية:
-
التصفية: التخلص من جميع مربعات الإحاطة ذات درجات الثقة الأقل من حد معين (على سبيل المثال، 0.25) لإزالة التنبؤات الضعيفة فورًا.
-
الفرز: فرز المربعات المتبقية بترتيب تنازلي بناءً على درجات ثقتها.
-
الاختيار: اختيار المربع صاحب أعلى درجة ثقة ككشف صحيح.
-
المقارنة: مقارنة هذا المربع المختار مع جميع المربعات المتبقية الأخرى باستخدام تقاطع الاتحاد (IoU)، وهو مقياس يقيس التداخل بين مربعين.
-
القمع: إذا تجاوز مقياس IoU بين المربع المختار ومربع آخر حدًا محددًا مسبقًا (على سبيل المثال، 0.45)، يُعتبر المربع صاحب الدرجة الأقل متكررًا ويتم حذفه.
-
التكرار: تكرار العملية مع المربع التالي صاحب أعلى درجة ثقة والذي لم يتم قمعه أو اختياره بعد، حتى تتم معالجة جميع المربعات.
Link to this sectionتطبيقات العالم الحقيقي#
تعد NMS ضرورية في السيناريوهات التي تكون فيها الدقة ذات أهمية قصوى حيث يمكن أن تؤدي الاكتشافات المتكررة إلى إرباك الأنظمة الملحقة.
- القيادة الذاتية: في أنظمة السيارات ذاتية القيادة، تكتشف الكاميرات المشاة والمركبات الأخرى وإشارات المرور. قد يتنبأ النموذج بثلاثة مربعات مختلفة قليلاً لمشاة واحد. تضمن NMS أن نظام تخطيط السيارة يتلقى إحداثيات واحدة فقط لهذا المشاة، مما يمنع الكبح المفاجئ أو أخطاء تخطيط المسار الناتجة عن عوائق "وهمية".
- إدارة مخزون التجزئة: عند استخدام الرؤية الحاسوبية لعد المنتجات على الرف، غالبًا ما تكون العناصر متراصة بالقرب من بعضها البعض. بدون NMS، قد يتم احتساب علبة صودا واحدة مرتين بسبب التنبؤات المتداخلة، مما يؤدي إلى مستويات مخزون غير دقيقة. تقوم NMS بتنقيح هذه الاكتشافات لضمان مطابقة عدد المخزون للواقع.
Link to this sectionتطبيق NMS باستخدام PyTorch#
بينما تتعامل العديد من الأطر الحديثة مع NMS داخليًا، فإن فهم التنفيذ يساعد في ضبط المعلمات. يوضح المثال التالي كيفية تطبيق NMS باستخدام مكتبة PyTorch:
import torch
import torchvision.ops as ops
# Example bounding boxes: [x1, y1, x2, y2]
boxes = torch.tensor(
[
[100, 100, 200, 200], # Box A
[105, 105, 195, 195], # Box B (High overlap with A)
[300, 300, 400, 400], # Box C (Distinct object)
],
dtype=torch.float32,
)
# Confidence scores for each box
scores = torch.tensor([0.9, 0.8, 0.95], dtype=torch.float32)
# Apply NMS with an IoU threshold of 0.5
# Boxes with IoU > 0.5 relative to the highest scoring box are suppressed
keep_indices = ops.nms(boxes, scores, iou_threshold=0.5)
print(f"Indices to keep: {keep_indices.tolist()}")
# Output will likely be [2, 0] corresponding to Box C (0.95) and Box A (0.9),
# while Box B (0.8) is suppressed due to overlap with A.Link to this sectionNMS مقابل الكشف الشامل (End-to-End)#
تقليديًا، كانت NMS خطوة "تنظيف" إلزامية تقع خارج الشبكة العصبية الرئيسية، مما يضيف زمن انتقال للاستدلال. ومع ذلك، يتطور المجال نحو معماريات شاملة (End-to-End).
- NMS القياسية: عملية استدلالية تتطلب ضبطًا يدويًا لحد IoU. إذا كان الحد منخفضًا جدًا، فقد يتم فقدان الأجسام الصحيحة القريبة من بعضها البعض (انخفاض في الاستدعاء). وإذا كان مرتفعًا جدًا، تظل التكرارات موجودة (انخفاض في الدقة).
- النماذج الشاملة (End-to-End): صُممت النماذج من الجيل التالي مثل YOLO26 لتكون شاملة بطبيعتها. فهي تتعلم التنبؤ بمربع واحد بالضبط لكل جسم أثناء التدريب، مما يدمج عملية NMS داخليًا بشكل فعال. وهذا يلغي الحاجة إلى معالجة لاحقة خارجية، مما يؤدي إلى سرعات استدلال أسرع وخطوط أنابيب نشر أبسط على منصة Ultralytics.
Link to this sectionمفاهيم ذات صلة#
- Soft-NMS: اختلاف يتم فيه عدم إزالة المربعات المتداخلة بشكل صارم، ولكن يتم تقليل درجات ثقتها. يسمح هذا باكتشاف الأجسام المتداخلة إلى حد ما (مثل الأشخاص في الحشود) إذا ظلت درجاتها عالية بما يكفي بعد التضاؤل.
- مربعات الارتكاز (Anchor Boxes): أشكال مربعات محددة مسبقًا تستخدمها العديد من الكواشف لتقدير حجم الجسم. يتم تطبيق NMS على التنبؤات النهائية التي تم تنقيحها من هذه المرتكزات.
- تقاطع الاتحاد (IoU): الصيغة الرياضية التي تستخدمها NMS لتحديد مدى تداخل مربعين، وتعمل كحد اتخاذ قرار للقمع.






