AI-powered CAPTCHA system using face and hand gesture recognition for secure human verification.
VerifyMe.AI replaces traditional CAPTCHA methods with a smart, real-time human verification system. It uses webcam-based face detection and hand gesture recognition to ensure that only real users — not bots — pass through security checks.
This system is ideal for online exams, secure login systems, or kiosk-based public services. The user is asked to perform a random challenge (e.g., show 2 fingers and smile), and the system verifies both face presence and gesture correctness.
- ✅ Detects and verifies human face using Haar Cascades
- ✋ Identifies hand gestures (1–5 fingers) using Mediapipe
- 🎥 Works in real-time using webcam
- 🔐 Enhanced security against bots and spoofing
- 💡 Can be extended to mobile, web, or kiosk systems
| Use Case | Examples |
|---|---|
| Online exam portals | Facial + gesture login for human candidates |
| Government portals | Secure public access (UIDAI, IRCTC, etc.) |
| Banking Kiosks | Face + hand check before e-KYC |
| Cybercafés | Prevent bots from auto-registering |
- Python 3.8
- OpenCV – for webcam and face detection
- Mediapipe – for hand landmark tracking
- Haarcascade XML – pre-trained face detection model
- NumPy – image/array operations
verifyme-ai/
├── app.py # Main script to run system
├── requirements.txt # Dependencies list
├── LICENSE # MIT License
├── README.md # This file
│
├── haarcascades/
│ └── haarcascade_frontalface_default.xml
│
├── hand_module/
│ └── hand_gesture.py # Hand gesture detection logic
│
├── assets/
│ └── bala.jpg # Test image or user sample
│
└── .venv/ # Virtual environment (optional)
git clone https://github.com/yourusername/verifyme-ai.git
cd verifyme-aipython -m venv .venv-
Windows:
.venv\Scripts\activate
-
Linux/macOS:
source .venv/bin/activate
pip install -r requirements.txtpython app.py- The webcam will start.
- The system will detect your face using Haar Cascade.
- A random gesture challenge appears (e.g., "Show 3 fingers").
- Mediapipe detects your hand and counts fingers.
- If both checks pass → ✅ CAPTCHA Passed
[ Webcam Feed ]
↓
[ Detect Face (Haar Cascade) ]
↓
[ Detect Hand (Mediapipe) ]
↓
[ Generate Random Gesture Challenge ]
↓
[ Match Face + Gesture ]
↓
[ Verification Success ]
import random
challenge = random.choice([1, 2, 3, 4, 5])
print(f"Show {challenge} fingers to continue")face_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_default.xml')
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)with mp_hands.Hands() as hands:
result = hands.process(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
if result.multi_hand_landmarks:
count_fingers(result.multi_hand_landmarks)- GUI using Tkinter or Streamlit
- Mobile version using MediaPipe on Android
- OTP fallback for invalid attempts
- Smile/blink detection (multi-modal verification)
- Voice command captcha support
Balashanmugam
MSc Data Science | AI Enthusiast | Python Developer
📧 balashanmugamrathinam@gmail.com
🔗 LinkedIn Profile
This project is licensed under the LICENSE.
You are free to use, modify, and distribute this code for personal or commercial use.
“VerifyMe.AI: Making CAPTCHA smarter, not harder.”
