Link to this sectionخرائط التمثيل الحراري لتتبع الكائنات باستخدام Ultralytics YOLO26#
يعمل حل الخرائط الحرارية في Ultralytics YOLO26 على تتبع الكائنات عبر إطارات الفيديو وتراكب كثافة حركتها المتراكمة على كل إطار، بحيث تتوهج المناطق المزدحمة بألوان دافئة بينما تظل المناطق الهادئة باردة. وبفضل بنائه على تتبع الكائنات في YOLO26، فإنه يحول أي فيديو إلى خريطة نشاط مكانية تكشف تدفق حركة المرور، وحركة الحشود، ومناطق التوقف بمجرد استدعاء Python واحد أو أمر CLI.
Watch: Heatmaps using Ultralytics YOLO26
Link to this sectionلماذا نستخدم الخرائط الحرارية لتحليلات الفيديو؟#
- رصد أنماط النشاط في لمحة سريعة: تتراكم الكثافة حيثما يقضي الكائنات المتعقبة وقتها، لذا تبرز مسارات المرور المزدحمة، أو الأرفف الشائعة، أو اختناقات الحشود دون الحاجة إلى مراجعة يدوية لكل إطار على حدة.
- التتبع مدمج: يقوم الحل بتشغيل الكشف والتتبع في YOLO26 داخليًا، لذا لا يوجد خط تتبع منفصل يجب إعداده.
- العد في نفس العملية: مرر
regionلعد الكائنات التي تدخل وتخرج من منطقة ما أثناء بناء الخريطة الحرارية، مما يجمع بين مهمتي تحليلات في تشغيل واحد.
Link to this sectionتطبيقات العالم الحقيقي#
| النقل | التجزئة |
|---|---|
![]() | ![]() |
| خريطة Ultralytics YOLO الحرارية للنقل | خريطة Ultralytics YOLO الحرارية للبيع بالتجزئة |
Link to this sectionكيفية إنشاء خرائط حرارية باستخدام 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)]"Link to this sectionوسائط 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، تعود الحلول التي تتطلب منطقة إلى القيمة الافتراضية المحددة مسبقاً. |
يمكنك أيضاً تطبيق وسائط track مختلفة في حل Heatmap.
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
tracker | str | 'botsort.yaml' | يحدد خوارزمية التتبع المطلوب استخدامها. الخيارات المدمجة هي: botsort.yaml و bytetrack.yaml و ocsort.yaml و deepocsort.yaml و fasttrack.yaml و tracktrack.yaml. |
conf | float | 0.1 | يضبط عتبة الثقة للاكتشافات؛ تسمح القيم المنخفضة بتتبع المزيد من الكائنات ولكنها قد تتضمن إيجابيات كاذبة. |
iou | float | 0.7 | يضبط عتبة تقاطع الاتحاد (IoU) لتصفية الاكتشافات المتداخلة. |
classes | list | None | يصفي النتائج حسب فهرس الفئة. على سبيل المثال، classes=[0, 2, 3] يتتبع الفئات المحددة فقط. |
verbose | bool | True | يتحكم في عرض نتائج التتبع، مما يوفر مخرجاً مرئياً للكائنات المتعقبة. |
device | str | None | يحدد الجهاز للاستدلال (على سبيل المثال، cpu أو cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين وحدة المعالجة المركزية، أو وحدة معالجة رسومات محددة، أو أجهزة حوسبة أخرى لتنفيذ النموذج. |
بالإضافة إلى ذلك، تم سرد وسائط التصور المدعومة أدناه:
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
show | bool | False | إذا كان True، فإنه يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار. |
line_width | int or None | None | يحدد عرض خط صناديق التحديد. إذا كان None، يتم تعديل عرض الخط تلقائياً بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح. |
show_conf | bool | True | يعرض درجة الثقة لكل اكتشاف بجانب التصنيف. يوفر رؤية حول مدى يقين النموذج في كل اكتشاف. |
show_labels | bool | True | يعرض تصنيفات كل اكتشاف في المخرجات المرئية. يوفر فهماً فورياً للكائنات المكتشفة. |
Link to this sectionخرائط ألوان الخرائط الحرارية#
تقبل وسيطة colormap أي خريطة ألوان OpenCV. مرر الثابت من وحدة cv2، على سبيل المثال colormap=cv2.COLORMAP_INFERNO:
| اسم خريطة الألوان | الوصف |
|---|---|
cv2.COLORMAP_AUTUMN | خريطة ألوان الخريف |
cv2.COLORMAP_BONE | خريطة ألوان العظام |
cv2.COLORMAP_JET | خريطة ألوان Jet |
cv2.COLORMAP_WINTER | خريطة ألوان الشتاء |
cv2.COLORMAP_RAINBOW | خريطة ألوان قوس قزح |
cv2.COLORMAP_OCEAN | خريطة ألوان المحيط |
cv2.COLORMAP_SUMMER | خريطة ألوان الصيف |
cv2.COLORMAP_SPRING | خريطة ألوان الربيع |
cv2.COLORMAP_COOL | خريطة ألوان باردة |
cv2.COLORMAP_HSV | خريطة ألوان HSV (تدرج، تشبع، قيمة) |
cv2.COLORMAP_PINK | خريطة ألوان وردية |
cv2.COLORMAP_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 | خريطة ألوان الشفق |
cv2.COLORMAP_TWILIGHT_SHIFTED | خريطة ألوان الشفق المزيح |
cv2.COLORMAP_TURBO | خريطة ألوان Turbo |
cv2.COLORMAP_DEEPGREEN | خريطة ألوان أخضر داكن |
Link to this sectionكيف تعمل الخرائط الحرارية#
يعمل حل الخريطة الحرارية على توسيع فئة ObjectCounter. في أول إطار معالج، يتم إنشاء طبقة كثافة فارغة تطابق حجم الإطار. ثم يتم معالجة كل إطار في خطوتين:
- يكتشف تتبع YOLO26 كل كائن في الإطار ويتابعه
- لكل كائن يتم تتبعه، تزداد كثافة الخريطة الحرارية داخل منطقة دائرية تتمحور حول مربع الإحاطة الخاص به
مرة واحدة في كل إطار، يتم تسوية طبقة الكثافة المتراكمة وتلوينها بخريطة الألوان المحددة ودمجها مع الإطار الأصلي. يظهر التراكب بمجرد تتبع كائن واحد على الأقل؛ وتُعرض الإطارات التي لا تحتوي على كائنات متتبعة بدون تراكب الخريطة الحرارية.
والنتيجة هي تصور ديناميكي يتراكم بمرور الوقت، ويكشف عن أنماط حركة المرور، أو حركات الحشود، أو غيرها من السلوكيات المكانية في بيانات الفيديو الخاصة بك. عند ضبط region، يقوم الحل أيضًا بعد الكائنات التي تدخل وتخرج من تلك المنطقة أثناء بناء الخريطة الحرارية.
Link to this sectionالخلاصة#
يحول حل الخريطة الحرارية Ultralytics YOLO26 نتائج تتبع الكائنات إلى تراكب نشاط بديهي ببضعة أسطر من التعليمات البرمجية. وللمضي قدمًا، ادمجه مع عد الكائنات، أو استكشف حلول Ultralytics الأخرى، أو اقرأ عن وضع التتبع الأساسي.
Link to this sectionالأسئلة الشائعة#
Link to this sectionكيف يقوم Ultralytics YOLO26 بإنشاء خرائط حرارية من فيديو؟#
ينشئ Ultralytics YOLO26 خرائط حرارية من خلال تتبع الكائنات عبر إطارات الفيديو وتراكم قيمة كثافة في موقع كل كائن متتبع، ثم تلوين النتيجة ودمجها مع الإطار الأصلي. المناطق التي تظهر فيها الكائنات بشكل متكرر أو تتباطأ فيها تتراكم فيها كثافة أعلى وتظهر بألوان أكثر دفئًا. للحصول على خيارات التكوين، ارجع إلى قسم وسائط Heatmap().
Link to this sectionكيف أحفظ مخرجات الخريطة الحرارية في ملف فيديو؟#
استخدم cv2.VideoWriter الخاص بـ OpenCV واكتب results.plot_im لكل إطار معالج، كما هو موضح في المثال الرئيسي. تحتوي السمة plot_im على الإطار مع تطبيق تراكب الخريطة الحرارية بالفعل.
Link to this sectionهل يمكنني دمج الخرائط الحرارية مع عد الكائنات؟#
نعم. مرر وسيطة region إلى Heatmap() مع نقاط خط أو مستطيل أو مضلع، وسيقوم الحل بعد الكائنات التي تدخل وتخرج من تلك المنطقة أثناء بناء الخريطة الحرارية. تتضمن النتائج المعادة in_count و out_count وعدد الكائنات لكل فئة. راجع دليل عد الكائنات للحصول على تفاصيل تكوين المنطقة.
Link to this sectionكيف يمكنني تصور فئات كائنات محددة فقط في خرائط الحرارة باستخدام Ultralytics YOLO26؟#
مرر وسيطة classes إلى Heatmap() مع فهارس الفئات التي تريد الاحتفاظ بها. على سبيل المثال، classes=[0, 2] يبني الخريطة الحرارية فقط من الأشخاص والسيارات (فهارس فئة COCO 0 و 2):
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()Link to this sectionما الذي يجعل خرائط حرارة Ultralytics YOLO26 مختلفة عن أدوات تصور البيانات الأخرى مثل تلك الموجودة في OpenCV أو Matplotlib؟#
تدمج خرائط Ultralytics YOLO26 الحرارية اكتشاف الكائنات، والتتبع، وتراكم الكثافة، وعرض التراكب في استدعاء واحد، بينما تتطلب الأدوات العامة مثل OpenCV أو Matplotlib بناء ذلك الخط بنفسك. يعالج الحل تدفقات الفيديو في الوقت الفعلي ويدعم التتبع المستمر وخرائط الألوان القابلة للتخصيص بشكل جاهز. للحصول على تفاصيل حول النموذج الأساسي، راجع صفحة نموذج YOLO26.

