Ước tính tư thế là công việc 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 cơ thể chính (keypoints).
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 các API TensorFlow Lite , hãy tải xuống mô hình ước tính tư thế MoveNet dành cho người mới bắt đầu và các tệp hỗ trợ.
Nếu bạn muốn thử ước lượng tư thế trên trình duyệt web, hãy xem TensorFlow JS Demo .
Mô tả về mô hình
Làm thế nào nó hoạt động
Ước tính tư thế đề cập đến kỹ thuật thị giác máy tính phát hiện hình ảnh con người trong hình ảnh và video để người ta có thể xác định, ví dụ: nơi khuỷu tay của ai đó hiển thị trong hình ảnh. Điều quan trọng cần lưu ý là việc đặt ra ước lượng chỉ đơn thuần là ước tính vị trí của các khớp cơ thể chính và không nhận ra ai đang ở trong một hình ảnh hoặc video.
Các mô hình ước lượng tư thế lấy hình ảnh máy ảnh đã xử lý làm đầu vào và đầu ra thông tin về các điểm chính. Các điểm chính được phát hiện được lập chỉ mục bởi một ID phần, với điểm tin cậy 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ế hiện đại có sẵn với hai phiên bản: Ánh sáng và Sấm sét. Xem so sánh giữa hai điều này trong phần bên dưới.
- 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 lập bảng dưới đây:
ID | Phần |
---|---|
0 | mũi |
1 | mắt trái |
2 | mắt phải |
3 | tai trái |
4 | tai phải |
5 | leftShoulder |
6 | vai phải |
7 | leftElbow |
số 8 | rightElbow |
9 | leftWrist |
10 | cổ tay phải |
11 | leftHip |
12 | Hông phải |
13 | đầu gối trái |
14 | đầu gối phải |
15 | leftAnkle |
16 | rightAnkle |
Một đầu ra ví dụ được hiển thị bên dưới:
Điểm chuẩn hiệu suất
MoveNet có sẵn trong hai phiên bản:
- MoveNet.Lightning nhỏ hơn, nhanh hơn nhưng kém chính xác hơn so với 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 về nhiều loại tập dữ liệu, đặ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ố chuẩn hiệu suất được tạo bằng công cụ được mô tả ở đây . Số chính xác (mAP) được đo trên một tập con của tập dữ liệu COCO , trong đó chúng tôi lọc và cắt mỗi hình ảnh để chỉ chứa một người.
Người mẫu | Kích thước (MB) | bản đồ | Độ trễ (mili giây) | ||
---|---|---|---|---|---|
Pixel 5 - CPU 4 luồng | Pixel 5 - GPU | Raspberry Pi 4 - CPU 4 luồng | |||
MoveNet.Thunder (FP16 lượng tử hóa) | 12,6 MB | 72.0 | 155ms | 45ms | 594ms |
MoveNet.Thunder (INT8 lượng tử hóa) | 7,1 MB | 68,9 | 100ms | 52ms | 251ms |
MoveNet.Lightning (FP16 lượng tử hóa) | 4,8 MB | 63.0 | 60ms | 25ms | 186ms |
MoveNet.Lightning (INT8 lượng tử hóa) | 2,9 MB | 57.4 | 52ms | 28ms | 95ms |
PoseNet (xương sống MobileNetV1, FP32) | 13,3 MB | 45,6 | 80ms | 40ms | 338ms |
Đọ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 trên 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 ước tính tư thế chạy nhanh hơn nhiều trên các thiết bị cạnh. Xem các mô hình đượ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.