Ước tính tư thế là nhiệm vụ sử dụng mô hình ML để ước tính tư thế của một người từ hình ảnh hoặc video bằng cách ước tính vị trí không gian của các khớp chính trên cơ thể (điểm chính).
Bắt đầu
Nếu bạn chưa quen với TensorFlow Lite và đang làm việc với Android hoặc iOS, hãy khám phá các ứng dụng mẫu sau có thể giúp bạn bắt đầu.
Nếu bạn đã quen với API TensorFlow Lite , hãy tải xuống mô hình ước tính tư thế MoveNet ban đầu và các tệp hỗ trợ.
Nếu bạn muốn thử ước tính tư thế trên trình duyệt web, hãy xem Bản trình diễn JS của TensorFlow .
Mô tả về mô hình
Làm thế nào nó hoạt động
Ước tính tư thế đề cập đến các kỹ thuật thị giác máy tính giúp phát hiện hình người trong hình ảnh và video để người ta có thể xác định, chẳng hạn như vị trí khuỷu tay của ai đó xuất hiện trong hình ảnh. Điều quan trọng cần lưu ý là thực tế là việc ước tính tư thế chỉ ước tính vị trí của các khớp quan trọng trên cơ thể và không nhận ra ai trong hình ảnh hoặc video.
Các mô hình ước tính tư thế lấy hình ảnh camera đã được xử lý làm thông tin đầu vào và đầu ra về các điểm chính. Các điểm chính được phát hiện được lập chỉ mục theo ID bộ phận, với điểm tin cậy nằm trong khoảng từ 0,0 đến 1,0. Điểm tin cậy cho biết xác suất tồn tại một điểm chính ở vị trí đó.
Chúng tôi cung cấp cách triển khai tham khảo của hai mô hình ước tính tư thế TensorFlow Lite:
- MoveNet: mô hình ước tính tư thế tiên tiến nhất có sẵn với hai loại: Ánh sáng và Sấm sét. Xem so sánh giữa hai điều này trong phần dưới đây.
- PoseNet: mô hình ước tính tư thế thế hệ trước được phát hành vào năm 2017.
Các khớp cơ thể khác nhau được phát hiện bởi mô hình ước tính tư thế được trình bày dưới đây:
Nhận dạng | Phần |
---|---|
0 | mũi |
1 | mắt trái |
2 | mắt phải |
3 | tai trái |
4 | tai phải |
5 | vai trái |
6 | vai phải |
7 | tráiKhuỷu tay |
số 8 | khuỷu tay phải |
9 | cổ tay trái |
10 | cổ tay phải |
11 | tráiHông |
12 | Hông phải |
13 | đầu gối trái |
14 | đầu gối phải |
15 | mắt cá chân trái |
16 | đúngMắt cá chân |
Một đầu ra ví dụ được hiển thị dưới đây:
Điểm chuẩn hiệu suất
MoveNet có sẵn hai loại:
- MoveNet.Lightning nhỏ hơn, nhanh hơn nhưng kém chính xác hơn phiên bản Thunder. Nó có thể chạy trong thời gian thực trên điện thoại thông minh hiện đại.
- MoveNet.Thunder là phiên bản chính xác hơn nhưng cũng lớn hơn và chậm hơn Lightning. Nó rất hữu ích cho các trường hợp sử dụng đòi hỏi độ chính xác cao hơn.
MoveNet vượt trội hơn PoseNet trên nhiều bộ dữ liệu khác nhau, đặc biệt là trong các hình ảnh có hình ảnh hành động thể dục. Do đó, chúng tôi khuyên bạn nên sử dụng MoveNet thay vì PoseNet.
Số điểm chuẩn hiệu suất được tạo bằng công cụ được mô tả ở đây . Các con số về độ chính xác (mAP) được đo trên một tập hợp con của tập dữ liệu COCO trong đó chúng tôi lọc và cắt từng hình ảnh để chỉ chứa một người.
Người mẫu | Kích thước (MB) | bản đồ | Độ trễ (ms) | ||
---|---|---|---|---|---|
Pixel 5 - CPU 4 luồng | Pixel 5 - GPU | Raspberry Pi 4 - CPU 4 luồng | |||
MoveNet.Thunder (được lượng tử hóa FP16) | 12,6MB | 72,0 | 155 mili giây | 45 mili giây | 594 mili giây |
MoveNet.Thunder (được lượng tử hóa INT8) | 7,1MB | 68,9 | 100 mili giây | 52 mili giây | 251 mili giây |
MoveNet.Lightning (được lượng tử hóa FP16) | 4,8MB | 63,0 | 60 mili giây | 25 mili giây | 186 mili giây |
MoveNet.Lightning (được lượng tử hóa INT8) | 2,9MB | 57,4 | 52 mili giây | 28 mili giây | 95 mili giây |
PoseNet(xương sống MobileNetV1, FP32) | 13,3MB | 45,6 | 80 mili giây | 40 mili giây | 338 mili giây |
Đọc thêm và tài nguyên
- Hãy xem bài đăng trên blog này để tìm hiểu thêm về ước tính tư thế bằng MoveNet và TensorFlow Lite.
- Hãy xem bài đăng blog này để tìm hiểu thêm về ước tính tư thế trên web.
- Hãy xem hướng dẫn này để tìm hiểu về cách chạy MoveNet trên Python bằng mô hình từ TensorFlow Hub.
- Coral/EdgeTPU có thể giúp quá trình ước tính tư thế chạy nhanh hơn nhiều trên các thiết bị biên. Xem các mẫu được tối ưu hóa EdgeTPU để biết thêm chi tiết.
- Đọc bài báo PoseNet tại đây
Ngoài ra, hãy kiểm tra các trường hợp sử dụng ước tính tư thế này.