Theo dõi tập luyện sử dụng Ultralytics YOLO26

Mở Theo dõi tập luyện trong Colab

Theo dõi các buổi tập luyện thông qua ước tính tư thế (pose estimation) với Ultralytics YOLO26 giúp nâng cao hiệu quả đánh giá bài tập bằng cách theo dõi chính xác các điểm mốc và khớp trên cơ thể trong thời gian thực. Công nghệ này cung cấp phản hồi tức thì về tư thế tập luyện, theo dõi các quy trình tập và đo lường các chỉ số hiệu suất, tối ưu hóa các buổi tập cho cả người dùng và huấn luyện viên.



Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More

Ưu điểm của việc Theo dõi tập luyện

  • Hiệu suất được tối ưu hóa: Điều chỉnh các buổi tập dựa trên dữ liệu giám sát để đạt kết quả tốt hơn.
  • Đạt được mục tiêu: Theo dõi và điều chỉnh các mục tiêu thể dục để có sự tiến bộ có thể đo lường được.
  • Cá nhân hóa: Các kế hoạch tập luyện tùy chỉnh dựa trên dữ liệu cá nhân để đạt hiệu quả cao.
  • Nhận thức về sức khỏe: Phát hiện sớm các kiểu mẫu cho thấy vấn đề sức khỏe hoặc tập luyện quá sức.
  • Quyết định sáng suốt: Ra quyết định dựa trên dữ liệu để điều chỉnh quy trình và đặt ra các mục tiêu thực tế.

Ứng dụng trong thế giới thực

Theo dõi tập luyệnTheo dõi tập luyện
YOLO đếm hít đất với ước tính tư thếYOLO đếm hít xà với ước tính tư thế
Đếm số lần hít đất (PushUps)Đếm số lần hít xà (PullUps)
Theo dõi tập luyện sử dụng 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]"

Bản đồ các điểm chính (KeyPoints Map)

Sơ đồ thứ tự các điểm chính ước tính tư thế YOLO

Các tham số của AIGym

Dưới đây là bảng các tham số của AIGym:

Đối sốLoạiMặc địnhMô tả
modelstrNoneĐường dẫn đến một file model Ultralytics YOLO.
up_anglefloat145.0Ngưỡng góc cho tư thế 'lên'.
down_angleint90Ngưỡng góc cho tư thế 'xuống'.
kptslist[int]'[6, 8, 10]'Danh sách ba chỉ số keypoint được sử dụng để theo dõi quá trình tập luyện. Những keypoint này tương ứng với các khớp hoặc bộ phận cơ thể, chẳng hạn như vai, khuỷu tay và cổ tay, dùng cho các bài tập như hít đất, hít xà, squat và các bài tập bụng.

Giải pháp AIGym cũng hỗ trợ một loạt các tham số theo dõi đối tượng:

Đối sốLoạiMặc địnhMô tả
trackerstr'botsort.yaml'Chỉ định thuật toán theo dõi cần sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml.
conffloat0.1Đặt ngưỡng tin cậy cho các phát hiện; các giá trị thấp hơn cho phép theo dõi nhiều đối tượng hơn nhưng có thể bao gồm cả các kết quả dương tính giả.
ioufloat0.7Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện chồng lấp.
classeslistNoneLọc kết quả theo chỉ số lớp. Ví dụ: classes=[0, 2, 3] chỉ theo dõi các lớp được chỉ định.
verboseboolTrueKiểm soát việc hiển thị các kết quả theo dõi, cung cấp đầu ra trực quan của các đối tượng được theo dõi.
devicestrNoneChỉ định thiết bị thực hiện suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng chọn giữa CPU, một GPU cụ thể hoặc các thiết bị tính toán khác để chạy model.

Ngoài ra, các cài đặt trực quan hóa sau đây có thể được áp dụng:

Đối sốLoạiMặc địnhMô tả
showboolFalseNếu True, hiển thị các ảnh hoặc video đã được chú thích trong một cửa sổ. Hữu ích để có phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc thử nghiệm.
line_widthint or NoneNoneChỉ định độ dày đường kẻ của khung bao. Nếu là None, độ dày đường kẻ sẽ tự động được điều chỉnh dựa trên kích thước ảnh. Cung cấp khả năng tùy chỉnh trực quan để đảm bảo độ rõ nét.
show_confboolTrueHiển thị điểm tin cậy cho mỗi kết quả phát hiện bên cạnh nhãn. Cung cấp cái nhìn sâu sắc về độ chắc chắn của model cho mỗi kết quả phát hiện.
show_labelsboolTrueHiển thị nhãn cho mỗi kết quả phát hiện trong đầu ra trực quan. Cung cấp hiểu biết ngay lập tức về các đối tượng được phát hiện.

