الرؤية الحاسوبية2015متوسط13 دقيقة قراءة
Faster R-CNN: نحو رصد الأجسام آنيًّا بشبكات المقترحات الإقليمية
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Ren, S. · He, K. · Girshick, R. · Sun, J. — NeurIPS
المشكلة
بحلول 2015، كانت شبكة الرصد في Fast R-CNN قد أصبحت سريعة فعلاً، لكن المشكلة انتقلت إلى مكان آخر: خطوة اقتراح المناطق المرشحة، التي كانت تعتمد عادةً على خوارزمية . هذه الخوارزمية تعمل على المعالج المركزي وتستغرق قرابة ثانيتين لكل صورة، في حين أن الرصد نفسه على لا يتجاوز 0.2 ثانية. أي أن توليد المقترحات أصبح هو عنق الزجاجة الحقيقي في المنظومة بأكملها.
الإسهام
(RPN): شبكة التفافية بالكامل تمر فوق المشتركة، وفي كل موضع تحدّد إن كان هناك جسم () وتُنقّح إحداثيات k من مربعات الإحاطة المرجعية بمقاييس ونسب أبعاد متنوعة. تتشارك هذه الشبكة السمات الالتفافية مع كاشف Fast R-CNN، فيصبح توليد المقترحات شبه مجاني (~10 ميلي ثانية لكل صورة). يُوحّد تدريب تناوبي من أربع خطوات الشبكتين في بنية واحدة، تحقق 73.2% mAP على PASCAL VOC 2007 بسرعة 5 إطارات في الثانية مع VGG-16، و78.8% mAP على VOC 2012.
الأثر
أرست Faster R-CNN الحديث للرصد ثنائي المرحلة: اقترح أولاً ثم صنِّف. وأصبحت آلية مربعات الإحاطة المرجعية هي المعيار في كل كاشف تقريباً، سواء كان أحادي المرحلة مثل YOLO وSSD وRetinaNet أو ثنائي المرحلة مثل Mask R-CNN وCascade R-CNN. وسّعت فكرة الشبكة الأساسية المشتركة، ثم جاء DETR لاحقاً واستبدل المراسي باستعلامات مُتعلَّمة. وتبقى Faster R-CNN من أكثر الأوراق البحثية اقتباساً في تاريخ الرؤية الحاسوبية.
تخيّل أنك ضابط أمن في مطار تراقب الأمتعة على شاشة الأشعة. قبل Faster R-CNN، كان لديك زميل يحدّد كل شكل مشبوه بيده ببطء شديد (البحث الانتقائي)، ثم يسلّمك المنطقة المحدّدة لتقرر ما بداخلها. أنت سريع في ، لكن زميلك يؤخّر العملية كلها.
ما تفعله Faster R-CNN هو أنها تمنحكما نظارات أشعة مشتركة (خريطة سمات واحدة). الآن زميلك ينظر إلى نفس الصورة التي تراها أنت، فيشير فوراً إلى الأماكن المشبوهة بإطارات جاهزة بأحجام مختلفة (). ثم تُكبّر أنت كل إطار وتقرر: «هذا حاسوب محمول»، «هذه زجاجة ماء»، «لا شيء هنا».
ولأنكما تنظران إلى المشهد نفسه، فإن إشارة زميلك لا تكلّف شيئاً يُذكر — ويصبح الرصد منظومة واحدة متكاملة.
عنق الزجاجة: توليد المقترحات أبطأ من الرصد نفسه
عند الانتقال من R-CNN إلى Fast R-CNN، حُلّت مشكلة الحوسبة المكررة: بدلاً من تشغيل على كل منطقة مقترحة بشكل مستقل، أصبحت Fast R-CNN تُشغّل الشبكة مرة واحدة على الصورة بأكملها ثم تسحب السمات الخاصة بكل منطقة من خريطة السمات المشتركة. هكذا أصبح الرصد سريعاً — لكن المقترحات ظلت تأتي من البحث الانتقائي، وهي خوارزمية يدوية الصنع تعمل على المعالج المركزي وتفحص قرابة 2000 منطقة مرشحة لكل صورة خلال ثانيتين تقريباً.
بمعنى آخر، شبكة الرصد على وحدة معالجة الرسوميات كانت تنتظر عاطلة ريثما ينتهي المعالج المركزي من توليد المقترحات. كأنك بنيت طريقاً سريعاً فائق الأداء لكنك مضطر للتوقف عند بوابة عبور يدوية قبل الدخول إليه.
الفكرة: دع الشبكة تقترح مناطقها بنفسها
الملاحظة المحورية هنا بسيطة وأنيقة: خريطة السمات الالتفافية التي تحسبها Fast R-CNN أثناء الرصد تحمل بالفعل معلومات مكانية غنية عن أماكن وجود الأجسام. فلماذا لا نستثمر خريطة السمات ذاتها في اقتراح المناطق أيضاً؟
شبكة المقترحات الإقليمية (RPN) هي شبكة صغيرة تنزلق فوق خريطة السمات المشتركة هذه. في كل موضع مكاني تؤدي مهمتين في آنٍ واحد:
- تُقدّر درجة الجسمية — هل يوجد أي جسم هنا، بغض النظر عن نوعه؟
- تُنقّح إحداثيات k من مربعات الإحاطة المرجعية — وهي مستطيلات مرجعية مُعرَّفة سلفاً بأحجام وأشكال مختلفة، تتمركز حول ذلك الموضع.
ولأن الشبكة تعمل على سمات حسبتها مسبقاً، فإن توليد المقترحات لا يُضيف تكلفة حسابية تُذكر — قرابة 10 ميلي ثانية فقط لكل صورة.
مربعات الإحاطة المرجعية: إطارات جاهزة للرصد متعدد المقاييس
كيف تتعامل شبكة المقترحات مع أجسام بأحجام مختلفة تماماً — سيارة مقابل شخص مقابل إشارة مرور — دون الحاجة إلى أهرامات صور أو أهرامات مرشحات؟
الجواب هو مربعات الإحاطة المرجعية. عند كل موضع من مواضع النافذة المنزلقة على خريطة السمات، تضع الشبكة k مستطيلاً مرجعياً بمقاييس و متنوعة. في الورقة الأصلية، اختار المؤلفون 3 مقاييس (128²، 256²، 512²) × 3 نسب أبعاد (1:1، 1:2، 2:1) = 9 مراسٍ لكل موضع.
تخيّل أنك تضع 9 إطارات شفافة بأحجام وأشكال مختلفة عند كل نقطة على خريطة السمات — كمصوّر يجرّب عدسات تأطير متعددة. الشبكة تتعلم بعد ذلك أن تقول «نعم، يوجد جسم في هذا الإطار» أو «لا، تجاوزه»، وللإطارات الإيجابية تتعلم كيف تُزحزح حدود الإطار لتلتصق بالجسم الحقيقي بدقة أعلى.
هذا الأسلوب أكفأ بكثير من مسح الصورة عند دقّات متعددة. فالمراسي تعمل بمثابة معرفة مسبقة مدمجة تغطي مقاييس مختلفة، ولا يُطلب من الشبكة سوى تعلّم تنقيحات صغيرة انطلاقاً من نقاط البداية هذه، بدلاً من التنبؤ بالإحداثيات من الصفر.
من الداخل: شبكة صغيرة تجلس فوق الشبكة الأساسية
بنية شبكة المقترحات الإقليمية مدمجة بشكل لافت. فوق خريطة السمات الالتفافية المشتركة (مثلاً من آخر طبقة التفافية في VGG-16 أو ResNet)، يحدث أمران:
الخطوة الأولى: النافذة المنزلقة. بحجم 3×3 تنزلق على خريطة السمات وتُنتج بأبعاد 256 (أو 512) عند كل موضع مكاني. هذه هي مرحلة «فحص كل موقع بعدسة موحّدة».
الخطوة الثانية: الرأسان التوأمان. طبقتا 1×1 تتفرعان من الطبقة الوسيطة:
- رأس التصنيف يُخرج 2k درجة (جسم أم خلفية لكل مرساة من k مرساة).
- رأس يُخرج 4k قيمة (تنقيحات dx وdy وdw وdh لكل مرساة).
عند k = 9 مراسٍ، يُنتج كل موضع 18 درجة تصنيف و36 تنقيحاً لـ. وعلى خريطة سمات بأبعاد W×H، يكون العدد الإجمالي للمراسي W × H × 9 — أي قرابة 20,000 مرساة لصورة مدخلة بقياس 1000×600.
تدريب شبكة المقترحات: المراسي الإيجابية والسلبية وعتبة IoU
مع وجود قرابة 20,000 مرساة لكل صورة، الغالبية العظمى منها ستكون خلفية فارغة. لتدريب شبكة المقترحات، تُوسَم كل مرساة بأنها إيجابية (تحتوي جسماً) أو سلبية (خلفية):
- تكون المرساة إيجابية إذا حققت أعلى مع أي ، أو إذا تجاوز تقاطعها مع أي مربع حقيقة أرضية العتبة 0.7.
- تكون المرساة سلبية إذا كان تقاطعها مع جميع مربعات الحقيقة الأرضية أقل من 0.3.
- المراسي التي يقع تقاطعها بين 0.3 و0.7 تُهمَل أثناء التدريب — لا تُعدّ إيجابية ولا سلبية.
من هذه المراسي المُوسَمة، تُسحب من 256 مرساة لكل صورة (بحدّ أقصى 128 إيجابية، والبقية سلبية). هذا الاختيار المتوازن يمنع الكمّ الهائل من المراسي السلبية من أن يطغى على إشارة التعلم.
دالة الفقد متعددة المهام: تصنيف + انحدار
تُدرَّب شبكة المقترحات بـ متعددة المهام تجمع بين هدفين. الفكرة الحدسية واضحة: نريد من الشبكة أن تتعلم أين توجد الأجسام (عبر وسم المراسي كجسم أو خلفية) وكيف تُعدّل حدود المرساة لتحيط بالجسم بإحكام. الأول مسألة تصنيف والثاني مسألة انحدار، ويُدمجان في دالة فقد واحدة.
يلعب الحدّ في فقد الانحدار دور البوابة: لا يُحسب فقد الانحدار إلا للمراسي الإيجابية فقط. إذ لا فائدة من تنقيح مربع لا يحتوي جسماً أصلاً. أما التسويتان ( لحجم الدفعة المصغرة و لعدد مواضع المراسي) فتضمنان أن المهمتين تُسهمان بالتساوي في عملية التعلم.
أنبوب Faster R-CNN الكامل
إليك مسار الرصد الكامل، من الصورة الخام إلى مربعات الإحاطة النهائية:
المرحلة 1 — الشبكة الأساسية المشتركة. تمر الصورة عبر شبكة التفافية عميقة (مثل VGG-16 أو ResNet). الناتج هو خريطة سمات — تمثيل مضغوط وغني دلالياً للصورة.
المرحلة 2 — مقترحات RPN. تنزلق شبكة المقترحات فوق خريطة السمات وتُولّد قرابة 20,000 مرساة. بعد ترشيحها بـدرجة الجسمية وتطبيق (الإبقاء فقط على أعلى المقترحات درجةً وغير المتداخلة)، يبقى نحو 300 مقترح.
المرحلة 3 — . يُسقَط كل مقترح على خريطة السمات المشتركة ويُجمَّع في متجه سمات ثابت الأبعاد (مثلاً 7×7). هذا يتيح للمصنّف اللاحق التعامل مع مقترحات بأحجام مختلفة دون مشكلة.
المرحلة 4 — رأس Fast R-CNN. تمرّ السمات المُجمَّعة عبر تُخرج شيئين لكل مقترح: توزيع احتمالي على الفئات ( على C+1 فئة تشمل الخلفية) و4 إحداثيات مُنقَّحة لمربع الإحاطة لكل فئة.
المرحلة 5 — كبت غير أعظمي نهائي. الكبت غير الأعظمي يزيل التكرارات ويُنتج المجموعة النهائية من مربعات الإحاطة مع تصنيفات الفئات ودرجات الثقة.
التدريب التناوبي بأربع خطوات
تدريب شبكة موحّدة يتقاسم فيها الاقتراح والرصد السمات نفسها ليس أمراً بسيطاً. اقترحت الورقة استراتيجية من أربع خطوات:
- الخطوة 1: تدريب شبكة المقترحات وحدها، مُهيّأة من شبكة أساسية مدرّبة مسبقاً على ImageNet.
- الخطوة 2: تدريب كاشف Fast R-CNN مستقل باستخدام المقترحات الناتجة من الخطوة الأولى. هذا الكاشف مُهيّأ أيضاً من ImageNet، لكنه لا يتشارك السمات مع شبكة المقترحات بعد.
- الخطوة 3: إعادة تهيئة شبكة المقترحات بالطبقات الالتفافية المشتركة من الكاشف (الخطوة 2)، مع تجميد هذه الطبقات المشتركة و لطبقات شبكة المقترحات فقط. عند هذه النقطة تتشارك الشبكتان الشبكة الأساسية ذاتها.
- الخطوة 4: مع إبقاء الطبقات المشتركة مجمّدة، يُجرى ضبط دقيق لطبقات Fast R-CNN وحدها.
بعد هذه الخطوات الأربع، تتشارك الشبكتان السمات الالتفافية نفسها وتندمجان في شبكة موحّدة واحدة. وعملياً، أظهرت أبحاث لاحقة أن التدريب المشترك التقريبي ( عبر الشبكتين في آنٍ واحد) يعمل بكفاءة أيضاً.
مراسٍ ثابتة الإزاحة
من الخصائص الجوهرية في آلية المراسي . المقصود أن مجموعة المراسي نفسها ودالة التنبؤ نفسها تُطبَّقان عند كل موضع على خريطة السمات. فإذا تحرّك جسمٌ ما في الصورة، فإن المرساة ذاتها في الموضع الجديد ستكتشفه.
الفكرة مشابهة تماماً لعمل الالتفافي الذي يكتشف الحافة ذاتها في أي مكان من الصورة — وشبكة المقترحات توسّع هذا المبدأ ليشمل اقتراح الأجسام. والنتيجة العملية أن حجم النموذج لا يكبر بزيادة حجم الصورة، والشبكة تُعمّم على أجسام في أي موقع.
في المقابل، طرق أقدم مثل MultiBox كانت تستخدم تنبؤات مخصصة لكل موضع — أي أنها تحتاج منفصلة لكل موقع مكاني، ولا تستطيع التعميم عبر المواضع، وتتطلب عدداً أكبر بكثير من المعاملات.
شبكة المقترحات في الكود
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def generate_anchors(feat_h, feat_w, stride=16):
"""توليد 9 مراسٍ (3 مقاييس × 3 نسب) عند كل خلية في خريطة السمات."""
scales = [128, 256, 512]
ratios = [0.5, 1.0, 2.0] # نسب الارتفاع/العرض
anchors = []
for y in range(feat_h):
for x in range(feat_w):
cx, cy = x * stride + stride // 2, y * stride + stride // 2
for s in scales:
for r in ratios:
w = s * np.sqrt(r)
h = s / np.sqrt(r)
anchors.append([cx - w/2, cy - h/2, cx + w/2, cy + h/2])
return np.array(anchors) # (feat_h * feat_w * 9, 4)
def rpn_forward(feature_map, W_conv, W_cls, W_reg, k=9):
"""تمريرة أمامية مبسّطة لشبكة المقترحات."""
H, W, C = feature_map.shape
# الخطوة 1: نافذة منزلقة 3×3 ← سمات وسيطة
intermediate = conv3x3(feature_map, W_conv) # (H, W, 256)
# الخطوة 2أ: رأس التصنيف ← درجات الجسمية
cls_scores = conv1x1(intermediate, W_cls) # (H, W, 2*k)
# الخطوة 2ب: رأس الانحدار ← تنقيحات المربعات
reg_deltas = conv1x1(intermediate, W_reg) # (H, W, 4*k)
return cls_scores, reg_deltas
# بعد شبكة المقترحات: ترشيح بالدرجة، تطبيق التنقيحات على المراسي، ثم كبت غير أعظمي
# ← ~300 مقترح تُمرَّر إلى رأس الرصد في Fast R-CNN.النتائج: السرعة والدقة
على PASCAL VOC 2007، حققت Faster R-CNN مع VGG-16 دقة 73.2% mAP بسرعة 5 إطارات في الثانية — وهو تسريع ملموس مقارنة بخط الأساس المعتمد على البحث الانتقائي، مع الحفاظ على الدقة أو تجاوزها. وعند استخدام شبكة أساسية أعمق مثل ResNet-101، بلغت الدقة 78.8% mAP على VOC 2012.
شبكة المقترحات نفسها تُولّد مقترحات بـ أعلى وبعدد أقل مقارنة بالبحث الانتقائي: 300 مقترح فقط من RPN تكفي لتحقيق نفس الاستدعاء الذي يحققه 2,000 منطقة من البحث الانتقائي. السبب أن مقترحات الشبكة مُتعلَّمة ومُوجَّهة للمهمة تحديداً، بينما البحث الانتقائي خوارزمية عامة مصمّمة يدوياً لا تعرف شيئاً عن طبيعة الأجسام المطلوبة.
وعلى مقياس MS COCO، حققت Faster R-CNN نتائج هي الأفضل في حينها، مما أثبت أن هذا الإطار يتوسّع بنجاح لمجموعات بيانات أكبر وأصعب تضم فئات أجسام أكثر.
الكبت غير الأعظمي: التخلص من الرصد المكرر
كلتا مرحلتَي شبكة المقترحات والرصد النهائي تُنتجان تنبؤات متداخلة — فعدة مراسٍ متجاورة قد تنشط لنفس الجسم. يتولى الكبت غير الأعظمي (NMS) تنظيف هذا التكرار:
- رتّب جميع المقترحات تنازلياً بحسب درجة الجسمية (أو ثقة الفئة).
- خذ المقترح الأعلى درجةً.
- احذف أي مقترح متبقٍّ يتجاوز تقاطعه فوق الاتحاد مع المقترح المختار عتبةً معيّنة (عادةً 0.7 لشبكة المقترحات، 0.3 للرصد النهائي).
- كرّر العملية حتى لا يتبقى شيء.
فكّر في الكبت غير الأعظمي على أنه مرشّح «الفائز يأخذ كل شيء»: حين تتراكب عدة إطارات على الجسم نفسه، لا يصمد إلا الأعلى ثقةً بينها. هذه الخطوة ضرورية لأن بدونها قد تُرصد السيارة الواحدة عشرات المرات.
لماذا كانت هذه الورقة مهمة
2014
R-CNN — رصد الأجسام بشبكات التفافية قائمة على المناطق
شغّل Girshick وفريقه شبكة التفافية على كل واحد من نحو 2000 مقترح بحث انتقائي بشكل مستقل. النتائج دقيقة لكنها بطيئة جداً — 47 ثانية لكل صورة على وحدة معالجة الرسوميات.
2015
Fast R-CNN — سمات مشتركة ورصد بتمريرة واحدة
شغّل Girshick الشبكة الالتفافية مرة واحدة على الصورة كاملة وجمّع السمات لكل منطقة من خريطة السمات المشتركة. تسارع الرصد 25 ضعفاً، لكن البحث الانتقائي بقي عنق الزجاجة.
2015
Faster R-CNN — مقترحات مُتعلَّمة عبر شبكة المقترحات
استبدل Ren وفريقه البحث الانتقائي بشبكة مقترحات إقليمية تتشارك السمات مع الكاشف. أصبح توليد المقترحات شبه مجاني حوسبياً. 73.2% mAP على VOC 2007 بسرعة 5 إطارات في الثانية.
2017
شبكة الهرم الاستخلاصي للسمات (FPN)
بنى Lin وفريقه هرماً من خرائط السمات متعددة المقاييس فوق الشبكة الأساسية لـFaster R-CNN، مما حسّن رصد الأجسام الصغيرة بشكل ملحوظ.
2017
Mask R-CNN — التوسّع نحو تجزئة المثيلات
أضاف He وفريقه فرعاً للتنبؤ بالأقنعة إلى Faster R-CNN، مما أتاح تجزئة على مستوى البكسل إلى جانب الرصد. واستُخدمت محاذاة منطقة الاهتمام (RoIAlign) بدلاً من تجميع منطقة الاهتمام التقليدي.
2020
DETR — التخلي عن المراسي لصالح استعلامات مُتعلَّمة
طبّق Carion وفريقه المحوِّلات على مهمة الرصد، مستخدمين استعلامات أجسام مُتعلَّمة بدلاً من المراسي، ومطابقة هنغارية بدلاً من الكبت غير الأعظمي. نموذج مختلف جذرياً جاء كردّ فعل مباشر على التقليد القائم على المراسي الذي أسّسته Faster R-CNN.
من 47 ثانية لكل صورة في R-CNN إلى 0.2 ثانية في Faster R-CNN — تسريع بمقدار 200 ضعف في غضون 18 شهراً فقط. المفتاح كان نقل عملية توليد المقترحات إلى داخل الشبكة ومشاركة الحوسبة. هذا المبدأ — وحِّد، شارك، وتعلّم — هو الخيط الذي يربط كل تقدّم في هذا الخط الزمني.
المرجعRen, He, Girshick, Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. NeurIPS, 2015.
مصطلحات هذه الورقة
- شبكة المقترحات الإقليميةRegion Proposal Network
- مربعات الإحاطة المرجعية (المرساة)Anchor Box
- درجة الجسميةObjectness Score
- كاشف ثنائي المرحلةTwo-Stage Detector
- التدريب التناوبيAlternating Training
- تجميع منطقة الاهتمامRoI Pooling
- كبت غير أعظميNon-Maximum Suppression
- ثبات الإزاحةTranslation Invariance