مراقبة التمارين باستخدام Ultralytics YOLO26
مراقبة التمارين من خلال تقدير الوضعية (pose estimation) باستخدام Ultralytics YOLO26 يعزز تقييم التمارين عن طريق track بدقة المعالم والمفاصل الرئيسية للجسم في الوقت الفعلي. توفر هذه التقنية ملاحظات فورية حول شكل التمرين، و track روتينات التمارين، وتقيس مقاييس الأداء، مما يحسن جلسات التدريب للمستخدمين والمدربين على حد سواء.
شاهد: كيفية مراقبة تمارين اللياقة البدنية باستخدام Ultralytics YOLO | القرفصاء، تمديد الساق، تمارين الضغط والمزيد
مزايا مراقبة التدريبات
- أداء مُحسَّن: تصميم التدريبات بناءً على بيانات المراقبة للحصول على نتائج أفضل.
- تحقيق الهدف: تتبع واضبط أهداف اللياقة البدنية لتحقيق تقدم قابل للقياس.
- التخصيص: خطط تمارين مخصصة بناءً على البيانات الفردية لتحقيق الفعالية.
- الوعي بالصحة: الكشف المبكر عن الأنماط التي تشير إلى مشاكل صحية أو الإفراط في التدريب.
- قرارات مستنيرة: قرارات تعتمد على البيانات لتعديل الإجراءات الروتينية وتحديد أهداف واقعية.
تطبيقات العالم الحقيقي
| مراقبة التدريبات | مراقبة التدريبات |
|---|---|
![]() | ![]() |
| عدّ تمارين الضغط (PushUps) | عدّ تمارين العقلة (PullUps) |
مراقبة التدريبات باستخدام Ultralytics YOLO
# Run a workout example
yolo solutions workout show=True
# Pass a source video
yolo solutions workout source="path/to/video.mp4"
# Use keypoints for pushups
yolo solutions workout kpts="[6, 8, 10]"
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("workouts_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init AIGym
gym = solutions.AIGym(
show=True, # display the frame
kpts=[6, 8, 10], # keypoints for monitoring specific exercise, by default it's for pushup
model="yolo26n-pose.pt", # path to the YOLO26 pose estimation model file
# line_width=2, # adjust the line width for bounding boxes and text display
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = gym(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
خريطة النقاط الرئيسية

AIGym الوسائط
إليك جدول مع AIGym arguments:
| الوسيطة | النوع | افتراضي | الوصف |
|---|---|---|---|
model | str | None | مسار إلى ملف نموذج Ultralytics YOLO. |
up_angle | float | 145.0 | عتبة الزاوية لوضعية 'الأعلى'. |
down_angle | float | 90.0 | عتبة الزاوية لوضعية 'الأسفل'. |
kpts | list[int] | '[6, 8, 10]' | قائمة بثلاثة مؤشرات للنقاط الرئيسية تُستخدم لمراقبة التمارين الرياضية. تتوافق هذه النقاط الرئيسية مع مفاصل الجسم أو أجزائه، مثل الأكتاف والمرفقين والمعصمين، لتمارين مثل الضغط والسحب والقرفصاء وتمارين البطن. |
في AIGym يدعم الحل أيضًا مجموعة من معلمات تتبع الكائنات:
| الوسيطة | النوع | افتراضي | الوصف |
|---|---|---|---|
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، يتم تعديل عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصًا مرئيًا للوضوح. |
show_conf | bool | True | يعرض قيمة الثقة لكل كائن يتم الكشف عنه بجانب التسمية. يعطي نظرة ثاقبة حول يقين النموذج لكل كائن تم الكشف عنه. |
show_labels | bool | True | يعرض تسميات لكل كائن يتم الكشف عنه في الناتج المرئي. يوفر فهمًا فوريًا للكائنات التي تم الكشف عنها. |
الأسئلة الشائعة
كيف أراقب تمارين باستخدام Ultralytics YOLO26؟
لمراقبة تمارينك باستخدام Ultralytics YOLO26، يمكنك الاستفادة من قدرات تقدير الوضعية (pose estimation) لـ track وتحليل المعالم والمفاصل الرئيسية للجسم في الوقت الفعلي. يتيح لك ذلك تلقي ملاحظات فورية حول شكل تمرينك، وعد التكرارات، وقياس مقاييس الأداء. يمكنك البدء باستخدام الكود النموذجي المتوفر لتمارين الضغط، السحب، أو تمارين البطن كما هو موضح:
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))
gym = solutions.AIGym(
line_width=2,
show=True,
kpts=[6, 8, 10],
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = gym(im0)
cv2.destroyAllWindows()
لمزيد من التخصيص والإعدادات، يمكنك الرجوع إلى قسم AIGym في الوثائق.
ما هي فوائد استخدام Ultralytics YOLO26 لمراقبة التمارين؟
يوفر استخدام Ultralytics YOLO26 لمراقبة التمارين عدة فوائد رئيسية:
- أداء مُحسَّن: من خلال تصميم التدريبات بناءً على بيانات المراقبة، يمكنك تحقيق نتائج أفضل.
- تحقيق الهدف: تتبع بسهولة واضبط أهداف اللياقة البدنية لتحقيق تقدم قابل للقياس.
- التخصيص: احصل على خطط تمارين مخصصة بناءً على بياناتك الفردية لتحقيق الفعالية المثلى.
- الوعي بالصحة: الكشف المبكر عن الأنماط التي تشير إلى مشاكل صحية محتملة أو الإفراط في التدريب.
- قرارات مستنيرة: اتخذ قرارات تعتمد على البيانات لضبط الإجراءات الروتينية وتحديد أهداف واقعية.
يمكنك مشاهدة عرض فيديو توضيحي على يوتيوب لرؤية هذه المزايا عمليًا.
ما مدى دقة Ultralytics YOLO26 في detect و track التمارين؟
يتميز Ultralytics YOLO26 بدقة عالية في detect و track التمارين بفضل قدراته المتطورة في تقدير الوضعية (pose estimation). يمكنه تتبع المعالم والمفاصل الرئيسية للجسم بدقة، مما يوفر ملاحظات فورية حول شكل التمرين ومقاييس الأداء. تضمن الأوزان المدربة مسبقًا والبنية القوية للنموذج دقة وموثوقية عالية. للاطلاع على أمثلة واقعية، راجع قسم التطبيقات الواقعية في الوثائق، الذي يعرض عد تمارين الضغط والسحب.
هل يمكنني استخدام Ultralytics YOLO26 لروتينات التمارين المخصصة؟
نعم، يمكن تكييف Ultralytics YOLO26 لروتينات التمارين المخصصة. الـ AIGym تدعم الفئة أنواعًا مختلفة من الوضعيات مثل pushup, pullup، و abworkout. يمكنك تحديد النقاط الرئيسية والزوايا لـ detect تمارين معينة. إليك مثال على الإعداد:
from ultralytics import solutions
gym = solutions.AIGym(
line_width=2,
show=True,
kpts=[6, 8, 10], # For pushups - can be customized for other exercises
)
لمزيد من التفاصيل حول تحديد الحجج، راجع الوسائط AIGym القسم. تتيح لك هذه المرونة مراقبة التدريبات المختلفة وتخصيص الإجراءات الروتينية بناءً على أهداف اللياقة.
كيف يمكنني حفظ مخرجات مراقبة التمارين باستخدام 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))
video_writer = cv2.VideoWriter("workouts.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
gym = solutions.AIGym(
line_width=2,
show=True,
kpts=[6, 8, 10],
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = gym(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
يكتب هذا الإعداد الفيديو الذي تتم مراقبته في ملف إخراج، مما يسمح لك بمراجعة أداء التمرين لاحقًا أو مشاركته مع المدربين للحصول على ملاحظات إضافية.

