Giám sát bài tập sử dụng Ultralytics YOLO26#
Giám sát các bài tập thông qua ước tính tư thế với Ultralytics YOLO26 giúp nâng cao việc đánh giá bài tập bằng cách theo dõi chính xác các mốc quan trọng và khớp trên cơ thể theo thời gian thực. Công nghệ này cung cấp phản hồi tức thì về kỹ thuật tập luyện, theo dõi lịch 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 tập lẫn huấn luyện viên.
Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More
Lợi ích của Giám sát Bài tập#
- Tối ưu hóa Hiệu suất: Điều chỉnh các bà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ể hình để 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ả tối đa.
- Nhận thức về Sức khỏe: Phát hiện sớm các kiểu mẫu chỉ ra các vấn đề sức khỏe hoặc quá tải tập luyện.
- Quyết định Sáng suốt: Các quyết định dựa trên dữ liệu để điều chỉnh quy trình và thiết lập mục tiêu thực tế.
Các ứng dụng thực tế#
| Giám sát Bài tập | Giám sát Bài tập |
|---|---|
![]() | ![]() |
| Đếm số lần Hít đất | Đếm số lần Hít xà |
Giám sát bài tập với YOLO26#
Giải pháp AIGym thực thi pose estimation và đếm số lần lặp lại bằng cách đo góc tạo bởi ba điểm mốc khi một chi di chuyển giữa các ngưỡng up_angle và down_angle. Chọn các điểm mốc cho bài tập bạn muốn theo dõi bằng kpts, sau đó chạy giải pháp trên video của bạn bằng Python API hoặc CLI.
# 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 mấu chốt (KeyPoints Map)#

Đối số AIGym#
Dưới đây là bảng chứa các đối số của AIGym:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
model | str | None | Đường dẫn đến tệp model Ultralytics YOLO. |
up_angle | float | 145.0 | Ngưỡng góc cho tư thế 'lên'. |
down_angle | int | 90 | Ngưỡng góc cho tư thế 'xuống'. |
kpts | list[int] | '[6, 8, 10]' | Danh sách ba chỉ số điểm then chốt được sử dụng để giám sát tập luyện. Các điểm then chốt này tương ứng với các khớp hoặc bộ phận cơ thể, như vai, khuỷu tay và cổ tay, cho các bài tập như hít đất, hít xà, squat và tập bụng. |
line_width | int | 2 | Độ dày đường viền cho các khung, keypoints và số lượng mà giải pháp vẽ ra. |
verbose | bool | True | Bật nhật ký theo từng khung hình của giải pháp về hình dạng đầu vào, số lượng lớp và tốc độ xử lý. Bản thân lệnh gọi tracking luôn ở chế độ im lặng. |
Giải pháp AIGym cũng hỗ trợ hàng loạt tham số theo dõi đối tượng:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Chỉ định thuật toán theo dõi cần sử dụng. Các tùy chọn tích hợp sẵn: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Thiết lập ngưỡng tin cậy cho các phát hiện; các giá trị thấp hơn cho phép nhiều đối tượng được theo dõi hơn nhưng có thể bao gồm các kết quả dương tính giả. |
iou | float | 0.7 | Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện trùng lặp. |
classes | list | None | Lọc kết quả theo chỉ mục lớp. Ví dụ: classes=[0, 2, 3] chỉ theo dõi các lớp được chỉ định. |
device | str | None | Chỉ định thiết bị để suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng lựa chọn giữa CPU, GPU cụ thể hoặc các thiết bị tính toán khác để thực thi mô hình. |
Ngoài ra, các cài đặt trực quan hóa sau đây có thể được áp dụng:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
show | bool | False | Nếu là True, hiển thị các hình ảnh hoặc video đã được chú thích trong một cửa sổ. Hữu ích để nhận phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc kiểm thử. |
show_conf | bool | True | Hiển thị điểm số tin cậy (confidence score) cho mỗi phát hiện cùng với nhãn. Cung cấp thông tin chi tiết về độ chắc chắn của model đối với từng phát hiện. |
show_labels | bool | True | Hiển thị nhãn cho mỗi phát hiện trong đầu ra hình ảnh. Cung cấp khả năng nhận biết tức thì các đối tượng được phát hiện. |
Câu hỏi thường gặp#
Để giám sát các bài tập của bạn bằng cách sử dụng Ultralytics YOLO26, bạn có thể tận dụng pose estimation capabilities để theo dõi và phân tích các mốc quan trọng cũng như khớp trên cơ thể theo thời gian thực. Điều này cho phép bạn nhận phản hồi tức thì về kỹ thuật tập, đếm số lần lặp 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ã nguồn ví dụ được cung cấp cho các bài tập chống đẩy, kéo xà hoặc tập bụng như minh họa:
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()Để biết thêm các tùy chỉnh và cài đặt, bạn có thể tham khảo phần AIGym trong tài liệu.
Việc sử dụng Ultralytics YOLO26 để giám sát bài tập mang lại một số lợi ích chính:
- Tối ưu hóa Hiệu suất: Bằng cách điều chỉnh bà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ể hình để 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 chỉ ra 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: Đưa ra các quyết định dựa trên dữ liệu để điều chỉnh quy trình và thiết lập mục tiêu thực tế.
Bạn có thể xem YouTube video demonstration để thấy những lợi ích này hoạt động trong thực tế.
Ultralytics YOLO26 có độ chính xác cao trong việc phát hiện và theo dõi các bài tập nhờ vào các tính năng pose estimation tiên tiến nhất. Nó có thể theo dõi chính xác các mốc quan trọng và khớp trên cơ thể, cung cấp phản hồi theo thời gian thực về kỹ thuật tập 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 precision và độ tin cậy cao. Để có các ví dụ thực tế, hãy xem phần real-world applications trong tài liệu, trong đó minh họa việc đếm số lần chống đẩy và kéo xà.
Có, Ultralytics YOLO26 có thể được tùy chỉnh cho các bài tập luyện tùy chỉnh. Lớp
AIGymphát hiện số lần lặp lại bài tập bằng cách sử dụng các đối sốup_angle,down_anglevàkpts. Bạn có thể chỉ định các điểm mốc và góc để phát hiện các bài tập cụ thể. Dưới đây là một thiết lập ví dụ: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ề cách thiết lập đối số, hãy tham khảo phần Arguments
AIGym. Tính linh hoạt này cho phép bạn giám sát nhiều bài tập khác nhau và tùy chỉnh lịch trình tập dựa trên fitness goals của bạn.Để lưu kết quả giám sát bài tập, bạn có thể sửa đổi mã để bao gồm một trình ghi video lưu các khung hình đã xử lý. Dưới đâ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 video đã được giám sát 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ẻ với huấn luyện viên để nhận thêm phản hồi.

