مراقبة التدريبات باستخدام Ultralytics YOLO11
تعمل مراقبة التدريبات من خلال تقدير الوضع باستخدام Ultralytics YOLO11 على تحسين تقييم التمرين من خلال التتبع الدقيق للمعالم والمفاصل الرئيسية للجسم في الوقت الفعلي. توفر هذه التقنية ملاحظات فورية حول شكل التمرين، وتتبع إجراءات التمرين، وتقيس مقاييس الأداء، مما يؤدي إلى تحسين الجلسات التدريبية للمستخدمين والمدربين على حد سواء.
شاهد: كيفية مراقبة تمارين اللياقة البدنية باستخدام 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="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
خريطة النقاط الرئيسية
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()
يكتب هذا الإعداد الفيديو الذي تتم مراقبته في ملف إخراج، مما يسمح لك بمراجعة أداء التمرين لاحقًا أو مشاركته مع المدربين للحصول على ملاحظات إضافية.