Intersection over Union (IoU)
يقيس التقاطع على الاتحاد (IoU) مدى تداخل المربع المتنبأ به مع المربع الحقيقي، بقيمة تتراوح من 0 إلى 1. ويتناول هذا المفهوم الصيغة وشيفرة Python والعتبات والخسائر المعتمدة على IoU.
يقيس التقاطع على الاتحاد (IoU) مدى تداخل منطقتين: مساحة الجزء المشترك بينهما مقسومة على المساحة الإجمالية التي تغطيانها معًا. وتتراوح قيمته من 0 للمناطق غير المتلامسة إلى 1 للمنطقتين المتطابقتين، وهو المقدار نفسه المعروف في الإحصاء باسم مؤشر Jaccard. في كشف الأجسام، يقارن IoU بين مربع الإحاطة المتنبأ به ومربع الحقيقة الأرضية الموسوم، ويحدد ما إذا كان التنبؤ يُعد صحيحًا، وأي تنبؤات مكررة تُزال، وكيفية تدريب تنبؤات المربعات.
كيفية حساب IoU#
IoU = مساحة التقاطع / مساحة الاتحاد، حيث تساوي مساحة الاتحاد مساحة المربع A مضافًا إليها مساحة المربع B مطروحًا منها مساحة التقاطع، وبذلك لا تُحسب المنطقة المشتركة إلا مرة واحدة. وبالنسبة إلى مربعين بمحاذاة المحاور ومُمثّلين بإحداثيات الزوايا، يكون التقاطع مستطيلًا تحده الحواف الداخلية للمربعين، ويُضبط عرضه أو ارتفاعه إلى الصفر عندما لا يتداخل المربعان.
# Boxes as [x1, y1, x2, y2] in pixels
label = [100, 100, 200, 200]
pred = [110, 110, 210, 210]
# Intersection rectangle, clamped to zero when the boxes do not overlap
w = max(0, min(label[2], pred[2]) - max(label[0], pred[0]))
h = max(0, min(label[3], pred[3]) - max(label[1], pred[1]))
intersection = w * h
# Union counts the overlap only once
area_label = (label[2] - label[0]) * (label[3] - label[1])
area_pred = (pred[2] - pred[0]) * (pred[3] - pred[1])
union = area_label + area_pred - intersection
print(f"IoU = {intersection} / {union} = {intersection / union:.3f}")يطبع البرنامج النصي IoU = 8100 / 11900 = 0.681. ويؤدي إزاحة مربع حجمه 100 بكسل بمقدار 10 بكسل في كل اتجاه إلى تقليص مساحة التداخل إلى 90 × 90 بكسل وزيادة مساحة الاتحاد إلى 11,900، لذا تخفض إزاحة قدرها 10% النتيجة بنحو الثلث. وبما أن المساحتين تتغيران معًا، فإن IoU لا يتأثر بالمقياس: فعدم المحاذاة النسبي نفسه يعطي النتيجة ذاتها لطائر حجمه 20 بكسل وشاحنة حجمها 2,000 بكسل. لذلك يؤثر الخطأ الثابت بالبكسل في الأجسام الصغيرة أكثر، وتؤدي إزاحة جانبية بمقدار بكسل واحد إلى خفض IoU إلى 0.905 لمربع حجمه 20 بكسل وإلى 0.990 لمربع حجمه 200 بكسل.
عتبات IoU في التقييم#
تحوّل عتبة التقييم IoU إلى قرار بنعم أو لا. ويكون التنبؤ إيجابيًا صحيحًا عندما تطابق فئته فئة مربع حقيقة أرضية لم يُطابق من قبل، ويبلغ IoU بينهما العتبة أو يتجاوزها؛ وإلا عُدّ إيجابيًا كاذبًا. واستخدم معيار PASCAL VOC قيمة 0.5، وهي عتبة أقل صرامة مما قد يبدو: إذ يبلغ IoU بين مربعين متطابقين أزيح أحدهما جانبيًا بمقدار ثلث عرضه 0.5 تمامًا. ويحسب معيار COCO متوسط النتائج عبر عشر عتبات من 0.50 إلى 0.95، وهي الطريقة التي يكافئ بها متوسط الدقة المتوسط (mAP) التحديد المكاني الدقيق.
IoU في التدريب والمعالجة اللاحقة#
- دوال خسارة انحدار المربعات: تدرّب الكواشف إحداثيات المربعات باستخدام 1 − IoU أو أحد أشكاله، لأن دالة الخسارة المعتمدة على الإحداثيات الخام تعامل الخطأ البالغ 10 بكسل بالطريقة نفسها للمربعات الصغيرة والكبيرة. ولا يعطي IoU العادي أي تدرج عندما لا يتداخل المربعان، لذا يضيف IoU المعمم (GIoU) عقوبة تستند إلى أصغر مربع يحيط بهما معًا، بينما يضيف IoU المعتمد على المسافة وIoU الكامل (DIoU، CIoU) حدودًا لمسافة المركز ونسبة الأبعاد. ويدرّب YOLO26 رأس المربعات باستخدام دالة خسارة CIoU، كما يستخدم CIoU لتحديد التنبؤات التي تُسند إلى كل جسم موسوم أثناء التدريب.
- كبت غير القيم العظمى (NMS): أثناء الاستدلال، يُعامل المربع الذي يتجاوز IoU فيه مع مربع ذي درجة أعلى من الفئة نفسها عتبةً محددة على أنه نسخة مكررة، ثم يُزال.
- تتبّع الأجسام: تستخدم أدوات التتبّع مثل ByteTrack قيمة IoU بين المسارات الحالية والكشوف الجديدة بوصفها كلفة للمطابقة من إطار إلى آخر.
IoU للأشكال الأخرى#
تنطبق النسبة نفسها على أي زوج من المناطق. تحسب التجزئة IoU للأقنعة على مجموعات البكسلات: وتستخدمها تجزئة الكائنات لمطابقة الأقنعة المتنبأ بها بالتسميات، بينما تعرض معايير التجزئة الدلالية متوسطها عبر الفئات باسم mIoU. وتتطلب المربعات المدارة حساب تقاطع المضلعات أو تقريبًا غاوسيًا مثل ProbIoU، أما الكشف ثلاثي الأبعاد فيحسب IoU بين متوازيات المستطيلات، إما في الأبعاد الثلاثة كاملةً أو عبر تداخل مساقطها من منظور علوي.
IoU مقارنةً بالمقاييس ذات الصلة#
- معامل Dice: ضعف مساحة التقاطع مقسومًا على مجموع المساحتين. ويرتّب التنبؤات بالترتيب نفسه الذي يرتبها به IoU، لأن Dice = 2 × IoU / (1 + IoU)، ويشيع استخدامه في تجزئة الصور الطبية.
- الدقة: نسبة تنبؤات الفئات الصحيحة، ولا تقول شيئًا عن موضع المربع.
- mAP: ملخص على مستوى الكشف يستند إلى عتبات IoU، ويجمع بين التحديد المكاني والدقة والاستدعاء عبر الفئات.
تحوّل علاقة Dice العتبات أيضًا: فقيمة IoU البالغة 0.5 تعادل درجة Dice مقدارها 0.667، وقيمة IoU البالغة 0.9 تعادل درجة Dice مقدارها 0.947.










