Facial Recognition for Mobile Payments
A cross-platform iOS and Android app for accepting Stripe payments with liveness detection and facial recognition. Written for TCS Paceport Retail Applications using React Native, Expo, Stripe, and AWS Rekognition
- Clone the face-rekon repository to your local machine
- Install the Expo command line interface by typing
npm install -g expo-cli
in the terminal - Download and install Expo Go from the app store on your mobile phone
- Navigate in your terminal to the folder where you cloned the repository
- Run the command
expo start
- Your browser will open and display a QR code. Scan the code with your mobile phone
- Face-Rekon will run inside Expo Go on your mobile phone
- From the Home screen click 'Register Face' to register your face to make a new payment
- Enter the administrator username 'Admin' and password 'Admin123'
- Enter a username for the face you want to register. Usernames must not contain spaces or special characters.
- The following screen will capture your image automatically once your face is fully contained within the circle.
- A Confirmation screen will appear confirming that your face was registered successfully.
- From the Home screen click 'Make Payment' to pake a new payment
- Enter a payment amount in US Dollars. Foreign currencies will be supported in future versions.
- Tap 'Payment Method' to select a new payment method. Credit or debit cards are currently accepted. Additional payment methods will be available in future versions.
- Tap 'Proceed'
- Select whether to validate your payment using 'Face Recognition' or your device's built-in 'Touch ID'. Facial recognition does not require any additonal biometric sensors.
- If you selected 'Touch ID', use your fingerprint scanner to validate your identity.
- If you selected 'Face Recognition' the following screen will guide you through a series of steps for liveness detection. Make sure your face is fully visible within the circle and follow the instructions.
- Once validated, a Confirmation Screen will appear confirming that your face was registered successfully.
Use Case 1: Face-based Identification for Payments\
FacePayment
Immanuel Joseph Antony
Russell Taylor
This mobile app will be written using React Native. React Native is a cross-platform technology, so the app will run on both Android and iOS mobile phones. The app will use the Amazon AWS Rekognition API in order to register and verify faces.
The project requirements in the Use Case Manual outline a basic application with two distinct flows and six distinct views. These views are illustrated in the following diagram:
The Home screen will have a field to enter the payment amount and a button to proceed. The button to proceed will navigate to the image capture screen (View 2). Additionally there will be an option on the home screen to navigate to the admin screen (View 4).
Once the proceed button is clicked, a camera window will open to complete face verification.
Once the face is detected the camera window will close and redirect to next screen which is the payment status screen. The payment status screen will display the status message (success/failure) and provide an a navigation button to return to the home screen (View 1).
The admin mode will allow the user to select and train a specific face for detection. This screen will provide navigation options to return to the home screen (View 1) or train a face (View 5).
Once the train a face button is clicked, a camera window will open to complete face registration.
Once the face is detected the camera window will close and redirect to next screen which is the training status screen. The training status screen will display the status message (success/failure) and provide an a navigation button to return to the admin screen (View 4).