Feature Pyramid Network (FPN)
تدمج شبكة هرم السمات (FPN) السمات الدلالية العميقة مع السمات الدقيقة عالية الدقة، كي تتمكن الكواشف من العثور على الكائنات الكبيرة والصغيرة.
شبكة هرم السمات (FPN) هي بنية عنق تحوّل خرائط السمات متعددة الدقة من العمود الفقري إلى هرم يحمل كل مستوى فيه معلومات دلالية قوية ويتوافق مع نطاق من أحجام الأجسام. قدّمتها Facebook AI Research في شبكات هرم السمات لكشف الأجسام (CVPR 2017)، وتضيف مسارًا من أعلى إلى أسفل ووصلات جانبية إلى شبكة عصبية التفافية (CNN) قياسية، لكي يمكن كشف الأجسام الصغيرة على مستويات عالية الدقة تحتفظ بمعرفة الطبقات العميقة بمظهر الأجسام. تقع شبكات FPN وخلفاؤها بين العمود الفقري ورأس الكشف في معظم بنى كشف الأجسام الحديثة ونماذج تجزئة الكائنات.
لماذا تحتاج كواشف الأجسام إلى سمات متعددة المقاييس#
تُخفّض شبكة CNN العمود الفقري الدقة كلما تعمقت، لذا تتميز خريطة السمات الأخيرة بدلالات قوية ودقة مكانية خشنة: فعند خطوة 32، يغطي جسم عرضه 20 بكسل أقل من خلية واحدة في الشبكة. أما خرائط السمات المبكرة فتحافظ على التفاصيل المكانية الدقيقة وتستجيب غالبًا للحواف والأنسجة. قبل FPN، كان أمام الكواشف ثلاثة خيارات، لكل منها كلفة. تشغيل الشبكة على هرم صور بمقاييس متعددة دقيق، لكنه أبطأ بعدة مرات. التنبؤ من الخريطة الأخيرة وحدها، كما فعلت Faster R-CNN الأصلية، سريع لكنه ضعيف في كشف الأجسام الصغيرة. أما التنبؤ من مراحل متعددة في العمود الفقري، كما تفعل SSD، فيبدأ من موضع متقدم في الشبكة لتجنب السمات منخفضة المستوى الضعيفة، ولذلك يفوّت الخرائط عالية الدقة التي تحتاج إليها الأجسام الصغيرة. تحقق FPN تغطية متعددة المقاييس كالتي يوفرها هرم الصور بتمريرة أمامية واحدة، وحققت Faster R-CNN مع FPN رقمًا قياسيًا جديدًا لأفضل أداء لنموذج واحد في كشف COCO، مع تشغيل بسرعة 5 إطارات في الثانية على GPU.
آلية عمل FPN#
يبني FPN هرمه عبر ثلاث خطوات:
- المسار من أسفل إلى أعلى: التمريرة الأمامية المعتادة للعمود الفقري. يأخذ FPN خريطة السمات الأخيرة من كل مرحلة، الموسومة من C2 إلى C5 بخطوات 4 و8 و16 و32 في ResNet.
- المسار من أعلى إلى أسفل: بدءًا من المستوى الأكثر خشونة، تُكبّر كل خريطة بعامل 2 باستخدام الاستيفاء بأقرب جار، ناقلةً الدلالات عالية المستوى نحو المستويات الأدق.
- الوصلات الجانبية: يحوّل التفاف 1×1 كل خريطة من العمود الفقري إلى عرض موحد من 256 قناة، وتُضاف النتيجة عنصرًا بعنصر إلى الخريطة المكبّرة من المستوى الأعلى، ثم ينعّم التفاف 3×3 المجموع لتقليل آثار التكبير. تحتوي المخرجات، من P2 إلى P5، جميعها على 256 قناة، ما يتيح لرأس تنبؤ واحد بأوزان مشتركة العمل على كل مستوى.
تتضمن Torchvision وحدة جاهزة FeaturePyramidNetwork تأخذ خرائط العمود الفقري في قاموس مرتب.
from collections import OrderedDict
import torch
from torchvision.ops import FeaturePyramidNetwork
# مخرجات العمود الفقري لصورة بحجم 640x640 عند خطوات 8 و16 و32 (أعداد القنوات في ResNet-50)
features = OrderedDict(
c3=torch.randn(1, 512, 80, 80),
c4=torch.randn(1, 1024, 40, 40),
c5=torch.randn(1, 2048, 20, 20),
)
# تمنح التفافات 1x1 الجانبية، إلى جانب المسار من أعلى إلى أسفل، كل مستوى العدد نفسه من القنوات، وهو 256
fpn = FeaturePyramidNetwork(in_channels_list=[512, 1024, 2048], out_channels=256)
pyramid = fpn(features)
for name, level in pyramid.items():
print(name, tuple(level.shape))يطبع c3 (1, 256, 80, 80) وc4 (1, 256, 40, 40) وc5 (1, 256, 20, 20): يحتفظ كل مستوى بحجمه المكاني، وتشترك المستويات الثلاثة الآن في عرض القنوات نفسه، ما يتيح لرأس واحد خدمة جميع المقاييس.
التطبيقات#
- الصور الجوية وصور الأقمار الصناعية: لا تشغل المركبات والأشخاص والمباني في تحليل صور الأقمار الصناعية ولقطات الطائرات المسيّرة سوى بضعة بكسلات في كثير من الأحيان، لذا تعتمد الكواشف على مستويي الخطوة 4 والخطوة 8 في الهرم.
- تجزئة الكائنات: يعيّن Mask R-CNN، المتاح في Detectron2، كل منطقة إلى مستوى في الهرم حسب حجمها قبل التنبؤ بإطارها وقناعها.
- التجزئة الشاملة: يضيف Panoptic FPN فرعًا للتجزئة الدلالية إلى الهرم نفسه، فيصنّف عناصر مثل الطريق والسماء إلى جانب الأجسام القابلة للعد.
- المركبات ذاتية القيادة: يحتوي إطار واحد من الكاميرا على شاحنات قريبة تملأ نصف الصورة، وعلى مشاة وإشارات مرور بعيدة لا يزيد ارتفاعها على بضعة بكسلات.
مقارنة بين FPN وPANet وBiFPN وبنى العنق الأخرى#
كان المسار من أعلى إلى أسفل في FPN نقطة الانطلاق لعائلة من بُنى العنق التي تغيّر تدفق المعلومات بين المستويات:
- PANet: تضيف مسارًا من أسفل إلى أعلى بعد مسار FPN من أعلى إلى أسفل، فتقصّر الطريق من السمات الدقيقة محددة الموضع إلى المستويات العليا. احتلت PANet المركز الأول في تحدي تجزئة الكائنات COCO لعام 2017.
- BiFPN: تكرر بنية العنق في EfficientDet دمجًا من أعلى إلى أسفل ومن أسفل إلى أعلى عدة مرات، وتحذف العقد التي لها مدخل واحد فقط، وتتعلم وزنًا لكل مدخل تدمجه.
- NAS-FPN: تخطيط هرمي عُثر عليه باستخدام البحث عن البنية العصبية ورُصّ عدة مرات.
- U-Net: تدمج أيضًا السمات الخشنة والدقيقة عبر وصلات التخطي، ثم تتنبأ مرة واحدة بالدقة الكاملة، ما يجعلها أنسب للتجزئة على مستوى البكسل من الكشف متعدد المقاييس.
تستخدم YOLO26 عنقًا يجمع بين FPN وPAN يدمج المستويات بالتسلسل: تنقل خطوتا تكبير السياق من الخطوة 32 إلى مستوى الخطوة 8، وتنقل التفافات ذات خطوة التفاصيل إلى الأعلى، ويتنبأ الرأس من P3 وP4 وP5 عند الخطوات 8 و16 و32. وتوسّع صيغة yolo26-p2.yaml الهرم بإضافة مستوى P2 عند الخطوة 4 للأجسام الصغيرة جدًا، ما يرفع العمليات الحسابية غير المدمجة في YOLO26n من 6.1 إلى 9.5 GFLOPs.










