Hand Gesture Recognition
1. Introduction
Hand Gesture Recognition is an emerging technology in Human-Computer Interaction (HCI). This project involves detecting basic hand gestures using a webcam and processing the input with OpenCV.
2. Prerequisites
• Python: Install Python 3.x from the official Python
website.
• OpenCV: Install OpenCV by running:
pip install opencv-python
pip install opencv-python-headless
• Mediapipe: A library for efficient hand and face detection:
pip install mediapipe
• Basic knowledge of Python programming and OpenCV library.
3. Project Setup
1. Create a Project Directory:
- Name your project folder, e.g., `HandGestureRecognition`.
- Inside this folder, create a Python script file
(`hand_gesture_recognition.py`).
2. Install Required Libraries:
Ensure OpenCV and Mediapipe are installed using `pip`.
4. Writing the Code
Below is the Python code for hand gesture recognition:
import cv2
import mediapipe as mp
# Initialize Mediapipe Hands module
mp_hands = mp.solutions.hands
mp_drawing = mp.solutions.drawing_utils
hands = mp_hands.Hands(min_detection_confidence=0.7,
min_tracking_confidence=0.7)
# Initialize webcam
cap = cv2.VideoCapture(0)
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
# Flip the frame horizontally for a
mirror effect
frame = cv2.flip(frame, 1)
frame_rgb = cv2.cvtColor(frame,
cv2.COLOR_BGR2RGB)
# Process the frame
result = hands.process(frame_rgb)
# Draw hand landmarks
if result.multi_hand_landmarks:
for hand_landmarks in
result.multi_hand_landmarks:
mp_drawing.draw_landmarks(
frame, hand_landmarks,
mp_hands.HAND_CONNECTIONS
)
# Display the frame
cv2.imshow("Hand Gesture
Recognition", frame)
# Exit when 'q' is pressed
if cv2.waitKey(1) & 0xFF ==
ord('q'):
break
cap.release()
cv2.destroyAllWindows()
5. Key Components
• Hand Detection: Uses Mediapipe to detect hand landmarks.
• Landmark Drawing: Mediapipe draws connections between landmarks for better
visualization.
• Real-Time Video Processing: Processes webcam input to detect gestures in
real-time.
6. Testing
1. Run the script:
python hand_gesture_recognition.py
2. Place your hand in front of the webcam to see landmarks drawn in real-time.
3. Press `q` to exit the application.
7. Enhancements
• Gesture Classification: Integrate a model to classify
gestures like thumbs up or victory sign.
• Custom Actions: Map specific gestures to actions like controlling volume or
navigating slides.
• Multiple Hands: Extend functionality to detect and differentiate gestures
from multiple hands.
8. Troubleshooting
• Camera Not Detected: Check if the webcam is properly
connected or used by another application.
• Low Detection Confidence: Adjust `min_detection_confidence` and
`min_tracking_confidence`.
9. Conclusion
This project demonstrates the basics of hand gesture recognition using Mediapipe and OpenCV. It can be extended for advanced applications like sign language interpretation or touchless control systems.