Ước tính tư thế

Ướ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.

Ví dụ về Android Ví dụ về iOS

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ợ.

Tải xuống mô hình khởi đầu

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:

Hoạt ảnh hiển thị ước tính tư thế

Đ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.