Tác vụ Điểm đánh dấu tay MediaPipe cho phép bạn phát hiện các điểm đánh dấu của tay trong hình ảnh. Bạn có thể sử dụng tác vụ này để xác định các điểm chính của kim đồng hồ và hiển thị hiệu ứng hình ảnh trên các điểm đó. Tác vụ này hoạt động trên dữ liệu hình ảnh bằng mô hình học máy (ML) dưới dạng dữ liệu tĩnh hoặc luồng liên tục, đồng thời xuất ra các điểm đánh dấu tay theo toạ độ hình ảnh, các điểm đánh dấu tay theo toạ độ thế giới và tay thuận(tay trái/tay phải) của nhiều tay được phát hiện.
Bắt đầu
Bắt đầu sử dụng tác vụ này bằng cách làm theo một trong các hướng dẫn triển khai sau đây cho nền tảng mục tiêu của bạn. Các hướng dẫn dành riêng cho nền tảng này sẽ hướng dẫn bạn cách triển khai cơ bản cho tác vụ này, bao gồm cả mô hình được đề xuất và ví dụ về mã với các tuỳ chọn cấu hình được đề xuất:
- Android – Ví dụ về mã
- Python – Ví dụ về mã
- Web – Ví dụ về mã – Hướng dẫn
Thông tin chi tiết về việc cần làm
Phần này mô tả các tính năng, dữ liệu đầu vào, dữ liệu đầu ra và tuỳ chọn cấu hình của tác vụ này.
Tính năng
- Xử lý hình ảnh đầu vào – Quá trình xử lý bao gồm xoay hình ảnh, đổi kích thước, chuẩn hoá và chuyển đổi không gian màu.
- Ngưỡng điểm – Lọc kết quả dựa trên điểm dự đoán.
Dữ liệu đầu vào của việc cần làm | Kết quả của tác vụ |
---|---|
Hand Landmarker chấp nhận dữ liệu đầu vào thuộc một trong các loại dữ liệu sau:
|
Công cụ đánh dấu điểm đặc trưng trên tay sẽ xuất ra các kết quả sau:
|
Tuỳ chọn cấu hình
Tác vụ này có các tuỳ chọn cấu hình sau:
Tên tuỳ chọn | Mô tả | Phạm vi giá trị | Giá trị mặc định |
---|---|---|---|
running_mode |
Đặt chế độ chạy cho tác vụ. Có 3 chế độ: HÌNH ẢNH: Chế độ cho dữ liệu đầu vào là một hình ảnh. VIDEO: Chế độ cho các khung hình đã giải mã của video. LIVE_STREAM: Chế độ phát trực tiếp dữ liệu đầu vào, chẳng hạn như từ máy ảnh. Ở chế độ này, bạn phải gọi resultListener để thiết lập trình nghe nhận kết quả một cách không đồng bộ. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
num_hands |
Số lượng tay tối đa mà trình phát hiện điểm đánh dấu tay phát hiện được. | Any integer > 0 |
1 |
min_hand_detection_confidence |
Điểm tin cậy tối thiểu để quá trình phát hiện bàn tay được coi là thành công trong mô hình phát hiện lòng bàn tay. | 0.0 - 1.0 |
0.5 |
min_hand_presence_confidence |
Điểm tin cậy tối thiểu cho điểm hiện diện của bàn tay trong mô hình phát hiện điểm đánh dấu bàn tay. Ở chế độ Video và chế độ Phát trực tiếp, nếu điểm số về độ tin cậy của sự hiện diện của bàn tay từ mô hình điểm đánh dấu bàn tay thấp hơn ngưỡng này, thì tính năng Điểm đánh dấu bàn tay sẽ kích hoạt mô hình phát hiện lòng bàn tay. Nếu không, một thuật toán theo dõi tay gọn nhẹ sẽ xác định vị trí của(các) tay để phát hiện các điểm đánh dấu tiếp theo. | 0.0 - 1.0 |
0.5 |
min_tracking_confidence |
Điểm tin cậy tối thiểu để tính năng theo dõi chuyển động tay được coi là thành công. Đây là ngưỡng IoU của hộp giới hạn giữa các bàn tay trong khung hình hiện tại và khung hình cuối cùng. Ở chế độ Video và chế độ Truyền trực tuyến của Điểm đánh dấu tay, nếu không theo dõi được, Điểm đánh dấu tay sẽ kích hoạt tính năng phát hiện tay. Nếu không, tính năng này sẽ bỏ qua tính năng phát hiện tay. | 0.0 - 1.0 |
0.5 |
result_callback |
Đặt trình nghe kết quả để nhận kết quả phát hiện một cách không đồng bộ khi điểm đánh dấu tay ở chế độ phát trực tiếp.
Chỉ áp dụng khi chế độ chạy được đặt thành LIVE_STREAM |
Không áp dụng | Không áp dụng |
Mô hình
Hand Landmarker sử dụng một gói mô hình với hai mô hình đóng gói: mô hình phát hiện lòng bàn tay và mô hình phát hiện điểm đặc trưng trên bàn tay. Bạn cần một gói mô hình chứa cả hai mô hình này để chạy tác vụ này.
Tên mẫu thiết bị | Hình dạng đầu vào | Loại lượng tử hoá | Thẻ mô hình | Phiên bản |
---|---|---|---|---|
HandLandmarker (đầy đủ) | 192 x 192, 224 x 224 | float 16 | info | Mới nhất |
Gói mô hình điểm mốc của bàn tay phát hiện vị trí điểm chính của 21 toạ độ khớp ngón tay trong các vùng bàn tay đã phát hiện. Mô hình này được huấn luyện trên khoảng 30.000 hình ảnh thực tế, cũng như một số mô hình tay tổng hợp được kết xuất trên nhiều nền.
Gói mô hình điểm đánh dấu trên tay chứa mô hình phát hiện lòng bàn tay và mô hình phát hiện điểm đánh dấu trên tay. Mô hình phát hiện lòng bàn tay xác định vị trí của bàn tay trong hình ảnh đầu vào, còn mô hình phát hiện điểm mốc trên bàn tay xác định các điểm mốc cụ thể trên hình ảnh bàn tay đã cắt do mô hình phát hiện lòng bàn tay xác định.
Vì việc chạy mô hình phát hiện lòng bàn tay tốn nhiều thời gian, nên khi ở chế độ chạy video hoặc phát trực tiếp, Hand Landmarker sẽ sử dụng hộp giới hạn do mô hình điểm đánh dấu tay xác định trong một khung hình để xác định vị trí khu vực của tay cho các khung hình tiếp theo. Công cụ đánh dấu điểm đặc trưng trên tay chỉ kích hoạt lại mô hình phát hiện lòng bàn tay nếu mô hình điểm đặc trưng trên tay không còn xác định được sự hiện diện của tay hoặc không theo dõi được tay trong khung. Điều này làm giảm số lần Hand Landmarker kích hoạt mô hình phát hiện lòng bàn tay.
Điểm chuẩn tác vụ
Dưới đây là điểm chuẩn tác vụ cho toàn bộ quy trình dựa trên các mô hình được huấn luyện trước ở trên. Kết quả độ trễ là độ trễ trung bình trên Pixel 6 khi sử dụng CPU / GPU.
Tên mô hình | Độ trễ CPU | Độ trễ GPU |
---|---|---|
HandLandmarker (đầy đủ) | 17,12 mili giây | 12,27 mili giây |