Đồ Án Tốt Nghiệp: Hệ Thống AI Hỗ Trợ Tập Gym và Yoga Tại Nhà - Đại Học Sư Phạm Kỹ Thuật TP.HCM

Đồ án nghiên cứu tốt nghiệp hệ thống trí tuệ nhân tạo hỗ trợ tập gym và yoga tại nhà, áp dụng công nghệ tiên tiến, tối ưu giải pháp kỹ thuật cho bài toán .

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2022

67
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng Quan Về Đồ Án AI Hỗ Trợ Tập Gym Yoga Tại Nhà

Sự bùng phát của đại dịch COVID-19 đã thay đổi hoàn toàn thói quen sinh hoạt và rèn luyện sức khỏe của con người. Việc hạn chế di chuyển và tiếp xúc xã hội khiến nhu cầu tập luyện tại nhà tăng cao. Tuy nhiên, việc tự tập luyện tiềm ẩn nhiều rủi ro, đặc biệt là sai tư thế gây chấn thương và thiếu động lực. Nắm bắt được thực trạng này, đồ án tốt nghiệp "Hệ thống trí tuệ nhân tạo hỗ trợ tập Gym và Yoga tại nhà" của sinh viên trường Đại học Sư phạm Kỹ thuật TP.HCM đã ra đời. Đây là một đồ án công nghệ thông tin mang tính ứng dụng cao, giải quyết trực tiếp vấn đề cấp thiết của xã hội. Hệ thống này được phát triển với mục tiêu trở thành một huấn luyện viên ảo (Virtual Personal Trainer), sử dụng trí tuệ nhân tạo trong fitness để cung cấp phản hồi chính xác và tức thì cho người dùng. Bằng cách phân tích chuyển động của người tập qua camera, ứng dụng có thể đếm số lần lặp, đánh giá tư thế, và đưa ra hướng dẫn điều chỉnh. Đề tài không chỉ tập trung vào khía cạnh kỹ thuật như computer vision cho gym hay pose estimation, mà còn tích hợp các tính năng hỗ trợ toàn diện như xây dựng kế hoạch tập luyện cá nhân hóa, tính toán calo và thiết lập chế độ dinh dưỡng. Nghiên cứu này mở ra một hướng đi mới cho các ứng dụng fitness thông minh, giúp việc rèn luyện sức khỏe tại nhà trở nên an toàn, hiệu quả và dễ tiếp cận hơn bao giờ hết.

1.1. Bối cảnh ra đời và lý do lựa chọn đề tài nghiên cứu

Đề tài được thực hiện trong bối cảnh dịch bệnh COVID-19 diễn biến phức tạp, khi việc đến phòng tập công cộng bị hạn chế. Nhu cầu tập thể dục tại nhà để nâng cao sức khỏe và tăng cường hệ miễn dịch trở thành một xu hướng tất yếu. Tuy nhiên, người tự tập thường gặp phải các vấn đề như: không biết bắt đầu từ đâu, thực hiện sai kỹ thuật động tác dẫn đến chấn thương, và thiếu người hướng dẫn để duy trì động lực. Nhận thấy những bất cập này, nhóm tác giả đã quyết định phát triển một mô hình AI cho sức khỏe nhằm giải quyết các vấn đề trên, mong muốn đóng góp một giải pháp công nghệ hữu ích cho cộng đồng.

1.2. Mục tiêu cốt lõi của hệ thống hỗ trợ tập luyện tại nhà

Mục tiêu chính của đồ án là xây dựng một hệ thống hoàn chỉnh có khả năng hoạt động như một trợ lý tập luyện cá nhân. Các chức năng cốt lõi bao gồm: (1) Đánh giá độ chính xác của từng động tác, sửa lỗi tư thế tập luyện trong thời gian thực. (2) Tự động đếm số lần thực hiện (reps) cho các bài tập Gym và đếm thời gian giữ tư thế cho các bài Yoga. (3) Hỗ trợ xây dựng thời khóa biểu luyện tập và chế độ dinh dưỡng phù hợp với mục tiêu tăng hoặc giảm cân. (4) Cung cấp công cụ tính toán lượng calo cần thiết. (5) Tích hợp tính năng nhắn tin để người dùng có thể trao đổi với huấn luyện viên khi cần thiết.

