Anchor Boxes
الصناديق الارتكازية صناديق محددة مسبقًا بأحجام ونسب أبعاد ثابتة، يحرّكها الكاشف ويغيّر أبعادها لتلائم الأجسام. كيفية تحديد أحجامها ومواءمتها واستخدامها.
المراسي هي مستطيلات محددة مسبقًا ذات أحجام ونسب أبعاد ثابتة، تُوزّع على كل موضع من خرائط السمات الخاصة بالكاشف، وتُستخدم كتخمينات أولية لمواقع الكائنات وأشكالها. يقيّم الكاشف المعتمد على المراسي كل مرساة لكل فئة، ويتنبأ بإزاحات صغيرة تحركها وتغيّر حجمها لتلائم الكائن، وهو أسهل تعلّمًا من التنبؤ بصندوق من لا شيء. يضع Faster R-CNN تسع مراسٍ في كل موضع: ثلاثة مساحات (128² و256² و512² بكسل) مضروبة في ثلاث نسب أبعاد (1:1 و1:2 و2:1)، ليصل العدد إلى نحو 20,000 مرساة لصورة أبعادها 1000 × 600.
كيفية تحديد المراسي#
مجموعة المراسي قائمة بالأحجام ونسب الأبعاد، تُكرر عند كل خلية في خريطة السمات، لذا يساوي عدد المراسي عدد الخلايا × الأشكال في كل خلية. تخصص الكواشف التي تستخدم شبكة هرم السمات (FPN) المراسي الصغيرة للمستويات الدقيقة عالية الدقة، والمراسي الكبيرة للمستويات الخشنة: يستخدم RetinaNet تسع مراسٍ لكل موضع في كل واحد من خمسة مستويات، أي نحو 100,000 مرساة لكل صورة. ويسميها SSD الصناديق الافتراضية، ويضع SSD300 عددًا منها يبلغ 8,732.
لا تلائم الأشكال المختارة يدويًا بعض مجموعات البيانات جيدًا؛ لذلك استخدم YOLOv2 التجميع باستخدام k-means على عرض صناديق التدريب وارتفاعها، مستخدمًا 1 − IoU مسافةً، واعتمد مراكز خمس مجموعات مراسيَ له. وجمّع YOLOv3 تسع مراسٍ ووزعها بالتساوي على خطوات خرجه الثلاث، من 10 × 13 بكسل في المستوى ذي الخطوة 8 إلى 373 × 326 في المستوى ذي الخطوة 32.
مطابقة المراسي بالكائنات#
أثناء التدريب، تُقارن كل مرساة بكل صندوق موسوم باستخدام التقاطع على الاتحاد (IoU). وتصبح المراسي التي تتداخل مع الكائن بدرجة كافية عينات موجبة، فتتعلم فئة ذلك الكائن وإزاحاته إلى الصندوق المحيط، بينما تصبح المراسي ذات التداخل الضئيل عينات سالبة تتعلم «الخلفية»، وتُهمَل المراسي الواقعة بين الحالتين. ويصنف شبكة اقتراح المناطق في Faster R-CNN قيم IoU التي تبلغ 0.7 أو أكثر على أنها موجبة، والقيم الأقل من 0.3 على أنها سالبة؛ كما يجعل أفضل مرساة مطابقة لكل كائن موجبة، لكيلا يبقى أي كائن بلا مرساة.
import torch
from torchvision.ops import box_iou
# Nine anchors centered on one feature-map cell at (200, 200): 3 sizes x 3 aspect ratios (height / width)
shapes = [(size, ratio) for size in (64, 128, 256) for ratio in (0.5, 1.0, 2.0)]
anchors = []
for size, ratio in shapes:
w, h = size / ratio**0.5, size * ratio**0.5
anchors.append([200 - w / 2, 200 - h / 2, 200 + w / 2, 200 + h / 2])
# A labeled pedestrian box (x1, y1, x2, y2): tall and narrow
person = torch.tensor([[160.0, 110.0, 240.0, 290.0]])
# Faster R-CNN RPN rule: IoU >= 0.7 is positive, below 0.3 is negative, anything between is ignored
iou = box_iou(torch.tensor(anchors), person).squeeze(1)
for (size, ratio), value in zip(shapes, iou.tolist()):
label = "positive" if value >= 0.7 else "negative" if value < 0.3 else "ignored"
print(f"size {size}, ratio {ratio}: IoU {value:.2f} -> {label}")تتداخل المرساة الطويلة الوحيدة، ذات 128 بكسل ونسبة أبعاد 2.0، مع المشاة بدرجة تكفي لاعتبارها موجبة، إذ تبلغ قيمة IoU 0.88. وتُهمَل مرساتان أخريان بطول 128 بكسل، بقيمتي IoU 0.31 و0.50، أما المراسي الست ذات الحجم غير الملائم فتُعد سالبة. ثم تتعلم المرساة الموجبة الإزاحات وفق الصياغة المعتادة: يتحرك المركز بمقدار كسور من عرض المرساة وارتفاعها، ويتغير عرضها وارتفاعها بضربهما في أُسِّيّات القيم المتنبأ بها.
اختيار أحجام المراسي لمجموعة بيانات#
تمنح المراسي المطابقة لأشكال الكائنات في مجموعة البيانات عددًا أكبر من الكائنات مرساة موجبة، ما يرفع الاستدعاء الذي يستطيع الكاشف تحقيقه. يبدأ Ultralytics YOLOv5 بتسع مراسي YOLOv3، ويفحصها قبل التدريب باستخدام AutoAnchor: إذ يقيس أفضل استدعاء ممكن لمراسيه على تسميات التدريب، وما لم تتجاوز النتيجة 0.98، يعيد ملاءمتها باستخدام k-means و1,000 جيل من التطور الجيني، ولا يحتفظ بالمراسي الجديدة إلا إذا تحسن الاستدعاء.
القيود والكواشف الخالية من المراسي#
للمراسي ثلاثة أعباء. تغطي الخلفية تقريبًا جميع المراسي من بين عشرات الآلاف في الصورة، ما يجعل العينات السلبية السهلة تطغى على دالة الخسارة، وقدمت RetinaNet دالة الخسارة البؤرية لتقليل أوزانها. تلائم عدة مراسٍ متجاورة الكائن نفسه، لذا يحتاج الخرج إلى كبت غير الأقصى (NMS) للإبقاء على صندوق واحد لكل كائن. كما أن الأحجام ونسب الأبعاد وعتبات IoU هي أيضًا معلمات فائقة تتغير مع كل مجموعة بيانات وحجم صورة.
تزيل الكواشف الخالية من المراسي تلك المعلمات الفائقة بالتنبؤ بالصناديق انطلاقًا من النقاط أو النقاط المفتاحية، ومعظم الكواشف الآنية التي صدرت منذ YOLOX في 2021 خالية من المراسي. وتظل المراسي مستخدمة في الكواشف المعتمدة على المراسي، مثل Faster R-CNN وMask R-CNN وRetinaNet. وعند مقارنة RetinaNet بالكاشف FCOS الخالي من المراسي، وجد ATSS أن RetinaNet لم يكن أدق باستخدام تسع مراسٍ لكل موضع منه باستخدام مرساة واحدة، بعدما استخدم كلاهما الطريقة نفسها لاختيار العينات الموجبة.










