تخطي إلى المحتوى

تصور البيانات المتقدم: خرائط الحرارة باستخدام Ultralytics YOLO11 🚀

مقدمة إلى الخرائط الحرارية (Heatmaps)

افتح الخرائط الحرارية في Colab

تعمل الخريطة الحرارية التي تم إنشاؤها باستخدام Ultralytics YOLO11 على تحويل البيانات المعقدة إلى مصفوفة نابضة بالحياة ومشفرة بالألوان. تستخدم هذه الأداة المرئية طيفًا من الألوان لتمثيل قيم البيانات المتغيرة، حيث تشير الألوان الأكثر دفئًا إلى شدة أعلى وتشير النغمات الأكثر برودة إلى قيم أقل. تتفوق الخرائط الحرارية في تصور أنماط البيانات المعقدة والارتباطات والشذوذات، مما يوفر نهجًا يسهل الوصول إليه وجذابًا لتفسير البيانات عبر مجالات متنوعة.



شاهد: الخرائط الحرارية باستخدام Ultralytics YOLO11

لماذا نختار الخرائط الحرارية لتحليل البيانات؟

  • تصور توزيع البيانات البديهي: تعمل الخرائط الحرارية على تبسيط فهم تركيز البيانات وتوزيعها، وتحويل مجموعات البيانات المعقدة إلى تنسيقات مرئية سهلة الفهم.
  • اكتشاف الأنماط بكفاءة: من خلال تصور البيانات بتنسيق خريطة الحرارة، يصبح من الأسهل اكتشاف الاتجاهات والمجموعات والقيم المتطرفة، مما يسهل التحليل والرؤى بشكل أسرع.
  • تحسين التحليل المكاني واتخاذ القرارات: تعتبر الخرائط الحرارية مفيدة في توضيح العلاقات المكانية، مما يساعد في عمليات صنع القرار في قطاعات مثل ذكاء الأعمال والدراسات البيئية والتخطيط الحضري.

تطبيقات العالم الحقيقي

المواصلات البيع بالتجزئة
خريطة التمثيل الحراري للنقل في Ultralytics YOLO11 خريطة التمثيل الحراري لتجارة التجزئة في Ultralytics YOLO11
خريطة التمثيل الحراري للنقل في Ultralytics YOLO11 خريطة التمثيل الحراري لتجارة التجزئة في Ultralytics YOLO11

خرائط التمثيل اللوني باستخدام Ultralytics YOLO

# 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)]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# For object counting with heatmap, you can pass region points.
# region_points = [(20, 400), (1080, 400)]                                      # line points
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]              # rectangle region
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)]   # polygon points