II. Thách Thức Khi Tập Tại Nhà và Vai Trò Của Huấn Luyện Viên Ảo

Tập luyện tại nhà mang lại sự tiện lợi nhưng cũng đi kèm với nhiều thách thức không nhỏ. Thách thức lớn nhất là việc đảm bảo thực hiện đúng kỹ thuật động tác. Nếu không có sự giám sát của chuyên gia, người tập rất dễ mắc lỗi sai tư thế, không chỉ làm giảm hiệu quả bài tập mà còn có nguy cơ cao dẫn đến chấn thương, đặc biệt là với các bài tập phức tạp như Squat hay các tư thế Yoga nâng cao. Một vấn đề khác là sự thiếu hụt động lực và kỷ luật. Việc duy trì một lịch trình tập luyện đều đặn tại nhà đòi hỏi ý chí rất lớn. Để giải quyết những vấn đề này, khái niệm huấn luyện viên ảo ra đời. Một hệ thống AI được trang bị công nghệ computer vision cho gym có thể quan sát và phân tích chuyển động cơ thể của người tập một cách chính xác. Nó không chỉ đơn thuần là một ứng dụng ghi lại bài tập, mà còn là một người thầy, một người bạn đồng hành. Hệ thống này có khả năng sửa lỗi tư thế tập luyện ngay lập tức, đưa ra cảnh báo bằng âm thanh hoặc hình ảnh khi người tập thực hiện sai. Hơn nữa, các ứng dụng fitness thông minh còn giúp theo dõi tiến độ tập luyện một cách khoa học, tạo ra các kế hoạch tập luyện cá nhân hóa dựa trên mục tiêu và thể trạng của người dùng, từ đó duy trì sự hứng thú và cam kết lâu dài.

2.1. Rủi ro sai tư thế và nguy cơ chấn thương khi tự tập

Khi không có người hướng dẫn, người tập thường có xu hướng thực hiện động tác theo cảm tính. Điều này dẫn đến các lỗi phổ biến như cong lưng khi Squat, hạ khuỷu tay quá sâu khi hít đất, hoặc sai lệch vị trí các khớp trong các tư thế Yoga. Những lỗi này lặp đi lặp lại trong thời gian dài sẽ gây áp lực không mong muốn lên cột sống, khớp gối, và các nhóm cơ, dẫn đến đau mỏi và chấn thương mãn tính. Việc thiếu phản hồi tức thì khiến người tập không nhận ra sai lầm của mình để điều chỉnh kịp thời.

2.2. Giải pháp AI Virtual Personal Trainer cho mọi nhà

Một Virtual Personal Trainer dựa trên AI có thể khắc phục nhược điểm trên. Bằng cách sử dụng camera của laptop hoặc điện thoại, hệ thống tiến hành xử lý ảnh thời gian thực, xác định các điểm khớp chính trên cơ thể và tính toán các góc độ chuyển động. Dựa trên dữ liệu này, AI so sánh tư thế của người tập với một mô hình chuẩn và đưa ra phản hồi. Ví dụ, hệ thống có thể cảnh báo "Vui lòng giữ thẳng lưng" hoặc "Hạ hông thấp hơn". Đây là một bước tiến vượt bậc so với các video hướng dẫn thông thường, mang lại trải nghiệm tập luyện an toàn và hiệu quả hơn.

III. Bí Quyết Xây Dựng Mô Hình AI Với MediaPipe Computer Vision

