تصور البيانات المتقدم: خرائط الحرارة باستخدام Ultralytics YOLO11 🚀
مقدمة إلى الخرائط الحرارية (Heatmaps)
تعمل الخريطة الحرارية التي تم إنشاؤها باستخدام 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 لإنشاء وتصور أنماط الحركة في تدفقات الفيديو. عند التهيئة، يقوم الحل بإنشاء طبقة خريطة حرارية فارغة يتم تحديثها مع تحرك الكائنات عبر الإطار.
لكل كائن يتم اكتشافه، الحل هو:
- يتتبع الكائن عبر الإطارات باستخدام إمكانات التتبع الخاصة بـ YOLO11.
- يقوم بتحديث كثافة الخريطة الحرارية في موقع الكائن
- يطبق مخطط ألوان محدد لتصور قيم الشدة
- تراكب الخريطة الحرارية الملونة على الإطار الأصلي
والنتيجة هي تصور ديناميكي يتراكم بمرور الوقت، ويكشف عن أنماط حركة المرور أو تحركات الحشود أو السلوكيات المكانية الأخرى في بيانات الفيديو الخاصة بك.
الأسئلة الشائعة
كيف تقوم 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.