![](https://developers.google.cn/static/ml-kit/images/vision/pose-detection/jump.gif?authuser=5&hl=vi)
API phát hiện tư thế của bộ công cụ học máy là một giải pháp linh hoạt gọn nhẹ dành cho nhà phát triển ứng dụng để phát hiện tư thế cơ thể của đối tượng theo thời gian thực từ video liên tục hoặc hình ảnh tĩnh. Một tư thế mô tả vị trí của cơ thể tại một thời điểm với một tập hợp các điểm mốc liên quan đến xương. Các mốc này tương ứng với các bộ phận cơ thể như vai và hông. Bạn có thể sử dụng vị trí tương đối của các điểm mốc để phân biệt một tư thế này với một tư thế khác.
Tính năng Phát hiện tư thế của bộ công cụ học máy tạo ra kết quả khớp với bộ xương gồm 33 điểm toàn thân, bao gồm các điểm nổi bật trên khuôn mặt (tai, mắt, miệng và mũi) cũng như các điểm trên bàn tay và bàn chân. Hình 1 bên dưới cho thấy các điểm mốc nhìn qua máy ảnh về phía người dùng, vì vậy, đó là hình ảnh phản chiếu. Phần bên phải của người dùng sẽ xuất hiện ở bên trái hình ảnh:
![](https://developers.google.cn/static/ml-kit/images/vision/pose-detection/landmarks-fixed.png?authuser=5&hl=vi)
Tính năng phát hiện tư thế của bộ công cụ học máy không yêu cầu thiết bị chuyên dụng hay kiến thức chuyên môn về học máy để đạt được kết quả tuyệt vời. Với công nghệ này, nhà phát triển có thể tạo ra trải nghiệm độc đáo cho người dùng chỉ bằng một vài dòng mã.
Phải hiện khuôn mặt của người dùng để phát hiện tư thế. Tính năng phát hiện tư thế hoạt động hiệu quả nhất khi toàn bộ cơ thể của đối tượng hiện trong khung hình, nhưng cũng phát hiện một phần tư thế cơ thể. Trong trường hợp đó, các điểm mốc không nhận dạng được sẽ được gán toạ độ bên ngoài hình ảnh.
Các khả năng chính
- Hỗ trợ nhiều nền tảng Tận hưởng trải nghiệm giống nhau trên cả Android và iOS.
- Theo dõi toàn bộ cơ thể Mô hình này sẽ trả về 33 điểm mốc xương chính, bao gồm cả vị trí bàn tay và bàn chân.
- Điểm InFrameLikelihood Đối với mỗi mốc, một phép đo cho biết xác suất mà điểm mốc nằm trong khung hình ảnh. Điểm số này có phạm vi từ 0 đến 1, trong đó 1 biểu thị độ tin cậy cao.
- Hai SDK được tối ưu hoá SDK cơ sở chạy theo thời gian thực trên các điện thoại hiện đại như Pixel 4 và iPhone X. Phương thức này trả về các kết quả ở tốc độ ~30 và ~45 khung hình/giây tương ứng. Tuy nhiên, độ chính xác của toạ độ mốc có thể thay đổi. SDK chính xác sẽ trả về kết quả ở tốc độ khung hình chậm hơn nhưng tạo ra giá trị toạ độ chính xác hơn.
- Tọa độ Z để phân tích chuyên sâu Giá trị này có thể giúp xác định xem một phần cơ thể người dùng nằm ở phía trước hay phía sau hông của người dùng. Để biết thêm thông tin, hãy xem phần Tọa độ Z bên dưới.
API Phát hiện tư thế tương tự như API Nhận dạng khuôn mặt, vì API này trả về một tập hợp các địa danh và vị trí của các địa danh đó. Tuy nhiên, trong khi tính năng Phát hiện khuôn mặt cũng cố gắng nhận diện các đặc điểm như miệng đang cười hoặc mở mắt, thì tính năng Phát hiện tư thế không gán ý nghĩa nào cho các điểm đánh dấu ở một tư thế hoặc chính tư thế đó. Bạn có thể tạo thuật toán của riêng mình để diễn giải một tư thế. Hãy xem bài viết Mẹo phân loại để biết một số ví dụ.
Tính năng phát hiện tư thế chỉ có thể phát hiện một người trong hình ảnh. Nếu có hai người có mặt trong hình ảnh, mô hình sẽ gán các điểm mốc cho người có độ tin cậy cao nhất.
Toạ độ Z
Toạ độ Z là một giá trị thử nghiệm được tính cho mỗi mốc. Nó được đo bằng "pixel hình ảnh" như các toạ độ X và Y, nhưng không phải là giá trị 3D thực sự. Trục Z vuông góc với máy ảnh và chạy qua giữa hông của đối tượng. Điểm gốc của trục Z xấp xỉ với điểm giữa giữa các hông (trái/phải và trước/sau so với máy ảnh). Giá trị Z âm hướng về phía máy ảnh; các giá trị dương thì hướng về phía máy ảnh. Toạ độ Z không có giới hạn trên hoặc giới hạn dưới.
Kết quả mẫu
Bảng sau đây hiển thị toạ độ và InFrameLikelihood cho một số điểm đánh dấu trong tư thế ở bên phải. Xin lưu ý rằng toạ độ Z cho tay trái của người dùng là số âm, vì toạ độ này nằm trước trung tâm hông của đối tượng và về phía máy ảnh.
![](https://developers.google.cn/static/ml-kit/images/vision/pose-detection/girl_pose_3d.png?authuser=5&hl=vi)
Địa danh | Loại | Vị trí | InFrameLikelihood |
---|---|---|---|
11 | LEFT_SHOULDER | (734,9671, 550,7924, -118,11934) | 0,9999038 |
12 | RIGHT_SHOULDER | (391.27032, 583.2485, -321.15836) | 0,9999894 |
13 | LEFT_ELBOW | (903.83704, 754.676, -219.67009) | 0,9836427 |
14 | RIGHT_ELBOW | (322.18152, 842.5973, -179.28519) | 0,99970156 |
15 | LEFT_WRIST | (1073.8956, 654.9725, -820.93463) | 0,9737737 |
16 | RIGHT_WRIST | (218.27956, 1015.70435, -683.6567) | 0,995568 |
17 | LEFT_PINKY | (1146.1635, 609.6432, -956.9976) | 0,95273364 |
18 | RIGHT_PINKY | (176.17755, 1065.838, -776.5006) | 0,9785348 |
Tìm hiểu chuyên sâu
Để biết thêm thông tin chi tiết về cách triển khai các mô hình học máy cơ bản cho API này, hãy xem bài đăng trên blog về AI của Google.
Để tìm hiểu thêm về các phương pháp đảm bảo tính công bằng trong công nghệ học máy cũng như cách các mô hình được huấn luyện, hãy xem Thẻ mô hình của chúng tôi