# Initialize heatmap object
heatmap = solutions.Heatmap(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file
    colormap=cv2.COLORMAP_PARULA,  # colormap of heatmap
    # region=region_points,  # object counting with heatmaps, you can pass region_points
    # classes=[0, 2],  # generate heatmap for specific classes i.e person and car.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = heatmap(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

Heatmap() الوسائط

إليك جدول مع Heatmap arguments:

الوسيطة النوع افتراضي الوصف
model str None مسار إلى ملف نموذج Ultralytics YOLO.
colormap int cv2.COLORMAP_JET مخطط الألوان المراد استخدامه للخريطة الحرارية.
show_in bool True Flag للتحكم فيما إذا كان سيتم عرض عدد الأسماك الداخلة في بث الفيديو.
show_out bool True Flag للتحكم فيما إذا كان سيتم عرض عدد الأسماك الخارجة في بث الفيديو.
region list '[(20, 400), (1260, 400)]' قائمة النقاط التي تحدد منطقة العد.

يمكنك أيضًا تطبيق مختلف track الوسائط في Heatmap الحل.

الوسيطة النوع افتراضي الوصف
tracker str 'botsort.yaml' يحدد خوارزمية التتبع المراد استخدامها، على سبيل المثال، bytetrack.yaml أو botsort.yaml.
conf float 0.3 يحدد عتبة الثقة للكشف؛ القيم الأقل تسمح بتتبع المزيد من الكائنات ولكن قد تتضمن نتائج إيجابية كاذبة.
iou float 0.5 يحدد عتبة التقاطع على الاتحاد (IoU) لتصفية الاكتشافات المتداخلة.
classes list None يقوم بتصفية النتائج حسب فهرس الفئة. على سبيل المثال، classes=[0, 2, 3] يتتبع الفئات المحددة فقط.
verbose bool True يتحكم في عرض نتائج التتبع، مما يوفر مخرجًا مرئيًا للكائنات التي يتم تتبعها.
device str None يحدد الجهاز الخاص بالاستدلال (على سبيل المثال، cpu, cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU أو GPU معين أو أجهزة حساب أخرى لتنفيذ النموذج.

بالإضافة إلى ذلك، يتم سرد وسائط العرض المرئي المدعومة أدناه:

الوسيطة النوع افتراضي الوصف
show bool False إذا True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للحصول على تعليقات مرئية فورية أثناء التطوير أو الاختبار.
line_width None or int None يحدد عرض خطوط مربعات الإحاطة. إذا None، يتم تعديل عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصًا مرئيًا للوضوح.
show_conf bool True يعرض قيمة الثقة لكل كائن يتم الكشف عنه بجانب التسمية. يعطي نظرة ثاقبة حول يقين النموذج لكل كائن تم الكشف عنه.
show_labels bool True يعرض تسميات لكل كائن يتم الكشف عنه في الناتج المرئي. يوفر فهمًا فوريًا للكائنات التي تم الكشف عنها.

خرائط التمثيل اللوني الحراري

اسم مخطط الألوان الوصف
cv::COLORMAP_AUTUMN خريطة ألوان الخريف
cv::COLORMAP_BONE خريطة ألوان العظام
cv::COLORMAP_JET خريطة ألوان Jet
cv::COLORMAP_WINTER خريطة ألوان الشتاء
cv::COLORMAP_RAINBOW خريطة ألوان قوس قزح
cv::COLORMAP_OCEAN خريطة ألوان المحيط
cv::COLORMAP_SUMMER خريطة ألوان صيفية
cv::COLORMAP_SPRING خريطة ألوان الربيع
cv::COLORMAP_COOL خريطة ألوان رائعة
cv::COLORMAP_HSV خريطة ألوان HSV (تدرج اللون والتشبع والقيمة)
cv::COLORMAP_PINK خريطة ألوان وردية
cv::COLORMAP_HOT خريطة الألوان الساخنة
cv::COLORMAP_PARULA خريطة ألوان Parula
cv::COLORMAP_MAGMA خريطة ألوان Magma
cv::COLORMAP_INFERNO خريطة ألوان Inferno
cv::COLORMAP_PLASMA خريطة ألوان البلازما
cv::COLORMAP_VIRIDIS خريطة ألوان Viridis
cv::COLORMAP_CIVIDIS خريطة ألوان Cividis
cv::COLORMAP_TWILIGHT خريطة ألوان Twilight
cv::COLORMAP_TWILIGHT_SHIFTED خريطة ألوان الشفق المتحولة
cv::COLORMAP_TURBO خريطة ألوان Turbo
cv::COLORMAP_DEEPGREEN خريطة ألوان أخضر داكن

تُستخدم خرائط الألوان هذه بشكل شائع لتصور البيانات بتمثيلات لونية مختلفة.

كيف تعمل الخرائط الحرارية في Ultralytics YOLO11؟

يعمل حل الخريطة الحرارية في Ultralytics YOLO11 على توسيع فئة ObjectCounter لإنشاء وتصور أنماط الحركة في تدفقات الفيديو. عند التهيئة، يقوم الحل بإنشاء طبقة خريطة حرارية فارغة يتم تحديثها مع تحرك الكائنات عبر الإطار.

لكل كائن يتم اكتشافه، الحل هو:

  1. يتتبع الكائن عبر الإطارات باستخدام إمكانات التتبع الخاصة بـ YOLO11.
  2. يقوم بتحديث كثافة الخريطة الحرارية في موقع الكائن
  3. يطبق مخطط ألوان محدد لتصور قيم الشدة
  4. تراكب الخريطة الحرارية الملونة على الإطار الأصلي

والنتيجة هي تصور ديناميكي يتراكم بمرور الوقت، ويكشف عن أنماط حركة المرور أو تحركات الحشود أو السلوكيات المكانية الأخرى في بيانات الفيديو الخاصة بك.

الأسئلة الشائعة

كيف تقوم Ultralytics YOLO11 بإنشاء خرائط حرارية وما هي فوائدها؟

تولد Ultralytics YOLO11 خرائط حرارية عن طريق تحويل البيانات المعقدة إلى مصفوفة مرمزة بالألوان حيث تمثل الألوان المختلفة كثافة البيانات. تسهل الخرائط الحرارية تصور الأنماط والارتباطات والشذوذات في البيانات. تشير الألوان الأكثر دفئًا إلى قيم أعلى، بينما تمثل النغمات الأكثر برودة قيمًا أقل. تشمل الفوائد الأساسية التصور البديهي لتوزيع البيانات، والكشف الفعال عن الأنماط، وتحسين التحليل المكاني لاتخاذ القرارات. لمزيد من التفاصيل وخيارات التكوين، راجع قسم تكوين الخريطة الحرارية.

هل يمكنني استخدام Ultralytics YOLO11 لإجراء تتبع الكائنات وإنشاء خريطة حرارية في وقت واحد؟

نعم، يدعم Ultralytics YOLO11 تتبع الكائنات وإنشاء الخرائط الحرارية في وقت واحد. يمكن تحقيق ذلك من خلال Heatmap حل متكامل مع نماذج تتبع الكائنات. للقيام بذلك، تحتاج إلى تهيئة كائن الخريطة الحرارية واستخدام قدرات تتبع YOLO11. إليك مثال بسيط:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, show=True, model="yolo11n.pt")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()

لمزيد من الإرشادات، تحقق من صفحة وضع التتبع.

ما الذي يميز الخرائط الحرارية Ultralytics YOLO11 عن أدوات تصور البيانات الأخرى مثل تلك الموجودة في OpenCV أو Matplotlib؟

تم تصميم الخرائط الحرارية Ultralytics YOLO11 خصيصًا للتكامل مع نماذج اكتشاف الأجسام وتتبعها، مما يوفر حلاً شاملاً لتحليل البيانات في الوقت الفعلي. على عكس أدوات التصور العامة مثل OpenCV أو Matplotlib، تم تحسين الخرائط الحرارية YOLO11 لتحقيق الأداء والمعالجة الآلية، ودعم ميزات مثل التتبع المستمر، وتعديل عامل التلاشي، وتراكب الفيديو في الوقت الفعلي. لمزيد من المعلومات حول الميزات الفريدة لـ YOLO11، تفضل بزيارة مقدمة Ultralytics YOLO11.

كيف يمكنني تصور فئات كائنات معينة فقط في الخرائط الحرارية باستخدام Ultralytics YOLO11؟

يمكنك تصور فئات كائنات معينة عن طريق تحديد الفئات المطلوبة في track() طريقة لنموذج YOLO. على سبيل المثال، إذا كنت تريد فقط تصور السيارات والأشخاص (بافتراض أن مؤشرات فئتهم هي 0 و 2)، فيمكنك تعيين classes المعلمة وفقًا لذلك.

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(show=True, model="yolo11n.pt", classes=[0, 2])

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()

لماذا يجب على الشركات اختيار Ultralytics YOLO11 لإنشاء الخرائط الحرارية في تحليل البيانات؟

يوفر Ultralytics YOLO11 تكاملًا سلسًا للكشف المتقدم عن الكائنات وإنشاء الخرائط الحرارية في الوقت الفعلي، مما يجعله خيارًا مثاليًا للشركات التي تتطلع إلى تصور البيانات بشكل أكثر فعالية. تشمل المزايا الرئيسية تصور توزيع البيانات بشكل حدسي، واكتشاف الأنماط بكفاءة، وتحليل مكاني مُحسَّن لاتخاذ قرارات أفضل. بالإضافة إلى ذلك، فإن الميزات المتطورة في YOLO11 مثل التتبع المستمر، والخرائط اللونية القابلة للتخصيص، ودعم تنسيقات التصدير المختلفة تجعله متفوقًا على أدوات أخرى مثل TensorFlow و OpenCV لتحليل البيانات الشامل. تعرف على المزيد حول تطبيقات الأعمال في خطط Ultralytics.



📅 تم الإنشاء منذ سنة واحدة ✏️ تم التحديث منذ شهرين

تعليقات