Meet YOLO26: next-gen vision AI.

Link to this sectionنموذج RT-DETR من Baidu: كاشف كائنات فوري يعتمد على Transformer للرؤية الحاسوبية#

Link to this sectionنظرة عامة#

يعد Real-Time Detection Transformer (RT-DETR)، الذي طورته شركة Baidu، كاشف كائنات متطوراً وشاملاً (end-to-end) يوفر أداءً فورياً مع الحفاظ على دقة عالية. يعتمد النموذج على فكرة DETR (إطار عمل خالٍ من NMS)، مع تقديم عمود فقري يعتمد على التلافيف (conv-based) ومشفر هجين فعال لتحقيق سرعة فورية. يعالج RT-DETR الميزات متعددة المقاييس بكفاءة من خلال فصل التفاعل داخل النطاق والدمج عبر النطاقات. يتميز النموذج بقابلية تكيف عالية، حيث يدعم التعديل المرن لسرعة الاستدلال باستخدام طبقات فك ترميز (decoder) مختلفة دون الحاجة لإعادة التدريب. يتفوق RT-DETR على المحركات المسرعة مثل CUDA باستخدام TensorRT، متجاوزاً العديد من كاشفات الكائنات الفورية الأخرى.



Watch: How to Use Baidu's RT-DETR for Object Detection | Inference and Benchmarking with Ultralytics 🚀

نظرة عامة على بنية نموذج Baidu RT-DETR نظرة عامة على نموذج RT-DETR من Baidu. يوضح مخطط بنية نموذج RT-DETR المراحل الثلاث الأخيرة من العمود الفقري {S3, S4, S5} كمدخلات للمشفر. يقوم المشفر الهجين الفعال بتحويل الميزات متعددة المقاييس إلى سلسلة من ميزات الصورة من خلال تفاعل الميزات داخل النطاق (AIFI) ووحدة دمج الميزات عبر النطاقات (CCFM). يتم استخدام اختيار الاستعلام المدرك لـ IoU لتحديد عدد ثابت من ميزات الصورة لتعمل كاستعلامات كائنات أولية لفك الترميز (decoder). أخيراً، يقوم فك الترميز مع رؤوس التنبؤ المساعدة بتحسين استعلامات الكائنات بشكل متكرر لتوليد مربعات الإحاطة ودرجات الثقة (المصدر).

Link to this sectionالميزات الرئيسية#

  • مشفر هجين فعال: يستخدم نموذج RT-DETR من Baidu مشفراً هجيناً فعالاً يعالج الميزات متعددة المقاييس من خلال فصل التفاعل داخل النطاق والدمج عبر النطاقات. يقلل هذا التصميم الفريد القائم على Vision Transformers من التكاليف الحسابية ويسمح بـ اكتشاف الكائنات في الوقت الفعلي.
  • اختيار الاستعلام المدرك لـ IoU: يعمل نموذج RT-DETR من Baidu على تحسين تهيئة استعلام الكائنات باستخدام اختيار الاستعلام المدرك لـ IoU. يسمح هذا للنموذج بالتركيز على الكائنات الأكثر صلة في المشهد، مما يعزز دقة الاكتشاف.
  • سرعة استدلال قابلة للتكيف: يدعم نموذج RT-DETR من Baidu تعديلات مرنة لسرعة الاستدلال باستخدام طبقات فك ترميز مختلفة دون الحاجة إلى إعادة التدريب. تسهل هذه القابلية للتكيف التطبيقات العملية في سيناريوهات اكتشاف الكائنات الفورية المختلفة.
  • إطار عمل خالٍ من NMS: بناءً على DETR، يلغي RT-DETR الحاجة إلى المعالجة اللاحقة لـ non-maximum suppression، مما يبسط خط أنابيب الاكتشاف ويحسن الكفاءة المحتملة.
  • اكتشاف خالٍ من الـ Anchor: باعتباره كاشفاً خالياً من الـ anchor، يبسط RT-DETR عملية الاكتشاف وقد يحسن التعميم عبر مجموعات بيانات مختلفة.

Link to this sectionالنماذج المدربة مسبقاً#

