Meet YOLO26: next-gen vision AI.

Link to this sectionالتحليلات باستخدام Ultralytics YOLO26#

Link to this sectionمقدمة#

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



Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts

Link to this sectionنماذج مرئية#

رسم بياني خطيرسم بياني شريطيمخطط دائري
رسم بياني خطي لتحليلات YOLO لتتبع الكائناترسم بياني شريطي لتحليلات YOLO لأعداد الكشفمخطط دائري لتحليلات YOLO لتوزيع الفئات

Link to this sectionلماذا تعد الرسوم البيانية مهمة#

  • تعتبر الرسوم البيانية الخطية مثالية لتتبع التغيرات عبر فترات قصيرة وطويلة، ولمقارنة التغيرات لمجموعات متعددة خلال نفس الفترة.
  • من ناحية أخرى، تعتبر الرسوم البيانية الشريطية مناسبة لمقارنة الكميات عبر فئات مختلفة وإظهار العلاقات بين فئة ما وقيمتها الرقمية.
  • أخيراً، تعتبر المخططات الدائرية فعالة لتوضيح النسب بين الفئات وإظهار أجزاء من الكل.
التحليلات باستخدام Ultralytics YOLO
yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True

Link to this sectionوسائط Analytics#

إليك جدول يوضح وسائط Analytics:

الوسيط (Argument)النوعالافتراضي (Default)الوصف (Description)
modelstrNoneمسار إلى ملف نموذج Ultralytics YOLO.
analytics_typestr'line'نوع الرسم البياني، أي line أو bar أو area أو pie.

You can also leverage different track arguments in the Analytics solution.

الوسيط (Argument)النوعالافتراضي (Default)الوصف (Description)
trackerstr'botsort.yaml'يحدد خوارزمية التتبع المستخدمة، على سبيل المثال bytetrack.yaml أو botsort.yaml.
conffloat0.1يحدد عتبة الثقة للكشف؛ تسمح القيم المنخفضة بتتبع المزيد من الكائنات ولكنها قد تتضمن نتائج إيجابية خاطئة.
ioufloat0.7يحدد عتبة IoU لتصفية الكشف المتداخل.
classeslistNoneيقوم بتصفية النتائج حسب فهرس الفئة. على سبيل المثال، تقوم classes=[0, 2, 3] بتتبع الفئات المحددة فقط.
verboseboolTrueيتحكم في عرض نتائج التتبع، مما يوفر مخرجاً مرئياً للكائنات المتعقبة.
devicestrNoneيحدد الجهاز للاستدلال (على سبيل المثال cpu أو cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU أو GPU محدد أو أجهزة حوسبة أخرى لتنفيذ النموذج.

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

الوسيط (Argument)النوعالافتراضي (Default)الوصف (Description)
showboolFalseإذا كان True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار.
line_widthint or NoneNoneيحدد عرض خط مربعات الإحاطة. إذا تم ضبطه على None، يتم تعديل عرض الخط تلقائياً بناءً على حجم الصورة. يوفر تخصيصاً مرئياً من أجل الوضوح.

Link to this sectionخاتمة#

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

Link to this sectionالأسئلة الشائعة#

Link to this sectionكيف يمكنني إنشاء رسم بياني خطي باستخدام تحليلات Ultralytics YOLO26؟#

لإنشاء رسم بياني خطي باستخدام تحليلات Ultralytics YOLO26، اتبع الخطوات التالية:

  1. قم بتحميل نموذج YOLO26 وافتح ملف الفيديو الخاص بك.
  2. قم بتهيئة فئة Analytics مع ضبط النوع على "line".
  3. قم بالتكرار عبر إطارات الفيديو، مع تحديث الرسم البياني الخطي ببيانات ذات صلة، مثل أعداد الكائنات لكل إطار.
  4. احفظ فيديو المخرجات الذي يعرض الرسم البياني الخطي.

مثال:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

لمزيد من التفاصيل حول تكوين فئة Analytics، قم بزيارة قسم التحليلات باستخدام Ultralytics YOLO26.

Link to this sectionما هي فوائد استخدام Ultralytics YOLO26 لإنشاء رسوم بيانية شريطية؟#

يوفر استخدام Ultralytics YOLO26 لإنشاء رسوم بيانية شريطية العديد من الفوائد:

  1. تصور البيانات في الوقت الفعلي: دمج نتائج كشف الكائنات بسلاسة في الرسوم البيانية الشريطية للحصول على تحديثات ديناميكية.
  2. سهولة الاستخدام: واجهة برمجة تطبيقات (API) ووظائف بسيطة تجعل تنفيذ وتصور البيانات أمراً مباشراً.
  3. التخصيص: تخصيص العناوين، والتسميات، والألوان، والمزيد لتناسب متطلباتك الخاصة.
  4. الكفاءة: التعامل بكفاءة مع كميات كبيرة من البيانات وتحديث الرسوم البيانية في الوقت الفعلي أثناء معالجة الفيديو.

استخدم المثال التالي لإنشاء رسم بياني شريطي:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

لمعرفة المزيد، قم بزيارة قسم الرسم البياني الشريطي في الدليل.

Link to this sectionلماذا يجب أن أستخدم Ultralytics YOLO26 لإنشاء مخططات دائرية في مشاريع تصور البيانات الخاصة بي؟#

يعد Ultralytics YOLO26 خياراً ممتازاً لإنشاء مخططات دائرية لأن:

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

إليك مثال سريع:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

لمزيد من المعلومات، ارجع إلى قسم المخطط الدائري في الدليل.

Link to this sectionهل يمكن استخدام Ultralytics YOLO26 لتتبع الكائنات وتحديث التصورات ديناميكياً؟#

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

مثال لتتبع وتحديث رسم بياني خطي:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

للتعرف على الوظائف الكاملة، راجع قسم التتبع.

Link to this sectionما الذي يجعل Ultralytics YOLO26 مختلفاً عن حلول كشف الكائنات الأخرى مثل OpenCV و TensorFlow؟#

يبرز Ultralytics YOLO26 عن حلول كشف الكائنات الأخرى مثل OpenCV و TensorFlow لأسباب متعددة:

  1. دقة متطورة: يوفر YOLO26 دقة فائقة في مهام كشف الكائنات، وتجزئة المثيلات، والتجزئة الدلالية، والتصنيف.
  2. سهولة الاستخدام: تسمح واجهة برمجة التطبيقات (API) سهلة الاستخدام بالتنفيذ والتكامل السريع دون الحاجة إلى برمجة مكثفة.
  3. أداء في الوقت الفعلي: مُحسّن للاستدلال عالي السرعة، ومناسب للتطبيقات في الوقت الفعلي.
  4. تطبيقات متنوعة: يدعم مهاماً متنوعة تشمل تتبع الكائنات المتعددة، وتدريب النماذج المخصصة، والتصدير إلى تنسيقات مختلفة مثل ONNX و TensorRT و CoreML.
  5. توثيق شامل: توثيق وموارد مدونة واسعة النطاق لإرشاد المستخدمين في كل خطوة.

للحصول على مقارنات وحالات استخدام أكثر تفصيلاً، استكشف مدونة Ultralytics.

التعليقات