Để xây dựng một huấn luyện viên ảo hiệu quả, việc lựa chọn công nghệ lõi là yếu tố quyết định. Báo cáo đồ án tốt nghiệp này đã tiến hành so sánh và lựa chọn giải pháp tối ưu cho bài toán pose estimation (ước tính tư thế). Công nghệ này là nền tảng cho phép máy tính "hiểu" được tư thế và chuyển động của con người từ hình ảnh hoặc video. Hai mô hình nổi bật được đưa ra phân tích là OpenPose và BlazePose của Google. Mặc dù OpenPose cho kết quả khá tốt, nó đòi hỏi tài nguyên tính toán lớn và có tốc độ xử lý chậm trên các thiết bị phổ thông. Ngược lại, BlazePose, một phần của thư viện MediaPipe, được tối ưu hóa cho các ứng dụng thời gian thực trên nhiều nền tảng. Nhóm nghiên cứu đã chứng minh rằng BlazePose cho tốc độ xử lý vượt trội (đạt 16-21 FPS trên webcam) mà vẫn đảm bảo độ chính xác cao. Toàn bộ hệ thống được xây dựng trên nền tảng OpenCV và Python. Python là ngôn ngữ lập trình chính nhờ hệ sinh thái thư viện mạnh mẽ cho machine learning ứng dụng, trong khi OpenCV đóng vai trò xử lý các tác vụ thị giác máy tính cơ bản như đọc và hiển thị luồng video từ camera. Sự kết hợp giữa thư viện MediaPipe và các công cụ này đã tạo nên một hệ thống xử lý ảnh thời gian thực mạnh mẽ, có khả năng phân tích chuyển động cơ thể một cách mượt mà và chính xác.

3.1. So sánh BlazePose và OpenPose cho bài toán nhận diện tư thế

Theo kết quả thực nghiệm trong đồ án, BlazePose thể hiện ưu thế rõ rệt về tốc độ xử lý so với OpenPose khi chạy trên cùng một cấu hình phần cứng (CPU Intel Core i5, RAM 8GB). Trong khi OpenPose chỉ đạt khoảng 1.9 FPS trên webcam, BlazePose đạt tới 16-21 FPS. Tốc độ này là đủ để mang lại trải nghiệm mượt mà, không giật lag cho người dùng. Về độ chính xác, sự chênh lệch giữa hai mô hình là không đáng kể đối với yêu cầu của một ứng dụng fitness thông minh. Do đó, việc lựa chọn BlazePose là một quyết định hợp lý, cân bằng giữa hiệu suất và độ chính xác.

3.2. Kỹ thuật Pose Estimation và theo dõi 33 điểm mốc cơ thể

Kỹ thuật Pose Estimation hoạt động bằng cách xác định vị trí của các khớp và các bộ phận quan trọng trên cơ thể người, gọi là các điểm mốc (landmarks). Mô hình BlazePose trong thư viện MediaPipe có khả năng dự đoán vị trí của 33 điểm mốc 3D (tọa độ x, y, z). Các điểm mốc này bao gồm các khớp chính như vai, khuỷu tay, hông, đầu gối. Bằng cách kết nối các điểm mốc này, hệ thống có thể tái tạo lại một bộ xương ảo và theo dõi chuyển động của nó qua từng khung hình, làm cơ sở cho việc phân tích tư thế.

IV. Phương Pháp Thiết Kế Hệ Thống AI Tập Luyện Toàn Diện

Hệ thống không chỉ là một mô hình AI đơn lẻ mà là một ứng dụng hoàn chỉnh với nhiều khối chức năng được thiết kế logic. Sơ đồ khối của hệ thống bao gồm: Khối tiếp nhận hình ảnh (Camera), Khối nhận diện (sử dụng BlazePose), Khối phân tích xử lý, và Khối ứng dụng tương tác (giao diện người dùng). Cốt lõi của hệ thống nằm ở Khối phân tích xử lý. Tại đây, các thuật toán được áp dụng để sửa lỗi tư thế tập luyện. Phương pháp chính là phân tích góc. Sau khi nhận được tọa độ 33 điểm mốc từ Khối nhận diện, hệ thống sẽ tính toán góc tạo bởi các nhóm ba điểm mốc liên quan. Ví dụ, để kiểm tra động tác Squat, hệ thống sẽ tính góc tại khớp gối và khớp hông. Các góc này sau đó được so sánh với một biên độ góc chuẩn đã được định nghĩa trước cho từng bài tập. Nếu góc của người tập nằm ngoài biên độ cho phép, hệ thống sẽ đưa ra cảnh báo. Tương tự, phương pháp này cũng được áp dụng cho việc nhận diện tư thế yoga, vốn đòi hỏi độ chính xác ở nhiều khớp cùng lúc. Ngoài ra, hệ thống còn tích hợp các tính năng giá trị gia tăng như tạo kế hoạch tập luyện cá nhân hóa và lên thực đơn dinh dưỡng, giúp người dùng có một lộ trình chăm sóc sức khỏe toàn diện và khoa học.

