An Expo-based attendance tracking application leveraging face recognition.
This project is an Expo application designed to streamline attendance tracking using face recognition technology. It utilizes SQLite with the VectorDb plugin for efficient data storage and processing.
- Expo: A framework for building universal native apps for Android, iOS, and web.
- React Native: A JavaScript framework for writing real, natively rendering mobile applications.
- SQLite: A self-contained, high-reliability, embedded, full-featured, public-domain, SQL database engine.
- VectorDb Plugin: vector db to store face embeddings.
- Face Net: Currently exploring optimal solutions.
-
Install dependencies:
npm install
-
Connect your phone and start the app:
npm run start
The development process involved experimenting with various face recognition libraries and approaches:
- Faceapi by justadudewhohacks: Initial attempt. Abandoned due to incompatibility with current React Native and Expo versions (outdated TensorFlow version).
- Tensorflow's
tflite
: Attempted to adapt this library to a face recognition implementation, but the approach was unsuccessful. - VisionCamera by mrousavy: Considered as a potential solution.
react-native-fast-tflite
by mrousavy: Faced errors related to React Native updates and the New Architecture.- Kotlin FrameProcessor plugin using Onnx: Functioned, but produced inaccurate results due to half-precision processing.
- react-native-fast-tflite#112: Currently using a specific pull request from
react-native-fast-tflite
to leverage the New Architecture."react-native-fast-tflite": "github:mrousavy/react-native-fast-tflite#pull/112/head"