MediaPipe-Hand-Gesture-Recognition: Optimized for Qualcomm Devices

The MediaPipe Gesture Recognizer is a real-time machine learning pipeline that detects hands, predicts 21 hand landmarks, determines handedness (left/right), and classifies gestures from a predefined set

This is based on the implementation of MediaPipe-Hand-Gesture-Recognition found here. This repository contains pre-exported model files optimized for Qualcomm® devices. You can use the Qualcomm® AI Hub Models library to export with custom configurations. More details on model performance across various devices, can be found here.

Qualcomm AI Hub Models uses Qualcomm AI Hub Workbench to compile, profile, and evaluate this model. Sign up to run these models on a hosted Qualcomm® device.

Getting Started

There are two ways to deploy this model on your device:

Option 1: Download Pre-Exported Models

Below are pre-exported model assets ready for deployment.

Runtime Precision Chipset SDK Versions Download
ONNX float Universal QAIRT 2.37, ONNX Runtime 1.23.0 Download
QNN_DLC float Universal QAIRT 2.42 Download
QNN_DLC w8a8 Universal QAIRT 2.42 Download
TFLITE float Universal QAIRT 2.42, TFLite 2.17.0 Download
TFLITE w8a8 Universal QAIRT 2.42, TFLite 2.17.0 Download

For more device-specific assets and performance metrics, visit MediaPipe-Hand-Gesture-Recognition on Qualcomm® AI Hub.

Option 2: Export with Custom Configurations

Use the Qualcomm® AI Hub Models Python library to compile and export the model with your own:

  • Custom weights (e.g., fine-tuned checkpoints)
  • Custom input shapes
  • Target device and runtime configurations

This option is ideal if you need to customize the model beyond the default configuration provided here.

See our repository for MediaPipe-Hand-Gesture-Recognition on GitHub for usage instructions.

Model Details

Model Type: Model_use_case.object_detection

Model Stats:

  • Input resolution: 256x256
  • Number of parameters (PalmDetector): 1.76M
  • Model size (PalmDetector) (w8a8): 2.05 MB
  • Number of parameters (HandLandmarkDetector): 2.72M
  • Model size (HandLandmarkDetector) (w8a8): 3.12 MB
  • Number of parameters (CannedGestureClassifier): 143K
  • Model size (CannedGestureClassifier) (w8a8): 180 KB
  • Model size (PalmDetector) (float): 6.75 MB
  • Model size (HandLandmarkDetector) (float): 10.4 MB
  • Model size (CannedGestureClassifier) (float): 577 KB

Performance Summary

