Ultralytics YOLO27:
Get Started

Bộ dữ liệu keypoint bàn tay#

Giới thiệu#

Bộ dữ liệu keypoint bàn tay của Ultralytics chứa 26,768 hình ảnh bàn tay được gán nhãn 21 keypoint mỗi hình, tạo bằng thư viện Google MediaPipe để đảm bảo độ chính xác và tính nhất quán cao. Bộ dữ liệu tương thích với các định dạng Ultralytics YOLO26 để huấn luyện model ước tính tư thế.



Xem: Ước tính keypoint bàn tay bằng Ultralytics YOLO | Hướng dẫn ước tính tư thế bàn tay người

Keypoints#

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

Mỗi bàn tay được gán nhãn 21 keypoint 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 dataset#

  • Tổng số hình ảnh: 26,768 (18,776 train / 7,992 val).
  • Lớp: 1 (hand).
  • Keypoint: 21 keypoint mỗi bàn tay, với các bộ ba (x, y, visibility).
  • Dung lượng tải xuống: ~369 MB.

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

Ứng dụng#

Keypoint bàn tay hỗ trợ một số ứng dụng thực tế:

  • Nhận dạng cử chỉ: tương tác người-máy và 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 vật thể ảo.
  • Thao tác robot: điều khiển bàn tay robot với độ chính xác cao.
  • Chăm sóc sức khỏe: phân tích chuyển động bàn tay để hỗ trợ chẩn đoán y khoa.
  • Hoạt họa: ghi lại chuyển động để tạo chuyển động bàn tay chân thực.
  • Xác thực sinh trắc học: hệ thống bảo mật dựa trên hình dạng bàn tay.

YAML của dataset#

Tệp YAML được dùng để xác định cấu hình bộ dữ liệu. Tệp này chứa thông tin về đường dẫn, lớp và các thông tin liên quan khác của bộ dữ liệu. Với bộ dữ liệu keypoint bàn tay, 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 model YOLO26n-pose trên bộ dữ liệu keypoint bàn tay trong 100 epoch với kích thước ảnh 640, bạn có thể dùng các đoạn mã sau. Để xem danh sách đầy đủ các tham số hiện có, hãy tham khảo trang Huấn luyện của model.

Ví dụ huấn luyện
from ultralytics import YOLO

# Tải model
model = YOLO("yolo26n-pose.pt")  # tải model đã huấn luyện trước (được khuyến nghị khi huấn luyện)

# Huấn luyện model
results = model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640)

Hình ảnh mẫu và annotation#

Bộ dữ liệu keypoint bàn tay chứa nhiều hình ảnh đa dạng có bàn tay người được gán nhãn keypoint. Dưới đây là một số hình ảnh trong bộ dữ liệu cùng với các chú thích tương ứng:

Mẫu bộ dữ liệu ước tính tư thế bằng keypoint bàn tay

  • Ảnh ghép Mosaic: Hình ảnh này minh họa một batch huấn luyện được tạo từ các ảnh mosaic của bộ dữ liệu. Mosaic là kỹ thuật được sử dụng trong quá trình huấn luyện, 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 đối tượng và bối cảnh trong mỗi batch huấn luyện. Kỹ thuật 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à ngữ cảnh khác nhau.

Ví dụ này cho thấy sự đa dạng và phức tạp của hình ảnh trong bộ dữ liệu keypoint bàn tay cũng như lợi ích của việc ghép ảnh mosaic trong quá trình huấn luyện.

Trích dẫn và lời cảm ơn#

Nếu sử dụng bộ dữ liệu keypoint bàn tay trong nghiên cứu hoặc phát triển, 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 đã cung cấp hình ảnh được sử dụng trong bộ dữ liệu này:

Các hình ảnh được thu thập và sử dụng theo giấy phép tương ứng do từng nền tảng cung cấp, đồng thời được phân phối theo Giấy phép Creative Commons Ghi công-Phi thương mại-Chia sẻ tương tự 4.0 Quốc tế.

Chúng tôi cũng xin ghi nhận đóng góp to lớn của tác giả bộ dữ liệu này, Rion Dsilva, cho nghiên cứu AI thị giác.

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) — xem Ví dụ huấn luyện ở trên để biết đầy đủ các đoạn mã Python và CLI, và xem trang Huấn luyện của model để biết danh sách tham số đầy đủ.

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

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

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

    1. Train: Gồm 18.776 hình ảnh để huấn luyện các model ước tính tư thế.
    2. Val: Gồm 7.992 hình ảnh dùng để xác thực trong quá trình huấn luyện model.

    Cấu trúc này đảm bảo quy trình huấn luyện và xác thực toàn diện. Để biết thêm chi tiết, hãy xem mục Cấu trúc bộ dữ liệu.

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

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

Bình luận