التحليلات باستخدام Ultralytics YOLO26
مقدمة
يقدم هذا الدليل نظرة شاملة على ثلاثة أنواع أساسية من تصورات البيانات: الرسوم البيانية الخطية، والمخططات الشريطية، والمخططات الدائرية. يتضمن كل قسم تعليمات خطوة بخطوة ومقتطفات برمجية حول كيفية إنشاء هذه التصورات باستخدام Python.
Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts
نماذج مرئية
| الرسم البياني الخطي | المخطط الشريطي | المخطط الدائري |
|---|---|---|
![]() | ![]() | ![]() |
لماذا تعتبر الرسوم البيانية مهمة
- الرسوم البيانية الخطية مثالية لتتبع التغييرات على فترات قصيرة وطويلة، ولمقارنة التغييرات لمجموعات متعددة خلال نفس الفترة.
- من ناحية أخرى، تعتبر المخططات الشريطية مناسبة لمقارنة الكميات عبر فئات مختلفة وإظهار العلاقات بين فئة وقيمتها العددية.
- أخيراً، تعد المخططات الدائرية فعالة لتوضيح النسب بين الفئات وإظهار أجزاء من كل واحد.
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وسائط Analytics
فيما يلي جدول يوضح وسائط Analytics:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
model | str | None | مسار إلى ملف نموذج Ultralytics YOLO. |
analytics_type | str | 'line' | نوع الرسم البياني، مثل line أو bar أو area أو pie. |
يمكنك أيضاً الاستفادة من وسائط track المختلفة في حل Analytics.
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
tracker | str | 'botsort.yaml' | يحدد خوارزمية التتبع المراد استخدامها، على سبيل المثال، bytetrack.yaml أو botsort.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). يسمح للمستخدمين بالاختيار بين CPU، أو GPU محدد، أو أجهزة حوسبة أخرى لتنفيذ النموذج. |
بالإضافة إلى ذلك، يتم دعم وسائط التصور التالية:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
show | bool | False | إذا كانت القيمة True، يتم عرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للحصول على تعليقات مرئية فورية أثناء التطوير أو الاختبار. |
line_width | int or None | None | يحدد عرض خط صناديق الإحاطة. إذا كانت القيمة None، يتم تعديل عرض الخط تلقائياً بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح. |
خاتمة
يعد فهم متى وكيفية استخدام أنواع مختلفة من التصورات أمراً بالغ الأهمية لتحليل البيانات بفعالية. الرسوم البيانية الخطية، والمخططات الشريطية، والمخططات الدائرية هي أدوات أساسية يمكن أن تساعدك في نقل قصة بياناتك بشكل أكثر وضوحاً وفعالية. يوفر حل التحليلات Ultralytics YOLO26 طريقة مبسطة لإنشاء هذه التصورات من نتائج كشف الكائنات والتتبع الخاصة بك، مما يسهل استخراج رؤى ذات معنى من بياناتك المرئية.
الأسئلة الشائعة
كيف يمكنني إنشاء رسم بياني خطي باستخدام تحليلات Ultralytics YOLO26؟
لإنشاء رسم بياني خطي باستخدام تحليلات Ultralytics YOLO26، اتبع الخطوات التالية:
- قم بتحميل نموذج YOLO26 وافتح ملف الفيديو الخاص بك.
- قم بتهيئة فئة
Analyticsمع ضبط النوع على "line." - قم بالتكرار عبر إطارات الفيديو، مع تحديث الرسم البياني الخطي ببيانات ذات صلة، مثل عدد الكائنات لكل إطار.
- احفظ فيديو المخرجات الذي يعرض الرسم البياني الخطي.
مثال:
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.
ما هي فوائد استخدام Ultralytics YOLO26 لإنشاء مخططات شريطية؟
يوفر استخدام Ultralytics YOLO26 لإنشاء مخططات شريطية العديد من الفوائد:
- تصور البيانات في الوقت الفعلي: ادمج نتائج كشف الكائنات بسلاسة في مخططات شريطية للحصول على تحديثات ديناميكية.
- سهولة الاستخدام: واجهة برمجة تطبيقات (API) بسيطة ووظائف تجعل من السهل تنفيذ البيانات وتصورها.
- التخصيص: قم بتخصيص العناوين، والتسميات، والألوان، والمزيد لتناسب متطلباتك المحددة.
- الكفاءة: التعامل بكفاءة مع كميات كبيرة من البيانات وتحديث المخططات في الوقت الفعلي أثناء معالجة الفيديو.
استخدم المثال التالي لإنشاء مخطط شريطي:
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()لمعرفة المزيد، قم بزيارة قسم المخطط الشريطي في الدليل.
لماذا يجب أن أستخدم 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="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()لمزيد من المعلومات، راجع قسم المخطط الدائري في الدليل.
هل يمكن استخدام 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()للتعرف على الوظائف الكاملة، راجع قسم التتبع.
ما الذي يجعل Ultralytics YOLO26 مختلفاً عن حلول كشف الكائنات الأخرى مثل OpenCV و TensorFlow؟
يتميز Ultralytics YOLO26 عن حلول كشف الكائنات الأخرى مثل OpenCV و TensorFlow لعدة أسباب:
- دقة حديثة: يوفر YOLO26 دقة فائقة في مهام كشف الكائنات، والتجزئة، والتصنيف.
- سهولة الاستخدام: واجهة برمجة تطبيقات سهلة الاستخدام تسمح بالتنفيذ والتكامل السريع دون الحاجة إلى برمجة مكثفة.
- أداء في الوقت الفعلي: محسّن للاستدلال عالي السرعة، ومناسب للتطبيقات في الوقت الفعلي.
- تطبيقات متنوعة: يدعم مهاماً مختلفة بما في ذلك تتبع كائنات متعددة، وتدريب نماذج مخصصة، والتصدير إلى تنسيقات مختلفة مثل ONNX، و TensorRT، و CoreML.
- وثائق شاملة: وثائق موسعة وموارد مدونة لإرشاد المستخدمين خلال كل خطوة.
للحصول على مقارنات وحالات استخدام أكثر تفصيلاً، استكشف مدونة Ultralytics.


