Hand Gesture Detection

Detect and recognise hand gestures in any image. Identifies 35 classes digits 1–9 and letters A–Z perfect for sign language interfaces, gesture-controlled IoT, and HCI projects.

10 scans/day50 scans/monthView Docs

Get Started in Minutes

Start sending IoT notifications in just a few simple steps

1

Create Account

Sign up for free, no credit card required

2

Get API Key

Generate your API key from the dashboard

3

Upload Gesture Image

POST a photo of a hand showing a gesture

4

Get Recognition Results

Receive gesture class, confidence, and bounding box

Try API
Test the Hand Gesture Detection directly from your browser
API Key:
cd_xxxxxxxxxxxxxxxxxxxx

Gesture Image

Upload Image

Upload an image for analysis. Use a clear, well-lit photo for best results.

Click or drag & drop

JPG, PNG up to 5MB

30%

Minimum detection confidence lower values catch partially visible gestures but may increase false positives

Result

No result yet

Upload an image and run the test to see the annotated output

1#!/usr/bin/env python3
2"""
3Raspberry Pi - CircuitDigest Hand Gesture Detection API
4--------------------------------------------------------
5Captures a frame with Pi Camera / USB webcam, sends it to
6the cloud API, and prints the detected gestures.
7
8Install: pip install requests
9"""
10import requests
11
12API_URL = "https://www.circuitdigest.cloud/api/v1/hand-gesture-detection/detect"
13API_KEY = "YOUR_API_KEY"
14
15def detect_gesture(image_path: str) -> dict:
16    with open(image_path, "rb") as img:
17        response = requests.post(
18            API_URL,
19            headers={"X-API-Key": API_KEY},
20            files={"imageFile": img},
21            timeout=30,
22        )
23    response.raise_for_status()
24    return response.json()
25
26def main():
27    result = detect_gesture("gesture.jpg")
28
29    if result["status"] == "success":
30        print(f"Gestures detected: {result['gesture_count']}")
31        for g in result["detected_gestures"]:
32            print(f"  {g['gesture']}  ({g['confidence']:.1f}% confidence)")
33    else:
34        print(f"Status: {result['status']} - {result.get('message', '')}")
35
36if __name__ == "__main__":
37    main()

Tutorials

Learn how to integrate with step-by-step guides

View All

Coming Soon

Step-by-step guides are in progress.