4.1. Cấu trúc hệ thống và luồng xử lý ảnh thời gian thực

Luồng hoạt động của hệ thống bắt đầu khi camera ghi lại hình ảnh của người tập. Từng khung hình được đưa vào Khối nhận diện, nơi mô hình BlazePose trích xuất bộ xương ảo. Dữ liệu tọa độ các điểm mốc được chuyển đến Khối phân tích. Tại đây, các góc quan trọng được tính toán và so sánh với dữ liệu chuẩn. Kết quả phân tích (đúng/sai, số lần lặp) được gửi đến Khối ứng dụng tương tác để hiển thị trên màn hình cho người dùng. Toàn bộ quy trình này diễn ra trong thời gian thực, đảm bảo phản hồi tức thì.

4.2. Thuật toán phân tích góc để đánh giá các động tác Gym Yoga

Dựa trên tư vấn từ các chuyên gia và tài liệu hướng dẫn, nhóm nghiên cứu đã xây dựng một cơ sở dữ liệu về các góc chuẩn cho từng động tác. Ví dụ, với động tác Squat, góc tại khuỷu chân phải nằm trong khoảng 190-260 độ. Với tư thế Yoga "Chiến binh", góc tại hai vai, hai khuỷu tay, hông và đầu gối đều phải đạt một biên độ nhất định. Bằng cách kiểm tra đồng thời nhiều góc, hệ thống có thể nhận diện tư thế yoga một cách chính xác. Việc sử dụng hàm atan2 để tính toán góc giúp xử lý được các góc lớn hơn 180 độ, tăng độ chính xác của thuật toán.

V. Kết Quả Thực Nghiệm Độ Chính Xác Trải Nghiệm Người Dùng

Kết quả thực nghiệm của đồ án tốt nghiệp đã chứng minh tính hiệu quả và khả thi của hệ thống. Về mặt hiệu suất, hệ thống hoạt động ổn định trên máy tính cá nhân thông thường, đạt tốc độ xử lý trung bình 18 khung hình/giây (FPS), đủ để đảm bảo hình ảnh mượt mà và phản hồi tức thì. Đặc biệt, độ chính xác của hệ thống trong việc nhận diện và đánh giá động tác đạt mức ấn tượng là 90% trong suốt quá trình thử nghiệm với nhiều bài tập khác nhau. Tỷ lệ chính xác cao này cho thấy mô hình BlazePose kết hợp với thuật toán phân tích góc là một lựa chọn phù hợp và hiệu quả. Các chức năng chính như đếm số lần lặp cho các bài tập Gym (cuộn tay, hít đất, gập bụng) và đếm thời gian giữ tư thế cho các bài Yoga (Plank, Con thuyền, Chiến binh) đều hoạt động chính xác. Hệ thống có khả năng phân biệt rõ ràng giữa một lần thực hiện đúng và một lần thực hiện sai hoặc chưa hoàn thành. Bên cạnh các chỉ số kỹ thuật, nhóm nghiên cứu cũng đã tiến hành khảo sát người dùng để đánh giá giao diện và trải nghiệm tổng thể của ứng dụng fitness thông minh. Kết quả khảo sát cho thấy phản hồi rất tích cực, người dùng đánh giá cao giao diện trực quan, dễ sử dụng và tính hữu ích của các tính năng.

5.1. Đánh giá hiệu suất Tốc độ xử lý FPS và độ chính xác 90

Theo Bảng 4.1 và Hình 4.25 trong báo cáo, hệ thống đã được thử nghiệm với nhiều động tác khác nhau, mỗi động tác thực hiện 10 lần. Kết quả cho thấy tỷ lệ nhận diện đúng đạt trung bình 90%. Một số động tác như Plank hay Cái cây đạt độ chính xác gần như tuyệt đối. Tốc độ xử lý 18 FPS đảm bảo rằng hệ thống có thể theo dõi tiến độ tập luyện và đưa ra phản hồi mà không có độ trễ đáng kể, tạo ra trải nghiệm liền mạch cho người dùng.

