Real-time Inference
يعيد الاستدلال الآني كل تنبؤ قبل وصول المدخل التالي، مثلًا خلال 33 ms لكل إطار عند 30 FPS. ويغطي ميزانيات زمن الاستجابة وطرق التسريع.
الاستدلال الآني هو تشغيل نموذج مدرّب على مدخلات مباشرة وإرجاع كل تنبؤ قبل وصول المدخل التالي، بحيث يستطيع النظام التصرف ما دامت المعلومات حديثة. وفي كاميرا تبث 30 إطارًا في الثانية (FPS)، يتاح 33.3 مللي ثانية لكل إطار لكل ما يلزم، بدءًا من قراءة الصورة وصولًا إلى إنتاج النتيجة النهائية، بينما تنخفض المهلة إلى 16.7 ms عند 60 FPS. ولكل تطبيق مهلته الخاصة: إذ تعمل منظومة إدراك السيارة وكاميرا فحص حزام النقل ومرشح خلفية مكالمات الفيديو جميعها في الزمن الحقيقي، لكن بمهل مختلفة.
ميزانية زمن الاستجابة#
الزمن الذي يُعتد به هو زمن الاستدلال من البداية إلى النهاية: التقاط الإطار، ومعالجته مسبقًا بتغيير حجمه وتطبيعه، والتمرير الأمامي للنموذج، والمعالجة اللاحقة، مثل فك ترميز مربعات الإحاطة وقمع غير الأعظميات (NMS). عندما يتجاوز الإجمالي الفاصل الزمني بين الإطارات، تتكدس الإطارات غير المعالجة ويتزايد تأخر الناتج عن المشهد المباشر، لذا تتخلص مسارات المعالجة المباشرة عادةً من الإطارات المتقادمة، وتعمل دائمًا على أحدث إطار. تُميّز الحوسبة في الزمن الحقيقي بين الأنظمة ذات الزمن الحقيقي الصارم، التي يُعدّ فيها تفويت الموعد النهائي إخفاقًا، مثل وحدة التحكم في الوسادة الهوائية، والأنظمة ذات الزمن الحقيقي المرن التي تتحمل تفويت موعد نهائي بين الحين والآخر. تعمل معظم تطبيقات الرؤية الحاسوبية وفق نمط الزمن الحقيقي المرن: يؤدي إسقاط إطار إلى خفض جودة المخرجات للحظة، ثم تعود الجودة إلى مستواها مع الإطار التالي.
يبث هذا المقتطف فيديو مسجلًا عبر كاشف صغير، ويقارن متوسط الزمن لكل إطار بميزانية 30 FPS:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
video = "https://github.com/ultralytics/assets/releases/download/v0.0.0/decelera_portrait_min.mov"
# stream=True yields each frame's result as soon as it is ready
frame_times = []
for result in model(video, stream=True):
# Preprocess, inference, and postprocess time for this frame, in milliseconds
frame_times.append(sum(result.speed.values()))
mean_ms = sum(frame_times) / len(frame_times)
print(f"{mean_ms:.1f} ms per frame ({1000 / mean_ms:.0f} FPS); a 30 FPS camera allows 33.3 ms")يعني المتوسط الأقل من 33.3 ms أن النموذج يواكب كاميرا 30 FPS على الجهاز الذي شُغّل عليه.
الاستدلال الآني مقارنةً بالاستدلال الدفعي#
- الاستدلال الآني (المتصل): يعالج كل مدخل فور وصوله، وعادةً صورة واحدة في كل مرة، ويُقيّم وفق زمن استجابة كل تنبؤ على حدة. وتعتمد عليه أنظمة مساعدة السائق والتحكم بالروبوتات وتحليلات الفيديو المباشرة.
- الاستدلال الدفعي (غير المتصل): يجمع مدخلات كثيرة ويعالجها معًا، ويُقيّم وفق الإنتاجية بعدد المدخلات في الثانية والتكلفة. وتُعد إعادة فهرسة أرشيف صور طوال الليل أو تحليل لقطات الشهر الماضي مهام دفعية، كما تُبقي الدفعات الأكبر GPU أكثر انشغالًا، بينما ينتظر كل مدخل مدة أطول للحصول على نتيجته.
تقع الخوادم التي تتعامل مع تدفقات كثيرة من الكاميرات غالبًا بين النمطين، إذ تجمع إطارات من كاميرات مختلفة في دفعات صغيرة لزيادة الإنتاجية مع الالتزام بميزانية الإطارات لكل تدفق.
تطبيقات عملية#
- المركبات ذاتية القيادة: تقطع السيارة بسرعة 100 km/h مسافة 2.8 متر كل 100 ms، لذا يضيف زمن استجابة الإدراك مباشرةً إلى مسافة التوقف.
- فحص التصنيع: تكشف الكاميرات الموضوعة فوق حزام النقل العيوب في كل قطعة، ويجب أن تفعّل آلية الرفض قبل أن تتجاوزها القطعة المعيبة.
- الروبوتات: يعمل اكتشاف العوائق وتقدير الوضعية ضمن حلقة التحكم في الروبوت، ويؤدي بطء الإدراك إلى فرض حركة أبطأ.
- المؤثرات المرئية والواقع المعزز: ينفّذ تمويه الخلفية في مكالمات الفيديو والتراكبات في الواقع المعزز التجزئة أو التتبع على كل إطار، ويظهر أي تأخير على شكل تراكب يتخلف عن الشخص المتحرك.
تسريع النموذج بما يكفي#
- نموذج أصغر أو حجم إدخال أقل: ينفّذ إصدار النموذج الأصغر عمليات أقل لكل صورة، ولأن الحسابات الالتفافية تزداد تقريبًا مع عدد البكسلات، فإن خفض عرض الإدخال وارتفاعه إلى النصف يقللها إلى نحو الربع، مع بعض التأثير في صحة اكتشاف الأجسام الصغيرة.
- تكميم النماذج: يقلل تخزين الأوزان والتفعيلات بدقة FP16 أو INT8 بدلًا من FP32 حركة الذاكرة، ويستخدم وحدات حسابية أسرع. ويتطلب INT8 عادةً مجموعة صور معايرة للحد من فقدان الصحة.
- محركات الاستدلال: تدمج بيئة تشغيل مصممة لعائلة معينة من الأجهزة الطبقات وتختار نوى مضبوطة للجهاز، مثل TensorRT لوحدات GPU من NVIDIA أو Core ML لأجهزة Apple.
- الذكاء الاصطناعي الطرفي: يؤدي تشغيل النموذج على الكاميرا أو وحدة مضمّنة إلى إزالة زمن رحلة الشبكة ذهابًا وإيابًا لاستدعاء سحابي، وهو زمن قد يتجاوز ميزانية الإطار كاملةً على اتصال بطيء.
يغيّر وقت التشغيل والعتاد زمن الاستجابة بأكثر من رتبة مقدار: يستغرق نموذج YOLO26 nano 38.9 مللي ثانية لكل صورة بدقة 640 بكسل على CPU باستخدام ONNX، و1.7 مللي ثانية على GPU من NVIDIA T4 باستخدام TensorRT. يحوّل وضع التصدير في Ultralytics نموذج YOLO26 المدرّب إلى TensorRT وOpenVINO وLiteRT وتنسيقات أخرى، وتنتج وسيطة quantize=16 أو quantize=8 أوزان FP16 أو INT8 للجهاز المستهدف.