توفر واجهة برمجة تطبيقات Ultralytics Python نماذج PaddlePaddle RT-DETR مدربة مسبقاً بمقاييس مختلفة:

  • RT-DETR-L: دقة AP بنسبة 53.0% على مجموعة COCO val2017، بمعدل 114 إطاراً في الثانية على وحدة معالجة الرسومات T4 GPU
  • RT-DETR-X: دقة AP بنسبة 54.8% على مجموعة COCO val2017، بمعدل 74 إطاراً في الثانية على وحدة معالجة الرسومات T4 GPU

بالإضافة إلى ذلك، أصدرت Baidu نموذج RTDETRv2 في يوليو 2024، والذي يعمل على تحسين البنية الأصلية بشكل أكبر مع مقاييس أداء معززة.

Link to this sectionأمثلة الاستخدام#

يوفر هذا المثال أمثلة بسيطة لتدريب واستدلال RT-DETR. للحصول على التوثيق الكامل حول هذه الأنماط وغيرها من الأنماط، راجع صفحات التوثيق الخاصة بـ Predict و Train و Val و Export. يمكن أيضاً تدريب النماذج على وحدات معالجة الرسومات السحابية من خلال Ultralytics Platform.

مثال
from ultralytics import RTDETR

# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
مقايضات سرعة الاستدلال

تدعم الأوزان المدربة مسبقاً لـ RT-DETR إعدادين لوقت الاستدلال لتقليل التأخير دون الحاجة لإعادة التدريب:

  • eval_idx: إيقاف فك الترميز مبكراً. بالنسبة لفك الترميز الافتراضي المكون من 6 طبقات، استخدم فهرساً يبدأ من الصفر (05). تستخدم eval_idx=5 جميع الطبقات؛ بينما تستخدم eval_idx=3 أربع طبقات. على وحدة معالجة رسومات T4 GPU مع TensorRT v10.11، يتحسن أداء RT-DETR-L من 8.0 مللي ثانية / 52.7 mAP إلى 7.4 مللي ثانية / 52.5 mAP عند استخدام 4 طبقات.
  • 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]

# Choose one or both settings after validating the speed/accuracy trade-off.
head.decoder.eval_idx = 3  # Use 4 of 6 decoder layers.
head.num_queries = 100  # Use fewer object queries.

results = rtdetr("path/to/image.jpg")

# Export uses the same decoder and query settings, including TensorRT exports.
rtdetr.export(format="engine", device=0, quantize=16)

Link to this sectionالمهام والأوضاع المدعومة#

يقدم هذا الجدول أنواع النماذج، والأوزان المحددة المدربة مسبقاً، والمهام التي يدعمها كل نموذج، والأنماط المختلفة (Train, Val, Predict, Export) المدعومة، والتي يُشار إليها برموز ✅.

نوع النموذجالأوزان المدربة مسبقاًالمهام المدعومةالاستنتاجالتحققالتدريبالتصدير
RT-DETR Largertdetr-l.ptاكتشاف الكائنات
RT-DETR Extra-Largertdetr-x.ptاكتشاف الكائنات
متغيرات المعمارية فقط

يتم توفير rtdetr-resnet50.yaml و rtdetr-resnet101.yaml كبنيات YAML فقط. لا توفر Ultralytics أوزاناً مدربة مسبقاً إلا لـ rtdetr-l و rtdetr-x. قم بإنشاء متغيرات ResNet من YAML (على سبيل المثال، RTDETR("rtdetr-resnet50.yaml")) وقم بتدريبها أو ضبطها بدقة حسب الحاجة.

Link to this sectionحالات الاستخدام المثالية#

يعد RT-DETR مناسباً بشكل خاص للتطبيقات التي تتطلب كلاً من الدقة العالية والأداء الفوري:

Link to this sectionالاقتباسات والشكر#

إذا كنت تستخدم نموذج 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}
}

بالنسبة لـ RTDETRv2، يمكنك الاستشهاد بـ ورقة عام 2024:

اقتباس
@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 لإنشاء وصيانة هذا المورد القيم لمجتمع الرؤية الحاسوبية. مساهمتهم في المجال من خلال تطوير كاشف كائنات فوري يعتمد على Vision Transformers، وهو RT-DETR، محل تقدير كبير.

Link to this sectionالأسئلة الشائعة#

