YOLO Vision 2026:

Tập dữ liệu Hand Keypoints#

Giới thiệu#

Bộ dữ liệu Hand Keypoints của Ultralytics chứa 26.768 hình ảnh bàn tay được gán nhãn với 21 keypoint cho mỗi bàn tay, được tạo ra bằng cách sử dụng thư viện Google MediaPipe để đạt độ chính xác và tính nhất quán cao. Nó tương thích với các định dạng Ultralytics YOLO26 để huấn luyện các model pose estimation.



Watch: Hand Keypoints Estimation with Ultralytics YOLO | Human Hand Pose Estimation Tutorial

Keypoints#

Sơ đồ mốc keypoint của bàn tay với 21 điểm

Mỗi bàn tay được chú thích với 21 điểm mốc như sau:

  1. Cổ tay
  2. Ngón cái (4 điểm)
  3. Ngón trỏ (4 điểm)
  4. Ngón giữa (4 điểm)
  5. Ngón áp út (4 điểm)
  6. Ngón út (4 điểm)

Cấu trúc tập dữ liệu#

  • Tổng số hình ảnh: 26.768 (18.776 train / 7.992 val).
  • Lớp (Classes): 1 (bàn tay).
  • Keypoints: 21 điểm trên mỗi bàn tay với các bộ ba (x, y, visibility).
  • Dung lượng tải xuống: ~369 MB.

Đối với một từ vựng cử chỉ tùy chỉnh vượt ra ngoài các mốc bàn tay thông thường, Ultralytics Platform hỗ trợ việc gán nhãn và huấn luyện bộ dữ liệu của riêng bạn ngay từ trình duyệt.

Ứng dụng#

Hand Keypoints hỗ trợ một số ứng dụng trong thực tế:

  • Nhận diện cử chỉ: tương tác giữa người và máy tính và các giao diện điều khiển không chạm.
  • Điều khiển AR/VR: tương tác chính xác với các đối tượng ảo.
  • Thao tác robot: điều khiển tinh vi các bàn tay robot.
  • Chăm sóc sức khỏe: phân tích chuyển động tay để chẩn đoán y tế.
  • Hoạt họa (Animation): bắt chuyển động (motion capture) cho các chuyển động tay chân thực.
  • Xác thực sinh trắc học: các hệ thống bảo mật dựa trên hình học bàn tay.

YAML tập dữ liệu#

Một tệp YAML được sử dụng để định nghĩa cấu hình bộ dữ liệu. Nó chứa thông tin về các đường dẫn, các lớp (classes) của bộ dữ liệu và các thông tin liên quan khác. Trong trường hợp của bộ dữ liệu Hand Keypoints, tệp hand-keypoints.yaml được duy trì tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/hand-keypoints.yaml.

ultralytics/cfg/datasets/hand-keypoints.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Hand Keypoints dataset by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/hand-keypoints
# Example usage: yolo train data=hand-keypoints.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── hand-keypoints ← downloads here (369 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: hand-keypoints # dataset root dir
train: images/train # train images (relative to 'path') 18776 images
val: images/val # val images (relative to 'path') 7992 images

# Keypoints
kpt_shape: [21, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 1, 2, 4, 3, 10, 11, 12, 13, 14, 5, 6, 7, 8, 9, 15, 16, 17, 18, 19, 20]

# Classes
names:
  0: hand

# Keypoint names per class
kpt_names:
  0:
    - wrist
    - thumb_cmc
    - thumb_mcp
    - thumb_ip
    - thumb_tip
    - index_mcp
    - index_pip
    - index_dip
    - index_tip
    - middle_mcp
    - middle_pip
    - middle_dip
    - middle_tip
    - ring_mcp
    - ring_pip
    - ring_dip
    - ring_tip
    - pinky_mcp
    - pinky_pip
    - pinky_dip
    - pinky_tip

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/hand-keypoints.zip

Cách sử dụng#

Để huấn luyện một model YOLO26n-pose trên bộ dữ liệu Hand Keypoints trong 100 epoch với kích thước ảnh là 640, bạn có thể sử dụng các đoạn mã sau đây. Để có danh sách đầy đủ các tham số khả dụng, hãy tham khảo trang Training của model.

