Face recognition embeddings for React Native
npm install react-native-face-embeddingsA Node.js package for generating face embeddings using face-api.js and TensorFlow. Perfect for face recognition, comparison, and identity verification applications.
``bash`
npm install react-native-face-embeddings
This package requires the face-api.js model files. Download them from:
https://github.com/vladmandic/face-api/tree/master/model
Place the following model files in a models directory in your project root:ssd_mobilenetv1_model-*
- face_landmark_68_model-*
- face_recognition_model-*
-
`javascript
import { createEmbedding, findNearestMatch } from 'react-native-face-embeddings';
// Create embedding from a file path
const embedding1 = await createEmbedding('./photo1.jpg');
// Create embedding from base64 (React Native camera)
const embedding2 = await createEmbedding('data:image/jpeg;base64,...');
// Compare embeddings
const knownFaces = [
{ id: 'person1', embedding: embedding1 }
];
const match = findNearestMatch(knownFaces, embedding2);
if (match) {
console.log(Match found: ${match.id} (${match.confidence * 100}% confident));`
}
Creates a 128-dimensional face embedding from an image.
Parameters:
- imageInput (string|Buffer|Uint8Array): Image source'/path/to/image.jpg'
- File path: 'file:///path/to/image.jpg'
- File URI: 'data:image/jpeg;base64,...'
- Base64:
- Buffer or Uint8Array
Returns: Promise - 128-dimensional embedding
Finds the best matching embedding from a list.
Parameters:
- embeddings (Array{id, embedding} objectstargetEmbedding
- (Arraythreshold
- (number): Maximum distance for a match (default: 0.6)
Returns: Object|null - {id, distance, confidence} or null
Finds all matching embeddings above threshold.
Returns: Array
See test/run.js for a complete example.
MIT © Harshadeep Donapati