A biometric authentication system that uses hand gestures as passwords, providing a novel approach to secure access without traditional text-based passwords.
- Biometric Authentication: Use hand gestures as a secure alternative to text passwords
- Real-time Hand Tracking: Track hand position and movements with MediaPipe and OpenCV
- Gesture Recognition: Identify and classify different hand poses and gestures
- Secure Storage: Encrypted gesture hash storage using SQLite
- Cross-platform GUI: Modern user interface built with PySide6
- Multiple Authentication Modes: Support for registration, verification, and calibration
- Python 3.8+
- Webcam or camera device
- Required Python packages:
- PySide6
- OpenCV
- MediaPipe
- NumPy
- SQLite3
-
Clone the repository:
git clone https://github.com/yourusername/gesture-auth-system.git cd gesture-auth-system -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python main.py
- Click "Sign Up" on the landing page
- Enter a username
- Position your hand in front of the camera
- Make a gesture you want to use as your password
- Click "Capture Image" followed by "Submit"
- Click "Login" on the landing page
- Enter your username
- Position your hand in front of the camera
- Make the same gesture you registered with
- Click "Capture Image" followed by "Submit"
For advanced users, the hand_tracker.py module provides additional calibration options:
- Press 'C' to enter calibration mode
- Enter the gesture name when prompted
- Make the gesture and press Space 5 times to capture samples
- The system will automatically select the most consistent hash
The system employs multiple security features:
- Gesture Hash Generation: Converts 3D hand landmark positions into stable hashes
- Normalization: Adjusts for differences in hand size and position
- Feature Quantization: Reduces sensitivity to small variations in gesture performance
- Salt-based Hashing: Associates gestures with specific usernames for additional security