Ước tính tư thế

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

Ví dụ Android ví dụ iOS

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

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

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:

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

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