5.2. Chức năng nhận diện và đếm rep trong thực tế

Các hình ảnh từ 4.9 đến 4.24 trong báo cáo đã minh họa rõ ràng khả năng hoạt động của hệ thống. Khi người dùng thực hiện động tác cuộn tay trước, bộ đếm rep sẽ tăng lên mỗi khi góc khuỷu tay đạt đến biên độ chuẩn. Tương tự, với tư thế Yoga "Cái cây", đồng hồ đếm thời gian chỉ bắt đầu chạy khi hệ thống xác nhận người dùng đã vào đúng tư thế. Hệ thống cũng có khả năng phát hiện các lỗi sai phổ biến như mặt bị che khuất hoặc tư thế không hoàn chỉnh, và đưa ra thông báo tương ứng.

VI. Tương Lai Của AI Fitness Hướng Phát Triển Từ Đồ Án

Đồ án "Hệ thống trí tuệ nhân tạo hỗ trợ tập Gym và Yoga tại nhà" đã đặt một nền móng vững chắc cho việc ứng dụng AI vào lĩnh vực sức khỏe cá nhân. Hệ thống đã đạt được các mục tiêu đề ra, tạo ra một sản phẩm có tính ứng dụng cao và đáp ứng nhu cầu thực tế. Tuy nhiên, như mọi đồ án công nghệ thông tin, vẫn còn những hạn chế và tiềm năng để phát triển xa hơn. Hạn chế hiện tại của hệ thống là chỉ tập trung phân tích động tác của một người trong khung hình và số lượng bài tập còn giới hạn. Trong tương lai, hệ thống có thể được cải tiến và mở rộng theo nhiều hướng. Một hướng phát triển quan trọng là mở rộng cơ sở dữ liệu bài tập, bao gồm nhiều động tác Gym và các tư thế Yoga phức tạp hơn. Việc cải tiến mô hình AI cho sức khỏe để có thể nhận diện nhiều người cùng lúc cũng là một mục tiêu tiềm năng. Đặc biệt, việc tích hợp yếu tố gamification trong tập luyện như hệ thống điểm thưởng, bảng xếp hạng, hay các thử thách sẽ giúp tăng cường sự tương tác và duy trì động lực cho người dùng. Triển vọng của công nghệ này là rất lớn, hứa hẹn tạo ra một thế hệ ứng dụng fitness thông minh mới, cá nhân hóa và hiệu quả hơn.

6.1. Tổng kết kết quả và các hạn chế cần cải thiện của đề tài

Tóm lại, đồ án đã thành công trong việc xây dựng một hệ thống AI hỗ trợ tập luyện tại nhà với độ chính xác 90% và hiệu suất ổn định. Hệ thống đã giải quyết được các vấn đề cốt lõi của việc tự tập. Tuy nhiên, hạn chế của đề tài bao gồm việc hệ thống yêu cầu người tập phải đứng ở vị trí thấy rõ toàn bộ cơ thể và mặt, cùng với danh sách bài tập còn khiêm tốn. Đây là những điểm cần được cải thiện trong các phiên bản phát triển tiếp theo.

6.2. Triển vọng phát triển Mở rộng bài tập và tích hợp Gamification

Hướng phát triển trong tương lai rất đa dạng. Trước hết là việc bổ sung thêm nhiều bài tập cho các nhóm cơ khác nhau và các bài Yoga từ cơ bản đến nâng cao. Bên cạnh đó, hệ thống gợi ý bài tập có thể được làm thông minh hơn, tự động đề xuất các bài tập dựa trên lịch sử và tiến độ của người dùng. Việc áp dụng các yếu tố gamification trong tập luyện (game hóa) được xem là một hướng đi quan trọng để tăng sự gắn kết. Người dùng có thể nhận huy hiệu khi hoàn thành mục tiêu, thi đấu với bạn bè, tạo ra một cộng đồng tập luyện sôi nổi và đầy động lực.

21/09/2025

Trích đoạn nội dung tài liệu

