Object Detection Architectures
استكشف بنيات اكتشاف الأجسام، من الشبكات الأساسية إلى الرؤوس. تعرّف على كيفية توفير Ultralytics YOLO26 سرعة ودقة متميزتين للرؤية الحاسوبية في الوقت الفعلي.
بنى كشف الكائنات هي مخططات هيكلية للشبكات العصبية المستخدمة لتحديد العناصر وتحديد مواقعها ضمن البيانات المرئية. وفي المجال الأوسع لـالرؤية الحاسوبية (CV)، تحدد هذه البنى كيفية «رؤية» الآلة، وذلك بتحويل بيانات البكسلات الخام إلى رؤى ذات معنى. وعلى عكس نماذج التصنيف الأساسية التي تضع تسمية للصورة فحسب، صُممت بنية كشف الكائنات لإخراج مربّع إحاطة إلى جانب تسمية الفئة ودرجة الثقة لكل كائن مميز تعثر عليه. ويحدد هذا التصميم البنيوي سرعة النموذج ودقته وكفاءته الحسابية، ما يجعله عاملًا حاسمًا عند اختيار نموذج لـالاستدلال في الزمن الحقيقي أو التحليل عالي الدقة.
المكوّنات الأساسية للبنية#
رغم اختلاف التصاميم المحددة، تشترك معظم البنى الحديثة في ثلاثة مكونات أساسية: العمود الفقري والعنق والرأس. يعمل العمود الفقري بوصفه مستخرج السمات الأساسي. ويكون عادةً شبكة عصبية التفافية (CNN) مدرّبة مسبقًا على مجموعة بيانات كبيرة مثل ImageNet، ومسؤولة عن تحديد الأشكال والحواف والأنسجة الأساسية. ومن الخيارات الشائعة للأعمدة الفقرية ResNet وCSPDarknet.
يربط العنق العمود الفقري بطبقات الإخراج النهائية. ويتمثل دوره في مزج السمات من مراحل مختلفة من العمود الفقري ودمجها، لضمان قدرة النموذج على كشف كائنات بأحجام متنوعة، وهو مفهوم يُعرف بدمج السمات متعددة المقاييس. وغالبًا ما تستخدم البنى شبكة هرم السمات (FPN) أو شبكة تجميع المسارات (PANet) في هذا الموضع لإثراء المعلومات الدلالية المرسلة إلى طبقات التنبؤ. وأخيرًا، يعالج رأس الكشف هذه السمات المدمجة للتنبؤ بفئة كل كائن وإحداثيات موقعه.
التطور: الكواشف ذات المرحلتين مقابل ذات المرحلة الواحدة#
تاريخيًا، قُسّمت البنى إلى فئتين رئيسيتين. تقترح الكواشف ذات المرحلتين، مثل عائلة R-CNN، أولاً مناطق اهتمام (RoIs) يُحتمل وجود كائنات فيها، ثم تصنّف تلك المناطق في خطوة ثانية. ورغم دقتها عمومًا، فإنها غالبًا ما تكون مكلفة حسابيًا أكثر من اللازم للأجهزة الطرفية.
في المقابل، تتعامل الكواشف ذات المرحلة الواحدة مع الكشف بوصفه مسألة انحدار بسيطة، فتحوّل بكسلات الصورة مباشرةً إلى إحداثيات مربعات الإحاطة واحتمالات الفئات في تمريرة واحدة. وقد أحدث هذا النهج، الذي ابتكرته عائلة YOLO (أنت ترى مرة واحدة)، ثورة في المجال بإتاحة الأداء في الزمن الحقيقي. وتُوّجت التطورات الحديثة بنماذج مثل YOLO26، التي لا تقدم سرعة فائقة فحسب، بل اعتمدت أيضًا بنى شاملة من البداية إلى النهاية وخالية من NMS. ومن خلال الاستغناء عن المعالجة اللاحقة باستخدام كبح غير الأعظمية (NMS)، تقلل هذه البنى الأحدث تفاوت زمن الاستجابة، وهو أمر بالغ الأهمية للأنظمة الحساسة للسلامة.
تطبيقات عملية#
يؤثر اختيار البنية مباشرةً في نجاح حلول الذكاء الاصطناعي في مختلف الصناعات.
- أتمتة البيع بالتجزئة: في المتاجر الكبرى الذكية، تتيح البنى الفعالة ذات المرحلة الواحدة أنظمة دفع آلية تتعرف فورًا على المنتجات الموجودة على الحزام الناقل أو في عربة التسوق، ما يقلل وقت الانتظار والأخطاء البشرية.
- التشخيص الطبي: تُستخدم البنى عالية الدقة في تحليل الصور الطبية للكشف عن الحالات الشاذة، مثل الأورام في صور الأشعة السينية أو الرنين المغناطيسي. وفي هذه الحالة، تكون قدرة البنية على الاحتفاظ بالتفاصيل الدقيقة أهم من سرعة المعالجة الخام.
التمييز بين المصطلحات ذات الصلة#
من المهم التمييز بين بنى الكشف ومهام الرؤية الحاسوبية المشابهة:
- مقابل تصنيف الصور: تسند بنية تصنيف الصور (مثل VGG أو EfficientNet) تسمية واحدة إلى الصورة بأكملها (مثل «قطة»). لكنها لا تخبرك بمكان القطة أو ما إذا كانت هناك قطط متعددة، وهو الدور الأساسي لبنى الكشف.
- مقابل تقسيم الكائنات: بينما يحيط الكشف بالكائن بمربع، يحدد تقسيم الكائنات المحيط الدقيق لكل كائن على مستوى البكسل (القناع). وغالبًا ما تكون بنى التقسيم امتدادات لبنى الكشف (مثل إضافة فرع للقناع إلى رأس الكشف).
التنفيذ باستخدام Ultralytics#
جرّدت أطر العمل الحديثة هذه البنى من تعقيداتها، ما يتيح للمطورين الاستفادة من أحدث التصاميم باستخدام أقل قدر من التعليمات البرمجية. باستخدام الحزمة ultralytics، يمكنك تحميل نموذج YOLO26 مدرّب مسبقًا وإجراء الاستدلال فورًا. وللفرق التي تسعى إلى إدارة مجموعات بياناتها وتدريب بنى مخصصة على السحابة، تبسّط منصة Ultralytics مسار عمل MLOps بأكمله.
from ultralytics import YOLO
# تحميل نموذج YOLO26n (إصدار nano للسرعة)
model = YOLO("yolo26n.pt")
# تنفيذ الاستدلال على مصدر صورة
# يستخدم هذا بنية النموذج لكشف الكائنات
results = model("https://ultralytics.com/images/bus.jpg")
# اعرض النتائج
results[0].show()









