Hand gesture recognition is one of the most viable and popular solution for improving human computer interaction. In the recent years it has become very popular due to its use in gaming devices like Xbox, PS4, and other devices like laptops, smart phones, etc. Hand Detection & gesture recognition has usage in various applications like medicine, accessibility support etc. In this paper, we would like to propose on how to develop a hand gesture recognition simulation using OpenCV and python 2.7.
Histogram based approach is used to separate out the hand from the background image. Background cancellation techniques are used to produce optimum results. The detector hand is then processed and modelled by finding contours and convex hull to recognize finger and palm positions and dimensions. Finally a gesture object is created from the input which is then used to recognise the count of fingers.
CVZONE
This is a Computer vision package that makes its easy to run Image processing and AI functions. At the core it uses OpenCV and Mediapipe libraries.
You can simply use pip to install the latest version of cvzone.
pip install cvzone
Hand Tracking
Basic Code Example
import cvzone import cv2 cap = cv2.VideoCapture(0) cap.set(3, 1280) cap.set(4, 720) detector = cvzone.HandDetector(detectionCon=0.5, maxHands=1) while True: # Get image frame success, img = cap.read() # Find the hand and its landmarks img = detector.findHands(img) lmList, bbox = detector.findPosition(img) # Display cv2.imshow("Image", img) cv2.waitKey(1)
Finding How many finger are up
if lmList: # Find how many fingers are up fingers = detector.fingersUp() totalFingers = fingers.count(1) cv2.putText(img, f'Fingers:{totalFingers}', (bbox[0] + 200, bbox[1] - 30), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)
Finding distace between two fingers
if lmList: # Find Distance Between Two Fingers distance, img, info = detector.findDistance(8, 12, img) cv2.putText(img, f'Dist:{int(distance)}', (bbox[0] + 400, bbox[1] - 30), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)
Find Hand Type – i.e. Left or Right
if lmList: # Find Hand Type myHandType = detector.handType() cv2.putText(img, f'Hand:{myHandType}', (bbox[0], bbox[1] - 30), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)
Gesture recognition(Hand Detection ) is an active research field in Human-Computer Interaction technology. It has many applications in virtual environment control and sign language translation, robot control, or music creation. In this machine learning project on Hand Detection, we are going to make a real-time Hand detector using the CVZONE module and OpenCV Python.
Prerequisites for this project:
- Python โ 3.x (we used Python 3.8.8 in this project)
- OpenCV โ 4.5 Run โpip install opencv-pythonโ to install OpenCV.
- cvzone-1.5.2 Run “pip install cvzone” to install cvzone
To exit the app press q. Happy Coding !!!
TRENDING ARTICLES
- Watersheds Extraction From Satellite Images Using Attention U-Net
- Mastering Image Classification with SIFT and KNN on CIFAR-10
- Hyperparameter Optimization Made Easy: Scikit-Learn Pipelines and GridSearchCV
- How To Install the Anaconda Python on Windows 11 & Ubuntu 20.04 Linux
- Hand Detection & Gesture Recognition – OpenCV Python