كاشف الأجسام الآني القائم على Transformer للرؤية من Baidu#
نظرة عامة#
يُعدّ محوّل الكشف الآني (RT-DETR)، الذي طوّرته Baidu، كاشف أجسام متطورًا من طرف إلى طرف، ويوفر أداءً آنيًا مع الحفاظ على دقة عالية. ويستند إلى فكرة DETR (الإطار الخالي من NMS)، مع تقديم عمود فقري قائم على الالتفاف ومشفّر هجين فعّال لتحقيق سرعة آنية. يعالج RT-DETR الميزات متعددة المقاييس بكفاءة من خلال فصل التفاعل داخل المقياس عن الدمج عبر المقاييس. ويتسم النموذج بقدرة عالية على التكيّف، إذ يدعم ضبط سرعة الاستدلال بمرونة باستخدام طبقات فك ترميز مختلفة من دون إعادة التدريب. ويتفوق RT-DETR على الواجهات الخلفية المسرّعة مثل CUDA مع TensorRT، متجاوزًا العديد من كاشفات الأجسام الآنية الأخرى.
Watch: How to Use Baidu's RT-DETR for Object Detection | Inference and Benchmarking with Ultralytics 🚀
نظرة عامة على RT-DETR من Baidu. يوضح مخطط بنية نموذج RT-DETR المراحل الثلاث الأخيرة من العمود الفقري {S3, S4, S5} بوصفها مدخلًا إلى المشفّر. يحوّل المشفّر الهجين الفعّال الميزات متعددة المقاييس إلى تسلسل من ميزات الصورة من خلال تفاعل الميزات داخل المقياس (AIFI) ووحدة دمج الميزات عبر المقاييس (CCFM). ويُستخدم اختيار الاستعلامات الواعي بـ IoU لاختيار عدد ثابت من ميزات الصورة لتكون استعلامات الأجسام الأولية لفك الترميز. وأخيرًا، يعمل فك الترميز المزود برؤوس تنبؤ مساعدة على تحسين استعلامات الأجسام تكراريًا لإنشاء الصناديق ودرجات الثقة (المصدر).
الميزات الرئيسية#
- المشفّر الهجين الفعّال: يستخدم RT-DETR من Baidu مشفّرًا هجينًا فعّالًا يعالج الميزات متعددة المقاييس من خلال فصل التفاعل داخل المقياس عن الدمج عبر المقاييس. ويقلل هذا التصميم الفريد القائم على Transformer للرؤية من التكاليف الحسابية، ويتيح كشف الأجسام في الوقت الفعلي.
- اختيار الاستعلامات الواعي بـ IoU: يحسّن RT-DETR من Baidu تهيئة استعلامات الأجسام باستخدام اختيار الاستعلامات الواعي بـ IoU. ويتيح ذلك للنموذج التركيز على الأجسام الأكثر صلة في المشهد، مما يعزز دقة الكشف.
- سرعة الاستدلال القابلة للتكيّف: يدعم RT-DETR من Baidu ضبط سرعة الاستدلال بمرونة باستخدام طبقات فك ترميز مختلفة من دون الحاجة إلى إعادة التدريب. ويسهّل هذا التكيّف التطبيق العملي في مختلف سيناريوهات كشف الأجسام الآني.
- إطار خالٍ من NMS: استنادًا إلى DETR، يلغي RT-DETR الحاجة إلى المعالجة اللاحقة لـ قمع غير الأعظم، مما يبسط مسار الكشف وقد يحسن الكفاءة.
- كشف خالٍ من المراسي: بصفته كاشفًا خاليًا من المراسي، يبسط RT-DETR عملية الكشف وقد يحسن التعميم عبر مجموعات البيانات المختلفة.
النماذج المدرّبة مسبقًا#
توفر Python API من Ultralytics نماذج RT-DETR مُدرَّبة مسبقًا من PaddlePaddle بمقاييس مختلفة:
- RT-DETR-L: 53.0% AP على COCO val2017، و114 FPS على وحدة معالجة الرسومات T4
- RT-DETR-X: 54.8% AP على COCO val2017، و74 FPS على وحدة معالجة الرسومات T4
بالإضافة إلى ذلك، أصدرت Baidu الإصدار RTDETRv2 في يوليو 2024، الذي يواصل تحسين البنية الأصلية مع مقاييس أداء محسّنة.
أمثلة على الاستخدام#
يقدم هذا المثال أمثلة بسيطة على تدريب 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")عيّن 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أربع طبقات. على وحدة معالجة الرسومات T4 مع TensorRT v10.11، يحسّن RT-DETR-L الأداء من 8.0 ms / 52.7 mAP إلى 7.4 ms / 52.5 mAP باستخدام أربع طبقات.num_queries: قلّل استعلامات الأجسام (الافتراضي: 300). ويمكن أن يؤدي خفض العدد إلى 100 إلى بلوغ 7.4 ms / 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)المهام والأوضاع المدعومة#
يعرض هذا الجدول أنواع النماذج، وأوزان التدريب المسبق المحددة، والمهام التي يدعمها كل نموذج، والأوضاع المختلفة (Train، وVal، وPredict، وExport) المدعومة، والمشار إليها برمز تعبيري ✅.
| نوع النموذج | الأوزان المدرّبة مسبقًا | المهام المدعومة | التدريب | التحقق | الاستدلال | التصدير |
|---|---|---|---|---|---|---|
| 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}
}بالنسبة إلى 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 على إنشاء هذا المورد القيّم لمجتمع الرؤية الحاسوبية وصيانته. ونقدّر تقديرًا كبيرًا إسهامهم في هذا المجال من خلال تطوير كاشف الأجسام الآني القائم على Transformer للرؤية، RT-DETR.
الأسئلة الشائعة#
RT-DETR من Baidu (محوّل الكشف الآني) هو كاشف أجسام آني متقدم مبني على بنية Transformer للرؤية. ويعالج الميزات متعددة المقاييس بكفاءة من خلال فصل التفاعل داخل المقياس عن الدمج عبر المقاييس باستخدام المشفّر الهجين الفعّال. ومن خلال استخدام اختيار الاستعلامات الواعي بـ IoU، يركز النموذج على الأجسام الأكثر صلة، مما يعزز دقة الكشف. وتجعله سرعة الاستدلال القابلة للتكيّف، التي تتحقق عبر ضبط طبقات فك الترميز من دون إعادة التدريب، مناسبًا لمختلف سيناريوهات كشف الأجسام الآني. تعرّف على المزيد حول ميزات RT-DETR في ورقة RT-DETR على Arxiv.
يمكنك الاستفادة من Python API من Ultralytics لاستخدام نماذج RT-DETR المُدرَّبة مسبقًا من PaddlePaddle. فعلى سبيل المثال، لتحميل نموذج RT-DETR-l مُدرَّب مسبقًا على COCO val2017 وتحقيق FPS مرتفع على وحدة معالجة الرسومات T4، يمكنك استخدام المثال التالي:
مثال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 من Baidu بمشفّره الهجين الفعّال واختيار الاستعلامات الواعي بـ IoU، اللذين يقللان التكاليف الحسابية بدرجة كبيرة مع الحفاظ على دقة عالية. وتضيف قدرته الفريدة على ضبط سرعة الاستدلال باستخدام طبقات فك ترميز مختلفة من دون إعادة التدريب مرونة كبيرة. وهذا يجعله مفيدًا بوجه خاص للتطبيقات التي تتطلب أداءً آنيًا على واجهات خلفية مسرّعة مثل CUDA مع TensorRT، متفوقًا على العديد من كاشفات الأجسام الآنية الأخرى. كما توفر بنية Transformer فهمًا أفضل للسياق العام مقارنةً بالكاشفات التقليدية القائمة على 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 المختلفة، بما في ذلك التدريب والتحقق والتنبؤ والتصدير. ويمكنك الرجوع إلى الوثائق الخاصة بكل وضع للحصول على تعليمات مفصلة حول كيفية استخدام هذه الأوضاع: Train، وVal، وPredict، وExport. ويضمن ذلك سير عمل شاملًا لتطوير حلول كشف الأجسام ونشرها. ويوفر إطار Ultralytics واجهة API متسقة عبر بنيات النماذج المختلفة، مما يسهّل العمل مع نماذج RT-DETR.