Skip to content

HandyPoses is a hand pose estimation dataset generator using parametric models for precise domain control, overcoming limitations of manual generation, GANs, and video-game-assisted techniques. The system enhances dataset diversity through variations in arm position, orientation, joint angles, skin tone, background, lighting, and shininess.

License

Notifications You must be signed in to change notification settings

borjagq/HandyVariations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

HandyVariations

This repository contains source files developed for my MSc dissertation titled, "Procedural Generation of Datasets for Training Hand Pose Estimation Systems", at the University of Dublin, Trinity College.

Made with OpenGL Made with Xcode

Table of Contents
  1. About The Project
  2. Usage
  3. Acknowledgement
  4. Contact
  5. Licence
  6. References

About The Project

Generated image example Generated image example

The rise of computer vision systems has reshaped many industries, driven by the powerful capabilities of deep neural networks. However, as the complexity of these systems grows, so does the demand for larger datasets. However, the manual annotation of large-scale datasets comprising the diversity required by these systems is labour-intensive and time-consuming. This dissertation delves into the exploration of procedural generation techniques for hand pose datasets to overcome this challenge while also investigating the impact of controlled variations in detection quality and reliability, encompassing joint angles, wrist orientations, texture, lighting, and background variations, aiming to make it capable of handling diverse real-world settings. To assess the efficacy of the generated datasets, a state-of-the-art computer vision system is trained to detect key points in hand images using both the procedurally generated dataset and traditionally annotated datasets. Comparative analyses evaluate the trained system's performance on real-world data, comprehending the influence of procedural variations on its accuracy, robustness, and generalisation capabilities. In conclusion, this dissertation contributes to hand pose estimation by integrating innovative approaches for procedurally generating datasets. The findings underscore the importance of automated variations in dataset generation and offer insights into their impact on the quality of trained computer fabrication systems.

Abstract from [1]

(back to top)

Demo Video

HandyVariations - Demo Video

(back to top)

Built With

Synthetic Dataset Generation

  • Programming Language:
    • C++ (C++20 dialect)
  • Graphics Library:
    • OpenGL 4.1
  • Compilation Environment:
    • Xcode Version 14.3.1 (14E300c) on macOS Ventura 13.4.1, compiled for an Apple M1 Pro CPU/GPU
  • Additional Libraries:
    • Glew (version 2.2.0)
    • GLFW (version 3.3.8)

Hand Pose Estimation (Dataset Validation)

  • Programming Language:
    • Python (version 3.9.6)
  • Machine Learning Library:
    • PyTorch (version 2.0.1)

(back to top)

Usage

  1. Clone this repository.
git clone https://github.com/borjagq/HandyVariations/

Synthetic Dataset Generation

  1. The 3D model used in this software is not included in the repository due to commercial licensing. You can download the model from this link. Place the downloaded files in the models folder with the following names:
hand.fbx
textures/hand_specular.jpg
textures/hand_base_color.jpg
textures/hand_normals.jpg
  1. Download a 'random' image dataset, such as unlabeled COCO images. Place the images in a dedicated directory with no other files.

  2. Run the script rename_rdm_bg.sh located in the Scripts directory, followed by the directory where you stored the random images. Ensure no other files are present, as they will be renamed.

zsh rename_rdm_bg.sh /Path/To/Random/Images/
  1. Open the Xcode project HandyVariations.xcodeproj.

  2. Build it and run it.

Hand Pose Estimation (Dataset Validation)

  1. Download all the required Python modules.
pip3 install numpy matplotlib tqdm torch torchvision Pillow opencv-python
  1. Open the Jupyter Notebooks (.ipynb) and run them for dataset validation.

(back to top)

Acknowledgement

The software available in this repository has been specifically developed for the experiments conducted in the Dissertation [1] presented by the author to the University of Dublin, Trinity College in partial fulfilment of the requirements for the degree of MSc in Computer Science (Augmented and Virtual Reality). It serves as a dedicated tool tailored to address the requirements and methodologies outlined in the research.

(back to top)

Contact

Borja García Quiroga, MSc

(back to top)

Licence

HandyVariations is licensed under the GNU GPLv3, see LICENSE for more information.

(back to top)

References

(back to top)

About

HandyPoses is a hand pose estimation dataset generator using parametric models for precise domain control, overcoming limitations of manual generation, GANs, and video-game-assisted techniques. The system enhances dataset diversity through variations in arm position, orientation, joint angles, skin tone, background, lighting, and shininess.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published