Ví dụ về Training
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-pose.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640)

Hình ảnh mẫu và chú thích#

Tập dữ liệu Hand Keypoints chứa một tập hợp đa dạng các hình ảnh bàn tay người được chú thích với các điểm mốc. Dưới đây là một số ví dụ về hình ảnh từ tập dữ liệu, cùng với các chú thích tương ứng của chúng:

Mẫu bộ dữ liệu pose estimation hand keypoints

  • Hình ảnh Mosaiced: Hình ảnh này minh họa một batch huấn luyện bao gồm các hình ảnh từ tập dữ liệu đã được áp dụng kỹ thuật Mosaic. Mosaic là một kỹ thuật được sử dụng trong quá trình huấn luyện nhằm kết hợp nhiều hình ảnh thành một hình ảnh duy nhất để tăng sự đa dạng của các đối tượng và bối cảnh trong mỗi batch huấn luyện. Điều này giúp cải thiện khả năng tổng quát hóa của model đối với các kích thước đối tượng, tỷ lệ khung hình và bối cảnh khác nhau.

Ví dụ này minh họa sự đa dạng và độ phức tạp của các hình ảnh trong tập dữ liệu Hand Keypoints cũng như lợi ích của việc sử dụng kỹ thuật mosaicing trong quá trình huấn luyện.

Trích dẫn và Ghi nhận#

Nếu bạn sử dụng tập dữ liệu Hand Keypoints trong công trình nghiên cứu hoặc phát triển của mình, vui lòng ghi nhận các nguồn sau:

Trích dẫn

Chúng tôi xin cảm ơn các nguồn sau vì đã cung cấp hình ảnh được sử dụng trong tập dữ liệu này:

Các hình ảnh đã được thu thập và sử dụng theo các giấy phép tương ứng do mỗi nền tảng cung cấp và được phân phối theo Giấy phép Creative Commons Attribution-NonCommercial-ShareAlike 4.0 Quốc tế.

Chúng tôi cũng muốn gửi lời cảm ơn đến người tạo ra bộ dữ liệu này, Rion Dsilva, vì đóng góp lớn của anh ấy cho nghiên cứu Vision AI.

Câu hỏi thường gặp#

  • Tải yolo26n-pose.pt và gọi model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640) — hãy xem phần Train Example ở trên để có các đoạn mã Python và CLI đầy đủ, và trang Training của model để có danh sách toàn diện các tham số.

  • Với 26.768 hình ảnh đã gán nhãn và 21 keypoint cho mỗi bàn tay được tạo ra thông qua Google MediaPipe, bộ dữ liệu Hand Keypoints cung cấp cho các model pose estimation quy mô và độ chính xác gán nhãn cần thiết cho các tác vụ pose estimation nâng cao. Xem phần Keypoints để biết chi tiết về toàn bộ các mốc landmark.

  • Hand Keypoints hỗ trợ nhận diện cử chỉ, điều khiển AR/VR, thao tác robot, phân tích chuyển động y tế, hoạt họa và xác thực sinh trắc học — hãy xem phần Applications để biết chi tiết về từng ứng dụng.

  • Tập dữ liệu Hand Keypoints được chia thành hai tập con:

    1. Train: Chứa 18.776 hình ảnh để huấn luyện các model ước tính tư thế.
    2. Val: Chứa 7.992 hình ảnh cho mục đích kiểm thử trong quá trình huấn luyện model.

    Cấu trúc này đảm bảo quá trình huấn luyện và validation diễn ra toàn diện. Để biết thêm chi tiết, hãy xem phần Dataset Structure.

  • Cấu hình bộ dữ liệu được định nghĩa trong một tệp YAML, bao gồm các đường dẫn, các lớp (classes) và các thông tin liên quan khác. Tệp hand-keypoints.yaml có thể được tìm thấy tại hand-keypoints.yaml.

    Để sử dụng tệp YAML này cho việc huấn luyện, hãy chỉ định nó trong tập lệnh huấn luyện hoặc lệnh CLI của bạn như được minh họa trong ví dụ huấn luyện ở trên. Để biết thêm chi tiết, hãy tham khảo phần Dataset YAML.

Bình luận