Model Runtime Precision Chipset Inference Time (ms) Peak Memory Range (MB) Primary Compute Unit
CannedGestureClassifier ONNX float Snapdragon® X Elite 0.189 ms 1 - 1 MB NPU
CannedGestureClassifier ONNX float Snapdragon® 8 Gen 3 Mobile 0.219 ms 0 - 97 MB NPU
CannedGestureClassifier ONNX float Qualcomm® QCS8550 (Proxy) 0.235 ms 0 - 99 MB NPU
CannedGestureClassifier ONNX float Qualcomm® QCS9075 0.376 ms 0 - 3 MB NPU
CannedGestureClassifier ONNX float Snapdragon® 8 Elite For Galaxy Mobile 0.166 ms 0 - 90 MB NPU
CannedGestureClassifier ONNX float Snapdragon® 8 Elite Gen 5 Mobile 0.184 ms 0 - 90 MB NPU
CannedGestureClassifier QNN_DLC float Snapdragon® X Elite 0.154 ms 0 - 0 MB NPU
CannedGestureClassifier QNN_DLC float Snapdragon® 8 Gen 3 Mobile 0.066 ms 0 - 25 MB NPU
CannedGestureClassifier QNN_DLC float Qualcomm® QCS8275 (Proxy) 0.322 ms 0 - 19 MB NPU
CannedGestureClassifier QNN_DLC float Qualcomm® QCS8550 (Proxy) 0.066 ms 0 - 1 MB NPU
CannedGestureClassifier QNN_DLC float Qualcomm® SA8775P 0.218 ms 0 - 20 MB NPU
CannedGestureClassifier QNN_DLC float Qualcomm® QCS9075 0.127 ms 2 - 4 MB NPU
CannedGestureClassifier QNN_DLC float Qualcomm® QCS8450 (Proxy) 0.101 ms 0 - 26 MB NPU
CannedGestureClassifier QNN_DLC float Qualcomm® SA7255P 0.322 ms 0 - 19 MB NPU
CannedGestureClassifier QNN_DLC float Qualcomm® SA8295P 0.343 ms 0 - 15 MB NPU
CannedGestureClassifier QNN_DLC float Snapdragon® 8 Elite For Galaxy Mobile 0.05 ms 0 - 18 MB NPU
CannedGestureClassifier QNN_DLC float Snapdragon® 8 Elite Gen 5 Mobile 0.058 ms 0 - 20 MB NPU
CannedGestureClassifier QNN_DLC w8a8 Snapdragon® X Elite 0.164 ms 0 - 0 MB NPU
CannedGestureClassifier QNN_DLC w8a8 Snapdragon® 8 Gen 3 Mobile 0.061 ms 0 - 25 MB NPU
CannedGestureClassifier QNN_DLC w8a8 Qualcomm® QCS8275 (Proxy) 0.339 ms 0 - 19 MB NPU
CannedGestureClassifier QNN_DLC w8a8 Qualcomm® QCS8550 (Proxy) 0.089 ms 0 - 59 MB NPU
CannedGestureClassifier QNN_DLC w8a8 Qualcomm® SA8775P 0.668 ms 0 - 19 MB NPU
CannedGestureClassifier QNN_DLC w8a8 Qualcomm® QCS9075 0.141 ms 2 - 4 MB NPU
CannedGestureClassifier QNN_DLC w8a8 Qualcomm® QCS8450 (Proxy) 0.114 ms 0 - 26 MB NPU
CannedGestureClassifier QNN_DLC w8a8 Qualcomm® SA7255P 0.339 ms 0 - 19 MB NPU
CannedGestureClassifier QNN_DLC w8a8 Qualcomm® SA8295P 0.35 ms 0 - 15 MB NPU
CannedGestureClassifier QNN_DLC w8a8 Snapdragon® 8 Elite For Galaxy Mobile 0.057 ms 0 - 21 MB NPU
CannedGestureClassifier QNN_DLC w8a8 Snapdragon® 8 Elite Gen 5 Mobile 0.062 ms 0 - 20 MB NPU
CannedGestureClassifier TFLITE float Snapdragon® 8 Gen 3 Mobile 0.067 ms 0 - 25 MB NPU
CannedGestureClassifier TFLITE float Qualcomm® QCS8275 (Proxy) 0.348 ms 0 - 20 MB NPU
CannedGestureClassifier TFLITE float Qualcomm® QCS8550 (Proxy) 0.082 ms 0 - 2 MB NPU
CannedGestureClassifier TFLITE float Qualcomm® SA8775P 0.24 ms 0 - 21 MB NPU
CannedGestureClassifier TFLITE float Qualcomm® QCS9075 0.129 ms 0 - 2 MB NPU
CannedGestureClassifier TFLITE float Qualcomm® QCS8450 (Proxy) 0.101 ms 0 - 25 MB NPU
CannedGestureClassifier TFLITE float Qualcomm® SA7255P 0.348 ms 0 - 20 MB NPU
CannedGestureClassifier TFLITE float Qualcomm® SA8295P 0.347 ms 0 - 15 MB NPU
CannedGestureClassifier TFLITE float Snapdragon® 8 Elite For Galaxy Mobile 0.054 ms 0 - 17 MB NPU
CannedGestureClassifier TFLITE float Snapdragon® 8 Elite Gen 5 Mobile 0.05 ms 0 - 20 MB NPU
CannedGestureClassifier TFLITE w8a8 Snapdragon® 8 Gen 3 Mobile 0.073 ms 0 - 25 MB NPU
CannedGestureClassifier TFLITE w8a8 Qualcomm® QCS6490 3.748 ms 0 - 8 MB NPU
CannedGestureClassifier TFLITE w8a8 Qualcomm® QCS8275 (Proxy) 0.349 ms 0 - 19 MB NPU
CannedGestureClassifier TFLITE w8a8 Qualcomm® QCS8550 (Proxy) 0.084 ms 0 - 1 MB NPU
CannedGestureClassifier TFLITE w8a8 Qualcomm® SA8775P 0.238 ms 0 - 20 MB NPU
CannedGestureClassifier TFLITE w8a8 Qualcomm® QCS9075 0.153 ms 0 - 2 MB NPU
CannedGestureClassifier TFLITE w8a8 Qualcomm® QCM6690 2.016 ms 0 - 21 MB NPU
CannedGestureClassifier TFLITE w8a8 Qualcomm® QCS8450 (Proxy) 0.11 ms 0 - 26 MB NPU
CannedGestureClassifier TFLITE w8a8 Qualcomm® SA7255P 0.349 ms 0 - 19 MB NPU
CannedGestureClassifier TFLITE w8a8 Qualcomm® SA8295P 0.355 ms 0 - 16 MB NPU
CannedGestureClassifier TFLITE w8a8 Snapdragon® 8 Elite For Galaxy Mobile 0.061 ms 0 - 20 MB NPU
CannedGestureClassifier TFLITE w8a8 Snapdragon® 7 Gen 4 Mobile 1.316 ms 0 - 20 MB NPU
CannedGestureClassifier TFLITE w8a8 Snapdragon® 8 Elite Gen 5 Mobile 0.062 ms 0 - 20 MB NPU
HandLandmarkDetector ONNX float Snapdragon® X Elite 0.681 ms 7 - 7 MB NPU
HandLandmarkDetector ONNX float Snapdragon® 8 Gen 3 Mobile 0.579 ms 0 - 116 MB NPU
HandLandmarkDetector ONNX float Qualcomm® QCS8550 (Proxy) 0.728 ms 0 - 125 MB NPU
HandLandmarkDetector ONNX float Qualcomm® QCS9075 1.202 ms 1 - 3 MB NPU
HandLandmarkDetector ONNX float Snapdragon® 8 Elite For Galaxy Mobile 0.453 ms 0 - 93 MB NPU
HandLandmarkDetector ONNX float Snapdragon® 8 Elite Gen 5 Mobile 0.371 ms 0 - 98 MB NPU
HandLandmarkDetector QNN_DLC float Snapdragon® X Elite 0.587 ms 1 - 1 MB NPU
HandLandmarkDetector QNN_DLC float Snapdragon® 8 Gen 3 Mobile 0.353 ms 0 - 44 MB NPU
HandLandmarkDetector QNN_DLC float Qualcomm® QCS8275 (Proxy) 2.692 ms 1 - 28 MB NPU
HandLandmarkDetector QNN_DLC float Qualcomm® QCS8550 (Proxy) 0.473 ms 1 - 3 MB NPU
HandLandmarkDetector QNN_DLC float Qualcomm® SA8775P 0.868 ms 1 - 29 MB NPU
HandLandmarkDetector QNN_DLC float Qualcomm® QCS9075 0.76 ms 1 - 3 MB NPU
HandLandmarkDetector QNN_DLC float Qualcomm® QCS8450 (Proxy) 0.966 ms 0 - 47 MB NPU
HandLandmarkDetector QNN_DLC float Qualcomm® SA7255P 2.692 ms 1 - 28 MB NPU
HandLandmarkDetector QNN_DLC float Qualcomm® SA8295P 1.202 ms 1 - 26 MB NPU
HandLandmarkDetector QNN_DLC float Snapdragon® 8 Elite For Galaxy Mobile 0.292 ms 1 - 32 MB NPU
HandLandmarkDetector QNN_DLC float Snapdragon® 8 Elite Gen 5 Mobile 0.225 ms 1 - 30 MB NPU
HandLandmarkDetector QNN_DLC w8a8 Snapdragon® X Elite 0.304 ms 0 - 0 MB NPU
HandLandmarkDetector QNN_DLC w8a8 Snapdragon® 8 Gen 3 Mobile 0.146 ms 0 - 44 MB NPU
HandLandmarkDetector QNN_DLC w8a8 Qualcomm® QCS8275 (Proxy) 0.649 ms 0 - 29 MB NPU
HandLandmarkDetector QNN_DLC w8a8 Qualcomm® QCS8550 (Proxy) 0.205 ms 0 - 2 MB NPU
HandLandmarkDetector QNN_DLC w8a8 Qualcomm® SA8775P 0.373 ms 0 - 31 MB NPU
HandLandmarkDetector QNN_DLC w8a8 Qualcomm® QCS9075 0.28 ms 0 - 2 MB NPU
HandLandmarkDetector QNN_DLC w8a8 Qualcomm® QCS8450 (Proxy) 0.398 ms 0 - 47 MB NPU
HandLandmarkDetector QNN_DLC w8a8 Qualcomm® SA7255P 0.649 ms 0 - 29 MB NPU
HandLandmarkDetector QNN_DLC w8a8 Qualcomm® SA8295P 0.569 ms 0 - 27 MB NPU
HandLandmarkDetector QNN_DLC w8a8 Snapdragon® 8 Elite For Galaxy Mobile 0.122 ms 0 - 32 MB NPU
HandLandmarkDetector QNN_DLC w8a8 Snapdragon® 8 Elite Gen 5 Mobile 0.108 ms 0 - 32 MB NPU
HandLandmarkDetector TFLITE float Snapdragon® 8 Gen 3 Mobile 0.353 ms 0 - 49 MB NPU
HandLandmarkDetector TFLITE float Qualcomm® QCS8275 (Proxy) 2.741 ms 0 - 31 MB NPU
HandLandmarkDetector TFLITE float Qualcomm® QCS8550 (Proxy) 0.492 ms 0 - 2 MB NPU
HandLandmarkDetector TFLITE float Qualcomm® SA8775P 3.533 ms 0 - 33 MB NPU
HandLandmarkDetector TFLITE float Qualcomm® QCS9075 0.766 ms 0 - 10 MB NPU
HandLandmarkDetector TFLITE float Qualcomm® QCS8450 (Proxy) 0.994 ms 0 - 47 MB NPU
HandLandmarkDetector TFLITE float Qualcomm® SA7255P 2.741 ms 0 - 31 MB NPU
HandLandmarkDetector TFLITE float Qualcomm® SA8295P 1.208 ms 0 - 26 MB NPU
HandLandmarkDetector TFLITE float Snapdragon® 8 Elite For Galaxy Mobile 0.301 ms 0 - 34 MB NPU
HandLandmarkDetector TFLITE float Snapdragon® 8 Elite Gen 5 Mobile 0.227 ms 0 - 34 MB NPU
HandLandmarkDetector TFLITE w8a8 Snapdragon® 8 Gen 3 Mobile 0.154 ms 0 - 43 MB NPU
HandLandmarkDetector TFLITE w8a8 Qualcomm® QCS6490 0.892 ms 0 - 9 MB NPU
HandLandmarkDetector TFLITE w8a8 Qualcomm® QCS8275 (Proxy) 0.667 ms 0 - 29 MB NPU
HandLandmarkDetector TFLITE w8a8 Qualcomm® QCS8550 (Proxy) 0.207 ms 0 - 1 MB NPU
HandLandmarkDetector TFLITE w8a8 Qualcomm® SA8775P 1.33 ms 0 - 30 MB NPU
HandLandmarkDetector TFLITE w8a8 Qualcomm® QCS9075 0.304 ms 0 - 5 MB NPU
HandLandmarkDetector TFLITE w8a8 Qualcomm® QCM6690 1.304 ms 0 - 27 MB NPU
HandLandmarkDetector TFLITE w8a8 Qualcomm® QCS8450 (Proxy) 0.403 ms 0 - 45 MB NPU
HandLandmarkDetector TFLITE w8a8 Qualcomm® SA7255P 0.667 ms 0 - 29 MB NPU
HandLandmarkDetector TFLITE w8a8 Qualcomm® SA8295P 0.588 ms 0 - 26 MB NPU
HandLandmarkDetector TFLITE w8a8 Snapdragon® 8 Elite For Galaxy Mobile 0.128 ms 0 - 26 MB NPU
HandLandmarkDetector TFLITE w8a8 Snapdragon® 7 Gen 4 Mobile 0.232 ms 0 - 26 MB NPU
HandLandmarkDetector TFLITE w8a8 Snapdragon® 8 Elite Gen 5 Mobile 0.107 ms 0 - 32 MB NPU
PalmDetector ONNX float Snapdragon® X Elite 0.975 ms 3 - 3 MB NPU
PalmDetector ONNX float Snapdragon® 8 Gen 3 Mobile 0.759 ms 0 - 133 MB NPU
PalmDetector ONNX float Qualcomm® QCS8550 (Proxy) 1.066 ms 0 - 9 MB NPU
PalmDetector ONNX float Qualcomm® QCS9075 1.489 ms 1 - 4 MB NPU
PalmDetector ONNX float Snapdragon® 8 Elite For Galaxy Mobile 0.671 ms 0 - 109 MB NPU
PalmDetector ONNX float Snapdragon® 8 Elite Gen 5 Mobile 0.58 ms 0 - 110 MB NPU
PalmDetector QNN_DLC float Snapdragon® X Elite 0.913 ms 1 - 1 MB NPU
PalmDetector QNN_DLC float Snapdragon® 8 Gen 3 Mobile 0.533 ms 0 - 59 MB NPU
PalmDetector QNN_DLC float Qualcomm® QCS8275 (Proxy) 3.746 ms 1 - 40 MB NPU
PalmDetector QNN_DLC float Qualcomm® QCS8550 (Proxy) 0.737 ms 1 - 2 MB NPU
PalmDetector QNN_DLC float Qualcomm® SA8775P 1.287 ms 1 - 43 MB NPU
PalmDetector QNN_DLC float Qualcomm® QCS9075 1.118 ms 1 - 3 MB NPU
PalmDetector QNN_DLC float Qualcomm® QCS8450 (Proxy) 1.387 ms 0 - 54 MB NPU
PalmDetector QNN_DLC float Qualcomm® SA7255P 3.746 ms 1 - 40 MB NPU
PalmDetector QNN_DLC float Qualcomm® SA8295P 1.695 ms 1 - 32 MB NPU
PalmDetector QNN_DLC float Snapdragon® 8 Elite For Galaxy Mobile 0.443 ms 0 - 39 MB NPU
PalmDetector QNN_DLC float Snapdragon® 8 Elite Gen 5 Mobile 0.38 ms 1 - 44 MB NPU
PalmDetector QNN_DLC w8a8 Snapdragon® X Elite 0.485 ms 0 - 0 MB NPU
PalmDetector QNN_DLC w8a8 Snapdragon® 8 Gen 3 Mobile 0.23 ms 0 - 45 MB NPU
PalmDetector QNN_DLC w8a8 Qualcomm® QCS8275 (Proxy) 0.934 ms 0 - 33 MB NPU
PalmDetector QNN_DLC w8a8 Qualcomm® QCS8550 (Proxy) 0.336 ms 0 - 59 MB NPU
PalmDetector QNN_DLC w8a8 Qualcomm® SA8775P 0.586 ms 0 - 35 MB NPU
PalmDetector QNN_DLC w8a8 Qualcomm® QCS9075 0.448 ms 0 - 2 MB NPU
PalmDetector QNN_DLC w8a8 Qualcomm® QCS8450 (Proxy) 0.446 ms 0 - 49 MB NPU
PalmDetector QNN_DLC w8a8 Qualcomm® SA7255P 0.934 ms 0 - 33 MB NPU
PalmDetector QNN_DLC w8a8 Qualcomm® SA8295P 0.806 ms 0 - 31 MB NPU
PalmDetector QNN_DLC w8a8 Snapdragon® 8 Elite For Galaxy Mobile 0.195 ms 0 - 32 MB NPU
PalmDetector QNN_DLC w8a8 Snapdragon® 8 Elite Gen 5 Mobile 0.174 ms 0 - 36 MB NPU
PalmDetector TFLITE float Snapdragon® 8 Gen 3 Mobile 0.536 ms 0 - 58 MB NPU
PalmDetector TFLITE float Qualcomm® QCS8275 (Proxy) 3.793 ms 0 - 39 MB NPU
PalmDetector TFLITE float Qualcomm® QCS8550 (Proxy) 0.735 ms 0 - 3 MB NPU
PalmDetector TFLITE float Qualcomm® SA8775P 5.134 ms 0 - 41 MB NPU
PalmDetector TFLITE float Qualcomm® QCS9075 1.131 ms 0 - 7 MB NPU
PalmDetector TFLITE float Qualcomm® QCS8450 (Proxy) 1.365 ms 0 - 50 MB NPU
PalmDetector TFLITE float Qualcomm® SA7255P 3.793 ms 0 - 39 MB NPU
PalmDetector TFLITE float Qualcomm® SA8295P 1.707 ms 0 - 30 MB NPU
PalmDetector TFLITE float Snapdragon® 8 Elite For Galaxy Mobile 0.446 ms 0 - 35 MB NPU
PalmDetector TFLITE float Snapdragon® 8 Elite Gen 5 Mobile 0.384 ms 0 - 43 MB NPU
PalmDetector TFLITE w8a8 Snapdragon® 8 Gen 3 Mobile 0.226 ms 0 - 45 MB NPU
PalmDetector TFLITE w8a8 Qualcomm® QCS6490 1.175 ms 0 - 5 MB NPU
PalmDetector TFLITE w8a8 Qualcomm® QCS8275 (Proxy) 0.938 ms 0 - 32 MB NPU
PalmDetector TFLITE w8a8 Qualcomm® QCS8550 (Proxy) 0.327 ms 0 - 4 MB NPU
PalmDetector TFLITE w8a8 Qualcomm® SA8775P 2.021 ms 0 - 33 MB NPU
PalmDetector TFLITE w8a8 Qualcomm® QCS9075 0.473 ms 0 - 4 MB NPU
PalmDetector TFLITE w8a8 Qualcomm® QCM6690 2.06 ms 18 - 48 MB NPU
PalmDetector TFLITE w8a8 Qualcomm® QCS8450 (Proxy) 0.451 ms 0 - 48 MB NPU
PalmDetector TFLITE w8a8 Qualcomm® SA7255P 0.938 ms 0 - 32 MB NPU
PalmDetector TFLITE w8a8 Qualcomm® SA8295P 0.796 ms 0 - 30 MB NPU
PalmDetector TFLITE w8a8 Snapdragon® 8 Elite For Galaxy Mobile 0.2 ms 0 - 29 MB NPU
PalmDetector TFLITE w8a8 Snapdragon® 7 Gen 4 Mobile 0.347 ms 0 - 29 MB NPU
PalmDetector TFLITE w8a8 Snapdragon® 8 Elite Gen 5 Mobile 0.171 ms 0 - 35 MB NPU

License

  • The license for the original implementation of MediaPipe-Hand-Gesture-Recognition can be found here.

References

Community

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for qualcomm/MediaPipe-Hand-Gesture-Recognition