RT-DETR من Baidu: كاشف أجسام آني قائم على Transformer للرؤية#
نظرة عامة#
يُعدّ محوّل الكشف الآني (RT-DETR)، الذي طورته Baidu، كاشف أجسام متطورًا من البداية إلى النهاية، يوفّر أداءً آنيًا مع الحفاظ على الدقة العالية. يستند إلى فكرة DETR (إطار عمل خالٍ من NMS)، مع تقديم عمود فقري قائم على الالتفاف ومشفّر هجين فعّال لتحقيق السرعة الآنية. يعالج RT-DETR الميزات متعددة المقاييس بكفاءة عبر فصل التفاعل داخل المقياس عن الدمج بين المقاييس. يتميز النموذج بقدرة عالية على التكيّف، إذ يدعم الضبط المرن لسرعة الاستدلال باستخدام طبقات مفكّك ترميز مختلفة من دون إعادة التدريب. ويتفوق RT-DETR على واجهات خلفية مسرّعة مثل CUDA مع TensorRT، متجاوزًا العديد من كواشف الأجسام الآنية الأخرى.
شاهد: كيفية استخدام RT-DETR من Baidu لاكتشاف الكائنات | الاستدلال وقياس الأداء باستخدام Ultralytics 🚀
نظرة عامة على RT-DETR من Baidu. يوضّح مخطط بنية نموذج RT-DETR المراحل الثلاث الأخيرة من العمود الفقري {S3, S4, S5} بوصفها مدخلات للمشفّر. يحوّل المشفّر الهجين الفعّال الميزات متعددة المقاييس إلى سلسلة من ميزات الصور من خلال التفاعل بين الميزات على المقياس نفسه (AIFI) ووحدة دمج الميزات عبر المقاييس (CCFM). ويُستخدم اختيار الاستعلامات المراعي لـ IoU لاختيار عدد ثابت من ميزات الصور لتكون استعلامات الأجسام الأولية لمفكّك الترميز. وأخيرًا، يعمل مفكّك الترميز المزود برؤوس تنبؤ مساعدة على تحسين استعلامات الأجسام تكراريًا لإنشاء الصناديق ودرجات الثقة (المصدر).
الميزات الرئيسية#
- المشفّر الهجين الفعّال: يستخدم RT-DETR من Baidu مشفّرًا هجينًا فعّالًا يعالج الميزات متعددة المقاييس عبر فصل التفاعل داخل المقياس عن الدمج بين المقاييس. يقلل هذا التصميم الفريد القائم على محوّلات الرؤية التكاليف الحسابية، ويتيح الكشف الآني عن الأجسام.
- اختيار الاستعلامات المراعي لـ IoU: يحسّن RT-DETR من Baidu تهيئة استعلامات الأجسام باستخدام اختيار الاستعلامات المراعي لـ IoU. وهذا يمكّن النموذج من التركيز على الأجسام الأهم في المشهد، ما يعزز دقة الكشف.
- سرعة استدلال قابلة للتكيّف: يدعم RT-DETR من Baidu الضبط المرن لسرعة الاستدلال باستخدام طبقات مفكّك ترميز مختلفة من دون الحاجة إلى إعادة التدريب. وتسهّل هذه القدرة على التكيّف تطبيق النموذج عمليًا في سيناريوهات مختلفة للكشف الآني عن الأجسام.
- إطار عمل خالٍ من NMS: استنادًا إلى DETR، يلغي RT-DETR الحاجة إلى المعالجة اللاحقة عبر كبت غير الأعظميات، ما يبسّط مسار الكشف وقد يحسّن الكفاءة.
- الكشف الخالي من المراسي: يبسّط RT-DETR، بوصفه كاشفًا خاليًا من المراسي، عملية الكشف وقد يحسّن التعميم على مجموعات البيانات المختلفة.
النماذج المدربة مسبقًا#
توفر واجهة Python البرمجية من Ultralytics نماذج RT-DETR من PaddlePaddle مدرّبة مسبقًا وبمقاييس مختلفة:
- RT-DETR-L: 53.0% AP على COCO val2017، و114 إطارًا في الثانية على وحدة GPU من طراز T4
- RT-DETR-X: 54.8% AP على COCO val2017، و74 إطارًا في الثانية على وحدة GPU من طراز T4
بالإضافة إلى ذلك، أصدرت Baidu الإصدار RTDETRv2 في يوليو 2024، الذي يطوّر البنية الأصلية أكثر مع تحسين مقاييس الأداء.
أمثلة الاستخدام#
يقدّم هذا المثال أمثلة بسيطة على تدريب RT-DETR والاستدلال به. للاطلاع على الوثائق الكاملة لهذه الأوضاع وغيرها، راجع صفحات التوثيق الخاصة بـالتنبؤ والتدريب والتحقق والتصدير. ويمكن أيضًا تدريب النماذج على وحدات GPU سحابية عبر منصة Ultralytics.
from ultralytics import RTDETR
# تحميل نموذج RT-DETR-l مدرّب مسبقًا على COCO
model = RTDETR("rtdetr-l.pt")
# عرض معلومات النموذج (اختياري)
model.info()
# تدريب النموذج على مجموعة بيانات المثال COCO8 لمدة 100 حقبة
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# إجراء الاستدلال باستخدام نموذج RT-DETR-l على الصورة 'bus.jpg'
results = model("path/to/bus.jpg")اضبط deterministic=False عند تدريب RT-DETR على CUDA باستخدام PyTorch 2.0 أو إصدار أحدث. تستخدم آلية الانتباه القابلة للتشوه F.grid_sample، التي لا توفر تمريرًا عكسيًا حتميًا على CUDA، لذا لا يستطيع deterministic=True جعل التشغيل قابلًا لإعادة الإنتاج، وقد يقلل من معدل إنتاجية التدريب. يظل seed يتحكم في تهيئة الأوزان وترتيب البيانات وأخذ عينات التعزيز.
تدعم الأوزان المدرّبة مسبقًا لـ RT-DETR إعدادين أثناء الاستدلال لتقليل زمن الاستجابة من دون إعادة التدريب:
eval_idx: أوقف فك الترميز مبكرًا. بالنسبة إلى مفكّك الترميز الافتراضي ذي الطبقات الست، استخدم فهرسًا يبدأ من الصفر (0–5). يستخدمeval_idx=5جميع الطبقات، بينما يستخدمeval_idx=3أربع طبقات. على وحدة GPU من طراز T4 مع TensorRT v10.11، يتحسن RT-DETR-L من 8.0 مللي ثانية / 52.7 mAP إلى 7.4 مللي ثانية / 52.5 mAP باستخدام أربع طبقات.num_queries: قلّل عدد استعلامات الأجسام (القيمة الافتراضية: 300). يمكن أن يؤدي خفض العدد إلى 100 إلى تحقيق 7.4 مللي ثانية / 51.7 mAP على COCO ضمن الإعداد نفسه. يكون انخفاض mAP أصغر عادةً في مجموعات البيانات التي تضم أجسامًا أقل في كل صورة، لكن احرص على أن تتجاوز القيمة الحد الأقصى المتوقع لعدد الأجسام في الصورة.
يمكن أن يؤدي كلا الإعدادين إلى خفض mAP؛ لذا تحقّق من هذه المقايضة على مجموعة بياناتك قبل النشر.
from ultralytics import RTDETR
rtdetr = RTDETR("rtdetr-l.pt")
head = rtdetr.model.model[-1]
# اختر أحد الإعدادين أو كليهما بعد التحقق من مقايضة السرعة والدقة.
head.decoder.eval_idx = 3 # استخدم 4 من أصل 6 طبقات لمفكّك الترميز.
head.num_queries = 100 # استخدم عددًا أقل من استعلامات الأجسام.
results = rtdetr("path/to/image.jpg")
# يستخدم التصدير إعدادات مفكّك الترميز والاستعلامات نفسها، بما في ذلك عمليات التصدير إلى TensorRT.
rtdetr.export(format="engine", device=0, quantize=16)المهام والأوضاع المدعومة#
يعرض هذا الجدول أنواع النماذج، والأوزان المحددة المدرّبة مسبقًا، والمهام التي يدعمها كل نموذج، وأنماط التشغيل المدعومة المختلفة (التدريب، التحقق، التنبؤ، التصدير)، والمشار إليها برموز ✅.
| نوع النموذج | الأوزان المدرّبة مسبقاً | المهام المدعومة | التدريب | التحقق | الاستدلال | التصدير |
|---|---|---|---|---|---|---|
| RT-DETR كبير | rtdetr-l.pt | كشف الكائنات | ✅ | ✅ | ✅ | ✅ |
| RT-DETR كبير جدًا | rtdetr-x.pt | كشف الكائنات | ✅ | ✅ | ✅ | ✅ |
يُوزّع rtdetr-resnet50.yaml وrtdetr-resnet101.yaml كبنيتين بصيغة YAML فقط. تصدر Ultralytics الأوزان المدرّبة مسبقًا لـ rtdetr-l وrtdetr-x فقط. أنشئ متغيرات ResNet من ملفات YAML (مثل RTDETR("rtdetr-resnet50.yaml"))، ثم درّبها أو حسّن تدريبها حسب الحاجة.
حالات الاستخدام المثالية#
يناسب RT-DETR على نحو خاص التطبيقات التي تتطلب دقة عالية وأداءً آنيًا معًا:
- القيادة الذاتية: لإدراك البيئة بشكل موثوق في أنظمة المركبات ذاتية القيادة، حيث تُعد السرعة والدقة عاملين حاسمين. تعرّف على المزيد حول الذكاء الاصطناعي في السيارات ذاتية القيادة.
- الروبوتات المتقدمة: تمكين الروبوتات من تنفيذ مهام معقدة تتطلب التعرّف الدقيق على الأجسام والتفاعل معها في بيئات ديناميكية. استكشف دور الذكاء الاصطناعي في الروبوتات.
- التصوير الطبي: للتطبيقات في مجال الرعاية الصحية، حيث قد تكون دقة الكشف عن الأجسام حاسمة في التشخيص. اكتشف الذكاء الاصطناعي في الرعاية الصحية.
- أنظمة المراقبة: للتطبيقات الأمنية التي تتطلب مراقبة آنية بدقة كشف عالية. تعرّف على أنظمة الإنذار الأمني.
- تحليل صور الأقمار الصناعية: للتحليل التفصيلي للصور عالية الدقة، حيث يكون فهم السياق العالمي مهمًا. اقرأ عن الرؤية الحاسوبية في صور الأقمار الصناعية.
الاستشهادات والشكر والتقدير#
إذا استخدمت RT-DETR من Baidu في أبحاثك أو أعمال التطوير، فيُرجى الاستشهاد بـالورقة البحثية الأصلية:
@misc{lv2023detrs,
title={DETRs Beat YOLOs on Real-time Object Detection},
author={Wenyu Lv and Shangliang Xu and Yian Zhao and Guanzhong Wang and Jinman Wei and Cheng Cui and Yuning Du and Qingqing Dang and Yi Liu},
year={2023},
eprint={2304.08069},
archivePrefix={arXiv},
primaryClass={cs.CV}
}يمكنك الاستشهاد بـورقة 2024 الخاصة بـ RTDETRv2:
@misc{lv2024rtdetrv2,
title={RTDETRv2: All-in-One Detection Transformer Beats YOLO and DINO},
author={Wenyu Lv and Yian Zhao and Qinyao Chang and Kui Huang and Guanzhong Wang and Yi Liu},
year={2024},
eprint={2407.17140},
archivePrefix={arXiv},
primaryClass={cs.CV}
}نتوجه بالشكر إلى Baidu وفريق PaddlePaddle على إنشاء هذا المورد القيّم لمجتمع الرؤية الحاسوبية وصيانته. ونقدّر كثيرًا إسهامهم في هذا المجال من خلال تطوير كاشف الأجسام الآني RT-DETR القائم على محوّلات الرؤية.
الأسئلة الشائعة#
RT-DETR من Baidu (محوّل الكشف الآني) هو كاشف أجسام متقدم يعمل في الزمن الحقيقي، ومبني على بنية محوّل الرؤية. يعالج الميزات متعددة المقاييس بكفاءة عبر فصل التفاعل داخل المقياس عن الدمج بين المقاييس، وذلك باستخدام المشفّر الهجين الفعّال. ومن خلال اختيار الاستعلامات المراعي لـ IoU، يركز النموذج على الأجسام الأهم، ما يعزز دقة الكشف. وتجعله سرعة الاستدلال القابلة للتكيّف، التي تتحقق بضبط طبقات مفكّك الترميز من دون إعادة التدريب، مناسبًا لسيناريوهات متنوعة للكشف الآني عن الأجسام. تعرّف على المزيد حول ميزات RT-DETR في ورقة RT-DETR على arXiv.
يمكنك الاستفادة من واجهة Python البرمجية من Ultralytics لاستخدام نماذج RT-DETR من PaddlePaddle المدرّبة مسبقًا. على سبيل المثال، لتحميل نموذج RT-DETR-l المدرّب مسبقًا على COCO val2017 وتحقيق معدل إطارات مرتفع على وحدة GPU من طراز T4، يمكنك استخدام المثال التالي:
مثالfrom ultralytics import RTDETR # تحميل نموذج RT-DETR-l مدرّب مسبقًا على COCO model = RTDETR("rtdetr-l.pt") # عرض معلومات النموذج (اختياري) model.info() # تدريب النموذج على مجموعة بيانات المثال COCO8 لمدة 100 حقبة results = model.train(data="coco8.yaml", epochs=100, imgsz=640) # إجراء الاستدلال باستخدام نموذج RT-DETR-l على الصورة 'bus.jpg' results = model("path/to/bus.jpg")يتميّز RT-DETR من Baidu بمشفّره الهجين الفعّال واختياره للاستعلامات المراعي لـ IoU، ما يقلل التكاليف الحسابية بدرجة كبيرة مع الحفاظ على دقة عالية. وتضيف قدرته الفريدة على ضبط سرعة الاستدلال باستخدام طبقات مفكّك ترميز مختلفة من دون إعادة التدريب مرونة كبيرة. وهذا يجعله مفيدًا على نحو خاص للتطبيقات التي تتطلب أداءً آنيًا على واجهات خلفية مسرّعة مثل CUDA مع TensorRT، إذ يتفوق على العديد من كواشف الأجسام الآنية الأخرى. كما توفر بنية المحوّل فهمًا أفضل للسياق العالمي مقارنةً بالكواشف التقليدية القائمة على CNN.
يتيح RT-DETR من Baidu ضبط سرعة الاستدلال بمرونة باستخدام طبقات مفكّك ترميز مختلفة من دون الحاجة إلى إعادة التدريب. وتُعد هذه القدرة على التكيّف ضرورية لتوسيع نطاق الأداء عبر مهام متنوعة للكشف الآني عن الأجسام. سواء احتجت إلى معالجة أسرع لمتطلبات الدقة الأقل أو إلى كشف أبطأ وأكثر دقة، يمكن تهيئة RT-DETR لتلبية احتياجاتك المحددة. وتكون هذه الميزة قيّمة على نحو خاص عند نشر النماذج على أجهزة ذات قدرات حوسبة متفاوتة.
لا. في RT-DETR، يحدّ
max_detمن عدد التنبؤات التي تُعاد بعد الاستدلال، لكنه لا يزيد عدد استعلامات الأجسام التي ينتجها مفكّك الترميز. تستخدم نقاط التحقق المدرّبة مسبقًا لـ RT-DETR من Ultralytics عدد 300 من استعلامات الأجسام، لذا لا يمكنها إعادة أكثر من 300 كشف لكل صورة، حتى إذا ضبطتmax_detعلى قيمة أكبر.استخدم
max_detلتقليل عدد الكشوف المُعادة، مثلmax_det=100، عندما تحتاج إلى عدد أقل من التنبؤات عالية الثقة فقط. إذا كان من الممكن أن تحتوي مجموعة بياناتك على أكثر من 300 جسم في الصورة، فدرّب نموذج RT-DETR مخصصًا بعدد أكبر من استعلامات مفكّك الترميز (nq) في YAML الخاص بالنموذج؛ فتغيير هذه القيمة في نقطة تحقق مدرّبة مسبقًا بعد التدريب ليس مكافئًا لذلك، ويتطلب إعادة التدريب لتعلّم الاستعلامات الإضافية.نعم، تتوافق نماذج RT-DETR مع أنماط Ultralytics المختلفة، بما في ذلك التدريب والتحقق والتنبؤ والتصدير. يمكنك الرجوع إلى الوثائق ذات الصلة للحصول على تعليمات مفصلة حول كيفية استخدام هذه الأنماط: التدريب، والتحقق، والتنبؤ، والتصدير. وهذا يضمن سير عمل متكاملًا لتطوير حلول الكشف عن الأجسام ونشرها. ويوفر إطار عمل Ultralytics واجهة API موحدة عبر بنيات النماذج المختلفة، ما يسهّل العمل مع نماذج RT-DETR.