Chương 1: Giới thiệu khái quát về đề tài nghiên cứu. Mục tiêu, giới hạn và phạm vi của đề tài) - Chương 2: Cơ sở lý thuyết (Chương 2: Tìm hiểu cơ sở lý thuyết về model phân tích chuyển động, các phần mềm liên quan và lí thuyết về Vecto trong không gian, cũng như công thức tính calo) - Chương 3: Thiết kế hệ thống (Chương 3: Phân tích các động tác, sơ đồ khối, lựa chọn model nhận diện tư thế phù hợp, thiết kế ứng dụng và chức năng ứng dụng) - Chương 4: Kết quả (Chương 4: Nêu các kết quả đạt được khi thực thi chương trình, sau đó phân tích các kết quả thực thi được, tiến hành khảo sát người dùng) - Chương 5: Kết luận, hạn chế và hướng phát triển đề tài (Chương 5: Tóm tắt những kết quả đạt được, những hạn chế của đề tài và nêu lên các hướng phát triển trong tương lai) 3 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Chương này sẽ giới thiệu về một số thư viện và các thuật toán liên quan được sử dụng trong đề tài nghiên cứu này. Trong bài toán nhận diện và theo dõi con người, nhóm nghiên cứu sẽ giới thiệu về thư viện MediaPipe. Đối với bài toán tính toán góc độ, nhóm thực hiện sẽ giới thiệu về giải thuật tính toán góc giữa 2 vecto, một số lợi ích mà Gym và Yoga đem lại, các phầm mềm liên quan.1: THƯ VIỆN MÃ NGUỒN MỞ MEDIAPIPE 2.1: Tổng quan về MediaPipe MediaPipe [1] là một thư viện mã nguồn mở được nghiên cứu và phát triển bởi Google.

Nó cung cấp các giải pháp máy học đa nền tảng, hiện đang ở giai đoạn Alpha. MediaPipe [1] được cung cấp miễn phí và hỗ trợ hoạt động trên nhiều nền tảng như: Window, Ubuntu, Mac,. Google khẳng định rằng bộ công cụ này có thể chạy ổn định trên hầu hết các cấu hình phần cứng thông dụng. Chúng dễ dàng cài đặt và triển khai trên nhiều nền tảng khác nhau như Mobile (Android/iOS), Desktop/Cloud, Web và IOT devices.

Trên trang chủ MediaPipe, toàn bộ mã nguồn của dự án đều được công khai, người dùng có thể tải về sử dụng và tùy ý chỉnh sửa để phù hợp với dự án của bản thân. Hiện nay MediaPipe đã có nhiều dự án cho các ứng dụng quan trọng trong thị giác máy tính như: phát hiện khuôn mặt, phân đoạn màu sắc, phát hiện đối tượng, mống mắt, tư thế, bàn tay,…Và đặc biệt trong thư viện MediaPipe [1], Model phân tích tư thế BlazePose [2] được nhóm thực hiện đề cập trong đề tài này.2: Model BlazePose trong MediaPipe BlazePose [2] bao gồm hai thành phần chính được mô tả ở hình 2. - Pose Detector (máy phát hiện tư thế): có nhiệm vụ phát hiện ra vùng chứa đối tượng trên frame ảnh. - Pose Tracker (máy theo dõi tư thế): có nhiệm vụ trích xuất ra các điểm keypoints quan trọng trong vùng chứa đối tượng từ ảnh, và khi đó sẽ dự đoán vị trí của đối tượng trong các frame ảnh tiếp theo.

4 Quy trình hoạt động của Pose Detector và Pose Tracker được trình bày chi tiết ở phần 2.3: Máy phát hiện tư thế - Pose Detector Để BlazePose [2] có hiệu suất nhận dạng cao, bao gồm các mô hình theo dõi và phát hiện tư thế, mỗi thành phần phải rất nhanh, chỉ sử dụng vài mili giây trên mỗi khung hình. Để thực hiện điều này, tác giả quan sát thấy rằng tín hiệu mạnh nhất đối với trong việc nhận dạng là khuôn mặt của con người (do các đặc điểm trên khuôn mặt có độ tương phản cao và những thay đổi tương đối nhỏ về ngoại hình). Từ đó, Pose Detector (máy phát hiện tư thế) được lấy cảm hứng từ model BlazeFace [3]. Khi model xác định thành công khuôn mặt, chúng sẽ dự đoán 2 điểm ảo để miêu tả trung tâm cơ thể được thể hiện ở hình 2.

