تخطي إلى المحتوى

مراقبة التدريبات باستخدام Ultralytics YOLO11

افتح مراقبة التدريبات في Colab

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



شاهد: كيفية مراقبة تمارين اللياقة البدنية باستخدام Ultralytics YOLO | القرفصاء، تمديد الساق، تمارين الضغط والمزيد

مزايا مراقبة التدريبات

  • أداء مُحسَّن: تصميم التدريبات بناءً على بيانات المراقبة للحصول على نتائج أفضل.
  • تحقيق الهدف: تتبع واضبط أهداف اللياقة البدنية لتحقيق تقدم قابل للقياس.
  • التخصيص: خطط تمارين مخصصة بناءً على البيانات الفردية لتحقيق الفعالية.
  • الوعي بالصحة: الكشف المبكر عن الأنماط التي تشير إلى مشاكل صحية أو الإفراط في التدريب.
  • قرارات مستنيرة: قرارات تعتمد على البيانات لتعديل الإجراءات الروتينية وتحديد أهداف واقعية.

تطبيقات العالم الحقيقي

مراقبة التدريبات مراقبة التدريبات
عدّ تمارين الضغط (PushUps) عدّ تمارين العقلة (PullUps)
عدّ تمارين الضغط (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="yolo11n-pose.pt",  # path to the YOLO11 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

خريطة النقاط الرئيسية

ترتيب النقاط الرئيسية Ultralytics YOLO11 Pose

AIGym الوسائط

إليك جدول مع AIGym arguments:

الوسيطة النوع افتراضي الوصف
model str None مسار إلى ملف نموذج Ultralytics YOLO.
up_angle float 145.0 عتبة الزاوية لوضعية 'الأعلى'.
down_angle float 90.0 عتبة الزاوية لوضعية 'الأسفل'.
kpts list[int, int, int] '[6, 8, 10]' قائمة النقاط الرئيسية المستخدمة لمراقبة التدريبات. تتوافق هذه النقاط الرئيسية مع مفاصل أو أجزاء الجسم، مثل الأكتاف والمرفقين والمعصمين، لتمارين مثل تمارين الضغط والسحب والجلوس وتمارين البطن.

في AIGym يدعم الحل أيضًا مجموعة من معلمات تتبع الكائنات:

الوسيطة النوع افتراضي الوصف
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 يعرض تسميات لكل كائن يتم الكشف عنه في الناتج المرئي. يوفر فهمًا فوريًا للكائنات التي تم الكشف عنها.

الأسئلة الشائعة

كيف يمكنني مراقبة التدريبات الخاصة بي باستخدام Ultralytics YOLO11؟

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

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 YOLO11 لمراقبة التمرين؟

يوفر استخدام Ultralytics YOLO11 لمراقبة التمرين العديد من المزايا الرئيسية:

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

يمكنك مشاهدة عرض فيديو توضيحي على يوتيوب لرؤية هذه المزايا عمليًا.

ما مدى دقة Ultralytics YOLO11 في اكتشاف وتتبع التمارين؟

يتميز Ultralytics YOLO11 بدقة عالية في الكشف عن التمارين وتتبعها نظرًا لقدراته المتطورة في تقدير الوضع. يمكنه تتبع المعالم والمفاصل الرئيسية للجسم بدقة، مما يوفر ملاحظات في الوقت الفعلي حول شكل التمرين ومقاييس الأداء. تضمن الأوزان المدربة مسبقًا للهيكل القوي للنموذج دقة وموثوقية عالية. للحصول على أمثلة واقعية، تحقق من قسم التطبيقات الواقعية في الوثائق، والذي يعرض تمارين الضغط والسحب.

هل يمكنني استخدام Ultralytics YOLO11 لروتينات التمرين المخصصة؟

نعم، يمكن تكييف Ultralytics YOLO11 لروتينات التمرين المخصصة. AIGym تدعم الفئة أنواعًا مختلفة من الوضعيات مثل pushup, pullup، و abworkoutيمكنك تحديد النقاط الزاوية والزوايا لاكتشاف تمارين معينة. إليك مثال على الإعداد:

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 YOLO11؟

لحفظ مخرجات مراقبة التمرين، يمكنك تعديل الكود لتضمين كاتب فيديو يحفظ الإطارات المعالجة. إليك مثال:

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()

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



📅 تم إنشاؤه منذ سنة واحدة ✏️ تم التحديث منذ شهر واحد

تعليقات