الرؤية الحاسوبية2020متوسط13 دقيقة قراءة
كشف الكائنات من البداية إلى النهاية باستخدام المحوِّلات
End-to-End Object Detection with Transformers
Carion, N. · Massa, F. · Synnaeve, G. · Usunier, N. · Kirillov, A. · Zagoruyko, S. — ECCV
المشكلة
بحلول عام 2020، كانت كاشفات الكائنات المهيمنة — مثل Faster R-CNN وRetinaNet وYOLO — تعتمد جميعها على مكوّنات مصمَّمة يدوياً: مربعات الإرساء التي تُحدّد مواقع مرشحة، وكبت غير الأقصى لحذف التنبؤات المكررة، وأنابيب متعددة المراحل مربوطة بحيل هندسية خاصة بكل مهمة. هذه المكوّنات كانت تحتاج ضبطاً يدوياً دقيقاً لكل مجموعة بيانات، ولم تكن قابلة للتفاضل حقيقياً من البداية إلى النهاية. كان ينقص المجال صياغة نظيفة تستطيع التنبؤ بمجموعة كائنات مباشرةً دون أي معالجة لاحقة.
الإسهام
قدّم DETR (محوِّل الكشف) أول كاشف كائنات يعمل من البداية إلى النهاية مبنياً على . أعاد صياغة كشف الكائنات كمسألة تنبؤ مجموعات — بلا مربعات إرساء، بلا كبت غير الأقصى، بلا قواعد تعيين مصمَّمة يدوياً. العمود الفقري من شبكة التفافية يستخلص السمات، ومرمِّز المحوِّل يلتقط السياق الشامل، وفاكّ ترميز المحوِّل يأخذ N من استعلامات الكائنات المُتعلَّمة ويُخرِج N تنبؤاً بالتوازي. دالة خسارة مبنية على تضمن أن كل كائن حقيقي يُعيَّن لتنبؤ وحيد. حقّق DETR أداءً مكافئاً لـ Faster R-CNN على COCO بدقة 42 AP، وتفوّق في الكائنات الكبيرة (61.1 AP_L)، ويمتدّ بسلاسة إلى .
الأثر
أثبت DETR أن المحوِّلات قادرة على استبدال أنبوب الكشف المصنوع يدوياً بالكامل. أطلق عائلة من الخلفاء — Deformable DETR وDAB-DETR وDN-DETR وDINO وGrounding DINO — التي عالجت بطء تقارب التدريب وضعف الأداء على الكائنات الصغيرة مع الحفاظ على نموذج . أصبحت فكرة استعلامات الكائنات المُتعلَّمة واجهة معيارية لمهام الرؤية. يمتدّ تأثير DETR إلى ما وراء الكشف ليشمل التجزئة والتتبع والربط بين الرؤية واللغة، مما يجعله جسراً محورياً بين كاشفات حقبة الشبكات الالتفافية ومحوِّلات الرؤية الحديثة.
كاشفات الكائنات التقليدية تعمل كمن يحمل كاشف معادن على شاطئ: تمرّر المستشعر فوق الرمال شبراً شبراً، تُعلّم كل موضع يصدر صوتاً، ثم تعود لتحذف العلامات المكررة القريبة من بعضها. تحتاج لاختيار حجم المستشعر (مربعات الإرساء)، وتحديد نمط المسح، وحلّ التداخلات يدوياً (كبت غير الأقصى).
DETR يعمل كـفريق من 100 كشّاف يجلسون في برج مراقبة يُطلّ على الشاطئ كاملاً. كل كشّاف مسؤول عن رصد غرض واحد بالضبط. جميعهم ينظرون إلى المشهد بأكمله في آنٍ واحد، يتواصلون مع بعضهم لتجنّب الإشارة إلى نفس الغرض، ومُنسِّق (خوارزمية المجرية) يتأكد أن لا أحد يُكرّر. لا مسح، لا تنظيف — تقرير واحد نظيف فقط.
المشكلة: أنابيب الكشف رقعة من الحيل الهندسية
قبل DETR، كان كل كاشف كائنات متقدم يتبع نفس السيناريو. أولاً، تُعرَّف آلاف مربعات الإرساء — مستطيلات مسبقة التحديد بأحجام ونسب أبعاد مختلفة تُبلَّط على الصورة — كل مربع يقترح «ربما يوجد كائن هنا». ثانياً، شبكة عصبية تُقيّم كل مربع وتُنقّح إحداثياته. ثالثاً، بما أن مربعات كثيرة تتداخل فوق نفس الكائن، يُطبَّق كبت غير الأقصى (NMS) لحذف التنبؤات شبه المكررة والإبقاء على الأعلى درجةً فقط في كل مجموعة.
هذا الأنبوب فيه ثلاث مشكلات جوهرية. (1) تصميم مربعات الإرساء هش: عدد المربعات وأحجامها ونسب أبعادها تحتاج ضبطاً يدوياً لكل مجموعة بيانات — خطأ بسيط فيها يعني أن الكاشف يُفوّت كائنات أو يُهدر حوسبة. (2) كبت غير الأقصى حيلة وليس عملية مُتعلَّمة: يستخدم عتبة تقاطع على اتحاد ثابتة ليقرر أي المربعات يُحذف، وهذه العتبة تتفاعل بشكل غير متوقع مع المشاهد المزدحمة. (3) الأنبوب ليس قابلاً للتفاضل من البداية إلى النهاية: كبت غير الأقصى وتعيين المربعات يقطعان تدفق التدرّج، فلا يمكن أمثَلة النظام ككتلة واحدة.
السؤال الذي يجيب عنه DETR هو: هل يمكن استبدال كل هذه الرقع بنموذج واحد قابل للتفاضل يُخرج مجموعة كشوفات مباشرة؟
الفكرة المحورية: كشف الكائنات كتنبؤ بمجموعة
نقلة DETR الحاسمة ليست في البنية بل في صياغة المسألة. بدلاً من السؤال «هل يوجد كائن في هذا الموقع؟»، يسأل DETR: «ما مجموعة الكائنات الموجودة في هذه الصورة؟»
المجموعة ليس لها ترتيب — (قطة، كلب) هي نفسها (كلب، قطة). وليس فيها تكرار — كل كائن يظهر مرة واحدة فقط. هاتان الخاصيتان هما بالضبط ما نريده من كاشف، وهما بالضبط ما تُعاني منه الأنابيب التقليدية (الترتيب عبر تعيين مربعات الإرساء، والتكرار عبر كبت غير الأقصى).
للتنبؤ بمجموعة، يُنتج DETR عدد N من التنبؤات (N=100 افتراضياً، وهو أكبر من العدد النموذجي للكائنات في صورة). معظم التنبؤات ستكون «لا كائن» (∅). يجب أن تُطابق التنبؤات مع الكائنات الحقيقية بغض النظر عن الترتيب. هنا تدخل المطابقة الثنائية.
المطابقة الثنائية وخسارة المجرية
عملية التدريب تتكوّن من خطوتين في كل تكرار. الخطوة الأولى: إيجاد أفضل مطابقة. بوجود N تنبؤاً وM كائناً حقيقياً (M ≤ N، مع حشو بـ ∅ للوصول إلى N)، نبحث عن تعيين واحد لواحد يُقلّل تكلفة المطابقة الإجمالية. تُحلّ هذه المسألة بـخوارزمية المجرية بتعقيد O(N³). تكلفة مطابقة التنبؤ σ(i) مع الكائن الحقيقي i تجمع بين احتمال ومسافة المربع المحيط.
الخطوة الثانية: حساب الخسارة على الأزواج المُتطابقة. بعد تثبيت المطابقة، تُحسب خسارة التصنيف المعتادة (اللوغاريتم السالب للاحتمال) وخسارة انحدار المربع (L1 + GIoU) على الأزواج المتطابقة فقط. يُقلَّل وزن الفئة ∅ بعامل 10 لمعالجة عدم توازن الفئات (معظم التنبؤات المئة تكون «لا كائن»).
الفكرة المحورية: المطابقة تُحسَب من جديد في كل تمريرة أمامية — وليست تعييناً ثابتاً للتسميات. كلما تحسّن النموذج تغيّرت المطابقة، مما يخلق حلقة حميدة.
بنية DETR: شبكة التفافية + محوِّل + شبكة تمرير أمامي
يتكوّن DETR من ثلاثة مكوّنات متتالية:
1. العمود الفقري (الشبكة الالتفافية) — شبكة ResNet-50 القياسية (أو ResNet-101) تستخلص خريطة سمات ثنائية الأبعاد من الصورة. صورة بحجم (H₀, W₀) تصبح خريطة سمات بحجم (H₀/32, W₀/32, 2048). تُطبَّق التفاف 1×1 لتقليص عدد القنوات من 2048 إلى d (256 افتراضياً)، ثم تُسطَّح الأبعاد المكانية إلى تسلسل من HW رمزاً، كلٌّ منها مزوَّد بترميز موضعي جيبي ثابت.
2. مرمِّز المحوِّل — التسلسل المُسطَّح يمرّ عبر 6 طبقات ترميز من انتباه ذاتي متعدد الرؤوس + شبكة تمرير أمامي. كل رمز بكسل يستطيع الانتباه إلى كل رمز آخر، فيبني المرمِّز سياقاً شاملاً — البكسلات القريبة تتبادل معلومات حدود الكائنات، والبكسلات البعيدة تتشارك معلومات على مستوى المشهد. هنا تكمن قوة DETR على الكائنات الكبيرة: حقل الاستقبال هو الصورة بأكملها منذ الطبقة الأولى.
3. فاكّ ترميز المحوِّل — يُغذَّى بـ N=100 من استعلامات الكائنات المُتعلَّمة (تضمينات مُهيَّأة عشوائياً) عبر 6 طبقات فكّ ترميز. كل طبقة تحتوي ثلاث طبقات فرعية: (أ) انتباه ذاتي بين الاستعلامات — ليتواصلوا ويتجنبوا التنبؤ بنفس الكائن؛ (ب) انتباه تقاطعي من الاستعلامات إلى مخرج المرمِّز — كل استعلام «ينظر» إلى الصورة ليجد كائنه؛ (ج) شبكة تمرير أمامي تُنقّح التمثيل. تضمينات الخرج الـ N تُفكّ كلٌّ منها بشكل مستقل عبر شبكة تمرير أمامي مشتركة إلى تسمية فئة + مربع محيط.
الفكرة في الكود
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import torch
import torch.nn as nn
class DETR(nn.Module):
def __init__(self, backbone, transformer, num_queries=100, d_model=256, num_classes=91):
super().__init__()
self.backbone = backbone # ResNet-50: صورة → خريطة سمات
self.input_proj = nn.Conv2d(2048, d_model, 1) # تقليص القنوات
self.transformer = transformer # مرمِّز-فاكّ ترميز قياسي
self.query_embed = nn.Embedding(num_queries, d_model) # 100 استعلام مُتعلَّم
self.class_head = nn.Linear(d_model, num_classes + 1) # +1 لـ «لا كائن»
self.bbox_head = nn.Sequential( # يتنبأ بـ (cx, cy, w, h) مُقيَّسة
nn.Linear(d_model, d_model), nn.ReLU(),
nn.Linear(d_model, d_model), nn.ReLU(),
nn.Linear(d_model, 4), nn.Sigmoid()
)
def forward(self, images):
# الخطوة 1: العمود الفقري → خريطة سمات
features = self.backbone(images) # (B, 2048, H/32, W/32)
src = self.input_proj(features) # (B, 256, H/32, W/32)
pos = positional_encoding_2d(src) # ترميز جيبي، نفس الشكل
# الخطوة 2: تسطيح الأبعاد المكانية → تسلسل للمحوِّل
B, C, H, W = src.shape
src = src.flatten(2).permute(2, 0, 1) # (H*W, B, 256)
pos = pos.flatten(2).permute(2, 0, 1)
# الخطوة 3: مرمِّز-فاكّ ترميز المحوِّل
queries = self.query_embed.weight.unsqueeze(1).repeat(1, B, 1) # (100, B, 256)
hs = self.transformer(src, queries, pos_embed=pos) # (100, B, 256)
# الخطوة 4: تنبؤ الفئة + المربع لكل استعلام — بالتوازي
outputs_class = self.class_head(hs) # (100, B, عدد_الفئات+1)
outputs_bbox = self.bbox_head(hs) # (100, B, 4)
return outputs_class, outputs_bbox
# لا مربعات إرساء. لا كبت غير الأقصى. لا معالجة لاحقة.
# خوارزمية المجرية تُطابق التنبؤات ↔ الكائنات الحقيقية أثناء التدريب.الترميز الموضعي ثنائي الأبعاد: تعليم المحوِّل الإحساس بالمكان
المحوِّلات متساوية التبديل — أي أنها لا تعرف بطبيعتها الموقع المكاني لكل رمز. يستخدم DETR ترميزاً موضعياً جيبياً ثنائي الأبعاد ثابتاً: لكل موقع مكاني (x, y) في خريطة السمات، يُولّد d/2 قيمة جيب وجيب تمام للإحداثي x وd/2 للإحداثي y، ثم تُربط لتُشكِّل متجهاً بأبعاد d. يُضاف هذا الترميز إلى السمات قبل المرمِّز، ويُمدّ أيضاً في كل طبقة انتباه تقاطعي في فاكّ الترميز.
الترميز ثنائي الأبعاد يعني أن النموذج يستطيع التمييز بين «أعلى اليسار» و«أسفل اليمين» — وهذا ضروري للتنبؤ بإحداثيات المربع المحيط. على عكس التضمينات الموضعية المُتعلَّمة (كما في BERT)، الترميزات الجيبية تتعمّم على صور بأحجام مختلفة دون إعادة تدريب.
النتائج على COCO: مكافئ لـ Faster R-CNN، متفوق في الكائنات الكبيرة
على معيار COCO 2017، حقّق DETR-R50 دقة 42.0 AP — مكافئة لـ Faster R-CNN مضبوط بدقة مع نفس العمود الفقري ResNet-50 (42.0 AP). مع ResNet-101 يصل DETR إلى 43.5 AP. النتيجة الأبرز في الكائنات الكبيرة: DETR-R50 يسجّل 61.1 AP_L مقابل 53.4 لـ Faster R-CNN — فارق ضخم بمقدار 7.7 نقطة، لأن الانتباه الشامل في مرمِّز المحوِّل يمنح DETR سياق الصورة الكاملة.
لكن DETR يعاني مع الكائنات الصغيرة: 20.5 AP_S مقابل 22.8 لـ Faster R-CNN. الكائنات الصغيرة تحتاج سمات عالية الدقة، ومرمِّز DETR يعمل على سمات بدقة 1/32 من حجم الصورة الأصلي. هذا القيد دفع الأعمال اللاحقة مثل Deformable DETR.
التدريب مُكلف — يحتاج DETR 500 حقبة للتقارب (مقابل ~36 لـ Faster R-CNN)، ويستغرق نحو 3 أيام على 16 وحدة V100 GPU. طول مدة التدريب قيد آخر عالجته المتغيرات اللاحقة.
امتداد: التجزئة الشاملة
يمتدّ DETR بسلاسة إلى التجزئة الشاملة — مهمة تعيين كل بكسل في الصورة إمّا لمثيل «شيء» قابل للعدّ (سيارة، شخص) أو لفئة «مادة» غير قابلة للعدّ (سماء، عشب). الامتداد أنيق: أضِف رأس تنبؤ أقنعة صغيراً فوق مخرجات فاكّ الترميز. كل استعلام كائن يُرمِّز كائناً واحداً أصلاً؛ رأس الأقنعة يُنتج قناعاً ثنائياً له مستخدماً خرائط الانتباه من الانتباه التقاطعي في فاكّ الترميز، مع زيادة الدقة عبر وحدة شبيهة بشبكة هرم السمات. على COCO Panoptic يحقّق DETR نتائج تنافسية، خاصةً في فئات «الأشياء»، مما يثبت أن إطار التنبؤ بالمجموعات يتعمّم إلى ما وراء المربعات المحيطة.
ما يراه الانتباه: خرائط الانتباه في فاكّ الترميز
من أكثر خصائص DETR إقناعاً هي قابلية التفسير. خرائط الانتباه التقاطعي في فاكّ الترميز تُظهر بالضبط أي مناطق من الصورة يركّز عليها كل استعلام كائن. استعلام يتنبأ بـ«فيل» تُبرز خريطة انتباهه جسم الفيل. واستعلام يتنبأ بـ«شخص» تُضيء خريطته منطقة الشخص. هذا أكثر قابلية للتفسير بكثير من الكاشفات القائمة على مربعات الإرساء، حيث التعيين بين المربعات والكائنات عملية تجميعية غامضة.
الانتباه الذاتي بين استعلامات الكائنات يكشف شيئاً مثيراً بالقدر نفسه: الاستعلامات التي تتنبأ بكائنات متجاورة تنتبه لبعضها البعض، مشكِّلةً استدلالاً مكانياً ضمنياً. النموذج يتعلّم فصل الكائنات المتداخلة عبر التواصل بين الاستعلامات، مستعيضاً عن دور كبت غير الأقصى في الكاشفات التقليدية.
دراسة الاستئصال: ما الأكثر أهمية؟
قدّمت الورقة دراسات استئصال شاملة:
-
الانتباه الذاتي في المرمِّز جوهري: إزالته تُخفِّض الدقة 3.9 نقطة (من 42.0 إلى 38.1). الاستدلال الشامل في المرمِّز يفصل الكائنات المتجاورة — بدونه يعجز النموذج عن التعامل مع المثيلات المتداخلة.
-
عدد طبقات فاكّ الترميز مهم: الانتقال من طبقة واحدة إلى 6 يرفع الدقة من 33.8 إلى 42.0. بطبقة واحدة فقط لا يستطيع النموذج تنقيح تنبؤاته تكرارياً، وكبت غير الأقصى يُساعد فعلاً (+2.1 AP) — مما يثبت أن فكّ الترميز متعدد الطبقات يحلّ محلّ وظيفة كبت غير الأقصى.
-
شبكة التمرير الأمامي في فاكّ الترميز مهمة: إزالتها تُنقص الدقة 2.3 نقطة، مؤكّدةً أن طبقات الانتباه وحدها لا تكفي لمهمة انحدار الإحداثيات.
-
في كل طبقة فكّ ترميز: تقديمه في المدخل فقط يُنقص الدقة 1.4 نقطة. النموذج يحتاج إرساءً مكانياً مستمراً طوال عملية فكّ الترميز.
ما الذي فتحه DETR
2020
DETR
أول كاشف قائم على المحوِّل من البداية إلى النهاية. تنبؤ بالمجموعات بمطابقة المجرية، بلا مربعات إرساء ولا كبت غير الأقصى. كافأ Faster R-CNN على COCO.
2021
Deformable DETR
استبدل الانتباه الشامل بانتباه قابل للتشويه — كل استعلام ينتبه لمجموعة صغيرة من النقاط المفتاحية المُتعلَّمة. يتقارب أسرع 10 مرات، ويتعامل مع سمات متعددة المقاييس، ويُحسّن كشف الكائنات الصغيرة.
2022
DAB-DETR & DN-DETR
DAB-DETR استبدل الاستعلامات المُتعلَّمة بمربعات إرساء ديناميكية كاستعلامات. DN-DETR أضاف إزالة ضجيج الاستعلامات أثناء التدريب. معاً خفّضا عدد الحقب من 500 إلى ~50.
2022
DINO
جمع بين الانتباه القابل للتشويه وتدريب إزالة الضجيج والتعلم التبايُني لتهيئة الاستعلامات. حقّق 63.3 AP على COCO — أفضل نتيجة بنموذج واحد في ذلك الوقت.
2023
Grounding DINO
وسّع عائلة DETR إلى الكشف المفتوح: كشف أي كائن يُوصَف بالنص. دمج اللغة والرؤية في آلية الاستعلام، ممكِّناً الكشف دون قوائم فئات مُعرَّفة مسبقاً.
الإرث الأعمق لـ DETR هو إثباته أن كشف الكائنات لا يحتاج أن يكون رقعة من الحيل الهندسية. صياغة التنبؤ بالمجموعات — استعلامات مُتعلَّمة، مطابقة ثنائية، فكّ ترميز متوازٍ — هي الآن النموذج المهيمن للكاشفات القائمة على المحوِّلات. وراء الكشف، تبنّت المهام نفس النمط «استعلامات مُتعلَّمة ↔ مطابقة المجرية»: تجزئة المثيلات، تقدير الوضعية، تتبع الكائنات المتعددة، والربط بين الرؤية واللغة. كان DETR الجسر بين أنابيب كشف حقبة الشبكات الالتفافية ومنظومة محوِّلات الرؤية الحديثة.
المرجعCarion, Massa, Synnaeve, Usunier, Kirillov, Zagoruyko. End-to-End Object Detection with Transformers. ECCV, 2020.
مصطلحات هذه الورقة
- رصد وتحديد الكائناتObject Detection
- المحوِّلTransformer
- مرمِّز-فاكّ ترميزEncoder-Decoder
- المطابقة الثنائيةBipartite Matching
- خوارزمية المجريةHungarian Algorithm
- كبت غير أعظميNon-Maximum Suppression
- مربعات الإحاطة المرجعية (المرساة)Anchor Box
- التنبؤ بالمجموعاتSet Prediction
- استعلام الكائنObject Query
- الترميز الموضعيPositional Encoding
- الانتباه التبادليCross-Attention
- الانتباه الذاتيSelf-Attention
- شبكة التغذية الأماميةFeed Forward Network (FFN)
- مربع الإحاطةBounding Box
- التجزئة الشاملةPanoptic Segmentation