`ultralytics 8.2.102` new Hand-Keypoints Pose Estimation Dataset (#16489)
Co-authored-by: UltralyticsAssistant <web@ultralytics.com> Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>pull/16522/head v8.2.102
parent
f3d557e3f2
commit
03dc859c8e
5 changed files with 144 additions and 1 deletions
@ -0,0 +1,108 @@ |
||||
--- |
||||
comments: true |
||||
description: Explore the hand keypoints estimation dataset for advanced pose estimation. Learn about datasets, pretrained models, metrics, and applications for training with YOLO. |
||||
keywords: Hand KeyPoints, pose estimation, dataset, keypoints, MediaPipe, YOLO, deep learning, computer vision |
||||
--- |
||||
|
||||
# Hand Keypoints Dataset |
||||
|
||||
## Introduction |
||||
|
||||
The hand-keypoints dataset contains 26,768 images of hands annotated with keypoints, making it suitable for training models like Ultralytics YOLO for pose estimation tasks. The annotations were generated using the Google MediaPipe library, ensuring high accuracy and consistency, and the dataset is compatible [Ultralytics YOLOv8](https://github.com/ultralytics/ultralytics) formats. |
||||
|
||||
## Hand Landmarks |
||||
|
||||
![Hand Landmarks](https://github.com/ultralytics/docs/releases/download/0/hand_landmarks.jpg) |
||||
|
||||
## KeyPoints |
||||
|
||||
The dataset includes keypoints for hand detection. The keypoints are annotated as follows: |
||||
|
||||
1. Wrist |
||||
2. Thumb (4 points) |
||||
3. Index finger (4 points) |
||||
4. Middle finger (4 points) |
||||
5. Ring finger (4 points) |
||||
6. Little finger (4 points) |
||||
|
||||
Each hand has a total of 21 keypoints. |
||||
|
||||
## Key Features |
||||
|
||||
- **Large Dataset**: 26,768 images with hand keypoint annotations. |
||||
- **YOLOv8 Compatibility**: Ready for use with YOLOv8 models. |
||||
- **21 Keypoints**: Detailed hand pose representation. |
||||
|
||||
## Dataset Structure |
||||
|
||||
The hand keypoint dataset is split into two subsets: |
||||
|
||||
1. **Train**: This subset contains 18,776 images from the hand keypoints dataset, annotated for training pose estimation models. |
||||
2. **Val**: This subset contains 7992 images that can be used for validation purposes during model training. |
||||
|
||||
## Applications |
||||
|
||||
Hand keypoints can be used for gesture recognition, AR/VR controls, robotic manipulation, and hand movement analysis in healthcare. They can be also applied in animation for motion capture and biometric authentication systems for security. |
||||
|
||||
## Dataset YAML |
||||
|
||||
A YAML (Yet Another Markup Language) file is used to define the dataset configuration. It contains information about the dataset's paths, classes, and other relevant information. In the case of the Hand Keypoints dataset, the `hand-keypoints.yaml` file is maintained at [https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/hand-keypoints.yaml](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/hand-keypoints.yaml). |
||||
|
||||
!!! example "ultralytics/cfg/datasets/hand-keypoints.yaml" |
||||
|
||||
```yaml |
||||
--8<-- "ultralytics/cfg/datasets/hand-keypoints.yaml" |
||||
``` |
||||
|
||||
## Usage |
||||
|
||||
To train a YOLOv8n-pose model on the Hand Keypoints dataset for 100 [epochs](https://www.ultralytics.com/glossary/epoch) with an image size of 640, you can use the following code snippets. For a comprehensive list of available arguments, refer to the model [Training](../../modes/train.md) page. |
||||
|
||||
!!! example "Train Example" |
||||
|
||||
=== "Python" |
||||
|
||||
```python |
||||
from ultralytics import YOLO |
||||
|
||||
# Load a model |
||||
model = YOLO("yolov8n-pose.pt") # load a pretrained model (recommended for training) |
||||
|
||||
# Train the model |
||||
results = model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640) |
||||
``` |
||||
|
||||
=== "CLI" |
||||
|
||||
```bash |
||||
# Start training from a pretrained *.pt model |
||||
yolo pose train data=hand-keypoints.yaml model=yolov8n-pose.pt epochs=100 imgsz=640 |
||||
``` |
||||
|
||||
## Sample Images and Annotations |
||||
|
||||
The Hand keypoints dataset contains a diverse set of images with human hands annotated with keypoints. Here are some examples of images from the dataset, along with their corresponding annotations: |
||||
|
||||
![Dataset sample image](https://github.com/ultralytics/docs/releases/download/0/human-hand-pose.jpg) |
||||
|
||||
- **Mosaiced Image**: This image demonstrates a training batch composed of mosaiced dataset images. Mosaicing is a technique used during training that combines multiple images into a single image to increase the variety of objects and scenes within each training batch. This helps improve the model's ability to generalize to different object sizes, aspect ratios, and contexts. |
||||
|
||||
The example showcases the variety and complexity of the images in the Hand Keypoints dataset and the benefits of using mosaicing during the training process. |
||||
|
||||
## Citations and Acknowledgments |
||||
|
||||
If you use the hand-keypoints dataset in your research or development work, please acknowledge the following sources: |
||||
|
||||
!!! quote "" |
||||
|
||||
=== "Credits" |
||||
|
||||
We would like to thank the following sources for providing the images used in this dataset: |
||||
|
||||
- [11k Hands](https://sites.google.com/view/11khands) |
||||
- [2000 Hand Gestures](https://www.kaggle.com/datasets/ritikagiridhar/2000-hand-gestures) |
||||
- [Gesture Recognition](https://www.kaggle.com/datasets/imsparsh/gesture-recognition) |
||||
|
||||
The images were collected and used under the respective licenses provided by each platform and are distributed under the [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/). |
||||
|
||||
We would also like to acknowledge the creator of this dataset, [Rion Dsilva](https://www.linkedin.com/in/rion-dsilva-043464229/), for his great contribution to Vision AI research. |
@ -0,0 +1,25 @@ |
||||
# Ultralytics YOLO 🚀, AGPL-3.0 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: ../datasets/hand-keypoints # dataset root dir |
||||
train: train # train images (relative to 'path') 210 images |
||||
val: val # val images (relative to 'path') 53 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 |
||||
|
||||
# Download script/URL (optional) |
||||
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/hand-keypoints.zip |
Loading…
Reference in new issue