الخرائط الحرارية لتتبّع الكائنات باستخدام Ultralytics YOLO26#
يتتبّع حل الخريطة الحرارية في Ultralytics YOLO26 الكائنات عبر إطارات الفيديو، ويعرض شدة حركتها المتراكمة على كل إطار؛ فتتوهّج المناطق المزدحمة بألوان دافئة، بينما تبقى المناطق الهادئة بألوان باردة. وبالاستناد إلى تتبّع الكائنات باستخدام YOLO26، يحوّل الحل أي فيديو إلى خريطة نشاط مكاني تكشف تدفق حركة المرور وتنقل الحشود ومناطق التوقف، باستدعاء واحد في Python أو بأمر واحد في CLI.
شاهد: كيفية إنشاء خرائط حرارية باستخدام Ultralytics YOLO26 | تصور نشاط الكائنات | رؤية الذكاء الاصطناعي في تجارة التجزئة 🚀
لماذا تستخدم الخرائط الحرارية لتحليلات الفيديو؟#
- اكتشاف أنماط النشاط بنظرة سريعة: تتراكم الشدة حيثما تقضي الكائنات المتتبّعة وقتًا، فتبرز مسارات الحركة الكثيفة أو الأرفف الشائعة أو اختناقات الحشود من دون مراجعة يدوية إطارًا بإطار.
- التتبّع مدمج: ينفّذ الحل داخليًا عمليات الكشف والتتبّع باستخدام YOLO26، فلا حاجة إلى إعداد مسار تتبّع منفصل.
- العدّ ضمن العملية نفسها: مرّر
regionلعدّ الكائنات الداخلة إلى منطقة والخارجة منها أثناء إنشاء الخريطة الحرارية، وبذلك تجمع مهمتي تحليل في تشغيل واحد.
تطبيقات في العالم الحقيقي#
| النقل والمواصلات | البيع بالتجزئة |
|---|---|
![]() | ![]() |
| الخريطة الحرارية للنقل باستخدام Ultralytics YOLO | الخريطة الحرارية للبيع بالتجزئة باستخدام Ultralytics YOLO |
كيفية إنشاء خرائط حرارية باستخدام Ultralytics YOLO#
شغّل حل الخريطة الحرارية على مصدر فيديو باستخدام CLI أو Python. يكتب مثال Python الإطارات المعالَجة في ملف فيديو للإخراج:
# Run a heatmap example
yolo solutions heatmap show=True
# Pass a source video
yolo solutions heatmap source="path/to/video.mp4"
# Pass a custom colormap
yolo solutions heatmap colormap=cv2.COLORMAP_INFERNO
# Heatmaps + object counting
yolo solutions heatmap region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"وسيطات Heatmap()#
إليك جدولًا بمعاملات Heatmap:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
model | str | None | مسار ملف نموذج Ultralytics YOLO. |
colormap | int | cv2.COLORMAP_DEEPGREEN | خريطة الألوان المستخدمة للخريطة الحرارية. |
show_in | bool | True | علم للتحكم في عرض أعداد الدخول على بث الفيديو. |
show_out | bool | True | علم للتحكم في عرض أعداد الخروج على بث الفيديو. |
region | list أو dict | None | النقاط التي تحدد منطقة الاهتمام، سواء أكانت قائمة من الصفوف (x, y) أم قاموسًا يربط أسماء المناطق بقوائم النقاط لمناطق متعددة (في RegionCounter فقط). عندما يكون None، تستخدم الحلول التي تتطلب منطقة إعدادًا افتراضيًا محددًا مسبقًا. |
line_width | int | 2 | سماكة الخط للصناديق والنقاط المفتاحية والعدادات التي يرسمها الحل. |
verbose | bool | True | يفعّل سجل الحل لكل إطار، ويشمل شكل المدخل وعدد الفئات وسرعة المعالجة. يظل استدعاء التتبع نفسه صامتًا دائمًا. |
يمكنك أيضًا تطبيق معاملات track مختلفة في الحل Heatmap.
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | يحدد خوارزمية التتبع المطلوب استخدامها. الخيارات المضمنة: botsort.yaml، bytetrack.yaml، ocsort.yaml، deepocsort.yaml، fasttrack.yaml، tracktrack.yaml. |
conf | float | 0.25 | يضبط عتبة الثقة للكشوفات؛ إذ تسمح القيم الأقل بتتبع مزيد من الكائنات، لكنها قد تتضمن إيجابيات كاذبة. |
iou | float | 0.7 | يضبط عتبة التقاطع على الاتحاد (IoU) لتصفية الكشوفات المتداخلة. |
classes | list | None | يصفّي النتائج حسب فهرس الفئة. على سبيل المثال، لا يتتبع classes=[0, 2, 3] إلا الفئات المحددة. |
device | str | None | يحدد الجهاز المستخدم للاستدلال (مثل cpu أو cuda:0 أو 0). ويتيح للمستخدمين الاختيار بين CPU أو GPU محددة أو أجهزة حوسبة أخرى لتنفيذ النموذج. |
imgsz | int or tuple | 640 | حجم صورة الاستدلال المستهدف: عدد صحيح لصورة مربعة، أو زوج (height, width). تُعدّل الأبعاد وفقًا لخطوة النموذج. |
max_det | int | 300 | الحد الأقصى لعدد الكشوفات التي يُحتفظ بها لكل إطار قبل التتبع، ما يحد من عدد الكائنات التي يعالجها الحل في المشاهد الكثيفة. |
quantize | int or str | None | دقة الاستدلال: 16 (FP16) أو 32/unset (FP32) لنماذج PyTorch وTorchScript خارج CPU؛ أما التنسيقات الأخرى فتستخدم الدقة التي يحددها الملف الاصطناعي وبيئة التشغيل. يحل هذا الوسيط محل الوسيطة half المهملة. |
بالإضافة إلى ذلك، تُدرج أدناه معاملات التصوّر المدعومة:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
show | bool | False | إذا كان True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. يفيد ذلك في الحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار. |
show_conf | bool | True | يعرض درجة الثقة لكل اكتشاف بجوار التسمية، ما يوضح مدى يقين النموذج بشأن كل اكتشاف. |
show_labels | bool | True | يعرض تسميات كل اكتشاف في المخرجات المرئية، ما يتيح فهم الكائنات المكتشفة فورًا. |
مخططات ألوان الخرائط الحرارية#
يقبل المعامل colormap أي مخطط ألوان في OpenCV. مرّر الثابت من الوحدة cv2، مثل colormap=cv2.COLORMAP_INFERNO:
| اسم مخطط الألوان | الوصف |
|---|---|
cv2.COLORMAP_AUTUMN | مخطط ألوان الخريف |
cv2.COLORMAP_BONE | مخطط ألوان العظم |
cv2.COLORMAP_JET | خريطة ألوان Jet |
cv2.COLORMAP_WINTER | خريطة ألوان Winter |
cv2.COLORMAP_RAINBOW | خريطة ألوان Rainbow |
cv2.COLORMAP_OCEAN | خريطة ألوان Ocean |
cv2.COLORMAP_SUMMER | خريطة ألوان Summer |
cv2.COLORMAP_SPRING | خريطة ألوان Spring |
cv2.COLORMAP_COOL | خريطة ألوان Cool |
cv2.COLORMAP_HSV | خريطة ألوان HSV (تدرج اللون، التشبع، القيمة) |
cv2.COLORMAP_PINK | خريطة ألوان Pink |
cv2.COLORMAP_HOT | خريطة ألوان Hot |
cv2.COLORMAP_PARULA | خريطة ألوان Parula |
cv2.COLORMAP_MAGMA | خريطة ألوان Magma |
cv2.COLORMAP_INFERNO | خريطة ألوان Inferno |
cv2.COLORMAP_PLASMA | خريطة ألوان Plasma |
cv2.COLORMAP_VIRIDIS | خريطة ألوان Viridis |
cv2.COLORMAP_CIVIDIS | خريطة ألوان Cividis |
cv2.COLORMAP_TWILIGHT | خريطة ألوان Twilight |
cv2.COLORMAP_TWILIGHT_SHIFTED | خريطة ألوان Twilight المنقولة |
cv2.COLORMAP_TURBO | خريطة ألوان Turbo |
cv2.COLORMAP_DEEPGREEN | خريطة ألوان Deep Green |
آلية عمل الخرائط الحرارية#
تمتد حلول الخرائط الحرارية من الفئة ObjectCounter. عند معالجة الإطار الأول، تُنشئ طبقة كثافة فارغة تطابق حجم الإطار. ثم يُعالج كل إطار في خطوتين:
- يكتشف التتبّع في YOLO26 كل كائن في الإطار ويتتبعه
- لكل كائن متتبَّع، تزداد كثافة الخريطة الحرارية ضمن منطقة دائرية مركزها صندوق الإحاطة الخاص به
مرة واحدة لكل إطار، تُطبَّع طبقة الكثافة المتراكمة، وتُلوَّن باستخدام خريطة الألوان المحددة، ثم تُدمج مع الإطار الأصلي. تظهر الطبقة المتراكبة بعد تتبّع كائن واحد على الأقل؛ وحتى ذلك الحين، تُعرض الإطارات دون طبقة الخريطة الحرارية المتراكبة.
والنتيجة تصور ديناميكي يتراكم بمرور الوقت، ويكشف أنماط حركة المرور أو تنقل الحشود أو غيرها من السلوكيات المكانية في بيانات الفيديو. عند تعيين region، يحصي الحل أيضًا الكائنات التي تدخل تلك المنطقة وتخرج منها أثناء تكوّن الخريطة الحرارية.
الخلاصة#
يحوّل حل الخرائط الحرارية Ultralytics YOLO26 نتائج تتبّع الكائنات إلى طبقة نشاط متراكبة يسهل فهمها، وذلك ببضعة أسطر من التعليمات البرمجية. وللتعمق أكثر، ادمجه مع عدّ الكائنات، واستكشف حلول Ultralytics الأخرى، أو اقرأ عن وضع التتبّع الأساسي.
الأسئلة الشائعة#
ينشئ Ultralytics YOLO26 خرائط حرارية بتتبّع الكائنات عبر إطارات الفيديو وتجميع قيمة كثافة في موقع كل كائن متتبَّع، ثم تلوين النتيجة ودمجها مع الإطار الأصلي. تتراكم كثافة أعلى في المناطق التي تظهر فيها الكائنات بكثرة أو تمكث فيها طويلًا، وتُمثَّل بألوان أكثر دفئًا. للاطلاع على خيارات الإعداد، راجع قسم وسيطات
Heatmap().استخدم
cv2.VideoWriterمن OpenCV واكتبresults.plot_imلكل إطار معالَج، كما هو موضح في المثال الرئيسي. تحتوي السمةplot_imعلى الإطار بعد تطبيق طبقة الخريطة الحرارية المتراكبة عليه.نعم. مرّر وسيط
regionإلىHeatmap()مع نقاط خط أو مستطيل أو مضلع، وسيحصي الحل الكائنات التي تدخل تلك المنطقة وتخرج منها أثناء تكوّن الخريطة الحرارية. تتضمن النتائج المعادةin_countوout_count، بالإضافة إلى أعداد الكائنات حسب الفئة. راجع دليل عدّ الكائنات للاطلاع على تفاصيل إعداد المنطقة.مرّر وسيط
classesإلىHeatmap()مع فهارس الفئات التي تريد الاحتفاظ بها. على سبيل المثال، ينشئclasses=[0, 2]الخريطة الحرارية اعتمادًا على الأشخاص والسيارات فقط (فهارس الفئات 0 و2 في COCO):import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") heatmap = solutions.Heatmap(show=True, model="yolo26n.pt", classes=[0, 2]) while cap.isOpened(): success, im0 = cap.read() if not success: break results = heatmap(im0) cap.release() cv2.destroyAllWindows()تدمج الخرائط الحرارية في Ultralytics YOLO26 اكتشاف الكائنات والتتبّع وتجميع الكثافة وعرض الطبقة المتراكبة في استدعاء واحد، بينما تتطلب منك الأدوات العامة مثل OpenCV أو Matplotlib إنشاء مسار المعالجة بنفسك. يعالج الحل تدفقات الفيديو في الوقت الفعلي، ويدعم التتبّع المستمر وخرائط الألوان القابلة للتخصيص مباشرةً. للاطلاع على تفاصيل النموذج الأساسي، راجع صفحة نموذج YOLO26.