Link to this sectionما هو نموذج RT-DETR من Baidu وكيف يعمل؟#

نموذج RT-DETR (Real-Time Detection Transformer) من Baidu هو كاشف كائنات فوري متقدم مبني على بنية Vision Transformer. يقوم بمعالجة الميزات متعددة المقاييس بكفاءة من خلال فصل التفاعل داخل النطاق والدمج عبر النطاقات عبر مشفره الهجين الفعال. من خلال استخدام اختيار الاستعلام المدرك لـ IoU، يركز النموذج على الكائنات الأكثر صلة، مما يعزز دقة الاكتشاف. سرعة استدلاله القابلة للتكيف، التي تتحقق من خلال تعديل طبقات فك الترميز دون إعادة التدريب، تجعل RT-DETR مناسباً لمختلف سيناريوهات اكتشاف الكائنات الفورية. تعرف على المزيد حول ميزات RT-DETR في ورقة RT-DETR على Arxiv.

Link to this sectionكيف يمكنني استخدام نماذج RT-DETR المدربة مسبقاً التي توفرها Ultralytics؟#

يمكنك الاستفادة من واجهة برمجة تطبيقات Ultralytics Python لاستخدام نماذج PaddlePaddle RT-DETR المدربة مسبقاً. على سبيل المثال، لتحميل نموذج RT-DETR-l مدرب مسبقاً على مجموعة COCO val2017 وتحقيق معدل إطارات عالٍ على وحدة معالجة الرسومات T4 GPU، يمكنك استخدام المثال التالي:

مثال
from ultralytics import RTDETR

# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Link to this sectionلماذا يجب أن أختار نموذج RT-DETR من Baidu بدلاً من كاشفات الكائنات الفورية الأخرى؟#

يبرز نموذج RT-DETR من Baidu بسبب مشفره الهجين الفعال واختيار الاستعلام المدرك لـ IoU، والتي تقلل التكاليف الحسابية بشكل كبير مع الحفاظ على دقة عالية. قدرته الفريدة على ضبط سرعة الاستدلال باستخدام طبقات فك ترميز مختلفة دون إعادة تدريب تضيف مرونة كبيرة. هذا يجعله مفيداً بشكل خاص للتطبيقات التي تتطلب أداءً فورياً على محركات مسرعة مثل CUDA مع TensorRT، متفوقاً على العديد من كاشفات الكائنات الفورية الأخرى. كما توفر بنية transformer فهماً أفضل للسياق العالمي مقارنة بالكاشفات التقليدية القائمة على CNN.

Link to this sectionكيف يدعم RT-DETR سرعة الاستدلال القابلة للتكيف للتطبيقات الفورية المختلفة؟#

يسمح نموذج RT-DETR من Baidu بتعديلات مرنة لسرعة الاستدلال باستخدام طبقات فك ترميز مختلفة دون الحاجة إلى إعادة التدريب. تعد هذه القابلية للتكيف أمراً حاسماً لتوسيع نطاق الأداء عبر مهام اكتشاف الكائنات الفورية المختلفة. سواء كنت بحاجة إلى معالجة أسرع لاحتياجات دقة أقل أو اكتشافات أكثر دقة وأبطأ، يمكن تصميم RT-DETR لتلبية متطلباتك المحددة. هذه الميزة قيمة بشكل خاص عند نشر النماذج عبر أجهزة ذات قدرات حسابية متفاوتة.

Link to this sectionهل يمكنني استخدام نماذج RT-DETR مع أوضاع Ultralytics الأخرى، مثل التدريب والتحقق والتصدير؟#

نعم، تتوافق نماذج RT-DETR مع العديد من أوضاع Ultralytics بما في ذلك التدريب والتحقق والتنبؤ والتصدير. يمكنك الرجوع إلى التوثيق الخاص بكل منها للحصول على تعليمات مفصلة حول كيفية استخدام هذه الأوضاع: Train، و Val، و Predict، و Export. يضمن هذا سير عمل شاملاً لتطوير ونشر حلول اكتشاف الكائنات الخاصة بك. توفر بنية Ultralytics واجهة برمجة تطبيقات متسقة عبر بنيات النماذج المختلفة، مما يسهل العمل مع نماذج RT-DETR.

التعليقات