Câu hỏi thường gặp (FAQ)

Làm thế nào để tôi theo dõi các buổi tập luyện bằng Ultralytics YOLO26?

Để theo dõi các buổi tập luyện bằng Ultralytics YOLO26, bạn có thể tận dụng các khả năng ước tính tư thế để theo dõi và phân tích các điểm mốc và khớp trên cơ thể trong thời gian thực. Điều này cho phép bạn nhận phản hồi tức thì về tư thế tập luyện, đếm số lần lặp lại và đo lường các chỉ số hiệu suất. Bạn có thể bắt đầu bằng cách sử dụng mã ví dụ được cung cấp cho bài tập hít đất, hít xà hoặc tập bụng như sau:

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

Để tùy chỉnh và cài đặt sâu hơn, bạn có thể tham khảo phần AIGym trong tài liệu.

Việc sử dụng Ultralytics YOLO26 để theo dõi tập luyện mang lại lợi ích gì?

Sử dụng Ultralytics YOLO26 để theo dõi tập luyện cung cấp một số lợi ích chính:

  • Hiệu suất được tối ưu hóa: Bằng cách điều chỉnh các buổi tập dựa trên dữ liệu giám sát, bạn có thể đạt được kết quả tốt hơn.
  • Đạt được mục tiêu: Dễ dàng theo dõi và điều chỉnh các mục tiêu thể dục để có sự tiến bộ có thể đo lường được.
  • Cá nhân hóa: Nhận các kế hoạch tập luyện tùy chỉnh dựa trên dữ liệu cá nhân của bạn để đạt hiệu quả tối ưu.
  • Nhận thức về sức khỏe: Phát hiện sớm các kiểu mẫu cho thấy các vấn đề sức khỏe tiềm ẩn hoặc tập luyện quá sức.
  • Quyết định sáng suốt: Ra quyết định dựa trên dữ liệu để điều chỉnh quy trình và đặt ra các mục tiêu thực tế.

Bạn có thể xem video trình diễn trên YouTube để thấy các lợi ích này hoạt động như thế nào.

Ultralytics YOLO26 chính xác đến mức nào trong việc phát hiện và theo dõi các bài tập?

Ultralytics YOLO26 có độ chính xác rất cao trong việc phát hiện và theo dõi các bài tập nhờ vào các khả năng ước tính tư thế tiên tiến. Nó có thể theo dõi chính xác các điểm mốc và khớp cơ thể, cung cấp phản hồi theo thời gian thực về tư thế và các chỉ số hiệu suất. Trọng số đã được huấn luyện trước và kiến trúc mạnh mẽ của mô hình đảm bảo độ chính xác và độ tin cậy cao. Đối với các ví dụ thực tế, hãy xem phần ứng dụng thực tế trong tài liệu, nơi trình bày việc đếm hít đất và hít xà.

Tôi có thể sử dụng Ultralytics YOLO26 cho các quy trình tập luyện tùy chỉnh không?

Có, Ultralytics YOLO26 có thể được điều chỉnh cho các quy trình tập luyện tùy chỉnh. Lớp AIGym hỗ trợ các loại tư thế khác nhau như pushup, pullup, và abworkout. Bạn có thể chỉ định các điểm chính và góc để phát hiện các bài tập cụ thể. Dưới đây là một ví dụ thiết lập:

from ultralytics import solutions

gym = solutions.AIGym(
    line_width=2,
    show=True,
    kpts=[6, 8, 10],  # For pushups - can be customized for other exercises
)

Để biết thêm chi tiết về việc thiết lập các tham số, hãy tham khảo phần Tham số AIGym. Sự linh hoạt này cho phép bạn theo dõi nhiều bài tập khác nhau và tùy chỉnh quy trình dựa trên mục tiêu thể dục của bạn.

Làm thế nào để tôi lưu kết quả theo dõi tập luyện bằng Ultralytics YOLO26?

Để lưu kết quả theo dõi tập luyện, bạn có thể sửa đổi mã để bao gồm bộ ghi video (video writer) giúp lưu các khung hình đã xử lý. Đây là một ví dụ:

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

Thiết lập này ghi lại video đã theo dõi vào một tệp đầu ra, cho phép bạn xem lại hiệu suất tập luyện của mình sau đó hoặc chia sẻ nó với huấn luyện viên để nhận thêm phản hồi.

Bình luận