خرائط التمثيل الحراري لتتبع الكائنات باستخدام Ultralytics YOLO26#
تتعقب Heatmap solution في Ultralytics YOLO26 الكائنات عبر إطارات الفيديو وتراكب شدة حركة المتراكمة الخاصة بها على كل إطار، بحيث توهج المناطق المزدحمة بألوان دافئة بينما تظل المناطق الهادئة باردة. تم بناؤه على YOLO26 object tracking، ويحول أي فيديو إلى خريطة نشاط مكاني تكشف عن تدفق حركة المرور، وحركة الحشود، ومناطق البقاء باستخدام استدعاء Python واحد أو أمر CLI.
Watch: Heatmaps using 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 | 'botsort.yaml' | يحدد خوارزمية التتبع المراد استخدامها. الخيارات المضمنة: botsort.yaml، وbytetrack.yaml، وocsort.yaml، وdeepocsort.yaml، وfasttrack.yaml، وtracktrack.yaml. |
conf | float | 0.25 | يضبط عتبة الثقة للاكتشافات؛ تسمح القيم المنخفضة بتتبع المزيد من الكائنات ولكنها قد تتضمن إيجابيات كاذبة. |
iou | float | 0.7 | يحدد عتبة Intersection over Union (IoU) لتصفية عمليات الكشف المتداخلة. |
classes | list | None | يقوم بتصفية النتائج حسب الفهرس الفئة. على سبيل المثال، يقوم classes=[0, 2, 3] بتتبع الفئات المحددة فقط. |
device | str | None | يحدد الجهاز للاستدلال (مثل cpu أو cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين وحدة المعالجة المركزية (CPU)، أو وحدة معالجة رسومية (GPU) محددة، أو أجهزة الحوسبة الأخرى لتنفيذ النموذج. |
بالإضافة إلى ذلك، تم سرد وسائط التصور المدعومة أدناه:
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
show | bool | False | إذا كان True، يعرض الصور أو الفيديوهات المشروحة في نافذة. مفيد للحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار. |
show_conf | bool | True | يعرض درجة الثقة لكل اكتشاف بجانب التصنيف. يوفر رؤية حول مدى يقين النموذج في كل اكتشاف. |
show_labels | bool | True | يعرض تصنيفات كل اكتشاف في المخرجات المرئية. يوفر فهماً فورياً للكائنات المكتشفة. |
خرائط ألوان الخرائط الحرارية#
يقبل وسيط colormap أي OpenCV colormap. قم بتمرير الثابت من وحدة 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 | خريطة ألوان أخضر داكن |
كيف تعمل الخرائط الحرارية#
يمتد Heatmap solution فئة ObjectCounter. في الإطار الأول المُعالَج، فإنه ينشئ طبقة شدة فارغة تتطابق مع حجم الإطار. ثم يتم معالجة كل إطار على خطوتين:
- يكتشف تتبع YOLO26 كل كائن في الإطار ويتابعه
- لكل كائن يتم تتبعه، تزداد كثافة الخريطة الحرارية داخل منطقة دائرية تتمحور حول مربع الإحاطة الخاص به
مرة واحدة في كل إطار، يتم تسوية طبقة الكثافة المتراكمة وتلوينها بخريطة الألوان المحددة ودمجها مع الإطار الأصلي. يظهر التراكب بمجرد تتبع كائن واحد على الأقل؛ وتُعرض الإطارات التي لا تحتوي على كائنات متتبعة بدون تراكب الخريطة الحرارية.
النتيجة هي تصوير مرئي ديناميكي يتراكم بمرور الوقت، كاشفاً عن أنماط حركة المرور، أو حركات الحشود، أو السلوكيات المكانية الأخرى في بيانات الفيديو الخاص بك. عند تعيين region، يقوم الحل أيضاً بـ counts objects التي تدخل وتخرج من تلك المنطقة أثناء بناء الخريطة الحرارية.
الخلاصة#
يحول حل الخريطة الحرارية Ultralytics YOLO26 نتائج تتبع الكائنات إلى تراكب نشاط بدسري مع بضع أسطر من الكود. للمضي قدمًا، ادمجه مع object counting، أو استكشف Ultralytics Solutions الأخرى، أو اقرأ عن tracking mode الأساسي.
الأسئلة الشائعة#
تنشئ خرائط Ultralytics YOLO26 الحرارية عن طريق تتبع الكائنات عبر إطارات الفيديو وتراكم قيمة الشدة في موقع كل كائن متعقب، ثم تلوين النتيجة ومزجها مع الإطار الأصلي. المناطق التي تظهر فيها الكائنات بشكل متكرر أو تظل فيها تبني شدة أعلى وتُعرض بألوان أكثر دفئًا. لخيارات التكوين، راجع قسم
Heatmap()Arguments.استخدم
cv2.VideoWriterالخاص بـ OpenCV واكتبresults.plot_imلكل إطار معالَج، كما هو موضح في main example. تحتفظ سمةplot_imبالإطار الذي تم تطبيق تراكب الخريطة الحرارية عليه بالفعل.نعم. قم بتمرير وسيط
regionإلىHeatmap()بنقاط الخط أو المستقبل أو المضلع، ويقوم الحل بـعد الكائنات التي تدخل وتخرج من تلك المنطقة أثناء بناء الخريطة الحرارية. تتضمن النتائج المُرجعةin_count، وout_count، والعدات لكل فئة. راجع object counting guide لمعرفة تفاصيل تكوين المنطقة.قم بتمرير وسيط
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()تدمج خرائط Ultralytics YOLO26 الحرارية object detection، والتتبع، وتراكم الشدة، وعرض التراكب في استدعاء واحد، بينما تتطلب الأدوات العامة مثل OpenCV أو Matplotlib منك بناء خط الأنابيب هذا بنفسك. يعالج الحل دفقات الفيديو في الوقت الفعلي ويدعم التتبع المستمر والخرائط اللونية القابلة للتخصيص جاهزة للاستخدام. للتفاصيل حول النموذج الأساسي، راجع YOLO26 model page.

