التحليلات باستخدام Ultralytics YOLO26
مقدمة
يقدم هذا الدليل نظرة عامة شاملة على ثلاثة أنواع أساسية من تصورات البيانات: الرسوم البيانية الخطية والمخططات الشريطية والمخططات الدائرية. يتضمن كل قسم إرشادات خطوة بخطوة ومقتطفات التعليمات البرمجية حول كيفية إنشاء هذه التصورات باستخدام Python.
شاهد: كيفية إنشاء رسوم بيانية تحليلية باستخدام Ultralytics | الرسوم البيانية الخطية والمخططات الشريطية والمساحية والدائرية
عينات مرئية
| الرسم البياني الخطي | مخطط شريطي | مخطط دائري |
|---|---|---|
![]() | ![]() | ![]() |
لماذا الرسوم البيانية مهمة؟
- تعتبر الرسوم البيانية الخطية مثالية لتتبع التغييرات على مدى فترات قصيرة وطويلة ولمقارنة التغييرات لعدة مجموعات خلال نفس الفترة.
- من ناحية أخرى، تعتبر المخططات الشريطية مناسبة لمقارنة الكميات عبر فئات مختلفة وإظهار العلاقات بين الفئة وقيمتها العددية.
- أخيرًا، تعد المخططات الدائرية فعالة لتوضيح النسب بين الفئات وإظهار أجزاء من الكل.
تحليلات باستخدام 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
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))
out = cv2.VideoWriter(
"analytics_output.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720), # this is fixed
)
# Initialize analytics object
analytics = solutions.Analytics(
show=True, # display the output
analytics_type="line", # pass the analytics type, could be "pie", "bar" or "area".
model="yolo26n.pt", # path to the YOLO26 model file
# classes=[0, 2], # display analytics for specific detection classes
)
# Process video
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
# print(results) # access the output
out.write(results.plot_im) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows() # destroy all opened windows
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 طريقة مبسطة لإنشاء هذه التصورات من نتائج detect الكائنات و trackها، مما يسهل استخلاص رؤى ذات معنى من بياناتك المرئية.
الأسئلة الشائعة
كيف أقوم بإنشاء رسم بياني خطي باستخدام تحليلات 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 class، قم بزيارة التحليلات باستخدام Ultralytics YOLO26 القسم.
ما هي فوائد استخدام 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="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 لـ track الكائنات وتحديث التصورات ديناميكيًا؟
نعم، يمكن استخدام 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 دقة فائقة في مهام اكتشاف الكائنات، وsegmentation، والتصنيف.
- سهولة الاستخدام: تتيح واجهة برمجة التطبيقات سهلة الاستخدام التنفيذ والتكامل السريع دون الحاجة إلى ترميز مكثف.
- أداء في الوقت الفعلي: مُحسَّن للاستدلال عالي السرعة، ومناسب للتطبيقات في الوقت الفعلي.
- تطبيقات متنوعة: يدعم مهام مختلفة بما في ذلك تتبع الكائنات المتعددة وتدريب النماذج المخصصة والتصدير إلى تنسيقات مختلفة مثل ONNX و TensorRT و CoreML.
- وثائق شاملة: وثائق واسعة النطاق و مصادر مدونة لإرشاد المستخدمين خلال كل خطوة.
لمزيد من المقارنات التفصيلية وحالات الاستخدام، استكشف مدونة Ultralytics الخاصة بنا.