Sau đó sẽ xoay người theo phương thẳng đứng khi model Pose Detector detect thành công được mô tả ở hình 2.2 Vùng ROI của Model BlazePose Hình 2.3 Vùng ROI của Model BlazePose khi xoay người theo phương thẳng đứng 5 2.4: Máy theo dõi tư thế - Pose Tracker Việc theo dõi (tracking) các vị trí là phần quan trọng để theo dõi các chuyển động phục vụ cho việc phân loại các tư thế. Nguyên tắc hoạt động để tối ưu thời gian cho model BlazePose là Pose Tracker (máy theo dõi tư thế) phải xác định được vị trí của người trong frame ảnh kế tiếp thì Pose Detector (máy phát hiện tư thế) sẽ không cần phải hoạt động lại, đồng thời kết quả dự đoán của Pose Tracker (máy theo dõi tư thế) sẽ luôn được sử dụng và chỉ phát hiện các điểm lại khi Pose Detector xác định sai. Mạng Pose Tracking [2] được bao gồm hai phần chính là: Keypoints Detection (xác định vị trí các điểm trên cơ thể) và Part và Keypoints Regression Part (xác định vị trí các keypoints).4, phần Keypoints Detection Part là phần huấn luyện mạng bên trái và ở giữa, Keypoints Regression Part là ngõ ra của model và là phần mạng ở bên phải. Đầu tiên, để huấn luyện Keypoints Detection Part sử dụng bản đồ nhiệt và bù đắp tổn thất (Heat maps + Offset maps).

Tiếp theo, Keypoints Regression Part bắt đầu huấn luyện bằng cách chia sẻ các đặc điểm với Keypoints Detection Part. Ngõ ra sẽ là 33 trọng điểm (keypoints) được mô tả như hình 2.4 Quá trình huấn luyện của mạng Pose Tracking 6 2.5: Pose landmark Model Mô hình điểm mốc trong MediaPipe Pose [4] dự đoán vị trí của 33 cột mốc tư thế được thể hiện như hình 2. Ngõ ra là 33 điểm mốc tư thế với các mốc bao gồm các thông số x, y và z: - Giá trị x, y: toạ độ các điểm mốc trên hình ảnh với x, y lần lượt tương ứng là chiều rộng và chiều cao. - Thông số z: thể hiện độ sâu của mốc so với điểm mốc ở hông.5 Các điểm landmark của Model BlazePose 2.6: Các thông số của Model Pose Python là ngôn ngữ phổ biến nhất trong ML hiện nay, cho nên các nhà nghiên cứu của Google về MediaPipe cũng đã hỗ trợ Python API, dưới dạng thư viện là Mediapipe.

Chúng ta có thể sử dụng bằng cách import Mediapipe như một thư viện bình thường. Model BlazePose [4] trong MediaPipe có một vài thông số quan trọng cần chú ý. static-image-mode (bool) Nếu tham số truyền vào hàm static-image-mode là true thì mô hình xác định vị trí người sẽ chạy trên mọi frame ảnh mà không tracking nếu ảnh đầu vào là các hình ảnh không liên quan hoặc ảnh tĩnh. 7 Nếu tham số truyền vào hàm static-image-mode là false thì lúc này thuật toán sẽ mặc định đầu vào là luồng video.

Thuật toán theo dõi chỉ theo dõi lại vị trí của người mà không cần detect lại nếu thuật toán phát hiện xác định được vị trí của người tại một số keyframe. Cho đến khi ngõ ra của model theo dõi ở dưới một ngưỡng nào đó thì việc xác định vị trí mới được thực hiện lại. smooth-landmarks (bool) Khi static-image-mode ở trạng thái false thì smooth-landmarks mới được sử dụng: Tức là nó chỉ được sử dụng khi đầu vào là một luồng video và bắt đầu thực hiện theo dõi. Ngược lại thì smooth-landmarks không sử dụng.

