Apna Bank is a simple banking application that provides a secure interface for both administrators and regular users. The system includes face recognition technology for administrator authentication and standard password protection for regular user accounts.
- Account Creation: New users can create accounts with a username and password
- Balance Checking: Users can check their current account balance
- Deposits: Users can deposit money into their accounts
- Withdrawals: Users can withdraw money with proper PIN verification
- Password Management: Users can change their passwords
- Secure Access: Face recognition technology for admin authentication
- User Management: Administrators can view all registered users and their details
- Uses OpenCV and LBPH (Local Binary Patterns Histograms) Face Recognizer
- Face data collection and model training capabilities
- Real-time face detection and recognition for admin login
- User data stored in CSV format for simplicity
- Secure PIN verification for sensitive operations
.
├── bank2.py # Main banking application
├── user.csv # User data storage
├── dataset/ # Face samples storage directory
│ └── admin.*.jpg # Admin face samples
├── trainer.yml # Trained face recognition model
└── new.ipynb # Jupyter notebook with face recognition setup code
- Python 3.x
- Required libraries:
- pandas
- numpy
- matplotlib
- opencv-python (cv2)
- pillow (PIL)
pip install pandas numpy matplotlib opencv-python pillow-
Run the save_faces.py script to collect admin face samples:
# This will capture 30 images of your face for training # Code available in new.ipynb
-
Train the face recognition model:
# This will create trainer.yml file used for recognition # Code available in new.ipynb
Run the main application file:
python bank2.py- Admin Login (Face Unlock): Access administrative features using face recognition
- User Login: Regular user login with username and password
- Create Account: Create a new user account
- Exit: Exit the application
- Check Balance: View current account balance
- Deposit: Add funds to account
- Withdraw: Remove funds from account (requires PIN verification)
- Change Password: Update account password
- Logout: Return to main menu
- Face recognition for admin access
- PIN verification for withdrawals
- Password protection for all accounts
- Money transfer functionality between accounts
- Transaction history tracking
- Enhanced security measures
- Web or mobile interface
Feel free to fork this repository and submit pull requests with any enhancements.
[Your License Choice]
This project was created for educational purposes and demonstrates basic banking functionalities along with face recognition security.