Real-time Inference
استكشف قوة الاستدلال في الوقت الفعلي للحصول على تنبؤات ذكاء اصطناعي فورية. تعلم كيف توفر Ultralytics YOLO26 نتائج ذات زمن انتقال منخفض للأجهزة الطرفية والروبوتات.
يشير الاستدلال في الوقت الفعلي إلى العملية التي يقبل فيها نموذج التعلم الآلي (ML) المُدرب بيانات إدخال حية ويولد تنبؤات بشكل شبه فوري. على عكس المعالجة دون اتصال بالإنترنت، حيث يتم جمع البيانات وتحليلها دفعة واحدة في وقت لاحق، يحدث الاستدلال في الوقت الفعلي أثناء التنقل، مما يمكّن الأنظمة من التفاعل مع بيئتها بسرعة ومرونة. تعتبر هذه القدرة نبض تطبيقات الذكاء الاصطناعي (AI) الحديثة، مما يسمح للأجهزة بإدراك البيانات وتفسيرها والتصرف بناءً عليها في غضون مللي ثانية.
أهمية زمن الوصول المنخفض#
المقياس الأساسي لتقييم الأداء في الوقت الفعلي هو زمن انتقال الاستدلال. يقيس هذا التأخير الزمني بين اللحظة التي يتم فيها إدخال البيانات في النموذج - مثل إطار من كاميرا فيديو - واللحظة التي ينتج فيها النموذج مخرجاً، مثل مربع محيط أو تسمية تصنيف. لكي يعتبر التطبيق في "الوقت الفعلي"، يجب أن يكون زمن الانتقال منخفضاً بما يكفي ليطابق سرعة تدفق البيانات القادمة.
على سبيل المثال، في مهام فهم الفيديو التي تعمل بمعدل 30 إطاراً في الثانية (FPS)، يمتلك النظام ميزانية زمنية صارمة تقارب 33 مللي ثانية لمعالجة كل إطار. إذا استغرق الاستدلال وقتاً أطول، فإن النظام يدخل تأخيراً، مما قد يؤدي إلى فقدان الإطارات أو تأخر الاستجابات. غالباً ما يتطلب تحقيق ذلك تسريعاً للعتاد باستخدام GPUs أو أجهزة ذكاء اصطناعي طرفي (Edge AI) المتخصصة مثل NVIDIA Jetson.
الاستدلال في الوقت الفعلي مقابل استدلال الدفعات (Batch Inference)#
من المفيد تمييز سير العمل في الوقت الفعلي عن المعالجة المجمعة. وبينما يتضمن كلاهما توليد التنبؤات، إلا أن أهدافهما وهياكلهم تختلف بشكل كبير:
- الاستدلال في الوقت الفعلي: يمنح الأولوية لانخفاض زمن الانتقال. فهو يعالج نقاط بيانات فردية (أو دفعات صغيرة جداً) بمجرد وصولها. هذا أمر ضروري للتطبيقات التفاعلية مثل المركبات ذاتية القيادة، حيث يجب على السيارة اكتشاف أحد المشاة فوراً للفرملة في الوقت المناسب.
- الاستدلال المجمع: يمنح الأولوية للإنتاجية العالية. فهو يجمع حجماً كبيراً من البيانات ويعالجها دفعة واحدة. وهذا مناسب للمهام غير العاجلة، مثل إنشاء تقارير المخزون الليلية أو تحليل اتجاهات البيانات الضخمة التاريخية.
تطبيقات العالم الحقيقي#
لقد غيرت القدرة على اتخاذ قرارات في أجزاء من الثانية العديد من الصناعات من خلال تمكين الأتمتة في البيئات الديناميكية.
- التصنيع الذكي: في مجال الذكاء الاصطناعي في التصنيع، تستخدم الكاميرات الموضوعة فوق سيور النقل الاستدلال في الوقت الفعلي لإجراء مراقبة جودة آلية. يمكن لنموذج اكتشاف الكائنات تحديد العيوب أو الاجسام الغريبة فوراً في المنتجات المتحركة بسرعات عالية. إذا تم اكتشاف شذوذ، يقوم النظام بتشغيل ذراع آلية لإزالة العنصر فوراً، مما يضمن وصول البضائع عالية الجودة وحدها إلى التغليف.
- المراقبة والأمن: تعتمد أنظمة الأمان الحديثة على رؤية الكمبيوتر لمراقبة المحيطات. بدلاً من مجرد تسجيل اللقطات، تقوم هذه الكاميرات بتشغيل اكتشاف الأشخاص أو التعرف على الوجه في الوقت الفعلي لتنبيه الأفراد الأمنيين بالوصول غير المصرح به في اللحظة التي يحدث فيها.
- الروبوتات: في مجال الذكاء الاصطناعي في الروبوتات، تستخدم الروبوتات تقدير الوضعية للتنقل في المساحات الفيزيائية المعقدة. يجب على روبوت المستودع استنتاج موقع العقبات والعمال البشريين باستمرار لتخطيط مساره بأمان وكفاءة.
التحسين والنشر#
يتطلب نشر النماذج لتطبيقات الوقت الفعلي غالباً تحسينًا لضمان عملها بكفاءة على عتاد الهدف. تقنيات مثل تكميم النموذج تقلل من دقة أوزان النموذج (على سبيل المثال، من float32 إلى int8) لتقليل استخدام الذاكرة وزيادة سرعة الاستدلال مع الحد الأدنى من التأثير على الدقة.
يمكن للمطورين الاستفادة من Ultralytics Platform لتبسيط هذه العملية. تبسط المنصة التدريب وتتيح للمستخدمين تصدير النماذج إلى تنسيقات مُحسّنة مثل TensorRT لوحدات معالجة الرسومات من NVIDIA، أو OpenVINO لوحدات المعالجة المركزية من Intel، أو TFLite للنشر على الهواتف المحمولة.
مثال برمجي#
The following Python snippet demonstrates how to run real-time inference on a webcam feed using the ultralytics library. It uses the YOLO26 Nano model, which is engineered specifically for high-speed performance on edge devices.
from ultralytics import YOLO
# Load the YOLO26 Nano model, optimized for speed and real-time tasks
model = YOLO("yolo26n.pt")
# Run inference on the default webcam (source="0")
# 'stream=True' returns a generator for memory-efficient processing
# 'show=True' displays the video feed with bounding boxes in real-time
results = model.predict(source="0", stream=True, show=True)
# Iterate through the generator to process frames as they arrive
for result in results:
# Example: Print the number of objects detected in the current frame
print(f"Detected {len(result.boxes)} objects")