Nếu tham số truyền vào smooth-landmarks là true thì các điểm keypoint sẽ được lọc và làm giảm độ rung bởi thuật toán filter landmarks, giúp cho vị trí của các keypoint được ổn định trong từng frame ảnh. Nếu tham số truyền vào smooth- landmarks là false thì thuật toán filter landmarks sẽ không được thực hiện. min-detection-confidence (float [0.0]) Nếu ngõ ra của mô hình phát hiện lớn hơn hoặc bằng tham số này, thì được xem là phát hiện thành công các keypoints, và ngược lại. Giá trị được thiết lập mặc định là 0.

min-tracking-confidence (float [0.0]) Nếu ngõ ra của mô hình theo dõi lớn hơn hoặc bằng tham số này, thì được xem là theo dõi thành công và ngược lại. Giá trị được thiết lập mặc định là 0.1: Định nghĩa Góc hợp giữa hai Vecto [5] trong không gian được định nghĩa tương tự như góc giữa hai Vecto trong mặt phẳng: - Nếu tồn tại một Vecto bằng không, thì góc đó không xác định (góc bằng 0). - Nếu 2 Vecto đều khác không, ta đưa về chung một góc để tính toán.2: Tính chất Gọi α là góc giữa hai vecto bất kì trong không gian. Ta được các tính chất như sau: - α = 0º: khi 2 vecto đó cùng chiều.

- α = 90º: khi 2 vecto đó vuông góc. - α = 180º: khi 2 vecto đó ngược chiều.3: Công thức tính góc giữa 2 vecto Có rất nhiều phương pháp để tính góc giữa 2 vecto như công thức cos(α) (2.1) là tích vô hướng chia tích độ dài: ⃗ ⃗⃗ .| | Tuy nhiên phương pháp tính góc cos(α) (2.1) chỉ thích hợp cho việc tính toán góc < 180º. Còn muốn sử dụng góc 360º thì ta có thể dùng phương pháp tan (2. tan( ) = Trong khi đó góc arctan được tính toán bằng radian trong phạm vi từ -π/2 đến π/2.

Theo công thức (2.2) sẽ xảy ra trường hợp chia cho 0, nếu cạnh kề (adjacent = 0). Vì vậy, một hàm được gọi là atan2 [6] được ra đời cho phép xác định góc tại tham số x và y (tham số tọa độ thể hiện vị trí điểm) nhằm tránh trường hợp chia cho 0 và giá trị góc trả về là radian từ -π đến π. Từ đó ta sẽ tính được các góc lớn hơn 180 độ.6 là biểu diễn hình học cách tính góc của hàm atan2 trên các góc phần tư.6 Hàm actan2 tính toán các góc phần tư 9 2.4: Ứng dụng Ở dự án này, nhóm thực hiện đã có được các toạ độ x, y, z từ Output của Model BlazePose. Nhóm thực thiện sẽ tính toán góc độ từ các toạ độ đó.

Ví dụ, ở động tác cuộn tay trước ở hình 2.7, nhóm thực hiện đã tính toán được góc khuỷu tay cần phải nâng tạ lên là từ 310º đến 330º.7 Tính toán góc trong động tác 2.3: PHẦN MỀM LẬP TRÌNH PYCHARM Phần mềm lập trình Pycharm là sự lựa chọn của nhóm do sự tiện lợi của các công cụ hỗ trợ kèm theo. PyCharm hỗ trợ các tính năng như: hoạt động trên nhiều nền tảng Windows, Linux và MacOS, hỗ trợ phát hiện lỗi một cách tự động giúp cho người lập trình dễ dàng chỉnh sửa, chức năng điều hướng mã giúp tiết kiệm thời gian soạn mã. Nhưng mà vẫn có một số ưu/nhược điểm khi sử dụng phần mềm lập trình này. Ưu điểm: - Dễ dàng cài đặt Pycharm.

- PyCharm được tích hợp các tính năng của trình biên dịch như tự động hoàn thành và tô màu mã nguồn, báo lỗi. - Chỉ với cú nhấp chuột mã nguồn đã được mở. - Tiết kiệm thời gian để phát triển dự án.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