Yolo فيجن شنتشن
شنتشن
انضم الآن
مسرد المصطلحات

كاشفات الكائنات ثنائية المرحلة

استكشف آليات كاشفات الكائنات ثنائية المراحل، مع التركيز على اقتراحات المناطق والتصنيف. تعرف على سبب ريادة النماذج الحديثة مثل Ultralytics في الوقت الحالي.

أجهزة الكشف عن الأجسام ثنائية المراحل هي فئة متطورة من بنى التعلم العميق (DL) المستخدمة في الرؤية الحاسوبية لتحديد العناصر الموجودة في الصورة وتحديد مواقعها. على عكس نظيراتها ذات المرحلة الواحدة، التي تقوم بالكشف في مرور واحد، تقسم هذه النماذج المهمة إلى مرحلتين متميزتين: اقتراح المنطقة وتصنيف الكائنات. تم ابتكار هذا النهج المزدوج لإعطاء الأولوية لدقة تحديد الموقع العالية، مما يجعل هذه الكاشفات ذات أهمية تاريخية في تطور الذكاء الاصطناعي (AI). من خلال فصل "المكان" عن "الشيء"، غالبًا ما تحقق أجهزة الكشف ذات المرحلتين دقة فائقة، خاصةً على الأجسام الصغيرة أو المحجوبة، على الرغم من أن ذلك يأتي عادةً على حساب زيادة الموارد الحسابية وزيادة زمن الاستدلال.

عملية المرحلتين

تعتمد بنية الكاشف ذي المرحلتين على سير عمل متسلسل يحاكي الطريقة التي قد يتفحص بها الإنسان بعناية مشهدًا ما.

  1. اقتراح المنطقة: في المرحلة الأولى، يقوم النموذج بمسح الصورة المدخلة لتحديد المناطق المحتملة التي قد توجد فيها كائنات. يقوم مكون يُعرف باسم شبكة اقتراح المنطقة (RPN) بإنشاء مجموعة متفرقة من المربعات المرشحة ، والتي يشار إليها غالبًا باسم مناطق الاهتمام (RoIs). تقوم هذه المرحلة بتصفية معظم الخلفية، مما يسمح للشبكة بتركيز قوة المعالجة على المناطق ذات الصلة.
  2. التصنيف والتحسين: في المرحلة الثانية، يستخرج النموذج السمات من هذه المناطق المرشحة باستخدام الشبكات العصبية التلافيفية (CNNs). ثم يخصص تسمية فئة محددة (مثل "شخص" أو "مركبة") لكل منطقة ويحسن إحداثيات المربع المحيط ليحيط بالكائن بشكل محكم.

ومن الأمثلة البارزة على هذه البنية عائلة R-CNN، وتحديداً Faster R-CNN و Mask R-CNN، اللذان وضعا معايير المقاييس الأكاديمية لعدة سنوات.

مقارنة مع أجهزة الكشف أحادية المرحلة

من المفيد التمييز بين النماذج ذات المرحلتين و أجهزة الكشف عن الأجسام ذات المرحلة الواحدة مثل Single Shot MultiBox Detector (SSD)YOLO Ultralytics YOLO . في حين أن النماذج ذات المرحلتين تعطي الأولوية للدقة من خلال معالجة المناطق بشكل منفصل، فإن النماذج ذات المرحلة الواحدة تضع الكشف في إطار مشكلة انحدار واحدة، حيث تقوم بتعيين بكسلات الصورة مباشرة إلى إحداثيات المربع المحيط و احتمالات الفئة.

تاريخياً، أدى ذلك إلى وجود مفاضلة: كانت النماذج ثنائية المراحل أكثر دقة ولكنها أبطأ، في حين كانت النماذج أحادية المرحلة أسرع ولكنها أقل دقة. ومع ذلك، أدى التقدم الحديث إلى طمس هذه الحدود. تستخدم النماذج الحديثة مثل YOLO26 الآن بنى متكاملة تنافس دقة أجهزة الكشف ثنائية المراحل مع الحفاظ على السرعة اللازمة للاستدلال في الوقت الفعلي.

تطبيقات واقعية

نظرًا لتركيزها على الدقة والاسترجاع ، غالبًا ما تُفضل أجهزة الكشف ثنائية المراحل في السيناريوهات التي تكون فيها السلامة والتفاصيل أكثر أهمية من سرعة المعالجة الأولية.

  • التصوير التشخيصي الطبي: في مجال الذكاء الاصطناعي في الرعاية الصحية، قد يكون إغفال التشخيص أمراً بالغ الأهمية. غالباً ما تستخدم البنى ذات المرحلتين في تحليل الصور الطبية detect الشاذة مثل الأورام في الأشعة السينية أو التصوير بالرنين المغناطيسي. تساعد العملية متعددة الخطوات على ضمان عدم إغفال الآفات الصغيرة على خلفية الأنسجة المعقدة، مما يوفر للأطباء الأشعة مساعدة آلية عالية الثقة.
  • الفحص الصناعي عالي الدقة: في التصنيع الذكي، تستخدم أنظمة الفحص البصري الآلي هذه النماذج لتحديد العيوب المجهرية على خطوط التجميع. على سبيل المثال، يتطلب اكتشاف كسر دقيق في شفرة التوربين دقة عالية في التقاطع فوق الاتحاد (IoU) التي توفرها أجهزة الكشف ثنائية المراحل، مما يضمن أن المكونات الخالية من العيوب فقط هي التي تنتقل إلى المرحلة التالية من الإنتاج.

تنفيذ الكشف الحديث

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

يوضح Python التالي Python كيفية تحميل وتشغيل الاستدلال باستخدام سير عمل حديث للكشف عن الكائنات مع ultralytics، مما يحقق نتائج عالية الدقة مماثلة للطرق التقليدية ذات المرحلتين ولكن بكفاءة أكبر :

from ultralytics import YOLO

# Load the YOLO26 model, a modern high-accuracy detector
model = YOLO("yolo26n.pt")

# Run inference on an image to detect objects
results = model("https://ultralytics.com/images/bus.jpg")

# Process results (bounding boxes, classes, and confidence scores)
for result in results:
    result.show()  # Display the detection outcomes
    print(result.boxes.conf)  # Print confidence scores

انضم إلى مجتمع Ultralytics

انضم إلى مستقبل الذكاء الاصطناعي. تواصل وتعاون وانمو مع المبتكرين العالميين

انضم الآن